From 6b908d3f747a9d042a96a0c50fa32df74bdaedb9 Mon Sep 17 00:00:00 2001 From: Hexydec Date: Wed, 19 Dec 2018 10:16:37 +0000 Subject: [PATCH] Updated $.fn.trigger() to make a special case for the submit event, where when triggered it doesn't fire any attached event handlers. It now uses a custom event to do this. --- dist/dabby.es5.js | 3 ++- dist/dabby.es5.js.map | 2 +- dist/dabby.es5.min.js | 2 +- dist/dabby.js | 4 +++- dist/dabby.min.js | 2 +- src/events/trigger/trigger.js | 4 +++- 6 files changed, 11 insertions(+), 6 deletions(-) diff --git a/dist/dabby.es5.js b/dist/dabby.es5.js index 68b68c8..4667775 100644 --- a/dist/dabby.es5.js +++ b/dist/dabby.es5.js @@ -1275,7 +1275,8 @@ function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterat var i = this.length; while (i--) { - if ($.isFunction(this[i][name])) { + // native submit event doesn't trigger event handlers + if (name !== "submit" && $.isFunction(this[i][name])) { this[i][name](); } else { var evt = new CustomEvent(name, { diff --git a/dist/dabby.es5.js.map b/dist/dabby.es5.js.map index f1a513c..6449dc1 100644 --- a/dist/dabby.es5.js.map +++ b/dist/dabby.es5.js.map @@ -1 +1 @@ -{"version":3,"sources":["dabby.es5.js"],"names":["global","factory","exports","module","define","amd","$","Array","from","arrayLike","mapFn","thisArg","arr","slice","call","map","window","CustomEvent","CustomEvent$1","event","params","bubbles","cancelable","detail","undefined","evt","document","createEvent","initCustomEvent","prototype","Event","Element","matches","msMatchesSelector","NodeList","forEach","callback","i","length","Object","assign","defineProperty","value","target","varArgs","TypeError","to","index","arguments","nextSource","nextKey","hasOwnProperty","writable","configurable","dabby","selector","context","filter","node","indexOf","nodeType","isWindow","nodes","match","isFunction","readyState","addEventListener","once","each","obj","concat","querySelectorAll","createElement","attr","implementation","createHTMLDocument","body","innerHTML","children","fn","isArr","isArray","keys","len","parseInt","func","constructor","Function","isPlainObject","getPrototypeOf","proto","toString","extend","arrs","merge","sources","source","shift","val","apply","param","add","key","push","encodeURIComponent","item","join","ajax","url","settings","method","cache","data","dataType","async","crossDomain","scriptCharset","jsonp","jsonpCallback","Date","now","headers","xhr","XMLHttpRequest","contentType","statusCode","username","password","split","pop","sync","script","FormData","charset","load","error","response","complete","src","head","appendChild","status","responseText","JSON","parse","e","onload","types","ontimeout","onabort","open","setRequestHeader","send","name","success","type","isFunc","toUpperCase","getScript","filterNodes","not","n","uri","html","outerHTML","getVal","current","values","funcVal","objVal","funcCurrent","create","result","String","selected","checked","serialize","disabled","all","until","parent","parentNode","Node","ELEMENT_NODE","get","events","t","parents","args","preventDefault","stopPropagation","capture","prop","isObj","on","style","cssText","className","textContent","removeAttribute","setAttribute","getAttribute","funcs","f","substr","cls","state","classList","camelise","replace","text","letter","setCss","props","isNaN","css","getComputedStyle","output","ret","temp","dataset","stringify","hasClass","contains","getProp","properties","toLowerCase","tmp","removeProp","display","offset","coords","pos","position","top","parseFloat","paddingTop","borderTopWidth","left","paddingLeft","borderLeftWidth","doc","documentElement","rect","getBoundingClientRect","scrollTop","scrollLeft","offsetParent","offsetLeft","offsetTop","tl","scroll","dim","width","wh","whu","io","DOCUMENT_NODE","trigger","dispatchEvent","off","removeEventListener","splice","clone","cloneNode","empty","firstChild","removeChild","before","prepend","append","after","pre","elems","arg","backwards","forwards","insertAdjacentElement","insertBefore","prependTo","appendTo","insertAfter","replaceChild","start","end","unwrap","wrapAll","firstElementChild","wrap","closest","eq","find","first","has","subject","last","next","sibling","siblings","child"],"mappings":"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","sourcesContent":["/*! dabbyjs v0.9.6 by Will Earp - https://github.com/hexydec/dabby */\r\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global.$ = factory());\n}(this, (function () { 'use strict';\n\n if (!Array.from) {\r\n \tArray.from = function (arrayLike, mapFn, thisArg) {\r\n \t\tvar arr = [].slice.call(arrayLike);\r\n \t\tif (typeof mapFn === \"function\") {\r\n \t\t\tarr = arr.map(mapFn, thisArg);\r\n \t\t}\r\n \t\treturn arr;\r\n \t};\r\n }\n\n // CustomEvent is not supported in IE11\r\n if (typeof window.CustomEvent !== \"function\") {\r\n \tfunction CustomEvent$1(event, params) {\r\n \t\tparams = params || {bubbles: false, cancelable: false, detail: undefined};\r\n \t\tconst evt = document.createEvent(\"CustomEvent\");\r\n \t\tevt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\r\n \t\treturn evt;\r\n \t}\r\n\r\n \tCustomEvent$1.prototype = window.Event.prototype;\r\n \twindow.CustomEvent = CustomEvent$1;\r\n }\n\n // support Element.matches() in IE and older Webkit\r\n if (!Element.prototype.matches) {\r\n Element.prototype.matches = Element.prototype.msMatchesSelector;\r\n }\n\n if (!NodeList.prototype.forEach) {\r\n NodeList.prototype.forEach = function (callback, thisArg) {\r\n thisArg = thisArg || window;\r\n for (var i = 0; i < this.length; i++) {\r\n callback.call(thisArg, this[i], i, this);\r\n }\r\n };\r\n }\n\n if (typeof Object.assign !== \"function\") {\r\n \tObject.defineProperty(Object, \"assign\", {\r\n \t\tvalue: function assign(target, varArgs) { // .length of function is 2\r\n \t\t\tif (target == null) { // TypeError if undefined or null\r\n \t\t\t\tthrow new TypeError('Cannot convert undefined or null to object');\r\n \t\t\t}\r\n\r\n \t\t\tvar to = Object(target);\r\n\r\n \t\t\tfor (var index = 1; index < arguments.length; index++) {\r\n \t\t\t\tvar nextSource = arguments[index];\r\n\r\n \t\t\t\tif (nextSource != null) { // Skip over if undefined or null\r\n \t\t\t\t\tfor (var nextKey in nextSource) {\r\n \t\t\t\t\t\t// Avoid bugs when hasOwnProperty is shadowed\r\n \t\t\t\t\t\tif (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {\r\n \t\t\t\t\t\t\tto[nextKey] = nextSource[nextKey];\r\n \t\t\t\t\t\t}\r\n \t\t\t\t\t}\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t\treturn to;\r\n \t\t},\r\n \t\twritable: true,\r\n \t\tconfigurable: true\r\n \t});\r\n }\n\n const $ = function dabby(selector, context) {\r\n\r\n \t// if no selector, return empty colletion\r\n \tif (this instanceof dabby) {\r\n \t\tselector = Array.from(selector).filter(node => [1, 9, 11].indexOf(node.nodeType) > -1 || $.isWindow(node)); // only element, document, documentFragment and window\r\n \t\tthis.length = selector.length;\r\n \t\tObject.assign(this, selector);\r\n \t\treturn this;\r\n \t}\r\n\r\n \t// $ collection\r\n \tif (selector instanceof dabby) {\r\n \t\treturn selector;\r\n \t}\r\n\r\n \tlet nodes = [],\r\n \t\tmatch;\r\n\r\n \t// gather nodes\r\n \tif (selector) {\r\n\r\n \t\t// single node\r\n \t\tif (selector.nodeType || $.isWindow(selector)) {\r\n \t\t\tnodes = [selector];\r\n\r\n \t\t// ready function\r\n \t\t} else if ($.isFunction(selector)) {\r\n \t\t\tif (document.readyState !== \"loading\") {\r\n \t\t\t\tselector.call(document, $);\r\n \t\t\t} else {\r\n \t\t\t\tdocument.addEventListener(\"DOMContentLoaded\", () => {selector.call(document, $);}, {once: true});\r\n \t\t\t}\r\n\r\n \t\t// array|NodeList|HTMLCollection of nodes\r\n \t\t} else if (typeof selector !== \"string\") {\r\n \t\t\tnodes = selector;\r\n\r\n \t\t// CSS selector\r\n \t\t} else if (selector.indexOf(\"<\") === -1) {\r\n \t\t\t$(context || document).each((i, obj) => {\r\n \t\t\t\tnodes = nodes.concat(Array.from(obj.querySelectorAll(selector)));\r\n \t\t\t});\r\n\r\n \t\t// create a single node and attach properties\r\n \t\t} else if ((match = selector.match(/^<([a-z0-9]+)(( ?\\/)?|><\\/\\1)>$/i)) !== null) {\r\n \t\t\tnodes = [document.createElement(match[1])];\r\n\r\n \t\t\t// context is CSS attributes\r\n \t\t\tif (context instanceof Object) {\r\n \t\t\t\t$(nodes).attr(context);\r\n \t\t\t}\r\n\r\n \t\t// parse HTML into nodes\r\n \t\t} else {\r\n \t\t\tconst obj = document.implementation.createHTMLDocument(\"\");\r\n \t\t\tobj.body.innerHTML = selector;\r\n \t\t\tnodes = obj.body.children;\r\n \t\t}\r\n \t}\r\n \treturn new dabby(nodes);\r\n };\r\n\r\n // alias functions\r\n $.fn = $.prototype;\n\n $.each = (obj, callback) => {\r\n \tconst isArr = Array.isArray(obj),\r\n \t\tkeys = Object.keys(obj),\r\n \t\tlen = keys.length;\r\n\r\n \tfor (let i = 0; i < len; i++) {\r\n \t\tif (callback.call(obj[keys[i]], isArr ? parseInt(keys[i]) : keys[i], obj[keys[i]]) === false) {\r\n \t\t\tbreak; // stop if callback returns false\r\n \t\t}\r\n \t}\r\n \treturn obj;\r\n };\n\n $.fn.each = function (callback) {\r\n \t$.each(Array.from(this), callback);\r\n \treturn this;\r\n };\n\n $.isWindow = obj => obj !== null && obj === obj.window;\n\n $.isFunction = func => func && func.constructor === Function;\n\n //import \"../attributes/attr/attr.js\"; // must add attr yourself if you want this functionality, as it could make your build smaller\n\n $.isPlainObject = obj => {\r\n\r\n \t// Basic check for Type object that's not null\r\n \tif (typeof obj === \"object\" && obj !== null) {\r\n\r\n \t\t// If Object.getPrototypeOf supported, use it\r\n \t if (typeof Object.getPrototypeOf === 'function') {\r\n \t\t\tlet proto = Object.getPrototypeOf(obj);\r\n \t\t\treturn proto === Object.prototype || proto === null;\r\n \t }\r\n\r\n \t // Otherwise, use internal class\r\n \t // This should be reliable as if getPrototypeOf not supported, is pre-ES5\r\n \t\treturn Object.prototype.toString.call(obj) === \"[object Object]\";\r\n \t}\r\n\r\n \t// Not an object\r\n \treturn false;\r\n };\n\n $.extend = (...arrs) => {\r\n \tif (arrs[0] === true) {\r\n\r\n \t\t// merge function will recursively merge items\r\n \t\tfunction merge(target, ...sources) {\r\n \t\t\tif (sources.length) {\r\n\r\n \t\t\t\t// work on next source\r\n \t\t\t\tconst source = sources.shift();\r\n \t\t\t\tif ($.isPlainObject(target) && $.isPlainObject(source)) {\r\n\r\n \t\t\t\t\t// loop through each property\r\n \t\t\t\t\t$.each(source, (i, val) => {\r\n\r\n \t\t\t\t\t\t// merge recursively if source is object, if target is not object, overwrite\r\n \t\t\t\t\t\tif ($.isPlainObject(val)) {\r\n \t\t\t\t\t\t\ttarget[i] = $.isPlainObject(target[i]) ? merge(target[i], val) : val;\r\n\r\n \t\t\t\t\t\t// when source property is value just overwrite\r\n \t\t\t\t\t\t} else {\r\n \t\t\t\t\t\t\ttarget[i] = val;\r\n \t\t\t\t\t\t}\r\n \t\t\t\t\t});\r\n \t\t\t\t}\r\n\r\n \t\t\t\t// merge next source\r\n \t\t\t return merge(target, ...sources);\r\n \t\t\t}\r\n \t\t\treturn target;\r\n \t\t}\r\n \t\treturn merge.apply(null, arrs.slice(1));\r\n \t}\r\n \treturn Object.assign.apply(null, arrs);\r\n };\n\n $.param = obj => {\r\n \tlet params = [],\r\n \t\tadd = (key, value, params) => {\r\n \t\t\tlet isArr = Array.isArray(value);\r\n \t\t\tif (isArr || typeof value === \"object\") {\r\n \t\t\t\t$.each(value, (i, val) => {\r\n \t\t\t\t\tparams = add(`${key}[${isArr ? \"\" : i}]`, val, params);\r\n \t\t\t\t});\r\n \t\t\t} else {\r\n \t\t\t\tif ($.isFunction(value)) {\r\n \t\t\t\t\tvalue = value();\r\n \t\t\t\t}\r\n \t\t\t\tparams.push(encodeURIComponent(key) + \"=\" + encodeURIComponent(value === null ? \"\" : value));\r\n \t\t\t}\r\n \t\t\treturn params;\r\n \t\t};\r\n\r\n \t// process values\r\n \t$.each(obj, (key, item) => {\r\n \t\tparams = add(key, item, params);\r\n \t});\r\n \treturn params.join(\"&\");\r\n };\n\n $.ajax = (url, settings) => {\r\n\r\n \t// normalise args\r\n \tif (typeof url === \"object\") {\r\n \t\tsettings = url;\r\n \t} else {\r\n \t\tif (typeof settings !== \"object\") {\r\n \t\t\tsettings = {};\r\n \t\t}\r\n \t\tsettings.url = url;\r\n \t}\r\n\r\n \t// set default settings\r\n \tsettings = Object.assign({\r\n \t\tmethod: \"GET\",\r\n \t\tcache: null, // start will null so we can see if explicitly set\r\n \t\tdata: null,\r\n \t\tdataType: null, // only changes behavior with json, jsonp, script\r\n \t\tasync: true,\r\n \t\tcrossDomain: false,\r\n \t\tscriptCharset: null,\r\n \t\tjsonp: \"callback\",\r\n \t\tjsonpCallback: \"dabby\" + Date.now(),\r\n \t\theaders: {\r\n \t\t\t\"X-Requested-With\": \"XMLHttpRequest\"\r\n \t\t},\r\n \t\txhr: () => new XMLHttpRequest(),\r\n \t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\r\n \t\tcontext: null,\r\n \t\tstatusCode: {},\r\n \t\tusername: null,\r\n \t\tpassword: null\r\n \t}, settings);\r\n\r\n \t// determine datatype\r\n \tif (!settings.dataType && settings.url.split(\"?\")[0].split(\".\").pop() === \"js\") {\r\n \t\tsettings.dataType = \"script\";\r\n \t}\r\n\r\n \tlet sync = [\"script\", \"jsonp\"].indexOf(settings.dataType) > -1,\r\n \t\tjoin = settings.url.indexOf(\"?\") > -1 ? \"&\" : \"?\",\r\n \t\tscript, data;\r\n\r\n \t// add data to query string\r\n \tif (settings.data) {\r\n \t\tif (typeof settings.data === \"string\" || settings.data instanceof FormData) {\r\n \t\t\tdata = settings.data;\r\n \t\t} else {\r\n \t\t\tdata = $.param(settings.data);\r\n \t\t}\r\n \t}\r\n \tif (data && settings.method === \"GET\") {\r\n \t\tsettings.url += join + data;\r\n \t\tjoin = \"&\";\r\n \t}\r\n\r\n \t// add cache buster\r\n \tif (settings.cache || (settings.cache === null && sync)) {\r\n \t\tsettings.url += join + \"_=\" + (+new Date());\r\n \t\tjoin = \"&\";\r\n \t}\r\n\r\n \t// fetch script\r\n \tif (sync || settings.crossDomain) {\r\n \t\tscript = document.createElement(\"script\");\r\n \t\tif (settings.scriptCharset) {\r\n \t\t\tscript.charset = settings.scriptCharset;\r\n \t\t}\r\n\r\n \t\t// add callback parameter\r\n \t\tif (settings.dataType === \"jsonp\") {\r\n \t\t\tsettings.url += join + settings.jsonp + \"=\" + settings.jsonpCallback;\r\n \t\t}\r\n\r\n \t\t// setup event callbacks\r\n \t\t$.each({\r\n \t\t\tload: \"success\",\r\n \t\t\terror: \"error\"\r\n \t\t}, (key, value) => {\r\n \t\t\tscript.addEventListener(key, () => {\r\n \t\t\t\tconst response = settings.dataType === \"jsonp\" ? window[settings.jsonpCallback] || null : null;\r\n \t\t\t\t[settings[value], settings.complete].forEach(callback => {\r\n \t\t\t\t\tif (callback) {\r\n \t\t\t\t\t\tcallback.apply(settings.context, callback === settings.complete ? [null, value] : [response, value]);\r\n \t\t\t\t\t}\r\n \t\t\t\t});\r\n \t\t\t}, {once: true});\r\n \t\t});\r\n\r\n \t\tscript.src = settings.url;\r\n \t\tscript.async = settings.async;\r\n \t\tdocument.head.appendChild(script);\r\n\r\n \t// make xhr request\r\n \t} else {\r\n \t\tconst xhr = settings.xhr(),\r\n \t\t\tcallback = (xhr, status) => {\r\n \t\t\t\tlet response = xhr.responseText;\r\n\r\n \t\t\t\t// parse JSON\r\n \t\t\t\tif ([\"json\", null, undefined].indexOf(settings.dataType) > -1) {\r\n \t\t\t\t\ttry {\r\n \t\t\t\t\t\tresponse = JSON.parse(response);\r\n \t\t\t\t\t} catch (e) {\r\n \t\t\t\t\t\t// do nothing\r\n \t\t\t\t\t}\r\n \t\t\t\t}\r\n\r\n \t\t\t\t// run callbacks\r\n \t\t\t\t[settings.statusCode[xhr.status], settings[status], settings.complete].forEach((callback, i) => {\r\n \t\t\t\t\tif (callback) {\r\n \t\t\t\t\t\tcallback.apply(settings.context, i < 2 ? [response, status, xhr] : [xhr, status]);\r\n \t\t\t\t\t}\r\n \t\t\t\t});\r\n \t\t\t};\r\n\r\n \t\t// callbacks\r\n \t\txhr.onload = () => {\r\n \t\t\tconst types = {\r\n \t\t\t\t200: \"success\",\r\n \t\t\t\t204: \"nocontent\",\r\n \t\t\t\t304: \"notmodified\"\r\n \t\t\t};\r\n \t\t\tcallback(xhr, types[xhr.status] || \"error\");\r\n \t\t};\r\n \t\txhr.ontimeout = () => {\r\n \t\t\tcallback(xhr, \"timeout\");\r\n \t\t};\r\n \t\txhr.onabort = () => {\r\n \t\t\tcallback(xhr, \"abort\");\r\n \t\t};\r\n\r\n \t\txhr.open(settings.method, settings.url, settings.async, settings.username, settings.password);\r\n\r\n \t\t// add headers\r\n \t\tif (settings.contentType) {\r\n \t\t\tsettings.headers[\"Content-Type\"] = settings.contentType;\r\n \t\t}\r\n \t\t$.each(settings.headers, (key, value) => {\r\n \t\t\txhr.setRequestHeader(key, value);\r\n \t\t});\r\n\r\n \t\t// send request\r\n \t\txhr.send(settings.method === \"GET\" ? null : data);\r\n \t\treturn xhr;\r\n \t}\r\n };\n\n [\"get\", \"post\"].forEach(name => {\r\n \t$[name] = (url, data, success, type) => {\r\n \t\tconst isFunc = $.isFunction(data);\r\n \t\tlet settings = typeof(url) === \"object\" ? url : {\r\n \t\t\turl: url,\r\n \t\t\tdata: isFunc ? {} : data,\r\n \t\t\tsuccess: isFunc ? data : success,\r\n \t\t\tdataType: isFunc ? success : type\r\n \t\t};\r\n \t\tsettings.method = name.toUpperCase();\r\n \t\treturn $.ajax(settings);\r\n \t};\r\n });\n\n $.getScript = (url, success) => $.ajax({\r\n \turl: url,\r\n \tdataType: \"script\",\r\n \tsuccess: success\r\n });\n\n var filterNodes = (dabby, filter, context, not) => {\r\n \tlet func,\r\n \t\tnodes = dabby.nodeType ? [dabby] : Array.from(dabby);\r\n\r\n \t// sort out args\r\n \tif (typeof context === \"boolean\") {\r\n \t\tnot = context;\r\n \t\tcontext = null;\r\n \t}\r\n\r\n \t// custom filter function\r\n \tif ($.isFunction(filter)) {\r\n \t\tfunc = filter;\r\n\r\n \t// nodes\r\n \t} else {\r\n\r\n \t\t// normalise filters\r\n \t\tif (typeof filter === \"string\") {\r\n \t\t\tfilter = [filter];\r\n \t\t} else {\r\n \t\t\tfilter = Array.from($(filter, context));\r\n \t\t}\r\n\r\n \t\t// default filter function\r\n \t\tfunc = (n, node) => {\r\n \t\t\tlet i = filter.length;\r\n \t\t\twhile (i--) {\r\n \t\t\t\tif (typeof(filter[i]) === \"string\" && node.matches ? node.matches(filter[i]) : node === filter[i]) {\r\n \t\t\t\t\treturn true;\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t\treturn false;\r\n \t\t};\r\n \t}\r\n \treturn nodes.filter((item, i) => func.call(item, i, item) === !not, nodes);\r\n }\n\n [\"filter\", \"not\", \"is\"].forEach(name => {\r\n \t$.fn[name] = function (selector) {\r\n \t\tconst nodes = filterNodes(this, selector, name === \"not\");\r\n \t\treturn name === \"is\" ? !!nodes.length : $(nodes);\r\n \t};\r\n });\n\n $.fn.load = function (url, data, success) {\r\n \tif (this[0]) {\r\n\r\n \t\t// get selector from URL\r\n \t\turl = url.split(\" \", 2);\r\n \t\tconst uri = url[0],\r\n \t\t\tselector = url[1];\r\n\r\n \t\t// check for data\r\n \t\tif ($.isFunction(data)) {\r\n \t\t\tsuccess = data;\r\n \t\t\tdata = undefined;\r\n \t\t}\r\n\r\n \t\t// make AJAX request\r\n \t\t$.ajax(uri, {\r\n \t\t\tdata: data,\r\n \t\t\ttype: data instanceof Object ? \"POST\" : \"GET\",\r\n \t\t\tsuccess: (response, status, xhr) => {\r\n\r\n \t\t\t\t// if a selector is specified, find it in the returned document\r\n \t\t\t\tlet html = \"\",\r\n \t\t\t\t\ti = this.length;\r\n\r\n \t\t\t\t// refine by selector if supplied\r\n \t\t\t\tif (selector) {\r\n \t\t\t\t\t$(response).filter(selector).each((key, obj) => {\r\n \t\t\t\t\t\thtml += obj.outerHTML;\r\n \t\t\t\t\t});\r\n \t\t\t\t} else {\r\n \t\t\t\t\thtml = response;\r\n \t\t\t\t}\r\n\r\n \t\t\t\t// set HTML to nodes in collection\r\n \t\t\t\twhile (i--) {\r\n \t\t\t\t\tthis[i].innerHTML = html;\r\n\r\n \t\t\t\t\t// fire success callback on nodes\r\n \t\t\t\t\tif (success) {\r\n \t\t\t\t\t\tsuccess.call(this[i], response, status, xhr);\r\n \t\t\t\t\t}\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t});\r\n \t}\r\n \treturn this;\r\n };\n\n var getVal = (obj, val, current) => {\r\n \tlet i = obj.length,\r\n \t\tvalues = [],\r\n \t\tfuncVal = $.isFunction(val),\r\n \t\tobjVal = funcVal ? 0 : $.isPlainObject(val),\r\n \t\tfuncCurrent = $.isFunction(current);\r\n \twhile (i--) {\r\n \t\tvalues[i] = funcVal ? val.call(obj[i], i, funcCurrent ? current(obj[i]) : current) : (objVal ? Object.create(val) : val);\r\n \t}\r\n \treturn values;\r\n }\n\n $.map = (obj, callback) => {\r\n \tlet arr = [];\r\n \t$.each(obj, (i, item) => {\r\n \t\tconst result = callback.call(window, item, i);\r\n \t\tif ([null, undefined].indexOf(result) === -1) {\r\n \t\t\tarr = arr.concat(Array.isArray(result) ? result : [result]);\r\n \t\t}\r\n \t});\r\n \treturn arr;\r\n };\n\n $.fn.val = function (value) {\r\n\r\n \t// set value\r\n \tif (value !== undefined) {\r\n \t\tlet i = this.length,\r\n \t\t\tvalues = getVal(this, value, obj => obj.val());\r\n\r\n \t\twhile (i--) {\r\n\r\n \t\t\t// string value, just set to value attribute\r\n \t\t\tif (!Array.isArray(values[i])) {\r\n \t\t\t\tthis[i].value = values[i];\r\n\r\n \t\t\t// array on select, set matching values to selected\r\n \t\t\t} else if (this[i].type === \"select-multiple\") {\r\n \t\t\t\tvalues[i] = values[i].map(val => String(val));\r\n \t\t\t\t$(\"option\", this[i]).each((key, obj) => {\r\n \t\t\t\t\tobj.selected = values[i].indexOf(obj.value) > -1;\r\n \t\t\t\t});\r\n\r\n \t\t\t// set the checked attribute for radios and checkbox\r\n \t\t\t} else {\r\n \t\t\t\tthis[i].checked = values[i].indexOf(this[i].value) > -1;\r\n \t\t\t}\r\n \t\t}\r\n \t\treturn this;\r\n \t}\r\n\r\n \t// read value from first node\r\n \tif (this[0]) {\r\n\r\n \t\t// get multiple values\r\n \t\tif (this[0].type === \"select-multiple\") {\r\n \t\t\tlet values = [];\r\n \t\t\t$(\"option\", this[0]).each((key, obj) => {\r\n \t\t\t\tif (obj.selected) {\r\n \t\t\t\t\tvalues.push(String(obj.value));\r\n \t\t\t\t}\r\n \t\t\t});\r\n \t\t\treturn values;\r\n \t\t}\r\n\r\n \t\t// get single value\r\n \t\tif (this[0].type !== \"checkbox\" || this[0].checked) {\r\n \t\t\treturn String(this[0].value);\r\n \t\t}\r\n \t}\r\n };\n\n $.fn.serialize = function () {\r\n \tconst selector = \"input[name]:not([type=file]):not([type=submit]):not([type=radio]):not([type=checkbox]),input[name]:checked,textarea[name],select[name]\",\r\n \t\tadd = (name, value, params) => {\r\n \t\t\tlet match;\r\n\r\n \t\t\tif ((match = name.match(/([^\\[]*)\\[([^\\]]*)\\](.*)/)) !== null) {\r\n \t\t\t\tname = match[1];\r\n \t\t\t\tlet arr = add(match[2] + match[3], value, params[name] || {});\r\n \t\t\t\tvalue = arr;\r\n \t\t\t}\r\n\r\n \t\t\tif (name !== \"\") {\r\n \t\t\t\tparams[name] = value;\r\n \t\t\t} else {\r\n \t\t\t\tif (!Array.isArray(params)) {\r\n \t\t\t\t\tparams = [];\r\n \t\t\t\t}\r\n \t\t\t\tparams = params.concat(Array.isArray(value) ? value : [value]);\r\n \t\t\t}\r\n \t\t\treturn params;\r\n \t\t};\r\n \tlet obj = this.filter(selector);\r\n\r\n \tif (!obj.length) {\r\n \t\tobj = $(selector, this);\r\n \t}\r\n\r\n \tlet params = {};\r\n\r\n \t// process values\r\n \tobj.each((key, obj) => {\r\n \t\tconst value = $(obj).val();\r\n \t\tif (!obj.disabled && value !== undefined) {\r\n \t\t\tparams = add(obj.name, value, params);\r\n \t\t}\r\n \t});\r\n \treturn $.param(params);\r\n };\n\n $.fn.add = function (nodes, context) {\r\n \tnodes = $(nodes, context);\r\n \tlet len = this.length,\r\n \t\ti = nodes.length;\r\n\r\n \tthis.length += i;\r\n \twhile (i--) {\r\n \t\tthis[i + len] = nodes[i];\r\n \t}\r\n \treturn this;\r\n };\n\n [\"parent\", \"parents\", \"parentsUntil\"].forEach(func => {\r\n \t$.fn[func] = function (selector, filter) {\r\n \t\tconst all = func.indexOf(\"s\") > -1,\r\n \t\t\tuntil = func.indexOf(\"U\") > -1;\r\n \t\tlet nodes = [],\r\n \t\t\ti = this.length,\r\n \t\t\tparent;\r\n\r\n \t\twhile (i--) {\r\n \t\t\tparent = this[i].parentNode;\r\n \t\t\twhile (parent && parent.nodeType === Node.ELEMENT_NODE) {\r\n \t\t\t\tnodes.push(parent);\r\n \t\t\t\tif (!all || (until && filterNodes(parent, selector).length)) {\r\n \t\t\t\t\tbreak;\r\n \t\t\t\t} else {\r\n \t\t\t\t\tparent = parent.parentNode;\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t}\r\n \t\treturn $(selector ? filterNodes(nodes, selector) : nodes);\r\n \t};\r\n });\n\n $.fn.get = function (i) {\r\n \treturn i === undefined ? Array.from(this) : this[i >= 0 ? i : i + this.length];\r\n };\n\n // add and remove event handlers\r\n [\"on\", \"one\"].forEach(name => {\r\n \t$.fn[name] = function (events, selector, data, callback) {\r\n\r\n \t\t// sort out args\r\n \t\tevents = events.split(\" \");\r\n \t\tif ($.isFunction(selector)) {\r\n \t\t\tcallback = selector;\r\n \t\t\tselector = undefined;\r\n \t\t} else if ($.isFunction(data)) {\r\n \t\t\tcallback = data;\r\n \t\t\tdata = undefined;\r\n \t\t}\r\n\r\n \t\t// attach event\r\n \t\tlet i = this.length;\r\n \t\twhile (i--) {\r\n \t\t\tlet e = events.length;\r\n\r\n \t\t\t// record the original function\r\n \t\t\tif (!this[i].events) {\r\n \t\t\t\tthis[i].events = [];\r\n \t\t\t}\r\n \t\t\tlet fn = function (evt) { // delegate function\r\n \t\t\t\tlet target = [this];\r\n \t\t\t\tif (selector) {\r\n \t\t\t\t\tlet t = $(evt.target);\r\n \t\t\t\t\ttarget = t.add(t.parents()).filter(selector).get(); // is the selector in the targets parents?\r\n \t\t\t\t}\r\n \t\t\t\tif (target) {\r\n \t\t\t\t\tevt.data = data; // set data to event object\r\n \t\t\t\t\tfor (let i = 0, len = target.length; i < len; i++) {\r\n \t\t\t\t\t\tif (callback.call(target[i], evt, evt.args) === false) {\r\n \t\t\t\t\t\t\tevt.preventDefault();\r\n \t\t\t\t\t\t\tevt.stopPropagation();\r\n \t\t\t\t\t\t}\r\n \t\t\t\t\t}\r\n \t\t\t\t}\r\n \t\t\t};\r\n \t\t\tthis[i].events.push({\r\n \t\t\t\tevents: events,\r\n \t\t\t\tcallback: callback,\r\n \t\t\t\tselector: selector,\r\n \t\t\t\tfunc: fn,\r\n \t\t\t\tonce: name === \"one\"\r\n \t\t\t});\r\n\r\n \t\t\t// trigger\r\n \t\t\twhile (e--) {\r\n \t\t\t\tthis[i].addEventListener(events[e], fn, {once: name === \"one\", capture: !!selector});\r\n \t\t\t}\r\n \t\t}\r\n \t\treturn this;\r\n \t};\r\n });\n\n var events = [\"focusin\", \"focusout\", \"focus\", \"blur\", \"resize\", \"scroll\", \"unload\", \"click\", \"dblclick\", \"mousedown\", \"mouseup\", \"mousemove\", \"mouseover\", \"mouseout\", \"mouseenter\", \"mouseleave\", \"contextmenu\", \"change\", \"select\", \"keydown\", \"keypress\", \"keyup\", \"error\", \"submit\"];\n\n $.fn.attr = function (prop, value) {\r\n \tlet isObj = typeof prop !== \"string\",\r\n \t\tobj = {};\r\n\r\n \t// set properties\r\n \tif (isObj || value !== undefined) {\r\n\r\n \t\t// normalise to object\r\n \t\tif (!isObj) {\r\n \t\t\tobj[prop] = value;\r\n \t\t\tprop = obj;\r\n \t\t}\r\n\r\n \t\t$.each(prop, (key, val) => {\r\n\r\n \t\t\t// if event, hand it off to $.fn.on()\r\n \t\t\tif (events.indexOf(key) > -1) {\r\n \t\t\t\tthis.on(key, val);\r\n\r\n \t\t\t// process other values\r\n \t\t\t} else {\r\n \t\t\t\tlet i = this.length,\r\n \t\t\t\t\tvalues = getVal(this, val, obj => $(obj).attr(key));\r\n \t\t\t\twhile (i--) {\r\n \t\t\t\t\tif (key === \"style\") {\r\n \t\t\t\t\t\tthis[i].style.cssText = values[i];\r\n \t\t\t\t\t} else if (key === \"class\") {\r\n \t\t\t\t\t\tthis[i].className = values[i];\r\n \t\t\t\t\t} else if (key === \"text\") {\r\n \t\t\t\t\t\tthis[i].textContent = values[i];\r\n \t\t\t\t\t} else if (values[i] === null) {\r\n \t\t\t\t\t\tthis[i].removeAttribute(key);\r\n \t\t\t\t\t} else {\r\n \t\t\t\t\t\tthis[i].setAttribute(key, values[i]);\r\n \t\t\t\t\t}\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t});\r\n \t\treturn this;\r\n \t}\r\n\r\n \t// retrieve properties\r\n \tif (this[0]) {\r\n \t\tif (prop === \"style\") {\r\n \t\t\treturn this[0].style.cssText;\r\n \t\t}\r\n \t\tif (prop === \"class\") {\r\n \t\t\treturn this[0].className;\r\n \t\t}\r\n \t\treturn this[0].getAttribute(prop);\r\n \t}\r\n };\n\n const funcs = [];\r\n [\"removeClass\", \"addClass\", \"toggleClass\"].forEach((func, f) => {\r\n\r\n \t// remove \"Class\" from name for classList method and remember\r\n \tfuncs.push(func.substr(0, func.length - 5));\r\n\r\n \t// create function\r\n \t$.fn[func] = function (cls, state) {\r\n \t\tlet i = this.length,\r\n \t\t\tvalues = getVal(this, cls, obj => obj.className),\r\n \t\t\tkey = f;\r\n\r\n \t\tif (func === \"toggleClass\" && typeof state === \"boolean\") {\r\n \t\t\tkey = 0 + state;\r\n \t\t}\r\n\r\n \t\t// manage classes on nodes\r\n \t\twhile (i--) {\r\n \t\t\tif (typeof values[i] === \"string\") {\r\n \t\t\t\tvalues[i] = values[i].split(\" \");\r\n \t\t\t}\r\n \t\t\tfor (let n = 0, len = values[i].length; n < len; n++) {\r\n \t\t\t\tthis[i].classList[funcs[key]](values[i][n]);\r\n \t\t\t}\r\n \t\t}\r\n \t\treturn this;\r\n \t};\r\n });\n\n var camelise = prop => prop.replace(/-([\\w])/g, (text, letter) => letter.toUpperCase()); // matches underscore too but you shouldn't do that anyway\n\n var setCss = (dabby, props, value) => {\r\n\r\n \t// normalise props\r\n \tif (typeof props === \"string\") {\r\n \t\tconst name = props;\r\n \t\tprops = {};\r\n \t\tprops[name] = value;\r\n \t}\r\n\r\n \t// prepare values\r\n \tlet values = {};\r\n \t$.each(props, (i, prop) => {\r\n \t\tvalues[camelise(i)] = getVal(dabby, prop, obj => obj.style[i]);\r\n \t});\r\n\r\n \t// set properties\r\n \t$.each(values, (key, val) => {\r\n \t\tlet i = dabby.length;\r\n \t\twhile (i--) {\r\n \t\t\tdabby[i].style[key] = val[i] + (isNaN(val[i]) ? \"\" : \"px\");\r\n \t\t}\r\n \t});\r\n \treturn dabby;\r\n }\n\n $.fn.css = function (props, value) {\r\n\r\n \t// set the values\r\n \tif (value !== undefined || $.isPlainObject(props)) {\r\n \t\treturn setCss(this, props, value);\r\n \t}\r\n\r\n \t// retrieve value from first property\r\n \tif (this[0]) {\r\n \t\tlet name = props,\r\n \t\t\ti,\r\n \t\t\tstyle = getComputedStyle(this[0], \"\"),\r\n \t\t\toutput = {},\r\n \t\t\tret = false;\r\n\r\n \t\tif (typeof name === \"string\") {\r\n \t\t\tprops = [name];\r\n \t\t\tret = true;\r\n \t\t}\r\n \t\ti = props.length;\r\n \t\twhile (i--) {\r\n \t\t\toutput[props[i]] = style[camelise(props[i])];\r\n \t\t\tif (ret) {\r\n \t\t\t\treturn output[props[i]];\r\n \t\t\t}\r\n \t\t}\r\n \t\treturn output;\r\n \t}\r\n };\n\n $.fn.data = function (name, data) {\r\n\r\n \t// convert data to object\r\n \tif (typeof name === \"object\") {\r\n \t\tdata = name;\r\n \t} else if (data !== undefined) {\r\n \t\tlet temp = {};\r\n \t\ttemp[name] = data;\r\n \t\tdata = temp;\r\n \t}\r\n\r\n \t// set value\r\n \tif (data !== undefined) {\r\n \t\tlet i = this.length;\r\n \t\twhile (i--) {\r\n \t\t\t$.each(data, (key, value) => {\r\n \t\t\t\tthis[i].dataset[camelise(key)] = typeof value === \"object\" ? JSON.stringify(value) : value;\r\n \t\t\t});\r\n \t\t}\r\n \t\treturn this;\r\n \t}\r\n\r\n \t// get value\r\n \tif (this[0] && this[0].dataset) {\r\n \t\tlet parse = value => {\r\n \t\t\ttry {\r\n \t\t\t\treturn JSON.parse(value);\r\n \t\t\t} catch (e) {\r\n \t\t\t\treturn value;\r\n \t\t\t}\r\n \t\t};\r\n\r\n \t\t// all properties\r\n \t\tif (name === undefined) {\r\n \t\t\tlet arr = {};\r\n \t\t\t$.each(this[0].dataset, (key, value) => {\r\n \t\t\t\tarr[key] = parse(value);\r\n \t\t\t});\r\n \t\t\treturn arr;\r\n \t\t}\r\n\r\n \t\t// retrieve specific property\r\n \t\tname = camelise(name);\r\n \t\tif (this[0].dataset.hasOwnProperty(name)) {\r\n \t\t\treturn parse(this[0].dataset[name]);\r\n \t\t}\r\n \t}\r\n };\n\n $.fn.hasClass = function (cls) {\r\n \tlet i = this.length;\r\n \twhile (i--) {\r\n \t\tif (this[i].classList.contains(cls)) {\r\n \t\t\treturn true;\r\n \t\t}\r\n \t}\r\n \treturn false;\r\n };\n\n var getProp = prop => {\r\n \tlet properties = {\r\n \t\t\"for\": \"htmlFor\",\r\n \t\t\"class\": \"className\",\r\n \t\t\"tabindex\": \"tabIndex\",\r\n \t\t\"readonly\": \"readOnly\",\r\n \t\t\"maxlength\": \"maxLength\",\r\n \t\t\"cellspacing\": \"cellSpacing\",\r\n \t\t\"cellpadding\": \"cellPadding\",\r\n \t\t\"rowspan\": \"rowSpan\",\r\n \t\t\"colspan\": \"colSpan\",\r\n \t\t\"usemap\": \"useMap\",\r\n \t\t\"frameborder\": \"frameBorder\",\r\n \t\t\"contenteditable\": \"contentEditable\"\r\n \t};\r\n \tprop = prop.toLowerCase();\r\n \treturn properties[prop] || prop;\r\n }\n\n $.fn.prop = function (prop, value) {\r\n \tconst isObj = $.isPlainObject(prop);\r\n\r\n \t// set\r\n \tif (value !== undefined || isObj) {\r\n\r\n \t\t// normalise values\r\n \t\tif (!isObj) {\r\n \t\t\tconst tmp = {};\r\n \t\t\ttmp[prop] = value;\r\n \t\t\tprop = tmp;\r\n \t\t}\r\n\r\n \t\t// retrieve values\r\n \t\tlet values = {};\r\n \t\t$.each(prop, (key, val) => {\r\n \t\t\tvalues[getProp(key)] = getVal(this, val, obj => obj[key]);\r\n \t\t});\r\n\r\n \t\t// set properties\r\n \t\t$.each(values, (key, val) => {\r\n \t\t\tlet i = this.length;\r\n \t\t\twhile (i--) {\r\n \t\t\t\tthis[i][key] = val[i];\r\n \t\t\t}\r\n \t\t});\r\n \t\treturn this;\r\n \t}\r\n\r\n \t// get\r\n \tif (this[0]) {\r\n \t\treturn this[0][getProp(prop)];\r\n \t}\r\n };\n\n $.fn.removeProp = function (prop) {\r\n \tlet i = this.length;\r\n \tprop = getProp(prop);\r\n\r\n \twhile (i--) {\r\n \t\tdelete this[i][prop];\r\n \t}\r\n \treturn this;\r\n };\n\n [\"show\", \"hide\", \"toggle\"].forEach((func, n) => {\r\n \t$.fn[func] = function () {\r\n \t\tlet i = this.length,\r\n \t\t\tvalues = [\"block\", \"none\"];\r\n \t\twhile (i--) {\r\n \t\t\tthis[i].style.display = values[n] || (getComputedStyle(this[i]).display === \"none\" ? \"block\" : \"none\");\r\n \t\t}\r\n \t\treturn this;\r\n \t};\r\n });\n\n $.fn.map = function (callback) {\r\n \tlet len = this.length,\r\n \t\tvalues = [],\r\n \t\ti = 0;\r\n\r\n \tfor (; i < len; i++) {\r\n \t\tvalues.push(callback.call(this[i], i, this[i]));\r\n \t}\r\n \treturn values;\r\n };\n\n $.fn.offset = function (coords) {\r\n\r\n \t// set\r\n \tif (coords) {\r\n\r\n \t\t// prepare values\r\n \t\tlet values = getVal(this, coords, obj => obj.offset()), // copy the object\r\n \t\t\ti = this.length;\r\n\r\n \t\twhile (i--) {\r\n\r\n \t\t\t// set position to relative if not positioned\r\n \t\t\tlet pos = getComputedStyle(this[i]).position;\r\n \t\t\tif (pos === \"static\") {\r\n \t\t\t\tvalues[i].position = pos = \"relative\";\r\n \t\t\t}\r\n\r\n \t\t\t// take off offset parent position\r\n \t\t\tconst parent = this[i][pos === \"relative\" ? \"parentNode\" : \"offsetParent\"];\r\n \t\t\t$.each($(parent).offset(), (key, val) => values[i][key] -= val);\r\n\r\n \t\t\t// relative add inner offset\r\n \t\t\tif (pos === \"relative\") {\r\n \t\t\t\tconst style = getComputedStyle(parent);\r\n \t\t\t\tvalues[i].top -= parseFloat(style.paddingTop) + parseFloat(style.borderTopWidth);\r\n \t\t\t\tvalues[i].left -= parseFloat(style.paddingLeft) + parseFloat(style.borderLeftWidth);\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\t// update values in one hit to prevent thrashing\r\n \t\ti = this.length;\r\n \t\twhile (i--) {\r\n \t\t\t$.each(values[i], (key, val) => this[i].style[key] = val + (isNaN(val) ? \"\" : \"px\"));\r\n \t\t}\r\n \t\treturn this;\r\n \t}\r\n\r\n \t// get\r\n \tif (this[0]) {\r\n \t\tconst doc = document.documentElement,\r\n \t\t\tpos = this[0].style.position === \"fixed\",\r\n \t\t\trect = this[0].getBoundingClientRect();\r\n \t\treturn {\r\n \t\t\ttop: rect.top + (pos ? 0 : doc.scrollTop),\r\n \t\t\tleft: rect.left + (pos ? 0 : doc.scrollLeft)\r\n \t\t};\r\n \t}\r\n };\n\n $.fn.offsetParent = function () {\r\n \treturn $(this[0] ? this[0].offsetParent : null);\r\n };\n\n $.fn.position = function () {\r\n \tif (this[0]) {\r\n \t\treturn {left: this[0].offsetLeft, top: this[0].offsetTop};\r\n \t}\r\n };\n\n [\"scrollLeft\", \"scrollTop\"].forEach(item => {\r\n \t$.fn[item] = function (pos) {\r\n \t\tconst top = item === \"scrollTop\";\r\n\r\n \t\t// set\r\n \t\tif (pos !== undefined) {\r\n \t\t\tlet i = this.length,\r\n \t\t\t\ttl = top ? \"top\" : \"left\",\r\n \t\t\t\tvalues = getVal(this, pos, obj => obj[item]);\r\n \t\t\t\r\n \t\t\twhile (i--) {\r\n \t\t\t\tif ($.isWindow(this[i])) {\r\n \t\t\t\t\tlet obj = {};\r\n \t\t\t\t\tobj[tl] = values[i];\r\n \t\t\t\t\tthis[i].scroll(obj);\r\n \t\t\t\t} else {\r\n \t\t\t\t\tthis[i][item] = values[i];\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t\treturn this;\r\n \t\t}\r\n\r\n \t\t// get\r\n \t\tif (this[0]) {\r\n \t\t\tif ($.isWindow(this[0])) {\r\n \t\t\t\titem = top ? \"pageYOffset\" : \"pageXOffset\";\r\n \t\t\t}\r\n \t\t\treturn this[0][item];\r\n \t\t}\r\n \t};\r\n });\n\n [\"width\", \"height\", \"innerWidth\", \"innerHeight\", \"outerWidth\", \"outerHeight\"].forEach(dim => {\r\n\r\n \t$.fn[dim] = function (val) {\r\n \t\tconst width = dim.indexOf(\"d\") > -1,\r\n \t\t\twh = width ? \"width\" : \"height\", // width or height\r\n \t\t\twhu = width ? \"Width\" : \"Height\", // with uppercase letter\r\n \t\t\tio = dim.indexOf(\"inner\") > -1 ? \"inner\" : (dim.indexOf(\"outer\") > -1 ? \"outer\" : \"\"), // inner outer or neither\r\n \t\t\tpos = [\r\n \t\t\t\twidth ? \"Left\" : \"Top\", // first dimension\r\n \t\t\t\twidth ? \"Right\" : \"Bottom\" // second dimension\r\n \t\t\t];\r\n\r\n \t\t// set value\r\n \t\tif (val !== undefined && typeof(val) !== \"boolean\") {\r\n \t\t\tlet values = getVal(this, val, obj => obj[dim]),\r\n \t\t\t\ti = this.length,\r\n \t\t\t\tprops = [],\r\n \t\t\t\tstyle;\r\n \t\t\twhile (i--) {\r\n\r\n \t\t\t\t// add additional lengths\r\n \t\t\t\tif (io) {\r\n\r\n \t\t\t\t\t// fetch current style and build properties\r\n \t\t\t\t\tpos.forEach(item => {\r\n \t\t\t\t\t\tprops.push(\"padding\" + item);\r\n \t\t\t\t\t\tif (io === \"outer\") {\r\n \t\t\t\t\t\t\tprops.push(\"border\" + item + \"Width\");\r\n \t\t\t\t\t\t}\r\n \t\t\t\t\t});\r\n\r\n \t\t\t\t\t// set width to convert to a px value\r\n \t\t\t\t\tif (isNaN(values[i]) && values[i].indexOf(\"px\") === -1) {\r\n \t\t\t\t\t\tthis[i].style[wh] = values[i];\r\n \t\t\t\t\t\tprops.push(wh);\r\n \t\t\t\t\t\tvalues[i] = 0; // reset to 0\r\n \t\t\t\t\t}\r\n\r\n \t\t\t\t\t// add values\r\n \t\t\t\t\tstyle = getComputedStyle(this[i]);\r\n \t\t\t\t\tprops.forEach(val => values[i] -= parseFloat(style[val]));\r\n \t\t\t\t}\r\n \t\t\t\tthis[i].style[wh] = values[i] + (isNaN(values[i]) ? \"\" : \"px\");\r\n \t\t\t}\r\n \t\t\treturn this;\r\n \t\t}\r\n\r\n \t\t// get value\r\n \t\tif (this[0]) {\r\n\r\n \t\t\t// document\r\n \t\t\tif (this[0].nodeType === Node.DOCUMENT_NODE) {\r\n \t\t\t\treturn this[0].documentElement[\"scroll\" + whu];\r\n \t\t\t}\r\n\r\n \t\t\t// element\r\n \t\t\tif (!$.isWindow(this[0])) {\r\n \t\t\t\tlet value = this[0][(io === \"outer\" ? \"offset\" : \"client\") + whu];\r\n\r\n \t\t\t\t// add padding on, or if outer and margins requested, add margins on\r\n \t\t\t\tif (io === \"\" || (io === \"outer\" && val === true)) {\r\n \t\t\t\t\tconst style = getComputedStyle(this[0]);\r\n \t\t\t\t\tpos.forEach(item => value += parseFloat(style[(io ? \"margin\" : \"padding\") + item]) * (io ? 1 : -1));\r\n \t\t\t\t}\r\n \t\t\t\treturn value;\r\n \t\t\t}\r\n\r\n \t\t\t// window\r\n \t\t\tif (io === \"inner\") {\r\n \t\t\t\treturn this[0].document.documentElement[\"client\" + whu];\r\n \t\t\t}\r\n\r\n \t\t\treturn this[0][\"inner\" + whu];\r\n \t\t}\r\n \t};\r\n });\n\n $.fn.trigger = function (name, data) {\r\n \tlet i = this.length;\r\n \twhile (i--) {\r\n \t\tif ($.isFunction(this[i][name])) {\r\n \t\t\tthis[i][name]();\r\n \t\t} else {\r\n \t\t\tconst evt = new CustomEvent(name, {bubbles: true, cancelable: true});\r\n \t\t\tevt.args = data;\r\n \t\t\tthis[i].dispatchEvent(evt);\r\n \t\t}\r\n \t}\r\n \treturn this;\r\n };\n\n events.forEach(event => {\r\n \t$.fn[event] = function (data, callback) {\r\n \t\treturn data ? this.on(event, data, callback) : this.trigger(event);\r\n \t};\r\n });\n\n // add and remove event handlers\r\n $.fn.off = function (events, selector, data, callback) {\r\n\r\n \t// sort out args\r\n \tevents = events.split(\" \");\r\n \tif ($.isFunction(selector)) {\r\n \t\tcallback = selector;\r\n \t\tselector = undefined;\r\n \t} else if ($.isFunction(data)) {\r\n \t\tcallback = data;\r\n \t\tdata = undefined;\r\n \t}\r\n\r\n \t// attach event\r\n \tlet i = this.length;\r\n \twhile (i--) {\r\n\r\n \t\t// find the original function\r\n \t\tif (this[i].events.length) {\r\n \t\t\tlet e = events.length;\r\n \t\t\twhile (e--) {\r\n \t\t\t\tthis[i].events.forEach((evt, n) => {\r\n \t\t\t\t\tconst index = evt.events.indexOf(events[e]);\r\n \t\t\t\t\tif (index !== -1 && (!callback || evt.callback === callback) && (!selector || evt.selector === selector)) {\r\n \t\t\t\t\t\tthis[i].removeEventListener(events[e], evt.func, {once: evt.once, capture: !!evt.selector}); // must pass same arguments\r\n \t\t\t\t\t\tthis[i].events[n].events.splice(index, 1);\r\n \t\t\t\t\t\tif (!this[i].events[n].events.length) {\r\n \t\t\t\t\t\t\tthis[i].events.splice(n, 1);\r\n \t\t\t\t\t\t}\r\n \t\t\t\t\t}\r\n \t\t\t\t});\r\n \t\t\t}\r\n \t\t}\r\n \t}\r\n \treturn this;\r\n };\n\n $.fn.clone = function () {\r\n \tlet nodes = [],\r\n \t\ti = this.length;\r\n\r\n \twhile (i--) {\r\n \t\tnodes[i] = this[i].cloneNode(true);\r\n \t}\r\n \treturn $(nodes);\r\n };\n\n $.fn.empty = function () {\r\n \tlet i = this.length;\r\n \twhile (i--) {\r\n \t\twhile (this[i].firstChild && this[i].removeChild(this[i].firstChild));\r\n \t}\r\n \treturn this;\r\n };\n\n $.fn.html = function (html) {\r\n\r\n \t// set\r\n \tif (html !== undefined) {\r\n \t\tlet i = this.length,\r\n \t\t\tvalues = getVal(this, html, obj => obj.innerHTML);\r\n \t\twhile (i--) {\r\n \t\t\tthis[i].innerHTML = values[i];\r\n \t\t}\r\n \t\treturn this;\r\n \t}\r\n\r\n \t// get\r\n \tif (this[0]) {\r\n \t\treturn this[0].innerHTML;\r\n \t}\r\n };\n\n $.each({\r\n \tbefore: \"beforeBegin\",\r\n \tprepend: \"afterBegin\",\r\n \tappend: \"beforeEnd\",\r\n \tafter: \"afterEnd\"\r\n }, (name, pos) => {\r\n \t$.fn[name] = function (html) {\r\n \t\tlet pre = [\"before\", \"prepend\"].indexOf(name) > -1,\r\n \t\t\tarr = [],\r\n \t\t\ti = this.length;\r\n\r\n \t\tif ($.isFunction(html)) {\r\n \t\t\tarr = getVal(this, html, obj => obj.innerHTML);\r\n\r\n \t\t// multiple arguments containing nodes\r\n \t\t} else {\r\n \t\t\tconst elems = $();\r\n \t\t\t$.each(arguments, (i, arg) => elems.add(arg));\r\n \t\t\twhile (i--) {\r\n \t\t\t\tarr[i] = i ? elems.clone() : elems;\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\ti = this.length;\r\n \t\twhile (i--) {\r\n \t\t\tlet backwards = arr[i].length, // for counting down\r\n \t\t\t\tforwards = -1; // for counting up\r\n \t\t\twhile (pre ? backwards-- : ++forwards < backwards) { // insert forwards or backwards?\r\n \t\t\t\tthis[i].insertAdjacentElement(pos, arr[i][pre ? backwards : forwards]);\r\n \t\t\t}\r\n \t\t}\r\n \t\treturn this;\r\n \t};\r\n });\n\n $.each({\r\n \tinsertBefore: \"before\",\r\n \tprependTo: \"prepend\",\r\n \tappendTo: \"append\",\r\n \tinsertAfter: \"after\"\r\n }, (name, func) => {\r\n \t$.fn[name] = function (selector) {\r\n \t\tlet i = this.length,\r\n \t\t\tobj = $(selector);\r\n\r\n \t\twhile (i--) {\r\n \t\t\tobj[func](this[i]);\r\n \t\t}\r\n \t\treturn this;\r\n \t};\r\n });\n\n [\"remove\", \"detach\"].forEach(func => {\r\n \t$.fn[func] = function (selector) {\r\n \t\tlet i = this.length,\r\n \t\t\tnodes = [];\r\n\r\n \t\t// detach selected nodes\r\n \t\twhile (i--) {\r\n \t\t\tif (!selector || filterNodes(this[i], selector).length) {\r\n \t\t\t\tnodes.push(this[i].parentNode.removeChild(this[i]));\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\t// create a new dabby object to return\r\n \t\treturn func === \"detach\" ? $(nodes) : this;\r\n \t};\r\n });\n\n [\"replaceWith\", \"replaceAll\"].forEach(name => {\r\n \t$.fn[name] = function (html) {\r\n \t\tconst all = name === \"replaceAll\",\r\n \t\t\tsource = all ? $(html) : this;\r\n \t\tlet target = all ? this : html,\r\n \t\t\tisFunc = $.isFunction(target),\r\n \t\t\ti = source.length;\r\n\r\n \t\tif (!isFunc) {\r\n \t\t\ttarget = $(target);\r\n \t\t}\r\n\r\n \t\twhile (i--) {\r\n \t\t\tlet n = target.length,\r\n \t\t\t\tparent = source[i].parentNode;\r\n \t\t\twhile (n--) {\r\n \t\t\t\tconst replace = isFunc ? getVal(target[n], n, target[n]) : target[n];\r\n \t\t\t\tif (n) {\r\n \t\t\t\t\tsource[i].insertAdjacentElement(\"beforebegin\", replace.cloneNode(true));\r\n \t\t\t\t} else {\r\n \t\t\t\t\tsource[i] = parent.replaceChild(i ? replace.cloneNode(true) : replace, source[i]);\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t}\r\n \t\treturn this;\r\n \t};\r\n });\n\n $.fn.slice = function (start, end) {\r\n \treturn $(this.get().slice(start, end));\r\n };\n\n $.fn.text = function (text) {\r\n \tlet i = this.length,\r\n \t\toutput = [];\r\n\r\n \t// set\r\n \tif (text !== undefined) {\r\n \t\tconst values = getVal(this, text, obj => obj.textContent);\r\n \t\twhile (i--) {\r\n \t\t\tthis[i].textContent = values[i];\r\n \t\t}\r\n \t\treturn this;\r\n \t}\r\n\r\n \t// get\r\n \twhile (i--) {\r\n \t\toutput[i] = this[i].textContent;\r\n \t}\r\n \treturn output.join(\" \");\r\n };\n\n $.fn.unwrap = function (selector) {\r\n \tthis.parent(selector).not(\"body\").each((key, obj) => {\r\n \t\t$(obj.children).each((i, node) => {\r\n \t\t\tobj.parentNode.insertBefore(node, obj);\r\n \t\t});\r\n \t\tobj.parentNode.removeChild(obj);\r\n \t});\r\n \treturn this;\r\n };\n\n $.fn.wrapAll = function (html) {\r\n \tif (this[0]) {\r\n \t\tif ($.isFunction(html)) {\r\n \t\t\thtml = html.call(this[0]);\r\n \t\t}\r\n\r\n \t\t// set variables\r\n \t\tlet len = this.length,\r\n \t\t\ti = 0,\r\n \t\t\tnode = $(html)[0].cloneNode(true);\r\n\r\n \t\t// insert clone into parent\r\n \t\tthis[0].parentNode.insertBefore(node, null);\r\n\r\n \t\t// find innermost child of node\r\n \t\twhile (node.firstElementChild) {\r\n \t\t\tnode = node.firstElementChild;\r\n \t\t}\r\n\r\n \t\t// attach nodes to the new node\r\n \t\tfor (; i < len; i++) {\r\n \t\t\tnode.appendChild(this[i]);\r\n \t\t}\r\n \t}\r\n \treturn this;\r\n };\n\n $.fn.wrap = function (html) {\r\n \tlet i = this.length,\r\n \t\tvalues = getVal(this, html);\r\n\r\n \twhile (i--) {\r\n \t\t$(this[i]).wrapAll(values[i]);\r\n \t}\r\n \treturn this;\r\n };\n\n $.fn.children = function (selector) {\r\n \tlet nodes = [],\r\n \t\ti = this.length;\r\n\r\n \twhile (i--) {\r\n \t\tnodes = nodes.concat(Array.from(this[i].children));\r\n \t}\r\n\r\n \t// filter nodes by selector\r\n \treturn $(selector ? filterNodes(nodes, selector) : nodes);\r\n };\n\n $.fn.closest = function (selector, context) {\r\n \tlet i = this.length,\r\n \t\tnodes = [],\r\n \t\tparents,\r\n \t\tnode;\r\n\r\n \twhile (i--) {\r\n \t\tparents = [];\r\n \t\tnode = this[i];\r\n \t\twhile (node) {\r\n \t\t\tparents.push(node);\r\n \t\t\tnode = node.parentNode;\r\n \t\t}\r\n \t\tparents = filterNodes(parents, selector, context);\r\n \t\tif (parents[0]) {\r\n \t\t\tnodes.push(parents[0]);\r\n \t\t}\r\n \t}\r\n \treturn $(nodes);\r\n };\n\n $.fn.eq = function (i) {\r\n \treturn $(this[i < 0 ? i + this.length : i]);\r\n };\n\n $.fn.find = function (selector) {\r\n \treturn $(selector, this);\r\n };\n\n $.fn.first = function () {\r\n \treturn $(this[0]);\r\n };\n\n $.fn.has = function (selector) {\r\n \treturn $(this.get().filter(node => !!$(selector, node).length));\r\n };\n\n $.fn.index = function (selector) {\r\n\r\n \tif (this[0]) {\r\n \t\tlet nodes,\r\n \t\t\tsubject = this[0],\r\n \t\t\ti;\r\n\r\n \t\t// if no selector, match against first elements siblings\r\n \t\tif (selector === undefined) {\r\n \t\t\tnodes = this[0].parentNode.children;\r\n\r\n \t\t// if selector is string, match first node in current collection against resulting collection\r\n \t\t} else if (typeof selector === \"string\") {\r\n \t\t\tnodes = $(selector);\r\n\r\n \t\t// if element or collection match the element or first node against current collection\r\n \t\t} else {\r\n \t\t\tnodes = this;\r\n \t\t\tsubject = $(selector)[0];\r\n \t\t}\r\n\r\n \t\ti = nodes.length;\r\n \t\twhile (i--) {\r\n \t\t\tif (nodes[i] === subject) {\r\n \t\t\t\treturn i;\r\n \t\t\t}\r\n \t\t}\r\n \t}\r\n \treturn -1;\r\n };\n\n $.fn.last = function () {\r\n \treturn this.eq(-1);\r\n };\n\n [\"next\", \"nextAll\", \"nextUntil\", \"prev\", \"prevAll\", \"prevUntil\"].forEach(func => {\r\n \t$.fn[func] = function (selector, filter) {\r\n \t\tconst next = func.indexOf(\"x\") > -1,\r\n \t\t\tall = func.indexOf(\"A\") > -1,\r\n \t\t\tuntil = func.indexOf(\"U\") > -1,\r\n \t\t\tmethod = next ? \"nextElementSibling\" : \"previousElementSibling\";\r\n \t\tlet nodes = [],\r\n \t\t\ti = this.length,\r\n \t\t\tsibling;\r\n\r\n \t\t// look through each node and get siblings\r\n \t\twhile (i--) {\r\n \t\t\tsibling = this[i][method];\r\n \t\t\twhile (sibling) {\r\n \t\t\t\tnodes.push(sibling);\r\n \t\t\t\tif (all || (until && filterNodes(sibling, selector).length)) {\r\n \t\t\t\t\tbreak;\r\n \t\t\t\t} else {\r\n \t\t\t\t\tsibling = sibling[method];\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\t// swap args for *Until methods\r\n \t\tif (until) {\r\n \t\t\tselector = filter;\r\n \t\t}\r\n\r\n \t\t// return new collection\r\n \t\treturn $(selector ? filterNodes(nodes, selector) : nodes);\r\n \t};\r\n });\n\n $.fn.siblings = function (selector) {\r\n \tlet i = this.length,\r\n \t\tnodes = [];\r\n\r\n \twhile (i--) {\r\n \t\tArray.from(this[i].parentNode.children).forEach(child => {\r\n \t\t\tif (child !== this[i]) {\r\n \t\t\t\tnodes.push(child);\r\n \t\t\t}\r\n \t\t});\r\n \t}\r\n \treturn $(selector ? filterNodes(nodes, selector) : nodes);\r\n };\n\n // ajax\r\n // attributes\r\n // core\r\n // dimensions\r\n // events\r\n // manipulation\r\n // traversal\r\n // utilities\r\n //import \"./utils/isarray/isarray.js\";\n\n return $;\n\n})));\n"],"file":"dabby.es5.js"} \ No newline at end of file +{"version":3,"sources":["dabby.es5.js"],"names":["global","factory","exports","module","define","amd","$","Array","from","arrayLike","mapFn","thisArg","arr","slice","call","map","window","CustomEvent","CustomEvent$1","event","params","bubbles","cancelable","detail","undefined","evt","document","createEvent","initCustomEvent","prototype","Event","Element","matches","msMatchesSelector","NodeList","forEach","callback","i","length","Object","assign","defineProperty","value","target","varArgs","TypeError","to","index","arguments","nextSource","nextKey","hasOwnProperty","writable","configurable","dabby","selector","context","filter","node","indexOf","nodeType","isWindow","nodes","match","isFunction","readyState","addEventListener","once","each","obj","concat","querySelectorAll","createElement","attr","implementation","createHTMLDocument","body","innerHTML","children","fn","isArr","isArray","keys","len","parseInt","func","constructor","Function","isPlainObject","getPrototypeOf","proto","toString","extend","arrs","merge","sources","source","shift","val","apply","param","add","key","push","encodeURIComponent","item","join","ajax","url","settings","method","cache","data","dataType","async","crossDomain","scriptCharset","jsonp","jsonpCallback","Date","now","headers","xhr","XMLHttpRequest","contentType","statusCode","username","password","split","pop","sync","script","FormData","charset","load","error","response","complete","src","head","appendChild","status","responseText","JSON","parse","e","onload","types","ontimeout","onabort","open","setRequestHeader","send","name","success","type","isFunc","toUpperCase","getScript","filterNodes","not","n","uri","html","outerHTML","getVal","current","values","funcVal","objVal","funcCurrent","create","result","String","selected","checked","serialize","disabled","all","until","parent","parentNode","Node","ELEMENT_NODE","get","events","t","parents","args","preventDefault","stopPropagation","capture","prop","isObj","on","style","cssText","className","textContent","removeAttribute","setAttribute","getAttribute","funcs","f","substr","cls","state","classList","camelise","replace","text","letter","setCss","props","isNaN","css","getComputedStyle","output","ret","temp","dataset","stringify","hasClass","contains","getProp","properties","toLowerCase","tmp","removeProp","display","offset","coords","pos","position","top","parseFloat","paddingTop","borderTopWidth","left","paddingLeft","borderLeftWidth","doc","documentElement","rect","getBoundingClientRect","scrollTop","scrollLeft","offsetParent","offsetLeft","offsetTop","tl","scroll","dim","width","wh","whu","io","DOCUMENT_NODE","trigger","dispatchEvent","off","removeEventListener","splice","clone","cloneNode","empty","firstChild","removeChild","before","prepend","append","after","pre","elems","arg","backwards","forwards","insertAdjacentElement","insertBefore","prependTo","appendTo","insertAfter","replaceChild","start","end","unwrap","wrapAll","firstElementChild","wrap","closest","eq","find","first","has","subject","last","next","sibling","siblings","child"],"mappings":"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","sourcesContent":["/*! dabbyjs v0.9.6 by Will Earp - https://github.com/hexydec/dabby */\r\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global.$ = factory());\n}(this, (function () { 'use strict';\n\n if (!Array.from) {\r\n \tArray.from = function (arrayLike, mapFn, thisArg) {\r\n \t\tvar arr = [].slice.call(arrayLike);\r\n \t\tif (typeof mapFn === \"function\") {\r\n \t\t\tarr = arr.map(mapFn, thisArg);\r\n \t\t}\r\n \t\treturn arr;\r\n \t};\r\n }\n\n // CustomEvent is not supported in IE11\r\n if (typeof window.CustomEvent !== \"function\") {\r\n \tfunction CustomEvent$1(event, params) {\r\n \t\tparams = params || {bubbles: false, cancelable: false, detail: undefined};\r\n \t\tconst evt = document.createEvent(\"CustomEvent\");\r\n \t\tevt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\r\n \t\treturn evt;\r\n \t}\r\n\r\n \tCustomEvent$1.prototype = window.Event.prototype;\r\n \twindow.CustomEvent = CustomEvent$1;\r\n }\n\n // support Element.matches() in IE and older Webkit\r\n if (!Element.prototype.matches) {\r\n Element.prototype.matches = Element.prototype.msMatchesSelector;\r\n }\n\n if (!NodeList.prototype.forEach) {\r\n NodeList.prototype.forEach = function (callback, thisArg) {\r\n thisArg = thisArg || window;\r\n for (var i = 0; i < this.length; i++) {\r\n callback.call(thisArg, this[i], i, this);\r\n }\r\n };\r\n }\n\n if (typeof Object.assign !== \"function\") {\r\n \tObject.defineProperty(Object, \"assign\", {\r\n \t\tvalue: function assign(target, varArgs) { // .length of function is 2\r\n \t\t\tif (target == null) { // TypeError if undefined or null\r\n \t\t\t\tthrow new TypeError('Cannot convert undefined or null to object');\r\n \t\t\t}\r\n\r\n \t\t\tvar to = Object(target);\r\n\r\n \t\t\tfor (var index = 1; index < arguments.length; index++) {\r\n \t\t\t\tvar nextSource = arguments[index];\r\n\r\n \t\t\t\tif (nextSource != null) { // Skip over if undefined or null\r\n \t\t\t\t\tfor (var nextKey in nextSource) {\r\n \t\t\t\t\t\t// Avoid bugs when hasOwnProperty is shadowed\r\n \t\t\t\t\t\tif (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {\r\n \t\t\t\t\t\t\tto[nextKey] = nextSource[nextKey];\r\n \t\t\t\t\t\t}\r\n \t\t\t\t\t}\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t\treturn to;\r\n \t\t},\r\n \t\twritable: true,\r\n \t\tconfigurable: true\r\n \t});\r\n }\n\n const $ = function dabby(selector, context) {\r\n\r\n \t// if no selector, return empty colletion\r\n \tif (this instanceof dabby) {\r\n \t\tselector = Array.from(selector).filter(node => [1, 9, 11].indexOf(node.nodeType) > -1 || $.isWindow(node)); // only element, document, documentFragment and window\r\n \t\tthis.length = selector.length;\r\n \t\tObject.assign(this, selector);\r\n \t\treturn this;\r\n \t}\r\n\r\n \t// $ collection\r\n \tif (selector instanceof dabby) {\r\n \t\treturn selector;\r\n \t}\r\n\r\n \tlet nodes = [],\r\n \t\tmatch;\r\n\r\n \t// gather nodes\r\n \tif (selector) {\r\n\r\n \t\t// single node\r\n \t\tif (selector.nodeType || $.isWindow(selector)) {\r\n \t\t\tnodes = [selector];\r\n\r\n \t\t// ready function\r\n \t\t} else if ($.isFunction(selector)) {\r\n \t\t\tif (document.readyState !== \"loading\") {\r\n \t\t\t\tselector.call(document, $);\r\n \t\t\t} else {\r\n \t\t\t\tdocument.addEventListener(\"DOMContentLoaded\", () => {selector.call(document, $);}, {once: true});\r\n \t\t\t}\r\n\r\n \t\t// array|NodeList|HTMLCollection of nodes\r\n \t\t} else if (typeof selector !== \"string\") {\r\n \t\t\tnodes = selector;\r\n\r\n \t\t// CSS selector\r\n \t\t} else if (selector.indexOf(\"<\") === -1) {\r\n \t\t\t$(context || document).each((i, obj) => {\r\n \t\t\t\tnodes = nodes.concat(Array.from(obj.querySelectorAll(selector)));\r\n \t\t\t});\r\n\r\n \t\t// create a single node and attach properties\r\n \t\t} else if ((match = selector.match(/^<([a-z0-9]+)(( ?\\/)?|><\\/\\1)>$/i)) !== null) {\r\n \t\t\tnodes = [document.createElement(match[1])];\r\n\r\n \t\t\t// context is CSS attributes\r\n \t\t\tif (context instanceof Object) {\r\n \t\t\t\t$(nodes).attr(context);\r\n \t\t\t}\r\n\r\n \t\t// parse HTML into nodes\r\n \t\t} else {\r\n \t\t\tconst obj = document.implementation.createHTMLDocument(\"\");\r\n \t\t\tobj.body.innerHTML = selector;\r\n \t\t\tnodes = obj.body.children;\r\n \t\t}\r\n \t}\r\n \treturn new dabby(nodes);\r\n };\r\n\r\n // alias functions\r\n $.fn = $.prototype;\n\n $.each = (obj, callback) => {\r\n \tconst isArr = Array.isArray(obj),\r\n \t\tkeys = Object.keys(obj),\r\n \t\tlen = keys.length;\r\n\r\n \tfor (let i = 0; i < len; i++) {\r\n \t\tif (callback.call(obj[keys[i]], isArr ? parseInt(keys[i]) : keys[i], obj[keys[i]]) === false) {\r\n \t\t\tbreak; // stop if callback returns false\r\n \t\t}\r\n \t}\r\n \treturn obj;\r\n };\n\n $.fn.each = function (callback) {\r\n \t$.each(Array.from(this), callback);\r\n \treturn this;\r\n };\n\n $.isWindow = obj => obj !== null && obj === obj.window;\n\n $.isFunction = func => func && func.constructor === Function;\n\n //import \"../attributes/attr/attr.js\"; // must add attr yourself if you want this functionality, as it could make your build smaller\n\n $.isPlainObject = obj => {\r\n\r\n \t// Basic check for Type object that's not null\r\n \tif (typeof obj === \"object\" && obj !== null) {\r\n\r\n \t\t// If Object.getPrototypeOf supported, use it\r\n \t if (typeof Object.getPrototypeOf === 'function') {\r\n \t\t\tlet proto = Object.getPrototypeOf(obj);\r\n \t\t\treturn proto === Object.prototype || proto === null;\r\n \t }\r\n\r\n \t // Otherwise, use internal class\r\n \t // This should be reliable as if getPrototypeOf not supported, is pre-ES5\r\n \t\treturn Object.prototype.toString.call(obj) === \"[object Object]\";\r\n \t}\r\n\r\n \t// Not an object\r\n \treturn false;\r\n };\n\n $.extend = (...arrs) => {\r\n \tif (arrs[0] === true) {\r\n\r\n \t\t// merge function will recursively merge items\r\n \t\tfunction merge(target, ...sources) {\r\n \t\t\tif (sources.length) {\r\n\r\n \t\t\t\t// work on next source\r\n \t\t\t\tconst source = sources.shift();\r\n \t\t\t\tif ($.isPlainObject(target) && $.isPlainObject(source)) {\r\n\r\n \t\t\t\t\t// loop through each property\r\n \t\t\t\t\t$.each(source, (i, val) => {\r\n\r\n \t\t\t\t\t\t// merge recursively if source is object, if target is not object, overwrite\r\n \t\t\t\t\t\tif ($.isPlainObject(val)) {\r\n \t\t\t\t\t\t\ttarget[i] = $.isPlainObject(target[i]) ? merge(target[i], val) : val;\r\n\r\n \t\t\t\t\t\t// when source property is value just overwrite\r\n \t\t\t\t\t\t} else {\r\n \t\t\t\t\t\t\ttarget[i] = val;\r\n \t\t\t\t\t\t}\r\n \t\t\t\t\t});\r\n \t\t\t\t}\r\n\r\n \t\t\t\t// merge next source\r\n \t\t\t return merge(target, ...sources);\r\n \t\t\t}\r\n \t\t\treturn target;\r\n \t\t}\r\n \t\treturn merge.apply(null, arrs.slice(1));\r\n \t}\r\n \treturn Object.assign.apply(null, arrs);\r\n };\n\n $.param = obj => {\r\n \tlet params = [],\r\n \t\tadd = (key, value, params) => {\r\n \t\t\tlet isArr = Array.isArray(value);\r\n \t\t\tif (isArr || typeof value === \"object\") {\r\n \t\t\t\t$.each(value, (i, val) => {\r\n \t\t\t\t\tparams = add(`${key}[${isArr ? \"\" : i}]`, val, params);\r\n \t\t\t\t});\r\n \t\t\t} else {\r\n \t\t\t\tif ($.isFunction(value)) {\r\n \t\t\t\t\tvalue = value();\r\n \t\t\t\t}\r\n \t\t\t\tparams.push(encodeURIComponent(key) + \"=\" + encodeURIComponent(value === null ? \"\" : value));\r\n \t\t\t}\r\n \t\t\treturn params;\r\n \t\t};\r\n\r\n \t// process values\r\n \t$.each(obj, (key, item) => {\r\n \t\tparams = add(key, item, params);\r\n \t});\r\n \treturn params.join(\"&\");\r\n };\n\n $.ajax = (url, settings) => {\r\n\r\n \t// normalise args\r\n \tif (typeof url === \"object\") {\r\n \t\tsettings = url;\r\n \t} else {\r\n \t\tif (typeof settings !== \"object\") {\r\n \t\t\tsettings = {};\r\n \t\t}\r\n \t\tsettings.url = url;\r\n \t}\r\n\r\n \t// set default settings\r\n \tsettings = Object.assign({\r\n \t\tmethod: \"GET\",\r\n \t\tcache: null, // start will null so we can see if explicitly set\r\n \t\tdata: null,\r\n \t\tdataType: null, // only changes behavior with json, jsonp, script\r\n \t\tasync: true,\r\n \t\tcrossDomain: false,\r\n \t\tscriptCharset: null,\r\n \t\tjsonp: \"callback\",\r\n \t\tjsonpCallback: \"dabby\" + Date.now(),\r\n \t\theaders: {\r\n \t\t\t\"X-Requested-With\": \"XMLHttpRequest\"\r\n \t\t},\r\n \t\txhr: () => new XMLHttpRequest(),\r\n \t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\r\n \t\tcontext: null,\r\n \t\tstatusCode: {},\r\n \t\tusername: null,\r\n \t\tpassword: null\r\n \t}, settings);\r\n\r\n \t// determine datatype\r\n \tif (!settings.dataType && settings.url.split(\"?\")[0].split(\".\").pop() === \"js\") {\r\n \t\tsettings.dataType = \"script\";\r\n \t}\r\n\r\n \tlet sync = [\"script\", \"jsonp\"].indexOf(settings.dataType) > -1,\r\n \t\tjoin = settings.url.indexOf(\"?\") > -1 ? \"&\" : \"?\",\r\n \t\tscript, data;\r\n\r\n \t// add data to query string\r\n \tif (settings.data) {\r\n \t\tif (typeof settings.data === \"string\" || settings.data instanceof FormData) {\r\n \t\t\tdata = settings.data;\r\n \t\t} else {\r\n \t\t\tdata = $.param(settings.data);\r\n \t\t}\r\n \t}\r\n \tif (data && settings.method === \"GET\") {\r\n \t\tsettings.url += join + data;\r\n \t\tjoin = \"&\";\r\n \t}\r\n\r\n \t// add cache buster\r\n \tif (settings.cache || (settings.cache === null && sync)) {\r\n \t\tsettings.url += join + \"_=\" + (+new Date());\r\n \t\tjoin = \"&\";\r\n \t}\r\n\r\n \t// fetch script\r\n \tif (sync || settings.crossDomain) {\r\n \t\tscript = document.createElement(\"script\");\r\n \t\tif (settings.scriptCharset) {\r\n \t\t\tscript.charset = settings.scriptCharset;\r\n \t\t}\r\n\r\n \t\t// add callback parameter\r\n \t\tif (settings.dataType === \"jsonp\") {\r\n \t\t\tsettings.url += join + settings.jsonp + \"=\" + settings.jsonpCallback;\r\n \t\t}\r\n\r\n \t\t// setup event callbacks\r\n \t\t$.each({\r\n \t\t\tload: \"success\",\r\n \t\t\terror: \"error\"\r\n \t\t}, (key, value) => {\r\n \t\t\tscript.addEventListener(key, () => {\r\n \t\t\t\tconst response = settings.dataType === \"jsonp\" ? window[settings.jsonpCallback] || null : null;\r\n \t\t\t\t[settings[value], settings.complete].forEach(callback => {\r\n \t\t\t\t\tif (callback) {\r\n \t\t\t\t\t\tcallback.apply(settings.context, callback === settings.complete ? [null, value] : [response, value]);\r\n \t\t\t\t\t}\r\n \t\t\t\t});\r\n \t\t\t}, {once: true});\r\n \t\t});\r\n\r\n \t\tscript.src = settings.url;\r\n \t\tscript.async = settings.async;\r\n \t\tdocument.head.appendChild(script);\r\n\r\n \t// make xhr request\r\n \t} else {\r\n \t\tconst xhr = settings.xhr(),\r\n \t\t\tcallback = (xhr, status) => {\r\n \t\t\t\tlet response = xhr.responseText;\r\n\r\n \t\t\t\t// parse JSON\r\n \t\t\t\tif ([\"json\", null, undefined].indexOf(settings.dataType) > -1) {\r\n \t\t\t\t\ttry {\r\n \t\t\t\t\t\tresponse = JSON.parse(response);\r\n \t\t\t\t\t} catch (e) {\r\n \t\t\t\t\t\t// do nothing\r\n \t\t\t\t\t}\r\n \t\t\t\t}\r\n\r\n \t\t\t\t// run callbacks\r\n \t\t\t\t[settings.statusCode[xhr.status], settings[status], settings.complete].forEach((callback, i) => {\r\n \t\t\t\t\tif (callback) {\r\n \t\t\t\t\t\tcallback.apply(settings.context, i < 2 ? [response, status, xhr] : [xhr, status]);\r\n \t\t\t\t\t}\r\n \t\t\t\t});\r\n \t\t\t};\r\n\r\n \t\t// callbacks\r\n \t\txhr.onload = () => {\r\n \t\t\tconst types = {\r\n \t\t\t\t200: \"success\",\r\n \t\t\t\t204: \"nocontent\",\r\n \t\t\t\t304: \"notmodified\"\r\n \t\t\t};\r\n \t\t\tcallback(xhr, types[xhr.status] || \"error\");\r\n \t\t};\r\n \t\txhr.ontimeout = () => {\r\n \t\t\tcallback(xhr, \"timeout\");\r\n \t\t};\r\n \t\txhr.onabort = () => {\r\n \t\t\tcallback(xhr, \"abort\");\r\n \t\t};\r\n\r\n \t\txhr.open(settings.method, settings.url, settings.async, settings.username, settings.password);\r\n\r\n \t\t// add headers\r\n \t\tif (settings.contentType) {\r\n \t\t\tsettings.headers[\"Content-Type\"] = settings.contentType;\r\n \t\t}\r\n \t\t$.each(settings.headers, (key, value) => {\r\n \t\t\txhr.setRequestHeader(key, value);\r\n \t\t});\r\n\r\n \t\t// send request\r\n \t\txhr.send(settings.method === \"GET\" ? null : data);\r\n \t\treturn xhr;\r\n \t}\r\n };\n\n [\"get\", \"post\"].forEach(name => {\r\n \t$[name] = (url, data, success, type) => {\r\n \t\tconst isFunc = $.isFunction(data);\r\n \t\tlet settings = typeof(url) === \"object\" ? url : {\r\n \t\t\turl: url,\r\n \t\t\tdata: isFunc ? {} : data,\r\n \t\t\tsuccess: isFunc ? data : success,\r\n \t\t\tdataType: isFunc ? success : type\r\n \t\t};\r\n \t\tsettings.method = name.toUpperCase();\r\n \t\treturn $.ajax(settings);\r\n \t};\r\n });\n\n $.getScript = (url, success) => $.ajax({\r\n \turl: url,\r\n \tdataType: \"script\",\r\n \tsuccess: success\r\n });\n\n var filterNodes = (dabby, filter, context, not) => {\r\n \tlet func,\r\n \t\tnodes = dabby.nodeType ? [dabby] : Array.from(dabby);\r\n\r\n \t// sort out args\r\n \tif (typeof context === \"boolean\") {\r\n \t\tnot = context;\r\n \t\tcontext = null;\r\n \t}\r\n\r\n \t// custom filter function\r\n \tif ($.isFunction(filter)) {\r\n \t\tfunc = filter;\r\n\r\n \t// nodes\r\n \t} else {\r\n\r\n \t\t// normalise filters\r\n \t\tif (typeof filter === \"string\") {\r\n \t\t\tfilter = [filter];\r\n \t\t} else {\r\n \t\t\tfilter = Array.from($(filter, context));\r\n \t\t}\r\n\r\n \t\t// default filter function\r\n \t\tfunc = (n, node) => {\r\n \t\t\tlet i = filter.length;\r\n \t\t\twhile (i--) {\r\n \t\t\t\tif (typeof(filter[i]) === \"string\" && node.matches ? node.matches(filter[i]) : node === filter[i]) {\r\n \t\t\t\t\treturn true;\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t\treturn false;\r\n \t\t};\r\n \t}\r\n \treturn nodes.filter((item, i) => func.call(item, i, item) === !not, nodes);\r\n }\n\n [\"filter\", \"not\", \"is\"].forEach(name => {\r\n \t$.fn[name] = function (selector) {\r\n \t\tconst nodes = filterNodes(this, selector, name === \"not\");\r\n \t\treturn name === \"is\" ? !!nodes.length : $(nodes);\r\n \t};\r\n });\n\n $.fn.load = function (url, data, success) {\r\n \tif (this[0]) {\r\n\r\n \t\t// get selector from URL\r\n \t\turl = url.split(\" \", 2);\r\n \t\tconst uri = url[0],\r\n \t\t\tselector = url[1];\r\n\r\n \t\t// check for data\r\n \t\tif ($.isFunction(data)) {\r\n \t\t\tsuccess = data;\r\n \t\t\tdata = undefined;\r\n \t\t}\r\n\r\n \t\t// make AJAX request\r\n \t\t$.ajax(uri, {\r\n \t\t\tdata: data,\r\n \t\t\ttype: data instanceof Object ? \"POST\" : \"GET\",\r\n \t\t\tsuccess: (response, status, xhr) => {\r\n\r\n \t\t\t\t// if a selector is specified, find it in the returned document\r\n \t\t\t\tlet html = \"\",\r\n \t\t\t\t\ti = this.length;\r\n\r\n \t\t\t\t// refine by selector if supplied\r\n \t\t\t\tif (selector) {\r\n \t\t\t\t\t$(response).filter(selector).each((key, obj) => {\r\n \t\t\t\t\t\thtml += obj.outerHTML;\r\n \t\t\t\t\t});\r\n \t\t\t\t} else {\r\n \t\t\t\t\thtml = response;\r\n \t\t\t\t}\r\n\r\n \t\t\t\t// set HTML to nodes in collection\r\n \t\t\t\twhile (i--) {\r\n \t\t\t\t\tthis[i].innerHTML = html;\r\n\r\n \t\t\t\t\t// fire success callback on nodes\r\n \t\t\t\t\tif (success) {\r\n \t\t\t\t\t\tsuccess.call(this[i], response, status, xhr);\r\n \t\t\t\t\t}\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t});\r\n \t}\r\n \treturn this;\r\n };\n\n var getVal = (obj, val, current) => {\r\n \tlet i = obj.length,\r\n \t\tvalues = [],\r\n \t\tfuncVal = $.isFunction(val),\r\n \t\tobjVal = funcVal ? 0 : $.isPlainObject(val),\r\n \t\tfuncCurrent = $.isFunction(current);\r\n \twhile (i--) {\r\n \t\tvalues[i] = funcVal ? val.call(obj[i], i, funcCurrent ? current(obj[i]) : current) : (objVal ? Object.create(val) : val);\r\n \t}\r\n \treturn values;\r\n }\n\n $.map = (obj, callback) => {\r\n \tlet arr = [];\r\n \t$.each(obj, (i, item) => {\r\n \t\tconst result = callback.call(window, item, i);\r\n \t\tif ([null, undefined].indexOf(result) === -1) {\r\n \t\t\tarr = arr.concat(Array.isArray(result) ? result : [result]);\r\n \t\t}\r\n \t});\r\n \treturn arr;\r\n };\n\n $.fn.val = function (value) {\r\n\r\n \t// set value\r\n \tif (value !== undefined) {\r\n \t\tlet i = this.length,\r\n \t\t\tvalues = getVal(this, value, obj => obj.val());\r\n\r\n \t\twhile (i--) {\r\n\r\n \t\t\t// string value, just set to value attribute\r\n \t\t\tif (!Array.isArray(values[i])) {\r\n \t\t\t\tthis[i].value = values[i];\r\n\r\n \t\t\t// array on select, set matching values to selected\r\n \t\t\t} else if (this[i].type === \"select-multiple\") {\r\n \t\t\t\tvalues[i] = values[i].map(val => String(val));\r\n \t\t\t\t$(\"option\", this[i]).each((key, obj) => {\r\n \t\t\t\t\tobj.selected = values[i].indexOf(obj.value) > -1;\r\n \t\t\t\t});\r\n\r\n \t\t\t// set the checked attribute for radios and checkbox\r\n \t\t\t} else {\r\n \t\t\t\tthis[i].checked = values[i].indexOf(this[i].value) > -1;\r\n \t\t\t}\r\n \t\t}\r\n \t\treturn this;\r\n \t}\r\n\r\n \t// read value from first node\r\n \tif (this[0]) {\r\n\r\n \t\t// get multiple values\r\n \t\tif (this[0].type === \"select-multiple\") {\r\n \t\t\tlet values = [];\r\n \t\t\t$(\"option\", this[0]).each((key, obj) => {\r\n \t\t\t\tif (obj.selected) {\r\n \t\t\t\t\tvalues.push(String(obj.value));\r\n \t\t\t\t}\r\n \t\t\t});\r\n \t\t\treturn values;\r\n \t\t}\r\n\r\n \t\t// get single value\r\n \t\tif (this[0].type !== \"checkbox\" || this[0].checked) {\r\n \t\t\treturn String(this[0].value);\r\n \t\t}\r\n \t}\r\n };\n\n $.fn.serialize = function () {\r\n \tconst selector = \"input[name]:not([type=file]):not([type=submit]):not([type=radio]):not([type=checkbox]),input[name]:checked,textarea[name],select[name]\",\r\n \t\tadd = (name, value, params) => {\r\n \t\t\tlet match;\r\n\r\n \t\t\tif ((match = name.match(/([^\\[]*)\\[([^\\]]*)\\](.*)/)) !== null) {\r\n \t\t\t\tname = match[1];\r\n \t\t\t\tlet arr = add(match[2] + match[3], value, params[name] || {});\r\n \t\t\t\tvalue = arr;\r\n \t\t\t}\r\n\r\n \t\t\tif (name !== \"\") {\r\n \t\t\t\tparams[name] = value;\r\n \t\t\t} else {\r\n \t\t\t\tif (!Array.isArray(params)) {\r\n \t\t\t\t\tparams = [];\r\n \t\t\t\t}\r\n \t\t\t\tparams = params.concat(Array.isArray(value) ? value : [value]);\r\n \t\t\t}\r\n \t\t\treturn params;\r\n \t\t};\r\n \tlet obj = this.filter(selector);\r\n\r\n \tif (!obj.length) {\r\n \t\tobj = $(selector, this);\r\n \t}\r\n\r\n \tlet params = {};\r\n\r\n \t// process values\r\n \tobj.each((key, obj) => {\r\n \t\tconst value = $(obj).val();\r\n \t\tif (!obj.disabled && value !== undefined) {\r\n \t\t\tparams = add(obj.name, value, params);\r\n \t\t}\r\n \t});\r\n \treturn $.param(params);\r\n };\n\n $.fn.add = function (nodes, context) {\r\n \tnodes = $(nodes, context);\r\n \tlet len = this.length,\r\n \t\ti = nodes.length;\r\n\r\n \tthis.length += i;\r\n \twhile (i--) {\r\n \t\tthis[i + len] = nodes[i];\r\n \t}\r\n \treturn this;\r\n };\n\n [\"parent\", \"parents\", \"parentsUntil\"].forEach(func => {\r\n \t$.fn[func] = function (selector, filter) {\r\n \t\tconst all = func.indexOf(\"s\") > -1,\r\n \t\t\tuntil = func.indexOf(\"U\") > -1;\r\n \t\tlet nodes = [],\r\n \t\t\ti = this.length,\r\n \t\t\tparent;\r\n\r\n \t\twhile (i--) {\r\n \t\t\tparent = this[i].parentNode;\r\n \t\t\twhile (parent && parent.nodeType === Node.ELEMENT_NODE) {\r\n \t\t\t\tnodes.push(parent);\r\n \t\t\t\tif (!all || (until && filterNodes(parent, selector).length)) {\r\n \t\t\t\t\tbreak;\r\n \t\t\t\t} else {\r\n \t\t\t\t\tparent = parent.parentNode;\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t}\r\n \t\treturn $(selector ? filterNodes(nodes, selector) : nodes);\r\n \t};\r\n });\n\n $.fn.get = function (i) {\r\n \treturn i === undefined ? Array.from(this) : this[i >= 0 ? i : i + this.length];\r\n };\n\n // add and remove event handlers\r\n [\"on\", \"one\"].forEach(name => {\r\n \t$.fn[name] = function (events, selector, data, callback) {\r\n\r\n \t\t// sort out args\r\n \t\tevents = events.split(\" \");\r\n \t\tif ($.isFunction(selector)) {\r\n \t\t\tcallback = selector;\r\n \t\t\tselector = undefined;\r\n \t\t} else if ($.isFunction(data)) {\r\n \t\t\tcallback = data;\r\n \t\t\tdata = undefined;\r\n \t\t}\r\n\r\n \t\t// attach event\r\n \t\tlet i = this.length;\r\n \t\twhile (i--) {\r\n \t\t\tlet e = events.length;\r\n\r\n \t\t\t// record the original function\r\n \t\t\tif (!this[i].events) {\r\n \t\t\t\tthis[i].events = [];\r\n \t\t\t}\r\n \t\t\tlet fn = function (evt) { // delegate function\r\n \t\t\t\tlet target = [this];\r\n \t\t\t\tif (selector) {\r\n \t\t\t\t\tlet t = $(evt.target);\r\n \t\t\t\t\ttarget = t.add(t.parents()).filter(selector).get(); // is the selector in the targets parents?\r\n \t\t\t\t}\r\n \t\t\t\tif (target) {\r\n \t\t\t\t\tevt.data = data; // set data to event object\r\n \t\t\t\t\tfor (let i = 0, len = target.length; i < len; i++) {\r\n \t\t\t\t\t\tif (callback.call(target[i], evt, evt.args) === false) {\r\n \t\t\t\t\t\t\tevt.preventDefault();\r\n \t\t\t\t\t\t\tevt.stopPropagation();\r\n \t\t\t\t\t\t}\r\n \t\t\t\t\t}\r\n \t\t\t\t}\r\n \t\t\t};\r\n \t\t\tthis[i].events.push({\r\n \t\t\t\tevents: events,\r\n \t\t\t\tcallback: callback,\r\n \t\t\t\tselector: selector,\r\n \t\t\t\tfunc: fn,\r\n \t\t\t\tonce: name === \"one\"\r\n \t\t\t});\r\n\r\n \t\t\t// trigger\r\n \t\t\twhile (e--) {\r\n \t\t\t\tthis[i].addEventListener(events[e], fn, {once: name === \"one\", capture: !!selector});\r\n \t\t\t}\r\n \t\t}\r\n \t\treturn this;\r\n \t};\r\n });\n\n var events = [\"focusin\", \"focusout\", \"focus\", \"blur\", \"resize\", \"scroll\", \"unload\", \"click\", \"dblclick\", \"mousedown\", \"mouseup\", \"mousemove\", \"mouseover\", \"mouseout\", \"mouseenter\", \"mouseleave\", \"contextmenu\", \"change\", \"select\", \"keydown\", \"keypress\", \"keyup\", \"error\", \"submit\"];\n\n $.fn.attr = function (prop, value) {\r\n \tlet isObj = typeof prop !== \"string\",\r\n \t\tobj = {};\r\n\r\n \t// set properties\r\n \tif (isObj || value !== undefined) {\r\n\r\n \t\t// normalise to object\r\n \t\tif (!isObj) {\r\n \t\t\tobj[prop] = value;\r\n \t\t\tprop = obj;\r\n \t\t}\r\n\r\n \t\t$.each(prop, (key, val) => {\r\n\r\n \t\t\t// if event, hand it off to $.fn.on()\r\n \t\t\tif (events.indexOf(key) > -1) {\r\n \t\t\t\tthis.on(key, val);\r\n\r\n \t\t\t// process other values\r\n \t\t\t} else {\r\n \t\t\t\tlet i = this.length,\r\n \t\t\t\t\tvalues = getVal(this, val, obj => $(obj).attr(key));\r\n \t\t\t\twhile (i--) {\r\n \t\t\t\t\tif (key === \"style\") {\r\n \t\t\t\t\t\tthis[i].style.cssText = values[i];\r\n \t\t\t\t\t} else if (key === \"class\") {\r\n \t\t\t\t\t\tthis[i].className = values[i];\r\n \t\t\t\t\t} else if (key === \"text\") {\r\n \t\t\t\t\t\tthis[i].textContent = values[i];\r\n \t\t\t\t\t} else if (values[i] === null) {\r\n \t\t\t\t\t\tthis[i].removeAttribute(key);\r\n \t\t\t\t\t} else {\r\n \t\t\t\t\t\tthis[i].setAttribute(key, values[i]);\r\n \t\t\t\t\t}\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t});\r\n \t\treturn this;\r\n \t}\r\n\r\n \t// retrieve properties\r\n \tif (this[0]) {\r\n \t\tif (prop === \"style\") {\r\n \t\t\treturn this[0].style.cssText;\r\n \t\t}\r\n \t\tif (prop === \"class\") {\r\n \t\t\treturn this[0].className;\r\n \t\t}\r\n \t\treturn this[0].getAttribute(prop);\r\n \t}\r\n };\n\n const funcs = [];\r\n [\"removeClass\", \"addClass\", \"toggleClass\"].forEach((func, f) => {\r\n\r\n \t// remove \"Class\" from name for classList method and remember\r\n \tfuncs.push(func.substr(0, func.length - 5));\r\n\r\n \t// create function\r\n \t$.fn[func] = function (cls, state) {\r\n \t\tlet i = this.length,\r\n \t\t\tvalues = getVal(this, cls, obj => obj.className),\r\n \t\t\tkey = f;\r\n\r\n \t\tif (func === \"toggleClass\" && typeof state === \"boolean\") {\r\n \t\t\tkey = 0 + state;\r\n \t\t}\r\n\r\n \t\t// manage classes on nodes\r\n \t\twhile (i--) {\r\n \t\t\tif (typeof values[i] === \"string\") {\r\n \t\t\t\tvalues[i] = values[i].split(\" \");\r\n \t\t\t}\r\n \t\t\tfor (let n = 0, len = values[i].length; n < len; n++) {\r\n \t\t\t\tthis[i].classList[funcs[key]](values[i][n]);\r\n \t\t\t}\r\n \t\t}\r\n \t\treturn this;\r\n \t};\r\n });\n\n var camelise = prop => prop.replace(/-([\\w])/g, (text, letter) => letter.toUpperCase()); // matches underscore too but you shouldn't do that anyway\n\n var setCss = (dabby, props, value) => {\r\n\r\n \t// normalise props\r\n \tif (typeof props === \"string\") {\r\n \t\tconst name = props;\r\n \t\tprops = {};\r\n \t\tprops[name] = value;\r\n \t}\r\n\r\n \t// prepare values\r\n \tlet values = {};\r\n \t$.each(props, (i, prop) => {\r\n \t\tvalues[camelise(i)] = getVal(dabby, prop, obj => obj.style[i]);\r\n \t});\r\n\r\n \t// set properties\r\n \t$.each(values, (key, val) => {\r\n \t\tlet i = dabby.length;\r\n \t\twhile (i--) {\r\n \t\t\tdabby[i].style[key] = val[i] + (isNaN(val[i]) ? \"\" : \"px\");\r\n \t\t}\r\n \t});\r\n \treturn dabby;\r\n }\n\n $.fn.css = function (props, value) {\r\n\r\n \t// set the values\r\n \tif (value !== undefined || $.isPlainObject(props)) {\r\n \t\treturn setCss(this, props, value);\r\n \t}\r\n\r\n \t// retrieve value from first property\r\n \tif (this[0]) {\r\n \t\tlet name = props,\r\n \t\t\ti,\r\n \t\t\tstyle = getComputedStyle(this[0], \"\"),\r\n \t\t\toutput = {},\r\n \t\t\tret = false;\r\n\r\n \t\tif (typeof name === \"string\") {\r\n \t\t\tprops = [name];\r\n \t\t\tret = true;\r\n \t\t}\r\n \t\ti = props.length;\r\n \t\twhile (i--) {\r\n \t\t\toutput[props[i]] = style[camelise(props[i])];\r\n \t\t\tif (ret) {\r\n \t\t\t\treturn output[props[i]];\r\n \t\t\t}\r\n \t\t}\r\n \t\treturn output;\r\n \t}\r\n };\n\n $.fn.data = function (name, data) {\r\n\r\n \t// convert data to object\r\n \tif (typeof name === \"object\") {\r\n \t\tdata = name;\r\n \t} else if (data !== undefined) {\r\n \t\tlet temp = {};\r\n \t\ttemp[name] = data;\r\n \t\tdata = temp;\r\n \t}\r\n\r\n \t// set value\r\n \tif (data !== undefined) {\r\n \t\tlet i = this.length;\r\n \t\twhile (i--) {\r\n \t\t\t$.each(data, (key, value) => {\r\n \t\t\t\tthis[i].dataset[camelise(key)] = typeof value === \"object\" ? JSON.stringify(value) : value;\r\n \t\t\t});\r\n \t\t}\r\n \t\treturn this;\r\n \t}\r\n\r\n \t// get value\r\n \tif (this[0] && this[0].dataset) {\r\n \t\tlet parse = value => {\r\n \t\t\ttry {\r\n \t\t\t\treturn JSON.parse(value);\r\n \t\t\t} catch (e) {\r\n \t\t\t\treturn value;\r\n \t\t\t}\r\n \t\t};\r\n\r\n \t\t// all properties\r\n \t\tif (name === undefined) {\r\n \t\t\tlet arr = {};\r\n \t\t\t$.each(this[0].dataset, (key, value) => {\r\n \t\t\t\tarr[key] = parse(value);\r\n \t\t\t});\r\n \t\t\treturn arr;\r\n \t\t}\r\n\r\n \t\t// retrieve specific property\r\n \t\tname = camelise(name);\r\n \t\tif (this[0].dataset.hasOwnProperty(name)) {\r\n \t\t\treturn parse(this[0].dataset[name]);\r\n \t\t}\r\n \t}\r\n };\n\n $.fn.hasClass = function (cls) {\r\n \tlet i = this.length;\r\n \twhile (i--) {\r\n \t\tif (this[i].classList.contains(cls)) {\r\n \t\t\treturn true;\r\n \t\t}\r\n \t}\r\n \treturn false;\r\n };\n\n var getProp = prop => {\r\n \tlet properties = {\r\n \t\t\"for\": \"htmlFor\",\r\n \t\t\"class\": \"className\",\r\n \t\t\"tabindex\": \"tabIndex\",\r\n \t\t\"readonly\": \"readOnly\",\r\n \t\t\"maxlength\": \"maxLength\",\r\n \t\t\"cellspacing\": \"cellSpacing\",\r\n \t\t\"cellpadding\": \"cellPadding\",\r\n \t\t\"rowspan\": \"rowSpan\",\r\n \t\t\"colspan\": \"colSpan\",\r\n \t\t\"usemap\": \"useMap\",\r\n \t\t\"frameborder\": \"frameBorder\",\r\n \t\t\"contenteditable\": \"contentEditable\"\r\n \t};\r\n \tprop = prop.toLowerCase();\r\n \treturn properties[prop] || prop;\r\n }\n\n $.fn.prop = function (prop, value) {\r\n \tconst isObj = $.isPlainObject(prop);\r\n\r\n \t// set\r\n \tif (value !== undefined || isObj) {\r\n\r\n \t\t// normalise values\r\n \t\tif (!isObj) {\r\n \t\t\tconst tmp = {};\r\n \t\t\ttmp[prop] = value;\r\n \t\t\tprop = tmp;\r\n \t\t}\r\n\r\n \t\t// retrieve values\r\n \t\tlet values = {};\r\n \t\t$.each(prop, (key, val) => {\r\n \t\t\tvalues[getProp(key)] = getVal(this, val, obj => obj[key]);\r\n \t\t});\r\n\r\n \t\t// set properties\r\n \t\t$.each(values, (key, val) => {\r\n \t\t\tlet i = this.length;\r\n \t\t\twhile (i--) {\r\n \t\t\t\tthis[i][key] = val[i];\r\n \t\t\t}\r\n \t\t});\r\n \t\treturn this;\r\n \t}\r\n\r\n \t// get\r\n \tif (this[0]) {\r\n \t\treturn this[0][getProp(prop)];\r\n \t}\r\n };\n\n $.fn.removeProp = function (prop) {\r\n \tlet i = this.length;\r\n \tprop = getProp(prop);\r\n\r\n \twhile (i--) {\r\n \t\tdelete this[i][prop];\r\n \t}\r\n \treturn this;\r\n };\n\n [\"show\", \"hide\", \"toggle\"].forEach((func, n) => {\r\n \t$.fn[func] = function () {\r\n \t\tlet i = this.length,\r\n \t\t\tvalues = [\"block\", \"none\"];\r\n \t\twhile (i--) {\r\n \t\t\tthis[i].style.display = values[n] || (getComputedStyle(this[i]).display === \"none\" ? \"block\" : \"none\");\r\n \t\t}\r\n \t\treturn this;\r\n \t};\r\n });\n\n $.fn.map = function (callback) {\r\n \tlet len = this.length,\r\n \t\tvalues = [],\r\n \t\ti = 0;\r\n\r\n \tfor (; i < len; i++) {\r\n \t\tvalues.push(callback.call(this[i], i, this[i]));\r\n \t}\r\n \treturn values;\r\n };\n\n $.fn.offset = function (coords) {\r\n\r\n \t// set\r\n \tif (coords) {\r\n\r\n \t\t// prepare values\r\n \t\tlet values = getVal(this, coords, obj => obj.offset()), // copy the object\r\n \t\t\ti = this.length;\r\n\r\n \t\twhile (i--) {\r\n\r\n \t\t\t// set position to relative if not positioned\r\n \t\t\tlet pos = getComputedStyle(this[i]).position;\r\n \t\t\tif (pos === \"static\") {\r\n \t\t\t\tvalues[i].position = pos = \"relative\";\r\n \t\t\t}\r\n\r\n \t\t\t// take off offset parent position\r\n \t\t\tconst parent = this[i][pos === \"relative\" ? \"parentNode\" : \"offsetParent\"];\r\n \t\t\t$.each($(parent).offset(), (key, val) => values[i][key] -= val);\r\n\r\n \t\t\t// relative add inner offset\r\n \t\t\tif (pos === \"relative\") {\r\n \t\t\t\tconst style = getComputedStyle(parent);\r\n \t\t\t\tvalues[i].top -= parseFloat(style.paddingTop) + parseFloat(style.borderTopWidth);\r\n \t\t\t\tvalues[i].left -= parseFloat(style.paddingLeft) + parseFloat(style.borderLeftWidth);\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\t// update values in one hit to prevent thrashing\r\n \t\ti = this.length;\r\n \t\twhile (i--) {\r\n \t\t\t$.each(values[i], (key, val) => this[i].style[key] = val + (isNaN(val) ? \"\" : \"px\"));\r\n \t\t}\r\n \t\treturn this;\r\n \t}\r\n\r\n \t// get\r\n \tif (this[0]) {\r\n \t\tconst doc = document.documentElement,\r\n \t\t\tpos = this[0].style.position === \"fixed\",\r\n \t\t\trect = this[0].getBoundingClientRect();\r\n \t\treturn {\r\n \t\t\ttop: rect.top + (pos ? 0 : doc.scrollTop),\r\n \t\t\tleft: rect.left + (pos ? 0 : doc.scrollLeft)\r\n \t\t};\r\n \t}\r\n };\n\n $.fn.offsetParent = function () {\r\n \treturn $(this[0] ? this[0].offsetParent : null);\r\n };\n\n $.fn.position = function () {\r\n \tif (this[0]) {\r\n \t\treturn {left: this[0].offsetLeft, top: this[0].offsetTop};\r\n \t}\r\n };\n\n [\"scrollLeft\", \"scrollTop\"].forEach(item => {\r\n \t$.fn[item] = function (pos) {\r\n \t\tconst top = item === \"scrollTop\";\r\n\r\n \t\t// set\r\n \t\tif (pos !== undefined) {\r\n \t\t\tlet i = this.length,\r\n \t\t\t\ttl = top ? \"top\" : \"left\",\r\n \t\t\t\tvalues = getVal(this, pos, obj => obj[item]);\r\n \t\t\t\r\n \t\t\twhile (i--) {\r\n \t\t\t\tif ($.isWindow(this[i])) {\r\n \t\t\t\t\tlet obj = {};\r\n \t\t\t\t\tobj[tl] = values[i];\r\n \t\t\t\t\tthis[i].scroll(obj);\r\n \t\t\t\t} else {\r\n \t\t\t\t\tthis[i][item] = values[i];\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t\treturn this;\r\n \t\t}\r\n\r\n \t\t// get\r\n \t\tif (this[0]) {\r\n \t\t\tif ($.isWindow(this[0])) {\r\n \t\t\t\titem = top ? \"pageYOffset\" : \"pageXOffset\";\r\n \t\t\t}\r\n \t\t\treturn this[0][item];\r\n \t\t}\r\n \t};\r\n });\n\n [\"width\", \"height\", \"innerWidth\", \"innerHeight\", \"outerWidth\", \"outerHeight\"].forEach(dim => {\r\n\r\n \t$.fn[dim] = function (val) {\r\n \t\tconst width = dim.indexOf(\"d\") > -1,\r\n \t\t\twh = width ? \"width\" : \"height\", // width or height\r\n \t\t\twhu = width ? \"Width\" : \"Height\", // with uppercase letter\r\n \t\t\tio = dim.indexOf(\"inner\") > -1 ? \"inner\" : (dim.indexOf(\"outer\") > -1 ? \"outer\" : \"\"), // inner outer or neither\r\n \t\t\tpos = [\r\n \t\t\t\twidth ? \"Left\" : \"Top\", // first dimension\r\n \t\t\t\twidth ? \"Right\" : \"Bottom\" // second dimension\r\n \t\t\t];\r\n\r\n \t\t// set value\r\n \t\tif (val !== undefined && typeof(val) !== \"boolean\") {\r\n \t\t\tlet values = getVal(this, val, obj => obj[dim]),\r\n \t\t\t\ti = this.length,\r\n \t\t\t\tprops = [],\r\n \t\t\t\tstyle;\r\n \t\t\twhile (i--) {\r\n\r\n \t\t\t\t// add additional lengths\r\n \t\t\t\tif (io) {\r\n\r\n \t\t\t\t\t// fetch current style and build properties\r\n \t\t\t\t\tpos.forEach(item => {\r\n \t\t\t\t\t\tprops.push(\"padding\" + item);\r\n \t\t\t\t\t\tif (io === \"outer\") {\r\n \t\t\t\t\t\t\tprops.push(\"border\" + item + \"Width\");\r\n \t\t\t\t\t\t}\r\n \t\t\t\t\t});\r\n\r\n \t\t\t\t\t// set width to convert to a px value\r\n \t\t\t\t\tif (isNaN(values[i]) && values[i].indexOf(\"px\") === -1) {\r\n \t\t\t\t\t\tthis[i].style[wh] = values[i];\r\n \t\t\t\t\t\tprops.push(wh);\r\n \t\t\t\t\t\tvalues[i] = 0; // reset to 0\r\n \t\t\t\t\t}\r\n\r\n \t\t\t\t\t// add values\r\n \t\t\t\t\tstyle = getComputedStyle(this[i]);\r\n \t\t\t\t\tprops.forEach(val => values[i] -= parseFloat(style[val]));\r\n \t\t\t\t}\r\n \t\t\t\tthis[i].style[wh] = values[i] + (isNaN(values[i]) ? \"\" : \"px\");\r\n \t\t\t}\r\n \t\t\treturn this;\r\n \t\t}\r\n\r\n \t\t// get value\r\n \t\tif (this[0]) {\r\n\r\n \t\t\t// document\r\n \t\t\tif (this[0].nodeType === Node.DOCUMENT_NODE) {\r\n \t\t\t\treturn this[0].documentElement[\"scroll\" + whu];\r\n \t\t\t}\r\n\r\n \t\t\t// element\r\n \t\t\tif (!$.isWindow(this[0])) {\r\n \t\t\t\tlet value = this[0][(io === \"outer\" ? \"offset\" : \"client\") + whu];\r\n\r\n \t\t\t\t// add padding on, or if outer and margins requested, add margins on\r\n \t\t\t\tif (io === \"\" || (io === \"outer\" && val === true)) {\r\n \t\t\t\t\tconst style = getComputedStyle(this[0]);\r\n \t\t\t\t\tpos.forEach(item => value += parseFloat(style[(io ? \"margin\" : \"padding\") + item]) * (io ? 1 : -1));\r\n \t\t\t\t}\r\n \t\t\t\treturn value;\r\n \t\t\t}\r\n\r\n \t\t\t// window\r\n \t\t\tif (io === \"inner\") {\r\n \t\t\t\treturn this[0].document.documentElement[\"client\" + whu];\r\n \t\t\t}\r\n\r\n \t\t\treturn this[0][\"inner\" + whu];\r\n \t\t}\r\n \t};\r\n });\n\n $.fn.trigger = function (name, data) {\r\n \tlet i = this.length;\r\n \twhile (i--) {\r\n\r\n \t\t// native submit event doesn't trigger event handlers\r\n \t\tif (name !== \"submit\" && $.isFunction(this[i][name])) {\r\n \t\t\tthis[i][name]();\r\n \t\t} else {\r\n \t\t\tconst evt = new CustomEvent(name, {bubbles: true, cancelable: true});\r\n \t\t\tevt.args = data;\r\n \t\t\tthis[i].dispatchEvent(evt);\r\n \t\t}\r\n \t}\r\n \treturn this;\r\n };\n\n events.forEach(event => {\r\n \t$.fn[event] = function (data, callback) {\r\n \t\treturn data ? this.on(event, data, callback) : this.trigger(event);\r\n \t};\r\n });\n\n // add and remove event handlers\r\n $.fn.off = function (events, selector, data, callback) {\r\n\r\n \t// sort out args\r\n \tevents = events.split(\" \");\r\n \tif ($.isFunction(selector)) {\r\n \t\tcallback = selector;\r\n \t\tselector = undefined;\r\n \t} else if ($.isFunction(data)) {\r\n \t\tcallback = data;\r\n \t\tdata = undefined;\r\n \t}\r\n\r\n \t// attach event\r\n \tlet i = this.length;\r\n \twhile (i--) {\r\n\r\n \t\t// find the original function\r\n \t\tif (this[i].events.length) {\r\n \t\t\tlet e = events.length;\r\n \t\t\twhile (e--) {\r\n \t\t\t\tthis[i].events.forEach((evt, n) => {\r\n \t\t\t\t\tconst index = evt.events.indexOf(events[e]);\r\n \t\t\t\t\tif (index !== -1 && (!callback || evt.callback === callback) && (!selector || evt.selector === selector)) {\r\n \t\t\t\t\t\tthis[i].removeEventListener(events[e], evt.func, {once: evt.once, capture: !!evt.selector}); // must pass same arguments\r\n \t\t\t\t\t\tthis[i].events[n].events.splice(index, 1);\r\n \t\t\t\t\t\tif (!this[i].events[n].events.length) {\r\n \t\t\t\t\t\t\tthis[i].events.splice(n, 1);\r\n \t\t\t\t\t\t}\r\n \t\t\t\t\t}\r\n \t\t\t\t});\r\n \t\t\t}\r\n \t\t}\r\n \t}\r\n \treturn this;\r\n };\n\n $.fn.clone = function () {\r\n \tlet nodes = [],\r\n \t\ti = this.length;\r\n\r\n \twhile (i--) {\r\n \t\tnodes[i] = this[i].cloneNode(true);\r\n \t}\r\n \treturn $(nodes);\r\n };\n\n $.fn.empty = function () {\r\n \tlet i = this.length;\r\n \twhile (i--) {\r\n \t\twhile (this[i].firstChild && this[i].removeChild(this[i].firstChild));\r\n \t}\r\n \treturn this;\r\n };\n\n $.fn.html = function (html) {\r\n\r\n \t// set\r\n \tif (html !== undefined) {\r\n \t\tlet i = this.length,\r\n \t\t\tvalues = getVal(this, html, obj => obj.innerHTML);\r\n \t\twhile (i--) {\r\n \t\t\tthis[i].innerHTML = values[i];\r\n \t\t}\r\n \t\treturn this;\r\n \t}\r\n\r\n \t// get\r\n \tif (this[0]) {\r\n \t\treturn this[0].innerHTML;\r\n \t}\r\n };\n\n $.each({\r\n \tbefore: \"beforeBegin\",\r\n \tprepend: \"afterBegin\",\r\n \tappend: \"beforeEnd\",\r\n \tafter: \"afterEnd\"\r\n }, (name, pos) => {\r\n \t$.fn[name] = function (html) {\r\n \t\tlet pre = [\"before\", \"prepend\"].indexOf(name) > -1,\r\n \t\t\tarr = [],\r\n \t\t\ti = this.length;\r\n\r\n \t\tif ($.isFunction(html)) {\r\n \t\t\tarr = getVal(this, html, obj => obj.innerHTML);\r\n\r\n \t\t// multiple arguments containing nodes\r\n \t\t} else {\r\n \t\t\tconst elems = $();\r\n \t\t\t$.each(arguments, (i, arg) => elems.add(arg));\r\n \t\t\twhile (i--) {\r\n \t\t\t\tarr[i] = i ? elems.clone() : elems;\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\ti = this.length;\r\n \t\twhile (i--) {\r\n \t\t\tlet backwards = arr[i].length, // for counting down\r\n \t\t\t\tforwards = -1; // for counting up\r\n \t\t\twhile (pre ? backwards-- : ++forwards < backwards) { // insert forwards or backwards?\r\n \t\t\t\tthis[i].insertAdjacentElement(pos, arr[i][pre ? backwards : forwards]);\r\n \t\t\t}\r\n \t\t}\r\n \t\treturn this;\r\n \t};\r\n });\n\n $.each({\r\n \tinsertBefore: \"before\",\r\n \tprependTo: \"prepend\",\r\n \tappendTo: \"append\",\r\n \tinsertAfter: \"after\"\r\n }, (name, func) => {\r\n \t$.fn[name] = function (selector) {\r\n \t\tlet i = this.length,\r\n \t\t\tobj = $(selector);\r\n\r\n \t\twhile (i--) {\r\n \t\t\tobj[func](this[i]);\r\n \t\t}\r\n \t\treturn this;\r\n \t};\r\n });\n\n [\"remove\", \"detach\"].forEach(func => {\r\n \t$.fn[func] = function (selector) {\r\n \t\tlet i = this.length,\r\n \t\t\tnodes = [];\r\n\r\n \t\t// detach selected nodes\r\n \t\twhile (i--) {\r\n \t\t\tif (!selector || filterNodes(this[i], selector).length) {\r\n \t\t\t\tnodes.push(this[i].parentNode.removeChild(this[i]));\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\t// create a new dabby object to return\r\n \t\treturn func === \"detach\" ? $(nodes) : this;\r\n \t};\r\n });\n\n [\"replaceWith\", \"replaceAll\"].forEach(name => {\r\n \t$.fn[name] = function (html) {\r\n \t\tconst all = name === \"replaceAll\",\r\n \t\t\tsource = all ? $(html) : this;\r\n \t\tlet target = all ? this : html,\r\n \t\t\tisFunc = $.isFunction(target),\r\n \t\t\ti = source.length;\r\n\r\n \t\tif (!isFunc) {\r\n \t\t\ttarget = $(target);\r\n \t\t}\r\n\r\n \t\twhile (i--) {\r\n \t\t\tlet n = target.length,\r\n \t\t\t\tparent = source[i].parentNode;\r\n \t\t\twhile (n--) {\r\n \t\t\t\tconst replace = isFunc ? getVal(target[n], n, target[n]) : target[n];\r\n \t\t\t\tif (n) {\r\n \t\t\t\t\tsource[i].insertAdjacentElement(\"beforebegin\", replace.cloneNode(true));\r\n \t\t\t\t} else {\r\n \t\t\t\t\tsource[i] = parent.replaceChild(i ? replace.cloneNode(true) : replace, source[i]);\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t}\r\n \t\treturn this;\r\n \t};\r\n });\n\n $.fn.slice = function (start, end) {\r\n \treturn $(this.get().slice(start, end));\r\n };\n\n $.fn.text = function (text) {\r\n \tlet i = this.length,\r\n \t\toutput = [];\r\n\r\n \t// set\r\n \tif (text !== undefined) {\r\n \t\tconst values = getVal(this, text, obj => obj.textContent);\r\n \t\twhile (i--) {\r\n \t\t\tthis[i].textContent = values[i];\r\n \t\t}\r\n \t\treturn this;\r\n \t}\r\n\r\n \t// get\r\n \twhile (i--) {\r\n \t\toutput[i] = this[i].textContent;\r\n \t}\r\n \treturn output.join(\" \");\r\n };\n\n $.fn.unwrap = function (selector) {\r\n \tthis.parent(selector).not(\"body\").each((key, obj) => {\r\n \t\t$(obj.children).each((i, node) => {\r\n \t\t\tobj.parentNode.insertBefore(node, obj);\r\n \t\t});\r\n \t\tobj.parentNode.removeChild(obj);\r\n \t});\r\n \treturn this;\r\n };\n\n $.fn.wrapAll = function (html) {\r\n \tif (this[0]) {\r\n \t\tif ($.isFunction(html)) {\r\n \t\t\thtml = html.call(this[0]);\r\n \t\t}\r\n\r\n \t\t// set variables\r\n \t\tlet len = this.length,\r\n \t\t\ti = 0,\r\n \t\t\tnode = $(html)[0].cloneNode(true);\r\n\r\n \t\t// insert clone into parent\r\n \t\tthis[0].parentNode.insertBefore(node, null);\r\n\r\n \t\t// find innermost child of node\r\n \t\twhile (node.firstElementChild) {\r\n \t\t\tnode = node.firstElementChild;\r\n \t\t}\r\n\r\n \t\t// attach nodes to the new node\r\n \t\tfor (; i < len; i++) {\r\n \t\t\tnode.appendChild(this[i]);\r\n \t\t}\r\n \t}\r\n \treturn this;\r\n };\n\n $.fn.wrap = function (html) {\r\n \tlet i = this.length,\r\n \t\tvalues = getVal(this, html);\r\n\r\n \twhile (i--) {\r\n \t\t$(this[i]).wrapAll(values[i]);\r\n \t}\r\n \treturn this;\r\n };\n\n $.fn.children = function (selector) {\r\n \tlet nodes = [],\r\n \t\ti = this.length;\r\n\r\n \twhile (i--) {\r\n \t\tnodes = nodes.concat(Array.from(this[i].children));\r\n \t}\r\n\r\n \t// filter nodes by selector\r\n \treturn $(selector ? filterNodes(nodes, selector) : nodes);\r\n };\n\n $.fn.closest = function (selector, context) {\r\n \tlet i = this.length,\r\n \t\tnodes = [],\r\n \t\tparents,\r\n \t\tnode;\r\n\r\n \twhile (i--) {\r\n \t\tparents = [];\r\n \t\tnode = this[i];\r\n \t\twhile (node) {\r\n \t\t\tparents.push(node);\r\n \t\t\tnode = node.parentNode;\r\n \t\t}\r\n \t\tparents = filterNodes(parents, selector, context);\r\n \t\tif (parents[0]) {\r\n \t\t\tnodes.push(parents[0]);\r\n \t\t}\r\n \t}\r\n \treturn $(nodes);\r\n };\n\n $.fn.eq = function (i) {\r\n \treturn $(this[i < 0 ? i + this.length : i]);\r\n };\n\n $.fn.find = function (selector) {\r\n \treturn $(selector, this);\r\n };\n\n $.fn.first = function () {\r\n \treturn $(this[0]);\r\n };\n\n $.fn.has = function (selector) {\r\n \treturn $(this.get().filter(node => !!$(selector, node).length));\r\n };\n\n $.fn.index = function (selector) {\r\n\r\n \tif (this[0]) {\r\n \t\tlet nodes,\r\n \t\t\tsubject = this[0],\r\n \t\t\ti;\r\n\r\n \t\t// if no selector, match against first elements siblings\r\n \t\tif (selector === undefined) {\r\n \t\t\tnodes = this[0].parentNode.children;\r\n\r\n \t\t// if selector is string, match first node in current collection against resulting collection\r\n \t\t} else if (typeof selector === \"string\") {\r\n \t\t\tnodes = $(selector);\r\n\r\n \t\t// if element or collection match the element or first node against current collection\r\n \t\t} else {\r\n \t\t\tnodes = this;\r\n \t\t\tsubject = $(selector)[0];\r\n \t\t}\r\n\r\n \t\ti = nodes.length;\r\n \t\twhile (i--) {\r\n \t\t\tif (nodes[i] === subject) {\r\n \t\t\t\treturn i;\r\n \t\t\t}\r\n \t\t}\r\n \t}\r\n \treturn -1;\r\n };\n\n $.fn.last = function () {\r\n \treturn this.eq(-1);\r\n };\n\n [\"next\", \"nextAll\", \"nextUntil\", \"prev\", \"prevAll\", \"prevUntil\"].forEach(func => {\r\n \t$.fn[func] = function (selector, filter) {\r\n \t\tconst next = func.indexOf(\"x\") > -1,\r\n \t\t\tall = func.indexOf(\"A\") > -1,\r\n \t\t\tuntil = func.indexOf(\"U\") > -1,\r\n \t\t\tmethod = next ? \"nextElementSibling\" : \"previousElementSibling\";\r\n \t\tlet nodes = [],\r\n \t\t\ti = this.length,\r\n \t\t\tsibling;\r\n\r\n \t\t// look through each node and get siblings\r\n \t\twhile (i--) {\r\n \t\t\tsibling = this[i][method];\r\n \t\t\twhile (sibling) {\r\n \t\t\t\tnodes.push(sibling);\r\n \t\t\t\tif (all || (until && filterNodes(sibling, selector).length)) {\r\n \t\t\t\t\tbreak;\r\n \t\t\t\t} else {\r\n \t\t\t\t\tsibling = sibling[method];\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\t// swap args for *Until methods\r\n \t\tif (until) {\r\n \t\t\tselector = filter;\r\n \t\t}\r\n\r\n \t\t// return new collection\r\n \t\treturn $(selector ? filterNodes(nodes, selector) : nodes);\r\n \t};\r\n });\n\n $.fn.siblings = function (selector) {\r\n \tlet i = this.length,\r\n \t\tnodes = [];\r\n\r\n \twhile (i--) {\r\n \t\tArray.from(this[i].parentNode.children).forEach(child => {\r\n \t\t\tif (child !== this[i]) {\r\n \t\t\t\tnodes.push(child);\r\n \t\t\t}\r\n \t\t});\r\n \t}\r\n \treturn $(selector ? filterNodes(nodes, selector) : nodes);\r\n };\n\n // ajax\r\n // attributes\r\n // core\r\n // dimensions\r\n // events\r\n // manipulation\r\n // traversal\r\n // utilities\r\n //import \"./utils/isarray/isarray.js\";\n\n return $;\n\n})));\n"],"file":"dabby.es5.js"} \ No newline at end of file diff --git a/dist/dabby.es5.min.js b/dist/dabby.es5.min.js index 092496c..090b3dc 100644 --- a/dist/dabby.es5.min.js +++ b/dist/dabby.es5.min.js @@ -1,3 +1,3 @@ /*! dabbyjs v0.9.6 by Will Earp - https://github.com/hexydec/dabby */ -function _typeof(t){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}!function(t,e){"object"===("undefined"==typeof exports?"undefined":_typeof(exports))&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.$=e()}(this,function(){"use strict";if(Array.from||(Array.from=function(t,e,n){var r=[].slice.call(t);return"function"==typeof e&&(r=r.map(e,n)),r}),"function"!=typeof window.CustomEvent){var t=function(t,e){e=e||{bubbles:!1,cancelable:!1,detail:void 0};var n=document.createEvent("CustomEvent");return n.initCustomEvent(t,e.bubbles,e.cancelable,e.detail),n};t.prototype=window.Event.prototype,window.CustomEvent=t}Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector),NodeList.prototype.forEach||(NodeList.prototype.forEach=function(t,e){e=e||window;for(var n=0;n-1||e.isWindow(t)}),this.length=n.length,Object.assign(this,n),this;if(n instanceof t)return n;var i,o=[];if(n)if(n.nodeType||e.isWindow(n))o=[n];else if(e.isFunction(n))"loading"!==document.readyState?n.call(document,e):document.addEventListener("DOMContentLoaded",function(){n.call(document,e)},{once:!0});else if("string"!=typeof n)o=n;else if(-1===n.indexOf("<"))e(r||document).each(function(t,e){o=o.concat(Array.from(e.querySelectorAll(n)))});else if(null!==(i=n.match(/^<([a-z0-9]+)(( ?\/)?|><\/\1)>$/i)))o=[document.createElement(i[1])],r instanceof Object&&e(o).attr(r);else{var s=document.implementation.createHTMLDocument("");s.body.innerHTML=n,o=s.body.children}return new t(o)};e.fn=e.prototype,e.each=function(t,e){for(var n=Array.isArray(t),r=Object.keys(t),i=r.length,o=0;o1?r-1:0),o=1;o-1,s=n.url.indexOf("?")>-1?"&":"?";if(n.data&&(i="string"==typeof n.data||n.data instanceof FormData?n.data:e.param(n.data)),i&&"GET"===n.method&&(n.url+=s+i,s="&"),(n.cache||null===n.cache&&o)&&(n.url+=s+"_="+ +new Date,s="&"),!o&&!n.crossDomain){var a=n.xhr(),f=function(t,e){var r=t.responseText;if(["json",null,void 0].indexOf(n.dataType)>-1)try{r=JSON.parse(r)}catch(t){}[n.statusCode[t.status],n[e],n.complete].forEach(function(i,o){i&&i.apply(n.context,o<2?[r,e,t]:[t,e])})};return a.onload=function(){f(a,{200:"success",204:"nocontent",304:"notmodified"}[a.status]||"error")},a.ontimeout=function(){f(a,"timeout")},a.onabort=function(){f(a,"abort")},a.open(n.method,n.url,n.async,n.username,n.password),n.contentType&&(n.headers["Content-Type"]=n.contentType),e.each(n.headers,function(t,e){a.setRequestHeader(t,e)}),a.send("GET"===n.method?null:i),a}r=document.createElement("script"),n.scriptCharset&&(r.charset=n.scriptCharset),"jsonp"===n.dataType&&(n.url+=s+n.jsonp+"="+n.jsonpCallback),e.each({load:"success",error:"error"},function(t,e){r.addEventListener(t,function(){var t="jsonp"===n.dataType&&window[n.jsonpCallback]||null;[n[e],n.complete].forEach(function(r){r&&r.apply(n.context,r===n.complete?[null,e]:[t,e])})},{once:!0})}),r.src=n.url,r.async=n.async,document.head.appendChild(r)},["get","post"].forEach(function(t){e[t]=function(n,r,i,o){var s=e.isFunction(r),a="object"===_typeof(n)?n:{url:n,data:s?{}:r,success:s?r:i,dataType:s?i:o};return a.method=t.toUpperCase(),e.ajax(a)}}),e.getScript=function(t,n){return e.ajax({url:t,dataType:"script",success:n})};var n=function(t,n,r,i){var o,s=t.nodeType?[t]:Array.from(t);return"boolean"==typeof r&&(i=r,r=null),e.isFunction(n)?o=n:(n="string"==typeof n?[n]:Array.from(e(n,r)),o=function(t,e){for(var r=n.length;r--;)if("string"==typeof n[r]&&e.matches?e.matches(n[r]):e===n[r])return!0;return!1}),s.filter(function(t,e){return o.call(t,e,t)===!i},s)};["filter","not","is"].forEach(function(t){e.fn[t]=function(r){var i=n(this,r,"not"===t);return"is"===t?!!i.length:e(i)}}),e.fn.load=function(t,n,r){var i=this;if(this[0]){var o=(t=t.split(" ",2))[0],s=t[1];e.isFunction(n)&&(r=n,n=void 0),e.ajax(o,{data:n,type:n instanceof Object?"POST":"GET",success:function(t,n,o){var a="",f=i.length;for(s?e(t).filter(s).each(function(t,e){a+=e.outerHTML}):a=t;f--;)i[f].innerHTML=a,r&&r.call(i[f],t,n,o)}})}return this};var r=function(t,n,r){for(var i=t.length,o=[],s=e.isFunction(n),a=s?0:e.isPlainObject(n),f=e.isFunction(r);i--;)o[i]=s?n.call(t[i],i,f?r(t[i]):r):a?Object.create(n):n;return o};e.map=function(t,n){var r=[];return e.each(t,function(t,e){var i=n.call(window,e,t);-1===[null,void 0].indexOf(i)&&(r=r.concat(Array.isArray(i)?i:[i]))}),r},e.fn.val=function(t){var n=this;if(void 0!==t){var i=function(){for(var i=n.length,o=r(n,t,function(t){return t.val()});i--;)Array.isArray(o[i])?"select-multiple"===n[i].type?(o[i]=o[i].map(function(t){return String(t)}),e("option",n[i]).each(function(t,e){e.selected=o[i].indexOf(e.value)>-1})):n[i].checked=o[i].indexOf(n[i].value)>-1:n[i].value=o[i];return{v:n}}();if("object"===_typeof(i))return i.v}if(this[0]){if("select-multiple"===this[0].type){var o=[];return e("option",this[0]).each(function(t,e){e.selected&&o.push(String(e.value))}),o}if("checkbox"!==this[0].type||this[0].checked)return String(this[0].value)}},e.fn.serialize=function(){var t="input[name]:not([type=file]):not([type=submit]):not([type=radio]):not([type=checkbox]),input[name]:checked,textarea[name],select[name]",n=this.filter(t);n.length||(n=e(t,this));var r={};return n.each(function(t,n){var i=e(n).val();n.disabled||void 0===i||(r=function t(e,n,r){var i;null!==(i=e.match(/([^\[]*)\[([^\]]*)\](.*)/))&&(e=i[1],n=t(i[2]+i[3],n,r[e]||{}));return""!==e?r[e]=n:(Array.isArray(r)||(r=[]),r=r.concat(Array.isArray(n)?n:[n])),r}(n.name,i,r))}),e.param(r)},e.fn.add=function(t,n){t=e(t,n);var r=this.length,i=t.length;for(this.length+=i;i--;)this[i+r]=t[i];return this},["parent","parents","parentsUntil"].forEach(function(t){e.fn[t]=function(r,i){for(var o,s=t.indexOf("s")>-1,a=t.indexOf("U")>-1,f=[],c=this.length;c--;)for(o=this[c].parentNode;o&&o.nodeType===Node.ELEMENT_NODE&&(f.push(o),!(!s||a&&n(o,r).length));)o=o.parentNode;return e(r?n(f,r):f)}}),e.fn.get=function(t){return void 0===t?Array.from(this):this[t>=0?t:t+this.length]},["on","one"].forEach(function(t){e.fn[t]=function(n,r,i,o){n=n.split(" "),e.isFunction(r)?(o=r,r=void 0):e.isFunction(i)&&(o=i,i=void 0);for(var s=this.length;s--;){var a=n.length;this[s].events||(this[s].events=[]);var f=function(t){var n=[this];if(r){var s=e(t.target);n=s.add(s.parents()).filter(r).get()}if(n){t.data=i;for(var a=0,f=n.length;a-1)o.on(t,n);else for(var s=o.length,a=r(o,n,function(n){return e(n).attr(t)});s--;)"style"===t?o[s].style.cssText=a[s]:"class"===t?o[s].className=a[s]:"text"===t?o[s].textContent=a[s]:null===a[s]?o[s].removeAttribute(t):o[s].setAttribute(t,a[s])}),this):this[0]?"style"===t?this[0].style.cssText:"class"===t?this[0].className:this[0].getAttribute(t):void 0};var o=[];["removeClass","addClass","toggleClass"].forEach(function(t,n){o.push(t.substr(0,t.length-5)),e.fn[t]=function(e,i){var s=this.length,a=r(this,e,function(t){return t.className}),f=n;for("toggleClass"===t&&"boolean"==typeof i&&(f=0+i);s--;){"string"==typeof a[s]&&(a[s]=a[s].split(" "));for(var c=0,u=a[s].length;c-1,s=o?"width":"height",a=o?"Width":"Height",f=t.indexOf("inner")>-1?"inner":t.indexOf("outer")>-1?"outer":"",c=[o?"Left":"Top",o?"Right":"Bottom"];if(void 0!==n&&"boolean"!=typeof n){var u=function(){for(var e,o=r(i,n,function(e){return e[t]}),a=i.length,u=[];a--;)f&&(c.forEach(function(t){u.push("padding"+t),"outer"===f&&u.push("border"+t+"Width")}),isNaN(o[a])&&-1===o[a].indexOf("px")&&(i[a].style[s]=o[a],u.push(s),o[a]=0),e=getComputedStyle(i[a]),u.forEach(function(t){return o[a]-=parseFloat(e[t])})),i[a].style[s]=o[a]+(isNaN(o[a])?"":"px");return{v:i}}();if("object"===_typeof(u))return u.v}if(this[0]){if(this[0].nodeType===Node.DOCUMENT_NODE)return this[0].documentElement["scroll"+a];if(!e.isWindow(this[0])){var l=this[0][("outer"===f?"offset":"client")+a];if(""===f||"outer"===f&&!0===n){var h=getComputedStyle(this[0]);c.forEach(function(t){return l+=parseFloat(h[(f?"margin":"padding")+t])*(f?1:-1)})}return l}return"inner"===f?this[0].document.documentElement["client"+a]:this[0]["inner"+a]}}}),e.fn.trigger=function(t,n){for(var r=this.length;r--;)if(e.isFunction(this[r][t]))this[r][t]();else{var i=new CustomEvent(t,{bubbles:!0,cancelable:!0});i.args=n,this[r].dispatchEvent(i)}return this},i.forEach(function(t){e.fn[t]=function(e,n){return e?this.on(t,e,n):this.trigger(t)}}),e.fn.off=function(t,n,r,i){var o=this;t=t.split(" "),e.isFunction(n)?(i=n,n=void 0):e.isFunction(r)&&(i=r,r=void 0);for(var s=this.length;s--;)this[s].events.length&&function(){for(var e=t.length;e--;)o[s].events.forEach(function(r,a){var f=r.events.indexOf(t[e]);-1===f||i&&r.callback!==i||n&&r.selector!==n||(o[s].removeEventListener(t[e],r.func,{once:r.once,capture:!!r.selector}),o[s].events[a].events.splice(f,1),o[s].events[a].events.length||o[s].events.splice(a,1))})}();return this},e.fn.clone=function(){for(var t=[],n=this.length;n--;)t[n]=this[n].cloneNode(!0);return e(t)},e.fn.empty=function(){for(var t=this.length;t--;)for(;this[t].firstChild&&this[t].removeChild(this[t].firstChild););return this},e.fn.html=function(t){if(void 0!==t){for(var e=this.length,n=r(this,t,function(t){return t.innerHTML});e--;)this[e].innerHTML=n[e];return this}if(this[0])return this[0].innerHTML},e.each({before:"beforeBegin",prepend:"afterBegin",append:"beforeEnd",after:"afterEnd"},function(t,n){e.fn[t]=function(i){var o=["before","prepend"].indexOf(t)>-1,s=[],a=this.length;if(e.isFunction(i))s=r(this,i,function(t){return t.innerHTML});else{var f=e();for(e.each(arguments,function(t,e){return f.add(e)});a--;)s[a]=a?f.clone():f}for(a=this.length;a--;)for(var c=s[a].length,u=-1;o?c--:++u-1,a=t.indexOf("A")>-1,f=t.indexOf("U")>-1,c=s?"nextElementSibling":"previousElementSibling",u=[],l=this.length;l--;)for(o=this[l][c];o&&(u.push(o),!(a||f&&n(o,r).length));)o=o[c];return f&&(r=i),e(r?n(u,r):u)}}),e.fn.siblings=function(t){for(var r=this,i=this.length,o=[];i--;)Array.from(this[i].parentNode.children).forEach(function(t){t!==r[i]&&o.push(t)});return e(t?n(o,t):o)},e}); \ No newline at end of file +function _typeof(t){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}!function(t,e){"object"===("undefined"==typeof exports?"undefined":_typeof(exports))&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.$=e()}(this,function(){"use strict";if(Array.from||(Array.from=function(t,e,n){var r=[].slice.call(t);return"function"==typeof e&&(r=r.map(e,n)),r}),"function"!=typeof window.CustomEvent){var t=function(t,e){e=e||{bubbles:!1,cancelable:!1,detail:void 0};var n=document.createEvent("CustomEvent");return n.initCustomEvent(t,e.bubbles,e.cancelable,e.detail),n};t.prototype=window.Event.prototype,window.CustomEvent=t}Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector),NodeList.prototype.forEach||(NodeList.prototype.forEach=function(t,e){e=e||window;for(var n=0;n-1||e.isWindow(t)}),this.length=n.length,Object.assign(this,n),this;if(n instanceof t)return n;var i,o=[];if(n)if(n.nodeType||e.isWindow(n))o=[n];else if(e.isFunction(n))"loading"!==document.readyState?n.call(document,e):document.addEventListener("DOMContentLoaded",function(){n.call(document,e)},{once:!0});else if("string"!=typeof n)o=n;else if(-1===n.indexOf("<"))e(r||document).each(function(t,e){o=o.concat(Array.from(e.querySelectorAll(n)))});else if(null!==(i=n.match(/^<([a-z0-9]+)(( ?\/)?|><\/\1)>$/i)))o=[document.createElement(i[1])],r instanceof Object&&e(o).attr(r);else{var s=document.implementation.createHTMLDocument("");s.body.innerHTML=n,o=s.body.children}return new t(o)};e.fn=e.prototype,e.each=function(t,e){for(var n=Array.isArray(t),r=Object.keys(t),i=r.length,o=0;o1?r-1:0),o=1;o-1,s=n.url.indexOf("?")>-1?"&":"?";if(n.data&&(i="string"==typeof n.data||n.data instanceof FormData?n.data:e.param(n.data)),i&&"GET"===n.method&&(n.url+=s+i,s="&"),(n.cache||null===n.cache&&o)&&(n.url+=s+"_="+ +new Date,s="&"),!o&&!n.crossDomain){var a=n.xhr(),f=function(t,e){var r=t.responseText;if(["json",null,void 0].indexOf(n.dataType)>-1)try{r=JSON.parse(r)}catch(t){}[n.statusCode[t.status],n[e],n.complete].forEach(function(i,o){i&&i.apply(n.context,o<2?[r,e,t]:[t,e])})};return a.onload=function(){f(a,{200:"success",204:"nocontent",304:"notmodified"}[a.status]||"error")},a.ontimeout=function(){f(a,"timeout")},a.onabort=function(){f(a,"abort")},a.open(n.method,n.url,n.async,n.username,n.password),n.contentType&&(n.headers["Content-Type"]=n.contentType),e.each(n.headers,function(t,e){a.setRequestHeader(t,e)}),a.send("GET"===n.method?null:i),a}r=document.createElement("script"),n.scriptCharset&&(r.charset=n.scriptCharset),"jsonp"===n.dataType&&(n.url+=s+n.jsonp+"="+n.jsonpCallback),e.each({load:"success",error:"error"},function(t,e){r.addEventListener(t,function(){var t="jsonp"===n.dataType&&window[n.jsonpCallback]||null;[n[e],n.complete].forEach(function(r){r&&r.apply(n.context,r===n.complete?[null,e]:[t,e])})},{once:!0})}),r.src=n.url,r.async=n.async,document.head.appendChild(r)},["get","post"].forEach(function(t){e[t]=function(n,r,i,o){var s=e.isFunction(r),a="object"===_typeof(n)?n:{url:n,data:s?{}:r,success:s?r:i,dataType:s?i:o};return a.method=t.toUpperCase(),e.ajax(a)}}),e.getScript=function(t,n){return e.ajax({url:t,dataType:"script",success:n})};var n=function(t,n,r,i){var o,s=t.nodeType?[t]:Array.from(t);return"boolean"==typeof r&&(i=r,r=null),e.isFunction(n)?o=n:(n="string"==typeof n?[n]:Array.from(e(n,r)),o=function(t,e){for(var r=n.length;r--;)if("string"==typeof n[r]&&e.matches?e.matches(n[r]):e===n[r])return!0;return!1}),s.filter(function(t,e){return o.call(t,e,t)===!i},s)};["filter","not","is"].forEach(function(t){e.fn[t]=function(r){var i=n(this,r,"not"===t);return"is"===t?!!i.length:e(i)}}),e.fn.load=function(t,n,r){var i=this;if(this[0]){var o=(t=t.split(" ",2))[0],s=t[1];e.isFunction(n)&&(r=n,n=void 0),e.ajax(o,{data:n,type:n instanceof Object?"POST":"GET",success:function(t,n,o){var a="",f=i.length;for(s?e(t).filter(s).each(function(t,e){a+=e.outerHTML}):a=t;f--;)i[f].innerHTML=a,r&&r.call(i[f],t,n,o)}})}return this};var r=function(t,n,r){for(var i=t.length,o=[],s=e.isFunction(n),a=s?0:e.isPlainObject(n),f=e.isFunction(r);i--;)o[i]=s?n.call(t[i],i,f?r(t[i]):r):a?Object.create(n):n;return o};e.map=function(t,n){var r=[];return e.each(t,function(t,e){var i=n.call(window,e,t);-1===[null,void 0].indexOf(i)&&(r=r.concat(Array.isArray(i)?i:[i]))}),r},e.fn.val=function(t){var n=this;if(void 0!==t){var i=function(){for(var i=n.length,o=r(n,t,function(t){return t.val()});i--;)Array.isArray(o[i])?"select-multiple"===n[i].type?(o[i]=o[i].map(function(t){return String(t)}),e("option",n[i]).each(function(t,e){e.selected=o[i].indexOf(e.value)>-1})):n[i].checked=o[i].indexOf(n[i].value)>-1:n[i].value=o[i];return{v:n}}();if("object"===_typeof(i))return i.v}if(this[0]){if("select-multiple"===this[0].type){var o=[];return e("option",this[0]).each(function(t,e){e.selected&&o.push(String(e.value))}),o}if("checkbox"!==this[0].type||this[0].checked)return String(this[0].value)}},e.fn.serialize=function(){var t="input[name]:not([type=file]):not([type=submit]):not([type=radio]):not([type=checkbox]),input[name]:checked,textarea[name],select[name]",n=this.filter(t);n.length||(n=e(t,this));var r={};return n.each(function(t,n){var i=e(n).val();n.disabled||void 0===i||(r=function t(e,n,r){var i;null!==(i=e.match(/([^\[]*)\[([^\]]*)\](.*)/))&&(e=i[1],n=t(i[2]+i[3],n,r[e]||{}));return""!==e?r[e]=n:(Array.isArray(r)||(r=[]),r=r.concat(Array.isArray(n)?n:[n])),r}(n.name,i,r))}),e.param(r)},e.fn.add=function(t,n){t=e(t,n);var r=this.length,i=t.length;for(this.length+=i;i--;)this[i+r]=t[i];return this},["parent","parents","parentsUntil"].forEach(function(t){e.fn[t]=function(r,i){for(var o,s=t.indexOf("s")>-1,a=t.indexOf("U")>-1,f=[],c=this.length;c--;)for(o=this[c].parentNode;o&&o.nodeType===Node.ELEMENT_NODE&&(f.push(o),!(!s||a&&n(o,r).length));)o=o.parentNode;return e(r?n(f,r):f)}}),e.fn.get=function(t){return void 0===t?Array.from(this):this[t>=0?t:t+this.length]},["on","one"].forEach(function(t){e.fn[t]=function(n,r,i,o){n=n.split(" "),e.isFunction(r)?(o=r,r=void 0):e.isFunction(i)&&(o=i,i=void 0);for(var s=this.length;s--;){var a=n.length;this[s].events||(this[s].events=[]);var f=function(t){var n=[this];if(r){var s=e(t.target);n=s.add(s.parents()).filter(r).get()}if(n){t.data=i;for(var a=0,f=n.length;a-1)o.on(t,n);else for(var s=o.length,a=r(o,n,function(n){return e(n).attr(t)});s--;)"style"===t?o[s].style.cssText=a[s]:"class"===t?o[s].className=a[s]:"text"===t?o[s].textContent=a[s]:null===a[s]?o[s].removeAttribute(t):o[s].setAttribute(t,a[s])}),this):this[0]?"style"===t?this[0].style.cssText:"class"===t?this[0].className:this[0].getAttribute(t):void 0};var o=[];["removeClass","addClass","toggleClass"].forEach(function(t,n){o.push(t.substr(0,t.length-5)),e.fn[t]=function(e,i){var s=this.length,a=r(this,e,function(t){return t.className}),f=n;for("toggleClass"===t&&"boolean"==typeof i&&(f=0+i);s--;){"string"==typeof a[s]&&(a[s]=a[s].split(" "));for(var c=0,u=a[s].length;c-1,s=o?"width":"height",a=o?"Width":"Height",f=t.indexOf("inner")>-1?"inner":t.indexOf("outer")>-1?"outer":"",c=[o?"Left":"Top",o?"Right":"Bottom"];if(void 0!==n&&"boolean"!=typeof n){var u=function(){for(var e,o=r(i,n,function(e){return e[t]}),a=i.length,u=[];a--;)f&&(c.forEach(function(t){u.push("padding"+t),"outer"===f&&u.push("border"+t+"Width")}),isNaN(o[a])&&-1===o[a].indexOf("px")&&(i[a].style[s]=o[a],u.push(s),o[a]=0),e=getComputedStyle(i[a]),u.forEach(function(t){return o[a]-=parseFloat(e[t])})),i[a].style[s]=o[a]+(isNaN(o[a])?"":"px");return{v:i}}();if("object"===_typeof(u))return u.v}if(this[0]){if(this[0].nodeType===Node.DOCUMENT_NODE)return this[0].documentElement["scroll"+a];if(!e.isWindow(this[0])){var l=this[0][("outer"===f?"offset":"client")+a];if(""===f||"outer"===f&&!0===n){var h=getComputedStyle(this[0]);c.forEach(function(t){return l+=parseFloat(h[(f?"margin":"padding")+t])*(f?1:-1)})}return l}return"inner"===f?this[0].document.documentElement["client"+a]:this[0]["inner"+a]}}}),e.fn.trigger=function(t,n){for(var r=this.length;r--;)if("submit"!==t&&e.isFunction(this[r][t]))this[r][t]();else{var i=new CustomEvent(t,{bubbles:!0,cancelable:!0});i.args=n,this[r].dispatchEvent(i)}return this},i.forEach(function(t){e.fn[t]=function(e,n){return e?this.on(t,e,n):this.trigger(t)}}),e.fn.off=function(t,n,r,i){var o=this;t=t.split(" "),e.isFunction(n)?(i=n,n=void 0):e.isFunction(r)&&(i=r,r=void 0);for(var s=this.length;s--;)this[s].events.length&&function(){for(var e=t.length;e--;)o[s].events.forEach(function(r,a){var f=r.events.indexOf(t[e]);-1===f||i&&r.callback!==i||n&&r.selector!==n||(o[s].removeEventListener(t[e],r.func,{once:r.once,capture:!!r.selector}),o[s].events[a].events.splice(f,1),o[s].events[a].events.length||o[s].events.splice(a,1))})}();return this},e.fn.clone=function(){for(var t=[],n=this.length;n--;)t[n]=this[n].cloneNode(!0);return e(t)},e.fn.empty=function(){for(var t=this.length;t--;)for(;this[t].firstChild&&this[t].removeChild(this[t].firstChild););return this},e.fn.html=function(t){if(void 0!==t){for(var e=this.length,n=r(this,t,function(t){return t.innerHTML});e--;)this[e].innerHTML=n[e];return this}if(this[0])return this[0].innerHTML},e.each({before:"beforeBegin",prepend:"afterBegin",append:"beforeEnd",after:"afterEnd"},function(t,n){e.fn[t]=function(i){var o=["before","prepend"].indexOf(t)>-1,s=[],a=this.length;if(e.isFunction(i))s=r(this,i,function(t){return t.innerHTML});else{var f=e();for(e.each(arguments,function(t,e){return f.add(e)});a--;)s[a]=a?f.clone():f}for(a=this.length;a--;)for(var c=s[a].length,u=-1;o?c--:++u-1,a=t.indexOf("A")>-1,f=t.indexOf("U")>-1,c=s?"nextElementSibling":"previousElementSibling",u=[],l=this.length;l--;)for(o=this[l][c];o&&(u.push(o),!(a||f&&n(o,r).length));)o=o[c];return f&&(r=i),e(r?n(u,r):u)}}),e.fn.siblings=function(t){for(var r=this,i=this.length,o=[];i--;)Array.from(this[i].parentNode.children).forEach(function(t){t!==r[i]&&o.push(t)});return e(t?n(o,t):o)},e}); \ No newline at end of file diff --git a/dist/dabby.js b/dist/dabby.js index d29ca53..d6b183b 100644 --- a/dist/dabby.js +++ b/dist/dabby.js @@ -1092,7 +1092,9 @@ $.fn.position = function () { $.fn.trigger = function (name, data) { let i = this.length; while (i--) { - if ($.isFunction(this[i][name])) { + + // native submit event doesn't trigger event handlers + if (name !== "submit" && $.isFunction(this[i][name])) { this[i][name](); } else { const evt = new CustomEvent(name, {bubbles: true, cancelable: true}); diff --git a/dist/dabby.min.js b/dist/dabby.min.js index b5ae367..c51bb4f 100644 --- a/dist/dabby.min.js +++ b/dist/dabby.min.js @@ -1 +1 @@ -const $=function a(b,c){if(this instanceof a)return b=Array.from(b).filter(a=>-1<[1,9,11].indexOf(a.nodeType)||$.isWindow(a)),this.length=b.length,Object.assign(this,b),this;if(b instanceof a)return b;let d,e=[];if(b)if(b.nodeType||$.isWindow(b))e=[b];else if($.isFunction(b))"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>{b.call(document,$)},{once:!0}):b.call(document,$);else if("string"!=typeof b)e=b;else if(-1===b.indexOf("<"))$(c||document).each((a,c)=>{e=e.concat(Array.from(c.querySelectorAll(b)))});else if(null!==(d=b.match(/^<([a-z0-9]+)(( ?\/)?|><\/\1)>$/i)))e=[document.createElement(d[1])],c instanceof Object&&$(e).attr(c);else{const a=document.implementation.createHTMLDocument("");a.body.innerHTML=b,e=a.body.children}return new a(e)};$.fn=$.prototype,$.each=(a,b)=>{const c=Array.isArray(a),d=Object.keys(a),e=d.length;for(let f=0;fnull!==a&&a===a.window,$.isFunction=a=>a&&a.constructor===Function,$.isPlainObject=a=>{if("object"==typeof a&&null!==a){if("function"==typeof Object.getPrototypeOf){let b=Object.getPrototypeOf(a);return b===Object.prototype||null===b}return"[object Object]"===Object.prototype.toString.call(a)}return!1},$.extend=(...a)=>{if(!0===a[0]){function b(a,...c){if(c.length){const d=c.shift();return $.isPlainObject(a)&&$.isPlainObject(d)&&$.each(d,(c,d)=>{a[c]=$.isPlainObject(d)?$.isPlainObject(a[c])?b(a[c],d):d:d}),b(a,...c)}return a}return b.apply(null,a.slice(1))}return Object.assign.apply(null,a)},$.param=a=>{let b=[],c=(a,b,d)=>{let e=Array.isArray(b);return e||"object"==typeof b?$.each(b,(b,f)=>{d=c(`${a}[${e?"":b}]`,f,d)}):($.isFunction(b)&&(b=b()),d.push(encodeURIComponent(a)+"="+encodeURIComponent(null===b?"":b))),d};return $.each(a,(a,d)=>{b=c(a,d,b)}),b.join("&")},$.ajax=(a,b)=>{"object"==typeof a?b=a:("object"!=typeof b&&(b={}),b.url=a),b=Object.assign({method:"GET",cache:null,data:null,dataType:null,async:!0,crossDomain:!1,scriptCharset:null,jsonp:"callback",jsonpCallback:"dabby"+Date.now(),headers:{"X-Requested-With":"XMLHttpRequest"},xhr:()=>new XMLHttpRequest,contentType:"application/x-www-form-urlencoded; charset=UTF-8",context:null,statusCode:{},username:null,password:null},b),b.dataType||"js"!==b.url.split("?")[0].split(".").pop()||(b.dataType="script");let c,d,e=-1<["script","jsonp"].indexOf(b.dataType),f=-1{c.addEventListener(a,()=>{const a="jsonp"===b.dataType?window[b.jsonpCallback]||null:null;[b[d],b.complete].forEach(c=>{c&&c.apply(b.context,c===b.complete?[null,d]:[a,d])})},{once:!0})}),c.src=b.url,c.async=b.async,document.head.appendChild(c);else{const a=b.xhr(),c=(a,c)=>{let d=a.responseText;if(-1<["json",null,void 0].indexOf(b.dataType))try{d=JSON.parse(d)}catch(a){}[b.statusCode[a.status],b[c],b.complete].forEach((e,f)=>{e&&e.apply(b.context,2>f?[d,c,a]:[a,c])})};return a.onload=()=>{c(a,{200:"success",204:"nocontent",304:"notmodified"}[a.status]||"error")},a.ontimeout=()=>{c(a,"timeout")},a.onabort=()=>{c(a,"abort")},a.open(b.method,b.url,b.async,b.username,b.password),b.contentType&&(b.headers["Content-Type"]=b.contentType),$.each(b.headers,(b,c)=>{a.setRequestHeader(b,c)}),a.send("GET"===b.method?null:d),a}},["get","post"].forEach(a=>{$[a]=(b,c,d,e)=>{const f=$.isFunction(c);let g="object"==typeof b?b:{url:b,data:f?{}:c,success:f?c:d,dataType:f?d:e};return g.method=a.toUpperCase(),$.ajax(g)}}),$.getScript=(a,b)=>$.ajax({url:a,dataType:"script",success:b});var a=(a,b,c,d)=>{let e,f=a.nodeType?[a]:Array.from(a);return"boolean"==typeof c&&(d=c,c=null),$.isFunction(b)?e=b:(b="string"==typeof b?[b]:Array.from($(b,c)),e=(a,c)=>{for(let d=b.length;d--;)if("string"==typeof b[d]&&c.matches?c.matches(b[d]):c===b[d])return!0;return!1}),f.filter((a,b)=>e.call(a,b,a)===!d,f)};["filter","not","is"].forEach(b=>{$.fn[b]=function(c){const d=a(this,c,"not"===b);return"is"===b?!!d.length:$(d)}}),$.fn.load=function(a,b,c){if(this[0]){a=a.split(" ",2);const d=a[0],e=a[1];$.isFunction(b)&&(c=b,b=void 0),$.ajax(d,{data:b,type:b instanceof Object?"POST":"GET",success:(a,b,d)=>{let f="",g=this.length;for(e?$(a).filter(e).each((a,b)=>{f+=b.outerHTML}):f=a;g--;)this[g].innerHTML=f,c&&c.call(this[g],a,b,d)}})}return this};var b=(a,b,c)=>{let d=a.length,e=[],f=$.isFunction(b),g=f?0:$.isPlainObject(b),h=$.isFunction(c);for(;d--;)e[d]=f?b.call(a[d],d,h?c(a[d]):c):g?Object.create(b):b;return e};$.map=(a,b)=>{let c=[];return $.each(a,(a,d)=>{const e=b.call(window,d,a);-1===[null,void 0].indexOf(e)&&(c=c.concat(Array.isArray(e)?e:[e]))}),c},$.fn.val=function(a){if(a!==void 0){for(let c=this.length,d=b(this,a,a=>a.val());c--;)Array.isArray(d[c])?"select-multiple"===this[c].type?(d[c]=d[c].map(a=>a+""),$("option",this[c]).each((a,b)=>{b.selected=-1{c.selected&&a.push(c.value+"")}),a}if("checkbox"!==this[0].type||this[0].checked)return this[0].value+""}},$.fn.serialize=function(){const a=(b,c,d)=>{let e;if(null!==(e=b.match(/([^\[]*)\[([^\]]*)\](.*)/))){b=e[1];let f=a(e[2]+e[3],c,d[b]||{});c=f}return""===b?(!Array.isArray(d)&&(d=[]),d=d.concat(Array.isArray(c)?c:[c])):d[b]=c,d};let b=this.filter("input[name]:not([type=file]):not([type=submit]):not([type=radio]):not([type=checkbox]),input[name]:checked,textarea[name],select[name]");b.length||(b=$("input[name]:not([type=file]):not([type=submit]):not([type=radio]):not([type=checkbox]),input[name]:checked,textarea[name],select[name]",this));let c={};return b.each((b,d)=>{const e=$(d).val();d.disabled||void 0===e||(c=a(d.name,e,c))}),$.param(c)},$.fn.add=function(a,b){a=$(a,b);let c=this.length,d=a.length;for(this.length+=d;d--;)this[d+c]=a[d];return this},["parent","parents","parentsUntil"].forEach(b=>{$.fn[b]=function(c){const d=-1{$.fn[a]=function(b,c,d,f){b=b.split(" "),$.isFunction(c)?(f=c,c=void 0):$.isFunction(d)&&(f=d,d=void 0);for(let g=this.length;g--;){let h=b.length;this[g].events||(this[g].events=[]);let e=function(a){let b=[this];if(c){let d=$(a.target);b=d.add(d.parents()).filter(c).get()}if(b){a.data=d;for(let c=0,d=b.length;c{if(-1$(b).attr(a));c--;)"style"===a?this[c].style.cssText=e[c]:"class"===a?this[c].className=e[c]:"text"===a?this[c].textContent=e[c]:null===e[c]?this[c].removeAttribute(a):this[c].setAttribute(a,e[c])}),this):this[0]?"style"===a?this[0].style.cssText:"class"===a?this[0].className:this[0].getAttribute(a):void 0};const d=[];["removeClass","addClass","toggleClass"].forEach((a,c)=>{d.push(a.substr(0,a.length-5)),$.fn[a]=function(e,f){let g=this.length,h=b(this,e,a=>a.className),j=c;for("toggleClass"===a&&"boolean"==typeof f&&(j=0+f);g--;){"string"==typeof h[g]&&(h[g]=h[g].split(" "));for(let a=0,b=h[g].length;aa.replace(/-([\w])/g,(a,b)=>b.toUpperCase()),f=(a,c,d)=>{if("string"==typeof c){const a=c;c={},c[a]=d}let f={};return $.each(c,(c,d)=>{f[e(c)]=b(a,d,a=>a.style[c])}),$.each(f,(b,c)=>{for(let d=a.length;d--;)a[d].style[b]=c[d]+(isNaN(c[d])?"":"px")}),a};$.fn.css=function(a,b){if(b!==void 0||$.isPlainObject(a))return f(this,a,b);if(this[0]){let b,c=a,d=getComputedStyle(this[0],""),f={},g=!1;for("string"==typeof c&&(a=[c],g=!0),b=a.length;b--;)if(f[a[b]]=d[e(a[b])],g)return f[a[b]];return f}},$.fn.data=function(a,b){if("object"==typeof a)b=a;else if(b!==void 0){let c={};c[a]=b,b=c}if(void 0!==b){for(let a=this.length;a--;)$.each(b,(b,c)=>{this[a].dataset[e(b)]="object"==typeof c?JSON.stringify(c):c});return this}if(this[0]&&this[0].dataset){let b=a=>{try{return JSON.parse(a)}catch(b){return a}};if(void 0===a){let a={};return $.each(this[0].dataset,(c,d)=>{a[c]=b(d)}),a}if(a=e(a),this[0].dataset.hasOwnProperty(a))return b(this[0].dataset[a])}},$.fn.hasClass=function(a){for(let b=this.length;b--;)if(this[b].classList.contains(a))return!0;return!1};var g=a=>{return a=a.toLowerCase(),{for:"htmlFor",class:"className",tabindex:"tabIndex",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"}[a]||a};$.fn.prop=function(a,c){const d=$.isPlainObject(a);if(void 0!==c||d){if(!d){const b={};b[a]=c,a=b}let e={};return $.each(a,(a,c)=>{e[g(a)]=b(this,c,b=>b[a])}),$.each(e,(a,b)=>{for(let c=this.length;c--;)this[c][a]=b[c]}),this}return this[0]?this[0][g(a)]:void 0},$.fn.removeProp=function(a){let b=this.length;for(a=g(a);b--;)delete this[b][a];return this},["show","hide","toggle"].forEach((a,b)=>{$.fn[a]=function(){for(let a=this.length,c=["block","none"];a--;)this[a].style.display=c[b]||("none"===getComputedStyle(this[a]).display?"block":"none");return this}}),$.fn.map=function(a){let b=this.length,c=[],d=0;for(;da.offset()),d=this.length;for(;d--;){let a=getComputedStyle(this[d]).position;"static"===a&&(c[d].position=a="relative");const b=this[d]["relative"===a?"parentNode":"offsetParent"];if($.each($(b).offset(),(a,b)=>c[d][a]-=b),"relative"===a){const a=getComputedStyle(b);c[d].top-=parseFloat(a.paddingTop)+parseFloat(a.borderTopWidth),c[d].left-=parseFloat(a.paddingLeft)+parseFloat(a.borderLeftWidth)}}for(d=this.length;d--;)$.each(c[d],(a,b)=>this[d].style[a]=b+(isNaN(b)?"":"px"));return this}if(this[0]){const a=document.documentElement,b="fixed"===this[0].style.position,c=this[0].getBoundingClientRect();return{top:c.top+(b?0:a.scrollTop),left:c.left+(b?0:a.scrollLeft)}}},$.fn.offsetParent=function(){return $(this[0]?this[0].offsetParent:null)},$.fn.position=function(){if(this[0])return{left:this[0].offsetLeft,top:this[0].offsetTop}},["scrollLeft","scrollTop"].forEach(a=>{$.fn[a]=function(c){const d="scrollTop"===a;if(c!==void 0){for(let e=this.length,f=d?"top":"left",g=b(this,c,b=>b[a]);e--;)if($.isWindow(this[e])){let a={};a[f]=g[e],this[e].scroll(a)}else this[e][a]=g[e];return this}return this[0]?($.isWindow(this[0])&&(a=d?"pageYOffset":"pageXOffset"),this[0][a]):void 0}}),["width","height","innerWidth","innerHeight","outerWidth","outerHeight"].forEach(a=>{$.fn[a]=function(c){const d=-1b[a]),j=this.length,i=[];j--;)g&&(h.forEach(a=>{i.push("padding"+a),"outer"==g&&i.push("border"+a+"Width")}),isNaN(f[j])&&-1===f[j].indexOf("px")&&(this[j].style[e]=f[j],i.push(e),f[j]=0),d=getComputedStyle(this[j]),i.forEach(a=>f[j]-=parseFloat(d[a]))),this[j].style[e]=f[j]+(isNaN(f[j])?"":"px");return this}if(this[0]){if(this[0].nodeType===Node.DOCUMENT_NODE)return this[0].documentElement["scroll"+f];if(!$.isWindow(this[0])){let a=this[0][("outer"==g?"offset":"client")+f];if(""==g||"outer"==g&&!0===c){const b=getComputedStyle(this[0]);h.forEach(c=>a+=parseFloat(b[(g?"margin":"padding")+c])*(g?1:-1))}return a}return"inner"==g?this[0].document.documentElement["client"+f]:this[0]["inner"+f]}}}),$.fn.trigger=function(a,b){for(let c=this.length;c--;)if($.isFunction(this[c][a]))this[c][a]();else{const d=new CustomEvent(a,{bubbles:!0,cancelable:!0});d.args=b,this[c].dispatchEvent(d)}return this},c.forEach(a=>{$.fn[a]=function(b,c){return b?this.on(a,b,c):this.trigger(a)}}),$.fn.off=function(a,b,c,d){a=a.split(" "),$.isFunction(b)?(d=b,b=void 0):$.isFunction(c)&&(d=c,c=void 0);for(let f=this.length;f--;)if(this[f].events.length)for(let c=a.length;c--;)this[f].events.forEach((e,g)=>{const h=e.events.indexOf(a[c]);-1===h||d&&e.callback!==d||b&&e.selector!==b||(this[f].removeEventListener(a[c],e.func,{once:e.once,capture:!!e.selector}),this[f].events[g].events.splice(h,1),!this[f].events[g].events.length&&this[f].events.splice(g,1))});return this},$.fn.clone=function(){let a=[],b=this.length;for(;b--;)a[b]=this[b].cloneNode(!0);return $(a)},$.fn.empty=function(){for(let a=this.length;a--;)for(;this[a].firstChild&&this[a].removeChild(this[a].firstChild););return this},$.fn.html=function(a){if(a!==void 0){for(let c=this.length,d=b(this,a,a=>a.innerHTML);c--;)this[c].innerHTML=d[c];return this}return this[0]?this[0].innerHTML:void 0},$.each({before:"beforeBegin",prepend:"afterBegin",append:"beforeEnd",after:"afterEnd"},(a,c)=>{$.fn[a]=function(d){let e=-1<["before","prepend"].indexOf(a),f=[],g=this.length;if($.isFunction(d))f=b(this,d,a=>a.innerHTML);else{const a=$();for($.each(arguments,(b,c)=>a.add(c));g--;)f[g]=g?a.clone():a}for(g=this.length;g--;)for(let a=f[g].length,b=-1;e?a--:++b{$.fn[a]=function(a){for(let c=this.length,d=$(a);c--;)d[b](this[c]);return this}}),["remove","detach"].forEach(b=>{$.fn[b]=function(c){let d=this.length,e=[];for(;d--;)(!c||a(this[d],c).length)&&e.push(this[d].parentNode.removeChild(this[d]));return"detach"===b?$(e):this}}),["replaceWith","replaceAll"].forEach(a=>{$.fn[a]=function(c){const d="replaceAll"===a,e=d?$(c):this;let f=d?this:c,g=$.isFunction(f),h=e.length;for(g||(f=$(f));h--;)for(let a=f.length,c=e[h].parentNode;a--;){const d=g?b(f[a],a,f[a]):f[a];a?e[h].insertAdjacentElement("beforebegin",d.cloneNode(!0)):e[h]=c.replaceChild(h?d.cloneNode(!0):d,e[h])}return this}}),$.fn.slice=function(a,b){return $(this.get().slice(a,b))},$.fn.text=function(a){let c=this.length,d=[];if(a!==void 0){for(const d=b(this,a,a=>a.textContent);c--;)this[c].textContent=d[c];return this}for(;c--;)d[c]=this[c].textContent;return d.join(" ")},$.fn.unwrap=function(a){return this.parent(a).not("body").each((a,b)=>{$(b.children).each((a,c)=>{b.parentNode.insertBefore(c,b)}),b.parentNode.removeChild(b)}),this},$.fn.wrapAll=function(a){if(this[0]){$.isFunction(a)&&(a=a.call(this[0]));let b=this.length,c=0,d=$(a)[0].cloneNode(!0);for(this[0].parentNode.insertBefore(d,null);d.firstElementChild;)d=d.firstElementChild;for(;ca?a+this.length:a])},$.fn.find=function(a){return $(a,this)},$.fn.first=function(){return $(this[0])},$.fn.has=function(a){return $(this.get().filter(b=>!!$(a,b).length))},$.fn.index=function(a){if(this[0]){let b,c,d=this[0];for(void 0===a?b=this[0].parentNode.children:"string"==typeof a?b=$(a):(b=this,d=$(a)[0]),c=b.length;c--;)if(b[c]===d)return c}return-1},$.fn.last=function(){return this.eq(-1)},["next","nextAll","nextUntil","prev","prevAll","prevUntil"].forEach(b=>{$.fn[b]=function(c,d){const e=-1{a!==this[c]&&d.push(a)});return $(b?a(d,b):d)};export default $; +const $=function a(b,c){if(this instanceof a)return b=Array.from(b).filter(a=>-1<[1,9,11].indexOf(a.nodeType)||$.isWindow(a)),this.length=b.length,Object.assign(this,b),this;if(b instanceof a)return b;let d,e=[];if(b)if(b.nodeType||$.isWindow(b))e=[b];else if($.isFunction(b))"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>{b.call(document,$)},{once:!0}):b.call(document,$);else if("string"!=typeof b)e=b;else if(-1===b.indexOf("<"))$(c||document).each((a,c)=>{e=e.concat(Array.from(c.querySelectorAll(b)))});else if(null!==(d=b.match(/^<([a-z0-9]+)(( ?\/)?|><\/\1)>$/i)))e=[document.createElement(d[1])],c instanceof Object&&$(e).attr(c);else{const a=document.implementation.createHTMLDocument("");a.body.innerHTML=b,e=a.body.children}return new a(e)};$.fn=$.prototype,$.each=(a,b)=>{const c=Array.isArray(a),d=Object.keys(a),e=d.length;for(let f=0;fnull!==a&&a===a.window,$.isFunction=a=>a&&a.constructor===Function,$.isPlainObject=a=>{if("object"==typeof a&&null!==a){if("function"==typeof Object.getPrototypeOf){let b=Object.getPrototypeOf(a);return b===Object.prototype||null===b}return"[object Object]"===Object.prototype.toString.call(a)}return!1},$.extend=(...a)=>{if(!0===a[0]){function b(a,...c){if(c.length){const d=c.shift();return $.isPlainObject(a)&&$.isPlainObject(d)&&$.each(d,(c,d)=>{a[c]=$.isPlainObject(d)?$.isPlainObject(a[c])?b(a[c],d):d:d}),b(a,...c)}return a}return b.apply(null,a.slice(1))}return Object.assign.apply(null,a)},$.param=a=>{let b=[],c=(a,b,d)=>{let e=Array.isArray(b);return e||"object"==typeof b?$.each(b,(b,f)=>{d=c(`${a}[${e?"":b}]`,f,d)}):($.isFunction(b)&&(b=b()),d.push(encodeURIComponent(a)+"="+encodeURIComponent(null===b?"":b))),d};return $.each(a,(a,d)=>{b=c(a,d,b)}),b.join("&")},$.ajax=(a,b)=>{"object"==typeof a?b=a:("object"!=typeof b&&(b={}),b.url=a),b=Object.assign({method:"GET",cache:null,data:null,dataType:null,async:!0,crossDomain:!1,scriptCharset:null,jsonp:"callback",jsonpCallback:"dabby"+Date.now(),headers:{"X-Requested-With":"XMLHttpRequest"},xhr:()=>new XMLHttpRequest,contentType:"application/x-www-form-urlencoded; charset=UTF-8",context:null,statusCode:{},username:null,password:null},b),b.dataType||"js"!==b.url.split("?")[0].split(".").pop()||(b.dataType="script");let c,d,e=-1<["script","jsonp"].indexOf(b.dataType),f=-1{c.addEventListener(a,()=>{const a="jsonp"===b.dataType?window[b.jsonpCallback]||null:null;[b[d],b.complete].forEach(c=>{c&&c.apply(b.context,c===b.complete?[null,d]:[a,d])})},{once:!0})}),c.src=b.url,c.async=b.async,document.head.appendChild(c);else{const a=b.xhr(),c=(a,c)=>{let d=a.responseText;if(-1<["json",null,void 0].indexOf(b.dataType))try{d=JSON.parse(d)}catch(a){}[b.statusCode[a.status],b[c],b.complete].forEach((e,f)=>{e&&e.apply(b.context,2>f?[d,c,a]:[a,c])})};return a.onload=()=>{c(a,{200:"success",204:"nocontent",304:"notmodified"}[a.status]||"error")},a.ontimeout=()=>{c(a,"timeout")},a.onabort=()=>{c(a,"abort")},a.open(b.method,b.url,b.async,b.username,b.password),b.contentType&&(b.headers["Content-Type"]=b.contentType),$.each(b.headers,(b,c)=>{a.setRequestHeader(b,c)}),a.send("GET"===b.method?null:d),a}},["get","post"].forEach(a=>{$[a]=(b,c,d,e)=>{const f=$.isFunction(c);let g="object"==typeof b?b:{url:b,data:f?{}:c,success:f?c:d,dataType:f?d:e};return g.method=a.toUpperCase(),$.ajax(g)}}),$.getScript=(a,b)=>$.ajax({url:a,dataType:"script",success:b});var a=(a,b,c,d)=>{let e,f=a.nodeType?[a]:Array.from(a);return"boolean"==typeof c&&(d=c,c=null),$.isFunction(b)?e=b:(b="string"==typeof b?[b]:Array.from($(b,c)),e=(a,c)=>{for(let d=b.length;d--;)if("string"==typeof b[d]&&c.matches?c.matches(b[d]):c===b[d])return!0;return!1}),f.filter((a,b)=>e.call(a,b,a)===!d,f)};["filter","not","is"].forEach(b=>{$.fn[b]=function(c){const d=a(this,c,"not"===b);return"is"===b?!!d.length:$(d)}}),$.fn.load=function(a,b,c){if(this[0]){a=a.split(" ",2);const d=a[0],e=a[1];$.isFunction(b)&&(c=b,b=void 0),$.ajax(d,{data:b,type:b instanceof Object?"POST":"GET",success:(a,b,d)=>{let f="",g=this.length;for(e?$(a).filter(e).each((a,b)=>{f+=b.outerHTML}):f=a;g--;)this[g].innerHTML=f,c&&c.call(this[g],a,b,d)}})}return this};var b=(a,b,c)=>{let d=a.length,e=[],f=$.isFunction(b),g=f?0:$.isPlainObject(b),h=$.isFunction(c);for(;d--;)e[d]=f?b.call(a[d],d,h?c(a[d]):c):g?Object.create(b):b;return e};$.map=(a,b)=>{let c=[];return $.each(a,(a,d)=>{const e=b.call(window,d,a);-1===[null,void 0].indexOf(e)&&(c=c.concat(Array.isArray(e)?e:[e]))}),c},$.fn.val=function(a){if(a!==void 0){for(let c=this.length,d=b(this,a,a=>a.val());c--;)Array.isArray(d[c])?"select-multiple"===this[c].type?(d[c]=d[c].map(a=>a+""),$("option",this[c]).each((a,b)=>{b.selected=-1{c.selected&&a.push(c.value+"")}),a}if("checkbox"!==this[0].type||this[0].checked)return this[0].value+""}},$.fn.serialize=function(){const a=(b,c,d)=>{let e;if(null!==(e=b.match(/([^\[]*)\[([^\]]*)\](.*)/))){b=e[1];let f=a(e[2]+e[3],c,d[b]||{});c=f}return""===b?(!Array.isArray(d)&&(d=[]),d=d.concat(Array.isArray(c)?c:[c])):d[b]=c,d};let b=this.filter("input[name]:not([type=file]):not([type=submit]):not([type=radio]):not([type=checkbox]),input[name]:checked,textarea[name],select[name]");b.length||(b=$("input[name]:not([type=file]):not([type=submit]):not([type=radio]):not([type=checkbox]),input[name]:checked,textarea[name],select[name]",this));let c={};return b.each((b,d)=>{const e=$(d).val();d.disabled||void 0===e||(c=a(d.name,e,c))}),$.param(c)},$.fn.add=function(a,b){a=$(a,b);let c=this.length,d=a.length;for(this.length+=d;d--;)this[d+c]=a[d];return this},["parent","parents","parentsUntil"].forEach(b=>{$.fn[b]=function(c){const d=-1{$.fn[a]=function(b,c,d,f){b=b.split(" "),$.isFunction(c)?(f=c,c=void 0):$.isFunction(d)&&(f=d,d=void 0);for(let g=this.length;g--;){let h=b.length;this[g].events||(this[g].events=[]);let e=function(a){let b=[this];if(c){let d=$(a.target);b=d.add(d.parents()).filter(c).get()}if(b){a.data=d;for(let c=0,d=b.length;c{if(-1$(b).attr(a));c--;)"style"===a?this[c].style.cssText=e[c]:"class"===a?this[c].className=e[c]:"text"===a?this[c].textContent=e[c]:null===e[c]?this[c].removeAttribute(a):this[c].setAttribute(a,e[c])}),this):this[0]?"style"===a?this[0].style.cssText:"class"===a?this[0].className:this[0].getAttribute(a):void 0};const d=[];["removeClass","addClass","toggleClass"].forEach((a,c)=>{d.push(a.substr(0,a.length-5)),$.fn[a]=function(e,f){let g=this.length,h=b(this,e,a=>a.className),j=c;for("toggleClass"===a&&"boolean"==typeof f&&(j=0+f);g--;){"string"==typeof h[g]&&(h[g]=h[g].split(" "));for(let a=0,b=h[g].length;aa.replace(/-([\w])/g,(a,b)=>b.toUpperCase()),f=(a,c,d)=>{if("string"==typeof c){const a=c;c={},c[a]=d}let f={};return $.each(c,(c,d)=>{f[e(c)]=b(a,d,a=>a.style[c])}),$.each(f,(b,c)=>{for(let d=a.length;d--;)a[d].style[b]=c[d]+(isNaN(c[d])?"":"px")}),a};$.fn.css=function(a,b){if(b!==void 0||$.isPlainObject(a))return f(this,a,b);if(this[0]){let b,c=a,d=getComputedStyle(this[0],""),f={},g=!1;for("string"==typeof c&&(a=[c],g=!0),b=a.length;b--;)if(f[a[b]]=d[e(a[b])],g)return f[a[b]];return f}},$.fn.data=function(a,b){if("object"==typeof a)b=a;else if(b!==void 0){let c={};c[a]=b,b=c}if(void 0!==b){for(let a=this.length;a--;)$.each(b,(b,c)=>{this[a].dataset[e(b)]="object"==typeof c?JSON.stringify(c):c});return this}if(this[0]&&this[0].dataset){let b=a=>{try{return JSON.parse(a)}catch(b){return a}};if(void 0===a){let a={};return $.each(this[0].dataset,(c,d)=>{a[c]=b(d)}),a}if(a=e(a),this[0].dataset.hasOwnProperty(a))return b(this[0].dataset[a])}},$.fn.hasClass=function(a){for(let b=this.length;b--;)if(this[b].classList.contains(a))return!0;return!1};var g=a=>{return a=a.toLowerCase(),{for:"htmlFor",class:"className",tabindex:"tabIndex",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"}[a]||a};$.fn.prop=function(a,c){const d=$.isPlainObject(a);if(void 0!==c||d){if(!d){const b={};b[a]=c,a=b}let e={};return $.each(a,(a,c)=>{e[g(a)]=b(this,c,b=>b[a])}),$.each(e,(a,b)=>{for(let c=this.length;c--;)this[c][a]=b[c]}),this}return this[0]?this[0][g(a)]:void 0},$.fn.removeProp=function(a){let b=this.length;for(a=g(a);b--;)delete this[b][a];return this},["show","hide","toggle"].forEach((a,b)=>{$.fn[a]=function(){for(let a=this.length,c=["block","none"];a--;)this[a].style.display=c[b]||("none"===getComputedStyle(this[a]).display?"block":"none");return this}}),$.fn.map=function(a){let b=this.length,c=[],d=0;for(;da.offset()),d=this.length;for(;d--;){let a=getComputedStyle(this[d]).position;"static"===a&&(c[d].position=a="relative");const b=this[d]["relative"===a?"parentNode":"offsetParent"];if($.each($(b).offset(),(a,b)=>c[d][a]-=b),"relative"===a){const a=getComputedStyle(b);c[d].top-=parseFloat(a.paddingTop)+parseFloat(a.borderTopWidth),c[d].left-=parseFloat(a.paddingLeft)+parseFloat(a.borderLeftWidth)}}for(d=this.length;d--;)$.each(c[d],(a,b)=>this[d].style[a]=b+(isNaN(b)?"":"px"));return this}if(this[0]){const a=document.documentElement,b="fixed"===this[0].style.position,c=this[0].getBoundingClientRect();return{top:c.top+(b?0:a.scrollTop),left:c.left+(b?0:a.scrollLeft)}}},$.fn.offsetParent=function(){return $(this[0]?this[0].offsetParent:null)},$.fn.position=function(){if(this[0])return{left:this[0].offsetLeft,top:this[0].offsetTop}},["scrollLeft","scrollTop"].forEach(a=>{$.fn[a]=function(c){const d="scrollTop"===a;if(c!==void 0){for(let e=this.length,f=d?"top":"left",g=b(this,c,b=>b[a]);e--;)if($.isWindow(this[e])){let a={};a[f]=g[e],this[e].scroll(a)}else this[e][a]=g[e];return this}return this[0]?($.isWindow(this[0])&&(a=d?"pageYOffset":"pageXOffset"),this[0][a]):void 0}}),["width","height","innerWidth","innerHeight","outerWidth","outerHeight"].forEach(a=>{$.fn[a]=function(c){const d=-1b[a]),j=this.length,i=[];j--;)g&&(h.forEach(a=>{i.push("padding"+a),"outer"==g&&i.push("border"+a+"Width")}),isNaN(f[j])&&-1===f[j].indexOf("px")&&(this[j].style[e]=f[j],i.push(e),f[j]=0),d=getComputedStyle(this[j]),i.forEach(a=>f[j]-=parseFloat(d[a]))),this[j].style[e]=f[j]+(isNaN(f[j])?"":"px");return this}if(this[0]){if(this[0].nodeType===Node.DOCUMENT_NODE)return this[0].documentElement["scroll"+f];if(!$.isWindow(this[0])){let a=this[0][("outer"==g?"offset":"client")+f];if(""==g||"outer"==g&&!0===c){const b=getComputedStyle(this[0]);h.forEach(c=>a+=parseFloat(b[(g?"margin":"padding")+c])*(g?1:-1))}return a}return"inner"==g?this[0].document.documentElement["client"+f]:this[0]["inner"+f]}}}),$.fn.trigger=function(a,b){for(let c=this.length;c--;)if("submit"!==a&&$.isFunction(this[c][a]))this[c][a]();else{const d=new CustomEvent(a,{bubbles:!0,cancelable:!0});d.args=b,this[c].dispatchEvent(d)}return this},c.forEach(a=>{$.fn[a]=function(b,c){return b?this.on(a,b,c):this.trigger(a)}}),$.fn.off=function(a,b,c,d){a=a.split(" "),$.isFunction(b)?(d=b,b=void 0):$.isFunction(c)&&(d=c,c=void 0);for(let f=this.length;f--;)if(this[f].events.length)for(let c=a.length;c--;)this[f].events.forEach((e,g)=>{const h=e.events.indexOf(a[c]);-1===h||d&&e.callback!==d||b&&e.selector!==b||(this[f].removeEventListener(a[c],e.func,{once:e.once,capture:!!e.selector}),this[f].events[g].events.splice(h,1),!this[f].events[g].events.length&&this[f].events.splice(g,1))});return this},$.fn.clone=function(){let a=[],b=this.length;for(;b--;)a[b]=this[b].cloneNode(!0);return $(a)},$.fn.empty=function(){for(let a=this.length;a--;)for(;this[a].firstChild&&this[a].removeChild(this[a].firstChild););return this},$.fn.html=function(a){if(a!==void 0){for(let c=this.length,d=b(this,a,a=>a.innerHTML);c--;)this[c].innerHTML=d[c];return this}return this[0]?this[0].innerHTML:void 0},$.each({before:"beforeBegin",prepend:"afterBegin",append:"beforeEnd",after:"afterEnd"},(a,c)=>{$.fn[a]=function(d){let e=-1<["before","prepend"].indexOf(a),f=[],g=this.length;if($.isFunction(d))f=b(this,d,a=>a.innerHTML);else{const a=$();for($.each(arguments,(b,c)=>a.add(c));g--;)f[g]=g?a.clone():a}for(g=this.length;g--;)for(let a=f[g].length,b=-1;e?a--:++b{$.fn[a]=function(a){for(let c=this.length,d=$(a);c--;)d[b](this[c]);return this}}),["remove","detach"].forEach(b=>{$.fn[b]=function(c){let d=this.length,e=[];for(;d--;)(!c||a(this[d],c).length)&&e.push(this[d].parentNode.removeChild(this[d]));return"detach"===b?$(e):this}}),["replaceWith","replaceAll"].forEach(a=>{$.fn[a]=function(c){const d="replaceAll"===a,e=d?$(c):this;let f=d?this:c,g=$.isFunction(f),h=e.length;for(g||(f=$(f));h--;)for(let a=f.length,c=e[h].parentNode;a--;){const d=g?b(f[a],a,f[a]):f[a];a?e[h].insertAdjacentElement("beforebegin",d.cloneNode(!0)):e[h]=c.replaceChild(h?d.cloneNode(!0):d,e[h])}return this}}),$.fn.slice=function(a,b){return $(this.get().slice(a,b))},$.fn.text=function(a){let c=this.length,d=[];if(a!==void 0){for(const d=b(this,a,a=>a.textContent);c--;)this[c].textContent=d[c];return this}for(;c--;)d[c]=this[c].textContent;return d.join(" ")},$.fn.unwrap=function(a){return this.parent(a).not("body").each((a,b)=>{$(b.children).each((a,c)=>{b.parentNode.insertBefore(c,b)}),b.parentNode.removeChild(b)}),this},$.fn.wrapAll=function(a){if(this[0]){$.isFunction(a)&&(a=a.call(this[0]));let b=this.length,c=0,d=$(a)[0].cloneNode(!0);for(this[0].parentNode.insertBefore(d,null);d.firstElementChild;)d=d.firstElementChild;for(;ca?a+this.length:a])},$.fn.find=function(a){return $(a,this)},$.fn.first=function(){return $(this[0])},$.fn.has=function(a){return $(this.get().filter(b=>!!$(a,b).length))},$.fn.index=function(a){if(this[0]){let b,c,d=this[0];for(void 0===a?b=this[0].parentNode.children:"string"==typeof a?b=$(a):(b=this,d=$(a)[0]),c=b.length;c--;)if(b[c]===d)return c}return-1},$.fn.last=function(){return this.eq(-1)},["next","nextAll","nextUntil","prev","prevAll","prevUntil"].forEach(b=>{$.fn[b]=function(c,d){const e=-1{a!==this[c]&&d.push(a)});return $(b?a(d,b):d)};export default $; diff --git a/src/events/trigger/trigger.js b/src/events/trigger/trigger.js index 9fdd93c..d282a8c 100644 --- a/src/events/trigger/trigger.js +++ b/src/events/trigger/trigger.js @@ -4,7 +4,9 @@ import "../../utils/isfunction/isfunction.js"; $.fn.trigger = function (name, data) { let i = this.length; while (i--) { - if ($.isFunction(this[i][name])) { + + // native submit event doesn't trigger event handlers + if (name !== "submit" && $.isFunction(this[i][name])) { this[i][name](); } else { const evt = new CustomEvent(name, {bubbles: true, cancelable: true});