vevet 1.4.27 → 2.0.1-dev.3

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 (360) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +7 -71
  3. package/build/cdn/index.js +12 -0
  4. package/build/cdn/index.js.LICENSE.txt +14 -0
  5. package/build/cjs/app/Application.js +297 -0
  6. package/build/cjs/app/events/PageLoad.js +74 -0
  7. package/build/cjs/app/events/Viewport.js +303 -0
  8. package/build/cjs/base/Callbacks.js +232 -0
  9. package/build/cjs/base/Component.js +56 -0
  10. package/build/cjs/base/Module.js +262 -0
  11. package/build/cjs/base/MutableProp.js +165 -0
  12. package/build/cjs/base/Plugin.js +56 -0
  13. package/build/cjs/components/animation-frame/AnimationFrame.js +183 -0
  14. package/build/cjs/components/canvas/Ctx2D.js +200 -0
  15. package/build/cjs/components/canvas/Ctx2DPrerender.js +72 -0
  16. package/build/cjs/components/cursor/CustomCursor.js +344 -0
  17. package/build/cjs/components/dragger/Dragger.js +229 -0
  18. package/build/cjs/components/dragger/DraggerDirection.js +77 -0
  19. package/build/cjs/components/dragger/DraggerMove.js +84 -0
  20. package/build/cjs/components/loading/Preloader.js +229 -0
  21. package/build/cjs/components/loading/ProgressPreloader.js +377 -0
  22. package/build/cjs/components/page/Page.js +353 -0
  23. package/build/cjs/components/scroll/custom-scroll/CustomScroll.js +517 -0
  24. package/build/cjs/components/scroll/plugins/SmoothScrollDragPlugin.js +178 -0
  25. package/build/cjs/components/scroll/plugins/SmoothScrollKeyboardPlugin.js +138 -0
  26. package/build/cjs/components/scroll/scrollable/ScrollEventsBase.js +133 -0
  27. package/build/cjs/components/scroll/scrollable/ScrollView.js +315 -0
  28. package/build/cjs/components/scroll/scrollbar/Bar.js +315 -0
  29. package/build/cjs/components/scroll/scrollbar/ScrollBar.js +206 -0
  30. package/build/cjs/components/scroll/smooth-scroll/SmoothScroll.js +625 -0
  31. package/build/cjs/components/scroll/types.js +2 -0
  32. package/build/cjs/components/split-text/SplitText.js +233 -0
  33. package/build/cjs/components/text/SplitText.js +329 -0
  34. package/build/cjs/components/timeline/StaticTimeline.js +137 -0
  35. package/build/cjs/components/timeline/Timeline.js +190 -0
  36. package/build/cjs/index.js +87 -0
  37. package/build/cjs/utils/common/index.js +12 -0
  38. package/build/cjs/utils/common/mergeWithoutArrays.js +19 -0
  39. package/build/cjs/utils/common/randID.js +11 -0
  40. package/build/cjs/utils/common/timeoutCallback.js +17 -0
  41. package/build/cjs/utils/errors.js +8 -0
  42. package/build/cjs/utils/listeners/index.js +10 -0
  43. package/build/cjs/utils/listeners/intersectionObserverSupported.js +11 -0
  44. package/build/cjs/utils/listeners/onScroll.js +47 -0
  45. package/build/cjs/utils/math/boundVal.js +16 -0
  46. package/build/cjs/utils/math/index.js +12 -0
  47. package/build/cjs/utils/math/lerp.js +15 -0
  48. package/build/cjs/utils/math/scopeProgress.js +25 -0
  49. package/build/cjs/utils/types/general.js +2 -0
  50. package/build/cjs/utils/types/utility.js +2 -0
  51. package/build/es/app/Application.js +210 -0
  52. package/build/es/app/events/PageLoad.js +47 -0
  53. package/build/es/app/events/Viewport.js +232 -0
  54. package/build/es/base/Callbacks.js +205 -0
  55. package/build/es/base/Component.js +32 -0
  56. package/build/es/base/Module.js +225 -0
  57. package/build/es/base/MutableProp.js +152 -0
  58. package/build/es/base/Plugin.js +31 -0
  59. package/build/es/components/animation-frame/AnimationFrame.js +145 -0
  60. package/build/es/components/canvas/Ctx2D.js +133 -0
  61. package/build/es/components/canvas/Ctx2DPrerender.js +37 -0
  62. package/build/es/components/cursor/CustomCursor.js +274 -0
  63. package/build/es/components/dragger/Dragger.js +175 -0
  64. package/build/es/components/dragger/DraggerDirection.js +42 -0
  65. package/build/es/components/dragger/DraggerMove.js +56 -0
  66. package/build/es/components/loading/Preloader.js +164 -0
  67. package/build/es/components/loading/ProgressPreloader.js +304 -0
  68. package/build/es/components/page/Page.js +283 -0
  69. package/build/es/components/scroll/custom-scroll/CustomScroll.js +486 -0
  70. package/build/es/components/scroll/plugins/SmoothScrollDragPlugin.js +140 -0
  71. package/build/es/components/scroll/plugins/SmoothScrollKeyboardPlugin.js +109 -0
  72. package/build/es/components/scroll/scrollable/ScrollEventsBase.js +79 -0
  73. package/build/es/components/scroll/scrollable/ScrollView.js +264 -0
  74. package/build/es/components/scroll/scrollbar/Bar.js +262 -0
  75. package/build/es/components/scroll/scrollbar/ScrollBar.js +152 -0
  76. package/build/es/components/scroll/smooth-scroll/SmoothScroll.js +519 -0
  77. package/build/es/components/scroll/types.js +1 -0
  78. package/build/es/components/split-text/SplitText.js +199 -0
  79. package/build/es/components/text/SplitText.js +270 -0
  80. package/build/es/components/timeline/StaticTimeline.js +92 -0
  81. package/build/es/components/timeline/Timeline.js +141 -0
  82. package/build/es/index.js +37 -0
  83. package/build/es/utils/common/index.js +4 -0
  84. package/build/es/utils/common/mergeWithoutArrays.js +13 -0
  85. package/build/es/utils/common/randID.js +7 -0
  86. package/build/es/utils/common/timeoutCallback.js +14 -0
  87. package/build/es/utils/errors.js +5 -0
  88. package/build/es/utils/listeners/index.js +3 -0
  89. package/build/es/utils/listeners/intersectionObserverSupported.js +8 -0
  90. package/build/es/utils/listeners/onScroll.js +44 -0
  91. package/build/es/utils/math/boundVal.js +12 -0
  92. package/build/es/utils/math/index.js +4 -0
  93. package/build/es/utils/math/lerp.js +11 -0
  94. package/build/es/utils/math/scopeProgress.js +22 -0
  95. package/build/es/utils/types/general.js +1 -0
  96. package/build/es/utils/types/utility.js +1 -0
  97. package/build/types/app/Application.d.ts +161 -0
  98. package/build/types/app/Application.d.ts.map +1 -0
  99. package/build/types/app/events/PageLoad.d.ts +28 -0
  100. package/build/types/app/events/PageLoad.d.ts.map +1 -0
  101. package/build/types/app/events/Viewport.d.ts +137 -0
  102. package/build/types/app/events/Viewport.d.ts.map +1 -0
  103. package/build/types/base/Callbacks.d.ts +174 -0
  104. package/build/types/base/Callbacks.d.ts.map +1 -0
  105. package/build/types/base/Component.d.ts +48 -0
  106. package/build/types/base/Component.d.ts.map +1 -0
  107. package/build/types/base/Module.d.ts +179 -0
  108. package/build/types/base/Module.d.ts.map +1 -0
  109. package/build/types/base/MutableProp.d.ts +142 -0
  110. package/build/types/base/MutableProp.d.ts.map +1 -0
  111. package/build/types/base/Plugin.d.ts +35 -0
  112. package/build/types/base/Plugin.d.ts.map +1 -0
  113. package/build/types/components/animation-frame/AnimationFrame.d.ts +96 -0
  114. package/build/types/components/animation-frame/AnimationFrame.d.ts.map +1 -0
  115. package/build/types/components/canvas/Ctx2D.d.ts +111 -0
  116. package/build/types/components/canvas/Ctx2D.d.ts.map +1 -0
  117. package/build/types/components/canvas/Ctx2DPrerender.d.ts +41 -0
  118. package/build/types/components/canvas/Ctx2DPrerender.d.ts.map +1 -0
  119. package/build/types/components/cursor/CustomCursor.d.ts +181 -0
  120. package/build/types/components/cursor/CustomCursor.d.ts.map +1 -0
  121. package/build/types/components/dragger/Dragger.d.ts +120 -0
  122. package/build/types/components/dragger/Dragger.d.ts.map +1 -0
  123. package/build/types/components/dragger/DraggerDirection.d.ts +39 -0
  124. package/build/types/components/dragger/DraggerDirection.d.ts.map +1 -0
  125. package/build/types/components/dragger/DraggerMove.d.ts +49 -0
  126. package/build/types/components/dragger/DraggerMove.d.ts.map +1 -0
  127. package/build/types/components/loading/Preloader.d.ts +107 -0
  128. package/build/types/components/loading/Preloader.d.ts.map +1 -0
  129. package/build/types/components/loading/ProgressPreloader.d.ts +166 -0
  130. package/build/types/components/loading/ProgressPreloader.d.ts.map +1 -0
  131. package/build/types/components/page/Page.d.ts +126 -0
  132. package/build/types/components/page/Page.d.ts.map +1 -0
  133. package/build/types/components/scroll/custom-scroll/CustomScroll.d.ts +322 -0
  134. package/build/types/components/scroll/custom-scroll/CustomScroll.d.ts.map +1 -0
  135. package/build/types/components/scroll/plugins/SmoothScrollDragPlugin.d.ts +97 -0
  136. package/build/types/components/scroll/plugins/SmoothScrollDragPlugin.d.ts.map +1 -0
  137. package/build/types/components/scroll/plugins/SmoothScrollKeyboardPlugin.d.ts +34 -0
  138. package/build/types/components/scroll/plugins/SmoothScrollKeyboardPlugin.d.ts.map +1 -0
  139. package/build/types/components/scroll/scrollable/ScrollEventsBase.d.ts +60 -0
  140. package/build/types/components/scroll/scrollable/ScrollEventsBase.d.ts.map +1 -0
  141. package/build/types/components/scroll/scrollable/ScrollView.d.ts +140 -0
  142. package/build/types/components/scroll/scrollable/ScrollView.d.ts.map +1 -0
  143. package/build/types/components/scroll/scrollbar/Bar.d.ts +84 -0
  144. package/build/types/components/scroll/scrollbar/Bar.d.ts.map +1 -0
  145. package/build/types/components/scroll/scrollbar/ScrollBar.d.ts +109 -0
  146. package/build/types/components/scroll/scrollbar/ScrollBar.d.ts.map +1 -0
  147. package/build/types/components/scroll/smooth-scroll/SmoothScroll.d.ts +307 -0
  148. package/build/types/components/scroll/smooth-scroll/SmoothScroll.d.ts.map +1 -0
  149. package/build/types/components/scroll/types.d.ts +11 -0
  150. package/build/types/components/scroll/types.d.ts.map +1 -0
  151. package/build/types/components/split-text/SplitText.d.ts +118 -0
  152. package/build/types/components/split-text/SplitText.d.ts.map +1 -0
  153. package/build/types/components/text/SplitText.d.ts +118 -0
  154. package/build/types/components/text/SplitText.d.ts.map +1 -0
  155. package/build/types/components/timeline/StaticTimeline.d.ts +92 -0
  156. package/build/types/components/timeline/StaticTimeline.d.ts.map +1 -0
  157. package/build/types/components/timeline/Timeline.d.ts +101 -0
  158. package/build/types/components/timeline/Timeline.d.ts.map +1 -0
  159. package/build/types/index.d.ts +38 -0
  160. package/build/types/index.d.ts.map +1 -0
  161. package/build/types/utils/common/index.d.ts +5 -0
  162. package/build/types/utils/common/index.d.ts.map +1 -0
  163. package/build/types/utils/common/mergeWithoutArrays.d.ts +6 -0
  164. package/build/types/utils/common/mergeWithoutArrays.d.ts.map +1 -0
  165. package/build/types/utils/common/randID.d.ts +5 -0
  166. package/build/types/utils/common/randID.d.ts.map +1 -0
  167. package/build/types/utils/common/timeoutCallback.d.ts +6 -0
  168. package/build/types/utils/common/timeoutCallback.d.ts.map +1 -0
  169. package/build/types/utils/errors.d.ts +3 -0
  170. package/build/types/utils/errors.d.ts.map +1 -0
  171. package/build/types/utils/listeners/index.d.ts +4 -0
  172. package/build/types/utils/listeners/index.d.ts.map +1 -0
  173. package/build/types/utils/listeners/intersectionObserverSupported.d.ts +2 -0
  174. package/build/types/utils/listeners/intersectionObserverSupported.d.ts.map +1 -0
  175. package/build/types/utils/listeners/onScroll.d.ts +10 -0
  176. package/build/types/utils/listeners/onScroll.d.ts.map +1 -0
  177. package/build/types/utils/math/boundVal.d.ts +5 -0
  178. package/build/types/utils/math/boundVal.d.ts.map +1 -0
  179. package/build/types/utils/math/index.d.ts +5 -0
  180. package/build/types/utils/math/index.d.ts.map +1 -0
  181. package/build/types/utils/math/lerp.d.ts +5 -0
  182. package/build/types/utils/math/lerp.d.ts.map +1 -0
  183. package/build/types/utils/math/scopeProgress.d.ts +20 -0
  184. package/build/types/utils/math/scopeProgress.d.ts.map +1 -0
  185. package/build/types/utils/types/general.d.ts +7 -0
  186. package/build/types/utils/types/general.d.ts.map +1 -0
  187. package/build/types/utils/types/utility.d.ts +14 -0
  188. package/build/types/utils/types/utility.d.ts.map +1 -0
  189. package/package.json +88 -82
  190. package/src/cdn/index.js +3 -0
  191. package/src/sass/base.scss +3 -0
  192. package/src/sass/components/cursor/_custom-cursor.scss +63 -0
  193. package/src/sass/components/index.scss +6 -0
  194. package/src/sass/components/loading/_preloader.scss +15 -0
  195. package/src/sass/components/scroll/_scrollbar.scss +73 -0
  196. package/src/sass/components/scroll/_smooth-scroll.scss +17 -0
  197. package/src/sass/index.scss +3 -0
  198. package/src/sass/mixins/_scroll.scss +7 -0
  199. package/{dist/scss → src/sass}/mixins/_transition.scss +8 -4
  200. package/src/sass/mixins/_viewport.scss +69 -0
  201. package/src/sass/mixins/index.scss +3 -0
  202. package/src/ts/app/Application.ts +350 -0
  203. package/src/ts/app/events/PageLoad.ts +79 -0
  204. package/src/ts/app/events/Viewport.ts +365 -0
  205. package/src/ts/base/Callbacks.ts +380 -0
  206. package/src/ts/base/Component.ts +83 -0
  207. package/src/ts/base/Module.ts +385 -0
  208. package/src/ts/base/MutableProp.ts +242 -0
  209. package/src/ts/base/Plugin.ts +76 -0
  210. package/src/ts/components/animation-frame/AnimationFrame.ts +264 -0
  211. package/src/ts/components/canvas/Ctx2D.ts +260 -0
  212. package/src/ts/components/canvas/Ctx2DPrerender.ts +96 -0
  213. package/src/ts/components/cursor/CustomCursor.ts +462 -0
  214. package/src/ts/components/dragger/Dragger.ts +313 -0
  215. package/src/ts/components/dragger/DraggerDirection.ts +106 -0
  216. package/src/ts/components/dragger/DraggerMove.ts +114 -0
  217. package/src/ts/components/loading/Preloader.ts +279 -0
  218. package/src/ts/components/loading/ProgressPreloader.ts +484 -0
  219. package/src/ts/components/page/Page.ts +421 -0
  220. package/src/ts/components/scroll/plugins/SmoothScrollDragPlugin.ts +251 -0
  221. package/src/ts/components/scroll/plugins/SmoothScrollKeyboardPlugin.ts +166 -0
  222. package/src/ts/components/scroll/scrollable/ScrollEventsBase.ts +151 -0
  223. package/src/ts/components/scroll/scrollable/ScrollView.ts +435 -0
  224. package/src/ts/components/scroll/scrollbar/Bar.ts +364 -0
  225. package/src/ts/components/scroll/scrollbar/ScrollBar.ts +292 -0
  226. package/src/ts/components/scroll/smooth-scroll/SmoothScroll.ts +861 -0
  227. package/src/ts/components/scroll/types.ts +10 -0
  228. package/src/ts/components/text/SplitText.ts +418 -0
  229. package/src/ts/components/timeline/StaticTimeline.ts +197 -0
  230. package/src/ts/components/timeline/Timeline.ts +256 -0
  231. package/src/ts/index.ts +94 -0
  232. package/src/ts/utils/common/index.ts +9 -0
  233. package/src/ts/utils/common/mergeWithoutArrays.ts +20 -0
  234. package/src/ts/utils/common/randID.ts +9 -0
  235. package/src/ts/utils/common/timeoutCallback.ts +16 -0
  236. package/src/ts/utils/errors.ts +6 -0
  237. package/src/ts/utils/listeners/index.ts +7 -0
  238. package/src/ts/utils/listeners/intersectionObserverSupported.ts +10 -0
  239. package/src/ts/utils/listeners/onScroll.ts +56 -0
  240. package/src/ts/utils/math/boundVal.ts +15 -0
  241. package/src/ts/utils/math/index.ts +9 -0
  242. package/src/ts/utils/math/lerp.ts +16 -0
  243. package/src/ts/utils/math/scopeProgress.ts +23 -0
  244. package/src/ts/utils/types/general.ts +7 -0
  245. package/src/ts/utils/types/utility.ts +34 -0
  246. package/dist/js/AJAXEvent.js +0 -355
  247. package/dist/js/Application.js +0 -345
  248. package/dist/js/ColumnsModule.js +0 -392
  249. package/dist/js/CursorModule.js +0 -390
  250. package/dist/js/DraggerModule.js +0 -792
  251. package/dist/js/Event.js +0 -538
  252. package/dist/js/FilterModule.js +0 -943
  253. package/dist/js/FormModule.js +0 -706
  254. package/dist/js/FrameModule.js +0 -229
  255. package/dist/js/IntervalModule.js +0 -270
  256. package/dist/js/KeydownModule.js +0 -293
  257. package/dist/js/LoadEvent.js +0 -106
  258. package/dist/js/MenuBaseModule.js +0 -292
  259. package/dist/js/MenuModule.js +0 -265
  260. package/dist/js/MenuTimelineModule.js +0 -321
  261. package/dist/js/Module.js +0 -478
  262. package/dist/js/PageAjaxModule.js +0 -1010
  263. package/dist/js/PageLoadMediaPlugin.js +0 -285
  264. package/dist/js/PageModule.js +0 -440
  265. package/dist/js/PaginationModule.js +0 -961
  266. package/dist/js/PaginationScrollPlugin.js +0 -209
  267. package/dist/js/Plugin.js +0 -114
  268. package/dist/js/PopupModule.js +0 -942
  269. package/dist/js/PreloaderModule.js +0 -724
  270. package/dist/js/ResponsiveProp.js +0 -301
  271. package/dist/js/ScrollAnchorModule.js +0 -554
  272. package/dist/js/ScrollAnimateModule.js +0 -419
  273. package/dist/js/ScrollBarPlugin.js +0 -594
  274. package/dist/js/ScrollDragPlugin.js +0 -396
  275. package/dist/js/ScrollModule.js +0 -1071
  276. package/dist/js/ScrollViewModule.js +0 -388
  277. package/dist/js/SelectModule.js +0 -860
  278. package/dist/js/SliderCanvasModule.js +0 -733
  279. package/dist/js/SliderControlsPlugin.js +0 -247
  280. package/dist/js/SliderCounterPlugin.js +0 -278
  281. package/dist/js/SliderDotsPlugin.js +0 -270
  282. package/dist/js/SliderDragSwipePlugin.js +0 -245
  283. package/dist/js/SliderIntervalPlugin.js +0 -192
  284. package/dist/js/SliderKeydownPlugin.js +0 -185
  285. package/dist/js/SliderModule.js +0 -1062
  286. package/dist/js/SliderWheelPlugin.js +0 -194
  287. package/dist/js/TextAnimateModule.js +0 -663
  288. package/dist/js/TextSplitModule.js +0 -785
  289. package/dist/js/TimelineBaseModule.js +0 -405
  290. package/dist/js/TimelineModule.js +0 -494
  291. package/dist/js/URLEvent.js +0 -239
  292. package/dist/js/ViewportEvent.js +0 -465
  293. package/dist/js/WheelEventModule.js +0 -295
  294. package/dist/js/domChildOf.js +0 -46
  295. package/dist/js/domChildren.js +0 -47
  296. package/dist/js/domInsertAfter.js +0 -32
  297. package/dist/js/domRemoveChildren.js +0 -26
  298. package/dist/js/easing.js +0 -363
  299. package/dist/js/eventListenerAdd.js +0 -87
  300. package/dist/js/eventListenerGet.js +0 -49
  301. package/dist/js/eventListenerRemove.js +0 -36
  302. package/dist/js/generateId.js +0 -29
  303. package/dist/js/getBrowserName.js +0 -60
  304. package/dist/js/getOsName.js +0 -39
  305. package/dist/js/getVevetProperties.js +0 -22
  306. package/dist/js/index.js +0 -519
  307. package/dist/js/mathScopeProgress.js +0 -32
  308. package/dist/js/mathSpreadScopeProgress.js +0 -35
  309. package/dist/js/merge.js +0 -33
  310. package/dist/js/normalizeWheel.js +0 -97
  311. package/dist/js/text_animate_module_addons/_composite_elementary.js +0 -196
  312. package/dist/js/text_animate_module_addons/_elementary.js +0 -88
  313. package/dist/js/timeoutCallback.js +0 -26
  314. package/dist/js/vevet.js +0 -10
  315. package/dist/scss/_prefix.scss +0 -1
  316. package/dist/scss/classes/_clear.scss +0 -5
  317. package/dist/scss/classes/_col-row.scss +0 -48
  318. package/dist/scss/classes/_display.scss +0 -65
  319. package/dist/scss/classes/_document-reset.scss +0 -28
  320. package/dist/scss/classes/_document.scss +0 -7
  321. package/dist/scss/classes/_overflow.scss +0 -39
  322. package/dist/scss/classes/_position.scss +0 -55
  323. package/dist/scss/classes/_text.scss +0 -24
  324. package/dist/scss/classes/_transition.scss +0 -22
  325. package/dist/scss/classes/_wrap.scss +0 -31
  326. package/dist/scss/classes/index.scss +0 -14
  327. package/dist/scss/index.scss +0 -3
  328. package/dist/scss/mixins/_clear.scss +0 -6
  329. package/dist/scss/mixins/_display.scss +0 -6
  330. package/dist/scss/mixins/_form.scss +0 -14
  331. package/dist/scss/mixins/_position.scss +0 -42
  332. package/dist/scss/mixins/_reset.scss +0 -17
  333. package/dist/scss/mixins/_responsive.scss +0 -88
  334. package/dist/scss/mixins/index.scss +0 -7
  335. package/dist/scss/modules/columns/_settings.scss +0 -1
  336. package/dist/scss/modules/columns/index.scss +0 -19
  337. package/dist/scss/modules/cursor/_settings.scss +0 -7
  338. package/dist/scss/modules/cursor/index.scss +0 -15
  339. package/dist/scss/modules/form/_settings.scss +0 -15
  340. package/dist/scss/modules/form/index.scss +0 -57
  341. package/dist/scss/modules/index.scss +0 -11
  342. package/dist/scss/modules/menu/_button.scss +0 -58
  343. package/dist/scss/modules/menu/_menu.scss +0 -25
  344. package/dist/scss/modules/menu/_settings.scss +0 -23
  345. package/dist/scss/modules/menu/index.scss +0 -3
  346. package/dist/scss/modules/pagination/_settings.scss +0 -6
  347. package/dist/scss/modules/pagination/index.scss +0 -24
  348. package/dist/scss/modules/popup/_settings.scss +0 -26
  349. package/dist/scss/modules/popup/index.scss +0 -294
  350. package/dist/scss/modules/preloader/_settings.scss +0 -3
  351. package/dist/scss/modules/preloader/index.scss +0 -19
  352. package/dist/scss/modules/scroll/_settings.scss +0 -22
  353. package/dist/scss/modules/scroll/index.scss +0 -94
  354. package/dist/scss/modules/select/_settings.scss +0 -28
  355. package/dist/scss/modules/select/index.scss +0 -142
  356. package/dist/scss/modules/slider/_settings.scss +0 -35
  357. package/dist/scss/modules/slider/index.scss +0 -153
  358. package/dist/scss/modules/text/_settings.scss +0 -1
  359. package/dist/scss/modules/text/index.scss +0 -19
  360. package/dist/types/types.d.ts +0 -18763
@@ -0,0 +1,435 @@
1
+ import { selectAll, SelectorAll } from 'vevet-dom';
2
+ import { ScrollEventsBase, NScrollEventsBase } from './ScrollEventsBase';
3
+ import { IRemovable } from '../../../utils/types/general';
4
+ import { RequiredModuleProp } from '../../../utils/types/utility';
5
+ import onScroll from '../../../utils/listeners/onScroll';
6
+ import { intersectionObserverSupported } from '../../../utils/listeners';
7
+ import boundVal from '../../../utils/math/boundVal';
8
+ import timeoutCallback from '../../../utils/common/timeoutCallback';
9
+
10
+
11
+
12
+ export namespace NScrollView {
13
+
14
+ /**
15
+ * Static properties
16
+ */
17
+ export interface StaticProp extends NScrollEventsBase.StaticProp {
18
+ /**
19
+ * Elements to seek
20
+ * @default '.v-scroll-view__el'
21
+ */
22
+ elements?: SelectorAll;
23
+ /**
24
+ * The moment at which the element is considered to be in the viewport.
25
+ * The value is calculated from top to bottom or from left to right.
26
+ * @default 0.95
27
+ */
28
+ threshold?: number;
29
+ /**
30
+ * Define what states to trace.
31
+ * @default 'in'
32
+ */
33
+ states?: 'in' | 'inout';
34
+ /**
35
+ * A class to be toggled on state change
36
+ * @default 'viewed'
37
+ */
38
+ classToToggle?: string;
39
+ /**
40
+ * If need to use delays on firstStart
41
+ * @default false
42
+ */
43
+ useDelay?: false | {
44
+ max: number;
45
+ dir: 'x' | 'y';
46
+ };
47
+ /**
48
+ * Use IntersectionObserver is supported
49
+ * @default true
50
+ */
51
+ useIntersectionObserver?: boolean;
52
+ }
53
+
54
+ /**
55
+ * Changeable properties
56
+ */
57
+ export interface ChangeableProp extends NScrollEventsBase.ChangeableProp { }
58
+
59
+ /**
60
+ * View element
61
+ */
62
+ export interface El extends Element {
63
+ scrollViewIn?: boolean;
64
+ }
65
+
66
+ /**
67
+ * Available callbacks
68
+ */
69
+ export interface CallbacksTypes extends NScrollEventsBase.CallbacksTypes {
70
+ 'in': El;
71
+ 'out': El;
72
+ }
73
+
74
+ }
75
+
76
+
77
+
78
+ /**
79
+ * Elements into viewport
80
+ */
81
+ export class ScrollView <
82
+ StaticProp extends NScrollView.StaticProp = NScrollView.StaticProp,
83
+ ChangeableProp extends NScrollView.ChangeableProp = NScrollView.ChangeableProp,
84
+ CallbacksTypes extends NScrollView.CallbacksTypes = NScrollView.CallbacksTypes,
85
+ > extends ScrollEventsBase <
86
+ StaticProp,
87
+ ChangeableProp,
88
+ CallbacksTypes
89
+ > {
90
+ get prefix () {
91
+ return `${this._app.prefix}scroll-view`;
92
+ }
93
+
94
+ protected _getDefaultProp <
95
+ T extends RequiredModuleProp<StaticProp & ChangeableProp>
96
+ > (): T {
97
+ return {
98
+ ...super._getDefaultProp(),
99
+ container: window,
100
+ elements: `.${this.prefix}__el`,
101
+ threshold: 0.9,
102
+ states: 'in',
103
+ classToToggle: 'viewed',
104
+ useDelay: false,
105
+ useIntersectionObserver: true,
106
+ };
107
+ }
108
+
109
+
110
+
111
+ /**
112
+ * Scroll event
113
+ */
114
+ protected _scrollEvent?: IRemovable;
115
+ /**
116
+ * Intersection observer
117
+ */
118
+ protected _intersectionObserver?: IntersectionObserver;
119
+
120
+ /**
121
+ * If first start
122
+ */
123
+ protected _firstStart: boolean;
124
+
125
+
126
+
127
+ constructor (
128
+ initialProp?: (StaticProp & ChangeableProp),
129
+ init = true,
130
+ ) {
131
+ super(initialProp, false);
132
+ this._firstStart = true;
133
+
134
+ // get view elements
135
+ this.updateElements();
136
+
137
+ // initialize the class
138
+ if (init) {
139
+ this.init();
140
+ }
141
+ }
142
+
143
+ public init () {
144
+ super.init();
145
+ this.seekBounding();
146
+ }
147
+
148
+ // Set Module Events
149
+ protected _setEvents () {
150
+ super._setEvents();
151
+ this.resize();
152
+ this.addViewportCallback('', () => {
153
+ this.resize();
154
+ });
155
+ }
156
+
157
+ protected _onPropMutate () {
158
+ super._onPropMutate();
159
+ this._removeViewEvents();
160
+ this.updateElements();
161
+ this._setViewEvents();
162
+ }
163
+
164
+ /**
165
+ * Resize the scene
166
+ */
167
+ public resize () {
168
+ this._removeViewEvents();
169
+ this._setViewEvents();
170
+ }
171
+
172
+ /**
173
+ * Set View events: scroll or intersection
174
+ */
175
+ protected _setViewEvents () {
176
+ // set intersection observer
177
+ if (intersectionObserverSupported() && this.prop.useIntersectionObserver) {
178
+ // get intersecton margins
179
+ const { scrollContainerBounding } = this;
180
+ const xMargin = this._firstStart
181
+ ? 0 : scrollContainerBounding.width * (1 - this.prop.threshold) * -1;
182
+ const yMargin = this._firstStart
183
+ ? 0 : scrollContainerBounding.height * (1 - this.prop.threshold) * -1;
184
+ // create intersection observer
185
+ this._intersectionObserver = new IntersectionObserver(
186
+ this._handleIntersectionObserver.bind(this),
187
+ {
188
+ root: this.intersectionRoot,
189
+ threshold: 0,
190
+ rootMargin: `0px ${xMargin}px ${yMargin}px 0px`,
191
+ },
192
+ );
193
+ // add elements
194
+ if (this.elements) {
195
+ this.elements.forEach((el) => {
196
+ this._intersectionObserver?.observe(el);
197
+ });
198
+ }
199
+ } else {
200
+ // set scroll bounding events
201
+ this._scrollEvent = onScroll(this.prop.container, this._handleScroll.bind(this));
202
+ }
203
+ }
204
+
205
+ /**
206
+ * Remove View events: scroll or intersection
207
+ */
208
+ protected _removeViewEvents () {
209
+ // remove scroll events
210
+ if (this._scrollEvent) {
211
+ this._scrollEvent.remove();
212
+ this._scrollEvent = undefined;
213
+ }
214
+ // destroy intersection observer
215
+ if (this._intersectionObserver) {
216
+ this._intersectionObserver.disconnect();
217
+ this._intersectionObserver = undefined;
218
+ }
219
+ }
220
+
221
+
222
+
223
+ protected _elements!: NScrollView.El[];
224
+ /**
225
+ * Element to seek
226
+ */
227
+ get elements () {
228
+ return this._elements;
229
+ }
230
+
231
+ /**
232
+ * Update elements
233
+ */
234
+ public updateElements () {
235
+ // check if elements exist
236
+ if (typeof this.elements === 'undefined') {
237
+ this._elements = [];
238
+ }
239
+ // unobserve old elements
240
+ this.elements.forEach((el) => {
241
+ if (this._intersectionObserver) {
242
+ this._intersectionObserver.unobserve(el);
243
+ }
244
+ });
245
+ // update elements
246
+ this._elements = Array.from(
247
+ selectAll(this.prop.elements, this.domParent || undefined),
248
+ ).filter(
249
+ (el) => !el.classList.contains(this.prop.classToToggle),
250
+ );
251
+ // add them to the observer
252
+ this._elements.forEach((el) => {
253
+ if (this._intersectionObserver) {
254
+ this._intersectionObserver.observe(el);
255
+ }
256
+ });
257
+ }
258
+
259
+
260
+
261
+ /**
262
+ * Event on IntersectionObserver
263
+ */
264
+ protected _handleIntersectionObserver (
265
+ data: IntersectionObserverEntry[],
266
+ ) {
267
+ const parentBounding = this._firstStart ? this.scrollContainerBounding : false;
268
+ for (let index = 0; index < data.length; index += 1) {
269
+ const entry = data[index];
270
+ let delay = 0;
271
+ if (this._firstStart && !!parentBounding && entry.isIntersecting) {
272
+ delay = this._elementInViewportData(entry.target, parentBounding).delay;
273
+ }
274
+ this._handleInOut(
275
+ entry.target,
276
+ entry.isIntersecting,
277
+ delay,
278
+ );
279
+ }
280
+ this._processUnusedElements();
281
+ // change states
282
+ if (this._firstStart) {
283
+ this._firstStart = false;
284
+ this.resize();
285
+ }
286
+ }
287
+
288
+ /**
289
+ * Event on Scroll
290
+ */
291
+ protected _handleScroll () {
292
+ this.seekBounding();
293
+ }
294
+
295
+ /**
296
+ * Seek the elements by their bounding.
297
+ * Only if IntersectionObserver is not used.
298
+ */
299
+ public seekBounding () {
300
+ // check if calculations are done through getBoundingClientRect
301
+ if (intersectionObserverSupported() && this.prop.useIntersectionObserver) {
302
+ return;
303
+ }
304
+
305
+ // vars
306
+ const { scrollContainerBounding } = this;
307
+
308
+ // go through all elements and get their boudning
309
+ for (let index = 0; index < this.elements.length; index += 1) {
310
+ const el = this.elements[index];
311
+ const elData = this._elementInViewportData(el, scrollContainerBounding);
312
+ const delay = elData.isIntersecting ? elData.delay : 0;
313
+ this._handleInOut(el, elData.isIntersecting, delay);
314
+ }
315
+ this._processUnusedElements();
316
+
317
+ // change states
318
+ if (this._firstStart) {
319
+ this._firstStart = false;
320
+ }
321
+ }
322
+
323
+ /**
324
+ * Check element's bounding to define if it is in viewport
325
+ */
326
+ protected _elementInViewportData (
327
+ el: Element,
328
+ parentBounding: NScrollEventsBase.BoundingRect,
329
+ ) {
330
+ const { threshold: propThreshold, states, useDelay } = this.prop;
331
+ const threshold = this._firstStart ? 1 : propThreshold;
332
+ const bounding = el.getBoundingClientRect();
333
+
334
+ // check if the element is intersecting
335
+ let isIntersecting = false;
336
+ if (
337
+ bounding.top < parentBounding.top + parentBounding.height * threshold
338
+ && bounding.left < parentBounding.left + parentBounding.width * threshold
339
+ ) {
340
+ if (states === 'in') {
341
+ isIntersecting = true;
342
+ } else if (
343
+ bounding.right < parentBounding.left * threshold
344
+ || bounding.bottom < parentBounding.top * threshold
345
+ ) {
346
+ isIntersecting = false;
347
+ } else {
348
+ isIntersecting = true;
349
+ }
350
+ }
351
+
352
+ // calculate delay only if it is enabled & calculations
353
+ // are done for the first time
354
+ let delay = 0;
355
+ if (!!useDelay && this._firstStart) {
356
+ const progress = boundVal(
357
+ useDelay.dir === 'x'
358
+ ? (bounding.left - parentBounding.left) / parentBounding.width
359
+ : (bounding.top - parentBounding.top) / parentBounding.height,
360
+ [0, 1],
361
+ );
362
+ delay = progress * useDelay.max;
363
+ }
364
+
365
+ return {
366
+ isIntersecting,
367
+ delay,
368
+ };
369
+ }
370
+
371
+
372
+
373
+ /**
374
+ * Event that is triggered when an element appears or disappears
375
+ */
376
+ protected _handleInOut (
377
+ el: NScrollView.El,
378
+ inViewport: boolean,
379
+ delay = 0,
380
+ ) {
381
+ const { states } = this.prop;
382
+ // check if need to continue
383
+ if (
384
+ (el.scrollViewIn && inViewport)
385
+ || (!el.scrollViewIn && !inViewport)
386
+ ) {
387
+ return;
388
+ }
389
+ // update props
390
+ el.scrollViewIn = inViewport;
391
+
392
+ // toggle classes
393
+ timeoutCallback(() => {
394
+ el.classList.toggle(this.prop.classToToggle, inViewport);
395
+ }, delay);
396
+
397
+ // process callbacks
398
+ if (inViewport && (states === 'in' || states === 'inout')) {
399
+ timeoutCallback(() => {
400
+ this.callbacks.tbt('in', el);
401
+ }, delay);
402
+ } else if (!inViewport && states === 'inout') {
403
+ timeoutCallback(() => {
404
+ this.callbacks.tbt('out', el);
405
+ }, delay);
406
+ }
407
+ }
408
+
409
+ /**
410
+ * Remove elements that are mo more in need
411
+ */
412
+ protected _processUnusedElements () {
413
+ if (this.prop.states !== 'in') {
414
+ return;
415
+ }
416
+ // remove unused elements
417
+ const elementsToRemove = this._elements.filter((el) => el.scrollViewIn);
418
+ elementsToRemove.forEach((el) => {
419
+ if (this._intersectionObserver) {
420
+ this._intersectionObserver.unobserve(el);
421
+ }
422
+ });
423
+ this._elements = this._elements.filter((el) => !el.scrollViewIn);
424
+ }
425
+
426
+
427
+
428
+ /**
429
+ * Destroy the module
430
+ */
431
+ protected _destroy () {
432
+ super._destroy();
433
+ this._removeViewEvents();
434
+ }
435
+ }