diff --git a/package-lock.json b/package-lock.json index 20ab416e..6b93454b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "vscroll", - "version": "1.8.2", + "version": "1.8.3", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "vscroll", - "version": "1.8.2", + "version": "1.8.3", "license": "MIT", "dependencies": { "tslib": "^2.8.1" diff --git a/package.json b/package.json index 0d6cf6b2..3cd4ec4b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "vscroll", - "version": "1.8.2", + "version": "1.8.3", "description": "Virtual scroll engine", "main": "dist/bundles/vscroll.umd.js", "module": "dist/bundles/vscroll.esm5.js", diff --git a/src/classes/item.ts b/src/classes/item.ts index 665cf17d..54f9ad9d 100644 --- a/src/classes/item.ts +++ b/src/classes/item.ts @@ -3,6 +3,7 @@ import { Direction } from '../inputs/index'; import { Item as _Item, ItemAdapter } from '../interfaces/index'; export class Item implements _Item { + private static nextUid = 1; nodeId: string; routines: Routines; preSize: number; // estimated size @@ -14,6 +15,13 @@ export class Item implements _Item { private container: ItemAdapter; + get uid(): number { + return this.container.uid; + } + set uid(value: number) { + this.container.uid = value; + } + get $index(): number { return this.container.$index; } @@ -37,6 +45,7 @@ export class Item implements _Item { constructor($index: number, data: Data, routines: Routines) { this.container = { + uid: Item.nextUid++, $index, data }; diff --git a/src/interfaces/adapter.ts b/src/interfaces/adapter.ts index baf8b609..fee6441f 100644 --- a/src/interfaces/adapter.ts +++ b/src/interfaces/adapter.ts @@ -42,6 +42,7 @@ export interface IAdapterProp { } export interface ItemAdapter { + uid: number; $index: number; data: Data; element?: HTMLElement; diff --git a/src/interfaces/item.ts b/src/interfaces/item.ts index 43393224..dd1c4aee 100644 --- a/src/interfaces/item.ts +++ b/src/interfaces/item.ts @@ -1,6 +1,7 @@ import { ItemAdapter } from './adapter'; export interface Item { + uid: number; $index: number; element: HTMLElement; data: Data; diff --git a/src/version.ts b/src/version.ts index 565850da..cdc01af8 100644 --- a/src/version.ts +++ b/src/version.ts @@ -1,4 +1,4 @@ export default { name: 'vscroll', - version: '1.8.2' + version: '1.8.3' }; diff --git a/tests/package-lock.json b/tests/package-lock.json index 7d190498..ed7d1be1 100644 --- a/tests/package-lock.json +++ b/tests/package-lock.json @@ -1,12 +1,12 @@ { "name": "vscroll-tests", - "version": "1.8.2", + "version": "1.8.3", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "vscroll-tests", - "version": "1.8.2", + "version": "1.8.3", "devDependencies": { "@babel/core": "^7.28.5", "@babel/preset-env": "^7.28.5", diff --git a/tests/package.json b/tests/package.json index f243734a..13fac5cc 100644 --- a/tests/package.json +++ b/tests/package.json @@ -1,6 +1,6 @@ { "name": "vscroll-tests", - "version": "1.8.2", + "version": "1.8.3", "private": true, "description": "Test suite for vscroll", "type": "module",