tiny-essentials 1.16.1 → 1.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/legacy/crypto/decrypt.cjs +1 -0
- package/dist/legacy/crypto/decrypt.d.mts +1 -0
- package/dist/legacy/crypto/decrypt.mjs +1 -0
- package/dist/legacy/crypto/encrypt.cjs +1 -0
- package/dist/legacy/crypto/encrypt.d.mts +1 -0
- package/dist/legacy/crypto/encrypt.mjs +1 -0
- package/dist/legacy/get/decimalColor.cjs +1 -0
- package/dist/legacy/get/decimalColor.d.mts +1 -0
- package/dist/legacy/get/decimalColor.mjs +1 -0
- package/dist/legacy/get/pagination.cjs +1 -0
- package/dist/legacy/get/pagination.d.mts +1 -0
- package/dist/legacy/get/pagination.mjs +1 -0
- package/dist/legacy/get/queryUrlByName.cjs +1 -0
- package/dist/legacy/get/queryUrlByName.d.mts +1 -0
- package/dist/legacy/get/queryUrlByName.mjs +1 -0
- package/dist/legacy/get/queryUrlJSON.cjs +1 -0
- package/dist/legacy/get/queryUrlJSON.d.mts +1 -0
- package/dist/legacy/get/queryUrlJSON.mjs +1 -0
- package/dist/legacy/get/super_string_filter.cjs +1 -0
- package/dist/legacy/get/super_string_filter.d.mts +1 -0
- package/dist/legacy/get/super_string_filter.mjs +1 -0
- package/dist/legacy/get/versionCheck.cjs +1 -0
- package/dist/legacy/get/versionCheck.d.mts +1 -0
- package/dist/legacy/get/versionCheck.mjs +1 -0
- package/dist/legacy/http/HTTP-1.0.cjs +2 -0
- package/dist/legacy/http/HTTP-1.0.mjs +2 -0
- package/dist/legacy/http/auth.cjs +1 -0
- package/dist/legacy/http/auth.d.mts +1 -0
- package/dist/legacy/http/auth.mjs +1 -0
- package/dist/legacy/http/check_domain.cjs +11 -0
- package/dist/legacy/http/check_domain.d.mts +3 -0
- package/dist/legacy/http/check_domain.mjs +11 -0
- package/dist/legacy/http/csrfTokenAnalyze.cjs +1 -0
- package/dist/legacy/http/csrfTokenAnalyze.d.mts +1 -0
- package/dist/legacy/http/csrfTokenAnalyze.mjs +1 -0
- package/dist/legacy/http/domainValidator.cjs +1 -0
- package/dist/legacy/http/domainValidator.d.mts +1 -0
- package/dist/legacy/http/domainValidator.mjs +1 -0
- package/dist/legacy/http/errorsCallback.cjs +1 -0
- package/dist/legacy/http/errorsCallback.d.mts +1 -0
- package/dist/legacy/http/errorsCallback.mjs +1 -0
- package/dist/legacy/http/fetch/json.cjs +1 -0
- package/dist/legacy/http/fetch/json.d.mts +1 -0
- package/dist/legacy/http/fetch/json.mjs +1 -0
- package/dist/legacy/http/fetch/text.cjs +1 -0
- package/dist/legacy/http/fetch/text.d.mts +1 -0
- package/dist/legacy/http/fetch/text.mjs +1 -0
- package/dist/legacy/http/fileCache.cjs +1 -0
- package/dist/legacy/http/fileCache.d.mts +1 -0
- package/dist/legacy/http/fileCache.mjs +1 -0
- package/dist/legacy/http/getDomainURL.cjs +1 -0
- package/dist/legacy/http/getDomainURL.d.mts +1 -0
- package/dist/legacy/http/getDomainURL.mjs +1 -0
- package/dist/legacy/http/userIP.cjs +1 -0
- package/dist/legacy/http/userIP.d.mts +1 -0
- package/dist/legacy/http/userIP.mjs +1 -0
- package/dist/legacy/libs/capitalize.cjs +1 -0
- package/dist/legacy/libs/capitalize.d.mts +1 -0
- package/dist/legacy/libs/capitalize.mjs +1 -0
- package/dist/legacy/libs/convertBytes.cjs +2 -0
- package/dist/legacy/libs/convertBytes.mjs +2 -0
- package/dist/legacy/libs/custom_module_loader.cjs +2 -0
- package/dist/legacy/libs/custom_module_loader.mjs +2 -0
- package/dist/legacy/libs/dice.cjs +2 -0
- package/dist/legacy/libs/dice.mjs +2 -0
- package/dist/legacy/libs/markdown.cjs +1 -0
- package/dist/legacy/libs/markdown.mjs +1 -0
- package/dist/legacy/libs/percentage.cjs +1 -0
- package/dist/legacy/libs/percentage.mjs +1 -0
- package/dist/legacy/libs/regex/getLetter.cjs +2 -0
- package/dist/legacy/libs/regex/getLetter.d.mts +2 -0
- package/dist/legacy/libs/regex/getLetter.mjs +2 -0
- package/dist/legacy/libs/rule3.cjs +1 -0
- package/dist/legacy/libs/rule3.mjs +1 -0
- package/dist/legacy/momentjs/getAge.cjs +1 -0
- package/dist/legacy/momentjs/getAge.d.mts +1 -0
- package/dist/legacy/momentjs/getAge.mjs +1 -0
- package/dist/legacy/momentjs/timeDuration.cjs +1 -0
- package/dist/legacy/momentjs/timeDuration.d.mts +1 -0
- package/dist/legacy/momentjs/timeDuration.mjs +1 -0
- package/dist/legacy/socket.io/antiFlood/install.cjs +1 -0
- package/dist/legacy/socket.io/antiFlood/install.d.mts +1 -0
- package/dist/legacy/socket.io/antiFlood/install.mjs +1 -0
- package/dist/legacy/socket.io/antiFlood/verify.cjs +1 -0
- package/dist/legacy/socket.io/antiFlood/verify.d.mts +1 -0
- package/dist/legacy/socket.io/antiFlood/verify.mjs +1 -0
- package/dist/legacy/socket.io/cookie-session.cjs +1 -0
- package/dist/legacy/socket.io/cookie-session.d.mts +1 -0
- package/dist/legacy/socket.io/cookie-session.mjs +1 -0
- package/dist/legacy/socket.io/discord.cjs +1 -0
- package/dist/legacy/socket.io/discord.d.mts +1 -0
- package/dist/legacy/socket.io/discord.mjs +1 -0
- package/dist/v1/TinyAfterScrollWatcher.js +49 -26
- package/dist/v1/TinyAfterScrollWatcher.min.js +1 -1
- package/dist/v1/TinyBasicsEs.js +559 -71
- package/dist/v1/TinyBasicsEs.min.js +1 -1
- package/dist/v1/TinyDragger.js +486 -47
- package/dist/v1/TinyDragger.min.js +1 -1
- package/dist/v1/TinyEssentials.js +2545 -98
- package/dist/v1/TinyEssentials.min.js +1 -1
- package/dist/v1/TinyHtml.js +486 -47
- package/dist/v1/TinyHtml.min.js +1 -1
- package/dist/v1/TinySmartScroller.js +6230 -0
- package/dist/v1/TinySmartScroller.min.js +1 -0
- package/dist/v1/TinyUploadClicker.js +1538 -72
- package/dist/v1/TinyUploadClicker.min.js +1 -1
- package/dist/v1/UltraRandomMsgGen.js +995 -0
- package/dist/v1/UltraRandomMsgGen.min.js +1 -0
- package/dist/v1/basics/html.cjs +74 -24
- package/dist/v1/basics/html.d.mts +38 -15
- package/dist/v1/basics/html.mjs +63 -20
- package/dist/v1/build/TinySmartScroller.cjs +7 -0
- package/dist/v1/build/TinySmartScroller.d.mts +3 -0
- package/dist/v1/build/TinySmartScroller.mjs +2 -0
- package/dist/v1/build/UltraRandomMsgGen.cjs +7 -0
- package/dist/v1/build/UltraRandomMsgGen.d.mts +3 -0
- package/dist/v1/build/UltraRandomMsgGen.mjs +2 -0
- package/dist/v1/index.cjs +4 -0
- package/dist/v1/index.d.mts +3 -1
- package/dist/v1/index.mjs +3 -1
- package/dist/v1/libs/TinyAfterScrollWatcher.cjs +49 -26
- package/dist/v1/libs/TinyAfterScrollWatcher.d.mts +17 -14
- package/dist/v1/libs/TinyAfterScrollWatcher.mjs +50 -24
- package/dist/v1/libs/TinyHtml.cjs +486 -47
- package/dist/v1/libs/TinyHtml.d.mts +352 -139
- package/dist/v1/libs/TinyHtml.mjs +431 -47
- package/dist/v1/libs/TinySmartScroller.cjs +976 -0
- package/dist/v1/libs/TinySmartScroller.d.mts +458 -0
- package/dist/v1/libs/TinySmartScroller.mjs +856 -0
- package/dist/v1/libs/UltraRandomMsgGen.cjs +956 -0
- package/dist/v1/libs/UltraRandomMsgGen.d.mts +390 -0
- package/dist/v1/libs/UltraRandomMsgGen.mjs +825 -0
- package/docs/v1/README.md +2 -0
- package/docs/v1/basics/html.md +17 -2
- package/docs/v1/libs/TinyAfterScrollWatcher.md +54 -4
- package/docs/v1/libs/TinyHtml.md +197 -8
- package/docs/v1/libs/TinySmartScroller.md +523 -0
- package/docs/v1/libs/UltraRandomMsgGen.md +289 -0
- package/package.json +1 -1
|
@@ -14,14 +14,16 @@
|
|
|
14
14
|
class TinyAfterScrollWatcher {
|
|
15
15
|
/** @type {Element|Window} */
|
|
16
16
|
#scrollTarget;
|
|
17
|
-
/** @type {
|
|
18
|
-
lastScrollTime =
|
|
17
|
+
/** @type {null|NodeJS.Timeout} */
|
|
18
|
+
#lastScrollTime = null;
|
|
19
19
|
/** @type {FnData[]} */
|
|
20
20
|
#afterScrollQueue = [];
|
|
21
21
|
/** @type {number} */
|
|
22
22
|
#inactivityTime = 100;
|
|
23
23
|
/** @type {Set<OnScrollFunc>} */
|
|
24
24
|
#externalScrollListeners = new Set();
|
|
25
|
+
/** @type {Set<FnData>} */
|
|
26
|
+
#onStopListeners = new Set();
|
|
25
27
|
/** @type {boolean} */
|
|
26
28
|
#destroyed = false;
|
|
27
29
|
/**
|
|
@@ -34,12 +36,18 @@ class TinyAfterScrollWatcher {
|
|
|
34
36
|
if (!(scrollTarget instanceof Element) && !(scrollTarget instanceof Window))
|
|
35
37
|
throw new TypeError('scrollTarget must be an Element or the Window object.');
|
|
36
38
|
this.#scrollTarget = scrollTarget;
|
|
37
|
-
this.
|
|
38
|
-
this.
|
|
39
|
-
this.#scrollTarget.addEventListener('scroll', this._onScroll);
|
|
39
|
+
this._checkTimer = this._checkTimer.bind(this);
|
|
40
|
+
this.#scrollTarget.addEventListener('scroll', this._checkTimer);
|
|
40
41
|
this.#inactivityTime = inactivityTime;
|
|
41
|
-
requestAnimationFrame(this._checkQueue);
|
|
42
42
|
}
|
|
43
|
+
_checkTimer = () => {
|
|
44
|
+
if (this.#lastScrollTime)
|
|
45
|
+
clearTimeout(this.#lastScrollTime);
|
|
46
|
+
this.#lastScrollTime = setTimeout(() => {
|
|
47
|
+
this.#lastScrollTime = null;
|
|
48
|
+
this.#checkQueue();
|
|
49
|
+
}, this.#inactivityTime);
|
|
50
|
+
};
|
|
43
51
|
/**
|
|
44
52
|
* Gets the current inactivity time in milliseconds.
|
|
45
53
|
* @returns {number}
|
|
@@ -58,29 +66,23 @@ class TinyAfterScrollWatcher {
|
|
|
58
66
|
throw new Error('inactivityTime must be a positive number in milliseconds.');
|
|
59
67
|
this.#inactivityTime = value;
|
|
60
68
|
}
|
|
61
|
-
/**
|
|
62
|
-
* Internal handler for scroll events.
|
|
63
|
-
* Updates the last scroll timestamp.
|
|
64
|
-
* @private
|
|
65
|
-
*/
|
|
66
|
-
_onScroll() {
|
|
67
|
-
this.lastScrollTime = Date.now();
|
|
68
|
-
}
|
|
69
69
|
/**
|
|
70
70
|
* Continuously checks whether the user has stopped scrolling,
|
|
71
71
|
* and if so, runs all queued functions.
|
|
72
|
-
* @private
|
|
73
72
|
*/
|
|
74
|
-
|
|
73
|
+
#checkQueue() {
|
|
75
74
|
if (this.#destroyed)
|
|
76
75
|
return;
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
76
|
+
// Runs all onStop first listeners
|
|
77
|
+
for (const fn of this.#onStopListeners) {
|
|
78
|
+
if (typeof fn === 'function')
|
|
79
|
+
fn();
|
|
80
|
+
}
|
|
81
|
+
// Then execute the queue afterScrollQueue
|
|
82
|
+
while (this.#afterScrollQueue.length) {
|
|
83
|
+
const fn = this.#afterScrollQueue.pop();
|
|
84
|
+
if (typeof fn === 'function')
|
|
85
|
+
fn();
|
|
84
86
|
}
|
|
85
87
|
}
|
|
86
88
|
/**
|
|
@@ -96,6 +98,29 @@ class TinyAfterScrollWatcher {
|
|
|
96
98
|
this.lastScrollTime = Date.now();
|
|
97
99
|
this.#afterScrollQueue.push(fn);
|
|
98
100
|
}
|
|
101
|
+
/**
|
|
102
|
+
* Registers a function to run once after scrolling has stopped,
|
|
103
|
+
* before any afterScrollQueue functions.
|
|
104
|
+
*
|
|
105
|
+
* @param {FnData} fn - A function to execute after scroll stop.
|
|
106
|
+
* @throws {TypeError} If the argument is not a function.
|
|
107
|
+
*/
|
|
108
|
+
onStop(fn) {
|
|
109
|
+
if (typeof fn !== 'function')
|
|
110
|
+
throw new TypeError('Argument must be a function.');
|
|
111
|
+
this.#onStopListeners.add(fn);
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Removes a previously registered onStop function.
|
|
115
|
+
*
|
|
116
|
+
* @param {FnData} fn - The function to remove.
|
|
117
|
+
* @throws {TypeError} If the argument is not a function.
|
|
118
|
+
*/
|
|
119
|
+
offStop(fn) {
|
|
120
|
+
if (typeof fn !== 'function')
|
|
121
|
+
throw new TypeError('Argument must be a function.');
|
|
122
|
+
this.#onStopListeners.delete(fn);
|
|
123
|
+
}
|
|
99
124
|
/**
|
|
100
125
|
* Registers an external scroll listener on the tracked element.
|
|
101
126
|
*
|
|
@@ -129,10 +154,11 @@ class TinyAfterScrollWatcher {
|
|
|
129
154
|
if (this.#destroyed)
|
|
130
155
|
return;
|
|
131
156
|
this.#destroyed = true;
|
|
132
|
-
this.#scrollTarget.removeEventListener('scroll', this.
|
|
157
|
+
this.#scrollTarget.removeEventListener('scroll', this._checkTimer);
|
|
133
158
|
for (const fn of this.#externalScrollListeners)
|
|
134
159
|
this.#scrollTarget.removeEventListener('scroll', fn);
|
|
135
160
|
this.#externalScrollListeners.clear();
|
|
161
|
+
this.#onStopListeners.clear();
|
|
136
162
|
}
|
|
137
163
|
}
|
|
138
164
|
export default TinyAfterScrollWatcher;
|