lazy-render-virtual-scroll 2.0.0 → 2.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/README.md +172 -87
  2. package/dist/cjs/adapters/react/adapters/react/components/withLazyRender.d.ts +22 -0
  3. package/dist/cjs/adapters/react/adapters/react/components/withLazyRender.d.ts.map +1 -0
  4. package/dist/cjs/adapters/react/adapters/react/hooks/useLazyComponent.d.ts +38 -0
  5. package/dist/cjs/adapters/react/adapters/react/hooks/useLazyComponent.d.ts.map +1 -0
  6. package/dist/cjs/adapters/react/components/withLazyRender.d.ts +22 -0
  7. package/dist/cjs/adapters/react/components/withLazyRender.d.ts.map +1 -0
  8. package/dist/cjs/adapters/react/core/GlobalScrollManager.d.ts +61 -0
  9. package/dist/cjs/adapters/react/core/GlobalScrollManager.d.ts.map +1 -0
  10. package/dist/cjs/adapters/react/hooks/useLazyComponent.d.ts +38 -0
  11. package/dist/cjs/adapters/react/hooks/useLazyComponent.d.ts.map +1 -0
  12. package/dist/cjs/adapters/react/index.d.ts +5 -0
  13. package/dist/cjs/adapters/react/index.d.ts.map +1 -1
  14. package/dist/cjs/angular/adapters/react/components/withLazyRender.d.ts +22 -0
  15. package/dist/cjs/angular/adapters/react/components/withLazyRender.d.ts.map +1 -0
  16. package/dist/cjs/angular/adapters/react/hooks/useLazyComponent.d.ts +38 -0
  17. package/dist/cjs/angular/adapters/react/hooks/useLazyComponent.d.ts.map +1 -0
  18. package/dist/cjs/angular/core/GlobalScrollManager.d.ts +61 -0
  19. package/dist/cjs/angular/core/GlobalScrollManager.d.ts.map +1 -0
  20. package/dist/cjs/angular/index.d.ts +5 -0
  21. package/dist/cjs/angular/index.d.ts.map +1 -1
  22. package/dist/cjs/core/GlobalScrollManager.d.ts +61 -0
  23. package/dist/cjs/core/GlobalScrollManager.d.ts.map +1 -0
  24. package/dist/cjs/index.d.ts +5 -0
  25. package/dist/cjs/index.d.ts.map +1 -1
  26. package/dist/cjs/index.js +269 -0
  27. package/dist/cjs/index.js.map +1 -1
  28. package/dist/cjs/svelte/adapters/react/components/withLazyRender.d.ts +22 -0
  29. package/dist/cjs/svelte/adapters/react/components/withLazyRender.d.ts.map +1 -0
  30. package/dist/cjs/svelte/adapters/react/hooks/useLazyComponent.d.ts +38 -0
  31. package/dist/cjs/svelte/adapters/react/hooks/useLazyComponent.d.ts.map +1 -0
  32. package/dist/cjs/svelte/core/GlobalScrollManager.d.ts +61 -0
  33. package/dist/cjs/svelte/core/GlobalScrollManager.d.ts.map +1 -0
  34. package/dist/cjs/svelte/index.d.ts +5 -0
  35. package/dist/cjs/svelte/index.d.ts.map +1 -1
  36. package/dist/cjs/vue/adapters/react/components/withLazyRender.d.ts +22 -0
  37. package/dist/cjs/vue/adapters/react/components/withLazyRender.d.ts.map +1 -0
  38. package/dist/cjs/vue/adapters/react/hooks/useLazyComponent.d.ts +38 -0
  39. package/dist/cjs/vue/adapters/react/hooks/useLazyComponent.d.ts.map +1 -0
  40. package/dist/cjs/vue/core/GlobalScrollManager.d.ts +61 -0
  41. package/dist/cjs/vue/core/GlobalScrollManager.d.ts.map +1 -0
  42. package/dist/cjs/vue/index.d.ts +5 -0
  43. package/dist/cjs/vue/index.d.ts.map +1 -1
  44. package/dist/esm/adapters/react/adapters/react/components/withLazyRender.d.ts +22 -0
  45. package/dist/esm/adapters/react/adapters/react/components/withLazyRender.d.ts.map +1 -0
  46. package/dist/esm/adapters/react/adapters/react/hooks/useLazyComponent.d.ts +38 -0
  47. package/dist/esm/adapters/react/adapters/react/hooks/useLazyComponent.d.ts.map +1 -0
  48. package/dist/esm/adapters/react/components/withLazyRender.d.ts +22 -0
  49. package/dist/esm/adapters/react/components/withLazyRender.d.ts.map +1 -0
  50. package/dist/esm/adapters/react/core/GlobalScrollManager.d.ts +61 -0
  51. package/dist/esm/adapters/react/core/GlobalScrollManager.d.ts.map +1 -0
  52. package/dist/esm/adapters/react/hooks/useLazyComponent.d.ts +38 -0
  53. package/dist/esm/adapters/react/hooks/useLazyComponent.d.ts.map +1 -0
  54. package/dist/esm/adapters/react/index.d.ts +5 -0
  55. package/dist/esm/adapters/react/index.d.ts.map +1 -1
  56. package/dist/esm/angular/adapters/react/components/withLazyRender.d.ts +22 -0
  57. package/dist/esm/angular/adapters/react/components/withLazyRender.d.ts.map +1 -0
  58. package/dist/esm/angular/adapters/react/hooks/useLazyComponent.d.ts +38 -0
  59. package/dist/esm/angular/adapters/react/hooks/useLazyComponent.d.ts.map +1 -0
  60. package/dist/esm/angular/core/GlobalScrollManager.d.ts +61 -0
  61. package/dist/esm/angular/core/GlobalScrollManager.d.ts.map +1 -0
  62. package/dist/esm/angular/index.d.ts +5 -0
  63. package/dist/esm/angular/index.d.ts.map +1 -1
  64. package/dist/esm/core/GlobalScrollManager.d.ts +61 -0
  65. package/dist/esm/core/GlobalScrollManager.d.ts.map +1 -0
  66. package/dist/esm/index.d.ts +5 -0
  67. package/dist/esm/index.d.ts.map +1 -1
  68. package/dist/esm/index.js +266 -1
  69. package/dist/esm/index.js.map +1 -1
  70. package/dist/esm/svelte/adapters/react/components/withLazyRender.d.ts +22 -0
  71. package/dist/esm/svelte/adapters/react/components/withLazyRender.d.ts.map +1 -0
  72. package/dist/esm/svelte/adapters/react/hooks/useLazyComponent.d.ts +38 -0
  73. package/dist/esm/svelte/adapters/react/hooks/useLazyComponent.d.ts.map +1 -0
  74. package/dist/esm/svelte/core/GlobalScrollManager.d.ts +61 -0
  75. package/dist/esm/svelte/core/GlobalScrollManager.d.ts.map +1 -0
  76. package/dist/esm/svelte/index.d.ts +5 -0
  77. package/dist/esm/svelte/index.d.ts.map +1 -1
  78. package/dist/esm/vue/adapters/react/components/withLazyRender.d.ts +22 -0
  79. package/dist/esm/vue/adapters/react/components/withLazyRender.d.ts.map +1 -0
  80. package/dist/esm/vue/adapters/react/hooks/useLazyComponent.d.ts +38 -0
  81. package/dist/esm/vue/adapters/react/hooks/useLazyComponent.d.ts.map +1 -0
  82. package/dist/esm/vue/core/GlobalScrollManager.d.ts +61 -0
  83. package/dist/esm/vue/core/GlobalScrollManager.d.ts.map +1 -0
  84. package/dist/esm/vue/index.d.ts +5 -0
  85. package/dist/esm/vue/index.d.ts.map +1 -1
  86. package/dist/index.d.ts +113 -2
  87. package/package.json +3 -3
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Global Scroll Manager
3
+ * Singleton that manages scroll events for all lazy-render components
4
+ * Uses only 2 event listeners for ALL components (scroll + resize)
5
+ */
6
+ export interface ScrollManagerConfig {
7
+ scrollThrottle?: number;
8
+ resizeDebounce?: number;
9
+ }
10
+ export interface ScrollListener {
11
+ id: string;
12
+ callback: (scrollTop: number, container: HTMLElement) => void;
13
+ container: HTMLElement;
14
+ }
15
+ declare class GlobalScrollManagerClass {
16
+ private static instance;
17
+ private listeners;
18
+ private scrollThrottle;
19
+ private resizeDebounce;
20
+ private scrollHandler;
21
+ private resizeHandler;
22
+ private isInitialized;
23
+ private constructor();
24
+ static getInstance(config?: ScrollManagerConfig): GlobalScrollManagerClass;
25
+ /**
26
+ * Register a scroll listener
27
+ * Only 2 event listeners total (scroll + resize) for ALL components
28
+ */
29
+ register(id: string, container: HTMLElement, callback: (scrollTop: number, container: HTMLElement) => void): void;
30
+ /**
31
+ * Unregister a scroll listener
32
+ */
33
+ unregister(id: string): void;
34
+ /**
35
+ * Initialize global event listeners
36
+ * Only called once, regardless of how many components
37
+ */
38
+ private initialize;
39
+ /**
40
+ * Cleanup event listeners
41
+ */
42
+ private cleanup;
43
+ /**
44
+ * Throttle helper
45
+ */
46
+ private throttle;
47
+ /**
48
+ * Debounce helper
49
+ */
50
+ private debounce;
51
+ /**
52
+ * Get stats
53
+ */
54
+ getStats(): {
55
+ listenerCount: number;
56
+ isInitialized: boolean;
57
+ };
58
+ }
59
+ export declare const GlobalScrollManager: GlobalScrollManagerClass;
60
+ export default GlobalScrollManager;
61
+ //# sourceMappingURL=GlobalScrollManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GlobalScrollManager.d.ts","sourceRoot":"","sources":["../../src/core/GlobalScrollManager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,mBAAmB;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,KAAK,IAAI,CAAC;IAC9D,SAAS,EAAE,WAAW,CAAC;CACxB;AAED,cAAM,wBAAwB;IAC5B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA2B;IAClD,OAAO,CAAC,SAAS,CAA0C;IAC3D,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,aAAa,CAAkB;IAEvC,OAAO;IAKP,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,wBAAwB;IAO1E;;;OAGG;IACH,QAAQ,CACN,EAAE,EAAE,MAAM,EACV,SAAS,EAAE,WAAW,EACtB,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,KAAK,IAAI,GAC5D,IAAI;IAQP;;OAEG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAQ5B;;;OAGG;IACH,OAAO,CAAC,UAAU;IAwBlB;;OAEG;IACH,OAAO,CAAC,OAAO;IAcf;;OAEG;IACH,OAAO,CAAC,QAAQ;IAWhB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAQhB;;OAEG;IACH,QAAQ,IAAI;QACV,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,OAAO,CAAC;KACxB;CAMF;AAGD,eAAO,MAAM,mBAAmB,0BAAyC,CAAC;AAC1E,eAAe,mBAAmB,CAAC"}
@@ -25,10 +25,15 @@ export { PerformanceAnalytics } from './core/PerformanceAnalytics';
25
25
  export { PerformanceDashboard } from './core/PerformanceDashboard';
26
26
  export { AccessibilityManager } from './core/AccessibilityManager';
27
27
  export { AnimationManager } from './core/AnimationManager';
28
+ export { GlobalScrollManager } from './core/GlobalScrollManager';
28
29
  export type { EngineConfig, VisibleRange, FetchMoreCallback, EngineState, ScrollAnalysis } from './core/types';
29
30
  export { ScrollObserver } from './platform/browser/ScrollObserver';
30
31
  export { useLazyList } from './adapters/react/useLazyList';
31
32
  export { LazyList } from './adapters/react/LazyList';
33
+ export { useLazyComponent } from './adapters/react/hooks/useLazyComponent';
34
+ export { withLazyRender } from './adapters/react/hooks/useLazyComponent';
35
+ export { createLazyComponent } from './adapters/react/components/withLazyRender';
36
+ export type { LazyMode } from './adapters/react/hooks/useLazyComponent';
32
37
  export { LazyScroll, createLazyScroll } from './adapters/vanilla/lazyScroll';
33
38
  declare class LazyScrollElementClass {
34
39
  constructor();
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AACjF,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG/G,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAGnE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAGrD,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAK7E,cAAM,sBAAsB;;IAE1B,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE;IACrB,OAAO;IACP,eAAe;;;;IACf,MAAM,CAAC,eAAe;CACvB;AAGD,QAAA,MAAM,iBAAiB,+BAEG,CAAC;AAE3B,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAG7B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AACjF,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG/G,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAGnE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AACjF,YAAY,EAAE,QAAQ,EAAE,MAAM,yCAAyC,CAAC;AAGxE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAK7E,cAAM,sBAAsB;;IAE1B,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE;IACrB,OAAO;IACP,eAAe;;;;IACf,MAAM,CAAC,eAAe;CACvB;AAGD,QAAA,MAAM,iBAAiB,+BAEG,CAAC;AAE3B,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAG7B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Global Scroll Manager
3
+ * Singleton that manages scroll events for all lazy-render components
4
+ * Uses only 2 event listeners for ALL components (scroll + resize)
5
+ */
6
+ export interface ScrollManagerConfig {
7
+ scrollThrottle?: number;
8
+ resizeDebounce?: number;
9
+ }
10
+ export interface ScrollListener {
11
+ id: string;
12
+ callback: (scrollTop: number, container: HTMLElement) => void;
13
+ container: HTMLElement;
14
+ }
15
+ declare class GlobalScrollManagerClass {
16
+ private static instance;
17
+ private listeners;
18
+ private scrollThrottle;
19
+ private resizeDebounce;
20
+ private scrollHandler;
21
+ private resizeHandler;
22
+ private isInitialized;
23
+ private constructor();
24
+ static getInstance(config?: ScrollManagerConfig): GlobalScrollManagerClass;
25
+ /**
26
+ * Register a scroll listener
27
+ * Only 2 event listeners total (scroll + resize) for ALL components
28
+ */
29
+ register(id: string, container: HTMLElement, callback: (scrollTop: number, container: HTMLElement) => void): void;
30
+ /**
31
+ * Unregister a scroll listener
32
+ */
33
+ unregister(id: string): void;
34
+ /**
35
+ * Initialize global event listeners
36
+ * Only called once, regardless of how many components
37
+ */
38
+ private initialize;
39
+ /**
40
+ * Cleanup event listeners
41
+ */
42
+ private cleanup;
43
+ /**
44
+ * Throttle helper
45
+ */
46
+ private throttle;
47
+ /**
48
+ * Debounce helper
49
+ */
50
+ private debounce;
51
+ /**
52
+ * Get stats
53
+ */
54
+ getStats(): {
55
+ listenerCount: number;
56
+ isInitialized: boolean;
57
+ };
58
+ }
59
+ export declare const GlobalScrollManager: GlobalScrollManagerClass;
60
+ export default GlobalScrollManager;
61
+ //# sourceMappingURL=GlobalScrollManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GlobalScrollManager.d.ts","sourceRoot":"","sources":["../../src/core/GlobalScrollManager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,mBAAmB;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,KAAK,IAAI,CAAC;IAC9D,SAAS,EAAE,WAAW,CAAC;CACxB;AAED,cAAM,wBAAwB;IAC5B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA2B;IAClD,OAAO,CAAC,SAAS,CAA0C;IAC3D,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,aAAa,CAAkB;IAEvC,OAAO;IAKP,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,wBAAwB;IAO1E;;;OAGG;IACH,QAAQ,CACN,EAAE,EAAE,MAAM,EACV,SAAS,EAAE,WAAW,EACtB,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,KAAK,IAAI,GAC5D,IAAI;IAQP;;OAEG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAQ5B;;;OAGG;IACH,OAAO,CAAC,UAAU;IAwBlB;;OAEG;IACH,OAAO,CAAC,OAAO;IAcf;;OAEG;IACH,OAAO,CAAC,QAAQ;IAWhB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAQhB;;OAEG;IACH,QAAQ,IAAI;QACV,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,OAAO,CAAC;KACxB;CAMF;AAGD,eAAO,MAAM,mBAAmB,0BAAyC,CAAC;AAC1E,eAAe,mBAAmB,CAAC"}
@@ -25,10 +25,15 @@ export { PerformanceAnalytics } from './core/PerformanceAnalytics';
25
25
  export { PerformanceDashboard } from './core/PerformanceDashboard';
26
26
  export { AccessibilityManager } from './core/AccessibilityManager';
27
27
  export { AnimationManager } from './core/AnimationManager';
28
+ export { GlobalScrollManager } from './core/GlobalScrollManager';
28
29
  export type { EngineConfig, VisibleRange, FetchMoreCallback, EngineState, ScrollAnalysis } from './core/types';
29
30
  export { ScrollObserver } from './platform/browser/ScrollObserver';
30
31
  export { useLazyList } from './adapters/react/useLazyList';
31
32
  export { LazyList } from './adapters/react/LazyList';
33
+ export { useLazyComponent } from './adapters/react/hooks/useLazyComponent';
34
+ export { withLazyRender } from './adapters/react/hooks/useLazyComponent';
35
+ export { createLazyComponent } from './adapters/react/components/withLazyRender';
36
+ export type { LazyMode } from './adapters/react/hooks/useLazyComponent';
32
37
  export { LazyScroll, createLazyScroll } from './adapters/vanilla/lazyScroll';
33
38
  declare class LazyScrollElementClass {
34
39
  constructor();
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AACjF,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG/G,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAGnE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAGrD,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAK7E,cAAM,sBAAsB;;IAE1B,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE;IACrB,OAAO;IACP,eAAe;;;;IACf,MAAM,CAAC,eAAe;CACvB;AAGD,QAAA,MAAM,iBAAiB,+BAEG,CAAC;AAE3B,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAG7B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AACjF,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG/G,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAGnE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AACjF,YAAY,EAAE,QAAQ,EAAE,MAAM,yCAAyC,CAAC;AAGxE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAK7E,cAAM,sBAAsB;;IAE1B,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE;IACrB,OAAO;IACP,eAAe;;;;IACf,MAAM,CAAC,eAAe;CACvB;AAGD,QAAA,MAAM,iBAAiB,+BAEG,CAAC;AAE3B,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAG7B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC"}
package/dist/cjs/index.js CHANGED
@@ -3674,6 +3674,120 @@ class AnimationManager {
3674
3674
  }
3675
3675
  }
3676
3676
 
3677
+ /**
3678
+ * Global Scroll Manager
3679
+ * Singleton that manages scroll events for all lazy-render components
3680
+ * Uses only 2 event listeners for ALL components (scroll + resize)
3681
+ */
3682
+ class GlobalScrollManagerClass {
3683
+ constructor(config = {}) {
3684
+ this.listeners = new Map();
3685
+ this.scrollHandler = null;
3686
+ this.resizeHandler = null;
3687
+ this.isInitialized = false;
3688
+ this.scrollThrottle = config.scrollThrottle || 16;
3689
+ this.resizeDebounce = config.resizeDebounce || 100;
3690
+ }
3691
+ static getInstance(config) {
3692
+ if (!GlobalScrollManagerClass.instance) {
3693
+ GlobalScrollManagerClass.instance = new GlobalScrollManagerClass(config);
3694
+ }
3695
+ return GlobalScrollManagerClass.instance;
3696
+ }
3697
+ /**
3698
+ * Register a scroll listener
3699
+ * Only 2 event listeners total (scroll + resize) for ALL components
3700
+ */
3701
+ register(id, container, callback) {
3702
+ this.listeners.set(id, { id, callback, container });
3703
+ if (!this.isInitialized) {
3704
+ this.initialize();
3705
+ }
3706
+ }
3707
+ /**
3708
+ * Unregister a scroll listener
3709
+ */
3710
+ unregister(id) {
3711
+ this.listeners.delete(id);
3712
+ if (this.listeners.size === 0) {
3713
+ this.cleanup();
3714
+ }
3715
+ }
3716
+ /**
3717
+ * Initialize global event listeners
3718
+ * Only called once, regardless of how many components
3719
+ */
3720
+ initialize() {
3721
+ this.isInitialized = true;
3722
+ // Single scroll handler for ALL components
3723
+ this.scrollHandler = this.throttle(() => {
3724
+ this.listeners.forEach((listener) => {
3725
+ const scrollTop = listener.container.scrollTop;
3726
+ listener.callback(scrollTop, listener.container);
3727
+ });
3728
+ }, this.scrollThrottle);
3729
+ // Single resize handler for ALL components
3730
+ this.resizeHandler = this.debounce(() => {
3731
+ this.listeners.forEach((listener) => {
3732
+ const scrollTop = listener.container.scrollTop;
3733
+ listener.callback(scrollTop, listener.container);
3734
+ });
3735
+ }, this.resizeDebounce);
3736
+ // Attach to document (global)
3737
+ document.addEventListener('scroll', this.scrollHandler, { passive: true, capture: true });
3738
+ window.addEventListener('resize', this.resizeHandler);
3739
+ }
3740
+ /**
3741
+ * Cleanup event listeners
3742
+ */
3743
+ cleanup() {
3744
+ if (this.scrollHandler) {
3745
+ document.removeEventListener('scroll', this.scrollHandler, { capture: true });
3746
+ this.scrollHandler = null;
3747
+ }
3748
+ if (this.resizeHandler) {
3749
+ window.removeEventListener('resize', this.resizeHandler);
3750
+ this.resizeHandler = null;
3751
+ }
3752
+ this.isInitialized = false;
3753
+ }
3754
+ /**
3755
+ * Throttle helper
3756
+ */
3757
+ throttle(func, limit) {
3758
+ let inThrottle;
3759
+ return ((...args) => {
3760
+ if (!inThrottle) {
3761
+ func.apply(this, args);
3762
+ inThrottle = true;
3763
+ setTimeout(() => (inThrottle = false), limit);
3764
+ }
3765
+ });
3766
+ }
3767
+ /**
3768
+ * Debounce helper
3769
+ */
3770
+ debounce(func, wait) {
3771
+ let timeout;
3772
+ return ((...args) => {
3773
+ if (timeout)
3774
+ clearTimeout(timeout);
3775
+ timeout = setTimeout(() => func.apply(this, args), wait);
3776
+ });
3777
+ }
3778
+ /**
3779
+ * Get stats
3780
+ */
3781
+ getStats() {
3782
+ return {
3783
+ listenerCount: this.listeners.size,
3784
+ isInitialized: this.isInitialized
3785
+ };
3786
+ }
3787
+ }
3788
+ // Export singleton
3789
+ const GlobalScrollManager = GlobalScrollManagerClass.getInstance();
3790
+
3677
3791
  class ScrollObserver {
3678
3792
  constructor(container, callback, options) {
3679
3793
  this.observer = null;
@@ -3872,6 +3986,157 @@ const LazyList = React.forwardRef((props, ref) => {
3872
3986
  });
3873
3987
  LazyList.displayName = 'LazyList';
3874
3988
 
3989
+ /**
3990
+ * Hook for lazy component rendering with multiple modes
3991
+ *
3992
+ * Modes:
3993
+ * - virtual: Traditional virtual scrolling (render all, show visible)
3994
+ * - visibility: Intersection Observer (mount only when visible)
3995
+ * - hybrid: Combine both (best performance)
3996
+ */
3997
+ function useLazyComponent(props = {}) {
3998
+ const { mode = 'hybrid', threshold = 0, rootMargin = '0px', onVisible, onHidden } = props;
3999
+ const ref = React.useRef(null);
4000
+ const [isVisible, setIsVisible] = React.useState(false);
4001
+ const [isInView, setIsInView] = React.useState(false);
4002
+ const [hasMounted, setHasMounted] = React.useState(false);
4003
+ // Visibility API (Intersection Observer)
4004
+ React.useEffect(() => {
4005
+ if (mode === 'visibility' || mode === 'hybrid') {
4006
+ const observer = new IntersectionObserver(([entry]) => {
4007
+ const visible = entry.isIntersecting;
4008
+ setIsVisible(visible);
4009
+ setIsInView(visible);
4010
+ if (visible) {
4011
+ onVisible === null || onVisible === void 0 ? void 0 : onVisible();
4012
+ setHasMounted(true); // Keep mounted once visible
4013
+ }
4014
+ else {
4015
+ onHidden === null || onHidden === void 0 ? void 0 : onHidden();
4016
+ if (mode === 'visibility') {
4017
+ setHasMounted(false); // Unmount when not visible
4018
+ }
4019
+ }
4020
+ }, { threshold, rootMargin });
4021
+ if (ref.current) {
4022
+ observer.observe(ref.current);
4023
+ }
4024
+ return () => observer.disconnect();
4025
+ }
4026
+ }, [mode, threshold, rootMargin, onVisible, onHidden]);
4027
+ // Determine if should render based on mode
4028
+ const shouldRender = React.useCallback(() => {
4029
+ switch (mode) {
4030
+ case 'virtual':
4031
+ return true; // Always render, control visibility with CSS
4032
+ case 'visibility':
4033
+ return hasMounted; // Mount when visible, keep mounted
4034
+ case 'hybrid':
4035
+ return hasMounted; // Mount when visible, keep mounted
4036
+ default:
4037
+ return true;
4038
+ }
4039
+ }, [mode, hasMounted]);
4040
+ // Determine if should mount based on mode
4041
+ const shouldMount = React.useCallback(() => {
4042
+ switch (mode) {
4043
+ case 'virtual':
4044
+ return true; // Always mount
4045
+ case 'visibility':
4046
+ return isVisible; // Mount only when visible
4047
+ case 'hybrid':
4048
+ return isVisible; // Mount only when visible
4049
+ default:
4050
+ return true;
4051
+ }
4052
+ }, [mode, isVisible]);
4053
+ return {
4054
+ isVisible,
4055
+ isInView,
4056
+ ref,
4057
+ shouldRender: shouldRender(),
4058
+ shouldMount: shouldMount()
4059
+ };
4060
+ }
4061
+ /**
4062
+ * HOC for lazy rendering components
4063
+ *
4064
+ * Usage:
4065
+ * const LazyCard = withLazyRender(Card);
4066
+ *
4067
+ * <LazyCard mode="hybrid" />
4068
+ */
4069
+ function withLazyRender(WrappedComponent) {
4070
+ return function LazyComponent(props) {
4071
+ const { isVisible, ref, shouldMount } = useLazyComponent({
4072
+ mode: props.mode || 'hybrid'
4073
+ });
4074
+ if (!shouldMount) {
4075
+ return React.createElement("div", { ref: ref, style: { height: '100px', background: '#f0f0f0' } }, "Loading...");
4076
+ }
4077
+ return (React.createElement("div", { ref: ref, style: { opacity: isVisible ? 1 : 0, transition: 'opacity 0.3s' } },
4078
+ React.createElement(WrappedComponent, { ...props })));
4079
+ };
4080
+ }
4081
+
4082
+ /**
4083
+ * Higher-Order Component for lazy rendering
4084
+ *
4085
+ * Usage:
4086
+ * const LazyCard = withLazyRender(Card);
4087
+ *
4088
+ * <LazyCard mode="hybrid" placeholder={<div>Loading...</div>} />
4089
+ */
4090
+ function createLazyComponent(WrappedComponent, options = {}) {
4091
+ return function LazyComponent(props) {
4092
+ const { mode = options.mode || 'hybrid', placeholder = options.placeholder || React.createElement("div", null, "Loading..."), onVisible, onHidden, ...rest } = props;
4093
+ const [isVisible, setIsVisible] = React.useState(false);
4094
+ const [hasMounted, setHasMounted] = React.useState(false);
4095
+ const ref = React.useRef(null);
4096
+ React.useEffect(() => {
4097
+ if (mode === 'visibility' || mode === 'hybrid') {
4098
+ const observer = new IntersectionObserver(([entry]) => {
4099
+ const visible = entry.isIntersecting;
4100
+ setIsVisible(visible);
4101
+ if (visible) {
4102
+ onVisible === null || onVisible === void 0 ? void 0 : onVisible();
4103
+ setHasMounted(true);
4104
+ }
4105
+ else {
4106
+ onHidden === null || onHidden === void 0 ? void 0 : onHidden();
4107
+ if (mode === 'visibility') {
4108
+ setHasMounted(false);
4109
+ }
4110
+ }
4111
+ }, { threshold: 0, rootMargin: '0px' });
4112
+ if (ref.current) {
4113
+ observer.observe(ref.current);
4114
+ }
4115
+ return () => observer.disconnect();
4116
+ }
4117
+ }, [mode, onVisible, onHidden]);
4118
+ const shouldRender = React.useCallback(() => {
4119
+ switch (mode) {
4120
+ case 'virtual':
4121
+ return true;
4122
+ case 'visibility':
4123
+ case 'hybrid':
4124
+ return hasMounted;
4125
+ default:
4126
+ return true;
4127
+ }
4128
+ }, [mode, hasMounted]);
4129
+ if (!shouldRender()) {
4130
+ return React.createElement("div", { ref: ref }, placeholder);
4131
+ }
4132
+ return (React.createElement("div", { ref: ref, style: {
4133
+ opacity: isVisible ? 1 : 0,
4134
+ transition: 'opacity 0.3s ease-in-out'
4135
+ } },
4136
+ React.createElement(WrappedComponent, { ...rest })));
4137
+ };
4138
+ }
4139
+
3875
4140
  class LazyScroll {
3876
4141
  constructor(container, config) {
3877
4142
  this.container = container;
@@ -4052,6 +4317,7 @@ exports.DevicePerformanceMonitor = DevicePerformanceMonitor;
4052
4317
  exports.DynamicHeightEngine = DynamicHeightEngine;
4053
4318
  exports.Engine = Engine;
4054
4319
  exports.GPUAccelerator = GPUAccelerator;
4320
+ exports.GlobalScrollManager = GlobalScrollManager;
4055
4321
  exports.HeightMeasurementCache = HeightMeasurementCache;
4056
4322
  exports.IntelligentPagination = IntelligentPagination;
4057
4323
  exports.IntelligentScrollDetector = IntelligentScrollDetector;
@@ -4074,8 +4340,11 @@ exports.ScrollObserver = ScrollObserver;
4074
4340
  exports.SmartPrefetchAlgorithm = SmartPrefetchAlgorithm;
4075
4341
  exports.VariableHeightManager = VariableHeightManager;
4076
4342
  exports.WindowManager = WindowManager;
4343
+ exports.createLazyComponent = createLazyComponent;
4077
4344
  exports.createLazyScroll = createLazyScroll;
4078
4345
  exports.debounce = debounce;
4079
4346
  exports.throttle = throttle;
4347
+ exports.useLazyComponent = useLazyComponent;
4080
4348
  exports.useLazyList = useLazyList;
4349
+ exports.withLazyRender = withLazyRender;
4081
4350
  //# sourceMappingURL=index.js.map