@viur/shop-components 0.0.1-dev.60 → 0.0.1-dev.61

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.
Files changed (135) hide show
  1. package/old/client/HttpClient.js +111 -0
  2. package/old/client/ViURShopClient.js +472 -0
  3. package/old/client/index.js +23 -0
  4. package/old/client/types.js +10 -0
  5. package/old/components/ExampleUsage.vue +95 -0
  6. package/old/components/ShopCart.vue +91 -0
  7. package/old/components/ShopOrderConfirm.vue +311 -0
  8. package/{src → old}/components/ShopOrderStepper.vue +111 -23
  9. package/old/components/ShopPaymentProvider.vue +113 -0
  10. package/old/components/ShopShippingMethod.vue +52 -0
  11. package/{src/components/ui → old/components}/ShopSummary.vue +28 -35
  12. package/{src → old}/components/ShopUserData.vue +51 -65
  13. package/{src → old}/components/cart/CartLeafModel.vue +24 -16
  14. package/{src → old}/components/cart/CartNode.vue +1 -0
  15. package/{src → old}/components/cart/CartTree.vue +13 -0
  16. package/old/components/cart/CartView.vue +82 -0
  17. package/{src → old}/components/cart/Discount.vue +8 -8
  18. package/old/components/generic/loadinghandler.vue +76 -0
  19. package/old/components/paymentProvider/prepayment.vue +0 -0
  20. package/old/components/paymentProvider/unzerPayment.vue +140 -0
  21. package/old/components/simple/ShopUserData.vue +161 -0
  22. package/old/components/simple/SimpleDefaultLayout.vue +116 -0
  23. package/old/components/ui/generic/CardSelector.vue +52 -0
  24. package/old/components/ui/generic/CartList.vue +69 -0
  25. package/old/components/ui/generic/ShippingInfo.vue +56 -0
  26. package/old/components/ui/generic/alerts/ShopAlert.vue +30 -0
  27. package/old/components/ui/payment/PaymentOption.vue +79 -0
  28. package/old/components/ui/payment/PaymentSelector.vue +158 -0
  29. package/old/components/ui/stepper/StepperItem.vue +90 -0
  30. package/{src → old}/components/ui/stepper/StepperTab.vue +30 -2
  31. package/old/components/ui/stepper/StepperTrigger.vue +69 -0
  32. package/old/components/ui/userdata/AddForm.vue +160 -0
  33. package/old/components/ui/userdata/AddressBox.vue +137 -0
  34. package/{src → old}/components/ui/userdata/BaseLayout.vue +15 -32
  35. package/old/stores/address.js +122 -0
  36. package/old/stores/cart.js +266 -0
  37. package/old/stores/message.js +21 -0
  38. package/old/stores/order.js +202 -0
  39. package/old/stores/payment.js +79 -0
  40. package/old/stores/shipping.js +78 -0
  41. package/package.json +3 -5
  42. package/src/Shop.vue +212 -0
  43. package/src/ShopOrderStepper.vue +89 -0
  44. package/src/ShopSummary.vue +170 -0
  45. package/src/Steps/ShopCart.vue +60 -0
  46. package/src/Steps/ShopOrderComplete.vue +24 -0
  47. package/src/Steps/ShopOrderConfirm.vue +295 -0
  48. package/src/Steps/ShopPaymentProvider.vue +53 -0
  49. package/src/Steps/ShopShippingMethod.vue +53 -0
  50. package/src/Steps/ShopUserDataGuest.vue +78 -0
  51. package/src/Steps/index.js +15 -0
  52. package/src/components/AddressForm.vue +84 -0
  53. package/src/components/AddressFormLayout.vue +107 -0
  54. package/src/components/CardSelector.vue +68 -0
  55. package/src/components/CartItem.vue +325 -0
  56. package/src/components/CartItemSmall.vue +257 -0
  57. package/src/components/LoadingHandler.vue +76 -0
  58. package/src/components/PaymentOption.vue +78 -0
  59. package/src/components/PaymentProviderUnzer.vue +201 -0
  60. package/src/components/PaymentSelector.vue +55 -0
  61. package/src/components/ShopAlert.vue +30 -0
  62. package/src/components/StepperTab.vue +132 -0
  63. package/src/components/dialogButton.vue +49 -0
  64. package/src/composables/address.js +95 -0
  65. package/src/composables/cart.js +132 -0
  66. package/src/composables/order.js +80 -0
  67. package/src/composables/payment.js +75 -0
  68. package/src/composables/shipping.js +32 -0
  69. package/src/main.js +32 -38
  70. package/src/shop.js +251 -0
  71. package/src/translations/de.js +15 -0
  72. package/src/translations/en.js +5 -0
  73. package/src/utils.js +49 -0
  74. package/vite.config.js +0 -2
  75. package/src/components/ShopCart.vue +0 -512
  76. package/src/components/ShopOrderConfirm.vue +0 -291
  77. package/src/components/cart/CartView.vue +0 -723
  78. package/src/components/order/OrderSidebar.vue +0 -102
  79. package/src/components/order/category/CategoryList.vue +0 -83
  80. package/src/components/order/category/CategoryView.vue +0 -143
  81. package/src/components/order/information/adress/ShippingAdress.vue +0 -143
  82. package/src/components/order/item/ItemCard.vue +0 -168
  83. package/src/components/order/item/ItemView.vue +0 -232
  84. package/src/components/order/process/ConfirmView.vue +0 -312
  85. package/src/components/order/process/ExampleUsage.vue +0 -113
  86. package/src/components/order/process/OrderTabHeader.vue +0 -16
  87. package/src/components/order/process/SelectPaymentProvider.vue +0 -62
  88. package/src/components/order/process/Shipping.vue +0 -46
  89. package/src/components/ui/generic/ArticleList.vue +0 -222
  90. package/src/components/ui/generic/ExamplePagination.vue +0 -236
  91. package/src/components/ui/generic/alerts/ShopAlert.vue +0 -19
  92. package/src/components/ui/generic/makeData.js +0 -39
  93. package/src/components/ui/stepper/StepperItem.vue +0 -39
  94. package/src/components/ui/stepper/StepperTrigger.vue +0 -35
  95. package/src/components/ui/userdata/AddForm.vue +0 -125
  96. package/src/components/ui/userdata/AddressBox.vue +0 -117
  97. package/src/router/index.js +0 -103
  98. package/src/stores/cart.js +0 -336
  99. package/src/views/ViewMissing.vue +0 -20
  100. /package/{src → old}/components/ShopOrderComplete.vue +0 -0
  101. /package/{src → old}/components/cart/CartLeaf.vue +0 -0
  102. /package/{src → old}/components/cart/CartTreeWrapper.vue +0 -0
  103. /package/{src/components/lib/utils.js → old/components/paymentProvider/paypalplus.vue} +0 -0
  104. /package/{src → old}/components/ui/generic/ShopPriceFormatter.vue +0 -0
  105. /package/{src → old}/components/ui/userdata/CustomBooleanBone.vue +0 -0
  106. /package/{src → old}/components/ui/userdata/CustomSelectBone.vue +0 -0
  107. /package/{src → old}/components/ui/userdata/CustomStringBone.vue +0 -0
  108. /package/{src → old}/components/ui/userdata/DefaultLayout.vue +0 -0
  109. /package/{src → old}/components/ui/userdata/SelectAddress.vue +0 -0
  110. /package/{src → old}/components/ui/userdata/multi/ActionBar.vue +0 -0
  111. /package/{src → old}/components/ui/userdata/multi/CartSelection.vue +0 -0
  112. /package/{src/style → old}/ignite/.editorconfig +0 -0
  113. /package/{src/style → old}/ignite/.github/workflows/ignite.yml +0 -0
  114. /package/{src/style → old}/ignite/.github/workflows/node.yml +0 -0
  115. /package/{src/style → old}/ignite/.postcssrc.cjs +0 -0
  116. /package/{src/style → old}/ignite/CHANGELOG.md +0 -0
  117. /package/{src/style → old}/ignite/LICENSE +0 -0
  118. /package/{src/style → old}/ignite/README.md +0 -0
  119. /package/{src/style → old}/ignite/dist/ignite.css +0 -0
  120. /package/{src/style → old}/ignite/dist/ignite.min.css +0 -0
  121. /package/{src/style → old}/ignite/foundation/basic.css +0 -0
  122. /package/{src/style → old}/ignite/foundation/color.css +0 -0
  123. /package/{src/style → old}/ignite/foundation/config.css +0 -0
  124. /package/{src/style → old}/ignite/foundation/grid.css +0 -0
  125. /package/{src/style → old}/ignite/foundation/mediaqueries.css +0 -0
  126. /package/{src/style → old}/ignite/foundation/reset.css +0 -0
  127. /package/{src/style → old}/ignite/ignite.css +0 -0
  128. /package/{src/style → old}/ignite/ignite.css.map +0 -0
  129. /package/{src/style → old}/ignite/package-lock.json +0 -0
  130. /package/{src/style → old}/ignite/package.json +0 -0
  131. /package/{src/style → old}/ignite/shoelace.css +0 -0
  132. /package/{src/style → old}/ignite/themes/dark.css +0 -0
  133. /package/{src/style → old}/ignite/themes/light.css +0 -0
  134. /package/{src/style → old}/ignite/utilities/shoelace.css +0 -0
  135. /package/{src/style → old}/ignite/utilities/utilities.css +0 -0
@@ -1,62 +0,0 @@
1
- <template>
2
-
3
- <div v-for="(providerData,providerName,i) in cartStore.state.paymentProviders">
4
- <sl-card selectable :id="'povider__'+providerName" @sl-change="providerChanged" :selected="i===0">
5
- <img
6
- slot="image"
7
- src="https://images.unsplash.com/photo-1559209172-0ff8f6d49ff7?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=500&q=80"
8
- alt="A kitten sits patiently between a terracotta pot and decorative grasses."
9
- />
10
- <div slot="footer">
11
- {{ providerData?.title }}
12
- <br>
13
- {{ providerData?.descr }}
14
- </div>
15
- </sl-card>
16
- </div>
17
-
18
- </template>
19
-
20
- <script setup>
21
- //todo styling
22
- // set image
23
-
24
- import {onBeforeMount, reactive} from "vue";
25
- import {useCartStore} from "../../../stores/cart";
26
-
27
- const cartStore = useCartStore();
28
-
29
- function providerChanged(e) {
30
- if (e.target.selected) {
31
- console.log( "a",cartStore.state.selectedPaymentProvider)
32
- console.log( "b",cartStore.state.paymentProviders)
33
-
34
-
35
- cartStore.state.selectedPaymentProviderName = e.target.id.replace("povider__", "")
36
- cartStore.state.selectedPaymentProvider = cartStore.state.paymentProviders[e.target.id.replace("povider__", "")]
37
- console.log(cartStore.state.selectedPaymentProvider)
38
- document.querySelectorAll("sl-card").forEach((card) => {
39
-
40
- if (card !== e.target) {
41
- card.selected = false;
42
- }
43
- })
44
-
45
- } else {//can't deselect now
46
- e.target.selected = true;
47
-
48
- }
49
- console.log("provider changed", e)
50
- }
51
-
52
- onBeforeMount(async () => {
53
- await cartStore.getPaymentProviders();
54
- })
55
- </script>
56
-
57
- <style scoped>
58
- /*todo select styling for sl-card*/
59
- sl-card[selected]::part(base) {
60
- border: 5px solid #39b200;
61
- }
62
- </style>
@@ -1,46 +0,0 @@
1
- <template>
2
- <div class="viur-shop-cart-sidebar-info-line">
3
-
4
- <span>Versandkosten </span>
5
- <sl-format-number
6
- type="currency"
7
- currency="EUR"
8
- :value="shippingCost"
9
- lang="de">
10
- </sl-format-number>
11
-
12
- </div>
13
- <div class="viur-shop-cart-sidebar-info-line">
14
- <slot name="custom"></slot>
15
- </div>
16
-
17
- </template>
18
- <script setup>
19
- import {useCartStore} from "../../../stores/cart";
20
- import {onBeforeMount, reactive,computed} from "vue";
21
-
22
- const cartStore = useCartStore();
23
- const shippingCost = computed(() => {
24
- return cartStore.state.basketRootNode?.shipping?.dest.shipping_cost ? cartStore.state.basketRootNode?.shipping.dest.shipping_cost : 0
25
- })
26
- onBeforeMount(async () => {
27
- await cartStore.init();
28
- console.log("has shipping ? ",cartStore.state.basketRootNode.shipping);
29
- });
30
-
31
- </script>
32
-
33
- <style scoped>
34
- .viur-shop-cart-sidebar-info-line {
35
- display: flex;
36
- flex-direction: row;
37
- flex-wrap: nowrap;
38
- margin: var(--sl-spacing-2x-small) 0;
39
-
40
-
41
-
42
- span {
43
- margin-right: auto;
44
- }
45
- }
46
- </style>
@@ -1,222 +0,0 @@
1
- <script setup lang="ts">
2
- import {
3
- FlexRender,
4
- createColumnHelper,
5
- getCoreRowModel,
6
- getExpandedRowModel,
7
- useVueTable,
8
- type ExpandedState,
9
- type Row,
10
- } from '@tanstack/vue-table'
11
- import { Text, h, ref } from 'vue'
12
- type Person = {
13
- firstName: string
14
- lastName: string
15
- age: number
16
- visits: number
17
- status: string
18
- progress: number
19
- }
20
- const defaultData: Person[] = [
21
- {
22
- firstName: 'tanner',
23
- lastName: 'linsley',
24
- age: 24,
25
- visits: 100,
26
- status: 'In Relationship',
27
- progress: 50,
28
- },
29
- {
30
- firstName: 'tandy',
31
- lastName: 'miller',
32
- age: 40,
33
- visits: 40,
34
- status: 'Single',
35
- progress: 80,
36
- },
37
- {
38
- firstName: 'joe',
39
- lastName: 'dirte',
40
- age: 45,
41
- visits: 20,
42
- status: 'Complicated',
43
- progress: 10,
44
- },
45
- ]
46
- const columnHelper = createColumnHelper<Person>()
47
- function renderExpanded(row: Row<Person>) {
48
- if (!row.getCanExpand()) {
49
- return h(Text, '🔵')
50
- }
51
- return h(
52
- 'button',
53
- {
54
- onClick: row.getToggleExpandedHandler(),
55
- style: { cursor: 'pointer' },
56
- },
57
- row.getIsExpanded() ? '👇' : '👉'
58
- )
59
- }
60
- const columns = [
61
- columnHelper.group({
62
- header: 'Name',
63
- footer: props => props.column.id,
64
- columns: [
65
- columnHelper.display({
66
- id: 'expander',
67
- header: () => null,
68
- cell: ({ row }) => renderExpanded(row),
69
- }),
70
- columnHelper.accessor('firstName', {
71
- footer: props => props.column.id,
72
- }),
73
- columnHelper.accessor(row => row.lastName, {
74
- id: 'lastName',
75
- cell: info => info.getValue(),
76
- header: () => 'Last Name',
77
- footer: props => props.column.id,
78
- }),
79
- ],
80
- }),
81
- columnHelper.group({
82
- header: 'Info',
83
- footer: props => props.column.id,
84
- columns: [
85
- columnHelper.accessor('age', {
86
- header: () => 'Age',
87
- footer: props => props.column.id,
88
- }),
89
- columnHelper.group({
90
- header: 'More Info',
91
- columns: [
92
- columnHelper.accessor('visits', {
93
- header: () => 'Visits',
94
- footer: props => props.column.id,
95
- }),
96
- columnHelper.accessor('status', {
97
- header: 'Status',
98
- footer: props => props.column.id,
99
- }),
100
- columnHelper.accessor('progress', {
101
- header: 'Profile Progress',
102
- footer: props => props.column.id,
103
- }),
104
- ],
105
- }),
106
- ],
107
- }),
108
- ]
109
- const data = ref(defaultData)
110
- const expanded = ref<ExpandedState>({})
111
- const rerender = () => {
112
- data.value = defaultData
113
- }
114
- const table = useVueTable({
115
- get data() {
116
- return data.value
117
- },
118
- state: {
119
- get expanded() {
120
- return expanded.value
121
- },
122
- },
123
- columns,
124
- getRowCanExpand: () => true,
125
- getCoreRowModel: getCoreRowModel(),
126
- getExpandedRowModel: getExpandedRowModel(),
127
- onExpandedChange: updaterOrValue => {
128
- expanded.value =
129
- typeof updaterOrValue === 'function'
130
- ? updaterOrValue(expanded.value)
131
- : updaterOrValue
132
- },
133
- })
134
- </script>
135
-
136
- <template>
137
- <div class="p-2">
138
- <table>
139
- <thead>
140
- <tr
141
- v-for="headerGroup in table.getHeaderGroups()"
142
- :key="headerGroup.id"
143
- >
144
- <th
145
- v-for="header in headerGroup.headers"
146
- :key="header.id"
147
- :colSpan="header.colSpan"
148
- >
149
- <FlexRender
150
- v-if="!header.isPlaceholder"
151
- :render="header.column.columnDef.header"
152
- :props="header.getContext()"
153
- />
154
- </th>
155
- </tr>
156
- </thead>
157
- <tbody>
158
- <template v-for="row in table.getRowModel().rows" :key="row.id">
159
- <tr>
160
- <td v-for="cell in row.getVisibleCells()" :key="cell.id">
161
- <FlexRender
162
- :render="cell.column.columnDef.cell"
163
- :props="cell.getContext()"
164
- />
165
- </td>
166
- </tr>
167
- <tr v-if="row.getIsExpanded()">
168
- <td :colspan="row.getAllCells().length">
169
- <pre :style="{ fontSize: '10px' }">
170
- <code>{{ JSON.stringify(row.original, null, 2) }}</code>
171
- </pre>
172
- </td>
173
- </tr>
174
- </template>
175
- </tbody>
176
- <tfoot>
177
- <tr
178
- v-for="footerGroup in table.getFooterGroups()"
179
- :key="footerGroup.id"
180
- >
181
- <th
182
- v-for="header in footerGroup.headers"
183
- :key="header.id"
184
- :colSpan="header.colSpan"
185
- >
186
- <FlexRender
187
- v-if="!header.isPlaceholder"
188
- :render="header.column.columnDef.footer"
189
- :props="header.getContext()"
190
- />
191
- </th>
192
- </tr>
193
- </tfoot>
194
- </table>
195
- <div class="h-4" />
196
- <button @click="rerender" class="border p-2">Rerender</button>
197
- </div>
198
- </template>
199
-
200
- <style>
201
- html {
202
- font-family: sans-serif;
203
- font-size: 14px;
204
- }
205
- table {
206
- border: 1px solid lightgray;
207
- }
208
- tbody {
209
- border-bottom: 1px solid lightgray;
210
- }
211
- th {
212
- border-bottom: 1px solid lightgray;
213
- border-right: 1px solid lightgray;
214
- padding: 2px 4px;
215
- }
216
- tfoot {
217
- color: gray;
218
- }
219
- tfoot th {
220
- font-weight: normal;
221
- }
222
- </style>
@@ -1,236 +0,0 @@
1
- <script setup lang="ts">
2
- // ! JUST FOR DEVELOPMENT WILL BE DELETED AFTER FINISHED
3
-
4
- import {
5
- FlexRender,
6
- getCoreRowModel,
7
- getPaginationRowModel,
8
- useVueTable,
9
- createColumnHelper,
10
- } from "@tanstack/vue-table";
11
- import { ref } from "vue";
12
- import { makeData, Person } from "./makeData";
13
-
14
- const INITIAL_PAGE_INDEX = 0;
15
-
16
- const defaultData = makeData(100);
17
- const columnHelper = createColumnHelper<Person>();
18
- const goToPageNumber = ref(INITIAL_PAGE_INDEX + 1);
19
- const pageSizes = [10, 20, 30, 40, 50];
20
- const data = ref(defaultData);
21
-
22
- const columns = [
23
- columnHelper.group({
24
- header: "Name",
25
- footer: (props) => props.column.id,
26
- columns: [
27
- columnHelper.accessor("firstName", {
28
- cell: (info) => info.getValue(),
29
- footer: (props) => props.column.id,
30
- }),
31
- columnHelper.accessor((row) => row.lastName, {
32
- id: "lastName",
33
- cell: (info) => info.getValue(),
34
- header: () => "Last Name",
35
- footer: (props) => props.column.id,
36
- }),
37
- ],
38
- }),
39
- columnHelper.group({
40
- header: "Info",
41
- footer: (props) => props.column.id,
42
- columns: [
43
- columnHelper.accessor("age", {
44
- header: () => "Age",
45
- footer: (props) => props.column.id,
46
- }),
47
- columnHelper.group({
48
- header: "More Info",
49
- columns: [
50
- columnHelper.accessor("visits", {
51
- header: () => "Visits",
52
- footer: (props) => props.column.id,
53
- }),
54
- columnHelper.accessor("status", {
55
- header: "Status",
56
- footer: (props) => props.column.id,
57
- }),
58
- columnHelper.accessor("progress", {
59
- header: "Profile Progress",
60
- footer: (props) => props.column.id,
61
- }),
62
- ],
63
- }),
64
- ],
65
- }),
66
- ];
67
-
68
- const table = useVueTable({
69
- get data() {
70
- return data.value;
71
- },
72
- columns,
73
- getCoreRowModel: getCoreRowModel(),
74
- getPaginationRowModel: getPaginationRowModel(),
75
- });
76
-
77
- function rerender() {
78
- data.value = defaultData;
79
- }
80
-
81
- function handleGoToPage(e: any) {
82
- const page = e.target.value ? Number(e.target.value) - 1 : 0;
83
- goToPageNumber.value = page + 1;
84
- table.setPageIndex(page);
85
- }
86
-
87
- function handlePageSizeChange(e: any) {
88
- table.setPageSize(Number(e.target.value));
89
- }
90
- </script>
91
-
92
- <template>
93
- <div class="p-2">
94
- <table>
95
- <thead>
96
- <tr
97
- v-for="headerGroup in table.getHeaderGroups()"
98
- :key="headerGroup.id"
99
- >
100
- <th
101
- v-for="header in headerGroup.headers"
102
- :key="header.id"
103
- :colSpan="header.colSpan"
104
- >
105
- <FlexRender
106
- v-if="!header.isPlaceholder"
107
- :render="header.column.columnDef.header"
108
- :props="header.getContext()"
109
- />
110
- </th>
111
- </tr>
112
- </thead>
113
- <tbody>
114
- <tr v-for="row in table.getRowModel().rows" :key="row.id">
115
- <td v-for="cell in row.getVisibleCells()" :key="cell.id">
116
- <FlexRender
117
- :render="cell.column.columnDef.cell"
118
- :props="cell.getContext()"
119
- />
120
- </td>
121
- </tr>
122
- </tbody>
123
- <tfoot>
124
- <tr
125
- v-for="footerGroup in table.getFooterGroups()"
126
- :key="footerGroup.id"
127
- >
128
- <th
129
- v-for="header in footerGroup.headers"
130
- :key="header.id"
131
- :colSpan="header.colSpan"
132
- >
133
- <FlexRender
134
- v-if="!header.isPlaceholder"
135
- :render="header.column.columnDef.footer"
136
- :props="header.getContext()"
137
- />
138
- </th>
139
- </tr>
140
- </tfoot>
141
- </table>
142
- <div>
143
- <div class="flex items-center gap-2">
144
- <button
145
- class="border rounded p-1"
146
- @click="() => table.setPageIndex(0)"
147
- :disabled="!table.getCanPreviousPage()"
148
- >
149
- «
150
- </button>
151
- <button
152
- class="border rounded p-1"
153
- @click="() => table.previousPage()"
154
- :disabled="!table.getCanPreviousPage()"
155
- >
156
-
157
- </button>
158
- <button
159
- class="border rounded p-1"
160
- @click="() => table.nextPage()"
161
- :disabled="!table.getCanNextPage()"
162
- >
163
-
164
- </button>
165
- <button
166
- class="border rounded p-1"
167
- @click="() => table.setPageIndex(table.getPageCount() - 1)"
168
- :disabled="!table.getCanNextPage()"
169
- >
170
- »
171
- </button>
172
- <span class="flex items-center gap-1">
173
- <div>Page</div>
174
- <strong>
175
- {{ table.getState().pagination.pageIndex + 1 }} of
176
- {{ table.getPageCount() }}
177
- </strong>
178
- </span>
179
- <span class="flex items-center gap-1">
180
- | Go to page:
181
- <input
182
- type="number"
183
- :value="goToPageNumber"
184
- @change="handleGoToPage"
185
- class="border p-1 rounded w-16"
186
- />
187
- </span>
188
- <select
189
- :value="table.getState().pagination.pageSize"
190
- @change="handlePageSizeChange"
191
- >
192
- <option
193
- :key="pageSize"
194
- :value="pageSize"
195
- v-for="pageSize in pageSizes"
196
- >
197
- Show {{ pageSize }}
198
- </option>
199
- </select>
200
- </div>
201
- <div>{{ table.getRowModel().rows.length }} Rows</div>
202
- <pre>{{ JSON.stringify(table.getState().pagination, null, 2) }}</pre>
203
- </div>
204
- <div class="h-2" />
205
- <button @click="rerender" class="border p-2">Rerender</button>
206
- </div>
207
- </template>
208
-
209
- <style>
210
- html {
211
- font-family: sans-serif;
212
- font-size: 14px;
213
- }
214
-
215
- table {
216
- border: 1px solid lightgray;
217
- }
218
-
219
- tbody {
220
- border-bottom: 1px solid lightgray;
221
- }
222
-
223
- th {
224
- border-bottom: 1px solid lightgray;
225
- border-right: 1px solid lightgray;
226
- padding: 2px 4px;
227
- }
228
-
229
- tfoot {
230
- color: gray;
231
- }
232
-
233
- tfoot th {
234
- font-weight: normal;
235
- }
236
- </style>
@@ -1,19 +0,0 @@
1
- <template>
2
- <sl-alert :variant="variant" open closable duration="3000" @sl-hide="onHide">
3
- <sl-icon slot="icon" :name="iconName"></sl-icon>
4
- <slot name="alertMsg">ALERT!</slot>
5
- </sl-alert>
6
- </template>
7
-
8
- <script setup>
9
- const props = defineProps({
10
- variant: { type: String, default: "primary" },
11
- iconName: { type: String, default: "info-circle" },
12
- });
13
-
14
- const emit = defineEmits(["onHide"]);
15
-
16
- function onHide() {
17
- emit("onHide");
18
- }
19
- </script>
@@ -1,39 +0,0 @@
1
- // ! JUST FOR DEVELOPMENT WILL BE DELETED AFTER FINISHED
2
- import { faker } from '@faker-js/faker'
3
-
4
- const range = (len) => {
5
- const arr = []
6
- for (let i = 0; i < len; i++) {
7
- arr.push(i)
8
- }
9
- return arr
10
- }
11
-
12
- const newPerson = () => {
13
- return {
14
- firstName: faker.person.firstName(),
15
- lastName: faker.person.lastName(),
16
- age: faker.number.int(40),
17
- visits: faker.number.int(1000),
18
- progress: faker.number.int(100),
19
- status: faker.helpers.shuffle([
20
- 'relationship',
21
- 'complicated',
22
- 'single',
23
- ]),
24
- }
25
- }
26
-
27
- export function makeData(...lens) {
28
- const makeDataLevel = (depth = 0) => {
29
- const len = lens[depth]
30
- return range(len).map(() => {
31
- return {
32
- ...newPerson(),
33
- subRows: lens[depth + 1] ? makeDataLevel(depth + 1) : undefined,
34
- }
35
- })
36
- }
37
-
38
- return makeDataLevel()
39
- }
@@ -1,39 +0,0 @@
1
- <template>
2
- <sl-tab-panel class="viur-shop-order-tab-panel" :name="tab">
3
- <component
4
- :is="tabs[tab].component"
5
- v-bind="tabs[tab].props ? tabs[tab].props : ''"
6
- @goToStart="goToStart()"
7
- @editAddress="goToUserData"
8
- >
9
- </component>
10
- </sl-tab-panel>
11
- </template>
12
-
13
- <script setup>
14
- const props = defineProps({
15
- tab: {
16
- type: String,
17
- required: true,
18
- },
19
- tabs: {
20
- type: Object,
21
- required: true,
22
- },
23
- });
24
-
25
- const emit = defineEmits(["goToStart", "editAddress"]);
26
-
27
- function goToStart() {
28
- emit("goToStart");
29
- }
30
-
31
- function goToUserData(e) {
32
- emit("editAddress", e);
33
- }
34
- </script>
35
-
36
- <style scoped>
37
- .viur-shop-order-tab-panel {
38
- }
39
- </style>
@@ -1,35 +0,0 @@
1
- <template>
2
- <sl-button type="submit" v-show="index !== 0" @click="prevTab()">
3
- Zurück
4
- <!-- TODO: $t(i18n referenz) -->
5
- </sl-button>
6
-
7
- <sl-button type="submit" variant="primary" @click="nextTab()">
8
- Weiter
9
- <!-- TODO: $t(i18n referenz) -->
10
- </sl-button>
11
- </template>
12
-
13
- <script setup>
14
- const props = defineProps({
15
- index: {
16
- type: Number,
17
- required: true,
18
- },
19
- });
20
- const emit = defineEmits({prevTab: null, nextTab: null});
21
-
22
- function prevTab() {
23
- emit("prevTab");
24
- }
25
-
26
- function nextTab() {
27
- emit("nextTab");
28
- }
29
- </script>
30
-
31
- <style scoped>
32
- .sticky {
33
- position: sticky;
34
- }
35
- </style>