@nextblock-cms/ecom 0.13.3 → 0.13.5
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/lib/CurrencyProvider.cjs.js +1 -1
- package/lib/CurrencyProvider.es.js +31 -27
- package/lib/components/AccountNavigationMenu.cjs.js +1 -1
- package/lib/components/AccountNavigationMenu.es.js +53 -26
- package/lib/components/AddToCartButton.cjs.js +1 -1
- package/lib/components/AddToCartButton.es.js +49 -25
- package/lib/components/Cart.cjs.js +1 -1
- package/lib/components/Cart.es.js +367 -115
- package/lib/components/CartDrawer.cjs.js +1 -1
- package/lib/components/CartDrawer.es.js +272 -88
- package/lib/components/CartIcon.cjs.js +1 -1
- package/lib/components/CartIcon.es.js +44 -16
- package/lib/components/Checkout.cjs.js +1 -1
- package/lib/components/Checkout.es.js +1601 -694
- package/lib/components/CouponForm.cjs.js +1 -1
- package/lib/components/CouponForm.es.js +160 -96
- package/lib/components/CurrencySwitcher.cjs.js +1 -1
- package/lib/components/CurrencySwitcher.es.js +32 -12
- package/lib/components/CustomerProfileForm.cjs.js +1 -1
- package/lib/components/CustomerProfileForm.es.js +666 -250
- package/lib/components/FeaturedProduct.cjs.js +1 -1
- package/lib/components/FeaturedProduct.es.js +126 -42
- package/lib/components/FreemiusLicensePanel.cjs.js +1 -1
- package/lib/components/FreemiusLicensePanel.es.js +125 -45
- package/lib/components/InvoiceDocument.cjs.js +1 -1
- package/lib/components/InvoiceDocument.es.js +485 -146
- package/lib/components/InvoiceViewerShell.cjs.js +2 -2
- package/lib/components/InvoiceViewerShell.es.js +142 -54
- package/lib/components/ProductCard.cjs.js +1 -1
- package/lib/components/ProductCard.es.js +224 -81
- package/lib/components/ProductDetailsLayout.cjs.js +1 -1
- package/lib/components/ProductDetailsLayout.es.js +629 -275
- package/lib/components/ProductGallery.cjs.js +1 -1
- package/lib/components/ProductGallery.es.js +64 -21
- package/lib/components/ProductGrid.cjs.js +1 -1
- package/lib/components/ProductGrid.es.js +28 -12
- package/lib/components/ShippingEstimator.cjs.js +1 -1
- package/lib/components/ShippingEstimator.es.js +226 -90
- package/lib/components/SimpleTiptapRenderer.cjs.js +1 -1
- package/lib/components/SimpleTiptapRenderer.es.js +286 -93
- package/lib/components/SubscriptionSelector.cjs.js +1 -1
- package/lib/components/SubscriptionSelector.es.js +168 -92
- package/lib/pages/cms/coupons/CouponEditorForm.cjs.js +1 -1
- package/lib/pages/cms/coupons/CouponEditorForm.es.js +370 -110
- package/lib/pages/cms/coupons/CouponsPage.cjs.js +2 -2
- package/lib/pages/cms/coupons/CouponsPage.es.js +368 -116
- package/lib/pages/cms/coupons/CreateCouponDialog.cjs.js +1 -1
- package/lib/pages/cms/coupons/CreateCouponDialog.es.js +61 -25
- package/lib/pages/cms/coupons/EditCouponPage.cjs.js +1 -1
- package/lib/pages/cms/coupons/EditCouponPage.es.js +71 -35
- package/lib/pages/cms/coupons/ProductScopePicker.cjs.js +1 -1
- package/lib/pages/cms/coupons/ProductScopePicker.es.js +167 -72
- package/lib/pages/cms/orders/ExportReportsDialog.cjs.js +1 -1
- package/lib/pages/cms/orders/ExportReportsDialog.es.js +247 -87
- package/lib/pages/cms/orders/OrderDetailPage.cjs.js +1 -1
- package/lib/pages/cms/orders/OrderDetailPage.es.js +283 -95
- package/lib/pages/cms/orders/OrderPrintButton.cjs.js +1 -1
- package/lib/pages/cms/orders/OrderPrintButton.es.js +21 -9
- package/lib/pages/cms/orders/OrderStatusForm.cjs.js +1 -1
- package/lib/pages/cms/orders/OrderStatusForm.es.js +106 -46
- package/lib/pages/cms/orders/OrdersPage.cjs.js +1 -1
- package/lib/pages/cms/orders/OrdersPage.es.js +257 -78
- package/lib/pages/cms/payments/PaymentsClient.cjs.js +1 -1
- package/lib/pages/cms/payments/PaymentsClient.es.js +551 -155
- package/lib/pages/cms/payments/PaymentsPage.cjs.js +1 -1
- package/lib/pages/cms/payments/PaymentsPage.es.js +24 -16
- package/lib/pages/cms/products/ProductsPage.cjs.js +1 -1
- package/lib/pages/cms/products/ProductsPage.es.js +77 -37
- package/lib/pages/cms/products/_id_/edit/EditProductPage.cjs.js +1 -1
- package/lib/pages/cms/products/_id_/edit/EditProductPage.es.js +176 -96
- package/lib/pages/cms/products/attributes/AttributeManagementPage.cjs.js +1 -1
- package/lib/pages/cms/products/attributes/AttributeManagementPage.es.js +85 -41
- package/lib/pages/cms/products/attributes/components/AttributeManager.cjs.js +1 -1
- package/lib/pages/cms/products/attributes/components/AttributeManager.es.js +455 -192
- package/lib/pages/cms/products/categories/CategoryManagementPage.cjs.js +1 -1
- package/lib/pages/cms/products/categories/CategoryManagementPage.es.js +72 -28
- package/lib/pages/cms/products/categories/components/CategoryManager.cjs.js +1 -1
- package/lib/pages/cms/products/categories/components/CategoryManager.es.js +490 -183
- package/lib/pages/cms/products/components/CopyProductFromLanguage.cjs.js +1 -1
- package/lib/pages/cms/products/components/CopyProductFromLanguage.es.js +175 -67
- package/lib/pages/cms/products/components/CurrencyPriceFields.cjs.js +1 -1
- package/lib/pages/cms/products/components/CurrencyPriceFields.es.js +211 -100
- package/lib/pages/cms/products/components/DeleteProductButton.cjs.js +1 -1
- package/lib/pages/cms/products/components/DeleteProductButton.es.js +45 -25
- package/lib/pages/cms/products/components/FreemiusPricingDashboard.cjs.js +1 -1
- package/lib/pages/cms/products/components/FreemiusPricingDashboard.es.js +202 -58
- package/lib/pages/cms/products/components/ProductCategorySelector.cjs.js +1 -1
- package/lib/pages/cms/products/components/ProductCategorySelector.es.js +234 -88
- package/lib/pages/cms/products/components/ProductForm.cjs.js +1 -1
- package/lib/pages/cms/products/components/ProductForm.es.js +1199 -551
- package/lib/pages/cms/products/components/ProductMediaManager.cjs.js +1 -1
- package/lib/pages/cms/products/components/ProductMediaManager.es.js +154 -63
- package/lib/pages/cms/products/components/ProductsBulkTable.cjs.js +1 -1
- package/lib/pages/cms/products/components/ProductsBulkTable.es.js +391 -144
- package/lib/pages/cms/products/components/SaleScheduleFields.cjs.js +1 -1
- package/lib/pages/cms/products/components/SaleScheduleFields.es.js +203 -87
- package/lib/pages/cms/products/components/SyncFreemiusButton.cjs.js +1 -1
- package/lib/pages/cms/products/components/SyncFreemiusButton.es.js +30 -18
- package/lib/pages/cms/products/components/SyncFreemiusPricingButton.cjs.js +2 -2
- package/lib/pages/cms/products/components/SyncFreemiusPricingButton.es.js +35 -23
- package/lib/pages/cms/products/components/VariationsEditor.cjs.js +1 -1
- package/lib/pages/cms/products/components/VariationsEditor.es.js +492 -261
- package/lib/pages/cms/products/inventory/InventoryPage.cjs.js +1 -1
- package/lib/pages/cms/products/inventory/InventoryPage.es.js +33 -13
- package/lib/pages/cms/products/inventory/InventoryTableClient.cjs.js +2 -2
- package/lib/pages/cms/products/inventory/InventoryTableClient.es.js +365 -145
- package/lib/pages/cms/products/new/NewProductPage.cjs.js +1 -1
- package/lib/pages/cms/products/new/NewProductPage.es.js +46 -34
- package/lib/pages/cms/shipping/ShippingPage.cjs.js +2 -2
- package/lib/pages/cms/shipping/ShippingPage.es.js +507 -155
- package/lib/pages/cms/shipping/components/RateForm.cjs.js +1 -1
- package/lib/pages/cms/shipping/components/RateForm.es.js +717 -334
- package/lib/pages/cms/shipping/components/ZoneForm.cjs.js +1 -1
- package/lib/pages/cms/shipping/components/ZoneForm.es.js +392 -158
- package/lib/pages/cms/taxes/TaxesPage.cjs.js +1 -1
- package/lib/pages/cms/taxes/TaxesPage.es.js +448 -120
- package/lib/pages/cms/taxes/components/TaxRateForm.cjs.js +1 -1
- package/lib/pages/cms/taxes/components/TaxRateForm.es.js +159 -55
- package/lib/product-context.cjs.js +1 -1
- package/lib/product-context.es.js +14 -10
- package/package.json +4 -4
|
@@ -1,91 +1,191 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Card as
|
|
3
|
-
import { minorUnitAmountToMajor as
|
|
4
|
-
import { ProductScopePicker as
|
|
5
|
-
function c(
|
|
6
|
-
if (!
|
|
1
|
+
import { jsxDEV as e } from "react/jsx-dev-runtime";
|
|
2
|
+
import { Card as u, CardHeader as d, CardTitle as a, CardContent as p, Label as i, Input as n, Textarea as b, Button as N } from "@nextblock-cms/ui";
|
|
3
|
+
import { minorUnitAmountToMajor as x, getCurrencyMinorUnitFactor as f } from "@nextblock-cms/utils";
|
|
4
|
+
import { ProductScopePicker as h } from "./ProductScopePicker.es.js";
|
|
5
|
+
function c(o) {
|
|
6
|
+
if (!o)
|
|
7
7
|
return "";
|
|
8
|
-
const
|
|
9
|
-
return Number.isNaN(
|
|
8
|
+
const r = new Date(o);
|
|
9
|
+
return Number.isNaN(r.getTime()) ? "" : r.toISOString().slice(0, 16);
|
|
10
10
|
}
|
|
11
|
-
function
|
|
12
|
-
const
|
|
13
|
-
return
|
|
11
|
+
function C(o, r) {
|
|
12
|
+
const s = f(r) === 1 ? 0 : 2;
|
|
13
|
+
return o.toFixed(s);
|
|
14
14
|
}
|
|
15
|
-
function
|
|
16
|
-
return
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
) :
|
|
15
|
+
function k(o, r) {
|
|
16
|
+
return o?.discount_amount ? o.discount_type === "fixed" ? C(
|
|
17
|
+
x(o.discount_amount, r),
|
|
18
|
+
r
|
|
19
|
+
) : o.discount_amount : 10;
|
|
20
20
|
}
|
|
21
|
-
function
|
|
22
|
-
action:
|
|
23
|
-
products:
|
|
24
|
-
coupon:
|
|
25
|
-
selectedProductIds:
|
|
26
|
-
submitLabel:
|
|
27
|
-
currencyCode:
|
|
21
|
+
function j({
|
|
22
|
+
action: o,
|
|
23
|
+
products: r,
|
|
24
|
+
coupon: s,
|
|
25
|
+
selectedProductIds: l = [],
|
|
26
|
+
submitLabel: t,
|
|
27
|
+
currencyCode: m = "USD"
|
|
28
28
|
}) {
|
|
29
|
-
return /* @__PURE__ */
|
|
30
|
-
/* @__PURE__ */ e("input", { type: "hidden", name: "currency_code", value:
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
29
|
+
return /* @__PURE__ */ e("form", { action: o, children: [
|
|
30
|
+
/* @__PURE__ */ e("input", { type: "hidden", name: "currency_code", value: m }, void 0, !1, {
|
|
31
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
32
|
+
lineNumber: 71,
|
|
33
|
+
columnNumber: 7
|
|
34
|
+
}, this),
|
|
35
|
+
/* @__PURE__ */ e(u, { children: [
|
|
36
|
+
/* @__PURE__ */ e(d, { children: /* @__PURE__ */ e(a, { children: s?.id ? "Edit Coupon" : "Create Coupon" }, void 0, !1, {
|
|
37
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
38
|
+
lineNumber: 74,
|
|
39
|
+
columnNumber: 11
|
|
40
|
+
}, this) }, void 0, !1, {
|
|
41
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
42
|
+
lineNumber: 73,
|
|
43
|
+
columnNumber: 9
|
|
44
|
+
}, this),
|
|
45
|
+
/* @__PURE__ */ e(p, { className: "space-y-6", children: [
|
|
46
|
+
/* @__PURE__ */ e("div", { className: "grid gap-4 md:grid-cols-2", children: [
|
|
47
|
+
/* @__PURE__ */ e("div", { className: "space-y-2", children: [
|
|
48
|
+
/* @__PURE__ */ e(i, { htmlFor: "coupon-code", children: "Code" }, void 0, !1, {
|
|
49
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
50
|
+
lineNumber: 79,
|
|
51
|
+
columnNumber: 15
|
|
52
|
+
}, this),
|
|
37
53
|
/* @__PURE__ */ e(
|
|
38
54
|
n,
|
|
39
55
|
{
|
|
40
56
|
id: "coupon-code",
|
|
41
57
|
name: "code",
|
|
42
|
-
defaultValue:
|
|
58
|
+
defaultValue: s?.code || "",
|
|
43
59
|
className: "uppercase",
|
|
44
60
|
required: !0
|
|
45
|
-
}
|
|
61
|
+
},
|
|
62
|
+
void 0,
|
|
63
|
+
!1,
|
|
64
|
+
{
|
|
65
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
66
|
+
lineNumber: 80,
|
|
67
|
+
columnNumber: 15
|
|
68
|
+
},
|
|
69
|
+
this
|
|
46
70
|
)
|
|
47
|
-
] }
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
71
|
+
] }, void 0, !0, {
|
|
72
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
73
|
+
lineNumber: 78,
|
|
74
|
+
columnNumber: 13
|
|
75
|
+
}, this),
|
|
76
|
+
/* @__PURE__ */ e("div", { className: "space-y-2", children: [
|
|
77
|
+
/* @__PURE__ */ e(i, { htmlFor: "coupon-name", children: "Name" }, void 0, !1, {
|
|
78
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
79
|
+
lineNumber: 89,
|
|
80
|
+
columnNumber: 15
|
|
81
|
+
}, this),
|
|
82
|
+
/* @__PURE__ */ e(n, { id: "coupon-name", name: "name", defaultValue: s?.name || "", required: !0 }, void 0, !1, {
|
|
83
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
84
|
+
lineNumber: 90,
|
|
85
|
+
columnNumber: 15
|
|
86
|
+
}, this)
|
|
87
|
+
] }, void 0, !0, {
|
|
88
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
89
|
+
lineNumber: 88,
|
|
90
|
+
columnNumber: 13
|
|
91
|
+
}, this)
|
|
92
|
+
] }, void 0, !0, {
|
|
93
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
94
|
+
lineNumber: 77,
|
|
95
|
+
columnNumber: 11
|
|
96
|
+
}, this),
|
|
97
|
+
/* @__PURE__ */ e("div", { className: "grid gap-4 md:grid-cols-3", children: [
|
|
98
|
+
/* @__PURE__ */ e("div", { className: "space-y-2", children: [
|
|
99
|
+
/* @__PURE__ */ e(i, { htmlFor: "provider-scope", children: "Provider scope" }, void 0, !1, {
|
|
100
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
101
|
+
lineNumber: 96,
|
|
102
|
+
columnNumber: 15
|
|
103
|
+
}, this),
|
|
104
|
+
/* @__PURE__ */ e(
|
|
57
105
|
"select",
|
|
58
106
|
{
|
|
59
107
|
id: "provider-scope",
|
|
60
108
|
name: "provider_scope",
|
|
61
|
-
defaultValue:
|
|
109
|
+
defaultValue: s?.provider_scope || "all",
|
|
62
110
|
className: "flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm",
|
|
63
111
|
children: [
|
|
64
|
-
/* @__PURE__ */ e("option", { value: "all", children: "Stripe + Freemius" }
|
|
65
|
-
|
|
66
|
-
|
|
112
|
+
/* @__PURE__ */ e("option", { value: "all", children: "Stripe + Freemius" }, void 0, !1, {
|
|
113
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
114
|
+
lineNumber: 103,
|
|
115
|
+
columnNumber: 17
|
|
116
|
+
}, this),
|
|
117
|
+
/* @__PURE__ */ e("option", { value: "stripe", children: "Stripe only" }, void 0, !1, {
|
|
118
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
119
|
+
lineNumber: 104,
|
|
120
|
+
columnNumber: 17
|
|
121
|
+
}, this),
|
|
122
|
+
/* @__PURE__ */ e("option", { value: "freemius", children: "Freemius only" }, void 0, !1, {
|
|
123
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
124
|
+
lineNumber: 105,
|
|
125
|
+
columnNumber: 17
|
|
126
|
+
}, this)
|
|
67
127
|
]
|
|
68
|
-
}
|
|
128
|
+
},
|
|
129
|
+
void 0,
|
|
130
|
+
!0,
|
|
131
|
+
{
|
|
132
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
133
|
+
lineNumber: 97,
|
|
134
|
+
columnNumber: 15
|
|
135
|
+
},
|
|
136
|
+
this
|
|
69
137
|
)
|
|
70
|
-
] }
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
138
|
+
] }, void 0, !0, {
|
|
139
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
140
|
+
lineNumber: 95,
|
|
141
|
+
columnNumber: 13
|
|
142
|
+
}, this),
|
|
143
|
+
/* @__PURE__ */ e("div", { className: "space-y-2", children: [
|
|
144
|
+
/* @__PURE__ */ e(i, { htmlFor: "discount-type", children: "Discount type" }, void 0, !1, {
|
|
145
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
146
|
+
lineNumber: 109,
|
|
147
|
+
columnNumber: 15
|
|
148
|
+
}, this),
|
|
149
|
+
/* @__PURE__ */ e(
|
|
74
150
|
"select",
|
|
75
151
|
{
|
|
76
152
|
id: "discount-type",
|
|
77
153
|
name: "discount_type",
|
|
78
|
-
defaultValue:
|
|
154
|
+
defaultValue: s?.discount_type || "percent",
|
|
79
155
|
className: "flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm",
|
|
80
156
|
children: [
|
|
81
|
-
/* @__PURE__ */ e("option", { value: "percent", children: "Percent" }
|
|
82
|
-
|
|
157
|
+
/* @__PURE__ */ e("option", { value: "percent", children: "Percent" }, void 0, !1, {
|
|
158
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
159
|
+
lineNumber: 116,
|
|
160
|
+
columnNumber: 17
|
|
161
|
+
}, this),
|
|
162
|
+
/* @__PURE__ */ e("option", { value: "fixed", children: "Fixed amount" }, void 0, !1, {
|
|
163
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
164
|
+
lineNumber: 117,
|
|
165
|
+
columnNumber: 17
|
|
166
|
+
}, this)
|
|
83
167
|
]
|
|
84
|
-
}
|
|
168
|
+
},
|
|
169
|
+
void 0,
|
|
170
|
+
!0,
|
|
171
|
+
{
|
|
172
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
173
|
+
lineNumber: 110,
|
|
174
|
+
columnNumber: 15
|
|
175
|
+
},
|
|
176
|
+
this
|
|
85
177
|
)
|
|
86
|
-
] }
|
|
87
|
-
|
|
88
|
-
|
|
178
|
+
] }, void 0, !0, {
|
|
179
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
180
|
+
lineNumber: 108,
|
|
181
|
+
columnNumber: 13
|
|
182
|
+
}, this),
|
|
183
|
+
/* @__PURE__ */ e("div", { className: "space-y-2", children: [
|
|
184
|
+
/* @__PURE__ */ e(i, { htmlFor: "discount-amount", children: "Amount" }, void 0, !1, {
|
|
185
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
186
|
+
lineNumber: 121,
|
|
187
|
+
columnNumber: 15
|
|
188
|
+
}, this),
|
|
89
189
|
/* @__PURE__ */ e(
|
|
90
190
|
n,
|
|
91
191
|
{
|
|
@@ -94,40 +194,96 @@ function V({
|
|
|
94
194
|
type: "number",
|
|
95
195
|
min: "0.01",
|
|
96
196
|
step: "0.01",
|
|
97
|
-
defaultValue:
|
|
197
|
+
defaultValue: k(s, m),
|
|
98
198
|
required: !0
|
|
99
|
-
}
|
|
199
|
+
},
|
|
200
|
+
void 0,
|
|
201
|
+
!1,
|
|
202
|
+
{
|
|
203
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
204
|
+
lineNumber: 122,
|
|
205
|
+
columnNumber: 15
|
|
206
|
+
},
|
|
207
|
+
this
|
|
100
208
|
),
|
|
101
|
-
/* @__PURE__ */ e("p", { className: "text-xs text-muted-foreground", children: "Percent coupons use 1-100. Fixed coupons use regular amounts, for example $10.00." }
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
209
|
+
/* @__PURE__ */ e("p", { className: "text-xs text-muted-foreground", children: "Percent coupons use 1-100. Fixed coupons use regular amounts, for example $10.00." }, void 0, !1, {
|
|
210
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
211
|
+
lineNumber: 131,
|
|
212
|
+
columnNumber: 15
|
|
213
|
+
}, this)
|
|
214
|
+
] }, void 0, !0, {
|
|
215
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
216
|
+
lineNumber: 120,
|
|
217
|
+
columnNumber: 13
|
|
218
|
+
}, this)
|
|
219
|
+
] }, void 0, !0, {
|
|
220
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
221
|
+
lineNumber: 94,
|
|
222
|
+
columnNumber: 11
|
|
223
|
+
}, this),
|
|
224
|
+
/* @__PURE__ */ e("div", { className: "grid gap-4 md:grid-cols-3", children: [
|
|
225
|
+
/* @__PURE__ */ e("div", { className: "space-y-2", children: [
|
|
226
|
+
/* @__PURE__ */ e(i, { htmlFor: "starts-at", children: "Starts at" }, void 0, !1, {
|
|
227
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
228
|
+
lineNumber: 139,
|
|
229
|
+
columnNumber: 15
|
|
230
|
+
}, this),
|
|
107
231
|
/* @__PURE__ */ e(
|
|
108
232
|
n,
|
|
109
233
|
{
|
|
110
234
|
id: "starts-at",
|
|
111
235
|
name: "starts_at",
|
|
112
236
|
type: "datetime-local",
|
|
113
|
-
defaultValue: c(
|
|
114
|
-
}
|
|
237
|
+
defaultValue: c(s?.starts_at)
|
|
238
|
+
},
|
|
239
|
+
void 0,
|
|
240
|
+
!1,
|
|
241
|
+
{
|
|
242
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
243
|
+
lineNumber: 140,
|
|
244
|
+
columnNumber: 15
|
|
245
|
+
},
|
|
246
|
+
this
|
|
115
247
|
)
|
|
116
|
-
] }
|
|
117
|
-
|
|
118
|
-
|
|
248
|
+
] }, void 0, !0, {
|
|
249
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
250
|
+
lineNumber: 138,
|
|
251
|
+
columnNumber: 13
|
|
252
|
+
}, this),
|
|
253
|
+
/* @__PURE__ */ e("div", { className: "space-y-2", children: [
|
|
254
|
+
/* @__PURE__ */ e(i, { htmlFor: "ends-at", children: "Ends at" }, void 0, !1, {
|
|
255
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
256
|
+
lineNumber: 148,
|
|
257
|
+
columnNumber: 15
|
|
258
|
+
}, this),
|
|
119
259
|
/* @__PURE__ */ e(
|
|
120
260
|
n,
|
|
121
261
|
{
|
|
122
262
|
id: "ends-at",
|
|
123
263
|
name: "ends_at",
|
|
124
264
|
type: "datetime-local",
|
|
125
|
-
defaultValue: c(
|
|
126
|
-
}
|
|
265
|
+
defaultValue: c(s?.ends_at)
|
|
266
|
+
},
|
|
267
|
+
void 0,
|
|
268
|
+
!1,
|
|
269
|
+
{
|
|
270
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
271
|
+
lineNumber: 149,
|
|
272
|
+
columnNumber: 15
|
|
273
|
+
},
|
|
274
|
+
this
|
|
127
275
|
)
|
|
128
|
-
] }
|
|
129
|
-
|
|
130
|
-
|
|
276
|
+
] }, void 0, !0, {
|
|
277
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
278
|
+
lineNumber: 147,
|
|
279
|
+
columnNumber: 13
|
|
280
|
+
}, this),
|
|
281
|
+
/* @__PURE__ */ e("div", { className: "space-y-2", children: [
|
|
282
|
+
/* @__PURE__ */ e(i, { htmlFor: "redemption-limit", children: "Redemption limit" }, void 0, !1, {
|
|
283
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
284
|
+
lineNumber: 157,
|
|
285
|
+
columnNumber: 15
|
|
286
|
+
}, this),
|
|
131
287
|
/* @__PURE__ */ e(
|
|
132
288
|
n,
|
|
133
289
|
{
|
|
@@ -135,26 +291,62 @@ function V({
|
|
|
135
291
|
name: "redemption_limit",
|
|
136
292
|
type: "number",
|
|
137
293
|
min: "1",
|
|
138
|
-
defaultValue:
|
|
139
|
-
}
|
|
294
|
+
defaultValue: s?.redemption_limit || ""
|
|
295
|
+
},
|
|
296
|
+
void 0,
|
|
297
|
+
!1,
|
|
298
|
+
{
|
|
299
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
300
|
+
lineNumber: 158,
|
|
301
|
+
columnNumber: 15
|
|
302
|
+
},
|
|
303
|
+
this
|
|
140
304
|
)
|
|
141
|
-
] }
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
305
|
+
] }, void 0, !0, {
|
|
306
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
307
|
+
lineNumber: 156,
|
|
308
|
+
columnNumber: 13
|
|
309
|
+
}, this)
|
|
310
|
+
] }, void 0, !0, {
|
|
311
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
312
|
+
lineNumber: 137,
|
|
313
|
+
columnNumber: 11
|
|
314
|
+
}, this),
|
|
315
|
+
/* @__PURE__ */ e("div", { className: "space-y-2", children: [
|
|
316
|
+
/* @__PURE__ */ e(i, { htmlFor: "internal-note", children: "Internal note" }, void 0, !1, {
|
|
317
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
318
|
+
lineNumber: 169,
|
|
319
|
+
columnNumber: 13
|
|
320
|
+
}, this),
|
|
145
321
|
/* @__PURE__ */ e(
|
|
146
|
-
|
|
322
|
+
b,
|
|
147
323
|
{
|
|
148
324
|
id: "internal-note",
|
|
149
325
|
name: "internal_note",
|
|
150
|
-
defaultValue:
|
|
326
|
+
defaultValue: s?.internal_note || "",
|
|
151
327
|
rows: 3
|
|
152
|
-
}
|
|
328
|
+
},
|
|
329
|
+
void 0,
|
|
330
|
+
!1,
|
|
331
|
+
{
|
|
332
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
333
|
+
lineNumber: 170,
|
|
334
|
+
columnNumber: 13
|
|
335
|
+
},
|
|
336
|
+
this
|
|
153
337
|
)
|
|
154
|
-
] }
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
338
|
+
] }, void 0, !0, {
|
|
339
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
340
|
+
lineNumber: 168,
|
|
341
|
+
columnNumber: 11
|
|
342
|
+
}, this),
|
|
343
|
+
/* @__PURE__ */ e("div", { className: "rounded-lg border bg-muted/20 p-4", children: [
|
|
344
|
+
/* @__PURE__ */ e("input", { type: "hidden", name: "is_active", value: "false" }, void 0, !1, {
|
|
345
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
346
|
+
lineNumber: 179,
|
|
347
|
+
columnNumber: 13
|
|
348
|
+
}, this),
|
|
349
|
+
/* @__PURE__ */ e("label", { htmlFor: "coupon-active", className: "flex cursor-pointer items-start gap-3", children: [
|
|
158
350
|
/* @__PURE__ */ e(
|
|
159
351
|
"input",
|
|
160
352
|
{
|
|
@@ -162,28 +354,96 @@ function V({
|
|
|
162
354
|
name: "is_active",
|
|
163
355
|
type: "checkbox",
|
|
164
356
|
value: "true",
|
|
165
|
-
defaultChecked:
|
|
357
|
+
defaultChecked: s?.is_active ?? !0,
|
|
166
358
|
className: "mt-0.5 h-4 w-4 rounded border-slate-300 text-primary focus:ring-primary"
|
|
167
|
-
}
|
|
359
|
+
},
|
|
360
|
+
void 0,
|
|
361
|
+
!1,
|
|
362
|
+
{
|
|
363
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
364
|
+
lineNumber: 181,
|
|
365
|
+
columnNumber: 15
|
|
366
|
+
},
|
|
367
|
+
this
|
|
168
368
|
),
|
|
169
|
-
/* @__PURE__ */
|
|
170
|
-
/* @__PURE__ */ e("span", { className: "block text-sm font-medium", children: "Active" }
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
369
|
+
/* @__PURE__ */ e("span", { children: [
|
|
370
|
+
/* @__PURE__ */ e("span", { className: "block text-sm font-medium", children: "Active" }, void 0, !1, {
|
|
371
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
372
|
+
lineNumber: 190,
|
|
373
|
+
columnNumber: 17
|
|
374
|
+
}, this),
|
|
375
|
+
/* @__PURE__ */ e("span", { className: "block text-sm text-muted-foreground", children: "Active coupons can be applied by shoppers during cart and checkout." }, void 0, !1, {
|
|
376
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
377
|
+
lineNumber: 191,
|
|
378
|
+
columnNumber: 17
|
|
379
|
+
}, this)
|
|
380
|
+
] }, void 0, !0, {
|
|
381
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
382
|
+
lineNumber: 189,
|
|
383
|
+
columnNumber: 15
|
|
384
|
+
}, this)
|
|
385
|
+
] }, void 0, !0, {
|
|
386
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
387
|
+
lineNumber: 180,
|
|
388
|
+
columnNumber: 13
|
|
389
|
+
}, this)
|
|
390
|
+
] }, void 0, !0, {
|
|
391
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
392
|
+
lineNumber: 178,
|
|
393
|
+
columnNumber: 11
|
|
394
|
+
}, this),
|
|
395
|
+
/* @__PURE__ */ e("div", { className: "space-y-3", children: [
|
|
396
|
+
/* @__PURE__ */ e("div", { children: [
|
|
397
|
+
/* @__PURE__ */ e("h3", { className: "font-semibold", children: "Product scope" }, void 0, !1, {
|
|
398
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
399
|
+
lineNumber: 200,
|
|
400
|
+
columnNumber: 15
|
|
401
|
+
}, this),
|
|
402
|
+
/* @__PURE__ */ e("p", { className: "text-sm text-muted-foreground", children: "Leave every product unchecked to apply this coupon to all products in the selected provider scope." }, void 0, !1, {
|
|
403
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
404
|
+
lineNumber: 201,
|
|
405
|
+
columnNumber: 15
|
|
406
|
+
}, this)
|
|
407
|
+
] }, void 0, !0, {
|
|
408
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
409
|
+
lineNumber: 199,
|
|
410
|
+
columnNumber: 13
|
|
411
|
+
}, this),
|
|
412
|
+
/* @__PURE__ */ e(h, { products: r, selectedProductIds: l }, void 0, !1, {
|
|
413
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
414
|
+
lineNumber: 205,
|
|
415
|
+
columnNumber: 13
|
|
416
|
+
}, this)
|
|
417
|
+
] }, void 0, !0, {
|
|
418
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
419
|
+
lineNumber: 198,
|
|
420
|
+
columnNumber: 11
|
|
421
|
+
}, this),
|
|
422
|
+
/* @__PURE__ */ e("div", { className: "flex justify-end", children: /* @__PURE__ */ e(N, { type: "submit", children: t }, void 0, !1, {
|
|
423
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
424
|
+
lineNumber: 209,
|
|
425
|
+
columnNumber: 13
|
|
426
|
+
}, this) }, void 0, !1, {
|
|
427
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
428
|
+
lineNumber: 208,
|
|
429
|
+
columnNumber: 11
|
|
430
|
+
}, this)
|
|
431
|
+
] }, void 0, !0, {
|
|
432
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
433
|
+
lineNumber: 76,
|
|
434
|
+
columnNumber: 9
|
|
435
|
+
}, this)
|
|
436
|
+
] }, void 0, !0, {
|
|
437
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
438
|
+
lineNumber: 72,
|
|
439
|
+
columnNumber: 7
|
|
440
|
+
}, this)
|
|
441
|
+
] }, void 0, !0, {
|
|
442
|
+
fileName: "C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponEditorForm.tsx",
|
|
443
|
+
lineNumber: 70,
|
|
444
|
+
columnNumber: 5
|
|
445
|
+
}, this);
|
|
186
446
|
}
|
|
187
447
|
export {
|
|
188
|
-
|
|
448
|
+
j as CouponEditorForm
|
|
189
449
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-dev-runtime"),p=require("next/link"),n=require("@nextblock-cms/ui"),b=require("@nextblock-cms/db/server"),u=require("lucide-react"),x=require("@nextblock-cms/utils"),t=require("./actions.cjs.js"),N=require("./CreateCouponDialog.cjs.js"),f=require("./product-options.cjs.js");function g(o,c){return o.discount_type==="percent"?`${o.discount_amount}%`:x.formatPrice(o.discount_amount,c)}function C(o,c){return c?o==="synced"||o==="not_required"?"default":"secondary":"outline"}function h(o,c){const i=new Set;for(const l of o||[]){const r=l.product_id;r&&i.add(c.get(r)||r)}return i.size}function k(o,c){const i=h(o,c);return i===0?"All eligible products":`${i} scoped SKU${i===1?"":"s"}`}async function D({searchParams:o}){const c=b.getServiceRoleSupabaseClient();let i=c.from("coupons").select(`
|
|
2
2
|
*,
|
|
3
3
|
coupon_products(product_id),
|
|
4
4
|
coupon_freemius_mappings(sync_status, sync_error)
|
|
5
|
-
`).order("created_at",{ascending:!1});t?.q&&(i=i.or(`code.ilike.%${t.q}%,name.ilike.%${t.q}%`)),t?.status==="active"?i=i.eq("is_active",!0):t?.status==="inactive"&&(i=i.eq("is_active",!1));const[{data:c},{data:a},{data:l}]=await Promise.all([i,n.from("products").select("id, title, sku, payment_provider, freemius_product_id, language:languages(code, name), product_media(sort_order, media(file_path, object_key))").order("title",{ascending:!0}),n.from("currencies").select("code, is_default").eq("is_active",!0)]),o=l?.find(s=>s.is_default)?.code||l?.[0]?.code||"USD",x=new Map((a||[]).map(s=>[s.id,s.sku?.trim().toUpperCase()||s.id]));return e.jsxs("div",{className:"mx-auto w-full max-w-7xl space-y-6 px-6 py-8",children:[e.jsxs("div",{className:"flex flex-col gap-4 md:flex-row md:items-end md:justify-between",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-3xl font-bold tracking-tight",children:"Coupons"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Create provider-aware discounts for Stripe checkout and Freemius licenses."})]}),e.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-center",children:[e.jsxs("form",{className:"flex gap-2",action:"/cms/coupons",children:[e.jsx("input",{name:"q",placeholder:"Search coupons",defaultValue:t?.q||"",className:"h-10 rounded-md border border-input bg-background px-3 py-2 text-sm"}),e.jsxs("select",{name:"status",defaultValue:t?.status||"all",className:"h-10 rounded-md border border-input bg-background px-3 py-2 text-sm",children:[e.jsx("option",{value:"all",children:"All"}),e.jsx("option",{value:"active",children:"Active"}),e.jsx("option",{value:"inactive",children:"Inactive"})]}),e.jsx(r.Button,{type:"submit",variant:"outline",children:"Filter"})]}),e.jsx(f.CreateCouponDialog,{action:d.createCouponAction,products:j.normalizeCouponProductOptions(a),currencyCode:o})]})]}),e.jsxs(r.Card,{children:[e.jsxs(r.CardHeader,{children:[e.jsx(r.CardTitle,{children:"All Coupons"}),e.jsx(r.CardDescription,{children:"Freemius sync runs when a coupon is created, updated, toggled, or manually resynced."})]}),e.jsx(r.CardContent,{children:e.jsx("div",{className:"overflow-hidden rounded-lg border",children:e.jsxs("table",{className:"w-full text-left text-sm",children:[e.jsx("thead",{className:"border-b bg-muted/40 text-xs uppercase text-muted-foreground",children:e.jsxs("tr",{children:[e.jsx("th",{className:"px-4 py-3",children:"Code"}),e.jsx("th",{className:"px-4 py-3",children:"Scope"}),e.jsx("th",{className:"px-4 py-3",children:"Discount"}),e.jsx("th",{className:"px-4 py-3",children:"Usage"}),e.jsx("th",{className:"px-4 py-3",children:"Sync"}),e.jsx("th",{className:"px-4 py-3 text-right",children:"Actions"})]})}),e.jsx("tbody",{className:"divide-y",children:c?.length?c.map(s=>e.jsxs("tr",{className:"align-top",children:[e.jsxs("td",{className:"px-4 py-3",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"font-mono font-semibold",children:s.code}),e.jsx(r.Badge,{variant:s.is_active?"default":"outline",children:s.is_active?"Active":"Inactive"})]}),e.jsx("p",{className:"mt-1 text-xs text-muted-foreground",children:s.name})]}),e.jsxs("td",{className:"px-4 py-3",children:[e.jsx("span",{className:"capitalize",children:s.provider_scope}),e.jsx("p",{className:"mt-1 text-xs text-muted-foreground",children:_(s.coupon_products,x)})]}),e.jsx("td",{className:"px-4 py-3 font-medium",children:y(s,o)}),e.jsxs("td",{className:"px-4 py-3",children:[s.redemptions_count||0,s.redemption_limit?` / ${s.redemption_limit}`:""]}),e.jsxs("td",{className:"px-4 py-3",children:[e.jsx(r.Badge,{variant:g(s.freemius_sync_status,s.is_active),children:s.freemius_sync_status}),s.freemius_sync_error?e.jsx("p",{className:"mt-1 max-w-[220px] text-xs text-destructive",children:s.freemius_sync_error}):null]}),e.jsx("td",{className:"px-4 py-3",children:e.jsxs("div",{className:"flex justify-end gap-1",children:[e.jsx(r.Button,{asChild:!0,variant:"outline",size:"sm",children:e.jsx(m,{href:`/cms/coupons/${s.id}/edit`,children:"Edit"})}),e.jsx("form",{action:async()=>{"use server";await d.toggleCouponActiveAction(s.id,!s.is_active)},children:e.jsx(r.Button,{type:"submit",variant:"outline",size:"sm",children:s.is_active?"Disable":"Enable"})}),e.jsx("form",{action:async()=>{"use server";await d.syncCouponAction(s.id)},children:e.jsx(r.Button,{type:"submit",variant:"ghost",size:"icon",title:"Resync Freemius","aria-label":`Resync Freemius coupon ${s.code}`,children:e.jsx(u.RefreshCw,{className:"h-4 w-4"})})}),e.jsx("form",{action:async()=>{"use server";await d.deleteCouponAction(s.id)},children:e.jsx(r.Button,{type:"submit",variant:"ghost",size:"icon",className:"text-destructive","aria-label":`Delete coupon ${s.code}`,children:e.jsx(u.Trash2,{className:"h-4 w-4"})})})]})})]},s.id)):e.jsx("tr",{children:e.jsx("td",{colSpan:6,className:"px-4 py-10 text-center text-muted-foreground",children:"No coupons yet."})})})]})})})]})]})}exports.CouponsPage=N;
|
|
5
|
+
`).order("created_at",{ascending:!1});o?.q&&(i=i.or(`code.ilike.%${o.q}%,name.ilike.%${o.q}%`)),o?.status==="active"?i=i.eq("is_active",!0):o?.status==="inactive"&&(i=i.eq("is_active",!1));const[{data:l},{data:r},{data:m}]=await Promise.all([i,c.from("products").select("id, title, sku, payment_provider, freemius_product_id, language:languages(code, name), product_media(sort_order, media(file_path, object_key))").order("title",{ascending:!0}),c.from("currencies").select("code, is_default").eq("is_active",!0)]),a=m?.find(s=>s.is_default)?.code||m?.[0]?.code||"USD",d=new Map((r||[]).map(s=>[s.id,s.sku?.trim().toUpperCase()||s.id]));return e.jsxDEV("div",{className:"mx-auto w-full max-w-7xl space-y-6 px-6 py-8",children:[e.jsxDEV("div",{className:"flex flex-col gap-4 md:flex-row md:items-end md:justify-between",children:[e.jsxDEV("div",{children:[e.jsxDEV("h1",{className:"text-3xl font-bold tracking-tight",children:"Coupons"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:133,columnNumber:11},this),e.jsxDEV("p",{className:"text-sm text-muted-foreground",children:"Create provider-aware discounts for Stripe checkout and Freemius licenses."},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:134,columnNumber:11},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:132,columnNumber:9},this),e.jsxDEV("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-center",children:[e.jsxDEV("form",{className:"flex gap-2",action:"/cms/coupons",children:[e.jsxDEV("input",{name:"q",placeholder:"Search coupons",defaultValue:o?.q||"",className:"h-10 rounded-md border border-input bg-background px-3 py-2 text-sm"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:140,columnNumber:13},this),e.jsxDEV("select",{name:"status",defaultValue:o?.status||"all",className:"h-10 rounded-md border border-input bg-background px-3 py-2 text-sm",children:[e.jsxDEV("option",{value:"all",children:"All"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:151,columnNumber:15},this),e.jsxDEV("option",{value:"active",children:"Active"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:152,columnNumber:15},this),e.jsxDEV("option",{value:"inactive",children:"Inactive"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:153,columnNumber:15},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:146,columnNumber:13},this),e.jsxDEV(n.Button,{type:"submit",variant:"outline",children:"Filter"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:155,columnNumber:13},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:139,columnNumber:11},this),e.jsxDEV(N.CreateCouponDialog,{action:t.createCouponAction,products:f.normalizeCouponProductOptions(r),currencyCode:a},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:157,columnNumber:11},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:138,columnNumber:9},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:131,columnNumber:7},this),e.jsxDEV(n.Card,{children:[e.jsxDEV(n.CardHeader,{children:[e.jsxDEV(n.CardTitle,{children:"All Coupons"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:167,columnNumber:11},this),e.jsxDEV(n.CardDescription,{children:"Freemius sync runs when a coupon is created, updated, toggled, or manually resynced."},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:168,columnNumber:11},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:166,columnNumber:9},this),e.jsxDEV(n.CardContent,{children:e.jsxDEV("div",{className:"overflow-hidden rounded-lg border",children:e.jsxDEV("table",{className:"w-full text-left text-sm",children:[e.jsxDEV("thead",{className:"border-b bg-muted/40 text-xs uppercase text-muted-foreground",children:e.jsxDEV("tr",{children:[e.jsxDEV("th",{className:"px-4 py-3",children:"Code"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:177,columnNumber:19},this),e.jsxDEV("th",{className:"px-4 py-3",children:"Scope"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:178,columnNumber:19},this),e.jsxDEV("th",{className:"px-4 py-3",children:"Discount"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:179,columnNumber:19},this),e.jsxDEV("th",{className:"px-4 py-3",children:"Usage"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:180,columnNumber:19},this),e.jsxDEV("th",{className:"px-4 py-3",children:"Sync"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:181,columnNumber:19},this),e.jsxDEV("th",{className:"px-4 py-3 text-right",children:"Actions"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:182,columnNumber:19},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:176,columnNumber:17},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:175,columnNumber:15},this),e.jsxDEV("tbody",{className:"divide-y",children:l?.length?l.map(s=>e.jsxDEV("tr",{className:"align-top",children:[e.jsxDEV("td",{className:"px-4 py-3",children:[e.jsxDEV("div",{className:"flex items-center gap-2",children:[e.jsxDEV("span",{className:"font-mono font-semibold",children:s.code},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:197,columnNumber:27},this),e.jsxDEV(n.Badge,{variant:s.is_active?"default":"outline",children:s.is_active?"Active":"Inactive"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:198,columnNumber:27},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:196,columnNumber:25},this),e.jsxDEV("p",{className:"mt-1 text-xs text-muted-foreground",children:s.name},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:202,columnNumber:25},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:195,columnNumber:23},this),e.jsxDEV("td",{className:"px-4 py-3",children:[e.jsxDEV("span",{className:"capitalize",children:s.provider_scope},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:205,columnNumber:25},this),e.jsxDEV("p",{className:"mt-1 text-xs text-muted-foreground",children:k(s.coupon_products,d)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:206,columnNumber:25},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:204,columnNumber:23},this),e.jsxDEV("td",{className:"px-4 py-3 font-medium",children:g(s,a)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:210,columnNumber:23},this),e.jsxDEV("td",{className:"px-4 py-3",children:[s.redemptions_count||0,s.redemption_limit?` / ${s.redemption_limit}`:""]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:213,columnNumber:23},this),e.jsxDEV("td",{className:"px-4 py-3",children:[e.jsxDEV(n.Badge,{variant:C(s.freemius_sync_status,s.is_active),children:s.freemius_sync_status},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:218,columnNumber:25},this),s.freemius_sync_error?e.jsxDEV("p",{className:"mt-1 max-w-[220px] text-xs text-destructive",children:s.freemius_sync_error},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:222,columnNumber:27},this):null]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:217,columnNumber:23},this),e.jsxDEV("td",{className:"px-4 py-3",children:e.jsxDEV("div",{className:"flex justify-end gap-1",children:[e.jsxDEV(n.Button,{asChild:!0,variant:"outline",size:"sm",children:e.jsxDEV(p,{href:`/cms/coupons/${s.id}/edit`,children:"Edit"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:230,columnNumber:29},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:229,columnNumber:27},this),e.jsxDEV("form",{action:async()=>{"use server";await t.toggleCouponActiveAction(s.id,!s.is_active)},children:e.jsxDEV(n.Button,{type:"submit",variant:"outline",size:"sm",children:s.is_active?"Disable":"Enable"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:236,columnNumber:29},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:232,columnNumber:27},this),e.jsxDEV("form",{action:async()=>{"use server";await t.syncCouponAction(s.id)},children:e.jsxDEV(n.Button,{type:"submit",variant:"ghost",size:"icon",title:"Resync Freemius","aria-label":`Resync Freemius coupon ${s.code}`,children:e.jsxDEV(u.RefreshCw,{className:"h-4 w-4"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:251,columnNumber:31},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:244,columnNumber:29},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:240,columnNumber:27},this),e.jsxDEV("form",{action:async()=>{"use server";await t.deleteCouponAction(s.id)},children:e.jsxDEV(n.Button,{type:"submit",variant:"ghost",size:"icon",className:"text-destructive","aria-label":`Delete coupon ${s.code}`,children:e.jsxDEV(u.Trash2,{className:"h-4 w-4"},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:265,columnNumber:31},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:258,columnNumber:29},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:254,columnNumber:27},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:228,columnNumber:25},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:227,columnNumber:23},this)]},s.id,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:194,columnNumber:21},this)):e.jsxDEV("tr",{children:e.jsxDEV("td",{colSpan:6,className:"px-4 py-10 text-center text-muted-foreground",children:"No coupons yet."},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:188,columnNumber:21},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:187,columnNumber:19},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:185,columnNumber:15},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:174,columnNumber:13},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:173,columnNumber:11},this)},void 0,!1,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:172,columnNumber:9},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:165,columnNumber:7},this)]},void 0,!0,{fileName:"C:/Users/desjardinsn/Desktop/nextblock/libs/ecommerce/src/lib/pages/cms/coupons/CouponsPage.tsx",lineNumber:130,columnNumber:5},this)}exports.CouponsPage=D;
|