react-virtual-renderer 1.0.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 (80) hide show
  1. package/README.md +170 -0
  2. package/dist/App.d.ts +3 -0
  3. package/dist/App.d.ts.map +1 -0
  4. package/dist/App.js +7 -0
  5. package/dist/App.js.map +1 -0
  6. package/dist/accessibility/a11y.d.ts +111 -0
  7. package/dist/accessibility/a11y.d.ts.map +1 -0
  8. package/dist/accessibility/a11y.js +254 -0
  9. package/dist/accessibility/a11y.js.map +1 -0
  10. package/dist/components/VirtualGrid.d.ts +8 -0
  11. package/dist/components/VirtualGrid.d.ts.map +1 -0
  12. package/dist/components/VirtualGrid.js +187 -0
  13. package/dist/components/VirtualGrid.js.map +1 -0
  14. package/dist/components/VirtualList.d.ts +8 -0
  15. package/dist/components/VirtualList.d.ts.map +1 -0
  16. package/dist/components/VirtualList.js +102 -0
  17. package/dist/components/VirtualList.js.map +1 -0
  18. package/dist/core/MeasurementSystem.d.ts +52 -0
  19. package/dist/core/MeasurementSystem.d.ts.map +1 -0
  20. package/dist/core/MeasurementSystem.js +138 -0
  21. package/dist/core/MeasurementSystem.js.map +1 -0
  22. package/dist/core/VirtualizationEngine.d.ts +65 -0
  23. package/dist/core/VirtualizationEngine.d.ts.map +1 -0
  24. package/dist/core/VirtualizationEngine.js +203 -0
  25. package/dist/core/VirtualizationEngine.js.map +1 -0
  26. package/dist/examples/AdvancedExamples.d.ts +24 -0
  27. package/dist/examples/AdvancedExamples.d.ts.map +1 -0
  28. package/dist/examples/AdvancedExamples.js +216 -0
  29. package/dist/examples/AdvancedExamples.js.map +1 -0
  30. package/dist/examples/Example.d.ts +26 -0
  31. package/dist/examples/Example.d.ts.map +1 -0
  32. package/dist/examples/Example.js +186 -0
  33. package/dist/examples/Example.js.map +1 -0
  34. package/dist/hooks/useInfiniteScroll.d.ts +17 -0
  35. package/dist/hooks/useInfiniteScroll.d.ts.map +1 -0
  36. package/dist/hooks/useInfiniteScroll.js +41 -0
  37. package/dist/hooks/useInfiniteScroll.js.map +1 -0
  38. package/dist/hooks/useLazyLoad.d.ts +16 -0
  39. package/dist/hooks/useLazyLoad.d.ts.map +1 -0
  40. package/dist/hooks/useLazyLoad.js +34 -0
  41. package/dist/hooks/useLazyLoad.js.map +1 -0
  42. package/dist/hooks/useScrollRestoration.d.ts +10 -0
  43. package/dist/hooks/useScrollRestoration.d.ts.map +1 -0
  44. package/dist/hooks/useScrollRestoration.js +63 -0
  45. package/dist/hooks/useScrollRestoration.js.map +1 -0
  46. package/dist/hooks/useVirtualList.d.ts +33 -0
  47. package/dist/hooks/useVirtualList.d.ts.map +1 -0
  48. package/dist/hooks/useVirtualList.js +226 -0
  49. package/dist/hooks/useVirtualList.js.map +1 -0
  50. package/dist/hooks/useVirtualizedSearch.d.ts +40 -0
  51. package/dist/hooks/useVirtualizedSearch.d.ts.map +1 -0
  52. package/dist/hooks/useVirtualizedSearch.js +168 -0
  53. package/dist/hooks/useVirtualizedSearch.js.map +1 -0
  54. package/dist/index.d.ts +11 -0
  55. package/dist/index.d.ts.map +1 -0
  56. package/dist/index.esm.js +11 -0
  57. package/dist/index.esm.js.map +1 -0
  58. package/dist/index.js +11 -0
  59. package/dist/index.js.map +1 -0
  60. package/dist/main.d.ts +2 -0
  61. package/dist/main.d.ts.map +1 -0
  62. package/dist/main.js +6 -0
  63. package/dist/main.js.map +1 -0
  64. package/dist/performance/metrics.d.ts +110 -0
  65. package/dist/performance/metrics.d.ts.map +1 -0
  66. package/dist/performance/metrics.js +310 -0
  67. package/dist/performance/metrics.js.map +1 -0
  68. package/dist/plugin.d.ts +182 -0
  69. package/dist/plugin.d.ts.map +1 -0
  70. package/dist/plugin.js +409 -0
  71. package/dist/plugin.js.map +1 -0
  72. package/dist/types.d.ts +84 -0
  73. package/dist/types.d.ts.map +1 -0
  74. package/dist/types.js +2 -0
  75. package/dist/types.js.map +1 -0
  76. package/dist/utils/helpers.d.ts +66 -0
  77. package/dist/utils/helpers.d.ts.map +1 -0
  78. package/dist/utils/helpers.js +166 -0
  79. package/dist/utils/helpers.js.map +1 -0
  80. package/package.json +111 -0
@@ -0,0 +1,110 @@
1
+ /**
2
+ * Performance monitoring for Virtualize
3
+ * Tracks render time, scroll performance, memory usage, etc.
4
+ */
5
+ export interface PerformanceMetrics {
6
+ renderTime: number;
7
+ itemsRendered: number;
8
+ itemsMeasured: number;
9
+ scrollFPS: number;
10
+ scrollDelta: number;
11
+ memoryUsed: number;
12
+ cacheSize: number;
13
+ }
14
+ export interface PerformanceWarnings {
15
+ slowRender?: boolean;
16
+ lowFPS?: boolean;
17
+ highMemory?: boolean;
18
+ largeCache?: boolean;
19
+ }
20
+ /**
21
+ * Performance metrics collector
22
+ */
23
+ export declare class MetricsCollector {
24
+ private metrics;
25
+ private startTime;
26
+ private lastScrollTime;
27
+ private frameCount;
28
+ private lastFPSTime;
29
+ private isRecording;
30
+ start(): void;
31
+ stop(): void;
32
+ /**
33
+ * Record a render cycle
34
+ */
35
+ recordRender(itemsRendered: number, itemsMeasured: number, cacheSize: number): void;
36
+ /**
37
+ * Record scroll event
38
+ */
39
+ recordScroll(): void;
40
+ /**
41
+ * Calculate frames per second
42
+ */
43
+ private calculateFPS;
44
+ /**
45
+ * Get average metrics
46
+ */
47
+ getAverageMetrics(): Partial<PerformanceMetrics>;
48
+ /**
49
+ * Check for performance issues
50
+ */
51
+ checkWarnings(): PerformanceWarnings;
52
+ /**
53
+ * Get detailed report
54
+ */
55
+ getReport(): string;
56
+ /**
57
+ * Clear metrics
58
+ */
59
+ clear(): void;
60
+ }
61
+ export declare function usePerformanceMonitoring(enabled?: boolean): {
62
+ recordRender: (rendered: number, measured: number, cacheSize: number) => void;
63
+ recordScroll: () => void;
64
+ getMetrics: () => Partial<PerformanceMetrics>;
65
+ getWarnings: () => PerformanceWarnings;
66
+ getReport: () => string;
67
+ };
68
+ /**
69
+ * Browser DevTools integration
70
+ */
71
+ export declare class VirtualizeDevTools {
72
+ static inject(): void;
73
+ static getMetrics(): any;
74
+ static generateReport(): any;
75
+ }
76
+ /**
77
+ * Performance profiler for detailed analysis
78
+ */
79
+ export declare class PerformanceProfiler {
80
+ private marks;
81
+ private measures;
82
+ mark(label: string): void;
83
+ measure(label: string, startMark: string, endMark?: string): number;
84
+ getMeasures(): {
85
+ [k: string]: number;
86
+ };
87
+ generateFlameChart(width?: number): string;
88
+ clear(): void;
89
+ }
90
+ /**
91
+ * Memory leak detector
92
+ */
93
+ export declare class MemoryLeakDetector {
94
+ private initialMemory;
95
+ private measurements;
96
+ start(): void;
97
+ measure(): void;
98
+ /**
99
+ * Detect if memory is continuously growing (potential leak)
100
+ */
101
+ detectLeak(sampleSize?: number, threshold?: number): boolean;
102
+ getReport(): {
103
+ initialMemory: string;
104
+ currentMemory: string;
105
+ trend: string;
106
+ potentialLeak: boolean;
107
+ };
108
+ clear(): void;
109
+ }
110
+ //# sourceMappingURL=metrics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../src/performance/metrics.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,kBAAkB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAChC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,qBAAa,gBAAgB;IACzB,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,WAAW,CAAkB;IAErC,KAAK;IAML,IAAI;IAIJ;;OAEG;IACH,YAAY,CACR,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM;IAqBrB;;OAEG;IACH,YAAY;IAIZ;;OAEG;IACH,OAAO,CAAC,YAAY;IAcpB;;OAEG;IACH,iBAAiB,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAiBhD;;OAEG;IACH,aAAa,IAAI,mBAAmB;IAWpC;;OAEG;IACH,SAAS,IAAI,MAAM;IAyBnB;;OAEG;IACH,KAAK;CAGR;AAOD,wBAAgB,wBAAwB,CAAC,OAAO,GAAE,OAAe;6BAYhC,MAAM,YAAY,MAAM,aAAa,MAAM;;;;;EAO3E;AAED;;GAEG;AACH,qBAAa,kBAAkB;IAC3B,MAAM,CAAC,MAAM;IAWb,MAAM,CAAC,UAAU;IAIjB,MAAM,CAAC,cAAc;CAGxB;AAED;;GAEG;AACH,qBAAa,mBAAmB;IAC5B,OAAO,CAAC,KAAK,CAAkC;IAC/C,OAAO,CAAC,QAAQ,CAAkC;IAElD,IAAI,CAAC,KAAK,EAAE,MAAM;IAIlB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;IAa1D,WAAW;;;IAIX,kBAAkB,CAAC,KAAK,GAAE,MAAW,GAAG,MAAM;IAe9C,KAAK;CAIR;AAED;;GAEG;AACH,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,aAAa,CAAa;IAClC,OAAO,CAAC,YAAY,CAAgB;IAEpC,KAAK;IAML,OAAO;IAMP;;OAEG;IACH,UAAU,CAAC,UAAU,GAAE,MAAW,EAAE,SAAS,GAAE,MAAY,GAAG,OAAO;IAgBrE,SAAS;;;;;;IAiBT,KAAK;CAGR"}
@@ -0,0 +1,310 @@
1
+ /**
2
+ * Performance monitoring for Virtualize
3
+ * Tracks render time, scroll performance, memory usage, etc.
4
+ */
5
+ /**
6
+ * Performance metrics collector
7
+ */
8
+ export class MetricsCollector {
9
+ constructor() {
10
+ Object.defineProperty(this, "metrics", {
11
+ enumerable: true,
12
+ configurable: true,
13
+ writable: true,
14
+ value: []
15
+ });
16
+ Object.defineProperty(this, "startTime", {
17
+ enumerable: true,
18
+ configurable: true,
19
+ writable: true,
20
+ value: 0
21
+ });
22
+ Object.defineProperty(this, "lastScrollTime", {
23
+ enumerable: true,
24
+ configurable: true,
25
+ writable: true,
26
+ value: 0
27
+ });
28
+ Object.defineProperty(this, "frameCount", {
29
+ enumerable: true,
30
+ configurable: true,
31
+ writable: true,
32
+ value: 0
33
+ });
34
+ Object.defineProperty(this, "lastFPSTime", {
35
+ enumerable: true,
36
+ configurable: true,
37
+ writable: true,
38
+ value: 0
39
+ });
40
+ Object.defineProperty(this, "isRecording", {
41
+ enumerable: true,
42
+ configurable: true,
43
+ writable: true,
44
+ value: false
45
+ });
46
+ }
47
+ start() {
48
+ this.isRecording = true;
49
+ this.startTime = performance.now();
50
+ this.lastScrollTime = performance.now();
51
+ }
52
+ stop() {
53
+ this.isRecording = false;
54
+ }
55
+ /**
56
+ * Record a render cycle
57
+ */
58
+ recordRender(itemsRendered, itemsMeasured, cacheSize) {
59
+ if (!this.isRecording)
60
+ return;
61
+ const renderTime = performance.now() - this.startTime;
62
+ const memoryUsed = performance.memory?.usedJSHeapSize || 0;
63
+ const metric = {
64
+ renderTime,
65
+ itemsRendered,
66
+ itemsMeasured,
67
+ scrollFPS: this.calculateFPS(),
68
+ scrollDelta: performance.now() - this.lastScrollTime,
69
+ memoryUsed,
70
+ cacheSize,
71
+ };
72
+ this.metrics.push(metric);
73
+ this.startTime = performance.now();
74
+ }
75
+ /**
76
+ * Record scroll event
77
+ */
78
+ recordScroll() {
79
+ this.lastScrollTime = performance.now();
80
+ }
81
+ /**
82
+ * Calculate frames per second
83
+ */
84
+ calculateFPS() {
85
+ const now = performance.now();
86
+ this.frameCount++;
87
+ if (now - this.lastFPSTime >= 1000) {
88
+ const fps = this.frameCount;
89
+ this.frameCount = 0;
90
+ this.lastFPSTime = now;
91
+ return fps;
92
+ }
93
+ return 0;
94
+ }
95
+ /**
96
+ * Get average metrics
97
+ */
98
+ getAverageMetrics() {
99
+ if (this.metrics.length === 0)
100
+ return {};
101
+ const avg = (key) => this.metrics.reduce((sum, m) => sum + m[key], 0) / this.metrics.length;
102
+ return {
103
+ renderTime: avg('renderTime'),
104
+ itemsRendered: avg('itemsRendered'),
105
+ itemsMeasured: avg('itemsMeasured'),
106
+ scrollFPS: avg('scrollFPS'),
107
+ scrollDelta: avg('scrollDelta'),
108
+ memoryUsed: avg('memoryUsed'),
109
+ cacheSize: avg('cacheSize'),
110
+ };
111
+ }
112
+ /**
113
+ * Check for performance issues
114
+ */
115
+ checkWarnings() {
116
+ const avg = this.getAverageMetrics();
117
+ return {
118
+ slowRender: (avg.renderTime ?? 0) > 16.67,
119
+ lowFPS: (avg.scrollFPS ?? 60) < 50,
120
+ highMemory: (avg.memoryUsed ?? 0) > 50 * 1024 * 1024,
121
+ largeCache: (avg.cacheSize ?? 0) > 10000, // > 10k items cached
122
+ };
123
+ }
124
+ /**
125
+ * Get detailed report
126
+ */
127
+ getReport() {
128
+ const avg = this.getAverageMetrics();
129
+ const warnings = this.checkWarnings();
130
+ return `
131
+ === VIRTUALIZE PERFORMANCE REPORT ===
132
+
133
+ 📊 METRICS:
134
+ • Render Time: ${(avg.renderTime ?? 0).toFixed(2)}ms
135
+ • Items Rendered: ${Math.round(avg.itemsRendered ?? 0)}
136
+ • Items Measured: ${Math.round(avg.itemsMeasured ?? 0)}
137
+ • Scroll FPS: ${Math.round(avg.scrollFPS ?? 0)}
138
+ • Memory Used: ${((avg.memoryUsed ?? 0) / 1024 / 1024).toFixed(2)}MB
139
+ • Cache Size: ${Math.round(avg.cacheSize ?? 0)}
140
+
141
+ ⚠️ WARNINGS:
142
+ ${warnings.slowRender ? '• ⚠️ SLOW RENDER: Render time exceeds 16.67ms (1 frame @ 60fps)' : ''}
143
+ ${warnings.lowFPS ? '• ⚠️ LOW FPS: Scrolling performance below 50 FPS' : ''}
144
+ ${warnings.highMemory ? '• ⚠️ HIGH MEMORY: Using more than 50MB of memory' : ''}
145
+ ${warnings.largeCache ? '• ⚠️ LARGE CACHE: Cache size exceeds 10,000 items' : ''}
146
+
147
+ ✅ STATUS: ${Object.values(warnings).some((w) => w) ? 'NEEDS OPTIMIZATION' : 'HEALTHY'}
148
+ `.trim();
149
+ }
150
+ /**
151
+ * Clear metrics
152
+ */
153
+ clear() {
154
+ this.metrics = [];
155
+ }
156
+ }
157
+ /**
158
+ * React hook for performance monitoring
159
+ */
160
+ import React from 'react';
161
+ export function usePerformanceMonitoring(enabled = false) {
162
+ const collectorRef = React.useRef(new MetricsCollector());
163
+ React.useEffect(() => {
164
+ if (enabled) {
165
+ collectorRef.current.start();
166
+ }
167
+ else {
168
+ collectorRef.current.stop();
169
+ }
170
+ }, [enabled]);
171
+ return {
172
+ recordRender: (rendered, measured, cacheSize) => collectorRef.current.recordRender(rendered, measured, cacheSize),
173
+ recordScroll: () => collectorRef.current.recordScroll(),
174
+ getMetrics: () => collectorRef.current.getAverageMetrics(),
175
+ getWarnings: () => collectorRef.current.checkWarnings(),
176
+ getReport: () => collectorRef.current.getReport(),
177
+ };
178
+ }
179
+ /**
180
+ * Browser DevTools integration
181
+ */
182
+ export class VirtualizeDevTools {
183
+ static inject() {
184
+ if (typeof window !== 'undefined') {
185
+ window.__VIRTUALIZE_DEVTOOLS__ = {
186
+ version: '1.0.0',
187
+ metrics: new MetricsCollector(),
188
+ };
189
+ console.log('🎯 Virtualize DevTools injected. Access via window.__VIRTUALIZE_DEVTOOLS__');
190
+ }
191
+ }
192
+ static getMetrics() {
193
+ return window.__VIRTUALIZE_DEVTOOLS__?.metrics.getAverageMetrics();
194
+ }
195
+ static generateReport() {
196
+ return window.__VIRTUALIZE_DEVTOOLS__?.metrics.getReport();
197
+ }
198
+ }
199
+ /**
200
+ * Performance profiler for detailed analysis
201
+ */
202
+ export class PerformanceProfiler {
203
+ constructor() {
204
+ Object.defineProperty(this, "marks", {
205
+ enumerable: true,
206
+ configurable: true,
207
+ writable: true,
208
+ value: new Map()
209
+ });
210
+ Object.defineProperty(this, "measures", {
211
+ enumerable: true,
212
+ configurable: true,
213
+ writable: true,
214
+ value: new Map()
215
+ });
216
+ }
217
+ mark(label) {
218
+ this.marks.set(label, performance.now());
219
+ }
220
+ measure(label, startMark, endMark) {
221
+ const start = this.marks.get(startMark);
222
+ const end = endMark ? this.marks.get(endMark) : performance.now();
223
+ if (start !== undefined && end !== undefined) {
224
+ const duration = end - start;
225
+ this.measures.set(label, duration);
226
+ return duration;
227
+ }
228
+ return 0;
229
+ }
230
+ getMeasures() {
231
+ return Object.fromEntries(this.measures);
232
+ }
233
+ generateFlameChart(width = 80) {
234
+ let chart = '═'.repeat(width) + '\n';
235
+ const maxDuration = Math.max(...this.measures.values(), 1);
236
+ for (const [label, duration] of this.measures) {
237
+ const barLength = Math.round((duration / maxDuration) * (width - 20));
238
+ const bar = '█'.repeat(Math.max(barLength, 1));
239
+ chart += `${label.padEnd(15)} ${bar} ${duration.toFixed(2)}ms\n`;
240
+ }
241
+ chart += '═'.repeat(width);
242
+ return chart;
243
+ }
244
+ clear() {
245
+ this.marks.clear();
246
+ this.measures.clear();
247
+ }
248
+ }
249
+ /**
250
+ * Memory leak detector
251
+ */
252
+ export class MemoryLeakDetector {
253
+ constructor() {
254
+ Object.defineProperty(this, "initialMemory", {
255
+ enumerable: true,
256
+ configurable: true,
257
+ writable: true,
258
+ value: 0
259
+ });
260
+ Object.defineProperty(this, "measurements", {
261
+ enumerable: true,
262
+ configurable: true,
263
+ writable: true,
264
+ value: []
265
+ });
266
+ }
267
+ start() {
268
+ if (performance.memory) {
269
+ this.initialMemory = performance.memory.usedJSHeapSize;
270
+ }
271
+ }
272
+ measure() {
273
+ if (performance.memory) {
274
+ this.measurements.push(performance.memory.usedJSHeapSize);
275
+ }
276
+ }
277
+ /**
278
+ * Detect if memory is continuously growing (potential leak)
279
+ */
280
+ detectLeak(sampleSize = 10, threshold = 0.8) {
281
+ if (this.measurements.length < sampleSize)
282
+ return false;
283
+ const recentMeasurements = this.measurements.slice(-sampleSize);
284
+ let increasingTrend = 0;
285
+ for (let i = 1; i < recentMeasurements.length; i++) {
286
+ if (recentMeasurements[i] > recentMeasurements[i - 1]) {
287
+ increasingTrend++;
288
+ }
289
+ }
290
+ const increasingRatio = increasingTrend / (sampleSize - 1);
291
+ return increasingRatio > threshold;
292
+ }
293
+ getReport() {
294
+ const initialMB = (this.initialMemory / 1024 / 1024).toFixed(2);
295
+ const currentMB = (this.measurements[this.measurements.length - 1] /
296
+ 1024 /
297
+ 1024).toFixed(2);
298
+ const hasLeak = this.detectLeak();
299
+ return {
300
+ initialMemory: `${initialMB}MB`,
301
+ currentMemory: `${currentMB}MB`,
302
+ trend: hasLeak ? '📈 INCREASING' : '📉 STABLE',
303
+ potentialLeak: hasLeak,
304
+ };
305
+ }
306
+ clear() {
307
+ this.measurements = [];
308
+ }
309
+ }
310
+ //# sourceMappingURL=metrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/performance/metrics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,182 @@
1
+ export interface VirtualizePlugin {
2
+ name: string;
3
+ version: string;
4
+ hooks?: {
5
+ beforeRender?: (items: any[]) => any[];
6
+ afterRender?: (elements: HTMLElement[]) => void;
7
+ onScroll?: (offset: number) => void;
8
+ onMeasurement?: (index: number, size: number) => void;
9
+ };
10
+ methods?: Record<string, (...args: any[]) => any>;
11
+ }
12
+ export declare class PluginManager {
13
+ private plugins;
14
+ /**
15
+ * Register a plugin
16
+ */
17
+ register(plugin: VirtualizePlugin): void;
18
+ /**
19
+ * Unregister a plugin
20
+ */
21
+ unregister(name: string): void;
22
+ /**
23
+ * Get registered plugins
24
+ */
25
+ getPlugins(): VirtualizePlugin[];
26
+ /**
27
+ * Call plugin hook
28
+ */
29
+ callHook(hookName: keyof NonNullable<VirtualizePlugin['hooks']>, ...args: any[]): Promise<any[]>;
30
+ /**
31
+ * Call plugin method
32
+ */
33
+ callMethod(pluginName: string, methodName: string, ...args: any[]): any;
34
+ }
35
+ export declare enum LayoutType {
36
+ LIST = "list",
37
+ GRID = "grid",
38
+ MASONRY = "masonry",
39
+ WATERFALL = "waterfall",
40
+ FEED = "feed",
41
+ TIMELINE = "timeline"
42
+ }
43
+ export interface LayoutConfig {
44
+ type: LayoutType;
45
+ columnCount?: number;
46
+ gapSize?: number;
47
+ itemAspectRatio?: number;
48
+ maxWidth?: number;
49
+ minItemSize?: number;
50
+ }
51
+ /**
52
+ * Waterfall Layout - Multi-column layout with items filling shortest column
53
+ * Perfect for: Image galleries, product showcases
54
+ */
55
+ export declare class WaterfallLayout {
56
+ private columns;
57
+ private gapSize;
58
+ private columnHeights;
59
+ constructor(columns: number, gapSize?: number);
60
+ /**
61
+ * Get position for item
62
+ */
63
+ getItemPosition(_: number, itemHeight: number, width: number): {
64
+ x: number;
65
+ y: number;
66
+ column: number;
67
+ };
68
+ /**
69
+ * Get total height needed
70
+ */
71
+ getTotalHeight(): number;
72
+ /**
73
+ * Reset layout
74
+ */
75
+ reset(): void;
76
+ }
77
+ /**
78
+ * Feed Layout - Social media feed style (variable width, full-width items)
79
+ * Perfect for: Social feeds, blogs, news
80
+ */
81
+ export declare class FeedLayout {
82
+ private itemHeights;
83
+ private itemOffsets;
84
+ private totalHeight;
85
+ /**
86
+ * Record item height
87
+ */
88
+ recordItemHeight(index: number, height: number): void;
89
+ /**
90
+ * Get item offset and height
91
+ */
92
+ getItemDimensions(index: number): {
93
+ offset: number;
94
+ height: number;
95
+ };
96
+ /**
97
+ * Update all offsets
98
+ */
99
+ private updateOffsets;
100
+ /**
101
+ * Get total height
102
+ */
103
+ getTotalHeight(): number;
104
+ }
105
+ /**
106
+ * Vue 3 Adapter
107
+ */
108
+ export declare const createVueVirtualList: () => {
109
+ name: string;
110
+ template: string;
111
+ props: {
112
+ items: ArrayConstructor;
113
+ height: {
114
+ type: NumberConstructor;
115
+ default: number;
116
+ };
117
+ width: {
118
+ type: NumberConstructor;
119
+ default: number;
120
+ };
121
+ estimatedItemSize: {
122
+ type: NumberConstructor;
123
+ default: number;
124
+ };
125
+ };
126
+ };
127
+ /**
128
+ * Svelte Component
129
+ */
130
+ export declare const SvelteVirtualList = "\n<script>\n import { useVirtualList } from 'virtualize';\n\n export let items = [];\n export let height = 400;\n export let width = 300;\n export let estimatedItemSize = 50;\n\n let containerRef;\n const { virtualItems, getItemStyle } = useVirtualList({\n items,\n containerHeight: height,\n estimatedItemSize,\n });\n</script>\n\n<div\n bind:this={containerRef}\n class=\"virtualize-container\"\n style=\"height: {height}px; width: {width}px; overflow: auto;\"\n>\n {#each $virtualItems as virtualItem (virtualItem.key)}\n <div style={getItemStyle(virtualItem.index, virtualItem.size)}>\n <slot item={virtualItem.data} index={virtualItem.index} />\n </div>\n {/each}\n</div>\n\n<style>\n .virtualize-container {\n position: relative;\n border: 1px solid #ccc;\n }\n</style>\n";
131
+ export interface AnalyticsEvent {
132
+ type: string;
133
+ timestamp: number;
134
+ data: any;
135
+ }
136
+ export declare class AdvancedAnalytics {
137
+ private events;
138
+ private sessionStart;
139
+ private maxEvents;
140
+ /**
141
+ * Track event
142
+ */
143
+ trackEvent(type: string, data: any): void;
144
+ /**
145
+ * Get session duration
146
+ */
147
+ getSessionDuration(): number;
148
+ /**
149
+ * Get analytics report
150
+ */
151
+ getReport(): {
152
+ sessionDuration: number;
153
+ totalEvents: number;
154
+ eventBreakdown: Record<string, number>;
155
+ timeline: AnalyticsEvent[];
156
+ };
157
+ /**
158
+ * Get event breakdown
159
+ */
160
+ private getEventBreakdown;
161
+ /**
162
+ * Send analytics to server
163
+ */
164
+ sendAnalytics(endpoint: string): Promise<void>;
165
+ /**
166
+ * Export analytics as CSV
167
+ */
168
+ exportAsCSV(): string;
169
+ }
170
+ /**
171
+ * Example: Analytics Plugin
172
+ */
173
+ export declare const AnalyticsPlugin: VirtualizePlugin;
174
+ /**
175
+ * Example: Logger Plugin
176
+ */
177
+ export declare const LoggerPlugin: VirtualizePlugin;
178
+ /**
179
+ * Example: Custom Plugin
180
+ */
181
+ export declare function createCustomPlugin(options: any): VirtualizePlugin;
182
+ //# sourceMappingURL=plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}