@onsvisual/svelte-components 1.0.44 → 1.0.45
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/README.md +24 -24
- package/dist/css/main.css +513 -2
- package/dist/datavis/BarChart/BarChart.stories.svelte +84 -84
- package/dist/datavis/BarChart/docs/component.md +19 -19
- package/dist/datavis/Chart/Chart.stories.svelte +128 -128
- package/dist/datavis/Chart/docs/component.md +31 -31
- package/dist/datavis/Chart/docs/example.md +28 -28
- package/dist/datavis/ColumnChart/ColumnChart.stories.svelte +84 -84
- package/dist/datavis/ColumnChart/docs/component.md +19 -19
- package/dist/datavis/DataCard/DataCard.stories.svelte +45 -45
- package/dist/datavis/DataCard/DataCard.svelte +70 -70
- package/dist/datavis/DataCard/Sparkline.svelte +117 -117
- package/dist/datavis/DataCard/docs/component.md +20 -20
- package/dist/datavis/DataCard/docs/example.md +25 -25
- package/dist/datavis/DotPlotChart/DotPlotChart.stories.svelte +40 -40
- package/dist/datavis/DotPlotChart/docs/component.md +19 -19
- package/dist/datavis/LineChart/LineChart.stories.svelte +64 -64
- package/dist/datavis/LineChart/docs/component.md +31 -31
- package/dist/datavis/ScatterChart/ScatterChart.stories.svelte +55 -55
- package/dist/datavis/ScatterChart/docs/component.md +53 -53
- package/dist/datavis/Table/Table.stories.svelte +48 -48
- package/dist/datavis/Table/Table.svelte +161 -161
- package/dist/datavis/Table/docs/component.md +20 -20
- package/dist/datavis/demo-data/data-scatter.js +40 -40
- package/dist/datavis/demo-data/data.js +18 -18
- package/dist/datavis/intro.mdx +21 -21
- package/dist/decorators/Blockquote/Blockquote.stories.svelte +25 -25
- package/dist/decorators/Blockquote/Blockquote.svelte +27 -27
- package/dist/decorators/Blockquote/docs/component.md +10 -10
- package/dist/decorators/Divider/Divider.stories.svelte +29 -29
- package/dist/decorators/Divider/Divider.svelte +52 -52
- package/dist/decorators/Divider/docs/component.md +12 -12
- package/dist/decorators/Em/Em.stories.svelte +30 -30
- package/dist/decorators/Em/Em.svelte +58 -58
- package/dist/decorators/Em/docs/component.md +12 -12
- package/dist/decorators/Icon/Icon.stories.svelte +27 -27
- package/dist/decorators/Icon/Icon.svelte +101 -93
- package/dist/decorators/Icon/Icon.svelte.d.ts +2 -2
- package/dist/decorators/Icon/docs/component.md +10 -10
- package/dist/decorators/Indent/Indent.stories.svelte +22 -22
- package/dist/decorators/Indent/Indent.svelte +3 -3
- package/dist/decorators/Indent/docs/component.md +10 -10
- package/dist/index.js +86 -86
- package/dist/inputs/Button/Button.stories.svelte +70 -70
- package/dist/inputs/Button/Button.svelte +152 -152
- package/dist/inputs/Button/Button.svelte.d.ts +2 -2
- package/dist/inputs/Button/docs/component.md +17 -17
- package/dist/inputs/ButtonGroup/ButtonGroup.stories.svelte +40 -40
- package/dist/inputs/ButtonGroup/ButtonGroup.svelte +57 -57
- package/dist/inputs/ButtonGroup/ButtonGroupItem.svelte +101 -101
- package/dist/inputs/ButtonGroup/docs/component.md +23 -23
- package/dist/inputs/Checkbox/Checkbox.stories.svelte +34 -34
- package/dist/inputs/Checkbox/Checkbox.svelte +180 -180
- package/dist/inputs/Checkbox/docs/component.md +14 -14
- package/dist/inputs/Checkboxes/Checkboxes.stories.svelte +34 -34
- package/dist/inputs/Checkboxes/Checkboxes.svelte +62 -62
- package/dist/inputs/Checkboxes/docs/component.md +20 -20
- package/dist/inputs/Checkboxes/docs/example.md +16 -16
- package/dist/inputs/Dropdown/Dropdown.stories.svelte +54 -54
- package/dist/inputs/Dropdown/Dropdown.svelte +66 -66
- package/dist/inputs/Dropdown/docs/component.md +22 -22
- package/dist/inputs/ErrorPanel/ErrorPanel.stories.svelte +25 -25
- package/dist/inputs/ErrorPanel/ErrorPanel.svelte +24 -24
- package/dist/inputs/ErrorPanel/docs/component.md +14 -14
- package/dist/inputs/ErrorSummary/ErrorSummary.stories.svelte +34 -34
- package/dist/inputs/ErrorSummary/ErrorSummary.svelte +47 -47
- package/dist/inputs/ErrorSummary/docs/component.md +17 -17
- package/dist/inputs/ErrorSummary/docs/example.md +12 -12
- package/dist/inputs/Input/Input.stories.svelte +73 -73
- package/dist/inputs/Input/Input.svelte +151 -151
- package/dist/inputs/Input/docs/component.md +16 -16
- package/dist/inputs/Radios/Radio.svelte +90 -90
- package/dist/inputs/Radios/Radios.stories.svelte +51 -51
- package/dist/inputs/Radios/Radios.svelte +62 -62
- package/dist/inputs/Radios/docs/component.md +24 -24
- package/dist/inputs/Radios/docs/example.md +21 -21
- package/dist/inputs/Select/Select.stories.svelte +63 -63
- package/dist/inputs/Select/Select.svelte +326 -326
- package/dist/inputs/Select/docs/component.md +27 -27
- package/dist/inputs/Textarea/Textarea.stories.svelte +40 -40
- package/dist/inputs/Textarea/Textarea.svelte +113 -113
- package/dist/inputs/Textarea/docs/component.md +16 -16
- package/dist/inputs/Toolbar/HelpModal.svelte +234 -234
- package/dist/inputs/Toolbar/ToolControl.svelte +23 -23
- package/dist/inputs/Toolbar/ToolControls.svelte +9 -9
- package/dist/inputs/Toolbar/Toolbar.stories.svelte +148 -148
- package/dist/inputs/Toolbar/Toolbar.svelte +70 -70
- package/dist/inputs/Toolbar/ToolbarButton.svelte +184 -184
- package/dist/inputs/Toolbar/ToolbarDivider.svelte +29 -29
- package/dist/inputs/Toolbar/ToolbarIcon.svelte +106 -106
- package/dist/inputs/Toolbar/ToolbarsContainer.svelte +69 -69
- package/dist/inputs/Toolbar/docs/component.md +101 -101
- package/dist/intro.mdx +66 -66
- package/dist/js/menuOptions.js +14 -14
- package/dist/js/utils.js +133 -133
- package/dist/js/withParams.js +43 -43
- package/dist/layout/Accordion/Accordion.stories.svelte +30 -30
- package/dist/layout/Accordion/Accordion.svelte +55 -55
- package/dist/layout/Accordion/AccordionItem.svelte +51 -51
- package/dist/layout/Accordion/accordion.js +64 -64
- package/dist/layout/Accordion/details.js +83 -83
- package/dist/layout/Accordion/docs/component.md +19 -19
- package/dist/layout/AnalyticsBanner/AnalyticsBanner.stories.svelte +16 -16
- package/dist/layout/AnalyticsBanner/AnalyticsBanner.svelte +314 -314
- package/dist/layout/AnalyticsBanner/docs/component.md +44 -44
- package/dist/layout/BackLink/BackLink.stories.svelte +16 -16
- package/dist/layout/BackLink/BackLink.svelte +30 -30
- package/dist/layout/BackLink/docs/component.md +12 -12
- package/dist/layout/Breadcrumb/Breadcrumb.stories.svelte +31 -31
- package/dist/layout/Breadcrumb/Breadcrumb.svelte +69 -69
- package/dist/layout/Breadcrumb/docs/component.md +15 -15
- package/dist/layout/Card/Card.stories.svelte +39 -39
- package/dist/layout/Card/Card.svelte +127 -127
- package/dist/layout/Card/docs/component.md +14 -14
- package/dist/layout/Card/docs/eg-images.md +27 -27
- package/dist/layout/Card/docs/eg-links.md +12 -12
- package/dist/layout/Card/docs/eg-spans.md +12 -12
- package/dist/layout/Contents/Contents.stories.svelte +27 -27
- package/dist/layout/Contents/Contents.svelte +51 -51
- package/dist/layout/Contents/docs/component.md +18 -18
- package/dist/layout/DescriptionList/DescriptionList.stories.svelte +22 -22
- package/dist/layout/DescriptionList/DescriptionList.svelte +59 -59
- package/dist/layout/DescriptionList/docs/component.md +18 -18
- package/dist/layout/Details/Details.stories.svelte +32 -32
- package/dist/layout/Details/Details.svelte +75 -75
- package/dist/layout/Details/docs/component.md +14 -14
- package/dist/layout/DocumentList/Document.svelte +103 -103
- package/dist/layout/DocumentList/DocumentList.stories.svelte +88 -88
- package/dist/layout/DocumentList/DocumentList.svelte +33 -33
- package/dist/layout/DocumentList/docs/component.md +28 -28
- package/dist/layout/DocumentList/docs/example.md +23 -23
- package/dist/layout/ErrorPage/ErrorPage.stories.svelte +18 -18
- package/dist/layout/ErrorPage/ErrorPage.svelte +48 -48
- package/dist/layout/ErrorPage/docs/component.md +13 -13
- package/dist/layout/Footer/Footer.stories.svelte +24 -24
- package/dist/layout/Footer/Footer.svelte +366 -366
- package/dist/layout/Footer/docs/component.md +10 -10
- package/dist/layout/Grid/Grid.stories.svelte +50 -50
- package/dist/layout/Grid/Grid.svelte +117 -117
- package/dist/layout/Grid/GridCell.svelte +65 -65
- package/dist/layout/Grid/docs/component.md +14 -14
- package/dist/layout/Header/Header.stories.svelte +26 -26
- package/dist/layout/Header/Header.svelte +875 -875
- package/dist/layout/Header/docs/component.md +11 -11
- package/dist/layout/Hero/Hero.stories.svelte +79 -79
- package/dist/layout/Hero/Hero.svelte +364 -364
- package/dist/layout/Hero/docs/component.md +14 -14
- package/dist/layout/Highlight/Highlight.stories.svelte +29 -29
- package/dist/layout/Highlight/Highlight.svelte +77 -77
- package/dist/layout/Highlight/docs/component.md +12 -12
- package/dist/layout/Image/Image.stories.svelte +23 -23
- package/dist/layout/Image/Image.svelte +29 -29
- package/dist/layout/Image/docs/component.md +15 -15
- package/dist/layout/List/Li.svelte +3 -3
- package/dist/layout/List/List.stories.svelte +40 -40
- package/dist/layout/List/List.svelte +46 -46
- package/dist/layout/List/docs/component.md +14 -14
- package/dist/layout/List/docs/example.md +12 -12
- package/dist/layout/NavSections/NavSection.svelte +90 -90
- package/dist/layout/NavSections/NavSections.stories.svelte +51 -51
- package/dist/layout/NavSections/NavSections.svelte +160 -160
- package/dist/layout/NavSections/docs/component.md +25 -25
- package/dist/layout/Notice/Notice.stories.svelte +61 -61
- package/dist/layout/Notice/Notice.svelte +56 -56
- package/dist/layout/Notice/docs/component.md +14 -14
- package/dist/layout/PhaseBanner/PhaseBanner.stories.svelte +24 -24
- package/dist/layout/PhaseBanner/PhaseBanner.svelte +66 -66
- package/dist/layout/PhaseBanner/docs/component.md +14 -14
- package/dist/layout/RelatedContent/RelatedContent.stories.svelte +36 -36
- package/dist/layout/RelatedContent/RelatedContent.svelte +54 -54
- package/dist/layout/RelatedContent/docs/component.md +16 -16
- package/dist/layout/Scroller/Scroller.stories.svelte +60 -60
- package/dist/layout/Scroller/Scroller.svelte +368 -368
- package/dist/layout/Scroller/ScrollerSection.svelte +70 -70
- package/dist/layout/Scroller/docs/component.md +39 -39
- package/dist/layout/Section/Section.stories.svelte +33 -33
- package/dist/layout/Section/Section.svelte +60 -60
- package/dist/layout/Section/docs/component.md +12 -12
- package/dist/layout/ShareButtons/ShareButtons.stories.svelte +20 -20
- package/dist/layout/ShareButtons/ShareButtons.svelte +131 -131
- package/dist/layout/ShareButtons/docs/component.md +14 -14
- package/dist/layout/SkipLink/SkipLink.stories.svelte +16 -16
- package/dist/layout/SkipLink/SkipLink.svelte +9 -9
- package/dist/layout/SkipLink/docs/component.md +11 -11
- package/dist/layout/Summary/Summary.stories.svelte +21 -21
- package/dist/layout/Summary/Summary.svelte +60 -60
- package/dist/layout/Summary/docs/component.md +17 -17
- package/dist/layout/Tabs/Tab.svelte +53 -53
- package/dist/layout/Tabs/Tabs.stories.svelte +29 -29
- package/dist/layout/Tabs/Tabs.svelte +89 -89
- package/dist/layout/Tabs/docs/component.md +16 -16
- package/dist/layout/Tabs/tabs.js +302 -302
- package/dist/layout/Timeline/Timeline.stories.svelte +44 -44
- package/dist/layout/Timeline/Timeline.svelte +17 -17
- package/dist/layout/Timeline/TimelineItem.svelte +14 -14
- package/dist/layout/Timeline/docs/component.md +27 -27
- package/dist/layout/Timeline/docs/example.md +20 -20
- package/dist/templates/EmbedArticle/EmbedArticle.stories.svelte +72 -72
- package/dist/templates/EmbedArticle/docs/component.md +56 -56
- package/dist/templates/FeatureArticle/FeatureArticle.stories.svelte +150 -150
- package/dist/templates/FeatureArticle/docs/component.md +125 -125
- package/dist/templates/StandardArticle/StandardArticle.stories.svelte +86 -86
- package/dist/templates/StandardArticle/docs/component.md +76 -76
- package/dist/templates/intro.mdx +18 -18
- package/dist/wrappers/Container/Container.stories.svelte +38 -38
- package/dist/wrappers/Container/Container.svelte +77 -77
- package/dist/wrappers/Container/docs/component.md +12 -12
- package/dist/wrappers/Embed/Embed.stories.svelte +24 -24
- package/dist/wrappers/Embed/Embed.svelte +44 -44
- package/dist/wrappers/Embed/docs/component.md +15 -15
- package/dist/wrappers/LazyLoad/LazyLoad.stories.svelte +37 -37
- package/dist/wrappers/LazyLoad/LazyLoad.svelte +50 -50
- package/dist/wrappers/LazyLoad/docs/component.md +29 -29
- package/dist/wrappers/Main/Main.stories.svelte +24 -24
- package/dist/wrappers/Main/Main.svelte +11 -11
- package/dist/wrappers/Main/docs/component.md +16 -16
- package/dist/wrappers/Observe/Observe.stories.svelte +29 -29
- package/dist/wrappers/Observe/Observe.svelte +40 -40
- package/dist/wrappers/Observe/docs/component.md +22 -22
- package/dist/wrappers/Theme/Theme.stories.svelte +70 -70
- package/dist/wrappers/Theme/Theme.svelte +76 -76
- package/dist/wrappers/Theme/docs/component.md +10 -10
- package/dist/wrappers/Theme/themes.js +70 -70
- package/package.json +88 -88
|
@@ -1,48 +1,48 @@
|
|
|
1
|
-
<script module>
|
|
2
|
-
import { defineMeta } from "@storybook/addon-svelte-csf";
|
|
3
|
-
import { withComponentDocs } from "../../js/withParams.js";
|
|
4
|
-
import Table from "./Table.svelte";
|
|
5
|
-
import componentDocs from "./docs/component.md?raw";
|
|
6
|
-
|
|
7
|
-
const data = [
|
|
8
|
-
{ country: "Scotland", mountain: "Ben Nevis", height: 1345 },
|
|
9
|
-
{ country: "Wales", mountain: "Snowdon", height: 1085 },
|
|
10
|
-
{ country: "England", mountain: "Scarfell Pike", height: 978 },
|
|
11
|
-
{ country: "Northern Ireland", mountain: "Slieve Donard", height: 850 }
|
|
12
|
-
];
|
|
13
|
-
const columns = [
|
|
14
|
-
{ key: "country", label: "Country" },
|
|
15
|
-
{ key: "mountain", label: "Highest mountain" },
|
|
16
|
-
{ key: "height", label: "Height in metres", numeric: true }
|
|
17
|
-
];
|
|
18
|
-
|
|
19
|
-
const dataAlt = [
|
|
20
|
-
{ measure: "First measure", value: 1 },
|
|
21
|
-
{ measure: "Second measure", value: 2 },
|
|
22
|
-
{ measure: "Third measure", value: null },
|
|
23
|
-
{ measure: "Fourth measure", value: 3 }
|
|
24
|
-
];
|
|
25
|
-
const columnsAlt = [
|
|
26
|
-
{ key: "measure", label: "Measure" },
|
|
27
|
-
{ key: "value", label: "Value", numeric: true }
|
|
28
|
-
];
|
|
29
|
-
|
|
30
|
-
const { Story } = defineMeta({
|
|
31
|
-
title: "Data visualisation/Table",
|
|
32
|
-
component: Table,
|
|
33
|
-
tags: ["autodocs"],
|
|
34
|
-
argTypes: {},
|
|
35
|
-
parameters: withComponentDocs(componentDocs)
|
|
36
|
-
});
|
|
37
|
-
</script>
|
|
38
|
-
|
|
39
|
-
<Story name="Default" args={{ data, columns }} />
|
|
40
|
-
|
|
41
|
-
<Story name="Fixed height with sticky header" args={{ data, columns, height: 200 }} />
|
|
42
|
-
|
|
43
|
-
<Story name="Compact mode, sortable" args={{ data, columns, sortable: true, compact: true }} />
|
|
44
|
-
|
|
45
|
-
<Story
|
|
46
|
-
name="Sortable with null values"
|
|
47
|
-
args={{ data: dataAlt, columns: columnsAlt, sortable: true }}
|
|
48
|
-
/>
|
|
1
|
+
<script module>
|
|
2
|
+
import { defineMeta } from "@storybook/addon-svelte-csf";
|
|
3
|
+
import { withComponentDocs } from "../../js/withParams.js";
|
|
4
|
+
import Table from "./Table.svelte";
|
|
5
|
+
import componentDocs from "./docs/component.md?raw";
|
|
6
|
+
|
|
7
|
+
const data = [
|
|
8
|
+
{ country: "Scotland", mountain: "Ben Nevis", height: 1345 },
|
|
9
|
+
{ country: "Wales", mountain: "Snowdon", height: 1085 },
|
|
10
|
+
{ country: "England", mountain: "Scarfell Pike", height: 978 },
|
|
11
|
+
{ country: "Northern Ireland", mountain: "Slieve Donard", height: 850 }
|
|
12
|
+
];
|
|
13
|
+
const columns = [
|
|
14
|
+
{ key: "country", label: "Country" },
|
|
15
|
+
{ key: "mountain", label: "Highest mountain" },
|
|
16
|
+
{ key: "height", label: "Height in metres", numeric: true }
|
|
17
|
+
];
|
|
18
|
+
|
|
19
|
+
const dataAlt = [
|
|
20
|
+
{ measure: "First measure", value: 1 },
|
|
21
|
+
{ measure: "Second measure", value: 2 },
|
|
22
|
+
{ measure: "Third measure", value: null },
|
|
23
|
+
{ measure: "Fourth measure", value: 3 }
|
|
24
|
+
];
|
|
25
|
+
const columnsAlt = [
|
|
26
|
+
{ key: "measure", label: "Measure" },
|
|
27
|
+
{ key: "value", label: "Value", numeric: true }
|
|
28
|
+
];
|
|
29
|
+
|
|
30
|
+
const { Story } = defineMeta({
|
|
31
|
+
title: "Data visualisation/Table",
|
|
32
|
+
component: Table,
|
|
33
|
+
tags: ["autodocs"],
|
|
34
|
+
argTypes: {},
|
|
35
|
+
parameters: withComponentDocs(componentDocs)
|
|
36
|
+
});
|
|
37
|
+
</script>
|
|
38
|
+
|
|
39
|
+
<Story name="Default" args={{ data, columns }} />
|
|
40
|
+
|
|
41
|
+
<Story name="Fixed height with sticky header" args={{ data, columns, height: 200 }} />
|
|
42
|
+
|
|
43
|
+
<Story name="Compact mode, sortable" args={{ data, columns, sortable: true, compact: true }} />
|
|
44
|
+
|
|
45
|
+
<Story
|
|
46
|
+
name="Sortable with null values"
|
|
47
|
+
args={{ data: dataAlt, columns: columnsAlt, sortable: true }}
|
|
48
|
+
/>
|
|
@@ -1,161 +1,161 @@
|
|
|
1
|
-
<script>
|
|
2
|
-
import { formatter, isNumeric, ascending, descending } from "../../js/utils.js";
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* An optional title for the table
|
|
6
|
-
* @type {string|null}
|
|
7
|
-
*/
|
|
8
|
-
export let title = null;
|
|
9
|
-
/**
|
|
10
|
-
* Make the table smaller/more compact
|
|
11
|
-
* @type {boolean}
|
|
12
|
-
*/
|
|
13
|
-
export let compact = false;
|
|
14
|
-
/**
|
|
15
|
-
* Make the table sortable
|
|
16
|
-
* @type {boolean}
|
|
17
|
-
*/
|
|
18
|
-
export let sortable = false;
|
|
19
|
-
/**
|
|
20
|
-
* Make the chart responsive (changes layout on narrow screens)
|
|
21
|
-
* @type {boolean}
|
|
22
|
-
*/
|
|
23
|
-
export let responsive = false;
|
|
24
|
-
/**
|
|
25
|
-
* Highlight rows on hover
|
|
26
|
-
* @type {boolean}
|
|
27
|
-
*/
|
|
28
|
-
export let rowHover = false;
|
|
29
|
-
/**
|
|
30
|
-
* Maximum height of table (in pixels). The header row becomes sticky unless the value is "auto" (default).
|
|
31
|
-
* @type {number|"auto"}
|
|
32
|
-
*/
|
|
33
|
-
export let height = "auto";
|
|
34
|
-
/**
|
|
35
|
-
* Rows of data
|
|
36
|
-
* @type {object[]}
|
|
37
|
-
*/
|
|
38
|
-
export let data = [];
|
|
39
|
-
/**
|
|
40
|
-
* Optional metadata for formatting columns. Array of {key, label, numeric?, dp?, formatter?} objects
|
|
41
|
-
* @type {object[]}
|
|
42
|
-
*/
|
|
43
|
-
export let columns =
|
|
44
|
-
Array.isArray(data) && data[0] ? Object.keys(data[0]).map((key) => ({ key, label: key })) : [];
|
|
45
|
-
let _data = [...data];
|
|
46
|
-
let sort = columns.map(() => "none");
|
|
47
|
-
/**
|
|
48
|
-
* Optional: Set an additional CSS class for the component
|
|
49
|
-
* @type {string|null}
|
|
50
|
-
*/
|
|
51
|
-
export let cls = null;
|
|
52
|
-
|
|
53
|
-
$: formatters = columns.map((d) => d.formatter || formatter(d.dp));
|
|
54
|
-
</script>
|
|
55
|
-
|
|
56
|
-
<div
|
|
57
|
-
class={cls}
|
|
58
|
-
style:overflow={typeof height === "number" ? "auto" : null}
|
|
59
|
-
style:height={typeof height === "number" ? `${height}px` : null}
|
|
60
|
-
style:display={typeof height !== "number" ? "contents" : null}
|
|
61
|
-
>
|
|
62
|
-
<table
|
|
63
|
-
class="ons-table"
|
|
64
|
-
class:ons-table--sortable={sortable}
|
|
65
|
-
class:ons-table--compact={compact}
|
|
66
|
-
class:ons-table--responsive={responsive}
|
|
67
|
-
class:ons-table--row-hover={rowHover}
|
|
68
|
-
class:sticky-header={typeof height === "number"}
|
|
69
|
-
data-aria-sort={sortable ? "Sort by" : null}
|
|
70
|
-
data-aria-asc={sortable ? "ascending" : null}
|
|
71
|
-
data-aria-desc={sortable ? "descending" : null}
|
|
72
|
-
>
|
|
73
|
-
{#if title}<caption class="ons-table__caption">{title}</caption>{/if}
|
|
74
|
-
<thead class="ons-table__head">
|
|
75
|
-
<tr class="ons-table__row">
|
|
76
|
-
{#each columns as col, i}
|
|
77
|
-
{#if sortable}
|
|
78
|
-
<th
|
|
79
|
-
scope="col"
|
|
80
|
-
class="ons-table__header"
|
|
81
|
-
class:ons-table__header--numeric={col.numeric}
|
|
82
|
-
aria-sort={sort[i]}
|
|
83
|
-
>
|
|
84
|
-
<button
|
|
85
|
-
aria-label="Sort by {col.label}"
|
|
86
|
-
type="button"
|
|
87
|
-
data-index={i}
|
|
88
|
-
class="ons-table__sort-button"
|
|
89
|
-
on:click={() => {
|
|
90
|
-
sort = sort.map((c, j) =>
|
|
91
|
-
j === i && c === "ascending" ? "descending" : j === i ? "ascending" : "none"
|
|
92
|
-
);
|
|
93
|
-
_data = _data.sort((a, b) =>
|
|
94
|
-
sort[i] === "ascending"
|
|
95
|
-
? ascending(a[col.key], b[col.key])
|
|
96
|
-
: descending(a[col.key], b[col.key])
|
|
97
|
-
);
|
|
98
|
-
}}
|
|
99
|
-
>
|
|
100
|
-
{col.label}<svg
|
|
101
|
-
id="sort-sprite-id-0"
|
|
102
|
-
class="ons-icon"
|
|
103
|
-
viewBox="0 0 12 19"
|
|
104
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
105
|
-
focusable="false"
|
|
106
|
-
fill="currentColor"
|
|
107
|
-
role="img"
|
|
108
|
-
title="ons-icon-sort-sprite"
|
|
109
|
-
>
|
|
110
|
-
<path
|
|
111
|
-
class="ons-topTriangle"
|
|
112
|
-
d="M6 0l6 7.2H0L6 0zm0 18.6l6-7.2H0l6 7.2zm0 3.6l6 7.2H0l6-7.2z"
|
|
113
|
-
></path>
|
|
114
|
-
<path class="ons-bottomTriangle" d="M6 18.6l6-7.2H0l6 7.2zm0 3.6l6 7.2H0l6-7.2z"
|
|
115
|
-
></path>
|
|
116
|
-
</svg>
|
|
117
|
-
</button>
|
|
118
|
-
</th>
|
|
119
|
-
{:else}
|
|
120
|
-
<th
|
|
121
|
-
scope="col"
|
|
122
|
-
class="ons-table__header"
|
|
123
|
-
class:ons-table__header--numeric={col.numeric}
|
|
124
|
-
>
|
|
125
|
-
<span class="ons-table__header-text">{col.label}</span>
|
|
126
|
-
</th>
|
|
127
|
-
{/if}
|
|
128
|
-
{/each}
|
|
129
|
-
</tr>
|
|
130
|
-
</thead>
|
|
131
|
-
<tbody class="ons-table__body">
|
|
132
|
-
{#each _data as row}
|
|
133
|
-
<tr class="ons-table__row">
|
|
134
|
-
{#each columns as col, i}
|
|
135
|
-
<td
|
|
136
|
-
class="ons-table__cell"
|
|
137
|
-
class:ons-table__cell--numeric={col.numeric}
|
|
138
|
-
data-th={col.label}
|
|
139
|
-
>{@html col.numeric && isNumeric(row[col.key])
|
|
140
|
-
? formatters[i](row[col.key])
|
|
141
|
-
: row[col.key] || "–"}</td
|
|
142
|
-
>
|
|
143
|
-
{/each}
|
|
144
|
-
</tr>
|
|
145
|
-
{/each}
|
|
146
|
-
</tbody>
|
|
147
|
-
</table>
|
|
148
|
-
</div>
|
|
149
|
-
|
|
150
|
-
<style>
|
|
151
|
-
table.sticky-header thead.ons-table__head {
|
|
152
|
-
position: sticky;
|
|
153
|
-
top: 0;
|
|
154
|
-
background: var(--ons-color-page-light);
|
|
155
|
-
border-bottom: none;
|
|
156
|
-
}
|
|
157
|
-
table.sticky-header thead.ons-table__head th {
|
|
158
|
-
box-shadow: 0px -2px var(--ons-color-borders) inset;
|
|
159
|
-
border-bottom: none;
|
|
160
|
-
}
|
|
161
|
-
</style>
|
|
1
|
+
<script>
|
|
2
|
+
import { formatter, isNumeric, ascending, descending } from "../../js/utils.js";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* An optional title for the table
|
|
6
|
+
* @type {string|null}
|
|
7
|
+
*/
|
|
8
|
+
export let title = null;
|
|
9
|
+
/**
|
|
10
|
+
* Make the table smaller/more compact
|
|
11
|
+
* @type {boolean}
|
|
12
|
+
*/
|
|
13
|
+
export let compact = false;
|
|
14
|
+
/**
|
|
15
|
+
* Make the table sortable
|
|
16
|
+
* @type {boolean}
|
|
17
|
+
*/
|
|
18
|
+
export let sortable = false;
|
|
19
|
+
/**
|
|
20
|
+
* Make the chart responsive (changes layout on narrow screens)
|
|
21
|
+
* @type {boolean}
|
|
22
|
+
*/
|
|
23
|
+
export let responsive = false;
|
|
24
|
+
/**
|
|
25
|
+
* Highlight rows on hover
|
|
26
|
+
* @type {boolean}
|
|
27
|
+
*/
|
|
28
|
+
export let rowHover = false;
|
|
29
|
+
/**
|
|
30
|
+
* Maximum height of table (in pixels). The header row becomes sticky unless the value is "auto" (default).
|
|
31
|
+
* @type {number|"auto"}
|
|
32
|
+
*/
|
|
33
|
+
export let height = "auto";
|
|
34
|
+
/**
|
|
35
|
+
* Rows of data
|
|
36
|
+
* @type {object[]}
|
|
37
|
+
*/
|
|
38
|
+
export let data = [];
|
|
39
|
+
/**
|
|
40
|
+
* Optional metadata for formatting columns. Array of {key, label, numeric?, dp?, formatter?} objects
|
|
41
|
+
* @type {object[]}
|
|
42
|
+
*/
|
|
43
|
+
export let columns =
|
|
44
|
+
Array.isArray(data) && data[0] ? Object.keys(data[0]).map((key) => ({ key, label: key })) : [];
|
|
45
|
+
let _data = [...data];
|
|
46
|
+
let sort = columns.map(() => "none");
|
|
47
|
+
/**
|
|
48
|
+
* Optional: Set an additional CSS class for the component
|
|
49
|
+
* @type {string|null}
|
|
50
|
+
*/
|
|
51
|
+
export let cls = null;
|
|
52
|
+
|
|
53
|
+
$: formatters = columns.map((d) => d.formatter || formatter(d.dp));
|
|
54
|
+
</script>
|
|
55
|
+
|
|
56
|
+
<div
|
|
57
|
+
class={cls}
|
|
58
|
+
style:overflow={typeof height === "number" ? "auto" : null}
|
|
59
|
+
style:height={typeof height === "number" ? `${height}px` : null}
|
|
60
|
+
style:display={typeof height !== "number" ? "contents" : null}
|
|
61
|
+
>
|
|
62
|
+
<table
|
|
63
|
+
class="ons-table"
|
|
64
|
+
class:ons-table--sortable={sortable}
|
|
65
|
+
class:ons-table--compact={compact}
|
|
66
|
+
class:ons-table--responsive={responsive}
|
|
67
|
+
class:ons-table--row-hover={rowHover}
|
|
68
|
+
class:sticky-header={typeof height === "number"}
|
|
69
|
+
data-aria-sort={sortable ? "Sort by" : null}
|
|
70
|
+
data-aria-asc={sortable ? "ascending" : null}
|
|
71
|
+
data-aria-desc={sortable ? "descending" : null}
|
|
72
|
+
>
|
|
73
|
+
{#if title}<caption class="ons-table__caption">{title}</caption>{/if}
|
|
74
|
+
<thead class="ons-table__head">
|
|
75
|
+
<tr class="ons-table__row">
|
|
76
|
+
{#each columns as col, i}
|
|
77
|
+
{#if sortable}
|
|
78
|
+
<th
|
|
79
|
+
scope="col"
|
|
80
|
+
class="ons-table__header"
|
|
81
|
+
class:ons-table__header--numeric={col.numeric}
|
|
82
|
+
aria-sort={sort[i]}
|
|
83
|
+
>
|
|
84
|
+
<button
|
|
85
|
+
aria-label="Sort by {col.label}"
|
|
86
|
+
type="button"
|
|
87
|
+
data-index={i}
|
|
88
|
+
class="ons-table__sort-button"
|
|
89
|
+
on:click={() => {
|
|
90
|
+
sort = sort.map((c, j) =>
|
|
91
|
+
j === i && c === "ascending" ? "descending" : j === i ? "ascending" : "none"
|
|
92
|
+
);
|
|
93
|
+
_data = _data.sort((a, b) =>
|
|
94
|
+
sort[i] === "ascending"
|
|
95
|
+
? ascending(a[col.key], b[col.key])
|
|
96
|
+
: descending(a[col.key], b[col.key])
|
|
97
|
+
);
|
|
98
|
+
}}
|
|
99
|
+
>
|
|
100
|
+
{col.label}<svg
|
|
101
|
+
id="sort-sprite-id-0"
|
|
102
|
+
class="ons-icon"
|
|
103
|
+
viewBox="0 0 12 19"
|
|
104
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
105
|
+
focusable="false"
|
|
106
|
+
fill="currentColor"
|
|
107
|
+
role="img"
|
|
108
|
+
title="ons-icon-sort-sprite"
|
|
109
|
+
>
|
|
110
|
+
<path
|
|
111
|
+
class="ons-topTriangle"
|
|
112
|
+
d="M6 0l6 7.2H0L6 0zm0 18.6l6-7.2H0l6 7.2zm0 3.6l6 7.2H0l6-7.2z"
|
|
113
|
+
></path>
|
|
114
|
+
<path class="ons-bottomTriangle" d="M6 18.6l6-7.2H0l6 7.2zm0 3.6l6 7.2H0l6-7.2z"
|
|
115
|
+
></path>
|
|
116
|
+
</svg>
|
|
117
|
+
</button>
|
|
118
|
+
</th>
|
|
119
|
+
{:else}
|
|
120
|
+
<th
|
|
121
|
+
scope="col"
|
|
122
|
+
class="ons-table__header"
|
|
123
|
+
class:ons-table__header--numeric={col.numeric}
|
|
124
|
+
>
|
|
125
|
+
<span class="ons-table__header-text">{col.label}</span>
|
|
126
|
+
</th>
|
|
127
|
+
{/if}
|
|
128
|
+
{/each}
|
|
129
|
+
</tr>
|
|
130
|
+
</thead>
|
|
131
|
+
<tbody class="ons-table__body">
|
|
132
|
+
{#each _data as row}
|
|
133
|
+
<tr class="ons-table__row">
|
|
134
|
+
{#each columns as col, i}
|
|
135
|
+
<td
|
|
136
|
+
class="ons-table__cell"
|
|
137
|
+
class:ons-table__cell--numeric={col.numeric}
|
|
138
|
+
data-th={col.label}
|
|
139
|
+
>{@html col.numeric && isNumeric(row[col.key])
|
|
140
|
+
? formatters[i](row[col.key])
|
|
141
|
+
: row[col.key] || "–"}</td
|
|
142
|
+
>
|
|
143
|
+
{/each}
|
|
144
|
+
</tr>
|
|
145
|
+
{/each}
|
|
146
|
+
</tbody>
|
|
147
|
+
</table>
|
|
148
|
+
</div>
|
|
149
|
+
|
|
150
|
+
<style>
|
|
151
|
+
table.sticky-header thead.ons-table__head {
|
|
152
|
+
position: sticky;
|
|
153
|
+
top: 0;
|
|
154
|
+
background: var(--ons-color-page-light);
|
|
155
|
+
border-bottom: none;
|
|
156
|
+
}
|
|
157
|
+
table.sticky-header thead.ons-table__head th {
|
|
158
|
+
box-shadow: 0px -2px var(--ons-color-borders) inset;
|
|
159
|
+
border-bottom: none;
|
|
160
|
+
}
|
|
161
|
+
</style>
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
A table component with various customisation options.
|
|
2
|
-
|
|
3
|
-
<!-- prettier-ignore -->
|
|
4
|
-
```html
|
|
5
|
-
<script>
|
|
6
|
-
import { Table } from "@onsvisual/svelte-components";
|
|
7
|
-
|
|
8
|
-
const data = [
|
|
9
|
-
{ col1: "Item one", col2: 10 },
|
|
10
|
-
{ col1: "Item two", col2: 20 },
|
|
11
|
-
{ col1: "Item three", col2: 30 },
|
|
12
|
-
];
|
|
13
|
-
const columns = [
|
|
14
|
-
{ key: "col1", label: "Text column" },
|
|
15
|
-
{ key: "col2", label: "Numeric column", numeric: true},
|
|
16
|
-
];
|
|
17
|
-
</script>
|
|
18
|
-
|
|
19
|
-
<Table {data} {columns} />
|
|
20
|
-
```
|
|
1
|
+
A table component with various customisation options.
|
|
2
|
+
|
|
3
|
+
<!-- prettier-ignore -->
|
|
4
|
+
```html
|
|
5
|
+
<script>
|
|
6
|
+
import { Table } from "@onsvisual/svelte-components";
|
|
7
|
+
|
|
8
|
+
const data = [
|
|
9
|
+
{ col1: "Item one", col2: 10 },
|
|
10
|
+
{ col1: "Item two", col2: 20 },
|
|
11
|
+
{ col1: "Item three", col2: 30 },
|
|
12
|
+
];
|
|
13
|
+
const columns = [
|
|
14
|
+
{ key: "col1", label: "Text column" },
|
|
15
|
+
{ key: "col2", label: "Numeric column", numeric: true},
|
|
16
|
+
];
|
|
17
|
+
</script>
|
|
18
|
+
|
|
19
|
+
<Table {data} {columns} />
|
|
20
|
+
```
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
export default [
|
|
2
|
-
{ year: 1979, value: 7.19, alt: 12, group: "apples" },
|
|
3
|
-
{ year: 1980, value: 7.83, alt: 15, group: "apples" },
|
|
4
|
-
{ year: 1981, value: 7.24, alt: 17, group: "apples" },
|
|
5
|
-
{ year: 1982, value: 7.44, alt: 28, group: "apples" },
|
|
6
|
-
{ year: 1983, value: 7.51, alt: 23, group: "apples" },
|
|
7
|
-
{ year: 1984, value: 7.1, alt: 17, group: "apples" },
|
|
8
|
-
{ year: 1985, value: 6.91, alt: 11, group: "apples" },
|
|
9
|
-
{ year: 1986, value: 7.53, alt: 13, group: "apples" },
|
|
10
|
-
{ year: 1987, value: 7.47, alt: 18, group: "apples" },
|
|
11
|
-
{ year: 1988, value: 7.48, alt: 20, group: "apples" },
|
|
12
|
-
{ year: 1989, value: 7.03, alt: 24, group: "apples" },
|
|
13
|
-
{ year: 1990, value: 6.23, alt: 26, group: "bananas" },
|
|
14
|
-
{ year: 1991, value: 6.54, alt: 16, group: "bananas" },
|
|
15
|
-
{ year: 1992, value: 7.54, alt: 25, group: "bananas" },
|
|
16
|
-
{ year: 1993, value: 6.5, alt: 28, group: "bananas" },
|
|
17
|
-
{ year: 1994, value: 7.18, alt: 11, group: "bananas" },
|
|
18
|
-
{ year: 1995, value: 6.12, alt: 19, group: "bananas" },
|
|
19
|
-
{ year: 1996, value: 7.87, alt: 14, group: "bananas" },
|
|
20
|
-
{ year: 1997, value: 6.73, alt: 22, group: "bananas" },
|
|
21
|
-
{ year: 1998, value: 6.55, alt: 13, group: "bananas" },
|
|
22
|
-
{ year: 1999, value: 6.23, alt: 30, group: "bananas" },
|
|
23
|
-
{ year: 2000, value: 6.31, alt: 27, group: "bananas" },
|
|
24
|
-
{ year: 2001, value: 6.74, alt: 13, group: "cherries" },
|
|
25
|
-
{ year: 2002, value: 5.95, alt: 18, group: "cherries" },
|
|
26
|
-
{ year: 2003, value: 6.13, alt: 15, group: "cherries" },
|
|
27
|
-
{ year: 2004, value: 6.04, alt: 11, group: "cherries" },
|
|
28
|
-
{ year: 2005, value: 5.56, alt: 29, group: "cherries" },
|
|
29
|
-
{ year: 2006, value: 5.91, alt: 26, group: "cherries" },
|
|
30
|
-
{ year: 2007, value: 4.29, alt: 10, group: "cherries" },
|
|
31
|
-
{ year: 2008, value: 4.72, alt: 14, group: "cherries" },
|
|
32
|
-
{ year: 2009, value: 5.38, alt: 21, group: "cherries" },
|
|
33
|
-
{ year: 2010, value: 4.92, alt: 20, group: "cherries" },
|
|
34
|
-
{ year: 2011, value: 4.61, alt: 24, group: "dates" },
|
|
35
|
-
{ year: 2012, value: 3.62, alt: 19, group: "dates" },
|
|
36
|
-
{ year: 2013, value: 5.35, alt: 12, group: "dates" },
|
|
37
|
-
{ year: 2014, value: 5.28, alt: 13, group: "dates" },
|
|
38
|
-
{ year: 2015, value: 4.63, alt: 28, group: "dates" },
|
|
39
|
-
{ year: 2016, value: 4.72, alt: 30, group: "dates" },
|
|
40
|
-
];
|
|
1
|
+
export default [
|
|
2
|
+
{ year: 1979, value: 7.19, alt: 12, group: "apples" },
|
|
3
|
+
{ year: 1980, value: 7.83, alt: 15, group: "apples" },
|
|
4
|
+
{ year: 1981, value: 7.24, alt: 17, group: "apples" },
|
|
5
|
+
{ year: 1982, value: 7.44, alt: 28, group: "apples" },
|
|
6
|
+
{ year: 1983, value: 7.51, alt: 23, group: "apples" },
|
|
7
|
+
{ year: 1984, value: 7.1, alt: 17, group: "apples" },
|
|
8
|
+
{ year: 1985, value: 6.91, alt: 11, group: "apples" },
|
|
9
|
+
{ year: 1986, value: 7.53, alt: 13, group: "apples" },
|
|
10
|
+
{ year: 1987, value: 7.47, alt: 18, group: "apples" },
|
|
11
|
+
{ year: 1988, value: 7.48, alt: 20, group: "apples" },
|
|
12
|
+
{ year: 1989, value: 7.03, alt: 24, group: "apples" },
|
|
13
|
+
{ year: 1990, value: 6.23, alt: 26, group: "bananas" },
|
|
14
|
+
{ year: 1991, value: 6.54, alt: 16, group: "bananas" },
|
|
15
|
+
{ year: 1992, value: 7.54, alt: 25, group: "bananas" },
|
|
16
|
+
{ year: 1993, value: 6.5, alt: 28, group: "bananas" },
|
|
17
|
+
{ year: 1994, value: 7.18, alt: 11, group: "bananas" },
|
|
18
|
+
{ year: 1995, value: 6.12, alt: 19, group: "bananas" },
|
|
19
|
+
{ year: 1996, value: 7.87, alt: 14, group: "bananas" },
|
|
20
|
+
{ year: 1997, value: 6.73, alt: 22, group: "bananas" },
|
|
21
|
+
{ year: 1998, value: 6.55, alt: 13, group: "bananas" },
|
|
22
|
+
{ year: 1999, value: 6.23, alt: 30, group: "bananas" },
|
|
23
|
+
{ year: 2000, value: 6.31, alt: 27, group: "bananas" },
|
|
24
|
+
{ year: 2001, value: 6.74, alt: 13, group: "cherries" },
|
|
25
|
+
{ year: 2002, value: 5.95, alt: 18, group: "cherries" },
|
|
26
|
+
{ year: 2003, value: 6.13, alt: 15, group: "cherries" },
|
|
27
|
+
{ year: 2004, value: 6.04, alt: 11, group: "cherries" },
|
|
28
|
+
{ year: 2005, value: 5.56, alt: 29, group: "cherries" },
|
|
29
|
+
{ year: 2006, value: 5.91, alt: 26, group: "cherries" },
|
|
30
|
+
{ year: 2007, value: 4.29, alt: 10, group: "cherries" },
|
|
31
|
+
{ year: 2008, value: 4.72, alt: 14, group: "cherries" },
|
|
32
|
+
{ year: 2009, value: 5.38, alt: 21, group: "cherries" },
|
|
33
|
+
{ year: 2010, value: 4.92, alt: 20, group: "cherries" },
|
|
34
|
+
{ year: 2011, value: 4.61, alt: 24, group: "dates" },
|
|
35
|
+
{ year: 2012, value: 3.62, alt: 19, group: "dates" },
|
|
36
|
+
{ year: 2013, value: 5.35, alt: 12, group: "dates" },
|
|
37
|
+
{ year: 2014, value: 5.28, alt: 13, group: "dates" },
|
|
38
|
+
{ year: 2015, value: 4.63, alt: 28, group: "dates" },
|
|
39
|
+
{ year: 2016, value: 4.72, alt: 30, group: "dates" },
|
|
40
|
+
];
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
export default [
|
|
2
|
-
{ year: 2017, value: 320, group: "apples" },
|
|
3
|
-
{ year: 2017, value: 480, group: "bananas" },
|
|
4
|
-
{ year: 2017, value: 640, group: "cherries" },
|
|
5
|
-
{ year: 2017, value: 400, group: "dates" },
|
|
6
|
-
{ year: 2018, value: 640, group: "apples" },
|
|
7
|
-
{ year: 2018, value: 960, group: "bananas" },
|
|
8
|
-
{ year: 2018, value: 640, group: "cherries" },
|
|
9
|
-
{ year: 2018, value: 400, group: "dates" },
|
|
10
|
-
{ year: 2019, value: 1600, group: "apples" },
|
|
11
|
-
{ year: 2019, value: 1440, group: "bananas" },
|
|
12
|
-
{ year: 2019, value: 960, group: "cherries" },
|
|
13
|
-
{ year: 2019, value: 400, group: "dates" },
|
|
14
|
-
{ year: 2020, value: 3840, group: "apples" },
|
|
15
|
-
{ year: 2020, value: 1920, group: "bananas" },
|
|
16
|
-
{ year: 2020, value: 960, group: "cherries" },
|
|
17
|
-
{ year: 2020, value: 400, group: "dates" },
|
|
18
|
-
];
|
|
1
|
+
export default [
|
|
2
|
+
{ year: 2017, value: 320, group: "apples" },
|
|
3
|
+
{ year: 2017, value: 480, group: "bananas" },
|
|
4
|
+
{ year: 2017, value: 640, group: "cherries" },
|
|
5
|
+
{ year: 2017, value: 400, group: "dates" },
|
|
6
|
+
{ year: 2018, value: 640, group: "apples" },
|
|
7
|
+
{ year: 2018, value: 960, group: "bananas" },
|
|
8
|
+
{ year: 2018, value: 640, group: "cherries" },
|
|
9
|
+
{ year: 2018, value: 400, group: "dates" },
|
|
10
|
+
{ year: 2019, value: 1600, group: "apples" },
|
|
11
|
+
{ year: 2019, value: 1440, group: "bananas" },
|
|
12
|
+
{ year: 2019, value: 960, group: "cherries" },
|
|
13
|
+
{ year: 2019, value: 400, group: "dates" },
|
|
14
|
+
{ year: 2020, value: 3840, group: "apples" },
|
|
15
|
+
{ year: 2020, value: 1920, group: "bananas" },
|
|
16
|
+
{ year: 2020, value: 960, group: "cherries" },
|
|
17
|
+
{ year: 2020, value: 400, group: "dates" },
|
|
18
|
+
];
|
package/dist/datavis/intro.mdx
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import { Meta } from "@storybook/addon-docs/blocks";
|
|
2
|
-
|
|
3
|
-
<Meta title="Data visualisation/Using svelte-charts" />
|
|
4
|
-
|
|
5
|
-
# Using svelte-charts
|
|
6
|
-
|
|
7
|
-
Most of the charts in this section are examples from the [@onsvisual/svelte-charts](https://github.com/onsvisual/svelte-charts/) library. To make use of the charts from that library, it is necessary to install an additional dependency in your project:
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
npm install @onsvisual/svelte-charts --save-dev
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
When using these charts, you need to make sure that you import them from the **svelte-charts** library and not the components library, for example:
|
|
14
|
-
|
|
15
|
-
{/* prettier-ignore */}
|
|
16
|
-
```html
|
|
17
|
-
<script>
|
|
18
|
-
import { Chart } from "@onsvisual/svelte-charts";
|
|
19
|
-
</script>
|
|
20
|
-
|
|
21
|
-
<Chart {...chart_properties}>
|
|
1
|
+
import { Meta } from "@storybook/addon-docs/blocks";
|
|
2
|
+
|
|
3
|
+
<Meta title="Data visualisation/Using svelte-charts" />
|
|
4
|
+
|
|
5
|
+
# Using svelte-charts
|
|
6
|
+
|
|
7
|
+
Most of the charts in this section are examples from the [@onsvisual/svelte-charts](https://github.com/onsvisual/svelte-charts/) library. To make use of the charts from that library, it is necessary to install an additional dependency in your project:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install @onsvisual/svelte-charts --save-dev
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
When using these charts, you need to make sure that you import them from the **svelte-charts** library and not the components library, for example:
|
|
14
|
+
|
|
15
|
+
{/* prettier-ignore */}
|
|
16
|
+
```html
|
|
17
|
+
<script>
|
|
18
|
+
import { Chart } from "@onsvisual/svelte-charts";
|
|
19
|
+
</script>
|
|
20
|
+
|
|
21
|
+
<Chart {...chart_properties}>
|
|
22
22
|
```
|