vevet 3.0.0-beta.5 → 3.0.0-beta.7

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 (111) hide show
  1. package/README.md +12 -0
  2. package/lib/cjs/Application/index.js +2 -1
  3. package/lib/cjs/Application/index.js.map +1 -1
  4. package/lib/cjs/components/CustomCursor/index.js +15 -8
  5. package/lib/cjs/components/CustomCursor/index.js.map +1 -1
  6. package/lib/cjs/utils/image/index.js +0 -1
  7. package/lib/cjs/utils/image/index.js.map +1 -1
  8. package/lib/cjs/utils/image/load.js +15 -14
  9. package/lib/cjs/utils/image/load.js.map +1 -1
  10. package/lib/cjs/utils/image/pathsToProps.js +32 -0
  11. package/lib/cjs/utils/image/pathsToProps.js.map +1 -1
  12. package/lib/cjs/utils/image/sizesToSrcSet.js +11 -0
  13. package/lib/cjs/utils/image/sizesToSrcSet.js.map +1 -1
  14. package/lib/cjs/utils/listeners/index.js +0 -1
  15. package/lib/cjs/utils/listeners/index.js.map +1 -1
  16. package/lib/cjs/utils/listeners/isIntersectionObserverSupported.js +3 -1
  17. package/lib/cjs/utils/listeners/isIntersectionObserverSupported.js.map +1 -1
  18. package/lib/cjs/utils/listeners/onResize.js +20 -0
  19. package/lib/cjs/utils/listeners/onResize.js.map +1 -1
  20. package/lib/cjs/utils/scroll/getScrollValues.js +4 -0
  21. package/lib/cjs/utils/scroll/getScrollValues.js.map +1 -1
  22. package/lib/cjs/utils/scroll/index.js +0 -1
  23. package/lib/cjs/utils/scroll/index.js.map +1 -1
  24. package/lib/cjs/utils/scroll/normalizeWheel.js +7 -0
  25. package/lib/cjs/utils/scroll/normalizeWheel.js.map +1 -1
  26. package/lib/cjs/utils/scroll/onScroll.js +8 -0
  27. package/lib/cjs/utils/scroll/onScroll.js.map +1 -1
  28. package/lib/cjs/utils/scroll/scrollTo.js +20 -0
  29. package/lib/cjs/utils/scroll/scrollTo.js.map +1 -1
  30. package/lib/cjs/utils/scroll/scrollToElement.js +25 -0
  31. package/lib/cjs/utils/scroll/scrollToElement.js.map +1 -1
  32. package/lib/cjs/version.js +1 -1
  33. package/lib/esm/Application/index.js +2 -1
  34. package/lib/esm/Application/index.js.map +1 -1
  35. package/lib/esm/components/CustomCursor/index.js +15 -8
  36. package/lib/esm/components/CustomCursor/index.js.map +1 -1
  37. package/lib/esm/utils/image/index.js +0 -1
  38. package/lib/esm/utils/image/index.js.map +1 -1
  39. package/lib/esm/utils/image/load.js +15 -14
  40. package/lib/esm/utils/image/load.js.map +1 -1
  41. package/lib/esm/utils/image/pathsToProps.js +32 -0
  42. package/lib/esm/utils/image/pathsToProps.js.map +1 -1
  43. package/lib/esm/utils/image/sizesToSrcSet.js +11 -0
  44. package/lib/esm/utils/image/sizesToSrcSet.js.map +1 -1
  45. package/lib/esm/utils/listeners/index.js +0 -1
  46. package/lib/esm/utils/listeners/index.js.map +1 -1
  47. package/lib/esm/utils/listeners/isIntersectionObserverSupported.js +3 -1
  48. package/lib/esm/utils/listeners/isIntersectionObserverSupported.js.map +1 -1
  49. package/lib/esm/utils/listeners/onResize.js +20 -0
  50. package/lib/esm/utils/listeners/onResize.js.map +1 -1
  51. package/lib/esm/utils/scroll/getScrollValues.js +4 -0
  52. package/lib/esm/utils/scroll/getScrollValues.js.map +1 -1
  53. package/lib/esm/utils/scroll/index.js +0 -1
  54. package/lib/esm/utils/scroll/index.js.map +1 -1
  55. package/lib/esm/utils/scroll/normalizeWheel.js +7 -0
  56. package/lib/esm/utils/scroll/normalizeWheel.js.map +1 -1
  57. package/lib/esm/utils/scroll/onScroll.js +8 -0
  58. package/lib/esm/utils/scroll/onScroll.js.map +1 -1
  59. package/lib/esm/utils/scroll/scrollTo.js +20 -0
  60. package/lib/esm/utils/scroll/scrollTo.js.map +1 -1
  61. package/lib/esm/utils/scroll/scrollToElement.js +25 -0
  62. package/lib/esm/utils/scroll/scrollToElement.js.map +1 -1
  63. package/lib/esm/version.js +1 -1
  64. package/lib/types/Application/index.d.ts +2 -1
  65. package/lib/types/Application/index.d.ts.map +1 -1
  66. package/lib/types/Application/types.d.ts +0 -3
  67. package/lib/types/Application/types.d.ts.map +1 -1
  68. package/lib/types/components/CustomCursor/index.d.ts +4 -4
  69. package/lib/types/components/CustomCursor/index.d.ts.map +1 -1
  70. package/lib/types/components/CustomCursor/types.d.ts +5 -5
  71. package/lib/types/components/CustomCursor/types.d.ts.map +1 -1
  72. package/lib/types/utils/image/load.d.ts +11 -0
  73. package/lib/types/utils/image/load.d.ts.map +1 -1
  74. package/lib/types/utils/image/pathsToProps.d.ts +32 -0
  75. package/lib/types/utils/image/pathsToProps.d.ts.map +1 -1
  76. package/lib/types/utils/image/sizesToSrcSet.d.ts +11 -0
  77. package/lib/types/utils/image/sizesToSrcSet.d.ts.map +1 -1
  78. package/lib/types/utils/listeners/isIntersectionObserverSupported.d.ts +3 -1
  79. package/lib/types/utils/listeners/isIntersectionObserverSupported.d.ts.map +1 -1
  80. package/lib/types/utils/listeners/onResize.d.ts +21 -1
  81. package/lib/types/utils/listeners/onResize.d.ts.map +1 -1
  82. package/lib/types/utils/scroll/getScrollValues.d.ts +4 -0
  83. package/lib/types/utils/scroll/getScrollValues.d.ts.map +1 -1
  84. package/lib/types/utils/scroll/normalizeWheel.d.ts +7 -0
  85. package/lib/types/utils/scroll/normalizeWheel.d.ts.map +1 -1
  86. package/lib/types/utils/scroll/onScroll.d.ts +8 -0
  87. package/lib/types/utils/scroll/onScroll.d.ts.map +1 -1
  88. package/lib/types/utils/scroll/scrollTo.d.ts +20 -0
  89. package/lib/types/utils/scroll/scrollTo.d.ts.map +1 -1
  90. package/lib/types/utils/scroll/scrollToElement.d.ts +25 -0
  91. package/lib/types/utils/scroll/scrollToElement.d.ts.map +1 -1
  92. package/lib/types/version.d.ts +1 -1
  93. package/package.json +1 -1
  94. package/src/Application/index.ts +2 -1
  95. package/src/Application/types.ts +0 -3
  96. package/src/components/CustomCursor/index.ts +17 -14
  97. package/src/components/CustomCursor/types.ts +5 -5
  98. package/src/utils/image/index.ts +0 -2
  99. package/src/utils/image/load.ts +23 -14
  100. package/src/utils/image/pathsToProps.ts +32 -0
  101. package/src/utils/image/sizesToSrcSet.ts +11 -0
  102. package/src/utils/listeners/index.ts +0 -2
  103. package/src/utils/listeners/isIntersectionObserverSupported.ts +3 -1
  104. package/src/utils/listeners/onResize.ts +21 -1
  105. package/src/utils/scroll/getScrollValues.ts +4 -0
  106. package/src/utils/scroll/index.ts +0 -2
  107. package/src/utils/scroll/normalizeWheel.ts +7 -0
  108. package/src/utils/scroll/onScroll.ts +8 -0
  109. package/src/utils/scroll/scrollTo.ts +20 -0
  110. package/src/utils/scroll/scrollToElement.ts +25 -0
  111. package/src/version.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../../../src/utils/image/load.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,cAAc,CAAC;AAOvC,KAAK,eAAe,GAAG;IACrB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF;;GAEG;AACH,wBAAgB,SAAS,CACvB,MAAM,EAAE,MAAM,GAAG,gBAAgB,EACjC,KAAK,CAAC,EAAE,eAAe,iCAkExB"}
1
+ {"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../../../src/utils/image/load.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,cAAc,CAAC;AAOvC,KAAK,eAAe,GAAG;IACrB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CACvB,MAAM,EAAE,MAAM,GAAG,gBAAgB,EACjC,KAAK,CAAC,EAAE,eAAe,iCAgExB"}
@@ -9,6 +9,38 @@ export interface IImageAdaptivePaths<S extends Record<string | number, string> =
9
9
  }
10
10
  /**
11
11
  * Transform image paths to properties
12
+ *
13
+ * @example
14
+ *
15
+ * imagePathsToProps({
16
+ * original: '/original.jpg',
17
+ * thumb: '/thumb.jpg',
18
+ * thumbWebp: '/thumb.webp',
19
+ * });
20
+ * // => {"src":"/thumb.webp","srcSet":""}
21
+ *
22
+ * imagePathsToProps({
23
+ * original: '/original.jpg',
24
+ * thumb: '/thumb.jpg',
25
+ * thumbWebp: '/thumb.webp',
26
+ * sizes: {
27
+ * 640: '/640.jpg',
28
+ * 750: '/750.jpg',
29
+ * 1024: '/1024.jpg',
30
+ * 1440: '/1440.jpg',
31
+ * 1920: '/1920.jpg',
32
+ * 2560: '/2560.jpg',
33
+ * },
34
+ * sizesWebp: {
35
+ * 640: '/640.webp',
36
+ * 750: '/750.webp',
37
+ * 1024: '/1024.webp',
38
+ * 1440: '/1440.webp',
39
+ * 1920: '/1920.webp',
40
+ * 2560: '/2560.webp',
41
+ * },
42
+ * });
43
+ * // => {"src":"/thumb.webp","srcSet":"/640.webp 640w, /750.webp 750w, /1024.webp 1024w, /1440.webp 1440w, /1920.webp 1920w, /2560.webp 2560w"}
12
44
  */
13
45
  export declare function imagePathsToProps(data: IImagePaths | IImageAdaptivePaths): {
14
46
  src: string;
@@ -1 +1 @@
1
- {"version":3,"file":"pathsToProps.d.ts","sourceRoot":"","sources":["../../../../src/utils/image/pathsToProps.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB,CAClC,CAAC,SAAS,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,CAC9C,SAAQ,WAAW;IACnB,KAAK,CAAC,EAAE,CAAC,CAAC;IACV,SAAS,CAAC,EAAE,CAAC,CAAC;CACf;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,WAAW,GAAG,mBAAmB;;;EAyBxE"}
1
+ {"version":3,"file":"pathsToProps.d.ts","sourceRoot":"","sources":["../../../../src/utils/image/pathsToProps.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB,CAClC,CAAC,SAAS,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,CAC9C,SAAQ,WAAW;IACnB,KAAK,CAAC,EAAE,CAAC,CAAC;IACV,SAAS,CAAC,EAAE,CAAC,CAAC;CACf;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,WAAW,GAAG,mBAAmB;;;EAyBxE"}
@@ -1,5 +1,16 @@
1
1
  /**
2
2
  * Transform image sizes to src set
3
+ *
4
+ * @example
5
+ *
6
+ * imageSizesToSrcSet({
7
+ * 640: '/640.jpg',
8
+ * 750: '/750.jpg',
9
+ * 1024: '/1024.jpg',
10
+ * 1440: '/1440.jpg',
11
+ * });
12
+ *
13
+ * // => "/640.jpg 640w, /750.jpg 750w, /1024.jpg 1024w, /1440.jpg 1440w"
3
14
  */
4
15
  export declare function imageSizesToSrcSet(sizes: Record<string | number, string>): string;
5
16
  //# sourceMappingURL=sizesToSrcSet.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sizesToSrcSet.d.ts","sourceRoot":"","sources":["../../../../src/utils/image/sizesToSrcSet.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,UAYxE"}
1
+ {"version":3,"file":"sizesToSrcSet.d.ts","sourceRoot":"","sources":["../../../../src/utils/image/sizesToSrcSet.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,UAYxE"}
@@ -1,3 +1,5 @@
1
- /** Check if intersection observer is supported */
1
+ /**
2
+ * Check if intersection observer is supported
3
+ */
2
4
  export declare function isIntersectionObserverSupported(): boolean;
3
5
  //# sourceMappingURL=isIntersectionObserverSupported.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"isIntersectionObserverSupported.d.ts","sourceRoot":"","sources":["../../../../src/utils/listeners/isIntersectionObserverSupported.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,wBAAgB,+BAA+B,YAU9C"}
1
+ {"version":3,"file":"isIntersectionObserverSupported.d.ts","sourceRoot":"","sources":["../../../../src/utils/listeners/isIntersectionObserverSupported.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,+BAA+B,YAU9C"}
@@ -1,4 +1,4 @@
1
- import { NViewport } from 'src/Application/events/Viewport';
1
+ import { NViewport } from '../../Application/events/Viewport';
2
2
  export type TOnResizeTarget = keyof NViewport.ICallbacksTypes;
3
3
  export interface IOnResizeProps {
4
4
  /** Callback on resize */
@@ -37,6 +37,26 @@ export interface IOnResize {
37
37
  * Add events on resize.
38
38
  * If `element` is provided, `ResizeObserver` will be used (first callback will not be fired).
39
39
  * Otherwise, viewport callbacks will be used.
40
+ *
41
+ * @example
42
+ *
43
+ * const handler = onResize({
44
+ * onResize: () => console.log('resize'),
45
+ * element: document.getElementById('app')!,
46
+ * viewportTarget: 'any',
47
+ * hasBothEvents: true, // trace both element and viewport sizes
48
+ * resizeDebounce: 100,
49
+ * });
50
+ *
51
+ * // resize with timeout called twice, but `onResize` will be called only once
52
+ * handler.debounceResize();
53
+ * handler.debounceResize();
54
+ *
55
+ * // resize without timeout
56
+ * handler.resize();
57
+ *
58
+ * // remove listeners
59
+ * handler.remove();
40
60
  */
41
61
  export declare function onResize({ onResize: handleResize, element, viewportTarget, hasBothEvents, resizeDebounce, }: IOnResizeProps): IOnResize;
42
62
  //# sourceMappingURL=onResize.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"onResize.d.ts","sourceRoot":"","sources":["../../../../src/utils/listeners/onResize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAG5D,MAAM,MAAM,eAAe,GAAG,MAAM,SAAS,CAAC,eAAe,CAAC;AAE9D,MAAM,WAAW,cAAc;IAC7B,yBAAyB;IACzB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,yBAAyB;IACzB,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,EAAE,GAAG,KAAK,CAAC;IACtC;;;;;OAKG;IACH,cAAc,CAAC,EAAE,eAAe,CAAC;IACjC;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,SAAS;IACxB,2BAA2B;IAC3B,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,6BAA6B;IAC7B,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,2CAA2C;IAC3C,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,gCAAgC;IAChC,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,EACvB,QAAQ,EAAE,YAAY,EACtB,OAAO,EACP,cAAsB,EACtB,aAAqB,EACrB,cAAkB,GACnB,EAAE,cAAc,GAAG,SAAS,CAwD5B"}
1
+ {"version":3,"file":"onResize.d.ts","sourceRoot":"","sources":["../../../../src/utils/listeners/onResize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAG9D,MAAM,MAAM,eAAe,GAAG,MAAM,SAAS,CAAC,eAAe,CAAC;AAE9D,MAAM,WAAW,cAAc;IAC7B,yBAAyB;IACzB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,yBAAyB;IACzB,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,EAAE,GAAG,KAAK,CAAC;IACtC;;;;;OAKG;IACH,cAAc,CAAC,EAAE,eAAe,CAAC;IACjC;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,SAAS;IACxB,2BAA2B;IAC3B,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,6BAA6B;IAC7B,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,2CAA2C;IAC3C,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,gCAAgC;IAChC,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,QAAQ,CAAC,EACvB,QAAQ,EAAE,YAAY,EACtB,OAAO,EACP,cAAsB,EACtB,aAAqB,EACrB,cAAkB,GACnB,EAAE,cAAc,GAAG,SAAS,CAwD5B"}
@@ -5,6 +5,10 @@ export interface IGetScrollValues {
5
5
  }
6
6
  /**
7
7
  * Get scroll values of a certain element
8
+ *
9
+ * @example
10
+ *
11
+ * getScrollValues(window); // => { scrollTop: 0, scrollLeft: 0 }
8
12
  */
9
13
  export declare function getScrollValues(selector?: Window | Element | IScrollLike | undefined): IGetScrollValues | undefined;
10
14
  //# sourceMappingURL=getScrollValues.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getScrollValues.d.ts","sourceRoot":"","sources":["../../../../src/utils/scroll/getScrollValues.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,GAAE,MAAM,GAAG,OAAO,GAAG,WAAW,GAAG,SAAkB,GAC5D,gBAAgB,GAAG,SAAS,CAe9B"}
1
+ {"version":3,"file":"getScrollValues.d.ts","sourceRoot":"","sources":["../../../../src/utils/scroll/getScrollValues.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,GAAE,MAAM,GAAG,OAAO,GAAG,WAAW,GAAG,SAAkB,GAC5D,gBAAgB,GAAG,SAAS,CAe9B"}
@@ -1,3 +1,10 @@
1
+ /**
2
+ * Normalize wheel delta
3
+ *
4
+ * @example
5
+ *
6
+ * normalizeWheel(event); // => { spinX: -0, spinY: 1.25, pixelX: -0, pixelY: 125 }
7
+ */
1
8
  export declare function normalizeWheel(event: WheelEvent): {
2
9
  spinX: number;
3
10
  spinY: number;
@@ -1 +1 @@
1
- {"version":3,"file":"normalizeWheel.d.ts","sourceRoot":"","sources":["../../../../src/utils/scroll/normalizeWheel.ts"],"names":[],"mappings":"AAEA,wBAAgB,cAAc,CAAC,KAAK,EAAE,UAAU;;;;;EAE/C"}
1
+ {"version":3,"file":"normalizeWheel.d.ts","sourceRoot":"","sources":["../../../../src/utils/scroll/normalizeWheel.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,UAAU;;;;;EAE/C"}
@@ -12,6 +12,14 @@ export interface IOnScrollProps {
12
12
  }
13
13
  /**
14
14
  * Add `onScroll` event
15
+ *
16
+ * @example
17
+ *
18
+ * onScroll({
19
+ * container: window,
20
+ * callback: ({ scrollLeft, scrollTop }) => console.log(scrollLeft, scrollTop),
21
+ * isPassive: true,
22
+ * });
15
23
  */
16
24
  export declare function onScroll({ container, callback, isPassive, }: IOnScrollProps): IRemovable;
17
25
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"onScroll.d.ts","sourceRoot":"","sources":["../../../../src/utils/scroll/onScroll.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAG9D,KAAK,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,YAAY,GAAG,MAAM,CAAC;AAE3D,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAaD,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,UAAU,CAAC;IACtB,QAAQ,EAAE,CAAC,IAAI,EAAE,0BAA0B,KAAK,IAAI,CAAC;IACrD,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAID;;GAEG;AACH,wBAAgB,QAAQ,CAAC,EACvB,SAAS,EACT,QAAQ,EACR,SAAiB,GAClB,EAAE,cAAc,GAAG,UAAU,CAyE7B"}
1
+ {"version":3,"file":"onScroll.d.ts","sourceRoot":"","sources":["../../../../src/utils/scroll/onScroll.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAG9D,KAAK,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,YAAY,GAAG,MAAM,CAAC;AAE3D,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAaD,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,UAAU,CAAC;IACtB,QAAQ,EAAE,CAAC,IAAI,EAAE,0BAA0B,KAAK,IAAI,CAAC;IACrD,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAID;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CAAC,EACvB,SAAS,EACT,QAAQ,EACR,SAAiB,GAClB,EAAE,cAAc,GAAG,UAAU,CAyE7B"}
@@ -22,6 +22,26 @@ export interface IScrollToProps {
22
22
  }
23
23
  /**
24
24
  * Scroll to coordinates
25
+ *
26
+ * @example
27
+ *
28
+ * // static duration
29
+ * scrollTo({
30
+ * container: window,
31
+ * top: 500,
32
+ * duration: 500,
33
+ * });
34
+ *
35
+ * // dynamic duration
36
+ * scrollTo({
37
+ * top: 1000,
38
+ * duration: (px) => px,
39
+ * });
40
+ *
41
+ * // use promise
42
+ * scrollTo({ top: 500 })
43
+ * .then(() => console.log('done'))
44
+ * .catch(() => {});
25
45
  */
26
46
  export declare function scrollTo({ container, top, left, duration: durationProp, }: IScrollToProps): Promise<void>;
27
47
  //# sourceMappingURL=scrollTo.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scrollTo.d.ts","sourceRoot":"","sources":["../../../../src/utils/scroll/scrollTo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAI9C,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,WAAW,CAAC;IAC3C;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;CACpD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,EACvB,SAAkB,EAClB,GAAO,EACP,IAAQ,EACR,QAAQ,EAAE,YAAkB,GAC7B,EAAE,cAAc,iBAuChB"}
1
+ {"version":3,"file":"scrollTo.d.ts","sourceRoot":"","sources":["../../../../src/utils/scroll/scrollTo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAI9C,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,WAAW,CAAC;IAC3C;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;CACpD;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,QAAQ,CAAC,EACvB,SAAkB,EAClB,GAAO,EACP,IAAQ,EACR,QAAQ,EAAE,YAAkB,GAC7B,EAAE,cAAc,iBAuChB"}
@@ -7,6 +7,31 @@ export interface IScrollToElementProps extends IScrollToProps {
7
7
  }
8
8
  /**
9
9
  * Scroll to element
10
+ *
11
+ * @example
12
+ *
13
+ * // static duration
14
+ * scrollToElement({
15
+ * container: window,
16
+ * element: document.getElementById('element_20')!,
17
+ * top: 60,
18
+ * duration: 500,
19
+ * });
20
+ *
21
+ * // dynamic duration
22
+ * scrollToElement({
23
+ * element: document.getElementById('element_20')!,
24
+ * top: 60,
25
+ * duration: (px) => px,
26
+ * });
27
+ *
28
+ * // use promise
29
+ * scrollToElement({
30
+ * element: document.getElementById('element_20')!,
31
+ * top: 60,
32
+ * })
33
+ * .then(() => console.log('done'))
34
+ * .catch(() => {});
10
35
  */
11
36
  export declare function scrollToElement({ container, element: elementProp, top, left, ...props }: IScrollToElementProps): Promise<void>;
12
37
  //# sourceMappingURL=scrollToElement.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scrollToElement.d.ts","sourceRoot":"","sources":["../../../../src/utils/scroll/scrollToElement.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAY,MAAM,YAAY,CAAC;AAEtD,MAAM,WAAW,qBAAsB,SAAQ,cAAc;IAC3D;;OAEG;IACH,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAC9B,SAAkB,EAClB,OAAO,EAAE,WAAW,EACpB,GAAO,EACP,IAAQ,EACR,GAAG,KAAK,EACT,EAAE,qBAAqB,iBAgCvB"}
1
+ {"version":3,"file":"scrollToElement.d.ts","sourceRoot":"","sources":["../../../../src/utils/scroll/scrollToElement.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAY,MAAM,YAAY,CAAC;AAEtD,MAAM,WAAW,qBAAsB,SAAQ,cAAc;IAC3D;;OAEG;IACH,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,eAAe,CAAC,EAC9B,SAAkB,EAClB,OAAO,EAAE,WAAW,EACpB,GAAO,EACP,IAAQ,EACR,GAAG,KAAK,EACT,EAAE,qBAAqB,iBAgCvB"}
@@ -1,3 +1,3 @@
1
- declare const version = "3.0.0-beta.5";
1
+ declare const version = "3.0.0-beta.7";
2
2
  export default version;
3
3
  //# sourceMappingURL=version.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vevet",
3
- "version": "3.0.0-beta.5",
3
+ "version": "3.0.0-beta.7",
4
4
  "description": "Vevet - a JavaScript library of ready-made solutions and helpers",
5
5
  "scripts": {
6
6
  "storybook": "storybook dev -p 6006",
@@ -7,7 +7,8 @@ import { getDeviceInfo } from '@/utils/internal/getDeviceInfo';
7
7
  import { fetchWebpSupport } from '@/utils/internal/fetchWebpSupport';
8
8
 
9
9
  /**
10
- * Vevet Application
10
+ * Vevet Application. This is the base Vevet class
11
+ * that should be initialized first.
11
12
  */
12
13
  export class Application {
13
14
  /** Vevet version */
@@ -1,9 +1,6 @@
1
1
  import { EasingType } from 'easing-progress';
2
2
 
3
3
  export namespace NApplication {
4
- /**
5
- * Properties
6
- */
7
4
  export interface IProps {
8
5
  isVersionPrinted: boolean;
9
6
  /**
@@ -20,8 +20,8 @@ export class CustomCursor<
20
20
  container: window,
21
21
  isEnabled: true,
22
22
  isNativeCursorHidden: false,
23
- width: 50,
24
- height: 50,
23
+ width: 36,
24
+ height: 36,
25
25
  lerp: 0.2,
26
26
  isFpsNormalized: true,
27
27
  isAutoStop: true,
@@ -84,9 +84,6 @@ export class CustomCursor<
84
84
  /** Animation frame */
85
85
  private _animationFrame!: AnimationFrame;
86
86
 
87
- /** If can play animation */
88
- private _canPlay: boolean;
89
-
90
87
  /** Current cursor coordinates */
91
88
  private _coords: NCustomCursor.ICoords;
92
89
 
@@ -150,7 +147,6 @@ export class CustomCursor<
150
147
  // set default vars
151
148
  this._coords = { x: 0, y: 0, width: 0, height: 0 };
152
149
  this._targetCoords = { x: 0, y: 0, width: 0, height: 0 };
153
- this._canPlay = this.props.isEnabled;
154
150
 
155
151
  if (canInit) {
156
152
  this.init();
@@ -167,7 +163,18 @@ export class CustomCursor<
167
163
 
168
164
  // enable by default
169
165
  if (this.props.isEnabled) {
170
- this.enable();
166
+ this._enable();
167
+ }
168
+ }
169
+
170
+ /** Handle properties mutation */
171
+ protected _onPropsMutate() {
172
+ super._onPropsMutate();
173
+
174
+ if (this.props.isEnabled) {
175
+ this._enable();
176
+ } else {
177
+ this._disable();
171
178
  }
172
179
  }
173
180
 
@@ -279,7 +286,7 @@ export class CustomCursor<
279
286
 
280
287
  this.outerElement.classList.add(this.className('-in-action'));
281
288
 
282
- if (this._canPlay) {
289
+ if (this.props.isEnabled) {
283
290
  this._animationFrame.play();
284
291
  }
285
292
  }
@@ -414,9 +421,7 @@ export class CustomCursor<
414
421
  }
415
422
 
416
423
  /** Enable cursor animation */
417
- public enable() {
418
- this._canPlay = true;
419
-
424
+ protected _enable() {
420
425
  this.outerElement.classList.remove(this.className('-disabled'));
421
426
  this.innerElement.classList.remove(this.className('-disabled'));
422
427
 
@@ -424,9 +429,7 @@ export class CustomCursor<
424
429
  }
425
430
 
426
431
  /** Disable cursor animation */
427
- public disable() {
428
- this._canPlay = false;
429
-
432
+ protected _disable() {
430
433
  this.outerElement.classList.add(this.className('-disabled'));
431
434
  this.innerElement.classList.add(this.className('-disabled'));
432
435
 
@@ -7,11 +7,6 @@ export namespace NCustomCursor {
7
7
  * @default window
8
8
  */
9
9
  container: Window | Element | string;
10
- /**
11
- * If need to launch cursor animation after anitialization
12
- * @default true
13
- */
14
- isEnabled?: boolean;
15
10
  /**
16
11
  * If need to hide the native cursor
17
12
  * @default false
@@ -20,6 +15,11 @@ export namespace NCustomCursor {
20
15
  }
21
16
 
22
17
  export interface IChangeableProps extends NComponent.IChangeableProps {
18
+ /**
19
+ * Custom cursor is enabled
20
+ * @default true
21
+ */
22
+ isEnabled?: boolean;
23
23
  /**
24
24
  * @default 50
25
25
  */
@@ -1,5 +1,3 @@
1
1
  export * from './sizesToSrcSet';
2
2
  export * from './pathsToProps';
3
3
  export * from './load';
4
-
5
- // TODO: examples
@@ -18,6 +18,17 @@ type TLoadImageProps = {
18
18
 
19
19
  /**
20
20
  * Load an image
21
+ *
22
+ * @example
23
+ *
24
+ * const loaderWithoutCache = loadImage('/image.jpg');
25
+ *
26
+ * loaderWithoutCache.then((img) => console.log(img)).catch(() => {});
27
+ *
28
+ * const loaderWithCache = loadImage('/image.jpg', {
29
+ * crossOrigin: 'anonymous',
30
+ * useCache: true,
31
+ * });
21
32
  */
22
33
  export function loadImage(
23
34
  source: string | HTMLImageElement,
@@ -38,6 +49,7 @@ export function loadImage(
38
49
  (resolve: (img: HTMLImageElement) => void, reject: () => void) => {
39
50
  const cachedImage =
40
51
  loadProps.useCache && cachedImages.find((img) => img.src === imageSrc);
52
+
41
53
  // get image from cache
42
54
  if (cachedImage) {
43
55
  resolve(cachedImage.image);
@@ -48,19 +60,19 @@ export function loadImage(
48
60
  // load the image by src
49
61
  if (typeof source === 'string') {
50
62
  const img = new Image();
63
+
51
64
  img.crossOrigin = loadProps.crossOrigin;
65
+
52
66
  img.onload = () => {
53
67
  if (loadProps.useCache) {
54
- cachedImages.push({
55
- src: imageSrc,
56
- image: img,
57
- });
68
+ cachedImages.push({ src: imageSrc, image: img });
58
69
  }
70
+
59
71
  resolve(img);
60
72
  };
61
- img.onerror = () => {
62
- reject();
63
- };
73
+
74
+ img.onerror = () => reject();
75
+
64
76
  img.src = source;
65
77
 
66
78
  return;
@@ -73,16 +85,13 @@ export function loadImage(
73
85
  } else {
74
86
  source.addEventListener('load', () => {
75
87
  if (loadProps.useCache) {
76
- cachedImages.push({
77
- src: imageSrc,
78
- image: source,
79
- });
88
+ cachedImages.push({ src: imageSrc, image: source });
80
89
  }
90
+
81
91
  resolve(source);
82
92
  });
83
- source.addEventListener('error', () => {
84
- reject();
85
- });
93
+
94
+ source.addEventListener('error', () => reject());
86
95
  }
87
96
  }
88
97
  }
@@ -15,6 +15,38 @@ export interface IImageAdaptivePaths<
15
15
 
16
16
  /**
17
17
  * Transform image paths to properties
18
+ *
19
+ * @example
20
+ *
21
+ * imagePathsToProps({
22
+ * original: '/original.jpg',
23
+ * thumb: '/thumb.jpg',
24
+ * thumbWebp: '/thumb.webp',
25
+ * });
26
+ * // => {"src":"/thumb.webp","srcSet":""}
27
+ *
28
+ * imagePathsToProps({
29
+ * original: '/original.jpg',
30
+ * thumb: '/thumb.jpg',
31
+ * thumbWebp: '/thumb.webp',
32
+ * sizes: {
33
+ * 640: '/640.jpg',
34
+ * 750: '/750.jpg',
35
+ * 1024: '/1024.jpg',
36
+ * 1440: '/1440.jpg',
37
+ * 1920: '/1920.jpg',
38
+ * 2560: '/2560.jpg',
39
+ * },
40
+ * sizesWebp: {
41
+ * 640: '/640.webp',
42
+ * 750: '/750.webp',
43
+ * 1024: '/1024.webp',
44
+ * 1440: '/1440.webp',
45
+ * 1920: '/1920.webp',
46
+ * 2560: '/2560.webp',
47
+ * },
48
+ * });
49
+ * // => {"src":"/thumb.webp","srcSet":"/640.webp 640w, /750.webp 750w, /1024.webp 1024w, /1440.webp 1440w, /1920.webp 1920w, /2560.webp 2560w"}
18
50
  */
19
51
  export function imagePathsToProps(data: IImagePaths | IImageAdaptivePaths) {
20
52
  const app = window.vevetApp;
@@ -1,5 +1,16 @@
1
1
  /**
2
2
  * Transform image sizes to src set
3
+ *
4
+ * @example
5
+ *
6
+ * imageSizesToSrcSet({
7
+ * 640: '/640.jpg',
8
+ * 750: '/750.jpg',
9
+ * 1024: '/1024.jpg',
10
+ * 1440: '/1440.jpg',
11
+ * });
12
+ *
13
+ * // => "/640.jpg 640w, /750.jpg 750w, /1024.jpg 1024w, /1440.jpg 1440w"
3
14
  */
4
15
  export function imageSizesToSrcSet(sizes: Record<string | number, string>) {
5
16
  const keys = Object.keys(sizes);
@@ -1,4 +1,2 @@
1
1
  export * from './isIntersectionObserverSupported';
2
2
  export * from './onResize';
3
-
4
- // TODO: examples
@@ -1,4 +1,6 @@
1
- /** Check if intersection observer is supported */
1
+ /**
2
+ * Check if intersection observer is supported
3
+ */
2
4
  export function isIntersectionObserverSupported() {
3
5
  if (
4
6
  !('IntersectionObserver' in window) ||
@@ -1,4 +1,4 @@
1
- import { NViewport } from 'src/Application/events/Viewport';
1
+ import { NViewport } from '@/src/Application/events/Viewport';
2
2
  import { NCallbacks } from '@/base/Callbacks';
3
3
 
4
4
  export type TOnResizeTarget = keyof NViewport.ICallbacksTypes;
@@ -42,6 +42,26 @@ export interface IOnResize {
42
42
  * Add events on resize.
43
43
  * If `element` is provided, `ResizeObserver` will be used (first callback will not be fired).
44
44
  * Otherwise, viewport callbacks will be used.
45
+ *
46
+ * @example
47
+ *
48
+ * const handler = onResize({
49
+ * onResize: () => console.log('resize'),
50
+ * element: document.getElementById('app')!,
51
+ * viewportTarget: 'any',
52
+ * hasBothEvents: true, // trace both element and viewport sizes
53
+ * resizeDebounce: 100,
54
+ * });
55
+ *
56
+ * // resize with timeout called twice, but `onResize` will be called only once
57
+ * handler.debounceResize();
58
+ * handler.debounceResize();
59
+ *
60
+ * // resize without timeout
61
+ * handler.resize();
62
+ *
63
+ * // remove listeners
64
+ * handler.remove();
45
65
  */
46
66
  export function onResize({
47
67
  onResize: handleResize,
@@ -7,6 +7,10 @@ export interface IGetScrollValues {
7
7
 
8
8
  /**
9
9
  * Get scroll values of a certain element
10
+ *
11
+ * @example
12
+ *
13
+ * getScrollValues(window); // => { scrollTop: 0, scrollLeft: 0 }
10
14
  */
11
15
  export function getScrollValues(
12
16
  selector: Window | Element | IScrollLike | undefined = window
@@ -3,5 +3,3 @@ export * from './normalizeWheel';
3
3
  export * from './onScroll';
4
4
  export * from './scrollTo';
5
5
  export * from './scrollToElement';
6
-
7
- // TODO: examples
@@ -1,5 +1,12 @@
1
1
  import normalizeWheelFunc from 'normalize-wheel';
2
2
 
3
+ /**
4
+ * Normalize wheel delta
5
+ *
6
+ * @example
7
+ *
8
+ * normalizeWheel(event); // => { spinX: -0, spinY: 1.25, pixelX: -0, pixelY: 125 }
9
+ */
3
10
  export function normalizeWheel(event: WheelEvent) {
4
11
  return normalizeWheelFunc(event);
5
12
  }
@@ -32,6 +32,14 @@ let instances: IInstance[] = [];
32
32
 
33
33
  /**
34
34
  * Add `onScroll` event
35
+ *
36
+ * @example
37
+ *
38
+ * onScroll({
39
+ * container: window,
40
+ * callback: ({ scrollLeft, scrollTop }) => console.log(scrollLeft, scrollTop),
41
+ * isPassive: true,
42
+ * });
35
43
  */
36
44
  export function onScroll({
37
45
  container,
@@ -26,6 +26,26 @@ export interface IScrollToProps {
26
26
 
27
27
  /**
28
28
  * Scroll to coordinates
29
+ *
30
+ * @example
31
+ *
32
+ * // static duration
33
+ * scrollTo({
34
+ * container: window,
35
+ * top: 500,
36
+ * duration: 500,
37
+ * });
38
+ *
39
+ * // dynamic duration
40
+ * scrollTo({
41
+ * top: 1000,
42
+ * duration: (px) => px,
43
+ * });
44
+ *
45
+ * // use promise
46
+ * scrollTo({ top: 500 })
47
+ * .then(() => console.log('done'))
48
+ * .catch(() => {});
29
49
  */
30
50
  export function scrollTo({
31
51
  container = window,