@cas-smartdesign/virtual-list 6.2.2
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 +8 -0
- package/dist/data-provider.d.ts +27 -0
- package/dist/docs/1_selection_types.js +2 -0
- package/dist/docs/2_lazy_load_with_search.js +1 -0
- package/dist/docs/3_duplicate_items.js +1 -0
- package/dist/docs/doc.css +1 -0
- package/dist/docs/doc.mjs +553 -0
- package/dist/docs/icon.svg +1 -0
- package/dist/docs/index.html +29 -0
- package/dist/docs/item-provider.mjs +1 -0
- package/dist/docs/lock.svg +1 -0
- package/dist/docs/right-arrow.svg +6 -0
- package/dist/list-util.d.ts +11 -0
- package/dist/virtual-list-with-externals.js +107 -0
- package/dist/virtual-list-with-externals.js.map +7 -0
- package/dist/virtual-list.d.ts +97 -0
- package/dist/virtual-list.mjs +370 -0
- package/dist/virtual-list.mjs.map +1 -0
- package/npm-third-party-licenses.json +192 -0
- package/package.json +35 -0
- package/readme.md +84 -0
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
{
|
|
2
|
+
"@cypress/vite-dev-server@5.0.7": {
|
|
3
|
+
"licenses": "MIT",
|
|
4
|
+
"repository": "https://github.com/cypress-io/cypress",
|
|
5
|
+
"licenseUrl": "https://github.com/cypress-io/cypress/tree/develop/npm/vite-dev-server#readme"
|
|
6
|
+
},
|
|
7
|
+
"@rollup/plugin-node-resolve@15.2.3": {
|
|
8
|
+
"licenses": "MIT",
|
|
9
|
+
"repository": "https://github.com/rollup/plugins",
|
|
10
|
+
"licenseUrl": "https://github.com/rollup/plugins/raw/HEAD/LICENSE"
|
|
11
|
+
},
|
|
12
|
+
"@types/node@20.10.6": {
|
|
13
|
+
"licenses": "MIT",
|
|
14
|
+
"repository": "https://github.com/DefinitelyTyped/DefinitelyTyped",
|
|
15
|
+
"licenseUrl": "https://github.com/DefinitelyTyped/DefinitelyTyped/raw/HEAD/LICENSE"
|
|
16
|
+
},
|
|
17
|
+
"@types/postcss-prefix-selector@1.16.3": {
|
|
18
|
+
"licenses": "MIT",
|
|
19
|
+
"repository": "https://github.com/DefinitelyTyped/DefinitelyTyped",
|
|
20
|
+
"licenseUrl": "https://github.com/DefinitelyTyped/DefinitelyTyped/raw/HEAD/LICENSE"
|
|
21
|
+
},
|
|
22
|
+
"@typescript-eslint/eslint-plugin@6.17.0": {
|
|
23
|
+
"licenses": "MIT",
|
|
24
|
+
"repository": "https://github.com/typescript-eslint/typescript-eslint",
|
|
25
|
+
"licenseUrl": "https://github.com/typescript-eslint/typescript-eslint/raw/HEAD/LICENSE"
|
|
26
|
+
},
|
|
27
|
+
"@typescript-eslint/parser@6.17.0": {
|
|
28
|
+
"licenses": "BSD-2-Clause",
|
|
29
|
+
"repository": "https://github.com/typescript-eslint/typescript-eslint",
|
|
30
|
+
"licenseUrl": "https://github.com/typescript-eslint/typescript-eslint/raw/HEAD/LICENSE"
|
|
31
|
+
},
|
|
32
|
+
"@vitest/coverage-v8@1.1.1": {
|
|
33
|
+
"licenses": "MIT",
|
|
34
|
+
"repository": "https://github.com/vitest-dev/vitest",
|
|
35
|
+
"licenseUrl": "https://github.com/vitest-dev/vitest/raw/HEAD/LICENSE"
|
|
36
|
+
},
|
|
37
|
+
"@vitest/ui@1.1.1": {
|
|
38
|
+
"licenses": "MIT",
|
|
39
|
+
"repository": "https://github.com/vitest-dev/vitest",
|
|
40
|
+
"licenseUrl": "https://github.com/vitest-dev/vitest/raw/HEAD/LICENSE"
|
|
41
|
+
},
|
|
42
|
+
"axe-core@4.8.3": {
|
|
43
|
+
"licenses": "MPL-2.0",
|
|
44
|
+
"repository": "https://github.com/dequelabs/axe-core",
|
|
45
|
+
"licenseUrl": "https://github.com/dequelabs/axe-core/raw/HEAD/LICENSE"
|
|
46
|
+
},
|
|
47
|
+
"cypress-axe@1.5.0": {
|
|
48
|
+
"licenses": "MIT",
|
|
49
|
+
"repository": "https://github.com/component-driven/cypress-axe",
|
|
50
|
+
"licenseUrl": "https://github.com/component-driven/cypress-axe/raw/HEAD/License.md"
|
|
51
|
+
},
|
|
52
|
+
"cypress-real-events@1.13.0": {
|
|
53
|
+
"licenses": "MIT",
|
|
54
|
+
"repository": "https://github.com/dmtrKovalenko/cypress-real-events",
|
|
55
|
+
"licenseUrl": "https://github.com/dmtrKovalenko/cypress-real-events"
|
|
56
|
+
},
|
|
57
|
+
"cypress@13.6.2": {
|
|
58
|
+
"licenses": "MIT",
|
|
59
|
+
"repository": "https://github.com/cypress-io/cypress",
|
|
60
|
+
"licenseUrl": "https://cypress.io"
|
|
61
|
+
},
|
|
62
|
+
"esbuild@0.19.11": {
|
|
63
|
+
"licenses": "MIT",
|
|
64
|
+
"repository": "https://github.com/evanw/esbuild",
|
|
65
|
+
"licenseUrl": "https://github.com/evanw/esbuild/raw/HEAD/LICENSE.md"
|
|
66
|
+
},
|
|
67
|
+
"eslint-config-google@0.14.0": {
|
|
68
|
+
"licenses": "Apache-2.0",
|
|
69
|
+
"repository": "https://github.com/google/eslint-config-google",
|
|
70
|
+
"licenseUrl": "https://github.com/google/eslint-config-google/raw/HEAD/LICENSE"
|
|
71
|
+
},
|
|
72
|
+
"eslint-config-prettier@9.1.0": {
|
|
73
|
+
"licenses": "MIT",
|
|
74
|
+
"repository": "https://github.com/prettier/eslint-config-prettier",
|
|
75
|
+
"licenseUrl": "https://github.com/prettier/eslint-config-prettier/raw/HEAD/LICENSE"
|
|
76
|
+
},
|
|
77
|
+
"eslint@8.56.0": {
|
|
78
|
+
"licenses": "MIT",
|
|
79
|
+
"repository": "https://github.com/eslint/eslint",
|
|
80
|
+
"licenseUrl": "https://github.com/eslint/eslint/raw/HEAD/LICENSE"
|
|
81
|
+
},
|
|
82
|
+
"github-markdown-css@5.5.0": {
|
|
83
|
+
"licenses": "MIT",
|
|
84
|
+
"repository": "https://github.com/sindresorhus/github-markdown-css",
|
|
85
|
+
"licenseUrl": "https://github.com/sindresorhus/github-markdown-css/raw/HEAD/license"
|
|
86
|
+
},
|
|
87
|
+
"highlight.js@11.9.0": {
|
|
88
|
+
"licenses": "BSD-3-Clause",
|
|
89
|
+
"repository": "https://github.com/highlightjs/highlight.js",
|
|
90
|
+
"licenseUrl": "https://github.com/highlightjs/highlight.js/raw/HEAD/LICENSE"
|
|
91
|
+
},
|
|
92
|
+
"junit-report-builder@3.1.0": {
|
|
93
|
+
"licenses": "MIT",
|
|
94
|
+
"repository": "https://github.com/davidparsson/junit-report-builder",
|
|
95
|
+
"licenseUrl": "https://github.com/davidparsson/junit-report-builder/raw/HEAD/LICENSE"
|
|
96
|
+
},
|
|
97
|
+
"lint-staged@15.2.0": {
|
|
98
|
+
"licenses": "MIT",
|
|
99
|
+
"repository": "https://github.com/okonet/lint-staged",
|
|
100
|
+
"licenseUrl": "https://github.com/okonet/lint-staged/raw/HEAD/LICENSE"
|
|
101
|
+
},
|
|
102
|
+
"lit@2.8.0": {
|
|
103
|
+
"licenses": "BSD-3-Clause",
|
|
104
|
+
"repository": "https://github.com/lit/lit",
|
|
105
|
+
"licenseUrl": "https://github.com/lit/lit/raw/HEAD/LICENSE"
|
|
106
|
+
},
|
|
107
|
+
"marked@11.1.1": {
|
|
108
|
+
"licenses": "MIT",
|
|
109
|
+
"repository": "https://github.com/markedjs/marked",
|
|
110
|
+
"licenseUrl": "https://github.com/markedjs/marked/raw/HEAD/LICENSE.md"
|
|
111
|
+
},
|
|
112
|
+
"postcss-prefix-selector@1.16.0": {
|
|
113
|
+
"licenses": "MIT",
|
|
114
|
+
"repository": "https://github.com/RadValentin/postcss-prefix-selector",
|
|
115
|
+
"licenseUrl": "https://github.com/RadValentin/postcss-prefix-selector/raw/HEAD/LICENSE"
|
|
116
|
+
},
|
|
117
|
+
"postcss@8.4.32": {
|
|
118
|
+
"licenses": "MIT",
|
|
119
|
+
"repository": "https://github.com/postcss/postcss",
|
|
120
|
+
"licenseUrl": "https://github.com/postcss/postcss/raw/HEAD/LICENSE"
|
|
121
|
+
},
|
|
122
|
+
"prettier@3.1.1": {
|
|
123
|
+
"licenses": "MIT",
|
|
124
|
+
"repository": "https://github.com/prettier/prettier",
|
|
125
|
+
"licenseUrl": "https://github.com/prettier/prettier/raw/HEAD/LICENSE"
|
|
126
|
+
},
|
|
127
|
+
"resolve-pkg@2.0.0": {
|
|
128
|
+
"licenses": "MIT",
|
|
129
|
+
"repository": "https://github.com/sindresorhus/resolve-pkg",
|
|
130
|
+
"licenseUrl": "https://github.com/sindresorhus/resolve-pkg/raw/HEAD/license"
|
|
131
|
+
},
|
|
132
|
+
"sass@1.69.6": {
|
|
133
|
+
"licenses": "MIT",
|
|
134
|
+
"repository": "https://github.com/sass/dart-sass",
|
|
135
|
+
"licenseUrl": "https://github.com/sass/dart-sass/raw/HEAD/LICENSE"
|
|
136
|
+
},
|
|
137
|
+
"stylelint-config-recommended-scss@14.0.0": {
|
|
138
|
+
"licenses": "MIT",
|
|
139
|
+
"repository": "https://github.com/stylelint-scss/stylelint-config-recommended-scss",
|
|
140
|
+
"licenseUrl": "https://github.com/stylelint-scss/stylelint-config-recommended-scss/raw/HEAD/LICENSE"
|
|
141
|
+
},
|
|
142
|
+
"stylelint-config-standard@36.0.0": {
|
|
143
|
+
"licenses": "MIT",
|
|
144
|
+
"repository": "https://github.com/stylelint/stylelint-config-standard",
|
|
145
|
+
"licenseUrl": "https://github.com/stylelint/stylelint-config-standard/raw/HEAD/LICENSE"
|
|
146
|
+
},
|
|
147
|
+
"stylelint-scss@6.0.0": {
|
|
148
|
+
"licenses": "MIT",
|
|
149
|
+
"repository": "https://github.com/stylelint-scss/stylelint-scss",
|
|
150
|
+
"licenseUrl": "https://github.com/stylelint-scss/stylelint-scss/raw/HEAD/LICENSE"
|
|
151
|
+
},
|
|
152
|
+
"stylelint@16.1.0": {
|
|
153
|
+
"licenses": "MIT",
|
|
154
|
+
"repository": "https://github.com/stylelint/stylelint",
|
|
155
|
+
"licenseUrl": "https://github.com/stylelint/stylelint/raw/HEAD/LICENSE"
|
|
156
|
+
},
|
|
157
|
+
"tsup@8.0.1": {
|
|
158
|
+
"licenses": "MIT",
|
|
159
|
+
"repository": "https://github.com/egoist/tsup",
|
|
160
|
+
"licenseUrl": "https://github.com/egoist/tsup/raw/HEAD/LICENSE"
|
|
161
|
+
},
|
|
162
|
+
"turbo@1.11.2": {
|
|
163
|
+
"licenses": "MPL-2.0",
|
|
164
|
+
"repository": "https://github.com/vercel/turbo",
|
|
165
|
+
"licenseUrl": "https://github.com/vercel/turbo/raw/HEAD/LICENSE"
|
|
166
|
+
},
|
|
167
|
+
"typescript@5.3.3": {
|
|
168
|
+
"licenses": "Apache-2.0",
|
|
169
|
+
"repository": "https://github.com/Microsoft/TypeScript",
|
|
170
|
+
"licenseUrl": "https://github.com/Microsoft/TypeScript/raw/HEAD/LICENSE.txt"
|
|
171
|
+
},
|
|
172
|
+
"vite-tsconfig-paths@4.2.3": {
|
|
173
|
+
"licenses": "MIT",
|
|
174
|
+
"repository": "https://github.com/aleclarson/vite-tsconfig-paths",
|
|
175
|
+
"licenseUrl": "https://github.com/aleclarson/vite-tsconfig-paths/raw/HEAD/LICENSE"
|
|
176
|
+
},
|
|
177
|
+
"vite@5.0.10": {
|
|
178
|
+
"licenses": "MIT",
|
|
179
|
+
"repository": "https://github.com/vitejs/vite",
|
|
180
|
+
"licenseUrl": "https://github.com/vitejs/vite/raw/HEAD/LICENSE.md"
|
|
181
|
+
},
|
|
182
|
+
"vitest@1.1.1": {
|
|
183
|
+
"licenses": "MIT",
|
|
184
|
+
"repository": "https://github.com/vitest-dev/vitest",
|
|
185
|
+
"licenseUrl": "https://github.com/vitest-dev/vitest/raw/HEAD/LICENSE.md"
|
|
186
|
+
},
|
|
187
|
+
"yargs@17.7.2": {
|
|
188
|
+
"licenses": "MIT",
|
|
189
|
+
"repository": "https://github.com/yargs/yargs",
|
|
190
|
+
"licenseUrl": "https://github.com/yargs/yargs/raw/HEAD/LICENSE"
|
|
191
|
+
}
|
|
192
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@cas-smartdesign/virtual-list",
|
|
3
|
+
"version": "6.2.2",
|
|
4
|
+
"description": "A virtualized list element with SmartDesign look and feel.",
|
|
5
|
+
"main": "dist/virtual-list-with-externals.js",
|
|
6
|
+
"module": "dist/virtual-list.mjs",
|
|
7
|
+
"license": "SEE LICENSE IN LICENSE",
|
|
8
|
+
"types": "dist/virtual-list.d.ts",
|
|
9
|
+
"dependencies": {
|
|
10
|
+
"lit": "^2.8.0",
|
|
11
|
+
"@cas-smartdesign/list-item": "^7.2.2"
|
|
12
|
+
},
|
|
13
|
+
"devDependencies": {
|
|
14
|
+
"@cas-smartdesign/element-utils": "^1.0.2",
|
|
15
|
+
"@cas-smartdesign/element-preview": "^0.2.1",
|
|
16
|
+
"@cas-smartdesign/license-generator": "^1.6.1"
|
|
17
|
+
},
|
|
18
|
+
"files": [
|
|
19
|
+
"dist",
|
|
20
|
+
"npm-third-party-licenses.json"
|
|
21
|
+
],
|
|
22
|
+
"publishConfig": {
|
|
23
|
+
"registry": "https://registry.npmjs.org/",
|
|
24
|
+
"access": "public"
|
|
25
|
+
},
|
|
26
|
+
"scripts": {
|
|
27
|
+
"version": "pnpm version",
|
|
28
|
+
"generate-declaration": "tsc -p tsconfig.types.json",
|
|
29
|
+
"build:no-license": "vite build && pnpm generate-declaration && vite build --mode documentation",
|
|
30
|
+
"build": "pnpm generate-license && pnpm build:no-license",
|
|
31
|
+
"watch": "vite build --watch",
|
|
32
|
+
"dev": "vite",
|
|
33
|
+
"generate-license": "sd-license-generator --r ../../"
|
|
34
|
+
}
|
|
35
|
+
}
|
package/readme.md
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# @cas-smartdesign/virtual-list
|
|
2
|
+
|
|
3
|
+
A list element with ui-virtualization and infinite scrolling.
|
|
4
|
+
|
|
5
|
+
## Attributes
|
|
6
|
+
|
|
7
|
+
- `item-height`
|
|
8
|
+
- Defines the height in px of the list items.
|
|
9
|
+
- `item-count`
|
|
10
|
+
- Defines the virtual number of items in the list.
|
|
11
|
+
- `selection-type`
|
|
12
|
+
- Defines the mode of selection handling
|
|
13
|
+
- Available values: "trigger-only", "single", "multi"
|
|
14
|
+
- `focus-index`
|
|
15
|
+
- Defines the index of currently focused item
|
|
16
|
+
- `role`: string
|
|
17
|
+
- Aria attribute, default value is "list"
|
|
18
|
+
|
|
19
|
+
## Properties
|
|
20
|
+
|
|
21
|
+
The following properties are available:
|
|
22
|
+
|
|
23
|
+
- `items` **_any[] (default=empty)_**
|
|
24
|
+
- Contains data for the currently rendered list items.
|
|
25
|
+
- `itemGenerator` **_ItemGenerator (default is the generator inside the list-item element)_**
|
|
26
|
+
- A method that renders the list items.
|
|
27
|
+
- `itemHeight` **_number (default=50)_**
|
|
28
|
+
- Reflects the corresponding attribute
|
|
29
|
+
- `itemCount` **_number (default=0)_**
|
|
30
|
+
- Reflects the corresponding attribute
|
|
31
|
+
- `selectionType` **_string (default="trigger-only")_**
|
|
32
|
+
- Reflects the corresponding attribute
|
|
33
|
+
- `focusIndex` **_number (default=undefined)_**
|
|
34
|
+
- Reflects the corresponding attribute
|
|
35
|
+
- `selectedIndices` **_number[] (default=empty)_**
|
|
36
|
+
- Contains the indices of the selected items.
|
|
37
|
+
|
|
38
|
+
## Custom events
|
|
39
|
+
|
|
40
|
+
- `data-request`
|
|
41
|
+
- Sent after scrolling the list
|
|
42
|
+
- Contains the starting and ending index that is visible in the list
|
|
43
|
+
- `selection`
|
|
44
|
+
- Dispatched when one of the items is selected/deselected
|
|
45
|
+
- Contains the index of the item and a `selected` flag which is when false indicates that the item is deselected
|
|
46
|
+
- The `hasModifier` property is true if mouse wheel or ctrl/meta key is down while selection. Note that the auto scroll feature is disabled while middle mouse click.
|
|
47
|
+
|
|
48
|
+
## Public methods
|
|
49
|
+
|
|
50
|
+
- `getListItem`
|
|
51
|
+
- Returns the DOM node that represents the item with the given index
|
|
52
|
+
- Note that only visible items can be accessed this way
|
|
53
|
+
- `scrollToItem`
|
|
54
|
+
- Scrolls the list to the item with the given index
|
|
55
|
+
- `increaseWidthOnNextRenderIfNeeded`
|
|
56
|
+
- The width of the list is increased on the next rendering phase to an extent, that all texts in the list-items are visible without ellipsis.
|
|
57
|
+
- If the list has already reached it's maximum width, then line clamp may be enabled on the items to wrap the content if possible.
|
|
58
|
+
- Note that this functionality works only if `sd-list-items` are rendered in the list
|
|
59
|
+
|
|
60
|
+
## A11Y
|
|
61
|
+
|
|
62
|
+
The default _role_ is `listbox`, with the corresponding `option` role on the items, since most of the time this element is used with a selection state.
|
|
63
|
+
It ensures the items have an associated id which is used to update `aria-activedescendant`.
|
|
64
|
+
The selection is also marked with `aria-selected`.
|
|
65
|
+
The items are updated with the `aria-setsize` & `aria-posinset` attributes. The former one is -1 if the final size is not known to indicate infinite scrolling state.
|
|
66
|
+
|
|
67
|
+
Please note that the selection type `trigger-only` does not provide any accessibility event in case of a selection,
|
|
68
|
+
but it can be added externally for example with an `aria-live` area where the content can notify about the selection.
|
|
69
|
+
Although normally the page would change by such a selection, so it may not be necessary to do this notification.
|
|
70
|
+
|
|
71
|
+
## Attributes managed on items
|
|
72
|
+
|
|
73
|
+
In addition to above mentioned aria attributes, the items are marked with certain custom attributes:
|
|
74
|
+
|
|
75
|
+
- `focused`
|
|
76
|
+
- Set if the item is currently focused.
|
|
77
|
+
- `selected`
|
|
78
|
+
- Set if the item is selected.
|
|
79
|
+
- `item-index`
|
|
80
|
+
- The index of the item.
|
|
81
|
+
- `last`
|
|
82
|
+
- Set if the item is the last in the currently rendered set of items.
|
|
83
|
+
|
|
84
|
+
## Examples
|