eyjs 7.1.4 → 7.1.6
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 +4 -46
- package/dist/eye.cjs.js +14 -8
- package/dist/eye.cjs.js.map +1 -1
- package/dist/eye.esm.js +14 -8
- package/dist/eye.esm.js.map +1 -1
- package/dist/eye.umd.js +14 -8
- 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 +14 -8
- package/src/eye.min.js +1 -1
package/changelog.md
CHANGED
|
@@ -1,110 +1,89 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [7.1.6] - 2025-11-06
|
|
4
|
+
### Added
|
|
5
|
+
- `.after` and `.before` now either append or return the element lies after/next or before/previous.
|
|
6
|
+
|
|
3
7
|
## [7.1.4] - 2025-10-14
|
|
4
8
|
|
|
5
9
|
### Fixed
|
|
6
|
-
|
|
7
10
|
- some properties inside `attr` are not being applied.
|
|
8
11
|
|
|
9
12
|
## [7.1.3] - 2025-10-07
|
|
10
13
|
|
|
11
14
|
### Fixed
|
|
12
|
-
|
|
13
15
|
- `.childlen` attribute not working, fixed.
|
|
14
16
|
- `.after` `.before` functions don't work with EyeElement, fixed.
|
|
15
17
|
|
|
16
18
|
## [7.1.1] - 2025-10-01
|
|
17
19
|
|
|
18
20
|
### Changed
|
|
19
|
-
|
|
20
21
|
- `.append` function only affect first selected element, also fixed to accept multiple selected element using `e` function.
|
|
21
22
|
- functions now only affect first selected element in general.
|
|
22
23
|
- library had been re-structured better.
|
|
23
24
|
|
|
24
25
|
### Added
|
|
25
|
-
|
|
26
26
|
- `e` our dear library now accepts arrays of elements like `e([HTMLDivElement, HTMLSpanElement, HTMLInputElement...])`
|
|
27
27
|
- `.css` function may accept only numbers for properties such as `width` `height` `left` `top`...
|
|
28
28
|
|
|
29
29
|
## [7.0.0] - 2025-09-01
|
|
30
|
-
|
|
31
30
|
### Changed
|
|
32
|
-
|
|
33
31
|
- the function now may return null for not found selectors, instead of empty eye element.
|
|
34
32
|
|
|
35
33
|
### Added
|
|
36
|
-
|
|
37
34
|
- new param `clone` in `.parent` function that allows you to append a clone of the element!
|
|
38
35
|
|
|
39
36
|
## [6.2.0] - 2025-08-25
|
|
40
37
|
|
|
41
38
|
### Changed
|
|
42
|
-
|
|
43
39
|
- `.each` function can be interrupted from inside by returning false in the function.
|
|
44
40
|
|
|
45
41
|
### Added
|
|
46
|
-
|
|
47
42
|
- new `.eachChild` function to loop through selected elements children, also can be interupted by returning false.
|
|
48
43
|
|
|
49
44
|
## [6.1.2] - 2025-08-17
|
|
50
|
-
|
|
51
45
|
### Changed
|
|
52
|
-
|
|
53
46
|
- added more delegation events `dblclick`, `pointerevents` & more `mouseevents`...
|
|
54
47
|
|
|
55
48
|
### Added
|
|
56
|
-
|
|
57
49
|
- new `position` function, to find element position within parent element
|
|
58
50
|
|
|
59
51
|
## [6.0.2] - 2025-08-01
|
|
60
|
-
|
|
61
52
|
### Changed
|
|
62
|
-
|
|
63
53
|
- Better documentation for `.find` function
|
|
64
54
|
|
|
65
55
|
### Fixed
|
|
66
|
-
|
|
67
56
|
- when using `.class` to add simple classes the first character of each class get trimmed, Fixed.
|
|
68
57
|
|
|
69
58
|
## [6.0.1] - 2025-07-30
|
|
70
|
-
|
|
71
59
|
### Changed
|
|
72
|
-
|
|
73
60
|
- `EyeElement` is also exported to help you better document your code using VSDocs
|
|
74
61
|
|
|
75
62
|
### Fixed
|
|
76
|
-
|
|
77
63
|
- using `.class("class1/class2")` shows error undefined variable v1 or v2, Fixed!
|
|
78
64
|
|
|
79
65
|
## [6.0.0] - 2025-07-30
|
|
80
|
-
|
|
81
66
|
### Changed
|
|
82
|
-
|
|
83
67
|
- Library name changed to `eyjs`
|
|
84
68
|
- main function name changed to `e` instead of `eye`
|
|
85
69
|
- `after` `before` function now accepts both HTMLElement & EyeElement
|
|
86
70
|
|
|
87
71
|
### Added
|
|
88
|
-
|
|
89
72
|
- new `childlen` attribute to get children length
|
|
90
73
|
- new `rAttr` function to remove attribute of an element
|
|
91
74
|
- new `client` function to access client attributes such as "clientWidth" "clientLeft" ..
|
|
92
75
|
- `.append` now also accepts new possible `pos` options `first`|`afterbegin` `last`|`beforeend`
|
|
93
76
|
|
|
94
77
|
### Fixed
|
|
95
|
-
|
|
96
78
|
- fixed error when using `.animate` function
|
|
97
79
|
|
|
98
80
|
## [5.0.0] - 2025-07-21
|
|
99
|
-
|
|
100
81
|
### Changed
|
|
101
|
-
|
|
102
82
|
- library now uses ES6 class definition.
|
|
103
83
|
- `.find` function `multiple` parameter is removed, also it return an HTMLElement instead of EyeElement, and an array if many selectors were found.
|
|
104
84
|
- cloning a new model will return EyeElement instead of HTMLDivElement.
|
|
105
85
|
|
|
106
86
|
## [4.0.4] - 2025-07-18
|
|
107
|
-
|
|
108
87
|
### Changed
|
|
109
88
|
|
|
110
89
|
- the libarary behavior changed now, instead of created element by directly puting them as `eye("div")`, now you do `eye("<div>")` instead for all elements ofc.
|
|
@@ -112,69 +91,51 @@
|
|
|
112
91
|
- `.animate` function now can return a direct animation object if selection is single.
|
|
113
92
|
|
|
114
93
|
## [3.4.1] - 2025-07-16
|
|
115
|
-
|
|
116
94
|
### Changed
|
|
117
|
-
|
|
118
95
|
- `.pointer` function only effect the first element of a collection
|
|
119
96
|
- better commentation and params definition
|
|
120
97
|
|
|
121
98
|
## [3.4.0] - 2025-07-16
|
|
122
|
-
|
|
123
99
|
### Added
|
|
124
|
-
|
|
125
100
|
- new `.after` function
|
|
126
101
|
- new `.before` function
|
|
127
102
|
- new `.animate` function
|
|
128
103
|
|
|
129
104
|
## [3.3.4] - 2025-07-11
|
|
130
|
-
|
|
131
105
|
### Fixed
|
|
132
|
-
|
|
133
106
|
- error when using `.data`, fixed!
|
|
134
107
|
|
|
135
108
|
## [3.3.2] - 2025-07-10
|
|
136
|
-
|
|
137
109
|
### Fixed
|
|
138
110
|
|
|
139
111
|
- fixed `.html` `.text` and `.val` to accept empty strings two!
|
|
140
112
|
|
|
141
113
|
## [3.3.0] - 2025-07-009
|
|
142
|
-
|
|
143
114
|
### Added
|
|
144
|
-
|
|
145
115
|
- new `.redefine` function that redefine how to set/get or use `.text` and `.val` in general
|
|
146
116
|
|
|
147
117
|
### Fixed
|
|
148
|
-
|
|
149
118
|
- Accessing children length is now possible using empty/parameterless call of `.child`
|
|
150
119
|
|
|
151
120
|
## [3.2.0] - 2025-07-08
|
|
152
|
-
|
|
153
121
|
### Added
|
|
154
|
-
|
|
155
122
|
- new `.serialize` function for form elements, check out [READM.md](./readme.md) for tutorial
|
|
156
123
|
|
|
157
124
|
### Fixed
|
|
158
|
-
|
|
159
125
|
- PROBLEM: `.append` function not accepting EyeElement as parameter(only accept pure HTMLElements), now accepts both.
|
|
160
126
|
- PROBLEM: `.replaceWith` also accepts HTMLElements only, fixed to accept Eye elements too.
|
|
161
127
|
- PROBLEM: `.is` only accepts HTMLElement, fixed to accept EyeElement too.
|
|
162
128
|
|
|
163
129
|
## [3.1.1] - 2025-07-07
|
|
164
|
-
|
|
165
130
|
### Added
|
|
166
|
-
|
|
167
131
|
- function `val` added for supporting inputs manipulation
|
|
168
132
|
- function `child` added for child selection
|
|
169
133
|
|
|
170
134
|
### Fixed
|
|
171
|
-
|
|
172
135
|
- function `css` now accept empty string value to remove style!
|
|
173
136
|
|
|
174
137
|
## [3.0.1] - 2025-07-04
|
|
175
|
-
|
|
176
138
|
### Added
|
|
177
|
-
|
|
178
139
|
- new `.append` function with flexible `pos` to expand wide range of opportunities
|
|
179
140
|
- new `.replaceWith` function
|
|
180
141
|
- new `.parent` set/get function
|
|
@@ -188,7 +149,6 @@
|
|
|
188
149
|
- new `.pointer` function to unleash the PointerLock API and pointerCapture features
|
|
189
150
|
|
|
190
151
|
### Changed
|
|
191
|
-
|
|
192
152
|
- a better modern core wrapper.
|
|
193
153
|
- library now support processing multiple selection at once.
|
|
194
154
|
- `.on` function now support targeted callbacks for event delegation.
|
|
@@ -197,13 +157,11 @@
|
|
|
197
157
|
- main function `eye` now support multi selection with [optional] "!" at the end of the selector to perform first occurence only.
|
|
198
158
|
|
|
199
159
|
## [2.1.1] - 2025-07-01
|
|
200
|
-
|
|
201
160
|
**Breaking News!**
|
|
202
161
|
|
|
203
162
|
we've added a new feature in our little library!
|
|
204
163
|
|
|
205
164
|
### Added
|
|
206
|
-
|
|
207
165
|
- introducing a new feature `model`, where you can create models and use them multiple times around your code, without having to create the whole shit over and over, similar to react components but with less muli-files headache(check out readme.md to more tutorial of how to use).
|
|
208
166
|
|
|
209
167
|
- `class` attribute now can accept a string concatenation of classes beside an array of them, so instead of `eye("div",{ class: ["class1","class2"]})` you can do `eye("div",{ class: "class1 class2" })`.
|
package/dist/eye.cjs.js
CHANGED
|
@@ -722,23 +722,29 @@ class EyeElement {
|
|
|
722
722
|
return this;
|
|
723
723
|
}
|
|
724
724
|
/**
|
|
725
|
-
* Insert element after this one
|
|
725
|
+
* Insert element after this one, or return the one lies there
|
|
726
726
|
* @method EyeElement#after
|
|
727
727
|
* @param {EyeElement|HTMLElement} elm
|
|
728
|
-
* @
|
|
728
|
+
* @param {AttrMap} attr
|
|
729
|
+
* @returns {EyeElement|HTMLElement}
|
|
729
730
|
*/
|
|
730
|
-
after(elm) {
|
|
731
|
-
|
|
731
|
+
after(elm, attr) {
|
|
732
|
+
if (elm)
|
|
733
|
+
this.#raw[0].after(elm instanceof EyeElement ? elm.raw[0] : elm);
|
|
734
|
+
else return this.#raw[0].nextElementSibling ? e(this.#raw[0].nextElementSibling, attr) : null;
|
|
732
735
|
return this;
|
|
733
736
|
}
|
|
734
737
|
/**
|
|
735
|
-
* Insert element before this one
|
|
738
|
+
* Insert element before this one, or return the one lies there
|
|
736
739
|
* @method EyeElement#before
|
|
737
740
|
* @param {EyeElement|HTMLElement} elm
|
|
738
|
-
* @
|
|
741
|
+
* @param {AttrMap} attr
|
|
742
|
+
* @returns {EyeElement|HTMLElement}
|
|
739
743
|
*/
|
|
740
|
-
before(elm) {
|
|
741
|
-
|
|
744
|
+
before(elm, attr) {
|
|
745
|
+
if (elm)
|
|
746
|
+
this.#raw[0].before(elm instanceof EyeElement ? elm.raw[0] : elm);
|
|
747
|
+
else return this.#raw[0].previousElementSibling ? e(this.#raw[0].previousElementSibling, attr) : null
|
|
742
748
|
return this;
|
|
743
749
|
}
|
|
744
750
|
/**
|
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\nconst unitlessProps = new Set([\r\n \"opacity\", \"zIndex\", \"fontWeight\", \"lineHeight\",\r\n \"flex\", \"flexGrow\", \"flexShrink\", \"order\"\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 {Array<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 if (Array.isArray(selector)) {\r\n this.#raw = [];\r\n selector.forEach((a) => {\r\n if (a instanceof EyeElement) _this.#raw = _this.#raw.concat(...a.raw);\r\n else if (a instanceof HTMLElement) _this.#raw.push(a);\r\n })\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\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, value); // 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 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.length;\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 for (let i = 0; i < this.#raw.length; i++) {\r\n const elm = this.#raw[i];\r\n let exit = cb(elm, i, 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, only effect the first element in the selected list\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 (Array.isArray(elm) ? elm : [elm]).forEach(item => {\r\n let nodes = [];\r\n if (item instanceof EyeElement) nodes = [...item.raw];\r\n else if (item instanceof HTMLElement) nodes = [item];\r\n\r\n nodes.forEach(node => {\r\n switch (pos) {\r\n case \"next\":\r\n case \"after\":\r\n this.#raw[0].after(node);\r\n break;\r\n case \"previous\":\r\n case \"before\":\r\n this.#raw[0].before(node);\r\n break;\r\n case \"afterbegin\":\r\n case \"first\":\r\n this.#raw[0].prepend(node);\r\n break;\r\n case \"beforeend\":\r\n case \"last\":\r\n default:\r\n this.#raw[0].append(node);\r\n }\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[0].after(elm instanceof EyeElement ? elm.raw[0] : 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[0].before(elm instanceof EyeElement ? elm.raw[0] : 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 = nodes.concat(...item.raw);\r\n else if (item instanceof HTMLElement) nodes.push(item)\r\n })\r\n this.#raw[0].replaceWith(...nodes);\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} parent\r\n * @param {boolean} clone [true] append clones of the elements\r\n * @returns {EyeElement}\r\n */\r\n parent(parent, clone) {\r\n if (parent) {\r\n if (!(parent instanceof HTMLElement) && !(parent 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 => {\r\n parent.append(clone === true ? elm.cloneNode(true) : elm);\r\n })\r\n return this;\r\n }\r\n return e(this.#raw[0].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[0] : node;\r\n if (node === \"connected\") return this.#raw[0].isConnected;\r\n switch (check) {\r\n case \"same\":\r\n return this.#raw[0].isSameNode(node);\r\n case \"equal\":\r\n return this.#raw[0].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 if (!unitlessProps.has(attr) && typeof value === \"number\" && value != 0) value = `${value}px`;\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] missing 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 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 _this.each((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>}\r\n */\r\n clone(parent) {\r\n let list = [];\r\n this.each((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 }\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[0]).getBoundingClientRect();\r\n else if (type == \"style\")\r\n return getComputedStyle(this.#raw[0])\r\n console.error(`[EyeJS] unknown 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[0][`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[0].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 if (index === undefined) return this.#raw[0].children.length;\r\n if (this.#raw[0].children[index]) return e(this.#raw[0].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.each((a) => a.value = this.#customSet.value(\"set\", value, a));\r\n else return this.#customSet.value(\"get\", this.#raw[0].value, this.#raw[0]);\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 let out = {\r\n json: {},\r\n url: \"\",\r\n fd: new FormData()\r\n };\r\n this.#raw[0].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 }\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 first element position within parent element\r\n * @method EyeElement#position\r\n * @returns {number}\r\n */\r\n position() {\r\n let pos = -1;\r\n for (let i = 0; i < this.#raw[0].parentNode.children.length; i++) {\r\n const child = this.#raw[0].parentNode.children[i];\r\n if (this.#raw[0].isSameNode(child)) {\r\n pos = i;\r\n break;\r\n }\r\n }\r\n return pos;\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 {\r\n let ne = new EyeElement(tag, attrs, css);\r\n return ne.length === 0 ? null : ne;\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\nconst unitlessProps = new Set([\r\n \"opacity\", \"zIndex\", \"fontWeight\", \"lineHeight\",\r\n \"flex\", \"flexGrow\", \"flexShrink\", \"order\"\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 {Array<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 if (Array.isArray(selector)) {\r\n this.#raw = [];\r\n selector.forEach((a) => {\r\n if (a instanceof EyeElement) _this.#raw = _this.#raw.concat(...a.raw);\r\n else if (a instanceof HTMLElement) _this.#raw.push(a);\r\n })\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\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, value); // 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 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.length;\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 for (let i = 0; i < this.#raw.length; i++) {\r\n const elm = this.#raw[i];\r\n let exit = cb(elm, i, 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, only effect the first element in the selected list\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 (Array.isArray(elm) ? elm : [elm]).forEach(item => {\r\n let nodes = [];\r\n if (item instanceof EyeElement) nodes = [...item.raw];\r\n else if (item instanceof HTMLElement) nodes = [item];\r\n\r\n nodes.forEach(node => {\r\n switch (pos) {\r\n case \"next\":\r\n case \"after\":\r\n this.#raw[0].after(node);\r\n break;\r\n case \"previous\":\r\n case \"before\":\r\n this.#raw[0].before(node);\r\n break;\r\n case \"afterbegin\":\r\n case \"first\":\r\n this.#raw[0].prepend(node);\r\n break;\r\n case \"beforeend\":\r\n case \"last\":\r\n default:\r\n this.#raw[0].append(node);\r\n }\r\n })\r\n })\r\n return this;\r\n }\r\n /**\r\n * Insert element after this one, or return the one lies there\r\n * @method EyeElement#after\r\n * @param {EyeElement|HTMLElement} elm \r\n * @param {AttrMap} attr\r\n * @returns {EyeElement|HTMLElement}\r\n */\r\n after(elm, attr) {\r\n if (elm)\r\n this.#raw[0].after(elm instanceof EyeElement ? elm.raw[0] : elm);\r\n else return this.#raw[0].nextElementSibling ? e(this.#raw[0].nextElementSibling, attr) : null;\r\n return this;\r\n }\r\n /**\r\n * Insert element before this one, or return the one lies there\r\n * @method EyeElement#before\r\n * @param {EyeElement|HTMLElement} elm \r\n * @param {AttrMap} attr\r\n * @returns {EyeElement|HTMLElement}\r\n */\r\n before(elm, attr) {\r\n if (elm)\r\n this.#raw[0].before(elm instanceof EyeElement ? elm.raw[0] : elm);\r\n else return this.#raw[0].previousElementSibling ? e(this.#raw[0].previousElementSibling, attr) : null\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 = nodes.concat(...item.raw);\r\n else if (item instanceof HTMLElement) nodes.push(item)\r\n })\r\n this.#raw[0].replaceWith(...nodes);\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} parent\r\n * @param {boolean} clone [true] append clones of the elements\r\n * @returns {EyeElement}\r\n */\r\n parent(parent, clone) {\r\n if (parent) {\r\n if (!(parent instanceof HTMLElement) && !(parent 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 => {\r\n parent.append(clone === true ? elm.cloneNode(true) : elm);\r\n })\r\n return this;\r\n }\r\n return e(this.#raw[0].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[0] : node;\r\n if (node === \"connected\") return this.#raw[0].isConnected;\r\n switch (check) {\r\n case \"same\":\r\n return this.#raw[0].isSameNode(node);\r\n case \"equal\":\r\n return this.#raw[0].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 if (!unitlessProps.has(attr) && typeof value === \"number\" && value != 0) value = `${value}px`;\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] missing 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 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 _this.each((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>}\r\n */\r\n clone(parent) {\r\n let list = [];\r\n this.each((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 }\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[0]).getBoundingClientRect();\r\n else if (type == \"style\")\r\n return getComputedStyle(this.#raw[0])\r\n console.error(`[EyeJS] unknown 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[0][`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[0].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 if (index === undefined) return this.#raw[0].children.length;\r\n if (this.#raw[0].children[index]) return e(this.#raw[0].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.each((a) => a.value = this.#customSet.value(\"set\", value, a));\r\n else return this.#customSet.value(\"get\", this.#raw[0].value, this.#raw[0]);\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 let out = {\r\n json: {},\r\n url: \"\",\r\n fd: new FormData()\r\n };\r\n this.#raw[0].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 }\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 first element position within parent element\r\n * @method EyeElement#position\r\n * @returns {number}\r\n */\r\n position() {\r\n let pos = -1;\r\n for (let i = 0; i < this.#raw[0].parentNode.children.length; i++) {\r\n const child = this.#raw[0].parentNode.children[i];\r\n if (this.#raw[0].isSameNode(child)) {\r\n pos = i;\r\n break;\r\n }\r\n }\r\n return pos;\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 {\r\n let ne = new EyeElement(tag, attrs, css);\r\n return ne.length === 0 ? null : ne;\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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"}
|
package/dist/eye.esm.js
CHANGED
|
@@ -718,23 +718,29 @@ class EyeElement {
|
|
|
718
718
|
return this;
|
|
719
719
|
}
|
|
720
720
|
/**
|
|
721
|
-
* Insert element after this one
|
|
721
|
+
* Insert element after this one, or return the one lies there
|
|
722
722
|
* @method EyeElement#after
|
|
723
723
|
* @param {EyeElement|HTMLElement} elm
|
|
724
|
-
* @
|
|
724
|
+
* @param {AttrMap} attr
|
|
725
|
+
* @returns {EyeElement|HTMLElement}
|
|
725
726
|
*/
|
|
726
|
-
after(elm) {
|
|
727
|
-
|
|
727
|
+
after(elm, attr) {
|
|
728
|
+
if (elm)
|
|
729
|
+
this.#raw[0].after(elm instanceof EyeElement ? elm.raw[0] : elm);
|
|
730
|
+
else return this.#raw[0].nextElementSibling ? e(this.#raw[0].nextElementSibling, attr) : null;
|
|
728
731
|
return this;
|
|
729
732
|
}
|
|
730
733
|
/**
|
|
731
|
-
* Insert element before this one
|
|
734
|
+
* Insert element before this one, or return the one lies there
|
|
732
735
|
* @method EyeElement#before
|
|
733
736
|
* @param {EyeElement|HTMLElement} elm
|
|
734
|
-
* @
|
|
737
|
+
* @param {AttrMap} attr
|
|
738
|
+
* @returns {EyeElement|HTMLElement}
|
|
735
739
|
*/
|
|
736
|
-
before(elm) {
|
|
737
|
-
|
|
740
|
+
before(elm, attr) {
|
|
741
|
+
if (elm)
|
|
742
|
+
this.#raw[0].before(elm instanceof EyeElement ? elm.raw[0] : elm);
|
|
743
|
+
else return this.#raw[0].previousElementSibling ? e(this.#raw[0].previousElementSibling, attr) : null
|
|
738
744
|
return this;
|
|
739
745
|
}
|
|
740
746
|
/**
|