sveltekit-ui 1.1.15 → 1.1.17

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.
Files changed (200) hide show
  1. package/package.json +3 -3
  2. package/src/routes/+page.svelte +24 -0
  3. package/dist/Components/Alert/index.svelte +0 -88
  4. package/dist/Components/Alert/index.svelte.js +0 -101
  5. package/dist/Components/ArrowToggle/index.svelte +0 -62
  6. package/dist/Components/Attachment/index.svelte +0 -77
  7. package/dist/Components/Attachment/index.svelte.js +0 -119
  8. package/dist/Components/Audio/index.svelte +0 -193
  9. package/dist/Components/Audio/index.svelte.js +0 -463
  10. package/dist/Components/AudioEditor/index.svelte +0 -252
  11. package/dist/Components/AudioEditor/index.svelte.js +0 -977
  12. package/dist/Components/AudioEditor/samples/alloy-voice-sample.mp3 +0 -0
  13. package/dist/Components/AudioEditor/samples/echo-voice-sample.mp3 +0 -0
  14. package/dist/Components/AudioEditor/samples/fable-voice-sample.mp3 +0 -0
  15. package/dist/Components/AudioEditor/samples/nova-voice-sample.mp3 +0 -0
  16. package/dist/Components/AudioEditor/samples/onyx-voice-sample.mp3 +0 -0
  17. package/dist/Components/AudioEditor/samples/shimmer-voice-sample.mp3 +0 -0
  18. package/dist/Components/AuthCodeInput/index.svelte +0 -85
  19. package/dist/Components/AuthCodeInput/index.svelte.js +0 -95
  20. package/dist/Components/Breadcrumbs/index.svelte +0 -27
  21. package/dist/Components/Breadcrumbs/index.svelte.js +0 -88
  22. package/dist/Components/Button/index.svelte +0 -721
  23. package/dist/Components/Button/index.svelte.js +0 -375
  24. package/dist/Components/Chart/Klines/index.svelte +0 -87
  25. package/dist/Components/Chart/index.svelte +0 -226
  26. package/dist/Components/Chart/index.svelte.js +0 -1090
  27. package/dist/Components/ChartInput/DisplayNav/Klines/index.svelte +0 -150
  28. package/dist/Components/ChartInput/DisplayNav/Lines/index.svelte +0 -45
  29. package/dist/Components/ChartInput/DisplayNav/index.svelte +0 -297
  30. package/dist/Components/ChartInput/EditPanel/index.svelte +0 -155
  31. package/dist/Components/ChartInput/index.svelte +0 -21
  32. package/dist/Components/ChartInput/index.svelte.js +0 -671
  33. package/dist/Components/Checkbox/index.svelte +0 -411
  34. package/dist/Components/Checkbox/index.svelte.js +0 -178
  35. package/dist/Components/Code/index.svelte +0 -23
  36. package/dist/Components/Code/index.svelte.js +0 -33
  37. package/dist/Components/Color/index.svelte +0 -51
  38. package/dist/Components/Color/index.svelte.js +0 -31
  39. package/dist/Components/ColorInput/ChromaPicker/index.svelte +0 -50
  40. package/dist/Components/ColorInput/ColorPalette/index.svelte +0 -62
  41. package/dist/Components/ColorInput/OpacityPicker/index.svelte +0 -68
  42. package/dist/Components/ColorInput/ShowcasePicker/index.svelte +0 -136
  43. package/dist/Components/ColorInput/index.svelte +0 -70
  44. package/dist/Components/ColorInput/index.svelte.js +0 -386
  45. package/dist/Components/ConditionsInput/index.svelte +0 -46
  46. package/dist/Components/ConditionsInput/index.svelte.js +0 -201
  47. package/dist/Components/Confetti/index.svelte +0 -98
  48. package/dist/Components/Confetti/index.svelte.js +0 -94
  49. package/dist/Components/Content/index.svelte +0 -500
  50. package/dist/Components/Content/index.svelte.js +0 -910
  51. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Audio/index.svelte +0 -31
  52. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Audio/index.svelte.js +0 -258
  53. package/dist/Components/ContentInput/AttributesInput/CustomConfig/AudioAdvanced/index.svelte +0 -31
  54. package/dist/Components/ContentInput/AttributesInput/CustomConfig/AudioAdvanced/index.svelte.js +0 -258
  55. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Dropdown/index.svelte +0 -58
  56. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Dropdown/index.svelte.js +0 -206
  57. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Image/index.svelte +0 -28
  58. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Image/index.svelte.js +0 -224
  59. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Number/index.svelte +0 -44
  60. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Number/index.svelte.js +0 -272
  61. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Qr/index.svelte +0 -41
  62. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Qr/index.svelte.js +0 -202
  63. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Slider/index.svelte +0 -19
  64. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Slider/index.svelte.js +0 -117
  65. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TableAdvanced/index.svelte +0 -60
  66. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TableAdvanced/index.svelte.js +0 -542
  67. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Tag/index.svelte +0 -47
  68. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Tag/index.svelte.js +0 -185
  69. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TextInput/index.svelte +0 -35
  70. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TextInput/index.svelte.js +0 -222
  71. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TimeInput/index.svelte +0 -20
  72. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TimeInput/index.svelte.js +0 -84
  73. package/dist/Components/ContentInput/AttributesInput/DefinedTypeInput/index.svelte +0 -25
  74. package/dist/Components/ContentInput/AttributesInput/DefinedTypeInput/index.svelte.js +0 -91
  75. package/dist/Components/ContentInput/AttributesInput/index.svelte +0 -352
  76. package/dist/Components/ContentInput/AttributesInput/index.svelte.js +0 -1436
  77. package/dist/Components/ContentInput/ContentPanelBuilder/AddElement/index.svelte +0 -64
  78. package/dist/Components/ContentInput/ContentPanelBuilder/AddElement/index.svelte.js +0 -97
  79. package/dist/Components/ContentInput/ContentPanelBuilder/ElementList/index.svelte +0 -184
  80. package/dist/Components/ContentInput/ContentPanelBuilder/index.svelte +0 -41
  81. package/dist/Components/ContentInput/index.svelte +0 -78
  82. package/dist/Components/ContentInput/index.svelte.js +0 -1197
  83. package/dist/Components/CronInput/index.svelte +0 -78
  84. package/dist/Components/CronInput/index.svelte.js +0 -198
  85. package/dist/Components/DataTypeInput/index.svelte +0 -174
  86. package/dist/Components/DataTypeInput/index.svelte.js +0 -565
  87. package/dist/Components/Dropdown/index.svelte +0 -116
  88. package/dist/Components/Dropdown/index.svelte.js +0 -403
  89. package/dist/Components/EmailAddress/index.svelte +0 -22
  90. package/dist/Components/EmailAddress/index.svelte.js +0 -45
  91. package/dist/Components/ErrorX/index.svelte +0 -58
  92. package/dist/Components/Eye/index.svelte +0 -57
  93. package/dist/Components/FileInput/index.svelte +0 -146
  94. package/dist/Components/FileInput/index.svelte.js +0 -225
  95. package/dist/Components/Hamburger/index.svelte +0 -99
  96. package/dist/Components/HorizScrollBox/index.svelte +0 -145
  97. package/dist/Components/Icon/index.svelte +0 -412
  98. package/dist/Components/Icon/index.svelte.js +0 -116
  99. package/dist/Components/IconInput/index.svelte +0 -77
  100. package/dist/Components/IconInput/index.svelte.js +0 -259
  101. package/dist/Components/Image/index.svelte +0 -126
  102. package/dist/Components/Image/index.svelte.js +0 -116
  103. package/dist/Components/ImageEditor/Image/CropBox/index.svelte +0 -165
  104. package/dist/Components/ImageEditor/Image/index.svelte +0 -104
  105. package/dist/Components/ImageEditor/Panels/AI/index.svelte +0 -44
  106. package/dist/Components/ImageEditor/Panels/Crop/index.svelte +0 -96
  107. package/dist/Components/ImageEditor/Panels/File/QualityPicker/index.svelte +0 -124
  108. package/dist/Components/ImageEditor/Panels/File/index.svelte +0 -74
  109. package/dist/Components/ImageEditor/Panels/Filters/index.svelte +0 -46
  110. package/dist/Components/ImageEditor/Panels/Resize/index.svelte +0 -58
  111. package/dist/Components/ImageEditor/index.svelte +0 -93
  112. package/dist/Components/ImageEditor/index.svelte.js +0 -1961
  113. package/dist/Components/ImageSlider/index.svelte +0 -124
  114. package/dist/Components/ImageSlider/index.svelte.js +0 -99
  115. package/dist/Components/InfoBox/index.svelte +0 -89
  116. package/dist/Components/Json/Nested/index.svelte +0 -157
  117. package/dist/Components/Json/index.svelte +0 -60
  118. package/dist/Components/Json/index.svelte.js +0 -594
  119. package/dist/Components/LabeledItem/index.svelte +0 -102
  120. package/dist/Components/Layout/NavBar/FullNav/index.svelte +0 -52
  121. package/dist/Components/Layout/NavBar/NavGuts/index.svelte +0 -87
  122. package/dist/Components/Layout/NavBar/index.svelte +0 -72
  123. package/dist/Components/Layout/index.svelte +0 -149
  124. package/dist/Components/Layout/index.svelte.js +0 -360
  125. package/dist/Components/Link/index.svelte +0 -47
  126. package/dist/Components/Link/index.svelte.js +0 -136
  127. package/dist/Components/LoadingSuccessDiv/index.svelte +0 -51
  128. package/dist/Components/LoadingWheel/index.svelte +0 -38
  129. package/dist/Components/Location/index.svelte +0 -79
  130. package/dist/Components/Location/index.svelte.js +0 -288
  131. package/dist/Components/LocationInput/index.svelte +0 -197
  132. package/dist/Components/LocationInput/index.svelte.js +0 -965
  133. package/dist/Components/Number/index.svelte +0 -47
  134. package/dist/Components/Number/index.svelte.js +0 -151
  135. package/dist/Components/PhoneCountryCode/index.svelte +0 -7
  136. package/dist/Components/PhoneCountryCode/index.svelte.js +0 -260
  137. package/dist/Components/PhoneNumber/index.svelte +0 -22
  138. package/dist/Components/PhoneNumber/index.svelte.js +0 -41
  139. package/dist/Components/Popover/index.svelte +0 -396
  140. package/dist/Components/Popover/index.svelte.js +0 -319
  141. package/dist/Components/Qr/index.svelte +0 -85
  142. package/dist/Components/Qr/index.svelte.js +0 -301
  143. package/dist/Components/QrInput/index.svelte +0 -47
  144. package/dist/Components/QrInput/index.svelte.js +0 -218
  145. package/dist/Components/Slider/index.svelte +0 -239
  146. package/dist/Components/Slider/index.svelte.js +0 -469
  147. package/dist/Components/Spacer/index.svelte +0 -41
  148. package/dist/Components/StoragePicker/DisplayFile/index.svelte +0 -15
  149. package/dist/Components/StoragePicker/index.svelte +0 -187
  150. package/dist/Components/StoragePicker/index.svelte.js +0 -592
  151. package/dist/Components/SuccessCheck/index.svelte +0 -56
  152. package/dist/Components/TableAdvanced/ColumnInput/index.svelte +0 -117
  153. package/dist/Components/TableAdvanced/ColumnInput/index.svelte.js +0 -456
  154. package/dist/Components/TableAdvanced/FilterInput/index.svelte +0 -54
  155. package/dist/Components/TableAdvanced/FilterInput/index.svelte.js +0 -247
  156. package/dist/Components/TableAdvanced/Pagination/index.svelte +0 -43
  157. package/dist/Components/TableAdvanced/Pagination/index.svelte.js +0 -97
  158. package/dist/Components/TableAdvanced/SortByInput/index.svelte +0 -72
  159. package/dist/Components/TableAdvanced/SortByInput/index.svelte.js +0 -176
  160. package/dist/Components/TableAdvanced/index.svelte +0 -275
  161. package/dist/Components/TableAdvanced/index.svelte.js +0 -1565
  162. package/dist/Components/Tag/index.svelte +0 -45
  163. package/dist/Components/Tag/index.svelte.js +0 -76
  164. package/dist/Components/TextArrayInput/index.svelte +0 -108
  165. package/dist/Components/TextArrayInput/index.svelte.js +0 -239
  166. package/dist/Components/TextInput/PasswordTooltip/index.svelte +0 -89
  167. package/dist/Components/TextInput/index.svelte +0 -223
  168. package/dist/Components/TextInput/index.svelte.js +0 -447
  169. package/dist/Components/Time/index.svelte +0 -7
  170. package/dist/Components/Time/index.svelte.js +0 -38
  171. package/dist/Components/TimeInput/NumberToggler/index.svelte +0 -34
  172. package/dist/Components/TimeInput/NumberToggler/index.svelte.js +0 -79
  173. package/dist/Components/TimeInput/index.js +0 -702
  174. package/dist/Components/TimeInput/index.svelte +0 -211
  175. package/dist/Components/TimeInput/index.svelte.js +0 -638
  176. package/dist/Components/Tooltip/index.svelte +0 -143
  177. package/dist/Components/TransparentBackground/index.svelte +0 -153
  178. package/dist/Components/TypingDots/index.svelte +0 -84
  179. package/dist/Components/VariablePathInput/index.svelte +0 -63
  180. package/dist/Components/VariablePathInput/index.svelte.js +0 -273
  181. package/dist/Components/VideoTBD/index.svelte +0 -100
  182. package/dist/Components/XFollow/index.svelte +0 -42
  183. package/dist/Components/XPost/index.svelte +0 -52
  184. package/dist/Components/XPost/index.svelte.js +0 -64
  185. package/dist/Components/YoutubeChannelButton/index.svelte +0 -82
  186. package/dist/Components/YoutubeVideo/index.svelte +0 -73
  187. package/dist/Components/YoutubeVideo/index.svelte.js +0 -54
  188. package/dist/actions/draggable.js +0 -49
  189. package/dist/actions/index.js +0 -24
  190. package/dist/actions/no_spaces.js +0 -33
  191. package/dist/actions/numbers_only.js +0 -26
  192. package/dist/actions/scroll_y.js +0 -28
  193. package/dist/actions/stop_scroll_propagation_y.js +0 -42
  194. package/dist/actions/swipe_handler.js +0 -295
  195. package/dist/client/astc_formatting/index.js +0 -1128
  196. package/dist/client/docs/index.js +0 -7622
  197. package/dist/client/index.js +0 -735
  198. package/dist/client/types/index.js +0 -2812
  199. package/dist/index.js +0 -180
  200. package/dist/style.css +0 -682
@@ -1,54 +0,0 @@
1
- import { create_unique_id } from "../../client/index.js"
2
-
3
- export function create_youtube_video_manager(config) {
4
- let id = create_unique_id(null, 20)
5
- let theme = $derived(config?.is_dark_theme ? "dark" : "light")
6
-
7
- let is_loading = $state(false)
8
- let error_message = $state("")
9
-
10
- async function render_video() {
11
- error_message = ""
12
- is_loading = true
13
- if (config?.video_id) {
14
- var img = new Image()
15
- img.src = "http://img.youtube.com/vi/" + config?.video_id + "/mqdefault.jpg"
16
- img.onload = function () {
17
- if (this.width === 120) {
18
- error_message = "YouTube video not found or failed to load."
19
- } else {
20
- error_message = ""
21
- resize_video()
22
- }
23
- }
24
- } else {
25
- error_message = "YouTube video not found or failed to load."
26
- }
27
- is_loading = false
28
- }
29
-
30
- function resize_video() {
31
- const video_container = document?.querySelector(".video_container")
32
- const max_width = video_container.clientWidth
33
- const max_height = 15 * 16 // 20rem * 16px
34
- const aspect_ratio = 16 / 9
35
- const height = Math.min(max_width / aspect_ratio, max_height)
36
- const width = height * aspect_ratio
37
- if (video_container.style.height > height) {
38
- video_container.style.height = `${height}px`
39
- video_container.style.width = `${width}px`
40
- }
41
- }
42
-
43
- return {
44
- id,
45
- get video_id() {
46
- return config?.video_id
47
- },
48
- get theme() {
49
- return theme
50
- },
51
- render_video,
52
- resize_video,
53
- }
54
- }
@@ -1,49 +0,0 @@
1
- export default function draggable(node) {
2
- let is_dragging = false
3
- let left
4
- let top
5
-
6
- function handle_pointerdown(e) {
7
- is_dragging = true
8
- top = JSON.parse(node.style.top.replace(/[^\d.-]/g, ""))
9
- left = JSON.parse(node.style.left.replace(/[^\d.-]/g, ""))
10
- }
11
-
12
- function handle_pointerup(e) {
13
- is_dragging = false
14
- }
15
-
16
- function handle_pointermove(e) {
17
- if (is_dragging) {
18
- left += e.movementX
19
- top += e.movementY
20
- node.style.top = `${top}px`
21
- node.style.left = `${left}px`
22
- node.dispatchEvent(
23
- new CustomEvent("drag", { detail: { top: top, left: left } })
24
- )
25
- }
26
- }
27
-
28
- node.style.position = "absolute"
29
- node.style.cursor = "move"
30
- node.style.userSelect = "none"
31
- node.style["touch-action"] = "none"
32
- node.style["-webkit-touch-callout"] = "none"
33
- node.style["-ms-touch-action"] = "none"
34
- node.style["-moz-user-select"] = "none"
35
- node.style["-webkit-user-select"] = "none"
36
- node.style["-ms-user-select"] = "none"
37
-
38
- node.addEventListener("pointerdown", handle_pointerdown)
39
- window.addEventListener("pointerup", handle_pointerup)
40
- window.addEventListener("pointermove", handle_pointermove)
41
-
42
- return {
43
- destroy() {
44
- node.removeEventListener("pointerdown", handle_pointerdown)
45
- window.removeEventListener("pointerup", handle_pointerup)
46
- window.removeEventListener("pointermove", handle_pointermove)
47
- },
48
- }
49
- }
@@ -1,24 +0,0 @@
1
- export function intersection_observer(node) {
2
- let observer = null
3
- observer = new IntersectionObserver(
4
- (entries) => {
5
- entries.forEach((entry) => {
6
- if (entry.isIntersecting) {
7
- node.dispatchEvent(new CustomEvent("appeared"))
8
- } else {
9
- node.dispatchEvent(new CustomEvent("disappeared"))
10
- }
11
- })
12
- },
13
- { threshold: 1 }
14
- )
15
- observer.observe(node)
16
-
17
- return {
18
- destroy() {
19
- if (observer) {
20
- observer.disconnect()
21
- }
22
- },
23
- }
24
- }
@@ -1,33 +0,0 @@
1
- export default function no_spaces(node, is_no_spaces) {
2
- function handle_input(e) {
3
- if (is_no_spaces) {
4
- const cleaned_val = e.target.value.replace(/\s+/g, "")
5
- if (cleaned_val !== e.target.value) {
6
- e.target.value = ""
7
- e.target.value = cleaned_val
8
- node.dispatchEvent(
9
- new CustomEvent("clean_val", { detail: cleaned_val })
10
- )
11
- }
12
- }
13
- }
14
-
15
- function handle_keydown(e) {
16
- if (is_no_spaces && e.which === 32) {
17
- e.preventDefault()
18
- }
19
- }
20
-
21
- node.addEventListener("input", handle_input)
22
- node.addEventListener("keydown", handle_keydown)
23
-
24
- return {
25
- update(new_is_no_spaces) {
26
- is_no_spaces = new_is_no_spaces
27
- },
28
- destroy() {
29
- node.removeEventListener("input", handle_input)
30
- node.removeEventListener("keydown", handle_keydown)
31
- },
32
- }
33
- }
@@ -1,26 +0,0 @@
1
- export default function numbers_only(node) {
2
- function handle_input(e) {
3
- const cleaned_val = e.target.value.replace(/\D+/g, "")
4
- if (cleaned_val !== e.target.value) {
5
- e.target.value = ""
6
- e.target.value = cleaned_val
7
- node.dispatchEvent(new CustomEvent("clean_val", { detail: cleaned_val }))
8
- }
9
- }
10
-
11
- function handle_keydown(e) {
12
- if (e.which === 32) {
13
- e.preventDefault()
14
- }
15
- }
16
-
17
- node.addEventListener("input", handle_input)
18
- node.addEventListener("keydown", handle_keydown)
19
-
20
- return {
21
- destroy() {
22
- node.removeEventListener("input", handle_input)
23
- node.removeEventListener("keydown", handle_keydown)
24
- },
25
- }
26
- }
@@ -1,28 +0,0 @@
1
- export default function scroll_y(node) {
2
- const handle_wheel = (e) => {
3
- node.scrollTop = node.scrollTop + e.deltaY
4
- }
5
-
6
- let touch_start_y
7
- let node_el_scroll_top_start_y
8
- const handle_touchstart = (e) => {
9
- touch_start_y = Math.round(e.targetTouches[0].clientY)
10
- node_el_scroll_top_start_y = node.scrollTop
11
- }
12
-
13
- const handle_touchmove = (e) => {
14
- node.scrollTop = node_el_scroll_top_start_y + touch_start_y - Math.round(e.targetTouches[0].clientY)
15
- }
16
-
17
- node.addEventListener("wheel", handle_wheel, { passive: true })
18
- node.addEventListener("touchmove", handle_touchmove)
19
- node.addEventListener("touchstart", handle_touchstart)
20
-
21
- return {
22
- destroy() {
23
- node.removeEventListener("wheel", handle_wheel)
24
- node.removeEventListener("touchmove", handle_touchmove)
25
- node.removeEventListener("touchstart", handle_touchstart)
26
- },
27
- }
28
- }
@@ -1,42 +0,0 @@
1
- export default function stop_scroll_propagation_y(node) {
2
- const handle_wheel = (e) => {
3
- let dy
4
- if (e.deltaY) {
5
- dy = e.deltaY
6
- } else if (e.wheelDelta) {
7
- dy = e.wheelDelta
8
- }
9
- check_to_prevent(e, dy)
10
- }
11
-
12
- let prev_touch_y
13
- const handle_touchstart = (e) => {
14
- prev_touch_y = e.changedTouches[0].clientY
15
- }
16
- const handle_touchmove = (e) => {
17
- let dy = prev_touch_y - e.changedTouches[0].clientY
18
- check_to_prevent(e, dy)
19
- prev_touch_y = e.changedTouches[0].clientY
20
- }
21
-
22
- function check_to_prevent(e, dy) {
23
- if (node.scrollTop === 0 && dy < 0) {
24
- e.stopPropagation()
25
- if (e.cancelable) e.preventDefault()
26
- } else if (node.scrollTop === node.scrollHeight - node.clientHeight && dy > 0) {
27
- e.stopPropagation()
28
- if (e.cancelable) e.preventDefault()
29
- }
30
- }
31
- node.addEventListener("wheel", handle_wheel, { passive: true })
32
- node.addEventListener("touchmove", handle_touchmove)
33
- node.addEventListener("touchstart", handle_touchstart)
34
-
35
- return {
36
- destroy() {
37
- node.removeEventListener("wheel", handle_wheel)
38
- node.removeEventListener("touchmove", handle_touchmove)
39
- node.removeEventListener("touchstart", handle_touchstart)
40
- },
41
- }
42
- }
@@ -1,295 +0,0 @@
1
- export default function swipe_handler(node) {
2
- let dy_inner = 0
3
- let dy_outer = 0
4
- let left_swipe = false
5
- let right_swipe = false
6
- let up_swipe = false
7
- let down_swipe = false
8
- let left_overflow_swipe = false
9
- let right_overflow_swipe = false
10
- let up_overflow_swipe = false
11
- let down_overflow_swipe = false
12
- const threshhold = 120
13
- function set_dy(inner_val, outer_val) {
14
- if (typeof inner_val === "number") {
15
- dy_inner = inner_val
16
- }
17
- if (typeof outer_val === "number") {
18
- dy_outer = outer_val
19
- }
20
- node.dispatchEvent(
21
- new CustomEvent("dyChange", {
22
- detail: {
23
- dy_inner: dy_inner,
24
- dy_outer: dy_outer,
25
- dy: dy_inner + dy_outer,
26
- is_at_top: is_at_top,
27
- is_at_bottom: is_at_bottom,
28
- },
29
- })
30
- )
31
- if (!up_swipe && dy_inner + dy_outer > threshhold) {
32
- up_swipe = true
33
- node.dispatchEvent(new CustomEvent("up_swipe"))
34
- }
35
- if (!down_swipe && dy_inner + dy_outer < -threshhold) {
36
- down_swipe = true
37
- node.dispatchEvent(new CustomEvent("down_swipe"))
38
- }
39
- if (!up_overflow_swipe && dy_outer > threshhold) {
40
- up_overflow_swipe = true
41
- node.dispatchEvent(new CustomEvent("up_overflow_swipe"))
42
- }
43
- if (!down_overflow_swipe && dy_outer < -threshhold) {
44
- down_overflow_swipe = true
45
- node.dispatchEvent(new CustomEvent("down_overflow_swipe"))
46
- }
47
- if (dy_outer !== 0 || dy_inner !== 0) {
48
- reset_timer()
49
- }
50
- }
51
-
52
- let dx_inner = 0
53
- let dx_outer = 0
54
- function set_dx(inner_val, outer_val) {
55
- if (typeof inner_val === "number") {
56
- dx_inner = inner_val
57
- }
58
- if (typeof outer_val === "number") {
59
- dx_outer = outer_val
60
- }
61
- node.dispatchEvent(
62
- new CustomEvent("dx_change", {
63
- detail: {
64
- dx_inner: dx_inner,
65
- dx_outer: dx_outer,
66
- dx: dx_inner + dx_outer,
67
- is_at_left: is_at_left,
68
- is_at_right: is_at_right,
69
- },
70
- })
71
- )
72
- if (!left_swipe && dx_inner + dx_outer > threshhold) {
73
- left_swipe = true
74
- node.dispatchEvent(new CustomEvent("left_swipe"))
75
- }
76
- if (!right_swipe && dx_inner + dx_outer < -threshhold) {
77
- right_swipe = true
78
- node.dispatchEvent(new CustomEvent("right_swipe"))
79
- }
80
- if (!left_overflow_swipe && dx_outer > threshhold) {
81
- left_overflow_swipe = true
82
- node.dispatchEvent(new CustomEvent("left_overflow_swipe"))
83
- }
84
- if (!right_overflow_swipe && dx_outer < -threshhold) {
85
- right_overflow_swipe = true
86
- node.dispatchEvent(new CustomEvent("right_overflow_swipe"))
87
- }
88
- if (dx_outer !== 0 || dx_inner !== 0) {
89
- reset_timer()
90
- }
91
- }
92
-
93
- let timer_y
94
- function reset_timer() {
95
- timer_y && clearTimeout(timer_y)
96
- timer_y = setTimeout(() => {
97
- // set_dy(0, 0)
98
- smooth_dy_to_zero()
99
- smooth_dx_to_zero()
100
- is_reference_scroll_top_set = false
101
- touch_reference_y = null
102
- is_reference_scroll_left_set = false
103
- touch_reference_x = null
104
- }, 200)
105
- }
106
-
107
- function smooth_dy_to_zero() {
108
- // set_dy(0)
109
- // smoothdy_outerToZero()
110
- set_dy(0, 0)
111
- up_swipe = false
112
- down_swipe = false
113
- up_overflow_swipe = false
114
- down_overflow_swipe = false
115
- }
116
-
117
- function smooth_dx_to_zero() {
118
- // set_dx(0)
119
- // smoothdx_outerToZero()
120
- set_dx(0, 0)
121
- left_swipe = false
122
- right_swipe = false
123
- left_overflow_swipe = false
124
- right_overflow_swipe = false
125
- }
126
-
127
- // function smoothdy_outerToZero(){
128
- // const dy_outerInc = Math.floor(Math.abs(dy_outer / 10)) + 1
129
- // const newdy_outer = dy_outer < 0 ? dy_outer + dy_outerInc : dy_outer > 0 ? dy_outer - dy_outerInc : 0
130
- // const dy_outerDur = Math.abs(newdy_outer) < 50 ? 50 - Math.abs(newdy_outer) : 1
131
- // if(newdy_outer < threshhold && newdy_outer > -threshhold && (down_swipe || up_swipe)){
132
- // down_swipe = false
133
- // up_swipe = false
134
- // }
135
- // setTimeout(() => {
136
- // set_dy(null, newdy_outer)
137
- // if(Math.abs(newdy_outer) !== 0){ smoothdy_outerToZero() }
138
- // }, dy_outerDur)
139
- // }
140
-
141
- // function smoothdx_outerToZero(){
142
- // const dx_outerInc = Math.floor(Math.abs(dx_outer / 10)) + 1
143
- // const newdx_outer = dx_outer < 0 ? dx_outer + dx_outerInc : dx_outer > 0 ? dx_outer - dx_outerInc : 0
144
- // const dx_outerDur = Math.abs(newdx_outer) < 50 ? 50 - Math.abs(newdx_outer) : 1
145
- // if(newdx_outer < threshhold && newdx_outer > -threshhold && (right_swipe || left_swipe)){
146
- // right_swipe = false
147
- // left_swipe = false
148
- // }
149
- // setTimeout(() => {
150
- // set_dx(null, newdx_outer)
151
- // if(Math.abs(newdx_outer) !== 0){ smoothdx_outerToZero() }
152
- // }, dx_outerDur)
153
- // }
154
-
155
- let is_at_top = true
156
- let is_at_bottom = true
157
- let reference_scroll_top = 0
158
- let is_reference_scroll_top_set = false
159
-
160
- let is_at_left = true
161
- let is_at_right = true
162
- let reference_scroll_left = 0
163
- let is_reference_scroll_left_set = false
164
- const handle_scroll = (e) => {
165
- const was_at_top = is_at_top
166
- const was_at_bottom = is_at_bottom
167
- is_at_top = e.target.scrollTop === 0
168
- is_at_bottom =
169
- e.target.scrollHeight - e.target.offsetHeight - e.target.scrollTop === 0
170
- if (was_at_top !== is_at_top) {
171
- node.dispatchEvent(
172
- new CustomEvent("is_at_top", { detail: { is_at_top: is_at_top } })
173
- )
174
- }
175
- if (was_at_bottom !== is_at_bottom) {
176
- node.dispatchEvent(
177
- new CustomEvent("is_at_bottom", {
178
- detail: { is_at_bottom: is_at_bottom },
179
- })
180
- )
181
- }
182
- if (!is_at_bottom && !is_at_top) {
183
- if (!is_reference_scroll_top_set) {
184
- is_reference_scroll_top_set = true
185
- reference_scroll_top = e.target.scrollTop
186
- }
187
- set_dy(e.target.scrollTop - reference_scroll_top)
188
- touch_reference_y = null
189
- }
190
- is_at_left = e.target.scrollLeft === 0
191
- is_at_right =
192
- e.target.scrollWidth - e.target.offsetWidth - e.target.scrollLeft === 0
193
- if (!is_at_left && !is_at_right) {
194
- if (!is_reference_scroll_left_set) {
195
- is_reference_scroll_left_set = true
196
- reference_scroll_left = e.target.scrollLeft
197
- }
198
- set_dx(e.target.scrollLeft - reference_scroll_left)
199
- touch_reference_x = null
200
- }
201
- }
202
-
203
- const handle_wheel = (e) => {
204
- if (is_at_bottom || is_at_top) {
205
- const stretched_dx = Math.round(e.deltaY / 2)
206
- const adjusted_dy =
207
- stretched_dx > 14 ? 14 : stretched_dx < -14 ? -14 : stretched_dx
208
- set_dy(null, dy_outer + adjusted_dy)
209
- }
210
- if (is_at_left || is_at_right) {
211
- const stretched_dx = Math.round(e.deltaX / 2)
212
- const adjusted_dx =
213
- stretched_dx > 14 ? 14 : stretched_dx < -14 ? -14 : stretched_dx
214
- set_dx(null, dx_outer + adjusted_dx)
215
- }
216
- const is_moving_outer =
217
- (is_at_left && dx_outer < -90) ||
218
- (is_at_right && dx_outer > 90) ||
219
- (is_at_top && dy_outer < -90) ||
220
- (is_at_bottom && dy_outer > 90)
221
- if (!is_moving_outer) {
222
- // e.stopPropagation()
223
- }
224
- }
225
-
226
- let touch_reference_y
227
- let touch_reference_x
228
- let dy_outer_at_start
229
- let dx_outer_at_start
230
- const handle_touchstart = (e) => {
231
- touch_reference_y = e.changedTouches[0].clientY
232
- dy_outer_at_start = dy_outer
233
- touch_reference_x = e.changedTouches[0].clientX
234
- dx_outer_at_start = dx_outer
235
- // e.stopPropagation()
236
- }
237
-
238
- const handle_touchmove = (e) => {
239
- if (is_at_bottom || is_at_top) {
240
- if (!touch_reference_y) {
241
- touch_reference_y = e.changedTouches[0].clientY
242
- dy_outer_at_start = 0
243
- }
244
- set_dy(
245
- null,
246
- Math.round(
247
- dy_outer_at_start + touch_reference_y - e.changedTouches[0].clientY
248
- )
249
- )
250
- }
251
- if (is_at_left || is_at_right) {
252
- if (!touch_reference_x) {
253
- touch_reference_x = e.changedTouches[0].clientX
254
- dx_outer_at_start = 0
255
- }
256
- set_dx(
257
- null,
258
- Math.round(
259
- dx_outer_at_start + touch_reference_x - e.changedTouches[0].clientX
260
- )
261
- )
262
- }
263
- const is_moving_outer =
264
- (is_at_left && dx_outer < -90) ||
265
- (is_at_right && dx_outer > 90) ||
266
- (is_at_top && dy_outer < -90) ||
267
- (is_at_bottom && dy_outer > 90)
268
- if (!is_moving_outer) {
269
- // e.stopPropagation()
270
- }
271
- }
272
-
273
- const handleTouchend = () => {
274
- smooth_dy_to_zero()
275
- smooth_dx_to_zero()
276
- }
277
-
278
- node.addEventListener("scroll", handle_scroll)
279
- node.addEventListener("wheel", handle_wheel, { passive: true })
280
- node.addEventListener("touchstart", handle_touchstart, { passive: true })
281
- node.addEventListener("touchmove", handle_touchmove, { passive: true })
282
- node.addEventListener("touchend", handleTouchend, { passive: true })
283
-
284
- return {
285
- destroy() {
286
- node.removeEventListener("scroll", handle_scroll)
287
- node.removeEventListener("wheel", handle_wheel, { passive: true })
288
- node.removeEventListener("touchstart", handle_touchstart, {
289
- passive: true,
290
- })
291
- node.removeEventListener("touchmove", handle_touchmove, { passive: true })
292
- node.removeEventListener("touchend", handleTouchend, { passive: true })
293
- },
294
- }
295
- }