@useinsider/guido 3.15.0-beta.3e8c8d2 → 3.15.0-beta.4e52059

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.
@@ -1,7 +1,7 @@
1
- import { filterAmpErrors as w } from "../utils/ampErrorFilter.js";
1
+ import { filterAmpErrors as T } from "../utils/ampErrorFilter.js";
2
2
  import { useToaster as A } from "./useToaster.js";
3
- const D = () => {
4
- const { handleError: n } = A(), s = (t = {}) => new Promise((e, a) => {
3
+ const p = 1e4, D = () => {
4
+ const { handleError: r } = A(), l = (t = {}) => new Promise((e, a) => {
5
5
  const o = { ...{
6
6
  minimize: !0,
7
7
  utmEntity: {
@@ -21,29 +21,29 @@ const D = () => {
21
21
  forceAmp: !1,
22
22
  resetDataSavedFlag: !1,
23
23
  disableLineHeightsReplace: !0
24
- }, ...t }, l = {
25
- callback: (r, p, d, c, u) => {
26
- r ? a(r) : e({
27
- html: p,
28
- ampHtml: d,
29
- ampErrors: w(c ?? []),
30
- displayConditions: u
24
+ }, ...t }, n = {
25
+ callback: (m, d, c, u, w) => {
26
+ m ? a(m) : e({
27
+ html: d,
28
+ ampHtml: c,
29
+ ampErrors: T(u ?? []),
30
+ displayConditions: w
31
31
  });
32
32
  },
33
33
  ...o
34
34
  };
35
- window.StripoEditorApi.actionsApi.compileEmail(l);
35
+ window.StripoEditorApi.actionsApi.compileEmail(n);
36
36
  });
37
37
  return {
38
- getCompiledEmail: s,
38
+ getCompiledEmail: l,
39
39
  getTemplateData: () => new Promise((t) => {
40
- const e = ({ html: a, css: i, width: o, height: m, utmParams: l, syncModulesIds: r }) => t({
40
+ const e = ({ html: a, css: i, width: o, height: s, utmParams: n, syncModulesIds: m }) => t({
41
41
  html: a,
42
42
  css: i,
43
43
  width: o,
44
- height: m,
45
- utmParams: l,
46
- syncModulesIds: r
44
+ height: s,
45
+ utmParams: n,
46
+ syncModulesIds: m
47
47
  });
48
48
  window.StripoEditorApi.actionsApi.getTemplateData(e);
49
49
  }),
@@ -57,7 +57,7 @@ const D = () => {
57
57
  displayConditions: a,
58
58
  ampHtml: i = "",
59
59
  ampErrors: o = []
60
- } = await s({ minimize: !1, resetDataSavedFlag: !1, ...t });
60
+ } = await l({ minimize: !1, resetDataSavedFlag: !1, ...t });
61
61
  return {
62
62
  html: e,
63
63
  ampHtml: i,
@@ -65,7 +65,7 @@ const D = () => {
65
65
  displayConditions: a
66
66
  };
67
67
  } catch (e) {
68
- return n(e, "Error loading preview"), {
68
+ return r(e, "Error loading preview"), {
69
69
  html: "",
70
70
  ampHtml: "",
71
71
  ampErrors: [],
@@ -81,19 +81,27 @@ const D = () => {
81
81
  }
82
82
  try {
83
83
  window.StripoEditorApi.actionsApi.updateTimerInClonedTemplate((i, o) => {
84
- i ? (n(i, "Failed to update timer in cloned template"), t(null)) : t(o || null);
84
+ i ? (r(i, "Failed to update timer in cloned template"), t(null)) : t(o || null);
85
85
  });
86
86
  } catch (i) {
87
- n(i, "Failed to call updateTimerInClonedTemplate"), t(null);
87
+ r(i, "Failed to call updateTimerInClonedTemplate"), t(null);
88
88
  }
89
89
  }),
90
90
  updateHtmlAndCss: (t, e) => {
91
- window.StripoEditorApi.actionsApi.updateHtmlAndCss(t, e);
91
+ const { actionsApi: a } = window.StripoEditorApi;
92
+ return new Promise((i, o) => {
93
+ const s = new Error(
94
+ `updateHtmlAndCss did not report completion within ${p}ms`
95
+ ), n = setTimeout(() => o(s), p);
96
+ a.updateHtmlAndCss(t, e, () => {
97
+ clearTimeout(n), i();
98
+ });
99
+ });
92
100
  },
93
101
  editorSave: () => new Promise((t) => {
94
102
  window.StripoEditorApi.actionsApi.save((e) => {
95
103
  if (e) {
96
- n(e, "Failed to save template"), t(!1);
104
+ r(e, "Failed to save template"), t(!1);
97
105
  return;
98
106
  }
99
107
  t(!0);
@@ -1,55 +1,57 @@
1
- import { useActionsApi as d } from "./useActionsApi.js";
2
- import { useConfig as D } from "./useConfig.js";
3
- import { useToaster as h } from "./useToaster.js";
1
+ import { useActionsApi as C } from "./useActionsApi.js";
2
+ import { useConfig as h } from "./useConfig.js";
3
+ import { useToaster as D } from "./useToaster.js";
4
4
  import { useTranslations as E } from "./useTranslations.js";
5
5
  import { ToasterTypeOptions as f } from "../enums/toaster.js";
6
6
  import { useDynamicContentStore as A } from "../stores/dynamic-content.js";
7
- import { flattenDynamicContentList as S } from "../utils/genericUtil.js";
8
- import { extractUsedDynamicContent as O } from "../utils/registerUsedDynamicContent.js";
9
- import { ref as U } from "vue";
10
- const w = 250, o = U({}), s = {}, u = /* @__PURE__ */ new Map(), z = () => {
11
- const { updateHtmlAndCss: c } = d(), { showToaster: m } = h(), y = E(), { template: T } = D(), v = A(), g = (e, t) => {
7
+ import { flattenDynamicContentList as w } from "../utils/genericUtil.js";
8
+ import { extractUsedDynamicContent as S } from "../utils/registerUsedDynamicContent.js";
9
+ import { ref as O } from "vue";
10
+ const U = 250, o = O({}), s = {}, u = /* @__PURE__ */ new Map(), z = () => {
11
+ const { updateHtmlAndCss: r } = C(), { showToaster: m } = D(), y = E(), { template: T } = h(), d = A(), g = (e, t) => {
12
12
  const a = y(e);
13
13
  return a === e ? t : a;
14
- }, C = (e) => {
14
+ }, v = (e) => {
15
15
  o.value[e] === void 0 && (o.value = { ...o.value, [e]: "pending" });
16
16
  }, l = (e, t, a) => {
17
- var n;
17
+ var c;
18
18
  o.value = { ...o.value, [e]: "applying" };
19
19
  try {
20
- c(t, a), o.value = { ...o.value, [e]: "applied" };
20
+ r(t, a).catch((n) => {
21
+ console.warn("Editor did not acknowledge the template apply.", n);
22
+ }), o.value = { ...o.value, [e]: "applied" };
21
23
  try {
22
- const r = S((n = T.value) == null ? void 0 : n.dynamicContentList), p = O(t, r);
23
- p.length > 0 && v.registerDynamicContent(p);
24
+ const n = w((c = T.value) == null ? void 0 : c.dynamicContentList), i = S(t, n);
25
+ i.length > 0 && d.registerDynamicContent(i);
24
26
  } catch {
25
27
  }
26
28
  u.get(e) !== t && (u.set(e, t), m({
27
29
  type: f.Success,
28
30
  message: g("newsletter.ai-template-applied", "Template applied to the editor")
29
31
  }));
30
- } catch (r) {
32
+ } catch (n) {
31
33
  o.value = { ...o.value, [e]: "failed" }, m({
32
34
  type: f.Error,
33
- message: r instanceof Error ? r.message : "Failed to apply template"
35
+ message: n instanceof Error ? n.message : "Failed to apply template"
34
36
  });
35
37
  }
36
- }, i = (e) => {
38
+ }, p = (e) => {
37
39
  const t = s[e];
38
40
  t && (clearTimeout(t), delete s[e]);
39
41
  };
40
- return { applyStatus: o, markPending: C, applyTemplate: (e, t) => {
41
- t.html && (i(e), l(e, t.html, t.css ?? ""));
42
+ return { applyStatus: o, markPending: v, applyTemplate: (e, t) => {
43
+ t.html && (p(e), l(e, t.html, t.css ?? ""));
42
44
  }, applyTemplateDebounced: (e, t) => {
43
45
  if (!t.html)
44
46
  return;
45
- i(e);
46
- const { html: a } = t, n = t.css ?? "";
47
+ p(e);
48
+ const { html: a } = t, c = t.css ?? "";
47
49
  s[e] = setTimeout(() => {
48
- delete s[e], l(e, a, n);
49
- }, w);
50
+ delete s[e], l(e, a, c);
51
+ }, U);
50
52
  } };
51
53
  }, G = () => {
52
- Object.values(s).forEach(clearTimeout), Object.keys(s).forEach((c) => delete s[c]), o.value = {};
54
+ Object.values(s).forEach(clearTimeout), Object.keys(s).forEach((r) => delete s[r]), o.value = {};
53
55
  };
54
56
  export {
55
57
  G as resetEmailTemplateApplier,
@@ -1,11 +1,11 @@
1
1
  import { useActionsApi as f } from "./useActionsApi.js";
2
- import { useHttp as w } from "./useHttp.js";
3
- import { useToaster as H } from "./useToaster.js";
4
- import { useStripoApi as y } from "../services/stripoApi.js";
5
- const O = () => {
6
- const { handleError: c } = H(), { getToken: u } = y(), { post: d } = w(), { updateHtmlAndCss: l } = f(), s = (t) => /esd-timer-id="(\d+)"/.test(t), i = async (t, e) => {
2
+ import { useHttp as H } from "./useHttp.js";
3
+ import { useToaster as h } from "./useToaster.js";
4
+ import { useStripoApi as k } from "../services/stripoApi.js";
5
+ const S = () => {
6
+ const { handleError: c } = h(), { getToken: l } = k(), { post: p } = H(), { updateHtmlAndCss: u } = f(), s = (t) => /esd-timer-id="(\d+)"/.test(t), i = async (t, e) => {
7
7
  try {
8
- return (await d(
8
+ return (await p(
9
9
  "https://plugins.stripo.email/api/v1/timers/clone",
10
10
  { html: t },
11
11
  {
@@ -25,29 +25,31 @@ const O = () => {
25
25
  cloneTimersOnSave: async (t) => {
26
26
  if (!s(t))
27
27
  return t;
28
- const e = await u();
28
+ const e = await l();
29
29
  return e && await i(t, e) || t;
30
30
  },
31
31
  updateTimersOnLoad: async (t) => {
32
- var e, r, o, m;
32
+ var e, r, n, d;
33
33
  try {
34
- const n = (r = (e = window.UIEditor) == null ? void 0 : e.getHtml) == null ? void 0 : r.call(e);
35
- if (!n || !s(n))
34
+ const o = (r = (e = window.UIEditor) == null ? void 0 : e.getHtml) == null ? void 0 : r.call(e);
35
+ if (!o || !s(o))
36
36
  return;
37
- const p = await t();
38
- if (!p)
37
+ const m = await t();
38
+ if (!m)
39
39
  return;
40
- const a = await i(n, p);
41
- if (!a || a === n)
40
+ const a = await i(o, m);
41
+ if (!a || a === o)
42
42
  return;
43
- const T = ((m = (o = window.UIEditor) == null ? void 0 : o.getCss) == null ? void 0 : m.call(o)) || "";
44
- l(a, T);
45
- } catch (n) {
46
- c(n, "Failed to update timer blocks");
43
+ const T = ((d = (n = window.UIEditor) == null ? void 0 : n.getCss) == null ? void 0 : d.call(n)) || "";
44
+ u(a, T).catch((w) => {
45
+ console.warn("Editor did not acknowledge the timer-block update.", w);
46
+ });
47
+ } catch (o) {
48
+ c(o, "Failed to update timer blocks");
47
49
  }
48
50
  }
49
51
  };
50
52
  };
51
53
  export {
52
- O as useTimerClone
54
+ S as useTimerClone
53
55
  };
@@ -381,7 +381,7 @@ class H {
381
381
  * Supports all block types by detecting prefix and using appropriate type:
382
382
  *
383
383
  * Examples:
384
- * - {{ins_apr_img_1}} → https://web-image.useinsider.com/.../img_1.jpeg (CART_ITEMS)
384
+ * - {{ins_apr_img_1}} → https://s3.../img_1.jpeg (CART_ITEMS)
385
385
  * - {{browsed_item_name_2}} → 'Set of Sprite Yoga Straps' (BROWSED_ITEMS)
386
386
  * - {{purchased_item_formattedprice_5}} → '1,490.49' (PURCHASED_ITEMS)
387
387
  */
@@ -1,15 +1,15 @@
1
- const e = 20, t = 320, s = "vertical", m = {
1
+ const e = 20, s = 320, t = "vertical", m = {
2
2
  CART_ABANDONMENT: {
3
- ins_apr_img_1: "https://web-image.useinsider.com/email-assets/dummyImages/ins_apr_img_1.png",
4
- ins_apr_img_2: "https://web-image.useinsider.com/email-assets/dummyImages/ins_apr_img_2.png",
5
- ins_apr_img_3: "https://web-image.useinsider.com/email-assets/dummyImages/ins_apr_img_3.png",
6
- ins_apr_img_4: "https://web-image.useinsider.com/email-assets/dummyImages/ins_apr_img_4.png"
3
+ ins_apr_img_1: "https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/ins_apr_img_1.png",
4
+ ins_apr_img_2: "https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/ins_apr_img_2.png",
5
+ ins_apr_img_3: "https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/ins_apr_img_3.png",
6
+ ins_apr_img_4: "https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/ins_apr_img_4.png"
7
7
  },
8
8
  BROWSE_ABANDONMENT: {
9
- browsed_item_img_1: "https://web-image.useinsider.com/email-assets/dummyImages/browsed_item_img_1.jpg",
10
- browsed_item_img_2: "https://web-image.useinsider.com/email-assets/dummyImages/browsed_item_img_2.jpg",
11
- browsed_item_img_3: "https://web-image.useinsider.com/email-assets/dummyImages/browsed_item_img_3.jpg",
12
- browsed_item_img_4: "https://web-image.useinsider.com/email-assets/dummyImages/browsed_item_img_4.jpg"
9
+ browsed_item_img_1: "https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/browsed_item_img_1.jpg",
10
+ browsed_item_img_2: "https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/browsed_item_img_2.jpg",
11
+ browsed_item_img_3: "https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/browsed_item_img_3.jpg",
12
+ browsed_item_img_4: "https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/browsed_item_img_4.jpg"
13
13
  }
14
14
  }, i = {
15
15
  DISCOUNT: "discount",
@@ -23,7 +23,7 @@ const e = 20, t = 320, s = "vertical", m = {
23
23
  },
24
24
  ELSE: "{% else %}",
25
25
  END_IF: "{% endif %}"
26
- }, n = {
26
+ }, a = {
27
27
  ID: /recommendation-id="(.*?)"/gi,
28
28
  ATTRIBUTE_PARAGRAPH: /<p[^>]*?product-attr="(discount|omnibus_discount|omnibus_price)"[^>]*>[\S\s]*?<\/p>/gm,
29
29
  ATTRIBUTE_PARAGRAPH_START_TAG: /<p[^>]*?product-attr="(discount|omnibus_discount|omnibus_price)"[^>]*>/gm,
@@ -31,9 +31,9 @@ const e = 20, t = 320, s = "vertical", m = {
31
31
  CUSTOM_FIELD: /{{(?:reco_)?[0-9]+_[0-8]_(discount|omnibus_discount|omnibus_price)}}/gm,
32
32
  CUSTOM_FIELD_INDEXES_PART: /{{(?:reco_)?[0-9]+_[0-8]_/gm,
33
33
  CUSTOM_FIELD_NAME_PART: /_(discount|omnibus_discount|omnibus_price)}}/gm
34
- }, o = {
34
+ }, n = {
35
35
  PARAGRAPH_END_TAG: "</p>"
36
- }, a = {
36
+ }, o = {
37
37
  REGULAR_NAME_HEIGHT: ".ext-product-name.ins-vertical p { height:90px!important;",
38
38
  TRIMMED_NAME_HEIGHT: ".ext-product-name.ins-vertical p { height:18px!important;",
39
39
  ELLIPSIS: "text-overflow:ellipsis!important; white-space:nowrap!important;",
@@ -47,11 +47,11 @@ const e = 20, t = 320, s = "vertical", m = {
47
47
  export {
48
48
  i as ATTRIBUTES,
49
49
  _ as CONDITIONS,
50
- a as CSS,
50
+ o as CSS,
51
51
  m as DUMMY_IMAGE_MAPPINGS,
52
52
  e as DefaultPadding,
53
- o as HTML,
54
- t as MinDeviceViewport,
55
- n as REGEX,
56
- s as VerticalOrientation
53
+ n as HTML,
54
+ s as MinDeviceViewport,
55
+ a as REGEX,
56
+ t as VerticalOrientation
57
57
  };
@@ -1,12 +1,12 @@
1
- import { BlockId as f } from "../../../enums/block.js";
2
- import { useOnboardingStore as g } from "../../../stores/onboarding.js";
3
- import { getMigrationBannerHtml as y } from "../../../utils/migrationBannerHtml.js";
4
- import { Block as I, BlockCompositionType as C, ModificationDescription as c } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
5
- import { SETTINGS_ENUMS as d, DefaultConfigValues as m } from "./enums/settingsEnums.js";
6
- import { getDefaultTemplate as b } from "./template.js";
7
- import { getItemsBlockContainer as l, getItemsBlockConfig as u, deriveItemNumber as h, getDefaultItemsBlockConfig as N } from "./utils/nodeConfigUtils.js";
8
- const p = f.Items;
9
- class O extends I {
1
+ import { BlockId as g } from "../../../enums/block.js";
2
+ import { useOnboardingStore as y } from "../../../stores/onboarding.js";
3
+ import { getMigrationBannerHtml as I } from "../../../utils/migrationBannerHtml.js";
4
+ import { Block as C, BlockCompositionType as b, ModificationDescription as c } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
5
+ import { SETTINGS_ENUMS as l, DefaultConfigValues as d } from "./enums/settingsEnums.js";
6
+ import { getDefaultTemplate as h } from "./template.js";
7
+ import { getItemsBlockContainer as u, getItemsBlockConfig as f, deriveItemNumber as D, getDefaultItemsBlockConfig as N } from "./utils/nodeConfigUtils.js";
8
+ const p = g.Items;
9
+ class E extends C {
10
10
  getId() {
11
11
  return p;
12
12
  }
@@ -14,7 +14,7 @@ class O extends I {
14
14
  return "items-icon";
15
15
  }
16
16
  getBlockCompositionType() {
17
- return C.CONTAINER;
17
+ return b.CONTAINER;
18
18
  }
19
19
  getName() {
20
20
  return this.api.translate("Items");
@@ -23,20 +23,20 @@ class O extends I {
23
23
  return this.api.translate("Items lets you display personalized products based on user behavior.");
24
24
  }
25
25
  getSettingsPanelTitleHtml() {
26
- return y(
26
+ return I(
27
27
  p,
28
28
  this.api.translate("Items"),
29
29
  this.api.translate("This block is switched from the Old Version to the New Version. We recommend you check the Items block and test your message to ensure it works properly.")
30
30
  );
31
31
  }
32
32
  getTemplate() {
33
- return b({
34
- orientation: d.ORIENTATION.VERTICAL,
35
- itemsType: d.ITEMS_TYPE.CART_ITEMS,
33
+ return h({
34
+ orientation: l.ORIENTATION.VERTICAL,
35
+ itemsType: l.ITEMS_TYPE.CART_ITEMS,
36
36
  itemId: "{{Abandoned Cart Item (1) Url}}",
37
- currencySymbol: m.productPriceCurrencySymbolControlValue,
38
- currencyLocation: m.productPriceCurrencyLocationControlValue,
39
- formattedPrice: m.productPriceFormattedControlValue === "1"
37
+ currencySymbol: d.productPriceCurrencySymbolControlValue,
38
+ currencyLocation: d.productPriceCurrencyLocationControlValue,
39
+ formattedPrice: d.productPriceFormattedControlValue === "1"
40
40
  });
41
41
  }
42
42
  allowInnerBlocksDND() {
@@ -45,23 +45,23 @@ class O extends I {
45
45
  canBeSavedAsModule() {
46
46
  return !0;
47
47
  }
48
- onCreated(e) {
49
- const t = this.api.getDocumentModifier(), o = this.api.getDocumentRootCssNode();
50
- o.querySelector('[product-attr="imageSrc"] img') || t.modifyCss(o).appendRule('[product-attr="imageSrc"] img {object-fit: contain;}');
51
- const i = l(e);
52
- if (!i)
48
+ onCreated(n) {
49
+ const t = this.api.getDocumentModifier(), a = this.api.getDocumentRootCssNode();
50
+ a.querySelector('[product-attr="imageSrc"] img') || t.modifyCss(a).appendRule('[product-attr="imageSrc"] img {object-fit: contain;}');
51
+ const e = u(n);
52
+ if (!e)
53
53
  return;
54
- const r = i.getNodeConfig(), s = r && Object.keys(r).length > 0, n = u(e);
55
- if (n != null && n.initialized)
56
- if (s)
57
- n.blockInstanceId || this.api.getDocumentModifier().modifyHtml(i).setNodeConfig({ ...n, blockInstanceId: String(Date.now()) }).apply(new c("Assign block instance ID to block"));
54
+ const o = e.getNodeConfig(), r = o && Object.keys(o).length > 0, i = f(n);
55
+ if (i != null && i.initialized)
56
+ if (r)
57
+ i.blockInstanceId || this.api.getDocumentModifier().modifyHtml(e).setNodeConfig({ ...i, blockInstanceId: String(Date.now()) }).apply(new c("Assign block instance ID to block"));
58
58
  else {
59
- const a = this.api.getDocumentModifier();
60
- a.modifyHtml(i).setNodeConfig(n), this._stampProductTdDomAttributes(i, n, a), a.apply(new c("Migrate legacy config to nodeConfig"));
59
+ const s = this.api.getDocumentModifier();
60
+ s.modifyHtml(e).setNodeConfig(i), this._stampProductTdDomAttributes(e, i, s), s.apply(new c("Migrate legacy config to nodeConfig"));
61
61
  }
62
62
  else {
63
- const a = N();
64
- this.api.getDocumentModifier().modifyHtml(i).setNodeConfig(a).apply(new c("Initialize Items block with default configuration")), g().startOnboarding("itemsOnboarding");
63
+ const s = N(), m = this.api.getDocumentModifier();
64
+ m.modifyHtml(e).setNodeConfig(s), this._stampProductTdDomAttributes(e, s, m, !0), m.apply(new c("Initialize Items block with default configuration")), y().startOnboarding("itemsOnboarding");
65
65
  }
66
66
  }
67
67
  /**
@@ -70,18 +70,18 @@ class O extends I {
70
70
  * into nodeConfig, so without this a reused module would reset to defaults.
71
71
  * Guarded to the nodeConfig-empty case so it runs once and never loops.
72
72
  */
73
- onDocumentChanged(e) {
74
- const t = l(e);
73
+ onDocumentChanged(n) {
74
+ const t = u(n);
75
75
  if (!t)
76
76
  return;
77
- const o = t.getNodeConfig();
78
- if (o && Object.keys(o).length > 0)
77
+ const a = t.getNodeConfig();
78
+ if (a && Object.keys(a).length > 0)
79
79
  return;
80
- const r = u(e);
81
- if (!(r != null && r.initialized))
80
+ const o = f(n);
81
+ if (!(o != null && o.initialized))
82
82
  return;
83
- const s = this.api.getDocumentModifier();
84
- s.modifyHtml(t).setNodeConfig(r), this._stampProductTdDomAttributes(t, r, s), s.apply(new c("Recover Items block config from saved module"));
83
+ const r = this.api.getDocumentModifier();
84
+ r.modifyHtml(t).setNodeConfig(o), this._stampProductTdDomAttributes(t, o, r), r.apply(new c("Recover Items block config from saved module"));
85
85
  }
86
86
  /**
87
87
  * Bakes the compiler-read DOM attributes (`data-type`, `data-number`, `data-nodup`) onto the
@@ -91,12 +91,14 @@ class O extends I {
91
91
  * restored before export. The name `<a>` carries no data-type/data-number of its own and
92
92
  * relies on this td-level fallback in pairProductVariables.
93
93
  */
94
- _stampProductTdDomAttributes(e, t, o) {
95
- const i = h(t.itemsSelectValue, t.type);
96
- o.modifyHtml(e).setAttribute("data-type", t.type), o.modifyHtml(e).setAttribute("data-number", i), o.modifyHtml(e).setAttribute("data-nodup", String(t.priceHideDiscount));
94
+ _stampProductTdDomAttributes(n, t, a, e = !1) {
95
+ const o = D(t.itemsSelectValue, t.type), r = (i, s) => {
96
+ e && n.getAttribute(i) || a.modifyHtml(n).setAttribute(i, s);
97
+ };
98
+ r("data-type", t.type), r("data-number", o), r("data-nodup", String(t.priceHideDiscount));
97
99
  }
98
100
  }
99
101
  export {
100
102
  p as BLOCK_ID,
101
- O as ItemsBlock
103
+ E as ItemsBlock
102
104
  };
@@ -1,44 +1,44 @@
1
- import E from "../../../../node_modules/lodash-es/flatMap.js";
2
- import s from "../../../../node_modules/lodash-es/range.js";
3
- const t = '<td align="center" class="ins-product-td items-block items-block-v2">', r = { PAIRS_FOR_EXTENSION: {
1
+ import _ from "../../../../node_modules/lodash-es/flatMap.js";
2
+ import E from "../../../../node_modules/lodash-es/range.js";
3
+ const T = '<td align="center" class="ins-product-td items-block items-block-v2">', a = { PAIRS_FOR_EXTENSION: {
4
4
  imageSrc: {
5
5
  CART_ITEMS: {
6
6
  ATTR: "ins_apr_img",
7
7
  DEFAULT: [
8
- "https://web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_1.jpeg",
9
- "https://web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_2.webp",
10
- "https://web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_3.jpeg",
11
- "https://web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_4.jpeg",
12
- "https://web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_5.jpeg",
13
- "https://web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_6.jpeg",
14
- "https://web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_7.jpeg",
15
- "https://web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_8.jpeg"
8
+ "https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_1.jpeg",
9
+ "https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_2.webp",
10
+ "https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_3.jpeg",
11
+ "https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_4.jpeg",
12
+ "https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_5.jpeg",
13
+ "https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_6.jpeg",
14
+ "https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_7.jpeg",
15
+ "https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_8.jpeg"
16
16
  ]
17
17
  },
18
18
  BROWSED_ITEMS: {
19
19
  ATTR: "browsed_item_img",
20
20
  DEFAULT: [
21
- "https://web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_1.jpeg",
22
- "https://web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_2.webp",
23
- "https://web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_3.jpeg",
24
- "https://web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_4.jpeg",
25
- "https://web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_5.jpeg",
26
- "https://web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_6.jpeg",
27
- "https://web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_7.jpeg",
28
- "https://web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_8.jpeg"
21
+ "https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_1.jpeg",
22
+ "https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_2.webp",
23
+ "https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_3.jpeg",
24
+ "https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_4.jpeg",
25
+ "https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_5.jpeg",
26
+ "https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_6.jpeg",
27
+ "https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_7.jpeg",
28
+ "https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_8.jpeg"
29
29
  ]
30
30
  },
31
31
  PURCHASED_ITEMS: {
32
32
  ATTR: "purchased_item_img",
33
33
  DEFAULT: [
34
- "https://web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_1.jpeg",
35
- "https://web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_2.webp",
36
- "https://web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_3.jpeg",
37
- "https://web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_4.jpeg",
38
- "https://web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_5.jpeg",
39
- "https://web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_6.jpeg",
40
- "https://web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_7.jpeg",
41
- "https://web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_8.jpeg"
34
+ "https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_1.jpeg",
35
+ "https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_2.webp",
36
+ "https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_3.jpeg",
37
+ "https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_4.jpeg",
38
+ "https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_5.jpeg",
39
+ "https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_6.jpeg",
40
+ "https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_7.jpeg",
41
+ "https://s3-eu-west-1.amazonaws.com/web-image.useinsider.com/email-assets/dummyImages/products/ins_apr_img_8.jpeg"
42
42
  ]
43
43
  }
44
44
  },
@@ -211,27 +211,27 @@ const t = '<td align="center" class="ins-product-td items-block items-block-v2">
211
211
  }
212
212
  }
213
213
  } };
214
- function a(e, i = 8) {
215
- return s(1, i + 1).map((_) => `${e}_${_}`);
214
+ function m(e, s = 8) {
215
+ return E(1, s + 1).map((i) => `${e}_${i}`);
216
216
  }
217
- function R() {
218
- const { PAIRS_FOR_EXTENSION: e } = r, i = [];
219
- return i.push(
217
+ function r() {
218
+ const { PAIRS_FOR_EXTENSION: e } = a, s = [];
219
+ return s.push(
220
220
  e.imageSrc.CART_ITEMS.ATTR,
221
221
  e.imageSrc.BROWSED_ITEMS.ATTR,
222
222
  e.imageSrc.PURCHASED_ITEMS.ATTR
223
- ), i.push(
223
+ ), s.push(
224
224
  e.name.CART_ITEMS.ATTR,
225
225
  e.name.CART_ITEMS.HREF,
226
226
  e.name.BROWSED_ITEMS.ATTR,
227
227
  e.name.BROWSED_ITEMS.HREF,
228
228
  e.name.PURCHASED_ITEMS.ATTR,
229
229
  e.name.PURCHASED_ITEMS.HREF
230
- ), i.push(
230
+ ), s.push(
231
231
  e.quantity.CART_ITEMS.ATTR,
232
232
  e.quantity.BROWSED_ITEMS.ATTR,
233
233
  e.quantity.PURCHASED_ITEMS.ATTR
234
- ), i.push(
234
+ ), s.push(
235
235
  e.price.CART_ITEMS.PRICE,
236
236
  e.price.CART_ITEMS.PRICE_FORMATTED,
237
237
  e.price.CART_ITEMS.SINGLE_PRICE,
@@ -247,7 +247,7 @@ function R() {
247
247
  e.price.PURCHASED_ITEMS.SINGLE_PRICE,
248
248
  e.price.PURCHASED_ITEMS.SINGLE_PRICE_FORMATTED,
249
249
  e.price.PURCHASED_ITEMS.CURRENCY
250
- ), i.push(
250
+ ), s.push(
251
251
  e.originalPrice.CART_ITEMS.PRICE,
252
252
  e.originalPrice.CART_ITEMS.PRICE_FORMATTED,
253
253
  e.originalPrice.CART_ITEMS.SINGLE_PRICE,
@@ -263,22 +263,22 @@ function R() {
263
263
  e.originalPrice.PURCHASED_ITEMS.SINGLE_PRICE,
264
264
  e.originalPrice.PURCHASED_ITEMS.SINGLE_PRICE_FORMATTED,
265
265
  e.originalPrice.PURCHASED_ITEMS.CURRENCY
266
- ), i.push(
266
+ ), s.push(
267
267
  e.button.CART_ITEMS.HREF,
268
268
  e.button.BROWSED_ITEMS.HREF,
269
269
  e.button.PURCHASED_ITEMS.HREF
270
- ), i.push(
270
+ ), s.push(
271
271
  e.itemLink.CART_ITEMS.HREF,
272
272
  e.itemLink.BROWSED_ITEMS.HREF,
273
273
  e.itemLink.PURCHASED_ITEMS.HREF
274
- ), i;
274
+ ), s;
275
275
  }
276
- const p = E(
277
- R(),
278
- (e) => a(e)
276
+ const o = _(
277
+ r(),
278
+ (e) => m(e)
279
279
  );
280
280
  export {
281
- p as itemsBlockDynamicVariables,
282
- r as productPairs,
283
- t as templateFirstLine
281
+ o as itemsBlockDynamicVariables,
282
+ a as productPairs,
283
+ T as templateFirstLine
284
284
  };