@useinsider/guido 3.18.2-beta.f42547e → 3.18.2-beta.ff43aaa

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 (42) hide show
  1. package/dist/components/Guido.vue.js +3 -3
  2. package/dist/components/Guido.vue2.js +30 -30
  3. package/dist/components/organisms/extensions/recommendation/AssignStrategyDrawer.vue.js +11 -13
  4. package/dist/components/organisms/extensions/recommendation/AssignStrategyDrawer.vue2.js +51 -70
  5. package/dist/components/organisms/extensions/recommendation/RemoveStrategyModal.vue2.js +37 -23
  6. package/dist/components/organisms/onboarding/OnboardingWrapper.vue2.js +18 -20
  7. package/dist/composables/useCustomInterfaceAppearance.js +46 -56
  8. package/dist/composables/useHtmlValidator.js +79 -84
  9. package/dist/composables/useRecommendation.js +35 -40
  10. package/dist/composables/useStripo.js +30 -30
  11. package/dist/enums/extensions/recommendationBlock.js +31 -38
  12. package/dist/extensions/Blocks/Recommendation/block.js +39 -43
  13. package/dist/extensions/Blocks/Recommendation/constants/defaultConfig.js +20 -21
  14. package/dist/extensions/Blocks/Recommendation/controls/main/index.js +35 -40
  15. package/dist/extensions/Blocks/Recommendation/controls/main/strategy.js +52 -84
  16. package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +74 -74
  17. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +90 -189
  18. package/dist/extensions/Blocks/Recommendation/utils/nodeConfigWriter.js +16 -26
  19. package/dist/extensions/Blocks/Recommendation/validation/requiredFields.js +12 -21
  20. package/dist/guido.css +1 -1
  21. package/dist/src/enums/extensions/recommendationBlock.d.ts +0 -2
  22. package/dist/src/extensions/Blocks/Recommendation/constants/defaultConfig.d.ts +0 -1
  23. package/dist/src/extensions/Blocks/Recommendation/constants/index.d.ts +1 -1
  24. package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +0 -2
  25. package/dist/src/extensions/Blocks/Recommendation/controls/main/strategy.d.ts +0 -9
  26. package/dist/src/extensions/Blocks/Recommendation/controls/main/utils.d.ts +2 -7
  27. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +0 -75
  28. package/dist/src/extensions/Blocks/Recommendation/validation/requiredFields.d.ts +0 -4
  29. package/dist/src/stores/onboarding.d.ts +0 -377
  30. package/dist/src/utils/liquidDynamicContent.d.ts +20 -0
  31. package/dist/static/styles/components/recommendation-strategy.css.js +4 -34
  32. package/dist/stores/onboarding.js +36 -41
  33. package/dist/utils/genericUtil.js +64 -61
  34. package/dist/utils/liquidDynamicContent.js +15 -0
  35. package/dist/utils/templatePreparation.js +55 -55
  36. package/package.json +1 -1
  37. package/dist/components/organisms/onboarding/RecommendationStrategyOnboarding.vue.js +0 -21
  38. package/dist/components/organisms/onboarding/RecommendationStrategyOnboarding.vue2.js +0 -47
  39. package/dist/extensions/Blocks/Recommendation/utils/strategyCommit.js +0 -24
  40. package/dist/src/components/organisms/onboarding/RecommendationStrategyOnboarding.vue.d.ts +0 -2
  41. package/dist/src/extensions/Blocks/Recommendation/utils/strategyCommit.d.ts +0 -14
  42. package/dist/static/styles/components/skeleton.css.js +0 -23
@@ -1,7 +1,7 @@
1
1
  import { useConfig as V } from "./useConfig.js";
2
2
  import { getIgnoredRecommendationBlockIds as M } from "../config/compiler/utils/recommendationIgnoreUtils.js";
3
3
  import { TemplateTypes as W } from "../enums/defaults.js";
4
- import { DISPLAY_CONDITIONS_REGEX as G, DISPLAY_CONDITIONS_EXCEPTIONS_REGEX as H, CampaignCouldNotBeSavedKey as K, CanNotMakeAnyChangesForRunningKey as P, DATA_ATTRIBUTE_REGEX as X, DYNAMIC_CONTENT_TAG_REGEX as Y, ALLOWED_DYNAMIC_SYSTEM_TOKENS as $, VALID_DYNAMIC_VARIABLE_REGEX as U } from "../enums/html-validator.js";
4
+ import { DISPLAY_CONDITIONS_REGEX as G, DISPLAY_CONDITIONS_EXCEPTIONS_REGEX as H, CampaignCouldNotBeSavedKey as P, CanNotMakeAnyChangesForRunningKey as X, DATA_ATTRIBUTE_REGEX as $, DYNAMIC_CONTENT_TAG_REGEX as K, ALLOWED_DYNAMIC_SYSTEM_TOKENS as Y, VALID_DYNAMIC_VARIABLE_REGEX as U } from "../enums/html-validator.js";
5
5
  import { ToasterTypeOptions as c } from "../enums/toaster.js";
6
6
  import { BLOCK_ROOT_SELECTOR as j } from "../extensions/Blocks/Checkbox/constants/selectors.js";
7
7
  import { itemsBlockDynamicVariables as q } from "../extensions/Blocks/Items/enums/productEnums.js";
@@ -9,58 +9,58 @@ import { BLOCK_ROOT_SELECTOR as z } from "../extensions/Blocks/RadioButton/const
9
9
  import { RECOMMENDATION_VARIABLE_BUILTIN_ATTRIBUTES as Z } from "../extensions/Blocks/Recommendation/constants/selectors.js";
10
10
  import { useRecommendationExtensionStore as J } from "../extensions/Blocks/Recommendation/store/recommendation.js";
11
11
  import { filterToProductAttrValue as Q } from "../extensions/Blocks/Recommendation/utils/compositionKeys.js";
12
- import { STRATEGY_FIELD_KEY as ee, RecommendationAssignStrategyKey as te, RecommendationRequiredFieldsKey as ne } from "../extensions/Blocks/Recommendation/validation/requiredFields.js";
13
- import { useRecommendationStore as se } from "../stores/recommendation.js";
14
- import { base64EncodeWithSpecialChars as re } from "../utils/base64.js";
15
- import { computed as oe } from "vue";
16
- import { useHttp as ie } from "./useHttp.js";
17
- import { useToaster as ae } from "./useToaster.js";
18
- import { useTranslations as ce } from "./useTranslations.js";
19
- const le = /recommendation-id="(\d+)"/g;
20
- function me(s) {
21
- return [...s.matchAll(le)].map((m) => m[1]);
12
+ import { RecommendationRequiredFieldsKey as ee } from "../extensions/Blocks/Recommendation/validation/requiredFields.js";
13
+ import { useRecommendationStore as te } from "../stores/recommendation.js";
14
+ import { base64EncodeWithSpecialChars as ne } from "../utils/base64.js";
15
+ import { computed as se } from "vue";
16
+ import { useHttp as re } from "./useHttp.js";
17
+ import { useToaster as oe } from "./useToaster.js";
18
+ import { useTranslations as ie } from "./useTranslations.js";
19
+ const ae = /recommendation-id="(\d+)"/g;
20
+ function ce(s) {
21
+ return [...s.matchAll(ae)].map((l) => l[1]);
22
22
  }
23
- function ue(s, m) {
24
- return m.some((f) => s.startsWith(`${f}_`));
23
+ function me(s, l) {
24
+ return l.some((f) => s.startsWith(`${f}_`));
25
25
  }
26
- const de = /^(\d+)_\d+_(.+)$/;
27
- function fe(s) {
28
- const m = s.match(de);
29
- return m ? { recoId: m[1], attribute: m[2] } : null;
26
+ const le = /^(\d+)_\d+_(.+)$/;
27
+ function ue(s) {
28
+ const l = s.match(le);
29
+ return l ? { recoId: l[1], attribute: l[2] } : null;
30
30
  }
31
- function ge(s) {
32
- const m = new Set(Z);
31
+ function de(s) {
32
+ const l = new Set(Z);
33
33
  return Object.values(s).forEach((f) => {
34
- m.add(Q(f).toLowerCase());
35
- }), m;
34
+ l.add(Q(f).toLowerCase());
35
+ }), l;
36
36
  }
37
- function pe(s, m, f, o, d) {
37
+ function fe(s, l, f, o, d) {
38
38
  const u = s.match(/{{([a-zA-Z0-9_.\s]*)}}/gm);
39
39
  if (!u)
40
40
  return [];
41
- const p = new Set(m.map((C) => C.toLowerCase())), E = [];
41
+ const g = new Set(l.map((C) => C.toLowerCase())), E = [];
42
42
  return u.forEach((C) => {
43
- const g = C.slice(2, -2).trim().toLowerCase();
44
- if (g !== "" && p.has(g))
43
+ const p = C.slice(2, -2).trim().toLowerCase();
44
+ if (p !== "" && g.has(p))
45
45
  return;
46
- const y = fe(g);
47
- if (y && o.has(y.recoId)) {
48
- if (!d || d.has(y.attribute))
46
+ const h = ue(p);
47
+ if (h && o.has(h.recoId)) {
48
+ if (!d || d.has(h.attribute))
49
49
  return;
50
- E.push(g);
50
+ E.push(p);
51
51
  return;
52
52
  }
53
- ue(g, f) || g.includes(".") || E.push(g);
53
+ me(p, f) || p.includes(".") || E.push(p);
54
54
  }), E;
55
55
  }
56
- function Ee(s) {
57
- return (s.replace(X, "$1").match(Y) ?? []).filter((o) => {
58
- const d = o.slice(2, -2), u = d.indexOf("|"), p = (u === -1 ? d : d.slice(0, u)).trim();
59
- return $.includes(p) ? !1 : U.test(p) ? u !== -1 && d.slice(u + 1).trim() === "" : !0;
56
+ function pe(s) {
57
+ return (s.replace($, "$1").match(K) ?? []).filter((o) => {
58
+ const d = o.slice(2, -2), u = d.indexOf("|"), g = (u === -1 ? d : d.slice(0, u)).trim();
59
+ return Y.includes(g) ? !1 : U.test(g) ? u !== -1 && d.slice(u + 1).trim() === "" : !0;
60
60
  });
61
61
  }
62
- const ke = () => {
63
- const { showToaster: s } = ae(), { post: m } = ie(), { config: f } = V(), o = ce(), d = se(), u = J(), p = oe(
62
+ const De = () => {
63
+ const { showToaster: s } = oe(), { post: l } = re(), { config: f } = V(), o = ie(), d = te(), u = J(), g = se(
64
64
  () => {
65
65
  var e, t;
66
66
  return ((t = (e = f.value) == null ? void 0 : e.partner) == null ? void 0 : t.messageType) === W.transactional;
@@ -73,27 +73,27 @@ const ke = () => {
73
73
  } catch {
74
74
  return null;
75
75
  }
76
- return ge(u.filterList);
76
+ return de(u.filterList);
77
77
  }, C = async (e) => {
78
- const n = await m(
78
+ const n = await l(
79
79
  "/newsletter/template-library/check-template-html-body",
80
- { html: re(e) }
80
+ { html: ne(e) }
81
81
  ), { status: r, message: a } = n.data;
82
82
  return r || s({
83
83
  type: c.Error,
84
84
  message: r === void 0 ? a : o("newsletter.invalid-url-link-for-toaster")
85
- }), o(K), a === o(P) && s({
85
+ }), o(P), a === o(X) && s({
86
86
  type: c.Error,
87
87
  message: o("newsletter.already-in-progress")
88
88
  }), r;
89
- }, g = (e) => !["if", "endif", "else", "elif", "now"].includes(e.toLowerCase()), y = (e) => ["if", "endif"].includes(e.toLowerCase()), I = (e, t) => {
89
+ }, p = (e) => !["if", "endif", "else", "elif", "now"].includes(e.toLowerCase()), h = (e) => ["if", "endif"].includes(e.toLowerCase()), T = (e, t) => {
90
90
  const n = e.match(/({%(.*?)%})/g);
91
91
  let r = !0;
92
- return n !== null && !p.value && n.forEach((a) => {
92
+ return n !== null && !g.value && n.forEach((a) => {
93
93
  const i = a.slice(2, -2).trim().match(/(".*?"|[^"\s]+)(?=\s*|\s*$)/g);
94
94
  if (i && i.length > 0) {
95
- const [l] = i;
96
- g(l) && !t.includes(l) && (s({
95
+ const [m] = i;
96
+ p(m) && !t.includes(m) && (s({
97
97
  type: c.Warning,
98
98
  message: o("custom-fields.invalid-custom-fields")
99
99
  }), r = !1);
@@ -101,11 +101,11 @@ const ke = () => {
101
101
  }), r;
102
102
  }, R = async (e, t, n) => {
103
103
  const r = n ? await C(e) : !0;
104
- return I(e, t) && r;
105
- }, A = (e) => e.length > 0 ? !0 : (s({
104
+ return T(e, t) && r;
105
+ }, b = (e) => e.length > 0 ? !0 : (s({
106
106
  type: c.Warning,
107
107
  message: o("newsletter.html-content-is-empty")
108
- }), !1), _ = (e) => {
108
+ }), !1), A = (e) => {
109
109
  const t = (e.match(/{/gm) || []).length, n = (e.match(/}/gm) || []).length;
110
110
  return t > n && s({
111
111
  type: c.Warning,
@@ -114,26 +114,26 @@ const ke = () => {
114
114
  type: c.Warning,
115
115
  message: o("custom-fields.missing-opening-braces")
116
116
  }), t === n;
117
- }, b = (e) => {
118
- const t = Ee(e).length === 0;
117
+ }, _ = (e) => {
118
+ const t = pe(e).length === 0;
119
119
  return t || s({
120
120
  type: c.Warning,
121
121
  message: o("custom-fields.invalid-custom-fields")
122
122
  }), t;
123
123
  }, O = (e, t, n, r) => {
124
- if (p.value)
124
+ if (g.value)
125
125
  return !0;
126
- const a = pe(
126
+ const a = fe(
127
127
  e,
128
128
  t,
129
- me(e),
129
+ ce(e),
130
130
  n,
131
131
  r
132
132
  );
133
133
  if (a.length > 0) {
134
134
  const i = `
135
135
  <ul>
136
- ${a.map((l) => `<li>${l}</li>`).join("")}
136
+ ${a.map((m) => `<li>${m}</li>`).join("")}
137
137
  </ul>
138
138
  `;
139
139
  return s({
@@ -146,22 +146,22 @@ const ke = () => {
146
146
  const t = e.match(/{%(.*?)%}/g), n = [];
147
147
  let r = !0;
148
148
  if (t && t.forEach((a) => {
149
- const i = a.match(G), l = a.match(H), v = (i == null ? void 0 : i.join("")) || "";
150
- (!i || a !== v) && !l && (s({
149
+ const i = a.match(G), m = a.match(H), v = (i == null ? void 0 : i.join("")) || "";
150
+ (!i || a !== v) && !m && (s({
151
151
  type: c.Error,
152
152
  message: o("newsletter.display-conditions-invalid-syntax")
153
- }), r = !1), i && i.forEach((h) => {
154
- h.trim() === "=" && (s({
153
+ }), r = !1), i && i.forEach((y) => {
154
+ y.trim() === "=" && (s({
155
155
  type: c.Error,
156
156
  message: o("custom-conditions.wrong-equality-operators")
157
157
  }), r = !1);
158
- const S = h.match(/^[a-zA-Z]*$/g);
159
- S && S.forEach((T) => {
160
- y(T) && n.push(T);
158
+ const I = y.match(/^[a-zA-Z]*$/g);
159
+ I && I.forEach((S) => {
160
+ h(S) && n.push(S);
161
161
  });
162
162
  });
163
163
  }), n.length) {
164
- const a = n.filter((l) => l === "if"), i = n.filter((l) => l === "endif");
164
+ const a = n.filter((m) => m === "if"), i = n.filter((m) => m === "endif");
165
165
  a.length !== i.length && (s({
166
166
  type: c.Error,
167
167
  message: o("custom-conditions.missing-if-endif-tag")
@@ -177,28 +177,23 @@ const ke = () => {
177
177
  }, N = (e) => (e.match(/({%(.*?)%})/g) || []).filter((n) => n.includes("if")).map((n) => (n.match(/{{.*}}/gm) || []).length).reduce((n, r) => n + r, 0) > 0 ? (s({
178
178
  type: c.Warning,
179
179
  message: o("custom-conditions.no-braces-inside-if-tag")
180
- }), !1) : !0, B = () => {
181
- if (!u.hasInvalidBlock())
182
- return !0;
183
- const e = u.invalidBlockFields().includes(ee);
184
- return s({
185
- type: e ? c.Warning : c.Error,
186
- message: o(e ? te : ne)
187
- }), !1;
188
- }, x = () => d.recommendationConfigs && Object.values(d.recommendationConfigs).find((t) => t.filters.find((n) => n.value === "")) !== void 0 ? (s({
180
+ }), !1) : !0, B = () => u.hasInvalidBlock() ? (s({
181
+ type: c.Error,
182
+ message: o(ee)
183
+ }), !1) : !0, x = () => d.recommendationConfigs && Object.values(d.recommendationConfigs).find((t) => t.filters.find((n) => n.value === "")) !== void 0 ? (s({
189
184
  type: c.Error,
190
185
  message: o("newsletter.fill-all-necessary-fields")
191
- }), !1) : !0, F = (e) => {
186
+ }), !1) : !0, D = (e) => {
192
187
  const t = /src="[^"]*\.(svg|pst)"/gm;
193
188
  return e.match(t) === null ? !0 : (s({
194
189
  type: c.Error,
195
190
  message: o("newsletter.invalid-image-type")
196
191
  }), !1);
197
- }, D = (e) => {
192
+ }, F = (e) => {
198
193
  const r = new DOMParser().parseFromString(e, "text/html").querySelectorAll(j);
199
194
  return Array.from(r).find((i) => {
200
- var l;
201
- return !((l = i.id) != null && l.trim());
195
+ var m;
196
+ return !((m = i.id) != null && m.trim());
202
197
  }) ? (s({
203
198
  type: c.Error,
204
199
  message: o("unsubscribe-templates.select-checkbox-groups")
@@ -206,26 +201,26 @@ const ke = () => {
206
201
  }, k = (e) => {
207
202
  const r = new DOMParser().parseFromString(e, "text/html").querySelectorAll(z);
208
203
  return Array.from(r).find((i) => {
209
- var l;
210
- return !((l = i.id) != null && l.trim());
204
+ var m;
205
+ return !((m = i.id) != null && m.trim());
211
206
  }) ? (s({
212
207
  type: c.Error,
213
208
  message: o("unsubscribe-templates.select-radio-button-groups")
214
209
  }), !1) : !0;
215
210
  };
216
211
  return { validateHtml: async (e, t, n = !1) => {
217
- var v, h;
212
+ var v, y;
218
213
  const r = [
219
- ...t.map((S) => S.value),
214
+ ...t.map((I) => I.value),
220
215
  ...q,
221
- ...((h = (v = f.value) == null ? void 0 : v.template) == null ? void 0 : h.customFieldAttributes) ?? []
216
+ ...((y = (v = f.value) == null ? void 0 : v.template) == null ? void 0 : y.customFieldAttributes) ?? []
222
217
  ], a = M(e), i = await E(a);
223
- return await R(e, r, n) && A(e) && _(e) && b(e) && O(e, r, a, i) && w(e) && L(e) && N(e) && B() && x() && F(e) && D(e) && k(e);
218
+ return await R(e, r, n) && b(e) && A(e) && _(e) && O(e, r, a, i) && w(e) && L(e) && N(e) && B() && x() && D(e) && F(e) && k(e);
224
219
  } };
225
220
  };
226
221
  export {
227
- ge as buildPartnerAttributeNameSet,
228
- pe as findInvalidCustomFields,
229
- fe as parseRecommendationVariable,
230
- ke as useHtmlValidator
222
+ de as buildPartnerAttributeNameSet,
223
+ fe as findInvalidCustomFields,
224
+ ue as parseRecommendationVariable,
225
+ De as useHtmlValidator
231
226
  };
@@ -1,23 +1,23 @@
1
1
  import { getRecommendationFeedSourceMaps as y, URLS as I } from "../enums/extensions/recommendationBlock.js";
2
2
  import { MinDeviceViewport as C, DefaultPadding as R } from "../enums/recommendation.js";
3
- import { useRecommendationExtensionStore as g } from "../extensions/Blocks/Recommendation/store/recommendation.js";
3
+ import { useRecommendationExtensionStore as l } from "../extensions/Blocks/Recommendation/store/recommendation.js";
4
4
  import { generateCompleteFilterQuery as b } from "../extensions/Blocks/Recommendation/utils/filterUtil.js";
5
5
  import { getPartnerRecommendationParams as h } from "../extensions/Blocks/Recommendation/utils/partnerCustomizations.js";
6
6
  import { sanitizeProductIds as x } from "../extensions/Blocks/Recommendation/utils/productIds.js";
7
7
  import { useConfigStore as P } from "../stores/config.js";
8
8
  const B = () => ({
9
9
  calculateCardWidth: ({
10
- mobileLeftPadding: s,
10
+ mobileLeftPadding: i,
11
11
  mobileRightPadding: c,
12
- cardsInRow: o,
13
- unresponsive: a
12
+ cardsInRow: s,
13
+ unresponsive: n
14
14
  }) => {
15
- const i = a ? o : 1, e = s + c + (i - 1) * R;
16
- return (C - e) / i;
15
+ const o = n ? s : 1, e = i + c + (o - 1) * R;
16
+ return (C - e) / o;
17
17
  },
18
- getRecommendationCampaignData: (s) => {
19
- const c = g(), o = Number(s), a = c.blockStates[o];
20
- if (!a)
18
+ getRecommendationCampaignData: (i) => {
19
+ const c = l(), s = Number(i), n = c.blockStates[s];
20
+ if (!n)
21
21
  return {
22
22
  textTrimming: !1,
23
23
  orientation: "vertical",
@@ -30,59 +30,54 @@ const B = () => ({
30
30
  discountBeforeTextValue: "",
31
31
  discountAfterTextValue: ""
32
32
  };
33
- const { recommendationConfigs: i } = a, e = i.orientation === "grid" ? "vertical" : "horizontal";
33
+ const { recommendationConfigs: o } = n, e = o.orientation === "grid" ? "vertical" : "horizontal";
34
34
  return {
35
- textTrimming: i.textTrimming,
35
+ textTrimming: o.textTrimming,
36
36
  orientation: e,
37
37
  mobileLeftPadding: 0,
38
38
  mobileRightPadding: 0,
39
- cardsInRow: i.cardsInRow,
40
- unresponsive: i.unresponsive,
39
+ cardsInRow: o.cardsInRow,
40
+ unresponsive: o.unresponsive,
41
41
  priceBeforeTextValue: "",
42
42
  priceAfterTextValue: "",
43
43
  discountBeforeTextValue: "",
44
44
  discountAfterTextValue: ""
45
45
  };
46
46
  },
47
- buildCampaignUrl: (s, c) => {
48
- var l;
49
- const o = g(), a = P(), i = Number(s);
47
+ buildCampaignUrl: (i, c) => {
48
+ var m;
49
+ const s = l(), n = P(), o = Number(i);
50
50
  let e;
51
51
  if (c)
52
52
  e = c;
53
53
  else {
54
- const r = o.blockStates[i];
55
- if (!r)
54
+ const a = s.blockStates[o];
55
+ if (!a)
56
56
  return "";
57
- const { recommendationConfigs: n } = r;
57
+ const { recommendationConfigs: r } = a;
58
58
  e = {
59
- strategy: n.strategy,
60
- strategyId: n.strategyId,
61
- language: n.language,
62
- currencyCode: n.currencySettings.value,
63
- size: n.size,
64
- productIds: n.productIds,
65
- filters: n.filters,
66
- shuffleProducts: n.shuffleProducts
59
+ strategy: r.strategy,
60
+ strategyId: r.strategyId,
61
+ language: r.language,
62
+ currencyCode: r.currencySettings.value,
63
+ size: r.size,
64
+ productIds: r.productIds,
65
+ filters: r.filters,
66
+ shuffleProducts: r.shuffleProducts
67
67
  };
68
68
  }
69
- if (e.strategyId && a.isFeatureEnabled("reusableRecommendationStrategy"))
70
- return o.recommendationCampaignUrls[s] = {
69
+ if (e.strategyId && n.isFeatureEnabled("reusableRecommendationStrategy"))
70
+ return s.recommendationCampaignUrls[i] = {
71
71
  strategyId: e.strategyId,
72
72
  locale: e.language,
73
73
  currency: e.currencyCode
74
74
  }, "";
75
- const d = ((l = y().find((r) => r.key === e.strategy)) == null ? void 0 : l.path) || "";
76
- if (!d) {
77
- const r = { ...o.recommendationCampaignUrls };
78
- return delete r[s], o.recommendationCampaignUrls = r, "";
79
- }
80
- const t = new URLSearchParams();
81
- t.set("locale", e.language), t.set("currency", e.currencyCode), t.set("partnerName", a.partnerName), t.set("size", e.size), t.set("details", "true"), t.set("campaignId", a.variationId), e.strategy === "manualMerchandising" ? t.set("productId", x(e.productIds)) : e.strategy === "similarViewed" && t.set("productId", "{itemId}"), e.strategy === "userBased" && t.set("userId", "{user_id}");
82
- const f = e.filters.filter((r) => r.isValid), m = b(f);
83
- m && t.set("filter", m), e.shuffleProducts && t.set("shuffle", "true"), Object.entries(h(a.partnerName, e.strategy)).forEach(([r, n]) => t.set(r, n));
84
- const p = decodeURIComponent(t.toString()), u = `${I.RECOMMENDATION_API_URL}/v2/${d}?${p}`;
85
- return o.recommendationCampaignUrls[s] = u, u;
75
+ const g = ((m = y().find((a) => a.key === e.strategy)) == null ? void 0 : m.path) || "", t = new URLSearchParams();
76
+ t.set("locale", e.language), t.set("currency", e.currencyCode), t.set("partnerName", n.partnerName), t.set("size", e.size), t.set("details", "true"), t.set("campaignId", n.variationId), e.strategy === "manualMerchandising" ? t.set("productId", x(e.productIds)) : e.strategy === "similarViewed" && t.set("productId", "{itemId}"), e.strategy === "userBased" && t.set("userId", "{user_id}");
77
+ const f = e.filters.filter((a) => a.isValid), d = b(f);
78
+ d && t.set("filter", d), e.shuffleProducts && t.set("shuffle", "true"), Object.entries(h(n.partnerName, e.strategy)).forEach(([a, r]) => t.set(a, r));
79
+ const p = decodeURIComponent(t.toString()), u = `${I.RECOMMENDATION_API_URL}/v2/${g}?${p}`;
80
+ return s.recommendationCampaignUrls[i] = u, u;
86
81
  }
87
82
  });
88
83
  export {
@@ -1,23 +1,23 @@
1
- import { useActionsApi as O } from "./useActionsApi.js";
2
- import { useBlocksConfig as q } from "./useBlocksConfig.js";
3
- import { useConfig as H } from "./useConfig.js";
4
- import { useCustomInterfaceAppearance as w } from "./useCustomInterfaceAppearance.js";
1
+ import { useActionsApi as L } from "./useActionsApi.js";
2
+ import { useBlocksConfig as O } from "./useBlocksConfig.js";
3
+ import { useConfig as q } from "./useConfig.js";
4
+ import { useCustomInterfaceAppearance as H } from "./useCustomInterfaceAppearance.js";
5
5
  import { useFullStoryBridge as N } from "./useFullStoryBridge.js";
6
6
  import { useModuleRepair as j } from "./useModuleRepair.js";
7
7
  import { useStripoEventHandler as z } from "./useStripoEventHandler.js";
8
8
  import { useStripoNotifications as $ } from "./useStripoNotifications.js";
9
9
  import { useToaster as G } from "./useToaster.js";
10
10
  import { localePatch as J } from "../config/i18n/index.js";
11
- import { en as b } from "../config/i18n/en/index.js";
11
+ import { en as w } from "../config/i18n/en/index.js";
12
12
  import { ToasterTypeOptions as X } from "../enums/toaster.js";
13
13
  import { useStripoApi as K } from "../services/stripoApi.js";
14
14
  import Q from "../static/styles/customEditorStyle.css.js";
15
- import { useEditorStore as k } from "../stores/editor.js";
15
+ import { useEditorStore as b } from "../stores/editor.js";
16
16
  import { buildMergeTagEntries as W, flattenDynamicContentList as Y } from "../utils/genericUtil.js";
17
17
  import Z from "../package.json.js";
18
18
  let n = null;
19
- const he = () => {
20
- const { features: c, template: u, isFeatureEnabled: m } = H(), { handleError: p, showToaster: B } = G(), { getToken: M, getCustomFonts: T, getSyncModulesStatus: v } = K(), { handleEvent: F } = z(), { handleModuleAdd: A } = j(), { getStripoBlocksConfig: V } = q(), { getStripoNotifications: _ } = $(), f = () => n || (n = new Promise((i, s) => {
19
+ const Ce = () => {
20
+ const { features: c, template: u, isFeatureEnabled: m } = q(), { handleError: p, showToaster: k } = G(), { getToken: B, getCustomFonts: M, getSyncModulesStatus: T } = K(), { handleEvent: v } = z(), { handleModuleAdd: F } = j(), { getStripoBlocksConfig: A } = O(), { getStripoNotifications: V } = $(), f = () => n || (n = new Promise((i, s) => {
21
21
  var d;
22
22
  if (document.getElementById("UiEditorScript")) {
23
23
  i();
@@ -29,16 +29,16 @@ const he = () => {
29
29
  }, document.body.appendChild(e);
30
30
  }), n.catch(() => {
31
31
  n = null;
32
- }), n), D = async (i, s, o, a = [], r = !1) => {
32
+ }), n), _ = async (i, s, o, a = [], r = !1) => {
33
33
  var y, E, h, C;
34
- const e = k(), { html: d, css: R } = i, { baseBlocks: g, extensions: P } = await V(), S = ((y = c.value) == null ? void 0 : y.displayConditions) ?? !0, U = ((E = c.value) == null ? void 0 : E.modulesDisabled) ?? !1, I = !!d || (((h = u.value) == null ? void 0 : h.forceRecreate) ?? !1), x = "https://email-static.useinsider.com https://edge.fullstory.com https://rs.fullstory.com";
35
- w().importCss(), await window.UIEditor.initEditor(
34
+ const e = b(), { html: d, css: D } = i, { baseBlocks: g, extensions: R } = await A(), S = ((y = c.value) == null ? void 0 : y.displayConditions) ?? !0, P = ((E = c.value) == null ? void 0 : E.modulesDisabled) ?? !1, U = !!d || (((h = u.value) == null ? void 0 : h.forceRecreate) ?? !1);
35
+ await window.UIEditor.initEditor(
36
36
  document.querySelector("#guido-editor"),
37
37
  {
38
38
  metadata: s,
39
39
  html: d,
40
- css: R,
41
- forceRecreate: I,
40
+ css: D,
41
+ forceRecreate: U,
42
42
  locale: "en",
43
43
  undoButtonSelector: "#guido__undo-button",
44
44
  redoButtonSelector: "#guido__redo-button",
@@ -52,7 +52,7 @@ const he = () => {
52
52
  conditionsEnabled: S,
53
53
  customConditionsEnabled: S,
54
54
  enableXSSSecurity: !0,
55
- modulesDisabled: U,
55
+ modulesDisabled: P,
56
56
  syncModulesEnabled: r,
57
57
  messageSettingsEnabled: !0,
58
58
  displayGmailAnnotations: !0,
@@ -62,7 +62,7 @@ const he = () => {
62
62
  displayUTM: !1,
63
63
  selectElementAfterDrop: !0,
64
64
  sameFontSizeForOutlook: !0,
65
- allowedScriptSourceDomains: x,
65
+ allowedScriptSourceDomains: "https://email-static.useinsider.com https://edge.fullstory.com https://rs.fullstory.com",
66
66
  ...g ? { baseBlocks: g } : {},
67
67
  editorFonts: {
68
68
  showDefaultStandardFonts: !0,
@@ -80,7 +80,7 @@ const he = () => {
80
80
  ],
81
81
  async onTokenRefreshRequest(t) {
82
82
  try {
83
- const l = await M();
83
+ const l = await B();
84
84
  t(l);
85
85
  } catch (l) {
86
86
  p(l, "Failed to refresh token");
@@ -88,8 +88,8 @@ const he = () => {
88
88
  },
89
89
  onTemplateLoaded() {
90
90
  try {
91
- const { activateCustomViewStyles: t, updateTimerInClonedTemplate: l } = O(), { injectFullStory: L } = N();
92
- w().importCss(), t(), L(), l(), o.onReady(), e.isStripoInitialized = !0, e.loadingStatus = !1, setTimeout(() => {
91
+ const { importCss: t } = H(), { activateCustomViewStyles: l, updateTimerInClonedTemplate: I } = L(), { injectFullStory: x } = N();
92
+ t(), l(), x(), I(), o.onReady(), e.isStripoInitialized = !0, e.loadingStatus = !1, setTimeout(() => {
93
93
  e.hasChanges = !1;
94
94
  }, 1e3);
95
95
  } catch (t) {
@@ -108,34 +108,34 @@ const he = () => {
108
108
  onDataChanged() {
109
109
  e.hasChanges = !0;
110
110
  },
111
- onEvent: F,
112
- onModuleAdd: A,
113
- notifications: _(),
111
+ onEvent: v,
112
+ onModuleAdd: F,
113
+ notifications: V(),
114
114
  ignoreClickOutsideSelectors: [
115
115
  "#guido-dynamic-content-modal",
116
116
  ".in-on-board-wrapper",
117
117
  ".in-drawer__container"
118
118
  ],
119
- extensions: P,
119
+ extensions: R,
120
120
  localePatch: J
121
121
  }
122
122
  );
123
123
  };
124
124
  return { initPlugin: async (i, s, o) => {
125
- const a = k();
125
+ const a = b();
126
126
  try {
127
127
  await f();
128
128
  const [r, e] = await Promise.all([
129
- T(),
130
- v()
129
+ M(),
130
+ T()
131
131
  ]);
132
- a.syncModulesEnabled = e, await D(i, s, o, r, e);
132
+ a.syncModulesEnabled = e, await _(i, s, o, r, e);
133
133
  } catch {
134
- a.loadingStatus = !1, B({
134
+ a.loadingStatus = !1, k({
135
135
  type: X.Error,
136
- message: b["An error has occurred. Please report the error code to support."],
136
+ message: w["An error has occurred. Please report the error code to support."],
137
137
  actionButton: {
138
- text: b["Reload page"],
138
+ text: w["Reload page"],
139
139
  onClick: () => window.location.reload()
140
140
  }
141
141
  });
@@ -146,5 +146,5 @@ const he = () => {
146
146
  } };
147
147
  };
148
148
  export {
149
- he as useStripo
149
+ Ce as useStripo
150
150
  };