tiny-essentials 1.17.1 → 1.18.1
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/dist/legacy/get/countObj.cjs +2 -2
- package/dist/legacy/get/countObj.d.mts +1 -1
- package/dist/legacy/get/countObj.mjs +1 -1
- package/dist/legacy/index.cjs +2 -1
- package/dist/v1/TinyBasicsEs.js +559 -411
- package/dist/v1/TinyBasicsEs.min.js +1 -1
- package/dist/v1/TinyClipboard.js +459 -0
- package/dist/v1/TinyClipboard.min.js +1 -0
- package/dist/v1/TinyDragger.js +170 -2454
- package/dist/v1/TinyDragger.min.js +1 -2
- package/dist/v1/TinyEssentials.js +1093 -63
- package/dist/v1/TinyEssentials.min.js +1 -1
- package/dist/v1/TinyHtml.js +164 -21
- package/dist/v1/TinyHtml.min.js +1 -1
- package/dist/v1/TinySmartScroller.js +164 -21
- package/dist/v1/TinySmartScroller.min.js +1 -1
- package/dist/v1/TinyTextRangeEditor.js +497 -0
- package/dist/v1/TinyTextRangeEditor.min.js +1 -0
- package/dist/v1/TinyUploadClicker.js +219 -467
- package/dist/v1/TinyUploadClicker.min.js +1 -1
- package/dist/v1/basics/html.cjs +3 -3
- package/dist/v1/basics/html.mjs +1 -1
- package/dist/v1/basics/index.cjs +3 -2
- package/dist/v1/basics/index.d.mts +2 -2
- package/dist/v1/basics/index.mjs +2 -1
- package/dist/v1/basics/objChecker.cjs +46 -0
- package/dist/v1/basics/objChecker.d.mts +29 -0
- package/dist/v1/basics/objChecker.mjs +45 -0
- package/dist/v1/basics/objFilter.cjs +4 -45
- package/dist/v1/basics/objFilter.d.mts +3 -28
- package/dist/v1/basics/objFilter.mjs +2 -45
- package/dist/v1/build/TinyClipboard.cjs +7 -0
- package/dist/v1/build/TinyClipboard.d.mts +3 -0
- package/dist/v1/build/TinyClipboard.mjs +2 -0
- package/dist/v1/build/TinyTextRangeEditor.cjs +7 -0
- package/dist/v1/build/TinyTextRangeEditor.d.mts +3 -0
- package/dist/v1/build/TinyTextRangeEditor.mjs +2 -0
- package/dist/v1/index.cjs +7 -2
- package/dist/v1/index.d.mts +5 -3
- package/dist/v1/index.mjs +5 -2
- package/dist/v1/libs/TinyClipboard.cjs +420 -0
- package/dist/v1/libs/TinyClipboard.d.mts +155 -0
- package/dist/v1/libs/TinyClipboard.mjs +398 -0
- package/dist/v1/libs/TinyDragger.cjs +3 -3
- package/dist/v1/libs/TinyDragger.mjs +1 -1
- package/dist/v1/libs/TinyHtml.cjs +164 -21
- package/dist/v1/libs/TinyHtml.d.mts +150 -27
- package/dist/v1/libs/TinyHtml.mjs +158 -20
- package/dist/v1/libs/TinyTextRangeEditor.cjs +458 -0
- package/dist/v1/libs/TinyTextRangeEditor.d.mts +200 -0
- package/dist/v1/libs/TinyTextRangeEditor.mjs +424 -0
- package/dist/v1/libs/TinyUploadClicker.cjs +5 -4
- package/docs/v1/README.md +3 -0
- package/docs/v1/basics/objChecker.md +47 -0
- package/docs/v1/basics/objFilter.md +0 -40
- package/docs/v1/libs/TinyClipboard.md +213 -0
- package/docs/v1/libs/TinyHtml.md +112 -15
- package/docs/v1/libs/TinyTextRangeEditor.md +208 -0
- package/package.json +1 -1
- package/dist/v1/TinyDragger.min.js.LICENSE.txt +0 -8
package/dist/v1/TinyHtml.js
CHANGED
|
@@ -553,6 +553,21 @@ const {
|
|
|
553
553
|
* @typedef {Element|Window|Document} ElementAndWinAndDoc
|
|
554
554
|
*/
|
|
555
555
|
|
|
556
|
+
/**
|
|
557
|
+
* Represents a raw DOM element with document or an instance of TinyHtml.
|
|
558
|
+
* This type is used to abstract interactions with both plain elements
|
|
559
|
+
* and wrapped elements via the TinyHtml class.
|
|
560
|
+
*
|
|
561
|
+
* @typedef {ElementWithDoc|TinyHtml} TinyElementWithDoc
|
|
562
|
+
*/
|
|
563
|
+
|
|
564
|
+
/**
|
|
565
|
+
* Represents a value that can be either a DOM Element, or the document object.
|
|
566
|
+
* Useful for functions that operate generically on measurable targets.
|
|
567
|
+
*
|
|
568
|
+
* @typedef {Element|Document} ElementWithDoc
|
|
569
|
+
*/
|
|
570
|
+
|
|
556
571
|
/**
|
|
557
572
|
* A parameter type used for filtering or matching elements.
|
|
558
573
|
* It can be:
|
|
@@ -572,12 +587,6 @@ const {
|
|
|
572
587
|
* @typedef {Window|Element|Document|Text} ConstructorElValues
|
|
573
588
|
*/
|
|
574
589
|
|
|
575
|
-
/**
|
|
576
|
-
* The handler function used in event listeners.
|
|
577
|
-
*
|
|
578
|
-
* @typedef {(e: Event) => any} EventRegistryHandle
|
|
579
|
-
*/
|
|
580
|
-
|
|
581
590
|
/**
|
|
582
591
|
* Options passed to `addEventListener` or `removeEventListener`.
|
|
583
592
|
* Can be a boolean or an object of type `AddEventListenerOptions`.
|
|
@@ -589,7 +598,7 @@ const {
|
|
|
589
598
|
* Structure describing a registered event callback and its options.
|
|
590
599
|
*
|
|
591
600
|
* @typedef {Object} EventRegistryItem
|
|
592
|
-
* @property {
|
|
601
|
+
* @property {EventListenerOrEventListenerObject|null} handler - The function to be executed when the event is triggered.
|
|
593
602
|
* @property {EventRegistryOptions} [options] - Optional configuration passed to the listener.
|
|
594
603
|
*/
|
|
595
604
|
|
|
@@ -1148,9 +1157,9 @@ class TinyHtml {
|
|
|
1148
1157
|
* Ensures the input is returned as an array.
|
|
1149
1158
|
* Useful to normalize operations across multiple or single element/window/document elements.
|
|
1150
1159
|
*
|
|
1151
|
-
* @param {TinyElementAndWinAndDoc|TinyElementAndWinAndDoc[]} elems - A single element/window element or array of html elements.
|
|
1160
|
+
* @param {TinyElementAndWinAndDoc|TinyElementAndWinAndDoc[]} elems - A single element/document/window element or array of html elements.
|
|
1152
1161
|
* @param {string} where - The method or context name where validation is being called.
|
|
1153
|
-
* @returns {ElementAndWindow[]} - Always returns an array of element/window elements.
|
|
1162
|
+
* @returns {ElementAndWindow[]} - Always returns an array of element/document/window elements.
|
|
1154
1163
|
* @readonly
|
|
1155
1164
|
*/
|
|
1156
1165
|
static _preElemsAndWinAndDoc(elems, where) {
|
|
@@ -1167,9 +1176,9 @@ class TinyHtml {
|
|
|
1167
1176
|
* Ensures the input is returned as an single element/window/document element.
|
|
1168
1177
|
* Useful to normalize operations across multiple or single element/window/document elements.
|
|
1169
1178
|
*
|
|
1170
|
-
* @param {TinyElementAndWinAndDoc|TinyElementAndWinAndDoc[]} elems - A single element/window element or array of html elements.
|
|
1179
|
+
* @param {TinyElementAndWinAndDoc|TinyElementAndWinAndDoc[]} elems - A single element/document/window element or array of html elements.
|
|
1171
1180
|
* @param {string} where - The method or context name where validation is being called.
|
|
1172
|
-
* @returns {ElementAndWindow} - Always returns an single element/window element.
|
|
1181
|
+
* @returns {ElementAndWindow} - Always returns an single element/document/window element.
|
|
1173
1182
|
* @readonly
|
|
1174
1183
|
*/
|
|
1175
1184
|
static _preElemAndWinAndDoc(elems, where) {
|
|
@@ -1183,6 +1192,32 @@ class TinyHtml {
|
|
|
1183
1192
|
return result;
|
|
1184
1193
|
}
|
|
1185
1194
|
|
|
1195
|
+
/**
|
|
1196
|
+
* Ensures the input is returned as an array.
|
|
1197
|
+
* Useful to normalize operations across multiple or single element with document elements.
|
|
1198
|
+
*
|
|
1199
|
+
* @param {TinyElementWithDoc|TinyElementWithDoc[]} elems - A single element with document element or array of html elements.
|
|
1200
|
+
* @param {string} where - The method or context name where validation is being called.
|
|
1201
|
+
* @returns {ElementWithDoc[]} - Always returns an array of element with document elements.
|
|
1202
|
+
* @readonly
|
|
1203
|
+
*/
|
|
1204
|
+
static _preElemsWithDoc(elems, where) {
|
|
1205
|
+
return TinyHtml._preElemsTemplate(elems, where, [Element, Document], ['Element', 'Document']);
|
|
1206
|
+
}
|
|
1207
|
+
|
|
1208
|
+
/**
|
|
1209
|
+
* Ensures the input is returned as an single element with document element.
|
|
1210
|
+
* Useful to normalize operations across multiple or single element with document elements.
|
|
1211
|
+
*
|
|
1212
|
+
* @param {TinyElementWithDoc|TinyElementWithDoc[]} elems - A single element/window element or array of html elements.
|
|
1213
|
+
* @param {string} where - The method or context name where validation is being called.
|
|
1214
|
+
* @returns {ElementWithDoc} - Always returns an single element/window element.
|
|
1215
|
+
* @readonly
|
|
1216
|
+
*/
|
|
1217
|
+
static _preElemWithDoc(elems, where) {
|
|
1218
|
+
return TinyHtml._preElemTemplate(elems, where, [Element, Document], ['Element', 'Document']);
|
|
1219
|
+
}
|
|
1220
|
+
|
|
1186
1221
|
/**
|
|
1187
1222
|
* Normalizes and converts one or more DOM elements (or TinyHtml instances)
|
|
1188
1223
|
* into an array of `TinyHtml` instances.
|
|
@@ -4442,12 +4477,120 @@ class TinyHtml {
|
|
|
4442
4477
|
|
|
4443
4478
|
////////////////////////////////////////////
|
|
4444
4479
|
|
|
4480
|
+
/**
|
|
4481
|
+
* Registers a listener for the "paste" event to extract files and text from the clipboard (e.g., when the user presses Ctrl+V).
|
|
4482
|
+
*
|
|
4483
|
+
* This method allows reacting to pasted content by providing separate callbacks for files and plain text.
|
|
4484
|
+
* Useful for building file upload areas, rich-text editors, or input enhancements.
|
|
4485
|
+
*
|
|
4486
|
+
* @param {TinyElementWithDoc|TinyElementWithDoc[]} el - The target element(s) where the "paste" event will be listened.
|
|
4487
|
+
* @param {Object} [settings={}] - Optional callbacks to handle clipboard content.
|
|
4488
|
+
* @param {(data: DataTransferItem, file: File) => void} [settings.onFilePaste] - Called for each file pasted from the clipboard (e.g., images).
|
|
4489
|
+
* @param {(data: DataTransferItem, text: string) => void} [settings.onTextPaste] - Called when plain text is pasted from the clipboard.
|
|
4490
|
+
* @returns {EventListenerOrEventListenerObject} The internal "paste" event handler used.
|
|
4491
|
+
*/
|
|
4492
|
+
static listenForPaste(el, { onFilePaste, onTextPaste } = {}) {
|
|
4493
|
+
if (typeof onFilePaste !== 'undefined' && typeof onFilePaste !== 'function')
|
|
4494
|
+
throw new TypeError('onFilePaste must be a function.');
|
|
4495
|
+
if (typeof onTextPaste !== 'undefined' && typeof onTextPaste !== 'function')
|
|
4496
|
+
throw new TypeError('onTextPaste must be a function.');
|
|
4497
|
+
|
|
4498
|
+
/** @type {EventListenerOrEventListenerObject} */
|
|
4499
|
+
const pasteEvent = (event) => {
|
|
4500
|
+
if (!(event instanceof ClipboardEvent)) return;
|
|
4501
|
+
const items = event.clipboardData?.items || [];
|
|
4502
|
+
for (const item of items) {
|
|
4503
|
+
if (item.kind === 'file') {
|
|
4504
|
+
if (typeof onFilePaste === 'function') {
|
|
4505
|
+
const file = item.getAsFile();
|
|
4506
|
+
if (file) onFilePaste(item, file);
|
|
4507
|
+
}
|
|
4508
|
+
} else if (item.kind === 'string') {
|
|
4509
|
+
if (typeof onTextPaste === 'function')
|
|
4510
|
+
item.getAsString((text) => onTextPaste(item, text));
|
|
4511
|
+
}
|
|
4512
|
+
}
|
|
4513
|
+
};
|
|
4514
|
+
|
|
4515
|
+
TinyHtml._preElemsWithDoc(el, 'listenForPaste').forEach((elem) =>
|
|
4516
|
+
TinyHtml.on(elem, 'paste', pasteEvent),
|
|
4517
|
+
);
|
|
4518
|
+
return pasteEvent;
|
|
4519
|
+
}
|
|
4520
|
+
|
|
4521
|
+
/**
|
|
4522
|
+
* Registers a listener for the "paste" event to extract files and text from the clipboard (e.g., when the user presses Ctrl+V).
|
|
4523
|
+
*
|
|
4524
|
+
* This method allows reacting to pasted content by providing separate callbacks for files and plain text.
|
|
4525
|
+
* Useful for building file upload areas, rich-text editors, or input enhancements.
|
|
4526
|
+
*
|
|
4527
|
+
* @param {Object} [settings={}] - Optional callbacks to handle clipboard content.
|
|
4528
|
+
* @param {(data: DataTransferItem, file: File) => void} [settings.onFilePaste] - Called for each file pasted from the clipboard (e.g., images).
|
|
4529
|
+
* @param {(data: DataTransferItem, text: string) => void} [settings.onTextPaste] - Called when plain text is pasted from the clipboard.
|
|
4530
|
+
* @returns {EventListenerOrEventListenerObject} The internal "paste" event handler used.
|
|
4531
|
+
*/
|
|
4532
|
+
listenForPaste({ onFilePaste, onTextPaste } = {}) {
|
|
4533
|
+
return TinyHtml.listenForPaste(this, { onFilePaste, onTextPaste });
|
|
4534
|
+
}
|
|
4535
|
+
|
|
4536
|
+
/**
|
|
4537
|
+
* Checks if the element has a listener for a specific event.
|
|
4538
|
+
*
|
|
4539
|
+
* @param {TinyEventTarget} el - The element to check.
|
|
4540
|
+
* @param {string} event - The event name to check.
|
|
4541
|
+
* @returns {boolean}
|
|
4542
|
+
*/
|
|
4543
|
+
static hasEventListener(el, event) {
|
|
4544
|
+
const elem = TinyHtml._preEventTargetElem(el, 'hasEventListener');
|
|
4545
|
+
if (!__eventRegistry.has(elem)) return false;
|
|
4546
|
+
const events = __eventRegistry.get(elem);
|
|
4547
|
+
return !!(events && Array.isArray(events[event]) && events[event].length > 0);
|
|
4548
|
+
}
|
|
4549
|
+
|
|
4550
|
+
/**
|
|
4551
|
+
* Checks if the element has a listener for a specific event.
|
|
4552
|
+
*
|
|
4553
|
+
* @param {string} event - The event name to check.
|
|
4554
|
+
* @returns {boolean}
|
|
4555
|
+
*/
|
|
4556
|
+
hasEventListener(event) {
|
|
4557
|
+
return TinyHtml.hasEventListener(this, event);
|
|
4558
|
+
}
|
|
4559
|
+
|
|
4560
|
+
/**
|
|
4561
|
+
* Checks if the element has the exact handler registered for a specific event.
|
|
4562
|
+
*
|
|
4563
|
+
* @param {TinyEventTarget} el - The element to check.
|
|
4564
|
+
* @param {string} event - The event name to check.
|
|
4565
|
+
* @param {EventListenerOrEventListenerObject} handler - The handler function to check.
|
|
4566
|
+
* @returns {boolean}
|
|
4567
|
+
*/
|
|
4568
|
+
static hasExactEventListener(el, event, handler) {
|
|
4569
|
+
const elem = TinyHtml._preEventTargetElem(el, 'hasExactEventListener');
|
|
4570
|
+
if (typeof handler !== 'function') throw new TypeError('The "handler" must be a function.');
|
|
4571
|
+
if (!__eventRegistry.has(elem)) return false;
|
|
4572
|
+
const events = __eventRegistry.get(elem);
|
|
4573
|
+
if (!events || !Array.isArray(events[event])) return false;
|
|
4574
|
+
return events[event].some((item) => item.handler === handler);
|
|
4575
|
+
}
|
|
4576
|
+
|
|
4577
|
+
/**
|
|
4578
|
+
* Checks if the element has the exact handler registered for a specific event.
|
|
4579
|
+
*
|
|
4580
|
+
* @param {string} event - The event name to check.
|
|
4581
|
+
* @param {EventListenerOrEventListenerObject} handler - The handler function to check.
|
|
4582
|
+
* @returns {boolean}
|
|
4583
|
+
*/
|
|
4584
|
+
hasExactEventListener(event, handler) {
|
|
4585
|
+
return TinyHtml.hasExactEventListener(this, event, handler);
|
|
4586
|
+
}
|
|
4587
|
+
|
|
4445
4588
|
/**
|
|
4446
4589
|
* Registers an event listener on the specified element.
|
|
4447
4590
|
*
|
|
4448
4591
|
* @param {TinyEventTarget|TinyEventTarget[]} el - The target to listen on.
|
|
4449
4592
|
* @param {string} event - The event type (e.g. 'click', 'keydown').
|
|
4450
|
-
* @param {
|
|
4593
|
+
* @param {EventListenerOrEventListenerObject|null} handler - The callback function to run on event.
|
|
4451
4594
|
* @param {EventRegistryOptions} [options] - Optional event listener options.
|
|
4452
4595
|
* @returns {TinyEventTarget|TinyEventTarget[]}
|
|
4453
4596
|
*/
|
|
@@ -4469,7 +4612,7 @@ class TinyHtml {
|
|
|
4469
4612
|
* Registers an event listener on the specified element.
|
|
4470
4613
|
*
|
|
4471
4614
|
* @param {string} event - The event type (e.g. 'click', 'keydown').
|
|
4472
|
-
* @param {
|
|
4615
|
+
* @param {EventListenerOrEventListenerObject|null} handler - The callback function to run on event.
|
|
4473
4616
|
* @param {EventRegistryOptions} [options] - Optional event listener options.
|
|
4474
4617
|
* @returns {TinyEventTarget|TinyEventTarget[]}
|
|
4475
4618
|
*/
|
|
@@ -4482,17 +4625,17 @@ class TinyHtml {
|
|
|
4482
4625
|
*
|
|
4483
4626
|
* @param {TinyEventTarget|TinyEventTarget[]} el - The target to listen on.
|
|
4484
4627
|
* @param {string} event - The event type (e.g. 'click', 'keydown').
|
|
4485
|
-
* @param {
|
|
4628
|
+
* @param {EventListenerOrEventListenerObject} handler - The callback function to run on event.
|
|
4486
4629
|
* @param {EventRegistryOptions} [options={}] - Optional event listener options.
|
|
4487
4630
|
* @returns {TinyEventTarget|TinyEventTarget[]}
|
|
4488
4631
|
*/
|
|
4489
4632
|
static once(el, event, handler, options = {}) {
|
|
4490
4633
|
if (typeof event !== 'string') throw new TypeError('The event name must be a string.');
|
|
4491
4634
|
TinyHtml._preEventTargetElems(el, 'once').forEach((elem) => {
|
|
4492
|
-
/** @type {
|
|
4635
|
+
/** @type {EventListenerOrEventListenerObject} */
|
|
4493
4636
|
const wrapped = (e) => {
|
|
4494
4637
|
TinyHtml.off(elem, event, wrapped);
|
|
4495
|
-
handler(e);
|
|
4638
|
+
if (typeof handler === 'function') handler(e);
|
|
4496
4639
|
};
|
|
4497
4640
|
|
|
4498
4641
|
TinyHtml.on(
|
|
@@ -4509,7 +4652,7 @@ class TinyHtml {
|
|
|
4509
4652
|
* Registers an event listener that runs only once, then is removed.
|
|
4510
4653
|
*
|
|
4511
4654
|
* @param {string} event - The event type (e.g. 'click', 'keydown').
|
|
4512
|
-
* @param {
|
|
4655
|
+
* @param {EventListenerOrEventListenerObject} handler - The callback function to run on event.
|
|
4513
4656
|
* @param {EventRegistryOptions} [options={}] - Optional event listener options.
|
|
4514
4657
|
* @returns {TinyEventTarget|TinyEventTarget[]}
|
|
4515
4658
|
*/
|
|
@@ -4522,7 +4665,7 @@ class TinyHtml {
|
|
|
4522
4665
|
*
|
|
4523
4666
|
* @param {TinyEventTarget|TinyEventTarget[]} el - The target element.
|
|
4524
4667
|
* @param {string} event - The event type.
|
|
4525
|
-
* @param {
|
|
4668
|
+
* @param {EventListenerOrEventListenerObject|null} handler - The function originally bound to the event.
|
|
4526
4669
|
* @param {boolean|EventListenerOptions} [options] - Optional listener options.
|
|
4527
4670
|
* @returns {TinyEventTarget|TinyEventTarget[]}
|
|
4528
4671
|
*/
|
|
@@ -4544,7 +4687,7 @@ class TinyHtml {
|
|
|
4544
4687
|
* Removes a specific event listener from an element.
|
|
4545
4688
|
*
|
|
4546
4689
|
* @param {string} event - The event type.
|
|
4547
|
-
* @param {
|
|
4690
|
+
* @param {EventListenerOrEventListenerObject|null} handler - The function originally bound to the event.
|
|
4548
4691
|
* @param {boolean|EventListenerOptions} [options] - Optional listener options.
|
|
4549
4692
|
* @returns {TinyEventTarget|TinyEventTarget[]}
|
|
4550
4693
|
*/
|
|
@@ -4587,7 +4730,7 @@ class TinyHtml {
|
|
|
4587
4730
|
* Removes all event listeners of all types from the element.
|
|
4588
4731
|
*
|
|
4589
4732
|
* @param {TinyEventTarget|TinyEventTarget[]} el - The target element.
|
|
4590
|
-
* @param {((handler: EventListenerOrEventListenerObject, event: string) => boolean)|null} [filterFn=null] -
|
|
4733
|
+
* @param {((handler: EventListenerOrEventListenerObject|null, event: string) => boolean)|null} [filterFn=null] -
|
|
4591
4734
|
* Optional filter function to selectively remove specific handlers.
|
|
4592
4735
|
* @returns {TinyEventTarget|TinyEventTarget[]}
|
|
4593
4736
|
*/
|
|
@@ -4614,7 +4757,7 @@ class TinyHtml {
|
|
|
4614
4757
|
/**
|
|
4615
4758
|
* Removes all event listeners of all types from the element.
|
|
4616
4759
|
*
|
|
4617
|
-
* @param {((handler: EventListenerOrEventListenerObject, event: string) => boolean)|null} [filterFn=null] -
|
|
4760
|
+
* @param {((handler: EventListenerOrEventListenerObject|null, event: string) => boolean)|null} [filterFn=null] -
|
|
4618
4761
|
* Optional filter function to selectively remove specific handlers.
|
|
4619
4762
|
* @returns {TinyEventTarget|TinyEventTarget[]}
|
|
4620
4763
|
*/
|
package/dist/v1/TinyHtml.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{"use strict";var t={d:(e,r)=>{for(var o in r)t.o(r,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.d(e,{TinyHtml:()=>N});var r={};t.r(r),t.d(r,{areElsCollBottom:()=>n,areElsCollLeft:()=>i,areElsCollPerfBottom:()=>a,areElsCollPerfLeft:()=>c,areElsCollPerfRight:()=>p,areElsCollPerfTop:()=>s,areElsCollRight:()=>l,areElsCollTop:()=>o,areElsColliding:()=>m,areElsPerfColliding:()=>u,getElsCollDetails:()=>w,getElsCollDirDepth:()=>E,getElsCollOverlap:()=>g,getElsCollOverlapPos:()=>h,getElsColliding:()=>d,getElsPerfColliding:()=>f,getElsRelativeCenterOffset:()=>b,getRectCenter:()=>y});const o=(t,e)=>t.bottom<e.top,n=(t,e)=>t.top>e.bottom,i=(t,e)=>t.right<e.left,l=(t,e)=>t.left>e.right,s=(t,e)=>t.bottom<=e.top,a=(t,e)=>t.top>=e.bottom,c=(t,e)=>t.right<=e.left,p=(t,e)=>t.left>=e.right,m=(t,e)=>!(i(t,e)||l(t,e)||o(t,e)||n(t,e)),u=(t,e)=>!(c(t,e)||p(t,e)||s(t,e)||a(t,e)),d=(t,e)=>i(t,e)?"left":l(t,e)?"right":o(t,e)?"top":n(t,e)?"bottom":null,f=(t,e)=>c(t,e)?"left":p(t,e)?"right":s(t,e)?"top":a(t,e)?"bottom":null,g=(t,e)=>({overlapLeft:e.right-t.left,overlapRight:t.right-e.left,overlapTop:e.bottom-t.top,overlapBottom:t.bottom-e.top}),h=({overlapLeft:t=-1,overlapRight:e=-1,overlapTop:r=-1,overlapBottom:o=-1}={})=>({dirX:t<e?"right":"left",dirY:r<o?"bottom":"top"}),y=t=>({x:t.left+t.width/2,y:t.top+t.height/2});function b(t,e){const r=t.left+t.width/2,o=t.top+t.height/2;return{x:e.left+e.width/2-r,y:e.top+e.height/2-o}}function E(t,e){if(!u(t,e))return{inDir:null,dirX:null,dirY:null,depthX:0,depthY:0};const{overlapLeft:r,overlapRight:o,overlapTop:n,overlapBottom:i}=g(t,e),{dirX:l,dirY:s}=h({overlapLeft:r,overlapRight:o,overlapTop:n,overlapBottom:i}),a=Math.min(r,o),c=Math.min(n,i);let p;return p=a<c?l:s,{inDir:p,dirX:l,dirY:s,depthX:a,depthY:c}}function w(t,e){const r=u(t,e),o={in:null,x:null,y:null},n={y:null,x:null},i={top:0,bottom:0,left:0,right:0},{overlapLeft:l,overlapRight:s,overlapTop:a,overlapBottom:c}=g(e,t);i.top=a,i.bottom=c,i.left=l,i.right=s;const p=Object.entries(i).filter((([,t])=>t>0)).sort(((t,e)=>t[1]-e[1])),{dirX:m,dirY:d}=h({overlapLeft:s,overlapRight:l,overlapTop:c,overlapBottom:a});return o.y=d,o.x=m,i.bottom<0?n.y="bottom":i.top<0&&(n.y="top"),i.left<0?n.x="left":i.right<0&&(n.x="right"),o.in=r?i.top===i.bottom&&i.bottom===i.left&&i.left===i.right?"center":p.length?p[0][0]:"top":null,{dirs:o,depth:i,isNeg:n}}const{areElsColliding:T,areElsPerfColliding:v,areElsCollTop:_,areElsCollBottom:C,areElsCollLeft:S,areElsCollRight:A}=r,k=new WeakMap,x=new WeakMap,L={top:new WeakMap,bottom:new WeakMap,left:new WeakMap,right:new WeakMap};class W{static Utils={...r};static createElement(t,e){if("string"!=typeof t)throw new TypeError("[TinyHtml] createElement(): The tagName must be a string.");if(void 0!==e&&"object"!=typeof e)throw new TypeError("[TinyHtml] createElement(): The ops must be a object.");return new W(document.createElement(t,e))}static createTextNode(t){if("string"!=typeof t)throw new TypeError("[TinyHtml] createTextNode(): The value must be a string.");return new W(document.createTextNode(t))}static createElementFromHTML(t){const e=document.createElement("template");if(!(t=t.trim()).startsWith("<"))return W.createTextNode(t);if(e.innerHTML=t,!(e.content.firstChild instanceof Element))throw new Error("");return new W(e.content.firstChild)}static query(t,e=document){const r=e.querySelector(t);return r?new W(r):null}querySelector(t){return W.query(t,W._preElem(this,"query"))}static queryAll(t,e=document){const r=e.querySelectorAll(t);return W.toTinyElm([...r])}querySelectorAll(t){return W.queryAll(t,W._preElem(this,"queryAll"))}static getById(t){const e=document.getElementById(t);return e?new W(e):null}static getByClassName(t,e=document){const r=e.getElementsByClassName(t);return W.toTinyElm([...r])}getElementsByClassName(t){return W.getByClassName(t,W._preElem(this,"getByClassName"))}static getByName(t){const e=document.getElementsByName(t);return W.toTinyElm([...e])}static getByTagNameNS(t,e="http://www.w3.org/1999/xhtml",r=document){const o=r.getElementsByTagNameNS(e,t);return W.toTinyElm([...o])}getElementsByTagNameNS(t,e="http://www.w3.org/1999/xhtml"){return W.getByTagNameNS(t,e,W._preElem(this,"getByTagNameNS"))}get(){return this.#t}_getElement(t){if(!(this.#t instanceof Element||this.#t instanceof Window||this.#t instanceof Document))throw new Error(`[TinyHtml] Invalid Element in ${t}().`);return this.#t}static _preElemsTemplate(t,e,r,o){const n=t=>t.map((t=>{const n=t instanceof W?t._getElement(e):t;let i=!1;for(const t of r)if(n instanceof t){i=!0;break}if(!i)throw new Error(`[TinyHtml] Invalid element of the list "${o.join(",")}" in ${e}().`);return n}));return Array.isArray(t)?n(t):n([t])}static _preElemTemplate(t,e,r,o,n=!1){const i=t=>{const i=t[0];let l=i instanceof W?i._getElement(e):i,s=!1;for(const t of r)if(l instanceof t){s=!0;break}if(n&&null==l&&(l=null,s=!0),!s)throw new Error(`[TinyHtml] Invalid element of the list "${o.join(",")}" in ${e}().`);return l};if(!Array.isArray(t))return i([t]);if(t.length>1)throw new Error(`[TinyHtml] Invalid element amount in ${e}() (Received ${t.length}/1).`);return i(t)}static _preElems(t,e){return W._preElemsTemplate(t,e,[Element],["Element"])}static _preElem(t,e){return W._preElemTemplate(t,e,[Element],["Element"])}static _preNodeElems(t,e){return W._preElemsTemplate(t,e,[Node],["Node"])}static _preNodeElem(t,e){return W._preElemTemplate(t,e,[Node],["Node"])}static _preNodeElemWithNull(t,e){return W._preElemTemplate(t,e,[Node],["Node"],!0)}static _preHtmlElems(t,e){return W._preElemsTemplate(t,e,[HTMLElement],["HTMLElement"])}static _preHtmlElem(t,e){return W._preElemTemplate(t,e,[HTMLElement],["HTMLElement"])}static _preInputElems(t,e){return W._preElemsTemplate(t,e,[HTMLInputElement,HTMLSelectElement,HTMLTextAreaElement,HTMLOptionElement],["HTMLInputElement","HTMLSelectElement","HTMLTextAreaElement","HTMLOptionElement"])}static _preInputElem(t,e){return W._preElemTemplate(t,e,[HTMLInputElement,HTMLSelectElement,HTMLTextAreaElement,HTMLOptionElement],["HTMLInputElement","HTMLSelectElement","HTMLTextAreaElement","HTMLOptionElement"])}static _preEventTargetElems(t,e){return W._preElemsTemplate(t,e,[EventTarget],["EventTarget"])}static _preEventTargetElem(t,e){return W._preElemTemplate(t,e,[EventTarget],["EventTarget"])}static _preElemsAndWindow(t,e){return W._preElemsTemplate(t,e,[Element,Window],["Element","Window"])}static _preElemAndWindow(t,e){return W._preElemTemplate(t,e,[Element,Window],["Element","Window"])}static _preElemsAndWinAndDoc(t,e){return W._preElemsTemplate(t,e,[Element,Window,Document],["Element","Window","Document"]).map((t=>t instanceof Document?t.documentElement:t))}static _preElemAndWinAndDoc(t,e){const r=W._preElemTemplate(t,e,[Element,Window,Document],["Element","Window","Document"]);return r instanceof Document?r.documentElement:r}static toTinyElm(t){const e=t=>t.map((t=>t instanceof W?t:new W(t)));return Array.isArray(t)?e(t):e([t])}static fromTinyElm(t){const e=t=>t.map((t=>t instanceof W?t._getElement("fromTinyElm"):t));return Array.isArray(t)?e(t):e([t])}static winnow(t,e,r,o=!1){if("boolean"!=typeof o)throw new TypeError('The "not" must be a boolean.');if("function"==typeof e)return W._preElems(t,r).filter(((t,r)=>!!e.call(t,r,t)!==o));if(e instanceof Element)return W._preElems(t,r).filter((t=>t===e!==o));if(Array.isArray(e)||"string"!=typeof e&&null!=e.length)return W._preElems(t,r).filter((t=>e.includes(t)!==o));let n=e;return o&&(n=`:not(${n})`),W._preElems(t,r).filter((t=>1===t.nodeType&&t.matches(n)))}static filter(t,e,r=!1){return r&&(e=`:not(${e})`),W._preElems(t,"filter").filter((t=>1===t.nodeType&&t.matches(e)))}static filterOnly(t,e){return W.winnow(t,e,"filterOnly",!1)}static not(t,e){return W.winnow(t,e,"not",!0)}not(t){return W.not(this,t)}static find(t,e){const r=[];for(const o of W._preElems(t,"find"))r.push(...o.querySelectorAll(e));return[...new Set(r)]}find(t){return W.find(this,t)}static is(t,e){return W.winnow(t,e,"is",!1).length>0}is(t){return W.is(this,t)}static has(t,e){const r="string"==typeof e?[...document.querySelectorAll(e)]:W._preElems(e,"has");return W._preElems(t,"has").filter((t=>r.some((e=>t&&t.contains(e)))))}has(t){return W.has(this,t).length>0}static closest(t,e,r){const o=[];for(const n of W._preElems(t,"closest")){let t=n;for(;t&&t!==r;){if(1===t.nodeType&&("string"==typeof e?t.matches(e):t===e)){o.push(t);break}t=t.parentElement}}return[...new Set(o)]}closest(t,e){return W.closest(this,t,e)}static isSameDom(t,e){return W._preNodeElem(t,"isSameDom")===W._preNodeElem(e,"isSameDom")}isSameDom(t){return W.isSameDom(this,t)}_data={};static _dataSelector={public:(t,e)=>{const r=W._preElem(e,t);let o=x.get(r);return o||(o={},x.set(r,o)),o},private:(t,e)=>{if(!(e instanceof W))throw new Error(`Element must be a TinyHtml instance to execute ${t}().`);return e._data}};static data(t,e,r=!1){const o=W._dataSelector[r?"private":"public"]("data",t);if(null==e)return{...o};if("string"!=typeof e)throw new TypeError("The key must be a string.");return o.hasOwnProperty(e)?o[e]:void 0}data(t,e){return W.data(this,t,e)}static setData(t,e,r,o=!1){const n=W._dataSelector[o?"private":"public"]("setData",t);if("string"!=typeof e)throw new TypeError("The key must be a string.");return n[e]=r,t}setData(t,e,r=!1){return W.setData(this,t,e,r)}static _getSibling(t,e,r){let o=W._preNodeElemWithNull(t,r);for(;o&&(o=o[e])&&1!==o.nodeType;);return o instanceof Node?o:null}static _getSiblings(t,e){let r=t;const o=[];for(;r;r=r.nextSibling)1===r.nodeType&&r!==e&&o.push(r);return o}static domDir(t,e,r,o="domDir"){if("string"!=typeof e)throw new TypeError('The "direction" must be a string.');let n=W._preNodeElemWithNull(t,o);const i=[];for(;n&&(n=n[e]);)if(1===n.nodeType){if(r&&("string"==typeof r?n.matches(r):n===r))break;i.push(n)}return i}static parent(t){let e=W._preNodeElemWithNull(t,"parent");const r=e?e.parentNode:null;return r&&11!==r.nodeType?r:null}parent(){return W.parent(this)}static parents(t,e){return W.domDir(t,"parentNode",e,"parents")}parents(t){return W.parents(this,t)}static next(t){return W._getSibling(t,"nextSibling","next")}next(){return W.next(this)}static prev(t){return W._getSibling(t,"previousSibling","prev")}prev(){return W.prev(this)}static nextAll(t){return W.domDir(t,"nextSibling",void 0,"nextAll")}nextAll(){return W.nextAll(this)}static prevAll(t){return W.domDir(t,"previousSibling",void 0,"prevAll")}prevAll(){return W.prevAll(this)}static nextUntil(t,e){return W.domDir(t,"nextSibling",e,"nextUtil")}nextUntil(t){return W.nextUntil(this,t)}static prevUntil(t,e){return W.domDir(t,"previousSibling",e,"prevUtil")}prevUntil(t){return W.prevUntil(this,t)}static siblings(t){const e=W._preNodeElemWithNull(t,"siblings");return W._getSiblings(e&&e.parentNode?e.parentNode.firstChild:null,e)}siblings(){return W.siblings(this)}static children(t){const e=W._preNodeElemWithNull(t,"children");return W._getSiblings(e?e.firstChild:null)}children(){return W.children(this)}static contents(t){const e=W._preNodeElemWithNull(t,"contents");return e instanceof HTMLIFrameElement&&null!=e.contentDocument&&Object.getPrototypeOf(e.contentDocument)?[e.contentDocument]:e instanceof HTMLTemplateElement?Array.from((e.content||e).childNodes):e?Array.from(e.childNodes):[]}contents(){return W.contents(this)}static clone(t,e=!0){if("boolean"!=typeof e)throw new TypeError('The "deep" must be a boolean.');return W._preNodeElems(t,"clone").map((t=>t.cloneNode(e)))}clone(t){return W.clone(this,t)[0]}static _appendChecker(t,...e){const r=[],o=[...e];for(const e in o)"string"!=typeof o[e]?r.push(W._preNodeElem(o[e],t)):r.push(o[e]);return r}static append(t,...e){return W._preElem(t,"append").append(...W._appendChecker("append",...e)),t}append(...t){return W.append(this,...t)}static prepend(t,...e){return W._preElem(t,"prepend").prepend(...W._appendChecker("prepend",...e)),t}prepend(...t){return W.prepend(this,...t)}static before(t,...e){return W._preElem(t,"before").before(...W._appendChecker("before",...e)),t}before(...t){return W.before(this,...t)}static after(t,...e){return W._preElem(t,"after").after(...W._appendChecker("after",...e)),t}after(...t){return W.after(this,...t)}static replaceWith(t,...e){return W._preElem(t,"replaceWith").replaceWith(...W._appendChecker("replaceWith",...e)),t}replaceWith(...t){return W.replaceWith(this,...t)}static appendTo(t,e){const r=W._preNodeElems(t,"appendTo"),o=W._preNodeElems(e,"appendTo");return o.forEach(((t,e)=>{r.forEach((r=>t.appendChild(e===o.length-1?r:r.cloneNode(!0))))})),t}appendTo(t){return W.appendTo(this,t)}static prependTo(t,e){const r=W._preElems(t,"prependTo"),o=W._preElems(e,"prependTo");return o.forEach(((t,e)=>{r.slice().reverse().forEach((r=>t.prepend(e===o.length-1?r:r.cloneNode(!0))))})),t}prependTo(t){return W.prependTo(this,t)}static insertBefore(t,e,r=null){const o=W._preNodeElem(t,"insertBefore"),n=W._preNodeElem(e,"insertBefore"),i=W._preNodeElemWithNull(r,"insertBefore");if(!n.parentNode)throw new Error("");return n.parentNode.insertBefore(o,i||n),t}insertBefore(t,e){return W.insertBefore(this,t,e)}static insertAfter(t,e,r=null){const o=W._preNodeElem(t,"insertAfter"),n=W._preNodeElem(e,"insertBefore"),i=W._preNodeElemWithNull(r,"insertBefore");if(!n.parentNode)throw new Error("");return n.parentNode.insertBefore(o,i||n.nextSibling),t}insertAfter(t,e){return W.insertAfter(this,t,e)}static replaceAll(t,e){const r=W._preNodeElems(t,"replaceAll"),o=W._preNodeElems(e,"replaceAll");return o.forEach(((t,e)=>{const n=t.parentNode;r.forEach((r=>{n&&n.replaceChild(e===o.length-1?r:r.cloneNode(!0),t)}))})),t}replaceAll(t){return W.replaceAll(this,t)}#t;constructor(t){if(t instanceof W)throw new Error("[TinyHtml] You are trying to put a TinyHtml inside another TinyHtml in constructor.");if(!(t instanceof Element||t instanceof Window||t instanceof Document||t instanceof Text))throw new Error("[TinyHtml] Invalid Target in constructor.");this.#t=t}static isWindow(t){return null!=t&&t===t.window}static css(t){const e=W._preElem(t,"css");return window.getComputedStyle(e)}css(){return W.css(this)}static cssString(t,e){const r=W._preElem(t,"cssString");if("string"!=typeof e)throw new TypeError("The prop must be a string.");const o=window.getComputedStyle(r)[e];return"string"==typeof o?o:"number"==typeof o?o.toString():null}cssString(t){return W.cssString(this,t)}static cssList(t,e){const r=W._preElem(t,"cssList");if(!Array.isArray(e))throw new TypeError("The prop must be an array of strings.");const o=window.getComputedStyle(r),n={};for(const t of e)void 0!==t&&(n[t]=o.getPropertyValue(t));return n}cssList(t){return W.cssList(this,t)}static cssFloat(t,e){const r=W._preElem(t,"cssFloat");if("string"!=typeof e)throw new TypeError("The prop must be a string.");const o=window.getComputedStyle(r)[e];return parseFloat(o)||0}cssFloat(t){return W.cssFloat(this,t)}static cssFloats(t,e){const r=W._preElem(t,"cssFloats");if(!Array.isArray(e))throw new TypeError("The prop must be an array of strings.");const o=window.getComputedStyle(r),n={};for(const t of e)n[t]=parseFloat(o[t])||0;return n}cssFloats(t){return W.cssFloats(this,t)}static#e={alignContent:"align-content",alignItems:"align-items",alignSelf:"align-self",animationDelay:"animation-delay",animationDirection:"animation-direction",animationDuration:"animation-duration",animationFillMode:"animation-fill-mode",animationIterationCount:"animation-iteration-count",animationName:"animation-name",animationPlayState:"animation-play-state",animationTimingFunction:"animation-timing-function",backfaceVisibility:"backface-visibility",backgroundAttachment:"background-attachment",backgroundBlendMode:"background-blend-mode",backgroundClip:"background-clip",backgroundColor:"background-color",backgroundImage:"background-image",backgroundOrigin:"background-origin",backgroundPosition:"background-position",backgroundRepeat:"background-repeat",backgroundSize:"background-size",borderBottom:"border-bottom",borderBottomColor:"border-bottom-color",borderBottomLeftRadius:"border-bottom-left-radius",borderBottomRightRadius:"border-bottom-right-radius",borderBottomStyle:"border-bottom-style",borderBottomWidth:"border-bottom-width",borderCollapse:"border-collapse",borderColor:"border-color",borderImage:"border-image",borderImageOutset:"border-image-outset",borderImageRepeat:"border-image-repeat",borderImageSlice:"border-image-slice",borderImageSource:"border-image-source",borderImageWidth:"border-image-width",borderLeft:"border-left",borderLeftColor:"border-left-color",borderLeftStyle:"border-left-style",borderLeftWidth:"border-left-width",borderRadius:"border-radius",borderRight:"border-right",borderRightColor:"border-right-color",borderRightStyle:"border-right-style",borderRightWidth:"border-right-width",borderSpacing:"border-spacing",borderStyle:"border-style",borderTop:"border-top",borderTopColor:"border-top-color",borderTopLeftRadius:"border-top-left-radius",borderTopRightRadius:"border-top-right-radius",borderTopStyle:"border-top-style",borderTopWidth:"border-top-width",borderWidth:"border-width",boxDecorationBreak:"box-decoration-break",boxShadow:"box-shadow",boxSizing:"box-sizing",breakAfter:"break-after",breakBefore:"break-before",breakInside:"break-inside",captionSide:"caption-side",caretColor:"caret-color",clipPath:"clip-path",columnCount:"column-count",columnFill:"column-fill",columnGap:"column-gap",columnRule:"column-rule",columnRuleColor:"column-rule-color",columnRuleStyle:"column-rule-style",columnRuleWidth:"column-rule-width",columnSpan:"column-span",columnWidth:"column-width",counterIncrement:"counter-increment",counterReset:"counter-reset",emptyCells:"empty-cells",flexBasis:"flex-basis",flexDirection:"flex-direction",flexFlow:"flex-flow",flexGrow:"flex-grow",flexShrink:"flex-shrink",flexWrap:"flex-wrap",fontFamily:"font-family",fontFeatureSettings:"font-feature-settings",fontKerning:"font-kerning",fontLanguageOverride:"font-language-override",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontSynthesis:"font-synthesis",fontVariant:"font-variant",fontVariantAlternates:"font-variant-alternates",fontVariantCaps:"font-variant-caps",fontVariantEastAsian:"font-variant-east-asian",fontVariantLigatures:"font-variant-ligatures",fontVariantNumeric:"font-variant-numeric",fontVariantPosition:"font-variant-position",fontWeight:"font-weight",gridArea:"grid-area",gridAutoColumns:"grid-auto-columns",gridAutoFlow:"grid-auto-flow",gridAutoRows:"grid-auto-rows",gridColumn:"grid-column",gridColumnEnd:"grid-column-end",gridColumnGap:"grid-column-gap",gridColumnStart:"grid-column-start",gridGap:"grid-gap",gridRow:"grid-row",gridRowEnd:"grid-row-end",gridRowGap:"grid-row-gap",gridRowStart:"grid-row-start",gridTemplate:"grid-template",gridTemplateAreas:"grid-template-areas",gridTemplateColumns:"grid-template-columns",gridTemplateRows:"grid-template-rows",imageRendering:"image-rendering",justifyContent:"justify-content",letterSpacing:"letter-spacing",lineBreak:"line-break",lineHeight:"line-height",listStyle:"list-style",listStyleImage:"list-style-image",listStylePosition:"list-style-position",listStyleType:"list-style-type",marginBottom:"margin-bottom",marginLeft:"margin-left",marginRight:"margin-right",marginTop:"margin-top",maskClip:"mask-clip",maskComposite:"mask-composite",maskImage:"mask-image",maskMode:"mask-mode",maskOrigin:"mask-origin",maskPosition:"mask-position",maskRepeat:"mask-repeat",maskSize:"mask-size",maskType:"mask-type",maxHeight:"max-height",maxWidth:"max-width",minHeight:"min-height",minWidth:"min-width",mixBlendMode:"mix-blend-mode",objectFit:"object-fit",objectPosition:"object-position",offsetAnchor:"offset-anchor",offsetDistance:"offset-distance",offsetPath:"offset-path",offsetRotate:"offset-rotate",outlineColor:"outline-color",outlineOffset:"outline-offset",outlineStyle:"outline-style",outlineWidth:"outline-width",overflowAnchor:"overflow-anchor",overflowWrap:"overflow-wrap",overflowX:"overflow-x",overflowY:"overflow-y",paddingBottom:"padding-bottom",paddingLeft:"padding-left",paddingRight:"padding-right",paddingTop:"padding-top",pageBreakAfter:"page-break-after",pageBreakBefore:"page-break-before",pageBreakInside:"page-break-inside",perspectiveOrigin:"perspective-origin",placeContent:"place-content",placeItems:"place-items",placeSelf:"place-self",pointerEvents:"pointer-events",rowGap:"row-gap",scrollBehavior:"scroll-behavior",scrollMargin:"scroll-margin",scrollMarginBlock:"scroll-margin-block",scrollMarginBlockEnd:"scroll-margin-block-end",scrollMarginBlockStart:"scroll-margin-block-start",scrollMarginBottom:"scroll-margin-bottom",scrollMarginInline:"scroll-margin-inline",scrollMarginInlineEnd:"scroll-margin-inline-end",scrollMarginInlineStart:"scroll-margin-inline-start",scrollMarginLeft:"scroll-margin-left",scrollMarginRight:"scroll-margin-right",scrollMarginTop:"scroll-margin-top",scrollPadding:"scroll-padding",scrollPaddingBlock:"scroll-padding-block",scrollPaddingBlockEnd:"scroll-padding-block-end",scrollPaddingBlockStart:"scroll-padding-block-start",scrollPaddingBottom:"scroll-padding-bottom",scrollPaddingInline:"scroll-padding-inline",scrollPaddingInlineEnd:"scroll-padding-inline-end",scrollPaddingInlineStart:"scroll-padding-inline-start",scrollPaddingLeft:"scroll-padding-left",scrollPaddingRight:"scroll-padding-right",scrollPaddingTop:"scroll-padding-top",scrollSnapAlign:"scroll-snap-align",scrollSnapStop:"scroll-snap-stop",scrollSnapType:"scroll-snap-type",shapeImageThreshold:"shape-image-threshold",shapeMargin:"shape-margin",shapeOutside:"shape-outside",tabSize:"tab-size",tableLayout:"table-layout",textAlign:"text-align",textAlignLast:"text-align-last",textCombineUpright:"text-combine-upright",textDecoration:"text-decoration",textDecorationColor:"text-decoration-color",textDecorationLine:"text-decoration-line",textDecorationStyle:"text-decoration-style",textIndent:"text-indent",textJustify:"text-justify",textOrientation:"text-orientation",textOverflow:"text-overflow",textShadow:"text-shadow",textTransform:"text-transform",transformBox:"transform-box",transformOrigin:"transform-origin",transformStyle:"transform-style",transitionDelay:"transition-delay",transitionDuration:"transition-duration",transitionProperty:"transition-property",transitionTimingFunction:"transition-timing-function",unicodeBidi:"unicode-bidi",userSelect:"user-select",verticalAlign:"vertical-align",whiteSpace:"white-space",willChange:"will-change",wordBreak:"word-break",wordSpacing:"word-spacing",wordWrap:"word-wrap",writingMode:"writing-mode",zIndex:"z-index",WebkitTransform:"-webkit-transform",WebkitTransition:"-webkit-transition",WebkitBoxShadow:"-webkit-box-shadow",MozBoxShadow:"-moz-box-shadow",MozTransform:"-moz-transform",MozTransition:"-moz-transition",msTransform:"-ms-transform",msTransition:"-ms-transition"};static cssPropAliases=new Proxy(W.#e,{set:(t,e,r)=>(t[e]=r,W.cssPropRevAliases[r]=e,!0)});static cssPropRevAliases=Object.fromEntries(Object.entries(W.#e).map((([t,e])=>[e,t])));static toStyleKc(t){return"string"==typeof W.cssPropAliases[t]?W.cssPropAliases[t]:t}static toStyleCc(t){return"string"==typeof W.cssPropRevAliases[t]?W.cssPropRevAliases[t]:t}static setStyle(t,e,r=null){return W._preHtmlElems(t,"setStyle").forEach((t=>{if("object"==typeof e)for(const[r,o]of Object.entries(e))t.style.setProperty(W.toStyleKc(r),"string"==typeof o?o:"number"==typeof o?`${o}px`:String(o));else t.style.setProperty(W.toStyleKc(e),r)})),t}setStyle(t,e){return W.setStyle(this,t,e)}static getStyle(t,e){return W._preHtmlElem(t,"getStyle").style.getPropertyValue(W.toStyleKc(e))}getStyle(t){return W.getStyle(this,t)}static style(t,{camelCase:e=!1,rawAttr:r=!1}={}){if("boolean"!=typeof e)throw new TypeError('"camelCase" must be a boolean. Received: '+typeof e);if("boolean"!=typeof r)throw new TypeError('"rawAttr" must be a boolean. Received: '+typeof r);const o=W._preHtmlElem(t,"style"),n={};if(r){const t=(o.getAttribute("style")||"").split(";");for(const r of t){const[t,o]=r.split(":");if(!t||!o)continue;const i=t.trim(),l=o.trim();n[e?W.toStyleCc(i):i]=l}}else{const t=o.style;for(let r=0;r<t.length;r++){const o=t[r],i=t.getPropertyValue(o);n[e?W.toStyleCc(o):o]=i}}return n}style(t){return W.style(this,t)}static removeStyle(t,e){return W._preHtmlElems(t,"removeStyle").forEach((t=>{if(Array.isArray(e))for(const r of e)t.style.removeProperty(W.toStyleKc(r));else t.style.removeProperty(W.toStyleKc(e))})),t}removeStyle(t){return W.removeStyle(this,t)}static toggleStyle(t,e,r,o){return W._preHtmlElems(t,"toggleStyle").forEach((t=>{const n=W.getStyle(t,e).trim()===W.toStyleKc(r)?o:r;W.setStyle(t,e,n)})),t}toggleStyle(t,e,r){return W.toggleStyle(this,t,e,r)}static clearStyle(t){return W._preElems(t,"clearStyle").forEach((t=>t.removeAttribute("style"))),t}clearStyle(){return W.clearStyle(this)}static focus(t){return W._preHtmlElem(t,"focus").focus(),t}focus(){return W.focus(this)}static blur(t){return W._preHtmlElem(t,"blur").blur(),t}blur(){return W.blur(this)}static boolCheck(t){return void 0!==t&&("true"===t||"1"===t||!0===t||"on"===t||"number"==typeof t&&t>0)}static setWinScrollTop(t){if("number"!=typeof t)throw new TypeError("The value must be a number.");W.setScrollTop(window,t)}static setWinScrollLeft(t){if("number"!=typeof t)throw new TypeError("The value must be a number.");W.setScrollLeft(window,t)}static winScrollTop(){return window.scrollY||document.documentElement.scrollTop}static winScrollLeft(){return window.scrollX||document.documentElement.scrollLeft}static winInnerHeight(){return window.innerHeight||document.documentElement.clientHeight}static winInnerWidth(){return window.innerWidth||document.documentElement.clientWidth}static isPageTop(){return 0===window.scrollY}static isPageBottom(){return window.innerHeight+window.scrollY>=document.body.offsetHeight}static getDimension(t,e,r="content"){const o=W._preElemAndWinAndDoc(t,"getDimension");if("string"!=typeof e)throw new TypeError("The type must be a string.");if("string"!=typeof r)throw new TypeError("The extra must be a string.");const n="width"===e?"Width":"Height";if(W.isWindow(o))return"margin"===r?o["inner"+n]:o.document.documentElement["client"+n];const i=o;if(9===i.nodeType){const t=i.documentElement;return Math.max(i.body["scroll"+n],t["scroll"+n],i.body["offset"+n],t["offset"+n],t["client"+n])}let l=i.getBoundingClientRect()[e];function s(t){return"width"===e?W.cssFloat(i,t+"Left")+W.cssFloat(i,t+"Right"):W.cssFloat(i,t+"Top")+W.cssFloat(i,t+"Bottom")}switch(r){case"content":l-=s("padding"),l-=s("border");break;case"padding":l-=s("border");break;case"border":break;case"margin":l+=s("margin")}return l}getDimension(t,e){return W.getDimension(this,t,e)}static setHeight(t,e){const r=W._preHtmlElem(t,"setHeight");if("number"!=typeof e&&"string"!=typeof e)throw new TypeError("The value must be a string or number.");return r.style.height="number"==typeof e?`${e}px`:e,t}setHeight(t){return W.setHeight(this,t)}static setWidth(t,e){const r=W._preHtmlElem(t,"setWidth");if("number"!=typeof e&&"string"!=typeof e)throw new TypeError("The value must be a string or number.");return r.style.width="number"==typeof e?`${e}px`:e,t}setWidth(t){return W.setWidth(this,t)}static height(t){const e=W._preElemAndWinAndDoc(t,"height");return W.getDimension(e,"height","content")}height(){return W.height(this)}static width(t){const e=W._preElemAndWinAndDoc(t,"width");return W.getDimension(e,"width","content")}width(){return W.width(this)}static innerHeight(t){const e=W._preElemAndWinAndDoc(t,"innerHeight");return W.getDimension(e,"height","padding")}innerHeight(){return W.innerHeight(this)}static innerWidth(t){const e=W._preElemAndWinAndDoc(t,"innerWidth");return W.getDimension(e,"width","padding")}innerWidth(){return W.innerWidth(this)}static outerHeight(t,e=!1){if("boolean"!=typeof e)throw new TypeError('The "includeMargin" must be a boolean.');const r=W._preElemAndWinAndDoc(t,"outerHeight");return W.getDimension(r,"height",e?"margin":"border")}outerHeight(t){return W.outerHeight(this,t)}static outerWidth(t,e=!1){if("boolean"!=typeof e)throw new TypeError('The "includeMargin" must be a boolean.');const r=W._preElemAndWinAndDoc(t,"outerWidth");return W.getDimension(r,"width",e?"margin":"border")}outerWidth(t){return W.outerWidth(this,t)}static animate(t,e,r){return W._preElems(t,"animate").forEach((t=>t.animate(e,r))),t}animate(t,e){return W.animate(this,t,e)}static offset(t){const e=W._preElem(t,"offset").getBoundingClientRect(),r=window.scrollY||document.documentElement.scrollTop,o=window.scrollX||document.documentElement.scrollLeft;return{top:e.top+r,left:e.left+o}}offset(){return W.offset(this)}static position(t){const e=W._preHtmlElem(t,"position");let r,o,n={top:0,left:0};if("fixed"===window.getComputedStyle(e).position)o=e.getBoundingClientRect();else{o=W.offset(e),r=e.offsetParent||document.documentElement;const{position:t}=window.getComputedStyle(r);for(;r instanceof HTMLElement&&(r===document.body||r===document.documentElement)&&"static"===t;)r=r.parentNode;if(r instanceof HTMLElement&&r!==e&&1===r.nodeType){const{borderTopWidth:t,borderLeftWidth:e}=W.cssFloats(r,["borderTopWidth","borderLeftWidth"]);n=W.offset(r),n.top+=t,n.left+=e}}return{top:o.top-n.top-W.cssFloat(e,"marginTop"),left:o.left-n.left-W.cssFloat(e,"marginLeft")}}position(){return W.position(this)}static offsetParent(t){let e=W._preHtmlElem(t,"offsetParent").offsetParent;for(;e instanceof HTMLElement&&"static"===window.getComputedStyle(e).position;)e=e.offsetParent;return e instanceof HTMLElement?e:document.documentElement}offsetParent(){return W.offsetParent(this)}static scrollTop(t){const e=W._preElemAndWindow(t,"scrollTop");return W.isWindow(e)?e.pageYOffset:9===e.nodeType?e.defaultView.pageYOffset:e.scrollTop}scrollTop(){return W.scrollTop(this)}static scrollLeft(t){const e=W._preElemAndWindow(t,"scrollLeft");return W.isWindow(e)?e.pageXOffset:9===e.nodeType?e.defaultView.pageXOffset:e.scrollLeft}scrollLeft(){return W.scrollLeft(this)}static easings={linear:t=>t,easeInQuad:t=>t*t,easeOutQuad:t=>t*(2-t),easeInOutQuad:t=>t<.5?2*t*t:(4-2*t)*t-1,easeInCubic:t=>t*t*t,easeOutCubic:t=>--t*t*t+1,easeInOutCubic:t=>t<.5?4*t*t*t:(t-1)*(2*t-2)*(2*t-2)+1};static scrollToXY(t,{targetX:e,targetY:r,duration:o,easing:n,onAnimation:i}={}){if(void 0!==e&&"number"!=typeof e)throw new TypeError("`targetX` must be a number if provided.");if(void 0!==r&&"number"!=typeof r)throw new TypeError("`targetY` must be a number if provided.");if(void 0!==o&&"number"!=typeof o)throw new TypeError("`duration` must be a number if provided.");if(void 0!==n&&"string"!=typeof n)throw new TypeError("`easing` must be a string if provided.");if(void 0!==n&&"function"!=typeof W.easings[n])throw new TypeError(`Unknown easing function: "${n}".`);if(void 0!==i&&"function"!=typeof i)throw new TypeError("`onAnimation` must be a function if provided.");const l=(t,e,r,o)=>{if(t instanceof Window)window.scrollTo(e,r);else if(9===t.nodeType)t.defaultView.scrollTo(e,r);else{const o=t instanceof Window?window.scrollX:t.scrollLeft,n=t instanceof Window?window.scrollY:t.scrollTop;o!==e&&(t.scrollLeft=e),n!==r&&(t.scrollTop=r)}"function"==typeof i&&i({x:e,y:r,isComplete:o>=1,time:o})};return W._preElemsAndWindow(t,"scrollToXY").forEach((t=>{const i=t instanceof Window?window.scrollX:t.scrollLeft,s=t instanceof Window?window.scrollY:t.scrollTop,a=e??i,c=r??s,p=a-i,m=c-s,u="string"==typeof n&&W.easings[n]||null;if("number"!=typeof o||"function"!=typeof u)return l(t,a,c,1);const d=performance.now(),f=o??0;requestAnimationFrame((function e(r){if("function"!=typeof u)return;const o=Math.min(1,(r-d)/f),n=u(o);l(t,i+p*n,s+m*n,o),o<1&&requestAnimationFrame(e)}))})),t}scrollToXY({targetX:t,targetY:e,duration:r,easing:o,onAnimation:n}={}){return W.scrollToXY(this,{targetX:t,targetY:e,duration:r,easing:o,onAnimation:n})}static setScrollTop(t,e){if("number"!=typeof e)throw new TypeError("ScrollTop value must be a number.");return W.scrollToXY(t,{targetY:e})}setScrollTop(t){return W.setScrollTop(this,t)}static setScrollLeft(t,e){if("number"!=typeof e)throw new TypeError("ScrollLeft value must be a number.");return W.scrollToXY(t,{targetX:e})}setScrollLeft(t){return W.setScrollLeft(this,t)}static borderWidth(t){const e=W._preElem(t,"borderWidth"),{borderLeftWidth:r,borderRightWidth:o,borderTopWidth:n,borderBottomWidth:i}=W.cssFloats(e,["borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"]);return{x:r+o,y:n+i,left:r,right:o,top:n,bottom:i}}borderWidth(){return W.borderWidth(this)}static border(t){const e=W._preElem(t,"border"),{borderLeft:r,borderRight:o,borderTop:n,borderBottom:i}=W.cssFloats(e,["borderLeft","borderRight","borderTop","borderBottom"]);return{x:r+o,y:n+i,left:r,right:o,top:n,bottom:i}}border(){return W.border(this)}static margin(t){const e=W._preElem(t,"margin"),{marginLeft:r,marginRight:o,marginTop:n,marginBottom:i}=W.cssFloats(e,["marginLeft","marginRight","marginTop","marginBottom"]);return{x:r+o,y:n+i,left:r,right:o,top:n,bottom:i}}margin(){return W.margin(this)}static padding(t){const e=W._preElem(t,"padding"),{paddingLeft:r,paddingRight:o,paddingTop:n,paddingBottom:i}=W.cssFloats(e,["paddingLeft","paddingRight","paddingTop","paddingBottom"]);return{x:r+o,y:n+i,left:r,right:o,top:n,bottom:i}}padding(){return W.padding(this)}static addClass(t,...e){return W._preElems(t,"addClass").forEach((t=>t.classList.add(...e))),t}addClass(...t){return W.addClass(this,...t)}static removeClass(t,...e){return W._preElems(t,"removeClass").forEach((t=>t.classList.remove(...e))),t}removeClass(...t){return W.removeClass(this,...t)}static replaceClass(t,e,r){if("string"!=typeof e)throw new TypeError('The "token" parameter must be a string.');if("string"!=typeof r)throw new TypeError('The "newToken" parameter must be a string.');const o=[];return W._preElems(t,"replaceClass").forEach((t=>o.push(t.classList.replace(e,r)))),o}replaceClass(t,e){return W.replaceClass(this,t,e)[0]}static classItem(t,e){const r=W._preElem(t,"classItem");if("number"!=typeof e)throw new TypeError('The "index" parameter must be a number.');return r.classList.item(e)}classItem(t){return W.classItem(this,t)}static toggleClass(t,e,r){if("string"!=typeof e)throw new TypeError('The "token" parameter must be a string.');if(void 0!==r&&"boolean"!=typeof r)throw new TypeError('The "force" parameter must be a boolean.');const o=[];return W._preElems(t,"toggleClass").forEach((t=>o.push(t.classList.toggle(e,r)))),o}toggleClass(t,e){return W.toggleClass(this,t,e)[0]}static hasClass(t,e){const r=W._preElem(t,"hasClass");if("string"!=typeof e)throw new TypeError('The "token" parameter must be a string.');return r.classList.contains(e)}hasClass(t){return W.hasClass(this,t)}static classLength(t){return W._preElem(t,"classLength").classList.length}classLength(){return W.classLength(this)}static classList(t){return W._preElem(t,"classList").classList.values().toArray()}classList(){return W.classList(this)}static tagName(t){return W._preElem(t,"tagName").tagName}tagName(){return W.tagName(this)}static id(t){return W._preElem(t,"id").id}id(){return W.id(this)}static text(t){return W._preElem(t,"text").textContent}text(){return W.text(this)}static setText(t,e){if("string"!=typeof e)throw new Error("Value is not a valid string.");return W._preElems(t,"setText").forEach((t=>t.textContent=e)),t}setText(t){return W.setText(this,t)}static empty(t){return W._preElems(t,"empty").forEach((t=>t.textContent="")),t}empty(){return W.empty(this)}static html(t,e){return W._preElem(t,"html").getHTML(e)}html(t){return W.html(this,t)}static setHtml(t,e){if("string"!=typeof e)throw new Error("Value is not a valid string.");return W._preElems(t,"setHtml").forEach((t=>t.innerHTML=e)),t}setHtml(t){return W.setHtml(this,t)}static _valHooks={option:{get:t=>{const e=t.getAttribute("value");return null!=e?e:t.textContent}},select:{get:t=>{const e=t.options,r=t.selectedIndex,o="select-one"===t.type,n=o?r+1:e.length,i=[];let l=r<0?n:o?r:0;for(;l<n;l++){const t=e[l],n=t.parentNode;if((t.selected||l===r)&&!t.disabled&&(!n||!n.disabled||"OPTGROUP"!==n.tagName)){const e=W._valHooks.option.get(t);if(o)return e;i.push(e)}}return i},set:(t,e)=>{const r=t.options,o=Array.isArray(e)?e.map(String):[String(e)];let n=!1;for(let t=0;t<r.length;t++){const e=r[t],i=W._valHooks.option.get(e);"string"==typeof i&&(e.selected=o.includes(i))&&(n=!0)}return n||(t.selectedIndex=-1),o}},radio:{get:t=>t.checked?"on":"off",set(t,e){if("boolean"==typeof e){const r=t.closest("label");return e&&r&&r.querySelectorAll('input[type="radio"]').forEach((e=>{e instanceof HTMLInputElement&&e!==t&&(e.checked=!1)})),t.checked=e,e}}},checkbox:{get:t=>t.checked?"on":"off",set(t,e){if("boolean"==typeof e)return t.checked=e,e}}};static setVal(t,e){return W._preInputElems(t,"setVal").forEach((t=>{if(1!==t.nodeType)return;let r="function"==typeof e?e(t,W.val(t)):e;null==r?r="":"number"==typeof r?r=String(r):Array.isArray(r)&&(r=(t=>{const e=[];for(let o=0;o<t.length;o++)e.push(null==(r=t[o])?"":String(r));var r;return e})(r));const o=W._valHooks[t.type]||W._valHooks[t.nodeName.toLowerCase()];if(!o||"function"!=typeof o.set||void 0===o.set(t,r,"value")){if("string"!=typeof r&&"boolean"!=typeof r)throw new Error(`Invalid setValue "${typeof r}" value.`);"string"==typeof r&&(t.value=r)}})),t}setVal(t){return W.setVal(this,t)}static _valTypes={string:t=>t.value,date:t=>t.valueAsDate,number:t=>t.valueAsNumber};static _getValByType(t,e,r){if("string"!=typeof e)throw new TypeError('The "type" must be a string.');if("string"!=typeof r)throw new TypeError('The "where" must be a string.');if(!(t instanceof HTMLInputElement))throw new Error(`Provided element is not an HTMLInputElement in ${r}().`);if("function"!=typeof W._valTypes[e])throw new Error(`No handler found for type "${e}" in ${r}().`);return W._valTypes[e](t)}static _val(t,e,r){const o=W._preInputElem(t,e),n=W._valHooks[o.type]||W._valHooks[o.nodeName.toLowerCase()];if(n&&"function"==typeof n.get){const t=n.get(o,"value",r);if(void 0!==t)return"string"==typeof t?t.replace(/\r/g,""):t}return W._getValByType(o,r,e)}_val(t,e){return W._val(this,t,e)}static val(t){return W._val(t,"val","string")}val(){return W.val(this)}static valTxt(t){const e=W._val(t,"valTxt","string");if("string"!=typeof e&&null!==e)throw new Error("Value is not a valid string.");return null==e?"":"string"==typeof e?e.replace(/\r/g,""):e}valTxt(){return W.valTxt(this)}static _valArr(t,e,r){const o=W._val(t,e,r);if(!Array.isArray(o))throw new Error(`Value expected an array but got ${typeof o}.`);return o}_valArr(t,e){return W._valArr(this,t,e)}static valArr(t){return W._valArr(t,"valArr","string")}valArr(){return W.valArr(this)}static valNb(t){if(!(W._preInputElem(t,"valNb")instanceof HTMLInputElement))throw new Error("Element must be an input element.");const e=W._val(t,"valNb","number");if(Number.isNaN(e))throw new Error("Value is not a valid number.");return e}valNb(){return W.valNb(this)}static valDate(t){if(!(W._preInputElem(t,"valDate")instanceof HTMLInputElement))throw new Error("Element must be an input element.");const e=W._val(t,"valDate","date");if(!(e instanceof Date))throw new Error("Value is not a valid date.");return e}valDate(){return W.valDate(this)}static valBool(t){const e=W._preInputElem(t,"valBool");if(!(e instanceof HTMLInputElement))throw new Error("Element must be an input element.");return"on"===W.val(e)}valBool(){return W.valBool(this)}static on(t,e,r,o){if("string"!=typeof e)throw new TypeError("The event name must be a string.");return W._preEventTargetElems(t,"on").forEach((t=>{t.addEventListener(e,r,o),k.has(t)||k.set(t,{});const n=k.get(t);n&&(Array.isArray(n[e])||(n[e]=[]),n[e].push({handler:r,options:o}))})),t}on(t,e,r){return W.on(this,t,e,r)}static once(t,e,r,o={}){if("string"!=typeof e)throw new TypeError("The event name must be a string.");return W._preEventTargetElems(t,"once").forEach((t=>{const n=o=>{W.off(t,e,n),r(o)};W.on(t,e,n,"boolean"==typeof o?o:{...o,once:!0})})),t}once(t,e,r={}){return W.once(this,t,e,r)}static off(t,e,r,o){if("string"!=typeof e)throw new TypeError("The event name must be a string.");return W._preEventTargetElems(t,"off").forEach((t=>{t.removeEventListener(e,r,o);const n=k.get(t);n&&n[e]&&(n[e]=n[e].filter((t=>t.handler!==r)),0===n[e].length&&delete n[e])})),t}off(t,e,r){return W.off(this,t,e,r)}static offAll(t,e){if("string"!=typeof e)throw new TypeError("The event name must be a string.");return W._preEventTargetElems(t,"offAll").forEach((t=>{const r=k.get(t);if(r&&r[e]){for(const o of r[e])t.removeEventListener(e,o.handler,o.options);delete r[e]}})),t}offAll(t){return W.offAll(this,t)}static offAllTypes(t,e=null){if(null!==e&&"function"!=typeof e)throw new TypeError('The "filterFn" must be a function.');return W._preEventTargetElems(t,"offAllTypes").forEach((t=>{const r=k.get(t);if(r){for(const o in r)for(const n of r[o])("function"!=typeof e||e(n.handler,o))&&t.removeEventListener(o,n.handler,n.options);k.delete(t)}})),t}offAllTypes(t=null){return W.offAllTypes(this,t)}static trigger(t,e,r={}){if("string"!=typeof e)throw new TypeError("The event name must be a string.");return W._preEventTargetElems(t,"trigger").forEach((t=>{const o=r instanceof Event||r instanceof CustomEvent?r:new CustomEvent(e,{bubbles:!0,cancelable:!0,detail:r});t.dispatchEvent(o)})),t}trigger(t,e={}){return W.trigger(this,t,e)}static _propFix={for:"htmlFor",class:"className"};static attr(t,e){if("string"!=typeof e)throw new TypeError('The "name" must be a string.');return W._preElem(t,"attr").getAttribute(e)}attr(t){return W.attr(this,t)}static setAttr(t,e,r=null){if("string"!=typeof e)throw new TypeError('The "name" must be a string.');if(null!==r&&"string"!=typeof r)throw new TypeError('The "value" must be a string.');return W._preElems(t,"setAttr").forEach((t=>{null===r?t.removeAttribute(e):t.setAttribute(e,r)})),t}setAttr(t,e){return W.setAttr(this,t,e)}static removeAttr(t,e){if("string"!=typeof e)throw new TypeError('The "name" must be a string.');return W._preElems(t,"removeAttr").forEach((t=>t.removeAttribute(e))),t}removeAttr(t){return W.removeAttr(this,t)}static hasAttr(t,e){if("string"!=typeof e)throw new TypeError('The "name" must be a string.');return W._preElem(t,"hasAttr").hasAttribute(e)}hasAttr(t){return W.hasAttr(this,t)}static hasProp(t,e){if("string"!=typeof e)throw new TypeError('The "name" must be a string.');return!!W._preElem(t,"hasProp")[W._propFix[e]||e]}hasProp(t){return W.hasProp(this,t)}static addProp(t,e){if("string"!=typeof e)throw new TypeError('The "name" must be a string.');return W._preElems(t,"addProp").forEach((t=>{t[e=W._propFix[e]||e]=!0})),t}addProp(t){return W.addProp(this,t)}static removeProp(t,e){if("string"!=typeof e)throw new TypeError('The "name" must be a string.');return W._preElems(t,"removeProp").forEach((t=>{t[e=W._propFix[e]||e]=!1})),t}removeProp(t){return W.removeProp(this,t)}static toggleProp(t,e,r){if("string"!=typeof e)throw new TypeError('The "name" must be a string.');if(void 0!==r&&"boolean"!=typeof r)throw new TypeError('The "force" must be a boolean.');W._preElems(t,"toggleProp").forEach((t=>{const o=W._propFix[e]||e;(void 0===r?!t[o]:r)?W.addProp(t,e):W.removeProp(t,e)}))}toggleProp(t,e){return W.toggleProp(this,t,e)}static remove(t){return W._preElems(t,"remove").forEach((t=>t.remove())),t}remove(){return W.remove(this)}static index(t,e=null){const r=W._preElem(t,"index");if(!r)return-1;if(!e)return Array.prototype.indexOf.call(r.parentNode?.children||[],r);if(e){const t="string"==typeof e?document.querySelectorAll(e):W._preElems(e,"index");return Array.prototype.indexOf.call(t,r)}return-1}index(t){return W.index(this,t)}static _getCustomRect(t,e){const r={height:0,width:0,x:0,y:0,bottom:0,left:0,right:0,top:0,toJSON:function(){throw new Error("Function not implemented.")}};for(const e in t)"number"==typeof t[e]&&(r[e]=t[e]);if("object"!=typeof e||null===e||Array.isArray(e))throw new Error("");const{height:o=0,width:n=0,top:i=0,bottom:l=0,left:s=0,right:a=0}=e;if("number"!=typeof o)throw new Error("");if("number"!=typeof n)throw new Error("");if("number"!=typeof i)throw new Error("");if("number"!=typeof l)throw new Error("");if("number"!=typeof s)throw new Error("");if("number"!=typeof a)throw new Error("");return r.height+=o,r.width+=n,r.top+=i,r.bottom+=l,r.left+=s,r.right+=a,r}static isCollWith(t,e,r={}){const o=W._getCustomRect(W._preElem(t,"isCollWith").getBoundingClientRect(),r),n=W._preElem(e,"isCollWith").getBoundingClientRect();return T(o,n)}isCollWith(t,e){return W.isCollWith(this,t,e)}static isCollPerfWith(t,e,r={}){const o=W._getCustomRect(W._preElem(t,"isCollPerfWith").getBoundingClientRect(),r),n=W._preElem(e,"isCollPerfWith").getBoundingClientRect();return v(o,n)}isCollPerfWith(t,e){return W.isCollPerfWith(this,t,e)}static _isCollWithLock(t,e,r,o,n){const i=L[n];if(t)return i.has(o)||i.set(o,!0),!0;if(i.has(o)){let t=!1;switch(n){case"top":t=_(e,r);break;case"bottom":t=C(e,r);break;case"left":t=S(e,r);break;case"right":t=A(e,r)}return t&&i.delete(o),i.has(o)}return!1}static isCollWithLock(t,e,r,o={}){const n=W._preElem(t,"isCollWithLock"),i=W._preElem(e,"isCollWithLock"),l=W._getCustomRect(n.getBoundingClientRect(),o),s=i.getBoundingClientRect(),a=T(l,s);return W._isCollWithLock(a,l,s,n,r)}isCollWithLock(t,e,r){return W.isCollWithLock(this,t,e,r)}static isCollPerfWithLock(t,e,r,o={}){const n=W._preElem(t,"isCollPerfWithLock"),i=W._preElem(e,"isCollPerfWithLock"),l=W._getCustomRect(n.getBoundingClientRect(),o),s=i.getBoundingClientRect(),a=v(l,s);return W._isCollWithLock(a,l,s,n,r)}isCollPerfWithLock(t,e,r){return W.isCollPerfWithLock(this,t,e,r)}static resetCollLock(t){const e=W._preElem(t,"resetCollLock");let r=!1;for(const t of["top","bottom","left","right"])L[t].has(e)&&(L[t].delete(e),r=!0);return r}resetCollLock(){return W.resetCollLock(this)}static resetCollLockDir(t,e){const r=W._preElem(t,"resetCollLockDir"),o=L[e];return!!o.has(r)&&(o.delete(r),!0)}resetCollLockDir(t){return W.resetCollLockDir(this,t)}static isInViewport(t){const e=W._preElem(t,"isInViewport");if(!e.checkVisibility({contentVisibilityAuto:!1,opacityProperty:!1,visibilityProperty:!1}))return!1;const r=W.offset(e).top,o=r+W.outerHeight(e),n=W.scrollTop(window),i=n+W.height(window);return o>n&&r<i}isInViewport(){return W.isInViewport(this)}static isScrolledIntoView(t){const e=W._preElem(t,"isScrolledIntoView");if(!e.checkVisibility({contentVisibilityAuto:!1,opacityProperty:!1,visibilityProperty:!1}))return!1;const r=W.scrollTop(window),o=r+W.height(window),n=W.offset(e).top;return n+W.height(e)<=o&&n>=r}isScrolledIntoView(){return W.isScrolledIntoView(this)}static isInContainer(t,e){const r=W._preElem(t,"isInContainer"),o=W._preElem(e,"isInContainer");if(!r.checkVisibility({contentVisibilityAuto:!1,opacityProperty:!1,visibilityProperty:!1}))return!1;const n=r.getBoundingClientRect(),i=o.getBoundingClientRect(),l=n.bottom>i.top&&n.top<i.bottom,s=n.right>i.left&&n.left<i.right;return l&&s}isInContainer(t){return W.isInContainer(this,t)}static isFullyInContainer(t,e){const r=W._preElem(t,"isScrolledIntoView"),o=W._preElem(e,"isInContainer");if(!r.checkVisibility({contentVisibilityAuto:!1,opacityProperty:!1,visibilityProperty:!1}))return!1;const n=r.getBoundingClientRect(),i=o.getBoundingClientRect();return n.top>=i.top&&n.bottom<=i.bottom&&n.left>=i.left&&n.right<=i.right}isFullyInContainer(t){return W.isFullyInContainer(this,t)}static hasScroll(t){const e=W._preElem(t,"hasScroll");return{v:e.scrollHeight>e.clientHeight,h:e.scrollWidth>e.clientWidth}}hasScroll(){return W.hasScroll(this)}}const N=W;window.TinyHtml=e.TinyHtml})();
|
|
1
|
+
(()=>{"use strict";var t={d:(e,r)=>{for(var o in r)t.o(r,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.d(e,{TinyHtml:()=>P});var r={};t.r(r),t.d(r,{areElsCollBottom:()=>n,areElsCollLeft:()=>i,areElsCollPerfBottom:()=>a,areElsCollPerfLeft:()=>c,areElsCollPerfRight:()=>p,areElsCollPerfTop:()=>l,areElsCollRight:()=>s,areElsCollTop:()=>o,areElsColliding:()=>m,areElsPerfColliding:()=>u,getElsCollDetails:()=>w,getElsCollDirDepth:()=>b,getElsCollOverlap:()=>h,getElsCollOverlapPos:()=>g,getElsColliding:()=>d,getElsPerfColliding:()=>f,getElsRelativeCenterOffset:()=>E,getRectCenter:()=>y});const o=(t,e)=>t.bottom<e.top,n=(t,e)=>t.top>e.bottom,i=(t,e)=>t.right<e.left,s=(t,e)=>t.left>e.right,l=(t,e)=>t.bottom<=e.top,a=(t,e)=>t.top>=e.bottom,c=(t,e)=>t.right<=e.left,p=(t,e)=>t.left>=e.right,m=(t,e)=>!(i(t,e)||s(t,e)||o(t,e)||n(t,e)),u=(t,e)=>!(c(t,e)||p(t,e)||l(t,e)||a(t,e)),d=(t,e)=>i(t,e)?"left":s(t,e)?"right":o(t,e)?"top":n(t,e)?"bottom":null,f=(t,e)=>c(t,e)?"left":p(t,e)?"right":l(t,e)?"top":a(t,e)?"bottom":null,h=(t,e)=>({overlapLeft:e.right-t.left,overlapRight:t.right-e.left,overlapTop:e.bottom-t.top,overlapBottom:t.bottom-e.top}),g=({overlapLeft:t=-1,overlapRight:e=-1,overlapTop:r=-1,overlapBottom:o=-1}={})=>({dirX:t<e?"right":"left",dirY:r<o?"bottom":"top"}),y=t=>({x:t.left+t.width/2,y:t.top+t.height/2});function E(t,e){const r=t.left+t.width/2,o=t.top+t.height/2;return{x:e.left+e.width/2-r,y:e.top+e.height/2-o}}function b(t,e){if(!u(t,e))return{inDir:null,dirX:null,dirY:null,depthX:0,depthY:0};const{overlapLeft:r,overlapRight:o,overlapTop:n,overlapBottom:i}=h(t,e),{dirX:s,dirY:l}=g({overlapLeft:r,overlapRight:o,overlapTop:n,overlapBottom:i}),a=Math.min(r,o),c=Math.min(n,i);let p;return p=a<c?s:l,{inDir:p,dirX:s,dirY:l,depthX:a,depthY:c}}function w(t,e){const r=u(t,e),o={in:null,x:null,y:null},n={y:null,x:null},i={top:0,bottom:0,left:0,right:0},{overlapLeft:s,overlapRight:l,overlapTop:a,overlapBottom:c}=h(e,t);i.top=a,i.bottom=c,i.left=s,i.right=l;const p=Object.entries(i).filter((([,t])=>t>0)).sort(((t,e)=>t[1]-e[1])),{dirX:m,dirY:d}=g({overlapLeft:l,overlapRight:s,overlapTop:c,overlapBottom:a});return o.y=d,o.x=m,i.bottom<0?n.y="bottom":i.top<0&&(n.y="top"),i.left<0?n.x="left":i.right<0&&(n.x="right"),o.in=r?i.top===i.bottom&&i.bottom===i.left&&i.left===i.right?"center":p.length?p[0][0]:"top":null,{dirs:o,depth:i,isNeg:n}}const{areElsColliding:T,areElsPerfColliding:v,areElsCollTop:_,areElsCollBottom:C,areElsCollLeft:S,areElsCollRight:A}=r,x=new WeakMap,k=new WeakMap,L={top:new WeakMap,bottom:new WeakMap,left:new WeakMap,right:new WeakMap};class W{static Utils={...r};static createElement(t,e){if("string"!=typeof t)throw new TypeError("[TinyHtml] createElement(): The tagName must be a string.");if(void 0!==e&&"object"!=typeof e)throw new TypeError("[TinyHtml] createElement(): The ops must be a object.");return new W(document.createElement(t,e))}static createTextNode(t){if("string"!=typeof t)throw new TypeError("[TinyHtml] createTextNode(): The value must be a string.");return new W(document.createTextNode(t))}static createElementFromHTML(t){const e=document.createElement("template");if(!(t=t.trim()).startsWith("<"))return W.createTextNode(t);if(e.innerHTML=t,!(e.content.firstChild instanceof Element))throw new Error("");return new W(e.content.firstChild)}static query(t,e=document){const r=e.querySelector(t);return r?new W(r):null}querySelector(t){return W.query(t,W._preElem(this,"query"))}static queryAll(t,e=document){const r=e.querySelectorAll(t);return W.toTinyElm([...r])}querySelectorAll(t){return W.queryAll(t,W._preElem(this,"queryAll"))}static getById(t){const e=document.getElementById(t);return e?new W(e):null}static getByClassName(t,e=document){const r=e.getElementsByClassName(t);return W.toTinyElm([...r])}getElementsByClassName(t){return W.getByClassName(t,W._preElem(this,"getByClassName"))}static getByName(t){const e=document.getElementsByName(t);return W.toTinyElm([...e])}static getByTagNameNS(t,e="http://www.w3.org/1999/xhtml",r=document){const o=r.getElementsByTagNameNS(e,t);return W.toTinyElm([...o])}getElementsByTagNameNS(t,e="http://www.w3.org/1999/xhtml"){return W.getByTagNameNS(t,e,W._preElem(this,"getByTagNameNS"))}get(){return this.#t}_getElement(t){if(!(this.#t instanceof Element||this.#t instanceof Window||this.#t instanceof Document))throw new Error(`[TinyHtml] Invalid Element in ${t}().`);return this.#t}static _preElemsTemplate(t,e,r,o){const n=t=>t.map((t=>{const n=t instanceof W?t._getElement(e):t;let i=!1;for(const t of r)if(n instanceof t){i=!0;break}if(!i)throw new Error(`[TinyHtml] Invalid element of the list "${o.join(",")}" in ${e}().`);return n}));return Array.isArray(t)?n(t):n([t])}static _preElemTemplate(t,e,r,o,n=!1){const i=t=>{const i=t[0];let s=i instanceof W?i._getElement(e):i,l=!1;for(const t of r)if(s instanceof t){l=!0;break}if(n&&null==s&&(s=null,l=!0),!l)throw new Error(`[TinyHtml] Invalid element of the list "${o.join(",")}" in ${e}().`);return s};if(!Array.isArray(t))return i([t]);if(t.length>1)throw new Error(`[TinyHtml] Invalid element amount in ${e}() (Received ${t.length}/1).`);return i(t)}static _preElems(t,e){return W._preElemsTemplate(t,e,[Element],["Element"])}static _preElem(t,e){return W._preElemTemplate(t,e,[Element],["Element"])}static _preNodeElems(t,e){return W._preElemsTemplate(t,e,[Node],["Node"])}static _preNodeElem(t,e){return W._preElemTemplate(t,e,[Node],["Node"])}static _preNodeElemWithNull(t,e){return W._preElemTemplate(t,e,[Node],["Node"],!0)}static _preHtmlElems(t,e){return W._preElemsTemplate(t,e,[HTMLElement],["HTMLElement"])}static _preHtmlElem(t,e){return W._preElemTemplate(t,e,[HTMLElement],["HTMLElement"])}static _preInputElems(t,e){return W._preElemsTemplate(t,e,[HTMLInputElement,HTMLSelectElement,HTMLTextAreaElement,HTMLOptionElement],["HTMLInputElement","HTMLSelectElement","HTMLTextAreaElement","HTMLOptionElement"])}static _preInputElem(t,e){return W._preElemTemplate(t,e,[HTMLInputElement,HTMLSelectElement,HTMLTextAreaElement,HTMLOptionElement],["HTMLInputElement","HTMLSelectElement","HTMLTextAreaElement","HTMLOptionElement"])}static _preEventTargetElems(t,e){return W._preElemsTemplate(t,e,[EventTarget],["EventTarget"])}static _preEventTargetElem(t,e){return W._preElemTemplate(t,e,[EventTarget],["EventTarget"])}static _preElemsAndWindow(t,e){return W._preElemsTemplate(t,e,[Element,Window],["Element","Window"])}static _preElemAndWindow(t,e){return W._preElemTemplate(t,e,[Element,Window],["Element","Window"])}static _preElemsAndWinAndDoc(t,e){return W._preElemsTemplate(t,e,[Element,Window,Document],["Element","Window","Document"]).map((t=>t instanceof Document?t.documentElement:t))}static _preElemAndWinAndDoc(t,e){const r=W._preElemTemplate(t,e,[Element,Window,Document],["Element","Window","Document"]);return r instanceof Document?r.documentElement:r}static _preElemsWithDoc(t,e){return W._preElemsTemplate(t,e,[Element,Document],["Element","Document"])}static _preElemWithDoc(t,e){return W._preElemTemplate(t,e,[Element,Document],["Element","Document"])}static toTinyElm(t){const e=t=>t.map((t=>t instanceof W?t:new W(t)));return Array.isArray(t)?e(t):e([t])}static fromTinyElm(t){const e=t=>t.map((t=>t instanceof W?t._getElement("fromTinyElm"):t));return Array.isArray(t)?e(t):e([t])}static winnow(t,e,r,o=!1){if("boolean"!=typeof o)throw new TypeError('The "not" must be a boolean.');if("function"==typeof e)return W._preElems(t,r).filter(((t,r)=>!!e.call(t,r,t)!==o));if(e instanceof Element)return W._preElems(t,r).filter((t=>t===e!==o));if(Array.isArray(e)||"string"!=typeof e&&null!=e.length)return W._preElems(t,r).filter((t=>e.includes(t)!==o));let n=e;return o&&(n=`:not(${n})`),W._preElems(t,r).filter((t=>1===t.nodeType&&t.matches(n)))}static filter(t,e,r=!1){return r&&(e=`:not(${e})`),W._preElems(t,"filter").filter((t=>1===t.nodeType&&t.matches(e)))}static filterOnly(t,e){return W.winnow(t,e,"filterOnly",!1)}static not(t,e){return W.winnow(t,e,"not",!0)}not(t){return W.not(this,t)}static find(t,e){const r=[];for(const o of W._preElems(t,"find"))r.push(...o.querySelectorAll(e));return[...new Set(r)]}find(t){return W.find(this,t)}static is(t,e){return W.winnow(t,e,"is",!1).length>0}is(t){return W.is(this,t)}static has(t,e){const r="string"==typeof e?[...document.querySelectorAll(e)]:W._preElems(e,"has");return W._preElems(t,"has").filter((t=>r.some((e=>t&&t.contains(e)))))}has(t){return W.has(this,t).length>0}static closest(t,e,r){const o=[];for(const n of W._preElems(t,"closest")){let t=n;for(;t&&t!==r;){if(1===t.nodeType&&("string"==typeof e?t.matches(e):t===e)){o.push(t);break}t=t.parentElement}}return[...new Set(o)]}closest(t,e){return W.closest(this,t,e)}static isSameDom(t,e){return W._preNodeElem(t,"isSameDom")===W._preNodeElem(e,"isSameDom")}isSameDom(t){return W.isSameDom(this,t)}_data={};static _dataSelector={public:(t,e)=>{const r=W._preElem(e,t);let o=k.get(r);return o||(o={},k.set(r,o)),o},private:(t,e)=>{if(!(e instanceof W))throw new Error(`Element must be a TinyHtml instance to execute ${t}().`);return e._data}};static data(t,e,r=!1){const o=W._dataSelector[r?"private":"public"]("data",t);if(null==e)return{...o};if("string"!=typeof e)throw new TypeError("The key must be a string.");return o.hasOwnProperty(e)?o[e]:void 0}data(t,e){return W.data(this,t,e)}static setData(t,e,r,o=!1){const n=W._dataSelector[o?"private":"public"]("setData",t);if("string"!=typeof e)throw new TypeError("The key must be a string.");return n[e]=r,t}setData(t,e,r=!1){return W.setData(this,t,e,r)}static _getSibling(t,e,r){let o=W._preNodeElemWithNull(t,r);for(;o&&(o=o[e])&&1!==o.nodeType;);return o instanceof Node?o:null}static _getSiblings(t,e){let r=t;const o=[];for(;r;r=r.nextSibling)1===r.nodeType&&r!==e&&o.push(r);return o}static domDir(t,e,r,o="domDir"){if("string"!=typeof e)throw new TypeError('The "direction" must be a string.');let n=W._preNodeElemWithNull(t,o);const i=[];for(;n&&(n=n[e]);)if(1===n.nodeType){if(r&&("string"==typeof r?n.matches(r):n===r))break;i.push(n)}return i}static parent(t){let e=W._preNodeElemWithNull(t,"parent");const r=e?e.parentNode:null;return r&&11!==r.nodeType?r:null}parent(){return W.parent(this)}static parents(t,e){return W.domDir(t,"parentNode",e,"parents")}parents(t){return W.parents(this,t)}static next(t){return W._getSibling(t,"nextSibling","next")}next(){return W.next(this)}static prev(t){return W._getSibling(t,"previousSibling","prev")}prev(){return W.prev(this)}static nextAll(t){return W.domDir(t,"nextSibling",void 0,"nextAll")}nextAll(){return W.nextAll(this)}static prevAll(t){return W.domDir(t,"previousSibling",void 0,"prevAll")}prevAll(){return W.prevAll(this)}static nextUntil(t,e){return W.domDir(t,"nextSibling",e,"nextUtil")}nextUntil(t){return W.nextUntil(this,t)}static prevUntil(t,e){return W.domDir(t,"previousSibling",e,"prevUtil")}prevUntil(t){return W.prevUntil(this,t)}static siblings(t){const e=W._preNodeElemWithNull(t,"siblings");return W._getSiblings(e&&e.parentNode?e.parentNode.firstChild:null,e)}siblings(){return W.siblings(this)}static children(t){const e=W._preNodeElemWithNull(t,"children");return W._getSiblings(e?e.firstChild:null)}children(){return W.children(this)}static contents(t){const e=W._preNodeElemWithNull(t,"contents");return e instanceof HTMLIFrameElement&&null!=e.contentDocument&&Object.getPrototypeOf(e.contentDocument)?[e.contentDocument]:e instanceof HTMLTemplateElement?Array.from((e.content||e).childNodes):e?Array.from(e.childNodes):[]}contents(){return W.contents(this)}static clone(t,e=!0){if("boolean"!=typeof e)throw new TypeError('The "deep" must be a boolean.');return W._preNodeElems(t,"clone").map((t=>t.cloneNode(e)))}clone(t){return W.clone(this,t)[0]}static _appendChecker(t,...e){const r=[],o=[...e];for(const e in o)"string"!=typeof o[e]?r.push(W._preNodeElem(o[e],t)):r.push(o[e]);return r}static append(t,...e){return W._preElem(t,"append").append(...W._appendChecker("append",...e)),t}append(...t){return W.append(this,...t)}static prepend(t,...e){return W._preElem(t,"prepend").prepend(...W._appendChecker("prepend",...e)),t}prepend(...t){return W.prepend(this,...t)}static before(t,...e){return W._preElem(t,"before").before(...W._appendChecker("before",...e)),t}before(...t){return W.before(this,...t)}static after(t,...e){return W._preElem(t,"after").after(...W._appendChecker("after",...e)),t}after(...t){return W.after(this,...t)}static replaceWith(t,...e){return W._preElem(t,"replaceWith").replaceWith(...W._appendChecker("replaceWith",...e)),t}replaceWith(...t){return W.replaceWith(this,...t)}static appendTo(t,e){const r=W._preNodeElems(t,"appendTo"),o=W._preNodeElems(e,"appendTo");return o.forEach(((t,e)=>{r.forEach((r=>t.appendChild(e===o.length-1?r:r.cloneNode(!0))))})),t}appendTo(t){return W.appendTo(this,t)}static prependTo(t,e){const r=W._preElems(t,"prependTo"),o=W._preElems(e,"prependTo");return o.forEach(((t,e)=>{r.slice().reverse().forEach((r=>t.prepend(e===o.length-1?r:r.cloneNode(!0))))})),t}prependTo(t){return W.prependTo(this,t)}static insertBefore(t,e,r=null){const o=W._preNodeElem(t,"insertBefore"),n=W._preNodeElem(e,"insertBefore"),i=W._preNodeElemWithNull(r,"insertBefore");if(!n.parentNode)throw new Error("");return n.parentNode.insertBefore(o,i||n),t}insertBefore(t,e){return W.insertBefore(this,t,e)}static insertAfter(t,e,r=null){const o=W._preNodeElem(t,"insertAfter"),n=W._preNodeElem(e,"insertBefore"),i=W._preNodeElemWithNull(r,"insertBefore");if(!n.parentNode)throw new Error("");return n.parentNode.insertBefore(o,i||n.nextSibling),t}insertAfter(t,e){return W.insertAfter(this,t,e)}static replaceAll(t,e){const r=W._preNodeElems(t,"replaceAll"),o=W._preNodeElems(e,"replaceAll");return o.forEach(((t,e)=>{const n=t.parentNode;r.forEach((r=>{n&&n.replaceChild(e===o.length-1?r:r.cloneNode(!0),t)}))})),t}replaceAll(t){return W.replaceAll(this,t)}#t;constructor(t){if(t instanceof W)throw new Error("[TinyHtml] You are trying to put a TinyHtml inside another TinyHtml in constructor.");if(!(t instanceof Element||t instanceof Window||t instanceof Document||t instanceof Text))throw new Error("[TinyHtml] Invalid Target in constructor.");this.#t=t}static isWindow(t){return null!=t&&t===t.window}static css(t){const e=W._preElem(t,"css");return window.getComputedStyle(e)}css(){return W.css(this)}static cssString(t,e){const r=W._preElem(t,"cssString");if("string"!=typeof e)throw new TypeError("The prop must be a string.");const o=window.getComputedStyle(r)[e];return"string"==typeof o?o:"number"==typeof o?o.toString():null}cssString(t){return W.cssString(this,t)}static cssList(t,e){const r=W._preElem(t,"cssList");if(!Array.isArray(e))throw new TypeError("The prop must be an array of strings.");const o=window.getComputedStyle(r),n={};for(const t of e)void 0!==t&&(n[t]=o.getPropertyValue(t));return n}cssList(t){return W.cssList(this,t)}static cssFloat(t,e){const r=W._preElem(t,"cssFloat");if("string"!=typeof e)throw new TypeError("The prop must be a string.");const o=window.getComputedStyle(r)[e];return parseFloat(o)||0}cssFloat(t){return W.cssFloat(this,t)}static cssFloats(t,e){const r=W._preElem(t,"cssFloats");if(!Array.isArray(e))throw new TypeError("The prop must be an array of strings.");const o=window.getComputedStyle(r),n={};for(const t of e)n[t]=parseFloat(o[t])||0;return n}cssFloats(t){return W.cssFloats(this,t)}static#e={alignContent:"align-content",alignItems:"align-items",alignSelf:"align-self",animationDelay:"animation-delay",animationDirection:"animation-direction",animationDuration:"animation-duration",animationFillMode:"animation-fill-mode",animationIterationCount:"animation-iteration-count",animationName:"animation-name",animationPlayState:"animation-play-state",animationTimingFunction:"animation-timing-function",backfaceVisibility:"backface-visibility",backgroundAttachment:"background-attachment",backgroundBlendMode:"background-blend-mode",backgroundClip:"background-clip",backgroundColor:"background-color",backgroundImage:"background-image",backgroundOrigin:"background-origin",backgroundPosition:"background-position",backgroundRepeat:"background-repeat",backgroundSize:"background-size",borderBottom:"border-bottom",borderBottomColor:"border-bottom-color",borderBottomLeftRadius:"border-bottom-left-radius",borderBottomRightRadius:"border-bottom-right-radius",borderBottomStyle:"border-bottom-style",borderBottomWidth:"border-bottom-width",borderCollapse:"border-collapse",borderColor:"border-color",borderImage:"border-image",borderImageOutset:"border-image-outset",borderImageRepeat:"border-image-repeat",borderImageSlice:"border-image-slice",borderImageSource:"border-image-source",borderImageWidth:"border-image-width",borderLeft:"border-left",borderLeftColor:"border-left-color",borderLeftStyle:"border-left-style",borderLeftWidth:"border-left-width",borderRadius:"border-radius",borderRight:"border-right",borderRightColor:"border-right-color",borderRightStyle:"border-right-style",borderRightWidth:"border-right-width",borderSpacing:"border-spacing",borderStyle:"border-style",borderTop:"border-top",borderTopColor:"border-top-color",borderTopLeftRadius:"border-top-left-radius",borderTopRightRadius:"border-top-right-radius",borderTopStyle:"border-top-style",borderTopWidth:"border-top-width",borderWidth:"border-width",boxDecorationBreak:"box-decoration-break",boxShadow:"box-shadow",boxSizing:"box-sizing",breakAfter:"break-after",breakBefore:"break-before",breakInside:"break-inside",captionSide:"caption-side",caretColor:"caret-color",clipPath:"clip-path",columnCount:"column-count",columnFill:"column-fill",columnGap:"column-gap",columnRule:"column-rule",columnRuleColor:"column-rule-color",columnRuleStyle:"column-rule-style",columnRuleWidth:"column-rule-width",columnSpan:"column-span",columnWidth:"column-width",counterIncrement:"counter-increment",counterReset:"counter-reset",emptyCells:"empty-cells",flexBasis:"flex-basis",flexDirection:"flex-direction",flexFlow:"flex-flow",flexGrow:"flex-grow",flexShrink:"flex-shrink",flexWrap:"flex-wrap",fontFamily:"font-family",fontFeatureSettings:"font-feature-settings",fontKerning:"font-kerning",fontLanguageOverride:"font-language-override",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontSynthesis:"font-synthesis",fontVariant:"font-variant",fontVariantAlternates:"font-variant-alternates",fontVariantCaps:"font-variant-caps",fontVariantEastAsian:"font-variant-east-asian",fontVariantLigatures:"font-variant-ligatures",fontVariantNumeric:"font-variant-numeric",fontVariantPosition:"font-variant-position",fontWeight:"font-weight",gridArea:"grid-area",gridAutoColumns:"grid-auto-columns",gridAutoFlow:"grid-auto-flow",gridAutoRows:"grid-auto-rows",gridColumn:"grid-column",gridColumnEnd:"grid-column-end",gridColumnGap:"grid-column-gap",gridColumnStart:"grid-column-start",gridGap:"grid-gap",gridRow:"grid-row",gridRowEnd:"grid-row-end",gridRowGap:"grid-row-gap",gridRowStart:"grid-row-start",gridTemplate:"grid-template",gridTemplateAreas:"grid-template-areas",gridTemplateColumns:"grid-template-columns",gridTemplateRows:"grid-template-rows",imageRendering:"image-rendering",justifyContent:"justify-content",letterSpacing:"letter-spacing",lineBreak:"line-break",lineHeight:"line-height",listStyle:"list-style",listStyleImage:"list-style-image",listStylePosition:"list-style-position",listStyleType:"list-style-type",marginBottom:"margin-bottom",marginLeft:"margin-left",marginRight:"margin-right",marginTop:"margin-top",maskClip:"mask-clip",maskComposite:"mask-composite",maskImage:"mask-image",maskMode:"mask-mode",maskOrigin:"mask-origin",maskPosition:"mask-position",maskRepeat:"mask-repeat",maskSize:"mask-size",maskType:"mask-type",maxHeight:"max-height",maxWidth:"max-width",minHeight:"min-height",minWidth:"min-width",mixBlendMode:"mix-blend-mode",objectFit:"object-fit",objectPosition:"object-position",offsetAnchor:"offset-anchor",offsetDistance:"offset-distance",offsetPath:"offset-path",offsetRotate:"offset-rotate",outlineColor:"outline-color",outlineOffset:"outline-offset",outlineStyle:"outline-style",outlineWidth:"outline-width",overflowAnchor:"overflow-anchor",overflowWrap:"overflow-wrap",overflowX:"overflow-x",overflowY:"overflow-y",paddingBottom:"padding-bottom",paddingLeft:"padding-left",paddingRight:"padding-right",paddingTop:"padding-top",pageBreakAfter:"page-break-after",pageBreakBefore:"page-break-before",pageBreakInside:"page-break-inside",perspectiveOrigin:"perspective-origin",placeContent:"place-content",placeItems:"place-items",placeSelf:"place-self",pointerEvents:"pointer-events",rowGap:"row-gap",scrollBehavior:"scroll-behavior",scrollMargin:"scroll-margin",scrollMarginBlock:"scroll-margin-block",scrollMarginBlockEnd:"scroll-margin-block-end",scrollMarginBlockStart:"scroll-margin-block-start",scrollMarginBottom:"scroll-margin-bottom",scrollMarginInline:"scroll-margin-inline",scrollMarginInlineEnd:"scroll-margin-inline-end",scrollMarginInlineStart:"scroll-margin-inline-start",scrollMarginLeft:"scroll-margin-left",scrollMarginRight:"scroll-margin-right",scrollMarginTop:"scroll-margin-top",scrollPadding:"scroll-padding",scrollPaddingBlock:"scroll-padding-block",scrollPaddingBlockEnd:"scroll-padding-block-end",scrollPaddingBlockStart:"scroll-padding-block-start",scrollPaddingBottom:"scroll-padding-bottom",scrollPaddingInline:"scroll-padding-inline",scrollPaddingInlineEnd:"scroll-padding-inline-end",scrollPaddingInlineStart:"scroll-padding-inline-start",scrollPaddingLeft:"scroll-padding-left",scrollPaddingRight:"scroll-padding-right",scrollPaddingTop:"scroll-padding-top",scrollSnapAlign:"scroll-snap-align",scrollSnapStop:"scroll-snap-stop",scrollSnapType:"scroll-snap-type",shapeImageThreshold:"shape-image-threshold",shapeMargin:"shape-margin",shapeOutside:"shape-outside",tabSize:"tab-size",tableLayout:"table-layout",textAlign:"text-align",textAlignLast:"text-align-last",textCombineUpright:"text-combine-upright",textDecoration:"text-decoration",textDecorationColor:"text-decoration-color",textDecorationLine:"text-decoration-line",textDecorationStyle:"text-decoration-style",textIndent:"text-indent",textJustify:"text-justify",textOrientation:"text-orientation",textOverflow:"text-overflow",textShadow:"text-shadow",textTransform:"text-transform",transformBox:"transform-box",transformOrigin:"transform-origin",transformStyle:"transform-style",transitionDelay:"transition-delay",transitionDuration:"transition-duration",transitionProperty:"transition-property",transitionTimingFunction:"transition-timing-function",unicodeBidi:"unicode-bidi",userSelect:"user-select",verticalAlign:"vertical-align",whiteSpace:"white-space",willChange:"will-change",wordBreak:"word-break",wordSpacing:"word-spacing",wordWrap:"word-wrap",writingMode:"writing-mode",zIndex:"z-index",WebkitTransform:"-webkit-transform",WebkitTransition:"-webkit-transition",WebkitBoxShadow:"-webkit-box-shadow",MozBoxShadow:"-moz-box-shadow",MozTransform:"-moz-transform",MozTransition:"-moz-transition",msTransform:"-ms-transform",msTransition:"-ms-transition"};static cssPropAliases=new Proxy(W.#e,{set:(t,e,r)=>(t[e]=r,W.cssPropRevAliases[r]=e,!0)});static cssPropRevAliases=Object.fromEntries(Object.entries(W.#e).map((([t,e])=>[e,t])));static toStyleKc(t){return"string"==typeof W.cssPropAliases[t]?W.cssPropAliases[t]:t}static toStyleCc(t){return"string"==typeof W.cssPropRevAliases[t]?W.cssPropRevAliases[t]:t}static setStyle(t,e,r=null){return W._preHtmlElems(t,"setStyle").forEach((t=>{if("object"==typeof e)for(const[r,o]of Object.entries(e))t.style.setProperty(W.toStyleKc(r),"string"==typeof o?o:"number"==typeof o?`${o}px`:String(o));else t.style.setProperty(W.toStyleKc(e),r)})),t}setStyle(t,e){return W.setStyle(this,t,e)}static getStyle(t,e){return W._preHtmlElem(t,"getStyle").style.getPropertyValue(W.toStyleKc(e))}getStyle(t){return W.getStyle(this,t)}static style(t,{camelCase:e=!1,rawAttr:r=!1}={}){if("boolean"!=typeof e)throw new TypeError('"camelCase" must be a boolean. Received: '+typeof e);if("boolean"!=typeof r)throw new TypeError('"rawAttr" must be a boolean. Received: '+typeof r);const o=W._preHtmlElem(t,"style"),n={};if(r){const t=(o.getAttribute("style")||"").split(";");for(const r of t){const[t,o]=r.split(":");if(!t||!o)continue;const i=t.trim(),s=o.trim();n[e?W.toStyleCc(i):i]=s}}else{const t=o.style;for(let r=0;r<t.length;r++){const o=t[r],i=t.getPropertyValue(o);n[e?W.toStyleCc(o):o]=i}}return n}style(t){return W.style(this,t)}static removeStyle(t,e){return W._preHtmlElems(t,"removeStyle").forEach((t=>{if(Array.isArray(e))for(const r of e)t.style.removeProperty(W.toStyleKc(r));else t.style.removeProperty(W.toStyleKc(e))})),t}removeStyle(t){return W.removeStyle(this,t)}static toggleStyle(t,e,r,o){return W._preHtmlElems(t,"toggleStyle").forEach((t=>{const n=W.getStyle(t,e).trim()===W.toStyleKc(r)?o:r;W.setStyle(t,e,n)})),t}toggleStyle(t,e,r){return W.toggleStyle(this,t,e,r)}static clearStyle(t){return W._preElems(t,"clearStyle").forEach((t=>t.removeAttribute("style"))),t}clearStyle(){return W.clearStyle(this)}static focus(t){return W._preHtmlElem(t,"focus").focus(),t}focus(){return W.focus(this)}static blur(t){return W._preHtmlElem(t,"blur").blur(),t}blur(){return W.blur(this)}static boolCheck(t){return void 0!==t&&("true"===t||"1"===t||!0===t||"on"===t||"number"==typeof t&&t>0)}static setWinScrollTop(t){if("number"!=typeof t)throw new TypeError("The value must be a number.");W.setScrollTop(window,t)}static setWinScrollLeft(t){if("number"!=typeof t)throw new TypeError("The value must be a number.");W.setScrollLeft(window,t)}static winScrollTop(){return window.scrollY||document.documentElement.scrollTop}static winScrollLeft(){return window.scrollX||document.documentElement.scrollLeft}static winInnerHeight(){return window.innerHeight||document.documentElement.clientHeight}static winInnerWidth(){return window.innerWidth||document.documentElement.clientWidth}static isPageTop(){return 0===window.scrollY}static isPageBottom(){return window.innerHeight+window.scrollY>=document.body.offsetHeight}static getDimension(t,e,r="content"){const o=W._preElemAndWinAndDoc(t,"getDimension");if("string"!=typeof e)throw new TypeError("The type must be a string.");if("string"!=typeof r)throw new TypeError("The extra must be a string.");const n="width"===e?"Width":"Height";if(W.isWindow(o))return"margin"===r?o["inner"+n]:o.document.documentElement["client"+n];const i=o;if(9===i.nodeType){const t=i.documentElement;return Math.max(i.body["scroll"+n],t["scroll"+n],i.body["offset"+n],t["offset"+n],t["client"+n])}let s=i.getBoundingClientRect()[e];function l(t){return"width"===e?W.cssFloat(i,t+"Left")+W.cssFloat(i,t+"Right"):W.cssFloat(i,t+"Top")+W.cssFloat(i,t+"Bottom")}switch(r){case"content":s-=l("padding"),s-=l("border");break;case"padding":s-=l("border");break;case"border":break;case"margin":s+=l("margin")}return s}getDimension(t,e){return W.getDimension(this,t,e)}static setHeight(t,e){const r=W._preHtmlElem(t,"setHeight");if("number"!=typeof e&&"string"!=typeof e)throw new TypeError("The value must be a string or number.");return r.style.height="number"==typeof e?`${e}px`:e,t}setHeight(t){return W.setHeight(this,t)}static setWidth(t,e){const r=W._preHtmlElem(t,"setWidth");if("number"!=typeof e&&"string"!=typeof e)throw new TypeError("The value must be a string or number.");return r.style.width="number"==typeof e?`${e}px`:e,t}setWidth(t){return W.setWidth(this,t)}static height(t){const e=W._preElemAndWinAndDoc(t,"height");return W.getDimension(e,"height","content")}height(){return W.height(this)}static width(t){const e=W._preElemAndWinAndDoc(t,"width");return W.getDimension(e,"width","content")}width(){return W.width(this)}static innerHeight(t){const e=W._preElemAndWinAndDoc(t,"innerHeight");return W.getDimension(e,"height","padding")}innerHeight(){return W.innerHeight(this)}static innerWidth(t){const e=W._preElemAndWinAndDoc(t,"innerWidth");return W.getDimension(e,"width","padding")}innerWidth(){return W.innerWidth(this)}static outerHeight(t,e=!1){if("boolean"!=typeof e)throw new TypeError('The "includeMargin" must be a boolean.');const r=W._preElemAndWinAndDoc(t,"outerHeight");return W.getDimension(r,"height",e?"margin":"border")}outerHeight(t){return W.outerHeight(this,t)}static outerWidth(t,e=!1){if("boolean"!=typeof e)throw new TypeError('The "includeMargin" must be a boolean.');const r=W._preElemAndWinAndDoc(t,"outerWidth");return W.getDimension(r,"width",e?"margin":"border")}outerWidth(t){return W.outerWidth(this,t)}static animate(t,e,r){return W._preElems(t,"animate").forEach((t=>t.animate(e,r))),t}animate(t,e){return W.animate(this,t,e)}static offset(t){const e=W._preElem(t,"offset").getBoundingClientRect(),r=window.scrollY||document.documentElement.scrollTop,o=window.scrollX||document.documentElement.scrollLeft;return{top:e.top+r,left:e.left+o}}offset(){return W.offset(this)}static position(t){const e=W._preHtmlElem(t,"position");let r,o,n={top:0,left:0};if("fixed"===window.getComputedStyle(e).position)o=e.getBoundingClientRect();else{o=W.offset(e),r=e.offsetParent||document.documentElement;const{position:t}=window.getComputedStyle(r);for(;r instanceof HTMLElement&&(r===document.body||r===document.documentElement)&&"static"===t;)r=r.parentNode;if(r instanceof HTMLElement&&r!==e&&1===r.nodeType){const{borderTopWidth:t,borderLeftWidth:e}=W.cssFloats(r,["borderTopWidth","borderLeftWidth"]);n=W.offset(r),n.top+=t,n.left+=e}}return{top:o.top-n.top-W.cssFloat(e,"marginTop"),left:o.left-n.left-W.cssFloat(e,"marginLeft")}}position(){return W.position(this)}static offsetParent(t){let e=W._preHtmlElem(t,"offsetParent").offsetParent;for(;e instanceof HTMLElement&&"static"===window.getComputedStyle(e).position;)e=e.offsetParent;return e instanceof HTMLElement?e:document.documentElement}offsetParent(){return W.offsetParent(this)}static scrollTop(t){const e=W._preElemAndWindow(t,"scrollTop");return W.isWindow(e)?e.pageYOffset:9===e.nodeType?e.defaultView.pageYOffset:e.scrollTop}scrollTop(){return W.scrollTop(this)}static scrollLeft(t){const e=W._preElemAndWindow(t,"scrollLeft");return W.isWindow(e)?e.pageXOffset:9===e.nodeType?e.defaultView.pageXOffset:e.scrollLeft}scrollLeft(){return W.scrollLeft(this)}static easings={linear:t=>t,easeInQuad:t=>t*t,easeOutQuad:t=>t*(2-t),easeInOutQuad:t=>t<.5?2*t*t:(4-2*t)*t-1,easeInCubic:t=>t*t*t,easeOutCubic:t=>--t*t*t+1,easeInOutCubic:t=>t<.5?4*t*t*t:(t-1)*(2*t-2)*(2*t-2)+1};static scrollToXY(t,{targetX:e,targetY:r,duration:o,easing:n,onAnimation:i}={}){if(void 0!==e&&"number"!=typeof e)throw new TypeError("`targetX` must be a number if provided.");if(void 0!==r&&"number"!=typeof r)throw new TypeError("`targetY` must be a number if provided.");if(void 0!==o&&"number"!=typeof o)throw new TypeError("`duration` must be a number if provided.");if(void 0!==n&&"string"!=typeof n)throw new TypeError("`easing` must be a string if provided.");if(void 0!==n&&"function"!=typeof W.easings[n])throw new TypeError(`Unknown easing function: "${n}".`);if(void 0!==i&&"function"!=typeof i)throw new TypeError("`onAnimation` must be a function if provided.");const s=(t,e,r,o)=>{if(t instanceof Window)window.scrollTo(e,r);else if(9===t.nodeType)t.defaultView.scrollTo(e,r);else{const o=t instanceof Window?window.scrollX:t.scrollLeft,n=t instanceof Window?window.scrollY:t.scrollTop;o!==e&&(t.scrollLeft=e),n!==r&&(t.scrollTop=r)}"function"==typeof i&&i({x:e,y:r,isComplete:o>=1,time:o})};return W._preElemsAndWindow(t,"scrollToXY").forEach((t=>{const i=t instanceof Window?window.scrollX:t.scrollLeft,l=t instanceof Window?window.scrollY:t.scrollTop,a=e??i,c=r??l,p=a-i,m=c-l,u="string"==typeof n&&W.easings[n]||null;if("number"!=typeof o||"function"!=typeof u)return s(t,a,c,1);const d=performance.now(),f=o??0;requestAnimationFrame((function e(r){if("function"!=typeof u)return;const o=Math.min(1,(r-d)/f),n=u(o);s(t,i+p*n,l+m*n,o),o<1&&requestAnimationFrame(e)}))})),t}scrollToXY({targetX:t,targetY:e,duration:r,easing:o,onAnimation:n}={}){return W.scrollToXY(this,{targetX:t,targetY:e,duration:r,easing:o,onAnimation:n})}static setScrollTop(t,e){if("number"!=typeof e)throw new TypeError("ScrollTop value must be a number.");return W.scrollToXY(t,{targetY:e})}setScrollTop(t){return W.setScrollTop(this,t)}static setScrollLeft(t,e){if("number"!=typeof e)throw new TypeError("ScrollLeft value must be a number.");return W.scrollToXY(t,{targetX:e})}setScrollLeft(t){return W.setScrollLeft(this,t)}static borderWidth(t){const e=W._preElem(t,"borderWidth"),{borderLeftWidth:r,borderRightWidth:o,borderTopWidth:n,borderBottomWidth:i}=W.cssFloats(e,["borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"]);return{x:r+o,y:n+i,left:r,right:o,top:n,bottom:i}}borderWidth(){return W.borderWidth(this)}static border(t){const e=W._preElem(t,"border"),{borderLeft:r,borderRight:o,borderTop:n,borderBottom:i}=W.cssFloats(e,["borderLeft","borderRight","borderTop","borderBottom"]);return{x:r+o,y:n+i,left:r,right:o,top:n,bottom:i}}border(){return W.border(this)}static margin(t){const e=W._preElem(t,"margin"),{marginLeft:r,marginRight:o,marginTop:n,marginBottom:i}=W.cssFloats(e,["marginLeft","marginRight","marginTop","marginBottom"]);return{x:r+o,y:n+i,left:r,right:o,top:n,bottom:i}}margin(){return W.margin(this)}static padding(t){const e=W._preElem(t,"padding"),{paddingLeft:r,paddingRight:o,paddingTop:n,paddingBottom:i}=W.cssFloats(e,["paddingLeft","paddingRight","paddingTop","paddingBottom"]);return{x:r+o,y:n+i,left:r,right:o,top:n,bottom:i}}padding(){return W.padding(this)}static addClass(t,...e){return W._preElems(t,"addClass").forEach((t=>t.classList.add(...e))),t}addClass(...t){return W.addClass(this,...t)}static removeClass(t,...e){return W._preElems(t,"removeClass").forEach((t=>t.classList.remove(...e))),t}removeClass(...t){return W.removeClass(this,...t)}static replaceClass(t,e,r){if("string"!=typeof e)throw new TypeError('The "token" parameter must be a string.');if("string"!=typeof r)throw new TypeError('The "newToken" parameter must be a string.');const o=[];return W._preElems(t,"replaceClass").forEach((t=>o.push(t.classList.replace(e,r)))),o}replaceClass(t,e){return W.replaceClass(this,t,e)[0]}static classItem(t,e){const r=W._preElem(t,"classItem");if("number"!=typeof e)throw new TypeError('The "index" parameter must be a number.');return r.classList.item(e)}classItem(t){return W.classItem(this,t)}static toggleClass(t,e,r){if("string"!=typeof e)throw new TypeError('The "token" parameter must be a string.');if(void 0!==r&&"boolean"!=typeof r)throw new TypeError('The "force" parameter must be a boolean.');const o=[];return W._preElems(t,"toggleClass").forEach((t=>o.push(t.classList.toggle(e,r)))),o}toggleClass(t,e){return W.toggleClass(this,t,e)[0]}static hasClass(t,e){const r=W._preElem(t,"hasClass");if("string"!=typeof e)throw new TypeError('The "token" parameter must be a string.');return r.classList.contains(e)}hasClass(t){return W.hasClass(this,t)}static classLength(t){return W._preElem(t,"classLength").classList.length}classLength(){return W.classLength(this)}static classList(t){return W._preElem(t,"classList").classList.values().toArray()}classList(){return W.classList(this)}static tagName(t){return W._preElem(t,"tagName").tagName}tagName(){return W.tagName(this)}static id(t){return W._preElem(t,"id").id}id(){return W.id(this)}static text(t){return W._preElem(t,"text").textContent}text(){return W.text(this)}static setText(t,e){if("string"!=typeof e)throw new Error("Value is not a valid string.");return W._preElems(t,"setText").forEach((t=>t.textContent=e)),t}setText(t){return W.setText(this,t)}static empty(t){return W._preElems(t,"empty").forEach((t=>t.textContent="")),t}empty(){return W.empty(this)}static html(t,e){return W._preElem(t,"html").getHTML(e)}html(t){return W.html(this,t)}static setHtml(t,e){if("string"!=typeof e)throw new Error("Value is not a valid string.");return W._preElems(t,"setHtml").forEach((t=>t.innerHTML=e)),t}setHtml(t){return W.setHtml(this,t)}static _valHooks={option:{get:t=>{const e=t.getAttribute("value");return null!=e?e:t.textContent}},select:{get:t=>{const e=t.options,r=t.selectedIndex,o="select-one"===t.type,n=o?r+1:e.length,i=[];let s=r<0?n:o?r:0;for(;s<n;s++){const t=e[s],n=t.parentNode;if((t.selected||s===r)&&!t.disabled&&(!n||!n.disabled||"OPTGROUP"!==n.tagName)){const e=W._valHooks.option.get(t);if(o)return e;i.push(e)}}return i},set:(t,e)=>{const r=t.options,o=Array.isArray(e)?e.map(String):[String(e)];let n=!1;for(let t=0;t<r.length;t++){const e=r[t],i=W._valHooks.option.get(e);"string"==typeof i&&(e.selected=o.includes(i))&&(n=!0)}return n||(t.selectedIndex=-1),o}},radio:{get:t=>t.checked?"on":"off",set(t,e){if("boolean"==typeof e){const r=t.closest("label");return e&&r&&r.querySelectorAll('input[type="radio"]').forEach((e=>{e instanceof HTMLInputElement&&e!==t&&(e.checked=!1)})),t.checked=e,e}}},checkbox:{get:t=>t.checked?"on":"off",set(t,e){if("boolean"==typeof e)return t.checked=e,e}}};static setVal(t,e){return W._preInputElems(t,"setVal").forEach((t=>{if(1!==t.nodeType)return;let r="function"==typeof e?e(t,W.val(t)):e;null==r?r="":"number"==typeof r?r=String(r):Array.isArray(r)&&(r=(t=>{const e=[];for(let o=0;o<t.length;o++)e.push(null==(r=t[o])?"":String(r));var r;return e})(r));const o=W._valHooks[t.type]||W._valHooks[t.nodeName.toLowerCase()];if(!o||"function"!=typeof o.set||void 0===o.set(t,r,"value")){if("string"!=typeof r&&"boolean"!=typeof r)throw new Error(`Invalid setValue "${typeof r}" value.`);"string"==typeof r&&(t.value=r)}})),t}setVal(t){return W.setVal(this,t)}static _valTypes={string:t=>t.value,date:t=>t.valueAsDate,number:t=>t.valueAsNumber};static _getValByType(t,e,r){if("string"!=typeof e)throw new TypeError('The "type" must be a string.');if("string"!=typeof r)throw new TypeError('The "where" must be a string.');if(!(t instanceof HTMLInputElement))throw new Error(`Provided element is not an HTMLInputElement in ${r}().`);if("function"!=typeof W._valTypes[e])throw new Error(`No handler found for type "${e}" in ${r}().`);return W._valTypes[e](t)}static _val(t,e,r){const o=W._preInputElem(t,e),n=W._valHooks[o.type]||W._valHooks[o.nodeName.toLowerCase()];if(n&&"function"==typeof n.get){const t=n.get(o,"value",r);if(void 0!==t)return"string"==typeof t?t.replace(/\r/g,""):t}return W._getValByType(o,r,e)}_val(t,e){return W._val(this,t,e)}static val(t){return W._val(t,"val","string")}val(){return W.val(this)}static valTxt(t){const e=W._val(t,"valTxt","string");if("string"!=typeof e&&null!==e)throw new Error("Value is not a valid string.");return null==e?"":"string"==typeof e?e.replace(/\r/g,""):e}valTxt(){return W.valTxt(this)}static _valArr(t,e,r){const o=W._val(t,e,r);if(!Array.isArray(o))throw new Error(`Value expected an array but got ${typeof o}.`);return o}_valArr(t,e){return W._valArr(this,t,e)}static valArr(t){return W._valArr(t,"valArr","string")}valArr(){return W.valArr(this)}static valNb(t){if(!(W._preInputElem(t,"valNb")instanceof HTMLInputElement))throw new Error("Element must be an input element.");const e=W._val(t,"valNb","number");if(Number.isNaN(e))throw new Error("Value is not a valid number.");return e}valNb(){return W.valNb(this)}static valDate(t){if(!(W._preInputElem(t,"valDate")instanceof HTMLInputElement))throw new Error("Element must be an input element.");const e=W._val(t,"valDate","date");if(!(e instanceof Date))throw new Error("Value is not a valid date.");return e}valDate(){return W.valDate(this)}static valBool(t){const e=W._preInputElem(t,"valBool");if(!(e instanceof HTMLInputElement))throw new Error("Element must be an input element.");return"on"===W.val(e)}valBool(){return W.valBool(this)}static listenForPaste(t,{onFilePaste:e,onTextPaste:r}={}){if(void 0!==e&&"function"!=typeof e)throw new TypeError("onFilePaste must be a function.");if(void 0!==r&&"function"!=typeof r)throw new TypeError("onTextPaste must be a function.");const o=t=>{if(!(t instanceof ClipboardEvent))return;const o=t.clipboardData?.items||[];for(const t of o)if("file"===t.kind){if("function"==typeof e){const r=t.getAsFile();r&&e(t,r)}}else"string"===t.kind&&"function"==typeof r&&t.getAsString((e=>r(t,e)))};return W._preElemsWithDoc(t,"listenForPaste").forEach((t=>W.on(t,"paste",o))),o}listenForPaste({onFilePaste:t,onTextPaste:e}={}){return W.listenForPaste(this,{onFilePaste:t,onTextPaste:e})}static hasEventListener(t,e){const r=W._preEventTargetElem(t,"hasEventListener");if(!x.has(r))return!1;const o=x.get(r);return!!(o&&Array.isArray(o[e])&&o[e].length>0)}hasEventListener(t){return W.hasEventListener(this,t)}static hasExactEventListener(t,e,r){const o=W._preEventTargetElem(t,"hasExactEventListener");if("function"!=typeof r)throw new TypeError('The "handler" must be a function.');if(!x.has(o))return!1;const n=x.get(o);return!(!n||!Array.isArray(n[e]))&&n[e].some((t=>t.handler===r))}hasExactEventListener(t,e){return W.hasExactEventListener(this,t,e)}static on(t,e,r,o){if("string"!=typeof e)throw new TypeError("The event name must be a string.");return W._preEventTargetElems(t,"on").forEach((t=>{t.addEventListener(e,r,o),x.has(t)||x.set(t,{});const n=x.get(t);n&&(Array.isArray(n[e])||(n[e]=[]),n[e].push({handler:r,options:o}))})),t}on(t,e,r){return W.on(this,t,e,r)}static once(t,e,r,o={}){if("string"!=typeof e)throw new TypeError("The event name must be a string.");return W._preEventTargetElems(t,"once").forEach((t=>{const n=o=>{W.off(t,e,n),"function"==typeof r&&r(o)};W.on(t,e,n,"boolean"==typeof o?o:{...o,once:!0})})),t}once(t,e,r={}){return W.once(this,t,e,r)}static off(t,e,r,o){if("string"!=typeof e)throw new TypeError("The event name must be a string.");return W._preEventTargetElems(t,"off").forEach((t=>{t.removeEventListener(e,r,o);const n=x.get(t);n&&n[e]&&(n[e]=n[e].filter((t=>t.handler!==r)),0===n[e].length&&delete n[e])})),t}off(t,e,r){return W.off(this,t,e,r)}static offAll(t,e){if("string"!=typeof e)throw new TypeError("The event name must be a string.");return W._preEventTargetElems(t,"offAll").forEach((t=>{const r=x.get(t);if(r&&r[e]){for(const o of r[e])t.removeEventListener(e,o.handler,o.options);delete r[e]}})),t}offAll(t){return W.offAll(this,t)}static offAllTypes(t,e=null){if(null!==e&&"function"!=typeof e)throw new TypeError('The "filterFn" must be a function.');return W._preEventTargetElems(t,"offAllTypes").forEach((t=>{const r=x.get(t);if(r){for(const o in r)for(const n of r[o])("function"!=typeof e||e(n.handler,o))&&t.removeEventListener(o,n.handler,n.options);x.delete(t)}})),t}offAllTypes(t=null){return W.offAllTypes(this,t)}static trigger(t,e,r={}){if("string"!=typeof e)throw new TypeError("The event name must be a string.");return W._preEventTargetElems(t,"trigger").forEach((t=>{const o=r instanceof Event||r instanceof CustomEvent?r:new CustomEvent(e,{bubbles:!0,cancelable:!0,detail:r});t.dispatchEvent(o)})),t}trigger(t,e={}){return W.trigger(this,t,e)}static _propFix={for:"htmlFor",class:"className"};static attr(t,e){if("string"!=typeof e)throw new TypeError('The "name" must be a string.');return W._preElem(t,"attr").getAttribute(e)}attr(t){return W.attr(this,t)}static setAttr(t,e,r=null){if("string"!=typeof e)throw new TypeError('The "name" must be a string.');if(null!==r&&"string"!=typeof r)throw new TypeError('The "value" must be a string.');return W._preElems(t,"setAttr").forEach((t=>{null===r?t.removeAttribute(e):t.setAttribute(e,r)})),t}setAttr(t,e){return W.setAttr(this,t,e)}static removeAttr(t,e){if("string"!=typeof e)throw new TypeError('The "name" must be a string.');return W._preElems(t,"removeAttr").forEach((t=>t.removeAttribute(e))),t}removeAttr(t){return W.removeAttr(this,t)}static hasAttr(t,e){if("string"!=typeof e)throw new TypeError('The "name" must be a string.');return W._preElem(t,"hasAttr").hasAttribute(e)}hasAttr(t){return W.hasAttr(this,t)}static hasProp(t,e){if("string"!=typeof e)throw new TypeError('The "name" must be a string.');return!!W._preElem(t,"hasProp")[W._propFix[e]||e]}hasProp(t){return W.hasProp(this,t)}static addProp(t,e){if("string"!=typeof e)throw new TypeError('The "name" must be a string.');return W._preElems(t,"addProp").forEach((t=>{t[e=W._propFix[e]||e]=!0})),t}addProp(t){return W.addProp(this,t)}static removeProp(t,e){if("string"!=typeof e)throw new TypeError('The "name" must be a string.');return W._preElems(t,"removeProp").forEach((t=>{t[e=W._propFix[e]||e]=!1})),t}removeProp(t){return W.removeProp(this,t)}static toggleProp(t,e,r){if("string"!=typeof e)throw new TypeError('The "name" must be a string.');if(void 0!==r&&"boolean"!=typeof r)throw new TypeError('The "force" must be a boolean.');W._preElems(t,"toggleProp").forEach((t=>{const o=W._propFix[e]||e;(void 0===r?!t[o]:r)?W.addProp(t,e):W.removeProp(t,e)}))}toggleProp(t,e){return W.toggleProp(this,t,e)}static remove(t){return W._preElems(t,"remove").forEach((t=>t.remove())),t}remove(){return W.remove(this)}static index(t,e=null){const r=W._preElem(t,"index");if(!r)return-1;if(!e)return Array.prototype.indexOf.call(r.parentNode?.children||[],r);if(e){const t="string"==typeof e?document.querySelectorAll(e):W._preElems(e,"index");return Array.prototype.indexOf.call(t,r)}return-1}index(t){return W.index(this,t)}static _getCustomRect(t,e){const r={height:0,width:0,x:0,y:0,bottom:0,left:0,right:0,top:0,toJSON:function(){throw new Error("Function not implemented.")}};for(const e in t)"number"==typeof t[e]&&(r[e]=t[e]);if("object"!=typeof e||null===e||Array.isArray(e))throw new Error("");const{height:o=0,width:n=0,top:i=0,bottom:s=0,left:l=0,right:a=0}=e;if("number"!=typeof o)throw new Error("");if("number"!=typeof n)throw new Error("");if("number"!=typeof i)throw new Error("");if("number"!=typeof s)throw new Error("");if("number"!=typeof l)throw new Error("");if("number"!=typeof a)throw new Error("");return r.height+=o,r.width+=n,r.top+=i,r.bottom+=s,r.left+=l,r.right+=a,r}static isCollWith(t,e,r={}){const o=W._getCustomRect(W._preElem(t,"isCollWith").getBoundingClientRect(),r),n=W._preElem(e,"isCollWith").getBoundingClientRect();return T(o,n)}isCollWith(t,e){return W.isCollWith(this,t,e)}static isCollPerfWith(t,e,r={}){const o=W._getCustomRect(W._preElem(t,"isCollPerfWith").getBoundingClientRect(),r),n=W._preElem(e,"isCollPerfWith").getBoundingClientRect();return v(o,n)}isCollPerfWith(t,e){return W.isCollPerfWith(this,t,e)}static _isCollWithLock(t,e,r,o,n){const i=L[n];if(t)return i.has(o)||i.set(o,!0),!0;if(i.has(o)){let t=!1;switch(n){case"top":t=_(e,r);break;case"bottom":t=C(e,r);break;case"left":t=S(e,r);break;case"right":t=A(e,r)}return t&&i.delete(o),i.has(o)}return!1}static isCollWithLock(t,e,r,o={}){const n=W._preElem(t,"isCollWithLock"),i=W._preElem(e,"isCollWithLock"),s=W._getCustomRect(n.getBoundingClientRect(),o),l=i.getBoundingClientRect(),a=T(s,l);return W._isCollWithLock(a,s,l,n,r)}isCollWithLock(t,e,r){return W.isCollWithLock(this,t,e,r)}static isCollPerfWithLock(t,e,r,o={}){const n=W._preElem(t,"isCollPerfWithLock"),i=W._preElem(e,"isCollPerfWithLock"),s=W._getCustomRect(n.getBoundingClientRect(),o),l=i.getBoundingClientRect(),a=v(s,l);return W._isCollWithLock(a,s,l,n,r)}isCollPerfWithLock(t,e,r){return W.isCollPerfWithLock(this,t,e,r)}static resetCollLock(t){const e=W._preElem(t,"resetCollLock");let r=!1;for(const t of["top","bottom","left","right"])L[t].has(e)&&(L[t].delete(e),r=!0);return r}resetCollLock(){return W.resetCollLock(this)}static resetCollLockDir(t,e){const r=W._preElem(t,"resetCollLockDir"),o=L[e];return!!o.has(r)&&(o.delete(r),!0)}resetCollLockDir(t){return W.resetCollLockDir(this,t)}static isInViewport(t){const e=W._preElem(t,"isInViewport");if(!e.checkVisibility({contentVisibilityAuto:!1,opacityProperty:!1,visibilityProperty:!1}))return!1;const r=W.offset(e).top,o=r+W.outerHeight(e),n=W.scrollTop(window),i=n+W.height(window);return o>n&&r<i}isInViewport(){return W.isInViewport(this)}static isScrolledIntoView(t){const e=W._preElem(t,"isScrolledIntoView");if(!e.checkVisibility({contentVisibilityAuto:!1,opacityProperty:!1,visibilityProperty:!1}))return!1;const r=W.scrollTop(window),o=r+W.height(window),n=W.offset(e).top;return n+W.height(e)<=o&&n>=r}isScrolledIntoView(){return W.isScrolledIntoView(this)}static isInContainer(t,e){const r=W._preElem(t,"isInContainer"),o=W._preElem(e,"isInContainer");if(!r.checkVisibility({contentVisibilityAuto:!1,opacityProperty:!1,visibilityProperty:!1}))return!1;const n=r.getBoundingClientRect(),i=o.getBoundingClientRect(),s=n.bottom>i.top&&n.top<i.bottom,l=n.right>i.left&&n.left<i.right;return s&&l}isInContainer(t){return W.isInContainer(this,t)}static isFullyInContainer(t,e){const r=W._preElem(t,"isScrolledIntoView"),o=W._preElem(e,"isInContainer");if(!r.checkVisibility({contentVisibilityAuto:!1,opacityProperty:!1,visibilityProperty:!1}))return!1;const n=r.getBoundingClientRect(),i=o.getBoundingClientRect();return n.top>=i.top&&n.bottom<=i.bottom&&n.left>=i.left&&n.right<=i.right}isFullyInContainer(t){return W.isFullyInContainer(this,t)}static hasScroll(t){const e=W._preElem(t,"hasScroll");return{v:e.scrollHeight>e.clientHeight,h:e.scrollWidth>e.clientWidth}}hasScroll(){return W.hasScroll(this)}}const P=W;window.TinyHtml=e.TinyHtml})();
|