@nextblock-cms/ecom 0.16.2 → 0.16.4

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.
@@ -1,99 +1,106 @@
1
1
  'use client';
2
- import { jsxDEV as s } from "react/jsx-dev-runtime";
3
- import Q from "next/image";
4
- import v from "next/link";
5
- import { useRouter as H } from "next/navigation";
6
- import { useState as N, useTransition as K, useMemo as f, useEffect as X } from "react";
7
- import { Search as q, Archive as F, Trash2 as G } from "lucide-react";
8
- import { Input as J, Button as h, Table as O, TableHeader as Y, TableRow as B, TableHead as r, Checkbox as S, TableBody as Z, TableCell as i, Badge as ee } from "@nextblock-cms/ui";
9
- import { formatPrice as _ } from "@nextblock-cms/utils";
10
- import { DeleteProductButton as se } from "./DeleteProductButton.es.js";
11
- const A = process.env.NEXT_PUBLIC_R2_BASE_URL || "";
12
- function te(c) {
13
- return c ? c.startsWith("http") || !A ? c : `${A.replace(/\/+$/, "")}/${c.replace(/^\/+/, "")}` : null;
2
+ import { jsxDEV as e } from "react/jsx-dev-runtime";
3
+ import Y from "next/image";
4
+ import S from "next/link";
5
+ import { useRouter as Z } from "next/navigation";
6
+ import { useState as b, useTransition as ee, useMemo as N, useEffect as M } from "react";
7
+ import { Search as se, Archive as ce, Trash2 as le, ChevronLeft as te, ChevronRight as oe } from "lucide-react";
8
+ import { Input as ie, Button as d, Table as re, TableHeader as ne, TableRow as w, TableHead as r, Checkbox as $, TableBody as me, TableCell as i, Badge as ue, SeoScoreBadge as ae, Select as be, SelectTrigger as de, SelectValue as pe, SelectContent as Ne, SelectItem as fe } from "@nextblock-cms/ui";
9
+ import { formatPrice as z } from "@nextblock-cms/utils";
10
+ import { DeleteProductButton as he } from "./DeleteProductButton.es.js";
11
+ const L = process.env.NEXT_PUBLIC_R2_BASE_URL || "";
12
+ function xe(t) {
13
+ return t ? t.startsWith("http") || !L ? t : `${L.replace(/\/+$/, "")}/${t.replace(/^\/+/, "")}` : null;
14
14
  }
15
- function de({
16
- products: c,
17
- languageLabels: x,
18
- defaultCurrencyCode: P,
19
- deleteProductAction: C,
20
- bulkDeleteProductsAction: E,
21
- bulkDraftProductsAction: I
15
+ function ye({
16
+ products: t,
17
+ languageLabels: T,
18
+ defaultCurrencyCode: y,
19
+ deleteProductAction: V,
20
+ bulkDeleteProductsAction: j,
21
+ bulkDraftProductsAction: R
22
22
  }) {
23
- const $ = H(), [n, a] = N(() => /* @__PURE__ */ new Set()), [k, L] = N(""), [T, b] = N(null), [d, g] = N(null), [D, j] = K(), p = f(() => {
24
- const e = k.trim().toLowerCase();
25
- return e ? c.filter((t) => {
26
- const o = x[String(t.language_id)] || "";
23
+ const U = Z(), [m, f] = b(() => /* @__PURE__ */ new Set()), [h, Q] = b(""), [C, x] = b(null), [k, D] = b(null), [_, H] = ee(), W = N(() => {
24
+ const s = h.trim().toLowerCase();
25
+ return s ? t.filter((c) => {
26
+ const o = T[String(c.language_id)] || "";
27
27
  return [
28
- t.title,
29
- t.sku,
30
- t.slug,
31
- t.status,
28
+ c.title,
29
+ c.sku,
30
+ c.slug,
31
+ c.status,
32
32
  o
33
- ].filter(Boolean).join(" ").toLowerCase().includes(e);
34
- }) : c;
35
- }, [x, c, k]), W = f(() => c.map((e) => e.id), [c]), u = f(
36
- () => p.map((e) => e.id),
37
- [p]
38
- ), m = f(
39
- () => c.filter((e) => n.has(e.id)),
40
- [c, n]
41
- ).length, z = m > 1, V = u.filter(
42
- (e) => n.has(e)
43
- ).length, w = u.length > 0 && u.every((e) => n.has(e)), R = V > 0 && !w;
44
- X(() => {
45
- const e = new Set(W);
46
- a((t) => {
33
+ ].filter(Boolean).join(" ").toLowerCase().includes(s);
34
+ }) : t;
35
+ }, [T, t, h]), [F, g] = b(1), [n, K] = b(25);
36
+ M(() => {
37
+ g(1);
38
+ }, [h]);
39
+ const v = W.length, P = Math.max(1, Math.ceil(v / n)), u = Math.min(F, P), B = N(() => {
40
+ const s = (u - 1) * n;
41
+ return W.slice(s, s + n);
42
+ }, [W, u, n]), A = N(() => t.map((s) => s.id), [t]), p = N(
43
+ () => B.map((s) => s.id),
44
+ [B]
45
+ ), a = N(
46
+ () => t.filter((s) => m.has(s.id)),
47
+ [t, m]
48
+ ).length, O = a > 1, X = p.filter(
49
+ (s) => m.has(s)
50
+ ).length, E = p.length > 0 && p.every((s) => m.has(s)), q = X > 0 && !E;
51
+ M(() => {
52
+ const s = new Set(A);
53
+ f((c) => {
47
54
  const o = new Set(
48
- Array.from(t).filter((l) => e.has(l))
55
+ Array.from(c).filter((l) => s.has(l))
49
56
  );
50
- return o.size === t.size ? t : o;
57
+ return o.size === c.size ? c : o;
51
58
  });
52
- }, [W]);
53
- const U = (e) => {
54
- a((t) => {
55
- const o = new Set(t);
56
- return e ? u.forEach((l) => o.add(l)) : u.forEach((l) => o.delete(l)), o;
59
+ }, [A]);
60
+ const G = (s) => {
61
+ f((c) => {
62
+ const o = new Set(c);
63
+ return s ? p.forEach((l) => o.add(l)) : p.forEach((l) => o.delete(l)), o;
57
64
  });
58
- }, M = (e, t) => {
59
- a((o) => {
65
+ }, J = (s, c) => {
66
+ f((o) => {
60
67
  const l = new Set(o);
61
- return t ? l.add(e) : l.delete(e), l;
68
+ return c ? l.add(s) : l.delete(s), l;
62
69
  });
63
- }, y = (e, t, o) => {
64
- if (m === 0) {
65
- b("Select at least one product first.");
70
+ }, I = (s, c, o) => {
71
+ if (a === 0) {
72
+ x("Select at least one product first.");
66
73
  return;
67
74
  }
68
- window.confirm(t) && (b(null), g(e), j(async () => {
75
+ window.confirm(c) && (x(null), D(s), H(async () => {
69
76
  try {
70
- const l = await o(Array.from(n));
77
+ const l = await o(Array.from(m));
71
78
  if (!l.success) {
72
- b(l.error || "Bulk action failed. Please try again."), g(null);
79
+ x(l.error || "Bulk action failed. Please try again."), D(null);
73
80
  return;
74
81
  }
75
- a(/* @__PURE__ */ new Set()), $.refresh();
82
+ f(/* @__PURE__ */ new Set()), U.refresh();
76
83
  } catch (l) {
77
- console.error("Bulk product action failed:", l), b("Bulk action failed. Please try again.");
84
+ console.error("Bulk product action failed:", l), x("Bulk action failed. Please try again.");
78
85
  } finally {
79
- g(null);
86
+ D(null);
80
87
  }
81
88
  }));
82
89
  };
83
- return /* @__PURE__ */ s("div", { className: "rounded-lg border overflow-hidden dark:border-slate-700", children: [
84
- /* @__PURE__ */ s("div", { className: "flex min-h-14 flex-wrap items-center justify-between gap-3 border-b bg-muted/20 px-4 py-3", children: [
85
- /* @__PURE__ */ s("div", { className: "flex min-w-[260px] flex-1 flex-wrap items-center gap-3", children: [
86
- /* @__PURE__ */ s("div", { className: "relative w-full max-w-sm", children: [
87
- /* @__PURE__ */ s(q, { className: "pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground" }, void 0, !1, {
90
+ return /* @__PURE__ */ e("div", { className: "rounded-lg border overflow-hidden dark:border-slate-700", children: [
91
+ /* @__PURE__ */ e("div", { className: "flex min-h-14 flex-wrap items-center justify-between gap-3 border-b bg-muted/20 px-4 py-3", children: [
92
+ /* @__PURE__ */ e("div", { className: "flex min-w-[260px] flex-1 flex-wrap items-center gap-3", children: [
93
+ /* @__PURE__ */ e("div", { className: "relative w-full max-w-sm", children: [
94
+ /* @__PURE__ */ e(se, { className: "pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground" }, void 0, !1, {
88
95
  fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
89
- lineNumber: 214,
96
+ lineNumber: 236,
90
97
  columnNumber: 13
91
98
  }, this),
92
- /* @__PURE__ */ s(
93
- J,
99
+ /* @__PURE__ */ e(
100
+ ie,
94
101
  {
95
- value: k,
96
- onChange: (e) => L(e.target.value),
102
+ value: h,
103
+ onChange: (s) => Q(s.target.value),
97
104
  placeholder: "Search products...",
98
105
  className: "h-9 pl-9",
99
106
  "aria-label": "Search products"
@@ -102,208 +109,213 @@ function de({
102
109
  !1,
103
110
  {
104
111
  fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
105
- lineNumber: 215,
112
+ lineNumber: 237,
106
113
  columnNumber: 13
107
114
  },
108
115
  this
109
116
  )
110
117
  ] }, void 0, !0, {
111
118
  fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
112
- lineNumber: 213,
119
+ lineNumber: 235,
113
120
  columnNumber: 11
114
121
  }, this),
115
- m > 0 ? /* @__PURE__ */ s("span", { className: "text-sm font-medium text-foreground", children: [
116
- m,
122
+ a > 0 ? /* @__PURE__ */ e("span", { className: "text-sm font-medium text-foreground", children: [
123
+ a,
117
124
  " selected"
118
125
  ] }, void 0, !0, {
119
126
  fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
120
- lineNumber: 224,
127
+ lineNumber: 246,
121
128
  columnNumber: 13
122
129
  }, this) : null,
123
- T ? /* @__PURE__ */ s("span", { className: "text-sm text-destructive", children: T }, void 0, !1, {
130
+ C ? /* @__PURE__ */ e("span", { className: "text-sm text-destructive", children: C }, void 0, !1, {
124
131
  fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
125
- lineNumber: 229,
132
+ lineNumber: 251,
126
133
  columnNumber: 13
127
134
  }, this) : null
128
135
  ] }, void 0, !0, {
129
136
  fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
130
- lineNumber: 212,
137
+ lineNumber: 234,
131
138
  columnNumber: 9
132
139
  }, this),
133
- z ? /* @__PURE__ */ s("div", { className: "flex flex-wrap items-center gap-2", children: [
134
- /* @__PURE__ */ s(
135
- h,
140
+ O ? /* @__PURE__ */ e("div", { className: "flex flex-wrap items-center gap-2", children: [
141
+ /* @__PURE__ */ e(
142
+ d,
136
143
  {
137
144
  variant: "outline",
138
145
  size: "sm",
139
- disabled: D,
140
- onClick: () => y(
146
+ disabled: _,
147
+ onClick: () => I(
141
148
  "Moving to draft...",
142
- `Move ${m} selected products to draft?`,
143
- I
149
+ `Move ${a} selected products to draft?`,
150
+ R
144
151
  ),
145
152
  children: [
146
- /* @__PURE__ */ s(F, { className: "mr-2 h-4 w-4" }, void 0, !1, {
153
+ /* @__PURE__ */ e(ce, { className: "mr-2 h-4 w-4" }, void 0, !1, {
147
154
  fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
148
- lineNumber: 246,
155
+ lineNumber: 268,
149
156
  columnNumber: 15
150
157
  }, this),
151
- d === "Moving to draft..." ? d : "Set Draft"
158
+ k === "Moving to draft..." ? k : "Set Draft"
152
159
  ]
153
160
  },
154
161
  void 0,
155
162
  !0,
156
163
  {
157
164
  fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
158
- lineNumber: 234,
165
+ lineNumber: 256,
159
166
  columnNumber: 13
160
167
  },
161
168
  this
162
169
  ),
163
- /* @__PURE__ */ s(
164
- h,
170
+ /* @__PURE__ */ e(
171
+ d,
165
172
  {
166
173
  variant: "destructive",
167
174
  size: "sm",
168
- disabled: D,
169
- onClick: () => y(
175
+ disabled: _,
176
+ onClick: () => I(
170
177
  "Deleting...",
171
- `Delete ${m} selected products? This action cannot be undone.`,
172
- E
178
+ `Delete ${a} selected products? This action cannot be undone.`,
179
+ j
173
180
  ),
174
181
  children: [
175
- /* @__PURE__ */ s(G, { className: "mr-2 h-4 w-4" }, void 0, !1, {
182
+ /* @__PURE__ */ e(le, { className: "mr-2 h-4 w-4" }, void 0, !1, {
176
183
  fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
177
- lineNumber: 261,
184
+ lineNumber: 283,
178
185
  columnNumber: 15
179
186
  }, this),
180
- d === "Deleting..." ? d : "Delete"
187
+ k === "Deleting..." ? k : "Delete"
181
188
  ]
182
189
  },
183
190
  void 0,
184
191
  !0,
185
192
  {
186
193
  fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
187
- lineNumber: 249,
194
+ lineNumber: 271,
188
195
  columnNumber: 13
189
196
  },
190
197
  this
191
198
  )
192
199
  ] }, void 0, !0, {
193
200
  fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
194
- lineNumber: 233,
201
+ lineNumber: 255,
195
202
  columnNumber: 11
196
203
  }, this) : null
197
204
  ] }, void 0, !0, {
198
205
  fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
199
- lineNumber: 211,
206
+ lineNumber: 233,
200
207
  columnNumber: 7
201
208
  }, this),
202
- /* @__PURE__ */ s(O, { children: [
203
- /* @__PURE__ */ s(Y, { children: /* @__PURE__ */ s(B, { children: [
204
- /* @__PURE__ */ s(r, { className: "w-12", children: /* @__PURE__ */ s(
205
- S,
209
+ /* @__PURE__ */ e(re, { children: [
210
+ /* @__PURE__ */ e(ne, { children: /* @__PURE__ */ e(w, { children: [
211
+ /* @__PURE__ */ e(r, { className: "w-12", children: /* @__PURE__ */ e(
212
+ $,
206
213
  {
207
- checked: w ? !0 : R ? "indeterminate" : !1,
208
- onCheckedChange: (e) => U(e === !0),
214
+ checked: E ? !0 : q ? "indeterminate" : !1,
215
+ onCheckedChange: (s) => G(s === !0),
209
216
  "aria-label": "Select all products on this page"
210
217
  },
211
218
  void 0,
212
219
  !1,
213
220
  {
214
221
  fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
215
- lineNumber: 271,
222
+ lineNumber: 293,
216
223
  columnNumber: 15
217
224
  },
218
225
  this
219
226
  ) }, void 0, !1, {
220
227
  fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
221
- lineNumber: 270,
228
+ lineNumber: 292,
229
+ columnNumber: 13
230
+ }, this),
231
+ /* @__PURE__ */ e(r, { children: "Image" }, void 0, !1, {
232
+ fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
233
+ lineNumber: 305,
222
234
  columnNumber: 13
223
235
  }, this),
224
- /* @__PURE__ */ s(r, { children: "Image" }, void 0, !1, {
236
+ /* @__PURE__ */ e(r, { children: "Title" }, void 0, !1, {
225
237
  fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
226
- lineNumber: 283,
238
+ lineNumber: 306,
227
239
  columnNumber: 13
228
240
  }, this),
229
- /* @__PURE__ */ s(r, { children: "Title" }, void 0, !1, {
241
+ /* @__PURE__ */ e(r, { children: "SKU" }, void 0, !1, {
230
242
  fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
231
- lineNumber: 284,
243
+ lineNumber: 307,
232
244
  columnNumber: 13
233
245
  }, this),
234
- /* @__PURE__ */ s(r, { children: "SKU" }, void 0, !1, {
246
+ /* @__PURE__ */ e(r, { children: "Price" }, void 0, !1, {
235
247
  fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
236
- lineNumber: 285,
248
+ lineNumber: 308,
237
249
  columnNumber: 13
238
250
  }, this),
239
- /* @__PURE__ */ s(r, { children: "Price" }, void 0, !1, {
251
+ /* @__PURE__ */ e(r, { children: "Language" }, void 0, !1, {
240
252
  fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
241
- lineNumber: 286,
253
+ lineNumber: 309,
242
254
  columnNumber: 13
243
255
  }, this),
244
- /* @__PURE__ */ s(r, { children: "Language" }, void 0, !1, {
256
+ /* @__PURE__ */ e(r, { children: "SEO" }, void 0, !1, {
245
257
  fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
246
- lineNumber: 287,
258
+ lineNumber: 310,
247
259
  columnNumber: 13
248
260
  }, this),
249
- /* @__PURE__ */ s(r, { children: "Stock" }, void 0, !1, {
261
+ /* @__PURE__ */ e(r, { children: "Stock" }, void 0, !1, {
250
262
  fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
251
- lineNumber: 288,
263
+ lineNumber: 311,
252
264
  columnNumber: 13
253
265
  }, this),
254
- /* @__PURE__ */ s(r, { children: "Status" }, void 0, !1, {
266
+ /* @__PURE__ */ e(r, { children: "Status" }, void 0, !1, {
255
267
  fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
256
- lineNumber: 289,
268
+ lineNumber: 312,
257
269
  columnNumber: 13
258
270
  }, this),
259
- /* @__PURE__ */ s(r, { className: "text-right", children: "Actions" }, void 0, !1, {
271
+ /* @__PURE__ */ e(r, { className: "text-right", children: "Actions" }, void 0, !1, {
260
272
  fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
261
- lineNumber: 290,
273
+ lineNumber: 313,
262
274
  columnNumber: 13
263
275
  }, this)
264
276
  ] }, void 0, !0, {
265
277
  fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
266
- lineNumber: 269,
278
+ lineNumber: 291,
267
279
  columnNumber: 11
268
280
  }, this) }, void 0, !1, {
269
281
  fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
270
- lineNumber: 268,
282
+ lineNumber: 290,
271
283
  columnNumber: 9
272
284
  }, this),
273
- /* @__PURE__ */ s(Z, { children: p.length > 0 ? p.map((e) => {
274
- const t = te(
275
- e.product_media?.[0]?.media?.file_path || e.product_media?.[0]?.media?.object_key
285
+ /* @__PURE__ */ e(me, { children: B.length > 0 ? B.map((s) => {
286
+ const c = xe(
287
+ s.product_media?.[0]?.media?.file_path || s.product_media?.[0]?.media?.object_key
276
288
  );
277
- return /* @__PURE__ */ s(
278
- B,
289
+ return /* @__PURE__ */ e(
290
+ w,
279
291
  {
280
- "data-state": n.has(e.id) ? "selected" : void 0,
292
+ "data-state": m.has(s.id) ? "selected" : void 0,
281
293
  children: [
282
- /* @__PURE__ */ s(i, { children: /* @__PURE__ */ s(
283
- S,
294
+ /* @__PURE__ */ e(i, { children: /* @__PURE__ */ e(
295
+ $,
284
296
  {
285
- checked: n.has(e.id),
286
- onCheckedChange: (o) => M(e.id, o === !0),
287
- "aria-label": `Select ${e.title}`
297
+ checked: m.has(s.id),
298
+ onCheckedChange: (o) => J(s.id, o === !0),
299
+ "aria-label": `Select ${s.title}`
288
300
  },
289
301
  void 0,
290
302
  !1,
291
303
  {
292
304
  fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
293
- lineNumber: 307,
305
+ lineNumber: 330,
294
306
  columnNumber: 21
295
307
  },
296
308
  this
297
309
  ) }, void 0, !1, {
298
310
  fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
299
- lineNumber: 306,
311
+ lineNumber: 329,
300
312
  columnNumber: 19
301
313
  }, this),
302
- /* @__PURE__ */ s(i, { children: t ? /* @__PURE__ */ s(
303
- Q,
314
+ /* @__PURE__ */ e(i, { children: c ? /* @__PURE__ */ e(
315
+ Y,
304
316
  {
305
- src: t,
306
- alt: e.title,
317
+ src: c,
318
+ alt: s.title,
307
319
  width: 40,
308
320
  height: 40,
309
321
  className: "w-10 h-10 object-cover rounded"
@@ -312,164 +324,304 @@ function de({
312
324
  !1,
313
325
  {
314
326
  fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
315
- lineNumber: 317,
327
+ lineNumber: 340,
316
328
  columnNumber: 23
317
329
  },
318
330
  this
319
- ) : /* @__PURE__ */ s("div", { className: "w-10 h-10 bg-gray-200 rounded flex items-center justify-center text-xs text-gray-500", children: "No Img" }, void 0, !1, {
331
+ ) : /* @__PURE__ */ e("div", { className: "w-10 h-10 bg-gray-200 rounded flex items-center justify-center text-xs text-gray-500", children: "No Img" }, void 0, !1, {
320
332
  fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
321
- lineNumber: 325,
333
+ lineNumber: 348,
322
334
  columnNumber: 23
323
335
  }, this) }, void 0, !1, {
324
336
  fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
325
- lineNumber: 315,
337
+ lineNumber: 338,
326
338
  columnNumber: 19
327
339
  }, this),
328
- /* @__PURE__ */ s(i, { className: "font-medium", children: /* @__PURE__ */ s(v, { href: `/cms/products/${e.id}/edit`, className: "hover:underline", children: e.title }, void 0, !1, {
340
+ /* @__PURE__ */ e(i, { className: "font-medium", children: /* @__PURE__ */ e(S, { href: `/cms/products/${s.id}/edit`, className: "hover:underline", children: s.title }, void 0, !1, {
329
341
  fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
330
- lineNumber: 331,
342
+ lineNumber: 354,
331
343
  columnNumber: 21
332
344
  }, this) }, void 0, !1, {
333
345
  fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
334
- lineNumber: 330,
346
+ lineNumber: 353,
335
347
  columnNumber: 19
336
348
  }, this),
337
- /* @__PURE__ */ s(i, { children: e.sku }, void 0, !1, {
349
+ /* @__PURE__ */ e(i, { children: s.sku }, void 0, !1, {
338
350
  fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
339
- lineNumber: 335,
351
+ lineNumber: 358,
340
352
  columnNumber: 19
341
353
  }, this),
342
- /* @__PURE__ */ s(i, { children: /* @__PURE__ */ s("div", { className: "flex items-baseline gap-2", children: [
343
- /* @__PURE__ */ s("span", { className: e.sale_price ? "font-semibold text-primary" : "", children: typeof (e.sale_price ?? e.price) == "number" ? _(
344
- e.sale_price ?? e.price ?? 0,
345
- P
354
+ /* @__PURE__ */ e(i, { children: /* @__PURE__ */ e("div", { className: "flex items-baseline gap-2", children: [
355
+ /* @__PURE__ */ e("span", { className: s.sale_price ? "font-semibold text-primary" : "", children: typeof (s.sale_price ?? s.price) == "number" ? z(
356
+ s.sale_price ?? s.price ?? 0,
357
+ y
346
358
  ) : "N/A" }, void 0, !1, {
347
359
  fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
348
- lineNumber: 338,
360
+ lineNumber: 361,
349
361
  columnNumber: 23
350
362
  }, this),
351
- e.sale_price ? /* @__PURE__ */ s("span", { className: "text-sm text-muted-foreground line-through", children: _(e.price ?? 0, P) }, void 0, !1, {
363
+ s.sale_price ? /* @__PURE__ */ e("span", { className: "text-sm text-muted-foreground line-through", children: z(s.price ?? 0, y) }, void 0, !1, {
352
364
  fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
353
- lineNumber: 347,
365
+ lineNumber: 370,
354
366
  columnNumber: 25
355
367
  }, this) : null
356
368
  ] }, void 0, !0, {
357
369
  fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
358
- lineNumber: 337,
370
+ lineNumber: 360,
359
371
  columnNumber: 21
360
372
  }, this) }, void 0, !1, {
361
373
  fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
362
- lineNumber: 336,
374
+ lineNumber: 359,
363
375
  columnNumber: 19
364
376
  }, this),
365
- /* @__PURE__ */ s(i, { children: /* @__PURE__ */ s(ee, { variant: "outline", children: x[String(e.language_id)] || "N/A" }, void 0, !1, {
377
+ /* @__PURE__ */ e(i, { children: /* @__PURE__ */ e(ue, { variant: "outline", children: T[String(s.language_id)] || "N/A" }, void 0, !1, {
366
378
  fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
367
- lineNumber: 354,
379
+ lineNumber: 377,
368
380
  columnNumber: 21
369
381
  }, this) }, void 0, !1, {
370
382
  fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
371
- lineNumber: 353,
383
+ lineNumber: 376,
372
384
  columnNumber: 19
373
385
  }, this),
374
- /* @__PURE__ */ s(i, { children: e.stock }, void 0, !1, {
386
+ /* @__PURE__ */ e(i, { children: /* @__PURE__ */ e(ae, { score: s.seo_score }, void 0, !1, {
375
387
  fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
376
- lineNumber: 358,
388
+ lineNumber: 382,
389
+ columnNumber: 21
390
+ }, this) }, void 0, !1, {
391
+ fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
392
+ lineNumber: 381,
393
+ columnNumber: 19
394
+ }, this),
395
+ /* @__PURE__ */ e(i, { children: s.stock }, void 0, !1, {
396
+ fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
397
+ lineNumber: 384,
377
398
  columnNumber: 19
378
399
  }, this),
379
- /* @__PURE__ */ s(i, { children: /* @__PURE__ */ s(
400
+ /* @__PURE__ */ e(i, { children: /* @__PURE__ */ e(
380
401
  "span",
381
402
  {
382
- className: `px-2 py-1 rounded text-xs ${e.status === "active" ? "bg-green-100 text-green-800" : e.status === "archived" ? "bg-gray-100 text-gray-800" : "bg-yellow-100 text-yellow-800"}`,
383
- children: e.status
403
+ className: `px-2 py-1 rounded text-xs ${s.status === "active" ? "bg-green-100 text-green-800" : s.status === "archived" ? "bg-gray-100 text-gray-800" : "bg-yellow-100 text-yellow-800"}`,
404
+ children: s.status
384
405
  },
385
406
  void 0,
386
407
  !1,
387
408
  {
388
409
  fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
389
- lineNumber: 360,
410
+ lineNumber: 386,
390
411
  columnNumber: 21
391
412
  },
392
413
  this
393
414
  ) }, void 0, !1, {
394
415
  fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
395
- lineNumber: 359,
416
+ lineNumber: 385,
396
417
  columnNumber: 19
397
418
  }, this),
398
- /* @__PURE__ */ s(i, { className: "text-right flex justify-end gap-2 items-center", children: [
399
- e.slug ? /* @__PURE__ */ s(v, { href: `/product/${e.slug}`, target: "_blank", rel: "noopener noreferrer", children: /* @__PURE__ */ s(h, { variant: "outline", size: "sm", children: "View Product" }, void 0, !1, {
419
+ /* @__PURE__ */ e(i, { className: "text-right flex justify-end gap-2 items-center", children: [
420
+ s.slug ? /* @__PURE__ */ e(S, { href: `/product/${s.slug}`, target: "_blank", rel: "noopener noreferrer", children: /* @__PURE__ */ e(d, { variant: "outline", size: "sm", children: "View Product" }, void 0, !1, {
400
421
  fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
401
- lineNumber: 375,
422
+ lineNumber: 401,
402
423
  columnNumber: 25
403
424
  }, this) }, void 0, !1, {
404
425
  fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
405
- lineNumber: 374,
426
+ lineNumber: 400,
406
427
  columnNumber: 23
407
428
  }, this) : null,
408
- /* @__PURE__ */ s(v, { href: `/cms/products/${e.id}/edit`, children: /* @__PURE__ */ s(h, { variant: "ghost", size: "sm", children: "Edit" }, void 0, !1, {
429
+ /* @__PURE__ */ e(S, { href: `/cms/products/${s.id}/edit`, children: /* @__PURE__ */ e(d, { variant: "ghost", size: "sm", children: "Edit" }, void 0, !1, {
409
430
  fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
410
- lineNumber: 381,
431
+ lineNumber: 407,
411
432
  columnNumber: 23
412
433
  }, this) }, void 0, !1, {
413
434
  fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
414
- lineNumber: 380,
435
+ lineNumber: 406,
415
436
  columnNumber: 21
416
437
  }, this),
417
- /* @__PURE__ */ s(
418
- se,
438
+ /* @__PURE__ */ e(
439
+ he,
419
440
  {
420
- productName: e.title,
441
+ productName: s.title,
421
442
  isIcon: !0,
422
- deleteAction: () => C(e.id)
443
+ deleteAction: () => V(s.id)
423
444
  },
424
445
  void 0,
425
446
  !1,
426
447
  {
427
448
  fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
428
- lineNumber: 385,
449
+ lineNumber: 411,
429
450
  columnNumber: 21
430
451
  },
431
452
  this
432
453
  )
433
454
  ] }, void 0, !0, {
434
455
  fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
435
- lineNumber: 372,
456
+ lineNumber: 398,
436
457
  columnNumber: 19
437
458
  }, this)
438
459
  ]
439
460
  },
440
- e.id,
461
+ s.id,
441
462
  !0,
442
463
  {
443
464
  fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
444
- lineNumber: 302,
465
+ lineNumber: 325,
445
466
  columnNumber: 17
446
467
  },
447
468
  this
448
469
  );
449
- }) : /* @__PURE__ */ s(B, { children: /* @__PURE__ */ s(i, { colSpan: 9, className: "text-center py-10", children: c.length === 0 ? "No products found." : "No products match your search." }, void 0, !1, {
470
+ }) : /* @__PURE__ */ e(w, { children: /* @__PURE__ */ e(i, { colSpan: 10, className: "text-center py-10", children: t.length === 0 ? "No products found." : "No products match your search." }, void 0, !1, {
450
471
  fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
451
- lineNumber: 396,
472
+ lineNumber: 422,
452
473
  columnNumber: 15
453
474
  }, this) }, void 0, !1, {
454
475
  fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
455
- lineNumber: 395,
476
+ lineNumber: 421,
456
477
  columnNumber: 13
457
478
  }, this) }, void 0, !1, {
458
479
  fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
459
- lineNumber: 293,
480
+ lineNumber: 316,
460
481
  columnNumber: 9
461
482
  }, this)
462
483
  ] }, void 0, !0, {
463
484
  fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
464
- lineNumber: 267,
485
+ lineNumber: 289,
465
486
  columnNumber: 7
487
+ }, this),
488
+ v > 0 && /* @__PURE__ */ e("div", { className: "flex flex-col sm:flex-row items-center justify-between gap-4 px-2 py-4 text-sm text-muted-foreground", children: [
489
+ /* @__PURE__ */ e("div", { className: "flex items-center gap-2", children: [
490
+ /* @__PURE__ */ e("span", { children: "Rows per page:" }, void 0, !1, {
491
+ fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
492
+ lineNumber: 432,
493
+ columnNumber: 13
494
+ }, this),
495
+ /* @__PURE__ */ e(
496
+ be,
497
+ {
498
+ value: String(n),
499
+ onValueChange: (s) => {
500
+ K(Number(s)), g(1);
501
+ },
502
+ children: [
503
+ /* @__PURE__ */ e(de, { className: "h-8 w-[70px]", children: /* @__PURE__ */ e(pe, { placeholder: String(n) }, void 0, !1, {
504
+ fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
505
+ lineNumber: 441,
506
+ columnNumber: 17
507
+ }, this) }, void 0, !1, {
508
+ fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
509
+ lineNumber: 440,
510
+ columnNumber: 15
511
+ }, this),
512
+ /* @__PURE__ */ e(Ne, { side: "top", children: [10, 25, 50, 100].map((s) => /* @__PURE__ */ e(fe, { value: String(s), children: s }, s, !1, {
513
+ fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
514
+ lineNumber: 445,
515
+ columnNumber: 19
516
+ }, this)) }, void 0, !1, {
517
+ fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
518
+ lineNumber: 443,
519
+ columnNumber: 15
520
+ }, this)
521
+ ]
522
+ },
523
+ void 0,
524
+ !0,
525
+ {
526
+ fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
527
+ lineNumber: 433,
528
+ columnNumber: 13
529
+ },
530
+ this
531
+ ),
532
+ /* @__PURE__ */ e("span", { className: "ml-2", children: [
533
+ "Showing ",
534
+ (u - 1) * n + 1,
535
+ " to ",
536
+ Math.min(u * n, v),
537
+ " of ",
538
+ v,
539
+ " products"
540
+ ] }, void 0, !0, {
541
+ fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
542
+ lineNumber: 451,
543
+ columnNumber: 13
544
+ }, this)
545
+ ] }, void 0, !0, {
546
+ fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
547
+ lineNumber: 431,
548
+ columnNumber: 11
549
+ }, this),
550
+ /* @__PURE__ */ e("div", { className: "flex items-center gap-2", children: [
551
+ /* @__PURE__ */ e("span", { children: [
552
+ "Page ",
553
+ u,
554
+ " of ",
555
+ P
556
+ ] }, void 0, !0, {
557
+ fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
558
+ lineNumber: 457,
559
+ columnNumber: 13
560
+ }, this),
561
+ /* @__PURE__ */ e(
562
+ d,
563
+ {
564
+ variant: "outline",
565
+ size: "sm",
566
+ className: "h-8 w-8 p-0",
567
+ onClick: () => g((s) => Math.max(1, s - 1)),
568
+ disabled: u <= 1,
569
+ "aria-label": "Previous page",
570
+ children: /* @__PURE__ */ e(te, { className: "h-4 w-4" }, void 0, !1, {
571
+ fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
572
+ lineNumber: 468,
573
+ columnNumber: 15
574
+ }, this)
575
+ },
576
+ void 0,
577
+ !1,
578
+ {
579
+ fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
580
+ lineNumber: 460,
581
+ columnNumber: 13
582
+ },
583
+ this
584
+ ),
585
+ /* @__PURE__ */ e(
586
+ d,
587
+ {
588
+ variant: "outline",
589
+ size: "sm",
590
+ className: "h-8 w-8 p-0",
591
+ onClick: () => g((s) => Math.min(P, s + 1)),
592
+ disabled: u >= P,
593
+ "aria-label": "Next page",
594
+ children: /* @__PURE__ */ e(oe, { className: "h-4 w-4" }, void 0, !1, {
595
+ fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
596
+ lineNumber: 478,
597
+ columnNumber: 15
598
+ }, this)
599
+ },
600
+ void 0,
601
+ !1,
602
+ {
603
+ fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
604
+ lineNumber: 470,
605
+ columnNumber: 13
606
+ },
607
+ this
608
+ )
609
+ ] }, void 0, !0, {
610
+ fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
611
+ lineNumber: 456,
612
+ columnNumber: 11
613
+ }, this)
614
+ ] }, void 0, !0, {
615
+ fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
616
+ lineNumber: 430,
617
+ columnNumber: 9
466
618
  }, this)
467
619
  ] }, void 0, !0, {
468
620
  fileName: "D:/Websites/nextblock-production/libs/ecommerce/src/lib/pages/cms/products/components/ProductsBulkTable.tsx",
469
- lineNumber: 210,
621
+ lineNumber: 232,
470
622
  columnNumber: 5
471
623
  }, this);
472
624
  }
473
625
  export {
474
- de as ProductsBulkTable
626
+ ye as ProductsBulkTable
475
627
  };