@feedmepos/mf-menu 0.32.66-dev.2 → 0.32.66-dev.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.
Files changed (83) hide show
  1. package/dist/{App-D0YpNkYr.js → App-DdmEswyc.js} +6 -6
  2. package/dist/{ApplyProduct.vue_vue_type_script_setup_true_lang-YPM2sgEJ.js → ApplyProduct.vue_vue_type_script_setup_true_lang-ChxM7qYy.js} +7 -7
  3. package/dist/{ApplyProductDialog.vue_vue_type_script_setup_true_lang-CAXhUciI.js → ApplyProductDialog.vue_vue_type_script_setup_true_lang-bZiXME9Z.js} +3 -3
  4. package/dist/{Catalog-I3XpPLoT.js → Catalog-GcX5VX2M.js} +6 -6
  5. package/dist/{Category-BTmqDRbK.js → Category-B2Kv3yJp.js} +4 -4
  6. package/dist/{Category-CfCp_M4X.js → Category-BwH-wVv2.js} +4 -4
  7. package/dist/{CookingGuide-BRHwTegP.js → CookingGuide-CWDprGu6.js} +5 -5
  8. package/dist/{CustomAttributeChip.vue_vue_type_script_setup_true_lang-ksv-RMn2.js → CustomAttributeChip.vue_vue_type_script_setup_true_lang-CmACeNnV.js} +1 -1
  9. package/dist/{Group-Bwj6UATr.js → Group-BavmrRXD.js} +3 -3
  10. package/dist/{Group-BvrANEY8.js → Group-YNbaHa27.js} +1 -1
  11. package/dist/{Group.vue_vue_type_script_setup_true_lang-CYLH4YhA.js → Group.vue_vue_type_script_setup_true_lang-9rGR3rec.js} +7 -7
  12. package/dist/{GroupMarkupPriceDialog.vue_vue_type_script_setup_true_lang-DWpeinru.js → GroupMarkupPriceDialog.vue_vue_type_script_setup_true_lang-D12xx6Vd.js} +5 -5
  13. package/dist/{ImportProductDialog.vue_vue_type_script_setup_true_lang-DEvUaDcb.js → ImportProductDialog.vue_vue_type_script_setup_true_lang-NAKJ0sFP.js} +9 -8
  14. package/dist/{Ingredient-B8n9cRsp.js → Ingredient-DHjSUUIP.js} +4 -4
  15. package/dist/{InventoryBinding.vue_vue_type_script_setup_true_lang-92V2JZvW.js → InventoryBinding.vue_vue_type_script_setup_true_lang-U5AkGUri.js} +2 -2
  16. package/dist/{LinkProductSideSheet-LF2pdsYn.js → LinkProductSideSheet-BkNMJOiZ.js} +4 -4
  17. package/dist/{MenuSetting-DrObZATH.js → MenuSetting-Bm4O6MZ6.js} +7 -7
  18. package/dist/{OrderPacing-CIP1oshR.js → OrderPacing-DliNofLl.js} +5 -5
  19. package/dist/{PrintRoute-BUErmYxT.js → PrintRoute-1Py1_tzI.js} +5 -5
  20. package/dist/{Product-DBRc2y1I.js → Product-D3kyQmwQ.js} +1 -1
  21. package/dist/{Product.vue_vue_type_script_setup_true_lang-BvtMo0M4.js → Product.vue_vue_type_script_setup_true_lang-D-heQeQu.js} +622 -610
  22. package/dist/{ProductInternalTools-CnYr5piv.js → ProductInternalTools-87_B55Fr.js} +6 -6
  23. package/dist/{Products-DkqJELto.js → Products-B-J389Ks.js} +52 -52
  24. package/dist/Publish-BlYboQl0.js +1532 -0
  25. package/dist/{Recipe-DxTc4llT.js → Recipe-qb3ZdJGw.js} +5 -5
  26. package/dist/{RestaurantAttributesSelector.vue_vue_type_script_setup_true_lang-BC59l-9q.js → RestaurantAttributesSelector.vue_vue_type_script_setup_true_lang-CXqE4HLg.js} +1 -1
  27. package/dist/{RuleView.vue_vue_type_script_setup_true_lang-BpGitWig.js → RuleView.vue_vue_type_script_setup_true_lang-CODY5qdL.js} +3 -3
  28. package/dist/{Scheduler-CtdYHGoQ.js → Scheduler-CeM3y0Ha.js} +3 -3
  29. package/dist/{ServingSequence-Bx0Z7ob9.js → ServingSequence-BCzXUO9n.js} +124 -121
  30. package/dist/{Setting-BWKT6o_d.js → Setting-sy6vMuPB.js} +5 -5
  31. package/dist/{Subcategory-BckJmrDm.js → Subcategory-BZti9kYo.js} +6 -6
  32. package/dist/{Takeaway-Dvt7GRhi.js → Takeaway-C9puqL8n.js} +4 -4
  33. package/dist/{Takeaway-DULjBrov.js → Takeaway-D5JlmD6u.js} +1 -1
  34. package/dist/{Takeaway.vue_vue_type_script_setup_true_lang-BanPhJ_p.js → Takeaway.vue_vue_type_script_setup_true_lang-j8d0lXOL.js} +10 -10
  35. package/dist/{TranslationFieldSection.vue_vue_type_script_setup_true_lang-BA1GwxTn.js → TranslationFieldSection.vue_vue_type_script_setup_true_lang-DX_DRNF2.js} +1 -1
  36. package/dist/{TranslationSideSheet.vue_vue_type_script_setup_true_lang-B45Qj3ka.js → TranslationSideSheet.vue_vue_type_script_setup_true_lang-DesC2w1k.js} +2 -2
  37. package/dist/{TreeEditorOpenner.vue_vue_type_script_setup_true_lang-mlqLqR9u.js → TreeEditorOpenner.vue_vue_type_script_setup_true_lang-CmuuSoGs.js} +15 -15
  38. package/dist/{Unit-C2rVtZXW.js → Unit-Cc42yyN6.js} +2 -2
  39. package/dist/{Variant-C1aRShIB.js → Variant-D19fCBB3.js} +3 -3
  40. package/dist/{_id_-TNQRaQmS.js → _id_-B9MKg_D-.js} +10 -10
  41. package/dist/{app-Cbzk6cOz.js → app-BN0HgwNB.js} +328 -328
  42. package/dist/{app-DwyLCetV.js → app-kMpCkgGC.js} +1 -1
  43. package/dist/app.js +1 -1
  44. package/dist/apps/mf-menu/src/api/media.d.ts +63 -10
  45. package/dist/apps/mf-menu/src/app.d.ts +130 -10
  46. package/dist/apps/mf-menu/src/components/feature/Fields/RangeSlider.vue.d.ts +62 -0
  47. package/dist/apps/mf-menu/src/components/feature/TreeEditor/composable/productImages.d.ts +95 -12
  48. package/dist/apps/mf-menu/src/components/feature/TreeEditor/image/ImageEditorDialog.vue.d.ts +56 -0
  49. package/dist/apps/mf-menu/src/composable/imageSource.d.ts +7 -0
  50. package/dist/apps/mf-menu/src/composable/imageVersion.d.ts +11 -0
  51. package/dist/apps/mf-menu/src/helper/itemOverrider.d.ts +10 -0
  52. package/dist/apps/mf-menu/src/stores/menu.d.ts +2 -0
  53. package/dist/apps/mf-menu/src/views/Publish/publishStatus.d.ts +27 -0
  54. package/dist/apps/mf-menu/tsconfig.app.tsbuildinfo +1 -1
  55. package/dist/assets/{override-menu-Ccftxk6t.js → linked-status-CfzY6n0e.js} +4 -4
  56. package/dist/assets/{menu-export-BaTSKjZt.js → menu-export-CALDQ8k1.js} +3 -3
  57. package/dist/assets/{linked-status-BY2u9ovw.js → override-menu-CmqrughS.js} +4 -4
  58. package/dist/assets/{validate-menu-CLI_SnXI.js → validate-menu-BgjAdwUE.js} +4 -4
  59. package/dist/{catalog-CVzF_mVG.js → catalog-BuKsorK6.js} +1 -1
  60. package/dist/{catalogSetting-C1g9ndFL.js → catalogSetting-B5EtNHwb.js} +1 -1
  61. package/dist/{currency-BMMqzZYC.js → currency-BTbX6PWL.js} +1 -1
  62. package/dist/{dayjs.min-BozAuX2f.js → dayjs.min-KeFRLajb.js} +2 -2
  63. package/dist/{discardConfirm-CFESnGLS.js → discardConfirm-zfX1nuye.js} +1 -1
  64. package/dist/{index-BNzLcju2.js → index-DDJHOjwR.js} +1 -1
  65. package/dist/{index-CyomkF6Q.js → index-DTakcRjO.js} +5 -5
  66. package/dist/{index-BRt5TwuO.js → index-DfoDRA0k.js} +6 -6
  67. package/dist/{index.vue_vue_type_script_setup_true_lang-CESDAztS.js → index.vue_vue_type_script_setup_true_lang-DybNA4Np.js} +24886 -24717
  68. package/dist/{item-Bg78_1Z3.js → item-jpOmJGLW.js} +5058 -4584
  69. package/dist/{jszip.min-CfmqMq7-.js → jszip.min-DyvQ41lT.js} +3 -3
  70. package/dist/{linkProducts-Dk-7vVTM.js → linkProducts-DFJMpL5n.js} +4 -4
  71. package/dist/{memberPricing-BeLPeWJc.js → memberPricing-BZgeIGmU.js} +1 -1
  72. package/dist/{menu-Cn6vin1M.js → menu-BupVgTY-.js} +1 -1
  73. package/dist/{menuV2-DMl-WMCG.js → menuV2-B9-ODrLW.js} +85 -85
  74. package/dist/mf-menu.css +1 -1
  75. package/dist/{order_pacing-SVJqBJun.js → order_pacing-Dfey1efO.js} +5 -5
  76. package/dist/{priceTier-BOIqyyMG.js → priceTier-eGLFeyfY.js} +1 -1
  77. package/dist/{rules-Bw94jp35.js → rules-BS6BLc8X.js} +3 -3
  78. package/dist/{scheduler-BooRYOi1.js → scheduler-3BGOjjCO.js} +5 -5
  79. package/dist/{toExcel-FAK9N74s.js → toExcel-BmTqFf7v.js} +2 -2
  80. package/dist/{unit-BiH3semx.js → unit-D2oVUlp4.js} +3 -3
  81. package/package.json +1 -1
  82. package/dist/Publish-C94D_B2o.js +0 -1434
  83. package/dist/apps/mf-menu/src/components/feature/TreeEditor/image/ImageUploadDialog.vue.d.ts +0 -18
@@ -1,1434 +0,0 @@
1
- import { defineComponent as J, ref as $, computed as N, onMounted as ce, resolveComponent as A, createElementBlock as F, openBlock as y, createVNode as v, createElementVNode as f, toDisplayString as T, unref as c, Fragment as L, renderList as W, createBlock as K, watch as Ce, withCtx as E, h as B, normalizeClass as de, createCommentVNode as Q, createTextVNode as _e, mergeProps as Oe, normalizeStyle as Be, renderSlot as Te, withModifiers as te, onUnmounted as Ee } from "vue";
2
- import { D as z } from "./dayjs.min-BozAuX2f.js";
3
- import { useRouter as ze } from "vue-router";
4
- import { O as Le, b as je } from "./app-5fxKLAzS.js";
5
- import { a as Ke, e as Ye, b as we, M as He, _ as xe, N as G, u as Ve, d as ge, F as qe } from "./index.vue_vue_type_script_setup_true_lang-CESDAztS.js";
6
- import { useI18n as X, useCoreStore as me, RestaurantSelector as Se } from "@feedmepos/mf-common";
7
- import { useSnackbar as pe, useDialogChild as Ge, useProxiedModel as Je, useDialog as Fe, components as Z, FmButtonVariant as ye } from "@feedmepos/ui-library";
8
- import { _ as We } from "./TextChip.vue_vue_type_script_setup_true_lang-8frWuZFL.js";
9
- import { _ as Qe } from "./app-Cbzk6cOz.js";
10
- import { a as Xe, w as Ze } from "./tooltip-B5BiPMx9.js";
11
- import { u as Me, l as et } from "./discardConfirm-CFESnGLS.js";
12
- import { _ as Pe } from "./_plugin-vue_export-helper-CHgC5LLL.js";
13
- function Ie(D) {
14
- return D ? z(D).format("DD/MM/YY HH:mm") : "-";
15
- }
16
- function tt(D, x, a) {
17
- const p = (i, g = !1) => {
18
- var h;
19
- return i === void 0 && !g ? "-" : ((h = a.find((_) => _.value === (i || null))) == null ? void 0 : h.label) || "-";
20
- };
21
- return D.map((i) => {
22
- var e;
23
- const g = (e = x.find(({ _id: k }) => k === i._id)) == null ? void 0 : e.posVersion, h = !!g && !!Ke.Pos.canUse({ feature: Ye.F_FEATURE.enum.taxAndServiceChargeV4, posVersion: g }), _ = p(i.catalogId);
24
- return {
25
- ...i,
26
- _default: _,
27
- _posTakeaway: i.takeawayCatalog ? p(i.takeawayCatalog) : _,
28
- _additionalCatalogs: (i.additionalCatalogs || []).map((k) => p(k)),
29
- _lastUpdate: Ie(i.updatedAt),
30
- _pickup: h ? p(i.pickupCatalog, !0) : "-",
31
- _canUsePickup: h,
32
- _posVersion: g || "-"
33
- };
34
- });
35
- }
36
- const at = {
37
- key: 0,
38
- class: "flex items-center justify-center"
39
- }, lt = {
40
- key: 1,
41
- class: "space-y-16"
42
- }, st = { class: "text-fm-color-typo-secondary" }, nt = { class: "space-y-4" }, ot = /* @__PURE__ */ J({
43
- __name: "RevertDialog",
44
- props: {
45
- restaurant: {}
46
- },
47
- setup(D) {
48
- const x = D, a = pe(), { custom: p } = we(a), i = $(!1), g = $(null);
49
- async function h() {
50
- await p(
51
- async () => {
52
- var l;
53
- g.value = await He.readMenuById(((l = x.restaurant.revertConfig) == null ? void 0 : l._id) || "");
54
- },
55
- { isLoading: i }
56
- );
57
- }
58
- const _ = N(() => {
59
- var l;
60
- return [
61
- { label: "Main", value: null },
62
- ...(((l = g.value) == null ? void 0 : l.modules.catalog) || []).map((n) => ({
63
- label: n.name,
64
- value: n._id
65
- }))
66
- ];
67
- }), { t: e } = X(), k = N(() => {
68
- var o;
69
- const l = x.restaurant.revertConfig;
70
- if (!l) return [];
71
- const n = tt(
72
- [
73
- {
74
- ...l,
75
- catalogId: l.catalogId || null
76
- }
77
- ],
78
- me().restaurants.value,
79
- _.value
80
- )[0];
81
- return [
82
- { label: e("menu.revert.labels.restaurant"), value: x.restaurant.name },
83
- {
84
- label: e("menu.revert.labels.revert_to"),
85
- value: Ie((o = g.value) == null ? void 0 : o.updatedAt)
86
- },
87
- { label: e("menu.revert.labels.default"), value: n._default },
88
- { label: e("menu.revert.labels.pos_takeaway"), value: n._posTakeaway },
89
- { label: e("menu.revert.labels.pickup"), value: n._pickup },
90
- {
91
- label: e("menu.revert.labels.additional_catalogs"),
92
- value: n._additionalCatalogs.join(", ")
93
- }
94
- ];
95
- });
96
- ce(async () => h());
97
- const { emitData: s } = Ge();
98
- return (l, n) => {
99
- const o = A("FmCircularProgress");
100
- return i.value ? (y(), F("div", at, [
101
- v(o, { size: "lg" })
102
- ])) : (y(), F("div", lt, [
103
- f("div", st, T(c(e)("menu.revert.description", { name: x.restaurant.name })), 1),
104
- f("div", nt, [
105
- (y(!0), F(L, null, W(k.value, (r) => (y(), K(Xe, {
106
- key: r.label,
107
- name: r.label,
108
- value: r.value || "--"
109
- }, null, 8, ["name", "value"]))), 128))
110
- ])
111
- ]));
112
- };
113
- }
114
- }), ut = {
115
- class: "break-all fm-typo-en-body-lg-400 line-clamp-1"
116
- }, rt = {
117
- class: "flex flex-col"
118
- }, it = /* @__PURE__ */ J({
119
- __name: "PublishRestaurantSelector",
120
- props: {
121
- restaurants: {
122
- type: Array,
123
- required: !0
124
- }
125
- },
126
- emits: ["update:modelValue"],
127
- setup(D, {
128
- emit: x
129
- }) {
130
- const a = D, p = x, i = $([]), g = N(() => a.restaurants.map((o) => ({
131
- label: o.name,
132
- value: o._id
133
- }))), h = $(""), _ = N(() => {
134
- const o = Array.isArray(i.value) ? i.value : [], r = o.map((m) => g.value.find((R) => R.value === m)).filter((m) => m !== void 0);
135
- let d = [];
136
- return h.value ? (d = g.value.filter((m) => m.label.toLowerCase().includes(h.value.toLowerCase()) && !o.includes(m.value)), [...r, ...d]) : (d = g.value.filter((m) => !o.includes(m.value)), [...r, ...d]);
137
- }), e = N(() => i.value.length > 0 && i.value.length === _.value.length), k = N(() => i.value.filter((o) => _.value.some((r) => r.value === o))), s = () => {
138
- const o = i.value.filter((r) => !k.value.includes(r));
139
- e.value === !0 ? l(o) : l(_.value.map((r) => r.value));
140
- }, l = (o) => {
141
- i.value = o;
142
- };
143
- Ce(i, (o) => {
144
- p("update:modelValue", o);
145
- });
146
- function n(o) {
147
- return a.restaurants.filter((r) => o.includes(r._id)).map((r) => r.name);
148
- }
149
- return (o, r) => {
150
- const d = A("FmSearch"), m = A("FmCheckbox"), R = A("FmSelect");
151
- return y(), K(R, {
152
- modelValue: i.value,
153
- "onUpdate:modelValue": r[1] || (r[1] = (S) => i.value = S),
154
- placeholder: "Select Restaurant",
155
- items: _.value,
156
- multiselect: !0,
157
- "hide-chips": !0
158
- }, {
159
- default: E(() => [f("p", ut, T(i.value.length === a.restaurants.length ? "All restaurants" : n(i.value).join(", ")), 1)]),
160
- "menu-wrapper": E(() => [f("div", rt, [v(d, {
161
- class: "py-8",
162
- modelValue: h.value,
163
- "onUpdate:modelValue": r[0] || (r[0] = (S) => h.value = S),
164
- placeholder: "Search Restaurant"
165
- }, null, 8, ["modelValue"]), v(m, {
166
- class: "py-8",
167
- "model-value": e.value,
168
- label: "All restaurants",
169
- value: "1",
170
- indeterminate: i.value.length > 0,
171
- "onUpdate:modelValue": s
172
- }, null, 8, ["model-value", "indeterminate"]), (y(!0), F(L, null, W(_.value, (S, Y) => (y(), F("div", {
173
- key: Y
174
- }, [v(m, {
175
- "model-value": i.value,
176
- label: S.label,
177
- value: S.value,
178
- "onUpdate:modelValue": l
179
- }, null, 8, ["model-value", "label", "value"])]))), 128))])]),
180
- _: 1
181
- }, 8, ["modelValue", "items"]);
182
- };
183
- }
184
- }), dt = {
185
- class: "flex pb-16 w-full items-center justify-between gap-8"
186
- }, ct = {
187
- class: "flex-1 min-w-0 max-w-[300px]"
188
- }, mt = {
189
- key: 0
190
- }, pt = {
191
- key: 1,
192
- class: "text-fm-color-neutral-gray-200"
193
- }, ht = /* @__PURE__ */ J({
194
- __name: "RestaurantPublishDetail",
195
- props: {
196
- restaurantPublishStatus: {
197
- type: Object,
198
- required: !0
199
- },
200
- statusMap: {
201
- type: Object,
202
- required: !0
203
- }
204
- },
205
- setup(D) {
206
- const {
207
- t: x
208
- } = X(), a = D, p = me(), i = [{
209
- accessorKey: "restaurantName",
210
- header: x("menu.publish.scheduler_publish.restaurant_publish_details.table.column.restaurant"),
211
- cell: (l) => {
212
- const n = l.getValue();
213
- return B("p", {
214
- class: "text-pretty"
215
- }, n);
216
- },
217
- size: 600
218
- }, {
219
- id: "status",
220
- accessorKey: "publishStatus",
221
- header: x("menu.publish.scheduler_publish.restaurant_publish_details.table.column.status"),
222
- cell: ({
223
- row: l
224
- }) => {
225
- const n = l.original.publishStatus, o = Object.values(a.statusMap).find((d) => d.label === n), r = (o == null ? void 0 : o.textColor) ?? "text-fm-color-neutral-gray-300";
226
- return B("p", {
227
- class: `${r}`
228
- }, n);
229
- }
230
- }, {
231
- accessorKey: "publishedAt",
232
- header: x("menu.publish.scheduler_publish.restaurant_publish_details.table.column.published_at"),
233
- cell: ({
234
- row: l
235
- }) => {
236
- const n = l.original.publishedAt;
237
- return B("p", {
238
- class: "whitespace-nowrap"
239
- }, n);
240
- }
241
- }], g = $([]), h = N(() => Object.entries(a.statusMap).map(([l, n]) => ({
242
- label: n.label,
243
- value: l
244
- }))), _ = $(null), e = N(() => Object.entries(a.restaurantPublishStatus).filter(([l, n]) => g.value.length === 0 ? !0 : g.value.includes(n.status)).filter(([l, n]) => !_.value || _.value.length === 0 ? !0 : _.value.includes(l)).map(([l, n]) => ({
245
- restaurantName: s(l),
246
- publishStatus: a.statusMap[n.status].label,
247
- publishedAt: n.publishedAt ? z(n.publishedAt).format("YYYY-MM-DD HH:mm:ss") : ""
248
- })).sort((l, n) => l.restaurantName.localeCompare(n.restaurantName))), k = N(() => {
249
- var n, o;
250
- const l = {};
251
- for (const r of p.restaurants.value) {
252
- if (!(r != null && r._id)) continue;
253
- const d = (n = r == null ? void 0 : r.profile) == null ? void 0 : n.code, m = (o = r == null ? void 0 : r.profile) == null ? void 0 : o.name;
254
- l[r._id] = `${d ? d + " - " : ""}${m || "Unknown Restaurant"}`;
255
- }
256
- return l;
257
- });
258
- function s(l) {
259
- return k.value[l] ?? "Unknown Restaurant";
260
- }
261
- return (l, n) => {
262
- const o = A("FmSelect"), r = A("FmTable");
263
- return y(), F(L, null, [f("div", dt, [f("div", ct, [v(c(Se), {
264
- multiple: "",
265
- modelValue: _.value,
266
- "onUpdate:modelValue": n[0] || (n[0] = (d) => _.value = d)
267
- }, null, 8, ["modelValue"])]), v(o, {
268
- class: "flex-shrink-0 min-w-[200px]",
269
- modelValue: g.value,
270
- "onUpdate:modelValue": n[1] || (n[1] = (d) => g.value = d),
271
- items: h.value,
272
- multiselect: "",
273
- "hide-chips": ""
274
- }, {
275
- default: E(() => [g.value.length > 0 ? (y(), F("div", mt, T(g.value.map((d) => {
276
- var m;
277
- return (m = a.statusMap[d]) == null ? void 0 : m.label;
278
- }).join(", ")), 1)) : (y(), F("div", pt, T(c(x)("menu.publish.scheduler_publish.restaurant_publish_details.select_publish_status")), 1))]),
279
- _: 1
280
- }, 8, ["modelValue", "items"])]), e.value.length > 0 ? (y(), K(r, {
281
- key: 0,
282
- class: "flex-1 overflow-hidden",
283
- "column-defs": i,
284
- "row-data": e.value,
285
- "page-size": Object.entries(a.restaurantPublishStatus).length,
286
- "hide-footer": "",
287
- "pin-header-row": ""
288
- }, null, 8, ["row-data", "page-size"])) : (y(), K(xe, {
289
- key: 1,
290
- title: c(x)("menu.publish.scheduler_publish.restaurant_publish_details.no_publish_status"),
291
- subtitle: ""
292
- }, null, 8, ["title"]))], 64);
293
- };
294
- }
295
- }), ft = { class: "fm-calendar__name-row fm-typo-en-body-md-400 text-fm-color-typo-tertiary" }, bt = ["id"], vt = {
296
- key: 0,
297
- class: "fm-calendar__cell__button--today"
298
- }, _t = ["onClick", "onMouseover"], gt = /* @__PURE__ */ J({
299
- __name: "FmCalendar",
300
- props: {
301
- days: {},
302
- dayCellClass: { type: [Object, Function], default: void 0 },
303
- onDayClick: {},
304
- onCellMouseOver: { type: Function, default: void 0 },
305
- cellSize: { default: "md" }
306
- },
307
- setup(D) {
308
- const { t: x } = X(), a = () => [
309
- x("menu.publish.scheduler.calender.day.sun"),
310
- x("menu.publish.scheduler.calender.day.mon"),
311
- x("menu.publish.scheduler.calender.day.tue"),
312
- x("menu.publish.scheduler.calender.day.wed"),
313
- x("menu.publish.scheduler.calender.day.thu"),
314
- x("menu.publish.scheduler.calender.day.fri"),
315
- x("menu.publish.scheduler.calender.day.sat")
316
- ], p = z(), i = (h, _) => typeof h == "function" ? h(..._) : h, g = (h, _) => {
317
- if (!_) return;
318
- const e = {
319
- "fm-calendar__cell--selected": !1,
320
- "fm-calendar__cell--selected-start": !1,
321
- "fm-calendar__cell--selected-end": !1,
322
- "fm-calendar__cell--selected-between": !1
323
- };
324
- let k;
325
- if (typeof _ == "function") {
326
- const { status: s, className: l } = _(h);
327
- s && (e["fm-calendar__cell--selected"] = s.isSelected ?? !1, e["fm-calendar__cell--selected-start"] = s.isStart ?? !1, e["fm-calendar__cell--selected-end"] = s.isEnd ?? !1, e["fm-calendar__cell--selected-between"] = s.isBetween ?? !1), k = l ?? "";
328
- } else {
329
- const { status: s, className: l } = _;
330
- s && (e["fm-calendar__cell--selected"] = i(s.isSelected, [h]) ?? !1, e["fm-calendar__cell--selected-start"] = i(s.isStart, [h]) ?? !1, e["fm-calendar__cell--selected-end"] = i(s.isEnd, [h]) ?? !1, e["fm-calendar__cell--selected-between"] = i(s.isBetween, [h]) ?? !1), k = i(l, [h]) ?? "";
331
- }
332
- return [e, k];
333
- };
334
- return (h, _) => (y(), F("div", null, [
335
- f("div", ft, [
336
- (y(!0), F(L, null, W(a(), (e) => (y(), F("div", {
337
- key: e,
338
- class: de(["fm-calendar__cell", `fm-calendar__cell__${h.cellSize}`])
339
- }, T(e), 3))), 128))
340
- ]),
341
- f("div", null, [
342
- (y(!0), F(L, null, W(h.days, (e, k) => (y(), F("div", {
343
- key: k,
344
- class: "fm-calendar__row fm-typo-en-body-md-400"
345
- }, [
346
- (y(!0), F(L, null, W(e, (s) => (y(), F("div", {
347
- id: `${s.date.toISOString()}`,
348
- key: s.date.date(),
349
- class: de(["fm-calendar__cell", [
350
- `fm-calendar__cell__${h.cellSize}`,
351
- g(s.date, h.dayCellClass),
352
- !s.isCurrentMonth && "fm-calendar__cell--not-current-month"
353
- ]])
354
- }, [
355
- s.date.isSame(c(p), "day") && s.isCurrentMonth ? (y(), F("div", vt)) : Q("", !0),
356
- s.isCurrentMonth ? (y(), F("button", {
357
- key: 1,
358
- class: "fm-calendar__cell__button",
359
- type: "button",
360
- onClick: (l) => h.onDayClick(s),
361
- onMouseover: (l) => {
362
- var n;
363
- return (n = h.onCellMouseOver) == null ? void 0 : n.call(h, s.date);
364
- }
365
- }, T(s.date.date()), 41, _t)) : Q("", !0)
366
- ], 10, bt))), 128))
367
- ]))), 128))
368
- ])
369
- ]));
370
- }
371
- }), ke = /* @__PURE__ */ Pe(gt, [["__scopeId", "data-v-47484312"]]), yt = { class: "fm-typo-en-body-md-600" }, kt = {
372
- id: "in-calendar-app",
373
- class: "h-[264px] overflow-y-auto w-[160px]"
374
- }, Ct = ["onVnodeMounted"], wt = ["onVnodeMounted"], le = /* @__PURE__ */ J({
375
- __name: "FmDateRangeYearMonthPicker",
376
- props: {
377
- modelValue: {},
378
- picker: {},
379
- min: {},
380
- max: {}
381
- },
382
- emits: ["update:modelValue"],
383
- setup(D, { emit: x }) {
384
- const { t: a } = X(), p = D, i = x, g = $(!1), h = N(() => {
385
- const s = z(p.min).startOf("year"), l = z(p.max).startOf("year"), n = l.diff(s, "year"), o = [];
386
- for (let r = 0; r <= n; r++)
387
- o.push(l.subtract(r, "year"));
388
- return o;
389
- }), _ = (s) => {
390
- const l = z(p.min).startOf("month"), n = z(p.max).startOf("month");
391
- return s.get("year") === l.get("year") ? s.startOf("month").isAfter(l) || s.get("month") === l.get("month") : s.get("year") === n.get("year") ? s.startOf("month").isBefore(n) || s.get("month") === n.get("month") : !0;
392
- }, e = (s) => {
393
- const l = z(p.min).startOf("month"), n = z(p.max).startOf("month");
394
- if (l.get("year") === s.get("year")) {
395
- i("update:modelValue", l);
396
- return;
397
- }
398
- if (n.get("year") === s.get("year")) {
399
- i("update:modelValue", n);
400
- return;
401
- }
402
- i("update:modelValue", s);
403
- };
404
- function k(s, l) {
405
- if (!l)
406
- return !1;
407
- const n = s.el, o = n == null ? void 0 : n.parentElement;
408
- !n || !o || o.scrollTo({
409
- top: n.offsetTop - 50
410
- });
411
- }
412
- return (s, l) => {
413
- const n = A("FmIcon"), o = A("FmMenuItem"), r = A("FmMenu");
414
- return y(), K(r, {
415
- trigger: "click",
416
- onMenuChanged: l[0] || (l[0] = (d) => g.value = d)
417
- }, {
418
- "menu-button": E(() => [
419
- f("div", {
420
- class: de(["flex gap-4 h-24 items-center px-4 rounded-sm", g.value ? "text-fm-color-primary" : "hover:bg-fm-color-neutral-gray-100"])
421
- }, [
422
- f("div", yt, [
423
- s.picker === "month" ? (y(), F(L, { key: 0 }, [
424
- _e(T(s.modelValue.format(c(a)("menu.publish.scheduler.date.monthFormat"))), 1)
425
- ], 64)) : Q("", !0),
426
- s.picker === "year" ? (y(), F(L, { key: 1 }, [
427
- _e(T(s.modelValue.format(c(a)("menu.publish.scheduler.date.yearFormat"))), 1)
428
- ], 64)) : Q("", !0)
429
- ]),
430
- v(n, {
431
- name: g.value ? "expand_less" : "expand_more",
432
- size: "md",
433
- color: "black"
434
- }, null, 8, ["name"])
435
- ], 2)
436
- ]),
437
- default: E(() => [
438
- f("ul", kt, [
439
- s.picker === "month" ? (y(!0), F(L, { key: 0 }, W(Array.from(Array(12), (d, m) => s.modelValue.month(m)), (d) => (y(), F("li", {
440
- key: d.format(c(a)("menu.publish.scheduler.date.monthFormat")),
441
- onVnodeMounted: (m) => k(
442
- m,
443
- s.modelValue.format(c(a)("menu.publish.scheduler.date.monthFormat")) === d.format(c(a)("menu.publish.scheduler.date.monthFormat"))
444
- )
445
- }, [
446
- v(o, {
447
- disabled: !_(d),
448
- "model-value": s.modelValue.format(c(a)("menu.publish.scheduler.date.monthFormat")) === d.format(c(a)("menu.publish.scheduler.date.monthFormat")),
449
- label: d.format(c(a)("menu.publish.scheduler.date.monthFormat")),
450
- "onUpdate:modelValue": (m) => i("update:modelValue", d)
451
- }, null, 8, ["disabled", "model-value", "label", "onUpdate:modelValue"])
452
- ], 8, Ct))), 128)) : Q("", !0),
453
- s.picker === "year" ? (y(!0), F(L, { key: 1 }, W(h.value, (d) => (y(), F("li", {
454
- key: d.format(c(a)("menu.publish.scheduler.date.yearFormat")),
455
- onVnodeMounted: (m) => k(
456
- m,
457
- s.modelValue.format(c(a)("menu.publish.scheduler.date.yearFormat")) === d.format(c(a)("menu.publish.scheduler.date.yearFormat"))
458
- )
459
- }, [
460
- v(o, {
461
- "model-value": s.modelValue.format(c(a)("menu.publish.scheduler.date.yearFormat")) === d.format(c(a)("menu.publish.scheduler.date.yearFormat")),
462
- label: d.format(c(a)("menu.publish.scheduler.date.yearFormat")),
463
- "onUpdate:modelValue": (m) => e(d)
464
- }, null, 8, ["model-value", "label", "onUpdate:modelValue"])
465
- ], 8, wt))), 128)) : Q("", !0)
466
- ])
467
- ]),
468
- _: 1
469
- });
470
- };
471
- }
472
- }), xt = { class: "p-12 space-y-4 w-[552px]" }, Vt = { class: "w-max" }, St = { class: "flex space-x-24" }, Ft = { class: "flex items-center py-8 space-x-16" }, Mt = { class: "flex space-x-4" }, Pt = { class: "flex items-center justify-end py-8 space-x-16" }, It = { class: "flex space-x-4" }, $t = { class: "flex gap-8 items-center justify-end w-full" }, se = "YYYY-MM-DD", At = /* @__PURE__ */ J({
473
- __name: "DateTimePicker",
474
- props: {
475
- modelValue: {},
476
- showValidBorder: { type: Boolean, default: !1 },
477
- min: { default: () => z().subtract(50, "year").format(se) },
478
- max: { default: () => z().add(25, "year").format(se) },
479
- zIndex: { default: void 0 },
480
- label: { default: "" },
481
- labelMark: { default: "none" },
482
- labelInfo: { default: "" },
483
- disabled: { type: Boolean, default: void 0 },
484
- focused: { type: Boolean, default: !1 },
485
- rules: { default: () => [] },
486
- helperText: { default: "" },
487
- helperState: { default: "none" }
488
- },
489
- emits: ["update:schedulerTime"],
490
- setup(D, { emit: x }) {
491
- const { t: a } = X(), p = D, i = x, g = Je(p, "modelValue"), h = $({
492
- hours: new Date(g.value).getHours() % 12 || 12,
493
- minutes: new Date(g.value).getMinutes(),
494
- period: new Date(g.value).getHours() >= 12 ? "PM" : "AM"
495
- /* AM */
496
- }), _ = $(z(g.value, se)), e = $(!1);
497
- function k(V, u) {
498
- const [C, P, U] = V.split("-").map(Number), O = new Date(C, P - 1, U);
499
- let I = u.hours % 12;
500
- return u.period === "PM" && (I += 12), O.setHours(I), O.setMinutes(u.minutes), O.setSeconds(0), O.setMilliseconds(0), O;
501
- }
502
- const s = () => {
503
- g.value = _.value.format(se);
504
- const V = k(g.value, h.value);
505
- i("update:schedulerTime", V.toISOString()), setTimeout(() => {
506
- e.value = !1;
507
- }, 0);
508
- }, l = () => {
509
- _.value = g.value ? z(g.value) : null, e.value = !1;
510
- }, n = (V) => {
511
- e.value = V, V || l();
512
- }, o = $(z().startOf("month")), r = $(z().startOf("month").add(1, "month")), d = (V, u) => {
513
- V === "left" ? (o.value = u, r.value = u.add(1, "month")) : V === "right" && (r.value = u, o.value = u.subtract(1, "month"));
514
- }, m = N(() => S(o.value)), R = N(() => S(o.value.add(1, "month"))), S = (V) => {
515
- const u = [], C = V.endOf("month"), P = V.month();
516
- let U = V.startOf("week"), O = [];
517
- for (; U.isBefore(C.endOf("week")); )
518
- U.day() === 0 && O.length > 0 && (u.push(O), O = []), O.push({
519
- date: U,
520
- isCurrentMonth: U.month() === P
521
- }), U = U.add(1, "day");
522
- return O.length > 0 && u.push(O), u.length < 6 && u.push([]), u;
523
- }, Y = (V) => {
524
- _.value = V;
525
- };
526
- return (V, u) => {
527
- const C = A("FmIcon"), P = A("FmTimeInput"), U = A("FmButton"), O = A("FmPopover");
528
- return y(), K(O, {
529
- "show-popover": e.value,
530
- "z-index": p.zIndex,
531
- "exclude-el-from-click-outside": ["in-calendar-app"],
532
- onPopoverChanged: n
533
- }, {
534
- "popover-button": E(() => [
535
- f("div", Oe({
536
- opened: e.value,
537
- showValidBorder: V.showValidBorder
538
- }, { class: "text-fm-color-primary" }), " Select Date & Time ", 16)
539
- ]),
540
- default: E(() => [
541
- f("div", xt, [
542
- f("div", Vt, [
543
- f("div", St, [
544
- f("div", null, [
545
- f("div", Ft, [
546
- v(C, {
547
- outline: !1,
548
- class: "cursor-pointer select-none",
549
- color: "#1C1C1E",
550
- name: "chevron_left",
551
- size: "md",
552
- onClick: u[0] || (u[0] = () => d("left", o.value.subtract(1, "month")))
553
- }),
554
- f("div", Mt, [
555
- v(le, {
556
- max: V.max,
557
- min: V.min,
558
- "model-value": o.value,
559
- picker: "month",
560
- "onUpdate:modelValue": u[1] || (u[1] = (I) => d("left", I))
561
- }, null, 8, ["max", "min", "model-value"]),
562
- v(le, {
563
- max: V.max,
564
- min: V.min,
565
- "model-value": o.value,
566
- picker: "year",
567
- "onUpdate:modelValue": u[2] || (u[2] = (I) => d("left", I))
568
- }, null, 8, ["max", "min", "model-value"])
569
- ])
570
- ]),
571
- v(ke, {
572
- "day-cell-class": {
573
- status: {
574
- isSelected: (I) => I.isSame(_.value, "date")
575
- }
576
- },
577
- days: m.value,
578
- "on-day-click": (I) => Y(I.date)
579
- }, null, 8, ["day-cell-class", "days", "on-day-click"])
580
- ]),
581
- f("div", null, [
582
- f("div", Pt, [
583
- f("div", It, [
584
- v(le, {
585
- max: V.max,
586
- min: V.min,
587
- "model-value": r.value,
588
- picker: "month",
589
- "onUpdate:modelValue": u[3] || (u[3] = (I) => d("right", I))
590
- }, null, 8, ["max", "min", "model-value"]),
591
- v(le, {
592
- max: V.max,
593
- min: V.min,
594
- "model-value": r.value,
595
- picker: "year",
596
- "onUpdate:modelValue": u[4] || (u[4] = (I) => d("right", I))
597
- }, null, 8, ["max", "min", "model-value"])
598
- ]),
599
- v(C, {
600
- outline: !1,
601
- class: "cursor-pointer select-none",
602
- color: "#1C1C1E",
603
- name: "chevron_right",
604
- size: "md",
605
- onClick: u[5] || (u[5] = () => d("left", o.value.add(1, "month")))
606
- })
607
- ]),
608
- v(ke, {
609
- "day-cell-class": {
610
- status: {
611
- isSelected: (I) => I.isSame(_.value, "date")
612
- }
613
- },
614
- days: R.value,
615
- "on-day-click": (I) => Y(I.date)
616
- }, null, 8, ["day-cell-class", "days", "on-day-click"])
617
- ])
618
- ])
619
- ]),
620
- v(P, {
621
- "model-value": h.value ?? {
622
- hours: 0,
623
- minutes: 0,
624
- period: "AM"
625
- /* AM */
626
- },
627
- "onUpdate:modelValue": u[6] || (u[6] = (I) => h.value = I)
628
- }, null, 8, ["model-value"]),
629
- f("div", $t, [
630
- v(U, {
631
- label: c(a)("common.cancel"),
632
- size: "md",
633
- variant: "tertiary",
634
- onClick: l
635
- }, null, 8, ["label"]),
636
- v(U, {
637
- disabled: !_.value,
638
- label: c(a)("common.confirm"),
639
- size: "md",
640
- variant: "primary",
641
- onClick: s
642
- }, null, 8, ["disabled", "label"])
643
- ])
644
- ])
645
- ]),
646
- _: 1
647
- }, 8, ["show-popover", "z-index"]);
648
- };
649
- }
650
- }), Nt = { class: "container" }, Dt = /* @__PURE__ */ J({
651
- __name: "ProgressBar",
652
- props: {
653
- bgcolor: {},
654
- completed: {}
655
- },
656
- setup(D) {
657
- const x = D, a = N(() => ({
658
- height: "100%",
659
- width: `${x.completed ?? 0}%`,
660
- backgroundColor: x.bgcolor,
661
- transition: "width 1s ease-in-out",
662
- borderRadius: "inherit",
663
- textAlign: "right"
664
- }));
665
- return (p, i) => (y(), F("div", Nt, [
666
- f("div", {
667
- style: Be(a.value)
668
- }, null, 4)
669
- ]));
670
- }
671
- }), Rt = /* @__PURE__ */ Pe(Dt, [["__scopeId", "data-v-709d7500"]]), Ut = {
672
- class: "flex items-center gap-24"
673
- }, Ot = {
674
- class: "fm-typo-en-title-md-600"
675
- }, Bt = /* @__PURE__ */ J({
676
- __name: "PublishProgressView",
677
- props: {
678
- progress: {
679
- type: Number,
680
- required: !1
681
- },
682
- restaurants: {
683
- type: Array,
684
- required: !0
685
- }
686
- },
687
- emits: ["publishMenu"],
688
- setup(D, {
689
- expose: x,
690
- emit: a
691
- }) {
692
- const {
693
- t: p
694
- } = X(), i = pe(), g = Fe(), h = D, _ = {
695
- [G.enum.PENDING]: {
696
- label: p("menu.publish.scheduler_publish.status.pending"),
697
- textColor: "text-fm-color-neutral-gray-300",
698
- backgroundColor: "#E0E0DE"
699
- },
700
- [G.enum.RUNNING]: {
701
- label: p("menu.publish.scheduler_publish.status.running"),
702
- textColor: "text-fm-color-system-warning-300",
703
- backgroundColor: "#FFB800"
704
- },
705
- [G.enum.COMPLETED]: {
706
- label: p("menu.publish.scheduler_publish.status.completed"),
707
- textColor: "text-fm-color-system-success-300",
708
- backgroundColor: "#34C759"
709
- },
710
- [G.enum.FAILED]: {
711
- label: p("menu.publish.scheduler_publish.status.failed"),
712
- textColor: "text-fm-color-system-error-300",
713
- backgroundColor: "#FF3B30"
714
- }
715
- }, e = Ve(), k = $(!1), s = (u) => {
716
- typeof u == "boolean" ? k.value = u : k.value = !k.value;
717
- };
718
- x({
719
- show: k,
720
- trigger: s
721
- });
722
- const l = a, n = N(() => e.state.nextSchedulerPublish ?? {}), o = N(() => Object.entries(n.value).map(([C, P]) => {
723
- var I;
724
- const U = e.runningPublishJob, O = Object.keys(P.restaurants || {}).length;
725
- return {
726
- date: C,
727
- publisher: ((I = P.owner) == null ? void 0 : I.name) ?? "Unknown",
728
- total_restaurants: p("menu.publish.scheduler_publish.table.row.restaurants", {
729
- total: O
730
- }),
731
- restaurantPublishStatus: P.restaurants || {},
732
- status: P.status,
733
- progress: P.status === G.enum.RUNNING && U === C ? h.progress ?? 0 : 0
734
- };
735
- })), r = $([]), d = $(null), m = $(null), R = [{
736
- accessorKey: "date",
737
- header: p("menu.publish.scheduler_publish.table.columns.date"),
738
- cell: ({
739
- row: u
740
- }) => {
741
- if (u.original.date === "new") {
742
- if (d.value !== null)
743
- return new Date(d.value).toLocaleString();
744
- const P = z(Date.now()).toISOString();
745
- return B(At, {
746
- class: "flex h-full items-center",
747
- modelValue: P,
748
- "onUpdate:schedulerTime": (U) => {
749
- d.value = U;
750
- }
751
- });
752
- }
753
- return new Date(u.original.date).toLocaleString();
754
- }
755
- }, {
756
- accessorKey: "publisher",
757
- header: p("menu.publish.scheduler_publish.table.columns.publisher_name")
758
- }, {
759
- accessorKey: "total_restaurants",
760
- header: p("menu.publish.scheduler_publish.table.columns.total_restaurants"),
761
- cell: ({
762
- row: u
763
- }) => u.original.date === "new" ? B(it, {
764
- restaurants: h.restaurants,
765
- "onUpdate:modelValue": (P) => {
766
- r.value = P;
767
- }
768
- }) : B("p", {}, u.original.total_restaurants)
769
- }, {
770
- accessorKey: "progress",
771
- header: p("menu.publish.scheduler_publish.table.columns.progress"),
772
- cell: ({
773
- row: u
774
- }) => {
775
- const C = u.original.status;
776
- return u.original.date === "new" ? B("div", {
777
- class: "flex justify-end items-center gap-8"
778
- }, [B(Z.FmButton, {
779
- variant: "tertiary",
780
- prependIcon: "close",
781
- textColor: "system-error-300",
782
- onClick: () => {
783
- d.value = null, S.value = null, m.value = null;
784
- }
785
- }), B(Z.FmButton, {
786
- variant: "tertiary",
787
- prependIcon: "check",
788
- textColor: "system-success-300",
789
- onClick: async () => {
790
- if (!d.value || r.value.length === 0) {
791
- m.value = !1, i.open({
792
- type: "error",
793
- message: "Please select date and restaurants to schedule publish."
794
- });
795
- return;
796
- } else
797
- m.value = !0;
798
- }
799
- })]) : B("div", {
800
- class: "flex justify-between items-center gap-32"
801
- }, [B("div", {
802
- class: "flex flex-col w-full gap-4"
803
- }, [B("div", {
804
- class: "flex items-center gap-8"
805
- }, [B("p", {
806
- class: `fm-typo-en-body-md-400 ${_[C].textColor}`
807
- }, _[C].label), ...C === G.enum.RUNNING ? [B("p", {
808
- class: `fm-typo-en-body-md-400 ${_[C].textColor}`
809
- }, `(${u.original.progress}/${u.original.total_restaurants})`)] : []]), B(Rt, {
810
- bgcolor: _[C].backgroundColor,
811
- completed: C === G.enum.PENDING ? 0 : C === G.enum.RUNNING ? Math.floor((u.original.progress ?? 0) / parseInt(u.original.total_restaurants) * 100) : (C === G.enum.COMPLETED, 100)
812
- })]), B(Z.FmButton, {
813
- variant: "plain",
814
- prependIcon: "info",
815
- disabled: Array.isArray(u.original.restaurantPublishStatus),
816
- onClick: () => {
817
- g.open({
818
- title: p("menu.publish.scheduler_publish.restaurant_publish_details.title"),
819
- contentComponent: ht,
820
- contentComponentProps: {
821
- restaurantPublishStatus: u.original.restaurantPublishStatus,
822
- statusMap: _
823
- },
824
- contentClass: "flex flex-col h-full",
825
- maxWidth: "800px",
826
- maxHeight: "80vh"
827
- });
828
- }
829
- }), B(Z.FmButton, {
830
- variant: "tertiary",
831
- prependIcon: "delete",
832
- disabled: C !== G.enum.PENDING,
833
- textColor: "system-error-300",
834
- onClick: () => {
835
- const U = z(u.original.date).toISOString();
836
- g.open({
837
- title: "Confirm Remove",
838
- message: "Are you sure you want to remove this scheduled publish? This action cannot be undone.",
839
- primaryActions: {
840
- text: "Remove",
841
- close: !1
842
- },
843
- secondaryActions: {
844
- text: "Cancel",
845
- close: !0
846
- }
847
- }).onPrimary(() => {
848
- e.deleteSchedulerPublish(U).then(() => {
849
- i.open({
850
- type: "success",
851
- message: "Scheduled publish deleted successfully."
852
- });
853
- }).catch(() => {
854
- i.open({
855
- type: "error",
856
- message: "Failed to delete scheduled publish. Please try again."
857
- });
858
- }).finally(() => {
859
- g.close();
860
- });
861
- });
862
- }
863
- })]);
864
- }
865
- }];
866
- ce(async () => {
867
- await e.getNextSchedulerPublish();
868
- });
869
- const S = $(null);
870
- function Y() {
871
- m.value = !1, S.value = {
872
- date: "new",
873
- restaurantsIds: []
874
- };
875
- }
876
- Ce(m, async (u) => {
877
- u && (l("publishMenu", {
878
- schedulerTime: d.value,
879
- restaurantIds: r.value
880
- }), await e.getNextSchedulerPublish(), d.value = null, r.value = [], m.value = !1, S.value = null, m.value = null);
881
- });
882
- const V = Me(() => m.value !== null && m.value === !1, () => {
883
- k.value = !1, S.value = null, d.value = null, r.value = [], m.value = null;
884
- });
885
- return (u, C) => {
886
- const P = A("FmButton"), U = A("FmTable"), O = A("FmSideSheet");
887
- return y(), F(L, null, [Te(u.$slots, "default", {
888
- trigger: s
889
- }), v(O, {
890
- modelValue: k.value,
891
- "onUpdate:modelValue": C[1] || (C[1] = (I) => k.value = I),
892
- "close-button": !1,
893
- "max-width": 800,
894
- "onOn:clickedAway": c(V)
895
- }, {
896
- "side-sheet-header": E(() => [f("div", Ut, [v(P, {
897
- variant: c(ye).Tertiary,
898
- "prepend-icon": "arrow_back",
899
- onClick: te(c(V), ["stop"])
900
- }, null, 8, ["variant", "onClick"]), f("p", Ot, T(c(p)("menu.publish.actions.publish_progress")), 1)])]),
901
- default: E(() => [f("div", null, [v(U, {
902
- class: "pb-8",
903
- "row-data": [...o.value, S.value].filter(Boolean),
904
- "column-defs": R,
905
- "shrink-at": !1,
906
- pageSize: o.value.length + (S.value ? 1 : 0),
907
- "hide-footer": ""
908
- }, null, 8, ["row-data", "pageSize"]), c(e).state.featureFlags.schedulerPublish && !S.value ? (y(), K(P, {
909
- key: 0,
910
- variant: c(ye).Plain,
911
- "prepend-icon": "add",
912
- label: c(p)("menu.publish.actions.add_scheduler_publish"),
913
- onClick: C[0] || (C[0] = () => Y())
914
- }, null, 8, ["variant", "label"])) : Q("", !0)])]),
915
- _: 1
916
- }, 8, ["modelValue", "onOn:clickedAway"])], 64);
917
- };
918
- }
919
- }), Tt = { class: "fm-typo-en-title-md-600" }, Et = { class: "mt-40" }, zt = { class: "fm-typo-en-title-sm-600" }, Lt = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary mt-4 mb-8" }, jt = { class: "flex gap-8 items-center justify-start" }, Kt = /* @__PURE__ */ J({
920
- __name: "UpdateCatalogDialog",
921
- props: {
922
- catalogs: {
923
- type: Array,
924
- required: !0
925
- }
926
- },
927
- emits: ["onComplete"],
928
- setup(D, { expose: x, emit: a }) {
929
- const { t: p } = X(), i = D;
930
- x({
931
- show: n,
932
- hide: o
933
- });
934
- const g = a;
935
- function h() {
936
- return {
937
- restaurantId: "",
938
- catalogId: void 0,
939
- takeawayCatalog: void 0,
940
- pickupCatalog: null,
941
- additionalCatalogs: []
942
- };
943
- }
944
- const _ = N(() => [
945
- {
946
- label: p("menu.publish.update_catalog_dialog.sections.default.use_default"),
947
- value: null
948
- },
949
- ...i.catalogs.map((m) => ({
950
- label: m.name,
951
- value: m._id
952
- }))
953
- ]), e = N(() => [
954
- {
955
- label: p("menu.publish.update_catalog_dialog.sections.default.use_default"),
956
- value: null
957
- },
958
- ...i.catalogs.map((m) => ({
959
- label: m.name,
960
- value: m._id
961
- }))
962
- ]), k = $(h()), s = $(!1), l = $(void 0);
963
- function n(m) {
964
- l.value = m ? ge(m) : h(), k.value = ge(l.value), s.value = !0;
965
- }
966
- function o() {
967
- s.value = !1;
968
- }
969
- const r = Me(
970
- () => !et.isEqual(l.value, k.value),
971
- () => {
972
- o();
973
- }
974
- );
975
- function d() {
976
- o(), g("onComplete", k.value);
977
- }
978
- return (m, R) => {
979
- const S = A("FmSelect"), Y = A("FmCheckbox"), V = A("FmButton"), u = A("FmSideSheet");
980
- return y(), K(u, {
981
- modelValue: s.value,
982
- "onUpdate:modelValue": R[5] || (R[5] = (C) => s.value = C),
983
- "max-width": 560,
984
- "onOn:clickedAway": c(r)
985
- }, {
986
- "side-sheet-header": E(() => [
987
- f("span", Tt, T(c(p)("menu.publish.update_catalog_dialog.title")), 1)
988
- ]),
989
- "side-sheet-footer": E(() => [
990
- f("div", jt, [
991
- v(V, {
992
- label: c(p)("menu.publish.update_catalog_dialog.actions.update"),
993
- size: "lg",
994
- variant: "primary",
995
- onClick: R[4] || (R[4] = () => d())
996
- }, null, 8, ["label"]),
997
- v(V, {
998
- label: c(p)("menu.publish.update_catalog_dialog.actions.cancel"),
999
- size: "lg",
1000
- variant: "tertiary",
1001
- onClick: o
1002
- }, null, 8, ["label"])
1003
- ])
1004
- ]),
1005
- default: E(() => [
1006
- v(S, {
1007
- modelValue: k.value.catalogId,
1008
- "onUpdate:modelValue": R[0] || (R[0] = (C) => k.value.catalogId = C),
1009
- items: _.value,
1010
- class: "mb-24",
1011
- label: c(p)("menu.publish.update_catalog_dialog.sections.default.label")
1012
- }, null, 8, ["modelValue", "items", "label"]),
1013
- v(S, {
1014
- modelValue: k.value.takeawayCatalog,
1015
- "onUpdate:modelValue": R[1] || (R[1] = (C) => k.value.takeawayCatalog = C),
1016
- items: e.value,
1017
- class: "mb-24",
1018
- label: c(p)("menu.publish.update_catalog_dialog.sections.pos_takeaway.label")
1019
- }, null, 8, ["modelValue", "items", "label"]),
1020
- v(S, {
1021
- modelValue: k.value.pickupCatalog,
1022
- "onUpdate:modelValue": R[2] || (R[2] = (C) => k.value.pickupCatalog = C),
1023
- items: e.value,
1024
- label: c(p)("menu.publish.update_catalog_dialog.sections.pickup.label")
1025
- }, null, 8, ["modelValue", "items", "label"]),
1026
- f("div", Et, [
1027
- f("div", zt, T(c(p)("menu.publish.update_catalog_dialog.sections.additional.title")), 1),
1028
- f("div", Lt, T(c(p)("menu.publish.update_catalog_dialog.sections.additional.subtitle")), 1),
1029
- (y(!0), F(L, null, W(D.catalogs, (C) => (y(), F("div", {
1030
- key: C._id
1031
- }, [
1032
- v(Y, {
1033
- modelValue: k.value.additionalCatalogs,
1034
- "onUpdate:modelValue": R[3] || (R[3] = (P) => k.value.additionalCatalogs = P),
1035
- label: C.name,
1036
- value: C._id
1037
- }, null, 8, ["modelValue", "label", "value"])
1038
- ]))), 128))
1039
- ])
1040
- ]),
1041
- _: 1
1042
- }, 8, ["modelValue", "onOn:clickedAway"]);
1043
- };
1044
- }
1045
- }), Yt = {
1046
- class: "flex flex-col p-24 bg-fm-color-neutral-white min-h-[calc(100dvh-56px)] xs:max-h-[calc(100dvh-56px)]"
1047
- }, Ht = {
1048
- class: "flex items-center xs:mb-8 mb-24"
1049
- }, qt = {
1050
- class: "mr-8"
1051
- }, Gt = {
1052
- class: "fm-typo-en-title-md-600"
1053
- }, Jt = {
1054
- class: "xs:hidden mr-16"
1055
- }, Wt = {
1056
- class: "xs:hidden mr-16"
1057
- }, Qt = {
1058
- class: "xs:hidden"
1059
- }, Xt = {
1060
- class: "pb-8 flex justify-between items-start xs:flex-col xs:items-stretch gap-8"
1061
- }, Zt = {
1062
- class: "grow flex flex-col gap-4"
1063
- }, ea = {
1064
- class: "flex gap-8 items-center"
1065
- }, ta = {
1066
- class: "fm-typo-en-body-md-600 text-fm-color-typo-secondary"
1067
- }, aa = {
1068
- class: "space-y-4"
1069
- }, la = {
1070
- class: "fm-typo-en-body-lg-600"
1071
- }, sa = {
1072
- class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary"
1073
- }, na = {
1074
- class: "flex gap-8"
1075
- }, oa = {
1076
- class: "xs:block hidden fixed bottom-72 right-16"
1077
- }, ga = /* @__PURE__ */ J({
1078
- __name: "Publish",
1079
- setup(D) {
1080
- const x = ze(), {
1081
- t: a
1082
- } = X(), p = ({
1083
- row: t
1084
- }) => {
1085
- const b = t.status === "latest";
1086
- return v(We, {
1087
- label: a(b ? "menu.publish.table.status.latest" : "menu.publish.table.status.outdated"),
1088
- variant: b ? "success" : "warning"
1089
- }, null);
1090
- }, i = $({}), g = [{
1091
- accessorKey: "displayName",
1092
- header: () => a("menu.publish.table.columns.restaurant"),
1093
- cell: (t) => t.getValue(),
1094
- enableSorting: !0
1095
- }, {
1096
- accessorKey: "catalog",
1097
- header: () => a("menu.publish.table.columns.default"),
1098
- enableSorting: !1,
1099
- cell: (t) => t.getValue().default
1100
- }, {
1101
- accessorKey: "catalog",
1102
- header: () => a("menu.publish.table.columns.pos_takeaway"),
1103
- enableSorting: !1,
1104
- cell: (t) => t.getValue().takeaway
1105
- }, {
1106
- accessorKey: "catalog",
1107
- header: () => a("menu.publish.table.columns.pickup"),
1108
- enableSorting: !1,
1109
- cell: (t) => t.getValue().pickup
1110
- }, {
1111
- accessorKey: "updatedAt",
1112
- header: () => a("menu.publish.table.columns.version"),
1113
- enableSorting: !1,
1114
- cell: (t) => {
1115
- const b = t.getValue();
1116
- return m(b);
1117
- }
1118
- }, {
1119
- accessorKey: "status",
1120
- header: () => a("menu.common.labels.status"),
1121
- enableSorting: !1,
1122
- cell: (t) => v(p, {
1123
- row: t.row.original
1124
- }, null)
1125
- }, {
1126
- accessorKey: "_id",
1127
- header: "",
1128
- size: 52,
1129
- enableSorting: !1,
1130
- cell: (t) => {
1131
- const b = t.row.original;
1132
- return B("div", {
1133
- class: "flex justify-end gap-8"
1134
- }, [o.value && b.revertConfig ? Ze(B(Z.FmButton, {
1135
- prependIcon: "undo",
1136
- variant: "secondary",
1137
- onClick: te(async () => {
1138
- await r(t.row.original);
1139
- }, ["stop", "prevent"])
1140
- }), a("menu.publish.actions.revert")) : null, B(Z.FmButton, {
1141
- label: a("menu.publish.actions.publish"),
1142
- icon: "ios_share",
1143
- variant: "secondary",
1144
- onClick: te(async () => {
1145
- const w = V(t.row.original);
1146
- await U(w);
1147
- }, ["stop", "prevent"])
1148
- })]);
1149
- },
1150
- meta: {
1151
- width: "150px"
1152
- }
1153
- }], h = $(""), _ = $(), e = Ve(), k = me(), s = N(() => {
1154
- var b;
1155
- const t = /* @__PURE__ */ new Map();
1156
- for (const w of k.restaurants.value)
1157
- (b = w.profile) != null && b.code && t.set(w._id, w.profile.code);
1158
- return t;
1159
- });
1160
- function l(t, b) {
1161
- const w = s.value.get(t);
1162
- return w ? `${b} (${w})` : b;
1163
- }
1164
- const n = Fe(), o = N(() => e.version !== qe.enum.v3);
1165
- async function r(t) {
1166
- t.revertConfig && n.open({
1167
- title: "Revert menu",
1168
- contentComponent: ot,
1169
- contentComponentProps: {
1170
- restaurant: t
1171
- },
1172
- primaryActions: {
1173
- text: "Revert",
1174
- close: !0
1175
- },
1176
- secondaryActions: {
1177
- text: "Cancel",
1178
- close: !0
1179
- }
1180
- }).onPrimary(async () => {
1181
- await P.minor(async () => {
1182
- await e.revertRestaurantMenu(t._id);
1183
- }, {
1184
- customId: t._id,
1185
- message: `Revert menu of ${t.name}`
1186
- });
1187
- });
1188
- }
1189
- const d = N(() => a("menu.publish.labels.main_version", {
1190
- version: m(e.state.menu.updatedAt)
1191
- }));
1192
- function m(t) {
1193
- return t ? z(t).format("DD/MM/YYYY hh:mmA") : "";
1194
- }
1195
- const R = N(() => e.state.menu.modules.catalog), S = N(() => P.queue.value.some((t) => t.id === e.state.menu._id));
1196
- function Y(t) {
1197
- var b;
1198
- return t ? ((b = R.value.find((w) => w._id === t)) == null ? void 0 : b.name) ?? a("menu.publish.labels.catalog.invalid") : a("menu.publish.labels.catalog.main");
1199
- }
1200
- function V(t) {
1201
- return {
1202
- restaurantId: t._id,
1203
- catalogId: t.catalogId,
1204
- takeawayCatalog: t.takeawayCatalog,
1205
- pickupCatalog: t.pickupCatalog || null,
1206
- additionalCatalogs: t.additionalCatalogs
1207
- };
1208
- }
1209
- function u(t) {
1210
- var w;
1211
- const b = V(t);
1212
- (w = _.value) == null || w.show(b);
1213
- }
1214
- const C = pe(), P = we(C);
1215
- async function U(t) {
1216
- var w;
1217
- if (S.value) return;
1218
- const b = (w = H.value.find((q) => q._id === t.restaurantId)) == null ? void 0 : w.name;
1219
- await P.minor(async () => await e.publishMenu(t, !1), {
1220
- customId: e.state.menu._id,
1221
- message: `Registering menu publish for ${b}`,
1222
- successMessage: `Menu publish registered for ${b}.`
1223
- }), await ae();
1224
- }
1225
- const O = $(null), I = N(() => a("menu.common.labels.status")), he = N(() => a("menu.publish.table.status.latest")), fe = N(() => a("menu.publish.table.status.outdated")), H = N(() => {
1226
- const t = h.value.toLowerCase(), b = e.state.menu.updatedAt;
1227
- return e.state.restaurants.filter((w) => {
1228
- var q;
1229
- return !O.value || ((q = O.value) == null ? void 0 : q.includes(w._id));
1230
- }).map((w) => ({
1231
- ...w,
1232
- displayName: l(w._id, w.name),
1233
- catalog: {
1234
- default: Y(w.catalogId),
1235
- takeaway: Y(w.takeawayCatalog),
1236
- pickup: Y(w.pickupCatalog)
1237
- },
1238
- status: b === w.updatedAt ? "latest" : "outdated",
1239
- [I.value]: b === w.updatedAt ? he.value : fe.value
1240
- })).filter((w) => Le(w, ne.value)).filter(({
1241
- displayName: w,
1242
- catalog: q
1243
- }) => t ? w.toLowerCase().includes(t) || q.default.toLowerCase().includes(t) || q.takeaway.toLowerCase().includes(t) || q.pickup.toLowerCase().includes(t) : !0);
1244
- }), ne = $({
1245
- logic: "AND",
1246
- rules: []
1247
- }), $e = N(() => [{
1248
- type: "string",
1249
- key: I.value,
1250
- entity: "menu",
1251
- values: [he.value, fe.value]
1252
- }]), oe = $(0), ee = $(null), ue = $(!1);
1253
- function be() {
1254
- ee.value !== null && (clearInterval(ee.value), ee.value = null);
1255
- }
1256
- async function ve() {
1257
- return await e.getNextSchedulerPublish(), e.activePublishJob !== null ? (ue.value = !0, oe.value = e.runningPublishJob !== null ? await e.getPublishRestaurantsProgress() : 0, !0) : (oe.value = 0, be(), ue.value && (ue.value = !1, await e.readRestaurants()), !1);
1258
- }
1259
- async function ae() {
1260
- !await ve() || ee.value !== null || (ee.value = setInterval(() => {
1261
- ve();
1262
- }, 3e4));
1263
- }
1264
- async function Ae() {
1265
- await P.minor(async () => {
1266
- await e.readRestaurants(), await ae();
1267
- }, {
1268
- customId: e.state.menu._id
1269
- });
1270
- }
1271
- async function re(t) {
1272
- if (S.value) return;
1273
- const b = Object.keys(i.value).filter((j) => i.value[j]), w = b.length === 0 || b.length === H.value.length ? H.value : H.value.filter((j) => b.includes(j._id));
1274
- if (t ? t.restaurantIds.length === e.state.restaurants.length : H.value.length === e.state.restaurants.length && (b.length === 0 || b.length === H.value.length))
1275
- await P.minor(async () => {
1276
- await e.publishAllMenu(t == null ? void 0 : t.schedulerTime, !1);
1277
- }, {
1278
- successMessage: "Menu publish registered for all restaurants."
1279
- });
1280
- else {
1281
- const j = (t == null ? void 0 : t.restaurantIds) || w.map((ie) => ie._id);
1282
- await P.minor(async () => {
1283
- await e.publishMultipleMenu(j, t == null ? void 0 : t.schedulerTime, !1);
1284
- }, {
1285
- successMessage: `Menu publish registered for ${t != null && t.restaurantIds ? t.restaurantIds.length : w.length} restaurant(s).`
1286
- });
1287
- }
1288
- await ae();
1289
- }
1290
- return ce(() => {
1291
- ae();
1292
- }), Ee(() => {
1293
- be();
1294
- }), (t, b) => {
1295
- const w = A("FmChip"), q = A("FmSpacer"), j = A("FmButton"), ie = A("FmBadge"), Ne = A("FmSearch"), De = A("FmTable"), Re = A("FmListItem"), Ue = A("FmList");
1296
- return y(), F(L, null, [f("div", Yt, [f("div", Ht, [f("div", qt, [f("div", Gt, T(c(a)("menu.publish.title")), 1)]), v(w, {
1297
- label: d.value,
1298
- class: "xs:hidden text-fm-color-primary bg-fm-color-system-warning-100"
1299
- }, null, 8, ["label"]), v(q), f("div", Jt, [v(j, {
1300
- disabled: S.value,
1301
- label: c(a)("menu.publish.actions.refresh"),
1302
- variant: "secondary",
1303
- onClick: b[0] || (b[0] = () => Ae())
1304
- }, null, 8, ["disabled", "label"])]), f("div", Wt, [v(Bt, {
1305
- progress: oe.value,
1306
- restaurants: H.value,
1307
- onPublishMenu: b[1] || (b[1] = (M) => re(M))
1308
- }, {
1309
- default: E(({
1310
- trigger: M
1311
- }) => [c(e).activePublishJob !== null ? (y(), K(ie, {
1312
- key: 0,
1313
- variant: "critical",
1314
- value: 1
1315
- }, {
1316
- default: E(() => [v(j, {
1317
- variant: "secondary",
1318
- disabled: S.value,
1319
- label: c(a)("menu.publish.actions.publish_progress"),
1320
- onClick: M
1321
- }, null, 8, ["disabled", "label", "onClick"])]),
1322
- _: 2
1323
- }, 1024)) : (y(), K(j, {
1324
- key: 1,
1325
- variant: "secondary",
1326
- disabled: S.value,
1327
- label: c(a)("menu.publish.actions.publish_progress"),
1328
- onClick: M
1329
- }, null, 8, ["disabled", "label", "onClick"]))]),
1330
- _: 1
1331
- }, 8, ["progress", "restaurants"])]), f("div", Qt, [v(j, {
1332
- disabled: S.value,
1333
- icon: "ios_share",
1334
- label: c(a)("menu.publish.actions.publish_all"),
1335
- variant: "primary",
1336
- onClick: b[2] || (b[2] = () => re())
1337
- }, null, 8, ["disabled", "label"])])]), f("div", Xt, [v(c(Se), {
1338
- multiple: "",
1339
- modelValue: O.value,
1340
- "onUpdate:modelValue": b[4] || (b[4] = (M) => O.value = M)
1341
- }, {
1342
- "append-right": E(() => [v(c(je), {
1343
- modelValue: ne.value,
1344
- "onUpdate:modelValue": b[3] || (b[3] = (M) => ne.value = M),
1345
- attributes: $e.value
1346
- }, null, 8, ["modelValue", "attributes"])]),
1347
- _: 1
1348
- }, 8, ["modelValue"]), v(Ne, {
1349
- modelValue: h.value,
1350
- "onUpdate:modelValue": b[5] || (b[5] = (M) => h.value = M),
1351
- autofocus: "",
1352
- class: "w-[320px] xs:w-full",
1353
- placeholder: c(a)("menu.publish.table.search.placeholder")
1354
- }, null, 8, ["modelValue", "placeholder"])]), H.value.length > 0 ? (y(), F(L, {
1355
- key: 0
1356
- }, [v(Qe, {
1357
- class: "xs:hidden block"
1358
- }, {
1359
- default: E(() => [v(De, {
1360
- modelValue: i.value,
1361
- "onUpdate:modelValue": b[6] || (b[6] = (M) => i.value = M),
1362
- "get-row-id": (M) => M._id,
1363
- "column-defs": g,
1364
- loading: S.value,
1365
- "page-size": H.value.length,
1366
- "row-data": H.value,
1367
- shrinkAt: !1,
1368
- virtual: !0,
1369
- selection: "multiple",
1370
- "hide-footer": "",
1371
- "pin-header-row": "",
1372
- onRowClick: b[7] || (b[7] = (M) => u(M.original))
1373
- }, null, 8, ["modelValue", "get-row-id", "loading", "page-size", "row-data"])]),
1374
- _: 1
1375
- }), v(Ue, {
1376
- class: "flex-col flex-1 min-h-0 overflow-auto xs:flex hidden w-full pb-64",
1377
- separator: ""
1378
- }, {
1379
- default: E(() => [(y(!0), F(L, null, W(H.value, (M) => (y(), K(Re, {
1380
- key: M._id,
1381
- label: M.displayName,
1382
- style: {
1383
- padding: "12px 0 !important"
1384
- },
1385
- onClick: () => u(M)
1386
- }, {
1387
- default: E(() => [f("div", Zt, [f("div", ea, [f("div", ta, T(m(M.updatedAt)), 1), v(p, {
1388
- row: M
1389
- }, null, 8, ["row"])]), f("div", aa, [f("div", la, T(M.displayName), 1), f("div", sa, [f("div", null, "Default: " + T(M.catalog.default), 1), f("div", null, "POS takeaway: " + T(M.catalog.takeaway), 1), f("div", null, "Pickup: " + T(M.catalog.pickup), 1)])])]), f("div", na, [o.value && M.revertConfig ? (y(), K(j, {
1390
- key: 0,
1391
- disabled: S.value,
1392
- icon: "undo",
1393
- variant: "tertiary",
1394
- onClick: te(() => r(M), ["stop"])
1395
- }, null, 8, ["disabled", "onClick"])) : Q("", !0), v(j, {
1396
- disabled: S.value,
1397
- icon: "ios_share",
1398
- variant: "tertiary",
1399
- onClick: te(() => U(V(M)), ["stop"])
1400
- }, null, 8, ["disabled", "onClick"])])]),
1401
- _: 2
1402
- }, 1032, ["label", "onClick"]))), 128))]),
1403
- _: 1
1404
- })], 64)) : (y(), K(c(xe), {
1405
- key: 1,
1406
- title: c(a)("menu.publish.empty.title"),
1407
- subtitle: c(a)("menu.publish.empty.subtitle"),
1408
- action: {
1409
- text: c(a)("menu.publish.empty.action"),
1410
- icon: "add",
1411
- callback: () => {
1412
- c(x).push({
1413
- name: "$settings-my-business"
1414
- });
1415
- }
1416
- }
1417
- }, null, 8, ["title", "subtitle", "action"]))]), f("div", oa, [v(j, {
1418
- disabled: S.value,
1419
- icon: "ios_share",
1420
- label: c(a)("menu.publish.actions.publish_all"),
1421
- variant: "fab",
1422
- onClick: b[8] || (b[8] = () => re())
1423
- }, null, 8, ["disabled", "label"])]), v(Kt, {
1424
- ref_key: "updateCatalogDialogRef",
1425
- ref: _,
1426
- catalogs: R.value,
1427
- onOnComplete: U
1428
- }, null, 8, ["catalogs"])], 64);
1429
- };
1430
- }
1431
- });
1432
- export {
1433
- ga as default
1434
- };