ng-virtual-list 17.0.20 → 17.0.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/README.md +1 -1
  2. package/ng-package.json +7 -0
  3. package/package.json +29 -42
  4. package/src/lib/components/ng-virtual-list-item.component.html +9 -0
  5. package/src/lib/components/ng-virtual-list-item.component.scss +17 -0
  6. package/src/lib/components/ng-virtual-list-item.component.spec.ts +23 -0
  7. package/src/lib/components/ng-virtual-list-item.component.ts +111 -0
  8. package/src/lib/const/index.ts +67 -0
  9. package/{lib/enums/direction.d.ts → src/lib/enums/direction.ts} +9 -8
  10. package/{lib/enums/directions.d.ts → src/lib/enums/directions.ts} +16 -16
  11. package/{lib/enums/index.d.ts → src/lib/enums/index.ts} +7 -4
  12. package/{lib/models/collection.model.d.ts → src/lib/models/collection.model.ts} +9 -9
  13. package/{lib/models/index.d.ts → src/lib/models/index.ts} +13 -6
  14. package/{lib/models/item.model.d.ts → src/lib/models/item.model.ts} +15 -14
  15. package/{lib/models/render-collection.model.d.ts → src/lib/models/render-collection.model.ts} +9 -9
  16. package/{lib/models/render-item-config.model.d.ts → src/lib/models/render-item-config.model.ts} +33 -33
  17. package/{lib/models/render-item.model.d.ts → src/lib/models/render-item.model.ts} +29 -28
  18. package/{lib/models/scroll-direction.model.d.ts → src/lib/models/scroll-direction.model.ts} +5 -5
  19. package/{lib/models/scroll-event.model.d.ts → src/lib/models/scroll-event.model.ts} +51 -50
  20. package/{lib/models/sticky-map.model.d.ts → src/lib/models/sticky-map.model.ts} +12 -12
  21. package/src/lib/ng-virtual-list.component.html +5 -0
  22. package/src/lib/ng-virtual-list.component.scss +28 -0
  23. package/src/lib/ng-virtual-list.component.spec.ts +23 -0
  24. package/src/lib/ng-virtual-list.component.ts +543 -0
  25. package/src/lib/ng-virtual-list.module.ts +12 -0
  26. package/{lib/types/id.d.ts → src/lib/types/id.ts} +7 -7
  27. package/{lib/types/index.d.ts → src/lib/types/index.ts} +9 -4
  28. package/{lib/types/rect.d.ts → src/lib/types/rect.ts} +18 -17
  29. package/{lib/types/size.d.ts → src/lib/types/size.ts} +16 -16
  30. package/src/lib/utils/cacheMap.ts +224 -0
  31. package/src/lib/utils/debounce.ts +31 -0
  32. package/src/lib/utils/eventEmitter.ts +119 -0
  33. package/{lib/utils/index.d.ts → src/lib/utils/index.ts} +15 -7
  34. package/src/lib/utils/isDirection.ts +17 -0
  35. package/src/lib/utils/scrollEvent.ts +62 -0
  36. package/src/lib/utils/toggleClassName.ts +14 -0
  37. package/src/lib/utils/trackBox.ts +839 -0
  38. package/src/lib/utils/tracker.ts +126 -0
  39. package/{public-api.d.ts → src/public-api.ts} +8 -4
  40. package/tsconfig.lib.json +16 -0
  41. package/tsconfig.lib.prod.json +11 -0
  42. package/tsconfig.spec.json +15 -0
  43. package/esm2022/lib/components/ng-virtual-list-item.component.mjs +0 -88
  44. package/esm2022/lib/const/index.mjs +0 -35
  45. package/esm2022/lib/enums/direction.mjs +0 -2
  46. package/esm2022/lib/enums/directions.mjs +0 -18
  47. package/esm2022/lib/enums/index.mjs +0 -3
  48. package/esm2022/lib/models/collection.model.mjs +0 -3
  49. package/esm2022/lib/models/index.mjs +0 -2
  50. package/esm2022/lib/models/item.model.mjs +0 -3
  51. package/esm2022/lib/models/render-collection.model.mjs +0 -3
  52. package/esm2022/lib/models/render-item-config.model.mjs +0 -2
  53. package/esm2022/lib/models/render-item.model.mjs +0 -3
  54. package/esm2022/lib/models/scroll-direction.model.mjs +0 -2
  55. package/esm2022/lib/models/scroll-event.model.mjs +0 -2
  56. package/esm2022/lib/models/sticky-map.model.mjs +0 -2
  57. package/esm2022/lib/ng-virtual-list.component.mjs +0 -387
  58. package/esm2022/lib/ng-virtual-list.module.mjs +0 -20
  59. package/esm2022/lib/types/id.mjs +0 -2
  60. package/esm2022/lib/types/index.mjs +0 -2
  61. package/esm2022/lib/types/rect.mjs +0 -2
  62. package/esm2022/lib/types/size.mjs +0 -2
  63. package/esm2022/lib/utils/cacheMap.mjs +0 -168
  64. package/esm2022/lib/utils/debounce.mjs +0 -31
  65. package/esm2022/lib/utils/eventEmitter.mjs +0 -105
  66. package/esm2022/lib/utils/index.mjs +0 -8
  67. package/esm2022/lib/utils/isDirection.mjs +0 -15
  68. package/esm2022/lib/utils/scrollEvent.mjs +0 -42
  69. package/esm2022/lib/utils/toggleClassName.mjs +0 -15
  70. package/esm2022/lib/utils/trackBox.mjs +0 -627
  71. package/esm2022/lib/utils/tracker.mjs +0 -93
  72. package/esm2022/ng-virtual-list.mjs +0 -5
  73. package/esm2022/public-api.mjs +0 -8
  74. package/fesm2022/ng-virtual-list.mjs +0 -1636
  75. package/fesm2022/ng-virtual-list.mjs.map +0 -1
  76. package/index.d.ts +0 -5
  77. package/lib/components/ng-virtual-list-item.component.d.ts +0 -31
  78. package/lib/const/index.d.ts +0 -33
  79. package/lib/ng-virtual-list.component.d.ts +0 -133
  80. package/lib/ng-virtual-list.module.d.ts +0 -9
  81. package/lib/utils/cacheMap.d.ts +0 -60
  82. package/lib/utils/debounce.d.ts +0 -16
  83. package/lib/utils/eventEmitter.d.ts +0 -40
  84. package/lib/utils/isDirection.d.ts +0 -8
  85. package/lib/utils/scrollEvent.d.ts +0 -39
  86. package/lib/utils/toggleClassName.d.ts +0 -7
  87. package/lib/utils/trackBox.d.ts +0 -176
  88. package/lib/utils/tracker.d.ts +0 -44
package/README.md CHANGED
@@ -479,7 +479,7 @@ Methods
479
479
 
480
480
  MIT License
481
481
 
482
- Copyright (c) 2025 Evgenii Grebennikov
482
+ Copyright (c) 2025 djonnyx (Evgenii Grebennikov)
483
483
 
484
484
  Permission is hereby granted, free of charge, to any person obtaining a copy
485
485
  of this software and associated documentation files (the "Software"), to deal
@@ -0,0 +1,7 @@
1
+ {
2
+ "$schema": "../../node_modules/ng-packagr/ng-package.schema.json",
3
+ "dest": "../../dist/ng-virtual-list",
4
+ "lib": {
5
+ "entryFile": "src/public-api.ts"
6
+ }
7
+ }
package/package.json CHANGED
@@ -1,43 +1,30 @@
1
- {
2
- "name": "ng-virtual-list",
3
- "version": "17.0.20",
4
- "author": {
5
- "name": "Evgenii Grebennikov",
6
- "email": "djonnyx@gmail.com"
7
- },
8
- "license": "MIT",
9
- "homepage": "https://github.com/djonnyx/ng-virtual-list/tree/main/projects/ng-virtual-list",
10
- "keywords": [
11
- "ng",
12
- "angular",
13
- "virtual",
14
- "virtualized",
15
- "list",
16
- "group",
17
- "grouped",
18
- "scroll",
19
- "scrolling",
20
- "scroller"
21
- ],
22
- "peerDependencies": {
23
- "@angular/common": "^17.3.0",
24
- "@angular/core": "^17.3.0"
25
- },
26
- "dependencies": {
27
- "tslib": "^2.3.0"
28
- },
29
- "sideEffects": false,
30
- "module": "fesm2022/ng-virtual-list.mjs",
31
- "typings": "index.d.ts",
32
- "exports": {
33
- "./package.json": {
34
- "default": "./package.json"
35
- },
36
- ".": {
37
- "types": "./index.d.ts",
38
- "esm2022": "./esm2022/ng-virtual-list.mjs",
39
- "esm": "./esm2022/ng-virtual-list.mjs",
40
- "default": "./fesm2022/ng-virtual-list.mjs"
41
- }
42
- }
1
+ {
2
+ "name": "ng-virtual-list",
3
+ "version": "17.0.22",
4
+ "author": {
5
+ "name": "Evgenii Grebennikov",
6
+ "email": "djonnyx@gmail.com"
7
+ },
8
+ "license": "MIT",
9
+ "homepage": "https://github.com/djonnyx/ng-virtual-list/tree/main/projects/ng-virtual-list",
10
+ "keywords": [
11
+ "ng",
12
+ "angular",
13
+ "virtual",
14
+ "virtualized",
15
+ "list",
16
+ "group",
17
+ "grouped",
18
+ "scroll",
19
+ "scrolling",
20
+ "scroller"
21
+ ],
22
+ "peerDependencies": {
23
+ "@angular/common": "^17.3.0",
24
+ "@angular/core": "^17.3.0"
25
+ },
26
+ "dependencies": {
27
+ "tslib": "^2.3.0"
28
+ },
29
+ "sideEffects": false
43
30
  }
@@ -0,0 +1,9 @@
1
+ @if (data(); as item) {
2
+ <li #listItem part="item" class="ngvl-item__container" [ngClass]="{'snapped': item.config.snapped,
3
+ 'snapped-out': item.config.snappedOut}">
4
+ @if (itemRenderer(); as renderer) {
5
+ <ng-container [ngTemplateOutlet]="renderer"
6
+ [ngTemplateOutletContext]="{data: item.data || {}, config: item.config}" />
7
+ }
8
+ </li>
9
+ }
@@ -0,0 +1,17 @@
1
+ :host {
2
+ display: block;
3
+ position: absolute;
4
+ left: 0;
5
+ top: 0;
6
+ box-sizing: border-box;
7
+ overflow: hidden;
8
+ }
9
+
10
+ .ngvl-item__container {
11
+ margin: 0;
12
+ padding: 0;
13
+ overflow: hidden;
14
+ background-color: #ffffff;
15
+ width: inherit;
16
+ height: inherit;
17
+ }
@@ -0,0 +1,23 @@
1
+ import { ComponentFixture, TestBed } from '@angular/core/testing';
2
+
3
+ import { NgVirtualListItemComponent } from './ng-virtual-list-item.component';
4
+
5
+ describe('NgVirtualListItemComponent', () => {
6
+ let component: NgVirtualListItemComponent;
7
+ let fixture: ComponentFixture<NgVirtualListItemComponent>;
8
+
9
+ beforeEach(async () => {
10
+ await TestBed.configureTestingModule({
11
+ imports: [NgVirtualListItemComponent]
12
+ })
13
+ .compileComponents();
14
+
15
+ fixture = TestBed.createComponent(NgVirtualListItemComponent);
16
+ component = fixture.componentInstance;
17
+ fixture.detectChanges();
18
+ });
19
+
20
+ it('should create', () => {
21
+ expect(component).toBeTruthy();
22
+ });
23
+ });
@@ -0,0 +1,111 @@
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, inject, signal, TemplateRef } from '@angular/core';
2
+ import { IRenderVirtualListItem } from '../models/render-item.model';
3
+ import { ISize } from '../types';
4
+ import {
5
+ POSITION_ABSOLUTE, POSITION_STICKY, PX, SIZE_100_PERSENT, SIZE_AUTO, TRANSLATE_3D, VISIBILITY_HIDDEN,
6
+ VISIBILITY_VISIBLE, ZEROS_TRANSLATE_3D,
7
+ } from '../const';
8
+
9
+ /**
10
+ * Virtual list item component
11
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/17.x/projects/ng-virtual-list/src/lib/components/ng-virtual-list-item.component.ts
12
+ * @author Evgenii Grebennikov
13
+ * @email djonnyx@gmail.com
14
+ */
15
+ @Component({
16
+ selector: 'ng-virtual-list-item',
17
+ standalone: false,
18
+ templateUrl: './ng-virtual-list-item.component.html',
19
+ styleUrl: './ng-virtual-list-item.component.scss',
20
+ host: {
21
+ 'class': 'ngvl__item',
22
+ },
23
+ changeDetection: ChangeDetectionStrategy.OnPush,
24
+ })
25
+ export class NgVirtualListItemComponent {
26
+ private static __nextId: number = 0;
27
+
28
+ private _id!: number;
29
+ get id() {
30
+ return this._id;
31
+ }
32
+
33
+ private _cdr = inject(ChangeDetectorRef);
34
+
35
+ data = signal<IRenderVirtualListItem | undefined>(undefined);
36
+ private _data: IRenderVirtualListItem | undefined = undefined;
37
+ set item(v: IRenderVirtualListItem | undefined) {
38
+ if (this._data === v) {
39
+ return;
40
+ }
41
+
42
+ const data = this._data = v;
43
+
44
+ if (data) {
45
+ const styles = this._elementRef.nativeElement.style;
46
+ styles.zIndex = String(data.config.sticky);
47
+ if (data.config.snapped) {
48
+ styles.transform = ZEROS_TRANSLATE_3D;
49
+ styles.position = POSITION_STICKY;
50
+ } else {
51
+ styles.position = POSITION_ABSOLUTE;
52
+ styles.transform = `${TRANSLATE_3D}(${data.config.isVertical ? 0 : data.measures.x}${PX}, ${data.config.isVertical ? data.measures.y : 0}${PX} , 0)`;
53
+ }
54
+ styles.height = data.config.isVertical ? data.config.dynamic ? SIZE_AUTO : `${data.measures.height}${PX}` : SIZE_100_PERSENT;
55
+ styles.width = data.config.isVertical ? SIZE_100_PERSENT : data.config.dynamic ? SIZE_AUTO : `${data.measures.width}${PX}`;
56
+ }
57
+
58
+ this.data.set(v);
59
+
60
+ this._cdr.markForCheck();
61
+ }
62
+
63
+ get item() {
64
+ return this._data;
65
+ }
66
+
67
+ get itemId() {
68
+ return this._data?.id;
69
+ }
70
+
71
+ itemRenderer = signal<TemplateRef<any> | undefined>(undefined);
72
+
73
+ set renderer(v: TemplateRef<any> | undefined) {
74
+ this.itemRenderer.set(v);
75
+ }
76
+
77
+ private _elementRef: ElementRef<HTMLElement> = inject(ElementRef<HTMLElement>);
78
+ get element() {
79
+ return this._elementRef.nativeElement;
80
+ }
81
+
82
+ constructor() {
83
+ this._id = NgVirtualListItemComponent.__nextId = NgVirtualListItemComponent.__nextId === Number.MAX_SAFE_INTEGER
84
+ ? 0 : NgVirtualListItemComponent.__nextId + 1;
85
+ }
86
+
87
+ getBounds(): ISize {
88
+ const el: HTMLElement = this._elementRef.nativeElement,
89
+ { width, height } = el.getBoundingClientRect();
90
+ return { width, height };
91
+ }
92
+
93
+ show() {
94
+ const styles = this._elementRef.nativeElement.style;
95
+ if (styles.visibility === VISIBILITY_VISIBLE) {
96
+ return;
97
+ }
98
+
99
+ styles.visibility = VISIBILITY_VISIBLE;
100
+ }
101
+
102
+ hide() {
103
+ const styles = this._elementRef.nativeElement.style;
104
+ if (styles.visibility === VISIBILITY_HIDDEN) {
105
+ return;
106
+ }
107
+
108
+ styles.visibility = VISIBILITY_HIDDEN;
109
+ styles.transform = ZEROS_TRANSLATE_3D;
110
+ }
111
+ }
@@ -0,0 +1,67 @@
1
+ import { Directions } from "../enums/directions";
2
+
3
+ export const DEFAULT_ITEM_SIZE = 24;
4
+
5
+ export const DEFAULT_ITEMS_OFFSET = 2;
6
+
7
+ export const DEFAULT_LIST_SIZE = 400;
8
+
9
+ export const DEFAULT_SNAP = false;
10
+
11
+ export const DEFAULT_ENABLED_BUFFER_OPTIMIZATION = false;
12
+
13
+ export const DEFAULT_DYNAMIC_SIZE = false;
14
+
15
+ export const TRACK_BY_PROPERTY_NAME = 'id';
16
+
17
+ export const DEFAULT_DIRECTION = Directions.VERTICAL;
18
+
19
+ export const DISPLAY_OBJECTS_LENGTH_MESUREMENT_ERROR = 1;
20
+
21
+ export const MAX_SCROLL_TO_ITERATIONS = 5;
22
+
23
+ // presets
24
+
25
+ export const BEHAVIOR_AUTO = 'auto';
26
+
27
+ export const BEHAVIOR_INSTANT = 'instant';
28
+
29
+ export const BEHAVIOR_SMOOTH = 'smooth';
30
+
31
+ export const VISIBILITY_VISIBLE = 'visible';
32
+
33
+ export const VISIBILITY_HIDDEN = 'hidden';
34
+
35
+ export const SIZE_100_PERSENT = '100%';
36
+
37
+ export const SIZE_AUTO = 'auto';
38
+
39
+ export const POSITION_ABSOLUTE = 'absolute';
40
+
41
+ export const POSITION_STICKY = 'sticky';
42
+
43
+ export const TRANSLATE_3D = 'translate3d';
44
+
45
+ export const ZEROS_TRANSLATE_3D = `${TRANSLATE_3D}(0,0,0)`;
46
+
47
+ export const TOP_PROP_NAME = 'top';
48
+
49
+ export const LEFT_PROP_NAME = 'left';
50
+
51
+ export const X_PROP_NAME = 'x';
52
+
53
+ export const Y_PROP_NAME = 'y';
54
+
55
+ export const WIDTH_PROP_NAME = 'width';
56
+
57
+ export const HEIGHT_PROP_NAME = 'height';
58
+
59
+ export const PX = 'px';
60
+
61
+ export const SCROLL = 'scroll';
62
+
63
+ export const SCROLL_END = 'scrollend';
64
+
65
+ export const CLASS_LIST_VERTICAL = 'vertical';
66
+
67
+ export const CLASS_LIST_HORIZONTAL = 'horizontal';
@@ -1,8 +1,9 @@
1
- import { Directions } from "./directions";
2
- /**
3
- * Axis of the arrangement of virtual list elements.
4
- * @link https://github.com/DjonnyX/ng-virtual-list/blob/17.x/projects/ng-virtual-list/src/lib/enums/direction.ts
5
- * @author Evgenii Grebennikov
6
- * @email djonnyx@gmail.com
7
- */
8
- export type Direction = Directions | 'hotizontal' | 'vertical';
1
+ import { Directions } from "./directions";
2
+
3
+ /**
4
+ * Axis of the arrangement of virtual list elements.
5
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/17.x/projects/ng-virtual-list/src/lib/enums/direction.ts
6
+ * @author Evgenii Grebennikov
7
+ * @email djonnyx@gmail.com
8
+ */
9
+ export type Direction = Directions | 'hotizontal' | 'vertical';
@@ -1,16 +1,16 @@
1
- /**
2
- * Axis of the arrangement of virtual list elements.
3
- * @link https://github.com/DjonnyX/ng-virtual-list/blob/17.x/projects/ng-virtual-list/src/lib/enums/directions.ts
4
- * @author Evgenii Grebennikov
5
- * @email djonnyx@gmail.com
6
- */
7
- export declare enum Directions {
8
- /**
9
- * Horizontal axis.
10
- */
11
- HORIZONTAL = "horizontal",
12
- /**
13
- * Vertical axis.
14
- */
15
- VERTICAL = "vertical"
16
- }
1
+ /**
2
+ * Axis of the arrangement of virtual list elements.
3
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/17.x/projects/ng-virtual-list/src/lib/enums/directions.ts
4
+ * @author Evgenii Grebennikov
5
+ * @email djonnyx@gmail.com
6
+ */
7
+ export enum Directions {
8
+ /**
9
+ * Horizontal axis.
10
+ */
11
+ HORIZONTAL = 'horizontal',
12
+ /**
13
+ * Vertical axis.
14
+ */
15
+ VERTICAL = 'vertical',
16
+ }
@@ -1,4 +1,7 @@
1
- import { Directions } from "./directions";
2
- import { Direction } from "./direction";
3
- export { Directions };
4
- export type { Direction };
1
+ import { Directions } from "./directions";
2
+ import { Direction } from "./direction";
3
+
4
+ export {
5
+ Directions
6
+ };
7
+ export type { Direction };
@@ -1,9 +1,9 @@
1
- import { IVirtualListItem } from "./item.model";
2
- /**
3
- * Virtual list elements collection interface
4
- * @link https://github.com/DjonnyX/ng-virtual-list/blob/17.x/projects/ng-virtual-list/src/lib/models/collection.model.ts
5
- * @author Evgenii Grebennikov
6
- * @email djonnyx@gmail.com
7
- */
8
- export interface IVirtualListCollection extends Array<IVirtualListItem> {
9
- }
1
+ import { IVirtualListItem } from "./item.model";
2
+
3
+ /**
4
+ * Virtual list elements collection interface
5
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/17.x/projects/ng-virtual-list/src/lib/models/collection.model.ts
6
+ * @author Evgenii Grebennikov
7
+ * @email djonnyx@gmail.com
8
+ */
9
+ export interface IVirtualListCollection extends Array<IVirtualListItem> { };
@@ -1,6 +1,13 @@
1
- import { ScrollDirection } from './scroll-direction.model';
2
- import { IScrollEvent } from './scroll-event.model';
3
- import { IVirtualListItem } from './item.model';
4
- import { IVirtualListStickyMap } from './sticky-map.model';
5
- import { IVirtualListCollection } from './collection.model';
6
- export type { ScrollDirection, IScrollEvent, IVirtualListItem, IVirtualListStickyMap, IVirtualListCollection, };
1
+ import { ScrollDirection } from './scroll-direction.model';
2
+ import { IScrollEvent } from './scroll-event.model';
3
+ import { IVirtualListItem } from './item.model';
4
+ import { IVirtualListStickyMap } from './sticky-map.model';
5
+ import { IVirtualListCollection } from './collection.model';
6
+
7
+ export type {
8
+ ScrollDirection,
9
+ IScrollEvent,
10
+ IVirtualListItem,
11
+ IVirtualListStickyMap,
12
+ IVirtualListCollection,
13
+ }
@@ -1,14 +1,15 @@
1
- import { Id } from "../types/id";
2
- /**
3
- * Virtual list element model
4
- * @link https://github.com/DjonnyX/ng-virtual-list/blob/17.x/projects/ng-virtual-list/src/lib/models/item.model.ts
5
- * @author Evgenii Grebennikov
6
- * @email djonnyx@gmail.com
7
- */
8
- export interface IVirtualListItem {
9
- /**
10
- * Unique identifier of the element.
11
- */
12
- id: Id;
13
- [x: string]: any;
14
- }
1
+ import { Id } from "../types/id";
2
+
3
+ /**
4
+ * Virtual list element model
5
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/17.x/projects/ng-virtual-list/src/lib/models/item.model.ts
6
+ * @author Evgenii Grebennikov
7
+ * @email djonnyx@gmail.com
8
+ */
9
+ export interface IVirtualListItem {
10
+ /**
11
+ * Unique identifier of the element.
12
+ */
13
+ id: Id;
14
+ [x: string]: any;
15
+ };
@@ -1,9 +1,9 @@
1
- import { IRenderVirtualListItem } from "./render-item.model";
2
- /**
3
- * Virtual list screen elements collection interface
4
- * @link https://github.com/DjonnyX/ng-virtual-list/blob/17.x/projects/ng-virtual-list/src/lib/models/render-collection.model.ts
5
- * @author Evgenii Grebennikov
6
- * @email djonnyx@gmail.com
7
- */
8
- export interface IRenderVirtualListCollection extends Array<IRenderVirtualListItem> {
9
- }
1
+ import { IRenderVirtualListItem } from "./render-item.model";
2
+
3
+ /**
4
+ * Virtual list screen elements collection interface
5
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/17.x/projects/ng-virtual-list/src/lib/models/render-collection.model.ts
6
+ * @author Evgenii Grebennikov
7
+ * @email djonnyx@gmail.com
8
+ */
9
+ export interface IRenderVirtualListCollection extends Array<IRenderVirtualListItem> { };
@@ -1,33 +1,33 @@
1
- /**
2
- * Object with configuration parameters for IRenderVirtualListItem
3
- * @link https://github.com/DjonnyX/ng-virtual-list/blob/17.x/projects/ng-virtual-list/src/lib/models/render-item-config.model.ts
4
- * @author Evgenii Grebennikov
5
- * @email djonnyx@gmail.com
6
- *
7
- */
8
- export interface IRenderVirtualListItemConfig {
9
- /**
10
- * If greater than 0, the element will have a sticky position with the given zIndex.
11
- */
12
- sticky: number;
13
- /**
14
- * Specifies whether the element will snap.
15
- */
16
- snap: boolean;
17
- /**
18
- * Indicates that the element is snapped.
19
- */
20
- snapped: boolean;
21
- /**
22
- * Indicates that the element is being shifted by another snap element.
23
- */
24
- snappedOut: boolean;
25
- /**
26
- * Indicates that the element is a vertical list item.
27
- */
28
- isVertical: boolean;
29
- /**
30
- * Specifies that the element adapts to the size of its content.
31
- */
32
- dynamic: boolean;
33
- }
1
+ /**
2
+ * Object with configuration parameters for IRenderVirtualListItem
3
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/17.x/projects/ng-virtual-list/src/lib/models/render-item-config.model.ts
4
+ * @author Evgenii Grebennikov
5
+ * @email djonnyx@gmail.com
6
+ *
7
+ */
8
+ export interface IRenderVirtualListItemConfig {
9
+ /**
10
+ * If greater than 0, the element will have a sticky position with the given zIndex.
11
+ */
12
+ sticky: number;
13
+ /**
14
+ * Specifies whether the element will snap.
15
+ */
16
+ snap: boolean;
17
+ /**
18
+ * Indicates that the element is snapped.
19
+ */
20
+ snapped: boolean;
21
+ /**
22
+ * Indicates that the element is being shifted by another snap element.
23
+ */
24
+ snappedOut: boolean;
25
+ /**
26
+ * Indicates that the element is a vertical list item.
27
+ */
28
+ isVertical: boolean;
29
+ /**
30
+ * Specifies that the element adapts to the size of its content.
31
+ */
32
+ dynamic: boolean;
33
+ }
@@ -1,28 +1,29 @@
1
- import { IRect } from "../types";
2
- import { Id } from "../types/id";
3
- import { IVirtualListItem } from "./item.model";
4
- import { IRenderVirtualListItemConfig } from "./render-item-config.model";
5
- /**
6
- * List screen element model
7
- * @link https://github.com/DjonnyX/ng-virtual-list/blob/17.x/projects/ng-virtual-list/src/lib/models/render-item.model.ts
8
- * @author Evgenii Grebennikov
9
- * @email djonnyx@gmail.com
10
- */
11
- export interface IRenderVirtualListItem {
12
- /**
13
- * Unique identifier of the element.
14
- */
15
- id: Id;
16
- /**
17
- * Element metrics.
18
- */
19
- measures: IRect;
20
- /**
21
- * Element data.
22
- */
23
- data: IVirtualListItem;
24
- /**
25
- * Object with configuration parameters for IRenderVirtualListItem.
26
- */
27
- config: IRenderVirtualListItemConfig;
28
- }
1
+ import { IRect } from "../types";
2
+ import { Id } from "../types/id";
3
+ import { IVirtualListItem } from "./item.model";
4
+ import { IRenderVirtualListItemConfig } from "./render-item-config.model";
5
+
6
+ /**
7
+ * List screen element model
8
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/17.x/projects/ng-virtual-list/src/lib/models/render-item.model.ts
9
+ * @author Evgenii Grebennikov
10
+ * @email djonnyx@gmail.com
11
+ */
12
+ export interface IRenderVirtualListItem {
13
+ /**
14
+ * Unique identifier of the element.
15
+ */
16
+ id: Id;
17
+ /**
18
+ * Element metrics.
19
+ */
20
+ measures: IRect;
21
+ /**
22
+ * Element data.
23
+ */
24
+ data: IVirtualListItem;
25
+ /**
26
+ * Object with configuration parameters for IRenderVirtualListItem.
27
+ */
28
+ config: IRenderVirtualListItemConfig;
29
+ };
@@ -1,5 +1,5 @@
1
- /**
2
- * A value of -1 indicates the direction is up or left (if the list direction is horizontal).
3
- * A value of 1 indicates the direction is down or right (if the list direction is horizontal).
4
- */
5
- export type ScrollDirection = -1 | 1 | 0;
1
+ /**
2
+ * A value of -1 indicates the direction is up or left (if the list direction is horizontal).
3
+ * A value of 1 indicates the direction is down or right (if the list direction is horizontal).
4
+ */
5
+ export type ScrollDirection = -1 | 1 | 0;