@feedmepos/mf-menu 0.32.42-dev.3 → 0.32.43-dev

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 (66) hide show
  1. package/dist/{App-1oMjfIcc.js → App-CrjDDWL_.js} +5 -5
  2. package/dist/{ApplyProduct.vue_vue_type_script_setup_true_lang-AIw0Zgzf.js → ApplyProduct.vue_vue_type_script_setup_true_lang-C9_vvfQ0.js} +3 -3
  3. package/dist/{Catalog-CvQo24ck.js → Catalog-B0smQVC5.js} +6 -6
  4. package/dist/{Category-C8bM8EwO.js → Category--CBhhHgr.js} +4 -4
  5. package/dist/{Category-DmIaxrrK.js → Category-CRnTrk7Z.js} +5 -5
  6. package/dist/{CookingGuide-CKEbyk4o.js → CookingGuide-pLzJqj05.js} +4 -4
  7. package/dist/{CustomAttributeChip.vue_vue_type_script_setup_true_lang-Ci4gwgnH.js → CustomAttributeChip.vue_vue_type_script_setup_true_lang-BescRkpm.js} +1 -1
  8. package/dist/{Group-EnJDk54z.js → Group-BoVi0Rcg.js} +3 -3
  9. package/dist/{Group-CoYyRvcx.js → Group-h2MxylAR.js} +1 -1
  10. package/dist/{Group.vue_vue_type_script_setup_true_lang-tH2U82rV.js → Group.vue_vue_type_script_setup_true_lang-DoSZp0U5.js} +8 -8
  11. package/dist/{GroupMarkupPriceDialog.vue_vue_type_script_setup_true_lang-BDxjuWcY.js → GroupMarkupPriceDialog.vue_vue_type_script_setup_true_lang-CBOntQef.js} +5 -5
  12. package/dist/{ImportProductDialog.vue_vue_type_script_setup_true_lang-gVXNoAaN.js → ImportProductDialog.vue_vue_type_script_setup_true_lang-DshK6DwV.js} +210 -210
  13. package/dist/{Ingredient-7PPPp7Yf.js → Ingredient-DjZmix9T.js} +3 -3
  14. package/dist/{InventoryBinding.vue_vue_type_script_setup_true_lang-DQPjpqtv.js → InventoryBinding.vue_vue_type_script_setup_true_lang-fSRrfMjQ.js} +2 -2
  15. package/dist/{LinkProductSideSheet-BS-MEIOG.js → LinkProductSideSheet-1CEGjcHq.js} +3 -3
  16. package/dist/{MenuSetting-BNVyT0oG.js → MenuSetting-umNE52d9.js} +5 -5
  17. package/dist/{PrintRoute-BMdk0zDv.js → PrintRoute-BnFG1IjW.js} +4 -4
  18. package/dist/{Product-DbIK7Eog.js → Product-B_FPUoEN.js} +1 -1
  19. package/dist/{Product.vue_vue_type_script_setup_true_lang-FnX_M8lJ.js → Product.vue_vue_type_script_setup_true_lang-Bs8eI9g5.js} +13 -13
  20. package/dist/{ProductInternalTools-BC8jWpQd.js → ProductInternalTools-Bp2gz3QJ.js} +5 -5
  21. package/dist/{Products-CPi2vuUO.js → Products-Ddtfvm7l.js} +34 -34
  22. package/dist/{Publish-BcxHXZ1J.js → Publish-C0W6ofjm.js} +3 -3
  23. package/dist/{Recipe-egyxyFfA.js → Recipe-BhnMIcc7.js} +4 -4
  24. package/dist/{RestaurantAttributesSelector.vue_vue_type_script_setup_true_lang-CP1NjxzF.js → RestaurantAttributesSelector.vue_vue_type_script_setup_true_lang-D9VL-PzK.js} +1 -1
  25. package/dist/{RuleView.vue_vue_type_script_setup_true_lang-CPMCeAK9.js → RuleView.vue_vue_type_script_setup_true_lang-Bj4O3uSe.js} +2 -2
  26. package/dist/{Scheduler-Cb-IJtj8.js → Scheduler-BRwPYceV.js} +3 -3
  27. package/dist/{ServingSequence-B46n34xA.js → ServingSequence-MObSgHV2.js} +3 -3
  28. package/dist/{Setting-B_dZG5ZC.js → Setting-D7jNJPYo.js} +5 -5
  29. package/dist/{Subcategory-DbjLfXvf.js → Subcategory-D0i9wZms.js} +6 -6
  30. package/dist/{Takeaway-DNu6jYFC.js → Takeaway-B0rN8xm3.js} +1 -1
  31. package/dist/{Takeaway-D4axornr.js → Takeaway-DSZV63GV.js} +4 -4
  32. package/dist/{Takeaway.vue_vue_type_script_setup_true_lang-Dvm8Lfp3.js → Takeaway.vue_vue_type_script_setup_true_lang-jLe2HU1c.js} +6 -6
  33. package/dist/{Thumbnail.vue_vue_type_script_setup_true_lang-BjPOOURv.js → Thumbnail.vue_vue_type_script_setup_true_lang-b_0rh_qC.js} +4 -4
  34. package/dist/{TranslationSideSheet.vue_vue_type_script_setup_true_lang-CXGsdChM.js → TranslationSideSheet.vue_vue_type_script_setup_true_lang-CHTaPIEV.js} +68 -66
  35. package/dist/{TreeEditorOpenner.vue_vue_type_script_setup_true_lang-C9eskCL4.js → TreeEditorOpenner.vue_vue_type_script_setup_true_lang-DKveCAMk.js} +13 -13
  36. package/dist/{Unit-jV5Bee8E.js → Unit-D8r8gc_c.js} +2 -2
  37. package/dist/{Variant-jGcgA-W8.js → Variant-x9Q2azsr.js} +4 -4
  38. package/dist/{_id_-CtvQ64EN.js → _id_-BwgaCrRc.js} +9 -9
  39. package/dist/{app-eq7TaFfk.js → app-D8DICtN-.js} +1 -1
  40. package/dist/{app-B6laFmet.js → app-ProVGxGi.js} +31 -31
  41. package/dist/app.js +1 -1
  42. package/dist/apps/mf-menu/tsconfig.app.tsbuildinfo +1 -1
  43. package/dist/assets/{linked-status-Db18QnYH.js → linked-status-Ck-5QNWw.js} +2 -2
  44. package/dist/assets/{menu-export-24uzPEwW.js → menu-export-CCvx9iiX.js} +2 -2
  45. package/dist/assets/{override-menu-DreGPEa-.js → override-menu-y10fUcKT.js} +2 -2
  46. package/dist/assets/{validate-menu-BSFHH8O3.js → validate-menu-Dw-TOpPc.js} +2 -2
  47. package/dist/{catalog-CXcQ-QmP.js → catalog-Bzeh9lHl.js} +1 -1
  48. package/dist/{catalogSetting-DnUHD0I1.js → catalogSetting-WYVwRyqN.js} +1 -1
  49. package/dist/{currency-CwtLEvAZ.js → currency-CkevBlpn.js} +1 -1
  50. package/dist/{dayjs.min-BgQgGKeN.js → dayjs.min-DcCQ_MAV.js} +2 -2
  51. package/dist/{index-Cx1Nqii7.js → index-BIvW0NKj.js} +6 -6
  52. package/dist/index-r4bszgqF.js +545 -0
  53. package/dist/{index.vue_vue_type_script_setup_true_lang-CA1qH7Vf.js → index.vue_vue_type_script_setup_true_lang-gt4Ll4Ng.js} +5 -5
  54. package/dist/{item-CKRLnCIs.js → item-CDOMAerF.js} +2587 -2587
  55. package/dist/{jszip.min-DOHC0a7i.js → jszip.min-CaR1xyCC.js} +3 -3
  56. package/dist/{menu-BduvULfe.js → menu-vnpCb5nt.js} +1 -1
  57. package/dist/{menuV2-Da1zBhkS.js → menuV2-wfldXb10.js} +71 -71
  58. package/dist/packages/shared/src/helpers/actionButton.d.ts +2 -2
  59. package/dist/{priceTier-tObdSj6z.js → priceTier-BgYIRc-s.js} +1 -1
  60. package/dist/{rules-DD816lrT.js → rules-XWOGU9mA.js} +4 -4
  61. package/dist/{scheduler-CDhxmmVX.js → scheduler-B7oIfXlC.js} +4 -4
  62. package/dist/{toExcel-tz6MIiQY.js → toExcel-DMfq-sYZ.js} +2 -2
  63. package/dist/{translation-Cdap0IVg.js → translation-BCZ1Ruvv.js} +35 -21
  64. package/dist/{unit-NGl3h7Qh.js → unit-BicSjw1Q.js} +2 -2
  65. package/package.json +2 -2
  66. package/dist/index-D-Saeea8.js +0 -545
@@ -1,545 +0,0 @@
1
- import { defineComponent as re, ref as _, computed as z, watch as ae, unref as t, resolveComponent as U, createBlock as H, openBlock as f, withCtx as k, createElementVNode as o, toDisplayString as x, createElementBlock as y, createCommentVNode as F, Fragment as B, renderList as A, createVNode as u, normalizeClass as te, renderSlot as me, createSlots as ve } from "vue";
2
- import { H as w, 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-CA1qH7Vf.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-CPMCeAK9.js";
8
- import { u as de } from "./discardConfirm-BHni0LNu.js";
9
- import { _ as Ve } from "./ApplyProduct.vue_vue_type_script_setup_true_lang-AIw0Zgzf.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" }, Fe = { class: "flex flex-col gap-16 border p-16 rounded-lg" }, De = { 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
- }, Be = { 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" }, 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" }, He = {
22
- key: 0,
23
- class: "space-y-8"
24
- }, Je = { class: "flex w-[100px] items-center gap-8" }, Qe = { 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(J, { emit: Q }) {
33
- const m = J, S = Q, { t: r } = ce(), { localeList: $ } = ye(), N = _(!1), O = _(!1), a = _([]), D = _([]), 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(), D.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, D.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(), H(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(B, null, A(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(), H(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(B, null, A(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
- })) : F("", !0)
190
- ])
191
- ]),
192
- o("div", Fe, [
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", De, 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(B, null, A(a.value, (n) => (f(), y("div", {
214
- key: n.localeCode,
215
- class: "flex items-center gap-16"
216
- }, [
217
- o("div", Be, [
218
- o("div", Ae, 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
- ])) : F("", !0)
230
- ])) : F("", !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(B, null, A(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", He, [
257
- u(ie, {
258
- label: t(r)("menu.variant.form.translation.translation"),
259
- spacing: "sm"
260
- }, null, 8, ["label"]),
261
- (f(!0), y(B, null, A(a.value, (C) => (f(), y("div", {
262
- key: C.localeCode,
263
- class: "flex items-center gap-16"
264
- }, [
265
- o("div", Je, [
266
- o("div", Qe, 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
- ])) : F("", !0)
278
- ])
279
- ]))), 128))
280
- ])) : F("", !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(J, { expose: Q }) {
297
- const m = J, 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()), D = _(!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
- D.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
- D.value = !1;
383
- }
384
- };
385
- return ae(
386
- () => p.value,
387
- (l) => {
388
- l && (a.value = O());
389
- }
390
- ), Q({
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(B, 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: D.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(), H(b, {
475
- key: 0,
476
- class: "handle",
477
- name: "drag_handle"
478
- })) : v > 0 ? (f(), y("div", na)) : F("", !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(), H(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"])) : F("", !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
- };