@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.
@@ -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