tiny-essentials 1.28.0 → 1.28.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/changelog/1/28/1.md +23 -0
- package/changelog/1/28/2.md +43 -0
- package/dist/_/numbers.d.mts +91 -16
- package/dist/v1/TinyAdvancedRaffle.min.js +1 -1
- package/dist/v1/TinyAfterScrollWatcher.min.js +1 -1
- package/dist/v1/TinyAnalogClock.min.js +1 -1
- package/dist/v1/TinyBasicsEs.min.js +1 -1
- package/dist/v1/TinyDayNightCycle.min.js +1 -1
- package/dist/v1/TinyDragDropDetector.min.js +1 -1
- package/dist/v1/TinyDragger.min.js +1 -1
- package/dist/v1/TinyElementObserver.min.js +1 -1
- package/dist/v1/TinyEssentials.min.js +1 -1
- package/dist/v1/TinyGamepad.min.js +1 -1
- package/dist/v1/TinyHtml.min.js +1 -1
- package/dist/v1/TinyI18.min.js +1 -1
- package/dist/v1/TinyIframeEvents.min.js +1 -1
- package/dist/v1/TinyLocalStorage.min.js +1 -1
- package/dist/v1/TinyMediaPlayer.min.js +1 -1
- package/dist/v1/TinyNewWinEvents.min.js +1 -1
- package/dist/v1/TinyNotifyCenter.min.js +1 -1
- package/dist/v1/TinyRadioFm.min.js +1 -1
- package/dist/v1/TinyRateLimiter.min.js +1 -1
- package/dist/v1/TinySmartScroller.min.js +1 -1
- package/dist/v1/TinyTextDiffer.min.js +1 -1
- package/dist/v1/TinyTextarea.min.js +1 -1
- package/dist/v1/TinyTimeout.min.js +1 -1
- package/dist/v1/TinyToastNotify.min.js +1 -1
- package/dist/v1/TinyUploadClicker.min.js +1 -1
- package/dist/v1/UltraRandomMsgGen.min.js +1 -1
- package/dist/v1/basics/array.cjs +57 -9
- package/dist/v1/basics/array.d.mts +28 -12
- package/dist/v1/basics/array.mjs +51 -9
- package/dist/v1/basics/clock.cjs +94 -42
- package/dist/v1/basics/clock.d.mts +22 -22
- package/dist/v1/basics/clock.mjs +91 -54
- package/dist/v1/basics/collision.d.mts +245 -104
- package/dist/v1/basics/deprecated/html.cjs +246 -0
- package/dist/v1/basics/deprecated/html.d.mts +63 -0
- package/dist/v1/basics/deprecated/html.mjs +190 -0
- package/dist/v1/basics/extendObjType/Buffer.d.mts +1 -1
- package/dist/v1/basics/fullScreen.d.mts +47 -7
- package/dist/v1/basics/html.cjs +149 -130
- package/dist/v1/basics/html.d.mts +69 -113
- package/dist/v1/basics/html.mjs +113 -105
- package/dist/v1/basics/index.cjs +2 -0
- package/dist/v1/basics/index.d.mts +11 -65
- package/dist/v1/basics/index.mjs +3 -3
- package/dist/v1/basics/mediaContent.cjs +116 -32
- package/dist/v1/basics/mediaContent.d.mts +143 -159
- package/dist/v1/basics/mediaContent.mjs +105 -33
- package/dist/v1/basics/objChecker.cjs +7 -5
- package/dist/v1/basics/objChecker.d.mts +5 -4
- package/dist/v1/basics/objChecker.mjs +6 -6
- package/dist/v1/basics/objFilter.cjs +71 -14
- package/dist/v1/basics/objFilter.d.mts +16 -19
- package/dist/v1/basics/objFilter.mjs +63 -14
- package/dist/v1/basics/simpleMath.cjs +81 -25
- package/dist/v1/basics/simpleMath.d.mts +22 -22
- package/dist/v1/basics/simpleMath.mjs +70 -27
- package/dist/v1/basics/text.cjs +76 -31
- package/dist/v1/basics/text.d.mts +64 -14
- package/dist/v1/basics/text.mjs +62 -31
- package/dist/v1/build/ColorSafeStringify.d.mts +1 -1
- package/dist/v1/build/TinyAdvancedRaffle.d.mts +1 -1
- package/dist/v1/build/TinyAfterScrollWatcher.d.mts +1 -1
- package/dist/v1/build/TinyAnalogClock.d.mts +1 -1
- package/dist/v1/build/TinyArrayComparator.d.mts +1 -1
- package/dist/v1/build/TinyArrayPaginator.d.mts +1 -1
- package/dist/v1/build/TinyClassManager.d.mts +1 -1
- package/dist/v1/build/TinyClipboard.d.mts +1 -1
- package/dist/v1/build/TinyColorConverter.d.mts +1 -1
- package/dist/v1/build/TinyColorValidator.d.mts +1 -1
- package/dist/v1/build/TinyCookieConsent.d.mts +1 -1
- package/dist/v1/build/TinyDayNightCycle.d.mts +1 -1
- package/dist/v1/build/TinyDomReadyManager.d.mts +1 -1
- package/dist/v1/build/TinyDragDropDetector.d.mts +1 -1
- package/dist/v1/build/TinyDragger.d.mts +1 -1
- package/dist/v1/build/TinyElementObserver.d.mts +1 -1
- package/dist/v1/build/TinyGamepad.d.mts +1 -1
- package/dist/v1/build/TinyHtml.d.mts +1 -1
- package/dist/v1/build/TinyI18.d.mts +1 -1
- package/dist/v1/build/TinyIframeEvents.d.mts +1 -1
- package/dist/v1/build/TinyInventory.d.mts +1 -1
- package/dist/v1/build/TinyInventoryTrader.d.mts +1 -1
- package/dist/v1/build/TinyLevelUp.d.mts +1 -1
- package/dist/v1/build/TinyLoadingScreen.d.mts +1 -1
- package/dist/v1/build/TinyLocalStorage.d.mts +1 -1
- package/dist/v1/build/TinyMediaPlayer.d.mts +1 -1
- package/dist/v1/build/TinyNeedBar.d.mts +1 -1
- package/dist/v1/build/TinyNewWinEvents.d.mts +1 -1
- package/dist/v1/build/TinyNotifications.d.mts +1 -1
- package/dist/v1/build/TinyNotifyCenter.d.mts +1 -1
- package/dist/v1/build/TinyPromiseQueue.d.mts +1 -1
- package/dist/v1/build/TinyRadioFm.d.mts +1 -1
- package/dist/v1/build/TinyRateLimiter.d.mts +1 -1
- package/dist/v1/build/TinySimpleDice.d.mts +1 -1
- package/dist/v1/build/TinySmartScroller.d.mts +1 -1
- package/dist/v1/build/TinyTextDiffer.d.mts +1 -1
- package/dist/v1/build/TinyTextRangeEditor.d.mts +1 -1
- package/dist/v1/build/TinyTextarea.d.mts +1 -1
- package/dist/v1/build/TinyTimeout.d.mts +1 -1
- package/dist/v1/build/TinyToastNotify.d.mts +1 -1
- package/dist/v1/build/TinyUploadClicker.d.mts +1 -1
- package/dist/v1/build/UltraRandomMsgGen.d.mts +1 -1
- package/dist/v1/fileManager/asyncFuncs.d.mts +13 -13
- package/dist/v1/fileManager/index.d.mts +3 -29
- package/dist/v1/fileManager/normalFuncs.d.mts +22 -22
- package/dist/v1/index.cjs +4 -0
- package/dist/v1/index.d.mts +54 -137
- package/dist/v1/index.mjs +4 -3
- package/dist/v1/libs/ColorSafeStringify.d.mts +3 -12
- package/dist/v1/libs/TinyAdvancedRaffle.cjs +64 -50
- package/dist/v1/libs/TinyAdvancedRaffle.d.mts +64 -116
- package/dist/v1/libs/TinyAdvancedRaffle.mjs +62 -49
- package/dist/v1/libs/TinyAfterScrollWatcher.cjs +17 -1
- package/dist/v1/libs/TinyAfterScrollWatcher.d.mts +15 -19
- package/dist/v1/libs/TinyAfterScrollWatcher.mjs +15 -1
- package/dist/v1/libs/TinyAnalogClock.cjs +60 -0
- package/dist/v1/libs/TinyAnalogClock.d.mts +12 -9
- package/dist/v1/libs/TinyAnalogClock.mjs +57 -0
- package/dist/v1/libs/TinyArrayComparator.d.mts +14 -20
- package/dist/v1/libs/TinyArrayPaginator.d.mts +22 -26
- package/dist/v1/libs/TinyClassManager/TinyPluginInliner.d.mts +8 -8
- package/dist/v1/libs/TinyClassManager.cjs +5 -7
- package/dist/v1/libs/TinyClassManager.d.mts +16 -16
- package/dist/v1/libs/TinyClassManager.mjs +5 -6
- package/dist/v1/libs/TinyClipboard.cjs +2 -0
- package/dist/v1/libs/TinyClipboard.d.mts +12 -5
- package/dist/v1/libs/TinyClipboard.mjs +2 -0
- package/dist/v1/libs/TinyColorConverter.cjs +1 -0
- package/dist/v1/libs/TinyColorConverter.d.mts +10 -32
- package/dist/v1/libs/TinyColorConverter.mjs +1 -0
- package/dist/v1/libs/TinyColorValidator.d.mts +145 -184
- package/dist/v1/libs/TinyCookieConsent.d.mts +17 -17
- package/dist/v1/libs/TinyDayNightCycle.cjs +67 -42
- package/dist/v1/libs/TinyDayNightCycle.d.mts +87 -117
- package/dist/v1/libs/TinyDayNightCycle.mjs +65 -41
- package/dist/v1/libs/TinyDomReadyManager.d.mts +8 -16
- package/dist/v1/libs/TinyDragDropDetector.cjs +25 -0
- package/dist/v1/libs/TinyDragDropDetector.d.mts +32 -26
- package/dist/v1/libs/TinyDragDropDetector.mjs +22 -0
- package/dist/v1/libs/TinyDragger.cjs +46 -19
- package/dist/v1/libs/TinyDragger.d.mts +82 -81
- package/dist/v1/libs/TinyDragger.mjs +45 -18
- package/dist/v1/libs/TinyElementObserver.cjs +39 -0
- package/dist/v1/libs/TinyElementObserver.d.mts +28 -25
- package/dist/v1/libs/TinyElementObserver.mjs +36 -0
- package/dist/v1/libs/TinyGamepad.cjs +131 -2
- package/dist/v1/libs/TinyGamepad.d.mts +50 -122
- package/dist/v1/libs/TinyGamepad.mjs +129 -2
- package/dist/v1/libs/TinyHtml/TinyHtmlAnchor.cjs +2 -25
- package/dist/v1/libs/TinyHtml/TinyHtmlAnchor.d.mts +19 -25
- package/dist/v1/libs/TinyHtml/TinyHtmlAnchor.mjs +3 -27
- package/dist/v1/libs/TinyHtml/TinyHtmlButton.cjs +2 -1
- package/dist/v1/libs/TinyHtml/TinyHtmlButton.d.mts +55 -55
- package/dist/v1/libs/TinyHtml/TinyHtmlButton.mjs +2 -1
- package/dist/v1/libs/TinyHtml/TinyHtmlCanvas.d.mts +6 -6
- package/dist/v1/libs/TinyHtml/TinyHtmlDatalist.cjs +8 -4
- package/dist/v1/libs/TinyHtml/TinyHtmlDatalist.d.mts +19 -21
- package/dist/v1/libs/TinyHtml/TinyHtmlDatalist.mjs +7 -4
- package/dist/v1/libs/TinyHtml/TinyHtmlEmbed.d.mts +8 -8
- package/dist/v1/libs/TinyHtml/TinyHtmlForm.d.mts +18 -18
- package/dist/v1/libs/TinyHtml/TinyHtmlIcon.d.mts +5 -6
- package/dist/v1/libs/TinyHtml/TinyHtmlIframe.d.mts +19 -19
- package/dist/v1/libs/TinyHtml/TinyHtmlImage.cjs +0 -28
- package/dist/v1/libs/TinyHtml/TinyHtmlImage.d.mts +22 -28
- package/dist/v1/libs/TinyHtml/TinyHtmlImage.mjs +1 -27
- package/dist/v1/libs/TinyHtml/TinyHtmlInput.d.mts +11 -11
- package/dist/v1/libs/TinyHtml/TinyHtmlLink.d.mts +23 -23
- package/dist/v1/libs/TinyHtml/TinyHtmlMedia.d.mts +26 -26
- package/dist/v1/libs/TinyHtml/TinyHtmlScript.cjs +4 -30
- package/dist/v1/libs/TinyHtml/TinyHtmlScript.d.mts +20 -26
- package/dist/v1/libs/TinyHtml/TinyHtmlScript.mjs +5 -32
- package/dist/v1/libs/TinyHtml/TinyHtmlSelect.d.mts +19 -19
- package/dist/v1/libs/TinyHtml/TinyHtmlStyle.d.mts +8 -8
- package/dist/v1/libs/TinyHtml/TinyHtmlTemplate.d.mts +26 -28
- package/dist/v1/libs/TinyHtml/TinyHtmlTextarea.cjs +14 -15
- package/dist/v1/libs/TinyHtml/TinyHtmlTextarea.d.mts +32 -32
- package/dist/v1/libs/TinyHtml/TinyHtmlTextarea.mjs +15 -15
- package/dist/v1/libs/TinyHtml/index.d.mts +102 -45
- package/dist/v1/libs/TinyHtml/input/TinyHtmlColorInput.cjs +11 -9
- package/dist/v1/libs/TinyHtml/input/TinyHtmlColorInput.d.mts +21 -21
- package/dist/v1/libs/TinyHtml/input/TinyHtmlColorInput.mjs +11 -9
- package/dist/v1/libs/TinyHtml/input/TinyHtmlFileInput.d.mts +11 -11
- package/dist/v1/libs/TinyHtml/input/TinyHtmlHiddenInput.cjs +4 -4
- package/dist/v1/libs/TinyHtml/input/TinyHtmlHiddenInput.d.mts +17 -13
- package/dist/v1/libs/TinyHtml/input/TinyHtmlHiddenInput.mjs +4 -4
- package/dist/v1/libs/TinyHtml/input/TinyHtmlImageInput.d.mts +21 -21
- package/dist/v1/libs/TinyHtml/input/button/TinyHtmlButtonInput.cjs +5 -4
- package/dist/v1/libs/TinyHtml/input/button/TinyHtmlButtonInput.d.mts +14 -14
- package/dist/v1/libs/TinyHtml/input/button/TinyHtmlButtonInput.mjs +5 -4
- package/dist/v1/libs/TinyHtml/input/button/TinyHtmlResetInput.cjs +4 -3
- package/dist/v1/libs/TinyHtml/input/button/TinyHtmlResetInput.d.mts +10 -10
- package/dist/v1/libs/TinyHtml/input/button/TinyHtmlResetInput.mjs +4 -3
- package/dist/v1/libs/TinyHtml/input/button/TinyHtmlSubmitInput.cjs +4 -3
- package/dist/v1/libs/TinyHtml/input/button/TinyHtmlSubmitInput.d.mts +19 -19
- package/dist/v1/libs/TinyHtml/input/button/TinyHtmlSubmitInput.mjs +4 -3
- package/dist/v1/libs/TinyHtml/input/check/TinyHtmlCheckboxInput.cjs +5 -4
- package/dist/v1/libs/TinyHtml/input/check/TinyHtmlCheckboxInput.d.mts +11 -11
- package/dist/v1/libs/TinyHtml/input/check/TinyHtmlCheckboxInput.mjs +5 -4
- package/dist/v1/libs/TinyHtml/input/check/TinyHtmlRadioInput.cjs +4 -3
- package/dist/v1/libs/TinyHtml/input/check/TinyHtmlRadioInput.d.mts +15 -11
- package/dist/v1/libs/TinyHtml/input/check/TinyHtmlRadioInput.mjs +4 -3
- package/dist/v1/libs/TinyHtml/input/date/TinyHtmlDateInput.cjs +49 -21
- package/dist/v1/libs/TinyHtml/input/date/TinyHtmlDateInput.d.mts +34 -20
- package/dist/v1/libs/TinyHtml/input/date/TinyHtmlDateInput.mjs +45 -20
- package/dist/v1/libs/TinyHtml/input/date/TinyHtmlDateTimeInput.cjs +1 -1
- package/dist/v1/libs/TinyHtml/input/date/TinyHtmlDateTimeInput.d.mts +14 -14
- package/dist/v1/libs/TinyHtml/input/date/TinyHtmlDateTimeInput.mjs +1 -1
- package/dist/v1/libs/TinyHtml/input/date/TinyHtmlMonthInput.cjs +1 -1
- package/dist/v1/libs/TinyHtml/input/date/TinyHtmlMonthInput.d.mts +14 -14
- package/dist/v1/libs/TinyHtml/input/date/TinyHtmlMonthInput.mjs +1 -1
- package/dist/v1/libs/TinyHtml/input/date/TinyHtmlTimeInput.cjs +48 -25
- package/dist/v1/libs/TinyHtml/input/date/TinyHtmlTimeInput.d.mts +27 -21
- package/dist/v1/libs/TinyHtml/input/date/TinyHtmlTimeInput.mjs +40 -27
- package/dist/v1/libs/TinyHtml/input/date/TinyHtmlWeekInput.cjs +1 -1
- package/dist/v1/libs/TinyHtml/input/date/TinyHtmlWeekInput.d.mts +14 -14
- package/dist/v1/libs/TinyHtml/input/date/TinyHtmlWeekInput.mjs +1 -1
- package/dist/v1/libs/TinyHtml/input/number/TinyHtmlNumberInput.d.mts +14 -14
- package/dist/v1/libs/TinyHtml/input/number/TinyHtmlRangeInput.d.mts +14 -14
- package/dist/v1/libs/TinyHtml/input/text/TinyHtmlEmailInput.d.mts +25 -21
- package/dist/v1/libs/TinyHtml/input/text/TinyHtmlPasswordInput.d.mts +18 -18
- package/dist/v1/libs/TinyHtml/input/text/TinyHtmlSearchInput.d.mts +33 -29
- package/dist/v1/libs/TinyHtml/input/text/TinyHtmlTelInput.d.mts +22 -22
- package/dist/v1/libs/TinyHtml/input/text/TinyHtmlTextInput.d.mts +18 -18
- package/dist/v1/libs/TinyHtml/input/text/TinyHtmlUrlInput.d.mts +31 -27
- package/dist/v1/libs/TinyHtml/media/TinyHtmlAudio.d.mts +35 -11
- package/dist/v1/libs/TinyHtml/media/TinyHtmlObject.d.mts +10 -10
- package/dist/v1/libs/TinyHtml/media/TinyHtmlSource.d.mts +12 -12
- package/dist/v1/libs/TinyHtml/media/TinyHtmlVideo.d.mts +35 -27
- package/dist/v1/libs/TinyHtml.cjs +4 -5
- package/dist/v1/libs/TinyHtml.d.mts +1503 -1731
- package/dist/v1/libs/TinyHtml.mjs +5 -6
- package/dist/v1/libs/TinyI18.cjs +61 -0
- package/dist/v1/libs/TinyI18.d.mts +34 -58
- package/dist/v1/libs/TinyI18.mjs +55 -0
- package/dist/v1/libs/TinyIframeEvents.cjs +19 -2
- package/dist/v1/libs/TinyIframeEvents.d.mts +29 -38
- package/dist/v1/libs/TinyIframeEvents.mjs +19 -2
- package/dist/v1/libs/TinyInventory.d.mts +78 -141
- package/dist/v1/libs/TinyInventoryTrader.d.mts +19 -22
- package/dist/v1/libs/TinyLevelUp.d.mts +10 -13
- package/dist/v1/libs/TinyLoadingScreen.d.mts +21 -31
- package/dist/v1/libs/TinyLocalStorage.cjs +48 -0
- package/dist/v1/libs/TinyLocalStorage.d.mts +11 -30
- package/dist/v1/libs/TinyLocalStorage.mjs +45 -0
- package/dist/v1/libs/TinyMamdaniInferenceSystem.d.mts +37 -23
- package/dist/v1/libs/TinyMediaPlayer.cjs +77 -3
- package/dist/v1/libs/TinyMediaPlayer.d.mts +109 -106
- package/dist/v1/libs/TinyMediaPlayer.mjs +71 -3
- package/dist/v1/libs/TinyNeedBar.d.mts +25 -37
- package/dist/v1/libs/TinyNewWinEvents.cjs +29 -0
- package/dist/v1/libs/TinyNewWinEvents.d.mts +32 -29
- package/dist/v1/libs/TinyNewWinEvents.mjs +26 -0
- package/dist/v1/libs/TinyNotifications.d.mts +6 -6
- package/dist/v1/libs/TinyNotifyCenter.cjs +36 -0
- package/dist/v1/libs/TinyNotifyCenter.d.mts +15 -15
- package/dist/v1/libs/TinyNotifyCenter.mjs +32 -0
- package/dist/v1/libs/TinyPromiseQueue.d.mts +11 -11
- package/dist/v1/libs/TinyRadioFm.cjs +70 -12
- package/dist/v1/libs/TinyRadioFm.d.mts +45 -80
- package/dist/v1/libs/TinyRadioFm.mjs +64 -12
- package/dist/v1/libs/TinyRateLimiter.cjs +52 -0
- package/dist/v1/libs/TinyRateLimiter.d.mts +29 -36
- package/dist/v1/libs/TinyRateLimiter.mjs +48 -0
- package/dist/v1/libs/TinySimpleDice.d.mts +17 -36
- package/dist/v1/libs/TinySmartScroller.cjs +52 -3
- package/dist/v1/libs/TinySmartScroller.d.mts +62 -70
- package/dist/v1/libs/TinySmartScroller.mjs +51 -5
- package/dist/v1/libs/TinyTextDiffer.cjs +19 -18
- package/dist/v1/libs/TinyTextDiffer.d.mts +11 -13
- package/dist/v1/libs/TinyTextDiffer.mjs +16 -17
- package/dist/v1/libs/TinyTextRangeEditor.d.mts +8 -8
- package/dist/v1/libs/TinyTextarea.cjs +19 -0
- package/dist/v1/libs/TinyTextarea.d.mts +34 -28
- package/dist/v1/libs/TinyTextarea.mjs +17 -0
- package/dist/v1/libs/TinyTimeout.cjs +11 -1
- package/dist/v1/libs/TinyTimeout.d.mts +14 -14
- package/dist/v1/libs/TinyTimeout.mjs +9 -1
- package/dist/v1/libs/TinyToastNotify.cjs +36 -1
- package/dist/v1/libs/TinyToastNotify.d.mts +15 -17
- package/dist/v1/libs/TinyToastNotify.mjs +32 -1
- package/dist/v1/libs/TinyUploadClicker.cjs +19 -0
- package/dist/v1/libs/TinyUploadClicker.d.mts +38 -8
- package/dist/v1/libs/TinyUploadClicker.mjs +17 -0
- package/dist/v1/libs/UltraRandomMsgGen.cjs +148 -35
- package/dist/v1/libs/UltraRandomMsgGen.d.mts +52 -78
- package/dist/v1/libs/UltraRandomMsgGen.mjs +133 -34
- package/dist/v1/libs/utils.cjs +21 -0
- package/dist/v1/libs/utils.d.mts +6 -0
- package/dist/v1/libs/utils.mjs +16 -0
- package/docs/v1/README.md +1 -0
- package/docs/v1/basics/array.md +2 -2
- package/docs/v1/basics/deprecated/html.md +17 -0
- package/docs/v1/basics/fullScreen.md +1 -1
- package/docs/v1/basics/html.md +12 -26
- package/docs/v1/basics/mediaContent.md +1 -1
- package/docs/v1/basics/objChecker.md +1 -1
- package/docs/v1/basics/text.md +2 -2
- package/docs/v1/fileManager/main.md +1 -1
- package/docs/v1/libs/ColorSafeStringify.md +1 -1
- package/docs/v1/libs/TinyAfterScrollWatcher.md +1 -1
- package/docs/v1/libs/TinyAnalogClock.md +1 -1
- package/docs/v1/libs/TinyArrayComparator.md +1 -1
- package/docs/v1/libs/TinyArrayPaginator.md +1 -1
- package/docs/v1/libs/TinyClassManager/TinyPluginInliner.md +2 -2
- package/docs/v1/libs/TinyClassManager.md +1 -1
- package/docs/v1/libs/TinyClipboard.md +1 -1
- package/docs/v1/libs/TinyCookieConsent.md +1 -1
- package/docs/v1/libs/TinyDomReadyManager.md +1 -1
- package/docs/v1/libs/TinyDragDropDetector.md +1 -1
- package/docs/v1/libs/TinyDragger.md +1 -1
- package/docs/v1/libs/TinyElementObserver.md +1 -1
- package/docs/v1/libs/TinyHtml.md +1 -1
- package/docs/v1/libs/TinyIframeEvents.md +2 -2
- package/docs/v1/libs/TinyLevelUp.md +1 -1
- package/docs/v1/libs/TinyLoadingScreen.md +1 -1
- package/docs/v1/libs/TinyNewWinEvents.md +2 -2
- package/docs/v1/libs/TinyNotifications.md +1 -1
- package/docs/v1/libs/TinyPromiseQueue.md +2 -2
- package/docs/v1/libs/TinyTextDiffer.md +1 -1
- package/docs/v1/libs/TinyTextarea.md +1 -1
- package/package.json +11 -2
|
@@ -3,6 +3,9 @@
|
|
|
3
3
|
var events = require('events');
|
|
4
4
|
var TinyHtml = require('./TinyHtml.cjs');
|
|
5
5
|
var collision = require('../basics/collision.cjs');
|
|
6
|
+
var utils = require('./utils.cjs');
|
|
7
|
+
|
|
8
|
+
const checkDestroy = utils.createCheckDestroyed('TinySmartScroller');
|
|
6
9
|
|
|
7
10
|
/**
|
|
8
11
|
* Represents the dimensions of a DOM element.
|
|
@@ -227,6 +230,7 @@ class TinySmartScroller extends events.EventEmitter {
|
|
|
227
230
|
* @returns {NodeSizesEvent} A function that compares previous and current height, returning height delta.
|
|
228
231
|
*/
|
|
229
232
|
getSimpleOnHeight(filter = []) {
|
|
233
|
+
checkDestroy(this.#destroyed);
|
|
230
234
|
if (!Array.isArray(filter))
|
|
231
235
|
throw new TypeError('getSimpleOnHeight(filter): filter must be an array of tag names');
|
|
232
236
|
return (elem, sizes, amounts) => {
|
|
@@ -246,6 +250,7 @@ class TinySmartScroller extends events.EventEmitter {
|
|
|
246
250
|
* @returns {NodeSizesEvent} The added size difference callback.
|
|
247
251
|
*/
|
|
248
252
|
addSimpleOnHeight(filter) {
|
|
253
|
+
checkDestroy(this.#destroyed);
|
|
249
254
|
if (!Array.isArray(filter))
|
|
250
255
|
throw new TypeError('addSimpleOnHeight(filter): filter must be an array of tag names');
|
|
251
256
|
const result = this.getSimpleOnHeight(filter);
|
|
@@ -259,6 +264,7 @@ class TinySmartScroller extends events.EventEmitter {
|
|
|
259
264
|
* @returns {string[]} Array of tag names.
|
|
260
265
|
*/
|
|
261
266
|
getLoadTags() {
|
|
267
|
+
checkDestroy(this.#destroyed);
|
|
262
268
|
return Array.from(this.#loadTags);
|
|
263
269
|
}
|
|
264
270
|
|
|
@@ -268,6 +274,7 @@ class TinySmartScroller extends events.EventEmitter {
|
|
|
268
274
|
* @param {string} tag - The tag name to add (e.g., 'IMG').
|
|
269
275
|
*/
|
|
270
276
|
addLoadTag(tag) {
|
|
277
|
+
checkDestroy(this.#destroyed);
|
|
271
278
|
if (typeof tag !== 'string') throw new TypeError('addLoadTag(tag): tag must be a string');
|
|
272
279
|
this.#loadTags.add(tag.toUpperCase());
|
|
273
280
|
}
|
|
@@ -278,6 +285,7 @@ class TinySmartScroller extends events.EventEmitter {
|
|
|
278
285
|
* @param {string} tag - The tag name to remove.
|
|
279
286
|
*/
|
|
280
287
|
removeLoadTag(tag) {
|
|
288
|
+
checkDestroy(this.#destroyed);
|
|
281
289
|
if (typeof tag !== 'string') throw new TypeError('removeLoadTag(tag): tag must be a string');
|
|
282
290
|
this.#loadTags.delete(tag.toUpperCase());
|
|
283
291
|
}
|
|
@@ -289,6 +297,7 @@ class TinySmartScroller extends events.EventEmitter {
|
|
|
289
297
|
* @returns {boolean} True if the tag is being tracked.
|
|
290
298
|
*/
|
|
291
299
|
hasLoadTag(tag) {
|
|
300
|
+
checkDestroy(this.#destroyed);
|
|
292
301
|
if (typeof tag !== 'string') throw new TypeError('hasLoadTag(tag): tag must be a string');
|
|
293
302
|
return this.#loadTags.has(tag.toUpperCase());
|
|
294
303
|
}
|
|
@@ -300,6 +309,7 @@ class TinySmartScroller extends events.EventEmitter {
|
|
|
300
309
|
* @throws {TypeError} If `addDefault` is not a boolean.
|
|
301
310
|
*/
|
|
302
311
|
resetLoadTags(addDefault = false) {
|
|
312
|
+
checkDestroy(this.#destroyed);
|
|
303
313
|
if (typeof addDefault !== 'boolean')
|
|
304
314
|
throw new TypeError('resetLoadTags(addDefault): addDefault must be a boolean');
|
|
305
315
|
this.#loadTags.clear();
|
|
@@ -315,6 +325,7 @@ class TinySmartScroller extends events.EventEmitter {
|
|
|
315
325
|
* @returns {string[]} Array of attribute names.
|
|
316
326
|
*/
|
|
317
327
|
getAttributeFilters() {
|
|
328
|
+
checkDestroy(this.#destroyed);
|
|
318
329
|
return Array.from(this.#attributeFilter);
|
|
319
330
|
}
|
|
320
331
|
|
|
@@ -324,6 +335,7 @@ class TinySmartScroller extends events.EventEmitter {
|
|
|
324
335
|
* @param {string} attr - The attribute name to add.
|
|
325
336
|
*/
|
|
326
337
|
addAttributeFilter(attr) {
|
|
338
|
+
checkDestroy(this.#destroyed);
|
|
327
339
|
if (typeof attr !== 'string')
|
|
328
340
|
throw new TypeError('addAttributeFilter(attr): attr must be a string');
|
|
329
341
|
this.#attributeFilter.add(attr);
|
|
@@ -335,6 +347,7 @@ class TinySmartScroller extends events.EventEmitter {
|
|
|
335
347
|
* @param {string} attr - The attribute name to remove.
|
|
336
348
|
*/
|
|
337
349
|
removeAttributeFilter(attr) {
|
|
350
|
+
checkDestroy(this.#destroyed);
|
|
338
351
|
if (typeof attr !== 'string')
|
|
339
352
|
throw new TypeError('removeAttributeFilter(attr): attr must be a string');
|
|
340
353
|
this.#attributeFilter.delete(attr);
|
|
@@ -347,6 +360,7 @@ class TinySmartScroller extends events.EventEmitter {
|
|
|
347
360
|
* @returns {boolean} True if the attribute is being filtered.
|
|
348
361
|
*/
|
|
349
362
|
hasAttributeFilter(attr) {
|
|
363
|
+
checkDestroy(this.#destroyed);
|
|
350
364
|
if (typeof attr !== 'string')
|
|
351
365
|
throw new TypeError('hasAttributeFilter(attr): attr must be a string');
|
|
352
366
|
return this.#attributeFilter.has(attr);
|
|
@@ -360,6 +374,7 @@ class TinySmartScroller extends events.EventEmitter {
|
|
|
360
374
|
* @throws {TypeError} If `addDefault` is not a boolean.
|
|
361
375
|
*/
|
|
362
376
|
resetAttributeFilters(addDefault = false) {
|
|
377
|
+
checkDestroy(this.#destroyed);
|
|
363
378
|
if (typeof addDefault !== 'boolean')
|
|
364
379
|
throw new TypeError('resetAttributeFilters(addDefault): addDefault must be a boolean');
|
|
365
380
|
this.#attributeFilter.clear();
|
|
@@ -375,7 +390,7 @@ class TinySmartScroller extends events.EventEmitter {
|
|
|
375
390
|
* @param {NodeSizesEvent} handler - Function that compares old and new sizes.
|
|
376
391
|
*/
|
|
377
392
|
onSize(handler) {
|
|
378
|
-
|
|
393
|
+
checkDestroy(this.#destroyed);
|
|
379
394
|
if (typeof handler !== 'function')
|
|
380
395
|
throw new TypeError('onSize(handler): handler must be a function');
|
|
381
396
|
this.#sizeFilter.add(handler);
|
|
@@ -387,7 +402,7 @@ class TinySmartScroller extends events.EventEmitter {
|
|
|
387
402
|
* @param {NodeSizesEvent} handler - The handler function to remove.
|
|
388
403
|
*/
|
|
389
404
|
offSize(handler) {
|
|
390
|
-
|
|
405
|
+
checkDestroy(this.#destroyed);
|
|
391
406
|
if (typeof handler !== 'function')
|
|
392
407
|
throw new TypeError('offSize(handler): handler must be a function');
|
|
393
408
|
this.#sizeFilter.delete(handler);
|
|
@@ -397,6 +412,7 @@ class TinySmartScroller extends events.EventEmitter {
|
|
|
397
412
|
* Checks which elements inside the target are currently visible and updates internal maps.
|
|
398
413
|
*
|
|
399
414
|
* @returns {Map<Element, { oldIsVisible: boolean; isVisible: boolean }>} Visibility comparison results.
|
|
415
|
+
* @private
|
|
400
416
|
*/
|
|
401
417
|
_scrollDataUpdater() {
|
|
402
418
|
const results = new Map();
|
|
@@ -414,6 +430,7 @@ class TinySmartScroller extends events.EventEmitter {
|
|
|
414
430
|
|
|
415
431
|
/**
|
|
416
432
|
* Handles scroll events, calculates position-related statuses, and emits appropriate events.
|
|
433
|
+
* @private
|
|
417
434
|
*/
|
|
418
435
|
_onScroll() {
|
|
419
436
|
if (this.#destroyed) return;
|
|
@@ -475,6 +492,7 @@ class TinySmartScroller extends events.EventEmitter {
|
|
|
475
492
|
* Attempts to correct the scroll position when layout shifts happen, preserving the user position if needed.
|
|
476
493
|
*
|
|
477
494
|
* @param {Element[]} [targets=[]] - List of elements involved in the size change.
|
|
495
|
+
* @private
|
|
478
496
|
*/
|
|
479
497
|
_fixScroll(targets = []) {
|
|
480
498
|
if (this.#destroyed) return;
|
|
@@ -564,6 +582,7 @@ class TinySmartScroller extends events.EventEmitter {
|
|
|
564
582
|
}
|
|
565
583
|
/**
|
|
566
584
|
* Sets up a MutationObserver to watch for DOM changes and react accordingly to maintain scroll consistency.
|
|
585
|
+
* @private
|
|
567
586
|
*/
|
|
568
587
|
_observeMutations() {
|
|
569
588
|
this.#mutationObserver = new MutationObserver((mutations) => {
|
|
@@ -604,6 +623,7 @@ class TinySmartScroller extends events.EventEmitter {
|
|
|
604
623
|
* Adds a ResizeObserver to monitor elements' size changes and trigger layout adjustments.
|
|
605
624
|
*
|
|
606
625
|
* @param {NodeListOf<Element>|Element[]|HTMLCollection} elements - Elements to observe.
|
|
626
|
+
* @private
|
|
607
627
|
*/
|
|
608
628
|
_observeResizes(elements) {
|
|
609
629
|
// Add resize observer
|
|
@@ -644,6 +664,7 @@ class TinySmartScroller extends events.EventEmitter {
|
|
|
644
664
|
* Listens for media/content load events (e.g., images, iframes, videos) to trigger scroll updates.
|
|
645
665
|
*
|
|
646
666
|
* @param {NodeListOf<Element>|Element} elements - Target element(s) to listen on.
|
|
667
|
+
* @private
|
|
647
668
|
*/
|
|
648
669
|
_listenLoadEvents(elements) {
|
|
649
670
|
if (this.#destroyed) return;
|
|
@@ -682,6 +703,7 @@ class TinySmartScroller extends events.EventEmitter {
|
|
|
682
703
|
* @returns {NodeSizes|null} The old size, or undefined.
|
|
683
704
|
*/
|
|
684
705
|
getOldSize(el) {
|
|
706
|
+
checkDestroy(this.#destroyed);
|
|
685
707
|
return this.#oldSizes.get(el) ?? null;
|
|
686
708
|
}
|
|
687
709
|
|
|
@@ -692,6 +714,7 @@ class TinySmartScroller extends events.EventEmitter {
|
|
|
692
714
|
* @returns {NodeSizes|null} The new size, or undefined.
|
|
693
715
|
*/
|
|
694
716
|
getNewSize(el) {
|
|
717
|
+
checkDestroy(this.#destroyed);
|
|
695
718
|
return this.#newSizes.get(el) ?? null;
|
|
696
719
|
}
|
|
697
720
|
|
|
@@ -702,6 +725,7 @@ class TinySmartScroller extends events.EventEmitter {
|
|
|
702
725
|
* @returns {boolean} True if visible, false if not, or undefined if not tracked.
|
|
703
726
|
*/
|
|
704
727
|
wasVisible(el) {
|
|
728
|
+
checkDestroy(this.#destroyed);
|
|
705
729
|
return this.#oldVisibles.get(el) ?? false;
|
|
706
730
|
}
|
|
707
731
|
|
|
@@ -712,6 +736,7 @@ class TinySmartScroller extends events.EventEmitter {
|
|
|
712
736
|
* @returns {boolean} True if visible, false if not, or undefined if not tracked.
|
|
713
737
|
*/
|
|
714
738
|
isVisible(el) {
|
|
739
|
+
checkDestroy(this.#destroyed);
|
|
715
740
|
return this.#newVisibles.get(el) ?? false;
|
|
716
741
|
}
|
|
717
742
|
|
|
@@ -722,6 +747,7 @@ class TinySmartScroller extends events.EventEmitter {
|
|
|
722
747
|
* @returns {boolean} Visibility state from the previous timed check.
|
|
723
748
|
*/
|
|
724
749
|
wasTimedVisible(el) {
|
|
750
|
+
checkDestroy(this.#destroyed);
|
|
725
751
|
return this.#oldVisiblesByTime.get(el) ?? false;
|
|
726
752
|
}
|
|
727
753
|
|
|
@@ -732,6 +758,7 @@ class TinySmartScroller extends events.EventEmitter {
|
|
|
732
758
|
* @returns {boolean} Visibility state from the current timed check.
|
|
733
759
|
*/
|
|
734
760
|
isTimedVisible(el) {
|
|
761
|
+
checkDestroy(this.#destroyed);
|
|
735
762
|
return this.#newVisiblesByTime.get(el) ?? false;
|
|
736
763
|
}
|
|
737
764
|
|
|
@@ -741,6 +768,7 @@ class TinySmartScroller extends events.EventEmitter {
|
|
|
741
768
|
* @param {number} value - Pixels of additional margin to use.
|
|
742
769
|
*/
|
|
743
770
|
setExtraScrollBoundary(value) {
|
|
771
|
+
checkDestroy(this.#destroyed);
|
|
744
772
|
if (typeof value !== 'number' || Number.isNaN(value))
|
|
745
773
|
throw new TypeError('setExtraScrollBoundary(value): value must be a valid number');
|
|
746
774
|
this.#extraScrollBoundary = value;
|
|
@@ -752,6 +780,7 @@ class TinySmartScroller extends events.EventEmitter {
|
|
|
752
780
|
* @returns {number}
|
|
753
781
|
*/
|
|
754
782
|
getExtraScrollBoundary() {
|
|
783
|
+
checkDestroy(this.#destroyed);
|
|
755
784
|
return this.#extraScrollBoundary;
|
|
756
785
|
}
|
|
757
786
|
|
|
@@ -761,6 +790,7 @@ class TinySmartScroller extends events.EventEmitter {
|
|
|
761
790
|
* @returns {number}
|
|
762
791
|
*/
|
|
763
792
|
getLastKnownScrollBottomOffset() {
|
|
793
|
+
checkDestroy(this.#destroyed);
|
|
764
794
|
return this.#lastKnownScrollBottomOffset;
|
|
765
795
|
}
|
|
766
796
|
|
|
@@ -768,6 +798,7 @@ class TinySmartScroller extends events.EventEmitter {
|
|
|
768
798
|
* Forces the scroll position to move to the very bottom of the target.
|
|
769
799
|
*/
|
|
770
800
|
scrollToBottom() {
|
|
801
|
+
checkDestroy(this.#destroyed);
|
|
771
802
|
this.#targetElement.scrollTop = this.#targetElement.scrollHeight;
|
|
772
803
|
}
|
|
773
804
|
|
|
@@ -775,6 +806,7 @@ class TinySmartScroller extends events.EventEmitter {
|
|
|
775
806
|
* Forces the scroll position to move to the very top of the target.
|
|
776
807
|
*/
|
|
777
808
|
scrollToTop() {
|
|
809
|
+
checkDestroy(this.#destroyed);
|
|
778
810
|
this.#targetElement.scrollTop = 0;
|
|
779
811
|
}
|
|
780
812
|
|
|
@@ -784,6 +816,7 @@ class TinySmartScroller extends events.EventEmitter {
|
|
|
784
816
|
* @returns {boolean}
|
|
785
817
|
*/
|
|
786
818
|
isAtCustomBottom() {
|
|
819
|
+
checkDestroy(this.#destroyed);
|
|
787
820
|
return this.#isAtCustomBottom;
|
|
788
821
|
}
|
|
789
822
|
|
|
@@ -793,6 +826,7 @@ class TinySmartScroller extends events.EventEmitter {
|
|
|
793
826
|
* @returns {boolean}
|
|
794
827
|
*/
|
|
795
828
|
isAtCustomTop() {
|
|
829
|
+
checkDestroy(this.#destroyed);
|
|
796
830
|
return this.#isAtCustomTop;
|
|
797
831
|
}
|
|
798
832
|
|
|
@@ -802,6 +836,7 @@ class TinySmartScroller extends events.EventEmitter {
|
|
|
802
836
|
* @returns {boolean}
|
|
803
837
|
*/
|
|
804
838
|
isAtBottom() {
|
|
839
|
+
checkDestroy(this.#destroyed);
|
|
805
840
|
return this.#isAtBottom;
|
|
806
841
|
}
|
|
807
842
|
|
|
@@ -811,6 +846,7 @@ class TinySmartScroller extends events.EventEmitter {
|
|
|
811
846
|
* @returns {boolean}
|
|
812
847
|
*/
|
|
813
848
|
isAtTop() {
|
|
849
|
+
checkDestroy(this.#destroyed);
|
|
814
850
|
return this.#isAtTop;
|
|
815
851
|
}
|
|
816
852
|
|
|
@@ -820,6 +856,7 @@ class TinySmartScroller extends events.EventEmitter {
|
|
|
820
856
|
* @returns {boolean}
|
|
821
857
|
*/
|
|
822
858
|
isPastAtBottom() {
|
|
859
|
+
checkDestroy(this.#destroyed);
|
|
823
860
|
return this.#isPastAtBottom;
|
|
824
861
|
}
|
|
825
862
|
|
|
@@ -829,6 +866,7 @@ class TinySmartScroller extends events.EventEmitter {
|
|
|
829
866
|
* @returns {boolean}
|
|
830
867
|
*/
|
|
831
868
|
isPastAtTop() {
|
|
869
|
+
checkDestroy(this.#destroyed);
|
|
832
870
|
return this.#isPastAtTop;
|
|
833
871
|
}
|
|
834
872
|
|
|
@@ -838,6 +876,7 @@ class TinySmartScroller extends events.EventEmitter {
|
|
|
838
876
|
* @returns {boolean}
|
|
839
877
|
*/
|
|
840
878
|
isPastAtCustomTop() {
|
|
879
|
+
checkDestroy(this.#destroyed);
|
|
841
880
|
return this.#isPastAtCustomTop;
|
|
842
881
|
}
|
|
843
882
|
|
|
@@ -847,6 +886,7 @@ class TinySmartScroller extends events.EventEmitter {
|
|
|
847
886
|
* @returns {boolean}
|
|
848
887
|
*/
|
|
849
888
|
isPastAtCustomBottom() {
|
|
889
|
+
checkDestroy(this.#destroyed);
|
|
850
890
|
return this.#isPastAtCustomBottom;
|
|
851
891
|
}
|
|
852
892
|
|
|
@@ -856,6 +896,7 @@ class TinySmartScroller extends events.EventEmitter {
|
|
|
856
896
|
* @returns {boolean}
|
|
857
897
|
*/
|
|
858
898
|
isScrollPaused() {
|
|
899
|
+
checkDestroy(this.#destroyed);
|
|
859
900
|
return this.#scrollPaused;
|
|
860
901
|
}
|
|
861
902
|
|
|
@@ -865,6 +906,7 @@ class TinySmartScroller extends events.EventEmitter {
|
|
|
865
906
|
* @returns {boolean} True if the scroll target is window, false otherwise.
|
|
866
907
|
*/
|
|
867
908
|
isWindow() {
|
|
909
|
+
checkDestroy(this.#destroyed);
|
|
868
910
|
return this.#useWindow;
|
|
869
911
|
}
|
|
870
912
|
|
|
@@ -883,6 +925,7 @@ class TinySmartScroller extends events.EventEmitter {
|
|
|
883
925
|
* @returns {boolean} True if auto-scroll is active, false otherwise.
|
|
884
926
|
*/
|
|
885
927
|
getAutoScrollBottom() {
|
|
928
|
+
checkDestroy(this.#destroyed);
|
|
886
929
|
return this.#autoScrollBottom;
|
|
887
930
|
}
|
|
888
931
|
|
|
@@ -892,6 +935,7 @@ class TinySmartScroller extends events.EventEmitter {
|
|
|
892
935
|
* @returns {boolean} True if mutation observation is active, false otherwise.
|
|
893
936
|
*/
|
|
894
937
|
getObserveMutations() {
|
|
938
|
+
checkDestroy(this.#destroyed);
|
|
895
939
|
return this.#observeMutations;
|
|
896
940
|
}
|
|
897
941
|
|
|
@@ -901,6 +945,7 @@ class TinySmartScroller extends events.EventEmitter {
|
|
|
901
945
|
* @returns {boolean} True if scroll preservation is active, false otherwise.
|
|
902
946
|
*/
|
|
903
947
|
getPreserveScrollOnLayoutShift() {
|
|
948
|
+
checkDestroy(this.#destroyed);
|
|
904
949
|
return this.#preserveScrollOnLayoutShift;
|
|
905
950
|
}
|
|
906
951
|
|
|
@@ -910,6 +955,7 @@ class TinySmartScroller extends events.EventEmitter {
|
|
|
910
955
|
* @returns {number} Debounce delay time.
|
|
911
956
|
*/
|
|
912
957
|
getDebounceTime() {
|
|
958
|
+
checkDestroy(this.#destroyed);
|
|
913
959
|
return this.#debounceTime;
|
|
914
960
|
}
|
|
915
961
|
|
|
@@ -919,6 +965,7 @@ class TinySmartScroller extends events.EventEmitter {
|
|
|
919
965
|
* @returns {number} Current count of matching elements.
|
|
920
966
|
*/
|
|
921
967
|
getElemAmount() {
|
|
968
|
+
checkDestroy(this.#destroyed);
|
|
922
969
|
return this.#elemAmount;
|
|
923
970
|
}
|
|
924
971
|
|
|
@@ -928,6 +975,7 @@ class TinySmartScroller extends events.EventEmitter {
|
|
|
928
975
|
* @returns {number} Previous count of matching elements.
|
|
929
976
|
*/
|
|
930
977
|
getPrevElemAmount() {
|
|
978
|
+
checkDestroy(this.#destroyed);
|
|
931
979
|
return this.#elemOldAmount;
|
|
932
980
|
}
|
|
933
981
|
|
|
@@ -937,6 +985,7 @@ class TinySmartScroller extends events.EventEmitter {
|
|
|
937
985
|
* @returns {string} The CSS selector string, or an empty string if none was provided.
|
|
938
986
|
*/
|
|
939
987
|
getQuerySelector() {
|
|
988
|
+
checkDestroy(this.#destroyed);
|
|
940
989
|
return this.#querySelector;
|
|
941
990
|
}
|
|
942
991
|
|
|
@@ -946,7 +995,6 @@ class TinySmartScroller extends events.EventEmitter {
|
|
|
946
995
|
*/
|
|
947
996
|
destroy() {
|
|
948
997
|
if (this.#destroyed) return;
|
|
949
|
-
this.#destroyed = true;
|
|
950
998
|
|
|
951
999
|
// Disconnects MutationObserver
|
|
952
1000
|
if (this.#mutationObserver) {
|
|
@@ -976,6 +1024,7 @@ class TinySmartScroller extends events.EventEmitter {
|
|
|
976
1024
|
this.removeAllListeners();
|
|
977
1025
|
this.#sizeFilter.clear();
|
|
978
1026
|
this.#loadTags.clear();
|
|
1027
|
+
this.#destroyed = true;
|
|
979
1028
|
}
|
|
980
1029
|
}
|
|
981
1030
|
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
*
|
|
4
|
-
*/
|
|
1
|
+
import { EventEmitter } from 'events';
|
|
2
|
+
import TinyHtml from './TinyHtml.mjs';
|
|
3
|
+
import * as TinyCollision from '../basics/collision.mjs';
|
|
5
4
|
export type NodeSizes = {
|
|
6
5
|
/**
|
|
7
6
|
* - The height of the element in pixels.
|
|
@@ -12,9 +11,6 @@ export type NodeSizes = {
|
|
|
12
11
|
*/
|
|
13
12
|
width: number;
|
|
14
13
|
};
|
|
15
|
-
/**
|
|
16
|
-
* A callback function that receives node size change data and optionally returns a modified NodeSizes object.
|
|
17
|
-
*/
|
|
18
14
|
export type NodeSizesEvent = (elem: Element, sizes: {
|
|
19
15
|
old: NodeSizes;
|
|
20
16
|
now: NodeSizes;
|
|
@@ -22,9 +18,6 @@ export type NodeSizesEvent = (elem: Element, sizes: {
|
|
|
22
18
|
old: number;
|
|
23
19
|
now: number;
|
|
24
20
|
}) => NodeSizes | undefined;
|
|
25
|
-
/**
|
|
26
|
-
* A generic scroll-related event listener callback function.
|
|
27
|
-
*/
|
|
28
21
|
export type ScrollListenersFunc = (payload: any) => void;
|
|
29
22
|
/**
|
|
30
23
|
* Represents the dimensions of a DOM element.
|
|
@@ -67,58 +60,57 @@ export type ScrollListenersFunc = (payload: any) => void;
|
|
|
67
60
|
* This class is **not framework-dependent** and works with vanilla DOM elements and the window object.
|
|
68
61
|
* @template {Element|Window} HTMLTarget
|
|
69
62
|
*/
|
|
70
|
-
declare class TinySmartScroller<HTMLTarget extends Element | Window> extends EventEmitter
|
|
63
|
+
declare class TinySmartScroller<HTMLTarget extends Element | Window> extends EventEmitter {
|
|
64
|
+
#private;
|
|
71
65
|
static Utils: {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
depth: CollData;
|
|
86
|
-
dirs: CollDirs;
|
|
87
|
-
isNeg: NegCollDirs;
|
|
88
|
-
};
|
|
89
|
-
areElsCollTop: (rect1: ObjRect
|
|
90
|
-
/** @type {MutationObserver|null} */
|
|
91
|
-
, /** @type {MutationObserver|null} */ rect2: ObjRect) => boolean;
|
|
92
|
-
areElsCollBottom: (rect1: ObjRect, rect2: ObjRect) => boolean;
|
|
93
|
-
areElsCollLeft: (rect1: ObjRect, rect2: ObjRect) => boolean;
|
|
94
|
-
areElsCollRight: (rect1: ObjRect, rect2: ObjRect /** @type {HTMLTarget} */) => boolean;
|
|
95
|
-
areElsCollPerfTop: (rect1: ObjRect, rect2: ObjRect) => boolean;
|
|
96
|
-
areElsCollPerfBottom: (rect1: ObjRect, rect2: ObjRect) => boolean;
|
|
97
|
-
areElsCollPerfLeft: (rect1: ObjRect, rect2: ObjRect) => boolean;
|
|
98
|
-
areElsCollPerfRight: (rect1: ObjRect, rect2: ObjRect) => boolean;
|
|
99
|
-
areElsColliding: (rect1: ObjRect, rect2: ObjRect) => boolean;
|
|
100
|
-
areElsPerfColliding: (rect1: ObjRect, rect2: ObjRect) => boolean;
|
|
101
|
-
getElsColliding: (rect1: ObjRect, rect2: ObjRect) => string | null;
|
|
102
|
-
getElsPerfColliding: (rect1: ObjRect, rect2: ObjRect) => "top" | "bottom" | "left" | "right" | null;
|
|
103
|
-
getElsCollOverlap: (rect1: ObjRect, rect2: ObjRect) => {
|
|
66
|
+
areElsCollTop: (rect1: TinyCollision.ObjRect, rect2: TinyCollision.ObjRect) => boolean;
|
|
67
|
+
areElsCollBottom: (rect1: TinyCollision.ObjRect, rect2: TinyCollision.ObjRect) => boolean;
|
|
68
|
+
areElsCollLeft: (rect1: TinyCollision.ObjRect, rect2: TinyCollision.ObjRect) => boolean;
|
|
69
|
+
areElsCollRight: (rect1: TinyCollision.ObjRect, rect2: TinyCollision.ObjRect) => boolean;
|
|
70
|
+
areElsCollPerfTop: (rect1: TinyCollision.ObjRect, rect2: TinyCollision.ObjRect) => boolean;
|
|
71
|
+
areElsCollPerfBottom: (rect1: TinyCollision.ObjRect, rect2: TinyCollision.ObjRect) => boolean;
|
|
72
|
+
areElsCollPerfLeft: (rect1: TinyCollision.ObjRect, rect2: TinyCollision.ObjRect) => boolean;
|
|
73
|
+
areElsCollPerfRight: (rect1: TinyCollision.ObjRect, rect2: TinyCollision.ObjRect) => boolean;
|
|
74
|
+
areElsColliding: (rect1: TinyCollision.ObjRect, rect2: TinyCollision.ObjRect) => boolean;
|
|
75
|
+
areElsPerfColliding: (rect1: TinyCollision.ObjRect, rect2: TinyCollision.ObjRect) => boolean;
|
|
76
|
+
getElsColliding: (rect1: TinyCollision.ObjRect, rect2: TinyCollision.ObjRect) => string | null;
|
|
77
|
+
getElsPerfColliding: (rect1: TinyCollision.ObjRect, rect2: TinyCollision.ObjRect) => 'top' | 'bottom' | 'left' | 'right' | null;
|
|
78
|
+
getElsCollOverlap: (rect1: TinyCollision.ObjRect, rect2: TinyCollision.ObjRect) => {
|
|
104
79
|
overlapLeft: number;
|
|
105
80
|
overlapRight: number;
|
|
106
81
|
overlapTop: number;
|
|
107
82
|
overlapBottom: number;
|
|
108
83
|
};
|
|
109
84
|
getElsCollOverlapPos: ({ overlapLeft, overlapRight, overlapTop, overlapBottom, }?: {
|
|
110
|
-
overlapLeft?: number
|
|
111
|
-
overlapRight?: number
|
|
112
|
-
overlapTop?: number
|
|
113
|
-
overlapBottom?: number
|
|
85
|
+
overlapLeft?: number;
|
|
86
|
+
overlapRight?: number;
|
|
87
|
+
overlapTop?: number;
|
|
88
|
+
overlapBottom?: number;
|
|
114
89
|
}) => {
|
|
115
|
-
dirX: Dirs;
|
|
116
|
-
dirY: Dirs;
|
|
90
|
+
dirX: TinyCollision.Dirs;
|
|
91
|
+
dirY: TinyCollision.Dirs;
|
|
117
92
|
};
|
|
118
|
-
getRectCenter: (rect: ObjRect) => {
|
|
93
|
+
getRectCenter: (rect: TinyCollision.ObjRect) => {
|
|
119
94
|
x: number;
|
|
120
95
|
y: number;
|
|
121
96
|
};
|
|
97
|
+
getElsRelativeCenterOffset(rect1: TinyCollision.ObjRect, rect2: TinyCollision.ObjRect): {
|
|
98
|
+
x: number;
|
|
99
|
+
y: number;
|
|
100
|
+
};
|
|
101
|
+
getElsCollDirDepth(rect1: TinyCollision.ObjRect, rect2: TinyCollision.ObjRect): {
|
|
102
|
+
inDir: TinyCollision.Dirs | null;
|
|
103
|
+
dirX: TinyCollision.Dirs | null;
|
|
104
|
+
dirY: TinyCollision.Dirs | null;
|
|
105
|
+
depthX: number;
|
|
106
|
+
depthY: number;
|
|
107
|
+
};
|
|
108
|
+
getElsCollDetails(rect1: TinyCollision.ObjRect, rect2: TinyCollision.ObjRect): {
|
|
109
|
+
depth: TinyCollision.CollData;
|
|
110
|
+
dirs: TinyCollision.CollDirs;
|
|
111
|
+
isNeg: TinyCollision.NegCollDirs;
|
|
112
|
+
};
|
|
113
|
+
TinyHtml: typeof TinyHtml;
|
|
122
114
|
};
|
|
123
115
|
/**
|
|
124
116
|
* Creates a new instance of TinySmartScroller, attaching scroll and resize observers to manage
|
|
@@ -136,13 +128,13 @@ declare class TinySmartScroller<HTMLTarget extends Element | Window> extends Eve
|
|
|
136
128
|
* - Which attributes to observe for changes.
|
|
137
129
|
*/
|
|
138
130
|
constructor(target: HTMLTarget, { extraScrollBoundary, autoScrollBottom, observeMutations, preserveScrollOnLayoutShift, debounceTime, querySelector, attributeFilter, }?: {
|
|
139
|
-
extraScrollBoundary?: number
|
|
140
|
-
autoScrollBottom?: boolean
|
|
141
|
-
observeMutations?: boolean
|
|
142
|
-
preserveScrollOnLayoutShift?: boolean
|
|
143
|
-
debounceTime?: number
|
|
144
|
-
querySelector?: string | null
|
|
145
|
-
attributeFilter?: string[] | Set<string> | null
|
|
131
|
+
extraScrollBoundary?: number;
|
|
132
|
+
autoScrollBottom?: boolean;
|
|
133
|
+
observeMutations?: boolean;
|
|
134
|
+
preserveScrollOnLayoutShift?: boolean;
|
|
135
|
+
debounceTime?: number;
|
|
136
|
+
querySelector?: string | null;
|
|
137
|
+
attributeFilter?: string[] | Set<string> | null;
|
|
146
138
|
});
|
|
147
139
|
/**
|
|
148
140
|
* Returns a size difference callback that only reacts when height changes, filtered by tag name.
|
|
@@ -239,37 +231,40 @@ declare class TinySmartScroller<HTMLTarget extends Element | Window> extends Eve
|
|
|
239
231
|
* Checks which elements inside the target are currently visible and updates internal maps.
|
|
240
232
|
*
|
|
241
233
|
* @returns {Map<Element, { oldIsVisible: boolean; isVisible: boolean }>} Visibility comparison results.
|
|
234
|
+
* @private
|
|
242
235
|
*/
|
|
243
|
-
_scrollDataUpdater
|
|
244
|
-
oldIsVisible: boolean;
|
|
245
|
-
isVisible: boolean;
|
|
246
|
-
}>;
|
|
236
|
+
private _scrollDataUpdater;
|
|
247
237
|
/**
|
|
248
238
|
* Handles scroll events, calculates position-related statuses, and emits appropriate events.
|
|
239
|
+
* @private
|
|
249
240
|
*/
|
|
250
|
-
_onScroll
|
|
241
|
+
private _onScroll;
|
|
251
242
|
/**
|
|
252
243
|
* Attempts to correct the scroll position when layout shifts happen, preserving the user position if needed.
|
|
253
244
|
*
|
|
254
245
|
* @param {Element[]} [targets=[]] - List of elements involved in the size change.
|
|
246
|
+
* @private
|
|
255
247
|
*/
|
|
256
|
-
_fixScroll
|
|
248
|
+
private _fixScroll;
|
|
257
249
|
/**
|
|
258
250
|
* Sets up a MutationObserver to watch for DOM changes and react accordingly to maintain scroll consistency.
|
|
251
|
+
* @private
|
|
259
252
|
*/
|
|
260
|
-
_observeMutations
|
|
253
|
+
private _observeMutations;
|
|
261
254
|
/**
|
|
262
255
|
* Adds a ResizeObserver to monitor elements' size changes and trigger layout adjustments.
|
|
263
256
|
*
|
|
264
257
|
* @param {NodeListOf<Element>|Element[]|HTMLCollection} elements - Elements to observe.
|
|
258
|
+
* @private
|
|
265
259
|
*/
|
|
266
|
-
_observeResizes
|
|
260
|
+
private _observeResizes;
|
|
267
261
|
/**
|
|
268
262
|
* Listens for media/content load events (e.g., images, iframes, videos) to trigger scroll updates.
|
|
269
263
|
*
|
|
270
264
|
* @param {NodeListOf<Element>|Element} elements - Target element(s) to listen on.
|
|
265
|
+
* @private
|
|
271
266
|
*/
|
|
272
|
-
_listenLoadEvents
|
|
267
|
+
private _listenLoadEvents;
|
|
273
268
|
get target(): HTMLTarget;
|
|
274
269
|
/**
|
|
275
270
|
* Returns the internal scroll container element being monitored.
|
|
@@ -456,9 +451,6 @@ declare class TinySmartScroller<HTMLTarget extends Element | Window> extends Eve
|
|
|
456
451
|
* Once destroyed, this instance should no longer be used.
|
|
457
452
|
*/
|
|
458
453
|
destroy(): void;
|
|
459
|
-
#private;
|
|
460
454
|
}
|
|
461
|
-
|
|
462
|
-
import TinyHtml from './TinyHtml.mjs';
|
|
463
|
-
import * as TinyCollision from '../basics/collision.mjs';
|
|
455
|
+
export default TinySmartScroller;
|
|
464
456
|
//# sourceMappingURL=TinySmartScroller.d.mts.map
|