@instockng/storefront-ui 1.0.18 → 1.0.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/components/OrderConfirmation.d.ts +1 -1
- package/dist/components/OrderConfirmation.d.ts.map +1 -1
- package/dist/components/ShoppingCart.d.ts.map +1 -1
- package/dist/contexts/CartContext.d.ts +2 -2
- package/dist/contexts/CartContext.d.ts.map +1 -1
- package/dist/fetchers.d.ts +19 -0
- package/dist/fetchers.d.ts.map +1 -0
- package/dist/hooks/usePageTracking.d.ts +40 -0
- package/dist/hooks/usePageTracking.d.ts.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +101 -92
- package/dist/index10.mjs +149 -624
- package/dist/index100.mjs +22 -33
- package/dist/index101.mjs +22 -30
- package/dist/index102.mjs +32 -27
- package/dist/index103.mjs +152 -57
- package/dist/index104.mjs +20 -3
- package/dist/index105.mjs +31 -2
- package/dist/index106.mjs +84 -2
- package/dist/index107.mjs +37 -16
- package/dist/index108.mjs +144 -12
- package/dist/index109.mjs +55 -6
- package/dist/index11.mjs +94 -56
- package/dist/index110.mjs +23 -30
- package/dist/index111.mjs +30 -0
- package/dist/index112.mjs +26 -0
- package/dist/index113.mjs +28 -0
- package/dist/index114.mjs +24 -0
- package/dist/index115.mjs +25 -0
- package/dist/index116.mjs +24 -0
- package/dist/index117.mjs +68 -0
- package/dist/index118.mjs +21 -0
- package/dist/index119.mjs +42 -0
- package/dist/index12.mjs +645 -62
- package/dist/index120.mjs +27 -0
- package/dist/index121.mjs +37 -0
- package/dist/index122.mjs +30 -0
- package/dist/index123.mjs +22 -0
- package/dist/index124.mjs +24 -0
- package/dist/index125.mjs +50 -0
- package/dist/index126.mjs +26 -0
- package/dist/index127.mjs +271 -0
- package/dist/index128.mjs +73 -0
- package/dist/index129.mjs +11 -0
- package/dist/index13.mjs +50 -14
- package/dist/index130.mjs +5 -0
- package/dist/index131.mjs +5 -0
- package/dist/index132.mjs +36 -0
- package/dist/index133.mjs +5 -0
- package/dist/index134.mjs +24 -0
- package/dist/index135.mjs +59 -0
- package/dist/index136.mjs +32 -0
- package/dist/index137.mjs +10 -0
- package/dist/index138.mjs +55 -0
- package/dist/index139.mjs +9 -0
- package/dist/index14.mjs +62 -115
- package/dist/index140.mjs +15 -0
- package/dist/index141.mjs +10 -0
- package/dist/index142.mjs +31 -0
- package/dist/index143.mjs +5 -0
- package/dist/index144.mjs +73 -0
- package/dist/index145.mjs +170 -0
- package/dist/index146.mjs +5 -0
- package/dist/index147.mjs +5 -0
- package/dist/index148.mjs +5 -0
- package/dist/index149.mjs +21 -0
- package/dist/index15.mjs +23 -41
- package/dist/index150.mjs +35 -0
- package/dist/index151.mjs +41 -0
- package/dist/index152.mjs +21 -0
- package/dist/index153.mjs +21 -0
- package/dist/index154.mjs +5 -0
- package/dist/index155.mjs +23 -0
- package/dist/index156.mjs +49 -0
- package/dist/index157.mjs +5 -0
- package/dist/index158.mjs +33 -0
- package/dist/index159.mjs +21 -0
- package/dist/index16.mjs +115 -42
- package/dist/index160.mjs +5 -0
- package/dist/index161.mjs +5 -0
- package/dist/index162.mjs +5 -0
- package/dist/index163.mjs +5 -0
- package/dist/index164.mjs +75 -0
- package/dist/index165.mjs +5 -0
- package/dist/index166.mjs +56 -0
- package/dist/index167.mjs +5 -0
- package/dist/index168.mjs +39 -0
- package/dist/index169.mjs +155 -0
- package/dist/index17.mjs +42 -42
- package/dist/index170.mjs +5 -0
- package/dist/index171.mjs +5 -0
- package/dist/index172.mjs +22 -0
- package/dist/index173.mjs +5 -0
- package/dist/index174.mjs +5 -0
- package/dist/index175.mjs +29 -0
- package/dist/index176.mjs +5 -0
- package/dist/index177.mjs +5 -0
- package/dist/index178.mjs +27 -0
- package/dist/index179.mjs +26 -0
- package/dist/index18.mjs +41 -31
- package/dist/index180.mjs +5 -0
- package/dist/index181.mjs +5 -0
- package/dist/index182.mjs +5 -0
- package/dist/index183.mjs +26 -0
- package/dist/index184.mjs +5 -0
- package/dist/index185.mjs +26 -0
- package/dist/index186.mjs +5 -0
- package/dist/index187.mjs +5 -0
- package/dist/index188.mjs +5 -0
- package/dist/index189.mjs +26 -0
- package/dist/index19.mjs +40 -7
- package/dist/index190.mjs +5 -0
- package/dist/index191.mjs +26 -0
- package/dist/index192.mjs +5 -0
- package/dist/index193.mjs +5 -0
- package/dist/index194.mjs +5 -0
- package/dist/index195.mjs +5 -0
- package/dist/index196.mjs +5 -0
- package/dist/index197.mjs +5 -0
- package/dist/index198.mjs +5 -0
- package/dist/index199.mjs +5 -0
- package/dist/index2.mjs +31 -12
- package/dist/index20.mjs +27 -17
- package/dist/index200.mjs +130 -0
- package/dist/index201.mjs +5 -0
- package/dist/index202.mjs +77 -0
- package/dist/index203.mjs +77 -0
- package/dist/index204.mjs +5 -0
- package/dist/index205.mjs +5 -0
- package/dist/index206.mjs +111 -0
- package/dist/index207.mjs +5 -0
- package/dist/index208.mjs +5 -0
- package/dist/index209.mjs +5 -0
- package/dist/index21.mjs +6 -29
- package/dist/index210.mjs +5 -0
- package/dist/index211.mjs +5 -0
- package/dist/index212.mjs +5 -0
- package/dist/index213.mjs +5 -0
- package/dist/index214.mjs +5 -0
- package/dist/index215.mjs +5 -0
- package/dist/index216.mjs +40 -0
- package/dist/index217.mjs +5 -0
- package/dist/index218.mjs +5 -0
- package/dist/index219.mjs +5 -0
- package/dist/index22.mjs +20 -18
- package/dist/index220.mjs +247 -0
- package/dist/index221.mjs +5 -0
- package/dist/index222.mjs +36 -0
- package/dist/index223.mjs +68 -0
- package/dist/index224.mjs +28 -0
- package/dist/index225.mjs +5 -0
- package/dist/index226.mjs +5 -0
- package/dist/index227.mjs +5 -0
- package/dist/index228.mjs +5 -0
- package/dist/index229.mjs +5 -0
- package/dist/index23.mjs +32 -87
- package/dist/index230.mjs +5 -0
- package/dist/index231.mjs +5 -0
- package/dist/index232.mjs +5 -0
- package/dist/index233.mjs +7 -0
- package/dist/index234.mjs +5 -0
- package/dist/index235.mjs +5 -0
- package/dist/index236.mjs +34 -0
- package/dist/index237.mjs +14 -0
- package/dist/index238.mjs +7 -0
- package/dist/index239.mjs +7 -0
- package/dist/index24.mjs +12 -12
- package/dist/index240.mjs +16 -0
- package/dist/index241.mjs +10 -0
- package/dist/index242.mjs +15 -0
- package/dist/index243.mjs +8 -0
- package/dist/index244.mjs +36 -0
- package/dist/index245.mjs +34 -0
- package/dist/index246.mjs +31 -0
- package/dist/index247.mjs +64 -0
- package/dist/index248.mjs +5 -0
- package/dist/index249.mjs +5 -0
- package/dist/index25.mjs +85 -8
- package/dist/index250.mjs +21 -0
- package/dist/index251.mjs +50 -0
- package/dist/index252.mjs +5 -0
- package/dist/index253.mjs +5 -0
- package/dist/index254.mjs +5 -0
- package/dist/index255.mjs +5 -0
- package/dist/index256.mjs +94 -0
- package/dist/index257.mjs +5 -0
- package/dist/index258.mjs +6 -0
- package/dist/index259.mjs +5 -0
- package/dist/index26.mjs +20 -97
- package/dist/index260.mjs +5 -0
- package/dist/index261.mjs +20 -0
- package/dist/index262.mjs +16 -0
- package/dist/index263.mjs +9 -0
- package/dist/index264.mjs +33 -0
- package/dist/index265.mjs +5 -0
- package/dist/index266.mjs +5 -0
- package/dist/index267.mjs +5 -0
- package/dist/index27.mjs +11 -18
- package/dist/index28.mjs +11 -65
- package/dist/index29.mjs +94 -89
- package/dist/index3.mjs +117 -97
- package/dist/index30.mjs +20 -19
- package/dist/index31.mjs +65 -19
- package/dist/index32.mjs +93 -8
- package/dist/index33.mjs +18 -1432
- package/dist/index34.mjs +19 -2
- package/dist/index35.mjs +10 -56
- package/dist/index36.mjs +9 -49
- package/dist/index37.mjs +103 -33
- package/dist/index38.mjs +24 -14
- package/dist/index39.mjs +1411 -2241
- package/dist/index4.mjs +82 -197
- package/dist/index40.mjs +2 -36
- package/dist/index41.mjs +56 -43
- package/dist/index42.mjs +50 -98
- package/dist/index43.mjs +33 -97
- package/dist/index44.mjs +13 -79
- package/dist/index45.mjs +2255 -69
- package/dist/index46.mjs +36 -95
- package/dist/index47.mjs +43 -80
- package/dist/index48.mjs +99 -79
- package/dist/index49.mjs +93 -15
- package/dist/index5.mjs +15 -108
- package/dist/index50.mjs +77 -14
- package/dist/index51.mjs +58 -44
- package/dist/index52.mjs +63 -93
- package/dist/index53.mjs +51 -99
- package/dist/index54.mjs +78 -4
- package/dist/index55.mjs +18 -22
- package/dist/index56.mjs +17 -74
- package/dist/index57.mjs +63 -15
- package/dist/index58.mjs +121 -59
- package/dist/index59.mjs +129 -34
- package/dist/index6.mjs +190 -73
- package/dist/index60.mjs +22 -41
- package/dist/index61.mjs +148 -230
- package/dist/index62.mjs +2 -6
- package/dist/index63.mjs +21 -132
- package/dist/index64.mjs +73 -66
- package/dist/index65.mjs +14 -86
- package/dist/index66.mjs +59 -25
- package/dist/index67.mjs +4 -8
- package/dist/index68.mjs +2 -75
- package/dist/index69.mjs +5 -3
- package/dist/index7.mjs +97 -85
- package/dist/index70.mjs +1134 -2
- package/dist/index71.mjs +19 -82
- package/dist/index72.mjs +54 -53
- package/dist/index73.mjs +32 -5
- package/dist/index74.mjs +2 -5
- package/dist/index75.mjs +2 -179
- package/dist/index76.mjs +230 -48
- package/dist/index77.mjs +6 -69
- package/dist/index78.mjs +133 -3
- package/dist/index79.mjs +68 -2
- package/dist/index8.mjs +78 -162
- package/dist/index80.mjs +85 -19
- package/dist/index81.mjs +26 -53
- package/dist/index82.mjs +8 -28
- package/dist/index83.mjs +74 -6
- package/dist/index84.mjs +3 -51
- package/dist/index85.mjs +2 -6
- package/dist/index86.mjs +81 -10
- package/dist/index87.mjs +53 -6
- package/dist/index88.mjs +5 -27
- package/dist/index89.mjs +5 -2
- package/dist/index9.mjs +90 -90
- package/dist/index90.mjs +175 -66
- package/dist/index91.mjs +49 -163
- package/dist/index92.mjs +68 -30
- package/dist/index93.mjs +34 -11
- package/dist/index94.mjs +42 -3
- package/dist/index95.mjs +2 -4
- package/dist/index96.mjs +28 -13
- package/dist/index97.mjs +18 -7
- package/dist/index98.mjs +214 -11
- package/dist/index99.mjs +179 -4
- package/dist/providers/MetaPixelProvider.d.ts +98 -0
- package/dist/providers/MetaPixelProvider.d.ts.map +1 -0
- package/dist/providers/StorefrontProvider.d.ts +1 -0
- package/dist/providers/StorefrontProvider.d.ts.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +5 -4
- package/src/components/OrderConfirmation.tsx +0 -2
- package/src/components/ShoppingCart.tsx +12 -1
- package/src/contexts/CartContext.tsx +30 -5
- package/src/fetchers.ts +33 -0
- package/src/hooks/usePageTracking.ts +72 -0
- package/src/index.ts +5 -0
- package/src/providers/MetaPixelProvider.tsx +236 -0
- package/src/providers/StorefrontProvider.tsx +29 -3
package/dist/index43.mjs
CHANGED
|
@@ -1,100 +1,36 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}
|
|
33
|
-
function $(e) {
|
|
34
|
-
const { baseURL: r, authToken: n } = l(), s = y();
|
|
35
|
-
return m({
|
|
36
|
-
mutationFn: async (t) => {
|
|
37
|
-
const a = await d(r).orders.index.$post({ json: t }, c(n));
|
|
38
|
-
if (!a.ok)
|
|
39
|
-
throw new Error(`Failed to create order: ${a.statusText}`);
|
|
40
|
-
return a.json();
|
|
41
|
-
},
|
|
42
|
-
onSuccess: () => {
|
|
43
|
-
s.invalidateQueries({ queryKey: i.admin.orders.all });
|
|
44
|
-
},
|
|
45
|
-
...e
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
function j(e, r) {
|
|
49
|
-
const { baseURL: n, authToken: s } = l(), t = y();
|
|
50
|
-
return m({
|
|
51
|
-
mutationFn: async (o) => {
|
|
52
|
-
const u = await d(n).orders[":id"].$patch({ param: { id: e }, json: o }, c(s));
|
|
53
|
-
if (!u.ok)
|
|
54
|
-
throw new Error(`Failed to update order: ${u.statusText}`);
|
|
55
|
-
return u.json();
|
|
56
|
-
},
|
|
57
|
-
onSuccess: () => {
|
|
58
|
-
t.invalidateQueries({ queryKey: i.admin.orders.detail(e) }), t.invalidateQueries({ queryKey: i.admin.orders.all });
|
|
59
|
-
},
|
|
60
|
-
...r
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
function x(e, r) {
|
|
64
|
-
const { baseURL: n, authToken: s } = l(), t = y();
|
|
65
|
-
return m({
|
|
66
|
-
mutationFn: async (o) => {
|
|
67
|
-
const u = await d(n).orders[":id"].status.$patch({ param: { id: e }, json: o }, c(s));
|
|
68
|
-
if (!u.ok)
|
|
69
|
-
throw new Error(`Failed to update order status: ${u.statusText}`);
|
|
70
|
-
return u.json();
|
|
71
|
-
},
|
|
72
|
-
onSuccess: () => {
|
|
73
|
-
t.invalidateQueries({ queryKey: i.admin.orders.detail(e) }), t.invalidateQueries({ queryKey: i.admin.orders.all });
|
|
74
|
-
},
|
|
75
|
-
...r
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
function K(e, r) {
|
|
79
|
-
const { baseURL: n, authToken: s } = l(), t = y();
|
|
80
|
-
return m({
|
|
81
|
-
mutationFn: async () => {
|
|
82
|
-
const a = await d(n).orders[":id"].$delete({ param: { id: e } }, c(s));
|
|
83
|
-
if (!a.ok)
|
|
84
|
-
throw new Error(`Failed to delete order: ${a.statusText}`);
|
|
85
|
-
return a.json();
|
|
86
|
-
},
|
|
87
|
-
onSuccess: () => {
|
|
88
|
-
t.invalidateQueries({ queryKey: i.admin.orders.all });
|
|
89
|
-
},
|
|
90
|
-
...r
|
|
91
|
-
});
|
|
92
|
-
}
|
|
2
|
+
import { clsx as O } from "./index44.mjs";
|
|
3
|
+
const m = (e) => typeof e == "boolean" ? `${e}` : e === 0 ? "0" : e, y = O, j = (e, l) => (n) => {
|
|
4
|
+
var s;
|
|
5
|
+
if ((l == null ? void 0 : l.variants) == null) return y(e, n == null ? void 0 : n.class, n == null ? void 0 : n.className);
|
|
6
|
+
const { variants: r, defaultVariants: d } = l, V = Object.keys(r).map((t) => {
|
|
7
|
+
const a = n == null ? void 0 : n[t], u = d == null ? void 0 : d[t];
|
|
8
|
+
if (a === null) return null;
|
|
9
|
+
const i = m(a) || m(u);
|
|
10
|
+
return r[t][i];
|
|
11
|
+
}), v = n && Object.entries(n).reduce((t, a) => {
|
|
12
|
+
let [u, i] = a;
|
|
13
|
+
return i === void 0 || (t[u] = i), t;
|
|
14
|
+
}, {}), N = l == null || (s = l.compoundVariants) === null || s === void 0 ? void 0 : s.reduce((t, a) => {
|
|
15
|
+
let { class: u, className: i, ...f } = a;
|
|
16
|
+
return Object.entries(f).every((C) => {
|
|
17
|
+
let [c, o] = C;
|
|
18
|
+
return Array.isArray(o) ? o.includes({
|
|
19
|
+
...d,
|
|
20
|
+
...v
|
|
21
|
+
}[c]) : {
|
|
22
|
+
...d,
|
|
23
|
+
...v
|
|
24
|
+
}[c] === o;
|
|
25
|
+
}) ? [
|
|
26
|
+
...t,
|
|
27
|
+
u,
|
|
28
|
+
i
|
|
29
|
+
] : t;
|
|
30
|
+
}, []);
|
|
31
|
+
return y(e, V, N, n == null ? void 0 : n.class, n == null ? void 0 : n.className);
|
|
32
|
+
};
|
|
93
33
|
export {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
T as useGetOrder,
|
|
97
|
-
F as useListOrders,
|
|
98
|
-
j as useUpdateOrder,
|
|
99
|
-
x as useUpdateOrderStatus
|
|
34
|
+
j as cva,
|
|
35
|
+
y as cx
|
|
100
36
|
};
|
package/dist/index44.mjs
CHANGED
|
@@ -1,84 +1,18 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
return
|
|
10
|
-
queryKey: o.admin.brands.list(),
|
|
11
|
-
queryFn: async () => {
|
|
12
|
-
const n = await u(t).brands.index.$get({}, c(r));
|
|
13
|
-
if (!n.ok)
|
|
14
|
-
throw new Error(`Failed to fetch brands: ${n.statusText}`);
|
|
15
|
-
return n.json();
|
|
16
|
-
},
|
|
17
|
-
...e
|
|
18
|
-
});
|
|
2
|
+
function a(r) {
|
|
3
|
+
var n, f, t = "";
|
|
4
|
+
if (typeof r == "string" || typeof r == "number") t += r;
|
|
5
|
+
else if (typeof r == "object") if (Array.isArray(r)) {
|
|
6
|
+
var o = r.length;
|
|
7
|
+
for (n = 0; n < o; n++) r[n] && (f = a(r[n])) && (t && (t += " "), t += f);
|
|
8
|
+
} else for (f in r) r[f] && (t && (t += " "), t += f);
|
|
9
|
+
return t;
|
|
19
10
|
}
|
|
20
|
-
function
|
|
21
|
-
|
|
22
|
-
return
|
|
23
|
-
queryKey: o.admin.brands.detail(e),
|
|
24
|
-
queryFn: async () => {
|
|
25
|
-
const i = await u(r).brands[":id"].$get({ param: { id: e } }, c(s));
|
|
26
|
-
if (!i.ok)
|
|
27
|
-
throw new Error(`Failed to fetch brand: ${i.statusText}`);
|
|
28
|
-
return i.json();
|
|
29
|
-
},
|
|
30
|
-
...t
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
function T(e) {
|
|
34
|
-
const { baseURL: t, authToken: r } = d(), s = y();
|
|
35
|
-
return m({
|
|
36
|
-
mutationFn: async (n) => {
|
|
37
|
-
const a = await u(t).brands.index.$post({ json: n }, c(r));
|
|
38
|
-
if (!a.ok)
|
|
39
|
-
throw new Error(`Failed to create brand: ${a.statusText}`);
|
|
40
|
-
return a.json();
|
|
41
|
-
},
|
|
42
|
-
onSuccess: () => {
|
|
43
|
-
s.invalidateQueries({ queryKey: o.admin.brands.all });
|
|
44
|
-
},
|
|
45
|
-
...e
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
function $(e, t) {
|
|
49
|
-
const { baseURL: r, authToken: s } = d(), n = y();
|
|
50
|
-
return m({
|
|
51
|
-
mutationFn: async (i) => {
|
|
52
|
-
const l = await u(r).brands[":id"].$patch({ json: i, param: { id: e } }, c(s));
|
|
53
|
-
if (!l.ok)
|
|
54
|
-
throw new Error(`Failed to update brand: ${l.statusText}`);
|
|
55
|
-
return l.json();
|
|
56
|
-
},
|
|
57
|
-
onSuccess: () => {
|
|
58
|
-
n.invalidateQueries({ queryKey: o.admin.brands.detail(e) }), n.invalidateQueries({ queryKey: o.admin.brands.all });
|
|
59
|
-
},
|
|
60
|
-
...t
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
function x(e, t) {
|
|
64
|
-
const { baseURL: r, authToken: s } = d(), n = y();
|
|
65
|
-
return m({
|
|
66
|
-
mutationFn: async () => {
|
|
67
|
-
const a = await u(r).brands[":id"].$delete({ param: { id: e } }, c(s));
|
|
68
|
-
if (!a.ok)
|
|
69
|
-
throw new Error(`Failed to delete brand: ${a.statusText}`);
|
|
70
|
-
return a.json();
|
|
71
|
-
},
|
|
72
|
-
onSuccess: () => {
|
|
73
|
-
n.invalidateQueries({ queryKey: o.admin.brands.all });
|
|
74
|
-
},
|
|
75
|
-
...t
|
|
76
|
-
});
|
|
11
|
+
function i() {
|
|
12
|
+
for (var r, n, f = 0, t = "", o = arguments.length; f < o; f++) (r = arguments[f]) && (n = a(r)) && (t && (t += " "), t += n);
|
|
13
|
+
return t;
|
|
77
14
|
}
|
|
78
15
|
export {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
F as useGetBrand,
|
|
82
|
-
k as useListBrands,
|
|
83
|
-
$ as useUpdateBrand
|
|
16
|
+
i as clsx,
|
|
17
|
+
i as default
|
|
84
18
|
};
|