@instockng/storefront-ui 1.0.24 → 1.0.26

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 (152) hide show
  1. package/dist/contexts/CartContext.d.ts.map +1 -1
  2. package/dist/index10.mjs +8 -8
  3. package/dist/index132.mjs +1 -1
  4. package/dist/index134.mjs +21 -2
  5. package/dist/index135.mjs +54 -19
  6. package/dist/index136.mjs +28 -55
  7. package/dist/index137.mjs +6 -28
  8. package/dist/index138.mjs +51 -6
  9. package/dist/index139.mjs +5 -51
  10. package/dist/index140.mjs +12 -6
  11. package/dist/index141.mjs +7 -12
  12. package/dist/index142.mjs +27 -6
  13. package/dist/index143.mjs +2 -28
  14. package/dist/index144.mjs +70 -2
  15. package/dist/index145.mjs +164 -67
  16. package/dist/index146.mjs +2 -167
  17. package/dist/index150.mjs +1 -1
  18. package/dist/index151.mjs +1 -1
  19. package/dist/index152.mjs +1 -1
  20. package/dist/index153.mjs +1 -1
  21. package/dist/index154.mjs +1 -1
  22. package/dist/index156.mjs +1 -1
  23. package/dist/index157.mjs +1 -1
  24. package/dist/index159.mjs +2 -2
  25. package/dist/index160.mjs +1 -1
  26. package/dist/index165.mjs +2 -2
  27. package/dist/index167.mjs +1 -1
  28. package/dist/index169.mjs +2 -2
  29. package/dist/index170.mjs +5 -5
  30. package/dist/index173.mjs +1 -1
  31. package/dist/index176.mjs +1 -1
  32. package/dist/index179.mjs +1 -1
  33. package/dist/index180.mjs +1 -1
  34. package/dist/index184.mjs +1 -1
  35. package/dist/index186.mjs +1 -1
  36. package/dist/index190.mjs +1 -1
  37. package/dist/index192.mjs +1 -1
  38. package/dist/index201.mjs +2 -2
  39. package/dist/index203.mjs +1 -1
  40. package/dist/index204.mjs +1 -1
  41. package/dist/index205.mjs +31 -2
  42. package/dist/index206.mjs +11 -2
  43. package/dist/index207.mjs +4 -2
  44. package/dist/index208.mjs +4 -2
  45. package/dist/index209.mjs +13 -2
  46. package/dist/index210.mjs +7 -2
  47. package/dist/index211.mjs +2 -108
  48. package/dist/index212.mjs +2 -2
  49. package/dist/index213.mjs +2 -2
  50. package/dist/index214.mjs +2 -244
  51. package/dist/index215.mjs +2 -2
  52. package/dist/index216.mjs +2 -33
  53. package/dist/index217.mjs +2 -65
  54. package/dist/index218.mjs +2 -25
  55. package/dist/index219.mjs +108 -2
  56. package/dist/index220.mjs +2 -2
  57. package/dist/index221.mjs +12 -2
  58. package/dist/index222.mjs +5 -2
  59. package/dist/index223.mjs +33 -37
  60. package/dist/index224.mjs +31 -2
  61. package/dist/index225.mjs +28 -2
  62. package/dist/index226.mjs +61 -2
  63. package/dist/index227.mjs +2 -2
  64. package/dist/index228.mjs +2 -2
  65. package/dist/index229.mjs +37 -2
  66. package/dist/index230.mjs +2 -2
  67. package/dist/index231.mjs +2 -2
  68. package/dist/index232.mjs +244 -2
  69. package/dist/index233.mjs +2 -4
  70. package/dist/index234.mjs +33 -2
  71. package/dist/index235.mjs +65 -2
  72. package/dist/index236.mjs +24 -30
  73. package/dist/index237.mjs +2 -11
  74. package/dist/index238.mjs +2 -4
  75. package/dist/index239.mjs +2 -4
  76. package/dist/index240.mjs +2 -13
  77. package/dist/index241.mjs +2 -7
  78. package/dist/index242.mjs +2 -12
  79. package/dist/index243.mjs +2 -5
  80. package/dist/index244.mjs +2 -33
  81. package/dist/index245.mjs +4 -31
  82. package/dist/index246.mjs +2 -28
  83. package/dist/index247.mjs +2 -61
  84. package/dist/index248.mjs +2 -2
  85. package/dist/index249.mjs +2 -2
  86. package/dist/index250.mjs +18 -2
  87. package/dist/index251.mjs +47 -2
  88. package/dist/index252.mjs +2 -91
  89. package/dist/index253.mjs +2 -2
  90. package/dist/index254.mjs +2 -2
  91. package/dist/index255.mjs +2 -18
  92. package/dist/index256.mjs +87 -43
  93. package/dist/index257.mjs +2 -1
  94. package/dist/index258.mjs +2 -3
  95. package/dist/index259.mjs +2 -2
  96. package/dist/index260.mjs +2 -2
  97. package/dist/index263.mjs +1 -1
  98. package/dist/index264.mjs +2 -2
  99. package/dist/index265.mjs +2 -2
  100. package/dist/index267.mjs +2 -2
  101. package/dist/index3.mjs +87 -104
  102. package/dist/index32.mjs +1 -1
  103. package/dist/index33.mjs +1 -1
  104. package/dist/index34.mjs +1 -1
  105. package/dist/index35.mjs +1 -1
  106. package/dist/index36.mjs +1 -1
  107. package/dist/index37.mjs +1 -1
  108. package/dist/index38.mjs +1 -1
  109. package/dist/index39.mjs +3 -3
  110. package/dist/index47.mjs +17 -17
  111. package/dist/index48.mjs +2 -2
  112. package/dist/index49.mjs +1 -1
  113. package/dist/index50.mjs +1 -1
  114. package/dist/index51.mjs +1 -1
  115. package/dist/index52.mjs +1 -1
  116. package/dist/index53.mjs +1 -1
  117. package/dist/index54.mjs +1 -1
  118. package/dist/index55.mjs +1 -1
  119. package/dist/index56.mjs +1 -1
  120. package/dist/index57.mjs +1 -1
  121. package/dist/index58.mjs +1 -1
  122. package/dist/index59.mjs +1 -1
  123. package/dist/index61.mjs +153 -2
  124. package/dist/index62.mjs +4 -152
  125. package/dist/index64.mjs +2 -75
  126. package/dist/index65.mjs +74 -14
  127. package/dist/index66.mjs +14 -62
  128. package/dist/index67.mjs +62 -4
  129. package/dist/index73.mjs +1 -1
  130. package/dist/index75.mjs +34 -2
  131. package/dist/index76.mjs +38 -230
  132. package/dist/index77.mjs +233 -4
  133. package/dist/index78.mjs +5 -133
  134. package/dist/index79.mjs +129 -63
  135. package/dist/index80.mjs +67 -86
  136. package/dist/index81.mjs +85 -27
  137. package/dist/index82.mjs +28 -8
  138. package/dist/index83.mjs +8 -74
  139. package/dist/index84.mjs +74 -3
  140. package/dist/index85.mjs +4 -2
  141. package/dist/index86.mjs +2 -83
  142. package/dist/index87.mjs +81 -52
  143. package/dist/index88.mjs +53 -5
  144. package/dist/index89.mjs +5 -4
  145. package/dist/index90.mjs +4 -178
  146. package/dist/index91.mjs +174 -48
  147. package/dist/index92.mjs +51 -67
  148. package/dist/index93.mjs +69 -34
  149. package/dist/index94.mjs +2 -43
  150. package/package.json +2 -2
  151. package/src/components/ShoppingCart.tsx +1 -1
  152. package/src/contexts/CartContext.tsx +4 -21
package/dist/index219.mjs CHANGED
@@ -1,5 +1,111 @@
1
1
  'use client';
2
- var e = {};
2
+ import { __exports as m } from "./index248.mjs";
3
+ var p;
4
+ function S() {
5
+ return p ? m : (p = 1, function(d) {
6
+ Object.defineProperty(d, "__esModule", {
7
+ value: !0
8
+ });
9
+ function g(o, e) {
10
+ for (var r in e) Object.defineProperty(o, r, {
11
+ enumerable: !0,
12
+ get: e[r]
13
+ });
14
+ }
15
+ g(d, {
16
+ getSortedRouteObjects: function() {
17
+ return w;
18
+ },
19
+ getSortedRoutes: function() {
20
+ return f;
21
+ }
22
+ });
23
+ class h {
24
+ insert(e) {
25
+ this._insert(e.split("/").filter(Boolean), [], !1);
26
+ }
27
+ smoosh() {
28
+ return this._smoosh();
29
+ }
30
+ _smoosh(e) {
31
+ e === void 0 && (e = "/");
32
+ const r = [
33
+ ...this.children.keys()
34
+ ].sort();
35
+ this.slugName !== null && r.splice(r.indexOf("[]"), 1), this.restSlugName !== null && r.splice(r.indexOf("[...]"), 1), this.optionalRestSlugName !== null && r.splice(r.indexOf("[[...]]"), 1);
36
+ const n = r.map((s) => this.children.get(s)._smoosh("" + e + s + "/")).reduce((s, t) => [
37
+ ...s,
38
+ ...t
39
+ ], []);
40
+ if (this.slugName !== null && n.push(...this.children.get("[]")._smoosh(e + "[" + this.slugName + "]/")), !this.placeholder) {
41
+ const s = e === "/" ? "/" : e.slice(0, -1);
42
+ if (this.optionalRestSlugName != null)
43
+ throw new Error('You cannot define a route with the same specificity as a optional catch-all route ("' + s + '" and "' + s + "[[..." + this.optionalRestSlugName + ']]").');
44
+ n.unshift(s);
45
+ }
46
+ return this.restSlugName !== null && n.push(...this.children.get("[...]")._smoosh(e + "[..." + this.restSlugName + "]/")), this.optionalRestSlugName !== null && n.push(...this.children.get("[[...]]")._smoosh(e + "[[..." + this.optionalRestSlugName + "]]/")), n;
47
+ }
48
+ _insert(e, r, n) {
49
+ if (e.length === 0) {
50
+ this.placeholder = !1;
51
+ return;
52
+ }
53
+ if (n)
54
+ throw new Error("Catch-all must be the last part of the URL.");
55
+ let s = e[0];
56
+ if (s.startsWith("[") && s.endsWith("]")) {
57
+ let l = function(u, a) {
58
+ if (u !== null && u !== a)
59
+ throw new Error("You cannot use different slug names for the same dynamic path ('" + u + "' !== '" + a + "').");
60
+ r.forEach((c) => {
61
+ if (c === a)
62
+ throw new Error('You cannot have the same slug name "' + a + '" repeat within a single dynamic path');
63
+ if (c.replace(/\W/g, "") === s.replace(/\W/g, ""))
64
+ throw new Error('You cannot have the slug names "' + c + '" and "' + a + '" differ only by non-word symbols within a single dynamic path');
65
+ }), r.push(a);
66
+ }, t = s.slice(1, -1), i = !1;
67
+ if (t.startsWith("[") && t.endsWith("]") && (t = t.slice(1, -1), i = !0), t.startsWith("…"))
68
+ throw new Error("Detected a three-dot character ('…') at ('" + t + "'). Did you mean ('...')?");
69
+ if (t.startsWith("...") && (t = t.substring(3), n = !0), t.startsWith("[") || t.endsWith("]"))
70
+ throw new Error("Segment names may not start or end with extra brackets ('" + t + "').");
71
+ if (t.startsWith("."))
72
+ throw new Error("Segment names may not start with erroneous periods ('" + t + "').");
73
+ if (n)
74
+ if (i) {
75
+ if (this.restSlugName != null)
76
+ throw new Error('You cannot use both an required and optional catch-all route at the same level ("[...' + this.restSlugName + ']" and "' + e[0] + '" ).');
77
+ l(this.optionalRestSlugName, t), this.optionalRestSlugName = t, s = "[[...]]";
78
+ } else {
79
+ if (this.optionalRestSlugName != null)
80
+ throw new Error('You cannot use both an optional and required catch-all route at the same level ("[[...' + this.optionalRestSlugName + ']]" and "' + e[0] + '").');
81
+ l(this.restSlugName, t), this.restSlugName = t, s = "[...]";
82
+ }
83
+ else {
84
+ if (i)
85
+ throw new Error('Optional route parameters are not yet supported ("' + e[0] + '").');
86
+ l(this.slugName, t), this.slugName = t, s = "[]";
87
+ }
88
+ }
89
+ this.children.has(s) || this.children.set(s, new h()), this.children.get(s)._insert(e.slice(1), r, n);
90
+ }
91
+ constructor() {
92
+ this.placeholder = !0, this.children = /* @__PURE__ */ new Map(), this.slugName = null, this.restSlugName = null, this.optionalRestSlugName = null;
93
+ }
94
+ }
95
+ function f(o) {
96
+ const e = new h();
97
+ return o.forEach((r) => e.insert(r)), e.smoosh();
98
+ }
99
+ function w(o, e) {
100
+ const r = {}, n = [];
101
+ for (let t = 0; t < o.length; t++) {
102
+ const i = e(o[t]);
103
+ r[i] = t, n[t] = i;
104
+ }
105
+ return f(n).map((t) => o[r[t]]);
106
+ }
107
+ }(m), m);
108
+ }
3
109
  export {
4
- e as __exports
110
+ S as __require
5
111
  };
package/dist/index220.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- var r = { exports: {} };
2
+ var a = {};
3
3
  export {
4
- r as __module
4
+ a as __exports
5
5
  };
package/dist/index221.mjs CHANGED
@@ -1,5 +1,15 @@
1
1
  'use client';
2
- var r = {};
2
+ import a from "./index88.mjs";
3
+ function E(i, f, t) {
4
+ const u = t.config.validateStatus;
5
+ !t.status || !u || u(t.status) ? i(t) : f(new a(
6
+ "Request failed with status code " + t.status,
7
+ [a.ERR_BAD_REQUEST, a.ERR_BAD_RESPONSE][Math.floor(t.status / 100) - 4],
8
+ t.config,
9
+ t.request,
10
+ t
11
+ ));
12
+ }
3
13
  export {
4
- r as __exports
14
+ E as default
5
15
  };
package/dist/index222.mjs CHANGED
@@ -1,5 +1,8 @@
1
1
  'use client';
2
- var e = {};
2
+ function o(e) {
3
+ const t = /^([-+\w]{1,25})(:?\/\/|:)/.exec(e);
4
+ return t && t[1] || "";
5
+ }
3
6
  export {
4
- e as __exports
7
+ o as default
5
8
  };
package/dist/index223.mjs CHANGED
@@ -1,40 +1,36 @@
1
1
  'use client';
2
- import { __exports as n } from "./index254.mjs";
3
- import { __require as l } from "./index255.mjs";
4
- import { __require as d } from "./index256.mjs";
5
- var t;
6
- function R() {
7
- return t ? n : (t = 1, function(i) {
8
- Object.defineProperty(i, "__esModule", {
9
- value: !0
10
- });
11
- function o(u, e) {
12
- for (var r in e) Object.defineProperty(u, r, {
13
- enumerable: !0,
14
- get: e[r]
15
- });
16
- }
17
- o(i, {
18
- normalizeAppPath: function() {
19
- return a;
20
- },
21
- normalizeRscURL: function() {
22
- return p;
23
- }
24
- });
25
- const s = l(), f = d();
26
- function a(u) {
27
- return (0, s.ensureLeadingSlash)(u.split("/").reduce((e, r, c, _) => !r || (0, f.isGroupSegment)(r) || r[0] === "@" || (r === "page" || r === "route") && c === _.length - 1 ? e : e + "/" + r, ""));
28
- }
29
- function p(u) {
30
- return u.replace(
31
- /\.rsc($|\?)/,
32
- // $1 ensures `?` is preserved
33
- "$1"
34
- );
35
- }
36
- }(n), n);
37
- }
2
+ import i from "./index261.mjs";
3
+ import m from "./index262.mjs";
4
+ import f from "./index77.mjs";
5
+ const h = (t, o, a = 3) => {
6
+ let r = 0;
7
+ const c = i(50, 250);
8
+ return m((s) => {
9
+ const n = s.loaded, e = s.lengthComputable ? s.total : void 0, l = n - r, d = c(l), p = n <= e;
10
+ r = n;
11
+ const u = {
12
+ loaded: n,
13
+ total: e,
14
+ progress: e ? n / e : void 0,
15
+ bytes: l,
16
+ rate: d || void 0,
17
+ estimated: d && e && p ? (e - n) / d : void 0,
18
+ event: s,
19
+ lengthComputable: e != null,
20
+ [o ? "download" : "upload"]: !0
21
+ };
22
+ t(u);
23
+ }, a);
24
+ }, v = (t, o) => {
25
+ const a = t != null;
26
+ return [(r) => o[0]({
27
+ lengthComputable: a,
28
+ total: t,
29
+ loaded: r
30
+ }), o[1]];
31
+ }, C = (t) => (...o) => f.asap(() => t(...o));
38
32
  export {
39
- R as __require
33
+ C as asyncDecorator,
34
+ v as progressEventDecorator,
35
+ h as progressEventReducer
40
36
  };
package/dist/index224.mjs CHANGED
@@ -1,5 +1,34 @@
1
1
  'use client';
2
- var e = {};
2
+ import n from "./index141.mjs";
3
+ import m from "./index77.mjs";
4
+ import c from "./index263.mjs";
5
+ import h from "./index264.mjs";
6
+ import w from "./index137.mjs";
7
+ import b from "./index80.mjs";
8
+ import C from "./index91.mjs";
9
+ import g from "./index134.mjs";
10
+ const E = (a) => {
11
+ const e = b({}, a);
12
+ let { data: i, withXSRFToken: r, xsrfHeaderName: f, xsrfCookieName: d, headers: o, auth: s } = e;
13
+ if (e.headers = o = C.from(o), e.url = g(w(e.baseURL, e.url, e.allowAbsoluteUrls), a.params, a.paramsSerializer), s && o.set(
14
+ "Authorization",
15
+ "Basic " + btoa((s.username || "") + ":" + (s.password ? unescape(encodeURIComponent(s.password)) : ""))
16
+ ), m.isFormData(i)) {
17
+ if (n.hasStandardBrowserEnv || n.hasStandardBrowserWebWorkerEnv)
18
+ o.setContentType(void 0);
19
+ else if (m.isFunction(i.getHeaders)) {
20
+ const t = i.getHeaders(), u = ["content-type", "content-length"];
21
+ Object.entries(t).forEach(([l, p]) => {
22
+ u.includes(l.toLowerCase()) && o.set(l, p);
23
+ });
24
+ }
25
+ }
26
+ if (n.hasStandardBrowserEnv && (r && m.isFunction(r) && (r = r(e)), r || r !== !1 && c(e.url))) {
27
+ const t = f && d && h.read(d);
28
+ t && o.set(f, t);
29
+ }
30
+ return e;
31
+ };
3
32
  export {
4
- e as __exports
33
+ E as default
5
34
  };
package/dist/index225.mjs CHANGED
@@ -1,5 +1,31 @@
1
1
  'use client';
2
- var e = {};
2
+ import a from "./index83.mjs";
3
+ import s from "./index88.mjs";
4
+ import m from "./index77.mjs";
5
+ const h = (e, t) => {
6
+ const { length: l } = e = e ? e.filter(Boolean) : [];
7
+ if (t || l) {
8
+ let u = new AbortController(), f;
9
+ const n = function(r) {
10
+ if (!f) {
11
+ f = !0, i();
12
+ const o = r instanceof Error ? r : this.reason;
13
+ u.abort(o instanceof s ? o : new a(o instanceof Error ? o.message : o));
14
+ }
15
+ };
16
+ let c = t && setTimeout(() => {
17
+ c = null, n(new s(`timeout ${t} of ms exceeded`, s.ETIMEDOUT));
18
+ }, t);
19
+ const i = () => {
20
+ e && (c && clearTimeout(c), c = null, e.forEach((r) => {
21
+ r.unsubscribe ? r.unsubscribe(n) : r.removeEventListener("abort", n);
22
+ }), e = null);
23
+ };
24
+ e.forEach((r) => r.addEventListener("abort", n));
25
+ const { signal: b } = u;
26
+ return b.unsubscribe = () => m.asap(i), b;
27
+ }
28
+ };
3
29
  export {
4
- e as __exports
30
+ h as default
5
31
  };
package/dist/index226.mjs CHANGED
@@ -1,5 +1,64 @@
1
1
  'use client';
2
- var a = { exports: {} };
2
+ const f = function* (e, t) {
3
+ let n = e.byteLength;
4
+ if (n < t) {
5
+ yield e;
6
+ return;
7
+ }
8
+ let a = 0, r;
9
+ for (; a < n; )
10
+ r = a + t, yield e.slice(a, r), a = r;
11
+ }, w = async function* (e, t) {
12
+ for await (const n of b(e))
13
+ yield* f(n, t);
14
+ }, b = async function* (e) {
15
+ if (e[Symbol.asyncIterator]) {
16
+ yield* e;
17
+ return;
18
+ }
19
+ const t = e.getReader();
20
+ try {
21
+ for (; ; ) {
22
+ const { done: n, value: a } = await t.read();
23
+ if (n)
24
+ break;
25
+ yield a;
26
+ }
27
+ } finally {
28
+ await t.cancel();
29
+ }
30
+ }, h = (e, t, n, a) => {
31
+ const r = w(e, t);
32
+ let d = 0, o, c = (l) => {
33
+ o || (o = !0, a && a(l));
34
+ };
35
+ return new ReadableStream({
36
+ async pull(l) {
37
+ try {
38
+ const { done: i, value: y } = await r.next();
39
+ if (i) {
40
+ c(), l.close();
41
+ return;
42
+ }
43
+ let s = y.byteLength;
44
+ if (n) {
45
+ let u = d += s;
46
+ n(u);
47
+ }
48
+ l.enqueue(new Uint8Array(y));
49
+ } catch (i) {
50
+ throw c(i), i;
51
+ }
52
+ },
53
+ cancel(l) {
54
+ return c(l), r.return();
55
+ }
56
+ }, {
57
+ highWaterMark: 2
58
+ });
59
+ };
3
60
  export {
4
- a as __module
61
+ w as readBytes,
62
+ f as streamChunk,
63
+ h as trackStream
5
64
  };
package/dist/index227.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- var a = {};
2
+ var r = {};
3
3
  export {
4
- a as __exports
4
+ r as __exports
5
5
  };
package/dist/index228.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- var a = {};
2
+ var e = {};
3
3
  export {
4
- a as __exports
4
+ e as __exports
5
5
  };
package/dist/index229.mjs CHANGED
@@ -1,5 +1,40 @@
1
1
  'use client';
2
- var a = {};
2
+ import { __exports as n } from "./index249.mjs";
3
+ import { __require as l } from "./index250.mjs";
4
+ import { __require as d } from "./index251.mjs";
5
+ var t;
6
+ function R() {
7
+ return t ? n : (t = 1, function(i) {
8
+ Object.defineProperty(i, "__esModule", {
9
+ value: !0
10
+ });
11
+ function o(u, e) {
12
+ for (var r in e) Object.defineProperty(u, r, {
13
+ enumerable: !0,
14
+ get: e[r]
15
+ });
16
+ }
17
+ o(i, {
18
+ normalizeAppPath: function() {
19
+ return a;
20
+ },
21
+ normalizeRscURL: function() {
22
+ return p;
23
+ }
24
+ });
25
+ const s = l(), f = d();
26
+ function a(u) {
27
+ return (0, s.ensureLeadingSlash)(u.split("/").reduce((e, r, c, _) => !r || (0, f.isGroupSegment)(r) || r[0] === "@" || (r === "page" || r === "route") && c === _.length - 1 ? e : e + "/" + r, ""));
28
+ }
29
+ function p(u) {
30
+ return u.replace(
31
+ /\.rsc($|\?)/,
32
+ // $1 ensures `?` is preserved
33
+ "$1"
34
+ );
35
+ }
36
+ }(n), n);
37
+ }
3
38
  export {
4
- a as __exports
39
+ R as __require
5
40
  };
package/dist/index230.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- var a = {};
2
+ var e = {};
3
3
  export {
4
- a as __exports
4
+ e as __exports
5
5
  };
package/dist/index231.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- var e = {};
2
+ var a = {};
3
3
  export {
4
- e as __exports
4
+ a as __exports
5
5
  };