@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,124 @@
1
+ var h = Object.defineProperty;
2
+ var x = (l, e, t) => e in l ? h(l, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : l[e] = t;
3
+ var S = (l, e, t) => x(l, typeof e != "symbol" ? e + "" : e, t);
4
+ import { MERGE_TAGS as k, PAGE_TYPES as p } from "../../enums/unsubscribe.js";
5
+ import { DATA_ATTRIBUTES as A } from "../../extensions/Blocks/Unsubscribe/utils/constants.js";
6
+ import { useUnsubscribeStore as T } from "../../stores/unsubscribe.js";
7
+ class C {
8
+ constructor() {
9
+ S(this, "parser");
10
+ this.parser = new DOMParser();
11
+ }
12
+ async migrate(e) {
13
+ try {
14
+ const t = this.parser.parseFromString(e, "text/html"), i = t.querySelectorAll("td.unsubscribe-block");
15
+ if (!i.length)
16
+ return e;
17
+ const o = T();
18
+ return await o.fetchTemplates(), i.forEach((r) => {
19
+ const c = r.getAttribute("id"), g = this.extractPaddingClass(r), u = r.getAttribute("bgcolor") || "", n = this.extractUnsubscribeContent(r), s = this.getCollectionTypeFromMergeTag(n.linkHref), b = o.getSelectedUnsubscribePagesByCollection(s);
20
+ console.debug("[UnsubscribeMigrator]", {
21
+ mergeTag: n.linkHref,
22
+ collectionType: s,
23
+ pageIds: b,
24
+ paddingClass: g,
25
+ bgColor: u
26
+ });
27
+ const f = this.buildUnsubscribeBlock(
28
+ n,
29
+ s,
30
+ b,
31
+ g,
32
+ u
33
+ ), a = this.parser.parseFromString(
34
+ `<table id="tempDoc"><tbody><tr>${f}</tr></tbody></table>`,
35
+ "text/html"
36
+ ).querySelector(".unsubscribe-block-v2");
37
+ a && r.parentNode && (a.setAttribute("id", c || ""), r.parentNode.replaceChild(a, r));
38
+ }), t.documentElement.outerHTML;
39
+ } catch (t) {
40
+ return console.error("UnsubscribeMigrator failed:", t), e;
41
+ }
42
+ }
43
+ extractPaddingClass(e) {
44
+ const i = (e.getAttribute("class") || "").match(/\bes-p\d+\b/);
45
+ return i ? i[0] : "";
46
+ }
47
+ extractUnsubscribeContent(e) {
48
+ var m;
49
+ const t = e.querySelector("p");
50
+ if (!t)
51
+ return {
52
+ textBefore: "You can ",
53
+ linkText: "unsubscribe",
54
+ linkHref: "{{ins-unsubscribe-link}}",
55
+ linkStyle: "",
56
+ textAfter: " from our emails, if you need to.",
57
+ isBold: !1,
58
+ isItalic: !1,
59
+ align: "center",
60
+ paragraphStyle: ""
61
+ };
62
+ const i = e.getAttribute("align") || t.getAttribute("align") || "center", o = t.getAttribute("style") || "", r = t.querySelector("a.unsubscribe-link") || t.querySelector('a[href*="unsubscribe"]');
63
+ if (!r)
64
+ return {
65
+ textBefore: "You can ",
66
+ linkText: "unsubscribe",
67
+ linkHref: "{{ins-unsubscribe-link}}",
68
+ linkStyle: "",
69
+ textAfter: " from our emails, if you need to.",
70
+ isBold: !1,
71
+ isItalic: !1,
72
+ align: i,
73
+ paragraphStyle: o
74
+ };
75
+ const c = ((m = r.textContent) == null ? void 0 : m.trim()) || "unsubscribe", g = r.getAttribute("href") || "{{ins-unsubscribe-link}}", u = r.getAttribute("style") || "", n = t.textContent || "", s = n.indexOf(c), b = s >= 0 ? n.substring(0, s).trim() : "You can ", f = s >= 0 ? n.substring(s + c.length).trim() : " from our emails, if you need to.", d = !!t.querySelector("b, strong"), a = !!t.querySelector("i, em");
76
+ return {
77
+ textBefore: b,
78
+ linkText: c,
79
+ linkHref: this.normalizeUnsubscribeHref(g),
80
+ linkStyle: u,
81
+ textAfter: f,
82
+ isBold: d,
83
+ isItalic: a,
84
+ align: i,
85
+ paragraphStyle: o
86
+ };
87
+ }
88
+ buildUnsubscribeBlock(e, t, i, o, r) {
89
+ const c = e.linkStyle ? ` style="${e.linkStyle}"` : "", u = `<a ${`href="${e.linkHref}" class="unsubscribe-link" target="_blank" data-unsubscribe-link="true"`}${c}>${e.linkText}</a>`, n = [];
90
+ e.textBefore && n.push(e.textBefore), n.push(u), e.textAfter && n.push(e.textAfter);
91
+ let s = n.join(" ");
92
+ e.isBold && e.isItalic ? s = `<strong path="1,0"><em path="1,0,0">${s}</em></strong>` : e.isBold ? s = `<strong path="1,0">${s}</strong>` : e.isItalic && (s = `<em path="1,0">${s}</em>`);
93
+ const b = e.align ? ` align="${e.align}"` : "", f = r ? ` bgcolor="${r}"` : "", d = e.paragraphStyle ? ` style="${e.paragraphStyle}"` : "", a = i.length > 0 ? ` ${A.PAGE_LIST}="${i.join(",")}"` : "", m = ` ${A.PAGE_TYPE}="${t}"`, y = "esd-block-text unsubscribe-block-v2 esd-block-unsubscribe esd-unsubscribe-block esd-extension-block";
94
+ return `
95
+ <td
96
+ data-migration="true"
97
+ esd-extension-block-id="unsubscribe-block"
98
+ class="${o ? `${y} ${o}` : y}"
99
+ ${b}${f}${m}${a}
100
+ >
101
+ <p path="1"${d}>
102
+ ${s}
103
+ </p>
104
+ </td>
105
+ `;
106
+ }
107
+ getCollectionTypeFromMergeTag(e) {
108
+ return e === k[p.SUBSCRIPTION_PREFERENCE_CENTER] ? p.SUBSCRIPTION_PREFERENCE_CENTER : e === k[p.GLOBAL_UNSUBSCRIBE] ? p.GLOBAL_UNSUBSCRIBE : p.GLOBAL_UNSUBSCRIBE;
109
+ }
110
+ normalizeUnsubscribeHref(e) {
111
+ if (Object.values(k).includes(e))
112
+ return e;
113
+ const i = e.match(/{{ins-(?:global-)?(?:preferences-)?unsubscribe-link}}/);
114
+ return i ? i[0] : e.includes("unsubscribe") || e.includes("unsub") ? (console.warn(
115
+ `[UnsubscribeMigrator] Unrecognized unsubscribe href format: "${e}". Defaulting to {{ins-unsubscribe-link}}`
116
+ ), "{{ins-unsubscribe-link}}") : e;
117
+ }
118
+ }
119
+ async function M(l) {
120
+ return new C().migrate(l);
121
+ }
122
+ export {
123
+ M as migrateUnsubscribe
124
+ };
@@ -4,6 +4,9 @@ const a = {
4
4
  senderName: "",
5
5
  subject: ""
6
6
  },
7
+ extensions: {
8
+ unsubscribe: !0
9
+ },
7
10
  features: {
8
11
  dynamicContent: !0,
9
12
  saveAsTemplate: !0,
@@ -13,7 +16,7 @@ const a = {
13
16
  }, t = {
14
17
  promotional: 1,
15
18
  transactional: 2
16
- }, e = "email", o = "Guido User", n = t.promotional, i = 2, s = {
19
+ }, e = "email", o = "Guido User", n = t.promotional, s = 2, i = {
17
20
  email: 60,
18
21
  architect: 49
19
22
  }, u = [
@@ -53,8 +56,8 @@ export {
53
56
  n as DefaultMessageType,
54
57
  e as DefaultProductType,
55
58
  o as DefaultUsername,
56
- i as EditorType,
57
- s as ProductIds,
59
+ s as EditorType,
60
+ i as ProductIds,
58
61
  u as TEST_PARTNER_LIST,
59
62
  t as TemplateTypes
60
63
  };
@@ -0,0 +1,16 @@
1
+ import type { TextValueObject } from '@@/Types/generic';
2
+ import type { RecommendationFeedItem } from '@@/Types/recommendation';
3
+ export declare const URLS: {
4
+ RECOMMENDATION_API_URL: string;
5
+ };
6
+ export declare const RecommendationFeedSourceMaps: RecommendationFeedItem[];
7
+ export declare const PriceAttributes: string[];
8
+ export declare const currencyLocationMaps: TextValueObject[];
9
+ export declare const currencyOperators: TextValueObject[];
10
+ export declare const currencyDecimalCounts: TextValueObject[];
11
+ export declare const operatorOptionsForStrings: TextValueObject[];
12
+ export declare const operatorOptionsForArrayOfStrings: TextValueObject[];
13
+ export declare const operatorOptionsForNumbers: TextValueObject[];
14
+ export declare const operatorOptionsForDates: TextValueObject[];
15
+ export declare const operatorOptionsForBooleans: TextValueObject[];
16
+ export declare const getOperatorOptions: (type?: string) => TextValueObject[];
@@ -0,0 +1,80 @@
1
+ const s = {
2
+ RECOMMENDATION_API_URL: "http://recommendationv2.api.useinsider.com"
3
+ }, i = [
4
+ { id: 11, key: "similarViewed", name: "Viewed Together", path: "viewed-together" },
5
+ { id: 12, key: "similarBought", name: "Purchased Together", path: "purchased-together" },
6
+ { id: 13, key: "userBased", name: "User Based", path: "user-based" },
7
+ { id: 36, key: "highestDiscounted", name: "Highest Discounted Items", path: "highest-discounted" },
8
+ { id: 38, key: "manualMerchandising", name: "Manual Merchandising", path: "manual-merchandising" },
9
+ { id: 39, key: "newArrivals", name: "New Arrivals", path: "new-arrivals" },
10
+ { id: 40, key: "trendingProducts", name: "Trending Products", path: "trending" },
11
+ { id: 46, key: "mostValuableOfPartner", name: "Most Valuable Products", path: "most-valuable" },
12
+ { id: 61, key: "mostPopular", name: "Most Popular Items", path: "most-popular" },
13
+ { id: 62, key: "mostPurchased", name: "Top Sellers", path: "top-sellers" }
14
+ ], u = ["discount", "omnibus_price", "omnibus_discount", "price", "original_price"], l = [
15
+ { text: "after the amount", value: "1" },
16
+ { text: "before the amount", value: "0" }
17
+ ], c = [
18
+ { text: "dot(.)", value: "." },
19
+ { text: "comma(,)", value: "," }
20
+ ], d = [
21
+ { text: "0", value: "0" },
22
+ { text: "1", value: "1" },
23
+ { text: "2", value: "2" },
24
+ { text: "3", value: "3" },
25
+ { text: "4", value: "4" },
26
+ { text: "5", value: "5" }
27
+ ], e = [
28
+ { text: "is exactly", value: "=" },
29
+ { text: "contains", value: "~" },
30
+ { text: "does not contain", value: "!~" },
31
+ { text: "any of", value: "||" }
32
+ ], a = [
33
+ { text: "is exactly", value: "=" },
34
+ { text: "is not exactly", value: "!==" },
35
+ { text: "contains", value: "~" },
36
+ { text: "does not contain", value: "!~" },
37
+ { text: "any of", value: "||" }
38
+ ], r = [
39
+ { text: "is equal to", value: "=" },
40
+ { text: "is greater than", value: ">" },
41
+ { text: "is less than", value: "<" }
42
+ ], o = [
43
+ { text: "is equal to", value: "=" },
44
+ { text: "after", value: ">" },
45
+ { text: "before", value: "<" }
46
+ ], n = [
47
+ { text: "true", value: "==" },
48
+ { text: "false", value: "!=" }
49
+ ], p = (t) => {
50
+ if (!t)
51
+ return e;
52
+ switch (t) {
53
+ case "Boolean":
54
+ return n;
55
+ case "Date":
56
+ return o;
57
+ case "Number":
58
+ return r;
59
+ case "String":
60
+ return e;
61
+ case "Strings":
62
+ return a;
63
+ default:
64
+ return e;
65
+ }
66
+ };
67
+ export {
68
+ u as PriceAttributes,
69
+ i as RecommendationFeedSourceMaps,
70
+ s as URLS,
71
+ d as currencyDecimalCounts,
72
+ l as currencyLocationMaps,
73
+ c as currencyOperators,
74
+ p as getOperatorOptions,
75
+ a as operatorOptionsForArrayOfStrings,
76
+ n as operatorOptionsForBooleans,
77
+ o as operatorOptionsForDates,
78
+ r as operatorOptionsForNumbers,
79
+ e as operatorOptionsForStrings
80
+ };
@@ -13,3 +13,26 @@ export declare const URLS: {
13
13
  PREFERENCES_URL: string;
14
14
  };
15
15
  export declare const INSIDER_ID = "iid";
16
+ export declare const DEFAULT_UNSUBSCRIBE_GROUP: {
17
+ readonly name: "Global Unsubscribe";
18
+ readonly sendGridId: "G";
19
+ };
20
+ export declare const ACADEMY_LINK = "https://academy.useinsider.com/docs/global-unsubscribe-preference-center";
21
+ export declare const UNSUBSCRIBE_PAGES_LINK = "/email/unsubscribe-pages";
22
+ export declare const PAGE_TYPES: {
23
+ GLOBAL_UNSUBSCRIBE: number;
24
+ GLOBAL_UNSUBSCRIBE_CONFIRMATION_PAGE: number;
25
+ SUBSCRIPTION_PREFERENCE_CENTER: number;
26
+ SUBSCRIPTION_PREFERENCE_CONFIRMATION: number;
27
+ RESUBSCRIBE: number;
28
+ };
29
+ export declare const TYPE_COLLECTIONS: {
30
+ [x: number]: number[];
31
+ };
32
+ export declare const TYPE_TRANSLATIONS: {
33
+ [x: number]: string;
34
+ };
35
+ export declare const MERGE_TAGS: {
36
+ [x: number]: string;
37
+ default: string;
38
+ };
@@ -1,17 +1,54 @@
1
- const E = {
1
+ import { useTranslations as e } from "../composables/useTranslations.js";
2
+ const s = e(), R = {
2
3
  UNSUBSCRIBE_LINK_TYPE: 1,
3
4
  PREFERENCES_LINK_TYPE: 3
4
- }, s = {
5
+ }, S = {
5
6
  UNSUBSCRIBE_LINK_REGEX: /{{ins-unsubscribe-link}}/g,
6
7
  DATA_OGSB_BUTTON_CSS_REGEX: "\\[data-ogsb\\]\\s*\\.es-button\\.es-button-[0-9]+\\s*\\{(?:[^\\}]*)\\}",
7
8
  GLOBAL_UNSUBSCRIBE_LINK_REGEX: /{{ins-global-unsubscribe-link}}/g,
8
9
  PREFERENCES_UNSUBSCRIBE_LINK_REGEX: /{{ins-preferences-unsubscribe-link}}/g
9
- }, _ = {
10
+ }, N = {
10
11
  UNSUBSCRIBE_URL: "https://mail.useinsider.com/user/v1/unsub",
11
12
  PREFERENCES_URL: "https://mail.useinsider.com/user/v1/prefs"
13
+ }, _ = {
14
+ name: "Global Unsubscribe",
15
+ sendGridId: "G"
16
+ }, I = "https://academy.useinsider.com/docs/global-unsubscribe-preference-center", r = "/email/unsubscribe-pages", E = {
17
+ GLOBAL_UNSUBSCRIBE: 1,
18
+ GLOBAL_UNSUBSCRIBE_CONFIRMATION_PAGE: 2,
19
+ SUBSCRIPTION_PREFERENCE_CENTER: 3,
20
+ SUBSCRIPTION_PREFERENCE_CONFIRMATION: 4,
21
+ RESUBSCRIBE: 5
22
+ }, i = {
23
+ [E.GLOBAL_UNSUBSCRIBE]: [
24
+ E.GLOBAL_UNSUBSCRIBE,
25
+ E.GLOBAL_UNSUBSCRIBE_CONFIRMATION_PAGE,
26
+ E.RESUBSCRIBE
27
+ ],
28
+ [E.SUBSCRIPTION_PREFERENCE_CENTER]: [
29
+ E.SUBSCRIPTION_PREFERENCE_CENTER,
30
+ E.SUBSCRIPTION_PREFERENCE_CONFIRMATION
31
+ ]
32
+ }, B = {
33
+ [E.GLOBAL_UNSUBSCRIBE]: s("unsubscription-preference.type-global-unsubscribe"),
34
+ [E.GLOBAL_UNSUBSCRIBE_CONFIRMATION_PAGE]: s("unsubscription-preference.type-global-unsubscription-confirmation"),
35
+ [E.RESUBSCRIBE]: s("unsubscription-preference.type-resubscribe"),
36
+ [E.SUBSCRIPTION_PREFERENCE_CENTER]: s("unsubscription-preference.type-subscription-preferences-center"),
37
+ [E.SUBSCRIPTION_PREFERENCE_CONFIRMATION]: s("unsubscription-preference.type-subscription-preferences-confirmation")
38
+ }, C = {
39
+ default: "{{ins-unsubscribe-link}}",
40
+ [E.GLOBAL_UNSUBSCRIBE]: "{{ins-global-unsubscribe-link}}",
41
+ [E.SUBSCRIPTION_PREFERENCE_CENTER]: "{{ins-preferences-unsubscribe-link}}"
12
42
  };
13
43
  export {
14
- s as LINK_REGEXES,
15
- E as LINK_TYPES,
16
- _ as URLS
44
+ I as ACADEMY_LINK,
45
+ _ as DEFAULT_UNSUBSCRIBE_GROUP,
46
+ S as LINK_REGEXES,
47
+ R as LINK_TYPES,
48
+ C as MERGE_TAGS,
49
+ E as PAGE_TYPES,
50
+ i as TYPE_COLLECTIONS,
51
+ B as TYPE_TRANSLATIONS,
52
+ r as UNSUBSCRIBE_PAGES_LINK,
53
+ N as URLS
17
54
  };
@@ -1,6 +1,7 @@
1
1
  import { Block, BlockCompositionType } from '@stripoinc/ui-editor-extensions';
2
2
  export declare const CHECKBOX_BLOCK_ID = "checkbox-block";
3
3
  export declare class CheckboxBlock extends Block {
4
+ constructor();
4
5
  getId(): string;
5
6
  getIcon(): string;
6
7
  getBlockCompositionType(): BlockCompositionType;
@@ -1,39 +1,30 @@
1
- import { Block as t } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/blocks/Block.js";
2
- import "../../../node_modules/@stripoinc/ui-editor-extensions/dist/constants/AiAssistantValueType.js";
3
- import { BlockCompositionType as o } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/constants/BlockCompositionType.js";
4
- import "../../../node_modules/@stripoinc/ui-editor-extensions/dist/constants/BlockName.js";
5
- import "../../../node_modules/@stripoinc/ui-editor-extensions/dist/constants/BlockType.js";
6
- import "../../../node_modules/@stripoinc/ui-editor-extensions/dist/constants/BuiltInControlTypes.js";
7
- import "../../../node_modules/@stripoinc/ui-editor-extensions/dist/constants/ContextActionType.js";
8
- import "../../../node_modules/@stripoinc/ui-editor-extensions/dist/constants/EditorStatePropertyType.js";
9
- import "../../../node_modules/@stripoinc/ui-editor-extensions/dist/constants/PanelPosition.js";
10
- import "../../../node_modules/@stripoinc/ui-editor-extensions/dist/constants/Popover.js";
11
- import "../../../node_modules/@stripoinc/ui-editor-extensions/dist/constants/PreviewDeviceMode.js";
12
- import "../../../node_modules/@stripoinc/ui-editor-extensions/dist/constants/SettingsTab.js";
13
- import "../../../node_modules/@stripoinc/ui-editor-extensions/dist/constants/UIElementType.js";
14
- import { getDefaultTemplate as r } from "./template.js";
15
- const e = "checkbox-block";
16
- class x extends t {
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 "./template.js";
3
+ const r = "checkbox-block";
4
+ class p extends e {
5
+ constructor() {
6
+ super();
7
+ }
17
8
  getId() {
18
- return e;
9
+ return r;
19
10
  }
20
11
  getIcon() {
21
- return "check-circle";
12
+ return "checkbox-icon";
22
13
  }
23
14
  getBlockCompositionType() {
24
- return o.BLOCK;
15
+ return t.CONTAINER;
25
16
  }
26
17
  getName() {
27
- return this.api.translate("Checkbox block");
18
+ return this.api.translate("Checkbox Block");
28
19
  }
29
20
  getDescription() {
30
- return this.api.translate("Checkbox block description");
21
+ return this.api.translate("Checkbox Block Description");
31
22
  }
32
23
  getTemplate() {
33
- return r();
24
+ return o();
34
25
  }
35
26
  }
36
27
  export {
37
- e as CHECKBOX_BLOCK_ID,
38
- x as CheckboxBlock
28
+ r as CHECKBOX_BLOCK_ID,
29
+ p as CheckboxBlock
39
30
  };
@@ -1,104 +1,92 @@
1
- var E = Object.defineProperty;
2
- var c = (o, s, t) => s in o ? E(o, s, { enumerable: !0, configurable: !0, writable: !0, value: t }) : o[s] = t;
3
- var a = (o, s, t) => c(o, typeof s != "symbol" ? s + "" : s, t);
4
- import { useHttp as p } from "../../../composables/useHttp.js";
5
- import "../../../node_modules/@stripoinc/ui-editor-extensions/dist/constants/AiAssistantValueType.js";
6
- import "../../../node_modules/@stripoinc/ui-editor-extensions/dist/constants/BlockCompositionType.js";
7
- import "../../../node_modules/@stripoinc/ui-editor-extensions/dist/constants/BlockName.js";
8
- import "../../../node_modules/@stripoinc/ui-editor-extensions/dist/constants/BlockType.js";
9
- import "../../../node_modules/@stripoinc/ui-editor-extensions/dist/constants/BuiltInControlTypes.js";
10
- import "../../../node_modules/@stripoinc/ui-editor-extensions/dist/constants/ContextActionType.js";
11
- import "../../../node_modules/@stripoinc/ui-editor-extensions/dist/constants/EditorStatePropertyType.js";
12
- import "../../../node_modules/@stripoinc/ui-editor-extensions/dist/constants/PanelPosition.js";
13
- import "../../../node_modules/@stripoinc/ui-editor-extensions/dist/constants/Popover.js";
14
- import "../../../node_modules/@stripoinc/ui-editor-extensions/dist/constants/PreviewDeviceMode.js";
15
- import "../../../node_modules/@stripoinc/ui-editor-extensions/dist/constants/SettingsTab.js";
16
- import { UEAttr as e } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/constants/UIElementsAttributes.js";
17
- import { UIElementType as r } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/constants/UIElementType.js";
18
- import { Control as m } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/controls/Control.js";
19
- import { ModificationDescription as l } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/modifications/ModificationDescription.js";
20
- const d = "ui-elements-checkbox", n = "select", { get: L } = p();
21
- class K extends m {
1
+ var d = Object.defineProperty;
2
+ var l = (r, n, e) => n in r ? d(r, n, { enumerable: !0, configurable: !0, writable: !0, value: e }) : r[n] = e;
3
+ var o = (r, n, e) => l(r, typeof n != "symbol" ? n + "" : n, e);
4
+ import { useHttp as L } from "../../../composables/useHttp.js";
5
+ import { DEFAULT_UNSUBSCRIBE_GROUP as u } from "../../../enums/unsubscribe.js";
6
+ import { Control as h, UIElementType as i, UEAttr as t, ModificationDescription as p } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
7
+ const m = "ui-elements-checkbox", a = "select", { get: C } = L();
8
+ class S extends h {
22
9
  constructor() {
23
10
  super(...arguments);
24
- a(this, "currentNode");
25
- a(this, "selectedUnsubGroup");
26
- a(this, "unsubList", []);
11
+ o(this, "currentNode");
12
+ o(this, "selectedUnsubGroup");
13
+ o(this, "unsubList", []);
27
14
  }
28
15
  getId() {
29
- return d;
16
+ return m;
30
17
  }
31
18
  _setFormValues() {
32
- this.api.updateValues({
33
- [n]: ""
34
- });
19
+ if (this.currentNode && "getAttribute" in this.currentNode) {
20
+ const e = this.currentNode.getAttribute("id");
21
+ if (e) {
22
+ const s = e === u.sendGridId ? e : Number(e);
23
+ s && (this.selectedUnsubGroup = s, this.api.updateValues({
24
+ [a]: this.selectedUnsubGroup
25
+ }));
26
+ }
27
+ }
35
28
  }
36
- _getLabel(t, i = `${Math.random()}`) {
29
+ _getLabel(e, s = `${Math.random()}`) {
37
30
  return `
38
- <${r.LABEL}
39
- ${e.LABEL.text}="${t}"
40
- ${e.LABEL.name}="${i}">
41
- </${r.LABEL}>
31
+ <${i.LABEL}
32
+ ${t.LABEL.text}="${e}"
33
+ ${t.LABEL.name}="${s}">
34
+ </${i.LABEL}>
42
35
  `;
43
36
  }
44
- _getSelectItem(t, i) {
37
+ _getSelectItem(e, s) {
45
38
  return `
46
- <${r.SELECT_ITEM}
47
- ${e.SELECT_ITEM.text}="${t}"
48
- ${e.SELECT_ITEM.value}="${i}">
49
- </${r.SELECT_ITEM}>`;
39
+ <${i.SELECT_ITEM}
40
+ ${t.SELECT_ITEM.text}="${e}"
41
+ ${t.SELECT_ITEM.value}="${s}">
42
+ </${i.SELECT_ITEM}>`;
50
43
  }
51
44
  _getSelect() {
52
- return this.unsubList.map((t) => this._getSelectItem(t.name, t.sendGridId)).join("");
45
+ return this.unsubList.map((e) => this._getSelectItem(e.name, e.sendGridId)).join("");
53
46
  }
54
47
  getTemplate() {
55
48
  return `
56
49
  <div class="checkbox-controls-container">
57
50
  <div class="checkbox-select-container container two-columns stretch">
58
- <${r.LABEL}
59
- ${e.LABEL.text}="${this.api.translate("Unsubscribe Group")}"
60
- ${e.LABEL.name}="${Math.random()}">
61
- </${r.LABEL}>
51
+ <${i.LABEL}
52
+ ${t.LABEL.text}="${this.api.translate("Unsubscribe Group")}"
53
+ ${t.LABEL.name}="${Math.random()}">
54
+ </${i.LABEL}>
62
55
 
63
- <${r.SELECTPICKER}
64
- ${e.SELECTPICKER.name}="${n}"
65
- ${e.SELECTPICKER.placeholder}="${this.api.translate("Select Unsubscribe Group")}">
56
+ <${i.SELECTPICKER}
57
+ ${t.SELECTPICKER.name}="${a}"
58
+ ${t.SELECTPICKER.placeholder}="${this.api.translate("Select Unsubscribe Group")}">
66
59
  ${this._getSelect()}
67
- </${r.SELECTPICKER}>
60
+ </${i.SELECTPICKER}>
68
61
  </div>
69
62
  </div>
70
63
  `;
71
64
  }
72
- _onSelectChange(t) {
73
- this.currentNode && this.api.getDocumentModifier().modifyHtml(this.currentNode).setAttribute("id", t.toString()).apply(new l(`Updated text to ${t}`));
65
+ _onSelectChange(e) {
66
+ this.currentNode && this.api.getDocumentModifier().modifyHtml(this.currentNode).setAttribute("id", e.toString()).apply(new p(`Updated text to ${e}`));
74
67
  }
75
68
  _listenToFormUpdates() {
76
- this.api.onValueChanged(n, (t) => this._onSelectChange(t));
69
+ this.api.onValueChanged(a, (e) => this._onSelectChange(e));
77
70
  }
78
- onTemplateNodeUpdated(t) {
79
- if (this.currentNode = t, "getAttribute" in t) {
80
- const i = Number(t.getAttribute("id"));
81
- i && (this.selectedUnsubGroup = i, this.api.updateValues({
82
- [n]: this.selectedUnsubGroup
83
- }));
84
- }
71
+ onTemplateNodeUpdated(e) {
72
+ this.currentNode = e;
85
73
  }
86
74
  // eslint-disable-next-line @typescript-eslint/no-misused-promises
87
75
  async onRender() {
88
- const t = await L(
76
+ const e = await C(
89
77
  "/unsubscribe-groups/unsubscribe-list"
90
- ), i = t.data.map((u) => ({
91
- [e.SELECT_ITEM.text]: u.name,
92
- [e.SELECT_ITEM.value]: u.sendGridId
78
+ ), s = [u, ...e.data], E = s.map((c) => ({
79
+ [t.SELECT_ITEM.text]: c.name,
80
+ [t.SELECT_ITEM.value]: c.sendGridId
93
81
  }));
94
- this.unsubList = t.data, this.api.setUIEAttribute(
95
- n,
96
- e.SELECTPICKER.items,
97
- i
82
+ this.unsubList = s, this.api.setUIEAttribute(
83
+ a,
84
+ t.SELECTPICKER.items,
85
+ E
98
86
  ), this._setFormValues(), this._listenToFormUpdates();
99
87
  }
100
88
  }
101
89
  export {
102
- d as CHECKBOX_CONTROL_BLOCK_ID,
103
- K as CheckboxControl
90
+ m as CHECKBOX_CONTROL_BLOCK_ID,
91
+ S as CheckboxControl
104
92
  };
@@ -1,20 +1,9 @@
1
- import "../../../node_modules/@stripoinc/ui-editor-extensions/dist/constants/AiAssistantValueType.js";
2
- import "../../../node_modules/@stripoinc/ui-editor-extensions/dist/constants/BlockCompositionType.js";
3
- import "../../../node_modules/@stripoinc/ui-editor-extensions/dist/constants/BlockName.js";
4
- import "../../../node_modules/@stripoinc/ui-editor-extensions/dist/constants/BlockType.js";
5
- import "../../../node_modules/@stripoinc/ui-editor-extensions/dist/constants/BuiltInControlTypes.js";
6
- import "../../../node_modules/@stripoinc/ui-editor-extensions/dist/constants/ContextActionType.js";
7
- import "../../../node_modules/@stripoinc/ui-editor-extensions/dist/constants/EditorStatePropertyType.js";
8
- import "../../../node_modules/@stripoinc/ui-editor-extensions/dist/constants/PanelPosition.js";
9
- import "../../../node_modules/@stripoinc/ui-editor-extensions/dist/constants/Popover.js";
10
- import "../../../node_modules/@stripoinc/ui-editor-extensions/dist/constants/PreviewDeviceMode.js";
11
- import "../../../node_modules/@stripoinc/ui-editor-extensions/dist/constants/SettingsTab.js";
12
- import "../../../node_modules/@stripoinc/ui-editor-extensions/dist/constants/UIElementType.js";
13
- import { ExtensionBuilder as o } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/ExtensionBuilder.js";
1
+ import { ExtensionBuilder as o } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
14
2
  import { CheckboxBlock as t } from "./block.js";
15
- import { CheckboxControl as r } from "./control.js";
3
+ import { CheckboxControl as e } from "./control.js";
4
+ import { CheckboxIconsRegistry as r } from "./iconsRegistry.js";
16
5
  import { CheckboxBlockSettings as i } from "./settingsPanel.js";
17
- const g = new o().addBlock(t).withSettingsPanelRegistry(i).addControl(r).build();
6
+ const k = new o().addBlock(t).withSettingsPanelRegistry(i).addControl(e).withIconsRegistry(r).build();
18
7
  export {
19
- g as default
8
+ k as default
20
9
  };
@@ -0,0 +1,4 @@
1
+ import { IconsRegistry } from '@stripoinc/ui-editor-extensions';
2
+ export declare class CheckboxIconsRegistry extends IconsRegistry {
3
+ registerIconsSvg(iconsMap: Record<string, string>): void;
4
+ }
@@ -0,0 +1,18 @@
1
+ import { IconsRegistry as s } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
+ class t extends s {
3
+ registerIconsSvg(e) {
4
+ e["checkbox-icon"] = `
5
+ <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
6
+ <path d="M16 0C17.1046 0 18 0.895431 18 2L18 16C18 17.1046 17.1046 18 16 18L2 18C0.895431 18 8.05333e-09
7
+ 17.1046 0 16L0 2C0 0.895431 0.895431 8.05319e-09 2 0L16 0ZM2 16L16 16L16 2L2 2L2 16ZM11.3672
8
+ 6.28125C11.7407 5.9061 12.3462 5.90614 12.7197 6.28125C13.0933 6.65659 13.0933 7.26528 12.7197
9
+ 7.64062L8.66211 11.7187C8.31189 12.0707 7.75752 12.0922 7.38184 11.7842L7.30957 11.7187L5.28027
10
+ 9.67969C4.90674 9.30434 4.90674 8.69566 5.28027 8.32031C5.6538 7.94508 6.25931 7.94504 6.63281
11
+ 8.32031L7.98535 9.67969L11.3672 6.28125Z" fill="#666666"/>
12
+ </svg>
13
+ `;
14
+ }
15
+ }
16
+ export {
17
+ t as CheckboxIconsRegistry
18
+ };