@momentum-design/components 0.129.17 → 0.129.19
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/browser/index.js +98 -98
- package/dist/browser/index.js.map +2 -2
- package/dist/components/animation/animation.component.d.ts +12 -3
- package/dist/components/animation/animation.component.js +7 -4
- package/dist/components/animation/animation.constants.d.ts +0 -1
- package/dist/components/animation/animation.constants.js +0 -1
- package/dist/components/virtualizedlist/virtualizedlist.component.d.ts +17 -4
- package/dist/components/virtualizedlist/virtualizedlist.component.js +17 -4
- package/dist/custom-elements.json +29 -32
- package/dist/react/virtualizedlist/index.d.ts +17 -4
- package/dist/react/virtualizedlist/index.js +17 -4
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CSSResult } from 'lit';
|
|
1
|
+
import type { CSSResult, PropertyValues } from 'lit';
|
|
2
2
|
import { AnimationItem } from 'lottie-web/build/player/lottie_light';
|
|
3
3
|
import { Component } from '../../models';
|
|
4
4
|
import type { AnimationNames, LoopType } from './animation.types';
|
|
@@ -17,6 +17,7 @@ import type { AnimationNames, LoopType } from './animation.types';
|
|
|
17
17
|
declare class Animation extends Component {
|
|
18
18
|
/**
|
|
19
19
|
* Name of the animation (= filename)
|
|
20
|
+
* @default undefined
|
|
20
21
|
*/
|
|
21
22
|
name?: AnimationNames;
|
|
22
23
|
/**
|
|
@@ -24,30 +25,37 @@ declare class Animation extends Component {
|
|
|
24
25
|
* - "true" - infinite
|
|
25
26
|
* - "false" - no loop
|
|
26
27
|
* - number - number of times to loop
|
|
28
|
+
* @default 'true'
|
|
27
29
|
*/
|
|
28
30
|
loop?: LoopType;
|
|
29
31
|
/**
|
|
30
32
|
* Weather start the animation automatically
|
|
33
|
+
* @default true
|
|
31
34
|
*/
|
|
32
35
|
autoplay?: boolean;
|
|
33
36
|
/**
|
|
34
37
|
* Aria-label attribute to be set for accessibility
|
|
38
|
+
* @default null
|
|
35
39
|
*/
|
|
36
40
|
ariaLabel: string | null;
|
|
37
41
|
/**
|
|
38
42
|
* Aria-labelledby attribute to be set for accessibility
|
|
43
|
+
* @default null
|
|
39
44
|
*/
|
|
40
45
|
ariaLabelledby: string | null;
|
|
41
46
|
/**
|
|
42
47
|
* Lottie animation instance
|
|
48
|
+
* @internal
|
|
43
49
|
*/
|
|
44
50
|
private lottieInstance?;
|
|
45
51
|
/**
|
|
46
52
|
* Container for the animation
|
|
53
|
+
* @internal
|
|
47
54
|
*/
|
|
48
55
|
private containerRef;
|
|
49
56
|
/**
|
|
50
57
|
* Exposed API of the animation library (lottie)
|
|
58
|
+
* @internal
|
|
51
59
|
*/
|
|
52
60
|
get animation(): AnimationItem | undefined;
|
|
53
61
|
private getLoopValue;
|
|
@@ -63,15 +71,16 @@ declare class Animation extends Component {
|
|
|
63
71
|
* Import animation data dynamically
|
|
64
72
|
*/
|
|
65
73
|
private getAnimationData;
|
|
66
|
-
updated(changedProperties:
|
|
74
|
+
updated(changedProperties: PropertyValues): void;
|
|
67
75
|
disconnectedCallback(): void;
|
|
68
76
|
/**
|
|
69
77
|
* Re-dispatch the complete event from the animation library
|
|
70
78
|
*
|
|
71
79
|
* This handler called with the animation instance instead of the component instance
|
|
72
80
|
* so we need to bind it to the component instance. The arrow function just does that.
|
|
81
|
+
* @internal
|
|
73
82
|
*/
|
|
74
|
-
onCompleteHandler
|
|
83
|
+
private onCompleteHandler;
|
|
75
84
|
render(): import("lit-html").TemplateResult<1>;
|
|
76
85
|
static styles: Array<CSSResult>;
|
|
77
86
|
}
|
|
@@ -31,31 +31,32 @@ import { DEFAULTS } from './animation.constants';
|
|
|
31
31
|
class Animation extends Component {
|
|
32
32
|
constructor() {
|
|
33
33
|
super(...arguments);
|
|
34
|
-
/**
|
|
35
|
-
* Name of the animation (= filename)
|
|
36
|
-
*/
|
|
37
|
-
this.name = DEFAULTS.NAME;
|
|
38
34
|
/**
|
|
39
35
|
* How many times to loop the animation
|
|
40
36
|
* - "true" - infinite
|
|
41
37
|
* - "false" - no loop
|
|
42
38
|
* - number - number of times to loop
|
|
39
|
+
* @default 'true'
|
|
43
40
|
*/
|
|
44
41
|
this.loop = DEFAULTS.LOOP;
|
|
45
42
|
/**
|
|
46
43
|
* Weather start the animation automatically
|
|
44
|
+
* @default true
|
|
47
45
|
*/
|
|
48
46
|
this.autoplay = DEFAULTS.AUTO_PLAY;
|
|
49
47
|
/**
|
|
50
48
|
* Aria-label attribute to be set for accessibility
|
|
49
|
+
* @default null
|
|
51
50
|
*/
|
|
52
51
|
this.ariaLabel = null;
|
|
53
52
|
/**
|
|
54
53
|
* Aria-labelledby attribute to be set for accessibility
|
|
54
|
+
* @default null
|
|
55
55
|
*/
|
|
56
56
|
this.ariaLabelledby = null;
|
|
57
57
|
/**
|
|
58
58
|
* Container for the animation
|
|
59
|
+
* @internal
|
|
59
60
|
*/
|
|
60
61
|
this.containerRef = createRef();
|
|
61
62
|
/**
|
|
@@ -63,6 +64,7 @@ class Animation extends Component {
|
|
|
63
64
|
*
|
|
64
65
|
* This handler called with the animation instance instead of the component instance
|
|
65
66
|
* so we need to bind it to the component instance. The arrow function just does that.
|
|
67
|
+
* @internal
|
|
66
68
|
*/
|
|
67
69
|
this.onCompleteHandler = () => {
|
|
68
70
|
const event = new CustomEvent('complete', {
|
|
@@ -74,6 +76,7 @@ class Animation extends Component {
|
|
|
74
76
|
}
|
|
75
77
|
/**
|
|
76
78
|
* Exposed API of the animation library (lottie)
|
|
79
|
+
* @internal
|
|
77
80
|
*/
|
|
78
81
|
get animation() {
|
|
79
82
|
return this.lottieInstance;
|
|
@@ -16,10 +16,10 @@ declare const VirtualizedList_base: import("../../utils/mixins/index.types").Con
|
|
|
16
16
|
*
|
|
17
17
|
* ## Setup
|
|
18
18
|
*
|
|
19
|
-
* `virtualizerProps` is a required prop that requires at least
|
|
20
|
-
* `count` is the total number of items in the list
|
|
21
|
-
* size (in pixels) of each item in the list
|
|
22
|
-
*
|
|
19
|
+
* `virtualizerProps` is a required prop that requires at least three properties to be set:
|
|
20
|
+
* - `count` is the total number of items in the list
|
|
21
|
+
* - `estimateSize` is a function that returns the estimated size (in pixels) of each item in the list
|
|
22
|
+
* - `getItemKey` is a function that returns a unique key for each item in the list.
|
|
23
23
|
*
|
|
24
24
|
* ### Render list items
|
|
25
25
|
*
|
|
@@ -48,6 +48,19 @@ declare const VirtualizedList_base: import("../../utils/mixins/index.types").Con
|
|
|
48
48
|
* Unique keys for the list items are critical for dynamically changing list items or item's content.
|
|
49
49
|
* If the key change with the content it will cause scrollbar and content shuttering.
|
|
50
50
|
*
|
|
51
|
+
* ### Top/Bottom Padding
|
|
52
|
+
*
|
|
53
|
+
* If padding is required at the top or the bottom of the list, do not apply padding/margin via CSS since this
|
|
54
|
+
* will break the virtualization calculations and can cause scrollbars when they are not necessary.
|
|
55
|
+
* Instead use the `paddingStart` and `paddingEnd` properties (in pixels) of the `virtualizerProps` prop.
|
|
56
|
+
*
|
|
57
|
+
* ### Gaps between items
|
|
58
|
+
*
|
|
59
|
+
* If you are adding gaps between items using CSS margin or gap properties, you must provide the same value in pixels
|
|
60
|
+
* to the `gap` property of the `virtualizerProps` prop. This ensures that the virtualization calculations are accurate.
|
|
61
|
+
* If you are using CSS margins, ensure that you are not applying the margin to the top of the first or the bottom of the last item.
|
|
62
|
+
* If you need spacing there, use the `paddingStart` and `paddingEnd` properties of the `virtualizerProps` prop.
|
|
63
|
+
*
|
|
51
64
|
* @tagname mdc-virtualizedlist
|
|
52
65
|
*
|
|
53
66
|
* @event scroll - (React: onScroll) Event that gets called when user scrolls inside of list.
|
|
@@ -30,10 +30,10 @@ import { DEFAULTS } from './virtualizedlist.constants';
|
|
|
30
30
|
*
|
|
31
31
|
* ## Setup
|
|
32
32
|
*
|
|
33
|
-
* `virtualizerProps` is a required prop that requires at least
|
|
34
|
-
* `count` is the total number of items in the list
|
|
35
|
-
* size (in pixels) of each item in the list
|
|
36
|
-
*
|
|
33
|
+
* `virtualizerProps` is a required prop that requires at least three properties to be set:
|
|
34
|
+
* - `count` is the total number of items in the list
|
|
35
|
+
* - `estimateSize` is a function that returns the estimated size (in pixels) of each item in the list
|
|
36
|
+
* - `getItemKey` is a function that returns a unique key for each item in the list.
|
|
37
37
|
*
|
|
38
38
|
* ### Render list items
|
|
39
39
|
*
|
|
@@ -62,6 +62,19 @@ import { DEFAULTS } from './virtualizedlist.constants';
|
|
|
62
62
|
* Unique keys for the list items are critical for dynamically changing list items or item's content.
|
|
63
63
|
* If the key change with the content it will cause scrollbar and content shuttering.
|
|
64
64
|
*
|
|
65
|
+
* ### Top/Bottom Padding
|
|
66
|
+
*
|
|
67
|
+
* If padding is required at the top or the bottom of the list, do not apply padding/margin via CSS since this
|
|
68
|
+
* will break the virtualization calculations and can cause scrollbars when they are not necessary.
|
|
69
|
+
* Instead use the `paddingStart` and `paddingEnd` properties (in pixels) of the `virtualizerProps` prop.
|
|
70
|
+
*
|
|
71
|
+
* ### Gaps between items
|
|
72
|
+
*
|
|
73
|
+
* If you are adding gaps between items using CSS margin or gap properties, you must provide the same value in pixels
|
|
74
|
+
* to the `gap` property of the `virtualizerProps` prop. This ensures that the virtualization calculations are accurate.
|
|
75
|
+
* If you are using CSS margins, ensure that you are not applying the margin to the top of the first or the bottom of the last item.
|
|
76
|
+
* If you need spacing there, use the `paddingStart` and `paddingEnd` properties of the `virtualizerProps` prop.
|
|
77
|
+
*
|
|
65
78
|
* @tagname mdc-virtualizedlist
|
|
66
79
|
*
|
|
67
80
|
* @event scroll - (React: onScroll) Event that gets called when user scrolls inside of list.
|
|
@@ -1673,12 +1673,6 @@
|
|
|
1673
1673
|
"description": "The `mdc-animation` component is a wrapper around the Lottie animation library.\nIt fetches the animation data dynamically based on the provided name and renders it.\nThis is a display only component that does not have any interactive functionality.\nFrom accessibility perspective, (by default) it is a decorative image component.",
|
|
1674
1674
|
"name": "Animation",
|
|
1675
1675
|
"members": [
|
|
1676
|
-
{
|
|
1677
|
-
"kind": "field",
|
|
1678
|
-
"name": "animation",
|
|
1679
|
-
"description": "Exposed API of the animation library (lottie)",
|
|
1680
|
-
"readonly": true
|
|
1681
|
-
},
|
|
1682
1676
|
{
|
|
1683
1677
|
"kind": "field",
|
|
1684
1678
|
"name": "ariaLabel",
|
|
@@ -1706,28 +1700,30 @@
|
|
|
1706
1700
|
"text": "boolean | undefined"
|
|
1707
1701
|
},
|
|
1708
1702
|
"description": "Weather start the animation automatically",
|
|
1703
|
+
"default": "true",
|
|
1709
1704
|
"attribute": "autoplay",
|
|
1710
1705
|
"reflects": true
|
|
1711
1706
|
},
|
|
1712
|
-
{
|
|
1713
|
-
"kind": "field",
|
|
1714
|
-
"name": "containerRef",
|
|
1715
|
-
"type": {
|
|
1716
|
-
"text": "Ref<HTMLDivElement>"
|
|
1717
|
-
},
|
|
1718
|
-
"privacy": "private",
|
|
1719
|
-
"description": "Container for the animation"
|
|
1720
|
-
},
|
|
1721
1707
|
{
|
|
1722
1708
|
"kind": "method",
|
|
1723
1709
|
"name": "getAnimationData",
|
|
1724
1710
|
"privacy": "private",
|
|
1711
|
+
"return": {
|
|
1712
|
+
"type": {
|
|
1713
|
+
"text": "void"
|
|
1714
|
+
}
|
|
1715
|
+
},
|
|
1725
1716
|
"description": "Import animation data dynamically"
|
|
1726
1717
|
},
|
|
1727
1718
|
{
|
|
1728
1719
|
"kind": "method",
|
|
1729
1720
|
"name": "getLoopValue",
|
|
1730
|
-
"privacy": "private"
|
|
1721
|
+
"privacy": "private",
|
|
1722
|
+
"return": {
|
|
1723
|
+
"type": {
|
|
1724
|
+
"text": "boolean | number"
|
|
1725
|
+
}
|
|
1726
|
+
}
|
|
1731
1727
|
},
|
|
1732
1728
|
{
|
|
1733
1729
|
"kind": "field",
|
|
@@ -1736,18 +1732,10 @@
|
|
|
1736
1732
|
"text": "LoopType | undefined"
|
|
1737
1733
|
},
|
|
1738
1734
|
"description": "How many times to loop the animation\n- \"true\" - infinite\n- \"false\" - no loop\n- number - number of times to loop",
|
|
1735
|
+
"default": "'true'",
|
|
1739
1736
|
"attribute": "loop",
|
|
1740
1737
|
"reflects": true
|
|
1741
1738
|
},
|
|
1742
|
-
{
|
|
1743
|
-
"kind": "field",
|
|
1744
|
-
"name": "lottieInstance",
|
|
1745
|
-
"type": {
|
|
1746
|
-
"text": "AnimationItem | undefined"
|
|
1747
|
-
},
|
|
1748
|
-
"privacy": "private",
|
|
1749
|
-
"description": "Lottie animation instance"
|
|
1750
|
-
},
|
|
1751
1739
|
{
|
|
1752
1740
|
"kind": "field",
|
|
1753
1741
|
"name": "name",
|
|
@@ -1755,18 +1743,19 @@
|
|
|
1755
1743
|
"text": "AnimationNames | undefined"
|
|
1756
1744
|
},
|
|
1757
1745
|
"description": "Name of the animation (= filename)",
|
|
1746
|
+
"default": "undefined",
|
|
1758
1747
|
"attribute": "name",
|
|
1759
1748
|
"reflects": true
|
|
1760
1749
|
},
|
|
1761
|
-
{
|
|
1762
|
-
"kind": "field",
|
|
1763
|
-
"name": "onCompleteHandler",
|
|
1764
|
-
"description": "Re-dispatch the complete event from the animation library\n\nThis handler called with the animation instance instead of the component instance\nso we need to bind it to the component instance. The arrow function just does that."
|
|
1765
|
-
},
|
|
1766
1750
|
{
|
|
1767
1751
|
"kind": "method",
|
|
1768
1752
|
"name": "onLoadFailHandler",
|
|
1769
1753
|
"privacy": "private",
|
|
1754
|
+
"return": {
|
|
1755
|
+
"type": {
|
|
1756
|
+
"text": "void"
|
|
1757
|
+
}
|
|
1758
|
+
},
|
|
1770
1759
|
"parameters": [
|
|
1771
1760
|
{
|
|
1772
1761
|
"name": "error",
|
|
@@ -1781,6 +1770,11 @@
|
|
|
1781
1770
|
"kind": "method",
|
|
1782
1771
|
"name": "onLoadSuccessHandler",
|
|
1783
1772
|
"privacy": "private",
|
|
1773
|
+
"return": {
|
|
1774
|
+
"type": {
|
|
1775
|
+
"text": "void"
|
|
1776
|
+
}
|
|
1777
|
+
},
|
|
1784
1778
|
"parameters": [
|
|
1785
1779
|
{
|
|
1786
1780
|
"name": "animationData",
|
|
@@ -1819,6 +1813,7 @@
|
|
|
1819
1813
|
"text": "AnimationNames | undefined"
|
|
1820
1814
|
},
|
|
1821
1815
|
"description": "Name of the animation (= filename)",
|
|
1816
|
+
"default": "undefined",
|
|
1822
1817
|
"fieldName": "name"
|
|
1823
1818
|
},
|
|
1824
1819
|
{
|
|
@@ -1827,6 +1822,7 @@
|
|
|
1827
1822
|
"text": "LoopType | undefined"
|
|
1828
1823
|
},
|
|
1829
1824
|
"description": "How many times to loop the animation\n- \"true\" - infinite\n- \"false\" - no loop\n- number - number of times to loop",
|
|
1825
|
+
"default": "'true'",
|
|
1830
1826
|
"fieldName": "loop"
|
|
1831
1827
|
},
|
|
1832
1828
|
{
|
|
@@ -1835,6 +1831,7 @@
|
|
|
1835
1831
|
"text": "boolean | undefined"
|
|
1836
1832
|
},
|
|
1837
1833
|
"description": "Weather start the animation automatically",
|
|
1834
|
+
"default": "true",
|
|
1838
1835
|
"fieldName": "autoplay"
|
|
1839
1836
|
},
|
|
1840
1837
|
{
|
|
@@ -53853,7 +53850,7 @@
|
|
|
53853
53850
|
"declarations": [
|
|
53854
53851
|
{
|
|
53855
53852
|
"kind": "class",
|
|
53856
|
-
"description": "`mdc-virtualizedlist` is an extension of the `mdc-list` component that adds virtualization capabilities using\nthe Tanstack Virtual library.\n\nThis component is thin wrapper around the Tanstack libray to provide additional funtionalities such as\nkeyboard navigation, focus management, scroll anchoring and accessibility features.\n\nPlease refer to [Tanstack Virtual Docs](https://tanstack.com/virtual/latest) for more in depth documentation.\n\n## Setup\n\n`virtualizerProps` is a required prop that requires at least
|
|
53853
|
+
"description": "`mdc-virtualizedlist` is an extension of the `mdc-list` component that adds virtualization capabilities using\nthe Tanstack Virtual library.\n\nThis component is thin wrapper around the Tanstack libray to provide additional funtionalities such as\nkeyboard navigation, focus management, scroll anchoring and accessibility features.\n\nPlease refer to [Tanstack Virtual Docs](https://tanstack.com/virtual/latest) for more in depth documentation.\n\n## Setup\n\n`virtualizerProps` is a required prop that requires at least three properties to be set:\n- `count` is the total number of items in the list\n- `estimateSize` is a function that returns the estimated size (in pixels) of each item in the list\n- `getItemKey` is a function that returns a unique key for each item in the list.\n\n### Render list items\n\nTo keep the component framework-agnostic, the rendering of the list items is left to the consumer.\n\nWe need to render only the visible items. The list of visible items are provided by the `virtualitemschange` event.\nThe event detail contains the `virtualItems` array, which contains the information for the rendering.\nList items must have an `data-index` attribute, the indexes are in the `virtualItems` list.\n\n## Best practices\n\n### List updates\n\nTanstack needs only the count of the items in the list and the size of each item to perform virtualization.\nList updates happens when\n- when `virtualizerProps` property of the component instance changes\n- when `observe-size-changes` is set and the item's size changes (it uses ResizeObserver internally)\n- when `component.visualiser.measure` called manually.\n\n### Header\n\nTo add a header to the list, use the `mdc-listheader` component and place it in the `list-header` slot.\n\n### Lists with dynamic content\n\nUnique keys for the list items are critical for dynamically changing list items or item's content.\nIf the key change with the content it will cause scrollbar and content shuttering.\n\n### Top/Bottom Padding\n\nIf padding is required at the top or the bottom of the list, do not apply padding/margin via CSS since this\nwill break the virtualization calculations and can cause scrollbars when they are not necessary.\nInstead use the `paddingStart` and `paddingEnd` properties (in pixels) of the `virtualizerProps` prop.\n\n### Gaps between items\n\nIf you are adding gaps between items using CSS margin or gap properties, you must provide the same value in pixels\nto the `gap` property of the `virtualizerProps` prop. This ensures that the virtualization calculations are accurate.\nIf you are using CSS margins, ensure that you are not applying the margin to the top of the first or the bottom of the last item.\nIf you need spacing there, use the `paddingStart` and `paddingEnd` properties of the `virtualizerProps` prop.",
|
|
53857
53854
|
"name": "VirtualizedList",
|
|
53858
53855
|
"cssParts": [
|
|
53859
53856
|
{
|
|
@@ -54394,7 +54391,7 @@
|
|
|
54394
54391
|
"module": "/src/components/list/list.component"
|
|
54395
54392
|
},
|
|
54396
54393
|
"tagName": "mdc-virtualizedlist",
|
|
54397
|
-
"jsDoc": "/**\n * `mdc-virtualizedlist` is an extension of the `mdc-list` component that adds virtualization capabilities using\n * the Tanstack Virtual library.\n *\n * This component is thin wrapper around the Tanstack libray to provide additional funtionalities such as\n * keyboard navigation, focus management, scroll anchoring and accessibility features.\n *\n * Please refer to [Tanstack Virtual Docs](https://tanstack.com/virtual/latest) for more in depth documentation.\n *\n * ## Setup\n *\n * `virtualizerProps` is a required prop that requires at least
|
|
54394
|
+
"jsDoc": "/**\n * `mdc-virtualizedlist` is an extension of the `mdc-list` component that adds virtualization capabilities using\n * the Tanstack Virtual library.\n *\n * This component is thin wrapper around the Tanstack libray to provide additional funtionalities such as\n * keyboard navigation, focus management, scroll anchoring and accessibility features.\n *\n * Please refer to [Tanstack Virtual Docs](https://tanstack.com/virtual/latest) for more in depth documentation.\n *\n * ## Setup\n *\n * `virtualizerProps` is a required prop that requires at least three properties to be set:\n * - `count` is the total number of items in the list\n * - `estimateSize` is a function that returns the estimated size (in pixels) of each item in the list\n * - `getItemKey` is a function that returns a unique key for each item in the list.\n *\n * ### Render list items\n *\n * To keep the component framework-agnostic, the rendering of the list items is left to the consumer.\n *\n * We need to render only the visible items. The list of visible items are provided by the `virtualitemschange` event.\n * The event detail contains the `virtualItems` array, which contains the information for the rendering.\n * List items must have an `data-index` attribute, the indexes are in the `virtualItems` list.\n *\n * ## Best practices\n *\n * ### List updates\n *\n * Tanstack needs only the count of the items in the list and the size of each item to perform virtualization.\n * List updates happens when\n * - when `virtualizerProps` property of the component instance changes\n * - when `observe-size-changes` is set and the item's size changes (it uses ResizeObserver internally)\n * - when `component.visualiser.measure` called manually.\n *\n * ### Header\n *\n * To add a header to the list, use the `mdc-listheader` component and place it in the `list-header` slot.\n *\n * ### Lists with dynamic content\n *\n * Unique keys for the list items are critical for dynamically changing list items or item's content.\n * If the key change with the content it will cause scrollbar and content shuttering.\n *\n * ### Top/Bottom Padding\n *\n * If padding is required at the top or the bottom of the list, do not apply padding/margin via CSS since this\n * will break the virtualization calculations and can cause scrollbars when they are not necessary.\n * Instead use the `paddingStart` and `paddingEnd` properties (in pixels) of the `virtualizerProps` prop.\n *\n * ### Gaps between items\n *\n * If you are adding gaps between items using CSS margin or gap properties, you must provide the same value in pixels\n * to the `gap` property of the `virtualizerProps` prop. This ensures that the virtualization calculations are accurate.\n * If you are using CSS margins, ensure that you are not applying the margin to the top of the first or the bottom of the last item.\n * If you need spacing there, use the `paddingStart` and `paddingEnd` properties of the `virtualizerProps` prop.\n *\n * @tagname mdc-virtualizedlist\n *\n * @event scroll - (React: onScroll) Event that gets called when user scrolls inside of list.\n * @event virtualitemschange - (React: onVirtualItemsChange) Event that gets called when the virtual items change.\n *\n * @slot default - This is a default/unnamed slot, where listitems can be placed.\n * @slot list-header - This slot is used to pass a header for the list, which can be a `mdc-listheader` component.\n *\n * @csspart container - The container of the virtualized list.\n * @csspart scroll - The scrollable area of the virtualized list.\n */",
|
|
54398
54395
|
"customElement": true
|
|
54399
54396
|
}
|
|
54400
54397
|
],
|
|
@@ -12,10 +12,10 @@ import type { Events } from '../../components/virtualizedlist/virtualizedlist.ty
|
|
|
12
12
|
*
|
|
13
13
|
* ## Setup
|
|
14
14
|
*
|
|
15
|
-
* `virtualizerProps` is a required prop that requires at least
|
|
16
|
-
* `count` is the total number of items in the list
|
|
17
|
-
* size (in pixels) of each item in the list
|
|
18
|
-
*
|
|
15
|
+
* `virtualizerProps` is a required prop that requires at least three properties to be set:
|
|
16
|
+
* - `count` is the total number of items in the list
|
|
17
|
+
* - `estimateSize` is a function that returns the estimated size (in pixels) of each item in the list
|
|
18
|
+
* - `getItemKey` is a function that returns a unique key for each item in the list.
|
|
19
19
|
*
|
|
20
20
|
* ### Render list items
|
|
21
21
|
*
|
|
@@ -44,6 +44,19 @@ import type { Events } from '../../components/virtualizedlist/virtualizedlist.ty
|
|
|
44
44
|
* Unique keys for the list items are critical for dynamically changing list items or item's content.
|
|
45
45
|
* If the key change with the content it will cause scrollbar and content shuttering.
|
|
46
46
|
*
|
|
47
|
+
* ### Top/Bottom Padding
|
|
48
|
+
*
|
|
49
|
+
* If padding is required at the top or the bottom of the list, do not apply padding/margin via CSS since this
|
|
50
|
+
* will break the virtualization calculations and can cause scrollbars when they are not necessary.
|
|
51
|
+
* Instead use the `paddingStart` and `paddingEnd` properties (in pixels) of the `virtualizerProps` prop.
|
|
52
|
+
*
|
|
53
|
+
* ### Gaps between items
|
|
54
|
+
*
|
|
55
|
+
* If you are adding gaps between items using CSS margin or gap properties, you must provide the same value in pixels
|
|
56
|
+
* to the `gap` property of the `virtualizerProps` prop. This ensures that the virtualization calculations are accurate.
|
|
57
|
+
* If you are using CSS margins, ensure that you are not applying the margin to the top of the first or the bottom of the last item.
|
|
58
|
+
* If you need spacing there, use the `paddingStart` and `paddingEnd` properties of the `virtualizerProps` prop.
|
|
59
|
+
*
|
|
47
60
|
* @tagname mdc-virtualizedlist
|
|
48
61
|
*
|
|
49
62
|
* @event scroll - (React: onScroll) Event that gets called when user scrolls inside of list.
|
|
@@ -13,10 +13,10 @@ import { TAG_NAME } from '../../components/virtualizedlist/virtualizedlist.const
|
|
|
13
13
|
*
|
|
14
14
|
* ## Setup
|
|
15
15
|
*
|
|
16
|
-
* `virtualizerProps` is a required prop that requires at least
|
|
17
|
-
* `count` is the total number of items in the list
|
|
18
|
-
* size (in pixels) of each item in the list
|
|
19
|
-
*
|
|
16
|
+
* `virtualizerProps` is a required prop that requires at least three properties to be set:
|
|
17
|
+
* - `count` is the total number of items in the list
|
|
18
|
+
* - `estimateSize` is a function that returns the estimated size (in pixels) of each item in the list
|
|
19
|
+
* - `getItemKey` is a function that returns a unique key for each item in the list.
|
|
20
20
|
*
|
|
21
21
|
* ### Render list items
|
|
22
22
|
*
|
|
@@ -45,6 +45,19 @@ import { TAG_NAME } from '../../components/virtualizedlist/virtualizedlist.const
|
|
|
45
45
|
* Unique keys for the list items are critical for dynamically changing list items or item's content.
|
|
46
46
|
* If the key change with the content it will cause scrollbar and content shuttering.
|
|
47
47
|
*
|
|
48
|
+
* ### Top/Bottom Padding
|
|
49
|
+
*
|
|
50
|
+
* If padding is required at the top or the bottom of the list, do not apply padding/margin via CSS since this
|
|
51
|
+
* will break the virtualization calculations and can cause scrollbars when they are not necessary.
|
|
52
|
+
* Instead use the `paddingStart` and `paddingEnd` properties (in pixels) of the `virtualizerProps` prop.
|
|
53
|
+
*
|
|
54
|
+
* ### Gaps between items
|
|
55
|
+
*
|
|
56
|
+
* If you are adding gaps between items using CSS margin or gap properties, you must provide the same value in pixels
|
|
57
|
+
* to the `gap` property of the `virtualizerProps` prop. This ensures that the virtualization calculations are accurate.
|
|
58
|
+
* If you are using CSS margins, ensure that you are not applying the margin to the top of the first or the bottom of the last item.
|
|
59
|
+
* If you need spacing there, use the `paddingStart` and `paddingEnd` properties of the `virtualizerProps` prop.
|
|
60
|
+
*
|
|
48
61
|
* @tagname mdc-virtualizedlist
|
|
49
62
|
*
|
|
50
63
|
* @event scroll - (React: onScroll) Event that gets called when user scrolls inside of list.
|