@k37z3r/jbase 2.0.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/LICENSE +621 -0
- package/README.md +124 -0
- package/dist/browser.d.ts +30 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +29 -0
- package/dist/browser.js.map +1 -0
- package/dist/core.d.ts +42 -0
- package/dist/core.d.ts.map +1 -0
- package/dist/core.js +78 -0
- package/dist/core.js.map +1 -0
- package/dist/index.cjs +2150 -0
- package/dist/index.d.ts +1158 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +100 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +2118 -0
- package/dist/jbase.browser.js +1906 -0
- package/dist/jbase.js +1898 -0
- package/dist/jbase.min.js +9 -0
- package/dist/modules/css/classes.d.ts +61 -0
- package/dist/modules/css/classes.d.ts.map +1 -0
- package/dist/modules/css/classes.js +88 -0
- package/dist/modules/css/classes.js.map +1 -0
- package/dist/modules/css/index.d.ts +30 -0
- package/dist/modules/css/index.d.ts.map +1 -0
- package/dist/modules/css/index.js +33 -0
- package/dist/modules/css/index.js.map +1 -0
- package/dist/modules/css/styles.d.ts +31 -0
- package/dist/modules/css/styles.d.ts.map +1 -0
- package/dist/modules/css/styles.js +49 -0
- package/dist/modules/css/styles.js.map +1 -0
- package/dist/modules/data/arrays.d.ts +131 -0
- package/dist/modules/data/arrays.d.ts.map +1 -0
- package/dist/modules/data/arrays.js +177 -0
- package/dist/modules/data/arrays.js.map +1 -0
- package/dist/modules/data/index.d.ts +29 -0
- package/dist/modules/data/index.d.ts.map +1 -0
- package/dist/modules/data/index.js +33 -0
- package/dist/modules/data/index.js.map +1 -0
- package/dist/modules/data/objects.d.ts +108 -0
- package/dist/modules/data/objects.d.ts.map +1 -0
- package/dist/modules/data/objects.js +168 -0
- package/dist/modules/data/objects.js.map +1 -0
- package/dist/modules/data/types.d.ts +35 -0
- package/dist/modules/data/types.d.ts.map +1 -0
- package/dist/modules/data/types.js +43 -0
- package/dist/modules/data/types.js.map +1 -0
- package/dist/modules/dom/attributes.d.ts +42 -0
- package/dist/modules/dom/attributes.d.ts.map +1 -0
- package/dist/modules/dom/attributes.js +69 -0
- package/dist/modules/dom/attributes.js.map +1 -0
- package/dist/modules/dom/content.d.ts +39 -0
- package/dist/modules/dom/content.d.ts.map +1 -0
- package/dist/modules/dom/content.js +63 -0
- package/dist/modules/dom/content.js.map +1 -0
- package/dist/modules/dom/index.d.ts +78 -0
- package/dist/modules/dom/index.d.ts.map +1 -0
- package/dist/modules/dom/index.js +48 -0
- package/dist/modules/dom/index.js.map +1 -0
- package/dist/modules/dom/manipulation.d.ts +159 -0
- package/dist/modules/dom/manipulation.d.ts.map +1 -0
- package/dist/modules/dom/manipulation.js +343 -0
- package/dist/modules/dom/manipulation.js.map +1 -0
- package/dist/modules/dom/states.d.ts +50 -0
- package/dist/modules/dom/states.d.ts.map +1 -0
- package/dist/modules/dom/states.js +89 -0
- package/dist/modules/dom/states.js.map +1 -0
- package/dist/modules/dom/traversal.d.ts +246 -0
- package/dist/modules/dom/traversal.d.ts.map +1 -0
- package/dist/modules/dom/traversal.js +527 -0
- package/dist/modules/dom/traversal.js.map +1 -0
- package/dist/modules/effects/fade.d.ts +58 -0
- package/dist/modules/effects/fade.d.ts.map +1 -0
- package/dist/modules/effects/fade.js +104 -0
- package/dist/modules/effects/fade.js.map +1 -0
- package/dist/modules/effects/index.d.ts +40 -0
- package/dist/modules/effects/index.d.ts.map +1 -0
- package/dist/modules/effects/index.js +38 -0
- package/dist/modules/effects/index.js.map +1 -0
- package/dist/modules/effects/slide.d.ts +58 -0
- package/dist/modules/effects/slide.d.ts.map +1 -0
- package/dist/modules/effects/slide.js +103 -0
- package/dist/modules/effects/slide.js.map +1 -0
- package/dist/modules/effects/vertical.d.ts +58 -0
- package/dist/modules/effects/vertical.d.ts.map +1 -0
- package/dist/modules/effects/vertical.js +118 -0
- package/dist/modules/effects/vertical.js.map +1 -0
- package/dist/modules/events/binding.d.ts +47 -0
- package/dist/modules/events/binding.d.ts.map +1 -0
- package/dist/modules/events/binding.js +60 -0
- package/dist/modules/events/binding.js.map +1 -0
- package/dist/modules/events/form.d.ts +72 -0
- package/dist/modules/events/form.d.ts.map +1 -0
- package/dist/modules/events/form.js +106 -0
- package/dist/modules/events/form.js.map +1 -0
- package/dist/modules/events/index.d.ts +62 -0
- package/dist/modules/events/index.d.ts.map +1 -0
- package/dist/modules/events/index.js +53 -0
- package/dist/modules/events/index.js.map +1 -0
- package/dist/modules/events/keyboard.d.ts +65 -0
- package/dist/modules/events/keyboard.d.ts.map +1 -0
- package/dist/modules/events/keyboard.js +83 -0
- package/dist/modules/events/keyboard.js.map +1 -0
- package/dist/modules/events/lifecycle.d.ts +28 -0
- package/dist/modules/events/lifecycle.d.ts.map +1 -0
- package/dist/modules/events/lifecycle.js +40 -0
- package/dist/modules/events/lifecycle.js.map +1 -0
- package/dist/modules/events/mouse.d.ts +120 -0
- package/dist/modules/events/mouse.d.ts.map +1 -0
- package/dist/modules/events/mouse.js +172 -0
- package/dist/modules/events/mouse.js.map +1 -0
- package/dist/modules/events/touch.d.ts +61 -0
- package/dist/modules/events/touch.d.ts.map +1 -0
- package/dist/modules/events/touch.js +74 -0
- package/dist/modules/events/touch.js.map +1 -0
- package/dist/modules/http/get.d.ts +47 -0
- package/dist/modules/http/get.d.ts.map +1 -0
- package/dist/modules/http/get.js +65 -0
- package/dist/modules/http/get.js.map +1 -0
- package/dist/modules/http/index.d.ts +37 -0
- package/dist/modules/http/index.d.ts.map +1 -0
- package/dist/modules/http/index.js +42 -0
- package/dist/modules/http/index.js.map +1 -0
- package/dist/modules/http/post.d.ts +36 -0
- package/dist/modules/http/post.d.ts.map +1 -0
- package/dist/modules/http/post.js +54 -0
- package/dist/modules/http/post.js.map +1 -0
- package/dist/types.d.ts +61 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +15 -0
- package/dist/types.js.map +1 -0
- package/dist/utils.d.ts +51 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +71 -0
- package/dist/utils.js.map +1 -0
- package/package.json +58 -0
|
@@ -0,0 +1,343 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @file src/modules/dom/manipulation.ts
|
|
4
|
+
* @version 2.0.0
|
|
5
|
+
* @since 2.0.0
|
|
6
|
+
* @license GPL-3.0-or-later
|
|
7
|
+
* @copyright Sven Minio 2026
|
|
8
|
+
* @author Sven Minio <https://sven-minio.de>
|
|
9
|
+
* @category DOM
|
|
10
|
+
* @description
|
|
11
|
+
* * 🇬🇧: Methods for inserting, moving, and removing elements (append, prepend, remove).
|
|
12
|
+
* * 🇩🇪: Methoden zum Einfügen, Verschieben und Entfernen von Elementen (append, prepend, remove).
|
|
13
|
+
* @requires ../../core
|
|
14
|
+
* * 🇬🇧: Depends on the core jBase class for type definitions.
|
|
15
|
+
* * 🇩🇪: Hängt von der Core-jBase-Klasse für Typ-Definitionen ab.
|
|
16
|
+
*/
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.remove = remove;
|
|
19
|
+
exports.empty = empty;
|
|
20
|
+
exports.replaceWithClone = replaceWithClone;
|
|
21
|
+
exports.append = append;
|
|
22
|
+
exports.prepend = prepend;
|
|
23
|
+
exports.before = before;
|
|
24
|
+
exports.after = after;
|
|
25
|
+
exports.replaceWith = replaceWith;
|
|
26
|
+
exports.appendTo = appendTo;
|
|
27
|
+
exports.prependTo = prependTo;
|
|
28
|
+
exports.insertBefore = insertBefore;
|
|
29
|
+
exports.insertAfter = insertAfter;
|
|
30
|
+
exports.wrap = wrap;
|
|
31
|
+
exports.unwrap = unwrap;
|
|
32
|
+
const core_1 = require("../../core");
|
|
33
|
+
/**
|
|
34
|
+
* * 🇬🇧: Internal Helper: Converts a string into a DOM Node.
|
|
35
|
+
* * 🇩🇪: Interner Helper: Wandelt einen String in eine DOM Node um.
|
|
36
|
+
*/
|
|
37
|
+
function parseHTML(html) {
|
|
38
|
+
const tmp = document.createElement('div');
|
|
39
|
+
tmp.innerHTML = html.trim();
|
|
40
|
+
return tmp.firstElementChild;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* * 🇬🇧: Internal Helper: Converts arbitrary input into a DocumentFragment to minimize reflows.
|
|
44
|
+
* * 🇩🇪: Interner Helper: Wandelt beliebigen Input in ein DocumentFragment um, um Reflows zu minimieren.
|
|
45
|
+
*/
|
|
46
|
+
function normalizeToFragment(content) {
|
|
47
|
+
const fragment = document.createDocumentFragment();
|
|
48
|
+
const add = (item) => {
|
|
49
|
+
if (typeof item === 'string') {
|
|
50
|
+
const temp = document.createElement('div');
|
|
51
|
+
temp.innerHTML = item.trim();
|
|
52
|
+
while (temp.firstChild) {
|
|
53
|
+
fragment.appendChild(temp.firstChild);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
else if (item instanceof Node) {
|
|
57
|
+
fragment.appendChild(item);
|
|
58
|
+
}
|
|
59
|
+
else if (item instanceof core_1.jBase || Array.isArray(item) || item instanceof NodeList) {
|
|
60
|
+
Array.from(item).forEach(child => add(child));
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
add(content);
|
|
64
|
+
return fragment;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* * 🇬🇧: Removes the selected elements from the DOM.
|
|
68
|
+
* * 🇩🇪: Entfernt die ausgewählten Elemente vollständig aus dem DOM.
|
|
69
|
+
* @returns
|
|
70
|
+
* * 🇬🇧: The current jBase instance.
|
|
71
|
+
* * 🇩🇪: Die aktuelle jBase-Instanz.
|
|
72
|
+
*/
|
|
73
|
+
function remove() {
|
|
74
|
+
this.forEach(el => {
|
|
75
|
+
if (el instanceof Element)
|
|
76
|
+
el.remove();
|
|
77
|
+
});
|
|
78
|
+
return this;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* * 🇬🇧: Removes all child nodes and text content from the selected elements.
|
|
82
|
+
* * 🇩🇪: Entfernt alle Kind-Elemente und Textknoten aus den ausgewählten Elementen.
|
|
83
|
+
* @returns
|
|
84
|
+
* * 🇬🇧: The current jBase instance.
|
|
85
|
+
* * 🇩🇪: Die aktuelle jBase-Instanz.
|
|
86
|
+
*/
|
|
87
|
+
function empty() {
|
|
88
|
+
this.forEach(el => {
|
|
89
|
+
if (el instanceof Element)
|
|
90
|
+
el.innerHTML = '';
|
|
91
|
+
});
|
|
92
|
+
return this;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* * 🇬🇧: Replaces each element with a deep clone of itself. Useful for removing all event listeners ("Nuke" strategy).
|
|
96
|
+
* * 🇩🇪: Ersetzt jedes Element durch eine tiefe Kopie seiner selbst. Nützlich, um alle Event-Listener hart zu entfernen.
|
|
97
|
+
* @returns
|
|
98
|
+
* * 🇬🇧: A new jBase instance containing the cloned elements.
|
|
99
|
+
* * 🇩🇪: Eine neue jBase-Instanz, die die geklonten Elemente enthält.
|
|
100
|
+
*/
|
|
101
|
+
function replaceWithClone() {
|
|
102
|
+
const newElements = [];
|
|
103
|
+
this.forEach(el => {
|
|
104
|
+
if (el instanceof Element) {
|
|
105
|
+
const clone = el.cloneNode(true);
|
|
106
|
+
el.replaceWith(clone);
|
|
107
|
+
newElements.push(clone);
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
return new this.constructor(newElements);
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* * 🇬🇧: Inserts content at the end of each selected element (inside).
|
|
114
|
+
* * 🇩🇪: Fügt Inhalt am Ende jedes Elements in der Sammlung ein (innerhalb).
|
|
115
|
+
* @param content
|
|
116
|
+
* * 🇬🇧: HTML string, DOM Node, or jBase collection.
|
|
117
|
+
* * 🇩🇪: HTML-String, DOM-Node oder jBase-Sammlung.
|
|
118
|
+
* @returns
|
|
119
|
+
* * 🇬🇧: The current jBase instance.
|
|
120
|
+
* * 🇩🇪: Die aktuelle jBase-Instanz.
|
|
121
|
+
*/
|
|
122
|
+
function append(content) {
|
|
123
|
+
const fragment = normalizeToFragment(content);
|
|
124
|
+
this.forEach((el, i) => {
|
|
125
|
+
if (el instanceof Element) {
|
|
126
|
+
// Clone fragment for multiple targets, retain original for the last one
|
|
127
|
+
const contentToInsert = (i < this.length - 1) ? fragment.cloneNode(true) : fragment;
|
|
128
|
+
el.appendChild(contentToInsert);
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
return this;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* * 🇬🇧: Inserts content at the beginning of each selected element (inside).
|
|
135
|
+
* * 🇩🇪: Fügt Inhalt am Anfang jedes Elements in der Sammlung ein (innerhalb).
|
|
136
|
+
* @param content
|
|
137
|
+
* * 🇬🇧: HTML string, DOM Node, or jBase collection.
|
|
138
|
+
* * 🇩🇪: HTML-String, DOM-Node oder jBase-Sammlung.
|
|
139
|
+
* @returns
|
|
140
|
+
* * 🇬🇧: The current jBase instance.
|
|
141
|
+
* * 🇩🇪: Die aktuelle jBase-Instanz.
|
|
142
|
+
*/
|
|
143
|
+
function prepend(content) {
|
|
144
|
+
const fragment = normalizeToFragment(content);
|
|
145
|
+
this.forEach((el, i) => {
|
|
146
|
+
if (el instanceof Element) {
|
|
147
|
+
const contentToInsert = (i < this.length - 1) ? fragment.cloneNode(true) : fragment;
|
|
148
|
+
el.prepend(contentToInsert);
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
return this;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* * 🇬🇧: Inserts content before the element (outside).
|
|
155
|
+
* * 🇩🇪: Fügt Inhalt VOR dem Element ein (außerhalb).
|
|
156
|
+
* @param content
|
|
157
|
+
* * 🇬🇧: HTML string, DOM Node, or jBase collection.
|
|
158
|
+
* * 🇩🇪: HTML-String, DOM-Node oder jBase-Sammlung.
|
|
159
|
+
* @returns
|
|
160
|
+
* * 🇬🇧: The current jBase instance.
|
|
161
|
+
* * 🇩🇪: Die aktuelle jBase-Instanz.
|
|
162
|
+
*/
|
|
163
|
+
function before(content) {
|
|
164
|
+
const fragment = normalizeToFragment(content);
|
|
165
|
+
this.forEach((el, i) => {
|
|
166
|
+
if (el instanceof Element) {
|
|
167
|
+
const contentToInsert = (i < this.length - 1) ? fragment.cloneNode(true) : fragment;
|
|
168
|
+
el.before(contentToInsert);
|
|
169
|
+
}
|
|
170
|
+
});
|
|
171
|
+
return this;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* * 🇬🇧: Inserts content after the element (outside).
|
|
175
|
+
* * 🇩🇪: Fügt Inhalt NACH dem Element ein (außerhalb).
|
|
176
|
+
* @param content
|
|
177
|
+
* * 🇬🇧: HTML string, DOM Node, or jBase collection.
|
|
178
|
+
* * 🇩🇪: HTML-String, DOM-Node oder jBase-Sammlung.
|
|
179
|
+
* @returns
|
|
180
|
+
* * 🇬🇧: The current jBase instance.
|
|
181
|
+
* * 🇩🇪: Die aktuelle jBase-Instanz.
|
|
182
|
+
*/
|
|
183
|
+
function after(content) {
|
|
184
|
+
const fragment = normalizeToFragment(content);
|
|
185
|
+
this.forEach((el, i) => {
|
|
186
|
+
if (el instanceof Element) {
|
|
187
|
+
const contentToInsert = (i < this.length - 1) ? fragment.cloneNode(true) : fragment;
|
|
188
|
+
el.after(contentToInsert);
|
|
189
|
+
}
|
|
190
|
+
});
|
|
191
|
+
return this;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* * 🇬🇧: Replaces the element with new content.
|
|
195
|
+
* * 🇩🇪: Ersetzt das Element durch neuen Inhalt.
|
|
196
|
+
* @param content
|
|
197
|
+
* * 🇬🇧: The new content.
|
|
198
|
+
* * 🇩🇪: Der neue Inhalt.
|
|
199
|
+
* @returns
|
|
200
|
+
* * 🇬🇧: The current jBase instance.
|
|
201
|
+
* * 🇩🇪: Die aktuelle jBase-Instanz.
|
|
202
|
+
*/
|
|
203
|
+
function replaceWith(content) {
|
|
204
|
+
const fragment = normalizeToFragment(content);
|
|
205
|
+
this.forEach((el, i) => {
|
|
206
|
+
if (el instanceof Element) {
|
|
207
|
+
const contentToInsert = (i < this.length - 1) ? fragment.cloneNode(true) : fragment;
|
|
208
|
+
el.replaceWith(contentToInsert);
|
|
209
|
+
}
|
|
210
|
+
});
|
|
211
|
+
return this;
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* * 🇬🇧: Appends the selected elements to the end of a target element.
|
|
215
|
+
* * 🇩🇪: Hängt die aktuellen Elemente an das Ende des Ziel-Elements an.
|
|
216
|
+
* @param target
|
|
217
|
+
* * 🇬🇧: CSS selector or DOM element.
|
|
218
|
+
* * 🇩🇪: Der CSS-Selektor oder das DOM-Element.
|
|
219
|
+
* @returns
|
|
220
|
+
* * 🇬🇧: The current jBase instance.
|
|
221
|
+
* * 🇩🇪: Die aktuelle jBase-Instanz.
|
|
222
|
+
*/
|
|
223
|
+
function appendTo(target) {
|
|
224
|
+
const parent = typeof target === 'string' ? document.querySelector(target) : target;
|
|
225
|
+
if (parent instanceof Element) {
|
|
226
|
+
const fragment = document.createDocumentFragment();
|
|
227
|
+
this.forEach(el => {
|
|
228
|
+
if (el instanceof Node)
|
|
229
|
+
fragment.appendChild(el);
|
|
230
|
+
});
|
|
231
|
+
parent.appendChild(fragment);
|
|
232
|
+
}
|
|
233
|
+
return this;
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* * 🇬🇧: Prepends the selected elements to the beginning of a target element.
|
|
237
|
+
* * 🇩🇪: Fügt die aktuellen Elemente am Anfang des Ziel-Elements ein.
|
|
238
|
+
* @param target
|
|
239
|
+
* * 🇬🇧: CSS selector or DOM element.
|
|
240
|
+
* * 🇩🇪: Der CSS-Selektor oder das DOM-Element.
|
|
241
|
+
* @returns
|
|
242
|
+
* * 🇬🇧: The current jBase instance.
|
|
243
|
+
* * 🇩🇪: Die aktuelle jBase-Instanz.
|
|
244
|
+
*/
|
|
245
|
+
function prependTo(target) {
|
|
246
|
+
const parent = typeof target === 'string' ? document.querySelector(target) : target;
|
|
247
|
+
if (parent instanceof Element) {
|
|
248
|
+
const fragment = document.createDocumentFragment();
|
|
249
|
+
this.forEach(el => {
|
|
250
|
+
if (el instanceof Node)
|
|
251
|
+
fragment.appendChild(el);
|
|
252
|
+
});
|
|
253
|
+
parent.prepend(fragment);
|
|
254
|
+
}
|
|
255
|
+
return this;
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* * 🇬🇧: Inserts the selected elements immediately before the target element.
|
|
259
|
+
* * 🇩🇪: Fügt die aktuellen Elemente unmittelbar VOR dem Ziel-Element ein.
|
|
260
|
+
* @param target
|
|
261
|
+
* * 🇬🇧: CSS selector or DOM element.
|
|
262
|
+
* * 🇩🇪: Der CSS-Selektor oder das DOM-Element.
|
|
263
|
+
* @returns
|
|
264
|
+
* * 🇬🇧: The current jBase instance.
|
|
265
|
+
* * 🇩🇪: Die aktuelle jBase-Instanz.
|
|
266
|
+
*/
|
|
267
|
+
function insertBefore(target) {
|
|
268
|
+
const targetEl = typeof target === 'string' ? document.querySelector(target) : target;
|
|
269
|
+
if (targetEl instanceof Element) {
|
|
270
|
+
const fragment = document.createDocumentFragment();
|
|
271
|
+
this.forEach(el => {
|
|
272
|
+
if (el instanceof Node)
|
|
273
|
+
fragment.appendChild(el);
|
|
274
|
+
});
|
|
275
|
+
targetEl.before(fragment);
|
|
276
|
+
}
|
|
277
|
+
return this;
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* * 🇬🇧: Inserts the selected elements immediately after the target element.
|
|
281
|
+
* * 🇩🇪: Fügt die aktuellen Elemente unmittelbar NACH dem Ziel-Element ein.
|
|
282
|
+
* @param target
|
|
283
|
+
* * 🇬🇧: CSS selector or DOM element.
|
|
284
|
+
* * 🇩🇪: Der CSS-Selektor oder das DOM-Element.
|
|
285
|
+
* @returns
|
|
286
|
+
* * 🇬🇧: The current jBase instance.
|
|
287
|
+
* * 🇩🇪: Die aktuelle jBase-Instanz.
|
|
288
|
+
*/
|
|
289
|
+
function insertAfter(target) {
|
|
290
|
+
const targetEl = typeof target === 'string' ? document.querySelector(target) : target;
|
|
291
|
+
if (targetEl instanceof Element) {
|
|
292
|
+
const fragment = document.createDocumentFragment();
|
|
293
|
+
this.forEach(el => {
|
|
294
|
+
if (el instanceof Node)
|
|
295
|
+
fragment.appendChild(el);
|
|
296
|
+
});
|
|
297
|
+
targetEl.after(fragment);
|
|
298
|
+
}
|
|
299
|
+
return this;
|
|
300
|
+
}
|
|
301
|
+
/**
|
|
302
|
+
* * 🇬🇧: Wraps each selected element with the specified HTML structure.
|
|
303
|
+
* * 🇩🇪: Umschließt jedes Element in der Auswahl mit der angegebenen HTML-Struktur.
|
|
304
|
+
* @param wrapperHtml
|
|
305
|
+
* * 🇬🇧: HTML string defining the wrapper (e.g., `<div class="box"></div>`).
|
|
306
|
+
* * 🇩🇪: Ein HTML-String, der die Wrapper-Struktur definiert (z.B. `<div class="box"></div>`).
|
|
307
|
+
* @returns
|
|
308
|
+
* * 🇬🇧: The current jBase instance.
|
|
309
|
+
* * 🇩🇪: Die aktuelle jBase-Instanz.
|
|
310
|
+
*/
|
|
311
|
+
function wrap(wrapperHtml) {
|
|
312
|
+
this.forEach(el => {
|
|
313
|
+
if (el instanceof Element) {
|
|
314
|
+
const wrapper = parseHTML(wrapperHtml);
|
|
315
|
+
if (el.parentNode) {
|
|
316
|
+
el.parentNode.insertBefore(wrapper, el);
|
|
317
|
+
}
|
|
318
|
+
wrapper.appendChild(el);
|
|
319
|
+
}
|
|
320
|
+
});
|
|
321
|
+
return this;
|
|
322
|
+
}
|
|
323
|
+
/**
|
|
324
|
+
* * 🇬🇧: Removes the direct parent of the selected elements from the DOM.
|
|
325
|
+
* * 🇩🇪: Entfernt das direkte Elternelement der ausgewählten Elemente aus dem DOM.
|
|
326
|
+
* @returns
|
|
327
|
+
* * 🇬🇧: The current jBase instance.
|
|
328
|
+
* * 🇩🇪: Die aktuelle jBase-Instanz.
|
|
329
|
+
*/
|
|
330
|
+
function unwrap() {
|
|
331
|
+
this.forEach(el => {
|
|
332
|
+
if (el instanceof Element && el.parentElement) {
|
|
333
|
+
const parent = el.parentElement;
|
|
334
|
+
const fragment = document.createDocumentFragment();
|
|
335
|
+
while (parent.firstChild) {
|
|
336
|
+
fragment.appendChild(parent.firstChild);
|
|
337
|
+
}
|
|
338
|
+
parent.replaceWith(fragment);
|
|
339
|
+
}
|
|
340
|
+
});
|
|
341
|
+
return this;
|
|
342
|
+
}
|
|
343
|
+
//# sourceMappingURL=manipulation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manipulation.js","sourceRoot":"","sources":["../../../src/modules/dom/manipulation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file src/modules/dom/states.ts
|
|
3
|
+
* @version 2.0.0
|
|
4
|
+
* @since 2.0.0
|
|
5
|
+
* @license GPL-3.0-or-later
|
|
6
|
+
* @copyright Sven Minio 2026
|
|
7
|
+
* @author Sven Minio <https://sven-minio.de>
|
|
8
|
+
* @category DOM
|
|
9
|
+
* @description
|
|
10
|
+
* * 🇬🇧: Methods for checking element states (e.g., visibility, checked, disabled).
|
|
11
|
+
* * 🇩🇪: Methoden zur Prüfung von Element-Zuständen (z.B. Sichtbarkeit, checked, disabled).
|
|
12
|
+
* @requires ../../core
|
|
13
|
+
* * 🇬🇧: Depends on the core jBase class for type definitions.
|
|
14
|
+
* * 🇩🇪: Hängt von der Core-jBase-Klasse für Typ-Definitionen ab.
|
|
15
|
+
*/
|
|
16
|
+
import { jBase } from '../../core';
|
|
17
|
+
/**
|
|
18
|
+
* * 🇬🇧: Gets or sets the 'checked' state of checkboxes and radio buttons.
|
|
19
|
+
* * 🇩🇪: Liest oder setzt den 'checked'-Status von Checkboxen und Radiobuttons.
|
|
20
|
+
* @param state
|
|
21
|
+
* * 🇬🇧: (Optional) `true` to check, `false` to uncheck. If undefined, acts as a getter.
|
|
22
|
+
* * 🇩🇪: (Optional) `true` zum Anhaken, `false` zum Deselektieren. Wenn nicht angegeben, wird gelesen.
|
|
23
|
+
* @returns
|
|
24
|
+
* * 🇬🇧: Boolean (getter) or the current jBase instance (setter).
|
|
25
|
+
* * 🇩🇪: Boolean (Getter) oder die aktuelle jBase-Instanz (Setter).
|
|
26
|
+
*/
|
|
27
|
+
export declare function checked(this: jBase, state?: boolean): boolean | jBase;
|
|
28
|
+
/**
|
|
29
|
+
* * 🇬🇧: Gets or sets the 'selected' state of `<option>` elements.
|
|
30
|
+
* * 🇩🇪: Liest oder setzt den 'selected'-Status von `<option>`-Elementen.
|
|
31
|
+
* @param state
|
|
32
|
+
* * 🇬🇧: (Optional) `true` to select, `false` to deselect. If undefined, acts as a getter.
|
|
33
|
+
* * 🇩🇪: (Optional) `true` zum Auswählen, `false` zum Abwählen. Wenn nicht angegeben, wird gelesen.
|
|
34
|
+
* @returns
|
|
35
|
+
* * 🇬🇧: Boolean (getter) or the current jBase instance (setter).
|
|
36
|
+
* * 🇩🇪: Boolean (Getter) oder die aktuelle jBase-Instanz (Setter).
|
|
37
|
+
*/
|
|
38
|
+
export declare function selected(this: jBase, state?: boolean): boolean | jBase;
|
|
39
|
+
/**
|
|
40
|
+
* * 🇬🇧: Enables or disables form fields and buttons. Additionally toggles the CSS class `.disabled`.
|
|
41
|
+
* * 🇩🇪: Aktiviert oder deaktiviert Formularfelder und Buttons. Toggelt zusätzlich die CSS-Klasse `.disabled`.
|
|
42
|
+
* @param state
|
|
43
|
+
* * 🇬🇧: (Optional) `true` to disable, `false` to enable. If undefined, acts as a getter.
|
|
44
|
+
* * 🇩🇪: (Optional) `true` zum Deaktivieren, `false` zum Aktivieren. Wenn nicht angegeben, wird gelesen.
|
|
45
|
+
* @returns
|
|
46
|
+
* * 🇬🇧: Boolean (getter) or the current jBase instance (setter).
|
|
47
|
+
* * 🇩🇪: Boolean (Getter) oder die aktuelle jBase-Instanz (Setter).
|
|
48
|
+
*/
|
|
49
|
+
export declare function disabled(this: jBase, state?: boolean): boolean | jBase;
|
|
50
|
+
//# sourceMappingURL=states.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"states.d.ts","sourceRoot":"","sources":["../../../src/modules/dom/states.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,KAAK,CAUrE;AAED;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,KAAK,CAUtE;AAED;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,KAAK,CAetE"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @file src/modules/dom/states.ts
|
|
4
|
+
* @version 2.0.0
|
|
5
|
+
* @since 2.0.0
|
|
6
|
+
* @license GPL-3.0-or-later
|
|
7
|
+
* @copyright Sven Minio 2026
|
|
8
|
+
* @author Sven Minio <https://sven-minio.de>
|
|
9
|
+
* @category DOM
|
|
10
|
+
* @description
|
|
11
|
+
* * 🇬🇧: Methods for checking element states (e.g., visibility, checked, disabled).
|
|
12
|
+
* * 🇩🇪: Methoden zur Prüfung von Element-Zuständen (z.B. Sichtbarkeit, checked, disabled).
|
|
13
|
+
* @requires ../../core
|
|
14
|
+
* * 🇬🇧: Depends on the core jBase class for type definitions.
|
|
15
|
+
* * 🇩🇪: Hängt von der Core-jBase-Klasse für Typ-Definitionen ab.
|
|
16
|
+
*/
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.checked = checked;
|
|
19
|
+
exports.selected = selected;
|
|
20
|
+
exports.disabled = disabled;
|
|
21
|
+
/**
|
|
22
|
+
* * 🇬🇧: Gets or sets the 'checked' state of checkboxes and radio buttons.
|
|
23
|
+
* * 🇩🇪: Liest oder setzt den 'checked'-Status von Checkboxen und Radiobuttons.
|
|
24
|
+
* @param state
|
|
25
|
+
* * 🇬🇧: (Optional) `true` to check, `false` to uncheck. If undefined, acts as a getter.
|
|
26
|
+
* * 🇩🇪: (Optional) `true` zum Anhaken, `false` zum Deselektieren. Wenn nicht angegeben, wird gelesen.
|
|
27
|
+
* @returns
|
|
28
|
+
* * 🇬🇧: Boolean (getter) or the current jBase instance (setter).
|
|
29
|
+
* * 🇩🇪: Boolean (Getter) oder die aktuelle jBase-Instanz (Setter).
|
|
30
|
+
*/
|
|
31
|
+
function checked(state) {
|
|
32
|
+
if (state === undefined) {
|
|
33
|
+
const el = this[0];
|
|
34
|
+
return (el instanceof HTMLInputElement) ? el.checked : false;
|
|
35
|
+
}
|
|
36
|
+
this.forEach(el => {
|
|
37
|
+
if (el instanceof HTMLInputElement)
|
|
38
|
+
el.checked = state;
|
|
39
|
+
});
|
|
40
|
+
return this;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* * 🇬🇧: Gets or sets the 'selected' state of `<option>` elements.
|
|
44
|
+
* * 🇩🇪: Liest oder setzt den 'selected'-Status von `<option>`-Elementen.
|
|
45
|
+
* @param state
|
|
46
|
+
* * 🇬🇧: (Optional) `true` to select, `false` to deselect. If undefined, acts as a getter.
|
|
47
|
+
* * 🇩🇪: (Optional) `true` zum Auswählen, `false` zum Abwählen. Wenn nicht angegeben, wird gelesen.
|
|
48
|
+
* @returns
|
|
49
|
+
* * 🇬🇧: Boolean (getter) or the current jBase instance (setter).
|
|
50
|
+
* * 🇩🇪: Boolean (Getter) oder die aktuelle jBase-Instanz (Setter).
|
|
51
|
+
*/
|
|
52
|
+
function selected(state) {
|
|
53
|
+
if (state === undefined) {
|
|
54
|
+
const el = this[0];
|
|
55
|
+
return (el instanceof HTMLOptionElement) ? el.selected : false;
|
|
56
|
+
}
|
|
57
|
+
this.forEach(el => {
|
|
58
|
+
if (el instanceof HTMLOptionElement)
|
|
59
|
+
el.selected = state;
|
|
60
|
+
});
|
|
61
|
+
return this;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* * 🇬🇧: Enables or disables form fields and buttons. Additionally toggles the CSS class `.disabled`.
|
|
65
|
+
* * 🇩🇪: Aktiviert oder deaktiviert Formularfelder und Buttons. Toggelt zusätzlich die CSS-Klasse `.disabled`.
|
|
66
|
+
* @param state
|
|
67
|
+
* * 🇬🇧: (Optional) `true` to disable, `false` to enable. If undefined, acts as a getter.
|
|
68
|
+
* * 🇩🇪: (Optional) `true` zum Deaktivieren, `false` zum Aktivieren. Wenn nicht angegeben, wird gelesen.
|
|
69
|
+
* @returns
|
|
70
|
+
* * 🇬🇧: Boolean (getter) or the current jBase instance (setter).
|
|
71
|
+
* * 🇩🇪: Boolean (Getter) oder die aktuelle jBase-Instanz (Setter).
|
|
72
|
+
*/
|
|
73
|
+
function disabled(state) {
|
|
74
|
+
if (state === undefined) {
|
|
75
|
+
const el = this[0];
|
|
76
|
+
return (el instanceof HTMLElement && 'disabled' in el) ? el.disabled : false;
|
|
77
|
+
}
|
|
78
|
+
this.forEach(el => {
|
|
79
|
+
if (el instanceof HTMLElement && 'disabled' in el) {
|
|
80
|
+
el.disabled = state;
|
|
81
|
+
if (state)
|
|
82
|
+
el.classList.add('disabled');
|
|
83
|
+
else
|
|
84
|
+
el.classList.remove('disabled');
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
return this;
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=states.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"states.js","sourceRoot":"","sources":["../../../src/modules/dom/states.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;AAcH,0BAUC;AAYD,4BAUC;AAYD,4BAeC;AArED;;;;;;;;;GASG;AACH,SAAgB,OAAO,CAAc,KAAe;IAChD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACtB,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACnB,OAAO,CAAC,EAAE,YAAY,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;IACjE,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;QACd,IAAI,EAAE,YAAY,gBAAgB;YAC9B,EAAE,CAAC,OAAO,GAAG,KAAK,CAAC;IAC3B,CAAC,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,QAAQ,CAAc,KAAe;IACjD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACtB,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACnB,OAAO,CAAC,EAAE,YAAY,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;IACnE,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;QACd,IAAI,EAAE,YAAY,iBAAiB;YAC/B,EAAE,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC5B,CAAC,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,QAAQ,CAAc,KAAe;IACjD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACtB,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACnB,OAAO,CAAC,EAAE,YAAY,WAAW,IAAI,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC,CAAE,EAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;IAC1F,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;QACd,IAAI,EAAE,YAAY,WAAW,IAAI,UAAU,IAAI,EAAE,EAAE,CAAC;YAC/C,EAAU,CAAC,QAAQ,GAAG,KAAK,CAAC;YAC7B,IAAI,KAAK;gBACL,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;;gBAE7B,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACxC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AAChB,CAAC"}
|