@useinsider/guido 1.0.3-beta.6541b5a → 1.0.3-beta.671eb65

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 (149) hide show
  1. package/dist/@types/generic.d.ts +13 -0
  2. package/dist/components/Guido.vue.d.ts +2 -2
  3. package/dist/components/Guido.vue.js +7 -7
  4. package/dist/components/Guido.vue2.js +74 -68
  5. package/dist/components/organisms/extensions/recommendation/FilterItem.vue.d.ts +19 -0
  6. package/dist/components/organisms/extensions/recommendation/FilterItem.vue.js +28 -0
  7. package/dist/components/organisms/extensions/recommendation/FilterItem.vue2.js +38 -0
  8. package/dist/components/organisms/extensions/recommendation/FilterSelectionDrawer.vue.d.ts +2 -0
  9. package/dist/components/organisms/extensions/recommendation/FilterSelectionDrawer.vue.js +17 -0
  10. package/dist/components/organisms/extensions/recommendation/FilterSelectionDrawer.vue2.js +37 -0
  11. package/dist/components/organisms/extensions/recommendation/Filters.vue.d.ts +2 -0
  12. package/dist/components/organisms/extensions/recommendation/Filters.vue.js +20 -0
  13. package/dist/components/organisms/extensions/recommendation/Filters.vue2.js +44 -0
  14. package/dist/components/organisms/extensions/recommendation/LogicAdapter.vue.d.ts +16 -0
  15. package/dist/components/organisms/extensions/recommendation/LogicAdapter.vue.js +17 -0
  16. package/dist/components/organisms/extensions/recommendation/LogicAdapter.vue2.js +27 -0
  17. package/dist/components/organisms/unsubscribe/UnsubscribeBreadcrumb.vue.d.ts +2 -0
  18. package/dist/components/organisms/unsubscribe/UnsubscribeBreadcrumb.vue.js +18 -0
  19. package/dist/components/organisms/unsubscribe/UnsubscribeBreadcrumb.vue2.js +16 -0
  20. package/dist/components/organisms/unsubscribe/UnsubscribePageSelection.vue.d.ts +2 -0
  21. package/dist/components/organisms/unsubscribe/UnsubscribePageSelection.vue.js +24 -0
  22. package/dist/components/organisms/unsubscribe/UnsubscribePageSelection.vue2.js +64 -0
  23. package/dist/components/organisms/unsubscribe/UnsubscribeTypeSelection.vue.d.ts +2 -0
  24. package/dist/components/organisms/unsubscribe/UnsubscribeTypeSelection.vue.js +18 -0
  25. package/dist/components/organisms/unsubscribe/UnsubscribeTypeSelection.vue2.js +107 -0
  26. package/dist/components/organisms/unsubscribe/UnsubscribeWrapper.vue.d.ts +2 -0
  27. package/dist/components/organisms/unsubscribe/UnsubscribeWrapper.vue.js +18 -0
  28. package/dist/components/organisms/unsubscribe/UnsubscribeWrapper.vue2.js +12 -0
  29. package/dist/components/wrappers/WpDrawer.vue.d.ts +6 -4
  30. package/dist/components/wrappers/WpDrawer.vue.js +6 -4
  31. package/dist/composables/useStripo.js +26 -18
  32. package/dist/config/compiler/unsubscribeCompilerRules.js +42 -29
  33. package/dist/config/migrator/couponBlockMigrator.js +24 -21
  34. package/dist/config/migrator/index.d.ts +1 -1
  35. package/dist/config/migrator/index.js +7 -6
  36. package/dist/config/migrator/unsubscribeMigrator.d.ts +1 -0
  37. package/dist/config/migrator/unsubscribeMigrator.js +124 -0
  38. package/dist/enums/defaults.js +6 -3
  39. package/dist/enums/extensions/recommendationBlock.d.ts +16 -0
  40. package/dist/enums/extensions/recommendationBlock.js +80 -0
  41. package/dist/enums/unsubscribe.d.ts +23 -0
  42. package/dist/enums/unsubscribe.js +43 -6
  43. package/dist/extensions/Blocks/Checkbox/block.d.ts +1 -0
  44. package/dist/extensions/Blocks/Checkbox/block.js +15 -24
  45. package/dist/extensions/Blocks/Checkbox/control.js +55 -67
  46. package/dist/extensions/Blocks/Checkbox/extension.js +5 -16
  47. package/dist/extensions/Blocks/Checkbox/iconsRegistry.d.ts +4 -0
  48. package/dist/extensions/Blocks/Checkbox/iconsRegistry.js +18 -0
  49. package/dist/extensions/Blocks/Checkbox/settingsPanel.js +12 -25
  50. package/dist/extensions/Blocks/Checkbox/template.js +5 -16
  51. package/dist/extensions/Blocks/CouponBlock/block.d.ts +1 -0
  52. package/dist/extensions/Blocks/CouponBlock/block.js +14 -24
  53. package/dist/extensions/Blocks/CouponBlock/extension.js +5 -16
  54. package/dist/extensions/Blocks/CouponBlock/iconsRegistry.d.ts +4 -0
  55. package/dist/extensions/Blocks/CouponBlock/iconsRegistry.js +33 -0
  56. package/dist/extensions/Blocks/CouponBlock/settingsPanel.js +16 -29
  57. package/dist/extensions/Blocks/CouponBlock/template.js +1 -1
  58. package/dist/extensions/Blocks/RadioButton/block.d.ts +1 -0
  59. package/dist/extensions/Blocks/RadioButton/block.js +13 -22
  60. package/dist/extensions/Blocks/RadioButton/control.js +40 -52
  61. package/dist/extensions/Blocks/RadioButton/extension.js +4 -15
  62. package/dist/extensions/Blocks/RadioButton/iconsRegistry.d.ts +4 -0
  63. package/dist/extensions/Blocks/RadioButton/iconsRegistry.js +14 -0
  64. package/dist/extensions/Blocks/RadioButton/settingsPanel.js +13 -26
  65. package/dist/extensions/Blocks/RadioButton/template.js +13 -24
  66. package/dist/extensions/Blocks/Recommendation/block.d.ts +10 -0
  67. package/dist/extensions/Blocks/Recommendation/block.js +27 -0
  68. package/dist/extensions/Blocks/Recommendation/control.d.ts +29 -0
  69. package/dist/extensions/Blocks/Recommendation/control.js +277 -0
  70. package/dist/extensions/Blocks/Recommendation/extension.d.ts +2 -0
  71. package/dist/extensions/Blocks/Recommendation/extension.js +10 -0
  72. package/dist/extensions/Blocks/Recommendation/iconsRegistry.d.ts +4 -0
  73. package/dist/extensions/Blocks/Recommendation/iconsRegistry.js +51 -0
  74. package/dist/extensions/Blocks/Recommendation/recommendation.css.js +19 -0
  75. package/dist/extensions/Blocks/Recommendation/settingsPanel.d.ts +4 -0
  76. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +32 -0
  77. package/dist/extensions/Blocks/Recommendation/store/recommendation.d.ts +555 -0
  78. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +266 -0
  79. package/dist/extensions/Blocks/Recommendation/template.d.ts +6 -0
  80. package/dist/extensions/Blocks/Recommendation/template.js +200 -0
  81. package/dist/extensions/Blocks/Recommendation/utils/filterUtil.d.ts +7 -0
  82. package/dist/extensions/Blocks/Recommendation/utils/filterUtil.js +28 -0
  83. package/dist/extensions/Blocks/Unsubscribe/block.d.ts +32 -0
  84. package/dist/extensions/Blocks/Unsubscribe/block.js +131 -0
  85. package/dist/extensions/Blocks/Unsubscribe/control.d.ts +29 -0
  86. package/dist/extensions/Blocks/Unsubscribe/control.js +167 -0
  87. package/dist/extensions/Blocks/Unsubscribe/elements/preview.d.ts +11 -0
  88. package/dist/extensions/Blocks/Unsubscribe/elements/preview.js +42 -0
  89. package/dist/extensions/Blocks/Unsubscribe/extension.d.ts +2 -0
  90. package/dist/extensions/Blocks/Unsubscribe/extension.js +21 -0
  91. package/dist/extensions/Blocks/Unsubscribe/iconsRegistry.d.ts +4 -0
  92. package/dist/extensions/Blocks/Unsubscribe/iconsRegistry.js +21 -0
  93. package/dist/extensions/Blocks/Unsubscribe/settingsPanel.d.ts +4 -0
  94. package/dist/extensions/Blocks/Unsubscribe/settingsPanel.js +35 -0
  95. package/dist/extensions/Blocks/Unsubscribe/styles.css.js +42 -0
  96. package/dist/extensions/Blocks/Unsubscribe/tagRegistry.d.ts +4 -0
  97. package/dist/extensions/Blocks/Unsubscribe/tagRegistry.js +10 -0
  98. package/dist/extensions/Blocks/Unsubscribe/template.d.ts +12 -0
  99. package/dist/extensions/Blocks/Unsubscribe/template.js +22 -0
  100. package/dist/extensions/Blocks/Unsubscribe/utils/constants.d.ts +9 -0
  101. package/dist/extensions/Blocks/Unsubscribe/utils/constants.js +11 -0
  102. package/dist/extensions/Blocks/Unsubscribe/utils/utils.d.ts +7 -0
  103. package/dist/extensions/Blocks/Unsubscribe/utils/utils.js +6 -0
  104. package/dist/extensions/Blocks/_Boilerplate/block.d.ts +1 -0
  105. package/dist/extensions/Blocks/_Boilerplate/iconsRegistry.d.ts +4 -0
  106. package/dist/extensions/Blocks/common-control.d.ts +66 -0
  107. package/dist/extensions/Blocks/common-control.js +102 -0
  108. package/dist/extensions/DynamicContent/dynamic-content.js +31 -45
  109. package/dist/extensions/DynamicContent/extension.js +6 -18
  110. package/dist/guido.css +1 -1
  111. package/dist/mock/api/recommendation.d.ts +2 -0
  112. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +659 -0
  113. package/dist/services/recommendationApi.d.ts +6 -0
  114. package/dist/services/recommendationApi.js +43 -0
  115. package/dist/services/unsubscribeApi.d.ts +4 -0
  116. package/dist/services/unsubscribeApi.js +16 -0
  117. package/dist/stores/config.d.ts +96 -0
  118. package/dist/stores/config.js +17 -0
  119. package/dist/stores/editor.d.ts +21 -0
  120. package/dist/stores/editor.js +2 -1
  121. package/dist/stores/unsubscribe.d.ts +253 -5
  122. package/dist/stores/unsubscribe.js +126 -6
  123. package/dist/utils/genericUtil.d.ts +1 -0
  124. package/dist/utils/genericUtil.js +8 -7
  125. package/dist/utils/templatePreparation.js +17 -16
  126. package/package.json +3 -3
  127. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/Extension.js +0 -75
  128. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/ExtensionBuilder.js +0 -77
  129. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/blocks/Block.js +0 -123
  130. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/AiAssistantValueType.js +0 -7
  131. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/BlockCompositionType.js +0 -7
  132. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/BlockName.js +0 -12
  133. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/BlockType.js +0 -7
  134. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/BuiltInControlTypes.js +0 -119
  135. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/ContextActionType.js +0 -7
  136. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/EditorStatePropertyType.js +0 -7
  137. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/PanelPosition.js +0 -7
  138. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/Popover.js +0 -12
  139. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/PreviewDeviceMode.js +0 -7
  140. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/SettingsTab.js +0 -7
  141. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/UIElementType.js +0 -7
  142. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/constants/UIElementsAttributes.js +0 -24
  143. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/Control.js +0 -24
  144. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/SettingsPanelRegistry.js +0 -11
  145. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/controls/SettingsPanelTab.js +0 -33
  146. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/modifications/ModificationDescription.js +0 -22
  147. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/ui-elements/UIElement.js +0 -40
  148. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/ui-elements/UIElementTagRegistry.js +0 -5
  149. package/dist/static/assets/icons/coupon.svg.js +0 -4
@@ -0,0 +1,64 @@
1
+ import { defineComponent as f, ref as y, computed as n, watch as T } from "vue";
2
+ import g from "../../wrappers/WpDrawer.vue.js";
3
+ import { useToaster as S } from "../../../composables/useToaster.js";
4
+ import { useTranslations as v } from "../../../composables/useTranslations.js";
5
+ import { ToasterTypeOptions as B } from "../../../enums/toaster.js";
6
+ import { useUnsubscribeStore as w } from "../../../stores/unsubscribe.js";
7
+ import { InContainer as C } from "@useinsider/design-system-vue";
8
+ import h from "./UnsubscribeBreadcrumb.vue.js";
9
+ const E = /* @__PURE__ */ f({
10
+ __name: "UnsubscribePageSelection",
11
+ setup(_) {
12
+ const s = v(), e = w(), { showToaster: a } = S(), o = y(!1), c = n(() => e.isActiveTypeLastInCollection ? o.value ? s("unsubscription-preference.applying-changes") : s("statistics.apply") : s("products.select-and-continue")), i = n(() => e.pageSelectionUpdateStatus && e.isActiveTypeFirstInCollection ? s("products.cancel") : s("newsletter.back")), p = n(() => ({
13
+ primaryButton: {
14
+ styling: "solid",
15
+ type: "primary",
16
+ labelText: c.value,
17
+ loadingStatus: o.value,
18
+ disabledStatus: !1
19
+ },
20
+ cancelOrBackButton: {
21
+ styling: "ghost",
22
+ type: "secondary",
23
+ labelText: i.value,
24
+ disabledStatus: o.value
25
+ }
26
+ })), u = (t) => e.getSelectedTemplateByActiveType === t ? "bor-w-3 bor-s-s bor-c-7" : "bor-w-1 bor-s-s bor-c-6", r = (t) => {
27
+ e.pageSelectionDrawerStatus = !1, t && setTimeout(() => {
28
+ t();
29
+ }, 500);
30
+ }, m = () => {
31
+ if (e.isActiveTypeFirstInCollection) {
32
+ r(), e.pageSelectionUpdateStatus || (e.typeSelectionDrawerStatus = !0);
33
+ return;
34
+ }
35
+ e.setPreviousType();
36
+ }, d = () => {
37
+ if (e.isActiveTypeLastInCollection) {
38
+ o.value = !0;
39
+ const t = e.selectedCollectionType, l = e.getSelectedTemplatesByCollection(t);
40
+ e.addUnsubscribePages(l), document.dispatchEvent(new CustomEvent("unsubscribe:select", {
41
+ detail: {
42
+ collectionType: t,
43
+ selectedPages: l
44
+ }
45
+ })), r(() => {
46
+ o.value = !1, a({
47
+ type: B.Success,
48
+ message: s("global-unsubscribe.pages-were-attached")
49
+ });
50
+ });
51
+ return;
52
+ }
53
+ e.setNextType();
54
+ }, b = (t) => {
55
+ e.setSelectedTemplate(t);
56
+ };
57
+ return T(() => e.pageSelectionDrawerStatus, (t) => {
58
+ t && e.pageSelectionUpdateStatus && e.fetchTemplates();
59
+ }), { __sfc: !0, trans: s, unsubscribeStore: e, showToaster: a, isApplying: o, getPrimaryButtonText: c, getCancelOrBackButtonText: i, footerButtonGroupOptions: p, getBorderClass: u, closeModal: r, handleBack: m, handleSave: d, selectTemplate: b, WpDrawer: g, InContainer: C, UnsubscribeBreadcrumb: h };
60
+ }
61
+ });
62
+ export {
63
+ E as default
64
+ };
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
2
+ export default _default;
@@ -0,0 +1,18 @@
1
+ import n from "./UnsubscribeTypeSelection.vue2.js";
2
+ /* empty css */
3
+ import o from "../../../_virtual/_plugin-vue2_normalizer.js";
4
+ var i = function() {
5
+ var e = this, s = e._self._c, t = e._self._setupProxy;
6
+ return s(t.WpDrawer, { attrs: { id: "unsubscribe-modal", "description-status": "", "description-text": t.descriptionText, "footer-button-group-options": t.footerButtonGroupOptions, status: t.unsubscribeStore.typeSelectionDrawerStatus, "title-text": t.trans("unsubscription-preference.select-unsubscribe-page-title") }, on: { cancelOrBackButtonEvent: t.closeModal, onCloseEvent: t.closeModal, primaryButtonEvent: t.selectCollection } }, [s(t.InSegments, { staticClass: "w-1", attrs: { "with-icon": "", align: "vertical", disable: t.isSelecting, "segment-list": t.segmentList, selected: t.selectedCollection, "skeleton-sizing": { width: 495, height: 180 }, "skeleton-status": t.skeletonStatus }, on: { click: t.changeCollection } })], 1);
7
+ }, r = [], c = /* @__PURE__ */ o(
8
+ n,
9
+ i,
10
+ r,
11
+ !1,
12
+ null,
13
+ "dd57102d"
14
+ );
15
+ const d = c.exports;
16
+ export {
17
+ d as default
18
+ };
@@ -0,0 +1,107 @@
1
+ import { defineComponent as h, ref as b, computed as m, watch as _ } from "vue";
2
+ import v from "../../wrappers/WpDrawer.vue.js";
3
+ import { useToaster as B } from "../../../composables/useToaster.js";
4
+ import { useTranslations as N } from "../../../composables/useTranslations.js";
5
+ import { ToasterTypeOptions as U } from "../../../enums/toaster.js";
6
+ import { PAGE_TYPES as l, ACADEMY_LINK as w, UNSUBSCRIBE_PAGES_LINK as P, TYPE_TRANSLATIONS as R } from "../../../enums/unsubscribe.js";
7
+ import { useUnsubscribeStore as D } from "../../../stores/unsubscribe.js";
8
+ import { InSegments as I } from "@useinsider/design-system-vue";
9
+ const z = /* @__PURE__ */ h({
10
+ __name: "UnsubscribeTypeSelection",
11
+ setup(G) {
12
+ const e = N(), { showToaster: f } = B(), t = D(), n = b(!1), i = b(!0), o = b(l.GLOBAL_UNSUBSCRIBE), S = e(
13
+ "unsubscription-preference.select-unsubscribe-page-description",
14
+ { action: `<a href="${w}" target="_blank">${e("ds-rules.visit-academy")}</a>` }
15
+ ), T = m(() => [
16
+ {
17
+ description: e("unsubscription-preference.type-global-unsubscribe-description"),
18
+ icon: "line-contact-global-unsub-page",
19
+ text: e("unsubscription-preference.type-global-unsubscribe"),
20
+ value: l.GLOBAL_UNSUBSCRIBE,
21
+ disable: t.isGlobalUnsubscribeDisabled,
22
+ position: "bottom",
23
+ tooltipText: t.isGlobalUnsubscribeDisabled ? e("unsubscription-preference.global-unsub-added") : ""
24
+ },
25
+ {
26
+ description: e("unsubscription-preference.type-subscription-preferences-center-description"),
27
+ icon: "line-contact-sub-pref-center-page",
28
+ text: e("unsubscription-preference.type-subscription-preferences-center"),
29
+ value: l.SUBSCRIPTION_PREFERENCE_CENTER,
30
+ disable: t.isSubscriptionPreferencesCenterDisabled,
31
+ tooltipText: t.isSubscriptionPreferencesCenterDisabled ? e("unsubscription-preference.pref-center-added") : ""
32
+ }
33
+ ]), y = m(() => ({
34
+ primaryButton: {
35
+ styling: "solid",
36
+ type: "primary",
37
+ labelText: e(
38
+ n.value ? "unsubscription-preference.selecting-type" : "products.select-and-continue"
39
+ ),
40
+ loadingStatus: n.value,
41
+ disabledStatus: !1,
42
+ skeletonStatus: i.value,
43
+ skeletonSizing: { width: 168, height: 40 }
44
+ },
45
+ cancelOrBackButton: {
46
+ styling: "ghost",
47
+ type: "secondary",
48
+ labelText: e("products.cancel"),
49
+ disabledStatus: n.value,
50
+ skeletonStatus: i.value,
51
+ skeletonSizing: { width: 78, height: 40 }
52
+ }
53
+ })), d = (s) => {
54
+ t.typeSelectionDrawerStatus = !1, document.dispatchEvent(new CustomEvent("unsubscribe:cancel")), s && setTimeout(() => {
55
+ s();
56
+ }, 500);
57
+ }, E = (s) => {
58
+ o.value = s;
59
+ }, g = () => {
60
+ const s = t.hasTemplatesByCollectionType, r = [];
61
+ if (Object.entries(s).forEach(([c, p]) => {
62
+ p || r.push(Number(c));
63
+ }), r.length === 0)
64
+ return !0;
65
+ const a = r.map((c) => R[c]);
66
+ let u = "";
67
+ if (r.length === 1)
68
+ u = e("unsubscription-preference.create-page-to-continue", {
69
+ page: a[0]
70
+ });
71
+ else if (r.length === 2)
72
+ u = e("unsubscription-preference.create-pages-to-continue", {
73
+ page1: a[0],
74
+ page2: a[1]
75
+ });
76
+ else {
77
+ const c = a.pop() ?? "", p = a.join(", ");
78
+ u = e("unsubscription-preference.create-multiple-pages-to-continue", {
79
+ pages: p,
80
+ lastPage: c
81
+ });
82
+ }
83
+ return f({
84
+ type: U.Warning,
85
+ message: u,
86
+ actionButton: {
87
+ text: "Go to Unsubscribe Pages",
88
+ onClick: () => {
89
+ window.location.href = P;
90
+ }
91
+ }
92
+ }), !1;
93
+ }, C = async () => {
94
+ if (n.value = !0, await t.fetchTemplates(), t.setCollection(o.value), !g()) {
95
+ n.value = !1, d();
96
+ return;
97
+ }
98
+ n.value = !1, t.typeSelectionDrawerStatus = !1, t.pageSelectionDrawerStatus = !0;
99
+ };
100
+ return _(() => t.typeSelectionDrawerStatus, (s) => {
101
+ 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: v, InSegments: I };
103
+ }
104
+ });
105
+ export {
106
+ z as default
107
+ };
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
2
+ export default _default;
@@ -0,0 +1,18 @@
1
+ import o from "./UnsubscribeWrapper.vue2.js";
2
+ import t from "../../../_virtual/_plugin-vue2_normalizer.js";
3
+ var _ = function() {
4
+ var s;
5
+ var e = this, n = e._self._c, r = e._self._setupProxy;
6
+ return (s = r.config.extensions) != null && s.unsubscribe ? n("div", [n(r.UnsubscribeTypeSelection), n(r.UnsubscribePageSelection)], 1) : e._e();
7
+ }, c = [], i = /* @__PURE__ */ t(
8
+ o,
9
+ _,
10
+ c,
11
+ !1,
12
+ null,
13
+ null
14
+ );
15
+ const l = i.exports;
16
+ export {
17
+ l as default
18
+ };
@@ -0,0 +1,12 @@
1
+ import { defineComponent as t, defineAsyncComponent as e } from "vue";
2
+ import { useConfig as r } from "../../../composables/useConfig.js";
3
+ const m = /* @__PURE__ */ t({
4
+ __name: "UnsubscribeWrapper",
5
+ setup(i) {
6
+ const n = e(() => import("./UnsubscribePageSelection.vue.js")), o = e(() => import("./UnsubscribeTypeSelection.vue.js")), { config: s } = r();
7
+ return { __sfc: !0, UnsubscribePageSelection: n, UnsubscribeTypeSelection: o, config: s };
8
+ }
9
+ });
10
+ export {
11
+ m as default
12
+ };
@@ -2,7 +2,7 @@ import type { FooterButtonGroupOptions } from '@@/Types/wrappers/wp-drawer';
2
2
  interface Props {
3
3
  id: string;
4
4
  className?: string;
5
- size?: string;
5
+ size?: 'small' | 'medium' | 'large';
6
6
  closeOnOutsideClick?: boolean;
7
7
  descriptionStatus?: boolean;
8
8
  descriptionText?: string;
@@ -10,9 +10,11 @@ interface Props {
10
10
  status: boolean;
11
11
  titleText: string;
12
12
  }
13
- declare var __VLS_12: {};
13
+ declare var __VLS_12: {}, __VLS_14: {};
14
14
  type __VLS_Slots = {} & {
15
- default?: (props: typeof __VLS_12) => any;
15
+ headerBottomSlot?: (props: typeof __VLS_12) => any;
16
+ } & {
17
+ default?: (props: typeof __VLS_14) => any;
16
18
  };
17
19
  declare const __VLS_component: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToOption<Props>, {
18
20
  className: string;
@@ -32,7 +34,7 @@ declare const __VLS_component: import("vue").DefineComponent<__VLS_WithDefaults<
32
34
  descriptionText: string;
33
35
  }>>>, {
34
36
  className: string;
35
- size: string;
37
+ size: "small" | "medium" | "large";
36
38
  closeOnOutsideClick: boolean;
37
39
  descriptionStatus: boolean;
38
40
  descriptionText: string;
@@ -1,6 +1,6 @@
1
1
  import r from "./WpDrawer.vue2.js";
2
2
  import s from "../../_virtual/_plugin-vue2_normalizer.js";
3
- var i = function() {
3
+ var u = function() {
4
4
  var t = this, n = t._self._c, e = t._self._setupProxy;
5
5
  return n(e.InDrawer, { class: t.className, attrs: { id: t.id, "footer-status": "", "close-on-outside-click": t.closeOnOutsideClick, "description-status": t.descriptionStatus, "description-text": t.descriptionText, "footer-button-group-options": t.footerButtonGroupOptions, size: t.size, status: t.status, "title-text": t.titleText }, on: { cancelOrBackButtonEvent: function(o) {
6
6
  return e.emit("cancelOrBackButtonEvent");
@@ -8,13 +8,15 @@ var i = function() {
8
8
  return e.emit("onCloseEvent");
9
9
  }, primaryButtonEvent: function(o) {
10
10
  return e.emit("primaryButtonEvent");
11
- } }, scopedSlots: t._u([{ key: "contentSlot", fn: function() {
11
+ } }, scopedSlots: t._u([t.$slots.headerBottomSlot ? { key: "headerBottomSlot", fn: function() {
12
+ return [t._t("headerBottomSlot")];
13
+ }, proxy: !0 } : null, { key: "contentSlot", fn: function() {
12
14
  return [n("div", [t._t("default")], 2)];
13
15
  }, proxy: !0 }], null, !0) });
14
- }, u = [], c = /* @__PURE__ */ s(
16
+ }, i = [], c = /* @__PURE__ */ s(
15
17
  r,
16
- i,
17
18
  u,
19
+ i,
18
20
  !1,
19
21
  null,
20
22
  null
@@ -1,19 +1,21 @@
1
1
  import { useActionsApi as f } from "./useActionsApi.js";
2
- import { useCustomInterfaceAppearance as S } from "./useCustomInterfaceAppearance.js";
3
- import { useStripoEventHandler as E } from "./useStripoEventHandler.js";
2
+ import { useCustomInterfaceAppearance as E } from "./useCustomInterfaceAppearance.js";
3
+ import { useStripoEventHandler as S } from "./useStripoEventHandler.js";
4
4
  import { useToaster as C } from "./useToaster.js";
5
5
  import { displayConditions as y } from "../enums/displayConditions.js";
6
6
  import h from "../extensions/Blocks/Checkbox/extension.js";
7
7
  import w from "../extensions/Blocks/CouponBlock/extension.js";
8
8
  import b from "../extensions/Blocks/RadioButton/extension.js";
9
- import k from "../extensions/DynamicContent/extension.js";
10
- import { useStripoApi as B } from "../services/stripoApi.js";
11
- import V from "../static/styles/customEditorStyle.css.js";
12
- import { useEditorStore as _ } from "../stores/editor.js";
13
- import { dynamicContentToMergeTags as F } from "../utils/genericUtil.js";
14
- const j = (s) => {
15
- const { handleError: d } = C(), { getToken: c, getCustomFonts: u } = B(), { handleEvent: l } = E(), m = (r, i = []) => {
16
- const t = _(), { html: e, css: a, forceRecreate: g } = r;
9
+ import _ from "../extensions/Blocks/Recommendation/extension.js";
10
+ import k from "../extensions/Blocks/Unsubscribe/extension.js";
11
+ import B from "../extensions/DynamicContent/extension.js";
12
+ import { useStripoApi as V } from "../services/stripoApi.js";
13
+ import x from "../static/styles/customEditorStyle.css.js";
14
+ import { useEditorStore as F } from "../stores/editor.js";
15
+ import { dynamicContentToMergeTags as A } from "../utils/genericUtil.js";
16
+ const G = (s) => {
17
+ const { handleError: d } = C(), { getToken: c, getCustomFonts: u } = V(), { handleEvent: m } = S(), l = (r, i = []) => {
18
+ const t = F(), { html: e, css: a, forceRecreate: g } = r;
17
19
  window.UIEditor.initEditor(
18
20
  document.querySelector("#guido-editor"),
19
21
  {
@@ -30,7 +32,7 @@ const j = (s) => {
30
32
  customAppearanceMergetags: !0,
31
33
  customAppearanceMergetagsBorderColor: "#f1f3fe",
32
34
  customAppearanceMergetagsBackgroundColor: "#f1f3fe",
33
- customViewStyles: V,
35
+ customViewStyles: x,
34
36
  conditionsEnabled: !0,
35
37
  customConditionsEnabled: !0,
36
38
  conditionCategories: y,
@@ -44,7 +46,7 @@ const j = (s) => {
44
46
  },
45
47
  mergeTags: [
46
48
  {
47
- entries: F(s.preselectedDynamicContentList)
49
+ entries: A(s.preselectedDynamicContentList)
48
50
  }
49
51
  ],
50
52
  async onTokenRefreshRequest(o) {
@@ -57,7 +59,7 @@ const j = (s) => {
57
59
  },
58
60
  onTemplateLoaded() {
59
61
  try {
60
- const { importCss: o } = S(), { activateCustomViewStyles: n } = f();
62
+ const { importCss: o } = E(), { activateCustomViewStyles: n } = f();
61
63
  o(), n(), s.onReady(), t.isStripoInitialized = !0, t.loadingStatus = !1, setTimeout(() => {
62
64
  t.hasChanges = !1;
63
65
  }, 1e3);
@@ -77,12 +79,18 @@ const j = (s) => {
77
79
  onDataChanged() {
78
80
  t.hasChanges = !0;
79
81
  },
80
- onEvent: l,
81
- ignoreClickOutsideSelectors: ["#guido-dynamic-content-modal", ".in-on-board-wrapper"],
82
+ onEvent: m,
83
+ ignoreClickOutsideSelectors: [
84
+ "#guido-dynamic-content-modal",
85
+ ".in-on-board-wrapper",
86
+ ".in-drawer__container"
87
+ ],
82
88
  extensions: [
83
- k,
89
+ B,
84
90
  h,
85
91
  b,
92
+ _,
93
+ k,
86
94
  w
87
95
  ]
88
96
  }
@@ -103,10 +111,10 @@ const j = (s) => {
103
111
  return { initPlugin: async (r) => {
104
112
  await p(async () => {
105
113
  const i = await u();
106
- m(r, i);
114
+ l(r, i);
107
115
  });
108
116
  } };
109
117
  };
110
118
  export {
111
- j as useStripo
119
+ G as useStripo
112
120
  };
@@ -1,23 +1,36 @@
1
- import { usePartner as m } from "../../composables/usePartner.js";
2
- import { LINK_REGEXES as c, LINK_TYPES as p, URLS as E } from "../../enums/unsubscribe.js";
3
- import { useUnsubscribeStore as b } from "../../stores/unsubscribe.js";
4
- const S = [
1
+ import { usePartner as U } from "../../composables/usePartner.js";
2
+ import { LINK_REGEXES as l, LINK_TYPES as b, URLS as f } from "../../enums/unsubscribe.js";
3
+ import { parsePageList as B } from "../../extensions/Blocks/Unsubscribe/utils/utils.js";
4
+ import { useConfigStore as N } from "../../stores/config.js";
5
+ import { useUnsubscribeStore as I } from "../../stores/unsubscribe.js";
6
+ const T = [
5
7
  {
6
8
  id: "add-unsubscribe-link-values",
7
9
  description: "Adding unsubscribe link values",
8
10
  type: "custom",
9
- processor: (n) => {
10
- var a, u;
11
- const { getPartnerName: i } = m(), t = b();
12
- let e = n;
13
- const o = `/${i()}/email/0?user={{iid}}`, r = (a = t.selectedUnsubscribePages) == null ? void 0 : a.find((l) => l.type === p.UNSUBSCRIBE_LINK_TYPE), s = (u = t.selectedUnsubscribePages) == null ? void 0 : u.find((l) => l.type === p.PREFERENCES_LINK_TYPE);
14
- return r && (e = e.replace(
15
- c.GLOBAL_UNSUBSCRIBE_LINK_REGEX,
16
- E.UNSUBSCRIBE_URL + o
17
- )), s && (e = e.replace(
18
- c.PREFERENCES_UNSUBSCRIBE_LINK_REGEX,
19
- E.PREFERENCES_URL + o
20
- )), e.replace(c.UNSUBSCRIBE_LINK_REGEX, "");
11
+ processor: (t) => {
12
+ const { getPartnerName: i } = U(), a = N(), n = I(), u = a.getVariationId;
13
+ if (!u)
14
+ return t;
15
+ let o = t;
16
+ const e = `/${i()}/email/${u}?user={{iid}}`;
17
+ return new DOMParser().parseFromString(o, "text/html").querySelectorAll(".unsubscribe-block-v2[data-unsubscribe-page-list]").forEach((p) => {
18
+ var g;
19
+ const d = p.getAttribute("data-unsubscribe-page-list");
20
+ if (!d)
21
+ return;
22
+ const S = B(d), m = ((g = n.templates) == null ? void 0 : g.filter(
23
+ (c) => S.includes(c.id)
24
+ )) ?? [], R = m.some((c) => c.type === b.UNSUBSCRIBE_LINK_TYPE), _ = m.some((c) => c.type === b.PREFERENCES_LINK_TYPE), E = p.outerHTML;
25
+ let s = E;
26
+ R && (s = s.replace(
27
+ l.GLOBAL_UNSUBSCRIBE_LINK_REGEX,
28
+ f.UNSUBSCRIBE_URL + e
29
+ )), _ && (s = s.replace(
30
+ l.PREFERENCES_UNSUBSCRIBE_LINK_REGEX,
31
+ f.PREFERENCES_URL + e
32
+ )), s = s.replace(l.UNSUBSCRIBE_LINK_REGEX, ""), o = o.replace(E, s);
33
+ }), o;
21
34
  },
22
35
  priority: 60
23
36
  },
@@ -25,7 +38,7 @@ const S = [
25
38
  id: "remove-data-ogsb-button-styles",
26
39
  description: "Removing styles like [data-ogsb] .es-button.es-button-123 { background: red; }",
27
40
  type: "regex",
28
- pattern: c.DATA_OGSB_BUTTON_CSS_REGEX,
41
+ pattern: l.DATA_OGSB_BUTTON_CSS_REGEX,
29
42
  replacement: "",
30
43
  flags: "g",
31
44
  priority: 61
@@ -34,25 +47,25 @@ const S = [
34
47
  id: "format-comment-braces",
35
48
  description: "Adding spaces around comment braces for proper formatting",
36
49
  type: "custom",
37
- processor: (n) => n.replace(/{#/g, "{ #").replace(/#}/g, "# }"),
50
+ processor: (t) => t.replace(/{#/g, "{ #").replace(/#}/g, "# }"),
38
51
  priority: 62
39
52
  },
40
53
  {
41
54
  id: "add-universal-link-flags",
42
55
  description: "Adding universal link flags",
43
56
  type: "custom",
44
- processor: (n) => {
45
- let i = n;
46
- const t = i.match(/<a[^>]+>(.*?)<\/a>/gm);
47
- return t && t.forEach((e) => {
48
- if (e.includes("insEmail=1"))
57
+ processor: (t) => {
58
+ let i = t;
59
+ const a = i.match(/<a[^>]+>(.*?)<\/a>/gm);
60
+ return a && a.forEach((n) => {
61
+ if (n.includes("insEmail=1"))
49
62
  return;
50
- if (e.match(/<a\s+(?:[^>]*?\s+)?href=(["'`”])(.*?)\1\s+(?:[^>]*?\s+)?universal=(["'`”])true\3/gm)) {
51
- const o = e.replace(/href=(["'`”])(.*?)\1/gm, (r) => {
52
- const s = r.slice(6, r.length - 1).trim();
53
- return r.includes("?") || r.includes("#") ? s.slice(-1) === "&" ? r.replace(s, `${s}insEmail=1`) : r.replace(s, `${s}&insEmail=1`) : r.replace(s, `${s}?insEmail=1`);
63
+ if (n.match(/<a\s+(?:[^>]*?\s+)?href=(["'`”])(.*?)\1\s+(?:[^>]*?\s+)?universal=(["'`”])true\3/gm)) {
64
+ const o = n.replace(/href=(["'`”])(.*?)\1/gm, (e) => {
65
+ const r = e.slice(6, e.length - 1).trim();
66
+ return e.includes("?") || e.includes("#") ? r.slice(-1) === "&" ? e.replace(r, `${r}insEmail=1`) : e.replace(r, `${r}&insEmail=1`) : e.replace(r, `${r}?insEmail=1`);
54
67
  });
55
- i = i.replace(e, o);
68
+ i = i.replace(n, o);
56
69
  }
57
70
  }), i;
58
71
  },
@@ -60,5 +73,5 @@ const S = [
60
73
  }
61
74
  ];
62
75
  export {
63
- S as unsubscribeCompilerRules
76
+ T as unsubscribeCompilerRules
64
77
  };
@@ -9,14 +9,17 @@ class y {
9
9
  }
10
10
  migrate(t) {
11
11
  try {
12
- const e = this.parser.parseFromString(t, "text/html"), i = e.querySelectorAll("td.coupon-block.ins-coupon-code:not([esd-extension-block-id])");
13
- return i.length === 0 ? t : (i.forEach((s) => {
14
- const n = this.extractText(s), r = this.extractAttributes(s), l = h.replace("{@COUPON_CODE}", n).replace('class="coupon-block ins-coupon-code esd-block-text esd-extension-block"', r.class).replace(
12
+ const e = this.parser.parseFromString(t, "text/html"), n = e.querySelectorAll("td.coupon-block.ins-coupon-code:not([esd-extension-block-id])");
13
+ return n.length === 0 ? t : (n.forEach((s) => {
14
+ const i = this.extractText(s), c = this.extractAttributes(s), l = h.replace("{@COUPON_CODE}", i).replace(
15
+ 'class="coupon-block coupon-block-v2 ins-coupon-code esd-block-text esd-extension-block"',
16
+ c.class
17
+ ).replace(
15
18
  'esd-extension-block-id="coupon-block"',
16
- `esd-extension-block-id="coupon-block"${r.block}`
19
+ `esd-extension-block-id="coupon-block"${c.block}`
17
20
  ).replace(
18
21
  '<p class="ins-title"',
19
- `<p class="ins-title"${r.text}`
22
+ `<p class="ins-title"${c.text}`
20
23
  );
21
24
  s.outerHTML = l;
22
25
  }), e.documentElement.outerHTML);
@@ -25,35 +28,35 @@ class y {
25
28
  }
26
29
  }
27
30
  extractText(t) {
28
- var p;
31
+ var g;
29
32
  const e = t.querySelector(".ins-title");
30
33
  if (!e)
31
34
  return "{@COUPON_CODE}";
32
- const i = ((p = e.textContent) == null ? void 0 : p.trim()) || "{@COUPON_CODE}", s = e.getAttribute("style") || "", n = /font-weight\s*:\s*bold/i.test(s), r = /font-style\s*:\s*italic/i.test(s), l = /text-decoration[^;]*underline/i.test(s), u = /text-decoration[^;]*line-through/i.test(s), a = /vertical-align\s*:\s*sub/i.test(s), g = /vertical-align\s*:\s*super/i.test(s);
35
+ const n = ((g = e.textContent) == null ? void 0 : g.trim()) || "{@COUPON_CODE}", s = e.getAttribute("style") || "", i = /font-weight\s*:\s*bold/i.test(s), c = /font-style\s*:\s*italic/i.test(s), l = /text-decoration[^;]*underline/i.test(s), u = /text-decoration[^;]*line-through/i.test(s), a = /vertical-align\s*:\s*sub/i.test(s), p = /vertical-align\s*:\s*super/i.test(s);
33
36
  return [
34
- [n, "strong"],
35
- [r, "em"],
37
+ [i, "strong"],
38
+ [c, "em"],
36
39
  [l, "u"],
37
40
  [u, "s"],
38
41
  [a, "sub"],
39
- [g, "sup"]
40
- ].reduce((b, [f, d]) => f ? `<${d}>${b}</${d}>` : b, i);
42
+ [p, "sup"]
43
+ ].reduce((b, [f, d]) => f ? `<${d}>${b}</${d}>` : b, n);
41
44
  }
42
45
  extractAttributes(t) {
43
- const e = t.querySelector(".ins-title"), i = t.className.split(" ").filter((c) => c.startsWith("es-")), s = t.getAttribute("align"), n = t.getAttribute("bgcolor"), r = t.getAttribute("style"), l = e == null ? void 0 : e.getAttribute("style");
44
- let u = 'class="coupon-block ins-coupon-code esd-block-text esd-extension-block';
45
- i.length && (u += ` ${i.join(" ")}`), u += '"';
46
+ const e = t.querySelector(".ins-title"), n = t.className.split(" ").filter((r) => r.startsWith("es-")), s = t.getAttribute("align"), i = t.getAttribute("bgcolor"), c = t.getAttribute("style"), l = e == null ? void 0 : e.getAttribute("style");
47
+ let u = 'class="coupon-block coupon-block-v2 ins-coupon-code esd-block-text esd-extension-block';
48
+ n.length && (u += ` ${n.join(" ")}`), u += '"';
46
49
  let a = "";
47
- if (s && (a += ` align="${s}"`), n && (a += ` bgcolor="${n}"`), r) {
48
- const c = r.replace(/background-color[^;]+;?/gi, "").replace(/;+/g, ";").trim();
49
- c && (a += ` style="${c.replace(/"/g, "'")}"`);
50
+ if (s && (a += ` align="${s}"`), i && (a += ` bgcolor="${i}"`), c) {
51
+ const r = c.replace(/background-color[^;]+;?/gi, "").replace(/;+/g, ";").trim();
52
+ r && (a += ` style="${r.replace(/"/g, "'")}"`);
50
53
  }
51
- let g = "";
54
+ let p = "";
52
55
  if (l) {
53
- const c = l.replace(/&quot;/g, '"').replace(/font-weight\s*:\s*[^;]+;?/gi, "").replace(/font-style\s*:\s*[^;]+;?/gi, "").replace(/text-decoration\s*:\s*[^;]+;?/gi, "").replace(/vertical-align\s*:\s*[^;]+;?/gi, "").replace(/;+/g, ";").replace(/^;|;$/g, "").trim().replace(/"/g, "'");
54
- c && (g = ` style="${c}"`);
56
+ const r = l.replace(/&quot;/g, '"').replace(/font-weight\s*:\s*[^;]+;?/gi, "").replace(/font-style\s*:\s*[^;]+;?/gi, "").replace(/text-decoration\s*:\s*[^;]+;?/gi, "").replace(/vertical-align\s*:\s*[^;]+;?/gi, "").replace(/;+/g, ";").replace(/^;|;$/g, "").trim().replace(/"/g, "'");
57
+ r && (p = ` style="${r}"`);
55
58
  }
56
- return { class: u, block: a, text: g };
59
+ return { class: u, block: a, text: p };
57
60
  }
58
61
  }
59
62
  function C(o) {
@@ -1 +1 @@
1
- export declare const migrate: (html: string) => string;
1
+ export declare const migrate: (html: string) => Promise<string>;
@@ -1,10 +1,11 @@
1
- import { migrateCheckbox as r } from "./checkboxMigrator.js";
1
+ import { migrateCheckbox as o } from "./checkboxMigrator.js";
2
2
  import { migrateCouponBlock as m } from "./couponBlockMigrator.js";
3
- import { migrateRadioButton as e } from "./radioButtonMigrator.js";
4
- const p = (o) => {
5
- let t = o;
6
- return t = r(t), t = e(t), t = m(t), t;
3
+ import { migrateRadioButton as i } from "./radioButtonMigrator.js";
4
+ import { migrateUnsubscribe as e } from "./unsubscribeMigrator.js";
5
+ const c = async (t) => {
6
+ let r = t;
7
+ return r = o(r), r = i(r), r = await e(r), r = m(r), r;
7
8
  };
8
9
  export {
9
- p as migrate
10
+ c as migrate
10
11
  };
@@ -0,0 +1 @@
1
+ export declare function migrateUnsubscribe(html: string): Promise<string>;