@webx-ui/module-catalog 0.8.9 → 0.9.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.
@@ -0,0 +1,603 @@
1
+ import { defineComponent as Ce, ref as c, computed as h, onMounted as Se, openBlock as u, createElementBlock as v, createVNode as o, unref as e, withCtx as i, createBlock as _, createElementVNode as d, createCommentVNode as b, createTextVNode as p, toDisplayString as s, Fragment as F, withModifiers as ie, renderList as ue } from "vue";
2
+ import { useRoute as Ue, useRouter as We } from "vue-router";
3
+ import { useAdmin as Ee, useChunkedUpload as ze, useTranslate as Ie, useErrorText as Oe, WxScreenHead as Pe, WxScreen as Ne } from "@webx-ui/module-admin";
4
+ import { toast as V, WxCard as M, WxSteps as Te, WxStep as X, WxFormItem as J, WxSelect as B, WxSegmented as je, WxText as N, WxProgress as Ae, WxButton as m, WxInput as se, WxAlert as q } from "@webx-ui/core";
5
+ import { j as Fe, a as Me, I as re, m as Be, _ as qe } from "./index-BTEbHnJ5.js";
6
+ const De = { class: "wx-catalog-import" }, He = { class: "wx-catalog-import__file" }, Le = {
7
+ key: 1,
8
+ class: "wx-catalog-import__upload"
9
+ }, Re = {
10
+ key: 0,
11
+ class: "wx-catalog-import__progress",
12
+ role: "status"
13
+ }, Ge = { class: "wx-catalog-import__row" }, Xe = { class: "wx-catalog-import__nav" }, Je = {
14
+ key: 0,
15
+ class: "wx-catalog-import__read-as"
16
+ }, Ke = ["aria-label"], Qe = {
17
+ class: "wx-catalog-import__map-head",
18
+ role: "row"
19
+ }, Ye = { role: "columnheader" }, Ze = { role: "columnheader" }, el = {
20
+ class: "wx-catalog-import__header",
21
+ role: "cell"
22
+ }, ll = { class: "wx-catalog-import__cell" }, al = {
23
+ key: 0,
24
+ class: "wx-catalog-import__key"
25
+ }, tl = {
26
+ key: 0,
27
+ class: "wx-catalog-import__samples"
28
+ }, nl = {
29
+ class: "wx-catalog-import__target",
30
+ role: "cell"
31
+ }, ol = { class: "wx-catalog-import__nav" }, il = { class: "wx-catalog-import__nav" }, ul = { class: "wx-catalog-import__row" }, sl = /* @__PURE__ */ Ce({
32
+ __name: "ExchangeImportPage",
33
+ props: {
34
+ base: { default: "/catalog" }
35
+ },
36
+ setup(pe) {
37
+ const K = pe, Q = Ee(), U = Fe(Q), y = ze({ admin: Q }), ce = Ue(), de = We();
38
+ Me();
39
+ const n = Ie("webx-catalog"), W = Oe(), g = c(0), D = c("upload"), T = c(""), $ = c(null), j = c(""), r = c(null), E = c(!1), z = c(null), I = c(null), Y = c([]), k = c([]), C = c(null), x = c({}), w = c({ ...re }), O = c(""), H = c(!1), S = c(null), Z = c(null), L = h(() => k.value.find((a) => a.id === C.value) ?? null);
40
+ Se(async () => {
41
+ try {
42
+ const [l, t] = await Promise.all([U.columns(), U.profiles("import")]);
43
+ Y.value = l, k.value = t;
44
+ } catch (l) {
45
+ V.danger(W(l));
46
+ }
47
+ const a = Number(ce.query.profile);
48
+ Number.isInteger(a) && k.value.some((l) => l.id === a) && ee(a);
49
+ });
50
+ function ee(a) {
51
+ C.value = a;
52
+ const l = k.value.find((t) => t.id === a);
53
+ w.value = { ...re, ...l?.options ?? {} }, z.value = typeof l?.options.encoding == "string" ? l.options.encoding : null, I.value = typeof l?.options.delimiter == "string" ? l.options.delimiter : null, r.value && (x.value = le(r.value));
54
+ }
55
+ const ve = h(() => [
56
+ { value: "upload", label: n("panel.exchange-source-upload"), icon: "upload" },
57
+ { value: "url", label: n("panel.exchange-source-url"), icon: "link" }
58
+ ]), me = h(
59
+ () => y.state.value === "uploading" || y.state.value === "paused"
60
+ );
61
+ async function ge(a) {
62
+ const l = a.target, t = l.files?.[0];
63
+ if (l.value = "", !!t) {
64
+ j.value = t.name, r.value = null;
65
+ try {
66
+ const f = await y.start(t, Be);
67
+ if (f === null) return;
68
+ $.value = { upload_id: f }, await R();
69
+ } catch (f) {
70
+ V.danger(W(f));
71
+ }
72
+ }
73
+ }
74
+ async function fe() {
75
+ const a = T.value.trim();
76
+ a !== "" && (j.value = a, $.value = { url: a }, await R());
77
+ }
78
+ function le(a) {
79
+ const l = L.value?.mapping;
80
+ return !l || Array.isArray(l) ? { ...a.mapping } : Object.fromEntries(
81
+ a.header.filter((t) => t.trim() !== "").map((t) => [t, l[t] ?? a.mapping[t] ?? null])
82
+ );
83
+ }
84
+ async function R() {
85
+ if ($.value !== null) {
86
+ E.value = !0;
87
+ try {
88
+ const a = await U.inspect($.value, {
89
+ encoding: z.value ?? void 0,
90
+ delimiter: I.value ?? void 0
91
+ });
92
+ r.value = a, x.value = le(a), g.value === 0 && (g.value = 1);
93
+ } catch (a) {
94
+ V.danger(W(a));
95
+ } finally {
96
+ E.value = !1;
97
+ }
98
+ }
99
+ }
100
+ const xe = h(
101
+ () => ["UTF-8", "Windows-1252", "Windows-1251", "ISO-8859-1"].map((a) => ({
102
+ value: a,
103
+ label: a
104
+ }))
105
+ ), he = h(() => [
106
+ { value: ",", label: "," },
107
+ { value: ";", label: ";" },
108
+ { value: " ", label: n("panel.exchange-delimiter-tab") }
109
+ ]), _e = h(
110
+ () => Y.value.flatMap((a) => [
111
+ { value: a.key, label: `${a.label} · ${a.key}` },
112
+ ...a.locales.map((l) => ({
113
+ value: `${a.key}@${l}`,
114
+ label: `${a.label} (${l.toUpperCase()}) · ${a.key}@${l}`
115
+ }))
116
+ ])
117
+ ), G = h(
118
+ () => (r.value?.header ?? []).map((a, l) => ({ cell: a.trim(), index: l })).filter((a) => a.cell !== "")
119
+ );
120
+ function be(a) {
121
+ const l = new Set(
122
+ Object.entries(x.value).filter(([t, f]) => t !== a && f).map(([, t]) => t)
123
+ );
124
+ return _e.value.map((t) => ({ ...t, disabled: l.has(String(t.value)) }));
125
+ }
126
+ function ae(a) {
127
+ return (r.value?.sample ?? []).map((l) => l[a] ?? "").filter((l) => l !== "");
128
+ }
129
+ const te = h(() => Object.values(x.value).filter(Boolean).length), A = h(
130
+ () => !Object.values(x.value).includes(String(w.value.key ?? "sku"))
131
+ );
132
+ function ye(a, l) {
133
+ x.value = {
134
+ ...x.value,
135
+ [a]: l === null || l === "" ? null : String(l)
136
+ };
137
+ }
138
+ function ne() {
139
+ return {
140
+ ...C.value !== null ? { profile_id: C.value } : {},
141
+ mapping: x.value,
142
+ options: {
143
+ ...w.value,
144
+ ...r.value?.format === "csv" ? { encoding: z.value ?? void 0, delimiter: I.value ?? void 0 } : {},
145
+ format: r.value?.format
146
+ }
147
+ };
148
+ }
149
+ async function oe(a) {
150
+ if ($.value !== null) {
151
+ S.value = a ? "check" : "run";
152
+ try {
153
+ const l = await U.startImport($.value, ne(), a);
154
+ V.success(n(a ? "panel.exchange-checked" : "panel.exchange-started")), de.push({ path: `${K.base}/exchange`, query: { run: String(l.id) } });
155
+ } catch (l) {
156
+ V.danger(W(l));
157
+ } finally {
158
+ S.value = null;
159
+ }
160
+ }
161
+ }
162
+ async function ke() {
163
+ const a = O.value.trim();
164
+ if (!(a === "" || r.value === null)) {
165
+ H.value = !0;
166
+ try {
167
+ const l = ne(), t = await U.createProfile({
168
+ name: a,
169
+ direction: "import",
170
+ format: r.value.format,
171
+ options: l.options,
172
+ mapping: Object.fromEntries(
173
+ Object.entries(l.mapping).filter((f) => !!f[1])
174
+ )
175
+ });
176
+ k.value = [...k.value, t], C.value = t.id, O.value = "", V.success(n("panel.exchange-profile-saved"));
177
+ } catch (l) {
178
+ V.danger(W(l));
179
+ } finally {
180
+ H.value = !1;
181
+ }
182
+ }
183
+ }
184
+ const we = h(
185
+ () => k.value.map((a) => ({ value: a.id, label: a.name }))
186
+ ), P = h(() => L.value !== null && L.value.last_run_id === null);
187
+ function Ve(a) {
188
+ a < g.value && (g.value = a);
189
+ }
190
+ return (a, l) => (u(), v("div", De, [
191
+ o(e(Pe), {
192
+ back: `${K.base}/exchange`,
193
+ "back-label": e(n)("panel.exchange-title"),
194
+ title: e(n)("panel.exchange-import-title"),
195
+ subtitle: e(n)("panel.exchange-import-help")
196
+ }, null, 8, ["back", "back-label", "title", "subtitle"]),
197
+ o(e(M), null, {
198
+ default: i(() => [
199
+ o(e(Te), {
200
+ current: g.value,
201
+ clickable: "",
202
+ "min-step-width": 140,
203
+ "aria-label": e(n)("panel.exchange-import-title"),
204
+ onChange: Ve
205
+ }, {
206
+ default: i(() => [
207
+ o(e(X), {
208
+ title: e(n)("panel.exchange-step-file"),
209
+ description: e(n)("panel.exchange-step-file-help")
210
+ }, null, 8, ["title", "description"]),
211
+ o(e(X), {
212
+ title: e(n)("panel.exchange-step-mapping"),
213
+ description: e(n)("panel.exchange-step-mapping-help")
214
+ }, null, 8, ["title", "description"]),
215
+ o(e(X), {
216
+ title: e(n)("panel.exchange-step-settings"),
217
+ description: e(n)("panel.exchange-step-settings-help")
218
+ }, null, 8, ["title", "description"])
219
+ ]),
220
+ _: 1
221
+ }, 8, ["current", "aria-label"])
222
+ ]),
223
+ _: 1
224
+ }),
225
+ g.value === 0 ? (u(), _(e(M), { key: 0 }, {
226
+ default: i(() => [
227
+ d("div", He, [
228
+ k.value.length > 0 ? (u(), _(e(J), {
229
+ key: 0,
230
+ label: e(n)("panel.exchange-use-profile")
231
+ }, {
232
+ default: i(() => [
233
+ o(e(B), {
234
+ "model-value": C.value,
235
+ options: we.value,
236
+ clearable: "",
237
+ placeholder: e(n)("panel.exchange-use-profile-none"),
238
+ "aria-label": e(n)("panel.exchange-use-profile"),
239
+ "onUpdate:modelValue": l[0] || (l[0] = (t) => ee(t ?? null))
240
+ }, null, 8, ["model-value", "options", "placeholder", "aria-label"])
241
+ ]),
242
+ _: 1
243
+ }, 8, ["label"])) : b("", !0),
244
+ o(e(je), {
245
+ modelValue: D.value,
246
+ "onUpdate:modelValue": l[1] || (l[1] = (t) => D.value = t),
247
+ options: ve.value,
248
+ "aria-label": e(n)("panel.exchange-step-file")
249
+ }, null, 8, ["modelValue", "options", "aria-label"]),
250
+ D.value === "upload" ? (u(), v("div", Le, [
251
+ d("input", {
252
+ ref_key: "picker",
253
+ ref: Z,
254
+ type: "file",
255
+ accept: ".csv,.txt,.xlsx",
256
+ hidden: "",
257
+ onChange: ge
258
+ }, null, 544),
259
+ me.value ? (u(), v("div", Re, [
260
+ o(e(N), {
261
+ size: "sm",
262
+ weight: "medium",
263
+ truncate: ""
264
+ }, {
265
+ default: i(() => [
266
+ p(s(j.value), 1)
267
+ ]),
268
+ _: 1
269
+ }),
270
+ o(e(Ae), {
271
+ value: Math.round(e(y).progress.value * 100),
272
+ "aria-label": e(n)("panel.exchange-uploading")
273
+ }, null, 8, ["value", "aria-label"]),
274
+ d("div", Ge, [
275
+ e(y).state.value === "uploading" ? (u(), _(e(m), {
276
+ key: 0,
277
+ size: "sm",
278
+ variant: "outline",
279
+ onClick: l[2] || (l[2] = (t) => e(y).pause())
280
+ }, {
281
+ default: i(() => [
282
+ p(s(e(n)("panel.exchange-pause")), 1)
283
+ ]),
284
+ _: 1
285
+ })) : (u(), _(e(m), {
286
+ key: 1,
287
+ size: "sm",
288
+ variant: "outline",
289
+ onClick: l[3] || (l[3] = (t) => e(y).resume())
290
+ }, {
291
+ default: i(() => [
292
+ p(s(e(n)("panel.exchange-resume")), 1)
293
+ ]),
294
+ _: 1
295
+ })),
296
+ o(e(m), {
297
+ size: "sm",
298
+ variant: "text",
299
+ onClick: l[4] || (l[4] = (t) => e(y).cancel())
300
+ }, {
301
+ default: i(() => [
302
+ p(s(e(n)("panel.exchange-cancel")), 1)
303
+ ]),
304
+ _: 1
305
+ })
306
+ ])
307
+ ])) : (u(), v(F, { key: 1 }, [
308
+ o(e(m), {
309
+ icon: "upload",
310
+ loading: E.value,
311
+ onClick: l[5] || (l[5] = (t) => Z.value?.click())
312
+ }, {
313
+ default: i(() => [
314
+ p(s(e(n)("panel.exchange-choose-file")), 1)
315
+ ]),
316
+ _: 1
317
+ }, 8, ["loading"]),
318
+ o(e(N), {
319
+ size: "sm",
320
+ tone: "muted"
321
+ }, {
322
+ default: i(() => [
323
+ p(s(e(n)("panel.exchange-file-help")), 1)
324
+ ]),
325
+ _: 1
326
+ })
327
+ ], 64))
328
+ ])) : (u(), v("form", {
329
+ key: 2,
330
+ class: "wx-catalog-import__url",
331
+ onSubmit: ie(fe, ["prevent"])
332
+ }, [
333
+ o(e(J), {
334
+ label: e(n)("panel.exchange-url"),
335
+ help: e(n)("panel.exchange-url-help")
336
+ }, {
337
+ default: i(() => [
338
+ o(e(se), {
339
+ modelValue: T.value,
340
+ "onUpdate:modelValue": l[6] || (l[6] = (t) => T.value = t),
341
+ type: "url",
342
+ placeholder: "https://"
343
+ }, null, 8, ["modelValue"])
344
+ ]),
345
+ _: 1
346
+ }, 8, ["label", "help"]),
347
+ o(e(m), {
348
+ "native-type": "submit",
349
+ loading: E.value,
350
+ disabled: T.value.trim() === "",
351
+ class: "wx-catalog-import__read"
352
+ }, {
353
+ default: i(() => [
354
+ p(s(e(n)("panel.exchange-read")), 1)
355
+ ]),
356
+ _: 1
357
+ }, 8, ["loading", "disabled"])
358
+ ], 32)),
359
+ r.value ? (u(), _(e(N), {
360
+ key: 3,
361
+ size: "sm",
362
+ tone: "muted"
363
+ }, {
364
+ default: i(() => [
365
+ p(s(j.value) + " · " + s(r.value.format.toUpperCase()), 1)
366
+ ]),
367
+ _: 1
368
+ })) : b("", !0)
369
+ ]),
370
+ d("div", Xe, [
371
+ l[17] || (l[17] = d("span", null, null, -1)),
372
+ o(e(m), {
373
+ type: "primary",
374
+ disabled: r.value === null,
375
+ onClick: l[7] || (l[7] = (t) => g.value = 1)
376
+ }, {
377
+ default: i(() => [
378
+ p(s(e(n)("panel.exchange-next")), 1)
379
+ ]),
380
+ _: 1
381
+ }, 8, ["disabled"])
382
+ ])
383
+ ]),
384
+ _: 1
385
+ })) : g.value === 1 && r.value ? (u(), _(e(M), { key: 1 }, {
386
+ default: i(() => [
387
+ r.value.format === "csv" ? (u(), v("div", Je, [
388
+ o(e(N), {
389
+ size: "sm",
390
+ tone: "muted"
391
+ }, {
392
+ default: i(() => [
393
+ p(s(e(n)("panel.exchange-read-as")), 1)
394
+ ]),
395
+ _: 1
396
+ }),
397
+ o(e(B), {
398
+ modelValue: z.value,
399
+ "onUpdate:modelValue": l[8] || (l[8] = (t) => z.value = t),
400
+ options: xe.value,
401
+ clearable: "",
402
+ size: "sm",
403
+ placeholder: `${e(n)("panel.exchange-encoding")}: ${r.value.options.encoding ?? e(n)("panel.exchange-detect")}`,
404
+ "aria-label": e(n)("panel.exchange-encoding"),
405
+ class: "wx-catalog-import__read-select"
406
+ }, null, 8, ["modelValue", "options", "placeholder", "aria-label"]),
407
+ o(e(B), {
408
+ modelValue: I.value,
409
+ "onUpdate:modelValue": l[9] || (l[9] = (t) => I.value = t),
410
+ options: he.value,
411
+ clearable: "",
412
+ size: "sm",
413
+ placeholder: `${e(n)("panel.exchange-delimiter")}: ${r.value.options.delimiter === " " ? e(n)("panel.exchange-delimiter-tab") : r.value.options.delimiter ?? e(n)("panel.exchange-detect")}`,
414
+ "aria-label": e(n)("panel.exchange-delimiter"),
415
+ class: "wx-catalog-import__read-select"
416
+ }, null, 8, ["modelValue", "options", "placeholder", "aria-label"]),
417
+ o(e(m), {
418
+ size: "sm",
419
+ variant: "outline",
420
+ icon: "refresh",
421
+ loading: E.value,
422
+ onClick: R
423
+ }, {
424
+ default: i(() => [
425
+ p(s(e(n)("panel.exchange-reread")), 1)
426
+ ]),
427
+ _: 1
428
+ }, 8, ["loading"])
429
+ ])) : b("", !0),
430
+ G.value.length === 0 ? (u(), _(e(q), {
431
+ key: 1,
432
+ type: "warning",
433
+ title: e(n)("panel.exchange-map-empty")
434
+ }, null, 8, ["title"])) : (u(), v("div", {
435
+ key: 2,
436
+ class: "wx-catalog-import__map",
437
+ role: "table",
438
+ "aria-label": e(n)("panel.exchange-step-mapping")
439
+ }, [
440
+ d("div", Qe, [
441
+ d("span", Ye, s(e(n)("panel.exchange-map-file")), 1),
442
+ d("span", Ze, s(e(n)("panel.exchange-map-catalog")), 1)
443
+ ]),
444
+ (u(!0), v(F, null, ue(G.value, (t) => (u(), v("div", {
445
+ key: t.cell,
446
+ class: "wx-catalog-import__map-row",
447
+ role: "row"
448
+ }, [
449
+ d("div", el, [
450
+ d("span", ll, [
451
+ p(s(t.cell) + " ", 1),
452
+ x.value[t.cell] && x.value[t.cell] === w.value.key ? (u(), v("span", al, s(e(n)("panel.exchange-map-key")), 1)) : b("", !0)
453
+ ]),
454
+ ae(t.index).length > 0 ? (u(), v("ul", tl, [
455
+ (u(!0), v(F, null, ue(ae(t.index), (f, $e) => (u(), v("li", { key: $e }, s(f), 1))), 128))
456
+ ])) : b("", !0)
457
+ ]),
458
+ d("div", nl, [
459
+ o(e(B), {
460
+ "model-value": x.value[t.cell] ?? null,
461
+ options: be(t.cell),
462
+ clearable: "",
463
+ filterable: "",
464
+ placeholder: e(n)("panel.exchange-map-skip"),
465
+ "aria-label": t.cell,
466
+ "onUpdate:modelValue": (f) => ye(t.cell, f)
467
+ }, null, 8, ["model-value", "options", "placeholder", "aria-label", "onUpdate:modelValue"])
468
+ ])
469
+ ]))), 128))
470
+ ], 8, Ke)),
471
+ G.value.length > 0 && A.value ? (u(), _(e(q), {
472
+ key: 3,
473
+ type: "warning",
474
+ title: e(n)("panel.exchange-map-key-missing", { key: String(w.value.key ?? "sku") })
475
+ }, null, 8, ["title"])) : b("", !0),
476
+ d("div", ol, [
477
+ o(e(m), {
478
+ variant: "outline",
479
+ onClick: l[10] || (l[10] = (t) => g.value = 0)
480
+ }, {
481
+ default: i(() => [
482
+ p(s(e(n)("panel.exchange-back")), 1)
483
+ ]),
484
+ _: 1
485
+ }),
486
+ o(e(N), {
487
+ size: "sm",
488
+ tone: "muted"
489
+ }, {
490
+ default: i(() => [
491
+ p(s(e(n)("panel.exchange-map-mapped", { count: te.value })), 1)
492
+ ]),
493
+ _: 1
494
+ }),
495
+ o(e(m), {
496
+ type: "primary",
497
+ disabled: te.value === 0,
498
+ onClick: l[11] || (l[11] = (t) => g.value = 2)
499
+ }, {
500
+ default: i(() => [
501
+ p(s(e(n)("panel.exchange-next")), 1)
502
+ ]),
503
+ _: 1
504
+ }, 8, ["disabled"])
505
+ ])
506
+ ]),
507
+ _: 1
508
+ })) : g.value === 2 && r.value ? (u(), v(F, { key: 2 }, [
509
+ P.value ? (u(), _(e(q), {
510
+ key: 0,
511
+ type: "info",
512
+ title: e(n)("panel.exchange-check-first")
513
+ }, null, 8, ["title"])) : b("", !0),
514
+ A.value ? (u(), _(e(q), {
515
+ key: 1,
516
+ type: "warning",
517
+ title: e(n)("panel.exchange-map-key-missing", { key: String(w.value.key ?? "sku") })
518
+ }, null, 8, ["title"])) : b("", !0),
519
+ o(e(Ne), {
520
+ modelValue: w.value,
521
+ "onUpdate:modelValue": l[12] || (l[12] = (t) => w.value = t),
522
+ name: "catalog.exchange-import"
523
+ }, null, 8, ["modelValue"]),
524
+ o(e(M), null, {
525
+ default: i(() => [
526
+ d("form", {
527
+ class: "wx-catalog-import__profile",
528
+ onSubmit: ie(ke, ["prevent"])
529
+ }, [
530
+ o(e(J), {
531
+ label: e(n)("panel.exchange-save-profile")
532
+ }, {
533
+ default: i(() => [
534
+ o(e(se), {
535
+ modelValue: O.value,
536
+ "onUpdate:modelValue": l[13] || (l[13] = (t) => O.value = t),
537
+ maxlength: 120,
538
+ placeholder: e(n)("panel.exchange-profile-name")
539
+ }, null, 8, ["modelValue", "placeholder"])
540
+ ]),
541
+ _: 1
542
+ }, 8, ["label"]),
543
+ o(e(m), {
544
+ "native-type": "submit",
545
+ variant: "outline",
546
+ loading: H.value,
547
+ disabled: O.value.trim() === "",
548
+ class: "wx-catalog-import__read"
549
+ }, {
550
+ default: i(() => [
551
+ p(s(e(n)("panel.exchange-save")), 1)
552
+ ]),
553
+ _: 1
554
+ }, 8, ["loading", "disabled"])
555
+ ], 32),
556
+ d("div", il, [
557
+ o(e(m), {
558
+ variant: "outline",
559
+ onClick: l[14] || (l[14] = (t) => g.value = 1)
560
+ }, {
561
+ default: i(() => [
562
+ p(s(e(n)("panel.exchange-back")), 1)
563
+ ]),
564
+ _: 1
565
+ }),
566
+ d("div", ul, [
567
+ o(e(m), {
568
+ type: P.value ? "primary" : "default",
569
+ variant: P.value ? void 0 : "outline",
570
+ loading: S.value === "check",
571
+ disabled: S.value !== null || A.value,
572
+ onClick: l[15] || (l[15] = (t) => oe(!0))
573
+ }, {
574
+ default: i(() => [
575
+ p(s(e(n)("panel.exchange-run-check")), 1)
576
+ ]),
577
+ _: 1
578
+ }, 8, ["type", "variant", "loading", "disabled"]),
579
+ o(e(m), {
580
+ type: P.value ? "default" : "primary",
581
+ variant: P.value ? "outline" : void 0,
582
+ loading: S.value === "run",
583
+ disabled: S.value !== null || A.value,
584
+ onClick: l[16] || (l[16] = (t) => oe(!1))
585
+ }, {
586
+ default: i(() => [
587
+ p(s(e(n)("panel.exchange-run")), 1)
588
+ ]),
589
+ _: 1
590
+ }, 8, ["type", "variant", "loading", "disabled"])
591
+ ])
592
+ ])
593
+ ]),
594
+ _: 1
595
+ })
596
+ ], 64)) : b("", !0)
597
+ ]));
598
+ }
599
+ }), ml = /* @__PURE__ */ qe(sl, [["__scopeId", "data-v-700576d9"]]);
600
+ export {
601
+ ml as default
602
+ };
603
+ //# sourceMappingURL=ExchangeImportPage-C6cSg7Cr.js.map