@useinsider/guido 1.0.3-beta.52ded25 → 1.0.3-beta.5361682
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.
- package/README.md +32 -3
- package/dist/components/Guido.vue.js +1 -1
- package/dist/components/organisms/LoadingWrapper.vue.js +1 -1
- package/dist/components/organisms/header/RightSlot.vue2.js +13 -13
- package/dist/composables/useActionsApi.js +1 -1
- package/dist/composables/useHtmlValidator.js +35 -36
- package/dist/composables/useStripo.js +25 -29
- package/dist/enums/unsubscribe.js +26 -27
- package/dist/extensions/Blocks/Checkbox/control.js +14 -15
- package/dist/extensions/Blocks/Checkbox/template.js +9 -14
- package/dist/extensions/Blocks/Items/block.js +26 -26
- package/dist/extensions/Blocks/Items/controls/name/trimming.js +2 -2
- package/dist/extensions/Blocks/Items/controls/settingsControl.js +81 -84
- package/dist/extensions/Blocks/Items/enums/productEnums.js +4 -62
- package/dist/extensions/Blocks/Items/layouts/horizontal.html.js +57 -57
- package/dist/extensions/Blocks/Items/layouts/vertical.html.js +55 -54
- package/dist/extensions/Blocks/Items/settingsPanel.js +29 -28
- package/dist/extensions/Blocks/Items/template.js +82 -79
- package/dist/extensions/Blocks/RadioButton/control.js +17 -18
- package/dist/extensions/Blocks/RadioButton/template.js +9 -18
- package/dist/extensions/Blocks/Unsubscribe/block.js +27 -27
- package/dist/guido.css +1 -1
- package/dist/node_modules/lodash-es/_arrayLikeKeys.js +12 -13
- package/dist/node_modules/lodash-es/keysIn.js +3 -3
- package/dist/src/extensions/Blocks/Checkbox/template.d.ts +1 -1
- package/dist/src/extensions/Blocks/Items/block.d.ts +0 -14
- package/dist/src/extensions/Blocks/Items/controls/settingsControl.d.ts +2 -5
- package/dist/src/extensions/Blocks/Items/enums/productEnums.d.ts +0 -2
- package/dist/src/extensions/Blocks/Items/template.d.ts +1 -9
- package/dist/src/extensions/Blocks/RadioButton/template.d.ts +1 -1
- package/package.json +10 -5
- package/dist/node_modules/lodash-es/_DataView.js +0 -6
- package/dist/node_modules/lodash-es/_Promise.js +0 -6
- package/dist/node_modules/lodash-es/_Set.js +0 -6
- package/dist/node_modules/lodash-es/_SetCache.js +0 -13
- package/dist/node_modules/lodash-es/_WeakMap.js +0 -6
- package/dist/node_modules/lodash-es/_arrayFilter.js +0 -10
- package/dist/node_modules/lodash-es/_arrayMap.js +0 -8
- package/dist/node_modules/lodash-es/_arrayPush.js +0 -8
- package/dist/node_modules/lodash-es/_arraySome.js +0 -9
- package/dist/node_modules/lodash-es/_baseEach.js +0 -6
- package/dist/node_modules/lodash-es/_baseFlatten.js +0 -13
- package/dist/node_modules/lodash-es/_baseForOwn.js +0 -8
- package/dist/node_modules/lodash-es/_baseGet.js +0 -11
- package/dist/node_modules/lodash-es/_baseGetAllKeys.js +0 -9
- package/dist/node_modules/lodash-es/_baseHasIn.js +0 -6
- package/dist/node_modules/lodash-es/_baseIsEqual.js +0 -8
- package/dist/node_modules/lodash-es/_baseIsEqualDeep.js +0 -32
- package/dist/node_modules/lodash-es/_baseIsMatch.js +0 -29
- package/dist/node_modules/lodash-es/_baseIteratee.js +0 -11
- package/dist/node_modules/lodash-es/_baseKeys.js +0 -14
- package/dist/node_modules/lodash-es/_baseMap.js +0 -11
- package/dist/node_modules/lodash-es/_baseMatches.js +0 -12
- package/dist/node_modules/lodash-es/_baseMatchesProperty.js +0 -17
- package/dist/node_modules/lodash-es/_baseProperty.js +0 -8
- package/dist/node_modules/lodash-es/_basePropertyDeep.js +0 -9
- package/dist/node_modules/lodash-es/_baseRange.js +0 -9
- package/dist/node_modules/lodash-es/_baseToString.js +0 -18
- package/dist/node_modules/lodash-es/_baseTrim.js +0 -8
- package/dist/node_modules/lodash-es/_cacheHas.js +0 -6
- package/dist/node_modules/lodash-es/_castPath.js +0 -10
- package/dist/node_modules/lodash-es/_createBaseEach.js +0 -15
- package/dist/node_modules/lodash-es/_createRange.js +0 -11
- package/dist/node_modules/lodash-es/_equalArrays.js +0 -40
- package/dist/node_modules/lodash-es/_equalByTag.js +0 -45
- package/dist/node_modules/lodash-es/_equalObjects.js +0 -36
- package/dist/node_modules/lodash-es/_getAllKeys.js +0 -9
- package/dist/node_modules/lodash-es/_getMatchData.js +0 -12
- package/dist/node_modules/lodash-es/_getSymbols.js +0 -10
- package/dist/node_modules/lodash-es/_getTag.js +0 -28
- package/dist/node_modules/lodash-es/_hasPath.js +0 -19
- package/dist/node_modules/lodash-es/_isFlattenable.js +0 -10
- package/dist/node_modules/lodash-es/_isKey.js +0 -12
- package/dist/node_modules/lodash-es/_isStrictComparable.js +0 -7
- package/dist/node_modules/lodash-es/_mapToArray.js +0 -9
- package/dist/node_modules/lodash-es/_matchesStrictComparable.js +0 -8
- package/dist/node_modules/lodash-es/_memoizeCapped.js +0 -11
- package/dist/node_modules/lodash-es/_nativeKeys.js +0 -5
- package/dist/node_modules/lodash-es/_setCacheAdd.js +0 -7
- package/dist/node_modules/lodash-es/_setCacheHas.js +0 -6
- package/dist/node_modules/lodash-es/_setToArray.js +0 -9
- package/dist/node_modules/lodash-es/_stringToPath.js +0 -10
- package/dist/node_modules/lodash-es/_toKey.js +0 -10
- package/dist/node_modules/lodash-es/_trimmedEndIndex.js +0 -9
- package/dist/node_modules/lodash-es/flatMap.js +0 -8
- package/dist/node_modules/lodash-es/get.js +0 -8
- package/dist/node_modules/lodash-es/hasIn.js +0 -8
- package/dist/node_modules/lodash-es/isSymbol.js +0 -9
- package/dist/node_modules/lodash-es/keys.js +0 -9
- package/dist/node_modules/lodash-es/map.js +0 -11
- package/dist/node_modules/lodash-es/property.js +0 -10
- package/dist/node_modules/lodash-es/range.js +0 -5
- package/dist/node_modules/lodash-es/stubArray.js +0 -6
- package/dist/node_modules/lodash-es/toFinite.js +0 -14
- package/dist/node_modules/lodash-es/toNumber.js +0 -22
- package/dist/node_modules/lodash-es/toString.js +0 -7
- package/dist/src/utils/environmentUtil.d.ts +0 -5
- package/dist/utils/environmentUtil.js +0 -4
package/README.md
CHANGED
|
@@ -600,9 +600,6 @@ Create a `.env` file with the following variables: (You can get env variables fr
|
|
|
600
600
|
VITE_STRIPO_PLUGIN_ID=your_plugin_id
|
|
601
601
|
VITE_STRIPO_SECRET_KEY=your_secret_key
|
|
602
602
|
VITE_STRIPO_ROLE=your_role
|
|
603
|
-
|
|
604
|
-
# Playwright Test Configuration (Optional - for local debugging only)
|
|
605
|
-
HEADED=false # Set to 'true' to run tests with visible browser
|
|
606
603
|
```
|
|
607
604
|
|
|
608
605
|
### Project Structure
|
|
@@ -790,3 +787,35 @@ ISC License
|
|
|
790
787
|
- Playwright integrationBoilerplate/control.ts
|
|
791
788
|
- Commitlint & Precommit Hooks integration
|
|
792
789
|
- Get Pre-built display conditions from API
|
|
790
|
+
|
|
791
|
+
Recommendation Block:
|
|
792
|
+
- [ ] Validations for Filters
|
|
793
|
+
- [ ] DOM Rerender after Filters change
|
|
794
|
+
- [ ] Change currencySymbol as Input Type
|
|
795
|
+
- [ ] Apply filter query to request
|
|
796
|
+
- [ ] Drawer loading bug
|
|
797
|
+
- [ ] Drawer send request when apply filters
|
|
798
|
+
- [ ] Clear all feature for Drawer
|
|
799
|
+
- [ ] Stripo's controls should be effect specific DOM item -- Try extending CommonControl class
|
|
800
|
+
- [ ] Show toaster message if uses multiple recommendation blocks in same template
|
|
801
|
+
- [ ] Change filter button text as Change Filters
|
|
802
|
+
- [ ] Migration template for Recommendation Block
|
|
803
|
+
- [ ] Recommendation Algorithm default value should be mostPopular
|
|
804
|
+
- [ ] Default fields for empty template like currency, title etc.
|
|
805
|
+
- [ ] Recommendation Block Icon Registry should be updated
|
|
806
|
+
- [ ] AMP Block Icon should be updated
|
|
807
|
+
- [ ] Padding feature for between Product Rows
|
|
808
|
+
|
|
809
|
+
Items Block Phase 2:
|
|
810
|
+
[ ] Writing configs to esd-config-data DOM.
|
|
811
|
+
[ ] Build on save feature should be working
|
|
812
|
+
[ ] Data Migration feature should be working
|
|
813
|
+
|
|
814
|
+
Tech Debts:
|
|
815
|
+
[ ] Merge Custom Blocks into a single File
|
|
816
|
+
[ ] Move Custom Blocks names to an enum file
|
|
817
|
+
[ ] Template Replacement should be optimized for version history
|
|
818
|
+
[ ] Code Optimization for Items Block inner blocks reordering
|
|
819
|
+
[ ] Image Size & Margins controls has an error on console
|
|
820
|
+
[ ] Feed Text Trimming feature to toggle settings
|
|
821
|
+
[ ] Formatted Price feature to toggle settings
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent as H, ref as
|
|
1
|
+
import { defineComponent as H, ref as p, computed as _ } from "vue";
|
|
2
2
|
import { useConfig as h } from "../../../composables/useConfig.js";
|
|
3
3
|
import { useExport as V } from "../../../composables/useExport.js";
|
|
4
4
|
import { useTestEmailClick as x } from "../../../composables/useGuidoActions.js";
|
|
@@ -10,25 +10,25 @@ import { getTooltipOptions as O } from "../../../utils/tooltipUtils.js";
|
|
|
10
10
|
import { InButtonV2 as A } from "@useinsider/design-system-vue";
|
|
11
11
|
const J = /* @__PURE__ */ H({
|
|
12
12
|
__name: "RightSlot",
|
|
13
|
-
setup(k, { expose:
|
|
14
|
-
const { config:
|
|
15
|
-
if (
|
|
13
|
+
setup(k, { expose: m }) {
|
|
14
|
+
const { config: c } = h(), { exportHtml: r } = V(), { save: n } = E(), { openVersionHistory: i, closeVersionHistory: a } = w(), t = C(), o = T(), e = p(!1), s = p(!1), u = x(), f = () => {
|
|
15
|
+
if (t.isVersionHistoryOpen) {
|
|
16
16
|
a();
|
|
17
17
|
return;
|
|
18
18
|
}
|
|
19
19
|
i();
|
|
20
|
-
},
|
|
20
|
+
}, v = async () => {
|
|
21
21
|
e.value = !0, await r(), e.value = !1;
|
|
22
|
-
},
|
|
23
|
-
|
|
24
|
-
},
|
|
25
|
-
s.value = !0,
|
|
26
|
-
const g = await n(
|
|
27
|
-
return s.value = !1,
|
|
22
|
+
}, d = () => {
|
|
23
|
+
t.isSaveAsTemplateDrawerOpen = !0;
|
|
24
|
+
}, y = _(() => t.isVersionHistoryOpen ? o("newsletter.close-version-history") : o("newsletter.version-history")), l = async (S) => {
|
|
25
|
+
s.value = !0, t.loadingStatus = !0;
|
|
26
|
+
const g = await n(S);
|
|
27
|
+
return s.value = !1, t.loadingStatus = !1, g;
|
|
28
28
|
};
|
|
29
|
-
return
|
|
29
|
+
return m({
|
|
30
30
|
handleSave: l
|
|
31
|
-
}), { __sfc: !0, config:
|
|
31
|
+
}), { __sfc: !0, config: c, exportHtml: r, save: n, openVersionHistory: i, closeVersionHistory: a, editorStore: t, trans: o, isExporting: e, isSaving: s, testEmailClick: u, handleVersionHistory: f, handleExport: v, handleSaveAs: d, versionHistoryTooltipText: y, handleSave: l, getTooltipOptions: O, InButtonV2: A };
|
|
32
32
|
}
|
|
33
33
|
});
|
|
34
34
|
export {
|
|
@@ -1,19 +1,18 @@
|
|
|
1
|
-
import { useConfig as
|
|
2
|
-
import { TemplateTypes as
|
|
3
|
-
import { DISPLAY_CONDITIONS_REGEX as
|
|
1
|
+
import { useConfig as H } from "./useConfig.js";
|
|
2
|
+
import { TemplateTypes as V } from "../enums/defaults.js";
|
|
3
|
+
import { DISPLAY_CONDITIONS_REGEX as D, DISPLAY_CONDITIONS_EXCEPTIONS_REGEX as P, CampaignCouldNotBeSavedKey as R, CanNotMakeAnyChangesForRunningKey as _ } from "../enums/html-validator.js";
|
|
4
4
|
import { ToasterTypeOptions as l } from "../enums/toaster.js";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
|
|
11
|
-
const ie = () => {
|
|
5
|
+
import { useRecommendationStore as G } from "../stores/recommendation.js";
|
|
6
|
+
import { base64EncodeWithSpecialChars as $ } from "../utils/base64.js";
|
|
7
|
+
import { useHttp as j } from "./useHttp.js";
|
|
8
|
+
import { useToaster as q } from "./useToaster.js";
|
|
9
|
+
import { useTranslations as M } from "./useTranslations.js";
|
|
10
|
+
const se = () => {
|
|
12
11
|
var d;
|
|
13
|
-
const { showToaster: c } =
|
|
12
|
+
const { showToaster: c } = q(), { post: y } = j(), { config: h } = H(), a = M(), m = G(), u = ((d = h.partner) == null ? void 0 : d.messageType) === V.transactional, v = async (e) => {
|
|
14
13
|
const t = await y(
|
|
15
14
|
"/newsletter/template-library/check-template-html-body",
|
|
16
|
-
{ html:
|
|
15
|
+
{ html: $(e) }
|
|
17
16
|
), { status: n, message: r } = t.data;
|
|
18
17
|
return n || c({
|
|
19
18
|
type: l.Alert,
|
|
@@ -26,10 +25,10 @@ const ie = () => {
|
|
|
26
25
|
const t = e.match(/({%(.*?)%})/g);
|
|
27
26
|
let n = !0;
|
|
28
27
|
return t !== null && !u && t.forEach((r) => {
|
|
29
|
-
const
|
|
30
|
-
if (
|
|
31
|
-
const [
|
|
32
|
-
C(
|
|
28
|
+
const o = r.slice(2, -2).trim().match(/(".*?"|[^"\s]+)(?=\s*|\s*$)/g);
|
|
29
|
+
if (o && o.length > 0) {
|
|
30
|
+
const [i] = o;
|
|
31
|
+
C(i) && !s.includes(i) && (c({
|
|
33
32
|
type: l.Warning,
|
|
34
33
|
message: a("custom-fields.invalid-custom-fields")
|
|
35
34
|
}), n = !1);
|
|
@@ -59,19 +58,19 @@ const ie = () => {
|
|
|
59
58
|
}, k = (e, s) => {
|
|
60
59
|
const t = e.match(/{{([a-zA-Z0-9_\s]*)}}/gm);
|
|
61
60
|
if (t && !u) {
|
|
62
|
-
const n = new Set(s.map((
|
|
63
|
-
if (t.forEach((
|
|
64
|
-
const
|
|
65
|
-
(!n.has(
|
|
61
|
+
const n = new Set(s.map((o) => o.toLowerCase())), r = [];
|
|
62
|
+
if (t.forEach((o) => {
|
|
63
|
+
const i = o.slice(2, -2).trim().toLowerCase();
|
|
64
|
+
(!n.has(i) || i === "") && r.push(i);
|
|
66
65
|
}), r.length > 0) {
|
|
67
|
-
const
|
|
66
|
+
const o = `
|
|
68
67
|
<ul>
|
|
69
|
-
${r.map((
|
|
68
|
+
${r.map((i) => `<li>${i}</li>`).join("")}
|
|
70
69
|
</ul>
|
|
71
70
|
`;
|
|
72
71
|
return c({
|
|
73
72
|
type: l.Alert,
|
|
74
|
-
message: a("custom-fields.invalid-custom-fields") +
|
|
73
|
+
message: a("custom-fields.invalid-custom-fields") + o
|
|
75
74
|
}), !1;
|
|
76
75
|
}
|
|
77
76
|
}
|
|
@@ -80,11 +79,11 @@ const ie = () => {
|
|
|
80
79
|
const s = e.match(/{%(.*?)%}/g), t = [];
|
|
81
80
|
let n = !0;
|
|
82
81
|
if (s && s.forEach((r) => {
|
|
83
|
-
const
|
|
84
|
-
(!
|
|
82
|
+
const o = r.match(D), i = r.match(P), B = (o == null ? void 0 : o.join("")) || "";
|
|
83
|
+
(!o || r !== B) && !i && (c({
|
|
85
84
|
type: l.Alert,
|
|
86
85
|
message: a("newsletter.display-conditions-invalid-syntax")
|
|
87
|
-
}), n = !1),
|
|
86
|
+
}), n = !1), o && o.forEach((f) => {
|
|
88
87
|
f.trim() === "=" && (c({
|
|
89
88
|
type: l.Alert,
|
|
90
89
|
message: a("custom-conditions.wrong-equality-operators")
|
|
@@ -95,8 +94,8 @@ const ie = () => {
|
|
|
95
94
|
});
|
|
96
95
|
});
|
|
97
96
|
}), t.length) {
|
|
98
|
-
const r = t.filter((
|
|
99
|
-
r.length !==
|
|
97
|
+
const r = t.filter((i) => i === "if"), o = t.filter((i) => i === "endif");
|
|
98
|
+
r.length !== o.length && (c({
|
|
100
99
|
type: l.Alert,
|
|
101
100
|
message: a("custom-conditions.missing-if-endif-tag")
|
|
102
101
|
}), n = !1);
|
|
@@ -122,28 +121,28 @@ const ie = () => {
|
|
|
122
121
|
}), !1);
|
|
123
122
|
}, N = (e) => {
|
|
124
123
|
const n = new DOMParser().parseFromString(e, "text/html").querySelectorAll(".checkbox-block-v2");
|
|
125
|
-
return Array.from(n).find((
|
|
126
|
-
var
|
|
127
|
-
return !((
|
|
124
|
+
return Array.from(n).find((o) => {
|
|
125
|
+
var i;
|
|
126
|
+
return !((i = o.id) != null && i.trim());
|
|
128
127
|
}) ? (c({
|
|
129
128
|
type: l.Alert,
|
|
130
129
|
message: a("unsubscribe-templates.select-checkbox-groups")
|
|
131
130
|
}), !1) : !0;
|
|
132
131
|
}, O = (e) => {
|
|
133
132
|
const n = new DOMParser().parseFromString(e, "text/html").querySelectorAll(".radio-button-v2");
|
|
134
|
-
return Array.from(n).find((
|
|
135
|
-
var
|
|
136
|
-
return !((
|
|
133
|
+
return Array.from(n).find((o) => {
|
|
134
|
+
var i;
|
|
135
|
+
return !((i = o.id) != null && i.trim());
|
|
137
136
|
}) ? (c({
|
|
138
137
|
type: l.Alert,
|
|
139
138
|
message: a("unsubscribe-templates.select-radio-button-groups")
|
|
140
139
|
}), !1) : !0;
|
|
141
140
|
};
|
|
142
141
|
return { validateHtml: async (e, s, t = !1) => {
|
|
143
|
-
const n =
|
|
142
|
+
const n = s.map((o) => o.value);
|
|
144
143
|
return await b(e, n, t) && E(e) && A(e) && x(e) && k(e, n) && T(e) && F(e) && I(e) && W() && L(e) && N(e) && O(e);
|
|
145
144
|
} };
|
|
146
145
|
};
|
|
147
146
|
export {
|
|
148
|
-
|
|
147
|
+
se as useHtmlValidator
|
|
149
148
|
};
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import { useActionsApi as
|
|
1
|
+
import { useActionsApi as h } from "./useActionsApi.js";
|
|
2
2
|
import { useBlocksConfig as b } from "./useBlocksConfig.js";
|
|
3
3
|
import { useConfig as k } from "./useConfig.js";
|
|
4
4
|
import { useCustomInterfaceAppearance as V } from "./useCustomInterfaceAppearance.js";
|
|
5
5
|
import { useStripoEventHandler as _ } from "./useStripoEventHandler.js";
|
|
6
6
|
import { useToaster as B } from "./useToaster.js";
|
|
7
|
-
import { displayConditions as
|
|
8
|
-
import { useStripoApi as
|
|
9
|
-
import
|
|
10
|
-
import { useEditorStore as
|
|
11
|
-
import { dynamicContentToMergeTags as
|
|
12
|
-
import
|
|
13
|
-
const
|
|
14
|
-
const { config: u } = k(), { handleError: l } = B(), { getToken: f, getCustomFonts:
|
|
7
|
+
import { displayConditions as A } from "../enums/displayConditions.js";
|
|
8
|
+
import { useStripoApi as F } from "../services/stripoApi.js";
|
|
9
|
+
import T from "../static/styles/customEditorStyle.css.js";
|
|
10
|
+
import { useEditorStore as v } from "../stores/editor.js";
|
|
11
|
+
import { dynamicContentToMergeTags as I } from "../utils/genericUtil.js";
|
|
12
|
+
import M from "../package.json.js";
|
|
13
|
+
const N = (d) => {
|
|
14
|
+
const { config: u } = k(), { handleError: l } = B(), { getToken: f, getCustomFonts: S } = F(), { handleEvent: C } = _(), { getStripoBlocksConfig: y } = b(), E = async (i, r = []) => {
|
|
15
15
|
var m, g;
|
|
16
|
-
const t =
|
|
16
|
+
const t = v(), { html: n, css: p, forceRecreate: a } = i, { baseBlocks: e, extensions: c } = await y();
|
|
17
17
|
window.UIEditor.initEditor(
|
|
18
18
|
document.querySelector("#guido-editor"),
|
|
19
19
|
{
|
|
20
|
-
metadata:
|
|
20
|
+
metadata: d,
|
|
21
21
|
html: n,
|
|
22
22
|
css: p,
|
|
23
23
|
forceRecreate: a,
|
|
@@ -30,16 +30,12 @@ const J = (c) => {
|
|
|
30
30
|
customAppearanceMergetags: !0,
|
|
31
31
|
customAppearanceMergetagsBorderColor: "#f1f3fe",
|
|
32
32
|
customAppearanceMergetagsBackgroundColor: "#f1f3fe",
|
|
33
|
-
customViewStyles:
|
|
33
|
+
customViewStyles: T,
|
|
34
34
|
conditionsEnabled: ((m = u.features) == null ? void 0 : m.displayConditions) ?? !0,
|
|
35
35
|
customConditionsEnabled: ((g = u.features) == null ? void 0 : g.displayConditions) ?? !0,
|
|
36
|
-
conditionCategories:
|
|
36
|
+
conditionCategories: A,
|
|
37
37
|
enableXSSSecurity: !0,
|
|
38
|
-
messageSettingsEnabled: !
|
|
39
|
-
displayGmailAnnotations: !0,
|
|
40
|
-
displayHiddenPreheader: !1,
|
|
41
|
-
displayTitle: !1,
|
|
42
|
-
displayUTM: !1,
|
|
38
|
+
messageSettingsEnabled: !1,
|
|
43
39
|
selectElementAfterDrop: !0,
|
|
44
40
|
...e ? { baseBlocks: e } : {},
|
|
45
41
|
editorFonts: {
|
|
@@ -49,7 +45,7 @@ const J = (c) => {
|
|
|
49
45
|
},
|
|
50
46
|
mergeTags: [
|
|
51
47
|
{
|
|
52
|
-
entries:
|
|
48
|
+
entries: I(d.preselectedDynamicContentList)
|
|
53
49
|
}
|
|
54
50
|
],
|
|
55
51
|
async onTokenRefreshRequest(o) {
|
|
@@ -62,8 +58,8 @@ const J = (c) => {
|
|
|
62
58
|
},
|
|
63
59
|
onTemplateLoaded() {
|
|
64
60
|
try {
|
|
65
|
-
const { importCss: o } = V(), { activateCustomViewStyles: s } =
|
|
66
|
-
o(), s(),
|
|
61
|
+
const { importCss: o } = V(), { activateCustomViewStyles: s } = h();
|
|
62
|
+
o(), s(), d.onReady(), t.isStripoInitialized = !0, t.loadingStatus = !1, setTimeout(() => {
|
|
67
63
|
t.hasChanges = !1;
|
|
68
64
|
}, 1e3);
|
|
69
65
|
} catch (o) {
|
|
@@ -82,22 +78,22 @@ const J = (c) => {
|
|
|
82
78
|
onDataChanged() {
|
|
83
79
|
t.hasChanges = !0;
|
|
84
80
|
},
|
|
85
|
-
onEvent:
|
|
81
|
+
onEvent: C,
|
|
86
82
|
ignoreClickOutsideSelectors: [
|
|
87
83
|
"#guido-dynamic-content-modal",
|
|
88
84
|
".in-on-board-wrapper",
|
|
89
85
|
".in-drawer__container"
|
|
90
86
|
],
|
|
91
|
-
extensions:
|
|
87
|
+
extensions: c
|
|
92
88
|
}
|
|
93
89
|
);
|
|
94
|
-
},
|
|
95
|
-
var
|
|
90
|
+
}, w = (i) => new Promise((r, t) => {
|
|
91
|
+
var c;
|
|
96
92
|
if (document.getElementById("UiEditorScript")) {
|
|
97
93
|
i(), r();
|
|
98
94
|
return;
|
|
99
95
|
}
|
|
100
|
-
const n =
|
|
96
|
+
const n = M.guido, a = `https://email-static.useinsider.com/guido/${(c = n == null ? void 0 : n.stripo) == null ? void 0 : c.version}/UIEditor.js`, e = document.createElement("script");
|
|
101
97
|
e.id = "UiEditorScript", e.type = "module", e.src = a, e.onload = () => {
|
|
102
98
|
i(), r();
|
|
103
99
|
}, e.onerror = () => {
|
|
@@ -105,12 +101,12 @@ const J = (c) => {
|
|
|
105
101
|
}, document.body.appendChild(e);
|
|
106
102
|
});
|
|
107
103
|
return { initPlugin: async (i) => {
|
|
108
|
-
await
|
|
109
|
-
const r = await
|
|
104
|
+
await w(async () => {
|
|
105
|
+
const r = await S();
|
|
110
106
|
await E(i, r);
|
|
111
107
|
});
|
|
112
108
|
} };
|
|
113
109
|
};
|
|
114
110
|
export {
|
|
115
|
-
|
|
111
|
+
N as useStripo
|
|
116
112
|
};
|
|
@@ -1,26 +1,25 @@
|
|
|
1
|
-
import { useTranslations as
|
|
2
|
-
|
|
3
|
-
const e = n(), I = {
|
|
1
|
+
import { useTranslations as e } from "../composables/useTranslations.js";
|
|
2
|
+
const s = e(), R = {
|
|
4
3
|
UNSUBSCRIBE_LINK_TYPE: 1,
|
|
5
4
|
PREFERENCES_LINK_TYPE: 3
|
|
6
|
-
},
|
|
5
|
+
}, S = {
|
|
7
6
|
UNSUBSCRIBE_LINK_REGEX: /{{ins-unsubscribe-link}}/g,
|
|
8
7
|
DATA_OGSB_BUTTON_CSS_REGEX: "\\[data-ogsb\\]\\s*\\.es-button\\.es-button-[0-9]+\\s*\\{(?:[^\\}]*)\\}",
|
|
9
8
|
GLOBAL_UNSUBSCRIBE_LINK_REGEX: /{{ins-global-unsubscribe-link}}/g,
|
|
10
9
|
PREFERENCES_UNSUBSCRIBE_LINK_REGEX: /{{ins-preferences-unsubscribe-link}}/g
|
|
11
|
-
},
|
|
12
|
-
UNSUBSCRIBE_URL:
|
|
13
|
-
PREFERENCES_URL:
|
|
14
|
-
},
|
|
10
|
+
}, N = {
|
|
11
|
+
UNSUBSCRIBE_URL: "https://mail.useinsider.com/user/v1/unsub",
|
|
12
|
+
PREFERENCES_URL: "https://mail.useinsider.com/user/v1/prefs"
|
|
13
|
+
}, I = "iid", _ = {
|
|
15
14
|
name: "Global Unsubscribe",
|
|
16
15
|
sendGridId: "G"
|
|
17
|
-
},
|
|
16
|
+
}, i = "https://academy.useinsider.com/docs/global-unsubscribe-preference-center", r = "/email/unsubscribe-pages", E = {
|
|
18
17
|
GLOBAL_UNSUBSCRIBE: 1,
|
|
19
18
|
GLOBAL_UNSUBSCRIBE_CONFIRMATION_PAGE: 2,
|
|
20
19
|
SUBSCRIPTION_PREFERENCE_CENTER: 3,
|
|
21
20
|
SUBSCRIPTION_PREFERENCE_CONFIRMATION: 4,
|
|
22
21
|
RESUBSCRIBE: 5
|
|
23
|
-
},
|
|
22
|
+
}, B = {
|
|
24
23
|
[E.GLOBAL_UNSUBSCRIBE]: [
|
|
25
24
|
E.GLOBAL_UNSUBSCRIBE,
|
|
26
25
|
E.GLOBAL_UNSUBSCRIBE_CONFIRMATION_PAGE,
|
|
@@ -30,27 +29,27 @@ const e = n(), I = {
|
|
|
30
29
|
E.SUBSCRIPTION_PREFERENCE_CENTER,
|
|
31
30
|
E.SUBSCRIPTION_PREFERENCE_CONFIRMATION
|
|
32
31
|
]
|
|
33
|
-
},
|
|
34
|
-
[E.GLOBAL_UNSUBSCRIBE]:
|
|
35
|
-
[E.GLOBAL_UNSUBSCRIBE_CONFIRMATION_PAGE]:
|
|
36
|
-
[E.RESUBSCRIBE]:
|
|
37
|
-
[E.SUBSCRIPTION_PREFERENCE_CENTER]:
|
|
38
|
-
[E.SUBSCRIPTION_PREFERENCE_CONFIRMATION]:
|
|
39
|
-
},
|
|
32
|
+
}, C = {
|
|
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 = {
|
|
40
39
|
default: "{{ins-unsubscribe-link}}",
|
|
41
40
|
[E.GLOBAL_UNSUBSCRIBE]: "{{ins-global-unsubscribe-link}}",
|
|
42
41
|
[E.SUBSCRIPTION_PREFERENCE_CENTER]: "{{ins-preferences-unsubscribe-link}}"
|
|
43
42
|
};
|
|
44
43
|
export {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
44
|
+
i as ACADEMY_LINK,
|
|
45
|
+
_ as DEFAULT_UNSUBSCRIBE_GROUP,
|
|
46
|
+
I as INSIDER_ID,
|
|
47
|
+
S as LINK_REGEXES,
|
|
48
|
+
R as LINK_TYPES,
|
|
49
|
+
c as MERGE_TAGS,
|
|
51
50
|
E as PAGE_TYPES,
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
51
|
+
B as TYPE_COLLECTIONS,
|
|
52
|
+
C as TYPE_TRANSLATIONS,
|
|
53
|
+
r as UNSUBSCRIBE_PAGES_LINK,
|
|
54
|
+
N as URLS
|
|
56
55
|
};
|
|
@@ -2,9 +2,9 @@ var d = Object.defineProperty;
|
|
|
2
2
|
var l = (r, n, e) => n in r ? d(r, n, { enumerable: !0, configurable: !0, writable: !0, value: e }) : r[n] = e;
|
|
3
3
|
var o = (r, n, e) => l(r, typeof n != "symbol" ? n + "" : n, e);
|
|
4
4
|
import { useHttp as L } from "../../../composables/useHttp.js";
|
|
5
|
-
import { DEFAULT_UNSUBSCRIBE_GROUP as
|
|
5
|
+
import { DEFAULT_UNSUBSCRIBE_GROUP as u } from "../../../enums/unsubscribe.js";
|
|
6
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",
|
|
7
|
+
const m = "ui-elements-checkbox", a = "select", { get: C } = L();
|
|
8
8
|
class S extends h {
|
|
9
9
|
constructor() {
|
|
10
10
|
super(...arguments);
|
|
@@ -16,16 +16,15 @@ class S extends h {
|
|
|
16
16
|
return m;
|
|
17
17
|
}
|
|
18
18
|
_setFormValues() {
|
|
19
|
-
if (this.
|
|
19
|
+
if (this.currentNode && "getAttribute" in this.currentNode) {
|
|
20
20
|
const e = this.currentNode.getAttribute("id");
|
|
21
21
|
if (e) {
|
|
22
|
-
const s = e ===
|
|
23
|
-
s && (this.selectedUnsubGroup = s
|
|
22
|
+
const s = e === u.sendGridId ? e : Number(e);
|
|
23
|
+
s && (this.selectedUnsubGroup = s, this.api.updateValues({
|
|
24
|
+
[a]: this.selectedUnsubGroup
|
|
25
|
+
}));
|
|
24
26
|
}
|
|
25
27
|
}
|
|
26
|
-
this.api.updateValues({
|
|
27
|
-
[u]: this.selectedUnsubGroup
|
|
28
|
-
});
|
|
29
28
|
}
|
|
30
29
|
_getLabel(e, s = `${Math.random()}`) {
|
|
31
30
|
return `
|
|
@@ -55,7 +54,7 @@ class S extends h {
|
|
|
55
54
|
</${i.LABEL}>
|
|
56
55
|
|
|
57
56
|
<${i.SELECTPICKER}
|
|
58
|
-
${t.SELECTPICKER.name}="${
|
|
57
|
+
${t.SELECTPICKER.name}="${a}"
|
|
59
58
|
${t.SELECTPICKER.placeholder}="${this.api.translate("Select Unsubscribe Group")}">
|
|
60
59
|
${this._getSelect()}
|
|
61
60
|
</${i.SELECTPICKER}>
|
|
@@ -67,21 +66,21 @@ class S extends h {
|
|
|
67
66
|
this.currentNode && this.api.getDocumentModifier().modifyHtml(this.currentNode).setAttribute("id", e.toString()).apply(new p(`Updated text to ${e}`));
|
|
68
67
|
}
|
|
69
68
|
_listenToFormUpdates() {
|
|
70
|
-
this.api.onValueChanged(
|
|
69
|
+
this.api.onValueChanged(a, (e) => this._onSelectChange(e));
|
|
71
70
|
}
|
|
72
71
|
onTemplateNodeUpdated(e) {
|
|
73
|
-
this.currentNode = e
|
|
72
|
+
this.currentNode = e;
|
|
74
73
|
}
|
|
75
74
|
// eslint-disable-next-line @typescript-eslint/no-misused-promises
|
|
76
75
|
async onRender() {
|
|
77
76
|
const e = await C(
|
|
78
77
|
"/unsubscribe-groups/unsubscribe-list"
|
|
79
|
-
), s = [
|
|
80
|
-
[t.SELECT_ITEM.text]:
|
|
81
|
-
[t.SELECT_ITEM.value]:
|
|
78
|
+
), s = [u, ...e.data], E = s.map((c) => ({
|
|
79
|
+
[t.SELECT_ITEM.text]: c.name,
|
|
80
|
+
[t.SELECT_ITEM.value]: c.sendGridId
|
|
82
81
|
}));
|
|
83
82
|
this.unsubList = s, this.api.setUIEAttribute(
|
|
84
|
-
|
|
83
|
+
a,
|
|
85
84
|
t.SELECTPICKER.items,
|
|
86
85
|
E
|
|
87
86
|
), this._setFormValues(), this._listenToFormUpdates();
|
|
@@ -3,7 +3,7 @@ const e = {
|
|
|
3
3
|
TITLE: "Unsubscribe From All Email Lists",
|
|
4
4
|
DESCRIPTION: "You will still receive important transactional and billing-related emails."
|
|
5
5
|
}, l = `
|
|
6
|
-
<td align="left" class="checkbox-block
|
|
6
|
+
<td align="left" class="checkbox-block-v2 esd-block-checkbox es-p20">
|
|
7
7
|
<table cellpadding="0" cellspacing="0" role="presentation" width="100%">
|
|
8
8
|
<tbody>
|
|
9
9
|
<tr>
|
|
@@ -26,16 +26,11 @@ const e = {
|
|
|
26
26
|
</tbody>
|
|
27
27
|
</table>
|
|
28
28
|
</td>
|
|
29
|
-
`,
|
|
30
|
-
<td
|
|
31
|
-
align="left"
|
|
32
|
-
esd-extension-block-id="checkbox-block"
|
|
33
|
-
class="
|
|
34
|
-
checkbox-block
|
|
35
|
-
checkbox-block-v2
|
|
36
|
-
esd-block-checkbox
|
|
37
|
-
esd-checkbox-block
|
|
38
|
-
esd-extension-block es-p20"
|
|
29
|
+
`, i = `
|
|
30
|
+
<td
|
|
31
|
+
align="left"
|
|
32
|
+
esd-extension-block-id="checkbox-block"
|
|
33
|
+
class="checkbox-block-v2 esd-block-checkbox esd-checkbox-block esd-extension-block es-p20"
|
|
39
34
|
>
|
|
40
35
|
<table cellpadding="0" cellspacing="0" role="presentation" width="100%">
|
|
41
36
|
<tbody>
|
|
@@ -60,10 +55,10 @@ const e = {
|
|
|
60
55
|
</table>
|
|
61
56
|
</td>
|
|
62
57
|
`;
|
|
63
|
-
function
|
|
58
|
+
function c() {
|
|
64
59
|
return l.replace("{-{-TITLE-}-}", `<p path="1">${e.TITLE}</p>`).replace("{-{-DESCRIPTION-}-}", `<p path="1">${e.DESCRIPTION}</p>`);
|
|
65
60
|
}
|
|
66
61
|
export {
|
|
67
|
-
|
|
68
|
-
|
|
62
|
+
i as default,
|
|
63
|
+
c as getDefaultTemplate
|
|
69
64
|
};
|