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