@feedmepos/mf-connect 0.1.38-beta.3 → 0.1.38-beta.31

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 (110) hide show
  1. package/dist/{Analytic-DlzNe_iy.js → Analytic-C_nMR1Be.js} +15 -15
  2. package/dist/{App-S5t6byxx.js → App-s6O0r91S.js} +624 -618
  3. package/dist/{AuditLogs-FO7SmMm2.js → AuditLogs-BcVkpvGw.js} +14 -14
  4. package/dist/{Bin-D--pK-f4.js → Bin-C5g9jHoQ.js} +9 -9
  5. package/dist/Broadcast-JPTVWDJC.js +233 -0
  6. package/dist/{CampaignTypeDialog.vue_vue_type_script_setup_true_lang-C6MYdWnX.js → CampaignTypeDialog.vue_vue_type_script_setup_true_lang-CloO2B7A.js} +6 -6
  7. package/dist/{Card-DHL6WnwR.js → Card-Dgj6yukn.js} +143 -137
  8. package/dist/{Collections-DnonNjPT.js → Collections-D-aFYRCq.js} +82 -76
  9. package/dist/Credit-BZcRB9Wj.js +228 -0
  10. package/dist/{DateRangeChip.vue_vue_type_script_setup_true_lang-BUzUIIUW.js → DateRangeChip.vue_vue_type_script_setup_true_lang-eIoPtgO5.js} +1 -1
  11. package/dist/EditCampaignSheet.vue_vue_type_script_setup_true_lang-DnPPICf0.js +3117 -0
  12. package/dist/{EffectSheet.vue_vue_type_style_index_0_lang-C4zzEOCb.js → EffectSheet.vue_vue_type_style_index_0_lang-DbSiVLaJ.js} +100 -99
  13. package/dist/Experience-DHQPxVv3.js +229 -0
  14. package/dist/FilterChip.vue_vue_type_script_setup_true_lang-DaU-9GzO.js +129 -0
  15. package/dist/{Game-Bkl0JnBq.js → Game-C1XnMgil.js} +103 -97
  16. package/dist/Grab-BbHccgZO.js +301 -0
  17. package/dist/{ImageInput.vue_vue_type_script_setup_true_lang-rWUkV9gn.js → ImageInput.vue_vue_type_script_setup_true_lang-D1KQpDGg.js} +8 -8
  18. package/dist/{Index-BXTpF6kN.js → Index-DYZsN2H3.js} +54 -54
  19. package/dist/{Marketing-kk88gqDC.js → Marketing-DnsPHYpt.js} +7112 -5424
  20. package/dist/{Member-Cq-orpRf.js → Member-rkdV1fVo.js} +10 -10
  21. package/dist/{MemberList-B0K6Djc0.js → MemberList-QaB13bxO.js} +33 -33
  22. package/dist/{MemberTransactions-BCrJz8M9.js → MemberTransactions-Dw5qHQVW.js} +1 -1
  23. package/dist/{MessageInput.vue_vue_type_script_setup_true_lang-BcGhTM5H.js → MessageInput.vue_vue_type_script_setup_true_lang-DGyv0LMu.js} +5789 -5515
  24. package/dist/{Mission-BF1Z-Veq.js → Mission-B7rAzf6O.js} +112 -106
  25. package/dist/{Overview-CLSBBnZz.js → Overview-Cg4Szz05.js} +21 -21
  26. package/dist/Point-DuKS8-0D.js +232 -0
  27. package/dist/{Promotion-CGwxt3l3.js → Promotion-CFtLq-LB.js} +11 -11
  28. package/dist/{Queue-Dihw6DCV.js → Queue-BZONVNCP.js} +13 -13
  29. package/dist/{Record-ChSb722p.js → Record-jNEahJNC.js} +10 -10
  30. package/dist/{Reward-8oKlHA-x.js → Reward-VS6C6NQO.js} +15 -15
  31. package/dist/{RewardGroup.vue_vue_type_script_setup_true_lang-D--YGFcF.js → RewardGroup.vue_vue_type_script_setup_true_lang-D4KMGgkv.js} +11 -11
  32. package/dist/RuleGroup.vue_vue_type_script_setup_true_lang-Cb-WJA0i.js +1763 -0
  33. package/dist/{Segment-BbYgbJ7w.js → Segment-DK5tqeOF.js} +274 -274
  34. package/dist/{SelectItems.vue_vue_type_script_setup_true_lang-Dy_G8md1.js → SelectItems.vue_vue_type_script_setup_true_lang-AYAwO37B.js} +14 -14
  35. package/dist/{SendCollectionSheet.vue_vue_type_script_setup_true_lang-BFhY3cve.js → SendCollectionSheet.vue_vue_type_script_setup_true_lang-K8js6fbo.js} +11 -11
  36. package/dist/{SendVoucherSheet.vue_vue_type_script_setup_true_lang-WEiXy4o1.js → SendVoucherSheet.vue_vue_type_script_setup_true_lang-lcPHPa4K.js} +3 -3
  37. package/dist/{Setting-B75a5DWV.js → Setting-BtiUlWRc.js} +459 -444
  38. package/dist/{Store-Cb8Et93b.js → Store-DqFW5hr_.js} +472 -465
  39. package/dist/{StoreRewards-DEI9VJHO.js → StoreRewards-g-3WtxwG.js} +15 -15
  40. package/dist/{StoreTransactions.vue_vue_type_script_setup_true_lang-BGBl4Zla.js → StoreTransactions.vue_vue_type_script_setup_true_lang-DNT4PWgl.js} +208 -222
  41. package/dist/{TargetLocationInput.vue_vue_type_script_setup_true_lang-92NnMkro.js → TargetLocationInput.vue_vue_type_script_setup_true_lang-CXYnNSta.js} +1 -1
  42. package/dist/{Tier-BB4AyAZV.js → Tier-SHij9zKX.js} +230 -227
  43. package/dist/{Title-Cla1U1ye.js → Title-_2JVV1rW.js} +142 -139
  44. package/dist/{Transaction-fHFbemk-.js → Transaction-BHLb6hZN.js} +2 -2
  45. package/dist/{UserRuleGroup.vue_vue_type_script_setup_true_lang-yS5qh7za.js → UserRuleGroup.vue_vue_type_script_setup_true_lang-DolBmHzN.js} +6 -6
  46. package/dist/{Voucher-CraCvVuq.js → Voucher-CJk8ZuCA.js} +14 -14
  47. package/dist/{VoucherEditor.vue_vue_type_script_setup_true_lang-DqKT6Fep.js → VoucherEditor.vue_vue_type_script_setup_true_lang-BviU3rz6.js} +86 -86
  48. package/dist/{ZodTextField.vue_vue_type_script_setup_true_lang-B14K5zel.js → ZodTextField.vue_vue_type_script_setup_true_lang-R4Xcn7gl.js} +1 -1
  49. package/dist/app-BpcIC6Ud.js +57962 -0
  50. package/dist/{app-B8hYhD6p.js → app-D9ygZVP0.js} +678 -597
  51. package/dist/app.js +1 -1
  52. package/dist/{business-CwtLYoAT.js → business-CzJxdKc-.js} +11 -8
  53. package/dist/{campaign-BwM5SLyy.js → campaign-RKjwSpJk.js} +29 -16
  54. package/dist/{campaign-Bea47E3G.js → campaign-s_7F9I6R.js} +29 -25
  55. package/dist/{campaign.enum-v4z9v1aa.js → campaign.enum-BlGYJ6p4.js} +3 -2
  56. package/dist/{campaign.fn-CV5s8XUt.js → campaign.fn-aH0pz1jU.js} +95 -95
  57. package/dist/{collectible.enum-BGt9xa0D.js → collectible.enum-DYV8J5Mg.js} +1 -1
  58. package/dist/{collection.fn-DFzVxsA9.js → collection.fn-lLG_rLyd.js} +2 -2
  59. package/dist/dto-Cx-z2h2_.js +222 -0
  60. package/dist/{effect-DQtWLIrF.js → effect-DV2GiHqM.js} +1 -1
  61. package/dist/{email-addresses-I8wDL9bh.js → email-addresses-DTfbKDsC.js} +1 -1
  62. package/dist/{export-BauRZnqp.js → export-hHjutAC3.js} +4 -4
  63. package/dist/{helper-B2Q1CLCG.js → helper-oy_DH4P5.js} +1 -1
  64. package/dist/{index-CCJqmSob.js → index-8t9y1bUZ.js} +1 -1
  65. package/dist/{index-B20y17xe.js → index-B1C5UjP5.js} +3 -3
  66. package/dist/{index-DQpw4Va-.js → index-B79nkieV.js} +1452 -1452
  67. package/dist/{index-DGuR3NRj.js → index-BA6oC2L9.js} +3 -3
  68. package/dist/{index-BdizAaMz.js → index-Ba05Naif.js} +16 -16
  69. package/dist/{index-B1Bdn9rV.js → index-BoRTW-dI.js} +196 -16
  70. package/dist/{index-CgYAHnlX.js → index-CUGS4y58.js} +861 -714
  71. package/dist/{index-IXY9hkrD.js → index-CV_3mltA.js} +1 -1
  72. package/dist/{index-DtfWwcp4.js → index-ClgsfK3Y.js} +1 -1
  73. package/dist/{index-dK8fMQ5h.js → index-CtxtD8HE.js} +1 -1
  74. package/dist/{index-aguYFa7D.js → index-CycW9ri6.js} +6347 -6305
  75. package/dist/{index-s1IB44jY.js → index-D8JDdV2w.js} +1 -1
  76. package/dist/{index-Bv3aqvRF.js → index-DJlZYwDo.js} +11 -4
  77. package/dist/{index-yOFbPJEE.js → index-sSxaqeIi.js} +1 -1
  78. package/dist/{index.esm2017-VwpfHNpU.js → index.esm2017-B3-oEraK.js} +34 -34
  79. package/dist/{loading-BFKvxqlx.js → loading-D98ofaCB.js} +1 -1
  80. package/dist/{membership-Cgzqg1Vw.js → membership-CwbI7ZrE.js} +3 -3
  81. package/dist/{moment-BWErdI6_.js → moment-D7p2TMB-.js} +6 -1
  82. package/dist/{money-DIh7Uegf.js → money-D5cHxcPB.js} +1 -1
  83. package/dist/{number-onslf0BL.js → number-CPEEKMZZ.js} +1 -1
  84. package/dist/objectid-Be_atBnH.js +145 -0
  85. package/dist/{plugins-hfoXoiK2.js → plugins-B55BRo5q.js} +2 -2
  86. package/dist/{reward-CYC7hCgM.js → reward-xrTcTYjt.js} +1 -1
  87. package/dist/rule-builder-NTDBB2kj.js +93 -0
  88. package/dist/{rule-C_M3oFLI.js → rule-w89XmfIg.js} +4 -4
  89. package/dist/style.css +1 -1
  90. package/dist/{template-C6URy7QF.js → template-Bt_auQZW.js} +5 -5
  91. package/dist/timezone-BcBn2Kb_.js +1151 -0
  92. package/dist/{trigger-CZAiHFT5.js → trigger-D_6mNiva.js} +4 -4
  93. package/dist/usePagination-Ds-cuHop.js +223 -0
  94. package/dist/{user-uo2wREaB.js → user-B6YOJ_7r.js} +1 -1
  95. package/dist/{vue-i18n-Ba5EWUgR.js → vue-i18n-QvFKKqSt.js} +418 -418
  96. package/dist/{xlsx-CIJPKm4G.js → xlsx-Dr9Ctrs4.js} +1 -1
  97. package/package.json +6 -5
  98. package/dist/Broadcast-BYL3w06w.js +0 -227
  99. package/dist/Credit-BMeykOe-.js +0 -222
  100. package/dist/EditCampaignSheet.vue_vue_type_script_setup_true_lang-D6Ps8njr.js +0 -2185
  101. package/dist/Experience-Lu8sCso6.js +0 -223
  102. package/dist/FilterChip.vue_vue_type_script_setup_true_lang-d8rh38tD.js +0 -114
  103. package/dist/Point-BZ2Bgfw8.js +0 -226
  104. package/dist/RuleGroup.vue_vue_type_script_setup_true_lang-GSqXPvRs.js +0 -1728
  105. package/dist/app-BVCw28s0.js +0 -33357
  106. package/dist/dto-BgJqr4qT.js +0 -214
  107. package/dist/objectid-vtlpVGBH.js +0 -145
  108. package/dist/remy-vue-client-Cpppk9h-.js +0 -1693
  109. package/dist/rule-builder-BOG14MYK.js +0 -89
  110. package/dist/usePagination-BeF5K3M7.js +0 -223
package/dist/app.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import "vue";
2
- import { F as e, i as o, r as p } from "./app-B8hYhD6p.js";
2
+ import { F as e, i as o, r as p } from "./app-D9ygZVP0.js";
3
3
  export {
4
4
  e as FmApp,
5
5
  o as i18nMessages,
@@ -1,8 +1,8 @@
1
1
  import { ref as i, computed as u } from "vue";
2
2
  import { defineStore as w } from "pinia";
3
3
  import { useCoreStore as y } from "@feedmepos/mf-common";
4
- import { a as I, g as r, A as b, S, b as D } from "./index-aguYFa7D.js";
5
- const A = {
4
+ import { a as I, g as r, A as b, S, b as D } from "./index-CycW9ri6.js";
5
+ const $ = {
6
6
  async readSettings(e) {
7
7
  try {
8
8
  return r(await I(`marketing-v2/${e}/setting`).get(""));
@@ -38,13 +38,13 @@ const A = {
38
38
  }, h = w("mf-connect-business", () => {
39
39
  const e = i("v2"), t = i(!1), a = i([]), c = i([]);
40
40
  async function v() {
41
- const n = y().currentBusiness.value, s = await A.readSettings(n == null ? void 0 : n.id);
41
+ const n = y().currentBusiness.value, s = await $.readSettings(n == null ? void 0 : n.id);
42
42
  return t.value = s && "business" in s && s.premium == !0 || !1, e.value = (s == null ? void 0 : s.apiVersion) || "v1", t.value;
43
43
  }
44
- async function p() {
44
+ async function d() {
45
45
  return a.value = await l.read(), a.value;
46
46
  }
47
- async function d() {
47
+ async function p() {
48
48
  return c.value = await l.readDevices(), c.value;
49
49
  }
50
50
  function m(n) {
@@ -56,7 +56,10 @@ const A = {
56
56
  label: n.name,
57
57
  value: n._id
58
58
  }))
59
- ]), g = u(() => a.value.map((n) => ({ label: n.name, value: n._id })));
59
+ ]), g = u(() => a.value.map((n) => ({
60
+ label: `${n.code ? `${n.code} - ` : ""} ${n.name}`,
61
+ value: n._id
62
+ })));
60
63
  return {
61
64
  // state
62
65
  version: e,
@@ -65,8 +68,8 @@ const A = {
65
68
  locationDevices: c,
66
69
  // actions
67
70
  readPremium: v,
68
- readLocations: p,
69
- readLocationDevices: d,
71
+ readLocations: d,
72
+ readLocationDevices: p,
70
73
  locationById: m,
71
74
  // getters
72
75
  locationItems: f,
@@ -1,16 +1,16 @@
1
- import { h as F } from "./moment-BWErdI6_.js";
2
- import "./index-CgYAHnlX.js";
3
- import { e as G } from "./effect-DQtWLIrF.js";
1
+ import { h as F } from "./moment-D7p2TMB-.js";
2
+ import "./index-CUGS4y58.js";
3
+ import { e as G } from "./effect-DV2GiHqM.js";
4
4
  import { components as ie } from "@feedmepos/ui-library";
5
- import { i as Ne } from "./rule-builder-BOG14MYK.js";
6
- import { c as Ee } from "./rule-C_M3oFLI.js";
7
- import { u as Ve } from "./business-CwtLYoAT.js";
8
- import { C as j } from "./campaign.fn-CV5s8XUt.js";
9
- import { c as ce } from "./plugins-hfoXoiK2.js";
10
- import { e as je, Z as S, a as fe, i as Re, z as Fe } from "./app-B8hYhD6p.js";
5
+ import { i as Ne } from "./rule-builder-NTDBB2kj.js";
6
+ import { c as Ee } from "./rule-w89XmfIg.js";
7
+ import { u as Ve } from "./business-CzJxdKc-.js";
8
+ import { C as j } from "./campaign.fn-aH0pz1jU.js";
9
+ import { c as ce } from "./plugins-B55BRo5q.js";
10
+ import { e as je, Z as S, a as fe, i as Re, z as Fe } from "./app-D9ygZVP0.js";
11
11
  import { detectLocale as Ie, createFeedMeI18n as De } from "@feedmepos/mf-common";
12
12
  import { h as B } from "vue";
13
- import { F as R } from "./campaign.enum-v4z9v1aa.js";
13
+ import { F as R } from "./campaign.enum-BlGYJ6p4.js";
14
14
  const d = (a) => typeof a == "string", _ = () => {
15
15
  let a, e;
16
16
  const t = new Promise((s, i) => {
@@ -1612,7 +1612,7 @@ const ae = Ie(), rt = De({
1612
1612
  locale: ae,
1613
1613
  messages: Re
1614
1614
  });
1615
- console.log(ae);
1615
+ console.info("Current locale:", ae);
1616
1616
  b.init({
1617
1617
  lng: ae,
1618
1618
  resources: Re
@@ -1704,7 +1704,6 @@ const bt = {
1704
1704
  return $(this);
1705
1705
  }
1706
1706
  },
1707
- // TODO: confirm color
1708
1707
  [R.enum.MISSION]: {
1709
1708
  chipClass: "!text-fm-color-secondary-tuna !bg-[#e3f4f9]",
1710
1709
  icon: "editor_choice",
@@ -1712,6 +1711,14 @@ const bt = {
1712
1711
  chip() {
1713
1712
  return $(this);
1714
1713
  }
1714
+ },
1715
+ [R.enum.GRAB]: {
1716
+ chipClass: "!text-fm-color-secondary-tuna !bg-[#e3f4f9]",
1717
+ icon: "editor_choice",
1718
+ name: "Grab",
1719
+ chip() {
1720
+ return $(this);
1721
+ }
1715
1722
  }
1716
1723
  };
1717
1724
  function St(a) {
@@ -1722,11 +1729,15 @@ function St(a) {
1722
1729
  };
1723
1730
  return a.type == "VOUCHER" ? B(ie.FmChip, {
1724
1731
  class: t[e],
1725
- label: ce.title(ne.global.t(`connect.campaign.common.status.${e}`)),
1732
+ label: ce.title(
1733
+ ne.global.t(`connect.campaign.common.status.${e}`)
1734
+ ),
1726
1735
  compact: !0
1727
1736
  }) : B(ie.FmChip, {
1728
1737
  class: t[e],
1729
- label: ce.title(ne.global.t(`connect.campaign.common.status.${e}`)),
1738
+ label: ce.title(
1739
+ ne.global.t(`connect.campaign.common.status.${e}`)
1740
+ ),
1730
1741
  compact: !0
1731
1742
  });
1732
1743
  }
@@ -1740,9 +1751,11 @@ function Ot(a) {
1740
1751
  }
1741
1752
  return {
1742
1753
  "connect.campaign.common.campaign_name": e.name,
1743
- "connect.campaign.common.campaign_period": t(e.timeframeOptions),
1754
+ "connect.campaign.common.campaign_period": t(
1755
+ e.timeframeOptions
1756
+ ),
1744
1757
  get "connect.campaign.common.next_schedule_at"() {
1745
- if (e.event.type != "SCHEDULE" || !e.event.rule || !Ne(e.event.rule))
1758
+ if ((e == null ? void 0 : e.event.type) != "SCHEDULE" || !e.event.rule || !Ne(e.event.rule))
1746
1759
  return;
1747
1760
  const s = Ee(
1748
1761
  e.event.rule.rules.g_schedule
@@ -1,14 +1,14 @@
1
1
  import { defineStore as d } from "pinia";
2
- import { reactive as f, onMounted as b, ref as a } from "vue";
3
- import { c } from "./index-yOFbPJEE.js";
4
- import { g as i, S as I, b as g } from "./index-aguYFa7D.js";
2
+ import { reactive as b, onMounted as f, ref as s } from "vue";
3
+ import { c } from "./index-sSxaqeIi.js";
4
+ import { g as i, S as g, b as h } from "./index-CycW9ri6.js";
5
5
  const p = () => {
6
- const e = I.getBusinessId();
6
+ const e = g.getBusinessId();
7
7
  if (!e) throw new Error("Invalid business ID");
8
- return g(`businesses/${e}/campaigns`, {
8
+ return h(`businesses/${e}/campaigns`, {
9
9
  noIdRequired: !0
10
10
  });
11
- }, h = {
11
+ }, I = {
12
12
  async readAll() {
13
13
  return i(await p().get("templates"));
14
14
  },
@@ -17,8 +17,8 @@ const p = () => {
17
17
  await p().get(`templates/${e}`)
18
18
  );
19
19
  }
20
- }, S = d("mf-connect-campaign", () => {
21
- const e = f({
20
+ }, A = d("mf-connect-campaign", () => {
21
+ const e = b({
22
22
  promotion: [],
23
23
  voucher: [],
24
24
  broadcast: [],
@@ -27,12 +27,13 @@ const p = () => {
27
27
  credit: [],
28
28
  token: [],
29
29
  mission: [],
30
+ grab: [],
30
31
  all: []
31
32
  });
32
- b(() => {
33
+ f(() => {
33
34
  console.log("🔧 CampaignStore Installed");
34
35
  });
35
- const t = a([]), r = a([]), n = a([]);
36
+ const t = s([]), r = s([]), n = s([]);
36
37
  async function u(k) {
37
38
  const o = await c.readAll({
38
39
  limit: 1e3,
@@ -40,36 +41,39 @@ const p = () => {
40
41
  sortBy: "_id",
41
42
  descending: !0
42
43
  });
43
- Object.keys(e).forEach((s) => {
44
- e[s] = [];
44
+ Object.keys(e).forEach((a) => {
45
+ e[a] = [];
45
46
  }), e.all = o.resources.filter(
46
- (s) => s.type !== "MEMBERSHIP"
47
+ (a) => a.type !== "MEMBERSHIP"
47
48
  );
48
- for (const s of o.resources)
49
- switch (s.type) {
49
+ for (const a of o.resources)
50
+ switch (a.type) {
50
51
  case "PROMOTION":
51
- e.promotion.push(s);
52
+ e.promotion.push(a);
52
53
  break;
53
54
  case "VOUCHER":
54
- e.voucher.push(s), n.value.push(s);
55
+ e.voucher.push(a), n.value.push(a);
55
56
  break;
56
57
  case "BROADCAST":
57
- ["SCHEDULE", "FEEDBACK"].includes(s.event.type) && e.broadcast.push(s);
58
+ ["SCHEDULE", "FEEDBACK"].includes(a.event.type) && e.broadcast.push(a);
58
59
  break;
59
60
  case "POINT":
60
- e.experience.push(s);
61
+ e.experience.push(a);
61
62
  break;
62
63
  case "COIN":
63
- e.point.push(s);
64
+ e.point.push(a);
64
65
  break;
65
66
  case "CREDIT":
66
- e.credit.push(s);
67
+ e.credit.push(a);
67
68
  break;
68
69
  case "GAME":
69
- e.token.push(s);
70
+ e.token.push(a);
70
71
  break;
71
72
  case "MISSION":
72
- e.mission.push(s);
73
+ e.mission.push(a);
74
+ break;
75
+ case "GRAB":
76
+ e.grab.push(a);
73
77
  break;
74
78
  }
75
79
  }
@@ -77,7 +81,7 @@ const p = () => {
77
81
  r.value = await c.readGroups();
78
82
  }
79
83
  async function m() {
80
- t.value = await h.readAll();
84
+ t.value = await I.readAll();
81
85
  }
82
86
  return {
83
87
  // State
@@ -92,5 +96,5 @@ const p = () => {
92
96
  };
93
97
  });
94
98
  export {
95
- S as u
99
+ A as u
96
100
  };
@@ -1,4 +1,4 @@
1
- import { z as E } from "./index-DQpw4Va-.js";
1
+ import { z as E } from "./index-B79nkieV.js";
2
2
  const I = E.enum([
3
3
  "VOUCHER",
4
4
  "PROMOTION",
@@ -9,7 +9,8 @@ const I = E.enum([
9
9
  "COIN",
10
10
  "REWARD_POOL",
11
11
  "GAME",
12
- "MISSION"
12
+ "MISSION",
13
+ "GRAB"
13
14
  ]), O = E.enum(["TIME_BASED_PROMOTION", "GAME_PROMOTION"]), R = {
14
15
  [O.enum.TIME_BASED_PROMOTION]: "7.7.4",
15
16
  [O.enum.GAME_PROMOTION]: "7.7.4"