Skip to content

Commit 17a6f6a

Browse files
committed
chore: add sandbox example (refs SFKUI-6500)
1 parent af51cfe commit 17a6f6a

File tree

1 file changed

+74
-21
lines changed

1 file changed

+74
-21
lines changed

internal/vue-sandbox/src/views/DefaultView.vue

Lines changed: 74 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,94 @@
11
<script lang="ts">
22
import { defineComponent } from "vue";
3-
import { FTextField } from "@fkui/vue";
3+
import { FInteractiveTable, FSortFilterDataset, FTableColumn } from "@fkui/vue";
4+
5+
export const fruits = [
6+
{
7+
id: "1",
8+
name: "Äpple",
9+
origin: "Sverige",
10+
description: "Rund, ofta röd eller grön frukt med söt eller syrlig smak.",
11+
variant: [
12+
{
13+
id: "1a",
14+
name: "Discovery",
15+
origin: "Sverige",
16+
description: "Rött och gulgrönt äpple. Krispig och smakrik.",
17+
},
18+
{
19+
id: "1b",
20+
name: "Ingrid Marie",
21+
origin: "Sverige",
22+
description: "Mörkrött äpple. Saftig och sötsyrlig.",
23+
},
24+
],
25+
},
26+
{
27+
id: "2",
28+
name: "Banan",
29+
origin: "Colombia",
30+
description: "Lång, gul frukt med mjukt och sött fruktkött.",
31+
},
32+
{
33+
id: "3",
34+
name: "Vattenmelon",
35+
origin: "Spanien",
36+
description: "Stor, rund frukt med grönt skal och saftigt, rött fruktkött.",
37+
},
38+
{
39+
id: "4",
40+
name: "Grapefrukt",
41+
origin: "Turkiet",
42+
description: "Stor, rund citrusfrukt med tjockt skal och saftig, syrlig smak.",
43+
},
44+
];
445
546
export default defineComponent({
6-
components: { FTextField },
47+
components: { FSortFilterDataset, FInteractiveTable, FTableColumn },
748
data() {
849
return {
9-
awesomeModel: "",
50+
sortableAttributes: {
51+
name: "Namn",
52+
origin: "Land",
53+
},
54+
fruits,
1055
};
1156
},
1257
});
1358
</script>
1459

1560
<template>
1661
<div class="sandbox-root">
17-
<h1>FKUI Sandbox</h1>
18-
<p>
19-
Ett internt paket som innehåller en avskalad Vue-applikation. Applikationen är konsument av övriga
20-
FKUI-paket och innehåller enbart ett tomt exempel.
21-
</p>
22-
<p>
23-
<strong>Ändra och labba gärna här men glöm inte återställa innan merge!</strong>
24-
</p>
25-
<hr />
26-
<f-text-field
27-
id="awesome-field"
28-
v-model="awesomeModel"
29-
v-validation.required.maxLength="{ maxLength: { length: 10 } }"
62+
<f-sort-filter-dataset
63+
:data="fruits"
64+
default-sort-attribute="name"
65+
:default-sort-ascending="true"
66+
:sortable-attributes
3067
>
31-
<template #default> Inmatningsfält. </template>
32-
<template #description="{ descriptionClass }">
33-
<span :class="descriptionClass"> Lorem ipsum dolor sit amet. </span>
68+
<template #header="{ slotClass }">
69+
<h3 :class="slotClass">Frukter</h3>
70+
</template>
71+
<template #default="{ sortFilterResult }">
72+
<f-interactive-table :rows="sortFilterResult" striped key-attribute="id">
73+
<template #caption>
74+
<span class="sr-only"> Frukter </span>
75+
</template>
76+
<template #default="{ row }">
77+
<f-table-column name="name" title="Namn" type="text" shrink>
78+
{{ row.name }}
79+
</f-table-column>
80+
<f-table-column name="origin" title="Land" type="text" shrink>
81+
{{ row.origin }}
82+
</f-table-column>
83+
<f-table-column name="description" title="Beskrivning" type="text" expand>
84+
{{ row.description }}
85+
</f-table-column>
86+
</template>
87+
</f-interactive-table>
3488
</template>
35-
</f-text-field>
89+
</f-sort-filter-dataset>
3690
</div>
3791
</template>
38-
3992
<style>
4093
.sandbox-root {
4194
width: min(100% - 2rem, 80ch);

0 commit comments

Comments
 (0)