Skip to content

Commit

Permalink
Improve init performance RobinHerbots#1489
Browse files Browse the repository at this point in the history
  • Loading branch information
RobinHerbots committed Jan 16, 2017
1 parent e996baf commit 0d9d795
Show file tree
Hide file tree
Showing 29 changed files with 141 additions and 137 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@ All notable changes to this project will be documented in this file.
## [UNRELEASED]
### Added
### Updates
- performance updates
- initialization

### Fixed
- hasOwnProperty check missing in reverseTokens (numericInput) #1486
- Per-element radixPoint overwrites defaults #1454
Expand Down
2 changes: 1 addition & 1 deletion bower.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "jquery.inputmask",
"version": "3.3.5-17",
"version": "3.3.5-19",
"main": [
"./dist/inputmask/inputmask.dependencyLib",
"./dist/inputmask/inputmask",
Expand Down
2 changes: 1 addition & 1 deletion component.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "jquery_inputmask",
"repository": "robinherbots/jquery.inputmask",
"description": "jquery.inputmask is a jquery plugin which create an input mask.",
"version": "3.3.5-17",
"version": "3.3.5-19",
"keywords": [
"jquery",
"plugins",
Expand Down
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "robinherbots/jquery.inputmask",
"description": "jquery.inputmask is a jquery plugin which create an input mask.",
"version": "3.3.5-17",
"version": "3.3.5-19",
"type": "library",
"keywords": ["jquery", "plugins", "input", "form", "inputmask", "mask"],
"homepage": "http://robinherbots.github.io/jquery.inputmask",
Expand Down
2 changes: 1 addition & 1 deletion dist/inputmask/inputmask.date.extensions.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* https://github.com/RobinHerbots/jquery.inputmask
* Copyright (c) 2010 - 2017 Robin Herbots
* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
* Version: 3.3.5-17
* Version: 3.3.5-19
*/
!function(factory) {
"function" == typeof define && define.amd ? define([ "inputmask.dependencyLib", "inputmask" ], factory) : "object" == typeof exports ? module.exports = factory(require("./inputmask.dependencyLib"), require("./inputmask")) : factory(window.dependencyLib || jQuery, window.Inputmask);
Expand Down
2 changes: 1 addition & 1 deletion dist/inputmask/inputmask.dependencyLib.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* https://github.com/RobinHerbots/jquery.inputmask
* Copyright (c) 2010 - 2017 Robin Herbots
* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
* Version: 3.3.5-17
* Version: 3.3.5-19
*/
!function(factory) {
"function" == typeof define && define.amd ? define("inputmask.dependencyLib", [ "jquery" ], factory) : "object" == typeof exports ? module.exports = factory(require("jquery")) : factory(jQuery);
Expand Down
2 changes: 1 addition & 1 deletion dist/inputmask/inputmask.extensions.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* https://github.com/RobinHerbots/jquery.inputmask
* Copyright (c) 2010 - 2017 Robin Herbots
* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
* Version: 3.3.5-17
* Version: 3.3.5-19
*/
!function(factory) {
"function" == typeof define && define.amd ? define([ "inputmask.dependencyLib", "inputmask" ], factory) : "object" == typeof exports ? module.exports = factory(require("./inputmask.dependencyLib"), require("./inputmask")) : factory(window.dependencyLib || jQuery, window.Inputmask);
Expand Down
63 changes: 31 additions & 32 deletions dist/inputmask/inputmask.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,19 @@
* https://github.com/RobinHerbots/jquery.inputmask
* Copyright (c) 2010 - 2017 Robin Herbots
* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
* Version: 3.3.5-17
* Version: 3.3.5-19
*/
!function(factory) {
"function" == typeof define && define.amd ? define("inputmask", [ "inputmask.dependencyLib" ], factory) : "object" == typeof exports ? module.exports = factory(require("./inputmask.dependencyLib")) : factory(window.dependencyLib || jQuery);
}(function($) {
function Inputmask(alias, options) {
return this instanceof Inputmask ? ($.isPlainObject(alias) ? options = alias : (options = options || {},
options.alias = alias), this.el = void 0, this.opts = $.extend(!0, {}, this.defaults, options),
this.maskset = void 0, this.noMasksCache = options && void 0 !== options.definitions,
this.userOptions = options || {}, this.events = {}, this.dataAttribute = "data-inputmask",
this.isRTL = this.opts.numericInput, this.refreshValue = !1, resolveAlias(this.opts.alias, options, this.opts),
void 0) : new Inputmask(alias, options);
function Inputmask(alias, options, internal) {
return this instanceof Inputmask ? (this.el = void 0, this.events = {}, this.maskset = void 0,
this.refreshValue = !1, void (internal !== !0 && ($.isPlainObject(alias) ? options = alias : (options = options || {},
options.alias = alias), this.opts = $.extend(!0, {}, this.defaults, options), this.noMasksCache = options && void 0 !== options.definitions,
this.userOptions = options || {}, this.isRTL = this.opts.numericInput, resolveAlias(this.opts.alias, options, this.opts)))) : new Inputmask(alias, options, internal);
}
function resolveAlias(aliasStr, options, opts) {
var aliasDefinition = opts.aliases[aliasStr];
var aliasDefinition = Inputmask.prototype.aliases[aliasStr];
return aliasDefinition ? (aliasDefinition.alias && resolveAlias(aliasDefinition.alias, void 0, opts),
$.extend(!0, opts, aliasDefinition), $.extend(!0, opts, options), !0) : (null === opts.mask && (opts.mask = aliasStr),
!1);
Expand Down Expand Up @@ -1182,6 +1180,7 @@
}
var ua = navigator.userAgent, mobile = /mobile/i.test(ua), iemobile = /iemobile/i.test(ua), iphone = /iphone/i.test(ua) && !iemobile, android = /android/i.test(ua) && !iemobile;
return Inputmask.prototype = {
dataAttribute: "data-inputmask",
defaults: {
placeholder: "_",
optionalmarker: {
Expand Down Expand Up @@ -1209,7 +1208,6 @@
clearMaskOnLostFocus: !0,
insertMode: !0,
clearIncomplete: !1,
aliases: {},
alias: null,
onKeyDown: $.noop,
onBeforeMask: null,
Expand All @@ -1232,22 +1230,6 @@
positionCaretOnTab: !0,
tabThrough: !1,
supportsInputType: [ "text", "tel", "password" ],
definitions: {
"9": {
validator: "[0-9]",
cardinality: 1,
definitionSymbol: "*"
},
a: {
validator: "[A-Za-z\u0410-\u044f\u0401\u0451\xc0-\xff\xb5]",
cardinality: 1,
definitionSymbol: "*"
},
"*": {
validator: "[0-9A-Za-z\u0410-\u044f\u0401\u0451\xc0-\xff\xb5]",
cardinality: 1
}
},
ignorables: [ 8, 9, 13, 19, 27, 33, 34, 35, 36, 37, 38, 39, 40, 45, 46, 93, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123 ],
isComplete: null,
canClearPosition: $.noop,
Expand All @@ -1263,6 +1245,23 @@
colorMask: !1,
androidHack: !1
},
definitions: {
"9": {
validator: "[0-9]",
cardinality: 1,
definitionSymbol: "*"
},
a: {
validator: "[A-Za-z\u0410-\u044f\u0401\u0451\xc0-\xff\xb5]",
cardinality: 1,
definitionSymbol: "*"
},
"*": {
validator: "[0-9A-Za-z\u0410-\u044f\u0401\u0451\xc0-\xff\xb5]",
cardinality: 1
}
},
aliases: {},
masksCache: {},
mask: function(elems) {
function importAttributeOptions(npt, opts, userOptions, dataAttribute) {
Expand Down Expand Up @@ -1299,10 +1298,10 @@
var scopedOpts = $.extend(!0, {}, that.opts);
importAttributeOptions(el, scopedOpts, $.extend(!0, {}, that.userOptions), that.dataAttribute);
var maskset = generateMaskSet(scopedOpts, that.noMasksCache);
void 0 !== maskset && (void 0 !== el.inputmask && el.inputmask.remove(), el.inputmask = new Inputmask(),
void 0 !== maskset && (void 0 !== el.inputmask && el.inputmask.remove(), el.inputmask = new Inputmask((void 0), (void 0), (!0)),
el.inputmask.opts = scopedOpts, el.inputmask.noMasksCache = that.noMasksCache, el.inputmask.userOptions = $.extend(!0, {}, that.userOptions),
el.inputmask.el = el, el.inputmask.maskset = maskset, $.data(el, "_inputmask_opts", scopedOpts),
maskScope.call(el.inputmask, {
el.inputmask.isRTL = that.isRTL, el.inputmask.el = el, el.inputmask.maskset = maskset,
$.data(el, "_inputmask_opts", scopedOpts), maskScope.call(el.inputmask, {
action: "mask"
}));
}), elems && elems[0] ? elems[0].inputmask || this : this;
Expand Down Expand Up @@ -1369,7 +1368,7 @@
};
}
function insertTestDefinition(mtoken, element, position) {
var maskdef = opts.definitions[element];
var maskdef = (opts.definitions ? opts.definitions[element] : void 0) || Inputmask.prototype.definitions[element];
position = void 0 !== position ? position : mtoken.matches.length;
var prevMatch = mtoken.matches[position - 1];
if (maskdef && !escaped) {
Expand Down Expand Up @@ -1506,9 +1505,9 @@
}, Inputmask.extendDefaults = function(options) {
$.extend(!0, Inputmask.prototype.defaults, options);
}, Inputmask.extendDefinitions = function(definition) {
$.extend(!0, Inputmask.prototype.defaults.definitions, definition);
$.extend(!0, Inputmask.prototype.definitions, definition);
}, Inputmask.extendAliases = function(alias) {
$.extend(!0, Inputmask.prototype.defaults.aliases, alias);
$.extend(!0, Inputmask.prototype.aliases, alias);
}, Inputmask.format = function(value, options, metadata) {
return Inputmask(options).format(value, metadata);
}, Inputmask.unmask = function(value, options) {
Expand Down
2 changes: 1 addition & 1 deletion dist/inputmask/inputmask.numeric.extensions.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* https://github.com/RobinHerbots/jquery.inputmask
* Copyright (c) 2010 - 2017 Robin Herbots
* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
* Version: 3.3.5-17
* Version: 3.3.5-19
*/
!function(factory) {
"function" == typeof define && define.amd ? define([ "inputmask.dependencyLib", "inputmask" ], factory) : "object" == typeof exports ? module.exports = factory(require("./inputmask.dependencyLib"), require("./inputmask")) : factory(window.dependencyLib || jQuery, window.Inputmask);
Expand Down
4 changes: 2 additions & 2 deletions dist/inputmask/inputmask.phone.extensions.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* https://github.com/RobinHerbots/jquery.inputmask
* Copyright (c) 2010 - 2017 Robin Herbots
* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
* Version: 3.3.5-17
* Version: 3.3.5-19
*/
!function(factory) {
"function" == typeof define && define.amd ? define([ "inputmask.dependencyLib", "inputmask" ], factory) : "object" == typeof exports ? module.exports = factory(require("./inputmask.dependencyLib"), require("./inputmask")) : factory(window.dependencyLib || jQuery, window.Inputmask);
Expand Down Expand Up @@ -43,7 +43,7 @@
phoneCodes: [],
mask: function(opts) {
return opts.definitions = {
"#": opts.definitions[9]
"#": Inputmask.prototype.definitions[9]
}, opts.phoneCodes.sort(maskSort);
},
keepStatic: !0,
Expand Down
2 changes: 1 addition & 1 deletion dist/inputmask/inputmask.regex.extensions.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* https://github.com/RobinHerbots/jquery.inputmask
* Copyright (c) 2010 - 2017 Robin Herbots
* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
* Version: 3.3.5-17
* Version: 3.3.5-19
*/
!function(factory) {
"function" == typeof define && define.amd ? define([ "inputmask.dependencyLib", "inputmask" ], factory) : "object" == typeof exports ? module.exports = factory(require("./inputmask.dependencyLib"), require("./inputmask")) : factory(window.dependencyLib || jQuery, window.Inputmask);
Expand Down
2 changes: 1 addition & 1 deletion dist/inputmask/jquery.inputmask.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* https://github.com/RobinHerbots/jquery.inputmask
* Copyright (c) 2010 - 2017 Robin Herbots
* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
* Version: 3.3.5-17
* Version: 3.3.5-19
*/
!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);
Expand Down
65 changes: 32 additions & 33 deletions dist/jquery.inputmask.bundle.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,17 @@
* https://github.com/RobinHerbots/jquery.inputmask
* Copyright (c) 2010 - 2017 Robin Herbots
* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
* Version: 3.3.5-17
* Version: 3.3.5-19
*/
!function($) {
function Inputmask(alias, options) {
return this instanceof Inputmask ? ($.isPlainObject(alias) ? options = alias : (options = options || {},
options.alias = alias), this.el = void 0, this.opts = $.extend(!0, {}, this.defaults, options),
this.maskset = void 0, this.noMasksCache = options && void 0 !== options.definitions,
this.userOptions = options || {}, this.events = {}, this.dataAttribute = "data-inputmask",
this.isRTL = this.opts.numericInput, this.refreshValue = !1, resolveAlias(this.opts.alias, options, this.opts),
void 0) : new Inputmask(alias, options);
function Inputmask(alias, options, internal) {
return this instanceof Inputmask ? (this.el = void 0, this.events = {}, this.maskset = void 0,
this.refreshValue = !1, void (internal !== !0 && ($.isPlainObject(alias) ? options = alias : (options = options || {},
options.alias = alias), this.opts = $.extend(!0, {}, this.defaults, options), this.noMasksCache = options && void 0 !== options.definitions,
this.userOptions = options || {}, this.isRTL = this.opts.numericInput, resolveAlias(this.opts.alias, options, this.opts)))) : new Inputmask(alias, options, internal);
}
function resolveAlias(aliasStr, options, opts) {
var aliasDefinition = opts.aliases[aliasStr];
var aliasDefinition = Inputmask.prototype.aliases[aliasStr];
return aliasDefinition ? (aliasDefinition.alias && resolveAlias(aliasDefinition.alias, void 0, opts),
$.extend(!0, opts, aliasDefinition), $.extend(!0, opts, options), !0) : (null === opts.mask && (opts.mask = aliasStr),
!1);
Expand Down Expand Up @@ -1180,6 +1178,7 @@
}
var ua = navigator.userAgent, mobile = /mobile/i.test(ua), iemobile = /iemobile/i.test(ua), iphone = /iphone/i.test(ua) && !iemobile, android = /android/i.test(ua) && !iemobile;
return Inputmask.prototype = {
dataAttribute: "data-inputmask",
defaults: {
placeholder: "_",
optionalmarker: {
Expand Down Expand Up @@ -1207,7 +1206,6 @@
clearMaskOnLostFocus: !0,
insertMode: !0,
clearIncomplete: !1,
aliases: {},
alias: null,
onKeyDown: $.noop,
onBeforeMask: null,
Expand All @@ -1230,22 +1228,6 @@
positionCaretOnTab: !0,
tabThrough: !1,
supportsInputType: [ "text", "tel", "password" ],
definitions: {
"9": {
validator: "[0-9]",
cardinality: 1,
definitionSymbol: "*"
},
a: {
validator: "[A-Za-z\u0410-\u044f\u0401\u0451\xc0-\xff\xb5]",
cardinality: 1,
definitionSymbol: "*"
},
"*": {
validator: "[0-9A-Za-z\u0410-\u044f\u0401\u0451\xc0-\xff\xb5]",
cardinality: 1
}
},
ignorables: [ 8, 9, 13, 19, 27, 33, 34, 35, 36, 37, 38, 39, 40, 45, 46, 93, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123 ],
isComplete: null,
canClearPosition: $.noop,
Expand All @@ -1261,6 +1243,23 @@
colorMask: !1,
androidHack: !1
},
definitions: {
"9": {
validator: "[0-9]",
cardinality: 1,
definitionSymbol: "*"
},
a: {
validator: "[A-Za-z\u0410-\u044f\u0401\u0451\xc0-\xff\xb5]",
cardinality: 1,
definitionSymbol: "*"
},
"*": {
validator: "[0-9A-Za-z\u0410-\u044f\u0401\u0451\xc0-\xff\xb5]",
cardinality: 1
}
},
aliases: {},
masksCache: {},
mask: function(elems) {
function importAttributeOptions(npt, opts, userOptions, dataAttribute) {
Expand Down Expand Up @@ -1297,10 +1296,10 @@
var scopedOpts = $.extend(!0, {}, that.opts);
importAttributeOptions(el, scopedOpts, $.extend(!0, {}, that.userOptions), that.dataAttribute);
var maskset = generateMaskSet(scopedOpts, that.noMasksCache);
void 0 !== maskset && (void 0 !== el.inputmask && el.inputmask.remove(), el.inputmask = new Inputmask(),
void 0 !== maskset && (void 0 !== el.inputmask && el.inputmask.remove(), el.inputmask = new Inputmask((void 0), (void 0), (!0)),
el.inputmask.opts = scopedOpts, el.inputmask.noMasksCache = that.noMasksCache, el.inputmask.userOptions = $.extend(!0, {}, that.userOptions),
el.inputmask.el = el, el.inputmask.maskset = maskset, $.data(el, "_inputmask_opts", scopedOpts),
maskScope.call(el.inputmask, {
el.inputmask.isRTL = that.isRTL, el.inputmask.el = el, el.inputmask.maskset = maskset,
$.data(el, "_inputmask_opts", scopedOpts), maskScope.call(el.inputmask, {
action: "mask"
}));
}), elems && elems[0] ? elems[0].inputmask || this : this;
Expand Down Expand Up @@ -1367,7 +1366,7 @@
};
}
function insertTestDefinition(mtoken, element, position) {
var maskdef = opts.definitions[element];
var maskdef = (opts.definitions ? opts.definitions[element] : void 0) || Inputmask.prototype.definitions[element];
position = void 0 !== position ? position : mtoken.matches.length;
var prevMatch = mtoken.matches[position - 1];
if (maskdef && !escaped) {
Expand Down Expand Up @@ -1504,9 +1503,9 @@
}, Inputmask.extendDefaults = function(options) {
$.extend(!0, Inputmask.prototype.defaults, options);
}, Inputmask.extendDefinitions = function(definition) {
$.extend(!0, Inputmask.prototype.defaults.definitions, definition);
$.extend(!0, Inputmask.prototype.definitions, definition);
}, Inputmask.extendAliases = function(alias) {
$.extend(!0, Inputmask.prototype.defaults.aliases, alias);
$.extend(!0, Inputmask.prototype.aliases, alias);
}, Inputmask.format = function(value, options, metadata) {
return Inputmask(options).format(value, metadata);
}, Inputmask.unmask = function(value, options) {
Expand Down Expand Up @@ -2585,7 +2584,7 @@
phoneCodes: [],
mask: function(opts) {
return opts.definitions = {
"#": opts.definitions[9]
"#": Inputmask.prototype.definitions[9]
}, opts.phoneCodes.sort(maskSort);
},
keepStatic: !0,
Expand Down
Loading

0 comments on commit 0d9d795

Please sign in to comment.