@cas-smartdesign/virtual-list 7.2.1 → 9.0.0
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/dist/data-provider.d.ts +3 -2
- package/dist/data-provider.d.ts.map +1 -0
- package/dist/docs/1_selection_types.js +1 -1
- package/dist/docs/2_lazy_load_with_search.js +1 -1
- package/dist/docs/3_duplicate_items.js +1 -1
- package/dist/docs/doc.css +1 -1
- package/dist/docs/doc.mjs +184 -170
- package/dist/docs/index.html +8 -0
- package/dist/docs/item-provider.mjs +1 -1
- package/dist/list-util.d.ts +6 -0
- package/dist/list-util.d.ts.map +1 -0
- package/dist/virtual-list.d.ts +13 -18
- package/dist/virtual-list.d.ts.map +1 -0
- package/dist/virtual-list.mjs +351 -360
- package/dist/virtual-list.mjs.map +1 -1
- package/npm-third-party-licenses.json +58 -108
- package/package.json +24 -15
- package/readme.md +21 -12
- package/dist/virtual-list-with-externals.js +0 -90
- package/dist/virtual-list-with-externals.js.map +0 -7
package/dist/docs/index.html
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
|
|
7
|
+
<link rel="stylesheet" href="https://rsms.me/inter/inter.css" />
|
|
7
8
|
<title>Virtual list</title>
|
|
8
9
|
<style>
|
|
9
10
|
.markdown-body {
|
|
@@ -17,6 +18,13 @@
|
|
|
17
18
|
#markdown-container img {
|
|
18
19
|
background-color: transparent;
|
|
19
20
|
}
|
|
21
|
+
.list-wrapper {
|
|
22
|
+
background-color: var(--color-bg-weak, #f1f1f1);
|
|
23
|
+
padding: var(--spacing-x8, 16px);
|
|
24
|
+
}
|
|
25
|
+
sd-virtual-list {
|
|
26
|
+
border-radius: var(--radius-s, 4px);
|
|
27
|
+
}
|
|
20
28
|
</style>
|
|
21
29
|
<script type="module" crossorigin src="./doc.mjs"></script>
|
|
22
30
|
<link rel="stylesheet" crossorigin href="./doc.css">
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import{t as e}from"./doc.mjs";var t=[`Annette`,`Alexandra`,`Almeria`,`Chris`,`Bernd`,`Britta`,`Lional`,`Lucho`,`Martin`,`Peter`,`Rik`,`Robert`],n=[`Bukac`,`Ganning`,`Giacopello`,`Glaser`,`Grundmann`,`Kovac`,`Lapham`,`Lee`,`Plose`,`Smith`,`Todarini`],r=[`Full time employee`,`Student`];function i(e=t.length*n.length){let i=[],a=Math.max(1,Math.floor(t.length*n.length/e));for(let o=0;i.length<e;o+=a){let e=t[Math.floor(o/n.length)%t.length],a=n[o%n.length];i.push({caption:`${e} ${a}`,description:r[Math.random()<.3?1:0],disabled:Math.random()<.1})}return i}var a=`./right-arrow.svg`,o=`./lock.svg`,s=`./icon.svg`,c=class extends e{constructor(e=i(40)){super(30),e&&(this.items=this.createListItems(...e),this.finalSizeIsKnown=!0)}createListItems(...e){return e.map(e=>{let t=e.disabled;return{caption:e.caption,description:e.description,rightContentGenerator:()=>{let e=document.createElement(`div`);return e.style.display=`flex`,e.style.flexDirection=`row-reverse`,e.appendChild(this.createIcon(a)),t&&e.appendChild(this.createIcon(o)),e},icon:s,disabled:t}})}createIcon(e){let t=document.createElement(`div`);t.style.display=`flex`,t.style.justifyContent=`center`;let n=document.createElement(`img`);return n.style.width=`24px`,n.src=e,t.appendChild(n),t}};export{i as n,c as t};
|
package/dist/list-util.d.ts
CHANGED
|
@@ -4,8 +4,14 @@ export interface IListUtil {
|
|
|
4
4
|
debounce(func: (...args: any) => void): () => void;
|
|
5
5
|
}
|
|
6
6
|
declare class ListUtil implements IListUtil {
|
|
7
|
+
/**
|
|
8
|
+
* Padding kept between a scrolled-to item and the viewport edge so the item's focus ring
|
|
9
|
+
* stays visible. Must be kept in sync with `--list-item-focus-ring-width` in style.scss.
|
|
10
|
+
*/
|
|
11
|
+
private static readonly FOCUS_RING_WIDTH;
|
|
7
12
|
getOffsetForIndexAndAlignment(index: number, alignment: ScrollToAlignment, scrollOffset: number, itemHeight: number, height: number, itemCount: number): number;
|
|
8
13
|
debounce(func: (...args: any) => void): (...args: unknown[]) => void;
|
|
9
14
|
}
|
|
10
15
|
declare const _default: ListUtil;
|
|
11
16
|
export default _default;
|
|
17
|
+
//# sourceMappingURL=list-util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-util.d.ts","sourceRoot":"","sources":["../list-util.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,KAAK,CAAC;AAEpE,MAAM,WAAW,SAAS;IACtB,6BAA6B,CACzB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,iBAAiB,EAC5B,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAClB,MAAM,CAAC;IAEV,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;CACtD;AAED,cAAM,QAAS,YAAW,SAAS;IAC/B;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAK;IAEtC,6BAA6B,CAChC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,iBAAiB,EAC5B,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAClB,MAAM;IAqCF,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,IAAI,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI;CAY9E;;AAED,wBAA8B"}
|
package/dist/virtual-list.d.ts
CHANGED
|
@@ -1,12 +1,17 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { type ItemData } from "@cas-smartdesign/list-item";
|
|
2
|
+
import { LitElement, type TemplateResult, type PropertyValues } from "lit";
|
|
3
|
+
import { type ScrollToAlignment } from "./list-util";
|
|
3
4
|
export { ListDataProvider } from "./data-provider";
|
|
4
5
|
declare global {
|
|
5
6
|
interface HTMLElementTagNameMap {
|
|
6
7
|
[VirtualList.ID]: VirtualList;
|
|
7
8
|
}
|
|
9
|
+
interface HTMLElementEventMap {
|
|
10
|
+
"sd-virtual-list-data-request": CustomEvent<IDataRequestEvent>;
|
|
11
|
+
"sd-virtual-list-selection": CustomEvent<ISelectionEvent>;
|
|
12
|
+
}
|
|
8
13
|
}
|
|
9
|
-
export type ItemGenerator = (data:
|
|
14
|
+
export type ItemGenerator = (data: ItemData, _index: number) => HTMLElement;
|
|
10
15
|
export declare enum SelectionType {
|
|
11
16
|
TriggerOnly = "trigger-only",
|
|
12
17
|
Single = "single",
|
|
@@ -21,17 +26,6 @@ export interface ISelectionEvent {
|
|
|
21
26
|
selected: boolean;
|
|
22
27
|
originalEvent: Event;
|
|
23
28
|
}
|
|
24
|
-
export interface CustomEventMap extends HTMLElementEventMap {
|
|
25
|
-
"data-request": CustomEvent<IDataRequestEvent>;
|
|
26
|
-
selection: CustomEvent<ISelectionEvent>;
|
|
27
|
-
}
|
|
28
|
-
export default interface VirtualList {
|
|
29
|
-
addEventListener<K extends keyof CustomEventMap>(event: K, listener: ((this: this, ev: CustomEventMap[K]) => unknown) | null, options?: AddEventListenerOptions | boolean): void;
|
|
30
|
-
addEventListener(type: string, callback: EventListenerOrEventListenerObject | null, options?: AddEventListenerOptions | boolean): void;
|
|
31
|
-
removeEventListener<K extends keyof CustomEventMap>(type: K, listener: (this: this, ev: CustomEventMap[K]) => unknown, options?: boolean | EventListenerOptions): void;
|
|
32
|
-
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
33
|
-
dispatchEvent<EventType extends CustomEventMap[keyof CustomEventMap]>(event: EventType): boolean;
|
|
34
|
-
}
|
|
35
29
|
export default class VirtualList extends LitElement {
|
|
36
30
|
static readonly ID = "sd-virtual-list";
|
|
37
31
|
static ensureDefined: () => void;
|
|
@@ -42,7 +36,7 @@ export default class VirtualList extends LitElement {
|
|
|
42
36
|
id: string;
|
|
43
37
|
role: string;
|
|
44
38
|
itemGenerator: ItemGenerator;
|
|
45
|
-
finalSizeIsKnown
|
|
39
|
+
finalSizeIsKnown?: boolean;
|
|
46
40
|
private _lastKnownScrollTop;
|
|
47
41
|
private _lastRenderedScrollTop;
|
|
48
42
|
private _itemsRenderData;
|
|
@@ -54,8 +48,8 @@ export default class VirtualList extends LitElement {
|
|
|
54
48
|
private _focusIndex;
|
|
55
49
|
private _resizeObserver;
|
|
56
50
|
private _lastKnownHeight;
|
|
57
|
-
private _increaseWidthOnNextRenderIfNeeded
|
|
58
|
-
private _reachedMaxWidth
|
|
51
|
+
private _increaseWidthOnNextRenderIfNeeded?;
|
|
52
|
+
private _reachedMaxWidth?;
|
|
59
53
|
get focusTarget(): boolean;
|
|
60
54
|
set focusTarget(value: boolean);
|
|
61
55
|
get focusIndex(): number;
|
|
@@ -63,7 +57,7 @@ export default class VirtualList extends LitElement {
|
|
|
63
57
|
get selectedIndices(): number[];
|
|
64
58
|
set selectedIndices(selectedIndices: number[]);
|
|
65
59
|
scrollToItem(index: number, alignment?: ScrollToAlignment): void;
|
|
66
|
-
getListItem(index: number): HTMLElement;
|
|
60
|
+
getListItem(index: number): HTMLElement | null;
|
|
67
61
|
constructor();
|
|
68
62
|
connectedCallback(): void;
|
|
69
63
|
disconnectedCallback(): void;
|
|
@@ -95,3 +89,4 @@ export default class VirtualList extends LitElement {
|
|
|
95
89
|
private dispatchSelectionEvent;
|
|
96
90
|
private handleClick;
|
|
97
91
|
}
|
|
92
|
+
//# sourceMappingURL=virtual-list.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"virtual-list.d.ts","sourceRoot":"","sources":["../virtual-list.ts"],"names":[],"mappings":"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"}
|