@useinsider/guido 3.19.0-beta.f02eaa1 → 3.19.0-beta.f66e9de

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 (56) hide show
  1. package/dist/components/Guido.vue.js +8 -8
  2. package/dist/components/Guido.vue2.js +44 -43
  3. package/dist/components/organisms/base/AuthErrorModal.vue.js +18 -0
  4. package/dist/components/organisms/base/AuthErrorModal.vue2.js +42 -0
  5. package/dist/components/organisms/base/Toaster.vue2.js +13 -12
  6. package/dist/components/organisms/extensions/recommendation/AssignStrategyDrawer.vue.js +9 -7
  7. package/dist/components/organisms/extensions/recommendation/AssignStrategyDrawer.vue2.js +69 -52
  8. package/dist/components/organisms/extensions/recommendation/RemoveStrategyModal.vue2.js +28 -44
  9. package/dist/components/organisms/header/EditorActions.vue.js +4 -4
  10. package/dist/components/organisms/header/EditorActions.vue2.js +23 -25
  11. package/dist/components/organisms/onboarding/RecommendationStrategyOnboarding.vue.js +3 -3
  12. package/dist/components/organisms/onboarding/RecommendationStrategyOnboarding.vue2.js +21 -20
  13. package/dist/composables/useActionsApi.js +52 -47
  14. package/dist/composables/useAuthError.js +54 -0
  15. package/dist/composables/useCodeEditorApi.js +23 -9
  16. package/dist/composables/useCustomInterfaceAppearance.js +61 -51
  17. package/dist/composables/useHtmlValidator.js +87 -82
  18. package/dist/composables/useHttp.js +54 -44
  19. package/dist/composables/useRecommendation.js +40 -35
  20. package/dist/composables/useStripo.js +30 -30
  21. package/dist/composables/useToaster.js +14 -20
  22. package/dist/composables/useTranslations.js +3 -2
  23. package/dist/composables/useVersionHistoryApi.js +33 -24
  24. package/dist/enums/extensions/recommendationBlock.js +32 -25
  25. package/dist/extensions/Blocks/Recommendation/block.js +61 -42
  26. package/dist/extensions/Blocks/Recommendation/constants/defaultConfig.js +21 -20
  27. package/dist/extensions/Blocks/Recommendation/controls/main/index.js +63 -58
  28. package/dist/extensions/Blocks/Recommendation/controls/main/strategy.js +109 -78
  29. package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +96 -97
  30. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +209 -92
  31. package/dist/extensions/Blocks/Recommendation/utils/legacyStrategyMigration.js +1 -1
  32. package/dist/extensions/Blocks/Recommendation/utils/nodeConfigWriter.js +26 -16
  33. package/dist/extensions/Blocks/Recommendation/utils/strategyCommit.js +24 -0
  34. package/dist/extensions/Blocks/Recommendation/validation/requiredFields.js +21 -12
  35. package/dist/guido.css +1 -1
  36. package/dist/src/components/organisms/base/AuthErrorModal.vue.d.ts +2 -0
  37. package/dist/src/components/wrappers/WpModal.vue.d.ts +1 -1
  38. package/dist/src/composables/useAuthError.d.ts +13 -0
  39. package/dist/src/enums/extensions/recommendationBlock.d.ts +2 -0
  40. package/dist/src/extensions/Blocks/Recommendation/block.d.ts +10 -0
  41. package/dist/src/extensions/Blocks/Recommendation/constants/defaultConfig.d.ts +1 -0
  42. package/dist/src/extensions/Blocks/Recommendation/constants/index.d.ts +1 -1
  43. package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +2 -0
  44. package/dist/src/extensions/Blocks/Recommendation/controls/main/strategy.d.ts +8 -0
  45. package/dist/src/extensions/Blocks/Recommendation/controls/main/utils.d.ts +7 -6
  46. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +92 -0
  47. package/dist/src/extensions/Blocks/Recommendation/utils/legacyStrategyMigration.d.ts +1 -1
  48. package/dist/src/extensions/Blocks/Recommendation/utils/strategyCommit.d.ts +14 -0
  49. package/dist/src/extensions/Blocks/Recommendation/validation/requiredFields.d.ts +4 -0
  50. package/dist/src/utils/stripoEditorApi.d.ts +4 -0
  51. package/dist/static/styles/components/recommendation-strategy.css.js +34 -4
  52. package/dist/static/styles/components/skeleton.css.js +23 -0
  53. package/dist/stores/unsubscribe.js +3 -3
  54. package/dist/utils/stripoEditorApi.js +11 -0
  55. package/dist/utils/templatePreparation.js +55 -55
  56. package/package.json +2 -1
@@ -87,21 +87,21 @@ function j(e, t = {}) {
87
87
  documentModifier: o,
88
88
  products: r,
89
89
  layout: s,
90
- composition: i
90
+ composition: l
91
91
  } = e;
92
92
  if (!n || !("querySelector" in n))
93
93
  return !1;
94
- const u = s ?? P(n), l = y.getConfig(n);
95
- if (u === "list" || !l.mobileLayoutEnabled)
94
+ const u = s ?? P(n), i = y.getConfig(n);
95
+ if (u === "list" || !i.mobileLayoutEnabled)
96
96
  return te({ currentNode: n, documentModifier: o });
97
- const c = A(), f = $(r, c.recommendationProducts), a = i ?? U(n, c.filterList), p = `<td><table class="ins-recommendation-product-container ins-recommendation-mobile-container" width="100%" cellpadding="0" cellspacing="0" border="0">${k(f, u, {
98
- productsPerRow: l.mobileCardsInRow,
99
- composition: a,
97
+ const c = A(), a = $(r, c.recommendationProducts), f = l ?? U(n, c.filterList), p = `<td><table class="ins-recommendation-product-container ins-recommendation-mobile-container" width="100%" cellpadding="0" cellspacing="0" border="0">${k(a, u, {
98
+ productsPerRow: i.mobileCardsInRow,
99
+ composition: f,
100
100
  filterList: c.filterList,
101
- priceInline: !l.priceMovedToNextLine,
101
+ priceInline: !i.priceMovedToNextLine,
102
102
  // Match the initial render's gutter so a regeneration never changes block height (SD-143023, #386).
103
- cellPadding: v(l.mobileColumnSpacing),
104
- rowSpacingPx: l.mobileRowSpacing,
103
+ cellPadding: v(i.mobileColumnSpacing),
104
+ rowSpacingPx: i.mobileRowSpacing,
105
105
  ...t
106
106
  })}</table></td>`, E = n.querySelector(w);
107
107
  return E ? (o.modifyHtml(E).setInnerHtml(p), !0) : (re(n, o, p), !1);
@@ -115,17 +115,17 @@ function ie(e, t = {}) {
115
115
  documentModifier: o,
116
116
  products: r,
117
117
  layout: s,
118
- composition: i
118
+ composition: l
119
119
  } = e;
120
120
  if (!n || !("querySelector" in n))
121
121
  return !1;
122
122
  const u = n.querySelector(L) ?? n.querySelector(W);
123
123
  if (!u)
124
124
  return !1;
125
- const l = A(), c = $(r, l.recommendationProducts), { cardsInRow: f } = y.getConfig(n), a = i ?? U(n, l.filterList), d = s ?? P(n), p = y.getConfig(n), E = k(c, d, {
126
- productsPerRow: f,
127
- composition: a,
128
- filterList: l.filterList,
125
+ const i = A(), c = $(r, i.recommendationProducts), { cardsInRow: a } = y.getConfig(n), f = l ?? U(n, i.filterList), d = s ?? P(n), p = y.getConfig(n), E = k(c, d, {
126
+ productsPerRow: a,
127
+ composition: f,
128
+ filterList: i.filterList,
129
129
  priceInline: !p.priceMovedToNextLine,
130
130
  // Match the initial render's gutter so a regeneration never changes block height (SD-143023, #386).
131
131
  cellPadding: v(p.columnSpacing),
@@ -151,14 +151,14 @@ function ce(e, t, n) {
151
151
  const r = o.getAttribute(R);
152
152
  if (!r)
153
153
  return !1;
154
- const s = A(), i = r.split(",").filter(Boolean), u = D(i, o, s.filterList), l = [], c = u.join(",") !== i.join(",");
155
- c && l.push([R, u.join(",")]);
156
- const f = le(
154
+ const s = A(), l = r.split(",").filter(Boolean), u = D(l, o, s.filterList), i = [], c = u.join(",") !== l.join(",");
155
+ c && i.push([R, u.join(",")]);
156
+ const a = le(
157
157
  o.getAttribute(q)
158
- ), a = f && z(f, o, s.filterList);
159
- if (f && a && a.join(",") !== f.join(",") && l.push([q, JSON.stringify(a)]), l.length === 0)
158
+ ), f = a && z(a, o, s.filterList);
159
+ if (a && f && f.join(",") !== a.join(",") && i.push([q, JSON.stringify(f)]), i.length === 0)
160
160
  return !1;
161
- if (l.forEach(([d, p]) => {
161
+ if (i.forEach(([d, p]) => {
162
162
  t.modifyHtml(o).setAttribute(d, p);
163
163
  }), c && y.hasConfig(e)) {
164
164
  const d = {
@@ -176,21 +176,20 @@ function Te(e) {
176
176
  afterRegenerate: o,
177
177
  products: r,
178
178
  layout: s,
179
- composition: i,
180
- skipStylePreservation: u,
181
- forceApply: l = !1
179
+ composition: l,
180
+ skipStylePreservation: u
182
181
  } = e;
183
182
  if (!t)
184
- return;
185
- const c = u ? {} : x(t), f = {
183
+ return !1;
184
+ const i = u ? {} : x(t), c = {
186
185
  currentNode: t,
187
186
  documentModifier: n,
188
187
  products: r,
189
188
  layout: s,
190
- composition: i
189
+ composition: l
191
190
  };
192
- let a = ie(f, c);
193
- a = j(f, c) || a, a && ce(t, n, i), (a || l) && n.apply(new S("Regenerate products with styles")), o == null || o();
191
+ let a = ie(c, i);
192
+ return a = j(c, i) || a, a && (ce(t, n, l), n.apply(new S("Regenerate products with styles"))), o == null || o(), a;
194
193
  }
195
194
  function Re(e, t) {
196
195
  return e.length === t ? e : e.length > t ? e.slice(0, t) : [...e, ...H(t - e.length)];
@@ -214,28 +213,28 @@ function T(e, t = "price") {
214
213
  });
215
214
  }
216
215
  function ue(e) {
217
- var s, i;
218
- const t = F(), n = ((s = e.original_price) == null ? void 0 : s[t.code]) ?? Object.values(e.original_price ?? {})[0] ?? 0, o = ((i = e.price) == null ? void 0 : i[t.code]) ?? Object.values(e.price ?? {})[0] ?? 0, r = n > 0 ? Math.round((n - o) / n * 100) : 0;
216
+ var s, l;
217
+ const t = F(), n = ((s = e.original_price) == null ? void 0 : s[t.code]) ?? Object.values(e.original_price ?? {})[0] ?? 0, o = ((l = e.price) == null ? void 0 : l[t.code]) ?? Object.values(e.price ?? {})[0] ?? 0, r = n > 0 ? Math.round((n - o) / n * 100) : 0;
219
218
  return r > 0 ? `-${r}%` : "0%";
220
219
  }
221
220
  function K(e) {
222
- const { documentModifier: t, product: n, priceEl: o, oldPriceEl: r, omnibusPriceEl: s, omnibusDiscountEl: i } = e;
221
+ const { documentModifier: t, product: n, priceEl: o, oldPriceEl: r, omnibusPriceEl: s, omnibusDiscountEl: l } = e;
223
222
  let u = !1;
224
223
  if (o && "querySelector" in o) {
225
- const l = o.querySelector("strong") ?? o.querySelector("p"), c = T(n, "price");
226
- b(t, l ?? null, c) && (u = !0);
224
+ const i = o.querySelector("strong") ?? o.querySelector("p"), c = T(n, "price");
225
+ b(t, i ?? null, c) && (u = !0);
227
226
  }
228
227
  if (r && "querySelector" in r) {
229
- const l = r.querySelector("strong") ?? r.querySelector("p"), c = T(n, "original_price");
230
- b(t, l ?? null, c) && (u = !0), t.modifyHtml(r).setAttribute("data-same-price", String(Q(n))), u = !0;
228
+ const i = r.querySelector("strong") ?? r.querySelector("p"), c = T(n, "original_price");
229
+ b(t, i ?? null, c) && (u = !0), t.modifyHtml(r).setAttribute("data-same-price", String(Q(n))), u = !0;
231
230
  }
232
231
  if (s && "querySelector" in s) {
233
- const l = s.querySelector(".omnibus-price-value") ?? null, c = T(n, "original_price");
234
- b(t, l, c) && (u = !0);
232
+ const i = s.querySelector(".omnibus-price-value") ?? null, c = T(n, "original_price");
233
+ b(t, i, c) && (u = !0);
235
234
  }
236
- if (i && "querySelector" in i) {
237
- const l = i.querySelector(".omnibus-discount-value") ?? null, c = ue(n);
238
- b(t, l, c) && (u = !0);
235
+ if (l && "querySelector" in l) {
236
+ const i = l.querySelector(".omnibus-discount-value") ?? null, c = ue(n);
237
+ b(t, i, c) && (u = !0);
239
238
  }
240
239
  return u;
241
240
  }
@@ -246,34 +245,34 @@ function se(e) {
246
245
  imageEl: o,
247
246
  nameEl: r,
248
247
  priceEl: s,
249
- oldPriceEl: i,
248
+ oldPriceEl: l,
250
249
  omnibusPriceEl: u,
251
- omnibusDiscountEl: l,
250
+ omnibusDiscountEl: i,
252
251
  buttonEl: c
253
252
  } = e;
254
- let f = !1;
253
+ let a = !1;
255
254
  if (o && "querySelector" in o) {
256
- const a = o.querySelector("img");
257
- a && (t.modifyHtml(a).setAttribute("src", X(n.image_url)).setAttribute("alt", n.name), f = !0);
255
+ const f = o.querySelector("img");
256
+ f && (t.modifyHtml(f).setAttribute("src", X(n.image_url)).setAttribute("alt", n.name), a = !0);
258
257
  const d = o.querySelector("a");
259
- d && (t.modifyHtml(d).setAttribute("href", n.url), f = !0);
258
+ d && (t.modifyHtml(d).setAttribute("href", n.url), a = !0);
260
259
  }
261
260
  if (r && "querySelector" in r) {
262
- const a = r.querySelector("strong") ?? r.querySelector("p");
263
- b(t, a ?? null, n.name) && (f = !0);
261
+ const f = r.querySelector("strong") ?? r.querySelector("p");
262
+ b(t, f ?? null, n.name) && (a = !0);
264
263
  }
265
264
  if (K({
266
265
  documentModifier: t,
267
266
  product: n,
268
267
  priceEl: s,
269
- oldPriceEl: i,
268
+ oldPriceEl: l,
270
269
  omnibusPriceEl: u,
271
- omnibusDiscountEl: l
272
- }) && (f = !0), c && "querySelector" in c) {
273
- const a = c.querySelector("a.es-button") || c.querySelector("a");
274
- a && (t.modifyHtml(a).setAttribute("href", n.url), f = !0);
270
+ omnibusDiscountEl: i
271
+ }) && (a = !0), c && "querySelector" in c) {
272
+ const f = c.querySelector("a.es-button") || c.querySelector("a");
273
+ f && (t.modifyHtml(f).setAttribute("href", n.url), a = !0);
275
274
  }
276
- return f;
275
+ return a;
277
276
  }
278
277
  function V(e) {
279
278
  return "querySelector" in e ? e.querySelector(L) ?? e : e;
@@ -297,26 +296,26 @@ function fe(e, t, n) {
297
296
  if (o.length === 0)
298
297
  return !1;
299
298
  const r = /* @__PURE__ */ new Map();
300
- o.forEach((i) => {
301
- if (!("getAttribute" in i))
299
+ o.forEach((l) => {
300
+ if (!("getAttribute" in l))
302
301
  return;
303
- const u = i.getAttribute(Y);
302
+ const u = l.getAttribute(Y);
304
303
  if (!u)
305
304
  return;
306
- const l = r.get(u) ?? [];
307
- l.push(i), r.set(u, l);
305
+ const i = r.get(u) ?? [];
306
+ i.push(l), r.set(u, i);
308
307
  });
309
308
  let s = !1;
310
- return r.forEach((i, u) => {
311
- const l = Math.min(i.length, n.length);
312
- i.slice(0, l).forEach((c, f) => {
309
+ return r.forEach((l, u) => {
310
+ const i = Math.min(l.length, n.length);
311
+ l.slice(0, i).forEach((c, a) => {
313
312
  if (!("querySelector" in c))
314
313
  return;
315
- const a = ae(u, n[f]);
316
- if (a === null)
314
+ const f = ae(u, n[a]);
315
+ if (f === null)
317
316
  return;
318
317
  const d = c.querySelector("p") ?? null;
319
- b(t, d, a) && (s = !0);
318
+ b(t, d, f) && (s = !0);
320
319
  });
321
320
  }), s;
322
321
  }
@@ -329,34 +328,34 @@ function O(e, t, n) {
329
328
  `[esd-extension-block-id="${m.NAME}"]`
330
329
  ), s = e.querySelectorAll(
331
330
  `[esd-extension-block-id="${m.PRICE}"]`
332
- ), i = e.querySelectorAll(
331
+ ), l = e.querySelectorAll(
333
332
  `[esd-extension-block-id="${m.OLD_PRICE}"]`
334
333
  ), u = e.querySelectorAll(
335
334
  `[esd-extension-block-id="${m.OMNIBUS_PRICE}"]`
336
- ), l = e.querySelectorAll(
335
+ ), i = e.querySelectorAll(
337
336
  `[esd-extension-block-id="${m.OMNIBUS_DISCOUNT}"]`
338
337
  ), c = e.querySelectorAll(
339
338
  `[esd-extension-block-id="${m.BUTTON}"]`
340
- ), f = Math.min(o.length, n.length);
341
- let a = !1;
342
- for (let d = 0; d < f; d++) {
339
+ ), a = Math.min(o.length, n.length);
340
+ let f = !1;
341
+ for (let d = 0; d < a; d++) {
343
342
  const p = se({
344
343
  documentModifier: t,
345
344
  product: n[d],
346
345
  imageEl: o[d] ?? null,
347
346
  nameEl: r[d] ?? null,
348
347
  priceEl: s[d] ?? null,
349
- oldPriceEl: i[d] ?? null,
348
+ oldPriceEl: l[d] ?? null,
350
349
  omnibusPriceEl: u[d] ?? null,
351
- omnibusDiscountEl: l[d] ?? null,
350
+ omnibusDiscountEl: i[d] ?? null,
352
351
  buttonEl: c[d] ?? null
353
352
  });
354
- a = a || p;
353
+ f = f || p;
355
354
  }
356
- return fe(e, t, n) && (a = !0), a;
355
+ return fe(e, t, n) && (f = !0), f;
357
356
  }
358
357
  function qe(e) {
359
- const { currentNode: t, documentModifier: n, products: o, forceApply: r = !1 } = e;
358
+ const { currentNode: t, documentModifier: n, products: o, onApplied: r } = e;
360
359
  if (!t || !("querySelectorAll" in t))
361
360
  return !1;
362
361
  const s = V(t);
@@ -365,19 +364,19 @@ function qe(e) {
365
364
  ).length !== o.length)
366
365
  return !1;
367
366
  let u = O(s, n, o);
368
- const l = P(t), c = y.getConfig(t);
369
- if (l !== "list" && c.mobileLayoutEnabled && "querySelector" in t) {
370
- const f = t.querySelector(N);
371
- if (f) {
372
- const a = O(
373
- f,
367
+ const i = P(t), c = y.getConfig(t);
368
+ if (i !== "list" && c.mobileLayoutEnabled && "querySelector" in t) {
369
+ const a = t.querySelector(N);
370
+ if (a) {
371
+ const f = O(
372
+ a,
374
373
  n,
375
374
  o
376
375
  );
377
- u = u || a;
376
+ u = u || f;
378
377
  }
379
378
  }
380
- return (u || r) && n.apply(new S("Updated product content in-place")), !0;
379
+ return u && (n.apply(new S("Updated product content in-place")), r == null || r()), !0;
381
380
  }
382
381
  function _(e, t, n) {
383
382
  if (!("querySelectorAll" in e))
@@ -388,10 +387,10 @@ function _(e, t, n) {
388
387
  `[esd-extension-block-id="${m.OLD_PRICE}"]`
389
388
  ), s = e.querySelectorAll(
390
389
  `[esd-extension-block-id="${m.OMNIBUS_PRICE}"]`
391
- ), i = e.querySelectorAll(
390
+ ), l = e.querySelectorAll(
392
391
  `[esd-extension-block-id="${m.OMNIBUS_DISCOUNT}"]`
393
392
  ), u = Math.min(o.length, n.length);
394
- let l = !1;
393
+ let i = !1;
395
394
  for (let c = 0; c < u; c++)
396
395
  K({
397
396
  documentModifier: t,
@@ -399,9 +398,9 @@ function _(e, t, n) {
399
398
  priceEl: o[c] ?? null,
400
399
  oldPriceEl: r[c] ?? null,
401
400
  omnibusPriceEl: s[c] ?? null,
402
- omnibusDiscountEl: i[c] ?? null
403
- }) && (l = !0);
404
- return l;
401
+ omnibusDiscountEl: l[c] ?? null
402
+ }) && (i = !0);
403
+ return i;
405
404
  }
406
405
  function Me(e) {
407
406
  const { currentNode: t, documentModifier: n } = e;
@@ -413,25 +412,25 @@ function Me(e) {
413
412
  if (r.length === 0)
414
413
  return !1;
415
414
  const s = V(t);
416
- let i = _(s, n, r);
417
- const u = P(t), l = y.getConfig(t);
418
- if (u !== "list" && l.mobileLayoutEnabled && "querySelector" in t) {
415
+ let l = _(s, n, r);
416
+ const u = P(t), i = y.getConfig(t);
417
+ if (u !== "list" && i.mobileLayoutEnabled && "querySelector" in t) {
419
418
  const c = t.querySelector(N);
420
419
  if (c) {
421
- const f = _(c, n, r);
422
- i = i || f;
420
+ const a = _(c, n, r);
421
+ l = l || a;
423
422
  }
424
423
  }
425
- return i && n.apply(new S("Updated price formatting in-place")), i;
424
+ return l && n.apply(new S("Updated price formatting in-place")), l;
426
425
  }
427
426
  function he(e) {
428
427
  const { currentNode: t, documentModifier: n, currency: o } = e, r = C(t);
429
428
  if (!r)
430
429
  return;
431
- const s = o.alignment === "before" ? "0" : "1", i = (u, l) => {
432
- n.modifyHtml(r).setAttribute(u, l);
430
+ const s = o.alignment === "before" ? "0" : "1", l = (u, i) => {
431
+ n.modifyHtml(r).setAttribute(u, i);
433
432
  };
434
- i(g.CURRENCY, o.code), i(g.SYMBOL, o.symbol), i(g.ALIGNMENT, s), i(g.THOUSAND_SEPARATOR, o.thousandSeparator), i(g.DECIMAL_SEPARATOR, o.decimalSeparator), i(g.DECIMAL_COUNT, o.decimalCount.toString()), n.apply(new S("Update currency attributes"));
433
+ l(g.CURRENCY, o.code), l(g.SYMBOL, o.symbol), l(g.ALIGNMENT, s), l(g.THOUSAND_SEPARATOR, o.thousandSeparator), l(g.DECIMAL_SEPARATOR, o.decimalSeparator), l(g.DECIMAL_COUNT, o.decimalCount.toString()), n.apply(new S("Update currency attributes"));
435
434
  }
436
435
  export {
437
436
  Re as adjustProductsToSize,