centrifugal 0.0.1
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.
- package/LICENSE +21 -0
- package/README.md +270 -0
- package/fesm2022/centrifugal.mjs +13007 -0
- package/fesm2022/centrifugal.mjs.map +1 -0
- package/index.d.ts +4337 -0
- package/package.json +53 -0
package/index.d.ts
ADDED
|
@@ -0,0 +1,4337 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { ComponentRef, TemplateRef, Signal, ElementRef, DestroyRef, OnInit, Injector, OnDestroy } from '@angular/core';
|
|
3
|
+
import * as i2 from '@angular/common';
|
|
4
|
+
import * as rxjs from 'rxjs';
|
|
5
|
+
import { Observable, Subject, BehaviorSubject } from 'rxjs';
|
|
6
|
+
import * as centrifugal from 'centrifugal';
|
|
7
|
+
import * as i5 from '@angular/cdk/scrolling';
|
|
8
|
+
import { CdkScrollable } from '@angular/cdk/scrolling';
|
|
9
|
+
|
|
10
|
+
declare enum ScrollbarStates$1 {
|
|
11
|
+
NORMAL = 0,
|
|
12
|
+
PRESSED = 1,
|
|
13
|
+
HOVER = 2
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* CnScrollBarService
|
|
18
|
+
* Maximum performance for extremely large lists.
|
|
19
|
+
* It is based on algorithms for virtualization of screen objects.
|
|
20
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/components/cn-scroll-bar/cn-scroll-bar-public.service.ts
|
|
21
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
22
|
+
* @email djonnyx@gmail.com
|
|
23
|
+
*/
|
|
24
|
+
declare class CnScrollBarPublicService$1 {
|
|
25
|
+
private _internalService;
|
|
26
|
+
get $click(): rxjs.Observable<PointerEvent | MouseEvent>;
|
|
27
|
+
get $state(): rxjs.Observable<ScrollbarStates$1>;
|
|
28
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CnScrollBarPublicService$1, never>;
|
|
29
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<CnScrollBarPublicService$1>;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
type ScrollbarState$1 = ScrollbarStates$1;
|
|
33
|
+
|
|
34
|
+
declare enum ScrollerDirection$2 {
|
|
35
|
+
HORIZONTAL = "horizontal",
|
|
36
|
+
VERTICAL = "vertical"
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
type ScrollerDirections$2 = ScrollerDirection$2 | 'horizontal' | 'vertical';
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* FloatOrPersentageValue
|
|
43
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/common/types/float-or-persentage-value.ts
|
|
44
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
45
|
+
* @email djonnyx@gmail.com
|
|
46
|
+
*/
|
|
47
|
+
type FloatOrPersentageValue = number | `${number}%`;
|
|
48
|
+
|
|
49
|
+
type Operator = '+' | '-';
|
|
50
|
+
/**
|
|
51
|
+
* ArithmeticExpression
|
|
52
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/common/types/arithmetic-expression.ts
|
|
53
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
54
|
+
* @email djonnyx@gmail.com
|
|
55
|
+
*/
|
|
56
|
+
type ArithmeticExpression = FloatOrPersentageValue | `${FloatOrPersentageValue}${Operator}${FloatOrPersentageValue}` | `${FloatOrPersentageValue} ${Operator} ${FloatOrPersentageValue}`;
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Identifier type
|
|
60
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/common/types/id.ts
|
|
61
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
62
|
+
* @email djonnyx@gmail.com
|
|
63
|
+
*/
|
|
64
|
+
type Id = string | number;
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* @license Copyright (c) 2026 Evgenii Alexandrovich Grebennikov (djonnyx@gmail.com tg: http://t.me/djonnyx).
|
|
68
|
+
*/
|
|
69
|
+
type Color = `#${string}` | `rgb(${number},${number},${number})` | `rgba(${number},${number},${number},${number})` | `rgba(#${string},${number})`;
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* GradientColorPosition
|
|
73
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/common/types/gradient-position.ts
|
|
74
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
75
|
+
* @email djonnyx@gmail.com
|
|
76
|
+
*/
|
|
77
|
+
type GradientColorPosition = `${number}%` | `${number}` | number | string;
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* GradientColorPositions
|
|
81
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/common/types/gradient-positions.ts
|
|
82
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
83
|
+
* @email djonnyx@gmail.com
|
|
84
|
+
*/
|
|
85
|
+
type GradientColorPositions = [GradientColorPosition, GradientColorPosition];
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* TextDirections.
|
|
89
|
+
* RTL - right-to-left.
|
|
90
|
+
* LTR - left-to-right.
|
|
91
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/common/enums/text-directions.ts
|
|
92
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
93
|
+
* @email djonnyx@gmail.com
|
|
94
|
+
*/
|
|
95
|
+
declare enum TextDirections {
|
|
96
|
+
RTL = "rtl",
|
|
97
|
+
LTR = "ltr"
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* TextDirection.
|
|
102
|
+
* 'rtl' - right-to-left.
|
|
103
|
+
* 'ltr' - left-to-right.
|
|
104
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/common/enums/text-directions.ts
|
|
105
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
106
|
+
* @email djonnyx@gmail.com
|
|
107
|
+
*/
|
|
108
|
+
type TextDirection = TextDirections | 'rtl' | 'ltr';
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* LocaleSensitiveDirective
|
|
112
|
+
* Maximum performance for extremely large lists.
|
|
113
|
+
* It is based on algorithms for virtualization of screen objects.
|
|
114
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/directives/cn-locale-sensitive/cn-locale-sensitive.directive.ts
|
|
115
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
116
|
+
* @email djonnyx@gmail.com
|
|
117
|
+
*/
|
|
118
|
+
declare class CnLocaleSensitiveDirective {
|
|
119
|
+
langTextDir: _angular_core.InputSignal<TextDirection>;
|
|
120
|
+
listDir: _angular_core.InputSignal<ScrollerDirections$2>;
|
|
121
|
+
private _elementRef;
|
|
122
|
+
constructor();
|
|
123
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CnLocaleSensitiveDirective, never>;
|
|
124
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<CnLocaleSensitiveDirective, "[localeSensitive]", never, { "langTextDir": { "alias": "langTextDir"; "required": false; "isSignal": true; }; "listDir": { "alias": "listDir"; "required": false; "isSignal": true; }; }, {}, never, never, false, never>;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
declare class CnLocaleSensitiveModule {
|
|
128
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CnLocaleSensitiveModule, never>;
|
|
129
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<CnLocaleSensitiveModule, [typeof CnLocaleSensitiveDirective], [typeof i2.CommonModule], [typeof CnLocaleSensitiveDirective]>;
|
|
130
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<CnLocaleSensitiveModule>;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* VirtualClickDirective
|
|
135
|
+
* Maximum performance for extremely large lists.
|
|
136
|
+
* It is based on algorithms for virtualization of screen objects.
|
|
137
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/directives/cn-item-click/cn-item-click.directive.ts
|
|
138
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
139
|
+
* @email djonnyx@gmail.com
|
|
140
|
+
*/
|
|
141
|
+
declare class CnVirtualClickDirective {
|
|
142
|
+
private _$maxDistance;
|
|
143
|
+
protected $maxDistance: rxjs.Observable<number | null>;
|
|
144
|
+
private _maxDistance;
|
|
145
|
+
set maxDistance(v: number | string);
|
|
146
|
+
onVirtualClick: _angular_core.OutputEmitterRef<PointerEvent | TouchEvent>;
|
|
147
|
+
onVirtualClickPress: _angular_core.OutputEmitterRef<PointerEvent | TouchEvent>;
|
|
148
|
+
onVirtualClickCancel: _angular_core.OutputEmitterRef<void>;
|
|
149
|
+
private _service;
|
|
150
|
+
private _elementRef;
|
|
151
|
+
private _destroyRef;
|
|
152
|
+
constructor();
|
|
153
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CnVirtualClickDirective, never>;
|
|
154
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<CnVirtualClickDirective, "[virtualClick]", never, { "maxDistance": { "alias": "maxClickDistance"; "required": false; }; }, { "onVirtualClick": "onVirtualClick"; "onVirtualClickPress": "onVirtualClickPress"; "onVirtualClickCancel": "onVirtualClickCancel"; }, never, never, false, never>;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
declare class CnVirtualClickModule {
|
|
158
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CnVirtualClickModule, never>;
|
|
159
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<CnVirtualClickModule, [typeof CnVirtualClickDirective], [typeof i2.CommonModule], [typeof CnVirtualClickDirective]>;
|
|
160
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<CnVirtualClickModule>;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* IPoint
|
|
165
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/interfaces/point.ts
|
|
166
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
167
|
+
* @email djonnyx@gmail.com
|
|
168
|
+
*/
|
|
169
|
+
interface IPoint {
|
|
170
|
+
/**
|
|
171
|
+
* X coordinate.
|
|
172
|
+
*/
|
|
173
|
+
x: number;
|
|
174
|
+
/**
|
|
175
|
+
* Y coordinate.
|
|
176
|
+
*/
|
|
177
|
+
y: number;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* Area area Interface
|
|
182
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/common/interfaces/size.ts
|
|
183
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
184
|
+
* @email djonnyx@gmail.com
|
|
185
|
+
*/
|
|
186
|
+
interface ISize {
|
|
187
|
+
/**
|
|
188
|
+
* Width value.
|
|
189
|
+
*/
|
|
190
|
+
width: number;
|
|
191
|
+
/**
|
|
192
|
+
* Height value.
|
|
193
|
+
*/
|
|
194
|
+
height: number;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
/**
|
|
198
|
+
* Rectangular area interface
|
|
199
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/interfaces/rect.ts
|
|
200
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
201
|
+
* @email djonnyx@gmail.com
|
|
202
|
+
*/
|
|
203
|
+
interface IRect extends ISize {
|
|
204
|
+
/**
|
|
205
|
+
* X coordinate.
|
|
206
|
+
*/
|
|
207
|
+
x: number;
|
|
208
|
+
/**
|
|
209
|
+
* Y coordinate.
|
|
210
|
+
*/
|
|
211
|
+
y: number;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
/**
|
|
215
|
+
* Virtual list element model
|
|
216
|
+
* For tracking to work correctly, you must set a unique identifier (the property specified by trackBy).
|
|
217
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/models/item.model.ts
|
|
218
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
219
|
+
* @email djonnyx@gmail.com
|
|
220
|
+
*/
|
|
221
|
+
type IVirtualListItem<E = Object> = E & {
|
|
222
|
+
/**
|
|
223
|
+
* The type of the collection item. Items with different types are cached in separate pools.
|
|
224
|
+
*/
|
|
225
|
+
type?: string | symbol;
|
|
226
|
+
/**
|
|
227
|
+
* Props.
|
|
228
|
+
*/
|
|
229
|
+
[x: string]: any;
|
|
230
|
+
};
|
|
231
|
+
|
|
232
|
+
/**
|
|
233
|
+
* Alignments
|
|
234
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/enums/alignments.ts
|
|
235
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
236
|
+
* @email djonnyx@gmail.com
|
|
237
|
+
*/
|
|
238
|
+
declare enum Alignments {
|
|
239
|
+
NONE = "none",
|
|
240
|
+
CENTER = "center"
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
/**
|
|
244
|
+
* Alignment
|
|
245
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/enums/alignment.ts
|
|
246
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
247
|
+
* @email djonnyx@gmail.com
|
|
248
|
+
*/
|
|
249
|
+
type Alignment = Alignments | 'none' | 'center';
|
|
250
|
+
|
|
251
|
+
/**
|
|
252
|
+
* IAnimationParams
|
|
253
|
+
* Maximum performance for extremely large lists.
|
|
254
|
+
* It is based on algorithms for virtualization of screen objects.
|
|
255
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/interfaces/animation-params.ts
|
|
256
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
257
|
+
* @email djonnyx@gmail.com
|
|
258
|
+
*/
|
|
259
|
+
interface IAnimationParams$1 {
|
|
260
|
+
scrollToItem: number;
|
|
261
|
+
snapToItem: number;
|
|
262
|
+
navigateToItem: number;
|
|
263
|
+
navigateByKeyboard: number;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
/**
|
|
267
|
+
* A value of -1 indicates the direction is up or left (if the list direction is horizontal).
|
|
268
|
+
* A value of 1 indicates the direction is down or right (if the list direction is horizontal).
|
|
269
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/types/scroll-direction.ts
|
|
270
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
271
|
+
* @email djonnyx@gmail.com
|
|
272
|
+
*/
|
|
273
|
+
type ScrollDirection$1 = -1 | 1 | 0;
|
|
274
|
+
|
|
275
|
+
/**
|
|
276
|
+
* Interface IScrollEvent.
|
|
277
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/interfaces/scroll-event.ts
|
|
278
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
279
|
+
* @email djonnyx@gmail.com
|
|
280
|
+
*/
|
|
281
|
+
interface IScrollEvent$1 {
|
|
282
|
+
/**
|
|
283
|
+
* Scroll area offset
|
|
284
|
+
*/
|
|
285
|
+
scrollSize: number;
|
|
286
|
+
/**
|
|
287
|
+
* Full size of the scroll area
|
|
288
|
+
*/
|
|
289
|
+
scrollWeight: number;
|
|
290
|
+
/**
|
|
291
|
+
* Viewport size
|
|
292
|
+
*/
|
|
293
|
+
size: number;
|
|
294
|
+
/**
|
|
295
|
+
* Size of the list of elements
|
|
296
|
+
*/
|
|
297
|
+
listSize: number;
|
|
298
|
+
/**
|
|
299
|
+
* Specifies whether the list orientation is vertical.
|
|
300
|
+
*/
|
|
301
|
+
isVertical: boolean;
|
|
302
|
+
/**
|
|
303
|
+
* A value of -1 indicates the direction is up or left (if the list direction is horizontal).
|
|
304
|
+
* A value of 1 indicates the direction is down or right (if the list direction is horizontal).
|
|
305
|
+
*/
|
|
306
|
+
direction: ScrollDirection$1;
|
|
307
|
+
/**
|
|
308
|
+
* If true then indicates that the list has been scrolled to the end.
|
|
309
|
+
*/
|
|
310
|
+
isStart: boolean;
|
|
311
|
+
/**
|
|
312
|
+
* If true then indicates that the list has been scrolled to the end.
|
|
313
|
+
*/
|
|
314
|
+
isEnd: boolean;
|
|
315
|
+
/**
|
|
316
|
+
* Delta of marked and unmarked area
|
|
317
|
+
*/
|
|
318
|
+
delta: number;
|
|
319
|
+
/**
|
|
320
|
+
* Delta of new items
|
|
321
|
+
*/
|
|
322
|
+
deltaOfNewItems: number;
|
|
323
|
+
/**
|
|
324
|
+
* Display items range
|
|
325
|
+
*/
|
|
326
|
+
itemsRange: [number, number] | undefined;
|
|
327
|
+
/**
|
|
328
|
+
* Has user action
|
|
329
|
+
*/
|
|
330
|
+
userAction: boolean;
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
/**
|
|
334
|
+
* Interface IScrollOptions.
|
|
335
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/interfaces/scroll-options.ts
|
|
336
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
337
|
+
* @email djonnyx@gmail.com
|
|
338
|
+
*/
|
|
339
|
+
interface IScrollOptions$1 {
|
|
340
|
+
/**
|
|
341
|
+
* Default value is `0`.
|
|
342
|
+
*/
|
|
343
|
+
iteration?: number;
|
|
344
|
+
/**
|
|
345
|
+
* Scroll behavior. Default value is `instant`.
|
|
346
|
+
*/
|
|
347
|
+
behavior?: ScrollBehavior | 'auto' | 'instant' | 'smooth';
|
|
348
|
+
/**
|
|
349
|
+
* Specifies whether scrolling will smoothly transition to the previous animation. Default value is false.
|
|
350
|
+
*/
|
|
351
|
+
blending?: boolean;
|
|
352
|
+
/**
|
|
353
|
+
* Determines whether the element will have focus after scrolling is complete. Default value is true.
|
|
354
|
+
*/
|
|
355
|
+
focused?: boolean;
|
|
356
|
+
/**
|
|
357
|
+
* Delay.
|
|
358
|
+
*/
|
|
359
|
+
delay?: number;
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
/**
|
|
363
|
+
* IScrollParams
|
|
364
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/interfaces/scroll-options.ts
|
|
365
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
366
|
+
* @email djonnyx@gmail.com
|
|
367
|
+
*/
|
|
368
|
+
interface IScrollParams {
|
|
369
|
+
id: Id;
|
|
370
|
+
behavior?: ScrollBehavior;
|
|
371
|
+
blending?: boolean;
|
|
372
|
+
iteration?: number;
|
|
373
|
+
isLastIteration?: boolean;
|
|
374
|
+
scrollCalled?: boolean;
|
|
375
|
+
delay?: number;
|
|
376
|
+
cb?: () => void;
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
/**
|
|
380
|
+
* Interface IScrollingSettings.
|
|
381
|
+
* - frictionalForce - Frictional force. Default value is `0.035`.
|
|
382
|
+
* - mass - Mass. Default value is `0.005`.
|
|
383
|
+
* - maxDistance - Maximum scrolling distance. Default value is `12500`.
|
|
384
|
+
* - maxDuration - Maximum animation duration. Default value is `4000`.
|
|
385
|
+
* - speedScale - Speed scale. Default value is `15`.
|
|
386
|
+
* - optimization - Enables scrolling performance optimization. Default value is `true`.
|
|
387
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/interfaces/scrolling-settings.ts
|
|
388
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
389
|
+
* @email djonnyx@gmail.com
|
|
390
|
+
*/
|
|
391
|
+
interface IScrollingSettings$1 {
|
|
392
|
+
/**
|
|
393
|
+
* Frictional force. Default value is `0.035`.
|
|
394
|
+
*/
|
|
395
|
+
frictionalForce?: number;
|
|
396
|
+
/**
|
|
397
|
+
* Maximum animation duration. Default value is `4000`.
|
|
398
|
+
*/
|
|
399
|
+
maxDuration?: number;
|
|
400
|
+
/**
|
|
401
|
+
* Mass. Default value is `0.005`.
|
|
402
|
+
*/
|
|
403
|
+
mass?: number;
|
|
404
|
+
/**
|
|
405
|
+
* Maximum scrolling distance. Default value is `12500`.
|
|
406
|
+
*/
|
|
407
|
+
maxDistance?: number;
|
|
408
|
+
/**
|
|
409
|
+
* Speed scale. Default value is `15`.
|
|
410
|
+
*/
|
|
411
|
+
speedScale?: number;
|
|
412
|
+
/**
|
|
413
|
+
* Enables scrolling performance optimization. Default value is `true`.
|
|
414
|
+
*/
|
|
415
|
+
optimization?: boolean;
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
/**
|
|
419
|
+
* IItemTransformation
|
|
420
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/prerender-container/interfaces/item-transformation.ts
|
|
421
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
422
|
+
* @email djonnyx@gmail.com
|
|
423
|
+
*/
|
|
424
|
+
interface IItemTransformation {
|
|
425
|
+
x: number;
|
|
426
|
+
y: number;
|
|
427
|
+
z: number;
|
|
428
|
+
rotationX: number;
|
|
429
|
+
rotationY: number;
|
|
430
|
+
rotationZ: number;
|
|
431
|
+
scaleX: number;
|
|
432
|
+
scaleY: number;
|
|
433
|
+
scaleZ: number;
|
|
434
|
+
opacity: number;
|
|
435
|
+
filter?: string;
|
|
436
|
+
blendColor?: Color | null;
|
|
437
|
+
zIndex: number | string;
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
/**
|
|
441
|
+
* Sets `sticky` position, `collapsable` and `selectable` for the list item element. If `sticky` position is greater than `0`, then `sticky` position is applied.
|
|
442
|
+
* If the `sticky` value is greater than `0`, then the `sticky` position mode is enabled for the element. `1` - position start, `2` - position end. Default value is `0`.
|
|
443
|
+
* `selectable` determines whether an element can be selected or not. Default value is `true`.
|
|
444
|
+
* `collapsable` determines whether an element with a `sticky` property greater than zero can collapse and collapse elements in front that do not have a `sticky` property.
|
|
445
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/models/item-config-map.model.ts
|
|
446
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
447
|
+
* @email djonnyx@gmail.com
|
|
448
|
+
*/
|
|
449
|
+
interface IVirtualListItemConfigMap {
|
|
450
|
+
[id: string | number]: IVirtualListItemConfig;
|
|
451
|
+
}
|
|
452
|
+
interface IVirtualListItemConfig {
|
|
453
|
+
/**
|
|
454
|
+
* Sets `sticky` position for the element. If sticky position is greater than `0`, then `sticky` position is applied.
|
|
455
|
+
* `1` - position start, `2` - position end.
|
|
456
|
+
* Default value is `0`.
|
|
457
|
+
*/
|
|
458
|
+
sticky?: 0 | 1 | 2;
|
|
459
|
+
/**
|
|
460
|
+
* Determines whether an element with a `sticky` property greater than zero can collapse and collapse elements in front that do not have a `sticky` property.
|
|
461
|
+
* Default value is `false`.
|
|
462
|
+
*/
|
|
463
|
+
collapsable?: boolean;
|
|
464
|
+
/**
|
|
465
|
+
* Determines whether an element can be selected or not.
|
|
466
|
+
* Default value is `true`.
|
|
467
|
+
*/
|
|
468
|
+
selectable?: boolean;
|
|
469
|
+
/**
|
|
470
|
+
* Determines the size of an element when rendering lists with cell divisions. If sticky is 1 or 2, fullSize automatically becomes true.
|
|
471
|
+
* The default value is false.
|
|
472
|
+
*/
|
|
473
|
+
fullSize?: boolean;
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
/**
|
|
477
|
+
* Virtual list elements collection interface
|
|
478
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/models/collection.model.ts
|
|
479
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
480
|
+
* @email djonnyx@gmail.com
|
|
481
|
+
*/
|
|
482
|
+
interface IVirtualListCollection<E = Object> extends Array<IVirtualListItem<E>> {
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
/**
|
|
486
|
+
* Display object configuration.
|
|
487
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/models/display-object-config.model.ts
|
|
488
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
489
|
+
* @email djonnyx@gmail.com
|
|
490
|
+
*/
|
|
491
|
+
interface IDisplayObjectConfig extends IRenderVirtualListItemConfig {
|
|
492
|
+
/**
|
|
493
|
+
* Determines whether the element has focused or not.
|
|
494
|
+
*/
|
|
495
|
+
focused: boolean;
|
|
496
|
+
/**
|
|
497
|
+
* Determines whether the element is selected or not.
|
|
498
|
+
*/
|
|
499
|
+
selected: boolean;
|
|
500
|
+
/**
|
|
501
|
+
* Determines whether the element is collapsed or not.
|
|
502
|
+
*/
|
|
503
|
+
collapsed: boolean;
|
|
504
|
+
/**
|
|
505
|
+
* True if scroll capture occurs.
|
|
506
|
+
*/
|
|
507
|
+
grabbing: boolean;
|
|
508
|
+
}
|
|
509
|
+
|
|
510
|
+
/**
|
|
511
|
+
* Display object metrics.
|
|
512
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/models/display-object-measures.model.ts
|
|
513
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
514
|
+
* @email djonnyx@gmail.com
|
|
515
|
+
*/
|
|
516
|
+
interface IDisplayObjectMeasures extends IRect {
|
|
517
|
+
/**
|
|
518
|
+
* Item position
|
|
519
|
+
*/
|
|
520
|
+
position: number;
|
|
521
|
+
/**
|
|
522
|
+
* Scroll size
|
|
523
|
+
*/
|
|
524
|
+
scrollSize: number;
|
|
525
|
+
/**
|
|
526
|
+
* Item size
|
|
527
|
+
*/
|
|
528
|
+
size: number;
|
|
529
|
+
/**
|
|
530
|
+
* Bounds size
|
|
531
|
+
*/
|
|
532
|
+
boundsSize: number;
|
|
533
|
+
/**
|
|
534
|
+
* Start position in viewport
|
|
535
|
+
*/
|
|
536
|
+
absoluteStartPosition: number;
|
|
537
|
+
/**
|
|
538
|
+
* Start position in viewport (percent)
|
|
539
|
+
*/
|
|
540
|
+
absoluteStartPositionPercent: number;
|
|
541
|
+
/**
|
|
542
|
+
* End position in viewport
|
|
543
|
+
*/
|
|
544
|
+
absoluteEndPosition: number;
|
|
545
|
+
/**
|
|
546
|
+
* End position in viewport (percent)
|
|
547
|
+
*/
|
|
548
|
+
absoluteEndPositionPercent: number;
|
|
549
|
+
/**
|
|
550
|
+
* Delta is calculated for Snapping Method.ADVANCED
|
|
551
|
+
*/
|
|
552
|
+
delta: number;
|
|
553
|
+
}
|
|
554
|
+
|
|
555
|
+
/**
|
|
556
|
+
* Measures for IRenderVirtualListItem
|
|
557
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/models/render-item-measures.model.ts
|
|
558
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
559
|
+
* @email djonnyx@gmail.com
|
|
560
|
+
*/
|
|
561
|
+
interface IRenderVirtualListItemMeasures extends IRect {
|
|
562
|
+
/**
|
|
563
|
+
* The X coordinate after transformation.
|
|
564
|
+
*/
|
|
565
|
+
transformedX: number;
|
|
566
|
+
/**
|
|
567
|
+
* The Y coordinate after transformation.
|
|
568
|
+
*/
|
|
569
|
+
transformedY: number;
|
|
570
|
+
/**
|
|
571
|
+
* The Z coordinate.
|
|
572
|
+
*/
|
|
573
|
+
z: number;
|
|
574
|
+
/**
|
|
575
|
+
* Rotation X
|
|
576
|
+
*/
|
|
577
|
+
rotationX: number;
|
|
578
|
+
/**
|
|
579
|
+
* Rotation Y
|
|
580
|
+
*/
|
|
581
|
+
rotationY: number;
|
|
582
|
+
/**
|
|
583
|
+
* Rotation Z
|
|
584
|
+
*/
|
|
585
|
+
rotationZ: number;
|
|
586
|
+
/**
|
|
587
|
+
* Scale X
|
|
588
|
+
*/
|
|
589
|
+
scaleX: number;
|
|
590
|
+
/**
|
|
591
|
+
* Scale Y
|
|
592
|
+
*/
|
|
593
|
+
scaleY: number;
|
|
594
|
+
/**
|
|
595
|
+
* Scale Z
|
|
596
|
+
*/
|
|
597
|
+
scaleZ: number;
|
|
598
|
+
/**
|
|
599
|
+
* Minimal width.
|
|
600
|
+
*/
|
|
601
|
+
minWidth: number;
|
|
602
|
+
/**
|
|
603
|
+
* Minimal height.
|
|
604
|
+
*/
|
|
605
|
+
minHeight: number;
|
|
606
|
+
/**
|
|
607
|
+
* Maximum width.
|
|
608
|
+
*/
|
|
609
|
+
maxWidth: number;
|
|
610
|
+
/**
|
|
611
|
+
* Maximum height.
|
|
612
|
+
*/
|
|
613
|
+
maxHeight: number;
|
|
614
|
+
/**
|
|
615
|
+
* Item position
|
|
616
|
+
*/
|
|
617
|
+
position: number;
|
|
618
|
+
/**
|
|
619
|
+
* Scroll size
|
|
620
|
+
*/
|
|
621
|
+
scrollSize: number;
|
|
622
|
+
/**
|
|
623
|
+
* Maximum scroll size
|
|
624
|
+
*/
|
|
625
|
+
maCnScrollSize: number;
|
|
626
|
+
/**
|
|
627
|
+
* Item size
|
|
628
|
+
*/
|
|
629
|
+
size: number;
|
|
630
|
+
/**
|
|
631
|
+
* Row
|
|
632
|
+
*/
|
|
633
|
+
row: {
|
|
634
|
+
size: number;
|
|
635
|
+
/**
|
|
636
|
+
* Indicates that the element is odd.
|
|
637
|
+
*/
|
|
638
|
+
odd: boolean;
|
|
639
|
+
/**
|
|
640
|
+
* Indicates that the element is even.
|
|
641
|
+
*/
|
|
642
|
+
even: boolean;
|
|
643
|
+
};
|
|
644
|
+
/**
|
|
645
|
+
* Bounds size
|
|
646
|
+
*/
|
|
647
|
+
boundsSize: number;
|
|
648
|
+
/**
|
|
649
|
+
* Start position in viewport
|
|
650
|
+
*/
|
|
651
|
+
absoluteStartPosition: number;
|
|
652
|
+
/**
|
|
653
|
+
* Start position in viewport (percent)
|
|
654
|
+
*/
|
|
655
|
+
absoluteStartPositionPercent: number;
|
|
656
|
+
/**
|
|
657
|
+
* End position in viewport
|
|
658
|
+
*/
|
|
659
|
+
absoluteEndPosition: number;
|
|
660
|
+
/**
|
|
661
|
+
* End position in viewport (percent)
|
|
662
|
+
*/
|
|
663
|
+
absoluteEndPositionPercent: number;
|
|
664
|
+
/**
|
|
665
|
+
* Scroll direction.
|
|
666
|
+
*/
|
|
667
|
+
scrollDirection: ScrollDirection$1;
|
|
668
|
+
/**
|
|
669
|
+
* Delta is calculated for Snapping Method.ADVANCED
|
|
670
|
+
*/
|
|
671
|
+
delta: number;
|
|
672
|
+
}
|
|
673
|
+
|
|
674
|
+
/**
|
|
675
|
+
* ItemTransform
|
|
676
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/types/item-transform.ts
|
|
677
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
678
|
+
* @email djonnyx@gmail.com
|
|
679
|
+
*/
|
|
680
|
+
type ItemTransform = (index: number, measures: IRenderVirtualListItemMeasures, config: IRenderVirtualListItemConfig) => IItemTransformation;
|
|
681
|
+
|
|
682
|
+
/**
|
|
683
|
+
* Action modes for collection elements.
|
|
684
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/enums/collection-modes.ts
|
|
685
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
686
|
+
* @email djonnyx@gmail.com
|
|
687
|
+
*/
|
|
688
|
+
declare enum CollectionModes {
|
|
689
|
+
/**
|
|
690
|
+
* When adding elements to the beginning of the collection, the scroll remains at the current position.
|
|
691
|
+
*/
|
|
692
|
+
NORMAL = "normal",
|
|
693
|
+
/**
|
|
694
|
+
* When adding elements to the beginning of the collection, the scroll is shifted by the sum of the sizes of the new elements.
|
|
695
|
+
*/
|
|
696
|
+
LAZY = "lazy"
|
|
697
|
+
}
|
|
698
|
+
|
|
699
|
+
/**
|
|
700
|
+
* Axis of the arrangement of virtual list elements.
|
|
701
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/enums/directions.ts
|
|
702
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
703
|
+
* @email djonnyx@gmail.com
|
|
704
|
+
*/
|
|
705
|
+
declare enum Directions$1 {
|
|
706
|
+
/**
|
|
707
|
+
* Horizontal axis.
|
|
708
|
+
*/
|
|
709
|
+
HORIZONTAL = "horizontal",
|
|
710
|
+
/**
|
|
711
|
+
* Vertical axis.
|
|
712
|
+
*/
|
|
713
|
+
VERTICAL = "vertical"
|
|
714
|
+
}
|
|
715
|
+
|
|
716
|
+
/**
|
|
717
|
+
* Focus Alignments.
|
|
718
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/enums/focus-alignments.ts
|
|
719
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
720
|
+
* @email djonnyx@gmail.com
|
|
721
|
+
*/
|
|
722
|
+
declare enum FocusAlignments {
|
|
723
|
+
NONE = "none",
|
|
724
|
+
START = "start",
|
|
725
|
+
CENTER = "center",
|
|
726
|
+
END = "end"
|
|
727
|
+
}
|
|
728
|
+
|
|
729
|
+
/**
|
|
730
|
+
* Modes for collapsing list items.
|
|
731
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/enums/collapsing-modes.ts
|
|
732
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
733
|
+
* @email djonnyx@gmail.com
|
|
734
|
+
*/
|
|
735
|
+
declare enum CollapsingModes {
|
|
736
|
+
/**
|
|
737
|
+
* List items are not selectable.
|
|
738
|
+
*/
|
|
739
|
+
NONE = "none",
|
|
740
|
+
/**
|
|
741
|
+
* List items are collapsed one by one.
|
|
742
|
+
*/
|
|
743
|
+
MULTI_COLLAPSE = "multi-collapse",
|
|
744
|
+
/**
|
|
745
|
+
* Accordion collapsible list items.
|
|
746
|
+
*/
|
|
747
|
+
ACCORDION = "accordion"
|
|
748
|
+
}
|
|
749
|
+
|
|
750
|
+
/**
|
|
751
|
+
* Mods for selecting list items.
|
|
752
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/enums/selecting-modes.ts
|
|
753
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
754
|
+
* @email djonnyx@gmail.com
|
|
755
|
+
*/
|
|
756
|
+
declare enum SelectingModes {
|
|
757
|
+
/**
|
|
758
|
+
* List items are not selectable.
|
|
759
|
+
*/
|
|
760
|
+
NONE = "none",
|
|
761
|
+
/**
|
|
762
|
+
* List items are selected one by one.
|
|
763
|
+
*/
|
|
764
|
+
SELECT = "select",
|
|
765
|
+
/**
|
|
766
|
+
* Multiple selection of list items.
|
|
767
|
+
*/
|
|
768
|
+
MULTI_SELECT = "multi-select"
|
|
769
|
+
}
|
|
770
|
+
|
|
771
|
+
/**
|
|
772
|
+
* SnapToAtemAligns.
|
|
773
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/enums/snap-to-item-aligns.ts
|
|
774
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
775
|
+
* @email djonnyx@gmail.com
|
|
776
|
+
*/
|
|
777
|
+
declare enum SnapToItemAligns {
|
|
778
|
+
/**
|
|
779
|
+
* An anchor indicates the beginning of an element.
|
|
780
|
+
*/
|
|
781
|
+
START = "start",
|
|
782
|
+
/**
|
|
783
|
+
* The anchor points to the middle of the element.
|
|
784
|
+
*/
|
|
785
|
+
CENTER = "center",
|
|
786
|
+
/**
|
|
787
|
+
* An anchor indicates the end of an element.
|
|
788
|
+
*/
|
|
789
|
+
END = "end"
|
|
790
|
+
}
|
|
791
|
+
|
|
792
|
+
/**
|
|
793
|
+
* Snapping method.
|
|
794
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/enums/snapping-method.ts
|
|
795
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
796
|
+
* @email djonnyx@gmail.com
|
|
797
|
+
*/
|
|
798
|
+
declare enum SnappingMethods {
|
|
799
|
+
/**
|
|
800
|
+
* The group is rendered on a background.
|
|
801
|
+
*/
|
|
802
|
+
STANDART = "standart",
|
|
803
|
+
/**
|
|
804
|
+
* A mask is applied to the viewport area so that the background is displayed underneath the attached group.
|
|
805
|
+
*/
|
|
806
|
+
ADVANCED = "advanced"
|
|
807
|
+
}
|
|
808
|
+
|
|
809
|
+
/**
|
|
810
|
+
* SpreadingModes.
|
|
811
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/enums/spreading-modes.ts
|
|
812
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
813
|
+
* @email djonnyx@gmail.com
|
|
814
|
+
*/
|
|
815
|
+
declare enum SpreadingModes {
|
|
816
|
+
/**
|
|
817
|
+
* List elements are ordered according to the collection sequence.
|
|
818
|
+
*/
|
|
819
|
+
NORMAL = "normal",
|
|
820
|
+
/**
|
|
821
|
+
* List elements are ordered cyclically, forming an infinite list.
|
|
822
|
+
*/
|
|
823
|
+
INFINITY = "infinity"
|
|
824
|
+
}
|
|
825
|
+
|
|
826
|
+
/**
|
|
827
|
+
* Focus Alignment
|
|
828
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/types/focus-alignment.ts
|
|
829
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
830
|
+
* @email djonnyx@gmail.com
|
|
831
|
+
*/
|
|
832
|
+
type FocusAlignment = FocusAlignments | 'none' | 'start' | 'center' | 'end';
|
|
833
|
+
|
|
834
|
+
/**
|
|
835
|
+
* SnappingDistance
|
|
836
|
+
* Snapping activation distance. Can be specified as a percentage of the element size or in absolute values.
|
|
837
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/types/snapping-distance.ts
|
|
838
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
839
|
+
* @email djonnyx@gmail.com
|
|
840
|
+
*/
|
|
841
|
+
type SnappingDistance = `${number}%` | number;
|
|
842
|
+
|
|
843
|
+
/**
|
|
844
|
+
* Action modes for collection elements.
|
|
845
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/enums/collection-mode.ts
|
|
846
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
847
|
+
* @email djonnyx@gmail.com
|
|
848
|
+
*/
|
|
849
|
+
type CollectionMode = CollectionModes | 'normal' | 'lazy';
|
|
850
|
+
|
|
851
|
+
/**
|
|
852
|
+
* Axis of the arrangement of virtual list elements.
|
|
853
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/enums/direction.ts
|
|
854
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
855
|
+
* @email djonnyx@gmail.com
|
|
856
|
+
*/
|
|
857
|
+
type Direction$1 = Directions$1 | 'horizontal' | 'vertical';
|
|
858
|
+
|
|
859
|
+
/**
|
|
860
|
+
* Modes for collapsing list items.
|
|
861
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/enums/collapsing-mode.ts
|
|
862
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
863
|
+
* @email djonnyx@gmail.com
|
|
864
|
+
*/
|
|
865
|
+
type CollapsingMode = CollapsingModes | 'none' | 'multi-collapse' | 'accordion';
|
|
866
|
+
|
|
867
|
+
/**
|
|
868
|
+
* Modes for selecting list items.
|
|
869
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/enums/selecting-mode.ts
|
|
870
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
871
|
+
* @email djonnyx@gmail.com
|
|
872
|
+
*/
|
|
873
|
+
type SelectingMode = SelectingModes | 'none' | 'select' | 'multi-select';
|
|
874
|
+
|
|
875
|
+
/**
|
|
876
|
+
* SnapToItemAlign.
|
|
877
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/enums/snap-to-item-align.ts
|
|
878
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
879
|
+
* @email djonnyx@gmail.com
|
|
880
|
+
*/
|
|
881
|
+
type SnapToItemAlign = SnapToItemAligns | 'start' | 'center' | 'end';
|
|
882
|
+
|
|
883
|
+
/**
|
|
884
|
+
* Snapping method.
|
|
885
|
+
* 'standart' - Classic group visualization.
|
|
886
|
+
* 'advanced' - A mask is applied to the viewport area so that the background is displayed underneath the attached group.
|
|
887
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/enums/snapping-method.ts
|
|
888
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
889
|
+
* @email djonnyx@gmail.com
|
|
890
|
+
*/
|
|
891
|
+
type SnappingMethod = SnappingMethods | 'standart' | 'advanced';
|
|
892
|
+
|
|
893
|
+
/**
|
|
894
|
+
* SpreadingMode
|
|
895
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/enums/spreading-mode.ts
|
|
896
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
897
|
+
* @email djonnyx@gmail.com
|
|
898
|
+
*/
|
|
899
|
+
type SpreadingMode = SpreadingModes | 'normal' | 'infinity';
|
|
900
|
+
|
|
901
|
+
/**
|
|
902
|
+
* Object with configuration parameters for IRenderVirtualListItem
|
|
903
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/models/render-item-config.model.ts
|
|
904
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
905
|
+
* @email djonnyx@gmail.com
|
|
906
|
+
*/
|
|
907
|
+
interface IRenderVirtualListItemConfig {
|
|
908
|
+
/**
|
|
909
|
+
* Determines whether an element is new in the collection.
|
|
910
|
+
*/
|
|
911
|
+
new: boolean;
|
|
912
|
+
/**
|
|
913
|
+
* Indicates that the element is odd.
|
|
914
|
+
*/
|
|
915
|
+
odd: boolean;
|
|
916
|
+
/**
|
|
917
|
+
* Indicates that the element is even.
|
|
918
|
+
*/
|
|
919
|
+
even: boolean;
|
|
920
|
+
/**
|
|
921
|
+
* Determines whether an element with a `sticky` property greater than zero can collapse and collapse elements in front that do not have a `sticky` property.
|
|
922
|
+
* Default value is `false`.
|
|
923
|
+
*/
|
|
924
|
+
collapsable: boolean;
|
|
925
|
+
/**
|
|
926
|
+
* If greater than 0, the element will have a sticky position with the given zIndex.
|
|
927
|
+
*/
|
|
928
|
+
sticky: 0 | 1 | 2;
|
|
929
|
+
/**
|
|
930
|
+
* Determines whether an element can be selected or not. Default value is `true`.
|
|
931
|
+
*/
|
|
932
|
+
selectable: boolean;
|
|
933
|
+
/**
|
|
934
|
+
* Specifies whether the element will snap.
|
|
935
|
+
*/
|
|
936
|
+
snap: boolean;
|
|
937
|
+
/**
|
|
938
|
+
* Indicates that the element is snapped.
|
|
939
|
+
*/
|
|
940
|
+
snapped: boolean;
|
|
941
|
+
/**
|
|
942
|
+
* Indicates that the element is being shifted by another snap element.
|
|
943
|
+
*/
|
|
944
|
+
snappedOut: boolean;
|
|
945
|
+
/**
|
|
946
|
+
* Indicates that the element is a vertical list item.
|
|
947
|
+
*/
|
|
948
|
+
isVertical: boolean;
|
|
949
|
+
/**
|
|
950
|
+
* Specifies that the element adapts to the size of its content.
|
|
951
|
+
*/
|
|
952
|
+
dynamic: boolean;
|
|
953
|
+
/**
|
|
954
|
+
* Returns true if the snapping method is advanced
|
|
955
|
+
*/
|
|
956
|
+
isSnappingMethodAdvanced: boolean;
|
|
957
|
+
/**
|
|
958
|
+
* layout offset;
|
|
959
|
+
*/
|
|
960
|
+
layoutOffset: number;
|
|
961
|
+
/**
|
|
962
|
+
* layout index offset;
|
|
963
|
+
*/
|
|
964
|
+
layoutIndexOffset: number;
|
|
965
|
+
/**
|
|
966
|
+
* Tab index.
|
|
967
|
+
*/
|
|
968
|
+
tabIndex: number;
|
|
969
|
+
/**
|
|
970
|
+
* z-index
|
|
971
|
+
*/
|
|
972
|
+
zIndex: string;
|
|
973
|
+
/**
|
|
974
|
+
* Opacity.
|
|
975
|
+
*/
|
|
976
|
+
opacity: number;
|
|
977
|
+
/**
|
|
978
|
+
* Filter.
|
|
979
|
+
*/
|
|
980
|
+
filter?: string;
|
|
981
|
+
/**
|
|
982
|
+
* Blend color.
|
|
983
|
+
*/
|
|
984
|
+
blendColor?: Color | null;
|
|
985
|
+
/**
|
|
986
|
+
* Determines whether an element is a stub.
|
|
987
|
+
*/
|
|
988
|
+
isStub?: boolean;
|
|
989
|
+
/**
|
|
990
|
+
* Division number.
|
|
991
|
+
*/
|
|
992
|
+
divides: number;
|
|
993
|
+
/**
|
|
994
|
+
* Snap to an item. The default value is `false`.
|
|
995
|
+
*/
|
|
996
|
+
snapToItem: boolean;
|
|
997
|
+
/**
|
|
998
|
+
* Alignment for snapToItem. Available values are `start`, `center`, and `end`. The default value is `center`.
|
|
999
|
+
*/
|
|
1000
|
+
snapToItemAlign: SnapToItemAlign;
|
|
1001
|
+
/**
|
|
1002
|
+
* Indicates whether the element is the first in the collection.
|
|
1003
|
+
*/
|
|
1004
|
+
isFirst: boolean;
|
|
1005
|
+
/**
|
|
1006
|
+
* Indicates whether the element is the last one in the collection.
|
|
1007
|
+
*/
|
|
1008
|
+
isLast: boolean;
|
|
1009
|
+
/**
|
|
1010
|
+
* Determines the size of an element when rendering lists with cell divisions. If sticky is 1 or 2, fullSize automatically becomes true.
|
|
1011
|
+
*/
|
|
1012
|
+
fullSize: boolean;
|
|
1013
|
+
/**
|
|
1014
|
+
* Number of elements in the collection to be visualized.
|
|
1015
|
+
*/
|
|
1016
|
+
totalItems: number;
|
|
1017
|
+
/**
|
|
1018
|
+
* Indicates layout inversion.
|
|
1019
|
+
*/
|
|
1020
|
+
inverted: boolean;
|
|
1021
|
+
}
|
|
1022
|
+
|
|
1023
|
+
/**
|
|
1024
|
+
* List screen element model
|
|
1025
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/models/render-item.model.ts
|
|
1026
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
1027
|
+
* @email djonnyx@gmail.com
|
|
1028
|
+
*/
|
|
1029
|
+
interface IRenderVirtualListItem<E = any> {
|
|
1030
|
+
/**
|
|
1031
|
+
* Element index.
|
|
1032
|
+
*/
|
|
1033
|
+
index: number;
|
|
1034
|
+
/**
|
|
1035
|
+
* Unique identifier of the element.
|
|
1036
|
+
*/
|
|
1037
|
+
id: Id;
|
|
1038
|
+
/**
|
|
1039
|
+
* Element metrics.
|
|
1040
|
+
*/
|
|
1041
|
+
measures: IRenderVirtualListItemMeasures;
|
|
1042
|
+
/**
|
|
1043
|
+
* Element data.
|
|
1044
|
+
*/
|
|
1045
|
+
data: IVirtualListItem<E>;
|
|
1046
|
+
/**
|
|
1047
|
+
* Previous element data.
|
|
1048
|
+
*/
|
|
1049
|
+
previouseData: IVirtualListItem<E>;
|
|
1050
|
+
/**
|
|
1051
|
+
* Next element data.
|
|
1052
|
+
*/
|
|
1053
|
+
nextData: IVirtualListItem<E>;
|
|
1054
|
+
/**
|
|
1055
|
+
* Object with configuration parameters for IRenderVirtualListItem.
|
|
1056
|
+
*/
|
|
1057
|
+
config: IRenderVirtualListItemConfig;
|
|
1058
|
+
}
|
|
1059
|
+
|
|
1060
|
+
/**
|
|
1061
|
+
* FocusItemParams
|
|
1062
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/types/focus-item-params.ts
|
|
1063
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
1064
|
+
* @email djonnyx@gmail.com
|
|
1065
|
+
*/
|
|
1066
|
+
type FocusItemParams = {
|
|
1067
|
+
element: HTMLElement;
|
|
1068
|
+
position: number;
|
|
1069
|
+
align?: FocusAlignment;
|
|
1070
|
+
behavior?: ScrollBehavior;
|
|
1071
|
+
};
|
|
1072
|
+
|
|
1073
|
+
/**
|
|
1074
|
+
* CnVirtualListPublicService
|
|
1075
|
+
* Maximum performance for extremely large lists.
|
|
1076
|
+
* It is based on algorithms for virtualization of screen objects.
|
|
1077
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/cn-virtual-list-publick.service.ts
|
|
1078
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
1079
|
+
* @email djonnyx@gmail.com
|
|
1080
|
+
*/
|
|
1081
|
+
declare class CnVirtualListPublicService {
|
|
1082
|
+
private _internalService;
|
|
1083
|
+
/**
|
|
1084
|
+
* Unique list identifier.
|
|
1085
|
+
*/
|
|
1086
|
+
get id(): number;
|
|
1087
|
+
/**
|
|
1088
|
+
* Informs about a click on a list item.
|
|
1089
|
+
*/
|
|
1090
|
+
get $virtualClick(): Observable<IRenderVirtualListItem<any> | null>;
|
|
1091
|
+
/**
|
|
1092
|
+
* Informs about the selection of a list item(s).
|
|
1093
|
+
*/
|
|
1094
|
+
get $selectedIds(): Observable<Array<Id> | Id | null>;
|
|
1095
|
+
/**
|
|
1096
|
+
* Informs about the collapse (expanding) of a list element(s).
|
|
1097
|
+
*/
|
|
1098
|
+
get $collapsedIds(): Observable<Array<Id>>;
|
|
1099
|
+
/**
|
|
1100
|
+
* Informs the focus on the specified list item.
|
|
1101
|
+
*/
|
|
1102
|
+
get $focusItem(): Observable<FocusItemParams>;
|
|
1103
|
+
/**
|
|
1104
|
+
* Notifies about the next change detection tick. Works similarly to `setTimeout` with a timeout of 0.
|
|
1105
|
+
*/
|
|
1106
|
+
get $tick(): Observable<void>;
|
|
1107
|
+
/**
|
|
1108
|
+
* Specifies a list of selected items.
|
|
1109
|
+
*/
|
|
1110
|
+
set selectedIds(ids: Array<Id> | Id | null);
|
|
1111
|
+
/**
|
|
1112
|
+
* Returns a list of selected items.
|
|
1113
|
+
*/
|
|
1114
|
+
get selectedIds(): Array<Id> | Id | null;
|
|
1115
|
+
/**
|
|
1116
|
+
* Specifies a list of collapsed elements.
|
|
1117
|
+
*/
|
|
1118
|
+
set collapsedIds(ids: Array<Id>);
|
|
1119
|
+
/**
|
|
1120
|
+
* Returns a list of collapsed elements.
|
|
1121
|
+
*/
|
|
1122
|
+
get collapsedIds(): Array<Id>;
|
|
1123
|
+
/**
|
|
1124
|
+
* Updates the list
|
|
1125
|
+
* @param immediately - Indicates that the list is updated instantly.
|
|
1126
|
+
*/
|
|
1127
|
+
update(immediately?: boolean): void;
|
|
1128
|
+
/**
|
|
1129
|
+
* Selects a list item
|
|
1130
|
+
* @param id
|
|
1131
|
+
* @param selected - If the value is undefined, then the toggle method is executed, if false or true, then the selection/deselection is performed.
|
|
1132
|
+
*/
|
|
1133
|
+
select(id: Id, selected?: boolean | undefined): void;
|
|
1134
|
+
/**
|
|
1135
|
+
* Collapse list items
|
|
1136
|
+
* @param id
|
|
1137
|
+
* @param collapsed - If the value is undefined, then the toggle method is executed, if false or true, then the collapse/expand is performed.
|
|
1138
|
+
*/
|
|
1139
|
+
collapse(id: Id, collapsed?: boolean | undefined): void;
|
|
1140
|
+
/**
|
|
1141
|
+
* Focus an list item by a given id.
|
|
1142
|
+
*/
|
|
1143
|
+
focus(id: Id, align?: FocusAlignment, scrollBehavior?: ScrollBehavior): void;
|
|
1144
|
+
/**
|
|
1145
|
+
* The method scrolls the list to the element with the given `id` and returns the value of the scrolled area.
|
|
1146
|
+
*/
|
|
1147
|
+
scrollTo(id: Id, cb?: (() => void) | null, options?: IScrollOptions$1 | null): void;
|
|
1148
|
+
/**
|
|
1149
|
+
* Scrolls the scroll area to the first item in the collection.
|
|
1150
|
+
*/
|
|
1151
|
+
scrollToStart(options?: IScrollOptions$1): void;
|
|
1152
|
+
/**
|
|
1153
|
+
* Scrolls the list to the end of the content size.
|
|
1154
|
+
*/
|
|
1155
|
+
scrollToEnd(options?: IScrollOptions$1): void;
|
|
1156
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CnVirtualListPublicService, never>;
|
|
1157
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<CnVirtualListPublicService>;
|
|
1158
|
+
}
|
|
1159
|
+
|
|
1160
|
+
/**
|
|
1161
|
+
* BaseVirtualListItemComponent
|
|
1162
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/components/list-item/interfaces/template-context.ts
|
|
1163
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
1164
|
+
* @email djonnyx@gmail.com
|
|
1165
|
+
*/
|
|
1166
|
+
interface ITemplateContext<D = any> {
|
|
1167
|
+
/**
|
|
1168
|
+
* API provider.
|
|
1169
|
+
*/
|
|
1170
|
+
api: CnVirtualListPublicService;
|
|
1171
|
+
/**
|
|
1172
|
+
* List item data.
|
|
1173
|
+
*/
|
|
1174
|
+
data: D;
|
|
1175
|
+
/**
|
|
1176
|
+
* Data of the previous list item.
|
|
1177
|
+
*/
|
|
1178
|
+
prevData: D;
|
|
1179
|
+
/**
|
|
1180
|
+
* Data of the next list item.
|
|
1181
|
+
*/
|
|
1182
|
+
nextData: D;
|
|
1183
|
+
/**
|
|
1184
|
+
* List item measurement data.
|
|
1185
|
+
*/
|
|
1186
|
+
measures: IDisplayObjectMeasures | null;
|
|
1187
|
+
/**
|
|
1188
|
+
* List item configuration.
|
|
1189
|
+
*/
|
|
1190
|
+
config: IDisplayObjectConfig;
|
|
1191
|
+
/**
|
|
1192
|
+
* Indicates a reset state.
|
|
1193
|
+
*/
|
|
1194
|
+
reseted: boolean;
|
|
1195
|
+
/**
|
|
1196
|
+
* List item index.
|
|
1197
|
+
*/
|
|
1198
|
+
index: number;
|
|
1199
|
+
}
|
|
1200
|
+
|
|
1201
|
+
/**
|
|
1202
|
+
* Virtual list screen elements collection interface
|
|
1203
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/models/render-collection.model.ts
|
|
1204
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
1205
|
+
* @email djonnyx@gmail.com
|
|
1206
|
+
*/
|
|
1207
|
+
interface IRenderVirtualListCollection extends Array<IRenderVirtualListItem> {
|
|
1208
|
+
}
|
|
1209
|
+
|
|
1210
|
+
declare class CMap<K = string, V = any> {
|
|
1211
|
+
protected _dict: {
|
|
1212
|
+
[k: string | number]: V;
|
|
1213
|
+
};
|
|
1214
|
+
constructor(dict?: CMap<K, V>);
|
|
1215
|
+
from(dict?: CMap<K, V>): void;
|
|
1216
|
+
get(key: K): V;
|
|
1217
|
+
set(key: K, value: V): this;
|
|
1218
|
+
has(key: K): boolean;
|
|
1219
|
+
delete(key: K): void;
|
|
1220
|
+
clear(): void;
|
|
1221
|
+
toObject(): {
|
|
1222
|
+
[k: string]: V;
|
|
1223
|
+
[k: number]: V;
|
|
1224
|
+
};
|
|
1225
|
+
}
|
|
1226
|
+
|
|
1227
|
+
/**
|
|
1228
|
+
* Easing
|
|
1229
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/common/utils/animator/types/easing.ts
|
|
1230
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
1231
|
+
* @email djonnyx@gmail.com
|
|
1232
|
+
*/
|
|
1233
|
+
type Easing = (v: number) => number;
|
|
1234
|
+
|
|
1235
|
+
/**
|
|
1236
|
+
* IAnimatorUpdateData
|
|
1237
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/common/utils/animator/interfaces/animator-update-data.ts
|
|
1238
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
1239
|
+
* @email djonnyx@gmail.com
|
|
1240
|
+
*/
|
|
1241
|
+
interface IAnimatorUpdateData {
|
|
1242
|
+
id: number;
|
|
1243
|
+
timestamp: number;
|
|
1244
|
+
elapsed: number;
|
|
1245
|
+
delta: number;
|
|
1246
|
+
value: number;
|
|
1247
|
+
}
|
|
1248
|
+
|
|
1249
|
+
/**
|
|
1250
|
+
* IAnimatorParams
|
|
1251
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/common/utils/animator/interfaces/animator-params.ts
|
|
1252
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
1253
|
+
* @email djonnyx@gmail.com
|
|
1254
|
+
*/
|
|
1255
|
+
interface IAnimatorParams {
|
|
1256
|
+
startValue: number;
|
|
1257
|
+
endValue: number;
|
|
1258
|
+
duration?: number;
|
|
1259
|
+
withDelta?: boolean;
|
|
1260
|
+
getPropValue?: () => number;
|
|
1261
|
+
easingFunction?: Easing;
|
|
1262
|
+
onUpdate?: (data: IAnimatorUpdateData) => void;
|
|
1263
|
+
onComplete?: (data: IAnimatorUpdateData) => void;
|
|
1264
|
+
}
|
|
1265
|
+
|
|
1266
|
+
/**
|
|
1267
|
+
* Animator
|
|
1268
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/common/utils/animator/animator.ts
|
|
1269
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
1270
|
+
* @email djonnyx@gmail.com
|
|
1271
|
+
*/
|
|
1272
|
+
declare class Animator {
|
|
1273
|
+
private static _nextId;
|
|
1274
|
+
private _animationId;
|
|
1275
|
+
get animated(): boolean;
|
|
1276
|
+
get isAnimated(): boolean;
|
|
1277
|
+
private _currentId;
|
|
1278
|
+
get id(): number;
|
|
1279
|
+
private generateId;
|
|
1280
|
+
private _diff;
|
|
1281
|
+
private _startValue;
|
|
1282
|
+
private _endValue;
|
|
1283
|
+
private _prevPos;
|
|
1284
|
+
updateTo(end: number): boolean;
|
|
1285
|
+
animate(params: IAnimatorParams): number;
|
|
1286
|
+
hasAnimation(id?: number): boolean;
|
|
1287
|
+
stop(id?: number): void;
|
|
1288
|
+
dispose(): void;
|
|
1289
|
+
}
|
|
1290
|
+
|
|
1291
|
+
type TEventHandler = (...args: Array<any>) => void;
|
|
1292
|
+
/**
|
|
1293
|
+
* Event emitter
|
|
1294
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/common/utils/event-emitter/event-emitter.ts
|
|
1295
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
1296
|
+
* @email djonnyx@gmail.com
|
|
1297
|
+
*/
|
|
1298
|
+
declare class EventEmitter<E = string, H = TEventHandler> {
|
|
1299
|
+
protected _listeners: {
|
|
1300
|
+
[eventName: string]: Array<TEventHandler>;
|
|
1301
|
+
};
|
|
1302
|
+
protected _disposed: boolean;
|
|
1303
|
+
constructor();
|
|
1304
|
+
/**
|
|
1305
|
+
* Emits the event
|
|
1306
|
+
*/
|
|
1307
|
+
dispatch(event: E, ...args: Array<any>): void;
|
|
1308
|
+
/**
|
|
1309
|
+
* Emits the event async
|
|
1310
|
+
*/
|
|
1311
|
+
dispatchAsync(event: E, ...args: Array<any>): void;
|
|
1312
|
+
/**
|
|
1313
|
+
* Returns true if the event listener is already subscribed.
|
|
1314
|
+
*/
|
|
1315
|
+
hasEventListener(eventName: E, handler: H): boolean;
|
|
1316
|
+
/**
|
|
1317
|
+
* Add event listener
|
|
1318
|
+
*/
|
|
1319
|
+
addEventListener(eventName: E, handler: H): void;
|
|
1320
|
+
/**
|
|
1321
|
+
* Remove event listener
|
|
1322
|
+
*/
|
|
1323
|
+
removeEventListener(eventName: E, handler: H): void;
|
|
1324
|
+
/**
|
|
1325
|
+
* Remove all listeners
|
|
1326
|
+
*/
|
|
1327
|
+
removeAllListeners(): void;
|
|
1328
|
+
/**
|
|
1329
|
+
* Method of destroying handlers
|
|
1330
|
+
*/
|
|
1331
|
+
dispose(): void;
|
|
1332
|
+
}
|
|
1333
|
+
|
|
1334
|
+
interface ICacheMap<I = any, B = any> {
|
|
1335
|
+
set: (id: I, bounds: B) => CMap<I, B>;
|
|
1336
|
+
has: (id: I) => boolean;
|
|
1337
|
+
get: (id: I) => B | undefined;
|
|
1338
|
+
delete: (id: I) => void;
|
|
1339
|
+
clear: () => void;
|
|
1340
|
+
}
|
|
1341
|
+
declare const CACHE_BOX_CHANGE_EVENT_NAME = "change";
|
|
1342
|
+
type CacheMapEvents$1 = typeof CACHE_BOX_CHANGE_EVENT_NAME;
|
|
1343
|
+
type OnChangeEventListener$1 = (version: number) => void;
|
|
1344
|
+
type CacheMapListeners$1 = OnChangeEventListener$1;
|
|
1345
|
+
/**
|
|
1346
|
+
* Cache map.
|
|
1347
|
+
* Emits a change event on each mutation.
|
|
1348
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/core/cache-map.ts
|
|
1349
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
1350
|
+
* @email djonnyx@gmail.com
|
|
1351
|
+
*/
|
|
1352
|
+
declare class CacheMap<I = string | number, B = any, E = CacheMapEvents$1, L = CacheMapListeners$1> extends EventEmitter<E, L> implements ICacheMap {
|
|
1353
|
+
protected _map: CMap<I, B>;
|
|
1354
|
+
protected _snapshot: CMap<I, B>;
|
|
1355
|
+
protected _version: number;
|
|
1356
|
+
protected _previousVersion: number;
|
|
1357
|
+
protected _lifeCircleId: any;
|
|
1358
|
+
protected _delta: number;
|
|
1359
|
+
get delta(): number;
|
|
1360
|
+
get version(): number;
|
|
1361
|
+
constructor();
|
|
1362
|
+
protected changesDetected(): boolean;
|
|
1363
|
+
protected stopLifeCircle(): void;
|
|
1364
|
+
protected nextTick(cb: () => void): any;
|
|
1365
|
+
protected lifeCircle(): void;
|
|
1366
|
+
protected lifeCircleDo(): void;
|
|
1367
|
+
protected bumpVersion(): void;
|
|
1368
|
+
protected fireChangeIfNeed(): void;
|
|
1369
|
+
set(id: I, bounds: B): CMap<I, B>;
|
|
1370
|
+
has(id: I): boolean;
|
|
1371
|
+
get(id: I): B | undefined;
|
|
1372
|
+
delete(id: I): void;
|
|
1373
|
+
clear(): void;
|
|
1374
|
+
snapshot(): void;
|
|
1375
|
+
dispose(): void;
|
|
1376
|
+
}
|
|
1377
|
+
|
|
1378
|
+
type TrackingPropertyId = string | number;
|
|
1379
|
+
/**
|
|
1380
|
+
* Tracks display items by property
|
|
1381
|
+
* Maximum performance for extremely large lists.
|
|
1382
|
+
* It is based on algorithms for virtualization of screen objects.
|
|
1383
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/core/tracker.ts
|
|
1384
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
1385
|
+
* @email djonnyx@gmail.com
|
|
1386
|
+
*/
|
|
1387
|
+
declare class Tracker<C extends BaseVirtualListItemComponent = any> {
|
|
1388
|
+
/**
|
|
1389
|
+
* display objects dictionary of indexes by id
|
|
1390
|
+
*/
|
|
1391
|
+
protected _displayObjectIndexMapById: {
|
|
1392
|
+
[id: number]: number;
|
|
1393
|
+
};
|
|
1394
|
+
set displayObjectIndexMapById(v: {
|
|
1395
|
+
[id: number]: number;
|
|
1396
|
+
});
|
|
1397
|
+
get displayObjectIndexMapById(): {
|
|
1398
|
+
[id: number]: number;
|
|
1399
|
+
};
|
|
1400
|
+
/**
|
|
1401
|
+
* Dictionary displayItems propertyNameId by items propertyNameId
|
|
1402
|
+
*/
|
|
1403
|
+
protected _trackMap: CMap<TrackingPropertyId, number>;
|
|
1404
|
+
get trackMap(): CMap<TrackingPropertyId, number>;
|
|
1405
|
+
protected _trackingPropertyName: string;
|
|
1406
|
+
set trackingPropertyName(v: string);
|
|
1407
|
+
constructor(trackingPropertyName: string);
|
|
1408
|
+
private tearOutSnapedDisplayObjectByItemId;
|
|
1409
|
+
/**
|
|
1410
|
+
* tracking by propName
|
|
1411
|
+
*/
|
|
1412
|
+
track(items: IRenderVirtualListCollection, components: Array<ComponentRef<C>>, snappedComponents: Array<ComponentRef<C>> | null | undefined, direction: ScrollDirection$1, trackBy: string): void;
|
|
1413
|
+
untrackComponentByIdProperty(component?: C): void;
|
|
1414
|
+
clearTrackMap(): void;
|
|
1415
|
+
dispose(): void;
|
|
1416
|
+
}
|
|
1417
|
+
|
|
1418
|
+
/**
|
|
1419
|
+
* PrerenderCache
|
|
1420
|
+
* Maximum performance for extremely large lists.
|
|
1421
|
+
* It is based on algorithms for virtualization of screen objects.
|
|
1422
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/prerender-container/types/cache.ts
|
|
1423
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
1424
|
+
* @email djonnyx@gmail.com
|
|
1425
|
+
*/
|
|
1426
|
+
type PrerenderCache = {
|
|
1427
|
+
[id: Id]: ISize;
|
|
1428
|
+
};
|
|
1429
|
+
|
|
1430
|
+
declare const WIDTH_PROP_NAME = "width";
|
|
1431
|
+
declare const HEIGHT_PROP_NAME = "height";
|
|
1432
|
+
|
|
1433
|
+
/**
|
|
1434
|
+
* IItem
|
|
1435
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/core/interfaces/item.ts
|
|
1436
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
1437
|
+
* @email djonnyx@gmail.com
|
|
1438
|
+
*/
|
|
1439
|
+
interface IItem<I = any> {
|
|
1440
|
+
[prop: string]: I;
|
|
1441
|
+
}
|
|
1442
|
+
|
|
1443
|
+
/**
|
|
1444
|
+
* IMetrics
|
|
1445
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/core/interfaces/metrics.ts
|
|
1446
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
1447
|
+
* @email djonnyx@gmail.com
|
|
1448
|
+
*/
|
|
1449
|
+
interface IMetrics<I extends IItem> {
|
|
1450
|
+
delta: number;
|
|
1451
|
+
inverted: boolean;
|
|
1452
|
+
normalizedItemWidth: number;
|
|
1453
|
+
normalizedItemHeight: number;
|
|
1454
|
+
width: number;
|
|
1455
|
+
height: number;
|
|
1456
|
+
dynamicSize: boolean;
|
|
1457
|
+
divides: number;
|
|
1458
|
+
itemSize: number;
|
|
1459
|
+
minItemSize: number;
|
|
1460
|
+
maxItemSize: number;
|
|
1461
|
+
items: Array<I>;
|
|
1462
|
+
itemsFromStartToScrollEnd: number;
|
|
1463
|
+
itemsFromStartToDisplayEnd: number;
|
|
1464
|
+
itemsOnDisplayWeight: number;
|
|
1465
|
+
itemsOnDisplayLength: number;
|
|
1466
|
+
isVertical: boolean;
|
|
1467
|
+
leftHiddenItemsWeight: number;
|
|
1468
|
+
leftItemLength: number;
|
|
1469
|
+
leftItemsWeight: number;
|
|
1470
|
+
leftLayoutOffset: number;
|
|
1471
|
+
leftLayoutIndexOffset: number;
|
|
1472
|
+
renderItems: number;
|
|
1473
|
+
rightItemLength: number;
|
|
1474
|
+
rightItemsWeight: number;
|
|
1475
|
+
scrollSize: number;
|
|
1476
|
+
maCnScrollSize: number;
|
|
1477
|
+
leftSizeOfAddedItems: number;
|
|
1478
|
+
sizeProperty: typeof HEIGHT_PROP_NAME | typeof WIDTH_PROP_NAME;
|
|
1479
|
+
stickyEnabled: boolean;
|
|
1480
|
+
stickyPos: number;
|
|
1481
|
+
startIndex: number;
|
|
1482
|
+
startPosition: number;
|
|
1483
|
+
totalItemsToDisplayEndWeight: number;
|
|
1484
|
+
totalLength: number;
|
|
1485
|
+
totalSize: number;
|
|
1486
|
+
typicalItemSize: number;
|
|
1487
|
+
isFromItemIdFound: boolean;
|
|
1488
|
+
isUpdating: boolean;
|
|
1489
|
+
snapToItem: boolean;
|
|
1490
|
+
snapToItemAlign: SnapToItemAlign;
|
|
1491
|
+
itemTransform: ItemTransform | null;
|
|
1492
|
+
}
|
|
1493
|
+
|
|
1494
|
+
/**
|
|
1495
|
+
* IRecalculateMetricsOptions
|
|
1496
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/core/interfaces/recalculate-metrics-options.ts
|
|
1497
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
1498
|
+
* @email djonnyx@gmail.com
|
|
1499
|
+
*/
|
|
1500
|
+
interface IRecalculateMetricsOptions<I extends IItem, C extends Array<I>> {
|
|
1501
|
+
alignment: Alignment;
|
|
1502
|
+
bounds: ISize;
|
|
1503
|
+
collection: C;
|
|
1504
|
+
isVertical: boolean;
|
|
1505
|
+
itemSize: number;
|
|
1506
|
+
minItemSize: number;
|
|
1507
|
+
maxItemSize: number;
|
|
1508
|
+
bufferSize: number;
|
|
1509
|
+
maxBufferSize: number;
|
|
1510
|
+
dynamicSize: boolean;
|
|
1511
|
+
scrollSize: number;
|
|
1512
|
+
stickyEnabled: boolean;
|
|
1513
|
+
enabledBufferOptimization: boolean;
|
|
1514
|
+
fromItemId?: Id;
|
|
1515
|
+
previousTotalSize: number;
|
|
1516
|
+
crudDetected: boolean;
|
|
1517
|
+
deletedItemsMap: {
|
|
1518
|
+
[index: number]: ISize;
|
|
1519
|
+
};
|
|
1520
|
+
snapToItem: boolean;
|
|
1521
|
+
snapToItemAlign: SnapToItemAlign;
|
|
1522
|
+
inverted: boolean;
|
|
1523
|
+
itemTransform: ItemTransform | null;
|
|
1524
|
+
}
|
|
1525
|
+
|
|
1526
|
+
/**
|
|
1527
|
+
* IGetItemPositionOptions
|
|
1528
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/core/interfaces/get-item-position-options.ts
|
|
1529
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
1530
|
+
* @email djonnyx@gmail.com
|
|
1531
|
+
*/
|
|
1532
|
+
interface IGetItemPositionOptions<I extends IItem, C extends Array<I>> extends Omit<IRecalculateMetricsOptions<I, C>, 'previousTotalSize' | 'crudDetected' | 'deletedItemsMap'> {
|
|
1533
|
+
}
|
|
1534
|
+
|
|
1535
|
+
/**
|
|
1536
|
+
* IUpdateCollectionOptions
|
|
1537
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/core/interfaces/update-collection-options.ts
|
|
1538
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
1539
|
+
* @email djonnyx@gmail.com
|
|
1540
|
+
*/
|
|
1541
|
+
interface IUpdateCollectionOptions<I extends IItem, C extends Array<I>> extends Omit<IRecalculateMetricsOptions<I, C>, 'collection' | 'previousTotalSize' | 'crudDetected' | 'deletedItemsMap'> {
|
|
1542
|
+
}
|
|
1543
|
+
|
|
1544
|
+
/**
|
|
1545
|
+
* IGetMetricsReturns
|
|
1546
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/core/interfaces/get-metrics-returns.ts
|
|
1547
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
1548
|
+
* @email djonnyx@gmail.com
|
|
1549
|
+
*/
|
|
1550
|
+
interface IGetMetricsReturns {
|
|
1551
|
+
totalSize: number;
|
|
1552
|
+
delta: number;
|
|
1553
|
+
crudDetected: boolean;
|
|
1554
|
+
}
|
|
1555
|
+
|
|
1556
|
+
/**
|
|
1557
|
+
* IUpdateCollectionReturns
|
|
1558
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/core/interfaces/update-collection-returns.ts
|
|
1559
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
1560
|
+
* @email djonnyx@gmail.com
|
|
1561
|
+
*/
|
|
1562
|
+
interface IUpdateCollectionReturns {
|
|
1563
|
+
displayItems: IRenderVirtualListCollection;
|
|
1564
|
+
totalSize: number;
|
|
1565
|
+
leftLayoutOffset: number;
|
|
1566
|
+
delta: number;
|
|
1567
|
+
crudDetected: boolean;
|
|
1568
|
+
}
|
|
1569
|
+
|
|
1570
|
+
/**
|
|
1571
|
+
* ItemDisplayMethods
|
|
1572
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/core/enums/item-display-methods.ts
|
|
1573
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
1574
|
+
* @email djonnyx@gmail.com
|
|
1575
|
+
*/
|
|
1576
|
+
declare enum ItemDisplayMethods {
|
|
1577
|
+
CREATE = 0,
|
|
1578
|
+
UPDATE = 1,
|
|
1579
|
+
DELETE = 2,
|
|
1580
|
+
NOT_CHANGED = 3
|
|
1581
|
+
}
|
|
1582
|
+
|
|
1583
|
+
/**
|
|
1584
|
+
* Cache
|
|
1585
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/core/types/cache.ts
|
|
1586
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
1587
|
+
* @email djonnyx@gmail.com
|
|
1588
|
+
*/
|
|
1589
|
+
type Cache = ISize & {
|
|
1590
|
+
method?: ItemDisplayMethods;
|
|
1591
|
+
} & IItem;
|
|
1592
|
+
|
|
1593
|
+
/**
|
|
1594
|
+
* TrackBoxEvents
|
|
1595
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/core/events/track-box-events.ts
|
|
1596
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
1597
|
+
* @email djonnyx@gmail.com
|
|
1598
|
+
*/
|
|
1599
|
+
declare enum TrackBoxEvents {
|
|
1600
|
+
CHANGE = "change",
|
|
1601
|
+
TICK = "tick"
|
|
1602
|
+
}
|
|
1603
|
+
|
|
1604
|
+
/**
|
|
1605
|
+
* CacheMapEvents
|
|
1606
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/core/types/cache-map-events.ts
|
|
1607
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
1608
|
+
* @email djonnyx@gmail.com
|
|
1609
|
+
*/
|
|
1610
|
+
type CacheMapEvents = TrackBoxEvents;
|
|
1611
|
+
|
|
1612
|
+
/**
|
|
1613
|
+
* OnChangeEventListener
|
|
1614
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/core/types/on-change-event-listener.ts
|
|
1615
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
1616
|
+
* @email djonnyx@gmail.com
|
|
1617
|
+
*/
|
|
1618
|
+
type OnChangeEventListener = (version: number) => void;
|
|
1619
|
+
|
|
1620
|
+
/**
|
|
1621
|
+
* OnTickEventListener
|
|
1622
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/core/types/on-tick-event-listener.ts
|
|
1623
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
1624
|
+
* @email djonnyx@gmail.com
|
|
1625
|
+
*/
|
|
1626
|
+
type OnTickEventListener = () => void;
|
|
1627
|
+
|
|
1628
|
+
/**
|
|
1629
|
+
* CacheMapListeners
|
|
1630
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/core/types/cache-map-listeners.ts
|
|
1631
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
1632
|
+
* @email djonnyx@gmail.com
|
|
1633
|
+
*/
|
|
1634
|
+
type CacheMapListeners = OnChangeEventListener | OnTickEventListener;
|
|
1635
|
+
|
|
1636
|
+
/**
|
|
1637
|
+
* An object that performs tracking, calculations and caching.
|
|
1638
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/core/track-box.ts
|
|
1639
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
1640
|
+
* @email djonnyx@gmail.com
|
|
1641
|
+
*/
|
|
1642
|
+
declare class TrackBox<C extends BaseVirtualListItemComponent = any> extends CacheMap<Id, Cache, CacheMapEvents, CacheMapListeners> {
|
|
1643
|
+
protected _tracker: Tracker<C>;
|
|
1644
|
+
protected _items: IRenderVirtualListCollection | null | undefined;
|
|
1645
|
+
set items(v: IRenderVirtualListCollection | null | undefined);
|
|
1646
|
+
protected _displayComponents: Array<ComponentRef<C>> | null | undefined;
|
|
1647
|
+
set displayComponents(v: Array<ComponentRef<C>> | null | undefined);
|
|
1648
|
+
protected _snappedDisplayComponents: Array<ComponentRef<C>> | null | undefined;
|
|
1649
|
+
set snappedDisplayComponents(v: Array<ComponentRef<C>> | null | undefined);
|
|
1650
|
+
protected _scrollDirection: ScrollDirection$1;
|
|
1651
|
+
set scrollDirection(v: ScrollDirection$1);
|
|
1652
|
+
get scrollDirection(): ScrollDirection$1;
|
|
1653
|
+
protected _trackBy: string;
|
|
1654
|
+
set trackBy(v: string);
|
|
1655
|
+
get trackBy(): string;
|
|
1656
|
+
protected _divides: number;
|
|
1657
|
+
set divides(v: number);
|
|
1658
|
+
protected _isInfinity: boolean;
|
|
1659
|
+
set isInfinity(v: boolean);
|
|
1660
|
+
protected _isSnappingMethodAdvanced: boolean;
|
|
1661
|
+
set isSnappingMethodAdvanced(v: boolean);
|
|
1662
|
+
protected _isLazy: boolean;
|
|
1663
|
+
set isLazy(v: boolean);
|
|
1664
|
+
/**
|
|
1665
|
+
* Set the trackBy property
|
|
1666
|
+
*/
|
|
1667
|
+
set trackingPropertyName(v: string);
|
|
1668
|
+
protected _trackingPropertyName: string;
|
|
1669
|
+
protected _isScrollStart: boolean;
|
|
1670
|
+
set isScrollStart(v: boolean);
|
|
1671
|
+
protected _isScrollEnd: boolean;
|
|
1672
|
+
set isScrollEnd(v: boolean);
|
|
1673
|
+
protected _isScrollSnapToStart: boolean;
|
|
1674
|
+
get isSnappedToStart(): boolean;
|
|
1675
|
+
protected _isScrollSnapToEnd: boolean;
|
|
1676
|
+
get isSnappedToEnd(): boolean;
|
|
1677
|
+
protected _scrollStartOffset: number;
|
|
1678
|
+
set scrollStartOffset(v: number);
|
|
1679
|
+
get scrollStartOffset(): number;
|
|
1680
|
+
protected _scrollEndOffset: number;
|
|
1681
|
+
set scrollEndOffset(v: number);
|
|
1682
|
+
get scrollEndOffset(): number;
|
|
1683
|
+
constructor(trackingPropertyName: string);
|
|
1684
|
+
protected initialize(): void;
|
|
1685
|
+
set(id: Id, cache: Cache): CMap<Id, ISize>;
|
|
1686
|
+
protected _previousCollection: Array<IItem> | null | undefined;
|
|
1687
|
+
protected _deletedItemsMap: {
|
|
1688
|
+
[index: number]: ISize;
|
|
1689
|
+
};
|
|
1690
|
+
protected _crudDetected: boolean;
|
|
1691
|
+
get crudDetected(): boolean;
|
|
1692
|
+
protected fireChangeIfNeed(): void;
|
|
1693
|
+
protected fireTick(): void;
|
|
1694
|
+
protected _previousTotalSize: number;
|
|
1695
|
+
protected _deltaOfNewItems: number;
|
|
1696
|
+
get deltaOfNewItems(): number;
|
|
1697
|
+
isAdaptiveBuffer: boolean;
|
|
1698
|
+
protected _bufferSequenceExtraThreshold: number;
|
|
1699
|
+
protected _maxBufferSequenceLength: number;
|
|
1700
|
+
protected _bufferSizeSequence: Array<number>;
|
|
1701
|
+
protected _bufferSize: number;
|
|
1702
|
+
get bufferSize(): number;
|
|
1703
|
+
protected _defaultBufferSize: number;
|
|
1704
|
+
protected _maxBufferSize: number;
|
|
1705
|
+
protected _resetBufferSizeTimeout: number;
|
|
1706
|
+
protected _resetBufferSizeTimer: number | undefined;
|
|
1707
|
+
protected _isReseted: boolean;
|
|
1708
|
+
private _prerenderedCache;
|
|
1709
|
+
private _newItems;
|
|
1710
|
+
protected lifeCircle(): void;
|
|
1711
|
+
/**
|
|
1712
|
+
* Scans the collection for deleted items and flushes the deleted item cache.
|
|
1713
|
+
*/
|
|
1714
|
+
resetCollection<I extends IItem, C extends Array<I>>(currentCollection: C | null | undefined, itemSize: number): void;
|
|
1715
|
+
/**
|
|
1716
|
+
* Update the cache of items from the list
|
|
1717
|
+
*/
|
|
1718
|
+
protected updateCache<I extends IItem, C extends Array<I>>(previousCollection: C | null | undefined, currentCollection: C | null | undefined, itemSize: number): void;
|
|
1719
|
+
/**
|
|
1720
|
+
* Finds the position of a collection element by the given Id
|
|
1721
|
+
*/
|
|
1722
|
+
getItemPosition<I extends IItem, C extends Array<I>>(id: Id, itemConfigMap: IVirtualListItemConfigMap, options: IGetItemPositionOptions<I, C>): number;
|
|
1723
|
+
preventScrollSnapping(clearBuffer?: boolean): void;
|
|
1724
|
+
/**
|
|
1725
|
+
* Updates the collection of display objects
|
|
1726
|
+
*/
|
|
1727
|
+
getMetrics<I extends IItem, C extends Array<I>>(items: C, itemConfigMap: IVirtualListItemConfigMap, options: IUpdateCollectionOptions<I, C>): IGetMetricsReturns;
|
|
1728
|
+
/**
|
|
1729
|
+
* Updates the collection of display objects
|
|
1730
|
+
*/
|
|
1731
|
+
updateCollection<I extends IItem, C extends Array<I>>(items: C, itemConfigMap: IVirtualListItemConfigMap, options: IUpdateCollectionOptions<I, C>): IUpdateCollectionReturns;
|
|
1732
|
+
protected _previousScrollSize: number;
|
|
1733
|
+
protected updateAdaptiveBufferParams<I extends IItem>(metrics: IMetrics<I>, totalItemsLength: number): void;
|
|
1734
|
+
protected startResetBufferSizeTimer(): void;
|
|
1735
|
+
protected disposeClearBufferSizeTimer(): void;
|
|
1736
|
+
/**
|
|
1737
|
+
* Calculates the entry into the overscroll area and returns the number of overscroll elements
|
|
1738
|
+
*/
|
|
1739
|
+
protected getElementNumToEnd<I extends IItem, C extends Array<I>>(i: number, collection: C, map: CMap<Id, ISize>, typicalItemSize: number, size: number, isVertical: boolean, indexOffset?: number, reverse?: boolean): {
|
|
1740
|
+
num: number;
|
|
1741
|
+
offset: number;
|
|
1742
|
+
};
|
|
1743
|
+
/**
|
|
1744
|
+
* Calculates list metrics
|
|
1745
|
+
*/
|
|
1746
|
+
protected recalculateMetrics<I extends IItem, C extends Array<I>>(options: IRecalculateMetricsOptions<I, C>): IMetrics<I>;
|
|
1747
|
+
refreshCache(cache: PrerenderCache): void;
|
|
1748
|
+
clearDelta(): void;
|
|
1749
|
+
changes(immediately?: boolean, force?: boolean): void;
|
|
1750
|
+
/**
|
|
1751
|
+
* Returns true if the bounds of at least one screen object have changed.
|
|
1752
|
+
*/
|
|
1753
|
+
checkBoundsOfElements(): boolean;
|
|
1754
|
+
protected generateDisplayCollection<I extends IItem, C extends Array<I>>(items: C, actualItems: C, itemConfigMap: IVirtualListItemConfigMap, metrics: IMetrics<I>): IRenderVirtualListCollection;
|
|
1755
|
+
resetPositions(): void;
|
|
1756
|
+
/**
|
|
1757
|
+
* tracking by propName
|
|
1758
|
+
*/
|
|
1759
|
+
track(): void;
|
|
1760
|
+
setDisplayObjectIndexMapById(v: {
|
|
1761
|
+
[id: number]: number;
|
|
1762
|
+
}): void;
|
|
1763
|
+
untrackComponentByIdProperty(component?: C | undefined): void;
|
|
1764
|
+
getItemBounds(id: Id): ISize | null;
|
|
1765
|
+
getComponentBoundsByIntersectionPosition(position: number, maxPosition?: number | null): (IRect & {
|
|
1766
|
+
id: Id | null;
|
|
1767
|
+
isFirst: boolean;
|
|
1768
|
+
isLast: boolean;
|
|
1769
|
+
}) | null;
|
|
1770
|
+
private _debouncedIsScrollStartOff;
|
|
1771
|
+
protected cacheElements(isVertical: boolean, itemSize: number): void;
|
|
1772
|
+
resetCacheChunkInfo(): void;
|
|
1773
|
+
cacheClean(): void;
|
|
1774
|
+
dispose(): void;
|
|
1775
|
+
}
|
|
1776
|
+
|
|
1777
|
+
/**
|
|
1778
|
+
* Mods for selecting list items.
|
|
1779
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/enums/selecting-modes-types.ts
|
|
1780
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
1781
|
+
* @email djonnyx@gmail.com
|
|
1782
|
+
*/
|
|
1783
|
+
declare enum SelectingModesTypes {
|
|
1784
|
+
/**
|
|
1785
|
+
* List items are not selectable.
|
|
1786
|
+
*/
|
|
1787
|
+
NONE = 0,
|
|
1788
|
+
/**
|
|
1789
|
+
* List items are selected one by one.
|
|
1790
|
+
*/
|
|
1791
|
+
SELECT = 1,
|
|
1792
|
+
/**
|
|
1793
|
+
* Multiple selection of list items.
|
|
1794
|
+
*/
|
|
1795
|
+
MULTI_SELECT = 2
|
|
1796
|
+
}
|
|
1797
|
+
|
|
1798
|
+
interface IScrollToParams$2 {
|
|
1799
|
+
id: Id;
|
|
1800
|
+
cb: (() => void) | null;
|
|
1801
|
+
options: IScrollOptions$1 | null;
|
|
1802
|
+
}
|
|
1803
|
+
|
|
1804
|
+
/**
|
|
1805
|
+
* CnVirtualListService
|
|
1806
|
+
* Maximum performance for extremely large lists.
|
|
1807
|
+
* It is based on algorithms for virtualization of screen objects.
|
|
1808
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/cn-virtual-list.service.ts
|
|
1809
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
1810
|
+
* @email djonnyx@gmail.com
|
|
1811
|
+
*/
|
|
1812
|
+
declare class CnVirtualListService {
|
|
1813
|
+
private _id;
|
|
1814
|
+
get id(): number;
|
|
1815
|
+
private _nextComponentId;
|
|
1816
|
+
private _$virtualClick;
|
|
1817
|
+
$virtualClick: rxjs.Observable<IRenderVirtualListItem<any> | null>;
|
|
1818
|
+
private _$selectedIds;
|
|
1819
|
+
$selectedIds: rxjs.Observable<Id | Id[] | null>;
|
|
1820
|
+
private _$collapsedIds;
|
|
1821
|
+
$collapsedIds: rxjs.Observable<Id[]>;
|
|
1822
|
+
private _$selectingMode;
|
|
1823
|
+
$selectingMode: rxjs.Observable<SelectingModesTypes>;
|
|
1824
|
+
set selectingMode(v: SelectingModesTypes);
|
|
1825
|
+
private _$focusedId;
|
|
1826
|
+
$focusedId: rxjs.Observable<Id | null>;
|
|
1827
|
+
set focusedId(v: Id | null);
|
|
1828
|
+
get focusedId(): Id | null;
|
|
1829
|
+
private _$focusItem;
|
|
1830
|
+
readonly $focusItem: rxjs.Observable<FocusItemParams>;
|
|
1831
|
+
private _$scrollTo;
|
|
1832
|
+
readonly $scrollTo: rxjs.Observable<IScrollToParams$2 | undefined>;
|
|
1833
|
+
private _$scrollToStart;
|
|
1834
|
+
readonly $scrollToStart: rxjs.Observable<IScrollOptions$1 | undefined>;
|
|
1835
|
+
private _$scrollToEnd;
|
|
1836
|
+
readonly $scrollToEnd: rxjs.Observable<IScrollOptions$1 | undefined>;
|
|
1837
|
+
private _$tick;
|
|
1838
|
+
readonly $tick: rxjs.Observable<void>;
|
|
1839
|
+
private _$cacheVersion;
|
|
1840
|
+
readonly $cacheVersion: rxjs.Observable<number>;
|
|
1841
|
+
trackBy: string;
|
|
1842
|
+
lastFocusedItemId: number;
|
|
1843
|
+
scrollStartOffset: number;
|
|
1844
|
+
scrollEndOffset: number;
|
|
1845
|
+
zIndexWhenSelecting: string | null;
|
|
1846
|
+
selectByClick: boolean;
|
|
1847
|
+
collapseByClick: boolean;
|
|
1848
|
+
defaultItemValue: IVirtualListItem | null;
|
|
1849
|
+
snapToItem: boolean;
|
|
1850
|
+
isInfinity: boolean;
|
|
1851
|
+
isVertical: boolean;
|
|
1852
|
+
dynamic: boolean;
|
|
1853
|
+
itemSize: number;
|
|
1854
|
+
snapScrollToStart: boolean;
|
|
1855
|
+
snapScrollToEnd: boolean;
|
|
1856
|
+
animationParams: IAnimationParams$1;
|
|
1857
|
+
isNoneCollapse: boolean;
|
|
1858
|
+
isMultipleCollapse: boolean;
|
|
1859
|
+
isAccordionCollapse: boolean;
|
|
1860
|
+
private _trackBox;
|
|
1861
|
+
listElement: HTMLDivElement | null;
|
|
1862
|
+
items: IVirtualListCollection;
|
|
1863
|
+
itemConfigMap: IVirtualListItemConfigMap;
|
|
1864
|
+
private _$displayItems;
|
|
1865
|
+
readonly $displayItems: rxjs.Observable<IRenderVirtualListCollection>;
|
|
1866
|
+
get displayItems(): IRenderVirtualListCollection;
|
|
1867
|
+
private _collection;
|
|
1868
|
+
set collection(v: IRenderVirtualListCollection);
|
|
1869
|
+
get collection(): IRenderVirtualListCollection;
|
|
1870
|
+
private _$langTextDir;
|
|
1871
|
+
readonly $langTextDir: rxjs.Observable<TextDirection>;
|
|
1872
|
+
get langTextDir(): TextDirection;
|
|
1873
|
+
private _langTextDir;
|
|
1874
|
+
set langTextDir(v: TextDirection);
|
|
1875
|
+
private _$grabbing;
|
|
1876
|
+
readonly $grabbing: rxjs.Observable<boolean>;
|
|
1877
|
+
get grabbing(): boolean;
|
|
1878
|
+
private _grabbing;
|
|
1879
|
+
set grabbing(v: boolean);
|
|
1880
|
+
private _$clickPressed;
|
|
1881
|
+
readonly $clickPressed: rxjs.Observable<boolean>;
|
|
1882
|
+
get clickPressed(): boolean;
|
|
1883
|
+
private _clickPressed;
|
|
1884
|
+
set clickPressed(v: boolean);
|
|
1885
|
+
private _$isGrabbing;
|
|
1886
|
+
readonly $isGrabbing: rxjs.Observable<boolean>;
|
|
1887
|
+
get isGrabbing(): boolean;
|
|
1888
|
+
get scrollBarSize(): number;
|
|
1889
|
+
private _scrollBarSize;
|
|
1890
|
+
set scrollBarSize(v: number);
|
|
1891
|
+
private _$scrollBarSize;
|
|
1892
|
+
readonly $scrollBarSize: rxjs.Observable<number>;
|
|
1893
|
+
private _$intersectionElementBySnapToItemAlign;
|
|
1894
|
+
readonly $intersectionElementBySnapToItemAlign: rxjs.Observable<Id | null>;
|
|
1895
|
+
private _$clickDistance;
|
|
1896
|
+
readonly $clickDistance: rxjs.Observable<number>;
|
|
1897
|
+
get clickDistance(): number;
|
|
1898
|
+
private _clickDistance;
|
|
1899
|
+
set clickDistance(v: number);
|
|
1900
|
+
private _onTickHandler;
|
|
1901
|
+
private _onTrackBoxChangeHandler;
|
|
1902
|
+
set selectedIds(ids: Array<Id> | Id | null);
|
|
1903
|
+
get selectedIds(): Array<Id> | Id | null;
|
|
1904
|
+
set collapsedIds(ids: Array<Id>);
|
|
1905
|
+
get collapsedIds(): Array<Id>;
|
|
1906
|
+
constructor();
|
|
1907
|
+
virtualClick(data: IRenderVirtualListItem | null): void;
|
|
1908
|
+
update(immediately?: boolean): void;
|
|
1909
|
+
private getItemConfig;
|
|
1910
|
+
/**
|
|
1911
|
+
* Selects a list item
|
|
1912
|
+
* @param id
|
|
1913
|
+
* @param selected - If the value is undefined, then the toggle method is executed, if false or true, then the selection/deselection is performed.
|
|
1914
|
+
*/
|
|
1915
|
+
select(id: Id, selected?: boolean): void;
|
|
1916
|
+
/**
|
|
1917
|
+
* Collapse list items
|
|
1918
|
+
* @param data
|
|
1919
|
+
* @param collapsed - If the value is undefined, then the toggle method is executed, if false or true, then the collapse/expand is performed.
|
|
1920
|
+
*/
|
|
1921
|
+
collapse(id: Id, collapsed?: boolean): void;
|
|
1922
|
+
getFocusedElementById(id: Id): HTMLDivElement | null;
|
|
1923
|
+
/**
|
|
1924
|
+
* Returns the bounds of an element with a given id
|
|
1925
|
+
*/
|
|
1926
|
+
getItemBounds(id: Id): ISize | null;
|
|
1927
|
+
/**
|
|
1928
|
+
* Focus an list item by a given id.
|
|
1929
|
+
*/
|
|
1930
|
+
focusById(id: Id, align?: FocusAlignment, scrollBehavior?: ScrollBehavior): void;
|
|
1931
|
+
focus(element: HTMLElement, align?: FocusAlignment, behavior?: ScrollBehavior): boolean;
|
|
1932
|
+
focusList(): void;
|
|
1933
|
+
focusFirstElement(): void;
|
|
1934
|
+
initialize(id: number, trackBox: TrackBox): void;
|
|
1935
|
+
generateComponentId(): number;
|
|
1936
|
+
getComponentBoundsByIntersectionPosition(position: number, maxPosition?: number | null): (IRect & {
|
|
1937
|
+
id: Id | null;
|
|
1938
|
+
isFirst: boolean;
|
|
1939
|
+
isLast: boolean;
|
|
1940
|
+
}) | null;
|
|
1941
|
+
setIntersectionElementBySnapToItemAlign(id: Id | null): void;
|
|
1942
|
+
/**
|
|
1943
|
+
* The method scrolls the list to the element with the given `id` and returns the value of the scrolled area.
|
|
1944
|
+
*/
|
|
1945
|
+
scrollTo(id: Id, cb?: (() => void) | null, options?: IScrollOptions$1 | null): void;
|
|
1946
|
+
/**
|
|
1947
|
+
* Scrolls the scroll area to the first item in the collection.
|
|
1948
|
+
*/
|
|
1949
|
+
scrollToStart(options?: IScrollOptions$1): void;
|
|
1950
|
+
/**
|
|
1951
|
+
* Scrolls the list to the end of the content size.
|
|
1952
|
+
*/
|
|
1953
|
+
scrollToEnd(options?: IScrollOptions$1): void;
|
|
1954
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CnVirtualListService, never>;
|
|
1955
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<CnVirtualListService>;
|
|
1956
|
+
}
|
|
1957
|
+
|
|
1958
|
+
/**
|
|
1959
|
+
* IBaseVirtualListItemComponent
|
|
1960
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/interfaces/base-virtual-list-item-component.ts
|
|
1961
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
1962
|
+
* @email djonnyx@gmail.com
|
|
1963
|
+
*/
|
|
1964
|
+
interface IBaseVirtualListItemComponent {
|
|
1965
|
+
get id(): number;
|
|
1966
|
+
regular: boolean;
|
|
1967
|
+
set regularLength(v: string);
|
|
1968
|
+
set item(v: IRenderVirtualListItem | null | undefined);
|
|
1969
|
+
get item(): IRenderVirtualListItem | null | undefined;
|
|
1970
|
+
get itemId(): Id | undefined;
|
|
1971
|
+
set renderer(v: TemplateRef<any> | undefined);
|
|
1972
|
+
get element(): HTMLElement;
|
|
1973
|
+
getBounds(): ISize;
|
|
1974
|
+
show(): void;
|
|
1975
|
+
hide(): void;
|
|
1976
|
+
}
|
|
1977
|
+
|
|
1978
|
+
/**
|
|
1979
|
+
* BaseVirtualListItemComponent
|
|
1980
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/components/list-item/base/base-virtual-list-item-component.ts
|
|
1981
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
1982
|
+
* @email djonnyx@gmail.com
|
|
1983
|
+
*/
|
|
1984
|
+
declare class BaseVirtualListItemComponent implements IBaseVirtualListItemComponent {
|
|
1985
|
+
protected _item: Signal<ElementRef<HTMLDivElement> | undefined>;
|
|
1986
|
+
protected _container: Signal<ElementRef<HTMLDivElement> | undefined>;
|
|
1987
|
+
private _apiService;
|
|
1988
|
+
protected readonly _service: CnVirtualListService;
|
|
1989
|
+
protected _id: number;
|
|
1990
|
+
get id(): number;
|
|
1991
|
+
protected _listId: number;
|
|
1992
|
+
get listId(): number;
|
|
1993
|
+
protected _displayId: string;
|
|
1994
|
+
get displayId(): string;
|
|
1995
|
+
protected _isSelected: boolean;
|
|
1996
|
+
set isSelected(v: boolean);
|
|
1997
|
+
get isSelected(): boolean;
|
|
1998
|
+
protected _isCollapsed: boolean;
|
|
1999
|
+
protected readonly config: _angular_core.WritableSignal<IDisplayObjectConfig>;
|
|
2000
|
+
protected readonly measures: _angular_core.WritableSignal<IDisplayObjectMeasures | null>;
|
|
2001
|
+
protected readonly focused: _angular_core.WritableSignal<boolean>;
|
|
2002
|
+
protected readonly part: _angular_core.WritableSignal<string>;
|
|
2003
|
+
protected readonly fxPart: _angular_core.WritableSignal<string>;
|
|
2004
|
+
protected readonly data: _angular_core.WritableSignal<IRenderVirtualListItem<any> | null>;
|
|
2005
|
+
protected _data: IRenderVirtualListItem | null;
|
|
2006
|
+
set item(v: IRenderVirtualListItem | null);
|
|
2007
|
+
protected readonly classes: Signal<{
|
|
2008
|
+
[cName: string]: boolean;
|
|
2009
|
+
}>;
|
|
2010
|
+
protected readonly index: Signal<number>;
|
|
2011
|
+
protected readonly templateContext: Signal<ITemplateContext>;
|
|
2012
|
+
regular: boolean;
|
|
2013
|
+
protected _blendColor: Color | null;
|
|
2014
|
+
protected _scrollBarSize: number;
|
|
2015
|
+
protected _langTextDir: TextDirection;
|
|
2016
|
+
protected _regularLength: string;
|
|
2017
|
+
set regularLength(v: string);
|
|
2018
|
+
get item(): IRenderVirtualListItem | null;
|
|
2019
|
+
get itemId(): centrifugal.Id | undefined;
|
|
2020
|
+
get zIndex(): string;
|
|
2021
|
+
get visibility(): string;
|
|
2022
|
+
protected readonly itemRenderer: _angular_core.WritableSignal<TemplateRef<any> | undefined>;
|
|
2023
|
+
protected _renderer: TemplateRef<any> | undefined;
|
|
2024
|
+
set renderer(v: TemplateRef<any> | undefined);
|
|
2025
|
+
protected _elementRef: ElementRef<HTMLElement>;
|
|
2026
|
+
get element(): HTMLElement;
|
|
2027
|
+
protected _destroyRef: DestroyRef;
|
|
2028
|
+
constructor();
|
|
2029
|
+
protected updateMeasures(v: IRenderVirtualListItem<any> | null): void;
|
|
2030
|
+
protected updateConfig(v: IRenderVirtualListItem<any> | null, grabbing: boolean): void;
|
|
2031
|
+
protected update(): void;
|
|
2032
|
+
protected updatePartStr(v: IRenderVirtualListItem | null, isSelected: boolean, isCollapsed: boolean): void;
|
|
2033
|
+
protected hasFocus(): boolean;
|
|
2034
|
+
getBounds(): ISize;
|
|
2035
|
+
show(): void;
|
|
2036
|
+
hide(): void;
|
|
2037
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<BaseVirtualListItemComponent, never>;
|
|
2038
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<BaseVirtualListItemComponent, "x-base-virtual-list-item", never, {}, {}, never, never, false, never>;
|
|
2039
|
+
}
|
|
2040
|
+
|
|
2041
|
+
/**
|
|
2042
|
+
* Virtual list component.
|
|
2043
|
+
* Maximum performance for extremely large lists.
|
|
2044
|
+
* It is based on algorithms for virtualization of screen objects.
|
|
2045
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/components/cn-list-item/cn-virtual-list-item.component.ts
|
|
2046
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
2047
|
+
* @email djonnyx@gmail.com
|
|
2048
|
+
*/
|
|
2049
|
+
declare class CnVirtualListItemComponent extends BaseVirtualListItemComponent implements OnInit {
|
|
2050
|
+
protected readonly maxClickDistance: _angular_core.WritableSignal<number>;
|
|
2051
|
+
protected _injector: Injector;
|
|
2052
|
+
constructor();
|
|
2053
|
+
ngOnInit(): void;
|
|
2054
|
+
private keyKode;
|
|
2055
|
+
private getNavigationTimeout;
|
|
2056
|
+
private toNextItem;
|
|
2057
|
+
private toPrevItem;
|
|
2058
|
+
private focusNext;
|
|
2059
|
+
private focusPrev;
|
|
2060
|
+
protected updateConfig(v: IRenderVirtualListItem<any> | null, grabbing: boolean): void;
|
|
2061
|
+
onClickHandler(): void;
|
|
2062
|
+
onClickPressHandler(): void;
|
|
2063
|
+
onClickCancelHandler(): void;
|
|
2064
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CnVirtualListItemComponent, never>;
|
|
2065
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CnVirtualListItemComponent, "cn-virtual-list-item", never, {}, {}, never, never, false, never>;
|
|
2066
|
+
}
|
|
2067
|
+
|
|
2068
|
+
interface Component$1<T> extends Function {
|
|
2069
|
+
new (...args: any[]): T;
|
|
2070
|
+
}
|
|
2071
|
+
|
|
2072
|
+
/**
|
|
2073
|
+
* Virtual list component.
|
|
2074
|
+
* Maximum performance for extremely large lists.
|
|
2075
|
+
* It is based on algorithms for virtualization of screen objects.
|
|
2076
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/cn-virtual-list.component.ts
|
|
2077
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
2078
|
+
* @email djonnyx@gmail.com
|
|
2079
|
+
*/
|
|
2080
|
+
declare class CnVirtualListComponent implements OnDestroy {
|
|
2081
|
+
private static __nextId;
|
|
2082
|
+
private _id;
|
|
2083
|
+
/**
|
|
2084
|
+
* Readonly. Returns the unique identifier of the component.
|
|
2085
|
+
*/
|
|
2086
|
+
get id(): number;
|
|
2087
|
+
private _service;
|
|
2088
|
+
private _prerender;
|
|
2089
|
+
private _listContainerRef;
|
|
2090
|
+
private _snapContainerRef;
|
|
2091
|
+
private _scrollerComponent;
|
|
2092
|
+
private _scroller;
|
|
2093
|
+
private _list;
|
|
2094
|
+
/**
|
|
2095
|
+
* Fires when the list has been scrolled.
|
|
2096
|
+
*/
|
|
2097
|
+
onScroll: _angular_core.OutputEmitterRef<IScrollEvent$1>;
|
|
2098
|
+
/**
|
|
2099
|
+
* Fires when the list has completed scrolling.
|
|
2100
|
+
*/
|
|
2101
|
+
onScrollEnd: _angular_core.OutputEmitterRef<IScrollEvent$1>;
|
|
2102
|
+
/**
|
|
2103
|
+
* Fires when the viewport size is changed.
|
|
2104
|
+
*/
|
|
2105
|
+
onViewportChange: _angular_core.OutputEmitterRef<ISize>;
|
|
2106
|
+
/**
|
|
2107
|
+
* Emit the component ID when an element crosses the alignment line specified by the snapToItemAlign property.
|
|
2108
|
+
*/
|
|
2109
|
+
onSnapItem: _angular_core.OutputEmitterRef<Id>;
|
|
2110
|
+
/**
|
|
2111
|
+
* Fires when an element is clicked.
|
|
2112
|
+
*/
|
|
2113
|
+
onItemClick: _angular_core.OutputEmitterRef<IRenderVirtualListItem<any> | null>;
|
|
2114
|
+
/**
|
|
2115
|
+
* Fires when elements are selected.
|
|
2116
|
+
*/
|
|
2117
|
+
onSelect: _angular_core.OutputEmitterRef<Id | Id[] | null>;
|
|
2118
|
+
/**
|
|
2119
|
+
* Fires when elements are collapsed.
|
|
2120
|
+
*/
|
|
2121
|
+
onCollapse: _angular_core.OutputEmitterRef<Id | Id[] | null>;
|
|
2122
|
+
/**
|
|
2123
|
+
* Fires when the scroll reaches the start.
|
|
2124
|
+
*/
|
|
2125
|
+
onScrollReachStart: _angular_core.OutputEmitterRef<void>;
|
|
2126
|
+
/**
|
|
2127
|
+
* Fires when the scroll reaches the end.
|
|
2128
|
+
*/
|
|
2129
|
+
onScrollReachEnd: _angular_core.OutputEmitterRef<void>;
|
|
2130
|
+
private _$show;
|
|
2131
|
+
readonly $show: rxjs.Observable<boolean>;
|
|
2132
|
+
private _$initialized;
|
|
2133
|
+
readonly $initialized: rxjs.Observable<boolean>;
|
|
2134
|
+
private _scrollbarThickness;
|
|
2135
|
+
/**
|
|
2136
|
+
* Scrollbar thickness.
|
|
2137
|
+
*/
|
|
2138
|
+
scrollbarThickness: _angular_core.InputSignal<number>;
|
|
2139
|
+
private _scrollbarMinSize;
|
|
2140
|
+
/**
|
|
2141
|
+
* Minimum scrollbar size.
|
|
2142
|
+
*/
|
|
2143
|
+
scrollbarMinSize: _angular_core.InputSignal<number>;
|
|
2144
|
+
private _scrollbarThumbRenderer;
|
|
2145
|
+
/**
|
|
2146
|
+
* Scrollbar customization template.
|
|
2147
|
+
*/
|
|
2148
|
+
scrollbarThumbRenderer: _angular_core.InputSignal<TemplateRef<any> | null>;
|
|
2149
|
+
private _scrollbarThumbParams;
|
|
2150
|
+
/**
|
|
2151
|
+
* Additional options for the scrollbar.
|
|
2152
|
+
*/
|
|
2153
|
+
scrollbarThumbParams: _angular_core.InputSignal<{
|
|
2154
|
+
[propName: string]: any;
|
|
2155
|
+
} | null>;
|
|
2156
|
+
private _loading;
|
|
2157
|
+
/**
|
|
2158
|
+
* If `true`, the scrollBar goes into loading state. The default value is `false`.
|
|
2159
|
+
*/
|
|
2160
|
+
loading: _angular_core.InputSignal<boolean>;
|
|
2161
|
+
private _waitForPreparation;
|
|
2162
|
+
/**
|
|
2163
|
+
* If true, it will wait until the list items are fully prepared before displaying them.. The default value is `true`.
|
|
2164
|
+
*/
|
|
2165
|
+
waitForPreparation: _angular_core.InputSignal<boolean>;
|
|
2166
|
+
private _clickDistance;
|
|
2167
|
+
/**
|
|
2168
|
+
* The maximum scroll distance at which a click event is triggered.
|
|
2169
|
+
*/
|
|
2170
|
+
clickDistance: _angular_core.InputSignal<number>;
|
|
2171
|
+
private _itemsOptions;
|
|
2172
|
+
/**
|
|
2173
|
+
* Collection of list items.
|
|
2174
|
+
*/
|
|
2175
|
+
items: _angular_core.InputSignal<IVirtualListCollection<Object>>;
|
|
2176
|
+
private _selectedIdsOptions;
|
|
2177
|
+
defaultItemValue: _angular_core.InputSignal<IVirtualListItem | null>;
|
|
2178
|
+
/**
|
|
2179
|
+
* Sets the selected items.
|
|
2180
|
+
*/
|
|
2181
|
+
selectedIds: _angular_core.InputSignal<Id | Id[] | null>;
|
|
2182
|
+
private _collapsedIdsOptions;
|
|
2183
|
+
/**
|
|
2184
|
+
* Sets the collapsed items.
|
|
2185
|
+
*/
|
|
2186
|
+
collapsedIds: _angular_core.InputSignal<Id[]>;
|
|
2187
|
+
private _selectByClickOptions;
|
|
2188
|
+
/**
|
|
2189
|
+
* If `false`, the element is selected using the api.select method passed to the template;
|
|
2190
|
+
* if `true`, the element is selected by clicking on it. The default value is `true`.
|
|
2191
|
+
*/
|
|
2192
|
+
selectByClick: _angular_core.InputSignal<boolean>;
|
|
2193
|
+
private _collapseByClickOptions;
|
|
2194
|
+
/**
|
|
2195
|
+
* If `false`, the element is collapsed using the config.collapse method passed to the template;
|
|
2196
|
+
* if `true`, the element is collapsed by clicking on it. The default value is `true`.
|
|
2197
|
+
*/
|
|
2198
|
+
collapseByClick: _angular_core.InputSignal<boolean>;
|
|
2199
|
+
private _snapOptions;
|
|
2200
|
+
/**
|
|
2201
|
+
* @deprecated
|
|
2202
|
+
* Use the `stickyEnabled` property instead.
|
|
2203
|
+
*/
|
|
2204
|
+
snap: _angular_core.InputSignal<boolean>;
|
|
2205
|
+
private _stickyEnabledOptions;
|
|
2206
|
+
/**
|
|
2207
|
+
* Determines whether items with the given `sticky` in `itemConfigMap` will stick to the edges. Default value is "true".
|
|
2208
|
+
*/
|
|
2209
|
+
stickyEnabled: _angular_core.InputSignal<boolean>;
|
|
2210
|
+
private _snapToEndTransitionInstantOffsetOptions;
|
|
2211
|
+
/**
|
|
2212
|
+
* Sets the offset value; if the scroll area value is exceeded, the scroll animation will be disabled. Default value is "0".
|
|
2213
|
+
*/
|
|
2214
|
+
snapToEndTransitionInstantOffset: _angular_core.InputSignal<number>;
|
|
2215
|
+
private _scrollStartOffsetOptions;
|
|
2216
|
+
/**
|
|
2217
|
+
* Sets the scroll start offset value. Can be specified in absolute or percentage values.
|
|
2218
|
+
* Supports arithmetic expressions of addition `50% + 25` or subtraction `50% - 25`. Default value is "0".
|
|
2219
|
+
*/
|
|
2220
|
+
scrollStartOffset: _angular_core.InputSignal<ArithmeticExpression>;
|
|
2221
|
+
private _scrollEndOffsetOptions;
|
|
2222
|
+
/**
|
|
2223
|
+
* Sets the scroll end offset value. Can be specified in absolute or percentage values.
|
|
2224
|
+
* Supports arithmetic expressions of addition `50% + 25` or subtraction `50% - 25`. Default value is "0".
|
|
2225
|
+
*/
|
|
2226
|
+
scrollEndOffset: _angular_core.InputSignal<ArithmeticExpression>;
|
|
2227
|
+
private _snapScrollToStartOptions;
|
|
2228
|
+
/**
|
|
2229
|
+
* Determines whether the scroll will be anchored to the start of the list. Default value is "true".
|
|
2230
|
+
* This property takes precedence over the snapScrollToEnd property.
|
|
2231
|
+
* That is, if snapScrollToStart and snapScrollToEnd are enabled, the list will initially snap
|
|
2232
|
+
* to the beginning; if you move the scroll bar to the end, the list will snap to the end.
|
|
2233
|
+
* If snapScrollToStart is disabled and snapScrollToEnd is enabled, the list will snap to the end;
|
|
2234
|
+
* if you move the scroll bar to the beginning, the list will snap to the beginning.
|
|
2235
|
+
* If both snapScrollToStart and snapScrollToEnd are disabled, the list will never snap to the beginning or end.
|
|
2236
|
+
* In the `spreadingMode=SpreadingModes.INFINITY` mode, the `snapScrollToStart` property is automatically disabled, since the list has no beginning or end.
|
|
2237
|
+
*/
|
|
2238
|
+
snapScrollToStart: _angular_core.InputSignal<boolean>;
|
|
2239
|
+
private _snapScrollToEndOptions;
|
|
2240
|
+
/**
|
|
2241
|
+
* Determines whether the scroll will be anchored to the утв of the list. Default value is "true".
|
|
2242
|
+
* That is, if snapScrollToStart and snapScrollToEnd are enabled, the list will initially snap
|
|
2243
|
+
* to the beginning; if you move the scroll bar to the end, the list will snap to the end.
|
|
2244
|
+
* If snapScrollToStart is disabled and snapScrollToEnd is enabled, the list will snap to the end;
|
|
2245
|
+
* if you move the scroll bar to the beginning, the list will snap to the beginning.
|
|
2246
|
+
* If both snapScrollToStart and snapScrollToEnd are disabled, the list will never snap to the beginning or end.
|
|
2247
|
+
* In the `spreadingMode=SpreadingModes.INFINITY` mode, the `snapScrollToEnd` property is automatically disabled, since the list has no beginning or end.
|
|
2248
|
+
*/
|
|
2249
|
+
snapScrollToEnd: _angular_core.InputSignal<boolean>;
|
|
2250
|
+
private _snapScrollToBottomOptions;
|
|
2251
|
+
/**
|
|
2252
|
+
* @deprecated
|
|
2253
|
+
* The stopSnappingScrollToEnd property is deprecated. Use the snapScrollToEnd property.
|
|
2254
|
+
*/
|
|
2255
|
+
snapScrollToBottom: _angular_core.InputSignal<boolean>;
|
|
2256
|
+
private _scrollbarEnabledOptions;
|
|
2257
|
+
/**
|
|
2258
|
+
* Determines whether the scrollbar is shown or not. The default value is "true".
|
|
2259
|
+
*/
|
|
2260
|
+
scrollbarEnabled: _angular_core.InputSignal<boolean>;
|
|
2261
|
+
private _scrollbarInteractiveOptions;
|
|
2262
|
+
/**
|
|
2263
|
+
* Determines whether scrolling using the scrollbar will be possible. The default value is "true".
|
|
2264
|
+
*/
|
|
2265
|
+
scrollbarInteractive: _angular_core.InputSignal<boolean>;
|
|
2266
|
+
private _overlappingScrollbarOptions;
|
|
2267
|
+
/**
|
|
2268
|
+
* Determines whether the scroll bar will overlap the list. The default value is "false".
|
|
2269
|
+
*/
|
|
2270
|
+
overlappingScrollbar: _angular_core.InputSignal<boolean>;
|
|
2271
|
+
private _scrollBehaviorOptions;
|
|
2272
|
+
/**
|
|
2273
|
+
* Defines the scrolling behavior for any element on the page. The default value is "smooth".
|
|
2274
|
+
*/
|
|
2275
|
+
scrollBehavior: _angular_core.InputSignal<ScrollBehavior>;
|
|
2276
|
+
private _scrollingSettingsOptions;
|
|
2277
|
+
/**
|
|
2278
|
+
* Scrolling settings.
|
|
2279
|
+
* - frictionalForce - Frictional force. Default value is 0.035.
|
|
2280
|
+
* - mass - Mass. Default value is 0.005.
|
|
2281
|
+
* - maxDistance - Maximum scrolling distance. Default value is 100000.
|
|
2282
|
+
* - maxDuration - Maximum animation duration. Default value is 4000.
|
|
2283
|
+
* - speedScale - Speed scale. Default value is 10.
|
|
2284
|
+
* - optimization - Enables scrolling performance optimization. Default value is `true`.
|
|
2285
|
+
*/
|
|
2286
|
+
scrollingSettings: _angular_core.InputSignal<IScrollingSettings$1>;
|
|
2287
|
+
private _itemTransformOptions;
|
|
2288
|
+
/**
|
|
2289
|
+
* Custom transformation of element's position, rotation, scale, opacity and zIndex. The default value is `null`.
|
|
2290
|
+
*/
|
|
2291
|
+
itemTransform: _angular_core.InputSignal<ItemTransform | null>;
|
|
2292
|
+
private _snapToItemOptions;
|
|
2293
|
+
/**
|
|
2294
|
+
* Snap to an item. The default value is `false`.
|
|
2295
|
+
*/
|
|
2296
|
+
snapToItem: _angular_core.InputSignal<boolean>;
|
|
2297
|
+
private _snapToItemAlignOptions;
|
|
2298
|
+
/**
|
|
2299
|
+
* Alignment for snapToItem. Available values are `start`, `center`, and `end`. The default value is `center`.
|
|
2300
|
+
*/
|
|
2301
|
+
snapToItemAlign: _angular_core.InputSignal<SnapToItemAlign>;
|
|
2302
|
+
private _snappingDistanceOptions;
|
|
2303
|
+
/**
|
|
2304
|
+
* Snapping activation distance. Can be specified as a percentage of the element size or in absolute values.
|
|
2305
|
+
* The default value is `25%`.
|
|
2306
|
+
*/
|
|
2307
|
+
snappingDistance: _angular_core.InputSignal<SnappingDistance>;
|
|
2308
|
+
private _scrollingOneByOneOptions;
|
|
2309
|
+
/**
|
|
2310
|
+
* Specifies whether to scroll one item at a time if true and the scrollToItem property is set. The default value is `false`.
|
|
2311
|
+
*/
|
|
2312
|
+
scrollingOneByOne: _angular_core.InputSignal<boolean>;
|
|
2313
|
+
private _alignmentOptions;
|
|
2314
|
+
/**
|
|
2315
|
+
* Determines the alignment of the list. Two modes are available: `none` and `center`. The `center` mode aligns the list items to the center of the viewport, ideal for use with the `itemTransform` property.
|
|
2316
|
+
* The `none` mode means no alignment. The default value is `none`.
|
|
2317
|
+
*/
|
|
2318
|
+
alignment: _angular_core.InputSignal<Alignment>;
|
|
2319
|
+
private _zIndexWhenSelectingOptions;
|
|
2320
|
+
/**
|
|
2321
|
+
* Defines the zIndex when a list item is selected. The default value is `null`.
|
|
2322
|
+
*/
|
|
2323
|
+
zIndexWhenSelecting: _angular_core.InputSignal<string | null>;
|
|
2324
|
+
private _spreadingModeOptions;
|
|
2325
|
+
/**
|
|
2326
|
+
* The order of list elements. Available values are `standard` and `infinity`.
|
|
2327
|
+
* `normal` — list elements are ordered according to the collection sequence.
|
|
2328
|
+
* `infinity` — list elements are ordered cyclically, forming an infinite list.
|
|
2329
|
+
* When set to `infinity`, the `alignment` property is forced to the value `Alignments.CENTER`, the `scrollbarEnabled` property is forced to the `false`
|
|
2330
|
+
* The default value is `standard`.
|
|
2331
|
+
*/
|
|
2332
|
+
spreadingMode: _angular_core.InputSignal<SpreadingMode>;
|
|
2333
|
+
private _dividesOptions;
|
|
2334
|
+
/**
|
|
2335
|
+
* Column or row numbers. The default value is `1`.
|
|
2336
|
+
*/
|
|
2337
|
+
divides: _angular_core.InputSignal<number>;
|
|
2338
|
+
private _motionBlurOptions;
|
|
2339
|
+
/**
|
|
2340
|
+
* Motion blur effect. The default value is `0.15`.
|
|
2341
|
+
*/
|
|
2342
|
+
motionBlur: _angular_core.InputSignal<number>;
|
|
2343
|
+
private _maxMotionBlurOptions;
|
|
2344
|
+
/**
|
|
2345
|
+
* Maximum motion blur effect. The default value is `0.5`.
|
|
2346
|
+
*/
|
|
2347
|
+
maxMotionBlur: _angular_core.InputSignal<number>;
|
|
2348
|
+
private _motionBlurEnabledOptions;
|
|
2349
|
+
/**
|
|
2350
|
+
* Determines whether to apply motion blur or not. The default value is `false`.
|
|
2351
|
+
*/
|
|
2352
|
+
motionBlurEnabled: _angular_core.InputSignal<boolean>;
|
|
2353
|
+
private _animationParamsOptions;
|
|
2354
|
+
/**
|
|
2355
|
+
* Animation parameters. The default value is "{ scrollToItem: 150, snapToItem: 150, navigateToItem: 150, navigateByKeyboard: 50 }".
|
|
2356
|
+
*/
|
|
2357
|
+
animationParams: _angular_core.InputSignal<IAnimationParams$1>;
|
|
2358
|
+
private _overscrollEnabledOptions;
|
|
2359
|
+
/**
|
|
2360
|
+
* Determines whether the overscroll (re-scroll) feature will work. The default value is "true".
|
|
2361
|
+
*/
|
|
2362
|
+
overscrollEnabled: _angular_core.InputSignal<boolean>;
|
|
2363
|
+
private _enabledBufferOptimizationOptions;
|
|
2364
|
+
/**
|
|
2365
|
+
* Experimental!
|
|
2366
|
+
* Enables buffer optimization.
|
|
2367
|
+
* Can only be used if items in the collection are not added or updated. Otherwise, artifacts in the form of twitching of the scroll area are possible.
|
|
2368
|
+
* Works only if the property dynamic = true
|
|
2369
|
+
*/
|
|
2370
|
+
enabledBufferOptimization: _angular_core.InputSignal<boolean>;
|
|
2371
|
+
private _itemRendererOptions;
|
|
2372
|
+
/**
|
|
2373
|
+
* Rendering element template.
|
|
2374
|
+
*/
|
|
2375
|
+
itemRenderer: _angular_core.InputSignal<TemplateRef<any>>;
|
|
2376
|
+
private _itemRenderer;
|
|
2377
|
+
private _itemConfigMapOptions;
|
|
2378
|
+
/**
|
|
2379
|
+
* Sets `sticky` position, `fullSize`, `collapsable` and `selectable` for the list item element. If `sticky` position is greater than `0`, then `sticky` position is applied.
|
|
2380
|
+
* If the `sticky` value is greater than `0`, then the `sticky` position mode is enabled for the element. `1` - position start, `2` - position end.
|
|
2381
|
+
* Default value is `0`.
|
|
2382
|
+
* `selectable` determines whether an element can be selected or not. Default value is `true`.
|
|
2383
|
+
* `collapsable` determines whether an element with a `sticky` property greater than zero can collapse and
|
|
2384
|
+
* collapse elements in front that do not have a `sticky` property.
|
|
2385
|
+
* `fullSize` determines the size of an element when rendering lists with cell divisions. If sticky is 1 or 2, fullSize automatically becomes true. The default value is false.
|
|
2386
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/models/item-config-map.model.ts
|
|
2387
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
2388
|
+
* @email djonnyx@gmail.com
|
|
2389
|
+
*/
|
|
2390
|
+
itemConfigMap: _angular_core.InputSignal<IVirtualListItemConfigMap>;
|
|
2391
|
+
private _itemSizeOptions;
|
|
2392
|
+
/**
|
|
2393
|
+
* If direction = 'vertical', then the height of a typical element. If direction = 'horizontal', then the width of a typical element.
|
|
2394
|
+
* If the `dynamicSize` property is true, the items in the list can have different sizes, and you must specify the `itemSize` property
|
|
2395
|
+
* to adjust the sizes of the items in the unallocated area.
|
|
2396
|
+
* If the value is 'viewport', the sizes of elements are automatically resized to fit the viewport size.
|
|
2397
|
+
*/
|
|
2398
|
+
itemSize: _angular_core.InputSignal<number | "viewport">;
|
|
2399
|
+
private _minItemSizeOptions;
|
|
2400
|
+
/**
|
|
2401
|
+
* If the `dynamicSize` property is enabled, the minimum size of the element is set.
|
|
2402
|
+
* If the value is 'viewport', the sizes of elements are automatically resized to fit the viewport size.
|
|
2403
|
+
*/
|
|
2404
|
+
minItemSize: _angular_core.InputSignal<number | "viewport">;
|
|
2405
|
+
private _maxItemSizeOptions;
|
|
2406
|
+
/**
|
|
2407
|
+
* If the `dynamicSize` property is enabled, the maximum size of the element is set.
|
|
2408
|
+
* If the value is 'viewport', the sizes of elements are automatically resized to fit the viewport size.
|
|
2409
|
+
*/
|
|
2410
|
+
maxItemSize: _angular_core.InputSignal<number | "viewport">;
|
|
2411
|
+
private _dynamicSizeOptions;
|
|
2412
|
+
/**
|
|
2413
|
+
* If true, items in the list may have different sizes, and the itemSize property must be specified to adjust
|
|
2414
|
+
* the sizes of items in the unallocated area.
|
|
2415
|
+
* If false then the items in the list have a fixed size specified by the itemSize property. The default value is true.
|
|
2416
|
+
*/
|
|
2417
|
+
dynamicSize: _angular_core.InputSignal<boolean>;
|
|
2418
|
+
private _directionOptions;
|
|
2419
|
+
/**
|
|
2420
|
+
* Determines the direction in which elements are placed. Default value is "vertical".
|
|
2421
|
+
*/
|
|
2422
|
+
direction: _angular_core.InputSignal<Direction$1>;
|
|
2423
|
+
private _collectionModeOptions;
|
|
2424
|
+
/**
|
|
2425
|
+
* Determines the action modes for collection elements. Default value is "normal".
|
|
2426
|
+
*/
|
|
2427
|
+
collectionMode: _angular_core.InputSignal<CollectionMode>;
|
|
2428
|
+
private _bufferSizeOptions;
|
|
2429
|
+
/**
|
|
2430
|
+
* Number of elements outside the scope of visibility. Default value is 2.
|
|
2431
|
+
*/
|
|
2432
|
+
bufferSize: _angular_core.InputSignal<number>;
|
|
2433
|
+
private _maxBufferSizeTransform;
|
|
2434
|
+
/**
|
|
2435
|
+
* Maximum number of elements outside the scope of visibility. Default value is 100.
|
|
2436
|
+
* If maxBufferSize is set to be greater than bufferSize, then adaptive buffer mode is enabled.
|
|
2437
|
+
* The greater the scroll size, the more elements are allocated for rendering.
|
|
2438
|
+
*/
|
|
2439
|
+
maxBufferSize: _angular_core.InputSignal<number>;
|
|
2440
|
+
private _snappingMethodOptions;
|
|
2441
|
+
/**
|
|
2442
|
+
* Snapping method. Default value is 'standart'.
|
|
2443
|
+
* 'standart' - Classic group visualization.
|
|
2444
|
+
* 'advanced' - A mask is applied to the viewport area so that the background is displayed underneath the attached group.
|
|
2445
|
+
*/
|
|
2446
|
+
snappingMethod: _angular_core.InputSignal<SnappingMethod>;
|
|
2447
|
+
private _collapsingModeOptions;
|
|
2448
|
+
/**
|
|
2449
|
+
* Mode for collapsing list items.
|
|
2450
|
+
* `none` - List items are not selectable.
|
|
2451
|
+
* `multi-collapse` - List items are collapsed one by one.
|
|
2452
|
+
* 'accordion' - Accordion collapsible list items.
|
|
2453
|
+
* Default value is `multi-collapse
|
|
2454
|
+
*/
|
|
2455
|
+
collapsingMode: _angular_core.InputSignal<CollapsingMode>;
|
|
2456
|
+
private _methodForSelectingOptions;
|
|
2457
|
+
/**
|
|
2458
|
+
* @deprecated
|
|
2459
|
+
* The "methodForSelecting" property is deprecated. Use the "selectMode" property.
|
|
2460
|
+
*/
|
|
2461
|
+
methodForSelecting: _angular_core.InputSignal<SelectingMode>;
|
|
2462
|
+
private _selectingModeOptions;
|
|
2463
|
+
/**
|
|
2464
|
+
* Method for selecting list items. Default value is 'none'.
|
|
2465
|
+
* 'select' - List items are selected one by one.
|
|
2466
|
+
* 'multi-select' - Multiple selection of list items.
|
|
2467
|
+
* 'none' - List items are not selectable.
|
|
2468
|
+
*/
|
|
2469
|
+
selectingMode: _angular_core.InputSignal<SelectingMode>;
|
|
2470
|
+
private _trackByOptions;
|
|
2471
|
+
/**
|
|
2472
|
+
* The name of the property by which tracking is performed
|
|
2473
|
+
*/
|
|
2474
|
+
trackBy: _angular_core.InputSignal<string>;
|
|
2475
|
+
private _screenReaderMessageOptions;
|
|
2476
|
+
/**
|
|
2477
|
+
* Message for screen reader.
|
|
2478
|
+
* The message format is: "some text $1 some text $2",
|
|
2479
|
+
* where $1 is the number of the first element of the screen collection,
|
|
2480
|
+
* $2 is the number of the last element of the screen collection.
|
|
2481
|
+
*/
|
|
2482
|
+
screenReaderMessage: _angular_core.InputSignal<string>;
|
|
2483
|
+
protected readonly screenReaderFormattedMessage: _angular_core.WritableSignal<string>;
|
|
2484
|
+
private _langTextDir;
|
|
2485
|
+
/**
|
|
2486
|
+
* A string indicating the direction of text for the locale.
|
|
2487
|
+
* Can be either "ltr" (left-to-right) or "rtl" (right-to-left).
|
|
2488
|
+
*/
|
|
2489
|
+
langTextDir: _angular_core.InputSignal<TextDirection>;
|
|
2490
|
+
private _isSingleSelection;
|
|
2491
|
+
private _isMultiSelection;
|
|
2492
|
+
private _isMultipleCollapse;
|
|
2493
|
+
private _isAccordionCollapse;
|
|
2494
|
+
private _isSnappingMethodAdvanced;
|
|
2495
|
+
protected _isInfinity: Signal<boolean>;
|
|
2496
|
+
private _isVertical;
|
|
2497
|
+
protected get isVertical(): boolean;
|
|
2498
|
+
protected readonly focusedElement: _angular_core.WritableSignal<Id | null>;
|
|
2499
|
+
protected readonly classes: _angular_core.WritableSignal<{
|
|
2500
|
+
[cName: string]: boolean;
|
|
2501
|
+
}>;
|
|
2502
|
+
private _actualItems;
|
|
2503
|
+
private _collapsedItemIds;
|
|
2504
|
+
private _displayComponents;
|
|
2505
|
+
private _snappedDisplayComponents;
|
|
2506
|
+
private _bounds;
|
|
2507
|
+
protected get bounds(): _angular_core.WritableSignal<ISize | null>;
|
|
2508
|
+
protected _actualScrollbarEnabled: Signal<boolean>;
|
|
2509
|
+
private _actualAlignment;
|
|
2510
|
+
protected get actualAlignment(): Signal<Alignment>;
|
|
2511
|
+
private _actualItemSize;
|
|
2512
|
+
protected get actualItemSize(): _angular_core.WritableSignal<number>;
|
|
2513
|
+
private _actualMinItemSize;
|
|
2514
|
+
protected get actualMinItemSize(): _angular_core.WritableSignal<number>;
|
|
2515
|
+
private _actualMaxItemSize;
|
|
2516
|
+
protected get actualMaxItemSize(): _angular_core.WritableSignal<number>;
|
|
2517
|
+
private _totalSize;
|
|
2518
|
+
private _listBounds;
|
|
2519
|
+
private _$scrollSize;
|
|
2520
|
+
private _isScrollStart;
|
|
2521
|
+
private _isScrollEnd;
|
|
2522
|
+
protected _precalculatedScrollStartOffset: _angular_core.WritableSignal<number>;
|
|
2523
|
+
protected _precalculatedScrollEndOffset: _angular_core.WritableSignal<number>;
|
|
2524
|
+
protected _actualScrollStartOffset: _angular_core.WritableSignal<number>;
|
|
2525
|
+
protected _actualScrollEndOffset: _angular_core.WritableSignal<number>;
|
|
2526
|
+
protected _actualSnapScrollToStart: Signal<boolean>;
|
|
2527
|
+
protected _actualSnapScrollToEnd: Signal<boolean>;
|
|
2528
|
+
protected _alignmentScrollStartOffset: _angular_core.WritableSignal<number>;
|
|
2529
|
+
protected _alignmentScrollEndOffset: _angular_core.WritableSignal<number>;
|
|
2530
|
+
private _resizeSnappedComponentHandler;
|
|
2531
|
+
private _resizeSnappedObserver;
|
|
2532
|
+
private focusItem;
|
|
2533
|
+
private _elementRef;
|
|
2534
|
+
/**
|
|
2535
|
+
* Base class of the element component
|
|
2536
|
+
*/
|
|
2537
|
+
private _itemComponentClass;
|
|
2538
|
+
protected get itemComponentClass(): Component$1<BaseVirtualListItemComponent>;
|
|
2539
|
+
/**
|
|
2540
|
+
* Base class trackBox
|
|
2541
|
+
*/
|
|
2542
|
+
private _trackBoxClass;
|
|
2543
|
+
/**
|
|
2544
|
+
* Dictionary of element sizes by their id
|
|
2545
|
+
*/
|
|
2546
|
+
private _trackBox;
|
|
2547
|
+
private _$update;
|
|
2548
|
+
protected readonly $update: rxjs.Observable<string>;
|
|
2549
|
+
private _$scrollTo;
|
|
2550
|
+
protected $scrollTo: rxjs.Observable<IScrollParams>;
|
|
2551
|
+
private _$scrollToExecutor;
|
|
2552
|
+
protected readonly $scrollToExecutor: rxjs.Observable<IScrollParams>;
|
|
2553
|
+
private _$scrollingTo;
|
|
2554
|
+
private _$scroll;
|
|
2555
|
+
readonly $scroll: rxjs.Observable<IScrollEvent$1>;
|
|
2556
|
+
private _$tick;
|
|
2557
|
+
readonly $tick: rxjs.Observable<void>;
|
|
2558
|
+
private _$fireUpdate;
|
|
2559
|
+
protected readonly $fireUpdate: rxjs.Observable<boolean>;
|
|
2560
|
+
private _$fireUpdateNextFrame;
|
|
2561
|
+
protected readonly $fireUpdateNextFrame: rxjs.Observable<boolean>;
|
|
2562
|
+
private _$preventScrollSnapping;
|
|
2563
|
+
protected readonly $preventScrollSnapping: rxjs.Observable<boolean>;
|
|
2564
|
+
private _destroyRef;
|
|
2565
|
+
private _updateId;
|
|
2566
|
+
private _readyForShow;
|
|
2567
|
+
private _cached;
|
|
2568
|
+
private _isLoading;
|
|
2569
|
+
private _animationId;
|
|
2570
|
+
protected get cachable(): boolean;
|
|
2571
|
+
protected get prerenderable(): boolean;
|
|
2572
|
+
private _$viewInit;
|
|
2573
|
+
private readonly $viewInit;
|
|
2574
|
+
private _$destroy;
|
|
2575
|
+
private readonly $destroy;
|
|
2576
|
+
constructor();
|
|
2577
|
+
ngAfterViewInit(): void;
|
|
2578
|
+
private onAfterResize;
|
|
2579
|
+
private checkBoundsOfElements;
|
|
2580
|
+
private snappingHandler;
|
|
2581
|
+
private emitScrollEvent;
|
|
2582
|
+
private getIsSnappingMethodAdvanced;
|
|
2583
|
+
private getIsNoneSelection;
|
|
2584
|
+
private getIsSingleSelection;
|
|
2585
|
+
private getIsMultiSelection;
|
|
2586
|
+
private getIsNoneCollapse;
|
|
2587
|
+
private getIsMultipleCollapse;
|
|
2588
|
+
private getIsAccordionCollapse;
|
|
2589
|
+
private getIsVertical;
|
|
2590
|
+
private getIsLazy;
|
|
2591
|
+
private createDisplayComponentsIfNeed;
|
|
2592
|
+
private updateOffsetsByAllignment;
|
|
2593
|
+
private updateRegularRenderer;
|
|
2594
|
+
/**
|
|
2595
|
+
* Tracking by id
|
|
2596
|
+
*/
|
|
2597
|
+
private tracking;
|
|
2598
|
+
private resetBoundsSize;
|
|
2599
|
+
/**
|
|
2600
|
+
* Returns the bounds of an element with a given id
|
|
2601
|
+
*/
|
|
2602
|
+
getItemBounds(id: Id): ISize | null;
|
|
2603
|
+
/**
|
|
2604
|
+
* Focus an list item by a given id.
|
|
2605
|
+
*/
|
|
2606
|
+
focus(id: Id, align?: FocusAlignment): void;
|
|
2607
|
+
/**
|
|
2608
|
+
* The method scrolls the list to the element with the given `id` and returns the value of the scrolled area.
|
|
2609
|
+
*/
|
|
2610
|
+
scrollTo(id: Id, cb?: (() => void) | null, options?: IScrollOptions$1 | null): void;
|
|
2611
|
+
/**
|
|
2612
|
+
* Scrolls the scroll area to the first item in the collection.
|
|
2613
|
+
*/
|
|
2614
|
+
scrollToStart(cb?: (() => void) | null, options?: IScrollOptions$1 | null): void;
|
|
2615
|
+
/**
|
|
2616
|
+
* @deprecated
|
|
2617
|
+
* The scrollToEndItem method is deprecated. Use the scrollToEnd method.
|
|
2618
|
+
*/
|
|
2619
|
+
scrollToEndItem(cb?: () => void, options?: IScrollOptions$1): void;
|
|
2620
|
+
/**
|
|
2621
|
+
* Scrolls the list to the end of the content size.
|
|
2622
|
+
*/
|
|
2623
|
+
scrollToEnd(cb?: (() => void) | null, options?: IScrollOptions$1 | null): void;
|
|
2624
|
+
private scrollToFinalize;
|
|
2625
|
+
protected cleanup(): void;
|
|
2626
|
+
/**
|
|
2627
|
+
* Force clearing the cache.
|
|
2628
|
+
*/
|
|
2629
|
+
protected cacheClean(): void;
|
|
2630
|
+
/**
|
|
2631
|
+
* @deprecated
|
|
2632
|
+
* The stopSnappingScrollToEnd method is deprecated. Use the preventSnapping method.
|
|
2633
|
+
*/
|
|
2634
|
+
stopSnappingScrollToEnd(): void;
|
|
2635
|
+
/**
|
|
2636
|
+
* Prevents the list from snapping to its start or end edge.
|
|
2637
|
+
*/
|
|
2638
|
+
preventSnapping(): void;
|
|
2639
|
+
ngOnDestroy(): void;
|
|
2640
|
+
private dispose;
|
|
2641
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CnVirtualListComponent, never>;
|
|
2642
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CnVirtualListComponent, "cn-virtual-list", never, { "scrollbarThickness": { "alias": "scrollbarThickness"; "required": false; "isSignal": true; }; "scrollbarMinSize": { "alias": "scrollbarMinSize"; "required": false; "isSignal": true; }; "scrollbarThumbRenderer": { "alias": "scrollbarThumbRenderer"; "required": false; "isSignal": true; }; "scrollbarThumbParams": { "alias": "scrollbarThumbParams"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "waitForPreparation": { "alias": "waitForPreparation"; "required": false; "isSignal": true; }; "clickDistance": { "alias": "clickDistance"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": true; "isSignal": true; }; "defaultItemValue": { "alias": "defaultItemValue"; "required": false; "isSignal": true; }; "selectedIds": { "alias": "selectedIds"; "required": false; "isSignal": true; }; "collapsedIds": { "alias": "collapsedIds"; "required": false; "isSignal": true; }; "selectByClick": { "alias": "selectByClick"; "required": false; "isSignal": true; }; "collapseByClick": { "alias": "collapseByClick"; "required": false; "isSignal": true; }; "snap": { "alias": "snap"; "required": false; "isSignal": true; }; "stickyEnabled": { "alias": "stickyEnabled"; "required": false; "isSignal": true; }; "snapToEndTransitionInstantOffset": { "alias": "snapToEndTransitionInstantOffset"; "required": false; "isSignal": true; }; "scrollStartOffset": { "alias": "scrollStartOffset"; "required": false; "isSignal": true; }; "scrollEndOffset": { "alias": "scrollEndOffset"; "required": false; "isSignal": true; }; "snapScrollToStart": { "alias": "snapScrollToStart"; "required": false; "isSignal": true; }; "snapScrollToEnd": { "alias": "snapScrollToEnd"; "required": false; "isSignal": true; }; "snapScrollToBottom": { "alias": "snapScrollToBottom"; "required": false; "isSignal": true; }; "scrollbarEnabled": { "alias": "scrollbarEnabled"; "required": false; "isSignal": true; }; "scrollbarInteractive": { "alias": "scrollbarInteractive"; "required": false; "isSignal": true; }; "overlappingScrollbar": { "alias": "overlappingScrollbar"; "required": false; "isSignal": true; }; "scrollBehavior": { "alias": "scrollBehavior"; "required": false; "isSignal": true; }; "scrollingSettings": { "alias": "scrollingSettings"; "required": false; "isSignal": true; }; "itemTransform": { "alias": "itemTransform"; "required": false; "isSignal": true; }; "snapToItem": { "alias": "snapToItem"; "required": false; "isSignal": true; }; "snapToItemAlign": { "alias": "snapToItemAlign"; "required": false; "isSignal": true; }; "snappingDistance": { "alias": "snappingDistance"; "required": false; "isSignal": true; }; "scrollingOneByOne": { "alias": "scrollingOneByOne"; "required": false; "isSignal": true; }; "alignment": { "alias": "alignment"; "required": false; "isSignal": true; }; "zIndexWhenSelecting": { "alias": "zIndexWhenSelecting"; "required": false; "isSignal": true; }; "spreadingMode": { "alias": "spreadingMode"; "required": false; "isSignal": true; }; "divides": { "alias": "divides"; "required": false; "isSignal": true; }; "motionBlur": { "alias": "motionBlur"; "required": false; "isSignal": true; }; "maxMotionBlur": { "alias": "maxMotionBlur"; "required": false; "isSignal": true; }; "motionBlurEnabled": { "alias": "motionBlurEnabled"; "required": false; "isSignal": true; }; "animationParams": { "alias": "animationParams"; "required": false; "isSignal": true; }; "overscrollEnabled": { "alias": "overscrollEnabled"; "required": false; "isSignal": true; }; "enabledBufferOptimization": { "alias": "enabledBufferOptimization"; "required": false; "isSignal": true; }; "itemRenderer": { "alias": "itemRenderer"; "required": true; "isSignal": true; }; "itemConfigMap": { "alias": "itemConfigMap"; "required": false; "isSignal": true; }; "itemSize": { "alias": "itemSize"; "required": false; "isSignal": true; }; "minItemSize": { "alias": "minItemSize"; "required": false; "isSignal": true; }; "maxItemSize": { "alias": "maxItemSize"; "required": false; "isSignal": true; }; "dynamicSize": { "alias": "dynamicSize"; "required": false; "isSignal": true; }; "direction": { "alias": "direction"; "required": false; "isSignal": true; }; "collectionMode": { "alias": "collectionMode"; "required": false; "isSignal": true; }; "bufferSize": { "alias": "bufferSize"; "required": false; "isSignal": true; }; "maxBufferSize": { "alias": "maxBufferSize"; "required": false; "isSignal": true; }; "snappingMethod": { "alias": "snappingMethod"; "required": false; "isSignal": true; }; "collapsingMode": { "alias": "collapsingMode"; "required": false; "isSignal": true; }; "methodForSelecting": { "alias": "methodForSelecting"; "required": false; "isSignal": true; }; "selectingMode": { "alias": "selectingMode"; "required": false; "isSignal": true; }; "trackBy": { "alias": "trackBy"; "required": false; "isSignal": true; }; "screenReaderMessage": { "alias": "screenReaderMessage"; "required": false; "isSignal": true; }; "langTextDir": { "alias": "langTextDir"; "required": false; "isSignal": true; }; }, { "onScroll": "onScroll"; "onScrollEnd": "onScrollEnd"; "onViewportChange": "onViewportChange"; "onSnapItem": "onSnapItem"; "onItemClick": "onItemClick"; "onSelect": "onSelect"; "onCollapse": "onCollapse"; "onScrollReachStart": "onScrollReachStart"; "onScrollReachEnd": "onScrollReachEnd"; }, never, never, false, never>;
|
|
2643
|
+
}
|
|
2644
|
+
|
|
2645
|
+
declare class CnVirtualListItemModule {
|
|
2646
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CnVirtualListItemModule, never>;
|
|
2647
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<CnVirtualListItemModule, [typeof CnVirtualListItemComponent], [typeof i2.CommonModule, typeof CnVirtualClickModule], [typeof CnVirtualListItemComponent]>;
|
|
2648
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<CnVirtualListItemModule>;
|
|
2649
|
+
}
|
|
2650
|
+
|
|
2651
|
+
/**
|
|
2652
|
+
* IScrollToParams
|
|
2653
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/components/cn-scroll-view/interfaces/scroll-to-params.ts
|
|
2654
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
2655
|
+
* @email djonnyx@gmail.com
|
|
2656
|
+
*/
|
|
2657
|
+
interface IScrollToParams$1 {
|
|
2658
|
+
x?: number;
|
|
2659
|
+
y?: number;
|
|
2660
|
+
left?: number;
|
|
2661
|
+
top?: number;
|
|
2662
|
+
snap?: boolean;
|
|
2663
|
+
normalize?: boolean;
|
|
2664
|
+
force?: boolean;
|
|
2665
|
+
blending?: boolean;
|
|
2666
|
+
behavior?: ScrollBehavior;
|
|
2667
|
+
ease?: Easing;
|
|
2668
|
+
fireUpdate?: boolean;
|
|
2669
|
+
userAction?: boolean;
|
|
2670
|
+
duration?: number;
|
|
2671
|
+
}
|
|
2672
|
+
|
|
2673
|
+
/**
|
|
2674
|
+
* ScrollerDirection
|
|
2675
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/components/cn-scroll-view/enums/scroller-direction.ts
|
|
2676
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
2677
|
+
* @email djonnyx@gmail.com
|
|
2678
|
+
*/
|
|
2679
|
+
declare enum ScrollerDirection$1 {
|
|
2680
|
+
HORIZONTAL = "horizontal",
|
|
2681
|
+
VERTICAL = "vertical"
|
|
2682
|
+
}
|
|
2683
|
+
|
|
2684
|
+
/**
|
|
2685
|
+
* ScrollerDirections
|
|
2686
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/components/cn-scroll-view/enums/scroller-directions.ts
|
|
2687
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
2688
|
+
* @email djonnyx@gmail.com
|
|
2689
|
+
*/
|
|
2690
|
+
type ScrollerDirections$1 = ScrollerDirection$1 | 'horizontal' | 'vertical';
|
|
2691
|
+
|
|
2692
|
+
/**
|
|
2693
|
+
* BaseScrollView
|
|
2694
|
+
* Maximum performance for extremely large lists.
|
|
2695
|
+
* It is based on algorithms for virtualization of screen objects.
|
|
2696
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/components/cn-scroll-view/base/base-scroll-view.component.ts
|
|
2697
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
2698
|
+
* @email djonnyx@gmail.com
|
|
2699
|
+
*/
|
|
2700
|
+
declare class BaseScrollView$1 {
|
|
2701
|
+
readonly scrollContent: Signal<ElementRef<HTMLDivElement> | undefined>;
|
|
2702
|
+
readonly scrollViewport: Signal<ElementRef<HTMLDivElement> | undefined>;
|
|
2703
|
+
readonly direction: _angular_core.InputSignal<ScrollerDirections$1>;
|
|
2704
|
+
readonly startOffset: _angular_core.InputSignal<number>;
|
|
2705
|
+
readonly endOffset: _angular_core.InputSignal<number>;
|
|
2706
|
+
readonly alignmentStartOffset: _angular_core.InputSignal<number>;
|
|
2707
|
+
readonly alignmentEndOffset: _angular_core.InputSignal<number>;
|
|
2708
|
+
readonly isInfinity: _angular_core.InputSignal<boolean>;
|
|
2709
|
+
readonly isVertical: Signal<boolean>;
|
|
2710
|
+
readonly grabbing: _angular_core.WritableSignal<boolean>;
|
|
2711
|
+
readonly langTextDir: _angular_core.InputSignal<TextDirection>;
|
|
2712
|
+
protected _inversion: boolean;
|
|
2713
|
+
protected _overscrollEnabled: boolean;
|
|
2714
|
+
protected _$updateScrollBar: Subject<void>;
|
|
2715
|
+
protected $updateScrollBar: rxjs.Observable<void>;
|
|
2716
|
+
get scrollable(): boolean;
|
|
2717
|
+
protected _destroyRef: DestroyRef;
|
|
2718
|
+
protected _isMoving: boolean;
|
|
2719
|
+
get isMoving(): boolean;
|
|
2720
|
+
protected _x: number;
|
|
2721
|
+
set x(v: number);
|
|
2722
|
+
get x(): number;
|
|
2723
|
+
protected _y: number;
|
|
2724
|
+
set y(v: number);
|
|
2725
|
+
get y(): number;
|
|
2726
|
+
protected _actualTotalSize: number;
|
|
2727
|
+
protected _totalSize: number;
|
|
2728
|
+
set totalSize(v: number);
|
|
2729
|
+
get totalSize(): number;
|
|
2730
|
+
protected _startLayoutOffset: number;
|
|
2731
|
+
set startLayoutOffset(v: number);
|
|
2732
|
+
get startLayoutOffset(): number;
|
|
2733
|
+
get actualScrollHeight(): number;
|
|
2734
|
+
get actualScrollWidth(): number;
|
|
2735
|
+
protected _actualX: number;
|
|
2736
|
+
get actualScrollLeft(): number;
|
|
2737
|
+
protected _actualY: number;
|
|
2738
|
+
get actualScrollTop(): number;
|
|
2739
|
+
get scrollLeft(): number;
|
|
2740
|
+
get scrollTop(): number;
|
|
2741
|
+
get scrollWidth(): number;
|
|
2742
|
+
get scrollHeight(): number;
|
|
2743
|
+
readonly viewportBounds: _angular_core.WritableSignal<ISize>;
|
|
2744
|
+
readonly contentBounds: _angular_core.WritableSignal<ISize>;
|
|
2745
|
+
protected _isCoordinatesOverrided: boolean;
|
|
2746
|
+
constructor();
|
|
2747
|
+
tick(): void;
|
|
2748
|
+
protected overrideCoordinates(x: number, y: number): void;
|
|
2749
|
+
protected normalizeScrollSize(): boolean;
|
|
2750
|
+
protected onResizeViewport(): void;
|
|
2751
|
+
protected onResizeContent(value?: number | null): void;
|
|
2752
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<BaseScrollView$1, never>;
|
|
2753
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<BaseScrollView$1, "base-scroll-view", never, { "direction": { "alias": "direction"; "required": false; "isSignal": true; }; "startOffset": { "alias": "startOffset"; "required": false; "isSignal": true; }; "endOffset": { "alias": "endOffset"; "required": false; "isSignal": true; }; "alignmentStartOffset": { "alias": "alignmentStartOffset"; "required": false; "isSignal": true; }; "alignmentEndOffset": { "alias": "alignmentEndOffset"; "required": false; "isSignal": true; }; "isInfinity": { "alias": "isInfinity"; "required": false; "isSignal": true; }; "langTextDir": { "alias": "langTextDir"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
2754
|
+
}
|
|
2755
|
+
|
|
2756
|
+
/**
|
|
2757
|
+
* ScrollingDirection
|
|
2758
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/utils/scrolling-direction.ts
|
|
2759
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
2760
|
+
* @email djonnyx@gmail.com
|
|
2761
|
+
*/
|
|
2762
|
+
declare class ScrollingDirection {
|
|
2763
|
+
private _length;
|
|
2764
|
+
private _value;
|
|
2765
|
+
private _$direction;
|
|
2766
|
+
readonly $direction: rxjs.Observable<ScrollDirection$1>;
|
|
2767
|
+
constructor(_length?: number);
|
|
2768
|
+
add(v: ScrollDirection$1): void;
|
|
2769
|
+
get(): ScrollDirection$1;
|
|
2770
|
+
clear(): void;
|
|
2771
|
+
}
|
|
2772
|
+
|
|
2773
|
+
/**
|
|
2774
|
+
* CnScrollView
|
|
2775
|
+
* Maximum performance for extremely large lists.
|
|
2776
|
+
* It is based on algorithms for virtualization of screen objects.
|
|
2777
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/components/cn-scroll-view/cn-scroll-view.component.ts
|
|
2778
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
2779
|
+
* @email djonnyx@gmail.com
|
|
2780
|
+
*/
|
|
2781
|
+
declare class CnScrollView$1 extends BaseScrollView$1 {
|
|
2782
|
+
readonly cdkScrollable: CdkScrollable | undefined;
|
|
2783
|
+
protected _service: CnVirtualListService;
|
|
2784
|
+
readonly scrollBehavior: _angular_core.InputSignal<ScrollBehavior>;
|
|
2785
|
+
readonly overscrollEnabled: _angular_core.InputSignal<boolean>;
|
|
2786
|
+
readonly scrollingSettings: _angular_core.InputSignal<IScrollingSettings$1>;
|
|
2787
|
+
readonly snapToItem: _angular_core.InputSignal<boolean>;
|
|
2788
|
+
readonly scrollingOneByOne: _angular_core.InputSignal<boolean>;
|
|
2789
|
+
readonly snapToItemAlign: _angular_core.InputSignal<SnapToItemAlign>;
|
|
2790
|
+
readonly snappingDistance: _angular_core.InputSignal<SnappingDistance>;
|
|
2791
|
+
readonly animationParams: _angular_core.InputSignal<IAnimationParams$1>;
|
|
2792
|
+
protected _normalizeValueFromZero: boolean;
|
|
2793
|
+
protected _isScrollsTo: boolean;
|
|
2794
|
+
protected _scrollDirection: ScrollingDirection;
|
|
2795
|
+
get scrollDirection(): ScrollDirection$1;
|
|
2796
|
+
get $scrollDirection(): rxjs.Observable<ScrollDirection$1>;
|
|
2797
|
+
protected _$wheel: Subject<number>;
|
|
2798
|
+
readonly $wheel: rxjs.Observable<number>;
|
|
2799
|
+
protected _$scroll: Subject<boolean>;
|
|
2800
|
+
readonly $scroll: rxjs.Observable<boolean>;
|
|
2801
|
+
protected _$scrollEnd: Subject<boolean>;
|
|
2802
|
+
readonly $scrollEnd: rxjs.Observable<boolean>;
|
|
2803
|
+
protected _velocities: Array<number>;
|
|
2804
|
+
protected _$velocity: BehaviorSubject<number>;
|
|
2805
|
+
protected $velocity: rxjs.Observable<number>;
|
|
2806
|
+
get velocity(): number;
|
|
2807
|
+
protected _$averageVelocity: BehaviorSubject<number>;
|
|
2808
|
+
protected $averageVelocity: rxjs.Observable<number>;
|
|
2809
|
+
get averageVelocity(): number;
|
|
2810
|
+
private _measureVelocityTimestamp;
|
|
2811
|
+
private _measureVelocityLastPosition;
|
|
2812
|
+
private _startPositionX;
|
|
2813
|
+
private _startPositionY;
|
|
2814
|
+
private _touchId;
|
|
2815
|
+
set startPosition(v: number);
|
|
2816
|
+
get startPosition(): number;
|
|
2817
|
+
protected _animator: Animator;
|
|
2818
|
+
protected _interactive: boolean;
|
|
2819
|
+
protected _horizontalAxisInvertion: Signal<boolean>;
|
|
2820
|
+
get inverted(): boolean;
|
|
2821
|
+
private _overscrollIteration;
|
|
2822
|
+
private _overscrollStartIteration;
|
|
2823
|
+
private _overscrollApplied;
|
|
2824
|
+
set x(v: number);
|
|
2825
|
+
get x(): number;
|
|
2826
|
+
protected setX(x: number, snap?: boolean, normalize?: boolean): void;
|
|
2827
|
+
set y(v: number);
|
|
2828
|
+
get y(): number;
|
|
2829
|
+
protected setY(y: number, snap?: boolean, normalize?: boolean): void;
|
|
2830
|
+
protected _delta: number;
|
|
2831
|
+
set delta(v: number);
|
|
2832
|
+
set startLayoutOffset(v: number);
|
|
2833
|
+
get startLayoutOffset(): number;
|
|
2834
|
+
private _scrollDirectionValueX;
|
|
2835
|
+
private _scrollDirectionValueY;
|
|
2836
|
+
protected _intersectionComponentId: Id | null;
|
|
2837
|
+
protected _isAlignmentAnimation: boolean;
|
|
2838
|
+
get animated(): boolean;
|
|
2839
|
+
constructor();
|
|
2840
|
+
hasAnimation(id?: number): boolean;
|
|
2841
|
+
protected updateDirection(position: number, prePosition: number): void;
|
|
2842
|
+
protected overrideCoordinates(x: number, y: number): void;
|
|
2843
|
+
protected measureVelocity(): void;
|
|
2844
|
+
protected stopMoving(): void;
|
|
2845
|
+
private snapIfNecessary;
|
|
2846
|
+
protected snapWithInitialForceIfNecessary(v0?: number | null, animated?: boolean, force?: boolean, fireUpdate?: boolean): boolean;
|
|
2847
|
+
private calculatePosition;
|
|
2848
|
+
private cancelOverscroll;
|
|
2849
|
+
private checkOverscrollByAxis;
|
|
2850
|
+
private checkOverscroll;
|
|
2851
|
+
private calculateVelocity;
|
|
2852
|
+
private calculateAcceleration;
|
|
2853
|
+
stopScrolling(force?: boolean): void;
|
|
2854
|
+
protected move(isVertical: boolean, position: number, blending?: boolean, userAction?: boolean, fireUpdate?: boolean): void;
|
|
2855
|
+
protected moveWithAcceleration(isVertical: boolean, position: number, v0: number, v: number, a0: number, timestamp: number): void;
|
|
2856
|
+
protected normalizeValue(value: number): number;
|
|
2857
|
+
protected animate(startValue: number, endValue: number, duration?: number, easingFunction?: Easing, blending?: boolean, userAction?: boolean, alignmentAtComplete?: boolean, skipOverridedCoordinates?: boolean, fireUpdate?: boolean): number;
|
|
2858
|
+
protected getSnappedComponentSize(): number | null;
|
|
2859
|
+
protected alignPosition(animated?: boolean, force?: boolean, fireUpdate?: boolean): boolean;
|
|
2860
|
+
protected checkIntersectionComponent(): void;
|
|
2861
|
+
protected onAnimationComplete(position: number): void;
|
|
2862
|
+
fireScroll(userAction?: boolean): void;
|
|
2863
|
+
scrollLimits(value?: number | undefined, silent?: boolean): boolean;
|
|
2864
|
+
scroll(params: IScrollToParams$1): number;
|
|
2865
|
+
protected emitScrollableEvent(): void;
|
|
2866
|
+
refreshCoordinate(x: number, y: number): void;
|
|
2867
|
+
protected fireScrollEvent(userAction: boolean): void;
|
|
2868
|
+
protected onDragStart(): void;
|
|
2869
|
+
reset(offset?: number): void;
|
|
2870
|
+
stopAnimation(id: number): void;
|
|
2871
|
+
ngOnDestroy(): void;
|
|
2872
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CnScrollView$1, never>;
|
|
2873
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CnScrollView$1, "cn-scroll-view", never, { "scrollBehavior": { "alias": "scrollBehavior"; "required": false; "isSignal": true; }; "overscrollEnabled": { "alias": "overscrollEnabled"; "required": false; "isSignal": true; }; "scrollingSettings": { "alias": "scrollingSettings"; "required": false; "isSignal": true; }; "snapToItem": { "alias": "snapToItem"; "required": false; "isSignal": true; }; "scrollingOneByOne": { "alias": "scrollingOneByOne"; "required": false; "isSignal": true; }; "snapToItemAlign": { "alias": "snapToItemAlign"; "required": false; "isSignal": true; }; "snappingDistance": { "alias": "snappingDistance"; "required": false; "isSignal": true; }; "animationParams": { "alias": "animationParams"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
2874
|
+
}
|
|
2875
|
+
|
|
2876
|
+
/**
|
|
2877
|
+
* IScrollBarDragEvent
|
|
2878
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/components/ng-scroll-bar/interfaces/scrollbar-drag-data.ts
|
|
2879
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
2880
|
+
* @email djonnyx@gmail.com
|
|
2881
|
+
*/
|
|
2882
|
+
interface IScrollBarDragEvent$1 {
|
|
2883
|
+
position: number;
|
|
2884
|
+
min: number;
|
|
2885
|
+
max: number;
|
|
2886
|
+
userAction: boolean;
|
|
2887
|
+
animation: boolean;
|
|
2888
|
+
}
|
|
2889
|
+
|
|
2890
|
+
interface IScrollBarTemplateContext$1 {
|
|
2891
|
+
/**
|
|
2892
|
+
* API provider
|
|
2893
|
+
*/
|
|
2894
|
+
api: CnScrollBarPublicService$1;
|
|
2895
|
+
/**
|
|
2896
|
+
* Scrollbar thumb width.
|
|
2897
|
+
*/
|
|
2898
|
+
width: number;
|
|
2899
|
+
/**
|
|
2900
|
+
* Scrollbar thumb height.
|
|
2901
|
+
*/
|
|
2902
|
+
height: number;
|
|
2903
|
+
/**
|
|
2904
|
+
* Gradient fill position parameters.
|
|
2905
|
+
*/
|
|
2906
|
+
fillPositions: GradientColorPositions;
|
|
2907
|
+
/**
|
|
2908
|
+
* Additional options for the scrollbar.
|
|
2909
|
+
*/
|
|
2910
|
+
params: {
|
|
2911
|
+
[propName: string]: any;
|
|
2912
|
+
};
|
|
2913
|
+
}
|
|
2914
|
+
|
|
2915
|
+
/**
|
|
2916
|
+
* CnScrollBarService
|
|
2917
|
+
* Maximum performance for extremely large lists.
|
|
2918
|
+
* It is based on algorithms for virtualization of screen objects.
|
|
2919
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/components/cn-scroll-bar/cn-scroll-bar.service.ts
|
|
2920
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
2921
|
+
* @email djonnyx@gmail.com
|
|
2922
|
+
*/
|
|
2923
|
+
declare class CnScrollBarService$1 {
|
|
2924
|
+
private _$click;
|
|
2925
|
+
readonly $click: rxjs.Observable<PointerEvent | MouseEvent>;
|
|
2926
|
+
private _$state;
|
|
2927
|
+
readonly $state: rxjs.Observable<ScrollbarStates$1>;
|
|
2928
|
+
set state(v: ScrollbarState$1);
|
|
2929
|
+
get state(): ScrollbarState$1;
|
|
2930
|
+
click(event: PointerEvent | MouseEvent): void;
|
|
2931
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CnScrollBarService$1, never>;
|
|
2932
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<CnScrollBarService$1>;
|
|
2933
|
+
}
|
|
2934
|
+
|
|
2935
|
+
/**
|
|
2936
|
+
* ScrollBar component.
|
|
2937
|
+
* Maximum performance for extremely large lists.
|
|
2938
|
+
* It is based on algorithms for virtualization of screen objects.
|
|
2939
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/components/cn-scroll-bar/cn-scroll-bar.component.ts
|
|
2940
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
2941
|
+
* @email djonnyx@gmail.com
|
|
2942
|
+
*/
|
|
2943
|
+
declare class CnScrollBarComponent$1 extends CnScrollView$1 {
|
|
2944
|
+
protected _defaultRenderer: Signal<TemplateRef<any> | undefined>;
|
|
2945
|
+
protected _scrollBarService: CnScrollBarService$1;
|
|
2946
|
+
private _apiService;
|
|
2947
|
+
readonly loading: _angular_core.InputSignal<boolean>;
|
|
2948
|
+
readonly onDrag: _angular_core.OutputEmitterRef<IScrollBarDragEvent$1>;
|
|
2949
|
+
readonly onDragEnd: _angular_core.OutputEmitterRef<IScrollBarDragEvent$1>;
|
|
2950
|
+
readonly thumbGradientPositions: _angular_core.InputSignal<GradientColorPositions>;
|
|
2951
|
+
readonly size: _angular_core.InputSignal<number>;
|
|
2952
|
+
readonly thickness: _angular_core.InputSignal<number>;
|
|
2953
|
+
readonly scrollbarMinSize: _angular_core.InputSignal<number>;
|
|
2954
|
+
readonly prepared: _angular_core.InputSignal<boolean>;
|
|
2955
|
+
readonly interactive: _angular_core.InputSignal<boolean>;
|
|
2956
|
+
readonly overlapping: _angular_core.InputSignal<boolean>;
|
|
2957
|
+
readonly show: _angular_core.InputSignal<boolean>;
|
|
2958
|
+
readonly params: _angular_core.InputSignal<{
|
|
2959
|
+
[propName: string]: any;
|
|
2960
|
+
} | null>;
|
|
2961
|
+
readonly renderer: _angular_core.InputSignal<TemplateRef<any> | null>;
|
|
2962
|
+
readonly thumbRenderer: _angular_core.WritableSignal<TemplateRef<any> | null>;
|
|
2963
|
+
protected readonly hoverState: _angular_core.WritableSignal<boolean>;
|
|
2964
|
+
protected readonly pressedState: _angular_core.WritableSignal<boolean>;
|
|
2965
|
+
protected readonly templateContext: Signal<IScrollBarTemplateContext$1>;
|
|
2966
|
+
protected readonly styles: Signal<{
|
|
2967
|
+
[sName: string]: any;
|
|
2968
|
+
}>;
|
|
2969
|
+
protected readonly thumbWidth: Signal<number>;
|
|
2970
|
+
protected readonly thumbHeight: Signal<number>;
|
|
2971
|
+
private _$scrollingCancel;
|
|
2972
|
+
protected readonly $scrollingCancel: rxjs.Observable<void>;
|
|
2973
|
+
private _elementRef;
|
|
2974
|
+
constructor();
|
|
2975
|
+
private createDragEvent;
|
|
2976
|
+
private thumbHit;
|
|
2977
|
+
click(event: PointerEvent | MouseEvent): void;
|
|
2978
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CnScrollBarComponent$1, never>;
|
|
2979
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CnScrollBarComponent$1, "cn-scroll-bar", never, { "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "thumbGradientPositions": { "alias": "thumbGradientPositions"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "thickness": { "alias": "thickness"; "required": false; "isSignal": true; }; "scrollbarMinSize": { "alias": "scrollbarMinSize"; "required": false; "isSignal": true; }; "prepared": { "alias": "prepared"; "required": false; "isSignal": true; }; "interactive": { "alias": "interactive"; "required": false; "isSignal": true; }; "overlapping": { "alias": "overlapping"; "required": false; "isSignal": true; }; "show": { "alias": "show"; "required": false; "isSignal": true; }; "params": { "alias": "params"; "required": false; "isSignal": true; }; "renderer": { "alias": "renderer"; "required": false; "isSignal": true; }; }, { "onDrag": "onDrag"; "onDragEnd": "onDragEnd"; }, never, never, false, never>;
|
|
2980
|
+
}
|
|
2981
|
+
|
|
2982
|
+
/**
|
|
2983
|
+
* The scroller for the CnVirtualList item component
|
|
2984
|
+
* Maximum performance for extremely large lists.
|
|
2985
|
+
* It is based on algorithms for virtualization of screen objects.
|
|
2986
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/components/cn-scroller/cn-scroller.component.ts
|
|
2987
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
2988
|
+
* @email djonnyx@gmail.com
|
|
2989
|
+
*/
|
|
2990
|
+
declare class CnScrollerComponent$1 extends CnScrollView$1 {
|
|
2991
|
+
readonly scrollBar: CnScrollBarComponent$1 | undefined;
|
|
2992
|
+
readonly filter: Signal<ElementRef<SVGFEGaussianBlurElement> | undefined>;
|
|
2993
|
+
readonly onScrollbarVisible: _angular_core.OutputEmitterRef<boolean>;
|
|
2994
|
+
readonly scrollbarEnabled: _angular_core.InputSignal<boolean>;
|
|
2995
|
+
readonly scrollbarInteractive: _angular_core.InputSignal<boolean>;
|
|
2996
|
+
readonly focusedElement: _angular_core.InputSignal<Id | null>;
|
|
2997
|
+
readonly overlappingScrollbar: _angular_core.InputSignal<boolean>;
|
|
2998
|
+
readonly content: _angular_core.InputSignal<HTMLElement | undefined>;
|
|
2999
|
+
readonly loading: _angular_core.InputSignal<boolean>;
|
|
3000
|
+
readonly classes: _angular_core.InputSignal<{
|
|
3001
|
+
[cName: string]: boolean;
|
|
3002
|
+
}>;
|
|
3003
|
+
readonly scrollbarMinSize: _angular_core.InputSignal<number>;
|
|
3004
|
+
readonly scrollbarThickness: _angular_core.InputSignal<number>;
|
|
3005
|
+
readonly scrollbarThumbRenderer: _angular_core.InputSignal<TemplateRef<any> | null>;
|
|
3006
|
+
readonly scrollbarThumbParams: _angular_core.InputSignal<{
|
|
3007
|
+
[propName: string]: any;
|
|
3008
|
+
} | null>;
|
|
3009
|
+
readonly motionBlur: _angular_core.InputSignal<number | "disabled">;
|
|
3010
|
+
readonly maxMotionBlur: _angular_core.InputSignal<number>;
|
|
3011
|
+
readonly motionBlurEnabled: _angular_core.InputSignal<boolean>;
|
|
3012
|
+
readonly actualClasses: Signal<{
|
|
3013
|
+
[cName: string]: boolean;
|
|
3014
|
+
}>;
|
|
3015
|
+
readonly containerClasses: Signal<{
|
|
3016
|
+
[cName: string]: boolean;
|
|
3017
|
+
}>;
|
|
3018
|
+
readonly thumbGradientPositions: _angular_core.WritableSignal<GradientColorPositions>;
|
|
3019
|
+
readonly thumbSize: _angular_core.WritableSignal<number>;
|
|
3020
|
+
readonly scrollbarShow: _angular_core.WritableSignal<boolean>;
|
|
3021
|
+
readonly preparedSignal: _angular_core.WritableSignal<boolean>;
|
|
3022
|
+
readonly listStyles: _angular_core.WritableSignal<{
|
|
3023
|
+
perspectiveOrigin: string;
|
|
3024
|
+
}>;
|
|
3025
|
+
private _scrollBox;
|
|
3026
|
+
get host(): HTMLDivElement | undefined;
|
|
3027
|
+
private _$scrollbarScroll;
|
|
3028
|
+
readonly $scrollbarScroll: rxjs.Observable<boolean>;
|
|
3029
|
+
private _prepared;
|
|
3030
|
+
set prepared(v: boolean);
|
|
3031
|
+
protected setX(x: number, snap?: boolean, normalize?: boolean): void;
|
|
3032
|
+
protected setY(y: number, snap?: boolean, normalize?: boolean): void;
|
|
3033
|
+
set startLayoutOffset(v: number);
|
|
3034
|
+
get startLayoutOffset(): number;
|
|
3035
|
+
readonly viewInitialized: _angular_core.WritableSignal<boolean>;
|
|
3036
|
+
private _isScrollbarUserAction;
|
|
3037
|
+
get isScrollbarUserAction(): boolean;
|
|
3038
|
+
protected _$resizeViewport: Subject<ISize>;
|
|
3039
|
+
readonly $resizeViewport: rxjs.Observable<ISize>;
|
|
3040
|
+
protected _$resizeContent: Subject<ISize>;
|
|
3041
|
+
readonly $resizeContent: rxjs.Observable<ISize>;
|
|
3042
|
+
protected _filterId: string;
|
|
3043
|
+
protected _filter: string;
|
|
3044
|
+
constructor();
|
|
3045
|
+
private recalculatePerspective;
|
|
3046
|
+
protected onResizeViewport(): void;
|
|
3047
|
+
protected onResizeContent(value?: number | null): void;
|
|
3048
|
+
private updateScrollBarHandler;
|
|
3049
|
+
ngAfterViewInit(): void;
|
|
3050
|
+
tick(): void;
|
|
3051
|
+
private updateScrollBar;
|
|
3052
|
+
refreshScrollbar(): void;
|
|
3053
|
+
protected onDragStart(): void;
|
|
3054
|
+
reset(): void;
|
|
3055
|
+
refresh(fireUpdate?: boolean, updateScrollbar?: boolean): void;
|
|
3056
|
+
snapIfNeed(animated?: boolean, fireUpdate?: boolean): void;
|
|
3057
|
+
startScrollTo(): void;
|
|
3058
|
+
finishedScrollTo(): void;
|
|
3059
|
+
scrollTo(params: IScrollToParams$1): number;
|
|
3060
|
+
stopScrollbar(): void;
|
|
3061
|
+
private dropVelocity;
|
|
3062
|
+
protected stopMoving(): void;
|
|
3063
|
+
protected onAnimationComplete(position: number): void;
|
|
3064
|
+
onScrollBarDragHandler(event: IScrollBarDragEvent$1): void;
|
|
3065
|
+
onScrollBarDragEndHandler(event: IScrollBarDragEvent$1): void;
|
|
3066
|
+
private fireUpdateIfEdgesDetected;
|
|
3067
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CnScrollerComponent$1, never>;
|
|
3068
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CnScrollerComponent$1, "cn-scroller", never, { "scrollbarEnabled": { "alias": "scrollbarEnabled"; "required": false; "isSignal": true; }; "scrollbarInteractive": { "alias": "scrollbarInteractive"; "required": false; "isSignal": true; }; "focusedElement": { "alias": "focusedElement"; "required": false; "isSignal": true; }; "overlappingScrollbar": { "alias": "overlappingScrollbar"; "required": false; "isSignal": true; }; "content": { "alias": "content"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "classes": { "alias": "classes"; "required": false; "isSignal": true; }; "scrollbarMinSize": { "alias": "scrollbarMinSize"; "required": false; "isSignal": true; }; "scrollbarThickness": { "alias": "scrollbarThickness"; "required": false; "isSignal": true; }; "scrollbarThumbRenderer": { "alias": "scrollbarThumbRenderer"; "required": false; "isSignal": true; }; "scrollbarThumbParams": { "alias": "scrollbarThumbParams"; "required": false; "isSignal": true; }; "motionBlur": { "alias": "motionBlur"; "required": false; "isSignal": true; }; "maxMotionBlur": { "alias": "maxMotionBlur"; "required": false; "isSignal": true; }; "motionBlurEnabled": { "alias": "motionBlurEnabled"; "required": false; "isSignal": true; }; }, { "onScrollbarVisible": "onScrollbarVisible"; }, never, ["*"], false, never>;
|
|
3069
|
+
}
|
|
3070
|
+
|
|
3071
|
+
declare class CnScrollBarModule$1 {
|
|
3072
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CnScrollBarModule$1, never>;
|
|
3073
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<CnScrollBarModule$1, [typeof CnScrollBarComponent$1], [typeof i2.CommonModule], [typeof CnScrollBarComponent$1]>;
|
|
3074
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<CnScrollBarModule$1>;
|
|
3075
|
+
}
|
|
3076
|
+
|
|
3077
|
+
declare class CnScrollerModule$1 {
|
|
3078
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CnScrollerModule$1, never>;
|
|
3079
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<CnScrollerModule$1, [typeof CnScrollerComponent$1], [typeof i2.CommonModule, typeof CnScrollBarModule$1, typeof CnLocaleSensitiveModule, typeof i5.CdkScrollableModule], [typeof CnScrollerComponent$1]>;
|
|
3080
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<CnScrollerModule$1>;
|
|
3081
|
+
}
|
|
3082
|
+
|
|
3083
|
+
/**
|
|
3084
|
+
* CnPrerenderContainer
|
|
3085
|
+
* Maximum performance for extremely large lists.
|
|
3086
|
+
* It is based on algorithms for virtualization of screen objects.
|
|
3087
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/components/cn-prerender-container/cn-prerender-container.component.ts
|
|
3088
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
3089
|
+
* @email djonnyx@gmail.com
|
|
3090
|
+
*/
|
|
3091
|
+
declare class CnPrerenderContainer {
|
|
3092
|
+
private _list;
|
|
3093
|
+
enabled: _angular_core.InputSignal<boolean>;
|
|
3094
|
+
direction: _angular_core.InputSignal<Direction$1>;
|
|
3095
|
+
isVertical: _angular_core.InputSignal<boolean>;
|
|
3096
|
+
scrollbarEnabled: _angular_core.InputSignal<boolean>;
|
|
3097
|
+
startOffset: _angular_core.InputSignal<number>;
|
|
3098
|
+
endOffset: _angular_core.InputSignal<number>;
|
|
3099
|
+
bounds: _angular_core.InputSignal<ISize>;
|
|
3100
|
+
dynamic: _angular_core.InputSignal<boolean>;
|
|
3101
|
+
itemSize: _angular_core.InputSignal<number>;
|
|
3102
|
+
trackBy: _angular_core.InputSignal<string>;
|
|
3103
|
+
divides: _angular_core.InputSignal<number>;
|
|
3104
|
+
itemRenderer: _angular_core.InputSignal<TemplateRef<any> | undefined>;
|
|
3105
|
+
readonly $render: Observable<PrerenderCache>;
|
|
3106
|
+
get active(): boolean;
|
|
3107
|
+
constructor();
|
|
3108
|
+
clear(): void;
|
|
3109
|
+
on(items?: IVirtualListCollection | null): void;
|
|
3110
|
+
off(): void;
|
|
3111
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CnPrerenderContainer, never>;
|
|
3112
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CnPrerenderContainer, "cn-prerender-container", never, { "enabled": { "alias": "enabled"; "required": false; "isSignal": true; }; "direction": { "alias": "direction"; "required": false; "isSignal": true; }; "isVertical": { "alias": "isVertical"; "required": false; "isSignal": true; }; "scrollbarEnabled": { "alias": "scrollbarEnabled"; "required": false; "isSignal": true; }; "startOffset": { "alias": "startOffset"; "required": false; "isSignal": true; }; "endOffset": { "alias": "endOffset"; "required": false; "isSignal": true; }; "bounds": { "alias": "bounds"; "required": true; "isSignal": true; }; "dynamic": { "alias": "dynamic"; "required": false; "isSignal": true; }; "itemSize": { "alias": "itemSize"; "required": false; "isSignal": true; }; "trackBy": { "alias": "trackBy"; "required": false; "isSignal": true; }; "divides": { "alias": "divides"; "required": false; "isSignal": true; }; "itemRenderer": { "alias": "itemRenderer"; "required": false; "isSignal": true; }; }, {}, never, never, false, never>;
|
|
3113
|
+
}
|
|
3114
|
+
|
|
3115
|
+
/**
|
|
3116
|
+
* CnPrerenderList
|
|
3117
|
+
* Maximum performance for extremely large lists.
|
|
3118
|
+
* It is based on algorithms for virtualization of screen objects.
|
|
3119
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/components/cn-prerender-container/components/cn-prerender-list/cn-prerender-list.component.ts
|
|
3120
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
3121
|
+
* @email djonnyx@gmail.com
|
|
3122
|
+
*/
|
|
3123
|
+
declare class CnPrerenderList implements OnDestroy {
|
|
3124
|
+
private _listContainerRef;
|
|
3125
|
+
enabled: _angular_core.InputSignal<boolean>;
|
|
3126
|
+
direction: _angular_core.InputSignal<Direction$1>;
|
|
3127
|
+
isVertical: _angular_core.InputSignal<boolean>;
|
|
3128
|
+
scrollbarEnabled: _angular_core.InputSignal<boolean>;
|
|
3129
|
+
startOffset: _angular_core.InputSignal<number>;
|
|
3130
|
+
endOffset: _angular_core.InputSignal<number>;
|
|
3131
|
+
bounds: _angular_core.InputSignal<ISize>;
|
|
3132
|
+
dynamic: _angular_core.InputSignal<boolean>;
|
|
3133
|
+
itemSize: _angular_core.InputSignal<number>;
|
|
3134
|
+
trackBy: _angular_core.InputSignal<string>;
|
|
3135
|
+
divides: _angular_core.InputSignal<number>;
|
|
3136
|
+
itemRenderer: _angular_core.InputSignal<TemplateRef<any> | undefined>;
|
|
3137
|
+
itemComponentClass: _angular_core.InputSignal<Component$1<BaseVirtualListItemComponent>>;
|
|
3138
|
+
protected _items: _angular_core.WritableSignal<IVirtualListCollection<Object> | null>;
|
|
3139
|
+
protected readonly classes: _angular_core.WritableSignal<{
|
|
3140
|
+
[cName: string]: boolean;
|
|
3141
|
+
}>;
|
|
3142
|
+
private _$render;
|
|
3143
|
+
$render: Observable<PrerenderCache>;
|
|
3144
|
+
private _$componentResize;
|
|
3145
|
+
protected $componentResize: Observable<PrerenderCache>;
|
|
3146
|
+
private _trackBox;
|
|
3147
|
+
private _onTrackBoxResizeHandler;
|
|
3148
|
+
private _elementRef;
|
|
3149
|
+
protected $isVertical: Observable<boolean>;
|
|
3150
|
+
protected $items: Observable<IVirtualListCollection | null>;
|
|
3151
|
+
protected $bounds: Observable<ISize>;
|
|
3152
|
+
get active(): boolean;
|
|
3153
|
+
private _activated;
|
|
3154
|
+
private _subscriptions;
|
|
3155
|
+
private _destroyRef;
|
|
3156
|
+
constructor();
|
|
3157
|
+
activate(): void;
|
|
3158
|
+
deactivate(): void;
|
|
3159
|
+
clear(): void;
|
|
3160
|
+
on(items?: IVirtualListCollection | null): void;
|
|
3161
|
+
off(): void;
|
|
3162
|
+
ngAfterViewInit(): void;
|
|
3163
|
+
ngOnDestroy(): void;
|
|
3164
|
+
dispose(): void;
|
|
3165
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CnPrerenderList, never>;
|
|
3166
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CnPrerenderList, "cn-prerender-list", never, { "enabled": { "alias": "enabled"; "required": false; "isSignal": true; }; "direction": { "alias": "direction"; "required": false; "isSignal": true; }; "isVertical": { "alias": "isVertical"; "required": false; "isSignal": true; }; "scrollbarEnabled": { "alias": "scrollbarEnabled"; "required": false; "isSignal": true; }; "startOffset": { "alias": "startOffset"; "required": false; "isSignal": true; }; "endOffset": { "alias": "endOffset"; "required": false; "isSignal": true; }; "bounds": { "alias": "bounds"; "required": true; "isSignal": true; }; "dynamic": { "alias": "dynamic"; "required": false; "isSignal": true; }; "itemSize": { "alias": "itemSize"; "required": false; "isSignal": true; }; "trackBy": { "alias": "trackBy"; "required": false; "isSignal": true; }; "divides": { "alias": "divides"; "required": false; "isSignal": true; }; "itemRenderer": { "alias": "itemRenderer"; "required": false; "isSignal": true; }; "itemComponentClass": { "alias": "itemComponentClass"; "required": false; "isSignal": true; }; }, {}, never, never, false, never>;
|
|
3167
|
+
}
|
|
3168
|
+
|
|
3169
|
+
/**
|
|
3170
|
+
* CnPrerenderVirtualListItemComponent
|
|
3171
|
+
* Maximum performance for extremely large lists.
|
|
3172
|
+
* It is based on algorithms for virtualization of screen objects.
|
|
3173
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/components/cn-prerender-container/components/cn-prerender-list-item/cn-prerender-list-item.component.ts
|
|
3174
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
3175
|
+
* @email djonnyx@gmail.com
|
|
3176
|
+
*/
|
|
3177
|
+
declare class CnPrerenderVirtualListItemComponent extends CnVirtualListItemComponent {
|
|
3178
|
+
protected update(): void;
|
|
3179
|
+
show(): void;
|
|
3180
|
+
hide(): void;
|
|
3181
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CnPrerenderVirtualListItemComponent, never>;
|
|
3182
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CnPrerenderVirtualListItemComponent, "cn-prerender-virtual-list-item", never, {}, {}, never, never, false, never>;
|
|
3183
|
+
}
|
|
3184
|
+
|
|
3185
|
+
declare class CnPrerenderVirtualListItemModule {
|
|
3186
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CnPrerenderVirtualListItemModule, never>;
|
|
3187
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<CnPrerenderVirtualListItemModule, [typeof CnPrerenderVirtualListItemComponent], [typeof i2.CommonModule, typeof CnVirtualClickModule], [typeof CnPrerenderVirtualListItemComponent]>;
|
|
3188
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<CnPrerenderVirtualListItemModule>;
|
|
3189
|
+
}
|
|
3190
|
+
|
|
3191
|
+
/**
|
|
3192
|
+
* CnPrerenderScrollerComponent
|
|
3193
|
+
* Maximum performance for extremely large lists.
|
|
3194
|
+
* It is based on algorithms for virtualization of screen objects.
|
|
3195
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/list/components/cn-prerender-container/components/cn-prerender-scroller/cn-prerender-scroller.component.ts
|
|
3196
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
3197
|
+
* @email djonnyx@gmail.com
|
|
3198
|
+
*/
|
|
3199
|
+
declare class CnPrerenderScrollerComponent extends BaseScrollView$1 {
|
|
3200
|
+
scrollBar: CnScrollBarComponent$1 | undefined;
|
|
3201
|
+
scrollbarEnabled: _angular_core.InputSignal<boolean>;
|
|
3202
|
+
classes: _angular_core.InputSignal<{
|
|
3203
|
+
[cName: string]: boolean;
|
|
3204
|
+
}>;
|
|
3205
|
+
actualClasses: Signal<{
|
|
3206
|
+
[cName: string]: boolean;
|
|
3207
|
+
}>;
|
|
3208
|
+
containerClasses: _angular_core.WritableSignal<{
|
|
3209
|
+
[cName: string]: boolean;
|
|
3210
|
+
}>;
|
|
3211
|
+
thumbSize: _angular_core.WritableSignal<number>;
|
|
3212
|
+
scrollbarShow: _angular_core.WritableSignal<boolean>;
|
|
3213
|
+
set x(v: number);
|
|
3214
|
+
get x(): number;
|
|
3215
|
+
set y(v: number);
|
|
3216
|
+
get y(): number;
|
|
3217
|
+
protected onResizeViewport(): void;
|
|
3218
|
+
protected onResizeContent(): void;
|
|
3219
|
+
private _scrollBox;
|
|
3220
|
+
constructor();
|
|
3221
|
+
private updateScrollBarHandler;
|
|
3222
|
+
protected updateScrollBar(): void;
|
|
3223
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CnPrerenderScrollerComponent, never>;
|
|
3224
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CnPrerenderScrollerComponent, "cn-prerender-scroller", never, { "scrollbarEnabled": { "alias": "scrollbarEnabled"; "required": false; "isSignal": true; }; "classes": { "alias": "classes"; "required": false; "isSignal": true; }; }, {}, never, ["*"], false, never>;
|
|
3225
|
+
}
|
|
3226
|
+
|
|
3227
|
+
declare class CnPrerenderScrollerModule {
|
|
3228
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CnPrerenderScrollerModule, never>;
|
|
3229
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<CnPrerenderScrollerModule, [typeof CnPrerenderScrollerComponent], [typeof i2.CommonModule, typeof CnLocaleSensitiveModule], [typeof CnPrerenderScrollerComponent]>;
|
|
3230
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<CnPrerenderScrollerModule>;
|
|
3231
|
+
}
|
|
3232
|
+
|
|
3233
|
+
declare class CnPrerenderListModule {
|
|
3234
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CnPrerenderListModule, never>;
|
|
3235
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<CnPrerenderListModule, [typeof CnPrerenderList], [typeof i2.CommonModule, typeof CnPrerenderVirtualListItemModule, typeof CnPrerenderScrollerModule], [typeof CnPrerenderList]>;
|
|
3236
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<CnPrerenderListModule>;
|
|
3237
|
+
}
|
|
3238
|
+
|
|
3239
|
+
declare class CnPrerenderContainerModule {
|
|
3240
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CnPrerenderContainerModule, never>;
|
|
3241
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<CnPrerenderContainerModule, [typeof CnPrerenderContainer], [typeof i2.CommonModule, typeof CnPrerenderListModule], [typeof CnPrerenderContainer]>;
|
|
3242
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<CnPrerenderContainerModule>;
|
|
3243
|
+
}
|
|
3244
|
+
|
|
3245
|
+
declare class CnVirtualListModule {
|
|
3246
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CnVirtualListModule, never>;
|
|
3247
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<CnVirtualListModule, [typeof CnVirtualListComponent], [typeof i2.CommonModule, typeof CnVirtualListItemModule, typeof CnScrollerModule$1, typeof CnPrerenderContainerModule, typeof CnLocaleSensitiveModule], [typeof CnVirtualListComponent]>;
|
|
3248
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<CnVirtualListModule>;
|
|
3249
|
+
}
|
|
3250
|
+
|
|
3251
|
+
/**
|
|
3252
|
+
* IScrollToParams
|
|
3253
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/scroll-view/components/cn-scroll-view/interfaces/scroll-to-params.ts
|
|
3254
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
3255
|
+
* @email djonnyx@gmail.com
|
|
3256
|
+
*/
|
|
3257
|
+
interface IScrollToParams {
|
|
3258
|
+
x?: number | null;
|
|
3259
|
+
y?: number | null;
|
|
3260
|
+
left?: number | null;
|
|
3261
|
+
top?: number | null;
|
|
3262
|
+
normalize?: boolean;
|
|
3263
|
+
force?: boolean;
|
|
3264
|
+
blending?: boolean;
|
|
3265
|
+
behavior?: ScrollBehavior;
|
|
3266
|
+
ease?: Easing;
|
|
3267
|
+
fireUpdate?: boolean;
|
|
3268
|
+
userAction?: boolean;
|
|
3269
|
+
duration?: number;
|
|
3270
|
+
}
|
|
3271
|
+
|
|
3272
|
+
/**
|
|
3273
|
+
* ScrollerDirection
|
|
3274
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/scroll-view/components/cn-scroll-view/enums/scroller-direction.ts
|
|
3275
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
3276
|
+
* @email djonnyx@gmail.com
|
|
3277
|
+
*/
|
|
3278
|
+
declare enum ScrollerDirection {
|
|
3279
|
+
HORIZONTAL = "horizontal",
|
|
3280
|
+
VERTICAL = "vertical",
|
|
3281
|
+
BOTH = "both"
|
|
3282
|
+
}
|
|
3283
|
+
|
|
3284
|
+
/**
|
|
3285
|
+
* ScrollerDirections
|
|
3286
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/scroll-view/components/cn-scroll-view/enums/scroller-directions.ts
|
|
3287
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
3288
|
+
* @email djonnyx@gmail.com
|
|
3289
|
+
*/
|
|
3290
|
+
type ScrollerDirections = ScrollerDirection | 'horizontal' | 'vertical' | 'both';
|
|
3291
|
+
|
|
3292
|
+
/**
|
|
3293
|
+
* BaseScrollView
|
|
3294
|
+
* Maximum performance for extremely large lists.
|
|
3295
|
+
* It is based on algorithms for virtualization of screen objects.
|
|
3296
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/scroll-view/components/cn-scroll-view/base/base-scroll-view.component.ts
|
|
3297
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
3298
|
+
* @email djonnyx@gmail.com
|
|
3299
|
+
*/
|
|
3300
|
+
declare class BaseScrollView {
|
|
3301
|
+
readonly scrollContent: _angular_core.Signal<ElementRef<HTMLDivElement> | undefined>;
|
|
3302
|
+
readonly scrollViewport: _angular_core.Signal<ElementRef<HTMLDivElement> | undefined>;
|
|
3303
|
+
readonly direction: _angular_core.InputSignal<ScrollerDirections>;
|
|
3304
|
+
readonly langTextDir: _angular_core.InputSignal<TextDirection>;
|
|
3305
|
+
readonly leftOffset: _angular_core.InputSignal<number>;
|
|
3306
|
+
readonly topOffset: _angular_core.InputSignal<number>;
|
|
3307
|
+
readonly rightOffset: _angular_core.InputSignal<number>;
|
|
3308
|
+
readonly bottomOffset: _angular_core.InputSignal<number>;
|
|
3309
|
+
readonly grabbing: _angular_core.WritableSignal<boolean>;
|
|
3310
|
+
protected _inversion: boolean;
|
|
3311
|
+
protected _overscrollEnabled: boolean;
|
|
3312
|
+
protected _$updateScrollBarHorizontal: Subject<void>;
|
|
3313
|
+
protected $updateScrollBarHorizontal: rxjs.Observable<void>;
|
|
3314
|
+
protected _$updateScrollBarVertical: Subject<void>;
|
|
3315
|
+
protected $updateScrollBarVertical: rxjs.Observable<void>;
|
|
3316
|
+
get scrollableX(): boolean;
|
|
3317
|
+
get scrollableY(): boolean;
|
|
3318
|
+
protected _destroyRef: DestroyRef;
|
|
3319
|
+
protected _service: IScrollViewService;
|
|
3320
|
+
protected _isMoving: boolean;
|
|
3321
|
+
get isMoving(): boolean;
|
|
3322
|
+
protected _x: number;
|
|
3323
|
+
set x(v: number);
|
|
3324
|
+
get x(): number;
|
|
3325
|
+
protected _y: number;
|
|
3326
|
+
set y(v: number);
|
|
3327
|
+
get y(): number;
|
|
3328
|
+
protected _actualTotalWidth: number;
|
|
3329
|
+
protected _totalWidth: number;
|
|
3330
|
+
set totalWidth(v: number);
|
|
3331
|
+
get totalWidth(): number;
|
|
3332
|
+
protected _actualTotalHeight: number;
|
|
3333
|
+
protected _totalHeight: number;
|
|
3334
|
+
set totalHeight(v: number);
|
|
3335
|
+
get totalHeight(): number;
|
|
3336
|
+
protected _startLayoutOffsetX: number;
|
|
3337
|
+
set startLayoutOffsetX(v: number);
|
|
3338
|
+
get startLayoutOffsetX(): number;
|
|
3339
|
+
protected _startLayoutOffsetY: number;
|
|
3340
|
+
set startLayoutOffsetY(v: number);
|
|
3341
|
+
get startLayoutOffsetY(): number;
|
|
3342
|
+
get actualScrollHeight(): number;
|
|
3343
|
+
get actualScrollWidth(): number;
|
|
3344
|
+
protected _actualX: number;
|
|
3345
|
+
get actualScrollLeft(): number;
|
|
3346
|
+
protected _actualY: number;
|
|
3347
|
+
get actualScrollTop(): number;
|
|
3348
|
+
get scrollLeft(): number;
|
|
3349
|
+
get scrollTop(): number;
|
|
3350
|
+
get scrollWidth(): number;
|
|
3351
|
+
get scrollHeight(): number;
|
|
3352
|
+
readonly viewportBounds: _angular_core.WritableSignal<ISize>;
|
|
3353
|
+
readonly contentBounds: _angular_core.WritableSignal<ISize>;
|
|
3354
|
+
tick(): void;
|
|
3355
|
+
protected overrideCoordinates(x: number, y: number): void;
|
|
3356
|
+
protected normalizeScrollWidth(): boolean;
|
|
3357
|
+
protected normalizeScrollHeight(): boolean;
|
|
3358
|
+
protected normalizeScrollSize(): void;
|
|
3359
|
+
protected onResizeViewport(): void;
|
|
3360
|
+
protected onResizeContent(valueWidth?: number | null, valueHeight?: number | null): void;
|
|
3361
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<BaseScrollView, never>;
|
|
3362
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<BaseScrollView, "base-scroll-view", never, { "direction": { "alias": "direction"; "required": false; "isSignal": true; }; "langTextDir": { "alias": "langTextDir"; "required": false; "isSignal": true; }; "leftOffset": { "alias": "leftOffset"; "required": false; "isSignal": true; }; "topOffset": { "alias": "topOffset"; "required": false; "isSignal": true; }; "rightOffset": { "alias": "rightOffset"; "required": false; "isSignal": true; }; "bottomOffset": { "alias": "bottomOffset"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
3363
|
+
}
|
|
3364
|
+
|
|
3365
|
+
/**
|
|
3366
|
+
* IAnimationParams
|
|
3367
|
+
* Maximum performance for extremely large lists.
|
|
3368
|
+
* It is based on algorithms for virtualization of screen objects.
|
|
3369
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/scroll-view/interfaces/animation-params.ts
|
|
3370
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
3371
|
+
* @email djonnyx@gmail.com
|
|
3372
|
+
*/
|
|
3373
|
+
interface IAnimationParams {
|
|
3374
|
+
scrollToItem: number;
|
|
3375
|
+
}
|
|
3376
|
+
|
|
3377
|
+
/**
|
|
3378
|
+
* A value of -1 indicates the direction is up or left (if the list direction is horizontal).
|
|
3379
|
+
* A value of 1 indicates the direction is down or right (if the list direction is horizontal).
|
|
3380
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/scroll-view/types/scroll-direction.ts
|
|
3381
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
3382
|
+
* @email djonnyx@gmail.com
|
|
3383
|
+
*/
|
|
3384
|
+
type ScrollDirection = -1 | 1 | 0;
|
|
3385
|
+
|
|
3386
|
+
/**
|
|
3387
|
+
* Axis of the arrangement of virtual list elements.
|
|
3388
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/scroll-view/enums/directions.ts
|
|
3389
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
3390
|
+
* @email djonnyx@gmail.com
|
|
3391
|
+
*/
|
|
3392
|
+
declare enum Directions {
|
|
3393
|
+
/**
|
|
3394
|
+
* Horizontal axis.
|
|
3395
|
+
*/
|
|
3396
|
+
HORIZONTAL = "horizontal",
|
|
3397
|
+
/**
|
|
3398
|
+
* Vertical axis.
|
|
3399
|
+
*/
|
|
3400
|
+
VERTICAL = "vertical",
|
|
3401
|
+
/**
|
|
3402
|
+
* Horizontal and vertical axes.
|
|
3403
|
+
*/
|
|
3404
|
+
BOTH = "both"
|
|
3405
|
+
}
|
|
3406
|
+
|
|
3407
|
+
/**
|
|
3408
|
+
* Axis of the arrangement of virtual list elements.
|
|
3409
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/scroll-view/enums/direction.ts
|
|
3410
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
3411
|
+
* @email djonnyx@gmail.com
|
|
3412
|
+
*/
|
|
3413
|
+
type Direction = Directions | 'horizontal' | 'vertical' | 'both';
|
|
3414
|
+
|
|
3415
|
+
/**
|
|
3416
|
+
* Interface IScrollEvent.
|
|
3417
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/scroll-view/interfaces/scroll-event.ts
|
|
3418
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
3419
|
+
* @email djonnyx@gmail.com
|
|
3420
|
+
*/
|
|
3421
|
+
interface IScrollEvent {
|
|
3422
|
+
/**
|
|
3423
|
+
* Scroll area width
|
|
3424
|
+
*/
|
|
3425
|
+
scrollWidth: number;
|
|
3426
|
+
/**
|
|
3427
|
+
* Scroll area height
|
|
3428
|
+
*/
|
|
3429
|
+
scrollHeight: number;
|
|
3430
|
+
/**
|
|
3431
|
+
* Viewport width
|
|
3432
|
+
*/
|
|
3433
|
+
viewportWidth: number;
|
|
3434
|
+
/**
|
|
3435
|
+
* Viewport height
|
|
3436
|
+
*/
|
|
3437
|
+
viewportHeight: number;
|
|
3438
|
+
/**
|
|
3439
|
+
* The scroller orientation.
|
|
3440
|
+
*/
|
|
3441
|
+
scrollerDirection: Direction;
|
|
3442
|
+
/**
|
|
3443
|
+
* A value of -1 indicates the direction is up or left (if the list direction is horizontal).
|
|
3444
|
+
* A value of 1 indicates the direction is down or right (if the list direction is horizontal).
|
|
3445
|
+
*/
|
|
3446
|
+
directionX: ScrollDirection;
|
|
3447
|
+
/**
|
|
3448
|
+
* A value of -1 indicates the direction is up or left (if the list direction is horizontal).
|
|
3449
|
+
* A value of 1 indicates the direction is down or right (if the list direction is horizontal).
|
|
3450
|
+
*/
|
|
3451
|
+
directionY: ScrollDirection;
|
|
3452
|
+
/**
|
|
3453
|
+
* If true then indicates that the list has been scrolled to the left side.
|
|
3454
|
+
*/
|
|
3455
|
+
isLeft: boolean;
|
|
3456
|
+
/**
|
|
3457
|
+
* If true then indicates that the list has been scrolled to the right side.
|
|
3458
|
+
*/
|
|
3459
|
+
isRight: boolean;
|
|
3460
|
+
/**
|
|
3461
|
+
* If true then indicates that the list has been scrolled to the top side.
|
|
3462
|
+
*/
|
|
3463
|
+
isTop: boolean;
|
|
3464
|
+
/**
|
|
3465
|
+
* If true then indicates that the list has been scrolled to the bottom side.
|
|
3466
|
+
*/
|
|
3467
|
+
isBottom: boolean;
|
|
3468
|
+
/**
|
|
3469
|
+
* Has user action
|
|
3470
|
+
*/
|
|
3471
|
+
userAction: boolean;
|
|
3472
|
+
}
|
|
3473
|
+
|
|
3474
|
+
/**
|
|
3475
|
+
* Interface IScrollOptions.
|
|
3476
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/scroll-view/interfaces/scroll-options.ts
|
|
3477
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
3478
|
+
* @email djonnyx@gmail.com
|
|
3479
|
+
*/
|
|
3480
|
+
interface IScrollOptions {
|
|
3481
|
+
x?: number | null;
|
|
3482
|
+
y?: number | null;
|
|
3483
|
+
left?: number | null;
|
|
3484
|
+
top?: number | null;
|
|
3485
|
+
blending?: boolean;
|
|
3486
|
+
behavior?: ScrollBehavior;
|
|
3487
|
+
ease?: Easing;
|
|
3488
|
+
duration?: number;
|
|
3489
|
+
}
|
|
3490
|
+
|
|
3491
|
+
/**
|
|
3492
|
+
* Interface IScrollingSettings.
|
|
3493
|
+
* - frictionalForce - Frictional force. Default value is `0.035`.
|
|
3494
|
+
* - mass - Mass. Default value is `0.005`.
|
|
3495
|
+
* - maxDistance - Maximum scrolling distance. Default value is `12500`.
|
|
3496
|
+
* - maxDuration - Maximum animation duration. Default value is `4000`.
|
|
3497
|
+
* - speedScale - Speed scale. Default value is `15`.
|
|
3498
|
+
* - optimization - Enables scrolling performance optimization. Default value is `true`.
|
|
3499
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/scroll-view/interfaces/scrolling-settings.ts
|
|
3500
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
3501
|
+
* @email djonnyx@gmail.com
|
|
3502
|
+
*/
|
|
3503
|
+
interface IScrollingSettings {
|
|
3504
|
+
/**
|
|
3505
|
+
* Frictional force. Default value is `0.035`.
|
|
3506
|
+
*/
|
|
3507
|
+
frictionalForce?: number;
|
|
3508
|
+
/**
|
|
3509
|
+
* Maximum animation duration. Default value is `4000`.
|
|
3510
|
+
*/
|
|
3511
|
+
maxDuration?: number;
|
|
3512
|
+
/**
|
|
3513
|
+
* Mass. Default value is `0.005`.
|
|
3514
|
+
*/
|
|
3515
|
+
mass?: number;
|
|
3516
|
+
/**
|
|
3517
|
+
* Maximum scrolling distance. Default value is `12500`.
|
|
3518
|
+
*/
|
|
3519
|
+
maxDistance?: number;
|
|
3520
|
+
/**
|
|
3521
|
+
* Speed scale. Default value is `15`.
|
|
3522
|
+
*/
|
|
3523
|
+
speedScale?: number;
|
|
3524
|
+
/**
|
|
3525
|
+
* Enables scrolling performance optimization. Default value is `true`.
|
|
3526
|
+
*/
|
|
3527
|
+
optimization?: boolean;
|
|
3528
|
+
}
|
|
3529
|
+
|
|
3530
|
+
/**
|
|
3531
|
+
* IScrollViewService
|
|
3532
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/scroll-view/interfaces/scroll-view-service.ts
|
|
3533
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
3534
|
+
* @email djonnyx@gmail.com
|
|
3535
|
+
*/
|
|
3536
|
+
interface IScrollViewService {
|
|
3537
|
+
get id(): number;
|
|
3538
|
+
initialize: (id: number) => void;
|
|
3539
|
+
animationParams: IAnimationParams;
|
|
3540
|
+
direction: Direction;
|
|
3541
|
+
scrollLeftOffset: number;
|
|
3542
|
+
scrollRightOffset: number;
|
|
3543
|
+
scrollTopOffset: number;
|
|
3544
|
+
scrollBottomOffset: number;
|
|
3545
|
+
snapScrollToLeft: boolean;
|
|
3546
|
+
snapScrollToRight: boolean;
|
|
3547
|
+
snapScrollToTop: boolean;
|
|
3548
|
+
snapScrollToBottom: boolean;
|
|
3549
|
+
get scrollBarSize(): number;
|
|
3550
|
+
set scrollBarSize(v: number);
|
|
3551
|
+
readonly $scrollBarSize: Observable<number>;
|
|
3552
|
+
readonly $langTextDir: Observable<TextDirection>;
|
|
3553
|
+
get langTextDir(): TextDirection;
|
|
3554
|
+
set langTextDir(v: TextDirection);
|
|
3555
|
+
readonly $clickDistance: Observable<number>;
|
|
3556
|
+
get clickDistance(): number;
|
|
3557
|
+
set clickDistance(v: number);
|
|
3558
|
+
readonly $grabbing: Observable<boolean>;
|
|
3559
|
+
get grabbing(): boolean;
|
|
3560
|
+
set grabbing(v: boolean);
|
|
3561
|
+
readonly $tick: Observable<void>;
|
|
3562
|
+
getComponentBoundsByIntersectionPosition: (positionX: number, positionY: number, maxPositionX?: number | null, maxPositionY?: number | null) => (IRect & {
|
|
3563
|
+
id: Id | null;
|
|
3564
|
+
isFirst: boolean;
|
|
3565
|
+
isLast: boolean;
|
|
3566
|
+
}) | null;
|
|
3567
|
+
setIntersectionElementBySnapToItemAlign: (id: Id | null) => void;
|
|
3568
|
+
update: (immediately?: boolean) => void;
|
|
3569
|
+
scrollToLeft: (options?: IScrollOptions) => void;
|
|
3570
|
+
scrollToRight: (options?: IScrollOptions) => void;
|
|
3571
|
+
scrollToTop: (options?: IScrollOptions) => void;
|
|
3572
|
+
scrollToBottom: (options?: IScrollOptions) => void;
|
|
3573
|
+
}
|
|
3574
|
+
|
|
3575
|
+
/**
|
|
3576
|
+
* IWheelEvent
|
|
3577
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/scroll-view/components/cn-scroll-view/interfaces/wheel-event.ts
|
|
3578
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
3579
|
+
* @email djonnyx@gmail.com
|
|
3580
|
+
*/
|
|
3581
|
+
interface IWheelEvent {
|
|
3582
|
+
deltaX: number;
|
|
3583
|
+
deltaY: number;
|
|
3584
|
+
}
|
|
3585
|
+
|
|
3586
|
+
/**
|
|
3587
|
+
* CnScrollView
|
|
3588
|
+
* Maximum performance for extremely large lists.
|
|
3589
|
+
* It is based on algorithms for virtualization of screen objects.
|
|
3590
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/scroll-view/components/cn-scroll-view/cn-scroll-view.component.ts
|
|
3591
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
3592
|
+
* @email djonnyx@gmail.com
|
|
3593
|
+
*/
|
|
3594
|
+
declare class CnScrollView extends BaseScrollView {
|
|
3595
|
+
readonly cdkScrollable: CdkScrollable | undefined;
|
|
3596
|
+
readonly scrollable: _angular_core.InputSignal<boolean>;
|
|
3597
|
+
readonly scrollBehavior: _angular_core.InputSignal<ScrollBehavior>;
|
|
3598
|
+
readonly overscrollEnabled: _angular_core.InputSignal<boolean>;
|
|
3599
|
+
readonly scrollingSettings: _angular_core.InputSignal<IScrollingSettings>;
|
|
3600
|
+
readonly animationParams: _angular_core.InputSignal<IAnimationParams>;
|
|
3601
|
+
protected _normalizeValueFromZero: boolean;
|
|
3602
|
+
protected _isScrollsTo: boolean;
|
|
3603
|
+
private _scrollDirectionValueX;
|
|
3604
|
+
private _scrollDirectionValueY;
|
|
3605
|
+
private _$scrollDirectionX;
|
|
3606
|
+
readonly $scrollDirectionX: rxjs.Observable<ScrollDirection>;
|
|
3607
|
+
set scrollDirectionX(v: ScrollDirection);
|
|
3608
|
+
get scrollDirectionX(): ScrollDirection;
|
|
3609
|
+
private _$scrollDirectionY;
|
|
3610
|
+
readonly $scrollDirectionY: rxjs.Observable<ScrollDirection>;
|
|
3611
|
+
set scrollDirectionY(v: ScrollDirection);
|
|
3612
|
+
get scrollDirectionY(): ScrollDirection;
|
|
3613
|
+
protected _$wheel: Subject<IWheelEvent>;
|
|
3614
|
+
readonly $wheel: rxjs.Observable<IWheelEvent>;
|
|
3615
|
+
protected _$scroll: Subject<boolean>;
|
|
3616
|
+
readonly $scroll: rxjs.Observable<boolean>;
|
|
3617
|
+
protected _$scrollEnd: Subject<boolean>;
|
|
3618
|
+
readonly $scrollEnd: rxjs.Observable<boolean>;
|
|
3619
|
+
protected _velocitiesX: Array<number>;
|
|
3620
|
+
protected _velocitiesY: Array<number>;
|
|
3621
|
+
protected _$velocityX: BehaviorSubject<number>;
|
|
3622
|
+
protected $velocityX: rxjs.Observable<number>;
|
|
3623
|
+
get velocityX(): number;
|
|
3624
|
+
protected _$velocityY: BehaviorSubject<number>;
|
|
3625
|
+
protected $velocityY: rxjs.Observable<number>;
|
|
3626
|
+
get velocityY(): number;
|
|
3627
|
+
protected _$averageVelocityX: BehaviorSubject<number>;
|
|
3628
|
+
protected $averageVelocityX: rxjs.Observable<number>;
|
|
3629
|
+
get averageVelocityX(): number;
|
|
3630
|
+
protected _$averageVelocityY: BehaviorSubject<number>;
|
|
3631
|
+
protected $averageVelocityY: rxjs.Observable<number>;
|
|
3632
|
+
get averageVelocityY(): number;
|
|
3633
|
+
private _measureVelocityTimestampX;
|
|
3634
|
+
private _measureVelocityTimestampY;
|
|
3635
|
+
private _measureVelocityLastPositionX;
|
|
3636
|
+
private _measureVelocityLastPositionY;
|
|
3637
|
+
private _startPositionX;
|
|
3638
|
+
private _startPositionY;
|
|
3639
|
+
private _touchId;
|
|
3640
|
+
protected _animatorX: Animator;
|
|
3641
|
+
protected _animatorY: Animator;
|
|
3642
|
+
protected _interactive: boolean;
|
|
3643
|
+
private _overscrollIteration;
|
|
3644
|
+
set x(v: number);
|
|
3645
|
+
get x(): number;
|
|
3646
|
+
protected setX(x: number, normalize?: boolean): void;
|
|
3647
|
+
set y(v: number);
|
|
3648
|
+
get y(): number;
|
|
3649
|
+
protected setY(y: number, normalize?: boolean): void;
|
|
3650
|
+
protected _deltaX: number;
|
|
3651
|
+
set deltaX(v: number);
|
|
3652
|
+
protected _deltaY: number;
|
|
3653
|
+
set deltaY(v: number);
|
|
3654
|
+
set startLayoutOffsetX(v: number);
|
|
3655
|
+
get startLayoutOffsetX(): number;
|
|
3656
|
+
set startLayoutOffsetY(v: number);
|
|
3657
|
+
get startLayoutOffsetY(): number;
|
|
3658
|
+
protected _intersectionComponentId: Id | null;
|
|
3659
|
+
get animatedX(): boolean;
|
|
3660
|
+
get animatedY(): boolean;
|
|
3661
|
+
get animated(): boolean;
|
|
3662
|
+
protected _horizontalAxisInvertion: Signal<boolean>;
|
|
3663
|
+
protected _horizontalAxisEnabled: Signal<boolean>;
|
|
3664
|
+
protected _verticalAxisEnabled: Signal<boolean>;
|
|
3665
|
+
protected _horizontalScrollRatio: number;
|
|
3666
|
+
get horizontalScrollRatio(): number;
|
|
3667
|
+
protected _verticalScrollRatio: number;
|
|
3668
|
+
get verticalScrollRatio(): number;
|
|
3669
|
+
constructor();
|
|
3670
|
+
hasAnimationX(...ids: Array<number>): boolean;
|
|
3671
|
+
hasAnimationY(...ids: Array<number>): boolean;
|
|
3672
|
+
hasAnimation(...ids: Array<number>): boolean;
|
|
3673
|
+
protected updateDirectionX(position: number, prePosition: number): void;
|
|
3674
|
+
protected updateDirectionY(position: number, prePosition: number): void;
|
|
3675
|
+
protected overrideCoordinates(x: number, y: number): void;
|
|
3676
|
+
protected measureVelocity(): void;
|
|
3677
|
+
protected stopMoving(): void;
|
|
3678
|
+
private calculatePosition;
|
|
3679
|
+
private cancelOverscroll;
|
|
3680
|
+
private checkOverscrollByAxis;
|
|
3681
|
+
private _overscrollXIteration;
|
|
3682
|
+
private _overscrollYIteration;
|
|
3683
|
+
private checkOverscroll;
|
|
3684
|
+
private calculateVelocity;
|
|
3685
|
+
private calculateAcceleration;
|
|
3686
|
+
stopScrolling(): void;
|
|
3687
|
+
protected move(x: number | null, y: number | null, blending?: boolean, userAction?: boolean, fireUpdate?: boolean): void;
|
|
3688
|
+
private calculateParamsWithVelocity;
|
|
3689
|
+
protected moveWithAcceleration(positionX: number, vX: number, a0X: number, timestampX: number, positionY: number, vY: number, a0Y: number, timestampY: number): void;
|
|
3690
|
+
protected normalizeValueX(value: number): number;
|
|
3691
|
+
protected normalizeValueY(value: number): number;
|
|
3692
|
+
protected animate(axis: 'x' | 'y', startValue: number, endValue: number, duration?: number, easingFunction?: Easing, blending?: boolean, userAction?: boolean): number;
|
|
3693
|
+
protected normalizeScrollWidth(): boolean;
|
|
3694
|
+
protected normalizeScrollHeight(): boolean;
|
|
3695
|
+
protected onAnimationComplete(position: number): void;
|
|
3696
|
+
fireScroll(userAction?: boolean): void;
|
|
3697
|
+
scrollLimits(value?: number | undefined, silent?: boolean): boolean;
|
|
3698
|
+
scroll(params: IScrollToParams): Array<number> | null;
|
|
3699
|
+
protected emitScrollableEvent(): void;
|
|
3700
|
+
refreshCoordinate(x: number, y: number): void;
|
|
3701
|
+
protected fireScrollEvent(userAction: boolean): void;
|
|
3702
|
+
protected onDragStart(): void;
|
|
3703
|
+
reset(x?: number, y?: number): void;
|
|
3704
|
+
stopAnimation(...ids: Array<number>): void;
|
|
3705
|
+
ngOnDestroy(): void;
|
|
3706
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CnScrollView, never>;
|
|
3707
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CnScrollView, "cn-scroll-view", never, { "scrollable": { "alias": "scrollable"; "required": false; "isSignal": true; }; "scrollBehavior": { "alias": "scrollBehavior"; "required": false; "isSignal": true; }; "overscrollEnabled": { "alias": "overscrollEnabled"; "required": false; "isSignal": true; }; "scrollingSettings": { "alias": "scrollingSettings"; "required": false; "isSignal": true; }; "animationParams": { "alias": "animationParams"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
3708
|
+
}
|
|
3709
|
+
|
|
3710
|
+
/**
|
|
3711
|
+
* IScrollBarDragEvent
|
|
3712
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/scroll-view/components/ng-scroll-bar/interfaces/scrollbar-drag-data.ts
|
|
3713
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
3714
|
+
* @email djonnyx@gmail.com
|
|
3715
|
+
*/
|
|
3716
|
+
interface IScrollBarDragEvent {
|
|
3717
|
+
position: number;
|
|
3718
|
+
min: number;
|
|
3719
|
+
max: number;
|
|
3720
|
+
userAction: boolean;
|
|
3721
|
+
animation: boolean;
|
|
3722
|
+
isVertical: boolean;
|
|
3723
|
+
}
|
|
3724
|
+
|
|
3725
|
+
declare enum ScrollbarStates {
|
|
3726
|
+
NORMAL = 0,
|
|
3727
|
+
PRESSED = 1,
|
|
3728
|
+
HOVER = 2
|
|
3729
|
+
}
|
|
3730
|
+
|
|
3731
|
+
/**
|
|
3732
|
+
* CnScrollBarService
|
|
3733
|
+
* Maximum performance for extremely large lists.
|
|
3734
|
+
* It is based on algorithms for virtualization of screen objects.
|
|
3735
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/scroll-view/components/cn-scroll-bar/cn-scroll-bar-public.service.ts
|
|
3736
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
3737
|
+
* @email djonnyx@gmail.com
|
|
3738
|
+
*/
|
|
3739
|
+
declare class CnScrollBarPublicService {
|
|
3740
|
+
private _internalService;
|
|
3741
|
+
get $click(): rxjs.Observable<PointerEvent | MouseEvent>;
|
|
3742
|
+
get $state(): rxjs.Observable<ScrollbarStates>;
|
|
3743
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CnScrollBarPublicService, never>;
|
|
3744
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<CnScrollBarPublicService>;
|
|
3745
|
+
}
|
|
3746
|
+
|
|
3747
|
+
interface IScrollBarTemplateContext {
|
|
3748
|
+
/**
|
|
3749
|
+
* API provider
|
|
3750
|
+
*/
|
|
3751
|
+
api: CnScrollBarPublicService;
|
|
3752
|
+
/**
|
|
3753
|
+
* Scrollbar thumb width.
|
|
3754
|
+
*/
|
|
3755
|
+
width: number;
|
|
3756
|
+
/**
|
|
3757
|
+
* Scrollbar thumb height.
|
|
3758
|
+
*/
|
|
3759
|
+
height: number;
|
|
3760
|
+
/**
|
|
3761
|
+
* Gradient fill position parameters.
|
|
3762
|
+
*/
|
|
3763
|
+
fillPositions: GradientColorPositions;
|
|
3764
|
+
/**
|
|
3765
|
+
* Additional options for the scrollbar.
|
|
3766
|
+
*/
|
|
3767
|
+
params: {
|
|
3768
|
+
[propName: string]: any;
|
|
3769
|
+
};
|
|
3770
|
+
}
|
|
3771
|
+
|
|
3772
|
+
type ScrollbarState = ScrollbarStates;
|
|
3773
|
+
|
|
3774
|
+
/**
|
|
3775
|
+
* CnScrollBarService
|
|
3776
|
+
* Maximum performance for extremely large lists.
|
|
3777
|
+
* It is based on algorithms for virtualization of screen objects.
|
|
3778
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/scroll-view/components/ng-scroll-bar/ng-scroll-bar.service.ts
|
|
3779
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
3780
|
+
* @email djonnyx@gmail.com
|
|
3781
|
+
*/
|
|
3782
|
+
declare class CnScrollBarService {
|
|
3783
|
+
private _$click;
|
|
3784
|
+
readonly $click: rxjs.Observable<PointerEvent | MouseEvent>;
|
|
3785
|
+
private _$state;
|
|
3786
|
+
readonly $state: rxjs.Observable<ScrollbarStates>;
|
|
3787
|
+
set state(v: ScrollbarState);
|
|
3788
|
+
get state(): ScrollbarState;
|
|
3789
|
+
click(event: PointerEvent | MouseEvent): void;
|
|
3790
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CnScrollBarService, never>;
|
|
3791
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<CnScrollBarService>;
|
|
3792
|
+
}
|
|
3793
|
+
|
|
3794
|
+
/**
|
|
3795
|
+
* ScrollBar component.
|
|
3796
|
+
* Maximum performance for extremely large lists.
|
|
3797
|
+
* It is based on algorithms for virtualization of screen objects.
|
|
3798
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/scroll-view/components/cn-scroll-bar/cn-scroll-bar.component.ts
|
|
3799
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
3800
|
+
* @email djonnyx@gmail.com
|
|
3801
|
+
*/
|
|
3802
|
+
declare class CnScrollBarComponent extends CnScrollView {
|
|
3803
|
+
protected _defaultRenderer: Signal<TemplateRef<any> | undefined>;
|
|
3804
|
+
protected _scrollBarService: CnScrollBarService;
|
|
3805
|
+
private _apiService;
|
|
3806
|
+
readonly loading: _angular_core.InputSignal<boolean>;
|
|
3807
|
+
readonly onDrag: _angular_core.OutputEmitterRef<IScrollBarDragEvent>;
|
|
3808
|
+
readonly onDragEnd: _angular_core.OutputEmitterRef<IScrollBarDragEvent>;
|
|
3809
|
+
readonly thumbGradientPositions: _angular_core.InputSignal<GradientColorPositions>;
|
|
3810
|
+
readonly size: _angular_core.InputSignal<number>;
|
|
3811
|
+
readonly thickness: _angular_core.InputSignal<number>;
|
|
3812
|
+
readonly scrollbarMinSize: _angular_core.InputSignal<number>;
|
|
3813
|
+
readonly prepared: _angular_core.InputSignal<boolean>;
|
|
3814
|
+
readonly interactive: _angular_core.InputSignal<boolean>;
|
|
3815
|
+
readonly overlapping: _angular_core.InputSignal<boolean>;
|
|
3816
|
+
readonly show: _angular_core.InputSignal<boolean>;
|
|
3817
|
+
readonly params: _angular_core.InputSignal<{
|
|
3818
|
+
[propName: string]: any;
|
|
3819
|
+
} | null>;
|
|
3820
|
+
readonly renderer: _angular_core.InputSignal<TemplateRef<any> | null>;
|
|
3821
|
+
readonly thumbRenderer: _angular_core.WritableSignal<TemplateRef<any> | null>;
|
|
3822
|
+
protected readonly hoverState: _angular_core.WritableSignal<boolean>;
|
|
3823
|
+
protected readonly pressedState: _angular_core.WritableSignal<boolean>;
|
|
3824
|
+
protected readonly templateContext: Signal<IScrollBarTemplateContext>;
|
|
3825
|
+
protected readonly styles: Signal<{
|
|
3826
|
+
[sName: string]: any;
|
|
3827
|
+
}>;
|
|
3828
|
+
protected readonly thumbWidth: Signal<number>;
|
|
3829
|
+
protected readonly thumbHeight: Signal<number>;
|
|
3830
|
+
protected readonly isVertical: Signal<boolean>;
|
|
3831
|
+
private _$scrollingCancel;
|
|
3832
|
+
protected readonly $scrollingCancel: rxjs.Observable<void>;
|
|
3833
|
+
private _elementRef;
|
|
3834
|
+
constructor();
|
|
3835
|
+
private createDragEvent;
|
|
3836
|
+
private thumbHit;
|
|
3837
|
+
click(event: PointerEvent | MouseEvent): void;
|
|
3838
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CnScrollBarComponent, never>;
|
|
3839
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CnScrollBarComponent, "cn-scroll-bar", never, { "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "thumbGradientPositions": { "alias": "thumbGradientPositions"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "thickness": { "alias": "thickness"; "required": false; "isSignal": true; }; "scrollbarMinSize": { "alias": "scrollbarMinSize"; "required": false; "isSignal": true; }; "prepared": { "alias": "prepared"; "required": false; "isSignal": true; }; "interactive": { "alias": "interactive"; "required": false; "isSignal": true; }; "overlapping": { "alias": "overlapping"; "required": false; "isSignal": true; }; "show": { "alias": "show"; "required": false; "isSignal": true; }; "params": { "alias": "params"; "required": false; "isSignal": true; }; "renderer": { "alias": "renderer"; "required": false; "isSignal": true; }; }, { "onDrag": "onDrag"; "onDragEnd": "onDragEnd"; }, never, never, false, never>;
|
|
3840
|
+
}
|
|
3841
|
+
|
|
3842
|
+
/**
|
|
3843
|
+
* The scroller for the CnVirtualScrollView item component
|
|
3844
|
+
* Maximum performance for extremely large lists.
|
|
3845
|
+
* It is based on algorithms for virtualization of screen objects.
|
|
3846
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/scroll-view/components/scroller/cn-scroller.component.ts
|
|
3847
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
3848
|
+
* @email djonnyx@gmail.com
|
|
3849
|
+
*/
|
|
3850
|
+
declare class CnScrollerComponent extends CnScrollView {
|
|
3851
|
+
readonly scrollBarHorizontal: CnScrollBarComponent | undefined;
|
|
3852
|
+
readonly scrollBarVertical: CnScrollBarComponent | undefined;
|
|
3853
|
+
readonly filter: Signal<ElementRef<SVGFEGaussianBlurElement> | undefined>;
|
|
3854
|
+
readonly onScrollbarVisible: _angular_core.OutputEmitterRef<boolean>;
|
|
3855
|
+
readonly scrollbarEnabled: _angular_core.InputSignal<boolean>;
|
|
3856
|
+
readonly scrollbarInteractive: _angular_core.InputSignal<boolean>;
|
|
3857
|
+
readonly focusedElement: _angular_core.InputSignal<Id | null>;
|
|
3858
|
+
readonly overlappingScrollbar: _angular_core.InputSignal<boolean>;
|
|
3859
|
+
readonly content: _angular_core.InputSignal<HTMLElement | undefined>;
|
|
3860
|
+
readonly loading: _angular_core.InputSignal<boolean>;
|
|
3861
|
+
readonly classes: _angular_core.InputSignal<{
|
|
3862
|
+
[cName: string]: boolean;
|
|
3863
|
+
}>;
|
|
3864
|
+
readonly scrollbarMinSize: _angular_core.InputSignal<number>;
|
|
3865
|
+
readonly scrollbarThickness: _angular_core.InputSignal<number>;
|
|
3866
|
+
readonly scrollbarThumbRenderer: _angular_core.InputSignal<TemplateRef<any> | null>;
|
|
3867
|
+
readonly scrollbarThumbParams: _angular_core.InputSignal<{
|
|
3868
|
+
[propName: string]: any;
|
|
3869
|
+
} | null>;
|
|
3870
|
+
readonly motionBlur: _angular_core.InputSignal<number | "disabled">;
|
|
3871
|
+
readonly maxMotionBlur: _angular_core.InputSignal<number>;
|
|
3872
|
+
readonly motionBlurEnabled: _angular_core.InputSignal<boolean>;
|
|
3873
|
+
readonly actualClasses: Signal<{
|
|
3874
|
+
[cName: string]: boolean;
|
|
3875
|
+
}>;
|
|
3876
|
+
readonly containerClasses: Signal<{
|
|
3877
|
+
[cName: string]: boolean;
|
|
3878
|
+
}>;
|
|
3879
|
+
readonly thumbGradientPositionsHorizontal: _angular_core.WritableSignal<GradientColorPositions>;
|
|
3880
|
+
readonly thumbGradientPositionsVertical: _angular_core.WritableSignal<GradientColorPositions>;
|
|
3881
|
+
readonly thumbSizeVertical: _angular_core.WritableSignal<number>;
|
|
3882
|
+
readonly thumbSizeHorizontal: _angular_core.WritableSignal<number>;
|
|
3883
|
+
readonly scrollbarHorizontalEnabled: _angular_core.WritableSignal<boolean>;
|
|
3884
|
+
readonly scrollbarVerticalEnabled: _angular_core.WritableSignal<boolean>;
|
|
3885
|
+
readonly preparedSignal: _angular_core.WritableSignal<boolean>;
|
|
3886
|
+
readonly listStyles: _angular_core.WritableSignal<{
|
|
3887
|
+
perspectiveOrigin: string;
|
|
3888
|
+
}>;
|
|
3889
|
+
private _scrollBox;
|
|
3890
|
+
get host(): HTMLDivElement | undefined;
|
|
3891
|
+
private _$scrollbarScroll;
|
|
3892
|
+
readonly $scrollbarScroll: rxjs.Observable<boolean>;
|
|
3893
|
+
private _prepared;
|
|
3894
|
+
set prepared(v: boolean);
|
|
3895
|
+
protected setX(x: number, normalize?: boolean): void;
|
|
3896
|
+
protected setY(y: number, normalize?: boolean): void;
|
|
3897
|
+
set startLayoutOffsetX(v: number);
|
|
3898
|
+
get startLayoutOffsetX(): number;
|
|
3899
|
+
set startLayoutOffsetY(v: number);
|
|
3900
|
+
get startLayoutOffsetY(): number;
|
|
3901
|
+
readonly viewInitialized: _angular_core.WritableSignal<boolean>;
|
|
3902
|
+
private _isScrollbarUserActionX;
|
|
3903
|
+
get isScrollbarUserActionX(): boolean;
|
|
3904
|
+
private _isScrollbarUserActionY;
|
|
3905
|
+
get isScrollbarUserActionY(): boolean;
|
|
3906
|
+
protected _$resizeViewport: Subject<ISize>;
|
|
3907
|
+
readonly $resizeViewport: rxjs.Observable<ISize>;
|
|
3908
|
+
protected _$resizeContent: Subject<ISize>;
|
|
3909
|
+
readonly $resizeContent: rxjs.Observable<ISize>;
|
|
3910
|
+
protected _filterId: string;
|
|
3911
|
+
protected _filter: string;
|
|
3912
|
+
constructor();
|
|
3913
|
+
private recalculatePerspective;
|
|
3914
|
+
protected onResizeViewport(): void;
|
|
3915
|
+
protected onResizeContent(width?: number | null, height?: number | null): void;
|
|
3916
|
+
private updateScrollBarHandler;
|
|
3917
|
+
ngAfterViewInit(): void;
|
|
3918
|
+
tick(): void;
|
|
3919
|
+
private updateScrollBar;
|
|
3920
|
+
protected normalizeScrollWidth(): boolean;
|
|
3921
|
+
protected normalizeScrollHeight(): boolean;
|
|
3922
|
+
refreshScrollbar(): void;
|
|
3923
|
+
protected onDragStartHorizontal(): void;
|
|
3924
|
+
protected onDragStartVertical(): void;
|
|
3925
|
+
reset(): void;
|
|
3926
|
+
refresh(fireUpdate?: boolean, updateScrollbar?: boolean): void;
|
|
3927
|
+
startScrollTo(): void;
|
|
3928
|
+
finishedScrollTo(): void;
|
|
3929
|
+
scrollTo(params: IScrollToParams): Array<number> | null;
|
|
3930
|
+
stopScrollbar(isVertical: boolean): void;
|
|
3931
|
+
private dropVelocity;
|
|
3932
|
+
protected stopMoving(): void;
|
|
3933
|
+
protected onAnimationComplete(position: number): void;
|
|
3934
|
+
onScrollBarDragHandler(event: IScrollBarDragEvent): void;
|
|
3935
|
+
protected onScrollBarDragEndHandler(event: IScrollBarDragEvent): void;
|
|
3936
|
+
private fireUpdateIfEdgesDetected;
|
|
3937
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CnScrollerComponent, never>;
|
|
3938
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CnScrollerComponent, "cn-scroller", never, { "scrollbarEnabled": { "alias": "scrollbarEnabled"; "required": false; "isSignal": true; }; "scrollbarInteractive": { "alias": "scrollbarInteractive"; "required": false; "isSignal": true; }; "focusedElement": { "alias": "focusedElement"; "required": false; "isSignal": true; }; "overlappingScrollbar": { "alias": "overlappingScrollbar"; "required": false; "isSignal": true; }; "content": { "alias": "content"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "classes": { "alias": "classes"; "required": false; "isSignal": true; }; "scrollbarMinSize": { "alias": "scrollbarMinSize"; "required": false; "isSignal": true; }; "scrollbarThickness": { "alias": "scrollbarThickness"; "required": false; "isSignal": true; }; "scrollbarThumbRenderer": { "alias": "scrollbarThumbRenderer"; "required": false; "isSignal": true; }; "scrollbarThumbParams": { "alias": "scrollbarThumbParams"; "required": false; "isSignal": true; }; "motionBlur": { "alias": "motionBlur"; "required": false; "isSignal": true; }; "maxMotionBlur": { "alias": "maxMotionBlur"; "required": false; "isSignal": true; }; "motionBlurEnabled": { "alias": "motionBlurEnabled"; "required": false; "isSignal": true; }; }, { "onScrollbarVisible": "onScrollbarVisible"; }, never, ["*"], false, never>;
|
|
3939
|
+
}
|
|
3940
|
+
|
|
3941
|
+
declare class CnScrollBarModule {
|
|
3942
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CnScrollBarModule, never>;
|
|
3943
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<CnScrollBarModule, [typeof CnScrollBarComponent], [typeof i2.CommonModule], [typeof CnScrollBarComponent]>;
|
|
3944
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<CnScrollBarModule>;
|
|
3945
|
+
}
|
|
3946
|
+
|
|
3947
|
+
/**
|
|
3948
|
+
* LocaleSensitiveDirective
|
|
3949
|
+
* Maximum performance for extremely large lists.
|
|
3950
|
+
* It is based on algorithms for virtualization of screen objects.
|
|
3951
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/scroll-view/directives/locale-sensitive/locale-sensitive.directive.ts
|
|
3952
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
3953
|
+
* @email djonnyx@gmail.com
|
|
3954
|
+
*/
|
|
3955
|
+
declare class LocaleSensitiveDirective {
|
|
3956
|
+
langTextDir: _angular_core.InputSignal<TextDirection>;
|
|
3957
|
+
listDir: _angular_core.InputSignal<ScrollerDirections>;
|
|
3958
|
+
private _elementRef;
|
|
3959
|
+
constructor();
|
|
3960
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<LocaleSensitiveDirective, never>;
|
|
3961
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<LocaleSensitiveDirective, "[localeSensitive]", never, { "langTextDir": { "alias": "langTextDir"; "required": false; "isSignal": true; }; "listDir": { "alias": "listDir"; "required": false; "isSignal": true; }; }, {}, never, never, false, never>;
|
|
3962
|
+
}
|
|
3963
|
+
|
|
3964
|
+
declare class LocaleSensitiveModule {
|
|
3965
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<LocaleSensitiveModule, never>;
|
|
3966
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<LocaleSensitiveModule, [typeof LocaleSensitiveDirective], [typeof i2.CommonModule], [typeof LocaleSensitiveDirective]>;
|
|
3967
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<LocaleSensitiveModule>;
|
|
3968
|
+
}
|
|
3969
|
+
|
|
3970
|
+
declare class CnScrollerModule {
|
|
3971
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CnScrollerModule, never>;
|
|
3972
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<CnScrollerModule, [typeof CnScrollerComponent], [typeof i2.CommonModule, typeof CnScrollBarModule, typeof LocaleSensitiveModule, typeof i5.CdkScrollableModule], [typeof CnScrollerComponent]>;
|
|
3973
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<CnScrollerModule>;
|
|
3974
|
+
}
|
|
3975
|
+
|
|
3976
|
+
/**
|
|
3977
|
+
* CnVirtualScrollViewService
|
|
3978
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/scroll-view/cn-virtual-scroll-view.service.ts
|
|
3979
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
3980
|
+
* @email djonnyx@gmail.com
|
|
3981
|
+
*/
|
|
3982
|
+
declare class CnVirtualScrollViewService implements IScrollViewService, OnDestroy {
|
|
3983
|
+
private _id;
|
|
3984
|
+
get id(): number;
|
|
3985
|
+
private _nextComponentId;
|
|
3986
|
+
private _$tick;
|
|
3987
|
+
readonly $tick: rxjs.Observable<void>;
|
|
3988
|
+
scrollLeftOffset: number;
|
|
3989
|
+
scrollRightOffset: number;
|
|
3990
|
+
scrollTopOffset: number;
|
|
3991
|
+
scrollBottomOffset: number;
|
|
3992
|
+
isInfinity: boolean;
|
|
3993
|
+
isVertical: boolean;
|
|
3994
|
+
snapScrollToLeft: boolean;
|
|
3995
|
+
snapScrollToRight: boolean;
|
|
3996
|
+
snapScrollToTop: boolean;
|
|
3997
|
+
snapScrollToBottom: boolean;
|
|
3998
|
+
animationParams: IAnimationParams;
|
|
3999
|
+
listElement: HTMLDivElement | null;
|
|
4000
|
+
direction: Direction;
|
|
4001
|
+
private _$langTextDir;
|
|
4002
|
+
readonly $langTextDir: rxjs.Observable<TextDirection>;
|
|
4003
|
+
get langTextDir(): TextDirection;
|
|
4004
|
+
set langTextDir(v: TextDirection);
|
|
4005
|
+
private _$grabbing;
|
|
4006
|
+
readonly $grabbing: rxjs.Observable<boolean>;
|
|
4007
|
+
get grabbing(): boolean;
|
|
4008
|
+
set grabbing(v: boolean);
|
|
4009
|
+
private _$clickPressed;
|
|
4010
|
+
readonly $clickPressed: rxjs.Observable<boolean>;
|
|
4011
|
+
get clickPressed(): boolean;
|
|
4012
|
+
set clickPressed(v: boolean);
|
|
4013
|
+
private _$isGrabbing;
|
|
4014
|
+
readonly $isGrabbing: rxjs.Observable<boolean>;
|
|
4015
|
+
get isGrabbing(): boolean;
|
|
4016
|
+
private _$scrollBarSize;
|
|
4017
|
+
readonly $scrollBarSize: rxjs.Observable<number>;
|
|
4018
|
+
get scrollBarSize(): number;
|
|
4019
|
+
set scrollBarSize(v: number);
|
|
4020
|
+
private _$intersectionElementBySnapToItemAlign;
|
|
4021
|
+
readonly $intersectionElementBySnapToItemAlign: rxjs.Observable<Id | null>;
|
|
4022
|
+
private _$clickDistance;
|
|
4023
|
+
readonly $clickDistance: rxjs.Observable<number>;
|
|
4024
|
+
get clickDistance(): number;
|
|
4025
|
+
set clickDistance(v: number);
|
|
4026
|
+
private _tickerId;
|
|
4027
|
+
constructor();
|
|
4028
|
+
private tick;
|
|
4029
|
+
focusList(): void;
|
|
4030
|
+
initialize(id: number): void;
|
|
4031
|
+
generateComponentId(): number;
|
|
4032
|
+
getComponentBoundsByIntersectionPosition(positionX: number, positionY: number, maxPositionX?: number | null, maxPositionY?: number | null): (IRect & {
|
|
4033
|
+
id: Id | null;
|
|
4034
|
+
isFirst: boolean;
|
|
4035
|
+
isLast: boolean;
|
|
4036
|
+
}) | null;
|
|
4037
|
+
setIntersectionElementBySnapToItemAlign(id: Id | null): void;
|
|
4038
|
+
update(immediately?: boolean): void;
|
|
4039
|
+
/**
|
|
4040
|
+
* Scrolls the scroll area to the first item in the collection.
|
|
4041
|
+
*/
|
|
4042
|
+
scrollToLeft(options?: IScrollOptions): void;
|
|
4043
|
+
/**
|
|
4044
|
+
* Scrolls the list to the end of the content size.
|
|
4045
|
+
*/
|
|
4046
|
+
scrollToRight(options?: IScrollOptions): void;
|
|
4047
|
+
/**
|
|
4048
|
+
* Scrolls the scroll area to the first item in the collection.
|
|
4049
|
+
*/
|
|
4050
|
+
scrollToTop(options?: IScrollOptions): void;
|
|
4051
|
+
/**
|
|
4052
|
+
* Scrolls the list to the end of the content size.
|
|
4053
|
+
*/
|
|
4054
|
+
scrollToBottom(options?: IScrollOptions): void;
|
|
4055
|
+
ngOnDestroy(): void;
|
|
4056
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CnVirtualScrollViewService, never>;
|
|
4057
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<CnVirtualScrollViewService>;
|
|
4058
|
+
}
|
|
4059
|
+
|
|
4060
|
+
/**
|
|
4061
|
+
* Virtual list component.
|
|
4062
|
+
* Maximum performance for extremely large lists.
|
|
4063
|
+
* It is based on algorithms for virtualization of screen objects.
|
|
4064
|
+
* @link https://github.com/DjonnyX/centrifugal/blob/main/src/lib/scroll-view/cn-virtual-scroll-view.component.ts
|
|
4065
|
+
* @author Evgenii Alexandrovich Grebennikov
|
|
4066
|
+
* @email djonnyx@gmail.com
|
|
4067
|
+
*/
|
|
4068
|
+
declare class CnVirtualScrollViewComponent implements OnDestroy {
|
|
4069
|
+
private static __nextId;
|
|
4070
|
+
private _id;
|
|
4071
|
+
/**
|
|
4072
|
+
* Readonly. Returns the unique identifier of the component.
|
|
4073
|
+
*/
|
|
4074
|
+
get id(): number;
|
|
4075
|
+
private _service;
|
|
4076
|
+
private _scrollerComponent;
|
|
4077
|
+
private _scroller;
|
|
4078
|
+
/**
|
|
4079
|
+
* Fires when the list has been scrolled.
|
|
4080
|
+
*/
|
|
4081
|
+
onScroll: _angular_core.OutputEmitterRef<IScrollEvent>;
|
|
4082
|
+
/**
|
|
4083
|
+
* Fires when the list has completed scrolling.
|
|
4084
|
+
*/
|
|
4085
|
+
onScrollEnd: _angular_core.OutputEmitterRef<IScrollEvent>;
|
|
4086
|
+
/**
|
|
4087
|
+
* Fires when the viewport size is changed.
|
|
4088
|
+
*/
|
|
4089
|
+
onViewportChange: _angular_core.OutputEmitterRef<ISize>;
|
|
4090
|
+
/**
|
|
4091
|
+
* Fires when the scroll reaches the left.
|
|
4092
|
+
*/
|
|
4093
|
+
onScrollReachLeft: _angular_core.OutputEmitterRef<void>;
|
|
4094
|
+
/**
|
|
4095
|
+
* Fires when the scroll reaches the right.
|
|
4096
|
+
*/
|
|
4097
|
+
onScrollReachRight: _angular_core.OutputEmitterRef<void>;
|
|
4098
|
+
/**
|
|
4099
|
+
* Fires when the scroll reaches the top.
|
|
4100
|
+
*/
|
|
4101
|
+
onScrollReachTop: _angular_core.OutputEmitterRef<void>;
|
|
4102
|
+
/**
|
|
4103
|
+
* Fires when the scroll reaches the bottom.
|
|
4104
|
+
*/
|
|
4105
|
+
onScrollReachBottom: _angular_core.OutputEmitterRef<void>;
|
|
4106
|
+
private _$show;
|
|
4107
|
+
readonly $show: rxjs.Observable<boolean>;
|
|
4108
|
+
private _$initialized;
|
|
4109
|
+
readonly $initialized: rxjs.Observable<boolean>;
|
|
4110
|
+
private _scrollbarThickness;
|
|
4111
|
+
/**
|
|
4112
|
+
* Scrollbar thickness.
|
|
4113
|
+
*/
|
|
4114
|
+
scrollbarThickness: _angular_core.InputSignal<number>;
|
|
4115
|
+
private _scrollbarMinSize;
|
|
4116
|
+
/**
|
|
4117
|
+
* Minimum scrollbar size.
|
|
4118
|
+
*/
|
|
4119
|
+
scrollbarMinSize: _angular_core.InputSignal<number>;
|
|
4120
|
+
private _scrollbarThumbRenderer;
|
|
4121
|
+
/**
|
|
4122
|
+
* Scrollbar customization template.
|
|
4123
|
+
*/
|
|
4124
|
+
scrollbarThumbRenderer: _angular_core.InputSignal<TemplateRef<any> | null>;
|
|
4125
|
+
private _scrollbarThumbParams;
|
|
4126
|
+
/**
|
|
4127
|
+
* Additional options for the scrollbar.
|
|
4128
|
+
*/
|
|
4129
|
+
scrollbarThumbParams: _angular_core.InputSignal<{
|
|
4130
|
+
[propName: string]: any;
|
|
4131
|
+
} | null>;
|
|
4132
|
+
private _clickDistance;
|
|
4133
|
+
/**
|
|
4134
|
+
* The maximum scroll distance at which a click event is triggered.
|
|
4135
|
+
*/
|
|
4136
|
+
clickDistance: _angular_core.InputSignal<number>;
|
|
4137
|
+
private _scrollLeftOffsetOptions;
|
|
4138
|
+
/**
|
|
4139
|
+
* Sets the scroll left offset value. Can be specified in absolute or percentage values.
|
|
4140
|
+
* Supports arithmetic expressions of addition `50% + 25` or subtraction `50% - 25`. Default value is "0".
|
|
4141
|
+
*/
|
|
4142
|
+
scrollLeftOffset: _angular_core.InputSignal<ArithmeticExpression>;
|
|
4143
|
+
private _scrollTopOffsetOptions;
|
|
4144
|
+
/**
|
|
4145
|
+
* Sets the scroll top offset value. Can be specified in absolute or percentage values.
|
|
4146
|
+
* Supports arithmetic expressions of addition `50% + 25` or subtraction `50% - 25`. Default value is "0".
|
|
4147
|
+
*/
|
|
4148
|
+
scrollTopOffset: _angular_core.InputSignal<ArithmeticExpression>;
|
|
4149
|
+
private _scrollRightOffsetOptions;
|
|
4150
|
+
/**
|
|
4151
|
+
* Sets the scroll right offset value. Can be specified in absolute or percentage values.
|
|
4152
|
+
* Supports arithmetic expressions of addition `50% + 25` or subtraction `50% - 25`. Default value is "0".
|
|
4153
|
+
*/
|
|
4154
|
+
scrollRightOffset: _angular_core.InputSignal<ArithmeticExpression>;
|
|
4155
|
+
private _scrollBottomOffsetOptions;
|
|
4156
|
+
/**
|
|
4157
|
+
* Sets the scroll bottom offset value. Can be specified in absolute or percentage values.
|
|
4158
|
+
* Supports arithmetic expressions of addition `50% + 25` or subtraction `50% - 25`. Default value is "0".
|
|
4159
|
+
*/
|
|
4160
|
+
scrollBottomOffset: _angular_core.InputSignal<ArithmeticExpression>;
|
|
4161
|
+
private _snapScrollToLeftOptions;
|
|
4162
|
+
/**
|
|
4163
|
+
* Determines whether the scrollbar is snapped to the left of the scroller. The default value is "true".
|
|
4164
|
+
* That is, if snapScrollToLeft and snapScrollToRight are enabled, the scroller will initially snap
|
|
4165
|
+
* to the left; if you move the scrollbar right, the scroller will snap to the right.
|
|
4166
|
+
* If snapScrollToLeft is disabled and snapScrollToRight is enabled, the scroller will snap to the right;
|
|
4167
|
+
* If you move the scrollbar left, the scroller will snap to the left.
|
|
4168
|
+
* If both snapScrollToLeft and snapScrollToRight are disabled, the scroller will never snap to the left or right.
|
|
4169
|
+
*/
|
|
4170
|
+
snapScrollToLeft: _angular_core.InputSignal<boolean>;
|
|
4171
|
+
private _snapScrollToTopOptions;
|
|
4172
|
+
/**
|
|
4173
|
+
* Determines whether the scrollbar is snapped to the top of the scroller. The default value is "true".
|
|
4174
|
+
* That is, if snapScrollToTop and snapScrollToBottom are enabled, the scroller will initially snap
|
|
4175
|
+
* to the top; if you move the scrollbar down, the scroller will snap to the bottom.
|
|
4176
|
+
* If snapScrollToTop is disabled and snapScrollToBottom is enabled, the scroller will snap to the bottom;
|
|
4177
|
+
* If you move the scrollbar up, the scroller will snap to the top.
|
|
4178
|
+
* If both snapScrollToTop and snapScrollToBottom are disabled, the scroller will never snap to the top or bottom.
|
|
4179
|
+
*/
|
|
4180
|
+
snapScrollToTop: _angular_core.InputSignal<boolean>;
|
|
4181
|
+
private _snapScrollToRightOptions;
|
|
4182
|
+
/**
|
|
4183
|
+
* Determines whether the scrollbar is snapped to the right of the scroller. The default value is "true".
|
|
4184
|
+
* That is, if snapScrollToLeft and snapScrollToRight are enabled, the scroller will initially snap
|
|
4185
|
+
* to the left; if you move the scrollbar right, the scroller will snap to the right.
|
|
4186
|
+
* If snapScrollToLeft is disabled and snapScrollToRight is enabled, the scroller will snap to the right;
|
|
4187
|
+
* If you move the scrollbar left, the scroller will snap to the left.
|
|
4188
|
+
* If both snapScrollToLeft and snapScrollToRight are disabled, the scroller will never snap to the left or right.
|
|
4189
|
+
*/
|
|
4190
|
+
snapScrollToRight: _angular_core.InputSignal<boolean>;
|
|
4191
|
+
private _snapScrollToBottomOptions;
|
|
4192
|
+
/**
|
|
4193
|
+
* Determines whether the scrollbar is snapped to the bottom of the scroller. The default value is "true".
|
|
4194
|
+
* That is, if snapScrollToTop and snapScrollToBottom are enabled, the scroller will initially snap
|
|
4195
|
+
* to the top; if you move the scrollbar down, the scroller will snap to the bottom.
|
|
4196
|
+
* If snapScrollToTop is disabled and snapScrollToBottom is enabled, the scroller will snap to the bottom;
|
|
4197
|
+
* If you move the scrollbar up, the scroller will snap to the top.
|
|
4198
|
+
* If both snapScrollToTop and snapScrollToBottom are disabled, the scroller will never snap to the top or bottom.
|
|
4199
|
+
*/
|
|
4200
|
+
snapScrollToBottom: _angular_core.InputSignal<boolean>;
|
|
4201
|
+
private _scrollableOptions;
|
|
4202
|
+
/**
|
|
4203
|
+
* Determines whether scrolling is enabled or disabled. The default value is "true".
|
|
4204
|
+
*/
|
|
4205
|
+
scrollable: _angular_core.InputSignal<boolean>;
|
|
4206
|
+
private _scrollbarEnabledOptions;
|
|
4207
|
+
/**
|
|
4208
|
+
* Determines whether the scrollbar is shown or not. The default value is "true".
|
|
4209
|
+
*/
|
|
4210
|
+
scrollbarEnabled: _angular_core.InputSignal<boolean>;
|
|
4211
|
+
private _scrollbarInteractiveOptions;
|
|
4212
|
+
/**
|
|
4213
|
+
* Determines whether scrolling using the scrollbar will be possible. The default value is "true".
|
|
4214
|
+
*/
|
|
4215
|
+
scrollbarInteractive: _angular_core.InputSignal<boolean>;
|
|
4216
|
+
private _overlappingScrollbarOptions;
|
|
4217
|
+
/**
|
|
4218
|
+
* Determines whether the scroll bar will overlap the list. The default value is "false".
|
|
4219
|
+
*/
|
|
4220
|
+
overlappingScrollbar: _angular_core.InputSignal<boolean>;
|
|
4221
|
+
private _scrollBehaviorOptions;
|
|
4222
|
+
/**
|
|
4223
|
+
* Defines the scrolling behavior for any element on the page. The default value is "smooth".
|
|
4224
|
+
*/
|
|
4225
|
+
scrollBehavior: _angular_core.InputSignal<ScrollBehavior>;
|
|
4226
|
+
private _scrollingSettingsOptions;
|
|
4227
|
+
/**
|
|
4228
|
+
* Scrolling settings.
|
|
4229
|
+
* - frictionalForce - Frictional force. Default value is 0.035.
|
|
4230
|
+
* - mass - Mass. Default value is 0.005.
|
|
4231
|
+
* - maxDistance - Maximum scrolling distance. Default value is 100000.
|
|
4232
|
+
* - maxDuration - Maximum animation duration. Default value is 4000.
|
|
4233
|
+
* - speedScale - Speed scale. Default value is 10.
|
|
4234
|
+
* - optimization - Enables scrolling performance optimization. Default value is `true`.
|
|
4235
|
+
*/
|
|
4236
|
+
scrollingSettings: _angular_core.InputSignal<IScrollingSettings>;
|
|
4237
|
+
private _motionBlurOptions;
|
|
4238
|
+
/**
|
|
4239
|
+
* Motion blur effect. The default value is `0.15`.
|
|
4240
|
+
*/
|
|
4241
|
+
motionBlur: _angular_core.InputSignal<number>;
|
|
4242
|
+
private _maxMotionBlurOptions;
|
|
4243
|
+
/**
|
|
4244
|
+
* Maximum motion blur effect. The default value is `0.5`.
|
|
4245
|
+
*/
|
|
4246
|
+
maxMotionBlur: _angular_core.InputSignal<number>;
|
|
4247
|
+
private _motionBlurEnabledOptions;
|
|
4248
|
+
/**
|
|
4249
|
+
* Determines whether to apply motion blur or not. The default value is `false`.
|
|
4250
|
+
*/
|
|
4251
|
+
motionBlurEnabled: _angular_core.InputSignal<boolean>;
|
|
4252
|
+
private _animationParamsOptions;
|
|
4253
|
+
/**
|
|
4254
|
+
* Animation parameters. The default value is "{ scrollToItem: 0 }".
|
|
4255
|
+
*/
|
|
4256
|
+
animationParams: _angular_core.InputSignal<IAnimationParams>;
|
|
4257
|
+
private _overscrollEnabledOptions;
|
|
4258
|
+
/**
|
|
4259
|
+
* Determines whether the overscroll (re-scroll) feature will work. The default value is "true".
|
|
4260
|
+
*/
|
|
4261
|
+
overscrollEnabled: _angular_core.InputSignal<boolean>;
|
|
4262
|
+
private _directionOptions;
|
|
4263
|
+
/**
|
|
4264
|
+
* Determines the direction in which elements are placed. Default value is "both".
|
|
4265
|
+
*/
|
|
4266
|
+
direction: _angular_core.InputSignal<Direction>;
|
|
4267
|
+
private _loading;
|
|
4268
|
+
/**
|
|
4269
|
+
* If `true`, the scrollBar goes into loading state. The default value is `false`.
|
|
4270
|
+
*/
|
|
4271
|
+
loading: _angular_core.InputSignal<boolean>;
|
|
4272
|
+
private _langTextDir;
|
|
4273
|
+
/**
|
|
4274
|
+
* A string indicating the direction of text for the locale.
|
|
4275
|
+
* Can be either "ltr" (left-to-right) or "rtl" (right-to-left).
|
|
4276
|
+
*/
|
|
4277
|
+
langTextDir: _angular_core.InputSignal<TextDirection>;
|
|
4278
|
+
protected readonly focusedElement: _angular_core.WritableSignal<Id | null>;
|
|
4279
|
+
protected readonly classes: _angular_core.WritableSignal<{
|
|
4280
|
+
[cName: string]: boolean;
|
|
4281
|
+
}>;
|
|
4282
|
+
private _bounds;
|
|
4283
|
+
protected get bounds(): _angular_core.WritableSignal<ISize | null>;
|
|
4284
|
+
private _scrollerBounds;
|
|
4285
|
+
private _$scrollSizeX;
|
|
4286
|
+
private _$scrollSizeY;
|
|
4287
|
+
private _isScrollLeft;
|
|
4288
|
+
private _isScrollRight;
|
|
4289
|
+
private _isScrollTop;
|
|
4290
|
+
private _isScrollBottom;
|
|
4291
|
+
protected _precalculatedScrollLeftOffset: _angular_core.WritableSignal<number>;
|
|
4292
|
+
protected _precalculatedScrollTopOffset: _angular_core.WritableSignal<number>;
|
|
4293
|
+
protected _precalculatedScrollRightOffset: _angular_core.WritableSignal<number>;
|
|
4294
|
+
protected _precalculatedScrollBottomOffset: _angular_core.WritableSignal<number>;
|
|
4295
|
+
private _elementRef;
|
|
4296
|
+
private _$scroll;
|
|
4297
|
+
readonly $scroll: rxjs.Observable<IScrollEvent>;
|
|
4298
|
+
get $grabbing(): rxjs.Observable<boolean>;
|
|
4299
|
+
private _$fireUpdate;
|
|
4300
|
+
protected readonly $fireUpdate: rxjs.Observable<boolean>;
|
|
4301
|
+
private _$fireUpdateNextFrame;
|
|
4302
|
+
protected readonly $fireUpdateNextFrame: rxjs.Observable<boolean>;
|
|
4303
|
+
private _$preventScrollSnapping;
|
|
4304
|
+
protected readonly $preventScrollSnapping: rxjs.Observable<boolean>;
|
|
4305
|
+
private _destroyRef;
|
|
4306
|
+
private _isLoading;
|
|
4307
|
+
private _animationIds;
|
|
4308
|
+
private _$viewInit;
|
|
4309
|
+
private readonly $viewInit;
|
|
4310
|
+
private _injector;
|
|
4311
|
+
constructor();
|
|
4312
|
+
ngAfterViewInit(): void;
|
|
4313
|
+
private onAfterResize;
|
|
4314
|
+
private snappingHandler;
|
|
4315
|
+
private emitScrollEvent;
|
|
4316
|
+
/**
|
|
4317
|
+
* The method scrolls the scroll view and returns the animation ids if the behavior is set to smooth or null
|
|
4318
|
+
* if the behavior is set to auto, instant, or not set.
|
|
4319
|
+
*/
|
|
4320
|
+
scrollTo(options: IScrollOptions): number[] | null;
|
|
4321
|
+
/**
|
|
4322
|
+
* Prevents the list from snapping to its start or end edge.
|
|
4323
|
+
*/
|
|
4324
|
+
preventSnapping(): void;
|
|
4325
|
+
ngOnDestroy(): void;
|
|
4326
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CnVirtualScrollViewComponent, never>;
|
|
4327
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CnVirtualScrollViewComponent, "cn-virtual-scroll-view", never, { "scrollbarThickness": { "alias": "scrollbarThickness"; "required": false; "isSignal": true; }; "scrollbarMinSize": { "alias": "scrollbarMinSize"; "required": false; "isSignal": true; }; "scrollbarThumbRenderer": { "alias": "scrollbarThumbRenderer"; "required": false; "isSignal": true; }; "scrollbarThumbParams": { "alias": "scrollbarThumbParams"; "required": false; "isSignal": true; }; "clickDistance": { "alias": "clickDistance"; "required": false; "isSignal": true; }; "scrollLeftOffset": { "alias": "scrollLeftOffset"; "required": false; "isSignal": true; }; "scrollTopOffset": { "alias": "scrollTopOffset"; "required": false; "isSignal": true; }; "scrollRightOffset": { "alias": "scrollRightOffset"; "required": false; "isSignal": true; }; "scrollBottomOffset": { "alias": "scrollBottomOffset"; "required": false; "isSignal": true; }; "snapScrollToLeft": { "alias": "snapScrollToLeft"; "required": false; "isSignal": true; }; "snapScrollToTop": { "alias": "snapScrollToTop"; "required": false; "isSignal": true; }; "snapScrollToRight": { "alias": "snapScrollToRight"; "required": false; "isSignal": true; }; "snapScrollToBottom": { "alias": "snapScrollToBottom"; "required": false; "isSignal": true; }; "scrollable": { "alias": "scrollable"; "required": false; "isSignal": true; }; "scrollbarEnabled": { "alias": "scrollbarEnabled"; "required": false; "isSignal": true; }; "scrollbarInteractive": { "alias": "scrollbarInteractive"; "required": false; "isSignal": true; }; "overlappingScrollbar": { "alias": "overlappingScrollbar"; "required": false; "isSignal": true; }; "scrollBehavior": { "alias": "scrollBehavior"; "required": false; "isSignal": true; }; "scrollingSettings": { "alias": "scrollingSettings"; "required": false; "isSignal": true; }; "motionBlur": { "alias": "motionBlur"; "required": false; "isSignal": true; }; "maxMotionBlur": { "alias": "maxMotionBlur"; "required": false; "isSignal": true; }; "motionBlurEnabled": { "alias": "motionBlurEnabled"; "required": false; "isSignal": true; }; "animationParams": { "alias": "animationParams"; "required": false; "isSignal": true; }; "overscrollEnabled": { "alias": "overscrollEnabled"; "required": false; "isSignal": true; }; "direction": { "alias": "direction"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "langTextDir": { "alias": "langTextDir"; "required": false; "isSignal": true; }; }, { "onScroll": "onScroll"; "onScrollEnd": "onScrollEnd"; "onViewportChange": "onViewportChange"; "onScrollReachLeft": "onScrollReachLeft"; "onScrollReachRight": "onScrollReachRight"; "onScrollReachTop": "onScrollReachTop"; "onScrollReachBottom": "onScrollReachBottom"; }, never, ["*"], false, never>;
|
|
4328
|
+
}
|
|
4329
|
+
|
|
4330
|
+
declare class CnVirtualScrollViewModule {
|
|
4331
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CnVirtualScrollViewModule, never>;
|
|
4332
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<CnVirtualScrollViewModule, [typeof CnVirtualScrollViewComponent], [typeof i2.CommonModule, typeof CnScrollerModule, typeof LocaleSensitiveModule], [typeof CnVirtualScrollViewComponent]>;
|
|
4333
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<CnVirtualScrollViewModule>;
|
|
4334
|
+
}
|
|
4335
|
+
|
|
4336
|
+
export { CnLocaleSensitiveDirective, CnLocaleSensitiveModule, CnScrollBarPublicService, CnScrollerComponent, CnScrollerModule, CnVirtualClickDirective, CnVirtualClickModule, CnVirtualListComponent, CnVirtualListModule, CnVirtualListPublicService, CnVirtualListService, CnVirtualScrollViewComponent, CnVirtualScrollViewModule, CnVirtualScrollViewService, TextDirections };
|
|
4337
|
+
export type { ArithmeticExpression, Color, FloatOrPersentageValue, GradientColorPosition, GradientColorPositions, IPoint, IRect, ISize, Id, TextDirection };
|