inputmask.dependencyLib.js 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. /*!
  2. * inputmask.dependencyLib.js
  3. * http://github.com/RobinHerbots/jquery.inputmask
  4. * Copyright (c) 2010 - 2015 Robin Herbots
  5. * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
  6. * Version: 3.2.1-131
  7. */
  8. !function(factory) {
  9. "function" == typeof define && define.amd ? define(factory) : "object" == typeof exports ? module.exports = factory() : factory();
  10. }(function() {
  11. function indexOf(list, elem) {
  12. for (var i = 0, len = list.length; len > i; i++) if (list[i] === elem) return i;
  13. return -1;
  14. }
  15. function type(obj) {
  16. return null == obj ? obj + "" : "object" == typeof obj || "function" == typeof obj ? class2type[class2type.toString.call(obj)] || "object" : typeof obj;
  17. }
  18. function isArraylike(obj) {
  19. var length = "length" in obj && obj.length, type = jQuery.type(obj);
  20. return "function" === type || jQuery.isWindow(obj) ? !1 : 1 === obj.nodeType && length ? !0 : "array" === type || 0 === length || "number" == typeof length && length > 0 && length - 1 in obj;
  21. }
  22. function isValidElement(elem) {
  23. return void 0 !== elem && null !== elem && document.getElementById(elem.id);
  24. }
  25. function Event(elem) {
  26. return elem instanceof Event ? elem : void (void 0 !== elem && null !== elem && elem !== window && (this[0] = elem.nodeName ? elem : void 0 !== elem[0] && elem[0].nodeName ? elem[0] : document.querySelector(elem),
  27. void 0 !== this[0] && null !== this[0] && (this[0].eventRegistry = this[0].eventRegistry || {})));
  28. }
  29. function DependencyLib(elem) {
  30. return elem instanceof DependencyLib ? elem : this instanceof DependencyLib ? void (void 0 !== elem && null !== elem && elem !== window && (this[0] = elem.nodeName ? elem : void 0 !== elem[0] && elem[0].nodeName ? elem[0] : document.querySelector(elem),
  31. void 0 !== this[0] && null !== this[0] && (this[0].eventRegistry = this[0].eventRegistry || {}))) : new DependencyLib(elem);
  32. }
  33. for (var class2type = {}, classTypes = "Boolean Number String Function Array Date RegExp Object Error".split(" "), nameNdx = 0; nameNdx < classTypes.length; nameNdx++) class2type["[object " + classTypes[nameNdx] + "]"] = classTypes[nameNdx].toLowerCase();
  34. var domEvents = function() {
  35. var domEvents = [];
  36. for (var i in document) "on" !== i.substring(0, 2) || null !== document[i] && "function" != typeof document[i] || domEvents.push(i.substring(2));
  37. return domEvents;
  38. }();
  39. return Event.prototype = {
  40. on: function(events, handler) {
  41. function addEvent(ev, namespace) {
  42. -1 !== domEvents.indexOf(ev) && (elem.addEventListener ? elem.addEventListener(ev, handler, !1) : elem.attachEvent && elem.attachEvent("on" + ev, handler)),
  43. eventRegistry[ev] = eventRegistry[ev] || {}, eventRegistry[ev][namespace] = eventRegistry[ev][namespace] || [],
  44. eventRegistry[ev][namespace].push(handler);
  45. }
  46. if (isValidElement(this[0])) for (var eventRegistry = this[0].eventRegistry, elem = this[0], _events = events.split(" "), endx = 0; endx < _events.length; endx++) {
  47. var nsEvent = _events[endx].split("."), ev = nsEvent[0], namespace = nsEvent[1] || "global";
  48. addEvent(ev, namespace);
  49. }
  50. return this;
  51. },
  52. off: function(events, handler) {
  53. function removeEvent(ev, namespace, handler) {
  54. if (ev in eventRegistry == !0) if (-1 !== domEvents.indexOf(ev) && (elem.removeEventListener ? elem.removeEventListener(ev, handler, !1) : elem.detachEvent && elem.detachEvent("on" + ev, handler)),
  55. "global" === namespace) for (var nmsp in eventRegistry[ev]) eventRegistry[ev][nmsp].splice(eventRegistry[ev][nmsp].indexOf(handler), 1); else eventRegistry[ev][namespace].splice(eventRegistry[ev][namespace].indexOf(handler), 1);
  56. }
  57. function resolveNamespace(ev, namespace) {
  58. var evts = [];
  59. if (ev.length > 0) if (void 0 === handler) for (var hndx = 0, hndL = eventRegistry[ev][namespace].length; hndL > hndx; hndx++) evts.push({
  60. ev: ev,
  61. namespace: namespace.length > 0 ? namespace : "global",
  62. handler: eventRegistry[ev][namespace][hndx]
  63. }); else evts.push({
  64. ev: ev,
  65. namespace: namespace.length > 0 ? namespace : "global",
  66. handler: handler
  67. }); else if (namespace.length > 0) for (var evNdx in eventRegistry) for (var nmsp in eventRegistry[evNdx]) if (nmsp === namespace) if (void 0 === handler) for (var hndx = 0, hndL = eventRegistry[evNdx][nmsp].length; hndL > hndx; hndx++) evts.push({
  68. ev: evNdx,
  69. namespace: nmsp,
  70. handler: eventRegistry[evNdx][nmsp][hndx]
  71. }); else evts.push({
  72. ev: evNdx,
  73. namespace: nmsp,
  74. handler: handler
  75. });
  76. return evts;
  77. }
  78. if (isValidElement(this[0])) for (var eventRegistry = this[0].eventRegistry, elem = this[0], _events = events.split(" "), endx = 0; endx < _events.length; endx++) for (var nsEvent = _events[endx].split("."), offEvents = resolveNamespace(nsEvent[0], nsEvent[1]), i = 0, offEventsL = offEvents.length; offEventsL > i; i++) removeEvent(offEvents[i].ev, offEvents[i].namespace, offEvents[i].handler);
  79. return this;
  80. },
  81. trigger: function(events) {
  82. if (isValidElement(this[0])) for (var eventRegistry = this[0].eventRegistry, elem = this[0], _events = "string" == typeof events ? events.split(" ") : [ events.type ], endx = 0; endx < _events.length; endx++) {
  83. var nsEvent = _events[endx].split("."), ev = nsEvent[0], namespace = nsEvent[1] || "global";
  84. if (-1 !== domEvents.indexOf(ev) && "global" === namespace) {
  85. var evnt;
  86. document.createEvent ? (evnt = new CustomEvent(ev, {
  87. detail: Array.prototype.slice.call(arguments, 1)
  88. }), events.type && DependencyLib.extend(evnt, events), elem.dispatchEvent(evnt)) : (evnt = document.createEventObject(),
  89. evnt.eventType = ev, events.type && DependencyLib.extend(evnt, events), elem.fireEvent("on" + evnt.eventType, evnt));
  90. } else if (void 0 !== eventRegistry[ev]) if (arguments[0] = arguments[0].type ? arguments[0] : DependencyLib.Event(arguments[0]),
  91. "global" === namespace) for (var nmsp in eventRegistry[ev]) for (var i = 0; i < eventRegistry[ev][nmsp].length; i++) eventRegistry[ev][nmsp][i].apply(elem, arguments); else for (var i = 0; i < eventRegistry[ev][namespace].length; i++) eventRegistry[ev][namespace][i].apply(elem, arguments);
  92. }
  93. return this;
  94. }
  95. }, DependencyLib.prototype = Event.prototype, DependencyLib.isFunction = function(obj) {
  96. return "function" === type(obj);
  97. }, DependencyLib.noop = function() {}, DependencyLib.parseJSON = function(data) {
  98. return JSON.parse(data + "");
  99. }, DependencyLib.isArray = Array.isArray, DependencyLib.inArray = function(elem, arr, i) {
  100. return null == arr ? -1 : indexOf(arr, elem, i);
  101. }, DependencyLib.valHooks = void 0, DependencyLib.isWindow = function(obj) {
  102. return null != obj && obj === obj.window;
  103. }, DependencyLib.isPlainObject = function(obj) {
  104. return "object" !== type(obj) || obj.nodeType || DependencyLib.isWindow(obj) ? !1 : obj.constructor && !class2type.hasOwnProperty.call(obj.constructor.prototype, "isPrototypeOf") ? !1 : !0;
  105. }, DependencyLib.extend = function() {
  106. var options, name, src, copy, copyIsArray, clone, target = arguments[0] || {}, i = 1, length = arguments.length, deep = !1;
  107. for ("boolean" == typeof target && (deep = target, target = arguments[i] || {},
  108. i++), "object" == typeof target || DependencyLib.isFunction(target) || (target = {}),
  109. i === length && (target = this, i--); length > i; i++) if (null != (options = arguments[i])) for (name in options) src = target[name],
  110. copy = options[name], target !== copy && (deep && copy && (DependencyLib.isPlainObject(copy) || (copyIsArray = DependencyLib.isArray(copy))) ? (copyIsArray ? (copyIsArray = !1,
  111. clone = src && DependencyLib.isArray(src) ? src : []) : clone = src && DependencyLib.isPlainObject(src) ? src : {},
  112. target[name] = DependencyLib.extend(deep, clone, copy)) : void 0 !== copy && (target[name] = copy));
  113. return target;
  114. }, DependencyLib.each = function(obj, callback) {
  115. var value, i = 0;
  116. if (isArraylike(obj)) for (var length = obj.length; length > i && (value = callback.call(obj[i], i, obj[i]),
  117. value !== !1); i++) ; else for (i in obj) if (value = callback.call(obj[i], i, obj[i]),
  118. value === !1) break;
  119. return obj;
  120. }, DependencyLib.map = function(elems, callback) {
  121. var value, i = 0, length = elems.length, isArray = isArraylike(elems), ret = [];
  122. if (isArray) for (;length > i; i++) value = callback(elems[i], i), null != value && ret.push(value); else for (i in elems) value = callback(elems[i], i),
  123. null != value && ret.push(value);
  124. return [].concat(ret);
  125. }, DependencyLib.Event = function(type) {
  126. var _defaultPrevented = !1;
  127. return {
  128. preventDefault: function() {
  129. _defaultPrevented = !0;
  130. },
  131. isDefaultPrevented: function() {
  132. return _defaultPrevented;
  133. },
  134. altKey: !1,
  135. charCode: 0,
  136. ctrlKey: !1,
  137. currentTarget: null,
  138. keyCode: 0,
  139. metaKey: !1,
  140. shiftKey: !1,
  141. target: null,
  142. type: type,
  143. which: 0
  144. };
  145. }, DependencyLib.data = function(owner, key, value) {
  146. return void 0 === value ? owner.__data ? owner.__data[key] : null : (owner.__data = owner.__data || {},
  147. void (owner.__data[key] = value));
  148. }, window.dependencyLib = DependencyLib, DependencyLib;
  149. });