inputmask.dependencyLib.js 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  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-104
  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 Event(elem) {
  23. void 0 !== elem && null !== elem && (this[0] = elem, this[0].eventRegistry = this[0].eventRegistry || {});
  24. }
  25. function DependencyLib(elem) {
  26. return this instanceof DependencyLib ? void 0 : new Event(elem);
  27. }
  28. 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();
  29. var domEvents = function() {
  30. var domEvents = [];
  31. for (var i in document) "on" !== i.substring(0, 2) || null !== document[i] && "function" != typeof document[i] || domEvents.push(i.substring(2));
  32. return domEvents;
  33. }();
  34. return Event.prototype = {
  35. on: function(events, handler) {
  36. function addEvent(ev, namespace) {
  37. -1 !== domEvents.indexOf(ev) && "global" === namespace && (elem.addEventListener ? elem.addEventListener(ev, handler, !1) : elem.attachEvent && elem.attachEvent("on" + ev, handler)),
  38. eventRegistry[ev] = eventRegistry[ev] || {}, eventRegistry[ev][namespace] = eventRegistry[ev][namespace] || [],
  39. eventRegistry[ev][namespace].push(handler);
  40. }
  41. if (void 0 !== this[0]) for (var eventRegistry = this[0].eventRegistry, elem = this[0], _events = events.split(" "), endx = 0; endx < _events.length; endx++) {
  42. var nsEvent = _events[endx].split("."), ev = nsEvent[0], namespace = nsEvent[1] || "global";
  43. addEvent(ev, namespace), "global" !== namespace && addEvent(ev, "global");
  44. }
  45. return this;
  46. },
  47. off: function(events, handler) {
  48. function removeEvent(ev, namespace) {
  49. ev in eventRegistry == !0 && (-1 !== domEvents.indexOf(ev) && (elem.removeEventListener ? elem.removeEventListener(ev, handler, !1) : elem.detachEvent && elem.detachEvent("on" + ev, handler)),
  50. eventRegistry[ev][namespace].splice(eventRegistry[ev][namespace].indexOf(handler), 1),
  51. "global" !== namespace && eventRegistry[ev].global.splice(eventRegistry[ev].global.indexOf(handler), 1));
  52. }
  53. function resolveNamespace(ev, namespace) {
  54. var evts = [];
  55. return evts.push({
  56. ev: ev,
  57. namespace: namespace
  58. }), evts;
  59. }
  60. if (void 0 !== 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);
  61. return this;
  62. },
  63. trigger: function(events) {
  64. if (void 0 !== this[0]) for (var eventRegistry = this[0].eventRegistry, elem = this[0], _events = events.split(" "), endx = 0; endx < _events.length; endx++) {
  65. var nsEvent = _events[endx].split("."), ev = nsEvent[0], namespace = nsEvent[1] || "global";
  66. if (-1 !== domEvents.indexOf(ev) && "global" === namespace) {
  67. var evnt;
  68. document.createEvent ? (evnt = new CustomEvent(ev, {
  69. detail: Array.prototype.slice.call(arguments, 1)
  70. }), elem.dispatchEvent(evnt)) : (evnt = document.createEventObject(), evnt.eventType = ev,
  71. elem.fireEvent("on" + evnt.eventType, evnt));
  72. } else if (void 0 !== eventRegistry[ev]) for (var i = 0; i < eventRegistry[ev][namespace].length; i++) arguments[0] = arguments[0].type ? arguments[0] : DependencyLib.Event(arguments[0]),
  73. eventRegistry[ev][namespace][i].apply(this, arguments);
  74. }
  75. return this;
  76. }
  77. }, DependencyLib.isFunction = function(obj) {
  78. return "function" === type(obj);
  79. }, DependencyLib.noop = function() {}, DependencyLib.parseJSON = function(data) {
  80. return JSON.parse(data + "");
  81. }, DependencyLib.isArray = Array.isArray, DependencyLib.inArray = function(elem, arr, i) {
  82. return null == arr ? -1 : indexOf(arr, elem, i);
  83. }, DependencyLib.valHooks = void 0, DependencyLib.isWindow = function(obj) {
  84. return null != obj && obj === obj.window;
  85. }, DependencyLib.isPlainObject = function(obj) {
  86. return "object" !== type(obj) || obj.nodeType || DependencyLib.isWindow(obj) ? !1 : obj.constructor && !class2type.hasOwnProperty.call(obj.constructor.prototype, "isPrototypeOf") ? !1 : !0;
  87. }, DependencyLib.extend = function() {
  88. var options, name, src, copy, copyIsArray, clone, target = arguments[0] || {}, i = 1, length = arguments.length, deep = !1;
  89. for ("boolean" == typeof target && (deep = target, target = arguments[i] || {},
  90. i++), "object" == typeof target || DependencyLib.isFunction(target) || (target = {}),
  91. i === length && (target = this, i--); length > i; i++) if (null != (options = arguments[i])) for (name in options) src = target[name],
  92. copy = options[name], target !== copy && (deep && copy && (DependencyLib.isPlainObject(copy) || (copyIsArray = DependencyLib.isArray(copy))) ? (copyIsArray ? (copyIsArray = !1,
  93. clone = src && DependencyLib.isArray(src) ? src : []) : clone = src && DependencyLib.isPlainObject(src) ? src : {},
  94. target[name] = DependencyLib.extend(deep, clone, copy)) : void 0 !== copy && (target[name] = copy));
  95. return target;
  96. }, DependencyLib.each = function(obj, callback) {
  97. var value, i = 0;
  98. if (isArraylike(obj)) for (var length = obj.length; length > i && (value = callback.call(obj[i], i, obj[i]),
  99. value !== !1); i++) ; else for (i in obj) if (value = callback.call(obj[i], i, obj[i]),
  100. value === !1) break;
  101. return obj;
  102. }, DependencyLib.map = function(elems, callback) {
  103. var value, i = 0, length = elems.length, isArray = isArraylike(elems), ret = [];
  104. 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),
  105. null != value && ret.push(value);
  106. return [].concat(ret);
  107. }, DependencyLib.Event = function(type) {
  108. return {
  109. preventDefault: DependencyLib.noop,
  110. altKey: !1,
  111. charCode: 0,
  112. ctrlKey: !1,
  113. currentTarget: null,
  114. keyCode: 0,
  115. metaKey: !1,
  116. shiftKey: !1,
  117. target: null,
  118. type: type,
  119. which: 0
  120. };
  121. }, DependencyLib.data = function(owner, key, value) {
  122. return void 0 === value ? owner.__data ? owner.__data[key] : null : (owner.__data = owner.__data || {},
  123. void (owner.__data[key] = value));
  124. }, window.dependencyLib = DependencyLib, DependencyLib;
  125. });