@useinsider/guido 3.19.0-beta.cac604e → 3.19.0-beta.cc48fee

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 (58) hide show
  1. package/dist/components/Guido.vue.js +6 -6
  2. package/dist/components/Guido.vue2.js +96 -85
  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/wrappers/WpModal.vue.js +1 -1
  6. package/dist/components/wrappers/WpModal.vue2.js +4 -3
  7. package/dist/composables/useAuthError.js +52 -0
  8. package/dist/composables/useAutoSave.js +11 -11
  9. package/dist/composables/useCortexBlueprintBridge.js +122 -54
  10. package/dist/composables/useEmailTemplateApplier.js +111 -50
  11. package/dist/composables/useHttp.js +64 -54
  12. package/dist/composables/useLegacyStrategyConversion.js +23 -19
  13. package/dist/composables/useStripo.js +24 -20
  14. package/dist/composables/useToaster.js +17 -15
  15. package/dist/composables/validators/useLiquidValidator.js +15 -15
  16. package/dist/config/migrator/index.js +14 -13
  17. package/dist/config/migrator/itemsBlockMigrator.js +236 -248
  18. package/dist/config/migrator/recommendationMigrator.js +28 -21
  19. package/dist/config/migrator/recommendationPartnerMigrator.js +56 -0
  20. package/dist/enums/extensions/recommendationBlock.js +30 -29
  21. package/dist/extensions/Blocks/Items/constants/cardLayout.js +20 -0
  22. package/dist/extensions/Blocks/Items/controls/name/trimming.js +18 -17
  23. package/dist/extensions/Blocks/Items/controls/settingsControl.js +114 -105
  24. package/dist/extensions/Blocks/Items/enums/productEnums.js +14 -9
  25. package/dist/extensions/Blocks/Items/layouts/horizontal.html.js +11 -9
  26. package/dist/extensions/Blocks/Items/template.js +219 -204
  27. package/dist/extensions/Blocks/Recommendation/block.js +54 -88
  28. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +32 -51
  29. package/dist/extensions/Blocks/Recommendation/utils/partnerCustomizations.js +3 -1
  30. package/dist/extensions/Blocks/Recommendation/utils/partnerScope.js +11 -12
  31. package/dist/guido.css +1 -1
  32. package/dist/src/components/organisms/base/AuthErrorModal.vue.d.ts +2 -0
  33. package/dist/src/components/wrappers/WpModal.vue.d.ts +5 -1
  34. package/dist/src/composables/useAuthError.d.ts +12 -0
  35. package/dist/src/composables/useCortexBlueprintBridge.d.ts +2 -3
  36. package/dist/src/composables/useEmailTemplateApplier.d.ts +18 -5
  37. package/dist/src/composables/useGuidoActions.d.ts +2 -0
  38. package/dist/src/composables/useHttp.d.ts +2 -0
  39. package/dist/src/config/migrator/index.d.ts +2 -1
  40. package/dist/src/config/migrator/recommendationPartnerMigrator.d.ts +19 -0
  41. package/dist/src/enums/extensions/recommendationBlock.d.ts +1 -1
  42. package/dist/src/extensions/Blocks/Items/constants/cardLayout.d.ts +44 -0
  43. package/dist/src/extensions/Blocks/Items/enums/productEnums.d.ts +3 -0
  44. package/dist/src/extensions/Blocks/Items/template.d.ts +19 -0
  45. package/dist/src/extensions/Blocks/Recommendation/block.d.ts +0 -6
  46. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +0 -5
  47. package/dist/src/extensions/Blocks/Recommendation/utils/partnerScope.d.ts +13 -7
  48. package/dist/src/mock/cortexChatStore.d.ts +12 -0
  49. package/dist/src/stores/guido-email-editor.d.ts +20 -10
  50. package/dist/src/stores/onboarding.d.ts +4 -0
  51. package/dist/src/stores/recommendation.d.ts +5 -0
  52. package/dist/src/utils/dateUtil.d.ts +10 -0
  53. package/dist/src/utils/genericUtil.d.ts +3 -0
  54. package/dist/static/styles/components/version-history.css.js +2 -6
  55. package/dist/stores/guido-email-editor.js +3 -1
  56. package/dist/stores/onboarding.js +4 -0
  57. package/dist/utils/pairProductVariables.js +71 -71
  58. package/package.json +2 -2
@@ -1,100 +1,100 @@
1
- import { ITEMS_CURRENCY_ATTR as D, isCustomCurrencySymbol as G } from "../extensions/Blocks/Items/constants/currency.js";
2
- import { productPairs as L } from "../extensions/Blocks/Items/enums/productEnums.js";
1
+ import { ITEMS_CURRENCY_ATTR as x, isCustomCurrencySymbol as Y } from "../extensions/Blocks/Items/constants/currency.js";
2
+ import { productPairs as w } from "../extensions/Blocks/Items/enums/productEnums.js";
3
3
  import { escapeReplacement as X } from "../extensions/Blocks/Items/utils/nodeConfigUtils.js";
4
- import { preserveTextStyles as F } from "./preserveTextStyles.js";
5
- import { unwrapProductNameLinks as Y } from "./unwrapProductNameLink.js";
6
- const x = {
4
+ import { preserveTextStyles as P } from "./preserveTextStyles.js";
5
+ import { unwrapProductNameLinks as v } from "./unwrapProductNameLink.js";
6
+ const O = {
7
7
  CART_ITEMS: "ins_apr",
8
8
  BROWSED_ITEMS: "browsed_item",
9
9
  PURCHASED_ITEMS: "purchased_item"
10
- }, O = (S) => S.replaceAll("{%", "<!--{%").replaceAll("%}", "%}-->");
11
- function v(S, y, b) {
10
+ }, q = (S) => S.replaceAll("{%", "<!--{%").replaceAll("%}", "%}-->");
11
+ function B(S, y, b) {
12
12
  let h = y;
13
13
  for (; h > 0 && /\s/.test(S[h - 1]); )
14
14
  h -= 1;
15
15
  return b.some((I) => S.endsWith(I, h));
16
16
  }
17
- function K(S) {
18
- const y = O(S), b = new DOMParser().parseFromString(y, "text/html");
19
- Y(b);
20
- const h = L.PAIRS_FOR_EXTENSION;
17
+ function Z(S) {
18
+ const y = q(S), b = new DOMParser().parseFromString(y, "text/html");
19
+ v(b);
20
+ const h = w.PAIRS_FOR_EXTENSION;
21
21
  Object.entries(h).forEach(([n, d]) => {
22
22
  b.querySelectorAll(".ins-product-td").forEach((r) => {
23
23
  const E = r.getAttribute("data-number") || "1", m = r.getAttribute("data-type") || "CART_ITEMS";
24
24
  r.querySelectorAll(`[product-attr="${n}"]`).forEach((t) => {
25
- var $, H, N;
26
- const g = t.getAttribute("data-type") || m, o = t.getAttribute("data-number") || E, u = d[g];
27
- if (u)
25
+ var $, F, D, N;
26
+ const g = t.getAttribute("data-type") || m, o = t.getAttribute("data-number") || E, f = d[g];
27
+ if (f)
28
28
  switch (n) {
29
29
  case "imageSrc": {
30
- let e = null, s = null;
31
- if (t.tagName === "IMG" ? (e = t, s = e.closest("a")) : (e = t.querySelector("img"), s = t.querySelector("a") || t.closest("a")), !e)
30
+ let e = null, a = null;
31
+ if (t.tagName === "IMG" ? (e = t, a = e.closest("a")) : (e = t.querySelector("img"), a = t.querySelector("a") || t.closest("a")), !e)
32
32
  break;
33
- const a = u.DEFAULT, l = u.ATTR;
34
- if (a && e.src) {
35
- const i = e.src;
36
- a.some((_) => {
37
- const f = _.split("/").pop() || "", P = i.split("/").pop() || "";
38
- return i.includes(_) || i.includes(f) || P === f;
39
- }) && (e.src = `{{${l}_${o}}}`);
33
+ const l = f.DEFAULT, c = f.ATTR;
34
+ if (l && e.src) {
35
+ const s = e.src;
36
+ l.some((R) => {
37
+ const u = R.split("/").pop() || "", H = s.split("/").pop() || "";
38
+ return s.includes(R) || s.includes(u) || H === u;
39
+ }) && (e.src = `{{${c}_${o}}}`);
40
40
  }
41
- const c = (H = ($ = h.name) == null ? void 0 : $[g]) == null ? void 0 : H.ATTR;
42
- if (c && e.setAttribute("alt", `{{${c}_${o}}}`), s) {
43
- const i = (N = h.itemLink) == null ? void 0 : N[g];
44
- if (i) {
45
- const R = i.HREF, _ = i.DEFAULT_HREF || "#!", f = s.href;
46
- (f === "#" || f === "" || f.endsWith("#!") || f.endsWith(_) || f === `${window.location.href}${_}` || !f || f === window.location.href) && (s.href = `{{${R}_${o}}}`);
41
+ const i = (F = ($ = h.name) == null ? void 0 : $[g]) == null ? void 0 : F.ATTR;
42
+ if (i && e.setAttribute("alt", `{{${i}_${o}}}`), a) {
43
+ const s = (D = h.itemLink) == null ? void 0 : D[g];
44
+ if (s) {
45
+ const _ = s.HREF, R = s.DEFAULT_HREF || "#!", u = a.href;
46
+ (u === "#" || u === "" || u.endsWith("#!") || u.endsWith(R) || u === `${window.location.href}${R}` || !u || u === window.location.href) && (a.href = `{{${_}_${o}}}`);
47
47
  }
48
48
  }
49
49
  break;
50
50
  }
51
51
  case "name": {
52
- const e = u, s = e.ATTR, a = e.DEFAULT_HREF || "#!", l = e.HREF;
53
- t.textContent && (t.innerHTML = F(t, `{{${s}_${o}}}`));
54
- const c = t.closest("a") || (t.tagName === "A" ? t : null);
55
- if (c && l) {
56
- const i = c.href, R = `${window.location.href}${a}`;
57
- (i === R || i.endsWith(a)) && (c.href = `{{${l}_${o}}}`);
52
+ const e = f, a = e.ATTR, l = e.DEFAULT_HREF || "#!", c = e.HREF;
53
+ t.textContent && (t.innerHTML = P(t, `{{${a}_${o}}}`));
54
+ const i = t.closest("a") || (t.tagName === "A" ? t : null);
55
+ if (i && c) {
56
+ const s = i.href, _ = `${window.location.href}${l}`;
57
+ (s === _ || s.endsWith(l)) && (i.href = `{{${c}_${o}}}`);
58
58
  }
59
59
  break;
60
60
  }
61
61
  case "price":
62
62
  case "originalPrice": {
63
- const e = u, s = t.getAttribute("data-formated"), a = t.getAttribute("data-single_price"), l = s === "true", c = a === "true", i = t.getAttribute(D.POSITION) || "before";
64
- let R;
65
- c ? R = l ? e.SINGLE_PRICE_FORMATTED : e.SINGLE_PRICE : R = l ? e.PRICE_FORMATTED : e.PRICE;
66
- const _ = e.CURRENCY;
67
- let f = `{{${R}_${o}}}`;
68
- const P = (t.getAttribute(D.SYMBOL) || "").trim(), V = G(P);
63
+ const e = f, a = t.getAttribute("data-formated"), l = t.getAttribute("data-single_price"), c = a === "true", i = l === "true", s = t.getAttribute(x.POSITION) || "before";
64
+ let _;
65
+ i ? _ = c ? e.SINGLE_PRICE_FORMATTED : e.SINGLE_PRICE : _ = c ? e.PRICE_FORMATTED : e.PRICE;
66
+ const R = e.CURRENCY;
67
+ let u = `{{${_}_${o}}}`;
68
+ const H = (t.getAttribute(x.SYMBOL) || "").trim(), G = Y(H);
69
69
  let C = "";
70
- V ? C = P : _ && (C = `{{${_}_${o}}}`), C && (f = i === "after" ? `${f} ${C}` : `${C} ${f}`), t.innerHTML = F(t, f);
70
+ G ? C = H : R && (C = `{{${R}_${o}}}`), C && (u = s === "after" ? `${u} ${C}` : `${C} ${u}`), t.innerHTML = P(t, u);
71
71
  break;
72
72
  }
73
73
  case "quantity": {
74
- const e = u, s = e.ATTR, a = e.DEFAULT;
75
- t.textContent && t.textContent.trim() === a && (t.innerHTML = F(t, `{{${s}_${o}}}`));
74
+ const e = f, a = e.ATTR, l = [e.DEFAULT, ...e.LEGACY_DEFAULTS], c = (N = t.textContent) == null ? void 0 : N.trim();
75
+ c && l.includes(c) && (t.innerHTML = P(t, `{{${a}_${o}}}`));
76
76
  break;
77
77
  }
78
78
  case "button": {
79
- const e = u, s = e.HREF, a = e.DEFAULT_HREF || "#!", l = t.tagName === "A" ? t : t.querySelector("a");
80
- if (l) {
81
- const c = l.href || "", i = `${window.location.href}${a}`;
82
- (c === "" || c === "#" || c === i || c.endsWith(a) || c.endsWith("#!") || c === window.location.href) && (l.href = `{{${s}_${o}}}`);
79
+ const e = f, a = e.HREF, l = e.DEFAULT_HREF || "#!", c = t.tagName === "A" ? t : t.querySelector("a");
80
+ if (c) {
81
+ const i = c.href || "", s = `${window.location.href}${l}`;
82
+ (i === "" || i === "#" || i === s || i.endsWith(l) || i.endsWith("#!") || i === window.location.href) && (c.href = `{{${a}_${o}}}`);
83
83
  }
84
84
  break;
85
85
  }
86
86
  case "itemLink": {
87
- const e = u, s = e.HREF, a = e.DEFAULT_HREF || "#!", l = t;
88
- if (l.href) {
89
- const c = l.href, i = `${window.location.href}${a}`;
90
- (c === i || c.endsWith(a)) && (l.href = `{{${s}_${o}}}`);
87
+ const e = f, a = e.HREF, l = e.DEFAULT_HREF || "#!", c = t;
88
+ if (c.href) {
89
+ const i = c.href, s = `${window.location.href}${l}`;
90
+ (i === s || i.endsWith(l)) && (c.href = `{{${a}_${o}}}`);
91
91
  }
92
92
  break;
93
93
  }
94
94
  default: {
95
- if ("ATTR" in u) {
96
- const e = u.ATTR;
97
- t.textContent && (t.innerHTML = F(t, `{{${e}_${o}}}`));
95
+ if ("ATTR" in f) {
96
+ const e = f.ATTR;
97
+ t.textContent && (t.innerHTML = P(t, `{{${e}_${o}}}`));
98
98
  }
99
99
  break;
100
100
  }
@@ -102,9 +102,9 @@ function K(S) {
102
102
  });
103
103
  });
104
104
  });
105
- const I = y.match(/<!DOCTYPE[^>]*>/i), q = I ? `${I[0]}
106
- ` : "", U = b.querySelectorAll(".ins-product-td"), M = [];
107
- U.forEach((n) => {
105
+ const I = y.match(/<!DOCTYPE[^>]*>/i), U = I ? `${I[0]}
106
+ ` : "", W = b.querySelectorAll(".ins-product-td"), M = [];
107
+ W.forEach((n) => {
108
108
  const d = n.getAttribute("data-type") || "CART_ITEMS", p = n.getAttribute("data-number") || "1", r = n.outerHTML;
109
109
  M.push({
110
110
  element: n,
@@ -113,38 +113,38 @@ function K(S) {
113
113
  number: p
114
114
  });
115
115
  });
116
- let A = q + b.documentElement.outerHTML;
116
+ let A = U + b.documentElement.outerHTML;
117
117
  M.reverse().forEach(({ outerHtml: n, type: d, number: p }) => {
118
- const r = x[d], E = r ? `${r}_total_product_kind` : "";
118
+ const r = O[d], E = r ? `${r}_total_product_kind` : "";
119
119
  if (E) {
120
120
  const T = parseInt(p) - 1, o = `${`{% if ${E} > ${T} %}`}${n}{% endif %}`;
121
121
  A = A.replace(n, X(o));
122
122
  }
123
123
  });
124
- const W = b.querySelectorAll('[product-attr="originalPrice"][data-type]'), w = /* @__PURE__ */ new Map(), k = /* @__PURE__ */ new Set();
125
- return W.forEach((n) => {
124
+ const V = b.querySelectorAll('[product-attr="originalPrice"][data-type]'), L = /* @__PURE__ */ new Map(), k = /* @__PURE__ */ new Set();
125
+ return V.forEach((n) => {
126
126
  var t;
127
127
  const d = n.getAttribute("data-number"), p = n.getAttribute("data-type");
128
- if (!d || !x[p])
128
+ if (!d || !O[p])
129
129
  return;
130
130
  const r = n.closest(".product-original-price-class");
131
131
  if (!r || k.has(r))
132
132
  return;
133
133
  k.add(r);
134
- const E = r.outerHTML, m = (t = n.closest(".ins-product-td")) == null ? void 0 : t.getAttribute("data-nodup"), T = w.get(E) ?? { number: d, type: p, wrap: [] };
135
- T.wrap.push(m !== "false"), w.set(E, T);
136
- }), w.forEach(({ number: n, type: d, wrap: p }, r) => {
134
+ const E = r.outerHTML, m = (t = n.closest(".ins-product-td")) == null ? void 0 : t.getAttribute("data-nodup"), T = L.get(E) ?? { number: d, type: p, wrap: [] };
135
+ T.wrap.push(m !== "false"), L.set(E, T);
136
+ }), L.forEach(({ number: n, type: d, wrap: p }, r) => {
137
137
  if (r.includes("{% if") || !p.some(Boolean))
138
138
  return;
139
- const E = L.PAIRS_FOR_EXTENSION.price[d].PRICE, m = L.PAIRS_FOR_EXTENSION.originalPrice[d].PRICE, T = `{% if ${E}_${n} != ${m}_${n} %}`, t = [T, O(T)];
140
- let g = "", o = 0, u = 0, $ = A.indexOf(r);
139
+ const E = w.PAIRS_FOR_EXTENSION.price[d].PRICE, m = w.PAIRS_FOR_EXTENSION.originalPrice[d].PRICE, T = `{% if ${E}_${n} != ${m}_${n} %}`, t = [T, q(T)];
140
+ let g = "", o = 0, f = 0, $ = A.indexOf(r);
141
141
  for (; $ !== -1; ) {
142
- const H = p[u] === !0 && !v(A, $, t);
143
- g += A.slice(o, $) + (H ? `${T}${r}{% endif %}` : r), o = $ + r.length, u += 1, $ = A.indexOf(r, o);
142
+ const F = p[f] === !0 && !B(A, $, t);
143
+ g += A.slice(o, $) + (F ? `${T}${r}{% endif %}` : r), o = $ + r.length, f += 1, $ = A.indexOf(r, o);
144
144
  }
145
145
  A = g + A.slice(o);
146
146
  }), A.replaceAll("<!--{%", "{%").replaceAll("%}-->", "%}").replaceAll("&lt;!--{%", "{%").replaceAll("%}--&gt;", "%}");
147
147
  }
148
148
  export {
149
- K as pairProductVariables
149
+ Z as pairProductVariables
150
150
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@useinsider/guido",
3
- "version": "3.19.0-beta.cac604e",
3
+ "version": "3.19.0-beta.cc48fee",
4
4
  "description": "Guido is a Vue + TypeScript wrapper for Email Plugin. Easily embed the email editor in your Vue applications.",
5
5
  "main": "./dist/guido.umd.cjs",
6
6
  "module": "./dist/library.js",
@@ -54,7 +54,7 @@
54
54
  "dependencies": {
55
55
  "@stripoinc/ui-editor-extensions": "3.10.0",
56
56
  "@useinsider/design-system-organisms": "0.0.3-beta.d816f06",
57
- "@useinsider/design-system-vue": "1.5.0",
57
+ "@useinsider/design-system-vue": "2.3.1",
58
58
  "@vueuse/core": "11.3.0",
59
59
  "lodash-es": "4.17.21",
60
60
  "pinia": "2.3.1",