@useinsider/guido 3.18.1-beta.e9a6c91 → 3.18.1-beta.fefef3c

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 (48) hide show
  1. package/README.md +21 -3
  2. package/dist/@types/config/schemas.js +59 -51
  3. package/dist/components/Guido.vue.js +4 -4
  4. package/dist/components/Guido.vue2.js +72 -70
  5. package/dist/components/organisms/extensions/recommendation/AssignStrategyDrawer.vue.js +7 -9
  6. package/dist/components/organisms/extensions/recommendation/AssignStrategyDrawer.vue2.js +83 -72
  7. package/dist/components/organisms/extensions/recommendation/LegacyStrategyUpdatedModal.vue.js +18 -0
  8. package/dist/components/organisms/extensions/recommendation/LegacyStrategyUpdatedModal.vue2.js +25 -0
  9. package/dist/components/organisms/extensions/recommendation/RemoveStrategyModal.vue2.js +24 -22
  10. package/dist/components/organisms/onboarding/OnboardingWrapper.vue2.js +28 -26
  11. package/dist/components/organisms/onboarding/RecommendationLegacyStrategyOnboarding.vue.js +21 -0
  12. package/dist/components/organisms/onboarding/RecommendationLegacyStrategyOnboarding.vue2.js +46 -0
  13. package/dist/composables/useCustomInterfaceAppearance.js +46 -42
  14. package/dist/composables/useHtmlValidator.js +79 -84
  15. package/dist/composables/useLegacyStrategyConversion.js +61 -0
  16. package/dist/composables/useRecommendation.js +18 -21
  17. package/dist/enums/extensions/recommendationBlock.js +25 -29
  18. package/dist/extensions/Blocks/Recommendation/block.js +39 -43
  19. package/dist/extensions/Blocks/Recommendation/controls/main/index.js +72 -71
  20. package/dist/extensions/Blocks/Recommendation/controls/main/strategy.js +70 -40
  21. package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +45 -44
  22. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +108 -138
  23. package/dist/extensions/Blocks/Recommendation/utils/legacyStrategyMigration.js +72 -0
  24. package/dist/extensions/Blocks/Recommendation/utils/nodeConfigWriter.js +7 -7
  25. package/dist/extensions/Blocks/Recommendation/validation/requiredFields.js +12 -21
  26. package/dist/guido.css +1 -1
  27. package/dist/services/recommendationApi.js +93 -84
  28. package/dist/src/@types/config/schemas.d.ts +16 -0
  29. package/dist/src/components/organisms/extensions/recommendation/LegacyStrategyUpdatedModal.vue.d.ts +2 -0
  30. package/dist/src/components/organisms/onboarding/RecommendationLegacyStrategyOnboarding.vue.d.ts +2 -0
  31. package/dist/src/composables/useConfig.d.ts +4 -0
  32. package/dist/src/composables/useLegacyStrategyConversion.d.ts +3 -0
  33. package/dist/src/enums/extensions/recommendationBlock.d.ts +3 -2
  34. package/dist/src/extensions/Blocks/Recommendation/controls/main/strategy.d.ts +1 -0
  35. package/dist/src/extensions/Blocks/Recommendation/controls/main/utils.d.ts +4 -0
  36. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +54 -50
  37. package/dist/src/extensions/Blocks/Recommendation/utils/legacyStrategyMigration.d.ts +44 -0
  38. package/dist/src/extensions/Blocks/Recommendation/validation/requiredFields.d.ts +0 -4
  39. package/dist/src/services/recommendationApi.d.ts +2 -1
  40. package/dist/src/stores/config.d.ts +322 -0
  41. package/dist/src/stores/onboarding.d.ts +421 -0
  42. package/dist/static/assets/icons/filled-arrow-rising.svg.js +5 -0
  43. package/dist/static/assets/icons/line-info.svg.js +5 -0
  44. package/dist/static/styles/components/recommendation-strategy.css.js +74 -43
  45. package/dist/stores/config.js +74 -60
  46. package/dist/stores/onboarding.js +6 -1
  47. package/dist/utils/templatePreparation.js +50 -50
  48. package/package.json +1 -1
@@ -1,48 +1,73 @@
1
- import { defineComponent as O, defineAsyncComponent as u, ref as f, computed as c, watch as h } from "vue";
1
+ import { defineComponent as h, defineAsyncComponent as T, ref as _, computed as s, watch as B } from "vue";
2
2
  import "@useinsider/design-system-organisms/style";
3
- import { useToaster as A } from "../../../../composables/useToaster.js";
4
- import { useTranslations as I } from "../../../../composables/useTranslations.js";
5
- import { DOTTED_DATE_LOCALE as C } from "../../../../enums/date.js";
6
- import { URLS as B } from "../../../../enums/extensions/recommendationBlock.js";
7
- import { ToasterTypeOptions as d } from "../../../../enums/toaster.js";
3
+ import { useLegacyStrategyConversion as I } from "../../../../composables/useLegacyStrategyConversion.js";
4
+ import { useToaster as N } from "../../../../composables/useToaster.js";
5
+ import { useTranslations as k } from "../../../../composables/useTranslations.js";
6
+ import { DOTTED_DATE_LOCALE as P } from "../../../../enums/date.js";
7
+ import { URLS as U } from "../../../../enums/extensions/recommendationBlock.js";
8
+ import { ToasterTypeOptions as p } from "../../../../enums/toaster.js";
8
9
  import { useRecommendationExtensionStore as b } from "../../../../extensions/Blocks/Recommendation/store/recommendation.js";
9
- import k from "./StrategyInfoBoxContent.vue.js";
10
- import { formatShortDate as N } from "../../../../utils/dateUtil.js";
11
- import { asText as S } from "../../../../utils/genericUtil.js";
12
- import { escapeHtml as P } from "../../../../utils/htmlEscape.js";
10
+ import G from "./StrategyInfoBoxContent.vue.js";
11
+ import { formatShortDate as M } from "../../../../utils/dateUtil.js";
12
+ import { asText as D } from "../../../../utils/genericUtil.js";
13
+ import { escapeHtml as x } from "../../../../utils/htmlEscape.js";
13
14
  import { InSkeleton as R } from "@useinsider/design-system-vue";
14
- const Z = /* @__PURE__ */ O({
15
+ const st = /* @__PURE__ */ h({
15
16
  __name: "AssignStrategyDrawer",
16
- setup(U) {
17
- const g = () => import("@useinsider/design-system-organisms"), m = (t, e, a = "") => ({
18
- render: (E) => E(R, { class: a, props: { sizing: { width: t, height: e } } })
19
- }), T = u({
20
- loader: async () => (await g()).OrgStrategyDetailModal,
21
- loadingComponent: m(480, 240),
17
+ setup(H) {
18
+ const l = () => import("@useinsider/design-system-organisms"), g = (t, a) => ({
19
+ render: (n) => n(R, { props: { sizing: { width: t, height: a } } })
20
+ }), O = T({
21
+ loader: async () => (await l()).OrgStrategyDetailModal,
22
+ loadingComponent: g(480, 240),
22
23
  delay: 0
23
- }), _ = u({
24
- loader: async () => (await g()).OrgStrategyDropdown,
25
- loadingComponent: m(240, 42, "assign-strategy-select-skeleton"),
24
+ }), w = T({
25
+ loader: async () => (await l()).OrgStrategyDropdown,
26
+ loadingComponent: g(240, 42),
26
27
  delay: 0
27
- }), n = "guido-edit-strategy-", s = I(), r = b(), { showToaster: i } = A(), o = f(null), l = f(!1), D = c(() => r.assignStrategyDrawerStatus ? s("email-editor.assign-strategy-description", { url: B.RECOMMENDATION_STRATEGIES_PANEL_PATH }) : "");
28
- h(() => r.assignStrategyDrawerStatus, (t) => {
28
+ }), r = k(), e = b(), { showToaster: i } = N(), { convertLegacyStrategy: u } = I(), o = _(null), y = "legacy", d = "guido__btn-update-legacy-strategy", c = _(!1), A = s(() => e.assignStrategyDrawerStatus ? r("email-editor.assign-strategy-description", { url: U.RECOMMENDATION_STRATEGIES_PANEL_PATH }) : "");
29
+ B(() => e.assignStrategyDrawerStatus, (t) => {
29
30
  if (!t)
30
31
  return;
31
- const { strategyId: e } = r.recommendationConfigs;
32
- o.value = e || null, l.value = !1, r.fetchStrategies().catch(() => {
32
+ const { strategyId: a } = e.recommendationConfigs;
33
+ o.value = a || (e.isLegacyStrategyBlock ? y : null), c.value = !1, e.fetchStrategies().catch(() => {
33
34
  i({
34
- type: d.Error,
35
- message: s("discovery-strategy.error-description")
35
+ type: p.Error,
36
+ message: r("discovery-strategy.error-description")
36
37
  });
37
38
  });
38
39
  });
39
- const p = (t) => {
40
- const e = S(t.updated_at || t.created_at);
41
- if (!e)
40
+ const f = (t) => {
41
+ const a = D(t.updated_at || t.created_at);
42
+ if (!a)
42
43
  return "";
43
- const a = N(e, C);
44
- return s("recommendation-strategy.last-updated-on", { value: a });
45
- }, v = c(() => r.strategies.map((t) => ({
44
+ const n = M(a, P);
45
+ return r("recommendation-strategy.last-updated-on", { value: n });
46
+ }, S = s(() => ({
47
+ text: r("ds-steps.legacy-strategy"),
48
+ value: y,
49
+ infoBoxProps: {
50
+ id: "strategy-info-legacy",
51
+ theme: "light",
52
+ variant: "information",
53
+ className: "assign-strategy-info-box",
54
+ titleText: x(r("ds-steps.legacy-strategy")),
55
+ descriptionStatus: !0,
56
+ descriptionText: r("statistics.legacy-strategy-description"),
57
+ buttonOptions: [{
58
+ id: d,
59
+ type: "primary",
60
+ text: r("ds-steps.update"),
61
+ loadingStatus: e.legacyConversionLoading,
62
+ disabledStatus: e.legacyConversionLoading
63
+ }]
64
+ }
65
+ })), E = async (t) => {
66
+ if ((t == null ? void 0 : t.id) !== d)
67
+ return;
68
+ const a = await u();
69
+ a && (o.value = a);
70
+ }, m = s(() => e.strategies.map((t) => ({
46
71
  text: t.name,
47
72
  value: t.strategy_id,
48
73
  infoBoxProps: {
@@ -50,71 +75,57 @@ const Z = /* @__PURE__ */ O({
50
75
  theme: "light",
51
76
  variant: "information",
52
77
  className: "assign-strategy-info-box",
53
- titleText: P(S(t.name)),
78
+ titleText: x(D(t.name)),
54
79
  descriptionStatus: !0,
55
- descriptionText: p(t),
56
- slot: k,
57
- slotProps: { strategy: t },
58
- // The info box drops the option's value/text, so the id is the only channel
59
- // that can carry the strategy back to the click handler.
60
- buttonOptions: [{
61
- id: `${n}${t.strategy_id}`,
62
- text: s("eureka.edit-strategy"),
63
- type: "text",
64
- // Resolved from Guido's own public/sprite.svg by InIcons; an unknown name would
65
- // silently render blank space instead of failing.
66
- icon: "line-open-website"
67
- }]
80
+ descriptionText: f(t),
81
+ slot: G,
82
+ slotProps: { strategy: t }
68
83
  }
69
- }))), w = (t) => {
70
- var a;
71
- const e = (a = t == null ? void 0 : t.id) != null && a.startsWith(n) ? t.id.slice(n.length) : "";
72
- e && (String(o.value ?? "") === e && (o.value = null), r.recommendationConfigs.strategyId === e && r.removeStrategy(), r.openStrategyEdit(e));
73
- }, y = c(() => {
74
- const t = r.strategies.find((e) => String(e.strategy_id) === String(o.value ?? ""));
84
+ }))), C = s(() => e.isLegacyStrategyBlock ? [S.value, ...m.value] : m.value), v = s(() => {
85
+ const t = e.strategies.find((a) => String(a.strategy_id) === String(o.value ?? ""));
75
86
  return t ? { ...t, fallback_config: null } : null;
76
- }), x = c(() => ({
87
+ }), L = s(() => ({
77
88
  primaryButton: {
78
89
  styling: "solid",
79
90
  type: "primary",
80
- labelText: s("products.assign-btn")
91
+ labelText: r("products.assign-btn")
81
92
  },
82
93
  cancelOrBackButton: {
83
94
  styling: "ghost",
84
95
  type: "secondary",
85
- labelText: s("products.cancel")
96
+ labelText: r("products.cancel")
86
97
  }
87
98
  }));
88
- return { __sfc: !0, loadOrganisms: g, skeleton: m, OrgStrategyDetailModal: T, OrgStrategyDropdown: _, EDIT_BUTTON_ID_PREFIX: n, trans: s, store: r, showToaster: i, selectedStrategyId: o, showSelectionError: l, drawerDescription: D, lastUpdatedText: p, strategyOptions: v, onInfoBoxButtonClick: w, selectedStrategy: y, footerButtonGroupOptions: x, closeDrawer: () => {
89
- r.closeAssignStrategyDrawer();
99
+ return { __sfc: !0, loadOrganisms: l, skeleton: g, OrgStrategyDetailModal: O, OrgStrategyDropdown: w, trans: r, store: e, showToaster: i, convertLegacyStrategy: u, selectedStrategyId: o, LEGACY_OPTION_VALUE: y, LEGACY_UPDATE_BUTTON_ID: d, showSelectionError: c, drawerDescription: A, lastUpdatedText: f, legacyStrategyOption: S, onInfoBoxButtonClick: E, remoteStrategyOptions: m, strategyOptions: C, selectedStrategy: v, footerButtonGroupOptions: L, closeDrawer: () => {
100
+ e.closeAssignStrategyDrawer();
90
101
  }, assignStrategy: async () => {
91
- const t = y.value;
102
+ const t = v.value;
92
103
  if (!t) {
93
- l.value = !0;
104
+ c.value = !0;
94
105
  return;
95
106
  }
96
- let e = "";
107
+ let a = "";
97
108
  try {
98
- e = await r.resolveStrategyUrlTemplate(t, r.recommendationConfigs.currencySettings.value);
99
- } catch (a) {
100
- console.error("[AssignStrategyDrawer] resolveStrategyUrlTemplate failed", a);
109
+ a = await e.resolveStrategyUrlTemplate(t, e.recommendationConfigs.currencySettings.value);
110
+ } catch (n) {
111
+ console.error("[AssignStrategyDrawer] resolveStrategyUrlTemplate failed", n);
101
112
  }
102
- if (!e) {
113
+ if (!a) {
103
114
  i({
104
- type: d.Error,
105
- message: s("email-editor.strategy-assign-failed", { strategyName: t.name })
115
+ type: p.Error,
116
+ message: r("email-editor.strategy-assign-failed", { strategyName: t.name })
106
117
  });
107
118
  return;
108
119
  }
109
- r.assignStrategy(t), i({
110
- type: d.Success,
111
- message: s("email-editor.strategy-assigned-success", { strategyName: t.name })
112
- }), r.closeAssignStrategyDrawer();
120
+ e.assignStrategy(t), i({
121
+ type: p.Success,
122
+ message: r("email-editor.strategy-assigned-success", { strategyName: t.name })
123
+ }), e.closeAssignStrategyDrawer();
113
124
  }, onSelect: (t) => {
114
- o.value = t.value, l.value = !1;
125
+ o.value = t.value, c.value = !1;
115
126
  } };
116
127
  }
117
128
  });
118
129
  export {
119
- Z as default
130
+ st as default
120
131
  };
@@ -0,0 +1,18 @@
1
+ import s from "./LegacyStrategyUpdatedModal.vue2.js";
2
+ /* empty css */
3
+ import o from "../../../../_virtual/_plugin-vue2_normalizer.js";
4
+ var r = function() {
5
+ var t = this, a = t._self._c, e = t._self._setupProxy;
6
+ return e.store.legacyStrategyUpdatedModalStatus ? a("div", { staticClass: "legacy-strategy-updated-modal" }, [a(e.WpModal, { attrs: { id: "guido__legacy-strategy-updated-modal", size: "small", "close-on-outside-click": !1, "footer-button-options": e.footerButtonOptions, title: e.trans("ds-steps.recommendation-strategy-migration-modal-title") }, on: { close: e.close, "primary-action": e.close } }, [a("p", [t._v(t._s(e.messageParts[0])), a("b", [t._v(t._s(e.strategyName))]), t._v(t._s(e.messageParts[1]))])])], 1) : t._e();
7
+ }, l = [], n = /* @__PURE__ */ o(
8
+ s,
9
+ r,
10
+ l,
11
+ !1,
12
+ null,
13
+ "da2225a1"
14
+ );
15
+ const m = n.exports;
16
+ export {
17
+ m as default
18
+ };
@@ -0,0 +1,25 @@
1
+ import { defineComponent as i, computed as s } from "vue";
2
+ import p from "../../../wrappers/WpModal.vue.js";
3
+ import { useTranslations as d } from "../../../../composables/useTranslations.js";
4
+ import { useRecommendationExtensionStore as g } from "../../../../extensions/Blocks/Recommendation/store/recommendation.js";
5
+ const M = /* @__PURE__ */ i({
6
+ __name: "LegacyStrategyUpdatedModal",
7
+ setup(l) {
8
+ const e = d(), t = g(), n = s(() => ({
9
+ primaryButton: {
10
+ type: "primary",
11
+ labelText: e("action-builder.ok")
12
+ }
13
+ })), m = s(() => {
14
+ var r;
15
+ const { strategyId: a } = t.recommendationConfigs;
16
+ return ((r = t.assignedStrategy) == null ? void 0 : r.name) || `#${a}`;
17
+ }), o = "__STRATEGY_NAME__", c = s(() => e("email-editor.legacy-strategy-updated-message", { strategyName: o }).split(o));
18
+ return { __sfc: !0, trans: e, store: t, footerButtonOptions: n, strategyName: m, NAME_TOKEN: o, messageParts: c, close: () => {
19
+ t.closeLegacyStrategyUpdatedModal();
20
+ }, WpModal: p };
21
+ }
22
+ });
23
+ export {
24
+ M as default
25
+ };
@@ -1,15 +1,17 @@
1
- import { defineComponent as u, computed as n } from "vue";
2
- import y from "../../../wrappers/WpModal.vue.js";
3
- import { useToaster as f } from "../../../../composables/useToaster.js";
1
+ import { defineComponent as y, computed as n } from "vue";
2
+ import f from "../../../wrappers/WpModal.vue.js";
3
+ import { useToaster as u } from "../../../../composables/useToaster.js";
4
4
  import { useTranslations as _ } from "../../../../composables/useTranslations.js";
5
- import { ToasterTypeOptions as v } from "../../../../enums/toaster.js";
6
- import { useRecommendationExtensionStore as T } from "../../../../extensions/Blocks/Recommendation/store/recommendation.js";
7
- import { commitBlockChangeOutsidePanel as h } from "../../../../extensions/Blocks/Recommendation/utils/nodeConfigWriter.js";
8
- import { escapeHtml as R } from "../../../../utils/htmlEscape.js";
9
- const P = /* @__PURE__ */ u({
5
+ import { ToasterTypeOptions as R } from "../../../../enums/toaster.js";
6
+ import "../../../../extensions/Blocks/Recommendation/constants/selectors.js";
7
+ import { CURRENT_CONFIG_VERSION as T } from "../../../../extensions/Blocks/Recommendation/constants/defaultConfig.js";
8
+ import { useRecommendationExtensionStore as v } from "../../../../extensions/Blocks/Recommendation/store/recommendation.js";
9
+ import { commitBlockChangeOutsidePanel as N } from "../../../../extensions/Blocks/Recommendation/utils/nodeConfigWriter.js";
10
+ import { escapeHtml as S } from "../../../../utils/htmlEscape.js";
11
+ const w = /* @__PURE__ */ y({
10
12
  __name: "RemoveStrategyModal",
11
- setup(S) {
12
- const t = _(), e = T(), { showToaster: a } = f(), i = n(() => ({
13
+ setup(h) {
14
+ const t = _(), e = v(), { showToaster: a } = u(), i = n(() => ({
13
15
  cancelOrBackButton: {
14
16
  type: "secondary",
15
17
  labelText: t("products.cancel"),
@@ -20,38 +22,38 @@ const P = /* @__PURE__ */ u({
20
22
  labelText: t("discovery-strategy.remove")
21
23
  }
22
24
  })), m = n(() => {
23
- var o;
24
- const { strategyId: r } = e.recommendationConfigs;
25
- return ((o = e.assignedStrategy) == null ? void 0 : o.name) || `#${r}`;
25
+ var r;
26
+ const { strategyId: o } = e.recommendationConfigs;
27
+ return o ? ((r = e.assignedStrategy) == null ? void 0 : r.name) || `#${o}` : t("ds-steps.legacy-strategy");
26
28
  }), s = "__STRATEGY_NAME__", d = n(() => t("email-editor.remove-strategy-confirm-message", { strategyName: s }).split(s)), c = () => {
27
29
  e.closeRemoveStrategyModal();
28
30
  };
29
31
  return { __sfc: !0, trans: t, store: e, showToaster: a, footerButtonOptions: i, strategyName: m, NAME_TOKEN: s, messageParts: d, close: c, handleConfirm: async () => {
30
- const r = m.value, o = e.currentRecommendationId;
32
+ const o = m.value, r = e.currentRecommendationId;
31
33
  e.removeStrategy(), c();
32
34
  const { strategyId: l, size: g } = e.recommendationConfigs;
33
35
  if (a({
34
- type: v.Success,
36
+ type: R.Success,
35
37
  // The toast renders through a sanitizing v-html, so the name is escaped first.
36
38
  message: t("email-editor.strategy-removed-success", {
37
- strategyName: `<b>${R(r)}</b>`
39
+ strategyName: `<b>${S(o)}</b>`
38
40
  })
39
- }), o !== null) {
41
+ }), r !== null) {
40
42
  try {
41
43
  await e.fetchRecommendationProducts();
42
44
  } catch (p) {
43
45
  console.error("[RemoveStrategyModal] product refetch failed", p);
44
46
  }
45
- h(
46
- o,
47
- { strategyId: l, size: g },
47
+ N(
48
+ r,
49
+ { strategyId: l, size: g, configVersion: T },
48
50
  e.recommendationProducts,
49
51
  "Removed recommendation strategy"
50
52
  );
51
53
  }
52
- }, WpModal: y };
54
+ }, WpModal: f };
53
55
  }
54
56
  });
55
57
  export {
56
- P as default
58
+ w as default
57
59
  };
@@ -1,28 +1,30 @@
1
- import { defineComponent as b, computed as e, onMounted as O, watch as t } from "vue";
2
- import u from "./AMPOnboarding.vue.js";
3
- import v from "./GenericOnboarding.vue.js";
4
- import y from "./ItemsOnboarding.vue.js";
5
- import l from "./NewVersionPopup.vue.js";
6
- import S from "./RecommendationStrategyOnboarding.vue.js";
7
- import h from "./TextBlockOnboarding.vue.js";
8
- import w from "./VersionHistoryOnboarding.vue.js";
9
- import { usePartner as P } from "../../../composables/usePartner.js";
10
- import { useEditorStore as _ } from "../../../stores/editor.js";
11
- import { useOnboardingStore as A } from "../../../stores/onboarding.js";
12
- import { usePreviewStore as H } from "../../../stores/preview.js";
13
- const N = /* @__PURE__ */ b({
1
+ import { defineComponent as f, computed as e, onMounted as O, watch as t } from "vue";
2
+ import y from "./AMPOnboarding.vue.js";
3
+ import u from "./GenericOnboarding.vue.js";
4
+ import v from "./ItemsOnboarding.vue.js";
5
+ import S from "./NewVersionPopup.vue.js";
6
+ import l from "./RecommendationLegacyStrategyOnboarding.vue.js";
7
+ import h from "./RecommendationStrategyOnboarding.vue.js";
8
+ import w from "./TextBlockOnboarding.vue.js";
9
+ import P from "./VersionHistoryOnboarding.vue.js";
10
+ import { usePartner as _ } from "../../../composables/usePartner.js";
11
+ import { useEditorStore as A } from "../../../stores/editor.js";
12
+ import { useOnboardingStore as H } from "../../../stores/onboarding.js";
13
+ import { usePreviewStore as M } from "../../../stores/preview.js";
14
+ const U = /* @__PURE__ */ f({
14
15
  __name: "OnboardingWrapper",
15
16
  emits: ["onboarding-finished"],
16
- setup(M, { emit: g }) {
17
- const o = A(), r = _(), s = H(), { isTestPartner: a } = P(), m = e(() => r.isStripoInitialized), p = e(() => a()), d = [
18
- { type: "newVersionPopup", component: l },
19
- { type: "genericOnboarding", component: v },
20
- { type: "textBlockOnboarding", component: h },
21
- { type: "versionHistoryOnboarding", component: w },
22
- { type: "ampOnboarding", component: u },
23
- { type: "itemsOnboarding", component: y },
24
- { type: "recommendationStrategyOnboarding", component: S }
25
- ], c = (n) => p.value || !m.value ? !1 : n === "newVersionPopup" ? o.shouldShowOnboarding(n) : o.isActive(n), f = e(() => d.filter((n) => c(n.type)));
17
+ setup(x, { emit: g }) {
18
+ const o = H(), r = A(), a = M(), { isTestPartner: s } = _(), m = e(() => r.isStripoInitialized), p = e(() => s()), d = [
19
+ { type: "newVersionPopup", component: S },
20
+ { type: "genericOnboarding", component: u },
21
+ { type: "textBlockOnboarding", component: w },
22
+ { type: "versionHistoryOnboarding", component: P },
23
+ { type: "ampOnboarding", component: y },
24
+ { type: "itemsOnboarding", component: v },
25
+ { type: "recommendationStrategyOnboarding", component: h },
26
+ { type: "recommendationLegacyStrategyOnboarding", component: l }
27
+ ], c = (n) => p.value || !m.value ? !1 : n === "newVersionPopup" ? o.shouldShowOnboarding(n) : o.isActive(n), b = e(() => d.filter((n) => c(n.type)));
26
28
  return O(async () => {
27
29
  await o.fetchUserModalState();
28
30
  }), t(
@@ -31,7 +33,7 @@ const N = /* @__PURE__ */ b({
31
33
  n && !i && o.shouldShowOnboarding("versionHistoryOnboarding") && o.start("versionHistoryOnboarding"), !n && i && o.isActive("versionHistoryOnboarding") && o.close("versionHistoryOnboarding");
32
34
  }
33
35
  ), t(
34
- () => s.emailFormat,
36
+ () => a.emailFormat,
35
37
  (n, i) => {
36
38
  i !== "AMP" && n === "AMP" && o.shouldShowOnboarding("ampOnboarding") && o.start("ampOnboarding");
37
39
  }
@@ -40,9 +42,9 @@ const N = /* @__PURE__ */ b({
40
42
  (n) => {
41
43
  !n && o.isActive("ampOnboarding") && o.close("ampOnboarding");
42
44
  }
43
- ), { __sfc: !0, emit: g, onboardingStore: o, editorStore: r, previewStore: s, isTestPartner: a, isStripoReady: m, isTestPartnerActive: p, onboardingConfigs: d, shouldShow: c, visibleOnboardings: f };
45
+ ), { __sfc: !0, emit: g, onboardingStore: o, editorStore: r, previewStore: a, isTestPartner: s, isStripoReady: m, isTestPartnerActive: p, onboardingConfigs: d, shouldShow: c, visibleOnboardings: b };
44
46
  }
45
47
  });
46
48
  export {
47
- N as default
49
+ U as default
48
50
  };
@@ -0,0 +1,21 @@
1
+ import s from "./RecommendationLegacyStrategyOnboarding.vue2.js";
2
+ /* empty css */
3
+ import c from "../../../_virtual/_plugin-vue2_normalizer.js";
4
+ var d = function() {
5
+ var t, n, r, a, i;
6
+ var o = this, g = o._self._c, e = o._self._setupProxy;
7
+ return e.isVisible ? g(e.InOnboard, { key: "guido__recommendation-legacy-strategy-onboard", staticClass: "w-21-s p-a z-11", class: (t = e.onboardingStore.getRecommendationLegacyStrategyCurrentCard) == null ? void 0 : t.classes, attrs: { id: "guido__recommendation-legacy-strategy-onboard", "is-multiple-page": "", visible: "", "image-source": "", title: "", "left-position": (n = e.onboardingStore.getRecommendationLegacyStrategyCurrentCard) == null ? void 0 : n.left, "pages-config": e.onboardingStore.onboardings.recommendationLegacyStrategyOnboarding.config, "pointer-position": (r = e.onboardingStore.getRecommendationLegacyStrategyCurrentCard) == null ? void 0 : r.position, "right-position": (a = e.onboardingStore.getRecommendationLegacyStrategyCurrentCard) == null ? void 0 : a.right, "top-position": (i = e.onboardingStore.getRecommendationLegacyStrategyCurrentCard) == null ? void 0 : i.top }, on: { close: function(p) {
8
+ return e.onboardingStore.close(e.ONBOARDING_TYPE);
9
+ }, nextButtonClick: e.handleNext } }) : o._e();
10
+ }, m = [], l = /* @__PURE__ */ c(
11
+ s,
12
+ d,
13
+ m,
14
+ !1,
15
+ null,
16
+ "19d8cb42"
17
+ );
18
+ const f = l.exports;
19
+ export {
20
+ f as default
21
+ };
@@ -0,0 +1,46 @@
1
+ import { defineComponent as d, computed as g, watch as l } from "vue";
2
+ import { useRibbonOffset as b } from "../../../composables/useRibbonOffset.js";
3
+ import { useTranslations as p } from "../../../composables/useTranslations.js";
4
+ import { ACADEMY_LINKS as u } from "../../../enums/academy.js";
5
+ import { useOnboardingStore as y } from "../../../stores/onboarding.js";
6
+ import { InOnboard as f } from "@useinsider/design-system-vue";
7
+ const A = /* @__PURE__ */ d({
8
+ __name: "RecommendationLegacyStrategyOnboarding",
9
+ setup(O) {
10
+ const n = "recommendationLegacyStrategyOnboarding", o = p(), t = y(), { getTopPosition: i } = b(), r = `<a href="${u.EMAIL_RECOMMENDATION_BLOCK}" target="_blank" rel="noopener noreferrer">${o("action-builder.visit-academy")}</a>`, a = () => [
11
+ {
12
+ classes: "guido-recommendation-legacy-strategy-onboarding",
13
+ right: "40px",
14
+ top: i(485),
15
+ position: "Top Right",
16
+ title: o("email-editor.onboarding-recommendation-strategy-legacy-title"),
17
+ description: o("email-editor.onboarding-recommendation-strategy-legacy-description", {
18
+ academyLink: r
19
+ }),
20
+ imageSource: "",
21
+ backButtonClick: () => {
22
+ },
23
+ nextButtonType: "text",
24
+ nextButtonText: o("action-builder.ok"),
25
+ nextButtonClick: () => {
26
+ t.close(n);
27
+ }
28
+ }
29
+ ], s = g(
30
+ () => t.onboardings.recommendationLegacyStrategyOnboarding.config.length > 0 && t.onboardings.recommendationLegacyStrategyOnboarding.isActive
31
+ ), m = () => {
32
+ var e, c;
33
+ (c = (e = t.getRecommendationLegacyStrategyCurrentCard) == null ? void 0 : e.nextButtonClick) == null || c.call(e);
34
+ };
35
+ return l(
36
+ () => t.isActive(n),
37
+ (e) => {
38
+ e && t.setConfig(n, a());
39
+ },
40
+ { immediate: !0 }
41
+ ), { __sfc: !0, ONBOARDING_TYPE: n, trans: o, onboardingStore: t, getTopPosition: i, academyLink: r, buildOnboardingCards: a, isVisible: s, handleNext: m, InOnboard: f };
42
+ }
43
+ });
44
+ export {
45
+ A as default
46
+ };
@@ -1,67 +1,71 @@
1
- import S from "../static/assets/icons/line-change.svg.js";
2
- import i from "../static/assets/icons/line-delete.svg.js";
3
- import n from "../static/assets/icons/line-plus.svg.js";
4
- import p from "../static/styles/base.css.js";
5
- import s from "../static/styles/components/alert-message.css.js";
6
- import C from "../static/styles/components/amp-block.css.js";
7
- import a from "../static/styles/components/base-input.css.js";
8
- import f from "../static/styles/components/button-group.css.js";
9
- import c from "../static/styles/components/button.css.js";
10
- import u from "../static/styles/components/combobox.css.js";
11
- import l from "../static/styles/components/counter.css.js";
12
- import d from "../static/styles/components/dropdown-menu.css.js";
1
+ import i from "../static/assets/icons/filled-arrow-rising.svg.js";
2
+ import n from "../static/assets/icons/line-change.svg.js";
3
+ import S from "../static/assets/icons/line-delete.svg.js";
4
+ import p from "../static/assets/icons/line-info.svg.js";
5
+ import s from "../static/assets/icons/line-plus.svg.js";
6
+ import f from "../static/styles/base.css.js";
7
+ import C from "../static/styles/components/alert-message.css.js";
8
+ import a from "../static/styles/components/amp-block.css.js";
9
+ import c from "../static/styles/components/base-input.css.js";
10
+ import l from "../static/styles/components/button-group.css.js";
11
+ import u from "../static/styles/components/button.css.js";
12
+ import d from "../static/styles/components/combobox.css.js";
13
+ import I from "../static/styles/components/counter.css.js";
14
+ import g from "../static/styles/components/dropdown-menu.css.js";
13
15
  import h from "../static/styles/components/loader.css.js";
14
- import g from "../static/styles/components/narrow-panel.css.js";
15
- import I from "../static/styles/components/popup.css.js";
16
- import w from "../static/styles/components/recommendation-strategy.css.js";
17
- import y from "../static/styles/components/switcher.css.js";
18
- import b from "../static/styles/components/tabs.css.js";
19
- import B from "../static/styles/components/tools.css.js";
20
- import $ from "../static/styles/components/version-history.css.js";
21
- import P from "../static/styles/components/wide-panel.css.js";
16
+ import w from "../static/styles/components/narrow-panel.css.js";
17
+ import $ from "../static/styles/components/popup.css.js";
18
+ import y from "../static/styles/components/recommendation-strategy.css.js";
19
+ import b from "../static/styles/components/switcher.css.js";
20
+ import B from "../static/styles/components/tabs.css.js";
21
+ import A from "../static/styles/components/tools.css.js";
22
+ import P from "../static/styles/components/version-history.css.js";
23
+ import R from "../static/styles/components/wide-panel.css.js";
22
24
  import x from "../static/styles/variables.css.js";
23
- function r(t, o) {
24
- return `--guido-icon-${t}: url("data:image/svg+xml,${encodeURIComponent(o.trim())}");`;
25
+ function o(t, r) {
26
+ return `--guido-icon-${t}: url("data:image/svg+xml,${encodeURIComponent(r.trim())}");`;
25
27
  }
26
- const A = `:host {
27
- ${r("line-change", S)}
28
- ${r("line-delete", i)}
29
- ${r("line-plus", n)}
30
- }`, R = [
28
+ const V = `:host {
29
+ ${o("line-change", n)}
30
+ ${o("line-delete", S)}
31
+ ${o("filled-arrow-rising", i)}
32
+ ${o("line-info", p)}
33
+ ${o("line-plus", s)}
34
+ }`, D = [
31
35
  x,
32
36
  // Must be on top
33
- A,
34
- p,
37
+ V,
38
+ f,
35
39
  // Must be on top
36
- s,
37
40
  C,
38
41
  a,
39
- f,
40
42
  c,
41
- u,
42
43
  l,
44
+ u,
43
45
  d,
44
- h,
45
- g,
46
46
  I,
47
- y,
47
+ g,
48
+ h,
49
+ w,
50
+ $,
48
51
  b,
49
52
  B,
50
- $,
53
+ A,
51
54
  P,
52
- w
55
+ R,
56
+ y
53
57
  // Last: overrides button.css / wide-panel.css defaults
54
58
  ].join(`
55
59
 
56
- `), Y = () => ({ importCss: () => {
57
- const o = new CSSStyleSheet();
58
- o.replaceSync(R);
60
+ `), ro = () => ({ importCss: () => {
61
+ const r = new CSSStyleSheet();
62
+ r.replaceSync(D);
59
63
  const e = document.querySelector("ui-editor");
60
64
  if (!e)
61
65
  return;
62
66
  const m = e.shadowRoot;
63
- m && (m.adoptedStyleSheets = [o]);
67
+ m && (m.adoptedStyleSheets = [r]);
64
68
  } });
65
69
  export {
66
- Y as useCustomInterfaceAppearance
70
+ ro as useCustomInterfaceAppearance
67
71
  };