lazy-render-virtual-scroll 1.0.7 → 1.0.8

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 (47) hide show
  1. package/README.md +10 -0
  2. package/dist/cjs/adapters/angular/lazy-scroll.component.d.ts +28 -0
  3. package/dist/cjs/adapters/angular/lazy-scroll.component.d.ts.map +1 -0
  4. package/dist/cjs/adapters/angular/lazy-scroll.directive.d.ts +21 -0
  5. package/dist/cjs/adapters/angular/lazy-scroll.directive.d.ts.map +1 -0
  6. package/dist/cjs/adapters/index.d.ts +7 -0
  7. package/dist/cjs/adapters/index.d.ts.map +1 -0
  8. package/dist/cjs/adapters/svelte/lazyScrollAction.d.ts +13 -0
  9. package/dist/cjs/adapters/svelte/lazyScrollAction.d.ts.map +1 -0
  10. package/dist/cjs/adapters/vue/useLazyScroll.d.ts +13 -0
  11. package/dist/cjs/adapters/vue/useLazyScroll.d.ts.map +1 -0
  12. package/dist/cjs/core/Engine.d.ts +3 -0
  13. package/dist/cjs/core/Engine.d.ts.map +1 -1
  14. package/dist/cjs/core/GPUAccelerator.d.ts +23 -0
  15. package/dist/cjs/core/GPUAccelerator.d.ts.map +1 -0
  16. package/dist/cjs/core/MemoryManager.d.ts +33 -0
  17. package/dist/cjs/core/MemoryManager.d.ts.map +1 -0
  18. package/dist/cjs/core/PerformanceOptimizer.d.ts +39 -0
  19. package/dist/cjs/core/PerformanceOptimizer.d.ts.map +1 -0
  20. package/dist/cjs/index.d.ts +9 -0
  21. package/dist/cjs/index.d.ts.map +1 -1
  22. package/dist/cjs/index.js +1221 -19
  23. package/dist/cjs/index.js.map +1 -1
  24. package/dist/esm/adapters/angular/lazy-scroll.component.d.ts +28 -0
  25. package/dist/esm/adapters/angular/lazy-scroll.component.d.ts.map +1 -0
  26. package/dist/esm/adapters/angular/lazy-scroll.directive.d.ts +21 -0
  27. package/dist/esm/adapters/angular/lazy-scroll.directive.d.ts.map +1 -0
  28. package/dist/esm/adapters/index.d.ts +7 -0
  29. package/dist/esm/adapters/index.d.ts.map +1 -0
  30. package/dist/esm/adapters/svelte/lazyScrollAction.d.ts +13 -0
  31. package/dist/esm/adapters/svelte/lazyScrollAction.d.ts.map +1 -0
  32. package/dist/esm/adapters/vue/useLazyScroll.d.ts +13 -0
  33. package/dist/esm/adapters/vue/useLazyScroll.d.ts.map +1 -0
  34. package/dist/esm/core/Engine.d.ts +3 -0
  35. package/dist/esm/core/Engine.d.ts.map +1 -1
  36. package/dist/esm/core/GPUAccelerator.d.ts +23 -0
  37. package/dist/esm/core/GPUAccelerator.d.ts.map +1 -0
  38. package/dist/esm/core/MemoryManager.d.ts +33 -0
  39. package/dist/esm/core/MemoryManager.d.ts.map +1 -0
  40. package/dist/esm/core/PerformanceOptimizer.d.ts +39 -0
  41. package/dist/esm/core/PerformanceOptimizer.d.ts.map +1 -0
  42. package/dist/esm/index.d.ts +9 -0
  43. package/dist/esm/index.d.ts.map +1 -1
  44. package/dist/esm/index.js +1212 -20
  45. package/dist/esm/index.js.map +1 -1
  46. package/dist/index.d.ts +448 -1
  47. package/package.json +1 -1
package/README.md CHANGED
@@ -34,7 +34,17 @@ A framework-agnostic virtual scrolling and lazy rendering solution that efficien
34
34
  - **Device Performance Monitoring**: Adjusts behavior based on device capabilities
35
35
  - **Content Complexity Analysis**: Optimizes for different content types and complexity
36
36
  - **Memory Efficient**: Automatically cleans up off-screen elements
37
+ - **Multi-Framework Support**: Easy integration with React, Vue, Angular, Svelte, and vanilla JavaScript
38
+ - **Advanced Performance Optimization**: Frame-rate optimized updates and GPU acceleration
39
+ - **Memory Management**: Intelligent caching and cleanup for optimal memory usage
40
+ - **GPU Acceleration**: Hardware-accelerated rendering for smooth performance
41
+ - **Frame Budget Optimization**: Limits updates to maintain 60fps performance
42
+ - **Batch Update Processing**: Reduces DOM manipulations for better performance
37
43
  - **React Adapter**: Easy integration with React applications
44
+ - **Vue Adapter**: Composition API integration with Vue 3
45
+ - **Angular Adapter**: Directive and component for Angular applications
46
+ - **Svelte Adapter**: Action and component for Svelte applications
47
+ - **Vanilla JS Support**: Web Components and plain JavaScript implementation
38
48
  - **Configurable Buffer**: Adjustable buffer size for optimal performance
39
49
  - **Overscan Support**: Additional buffer for smoother scrolling
40
50
  - **Predictive Loading**: Anticipates user needs based on scroll patterns
@@ -0,0 +1,28 @@
1
+ import { TemplateRef, AfterViewInit, OnDestroy } from '@angular/core';
2
+ export declare class LazyScrollComponent implements AfterViewInit, OnDestroy {
3
+ items: any[];
4
+ itemHeight: number;
5
+ viewportHeight: number;
6
+ bufferSize: number;
7
+ fetchMore: () => Promise<any>;
8
+ visibleRangeChange: any;
9
+ loadingChange: any;
10
+ itemTemplate: TemplateRef<any>;
11
+ visibleRange: {
12
+ start: number;
13
+ end: number;
14
+ };
15
+ isLoading: boolean;
16
+ get topPadding(): number;
17
+ get bottomPadding(): number;
18
+ get visibleItems(): any[];
19
+ ngAfterViewInit(): void;
20
+ ngOnDestroy(): void;
21
+ onVisibleRangeChange(range: {
22
+ start: number;
23
+ end: number;
24
+ }): void;
25
+ onLoadingChange(loading: boolean): void;
26
+ trackByFn(index: number, item: any): any;
27
+ }
28
+ //# sourceMappingURL=lazy-scroll.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lazy-scroll.component.d.ts","sourceRoot":"","sources":["../../../src/adapters/angular/lazy-scroll.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwD,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG5H,qBAwDa,mBAAoB,YAAW,aAAa,EAAE,SAAS;IACzD,KAAK,EAAE,GAAG,EAAE,CAAM;IAClB,UAAU,EAAE,MAAM,CAAM;IACxB,cAAc,EAAE,MAAM,CAAO;IAC7B,UAAU,EAAE,MAAM,CAAK;IACvB,SAAS,EAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;IAE9B,kBAAkB,MAAsD;IACxE,aAAa,MAA+B;IAGtD,YAAY,EAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAEhC,YAAY;;;MAAwB;IACpC,SAAS,UAAS;IAElB,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,IAAI,YAAY,IAAI,GAAG,EAAE,CAExB;IAED,eAAe;IAIf,WAAW;IAIX,oBAAoB,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE;IAK1D,eAAe,CAAC,OAAO,EAAE,OAAO;IAKhC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG;CAGzC"}
@@ -0,0 +1,21 @@
1
+ import { ElementRef, OnInit, OnDestroy } from '@angular/core';
2
+ import { FetchMoreCallback } from '../../core/types';
3
+ export declare class LazyScrollDirective implements OnInit, OnDestroy {
4
+ private el;
5
+ items: any[];
6
+ itemHeight: number;
7
+ viewportHeight: number;
8
+ bufferSize: number;
9
+ fetchMore: FetchMoreCallback;
10
+ visibleRangeChange: any;
11
+ loadingChange: any;
12
+ private engine;
13
+ private scrollListener;
14
+ constructor(el: ElementRef);
15
+ ngOnInit(): void;
16
+ ngOnDestroy(): void;
17
+ private onScroll;
18
+ refresh(): void;
19
+ getVisibleRange(): import("../../core/types").VisibleRange;
20
+ }
21
+ //# sourceMappingURL=lazy-scroll.directive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lazy-scroll.directive.d.ts","sourceRoot":"","sources":["../../../src/adapters/angular/lazy-scroll.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAE,MAAM,EAAE,SAAS,EAA+B,MAAM,eAAe,CAAC;AAEtG,OAAO,EAAgB,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAEnE,qBAGa,mBAAoB,YAAW,MAAM,EAAE,SAAS;IAa/C,OAAO,CAAC,EAAE;IAZb,KAAK,EAAE,GAAG,EAAE,CAAM;IAClB,UAAU,EAAE,MAAM,CAAM;IACxB,cAAc,EAAE,MAAM,CAAO;IAC7B,UAAU,EAAE,MAAM,CAAK;IACvB,SAAS,EAAG,iBAAiB,CAAC;IAE7B,kBAAkB,MAAsD;IACxE,aAAa,MAA+B;IAEtD,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,cAAc,CAAyC;gBAE3C,EAAE,EAAE,UAAU;IAElC,QAAQ;IAoBR,WAAW;IAWX,OAAO,CAAC,QAAQ;IAYhB,OAAO;IAQP,eAAe;CAMhB"}
@@ -0,0 +1,7 @@
1
+ export { useLazyScroll } from './vue/useLazyScroll';
2
+ export { LazyScrollDirective } from './angular/lazy-scroll.directive';
3
+ export { LazyScrollComponent } from './angular/lazy-scroll.component';
4
+ export { lazyScroll } from './svelte/lazyScrollAction';
5
+ export { LazyScroll, createLazyScroll } from './vanilla/lazyScroll';
6
+ export { default as LazyScrollElement } from './vanilla/LazyScrollElement';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAGtE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAIvD,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,6BAA6B,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { FetchMoreCallback } from '../../core/types';
2
+ interface LazyScrollConfig {
3
+ itemHeight: number;
4
+ viewportHeight: number;
5
+ bufferSize?: number;
6
+ fetchMore: FetchMoreCallback;
7
+ }
8
+ export declare function lazyScroll(node: HTMLElement, config: LazyScrollConfig): {
9
+ update(newConfig: LazyScrollConfig): void;
10
+ destroy(): void;
11
+ };
12
+ export {};
13
+ //# sourceMappingURL=lazyScrollAction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lazyScrollAction.d.ts","sourceRoot":"","sources":["../../../src/adapters/svelte/lazyScrollAction.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAEnE,UAAU,gBAAgB;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,iBAAiB,CAAC;CAC9B;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,gBAAgB;sBAsBhD,gBAAgB;;EAgBrC"}
@@ -0,0 +1,13 @@
1
+ import { EngineConfig, FetchMoreCallback } from '../../core/types';
2
+ interface LazyScrollConfig extends EngineConfig {
3
+ fetchMore: FetchMoreCallback;
4
+ }
5
+ export declare const useLazyScroll: (config: LazyScrollConfig) => {
6
+ visibleRange: any;
7
+ loadedItems: any;
8
+ isLoading: any;
9
+ containerRef: any;
10
+ refresh: () => void;
11
+ };
12
+ export {};
13
+ //# sourceMappingURL=useLazyScroll.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLazyScroll.d.ts","sourceRoot":"","sources":["../../../src/adapters/vue/useLazyScroll.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAgB,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAEjF,UAAU,gBAAiB,SAAQ,YAAY;IAC7C,SAAS,EAAE,iBAAiB,CAAC;CAC9B;AAED,eAAO,MAAM,aAAa,GAAI,QAAQ,gBAAgB;;;;;;CA4DrD,CAAC"}
@@ -9,6 +9,9 @@ export declare class Engine {
9
9
  private networkAwarePrefetchManager;
10
10
  private networkAwareRequestQueue;
11
11
  private adaptiveBufferCalculator;
12
+ private performanceOptimizer;
13
+ private memoryManager;
14
+ private gpuAccelerator;
12
15
  private state;
13
16
  private fetchMoreCallback;
14
17
  private totalItems;
@@ -1 +1 @@
1
- {"version":3,"file":"Engine.d.ts","sourceRoot":"","sources":["../../src/core/Engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAUrF,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,yBAAyB,CAA4B;IAC7D,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,2BAA2B,CAA8B;IACjE,OAAO,CAAC,wBAAwB,CAA2B;IAC3D,OAAO,CAAC,wBAAwB,CAA2B;IAE3D,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,iBAAiB,CAAkC;IAC3D,OAAO,CAAC,UAAU,CAAS;gBAEf,MAAM,EAAE,YAAY;IA8BhC;;OAEG;IACG,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA4B5D;;OAEG;IACH,eAAe,IAAI,YAAY;IAI/B;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAsBzC;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBhC;;OAEG;IACH,oBAAoB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IAIvD;;OAEG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIrC;;OAEG;IACH,QAAQ,IAAI,WAAW;IAIvB;;OAEG;IACH,gBAAgB,CAAC,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAQlE;;OAEG;IACH,OAAO,IAAI,IAAI;CAMhB"}
1
+ {"version":3,"file":"Engine.d.ts","sourceRoot":"","sources":["../../src/core/Engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAarF,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,yBAAyB,CAA4B;IAC7D,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,2BAA2B,CAA8B;IACjE,OAAO,CAAC,wBAAwB,CAA2B;IAC3D,OAAO,CAAC,wBAAwB,CAA2B;IAC3D,OAAO,CAAC,oBAAoB,CAAuB;IACnD,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,cAAc,CAAiB;IAEvC,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,iBAAiB,CAAkC;IAC3D,OAAO,CAAC,UAAU,CAAS;gBAEf,MAAM,EAAE,YAAY;IAiChC;;OAEG;IACG,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqC5D;;OAEG;IACH,eAAe,IAAI,YAAY;IAI/B;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAsBzC;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBhC;;OAEG;IACH,oBAAoB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IAIvD;;OAEG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIrC;;OAEG;IACH,QAAQ,IAAI,WAAW;IAIvB;;OAEG;IACH,gBAAgB,CAAC,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAQlE;;OAEG;IACH,OAAO,IAAI,IAAI;CAQhB"}
@@ -0,0 +1,23 @@
1
+ export declare class GPUAccelerator {
2
+ private gpuAccelerationEnabled;
3
+ private gpuElements;
4
+ private animationFrameId;
5
+ constructor();
6
+ private isGPUSupported;
7
+ enableForElement(element: HTMLElement): void;
8
+ disableForElement(element: HTMLElement): void;
9
+ enableForElements(elements: HTMLElement[]): void;
10
+ batchUpdate(elements: HTMLElement[], enable: boolean): void;
11
+ optimizeScrollContainer(container: HTMLElement): void;
12
+ optimizeItem(item: HTMLElement): void;
13
+ getStatus(): {
14
+ enabled: boolean;
15
+ supported: boolean;
16
+ elementCount: number;
17
+ };
18
+ optimizeForScenario(scenario: 'scrolling' | 'animation' | 'static'): void;
19
+ cleanup(): void;
20
+ isAccelerated(element: HTMLElement): boolean;
21
+ getRecommendations(): string[];
22
+ }
23
+ //# sourceMappingURL=GPUAccelerator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GPUAccelerator.d.ts","sourceRoot":"","sources":["../../src/core/GPUAccelerator.ts"],"names":[],"mappings":"AAAA,qBAAa,cAAc;IACzB,OAAO,CAAC,sBAAsB,CAAkB;IAChD,OAAO,CAAC,WAAW,CAAuC;IAC1D,OAAO,CAAC,gBAAgB,CAAuB;;IAO/C,OAAO,CAAC,cAAc;IAQtB,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAc5C,iBAAiB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAc7C,iBAAiB,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI;IAKhD,WAAW,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI;IAW3D,uBAAuB,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI;IAUrD,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IASrC,SAAS,IAAI;QACX,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE,OAAO,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;KACtB;IAcD,mBAAmB,CAAC,QAAQ,EAAE,WAAW,GAAG,WAAW,GAAG,QAAQ,GAAG,IAAI;IAqBzE,OAAO,IAAI,IAAI;IAUf,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO;IAK5C,kBAAkB,IAAI,MAAM,EAAE;CAa/B"}
@@ -0,0 +1,33 @@
1
+ export declare class MemoryManager {
2
+ private itemCache;
3
+ private maxCacheSize;
4
+ private cleanupThreshold;
5
+ private visibleRange;
6
+ private totalItems;
7
+ constructor(maxCacheSize?: number);
8
+ setVisibleRange(range: {
9
+ start: number;
10
+ end: number;
11
+ }): void;
12
+ setTotalItems(total: number): void;
13
+ get(key: number): any | null;
14
+ set(key: number, value: any): void;
15
+ has(key: number): boolean;
16
+ delete(key: number): boolean;
17
+ clear(): void;
18
+ cleanupCache(): void;
19
+ private getDistanceFromVisible;
20
+ getStats(): {
21
+ size: number;
22
+ maxCacheSize: number;
23
+ visibleItems: number;
24
+ offScreenItems: number;
25
+ memoryEstimate: number;
26
+ };
27
+ private estimateObjectSize;
28
+ pruneEssential(): void;
29
+ private isEssential;
30
+ getSize(): number;
31
+ getKeys(): number[];
32
+ }
33
+ //# sourceMappingURL=MemoryManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MemoryManager.d.ts","sourceRoot":"","sources":["../../src/core/MemoryManager.ts"],"names":[],"mappings":"AAAA,qBAAa,aAAa;IACxB,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,gBAAgB,CAAe;IACvC,OAAO,CAAC,YAAY,CAAwD;IAC5E,OAAO,CAAC,UAAU,CAAa;gBAEnB,YAAY,GAAE,MAAa;IAKvC,eAAe,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAK5D,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKlC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI;IAK5B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAUlC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAKzB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAK5B,KAAK,IAAI,IAAI;IAKb,YAAY,IAAI,IAAI;IAwCpB,OAAO,CAAC,sBAAsB;IAa9B,QAAQ,IAAI;QACV,IAAI,EAAE,MAAM,CAAC;QACb,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,cAAc,EAAE,MAAM,CAAC;QACvB,cAAc,EAAE,MAAM,CAAC;KACxB;IAuBD,OAAO,CAAC,kBAAkB;IAsB1B,cAAc,IAAI,IAAI;IAkBtB,OAAO,CAAC,WAAW;IAOnB,OAAO,IAAI,MAAM;IAKjB,OAAO,IAAI,MAAM,EAAE;CAGpB"}
@@ -0,0 +1,39 @@
1
+ export declare class PerformanceOptimizer {
2
+ private frameBudget;
3
+ private lastFrameTime;
4
+ private animationFrameId;
5
+ private isOptimizing;
6
+ private lastUpdate;
7
+ private minUpdateInterval;
8
+ private updateQueue;
9
+ private isProcessingQueue;
10
+ private cleanupThreshold;
11
+ private gcInterval;
12
+ constructor();
13
+ scheduleOptimizedUpdate(updateFn: () => void): void;
14
+ private processUpdateQueue;
15
+ private getTimeRemaining;
16
+ optimizeMemory(cleanupFn: (startIndex: number, endIndex: number) => void, visibleRange: {
17
+ start: number;
18
+ end: number;
19
+ }): void;
20
+ enableGPUCssAcceleration(element: HTMLElement): void;
21
+ disableGPUCssAcceleration(element: HTMLElement): void;
22
+ getOptimizationProfile(): {
23
+ frameRate: number;
24
+ batchSize: number;
25
+ bufferMultiplier: number;
26
+ updateInterval: number;
27
+ };
28
+ private isLowEndDevice;
29
+ private setupPerformanceMonitoring;
30
+ getPerformanceInsights(): {
31
+ frameRate: number;
32
+ memoryUsage: number | null;
33
+ updateFrequency: number;
34
+ optimizationActive: boolean;
35
+ };
36
+ private getMemoryUsage;
37
+ cleanup(): void;
38
+ }
39
+ //# sourceMappingURL=PerformanceOptimizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PerformanceOptimizer.d.ts","sourceRoot":"","sources":["../../src/core/PerformanceOptimizer.ts"],"names":[],"mappings":"AAAA,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,aAAa,CAAa;IAClC,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,OAAO,CAAC,YAAY,CAAkB;IAGtC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,iBAAiB,CAAc;IAGvC,OAAO,CAAC,WAAW,CAAyB;IAC5C,OAAO,CAAC,iBAAiB,CAAkB;IAG3C,OAAO,CAAC,gBAAgB,CAAgB;IACxC,OAAO,CAAC,UAAU,CAAuB;;IAOzC,uBAAuB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;YA4BrC,kBAAkB;IA4BhC,OAAO,CAAC,gBAAgB;IAWxB,cAAc,CAAC,SAAS,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,EAAE,YAAY,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAe7H,wBAAwB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAQpD,yBAAyB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAOrD,sBAAsB,IAAI;QACxB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,gBAAgB,EAAE,MAAM,CAAC;QACzB,cAAc,EAAE,MAAM,CAAC;KACxB;IAuBD,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,0BAA0B;IA6ClC,sBAAsB,IAAI;QACxB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,eAAe,EAAE,MAAM,CAAC;QACxB,kBAAkB,EAAE,OAAO,CAAC;KAC7B;IASD,OAAO,CAAC,cAAc;IAStB,OAAO,IAAI,IAAI;CAYhB"}
@@ -9,7 +9,16 @@ export { NetworkAwareRequestQueue } from './core/NetworkAwareRequestQueue';
9
9
  export { AdaptiveBufferCalculator } from './core/AdaptiveBufferCalculator';
10
10
  export { DevicePerformanceMonitor } from './core/DevicePerformanceMonitor';
11
11
  export { ContentComplexityAnalyzer } from './core/ContentComplexityAnalyzer';
12
+ export { PerformanceOptimizer } from './core/PerformanceOptimizer';
13
+ export { MemoryManager } from './core/MemoryManager';
14
+ export { GPUAccelerator } from './core/GPUAccelerator';
12
15
  export type { EngineConfig, VisibleRange, FetchMoreCallback, EngineState, ScrollAnalysis } from './core/types';
16
+ export { useLazyScroll } from './adapters/vue/useLazyScroll';
17
+ export { LazyScrollDirective } from './adapters/angular/lazy-scroll.directive';
18
+ export { LazyScrollComponent } from './adapters/angular/lazy-scroll.component';
19
+ export { lazyScroll } from './adapters/svelte/lazyScrollAction';
20
+ export { LazyScroll, createLazyScroll } from './adapters/vanilla/lazyScroll';
21
+ export { default as LazyScrollElement } from './adapters/vanilla/LazyScrollElement';
13
22
  export { ScrollObserver } from './platform/browser/ScrollObserver';
14
23
  export { useLazyList } from './adapters/react/useLazyList';
15
24
  export { LazyList } from './adapters/react/LazyList';
@@ -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,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,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,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG/G,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAI7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAG/E,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAIhE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAGpF,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,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC"}