@useinsider/guido 2.0.0-beta.c9db5fd → 2.0.0-beta.d0056c9

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 (196) hide show
  1. package/dist/components/organisms/email-preview/PreviewContainer.vue.js +3 -3
  2. package/dist/components/organisms/email-preview/amp/AmpErrorModal.vue.js +6 -6
  3. package/dist/components/organisms/email-preview/amp/AmpErrorModal.vue2.js +17 -13
  4. package/dist/components/organisms/email-preview/amp/AmpToggle.vue.js +6 -6
  5. package/dist/components/organisms/email-preview/amp/AmpToggle.vue2.js +14 -12
  6. package/dist/components/organisms/email-preview/desktop-preview/DesktopBrowserHeader.vue.js +18 -0
  7. package/dist/components/organisms/email-preview/desktop-preview/DesktopBrowserHeader.vue2.js +15 -0
  8. package/dist/components/organisms/email-preview/desktop-preview/DesktopPreview.vue.js +10 -14
  9. package/dist/components/organisms/email-preview/desktop-preview/DesktopPreview.vue2.js +14 -22
  10. package/dist/components/organisms/email-preview/desktop-preview/EmailSizeIndicator.vue.js +3 -3
  11. package/dist/components/organisms/email-preview/mobile-preview/ContentView.vue.js +11 -10
  12. package/dist/components/organisms/email-preview/mobile-preview/InboxView.vue.js +12 -10
  13. package/dist/components/organisms/email-preview/mobile-preview/MobilePreview.vue.js +11 -10
  14. package/dist/components/organisms/email-preview/mobile-preview/MobilePreview.vue2.js +15 -14
  15. package/dist/components/organisms/header/EditorActions.vue.js +21 -0
  16. package/dist/components/organisms/header/EditorActions.vue2.js +41 -0
  17. package/dist/components/organisms/header/EditorToolbar.vue.js +18 -0
  18. package/dist/components/organisms/header/EditorToolbar.vue2.js +17 -0
  19. package/dist/components/organisms/header/HeaderWrapper.vue.js +6 -5
  20. package/dist/components/organisms/header/LeftSlot.vue.js +11 -11
  21. package/dist/components/organisms/header/LeftSlot.vue2.js +11 -12
  22. package/dist/components/organisms/header/MiddleSlot.vue.js +7 -7
  23. package/dist/components/organisms/header/MiddleSlot.vue2.js +11 -15
  24. package/dist/components/organisms/header/RightSlot.vue.js +11 -14
  25. package/dist/components/organisms/header/RightSlot.vue2.js +13 -30
  26. package/dist/components/organisms/header/version-history/VersionHistory.vue.js +5 -5
  27. package/dist/components/organisms/onboarding/NewVersionPopup.vue2.js +15 -15
  28. package/dist/components/organisms/unsubscribe/UnsubscribeTypeSelection.vue.js +1 -1
  29. package/dist/components/organisms/unsubscribe/UnsubscribeTypeSelection.vue2.js +20 -19
  30. package/dist/config/migrator/recommendationMigrator.js +1 -1
  31. package/dist/enums/academy.js +8 -0
  32. package/dist/enums/onboarding.js +1 -2
  33. package/dist/enums/unsubscribe.js +20 -21
  34. package/dist/extensions/Blocks/Items/controls/cardComposition.js +4 -13
  35. package/dist/extensions/Blocks/Recommendation/block.js +1 -1
  36. package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +103 -0
  37. package/dist/extensions/Blocks/Recommendation/constants.js +5 -0
  38. package/dist/extensions/Blocks/Recommendation/control.js +306 -0
  39. package/dist/extensions/Blocks/Recommendation/controls/button/align.js +13 -0
  40. package/dist/extensions/Blocks/Recommendation/controls/button/border.js +13 -0
  41. package/dist/extensions/Blocks/Recommendation/controls/button/borderRadius.js +13 -0
  42. package/dist/extensions/Blocks/Recommendation/controls/button/color.js +13 -0
  43. package/dist/extensions/Blocks/Recommendation/controls/button/fitToContent.js +13 -0
  44. package/dist/extensions/Blocks/Recommendation/controls/button/fontFamily.js +13 -0
  45. package/dist/extensions/Blocks/Recommendation/controls/button/margins.js +13 -0
  46. package/dist/extensions/Blocks/Recommendation/controls/button/paddings.js +13 -0
  47. package/dist/extensions/Blocks/Recommendation/controls/button/text.js +13 -0
  48. package/dist/extensions/Blocks/Recommendation/controls/button/textSize.js +13 -0
  49. package/dist/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.js +13 -0
  50. package/dist/extensions/Blocks/Recommendation/controls/image/margins.js +13 -0
  51. package/dist/extensions/Blocks/Recommendation/controls/image/size.js +13 -0
  52. package/dist/extensions/Blocks/Recommendation/controls/name/align.js +13 -0
  53. package/dist/extensions/Blocks/Recommendation/controls/name/background.js +13 -0
  54. package/dist/extensions/Blocks/Recommendation/controls/name/color.js +13 -0
  55. package/dist/extensions/Blocks/Recommendation/controls/name/fontFamily.js +13 -0
  56. package/dist/extensions/Blocks/Recommendation/controls/name/paddings.js +13 -0
  57. package/dist/extensions/Blocks/Recommendation/controls/name/size.js +13 -0
  58. package/dist/extensions/Blocks/Recommendation/controls/name/style.js +13 -0
  59. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/align.js +13 -0
  60. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/background.js +13 -0
  61. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/color.js +13 -0
  62. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.js +13 -0
  63. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/paddings.js +13 -0
  64. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/size.js +13 -0
  65. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/style.js +13 -0
  66. package/dist/extensions/Blocks/Recommendation/controls/price/align.js +13 -0
  67. package/dist/extensions/Blocks/Recommendation/controls/price/background.js +13 -0
  68. package/dist/extensions/Blocks/Recommendation/controls/price/color.js +13 -0
  69. package/dist/extensions/Blocks/Recommendation/controls/price/fontFamily.js +13 -0
  70. package/dist/extensions/Blocks/Recommendation/controls/price/paddings.js +13 -0
  71. package/dist/extensions/Blocks/Recommendation/controls/price/size.js +13 -0
  72. package/dist/extensions/Blocks/Recommendation/controls/price/style.js +13 -0
  73. package/dist/extensions/Blocks/Recommendation/extension.js +43 -39
  74. package/dist/extensions/Blocks/Recommendation/recommendation.css.js +0 -5
  75. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +72 -127
  76. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +20 -20
  77. package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +160 -0
  78. package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +152 -0
  79. package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +88 -67
  80. package/dist/extensions/Blocks/controlFactories.js +121 -155
  81. package/dist/guido.css +1 -1
  82. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +291 -361
  83. package/dist/package.json.js +1 -1
  84. package/dist/src/components/organisms/email-preview/desktop-preview/DesktopBrowserHeader.vue.d.ts +2 -0
  85. package/dist/src/components/organisms/header/EditorActions.vue.d.ts +4 -0
  86. package/dist/src/components/organisms/header/EditorToolbar.vue.d.ts +2 -0
  87. package/dist/src/components/organisms/header/RightSlot.vue.d.ts +1 -1
  88. package/dist/src/enums/academy.d.ts +12 -0
  89. package/dist/src/enums/onboarding.d.ts +0 -1
  90. package/dist/src/enums/unsubscribe.d.ts +0 -1
  91. package/dist/src/extensions/Blocks/Recommendation/cardCompositionControl.d.ts +28 -0
  92. package/dist/src/extensions/Blocks/Recommendation/{constants/controlIds.d.ts → constants.d.ts} +11 -19
  93. package/dist/src/extensions/Blocks/Recommendation/{controls/main/index.d.ts → control.d.ts} +3 -19
  94. package/dist/src/extensions/Blocks/Recommendation/controls/button/align.d.ts +5 -0
  95. package/dist/src/extensions/Blocks/Recommendation/controls/button/border.d.ts +5 -0
  96. package/dist/src/extensions/Blocks/Recommendation/controls/button/borderRadius.d.ts +5 -0
  97. package/dist/src/extensions/Blocks/Recommendation/controls/button/color.d.ts +5 -0
  98. package/dist/src/extensions/Blocks/Recommendation/controls/button/fitToContent.d.ts +5 -0
  99. package/dist/src/extensions/Blocks/Recommendation/controls/button/fontFamily.d.ts +5 -0
  100. package/dist/src/extensions/Blocks/Recommendation/controls/button/margins.d.ts +5 -0
  101. package/dist/src/extensions/Blocks/Recommendation/controls/button/paddings.d.ts +5 -0
  102. package/dist/src/extensions/Blocks/Recommendation/controls/button/text.d.ts +5 -0
  103. package/dist/src/extensions/Blocks/Recommendation/controls/button/textSize.d.ts +5 -0
  104. package/dist/src/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.d.ts +5 -0
  105. package/dist/src/extensions/Blocks/Recommendation/controls/image/margins.d.ts +5 -0
  106. package/dist/src/extensions/Blocks/Recommendation/controls/image/size.d.ts +5 -0
  107. package/dist/src/extensions/Blocks/Recommendation/controls/name/align.d.ts +5 -0
  108. package/dist/src/extensions/Blocks/Recommendation/controls/name/background.d.ts +5 -0
  109. package/dist/src/extensions/Blocks/Recommendation/controls/name/color.d.ts +5 -0
  110. package/dist/src/extensions/Blocks/Recommendation/controls/name/fontFamily.d.ts +5 -0
  111. package/dist/src/extensions/Blocks/Recommendation/controls/name/paddings.d.ts +5 -0
  112. package/dist/src/extensions/Blocks/Recommendation/controls/name/size.d.ts +5 -0
  113. package/dist/src/extensions/Blocks/Recommendation/controls/name/style.d.ts +5 -0
  114. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/align.d.ts +5 -0
  115. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/background.d.ts +5 -0
  116. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/color.d.ts +5 -0
  117. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.d.ts +5 -0
  118. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/paddings.d.ts +5 -0
  119. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/size.d.ts +5 -0
  120. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/style.d.ts +5 -0
  121. package/dist/src/extensions/Blocks/Recommendation/controls/price/align.d.ts +5 -0
  122. package/dist/src/extensions/Blocks/Recommendation/controls/price/background.d.ts +5 -0
  123. package/dist/src/extensions/Blocks/Recommendation/controls/price/color.d.ts +5 -0
  124. package/dist/src/extensions/Blocks/Recommendation/controls/price/fontFamily.d.ts +5 -0
  125. package/dist/src/extensions/Blocks/Recommendation/controls/price/paddings.d.ts +5 -0
  126. package/dist/src/extensions/Blocks/Recommendation/controls/price/size.d.ts +5 -0
  127. package/dist/src/extensions/Blocks/Recommendation/controls/price/style.d.ts +5 -0
  128. package/dist/src/extensions/Blocks/Recommendation/extension.d.ts +0 -9
  129. package/dist/src/extensions/Blocks/Recommendation/templates/{verticalTemplate.d.ts → blockTemplate.d.ts} +9 -13
  130. package/dist/src/extensions/Blocks/Recommendation/templates/{verticalMigrationTemplate.d.ts → migrationTemplate.d.ts} +4 -11
  131. package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +21 -59
  132. package/dist/src/stores/editor.d.ts +21 -0
  133. package/dist/static/assets/desktop/desktop-mockup-center.svg.js +4 -0
  134. package/dist/static/assets/desktop/desktop-mockup-left.svg.js +4 -0
  135. package/dist/static/assets/desktop/desktop-mockup-right.svg.js +4 -0
  136. package/dist/static/assets/mobile/email-mockup.svg.js +4 -0
  137. package/dist/static/assets/mobile/inbox-mockup.svg.js +4 -0
  138. package/dist/static/styles/components/wide-panel.css.js +5 -1
  139. package/dist/static/styles/customEditorStyle.css.js +2 -38
  140. package/dist/stores/editor.js +1 -0
  141. package/package.json +3 -3
  142. package/dist/components/organisms/email-preview/desktop-preview/EmailHeaderInfo.vue.js +0 -17
  143. package/dist/components/organisms/email-preview/desktop-preview/EmailHeaderInfo.vue2.js +0 -20
  144. package/dist/extensions/Blocks/Recommendation/constants/blockIds.js +0 -4
  145. package/dist/extensions/Blocks/Recommendation/constants/controlIds.js +0 -4
  146. package/dist/extensions/Blocks/Recommendation/constants/selectors.js +0 -11
  147. package/dist/extensions/Blocks/Recommendation/controls/button/index.js +0 -64
  148. package/dist/extensions/Blocks/Recommendation/controls/cardBackground/index.js +0 -100
  149. package/dist/extensions/Blocks/Recommendation/controls/cardComposition/index.js +0 -243
  150. package/dist/extensions/Blocks/Recommendation/controls/image/index.js +0 -19
  151. package/dist/extensions/Blocks/Recommendation/controls/layout/index.js +0 -152
  152. package/dist/extensions/Blocks/Recommendation/controls/main/index.js +0 -370
  153. package/dist/extensions/Blocks/Recommendation/controls/name/index.js +0 -46
  154. package/dist/extensions/Blocks/Recommendation/controls/name/textTrim.js +0 -76
  155. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/index.js +0 -44
  156. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.js +0 -48
  157. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.js +0 -73
  158. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.js +0 -73
  159. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/index.js +0 -48
  160. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.js +0 -73
  161. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.js +0 -73
  162. package/dist/extensions/Blocks/Recommendation/controls/price/index.js +0 -44
  163. package/dist/extensions/Blocks/Recommendation/controls/spacing/index.js +0 -224
  164. package/dist/extensions/Blocks/Recommendation/templates/horizontalElementRenderer.js +0 -157
  165. package/dist/extensions/Blocks/Recommendation/templates/horizontalTemplate.js +0 -78
  166. package/dist/extensions/Blocks/Recommendation/templates/verticalElementRenderer.js +0 -186
  167. package/dist/extensions/Blocks/Recommendation/templates/verticalMigrationTemplate.js +0 -256
  168. package/dist/extensions/Blocks/Recommendation/templates/verticalTemplate.js +0 -81
  169. package/dist/extensions/Blocks/Recommendation/utils/preserveTextStyles.js +0 -25
  170. package/dist/src/extensions/Blocks/Recommendation/constants/blockIds.d.ts +0 -13
  171. package/dist/src/extensions/Blocks/Recommendation/constants/index.d.ts +0 -11
  172. package/dist/src/extensions/Blocks/Recommendation/constants/selectors.d.ts +0 -19
  173. package/dist/src/extensions/Blocks/Recommendation/controls/button/index.d.ts +0 -143
  174. package/dist/src/extensions/Blocks/Recommendation/controls/cardBackground/index.d.ts +0 -41
  175. package/dist/src/extensions/Blocks/Recommendation/controls/cardComposition/index.d.ts +0 -95
  176. package/dist/src/extensions/Blocks/Recommendation/controls/image/index.d.ts +0 -35
  177. package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +0 -23
  178. package/dist/src/extensions/Blocks/Recommendation/controls/layout/index.d.ts +0 -50
  179. package/dist/src/extensions/Blocks/Recommendation/controls/name/index.d.ts +0 -97
  180. package/dist/src/extensions/Blocks/Recommendation/controls/name/textTrim.d.ts +0 -16
  181. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/index.d.ts +0 -95
  182. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.d.ts +0 -100
  183. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.d.ts +0 -15
  184. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.d.ts +0 -15
  185. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/index.d.ts +0 -100
  186. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.d.ts +0 -15
  187. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.d.ts +0 -15
  188. package/dist/src/extensions/Blocks/Recommendation/controls/price/index.d.ts +0 -95
  189. package/dist/src/extensions/Blocks/Recommendation/controls/spacing/index.d.ts +0 -77
  190. package/dist/src/extensions/Blocks/Recommendation/templates/horizontalElementRenderer.d.ts +0 -8
  191. package/dist/src/extensions/Blocks/Recommendation/templates/horizontalMigrationTemplate.d.ts +0 -25
  192. package/dist/src/extensions/Blocks/Recommendation/templates/horizontalTemplate.d.ts +0 -28
  193. package/dist/src/extensions/Blocks/Recommendation/templates/verticalElementRenderer.d.ts +0 -7
  194. package/dist/src/extensions/Blocks/Recommendation/utils/preserveTextStyles.d.ts +0 -19
  195. package/dist/static/assets/inbox-mockup.svg.js +0 -4
  196. package/dist/static/assets/phone-mockup.svg.js +0 -4
@@ -4,29 +4,28 @@ import { useBack as p } from "../../../composables/useGuidoActions.js";
4
4
  import { usePreviewMode as l } from "../../../composables/usePreviewMode.js";
5
5
  import { useTranslations as d } from "../../../composables/useTranslations.js";
6
6
  import { useVersionHistoryApi as k } from "../../../composables/useVersionHistoryApi.js";
7
- import { useEditorStore as B } from "../../../stores/editor.js";
8
- import { InButtonV2 as b } from "@useinsider/design-system-vue";
9
- import _ from "./version-history/RestoreButton.vue.js";
10
- const h = /* @__PURE__ */ u({
7
+ import { useEditorStore as b } from "../../../stores/editor.js";
8
+ import { InButtonV2 as B } from "@useinsider/design-system-vue";
9
+ const P = /* @__PURE__ */ u({
11
10
  __name: "LeftSlot",
12
- setup(v) {
13
- const o = B(), r = p(), { closeVersionHistory: i } = k(), { closePreviewMode: n } = l(), e = d(), { config: t } = f(), c = m(() => {
11
+ setup(_) {
12
+ const e = b(), r = p(), { closeVersionHistory: i } = k(), { closePreviewMode: n } = l(), o = d(), { config: t } = f(), c = m(() => {
14
13
  var s, a;
15
- return o.isVersionHistoryOpen || o.isPreviewModeOpen ? e("email-editor.back-to-editor") : (a = (s = t.value) == null ? void 0 : s.ui) != null && a.backButtonLabel ? t.value.ui.backButtonLabel : e("email-editor.back-to-design");
14
+ return e.isVersionHistoryOpen || e.isPreviewModeOpen ? o("email-editor.back-to-editor") : (a = (s = t.value) == null ? void 0 : s.ui) != null && a.backButtonLabel ? t.value.ui.backButtonLabel : o("email-editor.back-to-design");
16
15
  });
17
- return { __sfc: !0, editorStore: o, handleBack: r, closeVersionHistory: i, closePreviewMode: n, trans: e, config: t, backButtonLabel: c, handleBackClick: () => {
18
- if (o.isVersionHistoryOpen) {
16
+ return { __sfc: !0, editorStore: e, handleBack: r, closeVersionHistory: i, closePreviewMode: n, trans: o, config: t, backButtonLabel: c, handleBackClick: () => {
17
+ if (e.isVersionHistoryOpen) {
19
18
  i();
20
19
  return;
21
20
  }
22
- if (o.isPreviewModeOpen) {
21
+ if (e.isPreviewModeOpen) {
23
22
  n();
24
23
  return;
25
24
  }
26
25
  r();
27
- }, InButtonV2: b, RestoreButton: _ };
26
+ }, InButtonV2: B };
28
27
  }
29
28
  });
30
29
  export {
31
- h as default
30
+ P as default
32
31
  };
@@ -1,17 +1,17 @@
1
1
  import i from "./MiddleSlot.vue2.js";
2
2
  import s from "../../../_virtual/_plugin-vue2_normalizer.js";
3
- var n = function() {
4
- var e = this, o = e._self._c, t = e._self._setupProxy;
5
- return t.editorStore.isVersionHistoryOpen ? o("div", { staticClass: "d-f" }, [o(t.VersionHistory), o(t.VersionHistoryViewOptions)], 1) : o("div", { staticClass: "d-f" }, [o(t.InButtonV2, { attrs: { id: "guido__undo-button", "left-icon": "line-undo", styling: "ghost", type: "secondary", "disabled-status": t.editorStore.isUndoButtonDisabled, "label-text-status": !1, "tooltip-options": t.getTooltipOptions("guido__undo-button"), "tooltip-text": t.trans("action-builder.undo") } }), o(t.InButtonV2, { attrs: { id: "guido__redo-button", "left-icon": "line-redo", styling: "ghost", type: "secondary", "disabled-status": t.editorStore.isRedoButtonDisabled, "label-text-status": !1, "tooltip-options": t.getTooltipOptions("guido__redo-button"), "tooltip-text": t.trans("action-builder.redo") } }), o(t.InButtonV2, { attrs: { id: "guido__code-button", "data-testid": "Code Editor", "left-icon": "line-code", styling: "ghost", type: "secondary", "disabled-status": t.editorStore.isCodeEditorButtonDisabled, "label-text-status": !1, "selected-status": t.editorStore.isCodeEditorOpen, "tooltip-options": t.getTooltipOptions("guido__code-button"), "tooltip-text": t.codeEditorTooltipText } }), o(t.InButtonV2, { attrs: { id: "guido__preview-button", "left-icon": "line-show-on", styling: "ghost", type: "secondary", "disabled-status": t.editorStore.isPreviewButtonDisabled, "label-text-status": !1, "selected-status": t.editorStore.isPreviewModeOpen, "tooltip-options": t.getTooltipOptions("guido__preview-button"), "tooltip-text": t.previewTooltipText }, on: { click: t.handlePreviewToggle } }), o(t.ViewOptions, { staticClass: "ml-3" }), t.editorStore.isPreviewModeOpen ? o(t.AmpToggle) : e._e()], 1);
6
- }, d = [], l = /* @__PURE__ */ s(
3
+ var t = function() {
4
+ var r = this, e = r._self._c, o = r._self._setupProxy;
5
+ return e("div", [o.editorStore.isVersionHistoryOpen ? e("div", { staticClass: "d-f" }, [e(o.VersionHistory), e(o.VersionHistoryViewOptions)], 1) : o.editorStore.isPreviewModeOpen ? e("div", { staticClass: "d-f" }, [e(o.EmailSizeIndicator), e(o.AmpToggle)], 1) : r._e(), e(o.EditorToolbar, { directives: [{ name: "show", rawName: "v-show", value: o.editorStore.isEditorToolbarVisible, expression: "editorStore.isEditorToolbarVisible" }] })], 1);
6
+ }, n = [], a = /* @__PURE__ */ s(
7
7
  i,
8
+ t,
8
9
  n,
9
- d,
10
10
  !1,
11
11
  null,
12
12
  null
13
13
  );
14
- const p = l.exports;
14
+ const c = a.exports;
15
15
  export {
16
- p as default
16
+ c as default
17
17
  };
@@ -1,20 +1,16 @@
1
- import { defineComponent as p, computed as i } from "vue";
2
- import { usePreviewMode as m } from "../../../composables/usePreviewMode.js";
3
- import { useTranslations as l } from "../../../composables/useTranslations.js";
4
- import d from "../email-preview/amp/AmpToggle.vue.js";
5
- import { useEditorStore as w } from "../../../stores/editor.js";
6
- import { getTooltipOptions as c } from "../../../utils/tooltipUtils.js";
7
- import { InButtonV2 as f } from "@useinsider/design-system-vue";
8
- import a from "./version-history/VersionHistory.vue.js";
9
- import v from "./version-history/ViewOptions.vue.js";
10
- import u from "./ViewOptions.vue.js";
11
- const C = /* @__PURE__ */ p({
1
+ import { defineComponent as o } from "vue";
2
+ import r from "../email-preview/amp/AmpToggle.vue.js";
3
+ import t from "../email-preview/desktop-preview/EmailSizeIndicator.vue.js";
4
+ import { useEditorStore as i } from "../../../stores/editor.js";
5
+ import e from "./EditorToolbar.vue.js";
6
+ import m from "./version-history/VersionHistory.vue.js";
7
+ import p from "./version-history/ViewOptions.vue.js";
8
+ const S = /* @__PURE__ */ o({
12
9
  __name: "MiddleSlot",
13
- setup(T) {
14
- const o = w(), e = l(), { openPreviewMode: t, closePreviewMode: r } = m(), s = i(() => o.isPreviewModeOpen ? e("newsletter.close-email-preview") : e("newsletter.email-preview")), n = i(() => o.isCodeEditorOpen ? e("newsletter.close-html-editor") : e("newsletter.html-editor"));
15
- return { __sfc: !0, editorStore: o, trans: e, openPreviewMode: t, closePreviewMode: r, previewTooltipText: s, codeEditorTooltipText: n, handlePreviewToggle: () => o.isPreviewModeOpen ? r() : t(), AmpToggle: d, getTooltipOptions: c, InButtonV2: f, VersionHistory: a, VersionHistoryViewOptions: v, ViewOptions: u };
10
+ setup(s) {
11
+ return { __sfc: !0, editorStore: i(), AmpToggle: r, EmailSizeIndicator: t, EditorToolbar: e, VersionHistory: m, VersionHistoryViewOptions: p };
16
12
  }
17
13
  });
18
14
  export {
19
- C as default
15
+ S as default
20
16
  };
@@ -1,20 +1,17 @@
1
- import u from "./RightSlot.vue2.js";
2
- import d from "../../../_virtual/_plugin-vue2_normalizer.js";
3
- var p = function() {
4
- var o, i, n, a, l, r;
5
- var s = this, e = s._self._c, t = s._self._setupProxy;
6
- return e("div", { staticClass: "d-f" }, [(i = (o = t.config) == null ? void 0 : o.features) != null && i.versionHistory ? e(t.InButtonV2, { attrs: { id: "guido__history-button", "left-icon": "line-architect-version-history", styling: "ghost", type: "secondary", "disabled-status": t.editorStore.isVersionHistoryButtonDisabled, "label-text-status": !1, "selected-status": t.editorStore.isVersionHistoryOpen, "tooltip-options": t.getTooltipOptions("guido__history-button"), "tooltip-text": t.versionHistoryTooltipText }, on: { click: t.handleVersionHistory } }) : s._e(), e(t.InButtonV2, { attrs: { id: "guido__export-button", "left-icon": "line-export", styling: "ghost", type: "secondary", "disabled-status": t.editorStore.isExportButtonDisabled, "label-text-status": !1, "loading-status": t.isExporting, "tooltip-options": t.getTooltipOptions("guido__export-button"), "tooltip-text": t.trans("newsletter.export") }, on: { click: t.handleExport } }), (a = (n = t.config) == null ? void 0 : n.features) != null && a.saveAsTemplate ? e(t.InButtonV2, { attrs: { id: "guido__save-as-button", "left-icon": "line-newsletter-save-as-template", styling: "ghost", type: "secondary", "disabled-status": t.editorStore.isSaveAsButtonDisabled, "label-text-status": !1, "tooltip-options": t.getTooltipOptions("guido__save-as-button"), "tooltip-text": t.trans("newsletter.save-templates") }, on: { click: t.handleSaveAs } }) : s._e(), (r = (l = t.config) == null ? void 0 : l.features) != null && r.testMessage ? e(t.InButtonV2, { attrs: { id: "guido__test-button", "left-icon": "line-architect-test-journey", styling: "ghost", type: "secondary", "disabled-status": t.editorStore.isTestButtonDisabled, "label-text-status": !1, "tooltip-options": t.getTooltipOptions("guido__test-button"), "tooltip-text": t.trans("newsletter.test-email") }, on: { click: t.testEmailClick } }) : s._e(), e(t.InButtonV2, { staticClass: "ml-3", attrs: { id: "guido__save-button", "label-text": "Save", "disabled-status": !t.isSaving && t.editorStore.isSaveButtonDisabled, "loading-status": t.isSaving }, on: { click: function(f) {
7
- return t.handleSave(!1);
8
- } } })], 1);
9
- }, c = [], _ = /* @__PURE__ */ d(
10
- u,
11
- p,
12
- c,
1
+ import o from "./RightSlot.vue2.js";
2
+ import s from "../../../_virtual/_plugin-vue2_normalizer.js";
3
+ var n = function() {
4
+ var r = this, t = r._self._c, e = r._self._setupProxy;
5
+ return t("div", { staticClass: "d-f" }, [e.editorStore.isVersionHistoryOpen ? t(e.RestoreButton) : t(e.EditorActions, { ref: "editorActionsRef" })], 1);
6
+ }, i = [], _ = /* @__PURE__ */ s(
7
+ o,
8
+ n,
9
+ i,
13
10
  !1,
14
11
  null,
15
12
  null
16
13
  );
17
- const y = _.exports;
14
+ const l = _.exports;
18
15
  export {
19
- y as default
16
+ l as default
20
17
  };
@@ -1,36 +1,19 @@
1
- import { defineComponent as H, ref as c, computed as _ } from "vue";
2
- import { useConfig as h } from "../../../composables/useConfig.js";
3
- import { useExport as V } from "../../../composables/useExport.js";
4
- import { useTestEmailClick as x } from "../../../composables/useGuidoActions.js";
5
- import { useSave as E } from "../../../composables/useSave.js";
6
- import { useTranslations as T } from "../../../composables/useTranslations.js";
7
- import { useVersionHistoryApi as w } from "../../../composables/useVersionHistoryApi.js";
8
- import { useEditorStore as C } from "../../../stores/editor.js";
9
- import { getTooltipOptions as O } from "../../../utils/tooltipUtils.js";
10
- import { InButtonV2 as A } from "@useinsider/design-system-vue";
11
- const J = /* @__PURE__ */ H({
1
+ import { defineComponent as i, ref as s } from "vue";
2
+ import { useEditorStore as m } from "../../../stores/editor.js";
3
+ import f from "./EditorActions.vue.js";
4
+ import a from "./version-history/RestoreButton.vue.js";
5
+ const l = /* @__PURE__ */ i({
12
6
  __name: "RightSlot",
13
- setup(k, { expose: u }) {
14
- const { config: f } = h(), { exportHtml: r } = V(), { save: n } = E(), { openVersionHistory: i, closeVersionHistory: a } = w(), o = C(), t = T(), e = c(!1), s = c(!1), v = x(), d = () => {
15
- if (o.isVersionHistoryOpen) {
16
- a();
17
- return;
7
+ setup(p, { expose: e }) {
8
+ const r = m(), o = s(null);
9
+ return e({
10
+ handleSave: (n) => {
11
+ var t;
12
+ return (t = o.value) == null ? void 0 : t.handleSave(n);
18
13
  }
19
- i();
20
- }, y = async () => {
21
- e.value = !0, await r(), e.value = !1;
22
- }, S = () => {
23
- o.isSaveAsTemplateDrawerOpen = !0;
24
- }, g = _(() => o.isVersionHistoryOpen ? t("newsletter.close-version-history") : t("newsletter.version-history")), l = async (p) => {
25
- s.value = !0, o.loadingStatus = !0;
26
- const m = await n(p);
27
- return s.value = !1, (p || !m) && (o.loadingStatus = !1), m;
28
- };
29
- return u({
30
- handleSave: l
31
- }), { __sfc: !0, config: f, exportHtml: r, save: n, openVersionHistory: i, closeVersionHistory: a, editorStore: o, trans: t, isExporting: e, isSaving: s, testEmailClick: v, handleVersionHistory: d, handleExport: y, handleSaveAs: S, versionHistoryTooltipText: g, handleSave: l, getTooltipOptions: O, InButtonV2: A };
14
+ }), { __sfc: !0, editorStore: r, editorActionsRef: o, EditorActions: f, RestoreButton: a };
32
15
  }
33
16
  });
34
17
  export {
35
- J as default
18
+ l as default
36
19
  };
@@ -1,20 +1,20 @@
1
- import o from "./VersionHistory.vue2.js";
1
+ import r from "./VersionHistory.vue2.js";
2
2
  /* empty css */
3
3
  import i from "../../../../_virtual/_plugin-vue2_normalizer.js";
4
4
  var n = function() {
5
5
  var s = this, e = s._self._c, t = s._self._setupProxy;
6
- return e("div", { staticClass: "version-history-wrapper d-f a-i-c f-g-1 mx-3" }, [t.itemStatus ? e(t.VersionHistoryItem, { attrs: { "text-align": "right", date: t.versionHistoryStore.previousPatch.date, description: t.versionHistoryStore.previousPatch.description } }) : s._e(), e("div", { staticClass: "d-f" }, [e(t.InButtonV2, { attrs: { id: "guido__undo-button", "left-icon": "line-undo", styling: "ghost", type: "secondary", "disabled-status": !t.versionHistoryStore.hasPreviousPatch, "label-text-status": !1 }, on: { click: function(r) {
6
+ return e("div", { staticClass: "version-history d-f a-i-c f-g-1 mx-3" }, [t.itemStatus ? e(t.VersionHistoryItem, { attrs: { "text-align": "right", date: t.versionHistoryStore.previousPatch.date, description: t.versionHistoryStore.previousPatch.description } }) : s._e(), e("div", { staticClass: "d-f version-history__toolbar" }, [e(t.InButtonV2, { attrs: { id: "guido__undo-button", "left-icon": "line-undo", styling: "ghost", type: "secondary", "disabled-status": !t.versionHistoryStore.hasPreviousPatch, "label-text-status": !1 }, on: { click: function(o) {
7
7
  return t.previewVersion(t.versionHistoryStore.previousPatch.id);
8
- } } }), e(t.InButtonV2, { attrs: { id: "guido__redo-button", "left-icon": "line-redo", styling: "ghost", type: "secondary", "disabled-status": !t.versionHistoryStore.hasNextPatch, "label-text-status": !1 }, on: { click: function(r) {
8
+ } } }), e(t.InButtonV2, { attrs: { id: "guido__redo-button", "left-icon": "line-redo", styling: "ghost", type: "secondary", "disabled-status": !t.versionHistoryStore.hasNextPatch, "label-text-status": !1 }, on: { click: function(o) {
9
9
  return t.previewVersion(t.versionHistoryStore.nextPatch.id);
10
10
  } } })], 1), t.itemStatus ? e(t.VersionHistoryItem, { attrs: { "text-align": "left", date: t.versionHistoryStore.nextPatch.date, description: t.versionHistoryStore.nextPatch.description } }) : s._e()], 1);
11
11
  }, a = [], c = /* @__PURE__ */ i(
12
- o,
12
+ r,
13
13
  n,
14
14
  a,
15
15
  !1,
16
16
  null,
17
- "52a77eec"
17
+ "64c52560"
18
18
  );
19
19
  const _ = c.exports;
20
20
  export {
@@ -1,25 +1,25 @@
1
1
  import { defineComponent as v, ref as D, computed as o } from "vue";
2
- import h from "../../wrappers/WpModal.vue.js";
3
- import { useConfig as y } from "../../../composables/useConfig.js";
4
- import { useTranslations as _ } from "../../../composables/useTranslations.js";
5
- import { ACADEMY_LINK as c } from "../../../enums/onboarding.js";
6
- import C from "../../../static/assets/onboarding-img.svg.js";
7
- import { useOnboardingStore as L } from "../../../stores/onboarding.js";
8
- import { isAfterDate as w, formatShortDate as N } from "../../../utils/dateUtil.js";
9
- const E = /* @__PURE__ */ v({
2
+ import _ from "../../wrappers/WpModal.vue.js";
3
+ import { useConfig as h } from "../../../composables/useConfig.js";
4
+ import { useTranslations as y } from "../../../composables/useTranslations.js";
5
+ import { ACADEMY_LINKS as c } from "../../../enums/academy.js";
6
+ import L from "../../../static/assets/onboarding-img.svg.js";
7
+ import { useOnboardingStore as C } from "../../../stores/onboarding.js";
8
+ import { isAfterDate as w, formatShortDate as A } from "../../../utils/dateUtil.js";
9
+ const V = /* @__PURE__ */ v({
10
10
  __name: "NewVersionPopup",
11
11
  emits: ["onboarding-finished"],
12
- setup(S, { emit: a }) {
13
- const e = _(), t = L(), s = D(!0), { config: p } = y(), i = o(() => {
12
+ setup(I, { emit: a }) {
13
+ const e = y(), t = C(), s = D(!0), { config: p } = h(), i = o(() => {
14
14
  var l, m;
15
15
  return (m = (l = p.value) == null ? void 0 : l.editor) == null ? void 0 : m.migrationDate;
16
- }), n = o(() => w(i.value || 0)), d = o(() => N(
16
+ }), n = o(() => w(i.value || 0)), d = o(() => A(
17
17
  i.value || 0
18
18
  )), f = o(() => n.value ? e("email-editor.onboarding-popup-sunsetted-title") : e("email-editor.onboarding-title")), g = o(() => n.value ? e("email-editor.onboarding-popup-sunsetted-description", {
19
19
  sunsetDate: d.value,
20
- academyLink: c
20
+ academyLink: c.EMAIL_EDITOR
21
21
  }) : e("email-editor.onboarding-description", {
22
- academyLink: c
22
+ academyLink: c.EMAIL_EDITOR
23
23
  })), u = o(() => n.value ? e("products.cancel") : e("products.remind-me-later")), b = o(() => ({
24
24
  primaryButton: {
25
25
  type: "primary",
@@ -38,9 +38,9 @@ const E = /* @__PURE__ */ v({
38
38
  t.onRemindMeLater(), r();
39
39
  }, handleClose: () => {
40
40
  t.onNewVersionPopupClose(), r();
41
- }, WpModal: h, onboardingImageSvg: C };
41
+ }, WpModal: _, onboardingImageSvg: L };
42
42
  }
43
43
  });
44
44
  export {
45
- E as default
45
+ V as default
46
46
  };
@@ -10,7 +10,7 @@ var i = function() {
10
10
  r,
11
11
  !1,
12
12
  null,
13
- "bb3bb07c"
13
+ "43c617a7"
14
14
  );
15
15
  const _ = c.exports;
16
16
  export {
@@ -1,18 +1,19 @@
1
- import { defineComponent as v, ref as b, computed as m, watch as _ } from "vue";
2
- import B from "../../wrappers/WpDrawer.vue.js";
1
+ import { defineComponent as h, ref as b, computed as g, watch as _ } from "vue";
2
+ import v from "../../wrappers/WpDrawer.vue.js";
3
3
  import { useToaster as U } from "../../../composables/useToaster.js";
4
- import { useTranslations as w } from "../../../composables/useTranslations.js";
5
- import { ToasterTypeOptions as N } from "../../../enums/toaster.js";
6
- import { PAGE_TYPES as l, ACADEMY_LINK as D, getTypeTranslations as P, UNSUBSCRIBE_PAGES_LINK as R } from "../../../enums/unsubscribe.js";
7
- import { useUnsubscribeStore as I } from "../../../stores/unsubscribe.js";
4
+ import { useTranslations as N } from "../../../composables/useTranslations.js";
5
+ import { ACADEMY_LINKS as w } from "../../../enums/academy.js";
6
+ import { ToasterTypeOptions as R } from "../../../enums/toaster.js";
7
+ import { PAGE_TYPES as l, getTypeTranslations as D, UNSUBSCRIBE_PAGES_LINK as I } from "../../../enums/unsubscribe.js";
8
+ import { useUnsubscribeStore as P } from "../../../stores/unsubscribe.js";
8
9
  import { InSegments as G } from "@useinsider/design-system-vue";
9
- const K = /* @__PURE__ */ v({
10
+ const V = /* @__PURE__ */ h({
10
11
  __name: "UnsubscribeTypeSelection",
11
- setup(x) {
12
- const e = w(), { showToaster: f } = U(), t = I(), n = b(!1), i = b(!0), o = b(l.GLOBAL_UNSUBSCRIBE), S = e(
12
+ setup(L) {
13
+ const e = N(), { showToaster: f } = U(), t = P(), n = b(!1), i = b(!0), o = b(l.GLOBAL_UNSUBSCRIBE), S = e(
13
14
  "unsubscription-preference.select-unsubscribe-page-description",
14
- { action: `<a href="${D}" target="_blank">${e("ds-rules.visit-academy")}</a>` }
15
- ), T = m(() => [
15
+ { action: `<a href="${w.GLOBAL_UNSUBSCRIBE}" target="_blank">${e("ds-rules.visit-academy")}</a>` }
16
+ ), T = g(() => [
16
17
  {
17
18
  description: e("unsubscription-preference.type-global-unsubscribe-description"),
18
19
  icon: "line-contact-global-unsub-page",
@@ -30,7 +31,7 @@ const K = /* @__PURE__ */ v({
30
31
  disable: t.isSubscriptionPreferencesCenterDisabled,
31
32
  tooltipText: t.isSubscriptionPreferencesCenterDisabled ? e("unsubscription-preference.pref-center-added") : ""
32
33
  }
33
- ]), y = m(() => ({
34
+ ]), y = g(() => ({
34
35
  primaryButton: {
35
36
  styling: "solid",
36
37
  type: "primary",
@@ -56,13 +57,13 @@ const K = /* @__PURE__ */ v({
56
57
  }, 500);
57
58
  }, E = (s) => {
58
59
  o.value = s;
59
- }, g = () => {
60
+ }, m = () => {
60
61
  const s = t.hasTemplatesByCollectionType, r = [];
61
62
  if (Object.entries(s).forEach(([c, p]) => {
62
63
  p || r.push(Number(c));
63
64
  }), r.length === 0)
64
65
  return !0;
65
- const h = P(), a = r.map((c) => h[c]);
66
+ const B = D(), a = r.map((c) => B[c]);
66
67
  let u = "";
67
68
  if (r.length === 1)
68
69
  u = e("unsubscription-preference.create-page-to-continue", {
@@ -81,17 +82,17 @@ const K = /* @__PURE__ */ v({
81
82
  });
82
83
  }
83
84
  return f({
84
- type: N.Warning,
85
+ type: R.Warning,
85
86
  message: u,
86
87
  actionButton: {
87
88
  text: "Go to Unsubscribe Pages",
88
89
  onClick: () => {
89
- window.location.href = R;
90
+ window.location.href = I;
90
91
  }
91
92
  }
92
93
  }), !1;
93
94
  }, C = async () => {
94
- if (n.value = !0, await t.fetchTemplates(), t.setCollection(o.value), !g()) {
95
+ if (n.value = !0, await t.fetchTemplates(), t.setCollection(o.value), !m()) {
95
96
  n.value = !1, d();
96
97
  return;
97
98
  }
@@ -99,9 +100,9 @@ const K = /* @__PURE__ */ v({
99
100
  };
100
101
  return _(() => t.typeSelectionDrawerStatus, (s) => {
101
102
  s && (i.value = !0, o.value = l.GLOBAL_UNSUBSCRIBE, t.isGlobalUnsubscribeDisabled && (o.value = t.isSubscriptionPreferencesCenterDisabled ? 0 : l.SUBSCRIPTION_PREFERENCE_CENTER), i.value = !1);
102
- }), { __sfc: !0, trans: e, showToaster: f, unsubscribeStore: t, isSelecting: n, skeletonStatus: i, selectedCollection: o, descriptionText: S, segmentList: T, footerButtonGroupOptions: y, closeModal: d, changeCollection: E, validateTemplates: g, selectCollection: C, WpDrawer: B, InSegments: G };
103
+ }), { __sfc: !0, trans: e, showToaster: f, unsubscribeStore: t, isSelecting: n, skeletonStatus: i, selectedCollection: o, descriptionText: S, segmentList: T, footerButtonGroupOptions: y, closeModal: d, changeCollection: E, validateTemplates: m, selectCollection: C, WpDrawer: v, InSegments: G };
103
104
  }
104
105
  });
105
106
  export {
106
- K as default
107
+ V as default
107
108
  };
@@ -1,7 +1,7 @@
1
1
  var h = Object.defineProperty;
2
2
  var T = (A, e, t) => e in A ? h(A, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : A[e] = t;
3
3
  var m = (A, e, t) => T(A, typeof e != "symbol" ? e + "" : e, t);
4
- import P, { prepareProductRows as S } from "../../extensions/Blocks/Recommendation/templates/verticalMigrationTemplate.js";
4
+ import P, { prepareProductRows as S } from "../../extensions/Blocks/Recommendation/templates/migrationTemplate.js";
5
5
  import { getDefaultProducts as q } from "../../extensions/Blocks/Recommendation/templates/templateUtils.js";
6
6
  class w {
7
7
  constructor() {
@@ -0,0 +1,8 @@
1
+ const e = "https://academy.insiderone.com/", o = {
2
+ EMAIL_EDITOR: `${e}/docs/email-drag-and-drop-editor`,
3
+ GLOBAL_UNSUBSCRIBE: `${e}/docs/global-unsubscribe-preference-center`,
4
+ AMP_FOR_EMAILS: `${e}/docs/amp-for-emails`
5
+ };
6
+ export {
7
+ o as ACADEMY_LINKS
8
+ };
@@ -2,9 +2,8 @@ const e = [
2
2
  ".service-element.stacked-panel-item.ng-tns-c1014751574-3.level-bottom-0.ng-star-inserted",
3
3
  ".service-element.stacked-panel-item.ng-tns-c1014751574-3.level-bottom-1.ng-star-inserted",
4
4
  ".service-element.stacked-panel-item.ng-tns-c1014751574-3.level-bottom-2.ng-star-inserted"
5
- ], t = "ui-editor", n = 'button[role="tab"][aria-label="Card Composition"]', s = 'button[role="tab"][aria-label="Settings"]', o = ".in-ribbons-wrapper", a = "https://academy.useinsider.com/docs/email-drag-drop-editor";
5
+ ], t = "ui-editor", n = 'button[role="tab"][aria-label="Card Composition"]', s = 'button[role="tab"][aria-label="Settings"]', o = ".in-ribbons-wrapper";
6
6
  export {
7
- a as ACADEMY_LINK,
8
7
  n as CARD_COMPOSITION_TAB_SELECTOR,
9
8
  o as RIBBON_SELECTOR,
10
9
  e as SERVICE_HOVER_SELECTORS,
@@ -1,26 +1,26 @@
1
- import { useTranslations as n } from "../composables/useTranslations.js";
1
+ import { useTranslations as e } from "../composables/useTranslations.js";
2
2
  import { getEnvironmentPrefix as R } from "../utils/environmentUtil.js";
3
- const N = {
3
+ const I = {
4
4
  UNSUBSCRIBE_LINK_TYPE: 1,
5
5
  PREFERENCES_LINK_TYPE: 3
6
- }, I = {
6
+ }, r = {
7
7
  UNSUBSCRIBE_LINK_REGEX: /{{ins-unsubscribe-link}}/g,
8
8
  DATA_OGSB_BUTTON_CSS_REGEX: "\\[data-ogsb\\]\\s*\\.es-button\\.es-button-[0-9]+\\s*\\{(?:[^\\}]*)\\}",
9
9
  GLOBAL_UNSUBSCRIBE_LINK_REGEX: /{{ins-global-unsubscribe-link}}/g,
10
10
  PREFERENCES_UNSUBSCRIBE_LINK_REGEX: /{{ins-preferences-unsubscribe-link}}/g
11
- }, s = R(), i = {
11
+ }, s = R(), _ = {
12
12
  UNSUBSCRIBE_URL: `https://mail.${s}.com/user/v1/unsub`,
13
13
  PREFERENCES_URL: `https://mail.${s}.com/user/v1/prefs`
14
- }, _ = "iid", B = {
14
+ }, i = "iid", B = {
15
15
  name: "Global Unsubscribe",
16
16
  sendGridId: "G"
17
- }, t = "https://academy.useinsider.com/docs/global-unsubscribe-preference-center", C = "/email/unsubscribe-pages", E = {
17
+ }, C = "/email/unsubscribe-pages", E = {
18
18
  GLOBAL_UNSUBSCRIBE: 1,
19
19
  GLOBAL_UNSUBSCRIBE_CONFIRMATION_PAGE: 2,
20
20
  SUBSCRIPTION_PREFERENCE_CENTER: 3,
21
21
  SUBSCRIPTION_PREFERENCE_CONFIRMATION: 4,
22
22
  RESUBSCRIBE: 5
23
- }, c = {
23
+ }, t = {
24
24
  [E.GLOBAL_UNSUBSCRIBE]: [
25
25
  E.GLOBAL_UNSUBSCRIBE,
26
26
  E.GLOBAL_UNSUBSCRIBE_CONFIRMATION_PAGE,
@@ -31,29 +31,28 @@ const N = {
31
31
  E.SUBSCRIPTION_PREFERENCE_CONFIRMATION
32
32
  ]
33
33
  }, U = () => {
34
- const e = n();
34
+ const n = e();
35
35
  return {
36
- [E.GLOBAL_UNSUBSCRIBE]: e("unsubscription-preference.type-global-unsubscribe"),
37
- [E.GLOBAL_UNSUBSCRIBE_CONFIRMATION_PAGE]: e("unsubscription-preference.type-global-unsubscription-confirmation"),
38
- [E.RESUBSCRIBE]: e("unsubscription-preference.type-resubscribe"),
39
- [E.SUBSCRIPTION_PREFERENCE_CENTER]: e("unsubscription-preference.type-subscription-preferences-center"),
40
- [E.SUBSCRIPTION_PREFERENCE_CONFIRMATION]: e("unsubscription-preference.type-subscription-preferences-confirmation")
36
+ [E.GLOBAL_UNSUBSCRIBE]: n("unsubscription-preference.type-global-unsubscribe"),
37
+ [E.GLOBAL_UNSUBSCRIBE_CONFIRMATION_PAGE]: n("unsubscription-preference.type-global-unsubscription-confirmation"),
38
+ [E.RESUBSCRIBE]: n("unsubscription-preference.type-resubscribe"),
39
+ [E.SUBSCRIPTION_PREFERENCE_CENTER]: n("unsubscription-preference.type-subscription-preferences-center"),
40
+ [E.SUBSCRIPTION_PREFERENCE_CONFIRMATION]: n("unsubscription-preference.type-subscription-preferences-confirmation")
41
41
  };
42
- }, o = {
42
+ }, c = {
43
43
  default: "{{ins-unsubscribe-link}}",
44
44
  [E.GLOBAL_UNSUBSCRIBE]: "{{ins-global-unsubscribe-link}}",
45
45
  [E.SUBSCRIPTION_PREFERENCE_CENTER]: "{{ins-preferences-unsubscribe-link}}"
46
46
  };
47
47
  export {
48
- t as ACADEMY_LINK,
49
48
  B as DEFAULT_UNSUBSCRIBE_GROUP,
50
- _ as INSIDER_ID,
51
- I as LINK_REGEXES,
52
- N as LINK_TYPES,
53
- o as MERGE_TAGS,
49
+ i as INSIDER_ID,
50
+ r as LINK_REGEXES,
51
+ I as LINK_TYPES,
52
+ c as MERGE_TAGS,
54
53
  E as PAGE_TYPES,
55
- c as TYPE_COLLECTIONS,
54
+ t as TYPE_COLLECTIONS,
56
55
  C as UNSUBSCRIBE_PAGES_LINK,
57
- i as URLS,
56
+ _ as URLS,
58
57
  U as getTypeTranslations
59
58
  };
@@ -145,19 +145,10 @@ class g extends R {
145
145
  T && this.api.getDocumentModifier().modifyHtml(o).setAttribute(C[T], e ? "1" : "0").apply(new l(`Updated ${t} visibility attribute`));
146
146
  }
147
147
  _listenToFormUpdates() {
148
- this.api.onValueChanged(i.PRODUCT_IMAGE, (t) => {
149
- this._onProductImageChange(t);
150
- }), this.api.onValueChanged(i.PRODUCT_NAME, (t) => {
151
- this._onProductNameChange(t);
152
- }), this.api.onValueChanged(i.PRODUCT_QUANTITY, (t) => {
153
- this._onProductQuantityChange(t);
154
- }), this.api.onValueChanged(i.PRODUCT_PRICE, (t) => {
155
- this._onProductPriceChange(t);
156
- }), this.api.onValueChanged(i.PRODUCT_ORIGINAL_PRICE, (t) => {
157
- this._onProductOriginalPriceChange(t);
158
- }), this.api.onValueChanged(i.PRODUCT_BUTTON, (t) => {
159
- this._onProductButtonChange(t);
160
- });
148
+ this.api.onValueChanged(i.PRODUCT_IMAGE, (t) => this._onProductImageChange(t)), this.api.onValueChanged(i.PRODUCT_NAME, (t) => this._onProductNameChange(t)), this.api.onValueChanged(i.PRODUCT_QUANTITY, (t) => this._onProductQuantityChange(t)), this.api.onValueChanged(i.PRODUCT_PRICE, (t) => this._onProductPriceChange(t)), this.api.onValueChanged(
149
+ i.PRODUCT_ORIGINAL_PRICE,
150
+ (t) => this._onProductOriginalPriceChange(t)
151
+ ), this.api.onValueChanged(i.PRODUCT_BUTTON, (t) => this._onProductButtonChange(t));
161
152
  }
162
153
  _onProductImageChange(t) {
163
154
  var o;
@@ -1,5 +1,5 @@
1
1
  import { Block as e, BlockCompositionType as t } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
- import { getDefaultTemplate as o } from "./templates/verticalTemplate.js";
2
+ import { getDefaultTemplate as o } from "./templates/blockTemplate.js";
3
3
  const n = "recommendation-block";
4
4
  class m extends e {
5
5
  constructor() {
@@ -0,0 +1,103 @@
1
+ var m = Object.defineProperty;
2
+ var y = (n, o, i) => o in n ? m(n, o, { enumerable: !0, configurable: !0, writable: !0, value: i }) : n[o] = i;
3
+ var a = (n, o, i) => y(n, typeof o != "symbol" ? o + "" : o, i);
4
+ import { ModificationDescription as u } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
5
+ import { CommonControl as b } from "../common-control.js";
6
+ const h = "ui-elements-recommendation-card-composition", s = [
7
+ { key: "productImage", label: "Product Image", visible: !0 },
8
+ { key: "productName", label: "Product Name", visible: !0 },
9
+ { key: "productPrice", label: "Product Price", visible: !0 },
10
+ { key: "productOriginalPrice", label: "Product Original Price", visible: !0 },
11
+ { key: "productButton", label: "Product Button", visible: !0 }
12
+ ];
13
+ class g extends b {
14
+ constructor() {
15
+ super(...arguments);
16
+ a(this, "currentComposition", []);
17
+ a(this, "currentVisibility", {});
18
+ }
19
+ getId() {
20
+ return h;
21
+ }
22
+ getTemplate() {
23
+ const i = s.map((e) => ({
24
+ key: e.key,
25
+ label: e.label,
26
+ content: `
27
+ <div style="display: flex; align-items: center; justify-content: space-between;
28
+ padding: 8px; gap: 8px;">
29
+ <span style="flex: 1;">${e.label}</span>
30
+ ${this._GuToggle(`visibility_${e.key}`)}
31
+ </div>
32
+ `
33
+ }));
34
+ return `
35
+ <div class="container">
36
+ ${this._GuLabel({ text: "Card Element Order & Visibility" })}
37
+ ${this._GuOrderable("cardComposition", i)}
38
+ </div>
39
+ `;
40
+ }
41
+ onRender() {
42
+ this._initializeComposition(), this.api.onValueChanged("cardComposition", (i) => {
43
+ this.currentComposition = i, this._applyCompositionToBlock(i);
44
+ }), s.forEach((i) => {
45
+ this.api.onValueChanged(`visibility_${i.key}`, (e) => {
46
+ this.currentVisibility[i.key] = e, this._applyVisibilityToBlock();
47
+ });
48
+ });
49
+ }
50
+ onTemplateNodeUpdated(i) {
51
+ super.onTemplateNodeUpdated(i), this._initializeComposition();
52
+ }
53
+ /**
54
+ * Initialize the composition order and visibility from the block or use defaults
55
+ */
56
+ _initializeComposition() {
57
+ var p;
58
+ const i = (p = this.currentNode) == null ? void 0 : p.querySelector(".ins-recommendation-v3-block-v2");
59
+ let e = null, l = null;
60
+ if (i && "getAttribute" in i && (e = i.getAttribute("data-card-composition"), l = i.getAttribute("data-card-visibility")), e) {
61
+ const t = e.split(",").filter(Boolean), r = s.map((c) => c.key);
62
+ t.every((c) => r.includes(c)) && t.length > 0 ? this.currentComposition = t : this.currentComposition = r;
63
+ } else
64
+ this.currentComposition = s.map((t) => t.key);
65
+ if (l)
66
+ try {
67
+ const t = JSON.parse(l);
68
+ this.currentVisibility = t;
69
+ } catch {
70
+ this.currentVisibility = s.reduce((t, r) => (t[r.key] = r.visible, t), {});
71
+ }
72
+ else
73
+ this.currentVisibility = s.reduce((t, r) => (t[r.key] = r.visible, t), {});
74
+ const d = {
75
+ cardComposition: this.currentComposition
76
+ };
77
+ s.forEach((t) => {
78
+ d[`visibility_${t.key}`] = this.currentVisibility[t.key] ?? !0;
79
+ }), this.api.updateValues(d);
80
+ }
81
+ /**
82
+ * Apply the reordered composition to the block's HTML structure
83
+ */
84
+ _applyCompositionToBlock(i) {
85
+ if (!this.currentNode)
86
+ return;
87
+ const e = this.currentNode.querySelector(".ins-recommendation-v3-block-v2");
88
+ e && this.api.getDocumentModifier().modifyHtml(e).setAttribute("data-card-composition", i.join(",")).apply(new u("Stored card composition order"));
89
+ }
90
+ /**
91
+ * Apply visibility changes to the block's HTML structure
92
+ */
93
+ _applyVisibilityToBlock() {
94
+ if (!this.currentNode)
95
+ return;
96
+ const i = this.currentNode.querySelector(".ins-recommendation-v3-block-v2");
97
+ i && this.api.getDocumentModifier().modifyHtml(i).setAttribute("data-card-visibility", JSON.stringify(this.currentVisibility)).apply(new u("Stored card visibility settings"));
98
+ }
99
+ }
100
+ export {
101
+ h as COMPOSITION_CONTROL_BLOCK_ID,
102
+ g as RecommendationCardCompositionControl
103
+ };