@feedmepos/mf-menu 0.32.43 → 0.32.44

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 (71) hide show
  1. package/dist/{App-C9b4SjED.js → App-BXkiQoTM.js} +5 -5
  2. package/dist/{ApplyProduct.vue_vue_type_script_setup_true_lang-C1T4Ewek.js → ApplyProduct.vue_vue_type_script_setup_true_lang-BoSL4dm7.js} +3 -3
  3. package/dist/{Catalog-BVrf3VaX.js → Catalog-CLFVLyor.js} +44 -44
  4. package/dist/{Category-BkReM5IG.js → Category-BdyouDU8.js} +24 -24
  5. package/dist/{Category-BMzIQqIE.js → Category-CNuVHuI3.js} +25 -25
  6. package/dist/{CookingGuide-CvctI1TH.js → CookingGuide-Bed7bUt1.js} +105 -105
  7. package/dist/{CustomAttributeChip.vue_vue_type_script_setup_true_lang-bYSEp6Wb.js → CustomAttributeChip.vue_vue_type_script_setup_true_lang-CZDL2xJC.js} +1 -1
  8. package/dist/{Group-CHkNuuHE.js → Group-D4UTsIxI.js} +3 -3
  9. package/dist/{Group-BQzmXagr.js → Group-TUqCPmO3.js} +1 -1
  10. package/dist/{Group.vue_vue_type_script_setup_true_lang-BkruJTpL.js → Group.vue_vue_type_script_setup_true_lang-BJPT8flL.js} +19 -19
  11. package/dist/{GroupMarkupPriceDialog.vue_vue_type_script_setup_true_lang-CBz83Qd1.js → GroupMarkupPriceDialog.vue_vue_type_script_setup_true_lang-D83liryu.js} +30 -30
  12. package/dist/{ImportProductDialog.vue_vue_type_script_setup_true_lang-Dpx4meDa.js → ImportProductDialog.vue_vue_type_script_setup_true_lang-CRIRinHB.js} +10 -11
  13. package/dist/{Ingredient-BNsKYrQB.js → Ingredient-CcxoeuDd.js} +20 -20
  14. package/dist/{InventoryBinding.vue_vue_type_script_setup_true_lang-DzzwwdA_.js → InventoryBinding.vue_vue_type_script_setup_true_lang-58tyxdVh.js} +2 -2
  15. package/dist/{LinkProductSideSheet-C6-wef-M.js → LinkProductSideSheet-DazOkwkd.js} +45 -45
  16. package/dist/{MenuSetting-DRaw7b6m.js → MenuSetting-B3oLll4C.js} +47 -47
  17. package/dist/{PrintRoute-BKB-thVp.js → PrintRoute-D878qPu8.js} +39 -39
  18. package/dist/{Product-vviXmBR1.js → Product-DOC8y_mW.js} +1 -1
  19. package/dist/{Product.vue_vue_type_script_setup_true_lang-5h-k6zad.js → Product.vue_vue_type_script_setup_true_lang-tZyBhWYT.js} +140 -140
  20. package/dist/{ProductInternalTools-DtLk3xFR.js → ProductInternalTools-9TgIc2bR.js} +66 -66
  21. package/dist/Products-DfUGnHmD.js +1568 -0
  22. package/dist/{Publish-jx0_H_26.js → Publish-BktK_PKq.js} +29 -29
  23. package/dist/{Recipe-Dk04ge-_.js → Recipe-eA0xrGYk.js} +24 -24
  24. package/dist/{RuleView.vue_vue_type_script_setup_true_lang-DaCVUn1i.js → RuleView.vue_vue_type_script_setup_true_lang-t8M7z09s.js} +2 -2
  25. package/dist/{Scheduler-vFTvCVcY.js → Scheduler-CKSqPZLQ.js} +11 -11
  26. package/dist/{ServingSequence-DiBqQ_iS.js → ServingSequence-Ea20baNj.js} +44 -44
  27. package/dist/{Setting-CtzJ_pVM.js → Setting-u6lX_Dzg.js} +17 -17
  28. package/dist/{Subcategory-Cmv2W67T.js → Subcategory-C6s7OMOb.js} +51 -51
  29. package/dist/{Takeaway-DBW4UPFZ.js → Takeaway-B9kr-Nf4.js} +13 -13
  30. package/dist/{Takeaway-ChaYk0Ix.js → Takeaway-lWxS9oWe.js} +1 -1
  31. package/dist/{Takeaway.vue_vue_type_script_setup_true_lang-C7RL3ITP.js → Takeaway.vue_vue_type_script_setup_true_lang-oA0e9oI5.js} +54 -54
  32. package/dist/{Thumbnail.vue_vue_type_script_setup_true_lang-edwJ1203.js → Thumbnail.vue_vue_type_script_setup_true_lang-T40ChY7j.js} +27 -27
  33. package/dist/TranslationSideSheet.vue_vue_type_script_setup_true_lang-CcIGCUwk.js +194 -0
  34. package/dist/TreeEditorOpenner.vue_vue_type_script_setup_true_lang-B1e3d-uX.js +6130 -0
  35. package/dist/{Unit-BgLqPMLe.js → Unit-DkQlUg2l.js} +8 -8
  36. package/dist/{Variant-B8yxF5mJ.js → Variant-BF5r2WLL.js} +25 -25
  37. package/dist/{_id_-CDN7as0K.js → _id_-_oqk-OhC.js} +28 -28
  38. package/dist/app-CfCYl2pO.js +363 -0
  39. package/dist/{app-0AQBxO0B.js → app-DIYHNWEw.js} +1 -1
  40. package/dist/app.js +1 -1
  41. package/dist/apps/mf-menu/tsconfig.app.tsbuildinfo +1 -1
  42. package/dist/assets/{linked-status-DTIHdzDw.js → linked-status-AoXjo9FF.js} +2 -2
  43. package/dist/assets/{menu-export-CpcyYnR-.js → menu-export-BHcaWhM3.js} +2 -2
  44. package/dist/assets/{override-menu-CASoFjhZ.js → override-menu-B9xQcjuJ.js} +2 -2
  45. package/dist/assets/{validate-menu-C5AkexWv.js → validate-menu-D-ezd4W8.js} +2 -2
  46. package/dist/{catalog-BA1e4WAu.js → catalog-CvN9Wu8V.js} +1 -1
  47. package/dist/{catalogSetting-DE5rjVfj.js → catalogSetting-qS5Np22q.js} +1 -1
  48. package/dist/{currency-D5qYOpxI.js → currency-Nxod6uwl.js} +1 -1
  49. package/dist/dayjs.min-B1AjAGva.js +6 -0
  50. package/dist/index-C0Zw1cSS.js +545 -0
  51. package/dist/{index-vPs04fVf.js → index-Cq-czJjU.js} +31 -31
  52. package/dist/index-nKlYiotY.js +246 -0
  53. package/dist/{index.vue_vue_type_script_setup_true_lang-DSZsSghE.js → index.vue_vue_type_script_setup_true_lang-YXKayPEp.js} +103 -78
  54. package/dist/{item-Dp17qTYi.js → item-CUZSonzT.js} +2587 -2587
  55. package/dist/{jszip.min-DlpCmtaR.js → jszip.min-BnkZQ6lD.js} +6 -7
  56. package/dist/{menu-BOVrJ7di.js → menu-BP_ArXCI.js} +1 -1
  57. package/dist/{menuV2-BHnldQiM.js → menuV2-BGEYgQ8-.js} +59 -59
  58. package/dist/{priceTier-BRQz1GRF.js → priceTier-B-Qa0xaO.js} +1 -1
  59. package/dist/{rules-CO49kqfr.js → rules-Dchd_ilF.js} +12 -12
  60. package/dist/{scheduler-BDHjl8t7.js → scheduler-DN7ZGLk8.js} +29 -29
  61. package/dist/{toExcel-DGdZKSxT.js → toExcel-jHmkDqcm.js} +2 -2
  62. package/dist/{translation-BCZ1Ruvv.js → translation-Cdap0IVg.js} +21 -35
  63. package/dist/{unit-D7QVgTp_.js → unit-DgL56pkI.js} +35 -35
  64. package/package.json +1 -1
  65. package/dist/Products-BR3iBVFd.js +0 -307
  66. package/dist/RestaurantAttributesSelector.vue_vue_type_script_setup_true_lang-I6qrPmxY.js +0 -144
  67. package/dist/TranslationSideSheet.vue_vue_type_script_setup_true_lang-Cs6s_csi.js +0 -196
  68. package/dist/TreeEditorOpenner.vue_vue_type_script_setup_true_lang-DIbjlDVn.js +0 -5767
  69. package/dist/app-BU6wILmn.js +0 -2286
  70. package/dist/dayjs.min-BFDAHpA8.js +0 -7
  71. package/dist/index--nQbIQ0d.js +0 -545
@@ -1,7 +0,0 @@
1
- import { g as r } from "./app-BU6wILmn.js";
2
- import { aj as a } from "./index.vue_vue_type_script_setup_true_lang-DSZsSghE.js";
3
- var o = a();
4
- const m = /* @__PURE__ */ r(o);
5
- export {
6
- m as D
7
- };
@@ -1,545 +0,0 @@
1
- import { defineComponent as re, ref as p, computed as z, watch as ae, resolveComponent as $, createBlock as K, openBlock as f, unref as l, withCtx as C, createElementVNode as n, toDisplayString as x, createElementBlock as _, createCommentVNode as F, Fragment as I, renderList as B, createVNode as u, normalizeClass as te, renderSlot as me, createSlots as ve } from "vue";
2
- import { H as U, O as fe, B as pe, G as q, A as le, J as ne, y as oe } from "./index.vue_vue_type_script_setup_true_lang-DSZsSghE.js";
3
- import { d as _e } from "./vuedraggable-CK8z7qA8.js";
4
- import { useI18n as de, ALL_LOCALE_OPTIONS as D } from "@feedmepos/mf-common";
5
- import { useSnackbar as ye, components as he } from "@feedmepos/ui-library";
6
- import { _ as be } from "./FormItem.vue_vue_type_script_setup_true_lang-BmPAVphe.js";
7
- import { _ as ge } from "./RuleView.vue_vue_type_script_setup_true_lang-DaCVUn1i.js";
8
- import { u as ce } from "./discardConfirm-BHni0LNu.js";
9
- import { _ as xe } from "./ApplyProduct.vue_vue_type_script_setup_true_lang-C1T4Ewek.js";
10
- import { g as R, a as ee, _ as se, b as ie } from "./translation-BCZ1Ruvv.js";
11
- import { c as Ve } from "./check-C9mY6LiX.js";
12
- const ke = { class: "fm-typo-en-title-md-600" }, Ce = { class: "pt-8 space-y-24" }, Ee = { class: "flex flex-col gap-8" }, Oe = { class: "text-fm-color-typo-primary fm-typo-en-body-lg-600" }, we = { class: "flex items-center gap-8 flex-wrap" }, Ue = { class: "w-24 h-24 rounded-full bg-fm-color-primary-oats text-fm-color-primary flex items-center justify-center fm-typo-en-body-sm-600" }, $e = { class: "fm-typo-en-body-md-600" }, Ne = ["onClick"], Le = { class: "flex items-center gap-8" }, je = { class: "w-24 h-24 rounded-full bg-fm-color-opacity-sm flex items-center justify-center fm-typo-en-body-sm-600" }, Se = { class: "fm-typo-en-body-md-400" }, Te = { class: "flex flex-col gap-16 border p-16 rounded-lg" }, Fe = { class: "fm-typo-en-body-lg-600" }, De = {
13
- key: 0,
14
- class: "flex flex-col gap-32 pl-32"
15
- }, Ie = {
16
- key: 0,
17
- class: "space-y-8"
18
- }, Me = { class: "flex w-[100px] items-center gap-8" }, Ae = { class: "w-24 h-24 rounded-full bg-fm-color-opacity-sm flex items-center justify-center fm-typo-en-body-sm-600" }, Be = { class: "fm-typo-en-body-md-400" }, qe = { class: "flex-1" }, ze = { class: "flex flex-col gap-16 border p-16 rounded-lg" }, Pe = { class: "fm-typo-en-body-lg-600" }, Ye = {
19
- key: 0,
20
- class: "flex flex-col gap-32 pl-32"
21
- }, Ge = { class: "fm-typo-en-body-md-600 text-fm-color-primary border border-fm-color-primary inline-block rounded-md px-8 py-4" }, Re = { class: "space-y-32" }, Ke = {
22
- key: 0,
23
- class: "space-y-8"
24
- }, He = { class: "flex w-[100px] items-center gap-8" }, Je = { class: "w-24 h-24 rounded-full bg-fm-color-opacity-sm flex items-center justify-center fm-typo-en-body-sm-600" }, Qe = { class: "fm-typo-en-body-md-400" }, We = { class: "flex-1" }, Xe = { class: "flex gap-8 items-center justify-start" }, Ze = /* @__PURE__ */ re({
25
- __name: "ProductVariantTranslation",
26
- props: {
27
- modelValue: { type: Boolean },
28
- variant: {},
29
- expandSection: { default: "variant" }
30
- },
31
- emits: ["update:modelValue", "update:variant"],
32
- setup(H, { emit: J }) {
33
- const v = H, T = J, { t: d } = de(), N = p(!1), L = p(!1), y = p([]), s = p([]), V = p({}), E = p({}), O = p(""), M = p(""), h = p({}), A = p({}), j = p({}), P = p({}), Q = z(() => v.variant.options.map((o, e) => ({
34
- ...o,
35
- optionIndex: e + 1
36
- })).filter((o) => o.name.trim() !== ""));
37
- function Y() {
38
- const o = /* @__PURE__ */ new Set();
39
- v.variant.name_locale && Object.keys(v.variant.name_locale).forEach((i) => o.add(i)), v.variant.options.forEach((i) => {
40
- i.name_locale && Object.keys(i.name_locale).forEach((k) => o.add(k));
41
- });
42
- const e = Array.from(o).map((i) => {
43
- const k = D.find((t) => t.code === i);
44
- return {
45
- localeCode: i,
46
- localeName: (k == null ? void 0 : k.name) || i,
47
- value: ""
48
- // Not used for language selection
49
- };
50
- });
51
- y.value = e;
52
- const r = {};
53
- v.variant.name_locale && Object.entries(v.variant.name_locale).forEach(([i, k]) => {
54
- r[i] = k;
55
- }), V.value = r, O.value = v.variant.name;
56
- const m = {}, g = {};
57
- v.variant.options.forEach((i) => {
58
- m[i._id] = {}, i.name_locale && Object.entries(i.name_locale).forEach(([k, t]) => {
59
- m[i._id][k] = t;
60
- }), g[i._id] = i.name;
61
- }), h.value = m, j.value = g;
62
- }
63
- ae(
64
- () => [v.modelValue, v.variant, v.expandSection],
65
- ([o, , e]) => {
66
- o && (Y(), s.value = U.clone(y.value), E.value = U.clone(V.value), M.value = O.value, A.value = U.clone(h.value), P.value = U.clone(j.value), e === "variant" ? (N.value = !0, L.value = !1) : (N.value = !1, L.value = !0));
67
- },
68
- { immediate: !0, deep: !0 }
69
- );
70
- const G = z(() => {
71
- const o = new Set(y.value.map((e) => e.localeCode));
72
- return D.filter((e) => !o.has(e.code)).map((e) => ({
73
- code: e.code,
74
- name: e.name,
75
- icon: R(e.code)
76
- }));
77
- });
78
- function W(o) {
79
- const e = D.find((r) => r.code === o);
80
- e && (y.value.push({
81
- localeCode: e.code,
82
- localeName: e.name,
83
- value: ""
84
- }), V.value[e.code] || (V.value[e.code] = ""), Object.keys(h.value).forEach((r) => {
85
- h.value[r][e.code] || (h.value[r][e.code] = "");
86
- }));
87
- }
88
- function X(o) {
89
- y.value = y.value.filter((e) => e.localeCode !== o), delete V.value[o], Object.keys(h.value).forEach((e) => {
90
- delete h.value[e][o];
91
- });
92
- }
93
- function Z() {
94
- return !U.isEqual(y.value, s.value) || !U.isEqual(V.value, E.value) || O.value !== M.value || !U.isEqual(h.value, A.value) || !U.isEqual(j.value, P.value);
95
- }
96
- function a() {
97
- const o = U.clone(v.variant);
98
- O.value !== void 0 && (o.name = O.value);
99
- const e = {};
100
- Object.entries(V.value).forEach(([r, m]) => {
101
- m && m.trim() && (e[r] = m.trim());
102
- }), Object.keys(e).length > 0 ? o.name_locale = e : delete o.name_locale, o.options.forEach((r) => {
103
- const m = j.value[r._id];
104
- m !== void 0 && (r.name = m);
105
- const g = h.value[r._id];
106
- if (g && Object.keys(g).length > 0) {
107
- const i = {};
108
- Object.entries(g).forEach(([k, t]) => {
109
- t && t.trim() && (i[k] = t.trim());
110
- }), Object.keys(i).length > 0 ? r.name_locale = i : delete r.name_locale;
111
- } else
112
- delete r.name_locale;
113
- }), T("update:variant", o), T("update:modelValue", !1);
114
- }
115
- function c() {
116
- T("update:modelValue", !1);
117
- }
118
- const b = ce(Z, c), S = z({
119
- get: () => v.modelValue,
120
- set: (o) => T("update:modelValue", o)
121
- });
122
- return (o, e) => {
123
- const r = $("FmIcon"), m = $("fm-button"), g = $("FmMenu"), i = $("fm-text-field"), k = $("fm-side-sheet");
124
- return f(), K(k, {
125
- modelValue: S.value,
126
- "onUpdate:modelValue": e[3] || (e[3] = (t) => S.value = t),
127
- "max-width": 720,
128
- "onOn:clickedAway": l(b)
129
- }, {
130
- "side-sheet-header": C(() => [
131
- n("p", ke, x(l(d)("menu.variant.form.translation.title")), 1)
132
- ]),
133
- "side-sheet-footer": C(() => [
134
- n("div", Xe, [
135
- u(m, {
136
- label: l(d)("common.save"),
137
- size: "lg",
138
- variant: "primary",
139
- onClick: a
140
- }, null, 8, ["label"]),
141
- u(m, {
142
- label: l(d)("common.cancel"),
143
- size: "lg",
144
- variant: "tertiary",
145
- onClick: l(b)
146
- }, null, 8, ["label", "onClick"])
147
- ])
148
- ]),
149
- default: C(() => [
150
- n("div", Ce, [
151
- n("div", Ee, [
152
- n("p", Oe, x(l(d)("menu.variant.form.translation.language")), 1),
153
- n("div", we, [
154
- (f(!0), _(I, null, B(y.value, (t) => (f(), _("div", {
155
- key: t.localeCode,
156
- class: "flex items-center gap-8 p-8 border border-fm-color-primary text-fm-color-primary rounded-full"
157
- }, [
158
- n("div", Ue, x(l(R)(t.localeCode)), 1),
159
- n("span", $e, x(l(ee)(t.localeCode, l(D))), 1),
160
- u(r, {
161
- name: "close",
162
- class: "cursor-pointer",
163
- variant: "secondary",
164
- onClick: (w) => X(t.localeCode)
165
- }, null, 8, ["onClick"])
166
- ]))), 128)),
167
- G.value.length > 0 ? (f(), K(g, { key: 0 }, {
168
- "menu-button": C(() => [
169
- u(m, {
170
- variant: "secondary",
171
- "border-color": "neutral-gray-300",
172
- "text-color": "neutral-gray-400",
173
- icon: "add"
174
- })
175
- ]),
176
- default: C(() => [
177
- (f(!0), _(I, null, B(G.value, (t) => (f(), _("div", {
178
- key: t.code,
179
- class: "p-12 cursor-pointer hover:bg-fm-color-opacity-md rounded-sm",
180
- onClick: (w) => W(t.code)
181
- }, [
182
- n("div", Le, [
183
- n("div", je, x(t.icon), 1),
184
- n("span", Se, x(t.name), 1)
185
- ])
186
- ], 8, Ne))), 128))
187
- ]),
188
- _: 1
189
- })) : F("", !0)
190
- ])
191
- ]),
192
- n("div", Te, [
193
- n("div", {
194
- class: "flex items-center gap-16 cursor-pointer",
195
- onClick: e[0] || (e[0] = (t) => N.value = !N.value)
196
- }, [
197
- u(r, {
198
- name: "keyboard_arrow_down",
199
- class: te(["transition-transform", N.value ? "transform rotate-180" : ""])
200
- }, null, 8, ["class"]),
201
- n("p", Fe, x(l(d)("menu.variant.form.translation.variant_name")), 1)
202
- ]),
203
- N.value ? (f(), _("div", De, [
204
- u(se, {
205
- label: l(d)("menu.variant.form.translation.default"),
206
- modelValue: O.value,
207
- "onUpdate:modelValue": e[1] || (e[1] = (t) => O.value = t)
208
- }, null, 8, ["label", "modelValue"]),
209
- y.value.length > 0 ? (f(), _("div", Ie, [
210
- u(ie, {
211
- label: l(d)("menu.variant.form.translation.translation")
212
- }, null, 8, ["label"]),
213
- (f(!0), _(I, null, B(y.value, (t) => (f(), _("div", {
214
- key: t.localeCode,
215
- class: "flex items-center gap-16"
216
- }, [
217
- n("div", Me, [
218
- n("div", Ae, x(l(R)(t.localeCode)), 1),
219
- n("span", Be, x(l(ee)(t.localeCode, l(D))), 1)
220
- ]),
221
- n("div", qe, [
222
- u(i, {
223
- modelValue: V.value[t.localeCode],
224
- "onUpdate:modelValue": (w) => V.value[t.localeCode] = w,
225
- placeholder: o.variant.name
226
- }, null, 8, ["modelValue", "onUpdate:modelValue", "placeholder"])
227
- ])
228
- ]))), 128))
229
- ])) : F("", !0)
230
- ])) : F("", !0)
231
- ]),
232
- n("div", ze, [
233
- n("div", {
234
- class: "flex items-center gap-16 cursor-pointer",
235
- onClick: e[2] || (e[2] = (t) => L.value = !L.value)
236
- }, [
237
- u(r, {
238
- name: "keyboard_arrow_down",
239
- class: te(["transition-transform", L.value ? "transform rotate-180" : ""])
240
- }, null, 8, ["class"]),
241
- n("p", Pe, x(l(d)("menu.variant.form.translation.option_value")), 1)
242
- ]),
243
- L.value ? (f(), _("div", Ye, [
244
- (f(!0), _(I, null, B(Q.value, (t) => (f(), _("div", {
245
- key: t._id,
246
- class: "space-y-8"
247
- }, [
248
- n("p", Ge, x(l(d)("menu.variant.form.translation.option", { number: t.optionIndex })), 1),
249
- n("div", Re, [
250
- u(se, {
251
- label: l(d)("menu.variant.form.translation.default"),
252
- modelValue: j.value[t._id],
253
- "onUpdate:modelValue": (w) => j.value[t._id] = w,
254
- spacing: "sm"
255
- }, null, 8, ["label", "modelValue", "onUpdate:modelValue"]),
256
- y.value.length > 0 ? (f(), _("div", Ke, [
257
- u(ie, {
258
- label: l(d)("menu.variant.form.translation.translation"),
259
- spacing: "sm"
260
- }, null, 8, ["label"]),
261
- (f(!0), _(I, null, B(y.value, (w) => (f(), _("div", {
262
- key: w.localeCode,
263
- class: "flex items-center gap-16"
264
- }, [
265
- n("div", He, [
266
- n("div", Je, x(l(R)(w.localeCode)), 1),
267
- n("span", Qe, x(l(ee)(w.localeCode, l(D))), 1)
268
- ]),
269
- n("div", We, [
270
- u(i, {
271
- modelValue: h.value[t._id][w.localeCode],
272
- "onUpdate:modelValue": (ue) => h.value[t._id][w.localeCode] = ue,
273
- placeholder: t.name
274
- }, null, 8, ["modelValue", "onUpdate:modelValue", "placeholder"])
275
- ])
276
- ]))), 128))
277
- ])) : F("", !0)
278
- ])
279
- ]))), 128))
280
- ])) : F("", !0)
281
- ])
282
- ])
283
- ]),
284
- _: 1
285
- }, 8, ["modelValue", "onOn:clickedAway"]);
286
- };
287
- }
288
- }), ea = { class: "fm-typo-en-title-md-600" }, aa = { class: "py-16 space-y-32" }, ta = ["data-not-allow-sort"], la = {
289
- key: 1,
290
- class: "w-24"
291
- }, na = { class: "flex-1" }, oa = { class: "flex items-center gap-8" }, sa = { class: "flex gap-8 items-center justify-start" }, ia = /* @__PURE__ */ re({
292
- __name: "Form",
293
- props: {
294
- initialValue: {}
295
- },
296
- setup(H, { expose: J }) {
297
- const v = H, T = fe(pe(ye())), { t: d } = de(), N = z(
298
- () => v.initialValue ? d("menu.variant.form.title.edit") : d("menu.variant.form.title.add")
299
- ), L = z(() => v.initialValue ? "Update" : "Add"), y = () => {
300
- if (v.initialValue) {
301
- const a = q(v.initialValue);
302
- return a.options.push({
303
- _id: (/* @__PURE__ */ new Date()).toISOString(),
304
- name: ""
305
- }), a;
306
- } else
307
- return { ...le.generator.initMenuV4VariantGroup(), usedBy: [] };
308
- }, s = p(y()), V = p(!1), E = p(!1), O = p(!1), M = p("variant"), h = (a) => {
309
- Ve.isBoolean(a) ? E.value = a : E.value = !E.value;
310
- };
311
- function A(a) {
312
- M.value = a, O.value = !0;
313
- }
314
- function j(a) {
315
- s.value = a;
316
- }
317
- function P(a) {
318
- s.value.options = a;
319
- }
320
- function Q(a, c) {
321
- const b = q(s.value.options), S = b.findIndex((o) => o._id == a);
322
- b[S].name = c, s.value.options = b, S === s.value.options.length - 1 && Y();
323
- }
324
- function Y() {
325
- const a = q(s.value.options);
326
- s.value.options = [
327
- ...a,
328
- {
329
- _id: (/* @__PURE__ */ new Date()).toISOString(),
330
- name: ""
331
- }
332
- ];
333
- }
334
- function G(a) {
335
- const c = q(s.value.options);
336
- s.value.options = c.filter((b) => b._id !== a);
337
- }
338
- ae(
339
- () => s.value.options,
340
- (a) => {
341
- a.length <= 0 && Y();
342
- },
343
- {
344
- immediate: !0
345
- }
346
- );
347
- function W(a) {
348
- const c = a.draggedContext.futureIndex, b = a.relatedContext.list;
349
- return c !== b.length - 1;
350
- }
351
- const X = ce(
352
- () => {
353
- if (v.initialValue) {
354
- const a = s.value.options.filter((c) => !!c.name.trim());
355
- return !U.isEqual({ ...s.value, options: a }, v.initialValue);
356
- } else
357
- return !!(s.value.options.length > 1 || s.value.name.trim());
358
- },
359
- () => {
360
- E.value = !1;
361
- }
362
- ), Z = async () => {
363
- try {
364
- V.value = !0;
365
- const a = q(s.value);
366
- a.options = a.options.filter((c) => !!c.name.trim()), v.initialValue ? await T.updateMenu(
367
- {
368
- module: oe.F_MENU_MODULE_V4_KEY.enum.variant,
369
- operation: ne.F_OPERATION_TYPE.update,
370
- data: a
371
- },
372
- a.name
373
- ) : await T.updateMenu(
374
- {
375
- module: oe.F_MENU_MODULE_V4_KEY.enum.variant,
376
- operation: ne.F_OPERATION_TYPE.create,
377
- data: a
378
- },
379
- a.name
380
- ), h(!1), s.value = { ...le.generator.initMenuV4VariantGroup(), usedBy: [] };
381
- } finally {
382
- V.value = !1;
383
- }
384
- };
385
- return ae(
386
- () => E.value,
387
- (a) => {
388
- a && (s.value = y());
389
- }
390
- ), J({
391
- show: E,
392
- trigger: h
393
- }), (a, c) => {
394
- const b = $("fm-icon"), S = $("fm-text-field"), o = $("fm-button"), e = $("fm-side-sheet");
395
- return f(), _(I, null, [
396
- me(a.$slots, "default", { trigger: h }),
397
- u(e, {
398
- id: "variant-form",
399
- modelValue: E.value,
400
- "onUpdate:modelValue": c[4] || (c[4] = (r) => E.value = r),
401
- "is-container": l(he).FmForm,
402
- "is-container-props": {
403
- onValidationSuccess: Z,
404
- blameFormChildOnValidationFailed: !0
405
- },
406
- "max-width": 560,
407
- "onOn:clickedAway": l(X)
408
- }, {
409
- "side-sheet-header": C(() => [
410
- n("p", ea, x(N.value), 1)
411
- ]),
412
- "side-sheet-footer": C(() => [
413
- n("div", sa, [
414
- u(o, {
415
- label: L.value,
416
- loading: V.value,
417
- size: "lg",
418
- type: "submit",
419
- variant: "primary"
420
- }, null, 8, ["label", "loading"]),
421
- u(o, {
422
- label: l(d)("menu.common.actions.cancel"),
423
- size: "lg",
424
- variant: "tertiary",
425
- onClick: c[3] || (c[3] = () => E.value = !1)
426
- }, null, 8, ["label"])
427
- ])
428
- ]),
429
- default: C(() => {
430
- var r;
431
- return [
432
- n("div", aa, [
433
- u(ge, {
434
- title: l(d)("menu.variant.form.detail")
435
- }, {
436
- default: C(() => [
437
- u(S, {
438
- autofocus: "",
439
- label: l(d)("menu.variant.form.name.label"),
440
- "helper-text": l(d)("menu.variant.form.name.helper"),
441
- modelValue: s.value.name,
442
- "onUpdate:modelValue": c[1] || (c[1] = (m) => s.value.name = m),
443
- rules: [(m) => !!m || l(d)("menu.variant.form.name.required")],
444
- placeholder: l(d)("menu.variant.form.name.placeholder")
445
- }, {
446
- append: C(() => [
447
- u(b, {
448
- name: "g_translate",
449
- class: "cursor-pointer",
450
- onClick: c[0] || (c[0] = (m) => A("variant"))
451
- })
452
- ]),
453
- _: 1
454
- }, 8, ["label", "helper-text", "modelValue", "rules", "placeholder"]),
455
- u(be, {
456
- label: l(d)("menu.variant.form.options.title")
457
- }, {
458
- default: C(() => [
459
- n("div", null, [
460
- u(l(_e), {
461
- "model-value": s.value.options,
462
- move: W,
463
- class: "space-y-16",
464
- group: "categories",
465
- handle: ".handle",
466
- "item-key": "_id",
467
- "onUpdate:modelValue": P
468
- }, {
469
- item: C(({ element: m, index: g }) => [
470
- n("div", {
471
- class: te(["flex items-center", "space-x-8"]),
472
- "data-not-allow-sort": g === s.value.options.length - 1
473
- }, [
474
- g !== s.value.options.length - 1 ? (f(), K(b, {
475
- key: 0,
476
- class: "handle",
477
- name: "drag_handle"
478
- })) : g > 0 ? (f(), _("div", la)) : F("", !0),
479
- n("div", na, [
480
- u(S, {
481
- "model-value": m.name,
482
- rules: [
483
- () => !!s.value.options.length || l(d)("menu.variant.form.options.min_required"),
484
- (i) => g === s.value.options.length - 1 || i ? !0 : l(d)("menu.variant.form.options.name_required")
485
- ],
486
- class: "flex-1",
487
- placeholder: l(d)("menu.variant.form.options.placeholder"),
488
- "onUpdate:modelValue": (i) => Q(m._id, i)
489
- }, ve({ _: 2 }, [
490
- g !== s.value.options.length - 1 ? {
491
- name: "append",
492
- fn: C(() => [
493
- n("div", oa, [
494
- u(b, {
495
- name: "g_translate",
496
- class: "cursor-pointer",
497
- onClick: c[2] || (c[2] = (i) => A("options"))
498
- }),
499
- u(b, {
500
- name: "close",
501
- onClick: (i) => G(m._id)
502
- }, null, 8, ["onClick"])
503
- ])
504
- ]),
505
- key: "0"
506
- } : void 0
507
- ]), 1032, ["model-value", "rules", "placeholder", "onUpdate:modelValue"])
508
- ])
509
- ], 8, ta)
510
- ]),
511
- _: 1
512
- }, 8, ["model-value"])
513
- ])
514
- ]),
515
- _: 1
516
- }, 8, ["label"])
517
- ]),
518
- _: 1
519
- }, 8, ["title"]),
520
- (r = s.value.usedBy) != null && r.length ? (f(), K(xe, {
521
- key: 0,
522
- editable: !1,
523
- overrides: s.value.usedBy || [],
524
- "select-variant": !1,
525
- title: l(d)("menu.variant.form.applied_product")
526
- }, null, 8, ["overrides", "title"])) : F("", !0)
527
- ])
528
- ];
529
- }),
530
- _: 1
531
- }, 8, ["modelValue", "is-container", "is-container-props", "onOn:clickedAway"]),
532
- u(Ze, {
533
- modelValue: O.value,
534
- "onUpdate:modelValue": c[5] || (c[5] = (r) => O.value = r),
535
- variant: s.value,
536
- "expand-section": M.value,
537
- "onUpdate:variant": j
538
- }, null, 8, ["modelValue", "variant", "expand-section"])
539
- ], 64);
540
- };
541
- }
542
- }), ba = ia;
543
- export {
544
- ba as V
545
- };