@useinsider/guido 3.15.0 → 3.16.0-beta.0faee0c

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 (81) hide show
  1. package/dist/@types/config/schemas.js +108 -92
  2. package/dist/components/Guido.vue.js +1 -1
  3. package/dist/components/Guido.vue2.js +78 -75
  4. package/dist/composables/useActionsApi.js +30 -22
  5. package/dist/composables/useEmailTemplateApplier.js +25 -23
  6. package/dist/composables/useHtmlValidator.js +108 -106
  7. package/dist/composables/useStripo.js +30 -29
  8. package/dist/composables/useTimerClone.js +21 -19
  9. package/dist/config/i18n/en/labels.json.js +7 -3
  10. package/dist/config/migrator/checkboxMigrator.js +20 -19
  11. package/dist/config/migrator/radioButtonMigrator.js +26 -25
  12. package/dist/config/migrator/recommendation/compositionMapper.js +26 -23
  13. package/dist/config/migrator/recommendation/htmlBuilder.js +156 -155
  14. package/dist/extensions/Blocks/Checkbox/constants/controlIds.js +4 -0
  15. package/dist/extensions/Blocks/Checkbox/constants/selectors.js +6 -0
  16. package/dist/extensions/Blocks/Checkbox/controls/blockBackground/index.js +10 -0
  17. package/dist/extensions/Blocks/Checkbox/extension.js +6 -5
  18. package/dist/extensions/Blocks/Checkbox/settingsPanel.js +15 -14
  19. package/dist/extensions/Blocks/Checkbox/template.js +10 -9
  20. package/dist/extensions/Blocks/Items/block.js +44 -42
  21. package/dist/extensions/Blocks/Items/template.js +86 -86
  22. package/dist/extensions/Blocks/RadioButton/constants/controlIds.js +4 -0
  23. package/dist/extensions/Blocks/RadioButton/constants/selectors.js +6 -0
  24. package/dist/extensions/Blocks/RadioButton/controls/blockBackground/index.js +10 -0
  25. package/dist/extensions/Blocks/RadioButton/extension.js +5 -4
  26. package/dist/extensions/Blocks/RadioButton/settingsPanel.js +12 -11
  27. package/dist/extensions/Blocks/RadioButton/template.js +16 -9
  28. package/dist/extensions/Blocks/Recommendation/constants/selectors.js +18 -15
  29. package/dist/extensions/Blocks/Recommendation/controls/cardBackground/index.js +5 -9
  30. package/dist/extensions/Blocks/Recommendation/controls/cardComposition/index.js +363 -322
  31. package/dist/extensions/Blocks/Recommendation/controls/main/layoutOrientation.js +8 -8
  32. package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +271 -231
  33. package/dist/extensions/Blocks/Recommendation/controls/spacing/index.js +98 -113
  34. package/dist/extensions/Blocks/Recommendation/recommendation.css.js +21 -0
  35. package/dist/extensions/Blocks/Recommendation/templates/grid/template.js +16 -16
  36. package/dist/extensions/Blocks/Recommendation/templates/list/template.js +16 -16
  37. package/dist/extensions/Blocks/Recommendation/templates/utils.js +120 -120
  38. package/dist/extensions/Blocks/Recommendation/utils/captureStyleTemplates.js +55 -54
  39. package/dist/extensions/Blocks/Recommendation/utils/compositionKeys.js +89 -0
  40. package/dist/extensions/Blocks/common-control.js +42 -35
  41. package/dist/extensions/Blocks/controlFactories.js +117 -115
  42. package/dist/guido.css +1 -1
  43. package/dist/library.js +11 -7
  44. package/dist/node_modules/valibot/dist/index.js +230 -216
  45. package/dist/public/trackingIds.js +8 -0
  46. package/dist/src/@types/config/schemas.d.ts +20 -0
  47. package/dist/src/composables/useActionsApi.d.ts +1 -1
  48. package/dist/src/composables/useConfig.d.ts +4 -0
  49. package/dist/src/composables/useHtmlValidator.d.ts +3 -2
  50. package/dist/src/config/migrator/recommendation/types.d.ts +1 -0
  51. package/dist/src/extensions/Blocks/Checkbox/constants/controlIds.d.ts +7 -0
  52. package/dist/src/extensions/Blocks/Checkbox/constants/index.d.ts +10 -0
  53. package/dist/src/extensions/Blocks/Checkbox/constants/selectors.d.ts +16 -0
  54. package/dist/src/extensions/Blocks/Checkbox/controls/blockBackground/index.d.ts +14 -0
  55. package/dist/src/extensions/Blocks/RadioButton/constants/controlIds.d.ts +7 -0
  56. package/dist/src/extensions/Blocks/RadioButton/constants/index.d.ts +10 -0
  57. package/dist/src/extensions/Blocks/RadioButton/constants/selectors.d.ts +16 -0
  58. package/dist/src/extensions/Blocks/RadioButton/controls/blockBackground/index.d.ts +14 -0
  59. package/dist/src/extensions/Blocks/Recommendation/constants/index.d.ts +1 -1
  60. package/dist/src/extensions/Blocks/Recommendation/constants/selectors.d.ts +6 -0
  61. package/dist/src/extensions/Blocks/Recommendation/controls/cardComposition/index.d.ts +27 -5
  62. package/dist/src/extensions/Blocks/Recommendation/controls/main/utils.d.ts +4 -2
  63. package/dist/src/extensions/Blocks/Recommendation/controls/spacing/index.d.ts +5 -0
  64. package/dist/src/extensions/Blocks/Recommendation/templates/utils.d.ts +12 -11
  65. package/dist/src/extensions/Blocks/Recommendation/utils/compositionKeys.d.ts +47 -0
  66. package/dist/src/extensions/Blocks/_Boilerplate/constants/controlIds.d.ts +7 -0
  67. package/dist/src/extensions/Blocks/_Boilerplate/constants/index.d.ts +10 -0
  68. package/dist/src/extensions/Blocks/_Boilerplate/constants/selectors.d.ts +16 -0
  69. package/dist/src/extensions/Blocks/_Boilerplate/controls/blockBackground/index.d.ts +14 -0
  70. package/dist/src/extensions/Blocks/common-control.d.ts +3 -1
  71. package/dist/src/library.d.ts +1 -0
  72. package/dist/src/public/trackingIds.d.ts +9 -0
  73. package/dist/src/stores/config.d.ts +36 -0
  74. package/dist/src/stores/editor.d.ts +25 -0
  75. package/dist/src/utils/linkTrackingIds.d.ts +30 -0
  76. package/dist/stores/editor.js +4 -1
  77. package/dist/stores/onboarding.js +11 -7
  78. package/dist/utils/linkTrackingIds.js +56 -0
  79. package/dist/utils/pairProductVariables.js +105 -99
  80. package/dist/utils/templatePreparation.js +72 -61
  81. package/package.json +5 -1
@@ -1,8 +1,9 @@
1
- import { ATTR_PRODUCT_PRICE as c, ATTR_PRODUCT_OLD_PRICE as l, ATTR_CUSTOM_PREFIX as a, PRODUCT_ATTRIBUTE_PREFIX as u, ATTR_PRODUCT_IMAGE as f, ATTR_PRODUCT_NAME as T, ATTR_PRODUCT_OMNIBUS_PRICE as C, ATTR_PRODUCT_OMNIBUS_DISCOUNT as p, ATTR_PRODUCT_BUTTON as _ } from "../constants/selectors.js";
2
- import { useRecommendationExtensionStore as D } from "../store/recommendation.js";
3
- import { formatPrice as O } from "../utils/priceFormatter.js";
4
- function E() {
5
- const t = D(), { currencySettings: e } = t.recommendationConfigs;
1
+ import { ATTR_PRODUCT_PRICE as l, ATTR_PRODUCT_OLD_PRICE as a, ATTR_CUSTOM_PREFIX as T, ATTR_PRODUCT_IMAGE as m, ATTR_PRODUCT_NAME as C, ATTR_PRODUCT_OMNIBUS_PRICE as _, ATTR_PRODUCT_OMNIBUS_DISCOUNT as p, ATTR_PRODUCT_BUTTON as y, PRODUCT_ATTRIBUTE_PREFIX as I } from "../constants/selectors.js";
2
+ import { useRecommendationExtensionStore as L } from "../store/recommendation.js";
3
+ import { compositionKeyToProductAttr as A, isDefaultProductAttr as b, bareAttributeName as S, findFilterByBareName as $, productAttrToCompositionKey as h } from "../utils/compositionKeys.js";
4
+ import { formatPrice as B } from "../utils/priceFormatter.js";
5
+ function k() {
6
+ const t = L(), { currencySettings: e } = t.recommendationConfigs;
6
7
  return {
7
8
  code: e.value,
8
9
  symbol: e.symbol,
@@ -12,137 +13,136 @@ function E() {
12
13
  thousandSeparator: e.thousandSeparator
13
14
  };
14
15
  }
15
- function m(t, e = "price") {
16
- const n = E(), o = t[e], r = (o == null ? void 0 : o[n.code]) ?? Object.values(o ?? {})[0] ?? 0;
17
- return O({
18
- price: r,
19
- currency: n
16
+ function f(t, e = "price") {
17
+ const o = k(), n = t[e], c = (n == null ? void 0 : n[o.code]) ?? Object.values(n ?? {})[0] ?? 0;
18
+ return B({
19
+ price: c,
20
+ currency: o
20
21
  });
21
22
  }
22
- function Y(t) {
23
- return m(t, "price") === m(t, "original_price");
23
+ function q(t) {
24
+ return f(t, "price") === f(t, "original_price");
24
25
  }
25
- function I(t) {
26
+ function x(t) {
26
27
  return t.replace(/_/g, " ").replace(/\b\w/g, (e) => e.toUpperCase());
27
28
  }
28
- function G(t) {
29
- const e = t.indexOf(c), n = t.indexOf(l), o = n !== -1 && (e === -1 || n < e);
29
+ function J(t) {
30
+ const e = t.indexOf(l), o = t.indexOf(a), n = o !== -1 && (e === -1 || o < e);
30
31
  return {
31
- originalFirst: o,
32
- anchor: o ? l : c,
33
- skip: o ? c : l
32
+ originalFirst: n,
33
+ anchor: n ? a : l,
34
+ skip: n ? l : a
34
35
  };
35
36
  }
36
- function $(t) {
37
+ function N(t) {
37
38
  const e = Array.isArray(t) ? t[t.length - 1] : t;
38
39
  if (typeof e == "string")
39
40
  return e;
40
41
  if (typeof e == "number")
41
42
  return String(e);
42
43
  }
43
- function h(t, e) {
44
- const n = Object.values(e).find((o) => o.attributeName === t);
45
- return (n == null ? void 0 : n.type) === "defaultAttribute";
44
+ function w(t, e) {
45
+ var o;
46
+ return ((o = $(t, e)) == null ? void 0 : o.type) === "defaultAttribute";
46
47
  }
47
- function L(t, e) {
48
- return h(t, e) ? t : `${u}${t}`;
48
+ function F(t, e) {
49
+ return w(t, e) ? t : `${I}${t}`;
49
50
  }
50
- function j(t) {
51
- const e = t.startsWith(u) ? t.substring(u.length) : t;
52
- return `${a}${e}`;
51
+ function Q(t) {
52
+ return h(t);
53
53
  }
54
- const x = Symbol("customCellHtml");
55
- function z(t, e, n = {}) {
56
- const o = t[x];
57
- if (!o)
54
+ const v = Symbol("customCellHtml");
55
+ function Z(t, e, o = {}) {
56
+ const n = t[v];
57
+ if (!n)
58
58
  return { ...t };
59
- const r = { ...t };
60
- return e.filter((s) => s.startsWith(a) && !r[s]).forEach((s) => {
61
- const i = s.substring(a.length), d = I(i), S = L(i, n), A = h(i, n);
62
- r[s] = (g, R) => {
63
- var b;
64
- const P = A ? g[i] : (b = g.product_attributes) == null ? void 0 : b[i], U = $(P) ?? d;
65
- return o(S, U, R);
59
+ const c = { ...t };
60
+ return e.filter((s) => s.startsWith(T) && !c[s]).forEach((s) => {
61
+ const i = A(s), r = b(i) ? F(i, o) : i, u = S(r), R = x(u), D = b(r);
62
+ c[s] = (d, U) => {
63
+ var g;
64
+ const E = D ? d[u] : (g = d.product_attributes) == null ? void 0 : g[u], O = N(E) ?? R;
65
+ return n(r, O, U);
66
66
  };
67
- }), r;
67
+ }), c;
68
68
  }
69
- function V(t, e) {
70
- var n, o, r, s, i;
69
+ function tt(t, e, o = []) {
70
+ const n = t.startsWith(T) ? h(S(A(t))) : t, s = n !== t && !o.includes(n) ? n : t, i = (r) => (r == null ? void 0 : r[t]) ?? (r == null ? void 0 : r[s]);
71
71
  return {
72
72
  cellPadding: e.cellPadding,
73
73
  cardBackgroundColor: e.cardBackgroundColor,
74
- cellBackgroundColor: (n = e.cellBackgroundColors) == null ? void 0 : n[t],
75
- cellAlignment: (o = e.cellAlignments) == null ? void 0 : o[t],
76
- cellClasses: (r = e.cellClasses) == null ? void 0 : r[t],
77
- omnibusText: (s = e.omnibusTexts) == null ? void 0 : s[t],
78
- styleTemplate: (i = e.styleTemplates) == null ? void 0 : i[t]
74
+ cellBackgroundColor: i(e.cellBackgroundColors),
75
+ cellAlignment: i(e.cellAlignments),
76
+ cellClasses: i(e.cellClasses),
77
+ omnibusText: i(e.omnibusTexts),
78
+ styleTemplate: i(e.styleTemplates)
79
79
  };
80
80
  }
81
- const X = {
81
+ const et = {
82
82
  TITLE: "You May Also Like!"
83
- }, K = [
84
- f,
85
- T,
86
- l,
87
- c,
83
+ }, ot = [
84
+ m,
88
85
  C,
86
+ a,
87
+ l,
88
+ _,
89
89
  p,
90
- _
91
- ], q = {
92
- [f]: !0,
93
- [T]: !0,
94
- [c]: !0,
90
+ y
91
+ ], nt = {
92
+ [m]: !0,
93
+ [C]: !0,
95
94
  [l]: !0,
96
- [C]: !1,
95
+ [a]: !0,
96
+ [_]: !1,
97
97
  [p]: !1,
98
- [_]: !0
99
- }, B = 10;
100
- function k(t = B) {
98
+ [y]: !0
99
+ }, M = 10;
100
+ function W(t = M) {
101
101
  return `
102
102
  <tr>
103
103
  <td class="spacer" style="height: ${t}px;"></td>
104
104
  </tr>
105
105
  `;
106
106
  }
107
- const v = k();
108
- function w(t, e) {
107
+ const H = W();
108
+ function V(t, e) {
109
109
  return e ? e.pStyle ?? "" : t;
110
110
  }
111
- function J(t, e, n) {
112
- const o = w(e.pStyle, n), r = n ? n.openTags ?? "" : e.openTags, s = n ? n.closeTags ?? "" : e.closeTags;
113
- return `<p contenteditable="false" style="${o}">${r}${t}${s}</p>`;
111
+ function rt(t, e, o) {
112
+ const n = V(e.pStyle, o), c = o ? o.openTags ?? "" : e.openTags, s = o ? o.closeTags ?? "" : e.closeTags;
113
+ return `<p contenteditable="false" style="${n}">${c}${t}${s}</p>`;
114
114
  }
115
- function Q(t, e) {
116
- const n = [];
117
- return t && n.push(t), e && n.push(`background-color: ${e};`), n.join(" ");
115
+ function st(t, e) {
116
+ const o = [];
117
+ return t && o.push(t), e && o.push(`background-color: ${e};`), o.join(" ");
118
118
  }
119
- function N(t) {
119
+ function Y(t) {
120
120
  return t ? ` background-color: ${t};` : "";
121
121
  }
122
- function Z(t) {
123
- const e = N(t);
122
+ function it(t) {
123
+ const e = Y(t);
124
124
  return e ? ` style="${e.trim()}"` : "";
125
125
  }
126
- function tt(t, e = "") {
126
+ function ct(t, e = "") {
127
127
  return {
128
128
  before: (t == null ? void 0 : t.before) ?? e,
129
129
  after: (t == null ? void 0 : t.after) ?? ""
130
130
  };
131
131
  }
132
- function et(t, e) {
132
+ function lt(t, e) {
133
133
  return `${(e == null ? void 0 : e.openTags) ?? ""}${t}${(e == null ? void 0 : e.closeTags) ?? ""}`;
134
134
  }
135
- function nt(t) {
135
+ function at(t) {
136
136
  return t != null && t.buttonFitToContainer ? "es-button-border es-fw" : "es-button-border";
137
137
  }
138
- const ot = "display: block; max-width: 100%; height: auto;", rt = "border-width: 1px; background: rgb(217, 234, 211); border-color: rgb(106, 168, 79);", st = "color: rgb(56, 118, 29); background: rgb(217, 234, 211); font-family: arial, 'helvetica neue', helvetica, sans-serif; font-size: 16px; font-weight: normal; line-height: 120%; mso-border-alt: 10px solid rgb(217, 234, 211); mso-padding-alt: 0;", y = "https://email-static.useinsider.com/stripo/modules/email-recommendation-v3/assets/images/image-placeholder.png";
139
- function it(t) {
140
- return !t || typeof t != "string" || t.trim() === "" ? y : t.startsWith("http://") ? t.replace("http://", "https://") : t;
138
+ const ut = "display: block; max-width: 100%; height: auto;", dt = "border-width: 1px; background: rgb(217, 234, 211); border-color: rgb(106, 168, 79);", gt = "color: rgb(56, 118, 29); background: rgb(217, 234, 211); font-family: arial, 'helvetica neue', helvetica, sans-serif; font-size: 16px; font-weight: normal; line-height: 120%; mso-border-alt: 10px solid rgb(217, 234, 211); mso-padding-alt: 0;", P = "https://email-static.useinsider.com/stripo/modules/email-recommendation-v3/assets/images/image-placeholder.png";
139
+ function bt(t) {
140
+ return !t || typeof t != "string" || t.trim() === "" ? P : t.startsWith("http://") ? t.replace("http://", "https://") : t;
141
141
  }
142
- function F(t) {
142
+ function G(t) {
143
143
  return {
144
144
  name: "Product Name",
145
- image_url: y,
145
+ image_url: P,
146
146
  price: { USD: 18 },
147
147
  original_price: { USD: 20 },
148
148
  discount: { USD: 2 },
@@ -154,19 +154,19 @@ function F(t) {
154
154
  category: []
155
155
  };
156
156
  }
157
- function ct(t = 6) {
157
+ function ft(t = 6) {
158
158
  return Array.from(
159
159
  { length: t },
160
- (e, n) => F(String(n + 1))
160
+ (e, o) => G(String(o + 1))
161
161
  );
162
162
  }
163
- function lt(t = "grid", e) {
164
- const n = t === "list" ? `
165
- data-layout="list"` : "", o = e ? ` ${e}` : "";
163
+ function Tt(t = "grid", e) {
164
+ const o = t === "list" ? `
165
+ data-layout="list"` : "", n = e ? ` ${e}` : "";
166
166
  return `
167
167
  <td
168
168
  align="left"
169
- class="${`recommendation-block-v2 esd-block-recommendation-v3-block es-p20${t === "list" ? " es-m-p0 ins-recommendation-list-layout" : ""}${o}`}"${n}>
169
+ class="${`recommendation-block-v2 esd-block-recommendation-v3-block es-p20${t === "list" ? " es-m-p0 ins-recommendation-list-layout" : ""}${n}`}"${o}>
170
170
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
171
171
  <tr>
172
172
  <td align="center">
@@ -198,7 +198,7 @@ function lt(t = "grid", e) {
198
198
  </table>
199
199
  </td>
200
200
  </tr>
201
- ${v}
201
+ ${H}
202
202
  <tr>
203
203
  <td>
204
204
  <table
@@ -237,37 +237,37 @@ function lt(t = "grid", e) {
237
237
  `;
238
238
  }
239
239
  export {
240
- x as CUSTOM_CELL_HTML,
241
- X as DEFAULTS,
242
- st as DEFAULT_BUTTON_ANCHOR_STYLE,
243
- rt as DEFAULT_BUTTON_BORDER_STYLE,
244
- K as DEFAULT_CARD_COMPOSITION,
245
- q as DEFAULT_CARD_VISIBILITY,
246
- ot as DEFAULT_IMG_STYLE,
247
- B as DEFAULT_ROW_SPACING_PX,
248
- y as PLACEHOLDER_IMAGE,
249
- N as bgColorFragment,
250
- V as buildCellOptions,
251
- z as buildElementRenderer,
252
- k as buildSpacer,
253
- Z as cellBgStyleAttr,
254
- lt as createBlockTemplate,
255
- m as formatProductPrice,
256
- E as getCurrentCurrencyConfig,
257
- ct as getDefaultProducts,
258
- h as isDefaultAttribute,
259
- Y as isSamePrice,
260
- et as renderButtonLabel,
261
- J as renderStyledParagraph,
262
- nt as resolveButtonBorderClass,
263
- G as resolveInlinePriceOrder,
264
- tt as resolveOmnibusText,
265
- w as resolvePStyle,
266
- L as resolveProductAttrValue,
267
- Q as resolveSegmentBgStyle,
268
- it as sanitizeImageUrl,
269
- v as spacer,
270
- j as toCustomCompositionKey,
271
- I as toDisplayName,
272
- $ as toDisplayableAttributeValue
240
+ v as CUSTOM_CELL_HTML,
241
+ et as DEFAULTS,
242
+ gt as DEFAULT_BUTTON_ANCHOR_STYLE,
243
+ dt as DEFAULT_BUTTON_BORDER_STYLE,
244
+ ot as DEFAULT_CARD_COMPOSITION,
245
+ nt as DEFAULT_CARD_VISIBILITY,
246
+ ut as DEFAULT_IMG_STYLE,
247
+ M as DEFAULT_ROW_SPACING_PX,
248
+ P as PLACEHOLDER_IMAGE,
249
+ Y as bgColorFragment,
250
+ tt as buildCellOptions,
251
+ Z as buildElementRenderer,
252
+ W as buildSpacer,
253
+ it as cellBgStyleAttr,
254
+ Tt as createBlockTemplate,
255
+ f as formatProductPrice,
256
+ k as getCurrentCurrencyConfig,
257
+ ft as getDefaultProducts,
258
+ w as isDefaultAttribute,
259
+ q as isSamePrice,
260
+ lt as renderButtonLabel,
261
+ rt as renderStyledParagraph,
262
+ at as resolveButtonBorderClass,
263
+ J as resolveInlinePriceOrder,
264
+ ct as resolveOmnibusText,
265
+ V as resolvePStyle,
266
+ F as resolveProductAttrValue,
267
+ st as resolveSegmentBgStyle,
268
+ bt as sanitizeImageUrl,
269
+ H as spacer,
270
+ Q as toCustomCompositionKey,
271
+ x as toDisplayName,
272
+ N as toDisplayableAttributeValue
273
273
  };
@@ -1,9 +1,10 @@
1
1
  import { extractWrapperTags as C } from "../../../../utils/preserveTextStyles.js";
2
2
  import { RecommendationBlockId as c } from "../constants/blockIds.js";
3
3
  import { DESKTOP_CONTAINER_SELECTOR as S, ATTR_PRODUCT_NAME as E, ATTR_PRODUCT_PRICE as p, ATTR_PRODUCT_OLD_PRICE as y, ATTR_PRODUCT_OMNIBUS_PRICE as A, ATTR_PRODUCT_OMNIBUS_DISCOUNT as R, ATTR_PRODUCT_BUTTON as P, ATTR_PRODUCT_IMAGE as q, ATTR_PRODUCT_ATTR as x } from "../constants/selectors.js";
4
- import { CSS_CLASS_TEXT_TRIM as B } from "../controls/shared/textTrimCssRules.js";
5
- import { toCustomCompositionKey as v } from "../templates/utils.js";
6
- import { hasQuerySelectorAll as _, hasGetAttribute as l, hasGetStyle as I, hasGetComputedStyle as U } from "./tagName.js";
4
+ import { CSS_CLASS_TEXT_TRIM as v } from "../controls/shared/textTrimCssRules.js";
5
+ import { toCustomCompositionKey as B } from "../templates/utils.js";
6
+ import { resolveRowCompositionKey as U } from "./compositionKeys.js";
7
+ import { hasQuerySelectorAll as _, hasGetAttribute as l, hasGetStyle as I, hasGetComputedStyle as N } from "./tagName.js";
7
8
  const s = [
8
9
  "font-size",
9
10
  "font-family",
@@ -13,14 +14,14 @@ const s = [
13
14
  "text-align",
14
15
  "line-height",
15
16
  "text-decoration"
16
- ], N = [
17
+ ], M = [
17
18
  "background",
18
19
  "background-color",
19
20
  "border-width",
20
21
  "border-color",
21
22
  "border-style",
22
23
  "border-radius"
23
- ], M = [
24
+ ], D = [
24
25
  ...s,
25
26
  "background",
26
27
  "background-color",
@@ -31,14 +32,14 @@ const s = [
31
32
  "width",
32
33
  "mso-border-alt",
33
34
  "mso-padding-alt"
34
- ], D = [
35
+ ], G = [
35
36
  "display",
36
37
  "width",
37
38
  "height",
38
39
  "max-width",
39
40
  "border-radius",
40
41
  "margin"
41
- ], b = /* @__PURE__ */ new Set(["transparent", "rgba(0, 0, 0, 0)"]), G = [
42
+ ], g = /* @__PURE__ */ new Set(["transparent", "rgba(0, 0, 0, 0)"]), L = [
42
43
  { attrKey: E, blockId: c.NAME, kind: "text" },
43
44
  { attrKey: p, blockId: c.PRICE, kind: "text" },
44
45
  { attrKey: y, blockId: c.OLD_PRICE, kind: "text" },
@@ -50,7 +51,7 @@ const s = [
50
51
  function O(t) {
51
52
  return t && "getInnerHTML" in t && typeof t.getInnerHTML == "function" ? t.getInnerHTML().trim() : "";
52
53
  }
53
- function L(t) {
54
+ function w(t) {
54
55
  return t && "getInnerText" in t && typeof t.getInnerText == "function" ? t.getInnerText().trim() : "";
55
56
  }
56
57
  function a(t, e, r) {
@@ -66,20 +67,20 @@ function k(t) {
66
67
  if (!t || !I(t))
67
68
  return;
68
69
  const e = t.getStyle("background-color") || t.getStyle("background");
69
- return e && !b.has(e) ? e : void 0;
70
+ return e && !g.has(e) ? e : void 0;
70
71
  }
71
- function g(t, e) {
72
+ function b(t, e) {
72
73
  const r = {};
73
74
  return a(r, t, e), h(r);
74
75
  }
75
- function w(t) {
76
+ function K(t) {
76
77
  const e = t.querySelector("p"), r = {};
77
78
  a(r, t, s), a(r, e, s), a(r, t.querySelector("strong"), s), a(r, t.querySelector("em"), s), a(r, t.querySelector("s"), s);
78
79
  const n = h(r), { openTags: o, closeTags: i } = C(O(e));
79
80
  return !n && !o ? null : { pStyle: n || void 0, openTags: o, closeTags: i };
80
81
  }
81
82
  function $(t) {
82
- const e = t.querySelector(".es-button-border"), r = t.querySelector("a.es-button") ?? t.querySelector("a"), n = g(e, N), o = g(r, M), i = e && "getAttribute" in e ? e.getAttribute("class") ?? "" : "", u = /\bes-fw\b/.test(i), { openTags: T, closeTags: d } = C(O(r)), m = L(r);
83
+ const e = t.querySelector(".es-button-border"), r = t.querySelector("a.es-button") ?? t.querySelector("a"), n = b(e, M), o = b(r, D), i = e && "getAttribute" in e ? e.getAttribute("class") ?? "" : "", u = /\bes-fw\b/.test(i), { openTags: T, closeTags: d } = C(O(r)), m = w(r);
83
84
  return !n && !o && !u && !T && !m ? null : {
84
85
  buttonBorderStyle: n || void 0,
85
86
  buttonAnchorStyle: o || void 0,
@@ -89,18 +90,18 @@ function $(t) {
89
90
  closeTags: d
90
91
  };
91
92
  }
92
- function K(t) {
93
- const e = g(t.querySelector("img"), D);
93
+ function H(t) {
94
+ const e = b(t.querySelector("img"), G);
94
95
  return e ? { imgStyle: e } : null;
95
96
  }
96
- function H(t, e) {
97
- return e === "button" ? $(t) : e === "image" ? K(t) : w(t);
97
+ function F(t, e) {
98
+ return e === "button" ? $(t) : e === "image" ? H(t) : K(t);
98
99
  }
99
100
  function f(t, e) {
100
101
  if (!t || !("querySelector" in t))
101
102
  return;
102
103
  const r = t.querySelector(S) ?? t;
103
- if (G.forEach(({ attrKey: i, blockId: u, kind: T }) => {
104
+ if (L.forEach(({ attrKey: i, blockId: u, kind: T }) => {
104
105
  const d = r.querySelector(`[esd-extension-block-id="${u}"]`);
105
106
  d && e(d, i, T);
106
107
  }), !_(r))
@@ -110,46 +111,46 @@ function f(t, e) {
110
111
  `[esd-extension-block-id="${c.CUSTOM_ATTRIBUTE}"]`
111
112
  ).forEach((i) => {
112
113
  const u = l(i) ? i.getAttribute(x) : null;
113
- !u || n.has(u) || (n.add(u), e(i, v(u), "text"));
114
+ !u || n.has(u) || (n.add(u), e(i, B(u), "text"));
114
115
  });
115
116
  }
116
- function F(t) {
117
+ function j(t) {
117
118
  const e = {};
118
119
  return f(t, (r, n, o) => {
119
120
  if (!("querySelector" in r))
120
121
  return;
121
- const i = H(r, o);
122
+ const i = F(r, o);
122
123
  i && (e[n] = i);
123
124
  }), e;
124
125
  }
125
- function j(t) {
126
+ function X(t) {
126
127
  if (!t || !("querySelector" in t))
127
128
  return;
128
129
  const e = t.querySelector(S) ?? t, r = e.querySelector(".product-card-segment") ?? e.querySelector(".product-card-wrapper");
129
130
  return k(r);
130
131
  }
131
- function X(t) {
132
+ function z(t) {
132
133
  if (!t)
133
134
  return;
134
135
  const e = l(t) ? t.getAttribute("bgcolor") : null;
135
- if (e && !b.has(e))
136
+ if (e && !g.has(e))
136
137
  return e;
137
138
  const r = k(t);
138
139
  if (r)
139
140
  return r;
140
- const n = U(t) ? t.getComputedStyle("background-color") : void 0;
141
- return n && !b.has(n) ? n : void 0;
141
+ const n = N(t) ? t.getComputedStyle("background-color") : void 0;
142
+ return n && !g.has(n) ? n : void 0;
142
143
  }
143
- function z(t) {
144
+ function Q(t) {
144
145
  const e = {};
145
146
  return f(t, (r, n, o) => {
146
147
  if (o !== "text")
147
148
  return;
148
- const i = X(r);
149
+ const i = z(r);
149
150
  i && (e[n] = i);
150
151
  }), e;
151
152
  }
152
- function Q(t) {
153
+ function V(t) {
153
154
  const e = {};
154
155
  return f(t, (r, n, o) => {
155
156
  if (o === "image")
@@ -158,30 +159,30 @@ function Q(t) {
158
159
  i && (e[n] = i);
159
160
  }), e;
160
161
  }
161
- const V = /^es-[pm]\d+[trbl]?$/;
162
- function W(t) {
162
+ const W = /^es-[pm]\d+[trbl]?$/;
163
+ function Y(t) {
163
164
  const e = l(t) ? t.getAttribute("class") : null;
164
165
  if (!e)
165
166
  return;
166
- const r = e.split(/\s+/).filter((n) => V.test(n) || n === B);
167
+ const r = e.split(/\s+/).filter((n) => W.test(n) || n === v);
167
168
  return r.length ? r.join(" ") : void 0;
168
169
  }
169
- function Y(t) {
170
+ function J(t) {
170
171
  if (!t || !("querySelector" in t))
171
172
  return !1;
172
173
  const e = t.querySelector(S) ?? t, r = (n) => !!(n && "querySelector" in n && n.querySelector(".product-price") && n.querySelector(".product-old-price"));
173
174
  return r(e.querySelector(`[data-attribute-type="${p}"]`)) || r(e.querySelector(`[data-attribute-type="${y}"]`));
174
175
  }
175
- function J(t) {
176
- const e = {}, r = Y(t);
176
+ function Z(t) {
177
+ const e = {}, r = J(t);
177
178
  return f(t, (n, o, i) => {
178
179
  if (i === "image" || r && (o === p || o === y))
179
180
  return;
180
- const u = W(n);
181
+ const u = Y(n);
181
182
  u && (e[o] = u);
182
183
  }), e;
183
184
  }
184
- function Z(t) {
185
+ function tt(t) {
185
186
  const e = {};
186
187
  return f(t, (r, n) => {
187
188
  if (n !== A && n !== R || !l(r))
@@ -190,7 +191,7 @@ function Z(t) {
190
191
  (o != null || i != null) && (e[n] = { before: o ?? void 0, after: i ?? void 0 });
191
192
  }), e;
192
193
  }
193
- function tt(t) {
194
+ function et(t) {
194
195
  const e = {};
195
196
  if (!t || !("querySelector" in t))
196
197
  return e;
@@ -198,28 +199,28 @@ function tt(t) {
198
199
  return _(r) && r.querySelectorAll(".recommendation-attribute-row").forEach((n) => {
199
200
  if (!l(n))
200
201
  return;
201
- const o = n.getAttribute("data-attribute-type"), i = n.getAttribute("data-visibility");
202
+ const o = U(n), i = n.getAttribute("data-visibility");
202
203
  o && i != null && (e[o] = i !== "0");
203
204
  }), e;
204
205
  }
205
- function ct(t) {
206
+ function at(t) {
206
207
  return {
207
- styleTemplates: F(t),
208
- cardBackgroundColor: j(t),
209
- cellBackgroundColors: z(t),
210
- cellAlignments: Q(t),
211
- cellClasses: J(t),
212
- omnibusTexts: Z(t),
213
- visibility: tt(t)
208
+ styleTemplates: j(t),
209
+ cardBackgroundColor: X(t),
210
+ cellBackgroundColors: Q(t),
211
+ cellAlignments: V(t),
212
+ cellClasses: Z(t),
213
+ omnibusTexts: tt(t),
214
+ visibility: et(t)
214
215
  };
215
216
  }
216
217
  export {
217
- F as captureAttributeStyleTemplates,
218
- j as captureCardBackgroundColor,
219
- Q as captureCellAlignments,
220
- z as captureCellBackgroundColors,
221
- J as captureCellClasses,
222
- Z as captureOmnibusTexts,
223
- ct as captureStyles,
224
- tt as captureVisibility
218
+ j as captureAttributeStyleTemplates,
219
+ X as captureCardBackgroundColor,
220
+ V as captureCellAlignments,
221
+ Q as captureCellBackgroundColors,
222
+ Z as captureCellClasses,
223
+ tt as captureOmnibusTexts,
224
+ at as captureStyles,
225
+ et as captureVisibility
225
226
  };