@feedmepos/mf-connect 0.1.0-beta.5 → 0.1.0-beta.50

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 (112) hide show
  1. package/dist/Analytic-D-yp03jJ.js +427 -0
  2. package/dist/{App-C8Qfnkhz.js → App-CeQWTGNK.js} +441 -420
  3. package/dist/AuditLogs-2qzwcMXR.js +1885 -0
  4. package/dist/Bin-D1b2NbbA.js +191 -0
  5. package/dist/{Broadcast-BK-1MQkL.js → Broadcast-bKF9mIns.js} +13 -12
  6. package/dist/{CampaignTypeDialog.vue_vue_type_script_setup_true_lang-BLzpFQoc.js → CampaignTypeDialog.vue_vue_type_script_setup_true_lang-B_q5K-cx.js} +6 -8
  7. package/dist/Card-BCAyfBLi.js +896 -0
  8. package/dist/{Collections-TA4iW1r0.js → Collections-Yz3F55bv.js} +27 -31
  9. package/dist/{Credit-Df9iFQjZ.js → Credit-Ceptt_g_.js} +17 -16
  10. package/dist/CustomSelect.vue_vue_type_script_setup_true_lang-DLnvDVgf.js +108 -0
  11. package/dist/DateRangeChip.vue_vue_type_script_setup_true_lang-CLFeMi0j.js +169 -0
  12. package/dist/EditCampaignSheet.vue_vue_type_script_setup_true_lang-TjNinQ8e.js +2181 -0
  13. package/dist/{EffectSheet.vue_vue_type_style_index_0_lang-BCRVyPwl.js → EffectSheet.vue_vue_type_style_index_0_lang-D3Bt-Vuu.js} +6 -6
  14. package/dist/{Experience-ByLFXKn6.js → Experience-DskHKzfo.js} +26 -25
  15. package/dist/{Game-B6Ez0pfW.js → Game-IJ6X0AXM.js} +21 -20
  16. package/dist/Index-CEl2y9X6.js +259 -0
  17. package/dist/Marketing-CWekLb4c.js +20071 -0
  18. package/dist/{Member-TobP1ISp.js → Member-BUZPQ5Lb.js} +4 -4
  19. package/dist/MemberList-BmVNqvbm.js +1598 -0
  20. package/dist/MemberTransactions-B3XhEOK_.js +45 -0
  21. package/dist/{MessageInput.vue_vue_type_script_setup_true_lang-CZ-w6iZi.js → MessageInput.vue_vue_type_script_setup_true_lang-C6YIbQtM.js} +6 -6
  22. package/dist/{Mission-D9uTVo0G.js → Mission-Ci9ed_ph.js} +97 -84
  23. package/dist/Overview-CU9uhC-k.js +1078 -0
  24. package/dist/{Point-4rDr-53e.js → Point-wuuR7AEb.js} +26 -25
  25. package/dist/{Promotion-BKO_dtQk.js → Promotion-BMi3kyE8.js} +55 -48
  26. package/dist/Record-Wmh-g8WY.js +340 -0
  27. package/dist/Reward-BL4lxhIB.js +442 -0
  28. package/dist/RewardGroup.vue_vue_type_script_setup_true_lang-CqXuTxun.js +150 -0
  29. package/dist/RuleGroup.vue_vue_type_script_setup_true_lang-Dbik0PEw.js +1637 -0
  30. package/dist/Segment-DObdjyYi.js +568 -0
  31. package/dist/SelectItems.vue_vue_type_script_setup_true_lang-BAuM6qP5.js +181 -0
  32. package/dist/SendVoucherSheet.vue_vue_type_script_setup_true_lang-BfyRVxWM.js +147 -0
  33. package/dist/{Setting-B7oISD0D.js → Setting-Dqgnd7TR.js} +610 -586
  34. package/dist/Store--Z4So__g.js +1744 -0
  35. package/dist/{StoreRewards-AMxIYhjZ.js → StoreRewards-DPFVXWwm.js} +33 -32
  36. package/dist/StoreTransactions.vue_vue_type_script_setup_true_lang-CNsdA106.js +939 -0
  37. package/dist/{TargetLocationInput.vue_vue_type_script_setup_true_lang-B2szciPk.js → TargetLocationInput.vue_vue_type_script_setup_true_lang-CGOmGozY.js} +1 -1
  38. package/dist/{Tier-DkxdNj-K.js → Tier-36IfhsnP.js} +327 -318
  39. package/dist/{Title-VFpCOsMO.js → Title-XH56OOug.js} +199 -184
  40. package/dist/{Transaction-BgKD8n2L.js → Transaction-BUQcSmBs.js} +2 -2
  41. package/dist/UserRuleGroup.vue_vue_type_script_setup_true_lang-BVCfeG5T.js +130 -0
  42. package/dist/Voucher-CvmH0kcF.js +353 -0
  43. package/dist/VoucherEditor.vue_vue_type_script_setup_true_lang-BQOD6uEf.js +419 -0
  44. package/dist/{ZodTextField.vue_vue_type_script_setup_true_lang-B2FGvyza.js → ZodTextField.vue_vue_type_script_setup_true_lang-CcIcCt4N.js} +1 -1
  45. package/dist/{app-DUl5dav5.js → app-DeW5_DB0.js} +1754 -1496
  46. package/dist/{app-DA-t-2Zt.js → app-TN8KEPMu.js} +1 -1
  47. package/dist/app.js +1 -1
  48. package/dist/{business-CeCitOY4.js → business-D1mLhSME.js} +1 -1
  49. package/dist/campaign-0tnkhu78.js +1810 -0
  50. package/dist/{campaign-CcLM6e4s.js → campaign-B-12Im0w.js} +2 -2
  51. package/dist/campaign.enum-C8m-HHZE.js +20 -0
  52. package/dist/campaign.fn-CxkhbK9i.js +758 -0
  53. package/dist/collectible.enum-6Syq-vQ6.js +19 -0
  54. package/dist/{collection.fn-CAEP7YxB.js → collection.fn-BUj75Jp2.js} +2 -2
  55. package/dist/dto-8wODhIIC.js +214 -0
  56. package/dist/{effect-Dt7rXOBy.js → effect-BEZEjcJu.js} +9 -9
  57. package/dist/email-addresses-PwjkdYYD.js +705 -0
  58. package/dist/{export-CyioiboQ.js → export-BB-0vgwy.js} +5 -5
  59. package/dist/{helper-FA_9AhGV.js → helper-DOt8-wns.js} +1 -1
  60. package/dist/{index-DLN4Kzz_.js → index-B1qUjniH.js} +1 -1
  61. package/dist/index-BTMIZz4v.js +44 -0
  62. package/dist/{index-igxrd5jC.js → index-By-GlmG7.js} +1500 -1479
  63. package/dist/index-C7zBkoZ4.js +115 -0
  64. package/dist/{index-CyNdsVrw.js → index-CNlHabtk.js} +1 -1
  65. package/dist/{index-DbbO3wip.js → index-CXGiIgdK.js} +48 -4
  66. package/dist/{index-C20XBD7G.js → index-Cjn1LVjC.js} +2192 -931
  67. package/dist/index-CpfUrdgw.js +29000 -0
  68. package/dist/index-CsaQJMAR.js +66 -0
  69. package/dist/index-DZuEmMyY.js +54 -0
  70. package/dist/{index-CCdXvb92.js → index-D_zwqIhq.js} +1 -1
  71. package/dist/index-DabUEw_c.js +32 -0
  72. package/dist/{index-BiFueJiF.js → index-X-FfC49l.js} +258 -192
  73. package/dist/index-vh86FiIQ.js +10 -0
  74. package/dist/{index.esm2017-Dl_CdTcK.js → index.esm2017-DJOUiVjR.js} +33 -33
  75. package/dist/loading-aCWVsOPY.js +71 -0
  76. package/dist/{membership-DFiY8aVd.js → membership-1etsHC5G.js} +54 -46
  77. package/dist/money-DzWRURZ5.js +15 -0
  78. package/dist/number-BxIQO1i3.js +12 -0
  79. package/dist/objectid-DjhmYkn-.js +145 -0
  80. package/dist/{loading-CZ0fiViM.js → plugins-CSPFAU50.js} +2990 -3062
  81. package/dist/remy-vue-client-Cpppk9h-.js +1693 -0
  82. package/dist/reward-Bh4Li9f0.js +36 -0
  83. package/dist/{rule-C3e1xTqN.js → rule-CHTTTUFB.js} +180 -177
  84. package/dist/{rule-builder-MEVb_AiZ.js → rule-builder-OHfUJTIA.js} +1 -1
  85. package/dist/style.css +1 -1
  86. package/dist/{template-C2OKWd_e.js → template-ZGxXqkaC.js} +5 -5
  87. package/dist/trigger-Ogu5FDs0.js +144 -0
  88. package/dist/user-DBuU81tO.js +54 -0
  89. package/dist/{vue-i18n-CjxDUnX6.js → vue-i18n-CKpKQ6iE.js} +216 -216
  90. package/dist/{xlsx-CtXdl3ls.js → xlsx-DJDZBIeg.js} +1 -1
  91. package/package.json +9 -7
  92. package/dist/Analytic-C_ZFR5jh.js +0 -622
  93. package/dist/Card-C7dUFJKe.js +0 -825
  94. package/dist/EditCampaignSheet.vue_vue_type_script_setup_true_lang-Bgl90veU.js +0 -2813
  95. package/dist/Marketing-BaqZUeVI.js +0 -316
  96. package/dist/MemberList-B9cutmEh.js +0 -1733
  97. package/dist/MemberTransactions-DRHA7AOF.js +0 -38
  98. package/dist/RuleGroup.vue_vue_type_script_setup_true_lang-BHCoDSTg.js +0 -1753
  99. package/dist/Segment-Dj8nc3AE.js +0 -437
  100. package/dist/Store-CJ3wcohQ.js +0 -1511
  101. package/dist/StoreTransactions.vue_vue_type_script_setup_true_lang-wXUTfQQF.js +0 -890
  102. package/dist/Voucher-BbTLt8Pt.js +0 -490
  103. package/dist/dto-CRJma6eX.js +0 -2770
  104. package/dist/index-B1e0LtDe.js +0 -99
  105. package/dist/index-Be2ZYDy_.js +0 -298
  106. package/dist/index-CDkITvze.js +0 -762
  107. package/dist/index-CuvNtC_M.js +0 -61
  108. package/dist/index-DPP5F3bT.js +0 -206
  109. package/dist/index-Dbo3DDwp.js +0 -29193
  110. package/dist/money-D8hUEfP4.js +0 -15
  111. package/dist/number-DL3GAeVt.js +0 -12
  112. package/dist/user-Bm4KttFq.js +0 -37
@@ -1,1753 +0,0 @@
1
- import { defineComponent as N, computed as M, resolveComponent as g, openBlock as n, createElementBlock as F, createElementVNode as U, createVNode as v, unref as e, createTextVNode as ee, toDisplayString as j, withCtx as B, onMounted as K, createBlock as T, createCommentVNode as _, ref as P, Fragment as Y, renderList as A, normalizeClass as L, watch as ie, resolveDynamicComponent as ae, onBeforeMount as ue, isRef as me, createSlots as de } from "vue";
2
- import { c as pe, C as ce, d as ye, e as ve, f as fe } from "./index-igxrd5jC.js";
3
- import { R as D, a as be } from "./rule-builder-MEVb_AiZ.js";
4
- import { a as ge, R as O, S as ke, C as H, W as Ve, T as ne, O as Ee } from "./rule-C3e1xTqN.js";
5
- import { p as Fe } from "./loading-CZ0fiViM.js";
6
- import { useDialog as te, useDialogChild as se } from "@feedmepos/ui-library";
7
- import { h as J } from "./moment-BWErdI6_.js";
8
- import { z as Se } from "./app-DUl5dav5.js";
9
- import { u as z } from "./membership-DFiY8aVd.js";
10
- import { u as re } from "./business-CeCitOY4.js";
11
- import { _ as I } from "./index-BiFueJiF.js";
12
- import { c as le } from "./object-qECH92oz.js";
13
- import { Z } from "./zod-Bg2FbC-D.js";
14
- import { e as Te } from "./app-DA-t-2Zt.js";
15
- import "./index-DPP5F3bT.js";
16
- import "./index-CDkITvze.js";
17
- import "./index-C20XBD7G.js";
18
- import "./index-Be2ZYDy_.js";
19
- import "./index-DLN4Kzz_.js";
20
- const xe = { class: "flex items-center justify-between" }, Ce = { class: "flex items-center gap-8 xs:flex-wrap" }, Ue = { class: "text-fm-color-primary line-clamp-1 text-ellipsis" }, Re = /* @__PURE__ */ N({
21
- __name: "RuleEntry",
22
- props: {
23
- modelValue: {
24
- type: Object,
25
- required: !0
26
- }
27
- },
28
- emits: ["edit", "remove"],
29
- setup(a, { emit: R }) {
30
- const f = a, i = M(() => {
31
- const [s, u] = Object.entries(f.modelValue.conditions)[0];
32
- return {
33
- negated: f.modelValue.negated == !0,
34
- property: f.modelValue.property,
35
- operator: s,
36
- equator: u
37
- };
38
- }), l = R, b = M(
39
- () => ge(
40
- i.value.property,
41
- i.value.operator,
42
- i.value.equator,
43
- i.value.negated
44
- )
45
- );
46
- async function t(s) {
47
- s.stopPropagation(), await Fe.remove("Are you sure you want to remove this rule?") && l("remove", f.modelValue);
48
- }
49
- return (s, u) => {
50
- var V;
51
- const p = g("FmChip"), c = g("FmTooltip"), k = g("FmIcon");
52
- return n(), F("div", xe, [
53
- U("div", Ce, [
54
- v(p, {
55
- label: (V = e(pe).find((S) => S.property === f.modelValue.property)) == null ? void 0 : V.name,
56
- class: "!text-fm-color-typo-info !bg-fm-color-system-info-100"
57
- }, null, 8, ["label"]),
58
- u[1] || (u[1] = U("div", { class: "h-[26px] border-l-2 rounded-md border-fm-color-neutral-gray-100" }, null, -1)),
59
- U("div", {
60
- onClick: u[0] || (u[0] = (S) => l("edit", f.modelValue)),
61
- class: "inline-flex rounded-md items-center gap-4 justify-center h-[30px] px-8 py-4 text-fm-color-typo-primary !bg-transparent border-dashed border-2 fm-typo-en-body-md-600 cursor-pointer"
62
- }, [
63
- ee(j(e(b)[0]) + " ", 1),
64
- v(c, {
65
- "z-index": 1e3,
66
- content: e(b)[1]
67
- }, {
68
- default: B(() => [
69
- U("div", Ue, j(e(b)[1]), 1)
70
- ]),
71
- _: 1
72
- }, 8, ["content"])
73
- ])
74
- ]),
75
- v(k, {
76
- name: "close",
77
- size: "md",
78
- class: "cursor-pointer hover:bg-neutral-300 rounded-lg",
79
- onClick: t
80
- })
81
- ]);
82
- };
83
- }
84
- });
85
- Se.enum([
86
- "MIN_SPEND",
87
- "SPECIFIC_DATE",
88
- "SPECIFIC_TIMERANGE",
89
- "WEEKLY",
90
- "MONTHLY",
91
- "BIRTHDAY",
92
- "TIER",
93
- "TITLE",
94
- "CUSTOM"
95
- ]);
96
- const Oe = [
97
- {
98
- type: "MIN_SPEND",
99
- name: "Minimum spend",
100
- for: ["bill"],
101
- rules: []
102
- },
103
- {
104
- type: "SPECIFIC_DATE",
105
- name: "Specific date",
106
- for: ["trigger"],
107
- rules: []
108
- },
109
- {
110
- type: "SPECIFIC_TIMERANGE",
111
- name: "Specific time range",
112
- for: ["trigger"],
113
- rules: []
114
- },
115
- {
116
- type: "WEEKLY",
117
- name: "Weekly",
118
- for: ["trigger"],
119
- rules: [
120
- {
121
- property: "trigger.date",
122
- operator: "_rrule",
123
- equator: "RRULE:FREQ=WEEKLY;WKST=SU;BYDAY=SU;BYHOUR=0;BYMINUTE=0;BYSECOND=0"
124
- }
125
- ]
126
- },
127
- {
128
- type: "MONTHLY",
129
- name: "Monthly",
130
- for: ["trigger"],
131
- rules: [
132
- {
133
- property: "trigger.date",
134
- operator: "_rrule",
135
- equator: "RRULE:FREQ=MONTHLY;WKST=SU;BYMONTHDAY=1;BYHOUR=0;BYMINUTE=0;BYSECOND=0"
136
- }
137
- ]
138
- },
139
- {
140
- type: "BIRTHDAY",
141
- name: "Birthday",
142
- for: ["user"],
143
- rules: [
144
- {
145
- property: "user.birthday",
146
- operator: "_isDay",
147
- equator: {
148
- op: "this",
149
- unit: "day",
150
- ignoreYear: !0
151
- }
152
- }
153
- ]
154
- },
155
- {
156
- type: "TIER",
157
- name: "Specific tier",
158
- for: ["user"],
159
- rules: [
160
- {
161
- property: "user.tier",
162
- operator: "_equal",
163
- equator: 1
164
- }
165
- ]
166
- },
167
- {
168
- type: "TITLE",
169
- name: "Specific title",
170
- for: ["user"],
171
- rules: [
172
- {
173
- property: "user.titles",
174
- operator: "_hasAny",
175
- equator: []
176
- }
177
- ]
178
- },
179
- {
180
- type: "CUSTOM",
181
- name: "Weekday special",
182
- for: ["trigger"],
183
- rules: [
184
- {
185
- property: "trigger.date",
186
- operator: "_rrule",
187
- equator: "RRULE:FREQ=WEEKLY;WKST=SU;BYDAY=MO,TU,WE,TH,FR;BYHOUR=0;BYMINUTE=0;BYSECOND=0"
188
- }
189
- ]
190
- },
191
- {
192
- type: "CUSTOM",
193
- name: "Weekend special",
194
- for: ["trigger"],
195
- rules: [
196
- {
197
- property: "trigger.date",
198
- operator: "_rrule",
199
- equator: "RRULE:FREQ=WEEKLY;WKST=SU;BYDAY=SU,SA;BYHOUR=0;BYMINUTE=0;BYSECOND=0"
200
- }
201
- ]
202
- },
203
- {
204
- type: "CUSTOM",
205
- name: "Happy hour",
206
- for: ["trigger"],
207
- rules: [
208
- {
209
- property: "trigger.time",
210
- operator: "_isBetweenTime",
211
- equator: [
212
- {
213
- start: "21:00",
214
- end: "23:59"
215
- }
216
- ]
217
- }
218
- ]
219
- },
220
- {
221
- type: "CUSTOM",
222
- name: "Mother's day special",
223
- for: ["trigger"],
224
- rules: [
225
- {
226
- property: "trigger.date",
227
- operator: "_rrule",
228
- equator: "RRULE:FREQ=YEARLY;WKST=SU;BYDAY=+2SU;BYMONTH=5;BYHOUR=0;BYMINUTE=0;BYSECOND=0"
229
- }
230
- ]
231
- },
232
- {
233
- type: "CUSTOM",
234
- name: "Father's day special",
235
- for: ["trigger"],
236
- rules: [
237
- {
238
- property: "trigger.date",
239
- operator: "_rrule",
240
- equator: "RRULE:FREQ=YEARLY;WKST=SU;BYDAY=+3SU;BYMONTH=6;BYHOUR=0;BYMINUTE=0;BYSECOND=0"
241
- }
242
- ]
243
- },
244
- {
245
- type: "CUSTOM",
246
- name: "Christmas",
247
- for: ["trigger"],
248
- rules: [
249
- {
250
- property: "trigger.date",
251
- operator: "_rrule",
252
- equator: "RRULE:FREQ=YEARLY;WKST=SU;BYMONTH=12;BYMONTHDAY=25;BYHOUR=0;BYMINUTE=0;BYSECOND=0"
253
- }
254
- ]
255
- },
256
- {
257
- type: "CUSTOM",
258
- name: "Feedback rating",
259
- for: ["feedback"],
260
- rules: [
261
- {
262
- property: "feedback.rating",
263
- operator: "_lessThanOrEqual",
264
- equator: 5
265
- }
266
- ]
267
- },
268
- {
269
- type: "CUSTOM",
270
- name: "Custom",
271
- for: ["trigger", "user", "bill", "feedback"],
272
- rules: [
273
- {
274
- property: "trigger.date",
275
- operator: "_isOnDate",
276
- equator: J().format("YYYY-MM-DD")
277
- }
278
- ]
279
- }
280
- ], he = { class: "flex flex-nowrap gap-x-4 items-center" }, we = /* @__PURE__ */ N({
281
- __name: "IsDayInput",
282
- props: {
283
- modelValue: {
284
- type: Object
285
- }
286
- },
287
- emits: ["update:model-value"],
288
- setup(a, { emit: R }) {
289
- const f = a, i = R;
290
- K(() => {
291
- f.modelValue || i("update:model-value", {
292
- op: "before",
293
- x: 1
294
- });
295
- });
296
- function l(b) {
297
- const t = le(
298
- f.modelValue ?? {
299
- op: "before",
300
- x: 1
301
- }
302
- );
303
- i("update:model-value", {
304
- ...t,
305
- ...b
306
- });
307
- }
308
- return (b, t) => {
309
- var u, p, c;
310
- const s = g("FmStepperField");
311
- return n(), F("div", he, [
312
- v(s, {
313
- class: "w-1/3",
314
- "model-value": ((u = a.modelValue) == null ? void 0 : u.x) ?? null,
315
- max: 365,
316
- "show-steppers": !1,
317
- "append-text": "days",
318
- "onUpdate:modelValue": t[0] || (t[0] = (k) => l({ x: k }))
319
- }, null, 8, ["model-value"]),
320
- v(I, {
321
- "model-value": ((p = a.modelValue) == null ? void 0 : p.op) ?? void 0,
322
- items: [
323
- { label: "before", value: "before" },
324
- { label: "after", value: "after" }
325
- ],
326
- "onUpdate:modelValue": t[1] || (t[1] = (k) => l({ op: k }))
327
- }, null, 8, ["model-value"]),
328
- v(I, {
329
- "model-value": ((c = a.modelValue) == null ? void 0 : c.ignoreYear) ?? !1,
330
- items: [
331
- { label: "same year", value: !1 },
332
- { label: "ignore year", value: !0 }
333
- ],
334
- required: !0,
335
- "onUpdate:modelValue": t[2] || (t[2] = (k) => l({ ignoreYear: k == !0 }))
336
- }, null, 8, ["model-value"])
337
- ]);
338
- };
339
- }
340
- }), Ye = { class: "grid grid-cols-4 gap-x-4 items-center" }, De = /* @__PURE__ */ N({
341
- __name: "IsRangeInput",
342
- props: {
343
- modelValue: {
344
- type: Object,
345
- default: () => ({
346
- op: "this",
347
- unit: "day",
348
- ignoreYear: !0
349
- })
350
- }
351
- },
352
- emits: ["update:model-value"],
353
- setup(a, { emit: R }) {
354
- const f = a, i = R;
355
- K(() => {
356
- f.modelValue || i("update:model-value", {
357
- op: "this",
358
- unit: "day",
359
- ignoreYear: !0
360
- });
361
- });
362
- const l = [
363
- { label: "day", value: "day" },
364
- { label: "week", value: "week" },
365
- { label: "month", value: "month" },
366
- { label: "quarter", value: "quarter" },
367
- { label: "year", value: "year" }
368
- ], b = [
369
- {
370
- label: "this",
371
- value: "this"
372
- },
373
- {
374
- label: "last",
375
- value: "last"
376
- },
377
- {
378
- label: "next",
379
- value: "next"
380
- }
381
- ];
382
- return (t, s) => {
383
- var p, c, k, V, S;
384
- const u = g("FmStepperField");
385
- return n(), F("div", Ye, [
386
- v(I, {
387
- "model-value": (p = a.modelValue) == null ? void 0 : p.op,
388
- label: "",
389
- items: b,
390
- required: !0,
391
- "onUpdate:modelValue": s[0] || (s[0] = (m) => i("update:model-value", { op: m, unit: "day", ignoreYear: !1 }))
392
- }, null, 8, ["model-value"]),
393
- ((c = a.modelValue) == null ? void 0 : c.op) != "this" ? (n(), T(u, {
394
- key: 0,
395
- "model-value": ((k = a.modelValue) == null ? void 0 : k.x) || 0,
396
- max: 365,
397
- "show-steppers": !1,
398
- "onUpdate:modelValue": s[1] || (s[1] = (m) => i("update:model-value", {
399
- op: a.modelValue.op,
400
- unit: a.modelValue.unit,
401
- ignoreYear: a.modelValue.ignoreYear == !0,
402
- x: m
403
- }))
404
- }, null, 8, ["model-value"])) : _("", !0),
405
- v(I, {
406
- "model-value": (V = a.modelValue) == null ? void 0 : V.unit,
407
- label: "",
408
- items: l,
409
- required: !0,
410
- "onUpdate:modelValue": s[2] || (s[2] = (m) => i("update:model-value", { ...f.modelValue, unit: m }))
411
- }, null, 8, ["model-value"]),
412
- v(I, {
413
- label: "",
414
- "model-value": (S = a.modelValue) == null ? void 0 : S.ignoreYear,
415
- items: [
416
- { label: "same", value: !1 },
417
- { label: "ignore", value: !0 }
418
- ],
419
- required: !0,
420
- "onUpdate:modelValue": s[3] || (s[3] = (m) => i("update:model-value", {
421
- ...f.modelValue,
422
- ignoreYear: m == !0
423
- }))
424
- }, null, 8, ["model-value"])
425
- ]);
426
- };
427
- }
428
- }), Ie = { class: "space-y-8" }, Me = { class: "text-fm-color-primary rounded-md border-dashed border-2 p-8" }, Be = {
429
- key: 0,
430
- class: "flex items-center gap-8"
431
- }, qe = { class: "flex gap-4" }, $e = {
432
- key: 0,
433
- class: "grid grid-cols-7 overflow-hidden rounded-md border-1"
434
- }, Ne = ["onClick"], Ae = {
435
- key: 1,
436
- class: "flex items-center gap-8"
437
- }, _e = { class: "flex gap-4 xs:gap-[2px]" }, Pe = { class: "grid grid-cols-6 gap-8" }, Le = {
438
- key: 0,
439
- class: "grid grid-cols-7 overflow-hidden rounded-md border-1"
440
- }, He = ["onClick"], je = {
441
- key: 1,
442
- class: "grid grid-cols-2 items-center gap-8"
443
- }, We = { class: "flex gap-4" }, Ge = {
444
- key: 4,
445
- class: "flex items-center justify-end gap-8"
446
- }, X = /* @__PURE__ */ N({
447
- __name: "RruleInput",
448
- props: {
449
- modelValue: {
450
- type: String
451
- },
452
- startDate: {
453
- type: Object
454
- },
455
- applyButton: {
456
- type: Boolean
457
- },
458
- fixedFrequency: {
459
- type: Boolean
460
- }
461
- },
462
- emits: ["update:model-value", "cancel"],
463
- setup(a, { emit: R }) {
464
- const f = a, i = R, l = P(
465
- f.modelValue ? O.fromString(f.modelValue) : new O({
466
- dtstart: f.startDate,
467
- freq: O.DAILY,
468
- wkst: O.SU,
469
- interval: 1,
470
- byhour: 0,
471
- byminute: 0,
472
- bysecond: 0
473
- })
474
- );
475
- function b(t) {
476
- var s;
477
- "freq" in t && (l.value = new O({
478
- dtstart: f.startDate,
479
- freq: t.freq,
480
- interval: 1,
481
- byhour: 0,
482
- byminute: 0,
483
- bysecond: 0,
484
- wkst: O.SU
485
- })), t.interval && t.interval > 0 && (l.value = new O({
486
- ...l.value.origOptions,
487
- dtstart: f.startDate,
488
- interval: t.interval
489
- })), "byweekday" in t && t.byweekday && Array.isArray(t.byweekday) && t.byweekday.length > 0 && (l.value.options.bymonthday.length > 0 && l.value.options.freq == O.MONTHLY && (l.value.options.bymonthday = []), l.value = new O({
490
- ...l.value.origOptions,
491
- dtstart: f.startDate,
492
- bymonthday: [],
493
- byweekday: t.byweekday
494
- })), "bysetpos" in t && t.bysetpos != null && (l.value = new O({
495
- ...l.value.origOptions,
496
- dtstart: f.startDate,
497
- bymonthday: [],
498
- bysetpos: t.bysetpos,
499
- byweekday: ((s = l.value.options.byweekday) == null ? void 0 : s.length) > 0 ? l.value.options.byweekday : [6]
500
- })), "bymonthday" in t && t.bymonthday && Array.isArray(t.bymonthday) && t.bymonthday.length > 0 && (l.value = new O({
501
- ...l.value.origOptions,
502
- dtstart: f.startDate,
503
- bysetpos: [],
504
- byweekday: [],
505
- bymonthday: t.bymonthday
506
- })), "bymonth" in t && t.bymonth && Array.isArray(t.bymonth) && t.bymonth.length > 0 && (l.value = new O({
507
- ...l.value.origOptions,
508
- dtstart: f.startDate,
509
- bysetpos: [],
510
- bymonth: t.bymonth
511
- })), "bynweekday" in t && t.bynweekday && (l.value = new O({
512
- ...l.value.origOptions,
513
- dtstart: f.startDate,
514
- bysetpos: [],
515
- byweekday: new Ve(
516
- t.bynweekday[0][0],
517
- t.bynweekday[0][1]
518
- )
519
- })), f.applyButton || i("update:model-value", l.value.toString());
520
- }
521
- return K(() => {
522
- f.modelValue || i(
523
- "update:model-value",
524
- new O({
525
- dtstart: f.startDate,
526
- freq: O.DAILY,
527
- wkst: O.SU,
528
- interval: 1,
529
- byhour: 0,
530
- byminute: 0,
531
- bysecond: 0
532
- }).toString()
533
- );
534
- }), (t, s) => {
535
- var V, S, m;
536
- const u = g("FmStepperField"), p = g("FmChip"), c = g("FmButtonGroup"), k = g("FmButton");
537
- return n(), F("div", Ie, [
538
- U("div", Me, j(e(ke)(e(l).options)), 1),
539
- a.fixedFrequency ? _("", !0) : (n(), F("div", Be, [
540
- s[8] || (s[8] = U("div", null, "Repeat every", -1)),
541
- v(u, {
542
- class: "w-[100px]",
543
- "model-value": e(l).options.interval,
544
- "onUpdate:modelValue": s[0] || (s[0] = (o) => b({ interval: o > 0 ? o : e(l).options.interval })),
545
- min: 1
546
- }, null, 8, ["model-value"]),
547
- v(I, {
548
- class: "w-min",
549
- items: e(H).frequencies,
550
- "model-value": e(l).origOptions.freq,
551
- "onUpdate:modelValue": s[1] || (s[1] = (o) => b({ freq: o }))
552
- }, null, 8, ["items", "model-value"])
553
- ])),
554
- e(l).options.freq === e(O).WEEKLY ? (n(), F(Y, { key: 1 }, [
555
- s[9] || (s[9] = U("div", null, "Repeat on", -1)),
556
- U("div", qe, [
557
- (n(!0), F(Y, null, A(e(H).weekdays, (o) => {
558
- var d;
559
- return n(), T(p, {
560
- class: L(["cursor-pointer", `${(d = e(l).options.byweekday) != null && d.includes(o.value) ? "bg-fm-color-primary text-white" : "bg-fm-color-neutral-gray-200 text-black"}`]),
561
- label: o.label[0],
562
- key: o.value,
563
- compact: !0,
564
- onClick: () => {
565
- var y, x;
566
- b({
567
- byweekday: (y = e(l).options.byweekday) != null && y.includes(o.value) ? ((x = e(l).options.byweekday) == null ? void 0 : x.filter((E) => E !== o.value)) || [] : [...e(l).options.byweekday || [], o.value]
568
- });
569
- }
570
- }, null, 8, ["class", "label", "onClick"]);
571
- }), 128))
572
- ])
573
- ], 64)) : _("", !0),
574
- e(l).options.freq == e(O).MONTHLY ? (n(), F(Y, { key: 2 }, [
575
- v(c, {
576
- "model-value": e(l).options.bymonthday.length ? { label: "Each" } : { label: "On the" },
577
- items: [
578
- {
579
- label: "Each"
580
- },
581
- {
582
- label: "On the"
583
- }
584
- ],
585
- "onUpdate:modelValue": s[2] || (s[2] = (o) => {
586
- o.label == "Each" ? b({ bymonthday: [1] }) : b({ bysetpos: 1 });
587
- })
588
- }, null, 8, ["model-value"]),
589
- e(l).options.bymonthday.length > 0 ? (n(), F("div", $e, [
590
- (n(!0), F(Y, null, A(e(H).dates, (o) => (n(), F("div", {
591
- key: o.value,
592
- class: L(["cursor-pointer text-center outline-1 outline-fm-color-neutral-gray-100 outline", `${e(l).options.bymonthday.includes(o.value) ? "bg-fm-color-primary text-fm-color-typo-white outline-transparent" : "bg-transparent text-fm-color-typo-primary"} ${o.value == 31 ? "border-r" : ""}`]),
593
- onClick: (d) => b({
594
- bymonthday: e(l).options.bymonthday.includes(o.value) ? e(l).options.bymonthday.filter((y) => y !== o.value) : [...e(l).options.bymonthday, o.value]
595
- })
596
- }, j(o.value), 11, Ne))), 128))
597
- ])) : (n(), F("div", Ae, [
598
- v(I, {
599
- items: e(H).ordinals,
600
- "model-value": (V = e(l).options.bysetpos) == null ? void 0 : V[0],
601
- "onUpdate:modelValue": s[3] || (s[3] = (o) => b({ bysetpos: o }))
602
- }, null, 8, ["items", "model-value"]),
603
- U("div", _e, [
604
- (n(!0), F(Y, null, A(e(H).weekdays, (o) => {
605
- var d;
606
- return n(), T(p, {
607
- class: L(["cursor-pointer", `${(d = e(l).options.byweekday) != null && d.includes(o.value) ? "bg-fm-color-primary text-white" : "bg-fm-color-neutral-gray-200 text-black"}`]),
608
- label: o.label[0],
609
- key: o.value,
610
- compact: !0,
611
- onClick: () => {
612
- b({
613
- byweekday: [o.value]
614
- });
615
- }
616
- }, null, 8, ["class", "label", "onClick"]);
617
- }), 128))
618
- ])
619
- ]))
620
- ], 64)) : _("", !0),
621
- e(l).options.freq == e(O).YEARLY ? (n(), F(Y, { key: 3 }, [
622
- s[10] || (s[10] = U("div", null, "Month", -1)),
623
- U("div", Pe, [
624
- (n(!0), F(Y, null, A(e(H).months, (o) => {
625
- var d, y;
626
- return n(), T(p, {
627
- key: o.value,
628
- class: L(["cursor-pointer", {
629
- "bg-fm-color-primary text-white": (d = e(l).options.bymonth) == null ? void 0 : d.includes(
630
- o.value
631
- ),
632
- "bg-fm-color-gray-200 text-fm-color-gray-800": !((y = e(l).options.bymonth) != null && y.includes(o.value))
633
- }]),
634
- label: o.shortName,
635
- compact: !0,
636
- onClick: (x) => b({
637
- bymonth: (e(l).options.bymonth ?? []).includes(o.value) ? (e(l).options.bymonth ?? []).filter((E) => E !== o.value) : [...e(l).options.bymonth ?? [], o.value]
638
- })
639
- }, null, 8, ["class", "label", "onClick"]);
640
- }), 128))
641
- ]),
642
- v(c, {
643
- "model-value": e(l).options.bymonthday.length ? { label: "Each" } : { label: "On the" },
644
- items: [
645
- {
646
- label: "Each"
647
- },
648
- {
649
- label: "On the"
650
- }
651
- ],
652
- "onUpdate:modelValue": s[4] || (s[4] = (o) => {
653
- o.label == "Each" ? b({
654
- bymonthday: [1],
655
- bymonth: e(l).options.bymonth ?? [1]
656
- }) : b({
657
- byweekday: [e(O).SU.nth(1)],
658
- bymonth: e(l).options.bymonth ?? [1]
659
- });
660
- })
661
- }, null, 8, ["model-value"]),
662
- e(l).options.bymonthday.length > 0 ? (n(), F("div", Le, [
663
- (n(!0), F(Y, null, A(Array(31).fill(null).map((o, d) => d + 1), (o) => (n(), F("div", {
664
- key: o,
665
- class: L(["cursor-pointer text-center outline-1 outline-fm-color-neutral-gray-100 outline", `${e(l).options.bymonthday.includes(o) ? "bg-fm-color-primary text-fm-color-typo-white outline-transparent" : "bg-transparent text-fm-color-typo-primary"} ${o == 31 ? "border-r" : ""}`]),
666
- onClick: (d) => b({
667
- bymonthday: e(l).options.bymonthday.includes(o) ? e(l).options.bymonthday.filter((y) => y !== o) : [...e(l).options.bymonthday, o]
668
- })
669
- }, j(o), 11, He))), 128))
670
- ])) : (n(), F("div", je, [
671
- v(I, {
672
- items: e(H).ordinals,
673
- "model-value": (m = (S = e(l).options.bynweekday) == null ? void 0 : S[0]) == null ? void 0 : m[1],
674
- "onUpdate:modelValue": s[5] || (s[5] = (o) => {
675
- var d, y;
676
- return b({
677
- bynweekday: [[((y = (d = e(l).options.bynweekday) == null ? void 0 : d[0]) == null ? void 0 : y[0]) ?? 1, o]]
678
- });
679
- })
680
- }, null, 8, ["items", "model-value"]),
681
- U("div", We, [
682
- (n(!0), F(Y, null, A(e(H).weekdays, (o) => {
683
- var d, y;
684
- return n(), T(p, {
685
- class: L(["cursor-pointer", `${((y = (d = e(l).options.bynweekday) == null ? void 0 : d[0]) == null ? void 0 : y[0]) === o.value ? "bg-fm-color-primary text-white" : "bg-fm-color-neutral-gray-200 text-black"}`]),
686
- label: o.label[0],
687
- key: o.value,
688
- compact: !0,
689
- onClick: () => {
690
- var x, E;
691
- b({
692
- bynweekday: [
693
- [o.value, ((E = (x = e(l).options.bynweekday) == null ? void 0 : x[0]) == null ? void 0 : E[1]) ?? 1]
694
- ]
695
- });
696
- }
697
- }, null, 8, ["class", "label", "onClick"]);
698
- }), 128))
699
- ])
700
- ]))
701
- ], 64)) : _("", !0),
702
- a.applyButton ? (n(), F("div", Ge, [
703
- v(k, {
704
- label: "Cancel",
705
- variant: "tertiary",
706
- onClick: s[6] || (s[6] = (o) => i("cancel"))
707
- }),
708
- v(k, {
709
- label: "Apply",
710
- onClick: s[7] || (s[7] = (o) => i("update:model-value", e(l).toString()))
711
- })
712
- ])) : _("", !0)
713
- ]);
714
- };
715
- }
716
- }), Ke = { class: "grid grid-cols-4 gap-8 w-full flex-wrap py-16" }, Qe = /* @__PURE__ */ N({
717
- __name: "IsInMonthInput",
718
- props: {
719
- modelValue: {
720
- type: Object,
721
- required: !0
722
- }
723
- },
724
- emits: ["update:model-value"],
725
- setup(a, { emit: R }) {
726
- const f = a, i = R, l = J.months().map((b, t) => ({
727
- name: b,
728
- shortName: J().month(t).format("MMM"),
729
- value: t
730
- }));
731
- return K(() => {
732
- f.modelValue || i("update:model-value", []);
733
- }), (b, t) => {
734
- const s = g("FmChip");
735
- return n(), F("div", Ke, [
736
- (n(!0), F(Y, null, A(e(l), (u) => {
737
- var p, c;
738
- return n(), T(s, {
739
- class: L(["cursor-pointer", {
740
- "bg-fm-color-primary text-white": (p = a.modelValue) == null ? void 0 : p.includes(u.value),
741
- "bg-fm-color-gray-200 text-fm-color-gray-800": !((c = a.modelValue) != null && c.includes(
742
- u.value
743
- ))
744
- }]),
745
- label: u.name,
746
- key: u.value,
747
- compact: !0,
748
- onClick: (k) => i(
749
- "update:model-value",
750
- a.modelValue.includes(u.value) ? a.modelValue.filter((V) => V !== u.value) : [...a.modelValue, u.value]
751
- )
752
- }, null, 8, ["class", "label", "onClick"]);
753
- }), 128))
754
- ]);
755
- };
756
- }
757
- }), ze = { class: "flex flex-col flex-nowrap" }, Ze = { class: "flex gap-16 items-center w-full" }, Je = { class: "flex grow items-center" }, Xe = { class: "grow text-fm-color-typo-secondary" }, et = { key: 0 }, tt = { class: "px-16" }, lt = /* @__PURE__ */ N({
758
- __name: "SelectItems",
759
- props: {
760
- initialValue: {
761
- type: Array,
762
- default: () => []
763
- },
764
- filterItems: {
765
- type: Function,
766
- default: void 0
767
- },
768
- onComplete: {
769
- type: Function,
770
- required: !0
771
- },
772
- maxHeight: {
773
- type: [String, Number],
774
- default: 380
775
- }
776
- },
777
- setup(a, { expose: R }) {
778
- const f = a, i = Te(), l = M(() => i.menu.value || {
779
- _id: "",
780
- modules: {
781
- catalog: [],
782
- category: [],
783
- item: [],
784
- variant: [],
785
- group: [],
786
- takeaway: [],
787
- scheduler: [],
788
- printDepartment: [],
789
- recipe: [],
790
- sku: [],
791
- unit: [],
792
- cookingGuide: [],
793
- serveSequence: []
794
- }
795
- }), b = M(() => {
796
- const o = f.filterItems ?? ((y) => !!y.category);
797
- return l.value.modules.item.filter(o).reduce((y, x) => {
798
- const E = {
799
- id: x._id,
800
- category: x.category,
801
- name: (x.name2 || x.name).trim()
802
- };
803
- return y = [...y, E], y;
804
- }, []);
805
- }), t = M(() => {
806
- const o = l.value.modules.category.reduce((d, y) => (d[y._id] = {
807
- id: y._id,
808
- name: y.name,
809
- items: {}
810
- }, d), {});
811
- return b.value.reduce(
812
- (d, y) => {
813
- const x = y.category ?? "";
814
- return d[x].items = {
815
- ...d[x].items,
816
- [y.id]: y
817
- }, d;
818
- },
819
- {
820
- ...o,
821
- "": {
822
- id: "",
823
- name: "Addons",
824
- items: {}
825
- }
826
- }
827
- );
828
- }), s = M(() => {
829
- const o = p.value.toLowerCase();
830
- return o ? Object.entries(t.value).reduce((d, [y, x]) => {
831
- if (x.name.toLowerCase().includes(o))
832
- return d[y] = x, d;
833
- const E = Object.entries(x.items).reduce((r, [q, h]) => (h.name.toLowerCase().includes(o) && (r[q] = h), r), {});
834
- return Object.keys(E).length > 0 && (d[y] = { ...x, items: E }), d;
835
- }, {}) : t.value;
836
- }), u = P({}), p = P(""), c = M(() => Object.values(u.value).filter((o) => !!o).length);
837
- function k(o) {
838
- u.value = b.value.reduce((d, y) => (d[y.id] = o.includes(y.id), d), {});
839
- }
840
- K(async () => {
841
- await i.getMenu(), k(f.initialValue);
842
- });
843
- function V(o) {
844
- const d = Object.keys(s.value[o].items), y = d.filter((x) => u.value[x]);
845
- return y.length ? y.length === d.length ? !0 : null : !1;
846
- }
847
- function S(o) {
848
- const d = Object.keys(s.value[o].items), y = V(o), x = le(u.value);
849
- for (const E of d)
850
- x[E] = y !== !0;
851
- u.value = x;
852
- }
853
- function m(o) {
854
- u.value[o] = !u.value[o];
855
- }
856
- return R({
857
- onConfirm: () => {
858
- const o = Object.entries(u.value).filter(([, d]) => !!d).map(([d]) => d);
859
- f.onComplete(o);
860
- }
861
- }), (o, d) => {
862
- const y = g("fm-button"), x = g("FmTextField"), E = g("fm-list-item"), r = g("fm-checkbox"), q = g("fm-list");
863
- return n(), F("div", ze, [
864
- v(E, {
865
- tag: "div",
866
- clickable: !1
867
- }, {
868
- default: B(() => [
869
- U("div", Ze, [
870
- U("div", Je, [
871
- v(y, {
872
- icon: "sync",
873
- variant: "tertiary",
874
- onClick: d[0] || (d[0] = () => k([]))
875
- }),
876
- U("span", Xe, j(c.value) + " product(s) selected ", 1)
877
- ]),
878
- v(x, {
879
- modelValue: p.value,
880
- "onUpdate:modelValue": d[1] || (d[1] = (h) => p.value = h),
881
- placeholder: "Search",
882
- "leading-icon": { name: "search", color: "" },
883
- style: { width: "200px", "min-width": "200px" }
884
- }, null, 8, ["modelValue"])
885
- ])
886
- ]),
887
- _: 1
888
- }),
889
- v(q, {
890
- class: L(["grow overflow-y-auto", `max-h-${f.maxHeight ? `[${f.maxHeight}px]` : "full"}`])
891
- }, {
892
- default: B(() => [
893
- (n(!0), F(Y, null, A(s.value, (h) => (n(), F(Y, {
894
- key: h.id
895
- }, [
896
- Object.keys(h.items).length > 0 ? (n(), F("div", et, [
897
- U("div", tt, [
898
- v(r, {
899
- "model-value": V(h.id) ?? !1,
900
- indeterminate: V(h.id) === null,
901
- label: h.name,
902
- value: "",
903
- name: "",
904
- sublabel: "",
905
- class: "w-full",
906
- "onUpdate:modelValue": () => S(h.id)
907
- }, null, 8, ["model-value", "indeterminate", "label", "onUpdate:modelValue"])
908
- ]),
909
- (n(!0), F(Y, null, A(h.items, ($) => (n(), F("div", {
910
- key: $.id,
911
- class: "pl-48"
912
- }, [
913
- v(r, {
914
- "model-value": u.value[$.id],
915
- label: $.name,
916
- value: $.id,
917
- name: $.name,
918
- class: "w-full",
919
- "onUpdate:modelValue": () => m($.id)
920
- }, null, 8, ["model-value", "label", "value", "name", "onUpdate:modelValue"])
921
- ]))), 128))
922
- ])) : _("", !0)
923
- ], 64))), 128))
924
- ]),
925
- _: 1
926
- }, 8, ["class"])
927
- ]);
928
- };
929
- }
930
- }), ot = { class: "" }, at = { class: "flex justify-end gap-8 w-full" }, nt = /* @__PURE__ */ N({
931
- __name: "MenuDialog",
932
- props: {
933
- modelValue: { type: Boolean },
934
- initialValue: {},
935
- filterItems: { type: Function }
936
- },
937
- emits: ["update:model-value", "confirm"],
938
- setup(a, { emit: R }) {
939
- const f = a, i = P(), l = P(!1), b = R;
940
- function t() {
941
- var u;
942
- (u = i.value) == null || u.onConfirm(), b("update:model-value", !1);
943
- }
944
- function s() {
945
- b("update:model-value", !1);
946
- }
947
- return ie(
948
- () => f.modelValue,
949
- (u) => {
950
- l.value = u;
951
- }
952
- ), K(() => {
953
- l.value = f.modelValue;
954
- }), (u, p) => {
955
- const c = g("FmButton"), k = g("FmDialog");
956
- return n(), T(k, {
957
- "content-scrollable": !1,
958
- contentClass: "pt-0",
959
- modelValue: l.value,
960
- "onUpdate:modelValue": p[0] || (p[0] = (V) => l.value = V),
961
- title: "Select Items",
962
- "close-button": !1
963
- }, {
964
- "dialog-header": B(() => p[1] || (p[1] = [
965
- U("div", null, "Select Item", -1)
966
- ])),
967
- "dialog-footer": B(() => [
968
- U("div", at, [
969
- v(c, {
970
- variant: "tertiary",
971
- onClick: s,
972
- label: "Cancel"
973
- }),
974
- v(c, {
975
- variant: "primary",
976
- onClick: t,
977
- label: "Confirm"
978
- })
979
- ])
980
- ]),
981
- default: B(() => [
982
- U("div", ot, [
983
- v(lt, {
984
- ref_key: "selectItemRef",
985
- ref: i,
986
- "initial-value": u.initialValue,
987
- "filter-items": u.filterItems,
988
- "on-complete": (V) => {
989
- b("confirm", V), s();
990
- }
991
- }, null, 8, ["initial-value", "filter-items", "on-complete"])
992
- ])
993
- ]),
994
- _: 1
995
- }, 8, ["modelValue"]);
996
- };
997
- }
998
- }), rt = { id: "select-menu" }, ut = /* @__PURE__ */ N({
999
- __name: "SelectMenu",
1000
- props: {
1001
- modelValue: {}
1002
- },
1003
- emits: ["update:model-value"],
1004
- setup(a, { emit: R }) {
1005
- const f = a, i = P(!1), l = M(() => {
1006
- var s;
1007
- return ((s = f.modelValue) == null ? void 0 : s.length) || 0;
1008
- }), b = R;
1009
- function t(s) {
1010
- b("update:model-value", s);
1011
- }
1012
- return (s, u) => {
1013
- const p = g("FmField");
1014
- return n(), F("div", rt, [
1015
- v(p, {
1016
- class: "text-fm-color-typo-tertiary",
1017
- onClick: u[0] || (u[0] = (c) => i.value = !0)
1018
- }, {
1019
- default: B(() => [
1020
- ee(j(l.value) + " item(s) selected ", 1)
1021
- ]),
1022
- _: 1
1023
- }),
1024
- v(nt, {
1025
- modelValue: i.value,
1026
- "onUpdate:modelValue": [
1027
- u[1] || (u[1] = (c) => i.value = c),
1028
- u[2] || (u[2] = (c) => i.value = c)
1029
- ],
1030
- "initial-value": s.modelValue,
1031
- onConfirm: t
1032
- }, null, 8, ["modelValue", "initial-value"])
1033
- ]);
1034
- };
1035
- }
1036
- }), st = {
1037
- key: 17,
1038
- class: "fm-typo-en-body-lg-600"
1039
- }, it = /* @__PURE__ */ N({
1040
- __name: "RuleEquator",
1041
- props: {
1042
- type: {
1043
- type: String,
1044
- required: !0
1045
- },
1046
- operator: {
1047
- type: String,
1048
- required: !0
1049
- },
1050
- modelValue: {
1051
- type: Object
1052
- }
1053
- },
1054
- emits: ["update:model-value"],
1055
- setup(a, { emit: R }) {
1056
- const f = a, i = R, l = M(() => {
1057
- const b = ce[f.operator].safeParse(f.modelValue);
1058
- return b.success ? [] : b.error.errors;
1059
- });
1060
- return (b, t) => {
1061
- var m, o, d, y, x, E;
1062
- const s = g("FmTextField"), u = g("FmStepperField"), p = g("FmSimpleDatePicker"), c = g("FmSimpleDateRangePicker"), k = g("FmTimeRangePicker"), V = g("FmTimePicker"), S = g("FmHelperText");
1063
- return n(), F("div", {
1064
- class: L({ "pb-4": e(l).length })
1065
- }, [
1066
- a.type === "text" ? (n(), T(s, {
1067
- key: 0,
1068
- "model-value": a.modelValue,
1069
- "onUpdate:modelValue": t[0] || (t[0] = (r) => i("update:model-value", r))
1070
- }, null, 8, ["model-value"])) : a.type === "number" ? (n(), T(u, {
1071
- key: 1,
1072
- "model-value": a.modelValue,
1073
- "onUpdate:modelValue": t[1] || (t[1] = (r) => i("update:model-value", r))
1074
- }, null, 8, ["model-value"])) : a.operator == "_isDay" ? (n(), T(ae(we), {
1075
- key: 2,
1076
- "model-value": a.modelValue,
1077
- "onUpdate:modelValue": t[2] || (t[2] = (r) => i("update:model-value", r))
1078
- }, null, 8, ["model-value"])) : a.operator == "_isRange" ? (n(), T(ae(De), {
1079
- key: 3,
1080
- "model-value": a.modelValue,
1081
- "onUpdate:modelValue": t[3] || (t[3] = (r) => i("update:model-value", r))
1082
- }, null, 8, ["model-value"])) : a.operator == "_isOnDate" ? (n(), T(p, {
1083
- key: 4,
1084
- "model-value": a.modelValue,
1085
- "onUpdate:modelValue": t[4] || (t[4] = (r) => i("update:model-value", r))
1086
- }, null, 8, ["model-value"])) : a.operator == "_isBetween" ? (n(), T(c, {
1087
- key: 5,
1088
- "model-value": {
1089
- startDate: (m = a.modelValue) == null ? void 0 : m.start,
1090
- endDate: (o = a.modelValue) == null ? void 0 : o.end
1091
- },
1092
- "onUpdate:modelValue": t[5] || (t[5] = (r) => {
1093
- i("update:model-value", {
1094
- start: r.startDate,
1095
- end: r.endDate
1096
- });
1097
- })
1098
- }, null, 8, ["model-value"])) : a.operator == "_isInMonth" ? (n(), T(Qe, {
1099
- key: 6,
1100
- "model-value": a.modelValue,
1101
- "onUpdate:modelValue": t[6] || (t[6] = (r) => i("update:model-value", r))
1102
- }, null, 8, ["model-value"])) : a.operator == "_rrule" ? (n(), T(X, {
1103
- key: 7,
1104
- "model-value": a.modelValue,
1105
- "onUpdate:modelValue": t[7] || (t[7] = (r) => i("update:model-value", r))
1106
- }, null, 8, ["model-value"])) : a.operator == "_isBetweenTime" ? (n(), T(k, {
1107
- key: 8,
1108
- "disable-time-check": !0,
1109
- "model-value": [(y = (d = a.modelValue) == null ? void 0 : d[0]) == null ? void 0 : y.start, (E = (x = a.modelValue) == null ? void 0 : x[0]) == null ? void 0 : E.end],
1110
- "onUpdate:modelValue": t[8] || (t[8] = (r) => i("update:model-value", [
1111
- {
1112
- start: r[0],
1113
- end: r[1]
1114
- }
1115
- ]))
1116
- }, null, 8, ["model-value"])) : a.operator == "_isOnTime" ? (n(), T(V, {
1117
- key: 9,
1118
- "model-value": a.modelValue,
1119
- "onUpdate:modelValue": t[9] || (t[9] = (r) => i("update:model-value", r))
1120
- }, null, 8, ["model-value"])) : a.type == "tier" ? (n(), T(I, {
1121
- key: 10,
1122
- items: (e(z)().sortedTiers ?? []).map((r, q) => ({
1123
- label: `Tier ${q + 1} - ${r.name}`,
1124
- value: q + 1
1125
- })),
1126
- "model-value": a.modelValue,
1127
- "onUpdate:modelValue": t[10] || (t[10] = (r) => i("update:model-value", r))
1128
- }, null, 8, ["items", "model-value"])) : a.type == "boolean" ? (n(), T(I, {
1129
- key: 11,
1130
- multiselect: !0,
1131
- items: [
1132
- { label: "true", value: !0 },
1133
- { label: "false", value: !1 }
1134
- ],
1135
- "model-value": a.modelValue ?? [],
1136
- "onUpdate:modelValue": t[11] || (t[11] = (r) => i("update:model-value", r))
1137
- }, null, 8, ["model-value"])) : a.type == "gender" ? (n(), T(I, {
1138
- key: 12,
1139
- multiselect: !0,
1140
- items: [
1141
- { label: "Male", value: "MALE" },
1142
- { label: "Female", value: "FEMALE" }
1143
- ],
1144
- "model-value": a.modelValue ?? [],
1145
- "onUpdate:modelValue": t[12] || (t[12] = (r) => i("update:model-value", r))
1146
- }, null, 8, ["model-value"])) : a.type == "collectible" ? (n(), T(I, {
1147
- key: 13,
1148
- multiselect: !0,
1149
- items: [],
1150
- "model-value": a.modelValue ?? [],
1151
- "onUpdate:modelValue": t[13] || (t[13] = (r) => i("update:model-value", r))
1152
- }, null, 8, ["model-value"])) : a.type == "segment" ? (n(), T(I, {
1153
- key: 14,
1154
- multiselect: !0,
1155
- items: e(z)().segmentOptions,
1156
- "model-value": a.modelValue ?? [],
1157
- "onUpdate:modelValue": t[14] || (t[14] = (r) => i("update:model-value", r)),
1158
- label: "Select segment(s) to match"
1159
- }, null, 8, ["items", "model-value"])) : a.type == "title" ? (n(), T(I, {
1160
- key: 15,
1161
- multiselect: !0,
1162
- items: (e(z)().sortedTitles ?? []).map((r) => ({
1163
- label: r.name,
1164
- value: r._id
1165
- })),
1166
- "model-value": a.modelValue ?? [],
1167
- "onUpdate:modelValue": t[15] || (t[15] = (r) => i("update:model-value", r))
1168
- }, null, 8, ["items", "model-value"])) : a.type == "product" ? (n(), T(ut, {
1169
- key: 16,
1170
- "model-value": a.modelValue,
1171
- "onUpdate:modelValue": t[16] || (t[16] = (r) => i("update:model-value", r))
1172
- }, null, 8, ["model-value"])) : (n(), F("div", st, "Rule Not implemented")),
1173
- v(S, {
1174
- class: "items-end",
1175
- state: e(Z).helperState(e(l), ""),
1176
- text: e(Z).helperText(e(l), "")
1177
- }, null, 8, ["state", "text"])
1178
- ], 2);
1179
- };
1180
- }
1181
- }), mt = { class: "space-y-4" }, dt = { class: "flex items-center gap-8" }, pt = { class: "flex items-center justify-end gap-8 pt-16 w-full" }, ct = /* @__PURE__ */ N({
1182
- __name: "CustomRuleDialog",
1183
- props: {
1184
- triggerType: {
1185
- type: String,
1186
- required: !0
1187
- },
1188
- includeOnly: {
1189
- type: String
1190
- },
1191
- modelValue: {
1192
- type: Object,
1193
- default: () => {
1194
- }
1195
- }
1196
- },
1197
- setup(a) {
1198
- const R = te(), f = z(), { emitData: i, emitAction: l } = se(), b = a, t = M(
1199
- () => ye(b.triggerType, b.includeOnly)
1200
- ), s = (E) => ne[t.value.find((r) => r.property === E).type], u = M(() => {
1201
- if (!V.value) return [];
1202
- const E = t.value.find(
1203
- (r) => r.property === V.value.property
1204
- );
1205
- return E ? ne[E.type].map((r) => ({
1206
- label: Ee[r].name,
1207
- value: r
1208
- })) : [];
1209
- }), p = ve, c = M(() => {
1210
- const E = p.safeParse(V.value);
1211
- return E.success ? [] : E.error.errors;
1212
- }), k = P(!1), V = P(
1213
- le(b.modelValue) ?? D.constructEntry(
1214
- t.value[0].property,
1215
- s(t.value[0].property)[0],
1216
- null
1217
- )
1218
- ), S = M(() => {
1219
- var W;
1220
- const { property: E, negated: r, conditions: q } = V.value, h = Object.keys(q || {})[0], $ = Object.values(q || {})[0];
1221
- return {
1222
- property: E,
1223
- negated: r == !0,
1224
- type: (W = t.value.find((G) => G.property === E)) == null ? void 0 : W.type,
1225
- operator: h,
1226
- equator: $
1227
- };
1228
- });
1229
- function m(E) {
1230
- V.value = D.constructEntry(
1231
- E,
1232
- s(E)[0],
1233
- null
1234
- );
1235
- }
1236
- function o(E) {
1237
- V.value = { ...V.value, negated: E == !0 };
1238
- }
1239
- function d(E) {
1240
- V.value = {
1241
- ...V.value,
1242
- conditions: { [E]: null }
1243
- };
1244
- }
1245
- function y(E) {
1246
- V.value.conditions = {
1247
- [S.value.operator]: E
1248
- };
1249
- }
1250
- function x() {
1251
- i(V.value), l("primary"), R.close();
1252
- }
1253
- return ue(async () => {
1254
- await f.readMembership();
1255
- }), (E, r) => {
1256
- const q = g("FmIcon"), h = g("FmField"), $ = g("FmPill"), W = g("FmMenuItem"), G = g("FmMenu"), Q = g("FmButton");
1257
- return n(), F("div", mt, [
1258
- r[5] || (r[5] = U("div", { class: "fm-typo-en-body-lg-400" }, "Property", -1)),
1259
- v(G, {
1260
- shift: !0,
1261
- placement: "top-start",
1262
- modelValue: e(k),
1263
- "onUpdate:modelValue": r[0] || (r[0] = (w) => me(k) ? k.value = w : null),
1264
- onMenuChanged: r[1] || (r[1] = (w) => k.value = w)
1265
- }, {
1266
- "menu-button": B(() => [
1267
- v(h, null, {
1268
- append: B(() => [
1269
- v(q, {
1270
- name: e(k) ? "expand_less" : "expand_more"
1271
- }, null, 8, ["name"])
1272
- ]),
1273
- default: B(() => {
1274
- var w;
1275
- return [
1276
- ee(j((w = e(t).find((C) => C.property == e(V).property)) == null ? void 0 : w.name) + " ", 1)
1277
- ];
1278
- }),
1279
- _: 1
1280
- })
1281
- ]),
1282
- default: B(() => [
1283
- (n(!0), F(Y, null, A(e(t), (w) => (n(), T(W, {
1284
- key: w.property,
1285
- "model-value": e(V).property == w.property,
1286
- label: w.name,
1287
- disabled: w.premium && !e(re)().isPremium,
1288
- onClick: (C) => w.premium && !e(re)().isPremium ? null : m(w.property)
1289
- }, de({ _: 2 }, [
1290
- w.premium ? {
1291
- name: "append",
1292
- fn: B(() => [
1293
- v($, { variant: "premium" })
1294
- ]),
1295
- key: "0"
1296
- } : void 0
1297
- ]), 1032, ["model-value", "label", "disabled", "onClick"]))), 128))
1298
- ]),
1299
- _: 1
1300
- }, 8, ["modelValue"]),
1301
- r[6] || (r[6] = U("div", { class: "fm-typo-en-body-lg-400" }, "Check to perform", -1)),
1302
- U("div", dt, [
1303
- v(I, {
1304
- class: "w-1/4",
1305
- items: [
1306
- { label: "is", value: !1 },
1307
- { label: "is not", value: !0 }
1308
- ],
1309
- "model-value": e(V).negated ?? !1,
1310
- "onUpdate:modelValue": o
1311
- }, null, 8, ["model-value"]),
1312
- v(I, {
1313
- class: "flex-1",
1314
- items: e(u),
1315
- "model-value": e(S).operator,
1316
- "onUpdate:modelValue": d
1317
- }, null, 8, ["items", "model-value"])
1318
- ]),
1319
- U("div", null, [
1320
- r[4] || (r[4] = U("div", { class: "fm-typo-en-body-lg-400" }, "Criteria", -1)),
1321
- e(S).type ? (n(), T(it, {
1322
- key: 0,
1323
- type: e(S).type,
1324
- operator: e(S).operator,
1325
- "model-value": e(S).equator,
1326
- "onUpdate:modelValue": y
1327
- }, null, 8, ["type", "operator", "model-value"])) : _("", !0)
1328
- ]),
1329
- U("div", pt, [
1330
- v(Q, {
1331
- onClick: r[2] || (r[2] = (w) => e(R).close()),
1332
- label: "Cancel",
1333
- variant: "tertiary"
1334
- }),
1335
- v(Q, {
1336
- onClick: r[3] || (r[3] = (w) => x()),
1337
- disabled: e(c).length > 0,
1338
- label: "Save"
1339
- }, null, 8, ["disabled"])
1340
- ])
1341
- ]);
1342
- };
1343
- }
1344
- }), yt = { class: "flex flex-col gap-8" }, vt = { class: "grid grid-cols-2 items-center" }, ft = { class: "flex items-center gap-8" }, bt = { class: "pt-16 flex items-center self-end gap-8" }, gt = /* @__PURE__ */ N({
1345
- __name: "PresetRuleDialog",
1346
- props: {
1347
- preset: {
1348
- type: String,
1349
- required: !0
1350
- },
1351
- modelValue: {
1352
- type: Object
1353
- }
1354
- },
1355
- setup(a) {
1356
- const R = te(), { emitData: f, emitAction: i } = se(), l = z(), b = a;
1357
- function t() {
1358
- const { operator: S, equator: m } = p.value;
1359
- switch (b.preset) {
1360
- case "MIN_SPEND":
1361
- case "SPECIFIC_DATE":
1362
- case "SPECIFIC_TIMERANGE":
1363
- case "WEEKLY":
1364
- case "MONTHLY":
1365
- case "BIRTHDAY":
1366
- case "TIER":
1367
- return `Applies to ${l.sortedTiers.filter((d, y) => S == "_equal" ? y + 1 == m : S == "_moreThanOrEqual" ? y + 1 >= m : y + 1 <= m).map((d) => d.name).join(", ")}`;
1368
- }
1369
- }
1370
- function s() {
1371
- var S, m;
1372
- switch (b.preset) {
1373
- case "MIN_SPEND":
1374
- return D.constructEntry("bill.amount", "_moreThanOrEqual", 0);
1375
- case "SPECIFIC_DATE":
1376
- return D.constructEntry("trigger.date", "_isOnDate", "");
1377
- case "SPECIFIC_TIMERANGE":
1378
- return D.constructEntry("trigger.time", "_isBetweenTime", [
1379
- { start: "00:00", end: "23:59" }
1380
- ]);
1381
- case "WEEKLY":
1382
- return D.constructEntry(
1383
- "trigger.date",
1384
- "_rrule",
1385
- "RRULE:FREQ=WEEKLY;WKST=SU;BYDAY=SU;BYHOUR=0;BYMINUTE=0;BYSECOND=0"
1386
- );
1387
- case "MONTHLY":
1388
- return D.constructEntry(
1389
- "trigger.date",
1390
- "_rrule",
1391
- "RRULE:FREQ=MONTHLY;WKST=SU;BYMONTHDAY=1;BYHOUR=0;BYMINUTE=0;BYSECOND=0"
1392
- );
1393
- case "BIRTHDAY":
1394
- return D.constructEntry("user.birthday", "_isDay", {
1395
- op: "after",
1396
- x: 1,
1397
- ignoreYear: !0
1398
- });
1399
- case "TIER":
1400
- return D.constructEntry("user.tier", "_equal", 1);
1401
- case "TITLE":
1402
- return D.constructEntry("user.titles", "_hasAny", [
1403
- (m = (S = l.sortedTitles) == null ? void 0 : S[0]) == null ? void 0 : m._id
1404
- ]);
1405
- case "CUSTOM":
1406
- throw new Error("Not implemented");
1407
- }
1408
- }
1409
- const u = P(s()), p = M(() => {
1410
- const S = D.simplify(u.value);
1411
- return {
1412
- ...S,
1413
- equator: S.equator
1414
- };
1415
- });
1416
- function c(S, m) {
1417
- const o = p.value;
1418
- u.value = D.constructEntry(
1419
- o.property,
1420
- m ?? o.operator,
1421
- S,
1422
- u.value.name
1423
- );
1424
- }
1425
- function k() {
1426
- f(u.value), i("primary"), R.close();
1427
- }
1428
- const V = M(() => {
1429
- const S = fe.safeParse(u.value);
1430
- return S.success ? [] : S.error.errors;
1431
- });
1432
- return ue(async () => {
1433
- await l.readMembership();
1434
- }), (S, m) => {
1435
- var $, W, G, Q, w;
1436
- const o = g("FmStepperField"), d = g("FmDatePicker"), y = g("FmTimeRangePicker"), x = g("FmRadio"), E = g("FmSelect"), r = g("FmRadioGroup"), q = g("FmHelperText"), h = g("FmButton");
1437
- return n(), F("div", yt, [
1438
- a.preset == "MIN_SPEND" ? (n(), T(o, {
1439
- key: 0,
1440
- label: "Minimum spend",
1441
- "model-value": e(p).equator,
1442
- "onUpdate:modelValue": m[0] || (m[0] = (C) => c(C))
1443
- }, null, 8, ["model-value"])) : a.preset == "SPECIFIC_DATE" ? (n(), T(d, {
1444
- key: 1,
1445
- label: "Specific Date",
1446
- "model-value": e(p).equator,
1447
- "onUpdate:modelValue": m[1] || (m[1] = (C) => c(C))
1448
- }, null, 8, ["model-value"])) : a.preset == "SPECIFIC_TIMERANGE" ? (n(), T(y, {
1449
- key: 2,
1450
- label: "Time is between",
1451
- "disable-time-check": !0,
1452
- "model-value": [(W = ($ = e(p).equator) == null ? void 0 : $[0]) == null ? void 0 : W.start, (Q = (G = e(p).equator) == null ? void 0 : G[0]) == null ? void 0 : Q.end],
1453
- "onUpdate:modelValue": m[2] || (m[2] = (C) => c([
1454
- {
1455
- start: C[0],
1456
- end: C[1]
1457
- }
1458
- ]))
1459
- }, null, 8, ["model-value"])) : a.preset == "WEEKLY" ? (n(), T(X, {
1460
- key: 3,
1461
- label: "Weekly",
1462
- "fixed-frequency": !0,
1463
- "model-value": e(p).equator,
1464
- "onUpdate:modelValue": m[3] || (m[3] = (C) => c(C))
1465
- }, null, 8, ["model-value"])) : a.preset == "MONTHLY" ? (n(), T(X, {
1466
- key: 4,
1467
- label: "Weekly",
1468
- "fixed-frequency": !0,
1469
- "model-value": e(p).equator,
1470
- "onUpdate:modelValue": m[4] || (m[4] = (C) => c(C))
1471
- }, null, 8, ["model-value"])) : a.preset == "BIRTHDAY" ? (n(), F(Y, { key: 5 }, [
1472
- U("div", vt, [
1473
- v(x, {
1474
- label: "N days before birthday",
1475
- value: "_isDay",
1476
- "model-value": e(p).operator,
1477
- "onUpdate:modelValue": m[5] || (m[5] = () => {
1478
- c(
1479
- {
1480
- op: "after",
1481
- x: 1,
1482
- ignoreYear: !0
1483
- },
1484
- "_isDay"
1485
- );
1486
- })
1487
- }, null, 8, ["model-value"]),
1488
- U("div", ft, [
1489
- v(x, {
1490
- label: "Is in this",
1491
- value: "_isRange",
1492
- "model-value": e(p).operator,
1493
- "onUpdate:modelValue": m[6] || (m[6] = () => {
1494
- c(
1495
- {
1496
- op: "this",
1497
- unit: "day",
1498
- ignoreYear: !0
1499
- },
1500
- "_isRange"
1501
- );
1502
- })
1503
- }, null, 8, ["model-value"]),
1504
- e(p).operator == "_isRange" ? (n(), T(E, {
1505
- key: 0,
1506
- items: ["day", "week", "month"].map((C) => ({ label: C, value: C })),
1507
- "model-value": e(p).equator.unit,
1508
- "onUpdate:modelValue": m[7] || (m[7] = (C) => c(
1509
- {
1510
- op: "this",
1511
- unit: C,
1512
- ignoreYear: !0
1513
- },
1514
- "_isRange"
1515
- ))
1516
- }, null, 8, ["items", "model-value"])) : _("", !0)
1517
- ])
1518
- ]),
1519
- e(p).operator == "_isDay" ? (n(), T(o, {
1520
- key: 0,
1521
- label: "Days before birthday",
1522
- "show-steppers": !1,
1523
- "model-value": e(p).equator.x,
1524
- "onUpdate:modelValue": m[8] || (m[8] = (C) => c({
1525
- op: "after",
1526
- x: C,
1527
- ignoreYear: !0
1528
- }))
1529
- }, null, 8, ["model-value"])) : _("", !0)
1530
- ], 64)) : a.preset == "TIER" ? (n(), F(Y, { key: 6 }, [
1531
- v(r, {
1532
- inline: !0,
1533
- "model-value": e(p).operator,
1534
- "onUpdate:modelValue": m[9] || (m[9] = (C) => c(e(p).equator, C))
1535
- }, {
1536
- default: B(() => [
1537
- v(x, {
1538
- value: "_moreThanOrEqual",
1539
- label: "At least"
1540
- }),
1541
- v(x, {
1542
- value: "_equal",
1543
- label: "Equal"
1544
- }),
1545
- v(x, {
1546
- value: "_lessThanOrEqual",
1547
- label: "At most"
1548
- })
1549
- ]),
1550
- _: 1
1551
- }, 8, ["model-value"]),
1552
- v(I, {
1553
- items: (e(l).sortedTiers ?? []).map((C, oe) => ({
1554
- label: `Tier ${oe + 1} - ${C.name}`,
1555
- value: oe + 1
1556
- })),
1557
- "model-value": e(p).equator,
1558
- "onUpdate:modelValue": m[10] || (m[10] = (C) => c(C))
1559
- }, null, 8, ["items", "model-value"]),
1560
- v(q, {
1561
- text: t()
1562
- }, null, 8, ["text"])
1563
- ], 64)) : a.preset == "TITLE" ? (n(), T(I, {
1564
- key: 7,
1565
- label: "User has title",
1566
- items: (e(l).sortedTitles ?? []).map((C) => ({
1567
- label: C.name,
1568
- value: C._id
1569
- })),
1570
- "model-value": (w = e(p).equator) == null ? void 0 : w[0],
1571
- "onUpdate:modelValue": m[11] || (m[11] = (C) => c([C]))
1572
- }, null, 8, ["items", "model-value"])) : _("", !0),
1573
- v(q, {
1574
- class: "mt-[-8px]",
1575
- text: e(Z).helperText(e(V), ""),
1576
- state: e(Z).helperState(e(V), "")
1577
- }, null, 8, ["text", "state"]),
1578
- U("div", bt, [
1579
- v(h, {
1580
- onClick: m[12] || (m[12] = (C) => e(R).close()),
1581
- label: "Cancel",
1582
- variant: "tertiary"
1583
- }),
1584
- v(h, {
1585
- onClick: m[13] || (m[13] = (C) => k()),
1586
- disabled: e(V).length > 0,
1587
- label: "Save"
1588
- }, null, 8, ["disabled"])
1589
- ])
1590
- ]);
1591
- };
1592
- }
1593
- }), kt = /* @__PURE__ */ N({
1594
- __name: "RuleConfigurator",
1595
- props: {
1596
- triggerType: {
1597
- type: String,
1598
- required: !0
1599
- },
1600
- includeOnly: {
1601
- type: String
1602
- },
1603
- modelValue: {
1604
- type: Object,
1605
- default: () => {
1606
- }
1607
- }
1608
- },
1609
- emits: ["update:model-value"],
1610
- setup(a, { expose: R, emit: f }) {
1611
- const i = a, l = f, b = te(), t = P();
1612
- function s(c) {
1613
- b.open({
1614
- title: c.name,
1615
- closeButton: !1,
1616
- dismissAway: !1,
1617
- contentComponent: gt,
1618
- contentComponentProps: {
1619
- preset: c.type,
1620
- modelValue: i.modelValue
1621
- }
1622
- }).onPrimary((k) => l("update:model-value", k));
1623
- }
1624
- function u(c) {
1625
- b.open({
1626
- title: "Edit rule",
1627
- closeButton: !1,
1628
- dismissAway: !1,
1629
- contentComponent: ct,
1630
- contentComponentProps: {
1631
- triggerType: i.triggerType,
1632
- includeOnly: i.includeOnly,
1633
- modelValue: c
1634
- }
1635
- }).onPrimary((k) => l("update:model-value", k));
1636
- }
1637
- function p(c) {
1638
- if (c.type == "CUSTOM") {
1639
- const [k] = c.rules;
1640
- return u(
1641
- D.constructEntry(k.property, k.operator, k.equator)
1642
- );
1643
- }
1644
- return s(c);
1645
- }
1646
- return R({
1647
- showCustomDialog: u
1648
- }), (c, k) => {
1649
- const V = g("FmButton"), S = g("FmMenuItem"), m = g("FmMenu");
1650
- return n(), T(m, {
1651
- shift: !0,
1652
- placement: "top-start"
1653
- }, {
1654
- "menu-button": B(() => [
1655
- v(V, {
1656
- label: "Add condition",
1657
- icon: "add",
1658
- class: "text-fm-color-primary border-fm-color-primary",
1659
- "icon-color": "primary",
1660
- variant: "secondary"
1661
- })
1662
- ]),
1663
- default: B(() => [
1664
- (n(!0), F(Y, null, A(e(Oe).filter(
1665
- (o) => !a.includeOnly || o.for.includes(a.includeOnly)
1666
- ), (o) => (n(), T(S, {
1667
- key: o.name,
1668
- "model-value": o.name == e(t),
1669
- label: o.name,
1670
- onClick: (d) => p(o)
1671
- }, null, 8, ["model-value", "label", "onClick"]))), 128))
1672
- ]),
1673
- _: 1
1674
- });
1675
- };
1676
- }
1677
- }), Nt = /* @__PURE__ */ N({
1678
- __name: "RuleGroup",
1679
- props: {
1680
- triggerType: {
1681
- type: String,
1682
- required: !0
1683
- },
1684
- includeOnly: {
1685
- type: String
1686
- },
1687
- modelValue: {
1688
- type: Object
1689
- }
1690
- },
1691
- emits: ["update:model-value"],
1692
- setup(a, { emit: R }) {
1693
- const f = a, i = R, l = M(
1694
- () => f.modelValue ?? D.scaffoldGroup()
1695
- ), b = M(() => D.getLogic(l.value)), t = P();
1696
- return (s, u) => {
1697
- const p = g("FmButtonGroup"), c = g("FmCard");
1698
- return n(), T(c, { variant: "outlined" }, {
1699
- default: B(() => [
1700
- v(c, { class: "border-l-4 border-fm-color-primary p-16 space-y-16" }, {
1701
- default: B(() => [
1702
- u[3] || (u[3] = U("div", { class: "fm-typo-en-body-lg-400 text-fm-color-typo-secondary" }, " When ", -1)),
1703
- v(kt, {
1704
- ref_key: "configuratorRef",
1705
- ref: t,
1706
- "include-only": a.includeOnly,
1707
- "trigger-type": a.triggerType,
1708
- "onUpdate:modelValue": u[0] || (u[0] = (k) => i("update:model-value", e(D).setRuleToGroup(e(l), k)))
1709
- }, null, 8, ["include-only", "trigger-type"]),
1710
- (n(!0), F(Y, null, A(e(l).rules, (k, V) => {
1711
- var S;
1712
- return n(), F(Y, null, [
1713
- e(be)(k) ? (n(), T(Re, {
1714
- "model-value": k,
1715
- key: V,
1716
- onEdit: (S = e(t)) == null ? void 0 : S.showCustomDialog,
1717
- onRemove: u[1] || (u[1] = (m) => {
1718
- i(
1719
- "update:model-value",
1720
- e(D).removeEntry(e(l), m.name)
1721
- );
1722
- })
1723
- }, null, 8, ["model-value", "onEdit"])) : _("", !0),
1724
- v(p, {
1725
- class: "w-[200px]",
1726
- disabled: Object.keys(e(l).rules).length < 2,
1727
- items: [{ label: "And" }, { label: "Or" }],
1728
- "model-value": e(b) === "&&" ? { label: "And" } : { label: "Or" },
1729
- "onUpdate:modelValue": u[2] || (u[2] = (m) => i(
1730
- "update:model-value",
1731
- e(D).setRuleToGroup(
1732
- e(l),
1733
- [],
1734
- m.label === "And" ? "&&" : "||"
1735
- )
1736
- ))
1737
- }, null, 8, ["disabled", "model-value"])
1738
- ], 64);
1739
- }), 256))
1740
- ]),
1741
- _: 1
1742
- })
1743
- ]),
1744
- _: 1
1745
- });
1746
- };
1747
- }
1748
- });
1749
- export {
1750
- Nt as _,
1751
- X as a,
1752
- lt as b
1753
- };