eyjs 6.1.1 → 6.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/changelog.md +11 -1
- package/dist/eye.cjs.js +22 -4
- package/dist/eye.cjs.js.map +1 -1
- package/dist/eye.esm.js +22 -4
- package/dist/eye.esm.js.map +1 -1
- package/dist/eye.umd.js +22 -4
- package/dist/eye.umd.js.map +1 -1
- package/dist/eye.umd.min.js +1 -1
- package/dist/eye.umd.min.js.map +1 -1
- package/package.json +1 -1
- package/src/eye.js +21 -4
- package/src/eye.min.js +1 -1
package/changelog.md
CHANGED
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## [6.
|
|
3
|
+
## [6.2.0] - 2025-08-25
|
|
4
|
+
|
|
5
|
+
### Changed
|
|
6
|
+
|
|
7
|
+
- `.each` function can be interrupted from inside by returning false in the function.
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- new `.eachChild` function to loop through selected elements children, also can be interupted by returning false.
|
|
12
|
+
|
|
13
|
+
## [6.1.2] - 2025-08-17
|
|
4
14
|
|
|
5
15
|
### Changed
|
|
6
16
|
|
package/dist/eye.cjs.js
CHANGED
|
@@ -370,7 +370,6 @@ function cmcl(parent, layer) {
|
|
|
370
370
|
|
|
371
371
|
let delegationEvents = ["click", "dblclick", "submit", "input", "change", "keydown", "keyup", "keypress", "focusin", "focusout", "mousedown", "mouseup", "mousemove", "contextmenu", "auxclick", "wheel", "mouseover", "mouseout", "pointerdown", "pointerup", "pointermove", "pointerover", "pointerout", "gotpointercapture", "lostpointercapture", "pointercancel"];
|
|
372
372
|
let normalSetterGetter = (action, v, elm) => v;
|
|
373
|
-
window.addEventListener('point');
|
|
374
373
|
|
|
375
374
|
/**
|
|
376
375
|
* Eye wrapper offers a subset of functions that ease DOM minipulation! Power of JQuery with
|
|
@@ -512,11 +511,30 @@ class EyeElement {
|
|
|
512
511
|
* @returns {EyeElement}
|
|
513
512
|
*/
|
|
514
513
|
each(cb) {
|
|
515
|
-
(this.#raw instanceof NodeList ? [...this.#raw.entries()] : [[0, this.#raw]])
|
|
516
|
-
|
|
517
|
-
|
|
514
|
+
let list = (this.#raw instanceof NodeList ? [...this.#raw.entries()] : [[0, this.#raw]]);
|
|
515
|
+
for (let i = 0; i < list.length; i++) {
|
|
516
|
+
const [idx, elm] = list[i];
|
|
517
|
+
let exit = cb(elm, idx, this);
|
|
518
|
+
if (exit === false) break;
|
|
519
|
+
}
|
|
518
520
|
return this;
|
|
519
521
|
}
|
|
522
|
+
/**
|
|
523
|
+
* Run(loop) through selected NodeList's children.
|
|
524
|
+
* @param {(elm: HTMLElement, index: number, parent: HTMLElement, Object: EyeElement)=>{}} cb
|
|
525
|
+
* @returns {EyeElement}
|
|
526
|
+
*/
|
|
527
|
+
eachChild(cb) {
|
|
528
|
+
let _this = this;
|
|
529
|
+
return this.each(function (elm, i, parent) {
|
|
530
|
+
let exit = true;
|
|
531
|
+
for (let j = 0; j < elm.children.length; j++) {
|
|
532
|
+
exit = cb(elm.children[j], j, elm, _this);
|
|
533
|
+
if (exit === false) break;
|
|
534
|
+
}
|
|
535
|
+
if (exit === false) return;
|
|
536
|
+
})
|
|
537
|
+
}
|
|
520
538
|
/**
|
|
521
539
|
* Set or get element html
|
|
522
540
|
* @method EyeElement#html
|
package/dist/eye.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eye.cjs.js","sources":["../src/eye.js"],"sourcesContent":["/**\r\n * @typedef {Object} AttrMap\r\n * @property {HTMLDivElement} parent - append newly created element to a parent\r\n * @property {Array<String>|String} class - class or array of classes to set\r\n * @property {String} id - set element ID\r\n * @property {Object} data - dataset values to set\r\n * @property {String} text - set element text\r\n * @property {String} html - set element html\r\n */\r\n\r\n/**\r\n * Returns the associated class event of that event\r\n * example: for click event it returns new MouseEvent(\"click\")\r\n * @param {string} ev \r\n */\r\nfunction getEvent(type, options = {}) {\r\n switch (type) {\r\n // Mouse Events\r\n case 'click':\r\n case 'dblclick':\r\n case 'mousedown':\r\n case 'mouseup':\r\n case 'mousemove':\r\n case 'mouseenter':\r\n case 'mouseleave':\r\n case 'mouseover':\r\n case 'mouseout':\r\n return new MouseEvent(type, options);\r\n\r\n // Pointer Events\r\n case 'pointerdown':\r\n case 'pointerup':\r\n case 'pointermove':\r\n case 'pointerenter':\r\n case 'pointerleave':\r\n case 'pointerover':\r\n case 'pointerout':\r\n return new PointerEvent(type, options);\r\n\r\n // Keyboard Events\r\n case 'keydown':\r\n case 'keyup':\r\n case 'keypress':\r\n return new KeyboardEvent(type, options);\r\n\r\n // Focus Events\r\n case 'focus':\r\n case 'blur':\r\n case 'focusin':\r\n case 'focusout':\r\n return new FocusEvent(type, options);\r\n\r\n // Input & Form Events\r\n case 'input':\r\n case 'change':\r\n case 'submit':\r\n case 'reset':\r\n return new Event(type, options);\r\n\r\n // Wheel\r\n case 'wheel':\r\n return new WheelEvent(type, options);\r\n\r\n // Clipboard\r\n case 'copy':\r\n case 'cut':\r\n case 'paste':\r\n return new ClipboardEvent(type, options);\r\n\r\n // UI\r\n case 'scroll':\r\n case 'resize':\r\n return new UIEvent(type, options);\r\n\r\n // Default: fallback to generic Event\r\n default:\r\n return new CustomEvent(type, options);\r\n }\r\n}\r\n\r\n/**\r\n * @typedef {EyeElement & {\r\n * refresh: (attrs: AttrMap) => ModelEyeElement\r\n * }} ModelEyeElement eye element definition for model elements\r\n */\r\n\r\nconst events = [\r\n // Mouse Events\r\n \"click\",\r\n \"dblclick\",\r\n \"mousedown\",\r\n \"mouseup\",\r\n \"mousemove\",\r\n \"mouseenter\",\r\n \"mouseleave\",\r\n \"mouseover\",\r\n \"mouseout\",\r\n \"contextmenu\",\r\n\r\n // Keyboard Events\r\n \"keydown\",\r\n \"keypress\", // Deprecated\r\n \"keyup\",\r\n\r\n // Focus Events\r\n \"focus\",\r\n \"blur\",\r\n \"focusin\",\r\n \"focusout\",\r\n\r\n // Form Events\r\n \"submit\",\r\n \"change\",\r\n \"input\",\r\n \"reset\",\r\n \"select\",\r\n\r\n // Touch Events (for mobile)\r\n \"touchstart\",\r\n \"touchend\",\r\n \"touchmove\",\r\n \"touchcancel\",\r\n\r\n // Pointer Events\r\n \"pointerdown\",\r\n \"pointerup\",\r\n \"pointermove\",\r\n \"pointerenter\",\r\n \"pointerleave\",\r\n \"pointercancel\",\r\n\r\n // Drag and Drop Events\r\n \"dragstart\",\r\n \"dragend\",\r\n \"dragenter\",\r\n \"dragover\",\r\n \"dragleave\",\r\n \"drop\",\r\n\r\n // Window/Document Events\r\n \"resize\",\r\n \"scroll\",\r\n \"load\",\r\n \"beforeunload\",\r\n \"unload\",\r\n\r\n // Media Events\r\n \"play\",\r\n \"pause\",\r\n \"ended\",\r\n \"volumechange\",\r\n \"timeupdate\",\r\n\r\n // Clipboard Events\r\n \"copy\",\r\n \"cut\",\r\n \"paste\",\r\n\r\n // Animation and Transition Events\r\n \"animationstart\",\r\n \"animationend\",\r\n \"animationiteration\",\r\n \"transitionstart\",\r\n \"transitionend\",\r\n\r\n // Mutation Events\r\n \"DOMSubtreeModified\",\r\n \"DOMNodeInserted\",\r\n \"DOMNodeRemoved\",\r\n\r\n // Other Events\r\n \"error\",\r\n \"hashchange\",\r\n \"popstate\",\r\n];\r\n\r\nconst htmlElements = [\r\n // Metadata\r\n \"<base>\",\r\n \"<head>\",\r\n \"<link>\",\r\n \"<meta>\",\r\n \"<style>\",\r\n \"<title>\",\r\n\r\n // Sections\r\n \"<body>\",\r\n \"<address>\",\r\n \"<article>\",\r\n \"<aside>\",\r\n \"<footer>\",\r\n \"<header>\",\r\n \"<h1>\",\r\n \"<h2>\",\r\n \"<h3>\",\r\n \"<h4>\",\r\n \"<h5>\",\r\n \"<h6>\",\r\n \"<main>\",\r\n \"<nav>\",\r\n \"<section>\",\r\n\r\n // Text content\r\n \"<blockquote>\",\r\n \"<dd>\",\r\n \"<div>\",\r\n \"<dl>\",\r\n \"<dt>\",\r\n \"<figcaption>\",\r\n \"<figure>\",\r\n \"<hr>\",\r\n \"<li>\",\r\n \"<ol>\",\r\n \"<p>\",\r\n \"<pre>\",\r\n \"<ul>\",\r\n\r\n // Inline text semantics\r\n \"<a>\",\r\n \"<abbr>\",\r\n \"<b>\",\r\n \"<bdi>\",\r\n \"<bdo>\",\r\n \"<br>\",\r\n \"<cite>\",\r\n \"<code>\",\r\n \"<data>\",\r\n \"<dfn>\",\r\n \"<em>\",\r\n \"<i>\",\r\n \"<kbd>\",\r\n \"<mark>\",\r\n \"<q>\",\r\n \"<rp>\",\r\n \"<rt>\",\r\n \"<ruby>\",\r\n \"<s>\",\r\n \"<samp>\",\r\n \"<small>\",\r\n \"<span>\",\r\n \"<strong>\",\r\n \"<sub>\",\r\n \"<sup>\",\r\n \"<time>\",\r\n \"<u>\",\r\n \"<var>\",\r\n \"<wbr>\",\r\n\r\n // Image and multimedia\r\n \"<area>\",\r\n \"<audio>\",\r\n \"<img>\",\r\n \"<map>\",\r\n \"<track>\",\r\n \"<video>\",\r\n\r\n // Embedded content\r\n \"<embed>\",\r\n \"<iframe>\",\r\n \"<object>\",\r\n \"<picture>\",\r\n \"<portal>\",\r\n \"<source>\",\r\n\r\n // Scripting\r\n \"<canvas>\",\r\n \"<noscript>\",\r\n \"<script>\",\r\n\r\n // Demarcating edits\r\n \"<del>\",\r\n \"<ins>\",\r\n\r\n // Table content\r\n \"<caption>\",\r\n \"<col>\",\r\n \"<colgroup>\",\r\n \"<table>\",\r\n \"<tbody>\",\r\n \"<td>\",\r\n \"<tfoot>\",\r\n \"<th>\",\r\n \"<thead>\",\r\n \"<tr>\",\r\n\r\n // Forms\r\n \"<button>\",\r\n \"<datalist>\",\r\n \"<fieldset>\",\r\n \"<form>\",\r\n \"<input>\",\r\n \"<label>\",\r\n \"<legend>\",\r\n \"<meter>\",\r\n \"<optgroup>\",\r\n \"<option>\",\r\n \"<output>\",\r\n \"<progress>\",\r\n \"<select>\",\r\n \"<textarea>\",\r\n\r\n // Interactive elements\r\n \"<details>\",\r\n \"<dialog>\",\r\n \"<summary>\",\r\n\r\n // Web components / scripting base\r\n \"<slot>\",\r\n \"<template>\",\r\n];\r\n\r\nfunction flat(word) {\r\n let n = \"\";\r\n for (let i = 0; i < word.length; i++) {\r\n const t = word[i];\r\n if (t === t.toUpperCase() && t !== t.toLowerCase()) n += \"-\" + t;\r\n else n += t;\r\n }\r\n return n.toLowerCase();\r\n}\r\n\r\nconst localdata = new WeakMap();\r\n\r\n/**\r\n * cmcl stands for Create Model Children Layers, recursively creates model layers one by one\r\n * @param {EyeElement} parent\r\n * @param {Object} layer\r\n * @returns {Array<{name: string,set: (parent: EyeElement, value: String) =>}>}\r\n */\r\nfunction cmcl(parent, layer) {\r\n let obj = [];\r\n for (const key in layer) {\r\n const subcontent = layer[key];\r\n const [def, _set] = key.split(\":\");\r\n const [tagName, ...cls] = def.split(\".\");\r\n let [_set_name = null, _set_default = null] = (_set || \"\")\r\n .split(\"-\")\r\n .map((a) => a.trim());\r\n\r\n let elm = e(tagName.trim(), {\r\n class: cls,\r\n parent,\r\n data: _set ? { value: _set_name } : undefined,\r\n });\r\n\r\n if (_set && _set_name) {\r\n obj.push({\r\n name: _set_name,\r\n set(parent, value) {\r\n let elm = parent.find(`[data-value=\"${_set_name}\"]`);\r\n elm.textContent = value ?? _set_default;\r\n }\r\n });\r\n }\r\n\r\n // recursive\r\n if (\r\n subcontent &&\r\n typeof subcontent === \"object\" &&\r\n !(subcontent instanceof Array)\r\n )\r\n obj = obj.concat(cmcl(elm, subcontent));\r\n }\r\n return obj;\r\n}\r\n\r\nlet delegationEvents = [\"click\", \"dblclick\", \"submit\", \"input\", \"change\", \"keydown\", \"keyup\", \"keypress\", \"focusin\", \"focusout\", \"mousedown\", \"mouseup\", \"mousemove\", \"contextmenu\", \"auxclick\", \"wheel\", \"mouseover\", \"mouseout\", \"pointerdown\", \"pointerup\", \"pointermove\", \"pointerover\", \"pointerout\", \"gotpointercapture\", \"lostpointercapture\", \"pointercancel\"];\r\nlet normalSetterGetter = (action, v, elm) => v;\r\nwindow.addEventListener('point')\r\n\r\n/**\r\n * Eye wrapper offers a subset of functions that ease DOM minipulation! Power of JQuery with \r\n * some a modern design and a bunch of new functions.\r\n * @author Yousef Neji\r\n */\r\nexport class EyeElement {\r\n /**\r\n * Raw html element\r\n * @type {HTMLElement}\r\n */\r\n #raw = null;\r\n\r\n /**\r\n * Used to store delegated events listeners\r\n * @type {Map<String,Set<{callback, target: string}>>}\r\n */\r\n #dlgListeners = new Map();\r\n\r\n /**\r\n * Custom way or modifier that redefine the way you set/get\r\n * this element `textContent` or `value`:\r\n * - access this feature from `.redefine` method.\r\n */\r\n #customSet = {\r\n value: normalSetterGetter,\r\n text: normalSetterGetter\r\n };\r\n\r\n /**\r\n * Called internally to initiate the main EyeElement functionalities\r\n * @method EyeElement#init\r\n * @param {string|HTMLElement} selector\r\n * @param {AttrMap} attrs\r\n * @param {Object} css\r\n * @returns {EyeElement}\r\n */\r\n constructor(selector, attrs, css) {\r\n let _this = this;\r\n if (selector instanceof HTMLElement) {\r\n this.#raw = selector;\r\n } else if (htmlElements.includes(selector)) {\r\n // creating a new element\r\n this.#raw = document.createElement(selector.substring(1, selector.length - 1));\r\n } else {\r\n // selecting\r\n let s = selector.slice(-1) === \"!\";\r\n this.#raw = document.querySelectorAll(s ? selector.slice(0, -1) : selector);\r\n\r\n if (this.#raw.length == 0) return null; // we stop everything here\r\n if (this.length == 1 || s) this.#raw = this.#raw.item(0);\r\n }\r\n\r\n /**\r\n * Handler used to integrate delegation concept/algorithme\r\n * @param {Event} e \r\n */\r\n function handler(e) {\r\n let name = e.type,\r\n listeners = _this.#dlgListeners,\r\n _etarget = e.target,\r\n me = this; // refers to the element being listening to the event\r\n\r\n if (listeners.has(name)) {\r\n let cbs = listeners.get(name);\r\n cbs?.forEach(({ callback, target }) => {\r\n if (_etarget.closest(target)) {\r\n // we hitting the target\r\n callback(e, me);\r\n }\r\n })\r\n }\r\n }\r\n\r\n this.each((elm, idx) => {\r\n let parentElm = null;\r\n if (attrs)\r\n for (const key in attrs) {\r\n const value = attrs[key];\r\n if (key == \"class\")\r\n elm.classList.add.apply(\r\n elm.classList,\r\n (value instanceof Array ? value : value.split(\" \")).filter(a => a != \"\")\r\n );\r\n else if (key == \"text\") elm.textContent = value;\r\n else if (key == \"html\") elm.innerHTML = value;\r\n else if (key == \"data\") for (const k in value) elm.dataset[k] = value[k];\r\n else if (key == \"parent\") parentElm = value;\r\n else if (key in elm) elm[key] = value;\r\n else if (key[0] != \"_\") elm.setAttribute(key, elm); // we must ignore _ started keys 'cause they are used by models\r\n }\r\n if (css)\r\n for (const key in css)\r\n if (key.indexOf(\"-\") != -1) elm.style[key] = css[key];\r\n else elm.style[flat(key)] = css[key];\r\n if (parentElm instanceof EyeElement || parentElm instanceof HTMLElement) parentElm.append(elm);\r\n\r\n // creating the delegation handling model\r\n delegationEvents.forEach(ev => {\r\n elm.addEventListener(ev, handler);\r\n })\r\n })\r\n\r\n // creating/initiating events functions\r\n events.forEach(ev => {\r\n _this[ev] = function (cb) {\r\n if (cb) {\r\n if (typeof cb == \"function\") _this.on(ev, cb);\r\n } else _this.trigger(ev);\r\n\r\n return _this;\r\n }\r\n })\r\n\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Length of current selection\r\n * @type {Number}\r\n */\r\n get length() {\r\n return this.#raw instanceof NodeList ? this.#raw.length : 1;\r\n }\r\n\r\n /**\r\n * Raw html element\r\n * @type {HTMLElement}\r\n */\r\n get raw() {\r\n return this.#raw;\r\n }\r\n\r\n /**\r\n * Run(loop) through selected NodeList, or run a single call for one single element\r\n * @method EyeElement#each\r\n * @param {(elm: HTMLElement, index: number, current: EyeElement)=>} cb \r\n * @returns {EyeElement}\r\n */\r\n each(cb) {\r\n let _this = this;\r\n (this.#raw instanceof NodeList ? [...this.#raw.entries()] : [[0, this.#raw]]).forEach(([idx, elm]) => {\r\n cb(elm, idx, this);\r\n })\r\n return this;\r\n }\r\n /**\r\n * Set or get element html\r\n * @method EyeElement#html\r\n * @param {string} [html]\r\n * @returns {EyeElement|string}\r\n */\r\n html(html) {\r\n let out = undefined;\r\n this.each((elm, idx) => {\r\n if (html === undefined) return out = elm.innerHTML;// getting the first one and exiting\r\n elm.innerHTML = html;\r\n })\r\n return out != undefined ? out : this;\r\n }\r\n /**\r\n * Set or get element text\r\n * @method EyeElement#text\r\n * @param {string} [text]\r\n * @returns {EyeElement|string}\r\n */\r\n text(text) {\r\n let out = undefined;\r\n this.each((elm, idx) => {\r\n if (text === undefined) return out = this.#customSet.text(\"get\", elm.textContent, elm);\r\n elm.textContent = this.#customSet.text(\"set\", text, elm);\r\n })\r\n return out != undefined ? out : this;\r\n }\r\n /**\r\n * Set or get element's data values\r\n * @method EyeElement#data\r\n * @param {string} key\r\n * @param {*} [value]\r\n * @returns {EyeElement|string}\r\n */\r\n data(key, value) {\r\n if (!localdata.has(this)) localdata.set(this, {});\r\n if (key) {\r\n if (value != undefined) localdata.get(this)[key] = value;\r\n else return localdata.get(this)[key];\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Set or get an attribute value\r\n * @method EyeElement#attr\r\n * @param {string} name\r\n * @param {*} [value]\r\n * @returns {EyeElement|string}\r\n */\r\n attr(name, value) {\r\n let out = \"\";\r\n this.each((elm, idx) => {\r\n if (name.indexOf(\"data-\") === 0) {\r\n let [key, val] = name.split(\"-\").map((a) => a.trim());\r\n // modify data\r\n if (value == undefined) return out = elm.dataset[val];\r\n elm.dataset[val] = value;\r\n } else {\r\n if (name in elm) {\r\n if (value == undefined) return out = elm[name];\r\n elm[name] = value;\r\n } else if (name[0] != \"_\") {\r\n if (value == undefined) return out = elm.getAttribute(name)\r\n elm.setAttribute(name, value);\r\n }\r\n }\r\n })\r\n return out ? out : this;\r\n }\r\n /**\r\n * Removing attribute of this element\r\n * @type {string} attrName\r\n * @returns {EyeElement}\r\n */\r\n rAttr(attrName) {\r\n if (attrName) {\r\n this.each((elm, idx) => {\r\n elm.removeAttribute(attrName);\r\n })\r\n }\r\n return this;\r\n }\r\n /**\r\n * Super fancy class function that allows to modify class with different methods in one as follow:\r\n * - `\"classname\"`: add classname to the element.\r\n * - `\"-classname\"`: remove classname from class list.\r\n * - `\"%classname\"`: toggle classname existing.\r\n * - `\"?classname\"`: check classname existing in class list.\r\n * - `\"classnameA/classnameB\"`: replace classnameA by classnameB\r\n * @method EyeElement#class\r\n * @param {string} actions\r\n * @returns {EyeElement|string}\r\n */\r\n class(actions) {\r\n let out = undefined;\r\n this.each((elm, idx) => {\r\n if (typeof actions === \"number\") return out = elm.classList.item(actions);\r\n\r\n actions.split(\" \").forEach((action) => {\r\n if (action[0] == \"-\") {\r\n elm.classList.remove(action.substring(1, action.length));\r\n } else if (action[0] == \"%\") {\r\n elm.classList.toggle(action.substring(1, action.length));\r\n } else if (action[0] == \"?\") {\r\n out = elm.classList.contains(action.substring(1, action.length));\r\n } else if (action.indexOf(\"/\") != -1) {\r\n let [v1, v2] = action.split(\"/\");\r\n elm.classList.replace(v1, v2);\r\n } else {\r\n elm.classList.add(action);\r\n }\r\n });\r\n if (out) return;\r\n })\r\n\r\n return out != undefined ? out : this;\r\n }\r\n /**\r\n * Show/display the element\r\n * @method EyeElement#show\r\n * @param {string} cls\r\n * @returns {EyeElement}\r\n */\r\n show(cls) {\r\n this.each((elm, idx) => {\r\n elm.style.display = cls ?? \"inline-block\";\r\n })\r\n return this;\r\n }\r\n /**\r\n * Hide the element\r\n * @method EyeElement#hide\r\n * @param {boolean} opacity whether to hide by making invisible?\r\n * @returns {EyeElement}\r\n */\r\n hide(opacity) {\r\n this.each((elm, idx) => {\r\n if (opacity) elm.style.opacity = 0;\r\n else elm.style.display = \"none\";\r\n })\r\n return this;\r\n }\r\n /**\r\n * Append one or more elements to the current element\r\n * @method EyeElement#append\r\n * @param {HTMLElement|Array<Node|EyeElement>} elm\r\n * @param {\"next\" | \"after\" | \"previous\" | \"before\" | \"first\" | \"afterbegin\" | \"last\" | \"beforeend\"} [pos] [optional]\r\n * @returns {EyeElement}\r\n */\r\n append(elm, pos) {\r\n let nodes = [];\r\n (Array.isArray(elm) ? elm : [elm]).forEach(item => {\r\n if (item instanceof EyeElement) nodes.push(item.#raw);\r\n else if (item instanceof HTMLElement) nodes.push(item)\r\n })\r\n if (this.#raw instanceof NodeList) {\r\n console.warn(`[EyeJS] beware while using .append with multi selected elements`);\r\n this.#raw.forEach((itm, idx) => {\r\n if (!nodes[idx]) return;\r\n itm.append(nodes[idx]);\r\n })\r\n return this;\r\n }\r\n if (!pos) this.#raw.append(...nodes);\r\n else\r\n switch (pos) {\r\n case \"next\":\r\n case \"after\":\r\n this.#raw.after(...nodes);\r\n break;\r\n case \"previous\":\r\n case \"before\":\r\n this.#raw.before(...nodes);\r\n break;\r\n case \"afterbegin\":\r\n case \"first\":\r\n this.#raw.prepend(...nodes);\r\n break;\r\n case \"beforeend\":\r\n case \"last\":\r\n this.#raw.append(...nodes);\r\n\r\n }\r\n return this;\r\n }\r\n /**\r\n * Insert element after this one\r\n * @method EyeElement#after\r\n * @param {EyeElement|HTMLElement} elm \r\n * @returns {EyeElement}\r\n */\r\n after(elm) {\r\n (this.#raw instanceof NodeList ? this.#raw.item(0) : this.#raw).after(elm instanceof EyeElement ? elm.raw : elm);\r\n return this;\r\n }\r\n /**\r\n * Insert element before this one\r\n * @method EyeElement#before\r\n * @param {EyeElement|HTMLElement} elm \r\n * @returns {EyeElement}\r\n */\r\n before(elm) {\r\n (this.#raw instanceof NodeList ? this.#raw.item(0) : this.#raw).before(elm instanceof EyeElement ? elm.raw : elm);\r\n return this;\r\n }\r\n /**\r\n * Replace current element with the new element, or multiple elements with multiple selected elements\r\n * @method EyeElement#replaceWith\r\n * @param {...HTMLElement|EyeElement} elms\r\n * @param {string} [pos] [optional]\r\n * @returns {EyeElement}\r\n */\r\n replaceWith(...elms) {\r\n let nodes = [];\r\n (Array.isArray(elms) ? elms : [elms]).forEach(item => {\r\n if (item instanceof EyeElement) nodes.push(item.#raw);\r\n else if (item instanceof HTMLElement) nodes.push(item)\r\n })\r\n if (this.#raw instanceof NodeList) {\r\n [...this.#raw.entries()].forEach(([idx, elm]) => {\r\n if (!nodes[idx]) return;\r\n elm.replaceWith(nodes[idx]);\r\n })\r\n } else {\r\n this.#raw.replaceWith(...nodes);\r\n }\r\n return this;\r\n }\r\n /**\r\n * Get current element parent or append it to one\r\n * @method EyeElement#parent\r\n * @param {HTMLElement|EyeElement} par\r\n * @returns {EyeElement}\r\n */\r\n parent(par) {\r\n if (par) {\r\n if (!(par instanceof HTMLElement) && !(par instanceof EyeElement))\r\n throw new Error(\r\n \"[EyeJS] Unable to append current element to parent because it's not HTMLElement\"\r\n );\r\n this.each((elm, idx) => {\r\n par.append(elm);\r\n })\r\n return this;\r\n }\r\n return e(this.#raw instanceof NodeList ? this.#raw.item(0).parentElement : this.#raw.parentElement);\r\n }\r\n /**\r\n * Returns whether current node is the same/equal(depending on `check`) as the passed node or not\r\n * @method EyeElement#is\r\n * @param {HTMLElement|EyeElement} node\r\n * @param {\"connected\" | \"same\" | \"equal\"} [check] check type `same`, `equal`\r\n * @returns {boolean}\r\n */\r\n is(node, check) {\r\n node = node instanceof EyeElement ? node.#raw : node;\r\n if (this.#raw instanceof NodeList) {\r\n console.warn(`[EyeJS] .is is not functional with multi selected elements`);\r\n return this;\r\n }\r\n if (node === \"connected\") return this.#raw.isConnected;\r\n switch (check) {\r\n case \"same\":\r\n return this.#raw.isSameNode(node);\r\n case \"equal\":\r\n return this.#raw.isEqualNode(node);\r\n default:\r\n console.error(\r\n `[EyeJS] Unknown check \"${check}\", possible values are [\"same\",\"equal\",\"connected\"]`\r\n );\r\n return false;\r\n }\r\n }\r\n /**\r\n * Set or get a css attribute\r\n * @method EyeElement#css\r\n * @param {string} attr\r\n * @param {string|number} [value]\r\n * @returns {EyeElement|string}\r\n */\r\n css(attr, value) {\r\n if (attr) {\r\n let out = undefined;\r\n attr = flat(attr);\r\n this.each((elm, idx) => {\r\n if (value === undefined) return out = elm.style[attr];\r\n elm.style[attr] = value;\r\n })\r\n return out != undefined ? out : this;\r\n } else return console.error(`[EyeJS] mission argument \"attr\" in function .css`);\r\n }\r\n /**\r\n * Remove current element\r\n * @method EyeElement#remove\r\n * @returns {EyeElement}\r\n */\r\n remove() {\r\n this.each((elm, idx) => {\r\n elm.remove();\r\n })\r\n return this;\r\n }\r\n /**\r\n * @overload\r\n * @param {string} ev\r\n * @param {function} cb\r\n */\r\n /**\r\n * @overload\r\n * @param {string} ev\r\n * @param {string} trg optionally define a target element for the event\r\n * @param {function} cb\r\n *\r\n */\r\n /**\r\n * Attach an listener/handler to specific event or events\r\n * @method EyeElement#on\r\n * @param {string} ev may contain multiple events separated by \" \"(space)\r\n * @param {string|function} arg2 \r\n * @param {function} [arg3]\r\n * @returns {EyeElement|void}\r\n */\r\n on(ev, arg2, arg3) {\r\n ev = ev.split(\" \");\r\n let target = typeof arg2 === \"string\" ? arg2 : null;\r\n let cb = typeof arg2 === \"function\" ? arg2 : arg3;\r\n let _this = this;\r\n if (typeof cb !== \"function\")\r\n return console.error(\r\n \"[EyeJS] .on method is missing the actuall callback `cb` or not of type function\"\r\n );\r\n\r\n let elms = (this.#raw instanceof NodeList ? [...this.#raw.entries()] : [[0, this.#raw]])\r\n\r\n let outsider = null;\r\n ev.forEach(evt => {\r\n if (target) {\r\n if (!delegationEvents.includes(evt))\r\n return outsider = evt; // outsider events \r\n\r\n if (!_this.#dlgListeners.has(evt))\r\n _this.#dlgListeners.set(evt, new Set());\r\n _this.#dlgListeners.get(evt).add({ callback: cb, target });\r\n } else {\r\n elms.forEach(([idx, elm]) => {\r\n elm.addEventListener(evt, cb);\r\n })\r\n }\r\n })\r\n\r\n if (outsider !== null)\r\n return console.error(`[EyeJS] trying to use delegation for an inappropriate event \"${outsider}\"`);\r\n\r\n return this;\r\n }\r\n /**\r\n * Remove event listener of a specific event\r\n * @method EyeElement#off\r\n * @param {string} ev \r\n * @param {function} cb \r\n * @returns {EyeElement|void}\r\n */\r\n off(ev, cb) {\r\n let _this = this,\r\n listeners = _this.#dlgListeners;\r\n if (typeof cb != \"function\")\r\n return console.error(\r\n \"[EyeJS] .off method is missing the actuall callback `cb` or not of type function\"\r\n );\r\n ev = ev.split(\" \");\r\n\r\n this.each((elm, idx) => {\r\n ev.forEach(evt => elm.removeEventListener(evt, cb));\r\n })\r\n // now delegated events\r\n ev.forEach(evt => {\r\n if (listeners.has(evt)) {\r\n let set = listeners.get(evt);\r\n for (const item of set) {\r\n if (cb === item.callback) {\r\n // found it & remove it\r\n set.delete(item);\r\n }\r\n }\r\n }\r\n })\r\n }\r\n /**\r\n * Trigger specific event for this element\r\n * @method EyeElement#trigger\r\n * @param {string} ev \r\n * @returns {EyeElement}\r\n */\r\n trigger(ev) {\r\n this.each((elm, idx) => {\r\n elm.dispatchEvent(getEvent(ev));\r\n })\r\n return this;\r\n }\r\n /**\r\n * Find one or multiple child elements by `selector`\r\n * @method EyeElement#find\r\n * @param {string} selector \r\n * @returns {HTMLElement|Array<HTMLElement>}\r\n */\r\n find(selector) {\r\n let found = [];\r\n this.each((elm, idx) => {\r\n elm.querySelectorAll(selector).forEach(res => found.push(res));\r\n })\r\n return found.length == 1 ? found[0] : found;\r\n }\r\n /**\r\n * Returns a clone of current selected element/s\r\n * @method EyeElement#clone\r\n * @param {HTMLElement} [parent] optionally append new clone to a parent\r\n * @returns {Array<EyeElement>|EyeElement}\r\n */\r\n clone(parent) {\r\n if (this.#raw instanceof NodeList) {\r\n let list = [];\r\n this.#raw.forEach(nd => {\r\n list.push(nd.cloneNode(true));\r\n })\r\n if (parent instanceof HTMLElement || parent instanceof EyeElement) list.forEach(el => parent.append(el));\r\n return list;\r\n } else {\r\n let clone = this.#raw.cloneNode(true);\r\n if (parent instanceof HTMLElement || parent instanceof EyeElement) parent.append(clone);\r\n return clone;\r\n }\r\n }\r\n /**\r\n * Compute DOMRect or style declaration of current element\r\n * @method EyeElement#compute\r\n * @param {\"bounds\" | \"style\"} type \r\n * @returns {DOMRect|CSSStyleDeclaration}\r\n */\r\n compute(type) {\r\n type = type || \"bounds\";\r\n if (type === \"bounds\")\r\n return (this.#raw instanceof NodeList ? this.#raw.item(0) : this.#raw).getBoundingClientRect();\r\n else if (type == \"style\")\r\n return getComputedStyle(this.#raw instanceof NodeList ? this.#raw.item(0) : this.#raw)\r\n console.error(`[EyeJS] unkown type \"${type}\" in function .compute, possible values are \"bounds\" \"style\"`);\r\n }\r\n\r\n /**\r\n * Get specific client informations.\r\n * @param {\"width\" | \"height\" | \"left\" | \"top\"} attr \r\n * @returns {EyeElement}\r\n */\r\n client(attr) {\r\n if (['width', 'height', 'left', 'top'].includes(attr))\r\n return (this.#raw instanceof NodeList ? this.#raw.item(0) : this.#raw)[`client${attr[0].toUpperCase()}${attr.substring(1, attr.length)}`];\r\n else console.error(`[EyeJS] Unknown client* attribute \"${attr}\" in .client(attr)`);\r\n return this;\r\n }\r\n /**\r\n * Activate/disactive different pointer features such as PointerLock, pointerCapture...\r\n * @method EyeElement#pointer\r\n * @param {\"capture\" | \"lock\"} action \r\n * @param {boolean} status \r\n * @param {string} [pid] \r\n * @returns {EyeElement}\r\n */\r\n pointer(action, status, pid) {\r\n this.each((elm, idx) => {\r\n if (action === \"capture\") {\r\n if (status === true) elm.setPointerCapture(pid);\r\n else elm.releasePointerCapture(pid);\r\n } else if (action === \"lock\") {\r\n if (status === true) elm.requestPointerLock();\r\n else document.exitPointerLock();\r\n }\r\n });\r\n return this;\r\n }\r\n /**\r\n * Returns the count of children for this element\r\n * @type {number}\r\n */\r\n get childlen() {\r\n return (this.#raw instanceof NodeList ? this.#raw.item(0) : this.#raw)?.children.length;\r\n }\r\n /**\r\n * Select a child of this element\r\n * @method EyeElement#child\r\n * @param {number} index \r\n * @returns {EyeElement|null}\r\n */\r\n child(index) {\r\n let it = (this.#raw instanceof NodeList ? this.#raw.item(0) : this.#raw);\r\n if (index === undefined) return it.children.length;\r\n if (it.children[index]) return e(it.children[index]);\r\n return null;\r\n }\r\n /**\r\n * Set/get the value of the current element\r\n * @method EyeElement#val\r\n * @param {*} value \r\n * @returns \r\n */\r\n val(value) {\r\n if (value != undefined) (this.#raw instanceof NodeList ? [...this.#raw.entries()] : [[0, this.#raw]]).forEach(([idx, a]) => a.value = this.#customSet.value(\"set\", value, a));\r\n else {\r\n let it = (this.#raw instanceof NodeList ? this.#raw.item(0) : this.#raw);\r\n return this.#customSet.value(\"get\", it.value, it);\r\n }\r\n return this;\r\n }\r\n /**\r\n * Serialize this element to send it over network, returns 3 formats `json`, `url` & `fd`(formData) \r\n * @method EyeElement#serialize\r\n * @param {{inputs: Array<string>}} opts\r\n * @returns {{json: Object, url: String, fd: FormData}}\r\n */\r\n serialize(opts) {\r\n opts = opts || {};\r\n let {\r\n inputs = [\"input\", \"textarea\", \"select\"],\r\n } = opts;\r\n if (this.#raw instanceof HTMLElement) {\r\n let out = {\r\n json: {},\r\n url: \"\",\r\n fd: new FormData()\r\n };\r\n this.#raw.querySelectorAll(inputs.join(','))\r\n .forEach((inp, i) => {\r\n let name = inp.name || inp.dataset.name;\r\n let value = inp.value || inp.textContent;\r\n if (typeof opts[name] === \"function\") value = opts[name](inp);\r\n\r\n if (inp.type == \"file\")\r\n inp.files.forEach(file => {\r\n out.fd.append(name, file);\r\n })\r\n else {\r\n out.json[name] = value;\r\n out.fd.append(name, value);\r\n }\r\n })\r\n\r\n out.url = new URLSearchParams(out.json).toString();\r\n return out;\r\n } else console.warn(`[EyeJS] this is a multi selection, it's not serializable!`);\r\n }\r\n /**\r\n * Redefine the way `.text` or `.val` set or get data to and from this element.\r\n * @method EyeElement#redefine\r\n * @param {\"text\" | \"value\"} type \r\n * @param {(action: \"set\" | \"get\", value: *, elm: EyeElement) => *} process \r\n * @returns {EyeElement}\r\n */\r\n redefine(type, process) {\r\n if ([\"text\", \"value\"].includes(type) && typeof process == \"function\")\r\n this.#customSet[type] = process;\r\n return this;\r\n }\r\n /**\r\n * Animate current object \r\n * @method EyeElement#animate\r\n * @param {Array<Keyframe>} keyframes \r\n * @param {KeyframeAnimationOptions} opts \r\n * @returns {Array<Animation>|Animation}\r\n */\r\n animate(keyframes, opts) {\r\n /**\r\n * @type {Array<Animation>}\r\n */\r\n let anmts = [];\r\n opts.duration = opts.duration || 1000;\r\n this.each((elm, i) => {\r\n anmts.push(elm.animate(keyframes, opts));\r\n })\r\n return anmts.length == 1 ? anmts[0] : anmts;\r\n }\r\n\r\n /**\r\n * Find element/s position/s within parent element\r\n * @method EyeElement#position\r\n * @returns {number}\r\n */\r\n position() {\r\n let poses = [];\r\n this.each((elm) => {\r\n for (let i = 0; i < elm.parentNode.children.length; i++) {\r\n const child = elm.parentNode.children[i];\r\n if (elm.isSameNode(child)) poses.push(i);\r\n }\r\n\r\n })\r\n return poses.length == 0 ? poses[0] : poses;\r\n }\r\n};\r\n\r\n/**\r\n * Creates or select nodes using css selectors, offering a pack of useful functions to use around your code!\r\n * @param {String} tag\r\n * @param {AttrMap} attrs\r\n * @param {Object} css CSS styles to be applied to the element.\r\n * @returns {EyeElement}\r\n */\r\nfunction e(tag, attrs, css) {\r\n if (typeof tag === \"string\" && tag.indexOf(\"model:\") === 0 || tag === \"model\") {\r\n if (!attrs) return console.error(\"[EyeJS] Model creation requires parameter 'attr' as prototype, none delivered!\");\r\n\r\n tag = tag.split(\":\");\r\n let cls = [\"eye-model\"];\r\n if (tag[1])\r\n cls = cls.concat(tag[1].split(\" \").filter(a => a != \"\"));\r\n // creating a model\r\n let model = e(\"<div>\", {\r\n class: cls.join(\" \"),\r\n });\r\n\r\n let sets = cmcl(model, attrs);\r\n\r\n /**\r\n * @param {string} attrs\r\n * @returns {ModelEyeElement}\r\n */\r\n return (attrs) => {\r\n let copy = e(model.clone(attrs?.parent));\r\n // define & attach the refresh function\r\n copy.refresh = function (attrs = {}) {\r\n let def = attrs.default === false ? false : true;\r\n sets.forEach((item) => {\r\n if (def === true || (!def && attrs.hasOwnProperty(item.name)))\r\n item.set(copy, attrs[item.name]);\r\n });\r\n return this;\r\n };\r\n return copy.refresh(attrs);\r\n };\r\n } else return new EyeElement(tag, attrs, css);\r\n}\r\n\r\n\r\n// gloablly exposed\r\nwindow.e = e;\r\nwindow.EyeElement = EyeElement;\r\nexport default e;\r\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"eye.cjs.js","sources":["../src/eye.js"],"sourcesContent":["/**\r\n * @typedef {Object} AttrMap\r\n * @property {HTMLDivElement} parent - append newly created element to a parent\r\n * @property {Array<String>|String} class - class or array of classes to set\r\n * @property {String} id - set element ID\r\n * @property {Object} data - dataset values to set\r\n * @property {String} text - set element text\r\n * @property {String} html - set element html\r\n */\r\n\r\n/**\r\n * Returns the associated class event of that event\r\n * example: for click event it returns new MouseEvent(\"click\")\r\n * @param {string} ev \r\n */\r\nfunction getEvent(type, options = {}) {\r\n switch (type) {\r\n // Mouse Events\r\n case 'click':\r\n case 'dblclick':\r\n case 'mousedown':\r\n case 'mouseup':\r\n case 'mousemove':\r\n case 'mouseenter':\r\n case 'mouseleave':\r\n case 'mouseover':\r\n case 'mouseout':\r\n return new MouseEvent(type, options);\r\n\r\n // Pointer Events\r\n case 'pointerdown':\r\n case 'pointerup':\r\n case 'pointermove':\r\n case 'pointerenter':\r\n case 'pointerleave':\r\n case 'pointerover':\r\n case 'pointerout':\r\n return new PointerEvent(type, options);\r\n\r\n // Keyboard Events\r\n case 'keydown':\r\n case 'keyup':\r\n case 'keypress':\r\n return new KeyboardEvent(type, options);\r\n\r\n // Focus Events\r\n case 'focus':\r\n case 'blur':\r\n case 'focusin':\r\n case 'focusout':\r\n return new FocusEvent(type, options);\r\n\r\n // Input & Form Events\r\n case 'input':\r\n case 'change':\r\n case 'submit':\r\n case 'reset':\r\n return new Event(type, options);\r\n\r\n // Wheel\r\n case 'wheel':\r\n return new WheelEvent(type, options);\r\n\r\n // Clipboard\r\n case 'copy':\r\n case 'cut':\r\n case 'paste':\r\n return new ClipboardEvent(type, options);\r\n\r\n // UI\r\n case 'scroll':\r\n case 'resize':\r\n return new UIEvent(type, options);\r\n\r\n // Default: fallback to generic Event\r\n default:\r\n return new CustomEvent(type, options);\r\n }\r\n}\r\n\r\n/**\r\n * @typedef {EyeElement & {\r\n * refresh: (attrs: AttrMap) => ModelEyeElement\r\n * }} ModelEyeElement eye element definition for model elements\r\n */\r\n\r\nconst events = [\r\n // Mouse Events\r\n \"click\",\r\n \"dblclick\",\r\n \"mousedown\",\r\n \"mouseup\",\r\n \"mousemove\",\r\n \"mouseenter\",\r\n \"mouseleave\",\r\n \"mouseover\",\r\n \"mouseout\",\r\n \"contextmenu\",\r\n\r\n // Keyboard Events\r\n \"keydown\",\r\n \"keypress\", // Deprecated\r\n \"keyup\",\r\n\r\n // Focus Events\r\n \"focus\",\r\n \"blur\",\r\n \"focusin\",\r\n \"focusout\",\r\n\r\n // Form Events\r\n \"submit\",\r\n \"change\",\r\n \"input\",\r\n \"reset\",\r\n \"select\",\r\n\r\n // Touch Events (for mobile)\r\n \"touchstart\",\r\n \"touchend\",\r\n \"touchmove\",\r\n \"touchcancel\",\r\n\r\n // Pointer Events\r\n \"pointerdown\",\r\n \"pointerup\",\r\n \"pointermove\",\r\n \"pointerenter\",\r\n \"pointerleave\",\r\n \"pointercancel\",\r\n\r\n // Drag and Drop Events\r\n \"dragstart\",\r\n \"dragend\",\r\n \"dragenter\",\r\n \"dragover\",\r\n \"dragleave\",\r\n \"drop\",\r\n\r\n // Window/Document Events\r\n \"resize\",\r\n \"scroll\",\r\n \"load\",\r\n \"beforeunload\",\r\n \"unload\",\r\n\r\n // Media Events\r\n \"play\",\r\n \"pause\",\r\n \"ended\",\r\n \"volumechange\",\r\n \"timeupdate\",\r\n\r\n // Clipboard Events\r\n \"copy\",\r\n \"cut\",\r\n \"paste\",\r\n\r\n // Animation and Transition Events\r\n \"animationstart\",\r\n \"animationend\",\r\n \"animationiteration\",\r\n \"transitionstart\",\r\n \"transitionend\",\r\n\r\n // Mutation Events\r\n \"DOMSubtreeModified\",\r\n \"DOMNodeInserted\",\r\n \"DOMNodeRemoved\",\r\n\r\n // Other Events\r\n \"error\",\r\n \"hashchange\",\r\n \"popstate\",\r\n];\r\n\r\nconst htmlElements = [\r\n // Metadata\r\n \"<base>\",\r\n \"<head>\",\r\n \"<link>\",\r\n \"<meta>\",\r\n \"<style>\",\r\n \"<title>\",\r\n\r\n // Sections\r\n \"<body>\",\r\n \"<address>\",\r\n \"<article>\",\r\n \"<aside>\",\r\n \"<footer>\",\r\n \"<header>\",\r\n \"<h1>\",\r\n \"<h2>\",\r\n \"<h3>\",\r\n \"<h4>\",\r\n \"<h5>\",\r\n \"<h6>\",\r\n \"<main>\",\r\n \"<nav>\",\r\n \"<section>\",\r\n\r\n // Text content\r\n \"<blockquote>\",\r\n \"<dd>\",\r\n \"<div>\",\r\n \"<dl>\",\r\n \"<dt>\",\r\n \"<figcaption>\",\r\n \"<figure>\",\r\n \"<hr>\",\r\n \"<li>\",\r\n \"<ol>\",\r\n \"<p>\",\r\n \"<pre>\",\r\n \"<ul>\",\r\n\r\n // Inline text semantics\r\n \"<a>\",\r\n \"<abbr>\",\r\n \"<b>\",\r\n \"<bdi>\",\r\n \"<bdo>\",\r\n \"<br>\",\r\n \"<cite>\",\r\n \"<code>\",\r\n \"<data>\",\r\n \"<dfn>\",\r\n \"<em>\",\r\n \"<i>\",\r\n \"<kbd>\",\r\n \"<mark>\",\r\n \"<q>\",\r\n \"<rp>\",\r\n \"<rt>\",\r\n \"<ruby>\",\r\n \"<s>\",\r\n \"<samp>\",\r\n \"<small>\",\r\n \"<span>\",\r\n \"<strong>\",\r\n \"<sub>\",\r\n \"<sup>\",\r\n \"<time>\",\r\n \"<u>\",\r\n \"<var>\",\r\n \"<wbr>\",\r\n\r\n // Image and multimedia\r\n \"<area>\",\r\n \"<audio>\",\r\n \"<img>\",\r\n \"<map>\",\r\n \"<track>\",\r\n \"<video>\",\r\n\r\n // Embedded content\r\n \"<embed>\",\r\n \"<iframe>\",\r\n \"<object>\",\r\n \"<picture>\",\r\n \"<portal>\",\r\n \"<source>\",\r\n\r\n // Scripting\r\n \"<canvas>\",\r\n \"<noscript>\",\r\n \"<script>\",\r\n\r\n // Demarcating edits\r\n \"<del>\",\r\n \"<ins>\",\r\n\r\n // Table content\r\n \"<caption>\",\r\n \"<col>\",\r\n \"<colgroup>\",\r\n \"<table>\",\r\n \"<tbody>\",\r\n \"<td>\",\r\n \"<tfoot>\",\r\n \"<th>\",\r\n \"<thead>\",\r\n \"<tr>\",\r\n\r\n // Forms\r\n \"<button>\",\r\n \"<datalist>\",\r\n \"<fieldset>\",\r\n \"<form>\",\r\n \"<input>\",\r\n \"<label>\",\r\n \"<legend>\",\r\n \"<meter>\",\r\n \"<optgroup>\",\r\n \"<option>\",\r\n \"<output>\",\r\n \"<progress>\",\r\n \"<select>\",\r\n \"<textarea>\",\r\n\r\n // Interactive elements\r\n \"<details>\",\r\n \"<dialog>\",\r\n \"<summary>\",\r\n\r\n // Web components / scripting base\r\n \"<slot>\",\r\n \"<template>\",\r\n];\r\n\r\nfunction flat(word) {\r\n let n = \"\";\r\n for (let i = 0; i < word.length; i++) {\r\n const t = word[i];\r\n if (t === t.toUpperCase() && t !== t.toLowerCase()) n += \"-\" + t;\r\n else n += t;\r\n }\r\n return n.toLowerCase();\r\n}\r\n\r\nconst localdata = new WeakMap();\r\n\r\n/**\r\n * cmcl stands for Create Model Children Layers, recursively creates model layers one by one\r\n * @param {EyeElement} parent\r\n * @param {Object} layer\r\n * @returns {Array<{name: string,set: (parent: EyeElement, value: String) =>}>}\r\n */\r\nfunction cmcl(parent, layer) {\r\n let obj = [];\r\n for (const key in layer) {\r\n const subcontent = layer[key];\r\n const [def, _set] = key.split(\":\");\r\n const [tagName, ...cls] = def.split(\".\");\r\n let [_set_name = null, _set_default = null] = (_set || \"\")\r\n .split(\"-\")\r\n .map((a) => a.trim());\r\n\r\n let elm = e(tagName.trim(), {\r\n class: cls,\r\n parent,\r\n data: _set ? { value: _set_name } : undefined,\r\n });\r\n\r\n if (_set && _set_name) {\r\n obj.push({\r\n name: _set_name,\r\n set(parent, value) {\r\n let elm = parent.find(`[data-value=\"${_set_name}\"]`);\r\n elm.textContent = value ?? _set_default;\r\n }\r\n });\r\n }\r\n\r\n // recursive\r\n if (\r\n subcontent &&\r\n typeof subcontent === \"object\" &&\r\n !(subcontent instanceof Array)\r\n )\r\n obj = obj.concat(cmcl(elm, subcontent));\r\n }\r\n return obj;\r\n}\r\n\r\nlet delegationEvents = [\"click\", \"dblclick\", \"submit\", \"input\", \"change\", \"keydown\", \"keyup\", \"keypress\", \"focusin\", \"focusout\", \"mousedown\", \"mouseup\", \"mousemove\", \"contextmenu\", \"auxclick\", \"wheel\", \"mouseover\", \"mouseout\", \"pointerdown\", \"pointerup\", \"pointermove\", \"pointerover\", \"pointerout\", \"gotpointercapture\", \"lostpointercapture\", \"pointercancel\"];\r\nlet normalSetterGetter = (action, v, elm) => v;\r\n\r\n/**\r\n * Eye wrapper offers a subset of functions that ease DOM minipulation! Power of JQuery with \r\n * some a modern design and a bunch of new functions.\r\n * @author Yousef Neji\r\n */\r\nexport class EyeElement {\r\n /**\r\n * Raw html element\r\n * @type {HTMLElement}\r\n */\r\n #raw = null;\r\n\r\n /**\r\n * Used to store delegated events listeners\r\n * @type {Map<String,Set<{callback, target: string}>>}\r\n */\r\n #dlgListeners = new Map();\r\n\r\n /**\r\n * Custom way or modifier that redefine the way you set/get\r\n * this element `textContent` or `value`:\r\n * - access this feature from `.redefine` method.\r\n */\r\n #customSet = {\r\n value: normalSetterGetter,\r\n text: normalSetterGetter\r\n };\r\n\r\n /**\r\n * Called internally to initiate the main EyeElement functionalities\r\n * @method EyeElement#init\r\n * @param {string|HTMLElement} selector\r\n * @param {AttrMap} attrs\r\n * @param {Object} css\r\n * @returns {EyeElement}\r\n */\r\n constructor(selector, attrs, css) {\r\n let _this = this;\r\n if (selector instanceof HTMLElement) {\r\n this.#raw = selector;\r\n } else if (htmlElements.includes(selector)) {\r\n // creating a new element\r\n this.#raw = document.createElement(selector.substring(1, selector.length - 1));\r\n } else {\r\n // selecting\r\n let s = selector.slice(-1) === \"!\";\r\n this.#raw = document.querySelectorAll(s ? selector.slice(0, -1) : selector);\r\n\r\n if (this.#raw.length == 0) return null; // we stop everything here\r\n if (this.length == 1 || s) this.#raw = this.#raw.item(0);\r\n }\r\n\r\n /**\r\n * Handler used to integrate delegation concept/algorithme\r\n * @param {Event} e \r\n */\r\n function handler(e) {\r\n let name = e.type,\r\n listeners = _this.#dlgListeners,\r\n _etarget = e.target,\r\n me = this; // refers to the element being listening to the event\r\n\r\n if (listeners.has(name)) {\r\n let cbs = listeners.get(name);\r\n cbs?.forEach(({ callback, target }) => {\r\n if (_etarget.closest(target)) {\r\n // we hitting the target\r\n callback(e, me);\r\n }\r\n })\r\n }\r\n }\r\n\r\n this.each((elm, idx) => {\r\n let parentElm = null;\r\n if (attrs)\r\n for (const key in attrs) {\r\n const value = attrs[key];\r\n if (key == \"class\")\r\n elm.classList.add.apply(\r\n elm.classList,\r\n (value instanceof Array ? value : value.split(\" \")).filter(a => a != \"\")\r\n );\r\n else if (key == \"text\") elm.textContent = value;\r\n else if (key == \"html\") elm.innerHTML = value;\r\n else if (key == \"data\") for (const k in value) elm.dataset[k] = value[k];\r\n else if (key == \"parent\") parentElm = value;\r\n else if (key in elm) elm[key] = value;\r\n else if (key[0] != \"_\") elm.setAttribute(key, elm); // we must ignore _ started keys 'cause they are used by models\r\n }\r\n if (css)\r\n for (const key in css)\r\n if (key.indexOf(\"-\") != -1) elm.style[key] = css[key];\r\n else elm.style[flat(key)] = css[key];\r\n if (parentElm instanceof EyeElement || parentElm instanceof HTMLElement) parentElm.append(elm);\r\n\r\n // creating the delegation handling model\r\n delegationEvents.forEach(ev => {\r\n elm.addEventListener(ev, handler);\r\n })\r\n })\r\n\r\n // creating/initiating events functions\r\n events.forEach(ev => {\r\n _this[ev] = function (cb) {\r\n if (cb) {\r\n if (typeof cb == \"function\") _this.on(ev, cb);\r\n } else _this.trigger(ev);\r\n\r\n return _this;\r\n }\r\n })\r\n\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Length of current selection\r\n * @type {Number}\r\n */\r\n get length() {\r\n return this.#raw instanceof NodeList ? this.#raw.length : 1;\r\n }\r\n\r\n /**\r\n * Raw html element\r\n * @type {HTMLElement}\r\n */\r\n get raw() {\r\n return this.#raw;\r\n }\r\n\r\n /**\r\n * Run(loop) through selected NodeList, or run a single call for one single element\r\n * @method EyeElement#each\r\n * @param {(elm: HTMLElement, index: number, current: EyeElement)=>} cb \r\n * @returns {EyeElement}\r\n */\r\n each(cb) {\r\n let list = (this.#raw instanceof NodeList ? [...this.#raw.entries()] : [[0, this.#raw]]);\r\n for (let i = 0; i < list.length; i++) {\r\n const [idx, elm] = list[i];\r\n let exit = cb(elm, idx, this);\r\n if (exit === false) break;\r\n }\r\n return this;\r\n }\r\n /**\r\n * Run(loop) through selected NodeList's children.\r\n * @param {(elm: HTMLElement, index: number, parent: HTMLElement, Object: EyeElement)=>{}} cb \r\n * @returns {EyeElement}\r\n */\r\n eachChild(cb) {\r\n let _this = this;\r\n return this.each(function (elm, i, parent) {\r\n let exit = true;\r\n for (let j = 0; j < elm.children.length; j++) {\r\n exit = cb(elm.children[j], j, elm, _this);\r\n if (exit === false) break;\r\n }\r\n if (exit === false) return;\r\n })\r\n }\r\n /**\r\n * Set or get element html\r\n * @method EyeElement#html\r\n * @param {string} [html]\r\n * @returns {EyeElement|string}\r\n */\r\n html(html) {\r\n let out = undefined;\r\n this.each((elm, idx) => {\r\n if (html === undefined) return out = elm.innerHTML;// getting the first one and exiting\r\n elm.innerHTML = html;\r\n })\r\n return out != undefined ? out : this;\r\n }\r\n /**\r\n * Set or get element text\r\n * @method EyeElement#text\r\n * @param {string} [text]\r\n * @returns {EyeElement|string}\r\n */\r\n text(text) {\r\n let out = undefined;\r\n this.each((elm, idx) => {\r\n if (text === undefined) return out = this.#customSet.text(\"get\", elm.textContent, elm);\r\n elm.textContent = this.#customSet.text(\"set\", text, elm);\r\n })\r\n return out != undefined ? out : this;\r\n }\r\n /**\r\n * Set or get element's data values\r\n * @method EyeElement#data\r\n * @param {string} key\r\n * @param {*} [value]\r\n * @returns {EyeElement|string}\r\n */\r\n data(key, value) {\r\n if (!localdata.has(this)) localdata.set(this, {});\r\n if (key) {\r\n if (value != undefined) localdata.get(this)[key] = value;\r\n else return localdata.get(this)[key];\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Set or get an attribute value\r\n * @method EyeElement#attr\r\n * @param {string} name\r\n * @param {*} [value]\r\n * @returns {EyeElement|string}\r\n */\r\n attr(name, value) {\r\n let out = \"\";\r\n this.each((elm, idx) => {\r\n if (name.indexOf(\"data-\") === 0) {\r\n let [key, val] = name.split(\"-\").map((a) => a.trim());\r\n // modify data\r\n if (value == undefined) return out = elm.dataset[val];\r\n elm.dataset[val] = value;\r\n } else {\r\n if (name in elm) {\r\n if (value == undefined) return out = elm[name];\r\n elm[name] = value;\r\n } else if (name[0] != \"_\") {\r\n if (value == undefined) return out = elm.getAttribute(name)\r\n elm.setAttribute(name, value);\r\n }\r\n }\r\n })\r\n return out ? out : this;\r\n }\r\n /**\r\n * Removing attribute of this element\r\n * @type {string} attrName\r\n * @returns {EyeElement}\r\n */\r\n rAttr(attrName) {\r\n if (attrName) {\r\n this.each((elm, idx) => {\r\n elm.removeAttribute(attrName);\r\n })\r\n }\r\n return this;\r\n }\r\n /**\r\n * Super fancy class function that allows to modify class with different methods in one as follow:\r\n * - `\"classname\"`: add classname to the element.\r\n * - `\"-classname\"`: remove classname from class list.\r\n * - `\"%classname\"`: toggle classname existing.\r\n * - `\"?classname\"`: check classname existing in class list.\r\n * - `\"classnameA/classnameB\"`: replace classnameA by classnameB\r\n * @method EyeElement#class\r\n * @param {string} actions\r\n * @returns {EyeElement|string}\r\n */\r\n class(actions) {\r\n let out = undefined;\r\n this.each((elm, idx) => {\r\n if (typeof actions === \"number\") return out = elm.classList.item(actions);\r\n\r\n actions.split(\" \").forEach((action) => {\r\n if (action[0] == \"-\") {\r\n elm.classList.remove(action.substring(1, action.length));\r\n } else if (action[0] == \"%\") {\r\n elm.classList.toggle(action.substring(1, action.length));\r\n } else if (action[0] == \"?\") {\r\n out = elm.classList.contains(action.substring(1, action.length));\r\n } else if (action.indexOf(\"/\") != -1) {\r\n let [v1, v2] = action.split(\"/\");\r\n elm.classList.replace(v1, v2);\r\n } else {\r\n elm.classList.add(action);\r\n }\r\n });\r\n if (out) return;\r\n })\r\n\r\n return out != undefined ? out : this;\r\n }\r\n /**\r\n * Show/display the element\r\n * @method EyeElement#show\r\n * @param {string} cls\r\n * @returns {EyeElement}\r\n */\r\n show(cls) {\r\n this.each((elm, idx) => {\r\n elm.style.display = cls ?? \"inline-block\";\r\n })\r\n return this;\r\n }\r\n /**\r\n * Hide the element\r\n * @method EyeElement#hide\r\n * @param {boolean} opacity whether to hide by making invisible?\r\n * @returns {EyeElement}\r\n */\r\n hide(opacity) {\r\n this.each((elm, idx) => {\r\n if (opacity) elm.style.opacity = 0;\r\n else elm.style.display = \"none\";\r\n })\r\n return this;\r\n }\r\n /**\r\n * Append one or more elements to the current element\r\n * @method EyeElement#append\r\n * @param {HTMLElement|Array<Node|EyeElement>} elm\r\n * @param {\"next\" | \"after\" | \"previous\" | \"before\" | \"first\" | \"afterbegin\" | \"last\" | \"beforeend\"} [pos] [optional]\r\n * @returns {EyeElement}\r\n */\r\n append(elm, pos) {\r\n let nodes = [];\r\n (Array.isArray(elm) ? elm : [elm]).forEach(item => {\r\n if (item instanceof EyeElement) nodes.push(item.#raw);\r\n else if (item instanceof HTMLElement) nodes.push(item)\r\n })\r\n if (this.#raw instanceof NodeList) {\r\n console.warn(`[EyeJS] beware while using .append with multi selected elements`);\r\n this.#raw.forEach((itm, idx) => {\r\n if (!nodes[idx]) return;\r\n itm.append(nodes[idx]);\r\n })\r\n return this;\r\n }\r\n if (!pos) this.#raw.append(...nodes);\r\n else\r\n switch (pos) {\r\n case \"next\":\r\n case \"after\":\r\n this.#raw.after(...nodes);\r\n break;\r\n case \"previous\":\r\n case \"before\":\r\n this.#raw.before(...nodes);\r\n break;\r\n case \"afterbegin\":\r\n case \"first\":\r\n this.#raw.prepend(...nodes);\r\n break;\r\n case \"beforeend\":\r\n case \"last\":\r\n this.#raw.append(...nodes);\r\n\r\n }\r\n return this;\r\n }\r\n /**\r\n * Insert element after this one\r\n * @method EyeElement#after\r\n * @param {EyeElement|HTMLElement} elm \r\n * @returns {EyeElement}\r\n */\r\n after(elm) {\r\n (this.#raw instanceof NodeList ? this.#raw.item(0) : this.#raw).after(elm instanceof EyeElement ? elm.raw : elm);\r\n return this;\r\n }\r\n /**\r\n * Insert element before this one\r\n * @method EyeElement#before\r\n * @param {EyeElement|HTMLElement} elm \r\n * @returns {EyeElement}\r\n */\r\n before(elm) {\r\n (this.#raw instanceof NodeList ? this.#raw.item(0) : this.#raw).before(elm instanceof EyeElement ? elm.raw : elm);\r\n return this;\r\n }\r\n /**\r\n * Replace current element with the new element, or multiple elements with multiple selected elements\r\n * @method EyeElement#replaceWith\r\n * @param {...HTMLElement|EyeElement} elms\r\n * @param {string} [pos] [optional]\r\n * @returns {EyeElement}\r\n */\r\n replaceWith(...elms) {\r\n let nodes = [];\r\n (Array.isArray(elms) ? elms : [elms]).forEach(item => {\r\n if (item instanceof EyeElement) nodes.push(item.#raw);\r\n else if (item instanceof HTMLElement) nodes.push(item)\r\n })\r\n if (this.#raw instanceof NodeList) {\r\n [...this.#raw.entries()].forEach(([idx, elm]) => {\r\n if (!nodes[idx]) return;\r\n elm.replaceWith(nodes[idx]);\r\n })\r\n } else {\r\n this.#raw.replaceWith(...nodes);\r\n }\r\n return this;\r\n }\r\n /**\r\n * Get current element parent or append it to one\r\n * @method EyeElement#parent\r\n * @param {HTMLElement|EyeElement} par\r\n * @returns {EyeElement}\r\n */\r\n parent(par) {\r\n if (par) {\r\n if (!(par instanceof HTMLElement) && !(par instanceof EyeElement))\r\n throw new Error(\r\n \"[EyeJS] Unable to append current element to parent because it's not HTMLElement\"\r\n );\r\n this.each((elm, idx) => {\r\n par.append(elm);\r\n })\r\n return this;\r\n }\r\n return e(this.#raw instanceof NodeList ? this.#raw.item(0).parentElement : this.#raw.parentElement);\r\n }\r\n /**\r\n * Returns whether current node is the same/equal(depending on `check`) as the passed node or not\r\n * @method EyeElement#is\r\n * @param {HTMLElement|EyeElement} node\r\n * @param {\"connected\" | \"same\" | \"equal\"} [check] check type `same`, `equal`\r\n * @returns {boolean}\r\n */\r\n is(node, check) {\r\n node = node instanceof EyeElement ? node.#raw : node;\r\n if (this.#raw instanceof NodeList) {\r\n console.warn(`[EyeJS] .is is not functional with multi selected elements`);\r\n return this;\r\n }\r\n if (node === \"connected\") return this.#raw.isConnected;\r\n switch (check) {\r\n case \"same\":\r\n return this.#raw.isSameNode(node);\r\n case \"equal\":\r\n return this.#raw.isEqualNode(node);\r\n default:\r\n console.error(\r\n `[EyeJS] Unknown check \"${check}\", possible values are [\"same\",\"equal\",\"connected\"]`\r\n );\r\n return false;\r\n }\r\n }\r\n /**\r\n * Set or get a css attribute\r\n * @method EyeElement#css\r\n * @param {string} attr\r\n * @param {string|number} [value]\r\n * @returns {EyeElement|string}\r\n */\r\n css(attr, value) {\r\n if (attr) {\r\n let out = undefined;\r\n attr = flat(attr);\r\n this.each((elm, idx) => {\r\n if (value === undefined) return out = elm.style[attr];\r\n elm.style[attr] = value;\r\n })\r\n return out != undefined ? out : this;\r\n } else return console.error(`[EyeJS] mission argument \"attr\" in function .css`);\r\n }\r\n /**\r\n * Remove current element\r\n * @method EyeElement#remove\r\n * @returns {EyeElement}\r\n */\r\n remove() {\r\n this.each((elm, idx) => {\r\n elm.remove();\r\n })\r\n return this;\r\n }\r\n /**\r\n * @overload\r\n * @param {string} ev\r\n * @param {function} cb\r\n */\r\n /**\r\n * @overload\r\n * @param {string} ev\r\n * @param {string} trg optionally define a target element for the event\r\n * @param {function} cb\r\n *\r\n */\r\n /**\r\n * Attach an listener/handler to specific event or events\r\n * @method EyeElement#on\r\n * @param {string} ev may contain multiple events separated by \" \"(space)\r\n * @param {string|function} arg2 \r\n * @param {function} [arg3]\r\n * @returns {EyeElement|void}\r\n */\r\n on(ev, arg2, arg3) {\r\n ev = ev.split(\" \");\r\n let target = typeof arg2 === \"string\" ? arg2 : null;\r\n let cb = typeof arg2 === \"function\" ? arg2 : arg3;\r\n let _this = this;\r\n if (typeof cb !== \"function\")\r\n return console.error(\r\n \"[EyeJS] .on method is missing the actuall callback `cb` or not of type function\"\r\n );\r\n\r\n let elms = (this.#raw instanceof NodeList ? [...this.#raw.entries()] : [[0, this.#raw]])\r\n\r\n let outsider = null;\r\n ev.forEach(evt => {\r\n if (target) {\r\n if (!delegationEvents.includes(evt))\r\n return outsider = evt; // outsider events \r\n\r\n if (!_this.#dlgListeners.has(evt))\r\n _this.#dlgListeners.set(evt, new Set());\r\n _this.#dlgListeners.get(evt).add({ callback: cb, target });\r\n } else {\r\n elms.forEach(([idx, elm]) => {\r\n elm.addEventListener(evt, cb);\r\n })\r\n }\r\n })\r\n\r\n if (outsider !== null)\r\n return console.error(`[EyeJS] trying to use delegation for an inappropriate event \"${outsider}\"`);\r\n\r\n return this;\r\n }\r\n /**\r\n * Remove event listener of a specific event\r\n * @method EyeElement#off\r\n * @param {string} ev \r\n * @param {function} cb \r\n * @returns {EyeElement|void}\r\n */\r\n off(ev, cb) {\r\n let _this = this,\r\n listeners = _this.#dlgListeners;\r\n if (typeof cb != \"function\")\r\n return console.error(\r\n \"[EyeJS] .off method is missing the actuall callback `cb` or not of type function\"\r\n );\r\n ev = ev.split(\" \");\r\n\r\n this.each((elm, idx) => {\r\n ev.forEach(evt => elm.removeEventListener(evt, cb));\r\n })\r\n // now delegated events\r\n ev.forEach(evt => {\r\n if (listeners.has(evt)) {\r\n let set = listeners.get(evt);\r\n for (const item of set) {\r\n if (cb === item.callback) {\r\n // found it & remove it\r\n set.delete(item);\r\n }\r\n }\r\n }\r\n })\r\n }\r\n /**\r\n * Trigger specific event for this element\r\n * @method EyeElement#trigger\r\n * @param {string} ev \r\n * @returns {EyeElement}\r\n */\r\n trigger(ev) {\r\n this.each((elm, idx) => {\r\n elm.dispatchEvent(getEvent(ev));\r\n })\r\n return this;\r\n }\r\n /**\r\n * Find one or multiple child elements by `selector`\r\n * @method EyeElement#find\r\n * @param {string} selector \r\n * @returns {HTMLElement|Array<HTMLElement>}\r\n */\r\n find(selector) {\r\n let found = [];\r\n this.each((elm, idx) => {\r\n elm.querySelectorAll(selector).forEach(res => found.push(res));\r\n })\r\n return found.length == 1 ? found[0] : found;\r\n }\r\n /**\r\n * Returns a clone of current selected element/s\r\n * @method EyeElement#clone\r\n * @param {HTMLElement} [parent] optionally append new clone to a parent\r\n * @returns {Array<EyeElement>|EyeElement}\r\n */\r\n clone(parent) {\r\n if (this.#raw instanceof NodeList) {\r\n let list = [];\r\n this.#raw.forEach(nd => {\r\n list.push(nd.cloneNode(true));\r\n })\r\n if (parent instanceof HTMLElement || parent instanceof EyeElement) list.forEach(el => parent.append(el));\r\n return list;\r\n } else {\r\n let clone = this.#raw.cloneNode(true);\r\n if (parent instanceof HTMLElement || parent instanceof EyeElement) parent.append(clone);\r\n return clone;\r\n }\r\n }\r\n /**\r\n * Compute DOMRect or style declaration of current element\r\n * @method EyeElement#compute\r\n * @param {\"bounds\" | \"style\"} type \r\n * @returns {DOMRect|CSSStyleDeclaration}\r\n */\r\n compute(type) {\r\n type = type || \"bounds\";\r\n if (type === \"bounds\")\r\n return (this.#raw instanceof NodeList ? this.#raw.item(0) : this.#raw).getBoundingClientRect();\r\n else if (type == \"style\")\r\n return getComputedStyle(this.#raw instanceof NodeList ? this.#raw.item(0) : this.#raw)\r\n console.error(`[EyeJS] unkown type \"${type}\" in function .compute, possible values are \"bounds\" \"style\"`);\r\n }\r\n\r\n /**\r\n * Get specific client informations.\r\n * @param {\"width\" | \"height\" | \"left\" | \"top\"} attr \r\n * @returns {EyeElement}\r\n */\r\n client(attr) {\r\n if (['width', 'height', 'left', 'top'].includes(attr))\r\n return (this.#raw instanceof NodeList ? this.#raw.item(0) : this.#raw)[`client${attr[0].toUpperCase()}${attr.substring(1, attr.length)}`];\r\n else console.error(`[EyeJS] Unknown client* attribute \"${attr}\" in .client(attr)`);\r\n return this;\r\n }\r\n /**\r\n * Activate/disactive different pointer features such as PointerLock, pointerCapture...\r\n * @method EyeElement#pointer\r\n * @param {\"capture\" | \"lock\"} action \r\n * @param {boolean} status \r\n * @param {string} [pid] \r\n * @returns {EyeElement}\r\n */\r\n pointer(action, status, pid) {\r\n this.each((elm, idx) => {\r\n if (action === \"capture\") {\r\n if (status === true) elm.setPointerCapture(pid);\r\n else elm.releasePointerCapture(pid);\r\n } else if (action === \"lock\") {\r\n if (status === true) elm.requestPointerLock();\r\n else document.exitPointerLock();\r\n }\r\n });\r\n return this;\r\n }\r\n /**\r\n * Returns the count of children for this element\r\n * @type {number}\r\n */\r\n get childlen() {\r\n return (this.#raw instanceof NodeList ? this.#raw.item(0) : this.#raw)?.children.length;\r\n }\r\n /**\r\n * Select a child of this element\r\n * @method EyeElement#child\r\n * @param {number} index \r\n * @returns {EyeElement|null}\r\n */\r\n child(index) {\r\n let it = (this.#raw instanceof NodeList ? this.#raw.item(0) : this.#raw);\r\n if (index === undefined) return it.children.length;\r\n if (it.children[index]) return e(it.children[index]);\r\n return null;\r\n }\r\n /**\r\n * Set/get the value of the current element\r\n * @method EyeElement#val\r\n * @param {*} value \r\n * @returns \r\n */\r\n val(value) {\r\n if (value != undefined) (this.#raw instanceof NodeList ? [...this.#raw.entries()] : [[0, this.#raw]]).forEach(([idx, a]) => a.value = this.#customSet.value(\"set\", value, a));\r\n else {\r\n let it = (this.#raw instanceof NodeList ? this.#raw.item(0) : this.#raw);\r\n return this.#customSet.value(\"get\", it.value, it);\r\n }\r\n return this;\r\n }\r\n /**\r\n * Serialize this element to send it over network, returns 3 formats `json`, `url` & `fd`(formData) \r\n * @method EyeElement#serialize\r\n * @param {{inputs: Array<string>}} opts\r\n * @returns {{json: Object, url: String, fd: FormData}}\r\n */\r\n serialize(opts) {\r\n opts = opts || {};\r\n let {\r\n inputs = [\"input\", \"textarea\", \"select\"],\r\n } = opts;\r\n if (this.#raw instanceof HTMLElement) {\r\n let out = {\r\n json: {},\r\n url: \"\",\r\n fd: new FormData()\r\n };\r\n this.#raw.querySelectorAll(inputs.join(','))\r\n .forEach((inp, i) => {\r\n let name = inp.name || inp.dataset.name;\r\n let value = inp.value || inp.textContent;\r\n if (typeof opts[name] === \"function\") value = opts[name](inp);\r\n\r\n if (inp.type == \"file\")\r\n inp.files.forEach(file => {\r\n out.fd.append(name, file);\r\n })\r\n else {\r\n out.json[name] = value;\r\n out.fd.append(name, value);\r\n }\r\n })\r\n\r\n out.url = new URLSearchParams(out.json).toString();\r\n return out;\r\n } else console.warn(`[EyeJS] this is a multi selection, it's not serializable!`);\r\n }\r\n /**\r\n * Redefine the way `.text` or `.val` set or get data to and from this element.\r\n * @method EyeElement#redefine\r\n * @param {\"text\" | \"value\"} type \r\n * @param {(action: \"set\" | \"get\", value: *, elm: EyeElement) => *} process \r\n * @returns {EyeElement}\r\n */\r\n redefine(type, process) {\r\n if ([\"text\", \"value\"].includes(type) && typeof process == \"function\")\r\n this.#customSet[type] = process;\r\n return this;\r\n }\r\n /**\r\n * Animate current object \r\n * @method EyeElement#animate\r\n * @param {Array<Keyframe>} keyframes \r\n * @param {KeyframeAnimationOptions} opts \r\n * @returns {Array<Animation>|Animation}\r\n */\r\n animate(keyframes, opts) {\r\n /**\r\n * @type {Array<Animation>}\r\n */\r\n let anmts = [];\r\n opts.duration = opts.duration || 1000;\r\n this.each((elm, i) => {\r\n anmts.push(elm.animate(keyframes, opts));\r\n })\r\n return anmts.length == 1 ? anmts[0] : anmts;\r\n }\r\n\r\n /**\r\n * Find element/s position/s within parent element\r\n * @method EyeElement#position\r\n * @returns {number}\r\n */\r\n position() {\r\n let poses = [];\r\n this.each((elm) => {\r\n for (let i = 0; i < elm.parentNode.children.length; i++) {\r\n const child = elm.parentNode.children[i];\r\n if (elm.isSameNode(child)) poses.push(i);\r\n }\r\n\r\n })\r\n return poses.length == 0 ? poses[0] : poses;\r\n }\r\n};\r\n\r\n/**\r\n * Creates or select nodes using css selectors, offering a pack of useful functions to use around your code!\r\n * @param {String} tag\r\n * @param {AttrMap} attrs\r\n * @param {Object} css CSS styles to be applied to the element.\r\n * @returns {EyeElement}\r\n */\r\nfunction e(tag, attrs, css) {\r\n if (typeof tag === \"string\" && tag.indexOf(\"model:\") === 0 || tag === \"model\") {\r\n if (!attrs) return console.error(\"[EyeJS] Model creation requires parameter 'attr' as prototype, none delivered!\");\r\n\r\n tag = tag.split(\":\");\r\n let cls = [\"eye-model\"];\r\n if (tag[1])\r\n cls = cls.concat(tag[1].split(\" \").filter(a => a != \"\"));\r\n // creating a model\r\n let model = e(\"<div>\", {\r\n class: cls.join(\" \"),\r\n });\r\n\r\n let sets = cmcl(model, attrs);\r\n\r\n /**\r\n * @param {string} attrs\r\n * @returns {ModelEyeElement}\r\n */\r\n return (attrs) => {\r\n let copy = e(model.clone(attrs?.parent));\r\n // define & attach the refresh function\r\n copy.refresh = function (attrs = {}) {\r\n let def = attrs.default === false ? false : true;\r\n sets.forEach((item) => {\r\n if (def === true || (!def && attrs.hasOwnProperty(item.name)))\r\n item.set(copy, attrs[item.name]);\r\n });\r\n return this;\r\n };\r\n return copy.refresh(attrs);\r\n };\r\n } else return new EyeElement(tag, attrs, css);\r\n}\r\n\r\n\r\n// gloablly exposed\r\nwindow.e = e;\r\nwindow.EyeElement = EyeElement;\r\nexport default e;\r\n"],"names":[],"mappings":";;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,EAAE,EAAE;AACtC,EAAE,QAAQ,IAAI;AACd;AACA,IAAI,KAAK,OAAO,CAAC;AACjB,IAAI,KAAK,UAAU,CAAC;AACpB,IAAI,KAAK,WAAW,CAAC;AACrB,IAAI,KAAK,SAAS,CAAC;AACnB,IAAI,KAAK,WAAW,CAAC;AACrB,IAAI,KAAK,YAAY,CAAC;AACtB,IAAI,KAAK,YAAY,CAAC;AACtB,IAAI,KAAK,WAAW,CAAC;AACrB,IAAI,KAAK,UAAU;AACnB,MAAM,OAAO,IAAI,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC3C;AACA;AACA,IAAI,KAAK,aAAa,CAAC;AACvB,IAAI,KAAK,WAAW,CAAC;AACrB,IAAI,KAAK,aAAa,CAAC;AACvB,IAAI,KAAK,cAAc,CAAC;AACxB,IAAI,KAAK,cAAc,CAAC;AACxB,IAAI,KAAK,aAAa,CAAC;AACvB,IAAI,KAAK,YAAY;AACrB,MAAM,OAAO,IAAI,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC7C;AACA;AACA,IAAI,KAAK,SAAS,CAAC;AACnB,IAAI,KAAK,OAAO,CAAC;AACjB,IAAI,KAAK,UAAU;AACnB,MAAM,OAAO,IAAI,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC9C;AACA;AACA,IAAI,KAAK,OAAO,CAAC;AACjB,IAAI,KAAK,MAAM,CAAC;AAChB,IAAI,KAAK,SAAS,CAAC;AACnB,IAAI,KAAK,UAAU;AACnB,MAAM,OAAO,IAAI,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC3C;AACA;AACA,IAAI,KAAK,OAAO,CAAC;AACjB,IAAI,KAAK,QAAQ,CAAC;AAClB,IAAI,KAAK,QAAQ,CAAC;AAClB,IAAI,KAAK,OAAO;AAChB,MAAM,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACtC;AACA;AACA,IAAI,KAAK,OAAO;AAChB,MAAM,OAAO,IAAI,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC3C;AACA;AACA,IAAI,KAAK,MAAM,CAAC;AAChB,IAAI,KAAK,KAAK,CAAC;AACf,IAAI,KAAK,OAAO;AAChB,MAAM,OAAO,IAAI,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC/C;AACA;AACA,IAAI,KAAK,QAAQ,CAAC;AAClB,IAAI,KAAK,QAAQ;AACjB,MAAM,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACxC;AACA;AACA,IAAI;AACJ,MAAM,OAAO,IAAI,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC5C,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,MAAM,GAAG;AACf;AACA,EAAE,OAAO;AACT,EAAE,UAAU;AACZ,EAAE,WAAW;AACb,EAAE,SAAS;AACX,EAAE,WAAW;AACb,EAAE,YAAY;AACd,EAAE,YAAY;AACd,EAAE,WAAW;AACb,EAAE,UAAU;AACZ,EAAE,aAAa;AACf;AACA;AACA,EAAE,SAAS;AACX,EAAE,UAAU;AACZ,EAAE,OAAO;AACT;AACA;AACA,EAAE,OAAO;AACT,EAAE,MAAM;AACR,EAAE,SAAS;AACX,EAAE,UAAU;AACZ;AACA;AACA,EAAE,QAAQ;AACV,EAAE,QAAQ;AACV,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,QAAQ;AACV;AACA;AACA,EAAE,YAAY;AACd,EAAE,UAAU;AACZ,EAAE,WAAW;AACb,EAAE,aAAa;AACf;AACA;AACA,EAAE,aAAa;AACf,EAAE,WAAW;AACb,EAAE,aAAa;AACf,EAAE,cAAc;AAChB,EAAE,cAAc;AAChB,EAAE,eAAe;AACjB;AACA;AACA,EAAE,WAAW;AACb,EAAE,SAAS;AACX,EAAE,WAAW;AACb,EAAE,UAAU;AACZ,EAAE,WAAW;AACb,EAAE,MAAM;AACR;AACA;AACA,EAAE,QAAQ;AACV,EAAE,QAAQ;AACV,EAAE,MAAM;AACR,EAAE,cAAc;AAChB,EAAE,QAAQ;AACV;AACA;AACA,EAAE,MAAM;AACR,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,cAAc;AAChB,EAAE,YAAY;AACd;AACA;AACA,EAAE,MAAM;AACR,EAAE,KAAK;AACP,EAAE,OAAO;AACT;AACA;AACA,EAAE,gBAAgB;AAClB,EAAE,cAAc;AAChB,EAAE,oBAAoB;AACtB,EAAE,iBAAiB;AACnB,EAAE,eAAe;AACjB;AACA;AACA,EAAE,oBAAoB;AACtB,EAAE,iBAAiB;AACnB,EAAE,gBAAgB;AAClB;AACA;AACA,EAAE,OAAO;AACT,EAAE,YAAY;AACd,EAAE,UAAU;AACZ,CAAC,CAAC;AACF;AACA,MAAM,YAAY,GAAG;AACrB;AACA,EAAE,QAAQ;AACV,EAAE,QAAQ;AACV,EAAE,QAAQ;AACV,EAAE,QAAQ;AACV,EAAE,SAAS;AACX,EAAE,SAAS;AACX;AACA;AACA,EAAE,QAAQ;AACV,EAAE,WAAW;AACb,EAAE,WAAW;AACb,EAAE,SAAS;AACX,EAAE,UAAU;AACZ,EAAE,UAAU;AACZ,EAAE,MAAM;AACR,EAAE,MAAM;AACR,EAAE,MAAM;AACR,EAAE,MAAM;AACR,EAAE,MAAM;AACR,EAAE,MAAM;AACR,EAAE,QAAQ;AACV,EAAE,OAAO;AACT,EAAE,WAAW;AACb;AACA;AACA,EAAE,cAAc;AAChB,EAAE,MAAM;AACR,EAAE,OAAO;AACT,EAAE,MAAM;AACR,EAAE,MAAM;AACR,EAAE,cAAc;AAChB,EAAE,UAAU;AACZ,EAAE,MAAM;AACR,EAAE,MAAM;AACR,EAAE,MAAM;AACR,EAAE,KAAK;AACP,EAAE,OAAO;AACT,EAAE,MAAM;AACR;AACA;AACA,EAAE,KAAK;AACP,EAAE,QAAQ;AACV,EAAE,KAAK;AACP,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,MAAM;AACR,EAAE,QAAQ;AACV,EAAE,QAAQ;AACV,EAAE,QAAQ;AACV,EAAE,OAAO;AACT,EAAE,MAAM;AACR,EAAE,KAAK;AACP,EAAE,OAAO;AACT,EAAE,QAAQ;AACV,EAAE,KAAK;AACP,EAAE,MAAM;AACR,EAAE,MAAM;AACR,EAAE,QAAQ;AACV,EAAE,KAAK;AACP,EAAE,QAAQ;AACV,EAAE,SAAS;AACX,EAAE,QAAQ;AACV,EAAE,UAAU;AACZ,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,QAAQ;AACV,EAAE,KAAK;AACP,EAAE,OAAO;AACT,EAAE,OAAO;AACT;AACA;AACA,EAAE,QAAQ;AACV,EAAE,SAAS;AACX,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,SAAS;AACX,EAAE,SAAS;AACX;AACA;AACA,EAAE,SAAS;AACX,EAAE,UAAU;AACZ,EAAE,UAAU;AACZ,EAAE,WAAW;AACb,EAAE,UAAU;AACZ,EAAE,UAAU;AACZ;AACA;AACA,EAAE,UAAU;AACZ,EAAE,YAAY;AACd,EAAE,UAAU;AACZ;AACA;AACA,EAAE,OAAO;AACT,EAAE,OAAO;AACT;AACA;AACA,EAAE,WAAW;AACb,EAAE,OAAO;AACT,EAAE,YAAY;AACd,EAAE,SAAS;AACX,EAAE,SAAS;AACX,EAAE,MAAM;AACR,EAAE,SAAS;AACX,EAAE,MAAM;AACR,EAAE,SAAS;AACX,EAAE,MAAM;AACR;AACA;AACA,EAAE,UAAU;AACZ,EAAE,YAAY;AACd,EAAE,YAAY;AACd,EAAE,QAAQ;AACV,EAAE,SAAS;AACX,EAAE,SAAS;AACX,EAAE,UAAU;AACZ,EAAE,SAAS;AACX,EAAE,YAAY;AACd,EAAE,UAAU;AACZ,EAAE,UAAU;AACZ,EAAE,YAAY;AACd,EAAE,UAAU;AACZ,EAAE,YAAY;AACd;AACA;AACA,EAAE,WAAW;AACb,EAAE,UAAU;AACZ,EAAE,WAAW;AACb;AACA;AACA,EAAE,QAAQ;AACV,EAAE,YAAY;AACd,CAAC,CAAC;AACF;AACA,SAAS,IAAI,CAAC,IAAI,EAAE;AACpB,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;AACb,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACtB,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;AACrE,SAAS,CAAC,IAAI,CAAC,CAAC;AAChB,GAAG;AACH,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;AACzB,CAAC;AACD;AACA,MAAM,SAAS,GAAG,IAAI,OAAO,EAAE,CAAC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE;AAC7B,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC;AACf,EAAE,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;AAC3B,IAAI,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;AAClC,IAAI,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACvC,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC7C,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,EAAE,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE;AAC7D,OAAO,KAAK,CAAC,GAAG,CAAC;AACjB,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAC5B;AACA,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE;AAChC,MAAM,KAAK,EAAE,GAAG;AAChB,MAAM,MAAM;AACZ,MAAM,IAAI,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,SAAS;AACnD,KAAK,CAAC,CAAC;AACP;AACA,IAAI,IAAI,IAAI,IAAI,SAAS,EAAE;AAC3B,MAAM,GAAG,CAAC,IAAI,CAAC;AACf,QAAQ,IAAI,EAAE,SAAS;AACvB,QAAQ,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE;AAC3B,UAAU,IAAI,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/D,UAAU,GAAG,CAAC,WAAW,GAAG,KAAK,IAAI,YAAY,CAAC;AAClD,SAAS;AACT,OAAO,CAAC,CAAC;AACT,KAAK;AACL;AACA;AACA,IAAI;AACJ,MAAM,UAAU;AAChB,MAAM,OAAO,UAAU,KAAK,QAAQ;AACpC,MAAM,EAAE,UAAU,YAAY,KAAK,CAAC;AACpC;AACA,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC;AAC9C,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC;AACD;AACA,IAAI,gBAAgB,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,eAAe,CAAC,CAAC;AACvW,IAAI,kBAAkB,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,UAAU,CAAC;AACxB;AACA;AACA;AACA;AACA,EAAE,IAAI,GAAG,IAAI,CAAC;AACd;AACA;AACA;AACA;AACA;AACA,EAAE,aAAa,GAAG,IAAI,GAAG,EAAE,CAAC;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,UAAU,GAAG;AACf,IAAI,KAAK,EAAE,kBAAkB;AAC7B,IAAI,IAAI,EAAE,kBAAkB;AAC5B,GAAG,CAAC;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,WAAW,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE;AACpC,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC;AACrB,IAAI,IAAI,QAAQ,YAAY,WAAW,EAAE;AACzC,MAAM,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;AAC3B,KAAK,MAAM,IAAI,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;AAChD;AACA,MAAM,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AACrF,KAAK,MAAM;AACX;AACA,MAAM,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC;AACzC,MAAM,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC;AAClF;AACA,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,OAAO,IAAI,CAAC;AAC7C,MAAM,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC/D,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,OAAO,CAAC,CAAC,EAAE;AACxB,MAAM,IAAI,IAAI,GAAG,CAAC,CAAC,IAAI;AACvB,QAAQ,SAAS,GAAG,KAAK,CAAC,aAAa;AACvC,QAAQ,QAAQ,GAAG,CAAC,CAAC,MAAM;AAC3B,QAAQ,EAAE,GAAG,IAAI,CAAC;AAClB;AACA,MAAM,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AAC/B,QAAQ,IAAI,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACtC,QAAQ,GAAG,EAAE,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK;AAC/C,UAAU,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AACxC;AACA,YAAY,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC5B,WAAW;AACX,SAAS,EAAC;AACV,OAAO;AACP,KAAK;AACL;AACA,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK;AAC5B,MAAM,IAAI,SAAS,GAAG,IAAI,CAAC;AAC3B,MAAM,IAAI,KAAK;AACf,QAAQ,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;AACjC,UAAU,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;AACnC,UAAU,IAAI,GAAG,IAAI,OAAO;AAC5B,YAAY,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK;AACnC,cAAc,GAAG,CAAC,SAAS;AAC3B,cAAc,CAAC,KAAK,YAAY,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;AACtF,aAAa,CAAC;AACd,eAAe,IAAI,GAAG,IAAI,MAAM,EAAE,GAAG,CAAC,WAAW,GAAG,KAAK,CAAC;AAC1D,eAAe,IAAI,GAAG,IAAI,MAAM,EAAE,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC;AACxD,eAAe,IAAI,GAAG,IAAI,MAAM,EAAE,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACnF,eAAe,IAAI,GAAG,IAAI,QAAQ,EAAE,SAAS,GAAG,KAAK,CAAC;AACtD,eAAe,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAChD,eAAe,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7D,SAAS;AACT,MAAM,IAAI,GAAG;AACb,QAAQ,KAAK,MAAM,GAAG,IAAI,GAAG;AAC7B,UAAU,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;AAChE,eAAe,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,IAAI,SAAS,YAAY,UAAU,IAAI,SAAS,YAAY,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACrG;AACA;AACA,MAAM,gBAAgB,CAAC,OAAO,CAAC,EAAE,IAAI;AACrC,QAAQ,GAAG,CAAC,gBAAgB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;AAC1C,OAAO,EAAC;AACR,KAAK,EAAC;AACN;AACA;AACA,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI;AACzB,MAAM,KAAK,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,EAAE;AAChC,QAAQ,IAAI,EAAE,EAAE;AAChB,UAAU,IAAI,OAAO,EAAE,IAAI,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AACxD,SAAS,MAAM,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AACjC;AACA,QAAQ,OAAO,KAAK,CAAC;AACrB,QAAO;AACP,KAAK,EAAC;AACN;AACA;AACA,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,EAAE,IAAI,MAAM,GAAG;AACf,IAAI,OAAO,IAAI,CAAC,IAAI,YAAY,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAChE,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,EAAE,IAAI,GAAG,GAAG;AACZ,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC;AACrB,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,IAAI,CAAC,EAAE,EAAE;AACX,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,YAAY,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7F,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC1C,MAAM,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACjC,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AACpC,MAAM,IAAI,IAAI,KAAK,KAAK,EAAE,MAAM;AAChC,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,EAAE,SAAS,CAAC,EAAE,EAAE;AAChB,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC;AACrB,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE;AAC/C,MAAM,IAAI,IAAI,GAAG,IAAI,CAAC;AACtB,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpD,QAAQ,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AAClD,QAAQ,IAAI,IAAI,KAAK,KAAK,EAAE,MAAM;AAClC,OAAO;AACP,MAAM,IAAI,IAAI,KAAK,KAAK,EAAE,OAAO;AACjC,KAAK,CAAC;AACN,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,IAAI,CAAC,IAAI,EAAE;AACb,IAAI,IAAI,GAAG,GAAG,SAAS,CAAC;AACxB,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK;AAC5B,MAAM,IAAI,IAAI,KAAK,SAAS,EAAE,OAAO,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC;AACzD,MAAM,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC;AAC3B,KAAK,EAAC;AACN,IAAI,OAAO,GAAG,IAAI,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC;AACzC,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,IAAI,CAAC,IAAI,EAAE;AACb,IAAI,IAAI,GAAG,GAAG,SAAS,CAAC;AACxB,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK;AAC5B,MAAM,IAAI,IAAI,KAAK,SAAS,EAAE,OAAO,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;AAC7F,MAAM,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;AAC/D,KAAK,EAAC;AACN,IAAI,OAAO,GAAG,IAAI,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC;AACzC,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE;AACnB,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACtD,IAAI,IAAI,GAAG,EAAE;AACb,MAAM,IAAI,KAAK,IAAI,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAC/D,WAAW,OAAO,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3C,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;AACpB,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC;AACjB,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK;AAC5B,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACvC,QAAQ,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAC9D;AACA,QAAQ,IAAI,KAAK,IAAI,SAAS,EAAE,OAAO,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9D,QAAQ,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AACjC,OAAO,MAAM;AACb,QAAQ,IAAI,IAAI,IAAI,GAAG,EAAE;AACzB,UAAU,IAAI,KAAK,IAAI,SAAS,EAAE,OAAO,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;AACzD,UAAU,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;AAC5B,SAAS,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;AACnC,UAAU,IAAI,KAAK,IAAI,SAAS,EAAE,OAAO,GAAG,GAAG,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC;AACrE,UAAU,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACxC,SAAS;AACT,OAAO;AACP,KAAK,EAAC;AACN,IAAI,OAAO,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;AAC5B,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,EAAE,KAAK,CAAC,QAAQ,EAAE;AAClB,IAAI,IAAI,QAAQ,EAAE;AAClB,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK;AAC9B,QAAQ,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;AACtC,OAAO,EAAC;AACR,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,KAAK,CAAC,OAAO,EAAE;AACjB,IAAI,IAAI,GAAG,GAAG,SAAS,CAAC;AACxB,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK;AAC5B,MAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,OAAO,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAChF;AACA,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK;AAC7C,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;AAC9B,UAAU,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AACnE,SAAS,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;AACrC,UAAU,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AACnE,SAAS,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;AACrC,UAAU,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AAC3E,SAAS,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE;AAC9C,UAAU,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC3C,UAAU,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AACxC,SAAS,MAAM;AACf,UAAU,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACpC,SAAS;AACT,OAAO,CAAC,CAAC;AACT,MAAM,IAAI,GAAG,EAAE,OAAO;AACtB,KAAK,EAAC;AACN;AACA,IAAI,OAAO,GAAG,IAAI,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC;AACzC,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,IAAI,CAAC,GAAG,EAAE;AACZ,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK;AAC5B,MAAM,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,IAAI,cAAc,CAAC;AAChD,KAAK,EAAC;AACN,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,IAAI,CAAC,OAAO,EAAE;AAChB,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK;AAC5B,MAAM,IAAI,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;AACzC,WAAW,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;AACtC,KAAK,EAAC;AACN,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE;AACnB,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;AACnB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,IAAI,IAAI;AACvD,MAAM,IAAI,IAAI,YAAY,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5D,WAAW,IAAI,IAAI,YAAY,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAC;AAC5D,KAAK,EAAC;AACN,IAAI,IAAI,IAAI,CAAC,IAAI,YAAY,QAAQ,EAAE;AACvC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,+DAA+D,CAAC,CAAC,CAAC;AACtF,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK;AACtC,QAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO;AAChC,QAAQ,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/B,OAAO,EAAC;AACR,MAAM,OAAO,IAAI,CAAC;AAClB,KAAK;AACL,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC;AACzC;AACA,MAAM,QAAQ,GAAG;AACjB,QAAQ,KAAK,MAAM,CAAC;AACpB,QAAQ,KAAK,OAAO;AACpB,UAAU,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;AACpC,UAAU,MAAM;AAChB,QAAQ,KAAK,UAAU,CAAC;AACxB,QAAQ,KAAK,QAAQ;AACrB,UAAU,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC;AACrC,UAAU,MAAM;AAChB,QAAQ,KAAK,YAAY,CAAC;AAC1B,QAAQ,KAAK,OAAO;AACpB,UAAU,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;AACtC,UAAU,MAAM;AAChB,QAAQ,KAAK,WAAW,CAAC;AACzB,QAAQ,KAAK,MAAM;AACnB,UAAU,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC;AACrC;AACA,OAAO;AACP,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,KAAK,CAAC,GAAG,EAAE;AACb,IAAI,CAAC,IAAI,CAAC,IAAI,YAAY,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,YAAY,UAAU,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;AACrH,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,MAAM,CAAC,GAAG,EAAE;AACd,IAAI,CAAC,IAAI,CAAC,IAAI,YAAY,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,YAAY,UAAU,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;AACtH,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,WAAW,CAAC,GAAG,IAAI,EAAE;AACvB,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;AACnB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,IAAI;AAC1D,MAAM,IAAI,IAAI,YAAY,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5D,WAAW,IAAI,IAAI,YAAY,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAC;AAC5D,KAAK,EAAC;AACN,IAAI,IAAI,IAAI,CAAC,IAAI,YAAY,QAAQ,EAAE;AACvC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK;AACvD,QAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO;AAChC,QAAQ,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACpC,OAAO,EAAC;AACR,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,CAAC;AACtC,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,MAAM,CAAC,GAAG,EAAE;AACd,IAAI,IAAI,GAAG,EAAE;AACb,MAAM,IAAI,EAAE,GAAG,YAAY,WAAW,CAAC,IAAI,EAAE,GAAG,YAAY,UAAU,CAAC;AACvE,QAAQ,MAAM,IAAI,KAAK;AACvB,UAAU,iFAAiF;AAC3F,SAAS,CAAC;AACV,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK;AAC9B,QAAQ,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACxB,OAAO,EAAC;AACR,MAAM,OAAO,IAAI,CAAC;AAClB,KAAK;AACL,IAAI,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,YAAY,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACxG,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE;AAClB,IAAI,IAAI,GAAG,IAAI,YAAY,UAAU,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACzD,IAAI,IAAI,IAAI,CAAC,IAAI,YAAY,QAAQ,EAAE;AACvC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,0DAA0D,CAAC,CAAC,CAAC;AACjF,MAAM,OAAO,IAAI,CAAC;AAClB,KAAK;AACL,IAAI,IAAI,IAAI,KAAK,WAAW,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;AAC3D,IAAI,QAAQ,KAAK;AACjB,MAAM,KAAK,MAAM;AACjB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC1C,MAAM,KAAK,OAAO;AAClB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAC3C,MAAM;AACN,QAAQ,OAAO,CAAC,KAAK;AACrB,UAAU,CAAC,uBAAuB,EAAE,KAAK,CAAC,mDAAmD,CAAC;AAC9F,SAAS,CAAC;AACV,QAAQ,OAAO,KAAK,CAAC;AACrB,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE;AACnB,IAAI,IAAI,IAAI,EAAE;AACd,MAAM,IAAI,GAAG,GAAG,SAAS,CAAC;AAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;AACxB,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK;AAC9B,QAAQ,IAAI,KAAK,KAAK,SAAS,EAAE,OAAO,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC9D,QAAQ,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;AAChC,OAAO,EAAC;AACR,MAAM,OAAO,GAAG,IAAI,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC;AAC3C,KAAK,MAAM,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,gDAAgD,CAAC,CAAC,CAAC;AACpF,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,EAAE,MAAM,GAAG;AACX,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK;AAC5B,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC;AACnB,KAAK,EAAC;AACN,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;AACrB,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACvB,IAAI,IAAI,MAAM,GAAG,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC;AACxD,IAAI,IAAI,EAAE,GAAG,OAAO,IAAI,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,CAAC;AACtD,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC;AACrB,IAAI,IAAI,OAAO,EAAE,KAAK,UAAU;AAChC,MAAM,OAAO,OAAO,CAAC,KAAK;AAC1B,QAAQ,iFAAiF;AACzF,OAAO,CAAC;AACR;AACA,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,YAAY,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAC;AAC5F;AACA,IAAI,IAAI,QAAQ,GAAG,IAAI,CAAC;AACxB,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,IAAI;AACtB,MAAM,IAAI,MAAM,EAAE;AAClB,QAAQ,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC;AAC3C,UAAU,OAAO,QAAQ,GAAG,GAAG,CAAC;AAChC;AACA,QAAQ,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC;AACzC,UAAU,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;AAClD,QAAQ,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AACnE,OAAO,MAAM;AACb,QAAQ,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK;AACrC,UAAU,GAAG,CAAC,gBAAgB,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AACxC,SAAS,EAAC;AACV,OAAO;AACP,KAAK,EAAC;AACN;AACA,IAAI,IAAI,QAAQ,KAAK,IAAI;AACzB,MAAM,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,6DAA6D,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACxG;AACA,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE;AACd,IAAI,IAAI,KAAK,GAAG,IAAI;AACpB,MAAM,SAAS,GAAG,KAAK,CAAC,aAAa,CAAC;AACtC,IAAI,IAAI,OAAO,EAAE,IAAI,UAAU;AAC/B,MAAM,OAAO,OAAO,CAAC,KAAK;AAC1B,QAAQ,kFAAkF;AAC1F,OAAO,CAAC;AACR,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACvB;AACA,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK;AAC5B,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,mBAAmB,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1D,KAAK,EAAC;AACN;AACA,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,IAAI;AACtB,MAAM,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AAC9B,QAAQ,IAAI,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACrC,QAAQ,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE;AAChC,UAAU,IAAI,EAAE,KAAK,IAAI,CAAC,QAAQ,EAAE;AACpC;AACA,YAAY,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC7B,WAAW;AACX,SAAS;AACT,OAAO;AACP,KAAK,EAAC;AACN,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,OAAO,CAAC,EAAE,EAAE;AACd,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK;AAC5B,MAAM,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AACtC,KAAK,EAAC;AACN,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,IAAI,CAAC,QAAQ,EAAE;AACjB,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;AACnB,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK;AAC5B,MAAM,GAAG,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACrE,KAAK,EAAC;AACN,IAAI,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AAChD,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,KAAK,CAAC,MAAM,EAAE;AAChB,IAAI,IAAI,IAAI,CAAC,IAAI,YAAY,QAAQ,EAAE;AACvC,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;AACpB,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI;AAC9B,QAAQ,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AACtC,OAAO,EAAC;AACR,MAAM,IAAI,MAAM,YAAY,WAAW,IAAI,MAAM,YAAY,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/G,MAAM,OAAO,IAAI,CAAC;AAClB,KAAK,MAAM;AACX,MAAM,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC5C,MAAM,IAAI,MAAM,YAAY,WAAW,IAAI,MAAM,YAAY,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9F,MAAM,OAAO,KAAK,CAAC;AACnB,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,OAAO,CAAC,IAAI,EAAE;AAChB,IAAI,IAAI,GAAG,IAAI,IAAI,QAAQ,CAAC;AAC5B,IAAI,IAAI,IAAI,KAAK,QAAQ;AACzB,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,YAAY,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,qBAAqB,EAAE,CAAC;AACrG,SAAS,IAAI,IAAI,IAAI,OAAO;AAC5B,MAAM,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,YAAY,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;AAC5F,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,qBAAqB,EAAE,IAAI,CAAC,4DAA4D,CAAC,CAAC,CAAC;AAC9G,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,MAAM,CAAC,IAAI,EAAE;AACf,IAAI,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;AACzD,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,YAAY,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAChJ,SAAS,OAAO,CAAC,KAAK,CAAC,CAAC,mCAAmC,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;AACvF,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE;AAC/B,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK;AAC5B,MAAM,IAAI,MAAM,KAAK,SAAS,EAAE;AAChC,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;AACxD,aAAa,GAAG,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;AAC5C,OAAO,MAAM,IAAI,MAAM,KAAK,MAAM,EAAE;AACpC,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,GAAG,CAAC,kBAAkB,EAAE,CAAC;AACtD,aAAa,QAAQ,CAAC,eAAe,EAAE,CAAC;AACxC,OAAO;AACP,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE,IAAI,QAAQ,GAAG;AACjB,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,YAAY,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC;AAC5F,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,KAAK,CAAC,KAAK,EAAE;AACf,IAAI,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,YAAY,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7E,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;AACvD,IAAI,IAAI,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACzD,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,GAAG,CAAC,KAAK,EAAE;AACb,IAAI,IAAI,KAAK,IAAI,SAAS,EAAE,CAAC,IAAI,CAAC,IAAI,YAAY,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;AAClL,SAAS;AACT,MAAM,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,YAAY,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/E,MAAM,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACxD,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,SAAS,CAAC,IAAI,EAAE;AAClB,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;AACtB,IAAI,IAAI;AACR,MAAM,MAAM,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC;AAC9C,KAAK,GAAG,IAAI,CAAC;AACb,IAAI,IAAI,IAAI,CAAC,IAAI,YAAY,WAAW,EAAE;AAC1C,MAAM,IAAI,GAAG,GAAG;AAChB,QAAQ,IAAI,EAAE,EAAE;AAChB,QAAQ,GAAG,EAAE,EAAE;AACf,QAAQ,EAAE,EAAE,IAAI,QAAQ,EAAE;AAC1B,OAAO,CAAC;AACR,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,SAAS,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK;AAC7B,UAAU,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;AAClD,UAAU,IAAI,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,WAAW,CAAC;AACnD,UAAU,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,UAAU,EAAE,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACxE;AACA,UAAU,IAAI,GAAG,CAAC,IAAI,IAAI,MAAM;AAChC,YAAY,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI;AACtC,cAAc,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACxC,aAAa,EAAC;AACd,eAAe;AACf,YAAY,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;AACnC,YAAY,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACvC,WAAW;AACX,SAAS,EAAC;AACV;AACA,MAAM,GAAG,CAAC,GAAG,GAAG,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;AACzD,MAAM,OAAO,GAAG,CAAC;AACjB,KAAK,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,yDAAyD,CAAC,CAAC,CAAC;AACrF,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE;AAC1B,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,OAAO,IAAI,UAAU;AACxE,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;AACtC,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE;AAC3B;AACA;AACA;AACA,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;AACnB,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC;AAC1C,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK;AAC1B,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;AAC/C,KAAK,EAAC;AACN,IAAI,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AAChD,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,QAAQ,GAAG;AACb,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;AACnB,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK;AACvB,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/D,QAAQ,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACjD,QAAQ,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjD,OAAO;AACP;AACA,KAAK,EAAC;AACN,IAAI,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AAChD,GAAG;AACH,CACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;AAC5B,EAAE,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,OAAO,EAAE;AACjF,IAAI,IAAI,CAAC,KAAK,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,gFAAgF,CAAC,CAAC;AACvH;AACA,IAAI,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACzB,IAAI,IAAI,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC;AAC5B,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC;AACd,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC/D;AACA,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE;AAC3B,MAAM,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;AAC1B,KAAK,CAAC,CAAC;AACP;AACA,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAClC;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,CAAC,KAAK,KAAK;AACtB,MAAM,IAAI,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AAC/C;AACA,MAAM,IAAI,CAAC,OAAO,GAAG,UAAU,KAAK,GAAG,EAAE,EAAE;AAC3C,QAAQ,IAAI,GAAG,GAAG,KAAK,CAAC,OAAO,KAAK,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;AACzD,QAAQ,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;AAC/B,UAAU,IAAI,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvE,YAAY,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7C,SAAS,CAAC,CAAC;AACX,QAAQ,OAAO,IAAI,CAAC;AACpB,OAAO,CAAC;AACR,MAAM,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACjC,KAAK,CAAC;AACN,GAAG,MAAM,OAAO,IAAI,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AAChD,CAAC;AACD;AACA;AACA;AACA,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;AACb,MAAM,CAAC,UAAU,GAAG,UAAU;;;;;"}
|
package/dist/eye.esm.js
CHANGED
|
@@ -366,7 +366,6 @@ function cmcl(parent, layer) {
|
|
|
366
366
|
|
|
367
367
|
let delegationEvents = ["click", "dblclick", "submit", "input", "change", "keydown", "keyup", "keypress", "focusin", "focusout", "mousedown", "mouseup", "mousemove", "contextmenu", "auxclick", "wheel", "mouseover", "mouseout", "pointerdown", "pointerup", "pointermove", "pointerover", "pointerout", "gotpointercapture", "lostpointercapture", "pointercancel"];
|
|
368
368
|
let normalSetterGetter = (action, v, elm) => v;
|
|
369
|
-
window.addEventListener('point');
|
|
370
369
|
|
|
371
370
|
/**
|
|
372
371
|
* Eye wrapper offers a subset of functions that ease DOM minipulation! Power of JQuery with
|
|
@@ -508,11 +507,30 @@ class EyeElement {
|
|
|
508
507
|
* @returns {EyeElement}
|
|
509
508
|
*/
|
|
510
509
|
each(cb) {
|
|
511
|
-
(this.#raw instanceof NodeList ? [...this.#raw.entries()] : [[0, this.#raw]])
|
|
512
|
-
|
|
513
|
-
|
|
510
|
+
let list = (this.#raw instanceof NodeList ? [...this.#raw.entries()] : [[0, this.#raw]]);
|
|
511
|
+
for (let i = 0; i < list.length; i++) {
|
|
512
|
+
const [idx, elm] = list[i];
|
|
513
|
+
let exit = cb(elm, idx, this);
|
|
514
|
+
if (exit === false) break;
|
|
515
|
+
}
|
|
514
516
|
return this;
|
|
515
517
|
}
|
|
518
|
+
/**
|
|
519
|
+
* Run(loop) through selected NodeList's children.
|
|
520
|
+
* @param {(elm: HTMLElement, index: number, parent: HTMLElement, Object: EyeElement)=>{}} cb
|
|
521
|
+
* @returns {EyeElement}
|
|
522
|
+
*/
|
|
523
|
+
eachChild(cb) {
|
|
524
|
+
let _this = this;
|
|
525
|
+
return this.each(function (elm, i, parent) {
|
|
526
|
+
let exit = true;
|
|
527
|
+
for (let j = 0; j < elm.children.length; j++) {
|
|
528
|
+
exit = cb(elm.children[j], j, elm, _this);
|
|
529
|
+
if (exit === false) break;
|
|
530
|
+
}
|
|
531
|
+
if (exit === false) return;
|
|
532
|
+
})
|
|
533
|
+
}
|
|
516
534
|
/**
|
|
517
535
|
* Set or get element html
|
|
518
536
|
* @method EyeElement#html
|