@loczer/storefront-sdk 0.161.0 → 0.163.0
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/chunks/booking-engine/dist/utils/{pricing-DcnUXaeI.js → pricing-CYLeWtmu.js} +6 -6
- package/dist/components/BikeProductCard/index.js +1 -1
- package/dist/components/ContactSection/index.js +2 -2
- package/dist/components/StorefrontCartPanel/index.d.ts +3 -1
- package/dist/components/StorefrontCartPanel/index.d.ts.map +1 -1
- package/dist/components/StorefrontCartPanel/index.js +25 -23
- package/dist/i18n/en.js +1 -1
- package/dist/i18n/fr.js +1 -1
- package/dist/index.d.ts +37 -5
- package/dist/index.js +308 -303
- package/dist/lib/checkoutSubmit.d.ts +2 -2
- package/dist/lib/checkoutSubmit.js +1 -1
- package/dist/lib/pricing.js +3 -3
- package/dist/lib/products.d.ts +23 -2
- package/dist/lib/products.d.ts.map +1 -1
- package/dist/lib/products.js +69 -36
- package/dist/pages/BookingPage.js +1 -1
- package/dist/pages/CheckoutPage.d.ts.map +1 -1
- package/dist/pages/CheckoutPage.js +71 -75
- package/dist/pages/CheckoutPaymentPage.js +5 -5
- package/dist/pages/CheckoutSuccessPage.js +6 -6
- package/dist/pages/ContractSaleDocumentPage.js +1 -1
- package/dist/pages/HomePage.js +7 -7
- package/dist/pages/PaymentLinkPage.js +3 -3
- package/dist/pages/PaymentLinkSuccessPage.js +1 -1
- package/dist/pages/ProductPage.js +3 -3
- package/dist/pages/checkout/components/CheckoutCouponCard.d.ts +2 -1
- package/dist/pages/checkout/components/CheckoutCouponCard.d.ts.map +1 -1
- package/dist/pages/checkout/components/CheckoutCouponCard.js +37 -36
- package/dist/pages/checkout/components/CheckoutDetailsCard.js +2 -2
- package/dist/pages/checkout/components/CheckoutPaymentSummaryCard.js +21 -21
- package/dist/pages/checkout/components/CheckoutSummaryColumn.d.ts +6 -2
- package/dist/pages/checkout/components/CheckoutSummaryColumn.d.ts.map +1 -1
- package/dist/pages/checkout/components/CheckoutSummaryColumn.js +26 -23
- package/dist/pages/checkout/types.d.ts +1 -1
- package/dist/pages/checkout/types.js +3 -3
- package/dist/storefront.css +1 -1
- package/dist/ui/card.js +26 -26
- package/package.json +1 -1
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
function d(n, r) {
|
|
2
2
|
return n.quantity - r.quantity;
|
|
3
3
|
}
|
|
4
|
-
function
|
|
5
|
-
return Number.
|
|
4
|
+
function q(n) {
|
|
5
|
+
return Number.isFinite(n) && n > 0;
|
|
6
6
|
}
|
|
7
|
-
function
|
|
8
|
-
if (!
|
|
9
|
-
throw new Error(`Requested quantity must be a positive
|
|
7
|
+
function v(n, r, a = "day") {
|
|
8
|
+
if (!q(r))
|
|
9
|
+
throw new Error(`Requested quantity must be a positive number (received ${r}).`);
|
|
10
10
|
if (!n || n.length === 0)
|
|
11
11
|
throw new Error("Cannot calculate price without pricing tiers.");
|
|
12
12
|
const c = n.filter((t) => t.unit === a).sort(d);
|
|
@@ -32,5 +32,5 @@ function q(n, r, a = "day") {
|
|
|
32
32
|
return Math.round(e);
|
|
33
33
|
}
|
|
34
34
|
export {
|
|
35
|
-
|
|
35
|
+
v as calculatePriceForQuantity
|
|
36
36
|
};
|
|
@@ -24,7 +24,7 @@ function F({
|
|
|
24
24
|
return /* @__PURE__ */ a(
|
|
25
25
|
"div",
|
|
26
26
|
{
|
|
27
|
-
className: "flex h-full flex-col gap-2 rounded-
|
|
27
|
+
className: "flex h-full flex-col gap-2 rounded-xl border border-slate-200 bg-white p-3 shadow-sm",
|
|
28
28
|
"data-testid": g,
|
|
29
29
|
children: [
|
|
30
30
|
/* @__PURE__ */ a("div", { className: "flex flex-1 items-stretch gap-4", children: [
|
|
@@ -62,8 +62,8 @@ function we({ preset: s, storeSlug: j }) {
|
|
|
62
62
|
/* @__PURE__ */ e("h2", { className: "text-3xl font-semibold tracking-tight text-slate-950", children: t("contact_section_title") }),
|
|
63
63
|
/* @__PURE__ */ e("p", { className: "mt-3 text-sm text-slate-600 sm:text-base", children: t("contact_section_subtitle") })
|
|
64
64
|
] }),
|
|
65
|
-
/* @__PURE__ */ r("div", { className: "mt-
|
|
66
|
-
/* @__PURE__ */ r("div", { className: "flex flex-col gap-
|
|
65
|
+
/* @__PURE__ */ r("div", { className: "mt-8 grid gap-6 rounded-xl border border-slate-200 bg-white p-4 shadow-sm lg:grid-cols-2 lg:p-6", children: [
|
|
66
|
+
/* @__PURE__ */ r("div", { className: "flex flex-col gap-6 lg:border-r lg:border-slate-200 lg:pr-6", children: [
|
|
67
67
|
/* @__PURE__ */ r("div", { children: [
|
|
68
68
|
/* @__PURE__ */ e("h3", { className: "text-lg font-semibold text-slate-950", children: t("contact_section_info_title") }),
|
|
69
69
|
/* @__PURE__ */ e("p", { className: "mt-2 text-sm text-slate-600", children: t(T ? "contact_section_info_description" : "contact_section_info_description_without_whatsapp") })
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
1
2
|
import { StorefrontCartSummaryLine } from '../../lib/cartSummary';
|
|
2
3
|
type StorefrontCartPanelProps = {
|
|
3
4
|
lines: StorefrontCartSummaryLine[];
|
|
@@ -16,11 +17,12 @@ type StorefrontCartPanelProps = {
|
|
|
16
17
|
showCheckoutAction?: boolean;
|
|
17
18
|
showClearAction?: boolean;
|
|
18
19
|
editable?: boolean;
|
|
20
|
+
summaryAddon?: ReactNode;
|
|
19
21
|
stickyTopClassName?: string;
|
|
20
22
|
onQuantityChange?: (key: string, quantity: number) => void;
|
|
21
23
|
onRemove?: (key: string) => void;
|
|
22
24
|
onClear?: () => void;
|
|
23
25
|
};
|
|
24
|
-
export declare function StorefrontCartPanel({ lines, itemCount, totalPerDayMinor, estimatedDays, estimatedTotalMinor, discountedEstimatedTotalMinor, discountAmountMinor, lateReturnSurchargeMinor, couponCode, durationLabel, title, description, checkoutPath, showCheckoutAction, showClearAction, editable, stickyTopClassName, onQuantityChange, onRemove, onClear, }: StorefrontCartPanelProps): import("react/jsx-runtime").JSX.Element;
|
|
26
|
+
export declare function StorefrontCartPanel({ lines, itemCount, totalPerDayMinor, estimatedDays, estimatedTotalMinor, discountedEstimatedTotalMinor, discountAmountMinor, lateReturnSurchargeMinor, couponCode, durationLabel, title, description, checkoutPath, showCheckoutAction, showClearAction, editable, summaryAddon, stickyTopClassName, onQuantityChange, onRemove, onClear, }: StorefrontCartPanelProps): import("react/jsx-runtime").JSX.Element;
|
|
25
27
|
export {};
|
|
26
28
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/StorefrontCartPanel/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/StorefrontCartPanel/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAOtC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAA;AAQtE,KAAK,wBAAwB,GAAG;IAC9B,KAAK,EAAE,yBAAyB,EAAE,CAAA;IAClC,SAAS,EAAE,MAAM,CAAA;IACjB,gBAAgB,EAAE,MAAM,CAAA;IACxB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,6BAA6B,CAAC,EAAE,MAAM,CAAA;IACtC,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,wBAAwB,CAAC,EAAE,MAAM,CAAA;IACjC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,YAAY,CAAC,EAAE,SAAS,CAAA;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1D,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAChC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CACrB,CAAA;AAED,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,SAAS,EACT,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,6BAA6B,EAC7B,mBAAmB,EACnB,wBAAwB,EACxB,UAAU,EACV,aAAa,EACb,KAAK,EACL,WAAW,EACX,YAAY,EACZ,kBAA0B,EAC1B,eAAuB,EACvB,QAAe,EACf,YAAY,EACZ,kBAA6B,EAC7B,gBAAgB,EAChB,QAAQ,EACR,OAAO,GACR,EAAE,wBAAwB,2CA0L1B"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { jsxs as l, jsx as e, Fragment as
|
|
2
|
-
import { Link as
|
|
1
|
+
import { jsxs as l, jsx as e, Fragment as F } from "react/jsx-runtime";
|
|
2
|
+
import { Link as W } from "@rpcbase/router";
|
|
3
3
|
import { cn as d } from "@rpcbase/ui";
|
|
4
|
-
import { Trash2 as
|
|
5
|
-
import { useTranslation as
|
|
4
|
+
import { Trash2 as D, ArrowRight as T } from "lucide-react";
|
|
5
|
+
import { useTranslation as E } from "react-i18next";
|
|
6
6
|
import { formatPriceMinor as r } from "../../lib/utils.js";
|
|
7
7
|
import { Badge as m } from "../../ui/badge.js";
|
|
8
8
|
import { Button as o } from "../../ui/button.js";
|
|
9
|
-
import { Card as
|
|
10
|
-
import { Input as
|
|
11
|
-
import { ProductWarningNotice as
|
|
12
|
-
function
|
|
9
|
+
import { Card as G } from "../../ui/card.js";
|
|
10
|
+
import { Input as H } from "../../ui/input.js";
|
|
11
|
+
import { ProductWarningNotice as J } from "../ProductWarningNotice/index.js";
|
|
12
|
+
function ee({
|
|
13
13
|
lines: n,
|
|
14
14
|
itemCount: _,
|
|
15
15
|
totalPerDayMinor: v,
|
|
@@ -26,13 +26,14 @@ function M({
|
|
|
26
26
|
showCheckoutAction: q = !1,
|
|
27
27
|
showClearAction: C = !1,
|
|
28
28
|
editable: V = !0,
|
|
29
|
-
|
|
29
|
+
summaryAddon: L,
|
|
30
|
+
stickyTopClassName: P = "top-24",
|
|
30
31
|
onQuantityChange: b,
|
|
31
32
|
onRemove: N,
|
|
32
33
|
onClear: g
|
|
33
34
|
}) {
|
|
34
|
-
const { t, i18n: s } =
|
|
35
|
-
return /* @__PURE__ */ l(
|
|
35
|
+
const { t, i18n: s } = E();
|
|
36
|
+
return /* @__PURE__ */ l(G, { className: d("sticky border-slate-200 bg-white shadow-sm", P), children: [
|
|
36
37
|
/* @__PURE__ */ l("div", { className: "border-b border-slate-200 px-4 py-4", children: [
|
|
37
38
|
/* @__PURE__ */ l("div", { className: "flex items-center justify-between gap-3", children: [
|
|
38
39
|
/* @__PURE__ */ e("p", { className: "text-sm font-semibold text-slate-950", children: /* @__PURE__ */ e("span", { children: j ?? t("cart_title") }) }),
|
|
@@ -42,7 +43,7 @@ function M({
|
|
|
42
43
|
] }),
|
|
43
44
|
/* @__PURE__ */ l("div", { className: "grid gap-3 p-4", children: [
|
|
44
45
|
n.length === 0 ? /* @__PURE__ */ e("p", { className: "text-sm text-slate-600", children: /* @__PURE__ */ e("span", { children: t("cart_empty") }) }) : /* @__PURE__ */ e("div", { className: "grid gap-3", children: n.map((a) => {
|
|
45
|
-
const
|
|
46
|
+
const $ = r(a.unitPriceMinor, s.language), z = a.insufficientCapacity === !0, I = a.availabilityIssue === "quantity_unavailable" ? t("availability_quantity_unavailable") : t("availability_out_of_stock");
|
|
46
47
|
return /* @__PURE__ */ l(
|
|
47
48
|
"div",
|
|
48
49
|
{
|
|
@@ -52,20 +53,20 @@ function M({
|
|
|
52
53
|
/* @__PURE__ */ e("p", { className: "truncate text-sm font-medium text-slate-950", children: /* @__PURE__ */ e("span", { children: a.productName }) }),
|
|
53
54
|
a.productVariantLabel ? /* @__PURE__ */ e("p", { className: "text-xs text-slate-600", children: /* @__PURE__ */ e("span", { children: `${t(a.productVariantIsSize ? "product_size_label" : "product_variant_label")}: ${a.productVariantLabel}` }) }) : null,
|
|
54
55
|
a.productVariantDescription ? /* @__PURE__ */ e("p", { className: "text-xs text-slate-500", children: /* @__PURE__ */ e("span", { children: a.productVariantDescription }) }) : null,
|
|
55
|
-
/* @__PURE__ */ e(
|
|
56
|
-
/* @__PURE__ */ e("p", { className: "text-xs text-slate-600", children: /* @__PURE__ */ e("span", { children: t("cart_line_meta", { quantity: a.quantity, price:
|
|
57
|
-
|
|
56
|
+
/* @__PURE__ */ e(J, { warning: a.productWarning }),
|
|
57
|
+
/* @__PURE__ */ e("p", { className: "text-xs text-slate-600", children: /* @__PURE__ */ e("span", { children: t("cart_line_meta", { quantity: a.quantity, price: $ }) }) }),
|
|
58
|
+
z ? /* @__PURE__ */ e("div", { className: "flex flex-col items-start gap-1 pt-1", children: /* @__PURE__ */ e(m, { variant: "destructive", children: /* @__PURE__ */ e("span", { children: I }) }) }) : null
|
|
58
59
|
] }),
|
|
59
60
|
V ? /* @__PURE__ */ l("div", { className: "flex items-center gap-2", children: [
|
|
60
61
|
b ? /* @__PURE__ */ e(
|
|
61
|
-
|
|
62
|
+
H,
|
|
62
63
|
{
|
|
63
64
|
type: "number",
|
|
64
65
|
min: 1,
|
|
65
66
|
max: 99,
|
|
66
67
|
value: a.quantity,
|
|
67
|
-
onChange: (
|
|
68
|
-
const y = Number(
|
|
68
|
+
onChange: (B) => {
|
|
69
|
+
const y = Number(B.target.value);
|
|
69
70
|
b(a.key, Number.isFinite(y) ? y : 0);
|
|
70
71
|
},
|
|
71
72
|
className: "h-9 w-16",
|
|
@@ -81,7 +82,7 @@ function M({
|
|
|
81
82
|
className: "h-8 w-8 text-slate-500 hover:bg-slate-50 hover:text-slate-700",
|
|
82
83
|
onClick: () => N(a.key),
|
|
83
84
|
"aria-label": t("remove_from_cart"),
|
|
84
|
-
children: /* @__PURE__ */ e(
|
|
85
|
+
children: /* @__PURE__ */ e(D, { className: "h-4 w-4", "aria-hidden": "true" })
|
|
85
86
|
}
|
|
86
87
|
) : null
|
|
87
88
|
] }) : null
|
|
@@ -90,11 +91,12 @@ function M({
|
|
|
90
91
|
a.key
|
|
91
92
|
);
|
|
92
93
|
}) }),
|
|
94
|
+
L,
|
|
93
95
|
/* @__PURE__ */ l("div", { className: "flex items-center justify-between gap-3 border-t border-slate-200 pt-3 text-sm", children: [
|
|
94
96
|
/* @__PURE__ */ e("p", { className: "text-slate-700", children: /* @__PURE__ */ e("span", { children: t("cart_total_per_day") }) }),
|
|
95
97
|
/* @__PURE__ */ e("p", { className: "font-semibold text-slate-950", children: /* @__PURE__ */ e("span", { children: r(v, s.language) }) })
|
|
96
98
|
] }),
|
|
97
|
-
typeof p == "number" && typeof h == "number" ? /* @__PURE__ */ l(
|
|
99
|
+
typeof p == "number" && typeof h == "number" ? /* @__PURE__ */ l(F, { children: [
|
|
98
100
|
/* @__PURE__ */ l("div", { className: "flex items-center justify-between gap-3 text-sm", children: [
|
|
99
101
|
/* @__PURE__ */ e("p", { className: "text-slate-700", children: /* @__PURE__ */ e("span", { children: t("checkout_estimated_days", { count: p }) }) }),
|
|
100
102
|
u ? /* @__PURE__ */ e(m, { variant: "outline", className: "border-slate-200 bg-white text-slate-700", children: /* @__PURE__ */ e("span", { children: u }) }) : null
|
|
@@ -113,9 +115,9 @@ function M({
|
|
|
113
115
|
] })
|
|
114
116
|
] }) : null,
|
|
115
117
|
/* @__PURE__ */ l("div", { className: "grid gap-2", children: [
|
|
116
|
-
q && f ? /* @__PURE__ */ e(
|
|
118
|
+
q && f ? /* @__PURE__ */ e(W, { to: f, className: d(n.length > 0 ? "block" : "hidden"), children: /* @__PURE__ */ l(o, { className: "w-full gap-2", children: [
|
|
117
119
|
/* @__PURE__ */ e("span", { children: t("checkout_button") }),
|
|
118
|
-
/* @__PURE__ */ e(
|
|
120
|
+
/* @__PURE__ */ e(T, { className: "h-4 w-4", "aria-hidden": "true" })
|
|
119
121
|
] }) }) : null,
|
|
120
122
|
C && g ? /* @__PURE__ */ e(
|
|
121
123
|
o,
|
|
@@ -132,5 +134,5 @@ function M({
|
|
|
132
134
|
] });
|
|
133
135
|
}
|
|
134
136
|
export {
|
|
135
|
-
|
|
137
|
+
ee as StorefrontCartPanel
|
|
136
138
|
};
|
package/dist/i18n/en.js
CHANGED
|
@@ -127,7 +127,7 @@ const e = {
|
|
|
127
127
|
checkout_full_name_placeholder: "Jane Doe",
|
|
128
128
|
checkout_email_label: "Email",
|
|
129
129
|
checkout_email_placeholder: "jane@example.com",
|
|
130
|
-
checkout_phone_label: "Phone
|
|
130
|
+
checkout_phone_label: "Phone",
|
|
131
131
|
checkout_phone_placeholder: "+1 555 555 5555",
|
|
132
132
|
checkout_notes_label: "Notes or message (optional)",
|
|
133
133
|
checkout_notes_placeholder: "Any details about your booking…",
|
package/dist/i18n/fr.js
CHANGED
|
@@ -127,7 +127,7 @@ const e = {
|
|
|
127
127
|
checkout_full_name_placeholder: "Jean Dupont",
|
|
128
128
|
checkout_email_label: "Email",
|
|
129
129
|
checkout_email_placeholder: "jean@example.com",
|
|
130
|
-
checkout_phone_label: "Téléphone
|
|
130
|
+
checkout_phone_label: "Téléphone",
|
|
131
131
|
checkout_phone_placeholder: "+33 6 00 00 00 00",
|
|
132
132
|
checkout_notes_label: "Notes ou message (optionnel)",
|
|
133
133
|
checkout_notes_placeholder: "Précisions pour votre réservation…",
|
package/dist/index.d.ts
CHANGED
|
@@ -823,11 +823,28 @@ export declare const cartItemInputSchema: z.ZodObject<{
|
|
|
823
823
|
qty: z.ZodNumber;
|
|
824
824
|
}, z.core.$strip>;
|
|
825
825
|
|
|
826
|
+
export declare const CATALOG_PRODUCT_BASE_RATE_UNSET = -1;
|
|
827
|
+
|
|
828
|
+
export declare type CatalogProductPaginationSort = Array<{
|
|
829
|
+
field: CatalogProductSortField;
|
|
830
|
+
order: "asc" | "desc";
|
|
831
|
+
}>;
|
|
832
|
+
|
|
833
|
+
export declare type CatalogProductSortField = "kind" | "assetRelScore" | "baseHourlyRateMinor" | "baseHalfDayRateMinor" | "baseDailyRateMinor" | "baseWeeklyRateMinor" | "baseMonthlyRateMinor" | "externalId";
|
|
834
|
+
|
|
835
|
+
export declare type CatalogProductSortOptions = {
|
|
836
|
+
priceUnit?: CatalogProductSortPriceUnit;
|
|
837
|
+
};
|
|
838
|
+
|
|
839
|
+
export declare type CatalogProductSortPriceUnit = StorefrontPublicProductPrice["unit"];
|
|
840
|
+
|
|
826
841
|
export { cn }
|
|
827
842
|
|
|
828
|
-
export declare function
|
|
843
|
+
export declare function compareCatalogProducts<T extends SortableCatalogProduct>(left: T, right: T, options?: CatalogProductSortOptions): number;
|
|
829
844
|
|
|
830
|
-
export declare function
|
|
845
|
+
export declare function compareStorefrontAccessoryProducts<T extends SortableStorefrontProduct>(left: T, right: T, options?: CatalogProductSortOptions): number;
|
|
846
|
+
|
|
847
|
+
export declare function compareStorefrontBikeProducts<T extends SortableStorefrontBikeProduct>(left: T, right: T, options?: CatalogProductSortOptions): number;
|
|
831
848
|
|
|
832
849
|
export declare function ContactSection({ preset, storeSlug }: {
|
|
833
850
|
preset: StorefrontPreset;
|
|
@@ -1535,6 +1552,12 @@ export declare const getBookingParamsFromSearch: (searchParams: URLSearchParams,
|
|
|
1535
1552
|
|
|
1536
1553
|
export declare const getBookingSessionStorageKey: (storeSlug?: string) => string;
|
|
1537
1554
|
|
|
1555
|
+
export declare function getCatalogProductBaseRateMinor(prices: StorefrontPublicProductPrice[] | undefined, priceUnit?: CatalogProductSortPriceUnit): number;
|
|
1556
|
+
|
|
1557
|
+
export declare function getCatalogProductPaginationSort(priceUnit: CatalogProductSortPriceUnit): CatalogProductPaginationSort;
|
|
1558
|
+
|
|
1559
|
+
export declare function getCatalogProductSortFieldForPriceUnit(unit: CatalogProductSortPriceUnit): CatalogProductSortField;
|
|
1560
|
+
|
|
1538
1561
|
export declare type GetContractSaleDocumentRequest = z.infer<typeof getContractSaleDocumentRequestSchema>;
|
|
1539
1562
|
|
|
1540
1563
|
export declare const getContractSaleDocumentRequestSchema: z.ZodObject<{
|
|
@@ -2684,6 +2707,14 @@ declare const Slot: React_2.ForwardRefExoticComponent<React_2.HTMLAttributes<HTM
|
|
|
2684
2707
|
children?: React_2.ReactNode;
|
|
2685
2708
|
} & React_2.RefAttributes<HTMLElement>>;
|
|
2686
2709
|
|
|
2710
|
+
declare type SortableCatalogProduct = {
|
|
2711
|
+
id?: string;
|
|
2712
|
+
externalId?: string;
|
|
2713
|
+
kind?: string;
|
|
2714
|
+
prices?: StorefrontPublicProductPrice[];
|
|
2715
|
+
assetRelScore?: number;
|
|
2716
|
+
};
|
|
2717
|
+
|
|
2687
2718
|
declare type SortableStorefrontBikeProduct = SortableStorefrontProduct & {
|
|
2688
2719
|
kind?: StorefrontPublicBikeProduct["kind"];
|
|
2689
2720
|
};
|
|
@@ -2801,7 +2832,7 @@ export declare type StorefrontCartItem = {
|
|
|
2801
2832
|
quantity: number;
|
|
2802
2833
|
};
|
|
2803
2834
|
|
|
2804
|
-
export declare function StorefrontCartPanel({ lines, itemCount, totalPerDayMinor, estimatedDays, estimatedTotalMinor, discountedEstimatedTotalMinor, discountAmountMinor, lateReturnSurchargeMinor, couponCode, durationLabel, title, description, checkoutPath, showCheckoutAction, showClearAction, editable, stickyTopClassName, onQuantityChange, onRemove, onClear, }: StorefrontCartPanelProps): JSX.Element;
|
|
2835
|
+
export declare function StorefrontCartPanel({ lines, itemCount, totalPerDayMinor, estimatedDays, estimatedTotalMinor, discountedEstimatedTotalMinor, discountAmountMinor, lateReturnSurchargeMinor, couponCode, durationLabel, title, description, checkoutPath, showCheckoutAction, showClearAction, editable, summaryAddon, stickyTopClassName, onQuantityChange, onRemove, onClear, }: StorefrontCartPanelProps): JSX.Element;
|
|
2805
2836
|
|
|
2806
2837
|
declare type StorefrontCartPanelProps = {
|
|
2807
2838
|
lines: StorefrontCartSummaryLine[];
|
|
@@ -2820,6 +2851,7 @@ declare type StorefrontCartPanelProps = {
|
|
|
2820
2851
|
showCheckoutAction?: boolean;
|
|
2821
2852
|
showClearAction?: boolean;
|
|
2822
2853
|
editable?: boolean;
|
|
2854
|
+
summaryAddon?: ReactNode;
|
|
2823
2855
|
stickyTopClassName?: string;
|
|
2824
2856
|
onQuantityChange?: (key: string, quantity: number) => void;
|
|
2825
2857
|
onRemove?: (key: string) => void;
|
|
@@ -2893,7 +2925,7 @@ export declare const storefrontCheckoutSubmitRequestBaseSchema: z.ZodObject<{
|
|
|
2893
2925
|
customer: z.ZodObject<{
|
|
2894
2926
|
fullName: z.ZodString;
|
|
2895
2927
|
email: z.ZodString;
|
|
2896
|
-
phone: z.
|
|
2928
|
+
phone: z.ZodString;
|
|
2897
2929
|
notes: z.ZodUnion<[z.ZodOptional<z.ZodString>, z.ZodLiteral<"">]>;
|
|
2898
2930
|
}, z.core.$strip>;
|
|
2899
2931
|
items: z.ZodArray<z.ZodObject<{
|
|
@@ -2926,7 +2958,7 @@ export declare const storefrontCheckoutSubmitRequestSchema: z.ZodObject<{
|
|
|
2926
2958
|
customer: z.ZodObject<{
|
|
2927
2959
|
fullName: z.ZodString;
|
|
2928
2960
|
email: z.ZodString;
|
|
2929
|
-
phone: z.
|
|
2961
|
+
phone: z.ZodString;
|
|
2930
2962
|
notes: z.ZodUnion<[z.ZodOptional<z.ZodString>, z.ZodLiteral<"">]>;
|
|
2931
2963
|
}, z.core.$strip>;
|
|
2932
2964
|
items: z.ZodArray<z.ZodObject<{
|