@useinsider/guido 3.19.0-beta.e110e88 → 3.19.0-beta.e424587

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 +104 -91
  2. package/dist/components/Guido.vue.js +6 -6
  3. package/dist/components/Guido.vue2.js +96 -85
  4. package/dist/components/organisms/base/AuthErrorModal.vue.js +18 -0
  5. package/dist/components/organisms/base/AuthErrorModal.vue2.js +42 -0
  6. package/dist/components/wrappers/WpModal.vue.js +1 -1
  7. package/dist/components/wrappers/WpModal.vue2.js +4 -3
  8. package/dist/composables/useAuthError.js +52 -0
  9. package/dist/composables/useAutoSave.js +11 -11
  10. package/dist/composables/useCortexBlueprintBridge.js +122 -54
  11. package/dist/composables/useEmailTemplateApplier.js +111 -50
  12. package/dist/composables/useHttp.js +64 -54
  13. package/dist/composables/useLegacyStrategyConversion.js +23 -19
  14. package/dist/composables/useStripo.js +24 -20
  15. package/dist/composables/useToaster.js +17 -15
  16. package/dist/composables/validators/useLiquidValidator.js +15 -15
  17. package/dist/config/compiler/itemsCompilerRules.js +14 -5
  18. package/dist/config/compiler/utils/itemsCompilerUtils.js +48 -21
  19. package/dist/config/migrator/index.js +14 -13
  20. package/dist/config/migrator/itemsBlockMigrator.js +245 -253
  21. package/dist/config/migrator/recommendationMigrator.js +28 -21
  22. package/dist/config/migrator/recommendationPartnerMigrator.js +56 -0
  23. package/dist/enums/extensions/recommendationBlock.js +30 -29
  24. package/dist/extensions/Blocks/Items/block.js +78 -67
  25. package/dist/extensions/Blocks/Items/constants/cardLayout.js +20 -0
  26. package/dist/extensions/Blocks/Items/constants/cardWidth.js +20 -0
  27. package/dist/extensions/Blocks/Items/controls/name/trimming.js +18 -17
  28. package/dist/extensions/Blocks/Items/controls/settingsControl.js +114 -105
  29. package/dist/extensions/Blocks/Items/enums/productEnums.js +14 -9
  30. package/dist/extensions/Blocks/Items/layouts/horizontal.html.js +11 -9
  31. package/dist/extensions/Blocks/Items/layouts/vertical.html.js +1 -1
  32. package/dist/extensions/Blocks/Items/template.js +219 -204
  33. package/dist/extensions/Blocks/Recommendation/block.js +21 -22
  34. package/dist/extensions/Blocks/Recommendation/controls/main/index.js +97 -107
  35. package/dist/extensions/Blocks/Recommendation/controls/main/strategy.js +72 -49
  36. package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +203 -209
  37. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +67 -91
  38. package/dist/extensions/Blocks/Recommendation/utils/nodeConfigWriter.js +21 -26
  39. package/dist/extensions/Blocks/Recommendation/utils/partnerCustomizations.js +3 -1
  40. package/dist/extensions/Blocks/Recommendation/utils/partnerScope.js +25 -0
  41. package/dist/extensions/Blocks/Recommendation/utils/strategyCommit.js +16 -55
  42. package/dist/guido.css +1 -1
  43. package/dist/src/@types/config/schemas.d.ts +16 -0
  44. package/dist/src/components/organisms/base/AuthErrorModal.vue.d.ts +2 -0
  45. package/dist/src/components/wrappers/WpModal.vue.d.ts +5 -1
  46. package/dist/src/composables/useAuthError.d.ts +12 -0
  47. package/dist/src/composables/useConfig.d.ts +2 -0
  48. package/dist/src/composables/useCortexBlueprintBridge.d.ts +2 -3
  49. package/dist/src/composables/useEmailTemplateApplier.d.ts +18 -5
  50. package/dist/src/composables/useGuidoActions.d.ts +2 -0
  51. package/dist/src/composables/useHttp.d.ts +2 -0
  52. package/dist/src/config/compiler/utils/itemsCompilerUtils.d.ts +5 -0
  53. package/dist/src/config/migrator/index.d.ts +2 -1
  54. package/dist/src/config/migrator/recommendationPartnerMigrator.d.ts +19 -0
  55. package/dist/src/enums/extensions/recommendationBlock.d.ts +1 -1
  56. package/dist/src/extensions/Blocks/Items/block.d.ts +5 -0
  57. package/dist/src/extensions/Blocks/Items/constants/cardLayout.d.ts +44 -0
  58. package/dist/src/extensions/Blocks/Items/constants/cardWidth.d.ts +12 -0
  59. package/dist/src/extensions/Blocks/Items/enums/productEnums.d.ts +3 -0
  60. package/dist/src/extensions/Blocks/Items/template.d.ts +19 -0
  61. package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +0 -2
  62. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +2 -13
  63. package/dist/src/extensions/Blocks/Recommendation/types/nodeConfig.d.ts +6 -0
  64. package/dist/src/extensions/Blocks/Recommendation/utils/nodeConfigWriter.d.ts +1 -3
  65. package/dist/src/extensions/Blocks/Recommendation/utils/partnerScope.d.ts +33 -0
  66. package/dist/src/extensions/Blocks/Recommendation/utils/strategyCommit.d.ts +0 -7
  67. package/dist/src/mock/cortexChatStore.d.ts +12 -0
  68. package/dist/src/stores/config.d.ts +20 -0
  69. package/dist/src/stores/guido-email-editor.d.ts +20 -10
  70. package/dist/src/stores/onboarding.d.ts +4 -0
  71. package/dist/src/stores/recommendation.d.ts +5 -0
  72. package/dist/src/utils/dateUtil.d.ts +10 -0
  73. package/dist/src/utils/genericUtil.d.ts +3 -0
  74. package/dist/src/utils/liquidProtection.d.ts +3 -0
  75. package/dist/static/styles/components/recommendation-strategy.css.js +9 -0
  76. package/dist/static/styles/components/version-history.css.js +2 -6
  77. package/dist/stores/guido-email-editor.js +3 -1
  78. package/dist/stores/onboarding.js +4 -0
  79. package/dist/utils/liquidProtection.js +5 -0
  80. package/dist/utils/pairProductVariables.js +71 -71
  81. package/package.json +1 -1
@@ -17,21 +17,21 @@ import { buildMergeTagEntries as W, flattenDynamicContentList as Y } from "../ut
17
17
  import Z from "../package.json.js";
18
18
  let n = null;
19
19
  const he = () => {
20
- const { features: c, template: u, isFeatureEnabled: m } = H(), { handleError: p, showToaster: B } = G(), { getToken: M, getCustomFonts: T, getSyncModulesStatus: v } = K(), { handleEvent: F } = z(), { handleModuleAdd: A } = j(), { getStripoBlocksConfig: V } = O(), { getStripoNotifications: _ } = $(), f = () => n || (n = new Promise((i, s) => {
20
+ const { features: c, template: u, isFeatureEnabled: p } = H(), { handleError: m, showToaster: v } = G(), { getToken: B, getCustomFonts: M, getSyncModulesStatus: T } = K(), { handleEvent: F } = z(), { handleModuleAdd: A } = j(), { getStripoBlocksConfig: V } = O(), { getStripoNotifications: _ } = $(), f = () => n || (n = new Promise((r, s) => {
21
21
  var d;
22
22
  if (document.getElementById("UiEditorScript")) {
23
- i();
23
+ r();
24
24
  return;
25
25
  }
26
- const o = Z.guido, r = `https://email-static.useinsider.com/guido/${(d = o == null ? void 0 : o.stripo) == null ? void 0 : d.version}/UIEditor.js`, e = document.createElement("script");
27
- e.id = "UiEditorScript", e.type = "module", e.src = r, e.onload = () => i(), e.onerror = () => {
28
- e.remove(), s(new Error(`Failed to load Stripo UIEditor script from S3: ${r}`));
26
+ const o = Z.guido, i = `https://email-static.useinsider.com/guido/${(d = o == null ? void 0 : o.stripo) == null ? void 0 : d.version}/UIEditor.js`, e = document.createElement("script");
27
+ e.id = "UiEditorScript", e.type = "module", e.src = i, e.onload = () => r(), e.onerror = () => {
28
+ e.remove(), s(new Error(`Failed to load Stripo UIEditor script from S3: ${i}`));
29
29
  }, document.body.appendChild(e);
30
30
  }), n.catch(() => {
31
31
  n = null;
32
- }), n), D = async (i, s, o, a = [], r = !1) => {
32
+ }), n), D = async (r, s, o, a = [], i = !1) => {
33
33
  var y, E, h, C;
34
- const e = k(), { html: d, css: R } = i, { baseBlocks: g, extensions: P } = await V(), S = ((y = c.value) == null ? void 0 : y.displayConditions) ?? !0, U = ((E = c.value) == null ? void 0 : E.modulesDisabled) ?? !1, I = !!d || (((h = u.value) == null ? void 0 : h.forceRecreate) ?? !1), q = "https://email-static.useinsider.com https://edge.fullstory.com https://rs.fullstory.com";
34
+ const e = k(), { html: d, css: R } = r, { baseBlocks: g, extensions: P } = await V(), S = ((y = c.value) == null ? void 0 : y.displayConditions) ?? !0, U = ((E = c.value) == null ? void 0 : E.modulesDisabled) ?? !1, I = !!d || (((h = u.value) == null ? void 0 : h.forceRecreate) ?? !1), q = "https://email-static.useinsider.com https://edge.fullstory.com https://rs.fullstory.com";
35
35
  w().importCss(), await window.UIEditor.initEditor(
36
36
  document.querySelector("#guido-editor"),
37
37
  {
@@ -45,7 +45,7 @@ const he = () => {
45
45
  mobileViewButtonSelector: ".guido__view-option-selection-mobile",
46
46
  desktopViewButtonSelector: ".guido__view-option-selection-desktop",
47
47
  codeEditorButtonSelector: "#guido__code-button",
48
- customAppearanceMergetags: !m("liquidSyntax"),
48
+ customAppearanceMergetags: !p("liquidSyntax"),
49
49
  customAppearanceMergetagsBorderColor: "#f1f3fe",
50
50
  customAppearanceMergetagsBackgroundColor: "#f1f3fe",
51
51
  customViewStyles: Q,
@@ -53,7 +53,7 @@ const he = () => {
53
53
  customConditionsEnabled: S,
54
54
  enableXSSSecurity: !0,
55
55
  modulesDisabled: U,
56
- syncModulesEnabled: r,
56
+ syncModulesEnabled: i,
57
57
  messageSettingsEnabled: !0,
58
58
  displayGmailAnnotations: !0,
59
59
  displayHiddenPreheader: !1,
@@ -74,16 +74,16 @@ const he = () => {
74
74
  entries: W(
75
75
  o.preselectedDynamicContentList,
76
76
  Y((C = u.value) == null ? void 0 : C.dynamicContentList),
77
- m("liquidSyntax")
77
+ p("liquidSyntax")
78
78
  )
79
79
  }
80
80
  ],
81
81
  async onTokenRefreshRequest(t) {
82
82
  try {
83
- const l = await M();
83
+ const l = await B();
84
84
  t(l);
85
85
  } catch (l) {
86
- p(l, "Failed to refresh token");
86
+ m(l, "Failed to refresh token");
87
87
  }
88
88
  },
89
89
  onTemplateLoaded() {
@@ -93,7 +93,7 @@ const he = () => {
93
93
  e.hasChanges = !1;
94
94
  }, 1e3);
95
95
  } catch (t) {
96
- p(t, "Failed to load custom interface appearance");
96
+ m(t, "Failed to load custom interface appearance");
97
97
  }
98
98
  },
99
99
  onCodeEditorVisibilityChanged(t) {
@@ -111,27 +111,31 @@ const he = () => {
111
111
  onEvent: F,
112
112
  onModuleAdd: A,
113
113
  notifications: _(),
114
+ // Stripo deselects the block on any click outside the canvas, so every surface
115
+ // that belongs to the block's own flow has to be listed here (SD-153273).
114
116
  ignoreClickOutsideSelectors: [
115
117
  "#guido-dynamic-content-modal",
116
118
  ".in-on-board-wrapper",
117
- ".in-drawer__container"
119
+ ".in-drawer__container",
120
+ ".in-modal-v2-wrapper",
121
+ ".in-toasts-wrapper"
118
122
  ],
119
123
  extensions: P,
120
124
  localePatch: J
121
125
  }
122
126
  );
123
127
  };
124
- return { initPlugin: async (i, s, o) => {
128
+ return { initPlugin: async (r, s, o) => {
125
129
  const a = k();
126
130
  try {
127
131
  await f();
128
- const [r, e] = await Promise.all([
129
- T(),
130
- v()
132
+ const [i, e] = await Promise.all([
133
+ M(),
134
+ T()
131
135
  ]);
132
- a.syncModulesEnabled = e, await D(i, s, o, r, e);
136
+ a.syncModulesEnabled = e, await D(r, s, o, i, e);
133
137
  } catch {
134
- a.loadingStatus = !1, B({
138
+ a.loadingStatus = !1, v({
135
139
  type: X.Error,
136
140
  message: b["An error has occurred. Please report the error code to support."],
137
141
  actionButton: {
@@ -1,26 +1,28 @@
1
1
  import { ToasterTypeOptions as T } from "../enums/toaster.js";
2
- import { useToasterStore as c } from "../stores/toaster.js";
3
- import { nextTick as u } from "vue";
2
+ import { useToasterStore as u } from "../stores/toaster.js";
3
+ import { nextTick as c } from "vue";
4
4
  const s = /* @__PURE__ */ new WeakMap(), p = () => {
5
- const e = c(), o = () => {
6
- const t = s.get(e);
7
- t && (clearTimeout(t), s.delete(e));
5
+ const t = u(), o = () => {
6
+ const e = s.get(t);
7
+ e && (clearTimeout(e), s.delete(t));
8
8
  };
9
- function r(t = { message: "" }) {
10
- o(), e.hideToaster(), u(() => {
11
- e.showToaster(t), e.shouldAutoHide && s.set(e, setTimeout(() => {
12
- e.hideToaster(), o();
9
+ function i(e = { message: "" }) {
10
+ o(), t.hideToaster(), c(() => {
11
+ t.showToaster(e), t.shouldAutoHide && s.set(t, setTimeout(() => {
12
+ t.hideToaster(), o();
13
13
  }, 6e3));
14
14
  });
15
15
  }
16
- function i() {
17
- o(), e.hideToaster();
16
+ function n() {
17
+ o(), t.hideToaster();
18
18
  }
19
- function n(t, a) {
20
- const m = t instanceof Error ? t.message : String(t);
21
- r({ type: T.Error, message: `${a}: ${m}` });
19
+ function a(e, r) {
20
+ if (e != null && e.authReported)
21
+ return;
22
+ const m = e instanceof Error ? e.message : String(e);
23
+ i({ type: T.Error, message: `${r}: ${m}` });
22
24
  }
23
- return { showToaster: r, hideToaster: i, handleError: n };
25
+ return { showToaster: i, hideToaster: n, handleError: a };
24
26
  };
25
27
  export {
26
28
  p as useToaster
@@ -1,13 +1,13 @@
1
- import { ToasterTypeOptions as a } from "../../enums/toaster.js";
1
+ import { ToasterTypeOptions as r } from "../../enums/toaster.js";
2
2
  import { base64EncodeWithSpecialChars as u } from "../../utils/base64.js";
3
3
  import { useHttp as d } from "../useHttp.js";
4
- import { useToaster as c } from "../useToaster.js";
5
- import { useTranslations as p } from "../useTranslations.js";
4
+ import { useToaster as p } from "../useToaster.js";
5
+ import { useTranslations as c } from "../useTranslations.js";
6
6
  const v = () => {
7
- const { post: i } = d(), { showToaster: e } = c(), s = p();
7
+ const { post: i } = d(), { showToaster: t } = p(), s = c();
8
8
  return { validateLiquidSyntax: async (o) => {
9
9
  try {
10
- const t = await i("/newsletter/contents/validate-syntax", [{
10
+ const e = await i("/newsletter/contents/validate-syntax", [{
11
11
  identifier: "default",
12
12
  syntax: "liquid",
13
13
  contents: {
@@ -17,21 +17,21 @@ const v = () => {
17
17
  ampHtml: null
18
18
  }
19
19
  }]);
20
- if (!Array.isArray(t.data)) {
21
- const l = t.data;
22
- return e({
23
- type: a.Warning,
20
+ if (!Array.isArray(e.data)) {
21
+ const l = e.data;
22
+ return t({
23
+ type: r.Warning,
24
24
  message: l.message ?? s("journey-builder.liquid-validation-failed")
25
25
  }), !1;
26
26
  }
27
- const [r] = t.data, n = Object.values((r == null ? void 0 : r.errors) ?? {});
28
- return n.length ? (e({
29
- type: a.Warning,
27
+ const [a] = e.data, n = Object.values((a == null ? void 0 : a.errors) ?? {});
28
+ return n.length ? (t({
29
+ type: r.Warning,
30
30
  message: n[0].replace(/^line \d+:\s*/, "")
31
31
  }), !1) : !0;
32
- } catch {
33
- return e({
34
- type: a.Error,
32
+ } catch (e) {
33
+ return e != null && e.authReported || t({
34
+ type: r.Error,
35
35
  message: s("journey-builder.liquid-validation-failed")
36
36
  }), !1;
37
37
  }
@@ -1,6 +1,15 @@
1
1
  import { pairProductVariables as o } from "../../utils/pairProductVariables.js";
2
- import { wrapHiddenPriceTdsForOutlook as r, MSO_ITEMS_HIDE_START as e, MSO_ITEMS_HIDE_END as t } from "./utils/itemsCompilerUtils.js";
3
- const a = [
2
+ import { normalizeItemsBlockWidths as r, wrapHiddenPriceTdsForOutlook as e, MSO_ITEMS_HIDE_START as t, MSO_ITEMS_HIDE_END as s } from "./utils/itemsCompilerUtils.js";
3
+ const d = [
4
+ {
5
+ id: "normalize-items-block-widths",
6
+ // Runs before the other items rules so they see non-zero widths; not AMP-safe.
7
+ description: "Normalize zero Items card widths in the compiled email",
8
+ type: "custom",
9
+ processor: r,
10
+ priority: 55
11
+ // Before pair-product-variables (60)
12
+ },
4
13
  {
5
14
  id: "pair-product-variables",
6
15
  description: "Replace product default values with template variables",
@@ -16,7 +25,7 @@ const a = [
16
25
  // with safe placeholder comments and collapse them inline for web-engine Outlook.
17
26
  description: "Mark hidden Items price tds for Outlook conditional hiding",
18
27
  type: "custom",
19
- processor: r,
28
+ processor: e,
20
29
  priority: 65
21
30
  // After pair-product-variables (60), before outlook rules (70+)
22
31
  },
@@ -26,10 +35,10 @@ const a = [
26
35
  // and reco swap P100) keeps it out of every whitespace/comment-mangling pass.
27
36
  description: "Swap Items MSO markers into [if !mso] conditional comments",
28
37
  type: "custom",
29
- processor: (i) => i.replaceAll(`<!--${e}-->`, "<!--[if !mso]><!-- -->").replaceAll(`<!--${t}-->`, "<!--<![endif]-->"),
38
+ processor: (i) => i.replaceAll(`<!--${t}-->`, "<!--[if !mso]><!-- -->").replaceAll(`<!--${s}-->`, "<!--<![endif]-->"),
30
39
  priority: 101
31
40
  }
32
41
  ];
33
42
  export {
34
- a as itemsCompilerRules
43
+ d as itemsCompilerRules
35
44
  };
@@ -1,28 +1,55 @@
1
- const p = "MSO_ITEMS_HIDE_START", E = "MSO_ITEMS_HIDE_END", u = "mso-hide:all; max-height:0; overflow:hidden; font-size:0; line-height:0;", _ = ".ins-product-cart td.horizontal-price, .ins-product-cart td.vertical-price";
2
- function T(t) {
3
- if (!t.includes("vertical-price") || !t.includes("ins-product-cart"))
4
- return t;
5
- const i = t.replaceAll("{%", "<!--{%").replaceAll("%}", "%}-->"), r = new DOMParser().parseFromString(i, "text/html");
6
- let n = !1;
7
- if (r.querySelectorAll(_).forEach((e) => {
8
- var s, a;
9
- const o = e.getAttribute("style") || "";
1
+ import { PRODUCT_WRAPPER_SELECTOR as A, hasZeroWidthDeclaration as E, isZeroWidthValue as u, withWidthPin as h, PRODUCT_TD_SELECTOR as S, withoutZeroWidth as _ } from "../../../extensions/Blocks/Items/constants/cardWidth.js";
2
+ import { protectLiquid as m, restoreLiquid as y } from "../../../utils/liquidProtection.js";
3
+ const f = "MSO_ITEMS_HIDE_START", D = "MSO_ITEMS_HIDE_END", T = "mso-hide:all; max-height:0; overflow:hidden; font-size:0; line-height:0;", M = ".ins-product-cart td.horizontal-price, .ins-product-cart td.vertical-price";
4
+ function g(e) {
5
+ if (!e.includes("vertical-price") || !e.includes("ins-product-cart"))
6
+ return e;
7
+ const n = e.replaceAll("{%", "<!--{%").replaceAll("%}", "%}-->"), r = new DOMParser().parseFromString(n, "text/html");
8
+ let s = !1;
9
+ if (r.querySelectorAll(M).forEach((t) => {
10
+ var d, a;
11
+ const o = t.getAttribute("style") || "";
10
12
  if (!/display\s*:\s*none/i.test(o))
11
13
  return;
12
- const c = e.previousSibling;
13
- if (((c == null ? void 0 : c.nodeType) !== Node.COMMENT_NODE || c.data !== p) && ((s = e.parentNode) == null || s.insertBefore(r.createComment(p), e), (a = e.parentNode) == null || a.insertBefore(r.createComment(E), e.nextSibling)), !/mso-hide/i.test(o)) {
14
- const d = o.trim().endsWith(";") ? " " : "; ";
15
- e.setAttribute("style", `${o}${d}${u}`);
14
+ const l = t.previousSibling;
15
+ if (((l == null ? void 0 : l.nodeType) !== Node.COMMENT_NODE || l.data !== f) && ((d = t.parentNode) == null || d.insertBefore(r.createComment(f), t), (a = t.parentNode) == null || a.insertBefore(r.createComment(D), t.nextSibling)), !/mso-hide/i.test(o)) {
16
+ const p = o.trim().endsWith(";") ? " " : "; ";
17
+ t.setAttribute("style", `${o}${p}${T}`);
16
18
  }
17
- n = !0;
18
- }), !n)
19
- return t;
20
- const l = i.match(/<!DOCTYPE[^>]*>/i);
21
- return ((l ? `${l[0]}
19
+ s = !0;
20
+ }), !s)
21
+ return e;
22
+ const c = n.match(/<!DOCTYPE[^>]*>/i);
23
+ return ((c ? `${c[0]}
22
24
  ` : "") + r.documentElement.outerHTML).replaceAll("<!--{%", "{%").replaceAll("%}-->", "%}").replaceAll("&lt;!--{%", "{%").replaceAll("%}--&gt;", "%}");
23
25
  }
26
+ function I(e) {
27
+ if (!e.includes("ins-product-wrapper") && !e.includes("ins-product-td"))
28
+ return e;
29
+ const n = new DOMParser().parseFromString(m(e), "text/html");
30
+ let r = !1;
31
+ if (n.querySelectorAll(A).forEach((i) => {
32
+ const t = i.getAttribute("style") || "";
33
+ if (!E(t) && !u(i.getAttribute("width")))
34
+ return;
35
+ const o = h(t);
36
+ o !== t && (i.setAttribute("style", o), r = !0), u(i.getAttribute("width")) && (i.setAttribute("width", "100%"), r = !0);
37
+ }), n.querySelectorAll(S).forEach((i) => {
38
+ const t = i.getAttribute("style") || "";
39
+ if (E(t)) {
40
+ const o = _(t);
41
+ o ? i.setAttribute("style", o) : i.removeAttribute("style"), r = !0;
42
+ }
43
+ u(i.getAttribute("width")) && (i.removeAttribute("width"), r = !0);
44
+ }), !r)
45
+ return e;
46
+ const s = e.match(/<!DOCTYPE[^>]*>/i), c = s ? `${s[0]}
47
+ ` : "";
48
+ return y(c + n.documentElement.outerHTML);
49
+ }
24
50
  export {
25
- E as MSO_ITEMS_HIDE_END,
26
- p as MSO_ITEMS_HIDE_START,
27
- T as wrapHiddenPriceTdsForOutlook
51
+ D as MSO_ITEMS_HIDE_END,
52
+ f as MSO_ITEMS_HIDE_START,
53
+ I as normalizeItemsBlockWidths,
54
+ g as wrapHiddenPriceTdsForOutlook
28
55
  };
@@ -1,16 +1,17 @@
1
- import { migrateCheckbox as t } from "./checkboxMigrator.js";
2
- import { migrateCouponBlock as i } from "./couponBlockMigrator.js";
3
- import { migrateItemsBlock as e } from "./itemsBlockMigrator.js";
4
- import { migrateProductNameLink as a } from "./productNameLinkMigrator.js";
5
- import { migrateRadioButton as n } from "./radioButtonMigrator.js";
6
- import { migrateRecommendation as c } from "./recommendationMigrator.js";
7
- import { migrateRecommendationTitle as g } from "./recommendationTitleMigrator.js";
8
- import { migrateSocialIcons as p } from "./socialIconMigrator.js";
9
- import { migrateUnsubscribe as f } from "./unsubscribeMigrator.js";
10
- const C = async (o, r = {}) => {
11
- let m = o;
12
- return m = t(m), m = n(m), m = await f(m), m = i(m), m = c(m, r), m = g(m), m = e(m), m = a(m), m = p(m), m;
1
+ import { migrateCheckbox as i } from "./checkboxMigrator.js";
2
+ import { migrateCouponBlock as e } from "./couponBlockMigrator.js";
3
+ import { migrateItemsBlock as a } from "./itemsBlockMigrator.js";
4
+ import { migrateProductNameLink as n } from "./productNameLinkMigrator.js";
5
+ import { migrateRadioButton as c } from "./radioButtonMigrator.js";
6
+ import { migrateRecommendation as g } from "./recommendationMigrator.js";
7
+ import { migrateRecommendationPartnerScope as f } from "./recommendationPartnerMigrator.js";
8
+ import { migrateRecommendationTitle as p } from "./recommendationTitleMigrator.js";
9
+ import { migrateSocialIcons as d } from "./socialIconMigrator.js";
10
+ import { migrateUnsubscribe as l } from "./unsubscribeMigrator.js";
11
+ const h = async (r, t = {}, o) => {
12
+ let m = r;
13
+ return m = i(m), m = c(m), m = await l(m), m = e(m), m = g(m, t), o && (m = f(m, o)), m = p(m), m = a(m), m = n(m), m = d(m), m;
13
14
  };
14
15
  export {
15
- C as migrate
16
+ h as migrate
16
17
  };