@useinsider/guido 1.0.3-beta.f27e9ff → 1.0.3-beta.f711f2e
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 +0 -6
- package/dist/components/Guido.vue.js +1 -1
- package/dist/components/Guido.vue2.js +80 -80
- package/dist/components/organisms/LoadingWrapper.vue.js +1 -1
- package/dist/components/organisms/header/RightSlot.vue.js +1 -1
- package/dist/components/organisms/header/RightSlot.vue2.js +20 -21
- package/dist/components/organisms/onboarding/OnboardingWrapper.vue2.js +18 -20
- package/dist/composables/useActionsApi.js +1 -1
- package/dist/composables/useBlocksConfig.js +2 -1
- package/dist/composables/useGuidoActions.js +9 -19
- package/dist/composables/useHtmlCompiler.js +13 -15
- package/dist/composables/useHtmlValidator.js +35 -36
- package/dist/composables/useStripo.js +41 -47
- package/dist/config/compiler/unsubscribeCompilerRules.js +28 -33
- package/dist/enums/defaults.js +1 -2
- package/dist/enums/extensions/recommendationBlock.js +2 -2
- package/dist/enums/onboarding.js +3 -7
- package/dist/enums/unsubscribe.js +25 -27
- package/dist/extensions/Blocks/Checkbox/block.js +2 -5
- package/dist/extensions/Blocks/Checkbox/control.js +14 -15
- package/dist/extensions/Blocks/Checkbox/template.js +9 -14
- package/dist/extensions/Blocks/RadioButton/block.js +2 -5
- package/dist/extensions/Blocks/RadioButton/control.js +17 -18
- package/dist/extensions/Blocks/RadioButton/template.js +9 -18
- package/dist/extensions/Blocks/Recommendation/iconsRegistry.js +43 -43
- package/dist/extensions/Blocks/Recommendation/store/recommendation.js +1 -1
- package/dist/extensions/Blocks/Unsubscribe/block.js +41 -45
- package/dist/extensions/Blocks/common-control.js +110 -174
- package/dist/extensions/DynamicContent/dynamic-content-modal.js +19 -25
- package/dist/extensions/DynamicContent/dynamic-content.js +33 -128
- package/dist/guido.css +1 -1
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +168 -213
- package/dist/node_modules/lodash-es/_arrayLikeKeys.js +12 -13
- package/dist/node_modules/lodash-es/keysIn.js +3 -3
- package/dist/package.json.js +1 -1
- package/dist/services/recommendationApi.js +19 -13
- package/dist/src/@types/generic.d.ts +6 -27
- package/dist/src/components/Guido.vue.d.ts +2 -3
- package/dist/src/composables/useGuidoActions.d.ts +0 -9
- package/dist/src/enums/onboarding.d.ts +0 -4
- package/dist/src/extensions/Blocks/Checkbox/block.d.ts +0 -1
- package/dist/src/extensions/Blocks/Checkbox/template.d.ts +1 -1
- package/dist/src/extensions/Blocks/RadioButton/block.d.ts +0 -1
- package/dist/src/extensions/Blocks/RadioButton/template.d.ts +1 -1
- package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +1 -1
- package/dist/src/extensions/Blocks/Unsubscribe/block.d.ts +4 -3
- package/dist/src/extensions/Blocks/common-control.d.ts +7 -44
- package/dist/src/extensions/DynamicContent/dynamic-content-modal.d.ts +2 -9
- package/dist/src/extensions/DynamicContent/dynamic-content.d.ts +2 -52
- package/dist/src/stores/config.d.ts +2 -3
- package/dist/src/stores/dynamic-content.d.ts +3 -3
- package/dist/src/stores/editor.d.ts +1 -1
- package/dist/src/stores/onboarding.d.ts +1 -335
- package/dist/src/stores/preview.d.ts +1 -1
- package/dist/src/stores/recommendation.d.ts +1 -1
- package/dist/src/stores/save-as-template.d.ts +1 -1
- package/dist/src/stores/toaster.d.ts +1 -1
- package/dist/src/stores/unsubscribe.d.ts +1 -1
- package/dist/src/stores/version-history.d.ts +1 -1
- package/dist/src/utils/genericUtil.d.ts +0 -1
- package/dist/static/styles/customEditorStyle.css.js +1 -1
- package/dist/stores/config.js +5 -5
- package/dist/stores/dynamic-content.js +2 -2
- package/dist/stores/editor.js +1 -1
- package/dist/stores/onboarding.js +36 -44
- package/dist/stores/preview.js +1 -1
- package/dist/stores/recommendation.js +3 -3
- package/dist/stores/save-as-template.js +2 -2
- package/dist/stores/toaster.js +1 -1
- package/dist/stores/unsubscribe.js +1 -1
- package/dist/stores/version-history.js +4 -4
- package/dist/utils/genericUtil.js +8 -18
- package/package.json +4 -4
- package/dist/components/organisms/onboarding/ItemsOnboarding.vue.js +0 -21
- package/dist/components/organisms/onboarding/ItemsOnboarding.vue2.js +0 -99
- package/dist/config/compiler/itemsCompilerRules.js +0 -14
- package/dist/extensions/Blocks/Items/block.js +0 -67
- package/dist/extensions/Blocks/Items/controls/button/link.js +0 -68
- package/dist/extensions/Blocks/Items/controls/cardComposition.js +0 -193
- package/dist/extensions/Blocks/Items/controls/image/link.js +0 -68
- package/dist/extensions/Blocks/Items/controls/index.js +0 -217
- package/dist/extensions/Blocks/Items/controls/name/trimming.js +0 -70
- package/dist/extensions/Blocks/Items/controls/price/currencyLocation.js +0 -107
- package/dist/extensions/Blocks/Items/controls/price/currencySymbol.js +0 -123
- package/dist/extensions/Blocks/Items/controls/price/formattedPrice.js +0 -76
- package/dist/extensions/Blocks/Items/controls/price/hideDiscount.js +0 -61
- package/dist/extensions/Blocks/Items/controls/price/priceOrientation.js +0 -92
- package/dist/extensions/Blocks/Items/controls/settingsControl.js +0 -316
- package/dist/extensions/Blocks/Items/enums/controlEnums.js +0 -5
- package/dist/extensions/Blocks/Items/enums/productEnums.js +0 -274
- package/dist/extensions/Blocks/Items/enums/settingsEnums.js +0 -77
- package/dist/extensions/Blocks/Items/extension.js +0 -20
- package/dist/extensions/Blocks/Items/iconsRegistry.js +0 -32
- package/dist/extensions/Blocks/Items/items.css.js +0 -23
- package/dist/extensions/Blocks/Items/layouts/horizontal.html.js +0 -62
- package/dist/extensions/Blocks/Items/layouts/vertical.html.js +0 -72
- package/dist/extensions/Blocks/Items/settingsPanel.js +0 -132
- package/dist/extensions/Blocks/Items/store/items-block.js +0 -75
- package/dist/extensions/Blocks/Items/template.js +0 -195
- package/dist/extensions/Blocks/Items/utils/configBlockUtils.js +0 -17
- package/dist/extensions/Blocks/Items/utils/syncAttributeFromConfigBlock.js +0 -28
- package/dist/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.js +0 -76
- package/dist/extensions/Blocks/Items/utils/updateAttributes.js +0 -46
- package/dist/extensions/Blocks/controlFactories.js +0 -223
- 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/components/organisms/onboarding/ItemsOnboarding.vue.d.ts +0 -2
- package/dist/src/config/compiler/itemsCompilerRules.d.ts +0 -2
- package/dist/src/extensions/Blocks/Items/block.d.ts +0 -27
- package/dist/src/extensions/Blocks/Items/controls/button/link.d.ts +0 -14
- package/dist/src/extensions/Blocks/Items/controls/cardComposition.d.ts +0 -33
- package/dist/src/extensions/Blocks/Items/controls/image/link.d.ts +0 -14
- package/dist/src/extensions/Blocks/Items/controls/index.d.ts +0 -501
- package/dist/src/extensions/Blocks/Items/controls/name/trimming.d.ts +0 -14
- package/dist/src/extensions/Blocks/Items/controls/price/currencyLocation.d.ts +0 -19
- package/dist/src/extensions/Blocks/Items/controls/price/currencySymbol.d.ts +0 -21
- package/dist/src/extensions/Blocks/Items/controls/price/formattedPrice.d.ts +0 -14
- package/dist/src/extensions/Blocks/Items/controls/price/hideDiscount.d.ts +0 -13
- package/dist/src/extensions/Blocks/Items/controls/price/priceOrientation.d.ts +0 -15
- package/dist/src/extensions/Blocks/Items/controls/settingsControl.d.ts +0 -48
- package/dist/src/extensions/Blocks/Items/enums/controlEnums.d.ts +0 -62
- package/dist/src/extensions/Blocks/Items/enums/productEnums.d.ts +0 -163
- package/dist/src/extensions/Blocks/Items/enums/settingsEnums.d.ts +0 -50
- package/dist/src/extensions/Blocks/Items/extension.d.ts +0 -2
- package/dist/src/extensions/Blocks/Items/iconsRegistry.d.ts +0 -4
- package/dist/src/extensions/Blocks/Items/settingsPanel.d.ts +0 -4
- package/dist/src/extensions/Blocks/Items/store/items-block.d.ts +0 -43
- package/dist/src/extensions/Blocks/Items/template.d.ts +0 -24
- package/dist/src/extensions/Blocks/Items/utils/configBlockUtils.d.ts +0 -23
- package/dist/src/extensions/Blocks/Items/utils/syncAttributeFromConfigBlock.d.ts +0 -32
- package/dist/src/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.d.ts +0 -50
- package/dist/src/extensions/Blocks/Items/utils/updateAttributes.d.ts +0 -8
- package/dist/src/extensions/Blocks/controlFactories.d.ts +0 -312
- package/dist/src/utils/environmentUtil.d.ts +0 -5
- package/dist/src/utils/pairProductVariables.d.ts +0 -7
- package/dist/utils/environmentUtil.js +0 -4
- package/dist/utils/pairProductVariables.js +0 -136
|
@@ -1,20 +1,19 @@
|
|
|
1
|
-
import
|
|
1
|
+
import p from "./_baseTimes.js";
|
|
2
2
|
import g from "./isArguments.js";
|
|
3
3
|
import h from "./isArray.js";
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
(p || O.call(t, r)) && !(n && // Safari 9 has enumerable `arguments.length` in strict mode.
|
|
4
|
+
import a from "./isBuffer.js";
|
|
5
|
+
import d from "./_isIndex.js";
|
|
6
|
+
import A from "./isTypedArray.js";
|
|
7
|
+
function c(i, b) {
|
|
8
|
+
var t = h(i), f = !t && g(i), s = !t && !f && a(i), o = !t && !f && !s && A(i), n = t || f || s || o, e = n ? p(i.length, String) : [], m = e.length;
|
|
9
|
+
for (var r in i)
|
|
10
|
+
n && // Safari 9 has enumerable `arguments.length` in strict mode.
|
|
12
11
|
(r == "length" || // Node.js 0.10 has enumerable non-index properties on buffers.
|
|
13
12
|
s && (r == "offset" || r == "parent") || // PhantomJS 2 has enumerable non-index properties on typed arrays.
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
return
|
|
13
|
+
o && (r == "buffer" || r == "byteLength" || r == "byteOffset") || // Skip index properties.
|
|
14
|
+
d(r, m)) || e.push(r);
|
|
15
|
+
return e;
|
|
17
16
|
}
|
|
18
17
|
export {
|
|
19
|
-
|
|
18
|
+
c as default
|
|
20
19
|
};
|
package/dist/package.json.js
CHANGED
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
import { useHttp as c } from "../composables/useHttp.js";
|
|
2
2
|
import { URLS as a } from "../enums/extensions/recommendationBlock.js";
|
|
3
|
-
|
|
3
|
+
import { useEditorStore as m } from "../stores/editor.js";
|
|
4
|
+
import { replaceString as s } from "../utils/genericUtil.js";
|
|
5
|
+
const l = () => {
|
|
4
6
|
const { get: o } = c();
|
|
5
7
|
return {
|
|
6
8
|
fetchRecommendationCreateData: async () => {
|
|
9
|
+
const e = m();
|
|
7
10
|
try {
|
|
8
|
-
return (await o(
|
|
9
|
-
|
|
10
|
-
|
|
11
|
+
return (await o(s(
|
|
12
|
+
"/newsletter/{id}/recommendations/get-campaign-create-data",
|
|
13
|
+
{ id: e.templateId }
|
|
14
|
+
))).data;
|
|
15
|
+
} catch (t) {
|
|
16
|
+
throw console.error("fetchUserModalState error:", t), t;
|
|
11
17
|
}
|
|
12
18
|
},
|
|
13
19
|
fetchRecommendationFilters: async () => {
|
|
@@ -18,20 +24,20 @@ const R = () => {
|
|
|
18
24
|
throw console.error("fetchRecommendationFilters error:", e), e;
|
|
19
25
|
}
|
|
20
26
|
},
|
|
21
|
-
fetchRecommendationProducts: async (e,
|
|
27
|
+
fetchRecommendationProducts: async (e, t) => {
|
|
22
28
|
try {
|
|
23
|
-
const
|
|
24
|
-
console.debug("🏁 Recommendation API Query:",
|
|
25
|
-
const
|
|
26
|
-
`${a.RECOMMENDATION_API_URL}/v2/${e}?${
|
|
29
|
+
const r = decodeURIComponent(new URLSearchParams(Object.entries(t)).toString());
|
|
30
|
+
console.debug("🏁 Recommendation API Query:", r);
|
|
31
|
+
const n = await o(
|
|
32
|
+
`${a.RECOMMENDATION_API_URL}/v2/${e}?${r}`
|
|
27
33
|
);
|
|
28
|
-
return (
|
|
29
|
-
} catch (
|
|
30
|
-
throw console.error("fetchRecommendationProducts error:",
|
|
34
|
+
return (n == null ? void 0 : n.data) ?? [];
|
|
35
|
+
} catch (r) {
|
|
36
|
+
throw console.error("fetchRecommendationProducts error:", r), r;
|
|
31
37
|
}
|
|
32
38
|
}
|
|
33
39
|
};
|
|
34
40
|
};
|
|
35
41
|
export {
|
|
36
|
-
|
|
42
|
+
l as useRecommendationApi
|
|
37
43
|
};
|
|
@@ -7,7 +7,6 @@ type Features = {
|
|
|
7
7
|
saveAsTemplate?: boolean;
|
|
8
8
|
versionHistory?: boolean;
|
|
9
9
|
testMessage?: boolean;
|
|
10
|
-
displayConditions?: boolean;
|
|
11
10
|
};
|
|
12
11
|
type Partner = {
|
|
13
12
|
partnerName: string;
|
|
@@ -38,39 +37,15 @@ export type TemplateConfig = {
|
|
|
38
37
|
selectedUnsubscribePages?: number[];
|
|
39
38
|
variationId?: string;
|
|
40
39
|
};
|
|
41
|
-
export type
|
|
40
|
+
export type DynamicContent = {
|
|
42
41
|
value: string;
|
|
42
|
+
text: string;
|
|
43
43
|
fallback?: string;
|
|
44
44
|
format?: {
|
|
45
45
|
key: string;
|
|
46
46
|
value: string;
|
|
47
47
|
};
|
|
48
48
|
};
|
|
49
|
-
export type DynamicContent = BaseDynamicContent & {
|
|
50
|
-
text: string;
|
|
51
|
-
};
|
|
52
|
-
export type MergeTag = BaseDynamicContent & {
|
|
53
|
-
label: string;
|
|
54
|
-
selStart?: number;
|
|
55
|
-
selEnd?: number;
|
|
56
|
-
hidden?: boolean;
|
|
57
|
-
};
|
|
58
|
-
export type PositionData = {
|
|
59
|
-
x: number;
|
|
60
|
-
y: number;
|
|
61
|
-
width?: number;
|
|
62
|
-
height?: number;
|
|
63
|
-
};
|
|
64
|
-
export type DynamicContentEvent = {
|
|
65
|
-
attribute: DynamicContent;
|
|
66
|
-
position?: PositionData;
|
|
67
|
-
};
|
|
68
|
-
export type MergeTagClickEvent = {
|
|
69
|
-
position: PositionData;
|
|
70
|
-
element: HTMLElement;
|
|
71
|
-
tagValue: string | null;
|
|
72
|
-
tagLabel: string | null;
|
|
73
|
-
};
|
|
74
49
|
export interface EmailHeader {
|
|
75
50
|
senderName: string;
|
|
76
51
|
subject: string;
|
|
@@ -86,6 +61,10 @@ export interface TooltipOptions {
|
|
|
86
61
|
};
|
|
87
62
|
preventXss?: boolean;
|
|
88
63
|
}
|
|
64
|
+
export type MergeTag = {
|
|
65
|
+
label: string;
|
|
66
|
+
value: string;
|
|
67
|
+
};
|
|
89
68
|
export type TextValueObject = {
|
|
90
69
|
text: string;
|
|
91
70
|
value: string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { DynamicContent, GuidoConfig,
|
|
1
|
+
import type { DynamicContent, GuidoConfig, TemplateConfig } from '@@/Types/generic';
|
|
2
2
|
import type { SavedTemplateDetails } from '@@/Types/stripo';
|
|
3
3
|
type __VLS_Props = {
|
|
4
4
|
templateId: string;
|
|
@@ -20,14 +20,13 @@ declare const _default: import("vue").DefineComponent<__VLS_TypePropsToOption<__
|
|
|
20
20
|
hasChanges: import("vue").ComputedRef<boolean>;
|
|
21
21
|
saveSilent: () => Promise<SavedTemplateDetails | undefined> | undefined;
|
|
22
22
|
}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {
|
|
23
|
-
"dynamic-content:open": (detail: DynamicContent | null
|
|
23
|
+
"dynamic-content:open": (detail: DynamicContent | null) => void;
|
|
24
24
|
back: () => void;
|
|
25
25
|
"save:start": () => void;
|
|
26
26
|
"save:complete": (data: Omit<SavedTemplateDetails, "forceRecreate">) => void;
|
|
27
27
|
"on-change": (hasChanges: boolean) => void;
|
|
28
28
|
ready: () => void;
|
|
29
29
|
"onboarding:finished": () => void;
|
|
30
|
-
"test-email:click": () => void;
|
|
31
30
|
}, string, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToOption<__VLS_Props>>>, {}>;
|
|
32
31
|
export default _default;
|
|
33
32
|
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
@@ -3,11 +3,9 @@ import type { InjectionKey } from 'vue';
|
|
|
3
3
|
export type BackHandler = () => void;
|
|
4
4
|
export type SaveStartHandler = () => void;
|
|
5
5
|
export type SaveCompleteHandler = (template: Omit<SavedTemplateDetails, 'forceRecreate'>) => void;
|
|
6
|
-
export type TestEmailClickHandler = () => void;
|
|
7
6
|
export declare const BACK_KEY: InjectionKey<BackHandler>;
|
|
8
7
|
export declare const SAVE_START_KEY: InjectionKey<SaveStartHandler>;
|
|
9
8
|
export declare const SAVE_COMPLETE_KEY: InjectionKey<SaveCompleteHandler>;
|
|
10
|
-
export declare const TEST_EMAIL_CLICK_KEY: InjectionKey<TestEmailClickHandler>;
|
|
11
9
|
/**
|
|
12
10
|
* Provides Guido action handlers to child components
|
|
13
11
|
*/
|
|
@@ -15,7 +13,6 @@ export declare const provideGuidoActions: (actions: {
|
|
|
15
13
|
onBack: BackHandler;
|
|
16
14
|
onSaveStart: SaveStartHandler;
|
|
17
15
|
onSaveComplete: SaveCompleteHandler;
|
|
18
|
-
onTestEmailClick: TestEmailClickHandler;
|
|
19
16
|
}) => void;
|
|
20
17
|
/**
|
|
21
18
|
* Provides individual Guido action handlers
|
|
@@ -38,11 +35,6 @@ export declare const useSaveStart: () => SaveStartHandler;
|
|
|
38
35
|
* @returns Save complete function
|
|
39
36
|
*/
|
|
40
37
|
export declare const useSaveComplete: () => SaveCompleteHandler;
|
|
41
|
-
/**
|
|
42
|
-
* Hook to use the test email click handler
|
|
43
|
-
* @returns Test email click function
|
|
44
|
-
*/
|
|
45
|
-
export declare const useTestEmailClick: () => TestEmailClickHandler;
|
|
46
38
|
/**
|
|
47
39
|
* Convenience hook to get all Guido actions
|
|
48
40
|
* @returns Object containing all action handlers
|
|
@@ -51,5 +43,4 @@ export declare const useGuidoActions: () => {
|
|
|
51
43
|
back: BackHandler;
|
|
52
44
|
saveStart: SaveStartHandler;
|
|
53
45
|
saveComplete: SaveCompleteHandler;
|
|
54
|
-
testEmailClick: TestEmailClickHandler;
|
|
55
46
|
};
|
|
@@ -1,6 +1,2 @@
|
|
|
1
1
|
export declare const SERVICE_HOVER_SELECTORS: string[];
|
|
2
|
-
export declare const UI_EDITOR_SELECTOR = "ui-editor";
|
|
3
|
-
export declare const CARD_COMPOSITION_TAB_SELECTOR = "button[role=\"tab\"][aria-label=\"Card Composition\"]";
|
|
4
|
-
export declare const SETTINGS_TAB_SELECTOR = "button[role=\"tab\"][aria-label=\"Settings\"]";
|
|
5
|
-
export declare const RIBBON_SELECTOR = ".in-ribbons-wrapper";
|
|
6
2
|
export declare const ACADEMY_LINK = "https://academy.useinsider.com/docs/email-drag-drop-editor";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
declare const migrationTemplate = "\n <td\n align=\"left\"\n esd-extension-block-id=\"checkbox-block\"\n class=\"
|
|
1
|
+
declare const migrationTemplate = "\n <td \n align=\"left\" \n esd-extension-block-id=\"checkbox-block\" \n class=\"checkbox-block-v2 esd-block-checkbox esd-checkbox-block esd-extension-block es-p20\"\n >\n <table cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\" width=\"100%\">\n <tbody>\n <tr>\n <td align=\"left\" width=\"39\" style=\"vertical-align: top\">\n <input type=\"checkbox\">\n </td>\n <td align=\"left\" width=\"816\" style=\"vertical-align: top\">\n <table cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\" width=\"100%\">\n <tbody>\n <tr>\n {-{-TITLE-}-}\n </tr>\n <tr>\n {-{-DESCRIPTION-}-}\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n";
|
|
2
2
|
/**
|
|
3
3
|
* @returns The template for the default checkbox block
|
|
4
4
|
*/
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
declare const migrationTemplate = "\n <td\n align=\"left\"\n esd-extension-block-id=\"radio-button-block\"\n esd-handler-name=\"esd-extension-RadioButtonBlock\"\n class=\"
|
|
1
|
+
declare const migrationTemplate = "\n <td \n align=\"left\" \n esd-extension-block-id=\"radio-button-block\" \n esd-handler-name=\"esd-extension-RadioButtonBlock\"\n class=\"radio-button-v2 esd-block-ra esd-radio-button-block esd-extension-block es-p10t es-p10b es-p30r es-p30l\"\n >\n <table cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\" width=\"100%\">\n <tbody>\n <tr>\n <td align=\"left\" width=\"70%\" style=\"vertical-align: top;\">\n <table cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\" width=\"100%\">\n <tbody>\n <tr>\n {-{-TITLE-}-}\n </tr>\n <tr>\n {-{-DESCRIPTION-}-}\n </tr>\n </tbody>\n </table>\n </td>\n <td align=\"right\" width=\"30%\" style=\"vertical-align: middle;\">\n <table cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\" width=\"100%\">\n <tbody>\n <tr>\n <td width=\"50%\">\n <table width=\"100%\">\n <tr>\n <td width=\"24\">\n <input\n type=\"radio\"\n id=\"radioYes\"\n name=\"unsubscribe\"\n data-cke-editable=\"1\"\n style=\"margin: 0px; vertical-align: middle;>\n </td>\n {-{-YES-}-}\n </tr>\n </table>\n </td>\n <td width=\"50%\">\n <table width=\"100%\">\n <tr>\n <td width=\"24\">\n <input\n type=\"radio\"\n id=\"radioNo\"\n name=\"unsubscribe\"\n data-cke-editable=\"1\"\n style=\"margin: 0px; vertical-align: middle;\">\n </td>\n {-{-NO-}-}\n </tr>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n";
|
|
2
2
|
/**
|
|
3
3
|
* @returns The template for the default checkbox block
|
|
4
4
|
*/
|
|
@@ -34,7 +34,7 @@ interface StoreState {
|
|
|
34
34
|
filterList: FiltersResponse;
|
|
35
35
|
filterGroup: number;
|
|
36
36
|
}
|
|
37
|
-
export declare const useRecommendationExtensionStore: import("pinia").StoreDefinition<"
|
|
37
|
+
export declare const useRecommendationExtensionStore: import("pinia").StoreDefinition<"recommendationExtension", StoreState, {
|
|
38
38
|
hasFilters: (state: {
|
|
39
39
|
recommendationCampaignUrls: Record<string, string>;
|
|
40
40
|
recommendationConfigs: {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
|
|
2
2
|
import { Block, BlockCompositionType } from '@stripoinc/ui-editor-extensions';
|
|
3
3
|
export declare const UNSUBSCRIBE_BLOCK_ID = "unsubscribe-block";
|
|
4
4
|
export declare class UnsubscribeBlock extends Block {
|
|
@@ -12,8 +12,9 @@ export declare class UnsubscribeBlock extends Block {
|
|
|
12
12
|
getName(): string;
|
|
13
13
|
getDescription(): string;
|
|
14
14
|
getTemplate(): string;
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
onCreated(node: ImmutableHtmlNode): void;
|
|
16
|
+
onSelect(node: ImmutableHtmlNode): undefined;
|
|
17
|
+
onDelete(node: ImmutableHtmlNode): undefined;
|
|
17
18
|
onDestroy(): void;
|
|
18
19
|
private _setupSelectEventListener;
|
|
19
20
|
private _removeSelectEventListener;
|
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Control, ImmutableHtmlElementNode, ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
|
|
1
|
+
import { Control, ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
|
|
3
2
|
interface TextInputProps {
|
|
4
3
|
name: string;
|
|
5
4
|
placeholder?: string;
|
|
6
5
|
className?: string;
|
|
7
|
-
disabled?: boolean;
|
|
8
6
|
}
|
|
9
7
|
interface LabelProps {
|
|
10
8
|
text: string;
|
|
@@ -19,7 +17,10 @@ interface IconButtonProps {
|
|
|
19
17
|
interface SelectProps {
|
|
20
18
|
name: string;
|
|
21
19
|
placeholder: string;
|
|
22
|
-
options:
|
|
20
|
+
options: {
|
|
21
|
+
text: string;
|
|
22
|
+
value: string;
|
|
23
|
+
}[];
|
|
23
24
|
className?: string;
|
|
24
25
|
}
|
|
25
26
|
interface CounterProps {
|
|
@@ -28,15 +29,6 @@ interface CounterProps {
|
|
|
28
29
|
minValue?: number;
|
|
29
30
|
step?: number;
|
|
30
31
|
}
|
|
31
|
-
interface RadioButtonProps {
|
|
32
|
-
name: string;
|
|
33
|
-
buttons: {
|
|
34
|
-
text?: string;
|
|
35
|
-
value: string;
|
|
36
|
-
icon?: string;
|
|
37
|
-
}[];
|
|
38
|
-
id?: string;
|
|
39
|
-
}
|
|
40
32
|
interface ButtonProps {
|
|
41
33
|
name: string;
|
|
42
34
|
label: string;
|
|
@@ -48,33 +40,11 @@ interface ButtonProps {
|
|
|
48
40
|
*/
|
|
49
41
|
export declare abstract class CommonControl extends Control {
|
|
50
42
|
currentNode?: ImmutableHtmlNode;
|
|
51
|
-
protected lastBlockInstanceId: string | null;
|
|
52
43
|
abstract getId(): string;
|
|
53
44
|
abstract getTemplate(): string;
|
|
54
45
|
abstract onRender(): Promise<void> | void;
|
|
55
46
|
getContainer(): ShadowRoot;
|
|
56
47
|
onTemplateNodeUpdated(node: ImmutableHtmlNode): void;
|
|
57
|
-
onDestroy(): void;
|
|
58
|
-
/**
|
|
59
|
-
* Gets the config block element from the current node.
|
|
60
|
-
* @returns The config block element or null if not found
|
|
61
|
-
*/
|
|
62
|
-
protected getConfigBlock(): ImmutableHtmlElementNode | null;
|
|
63
|
-
/**
|
|
64
|
-
* Gets the current block instance ID from the config block.
|
|
65
|
-
* @param blockInstanceIdAttribute - The attribute name for block instance ID (default: 'data-block-instance-id')
|
|
66
|
-
* @returns The block instance ID or null if not found
|
|
67
|
-
*/
|
|
68
|
-
protected getBlockInstanceId(blockInstanceIdAttribute?: string): string | null;
|
|
69
|
-
/**
|
|
70
|
-
* Handles block instance change detection and syncing.
|
|
71
|
-
* This is a helper method for controls that need to sync attributes when switching between block instances.
|
|
72
|
-
* @param syncFunction - Function to call when block instance changes (to sync from attributes)
|
|
73
|
-
* @param updateUI - Function to call to update the UI (called both on change and when same block)
|
|
74
|
-
* @param blockInstanceIdAttribute - The attribute name for block instance ID (default: 'data-block-instance-id')
|
|
75
|
-
* @returns true if block instance changed, false otherwise
|
|
76
|
-
*/
|
|
77
|
-
protected handleBlockInstanceChange(syncFunction: (node: ImmutableHtmlNode) => void, updateUI: () => void, blockInstanceIdAttribute?: string): boolean;
|
|
78
48
|
_GuLabel({ text, name, position }: LabelProps): string;
|
|
79
49
|
_GuToggle(name: string): string;
|
|
80
50
|
_GuSelectItem({ text, value }: {
|
|
@@ -82,14 +52,8 @@ export declare abstract class CommonControl extends Control {
|
|
|
82
52
|
value: string;
|
|
83
53
|
}): string;
|
|
84
54
|
_GuSelect({ name, placeholder, options, className }: SelectProps): string;
|
|
85
|
-
_GuTextInput({ name, placeholder, className
|
|
55
|
+
_GuTextInput({ name, placeholder, className }: TextInputProps): string;
|
|
86
56
|
_GuCounter({ name, maxValue, minValue, step }: CounterProps): string;
|
|
87
|
-
_GuRadioButtonItem({ text, value, icon }: {
|
|
88
|
-
text?: string;
|
|
89
|
-
value: string;
|
|
90
|
-
icon?: string;
|
|
91
|
-
}): string;
|
|
92
|
-
_GuRadioButton({ name, buttons, id }: RadioButtonProps): string;
|
|
93
57
|
_GuButton({ name, label, id }: ButtonProps): string;
|
|
94
58
|
/**
|
|
95
59
|
*
|
|
@@ -97,8 +61,7 @@ export declare abstract class CommonControl extends Control {
|
|
|
97
61
|
* @returns It returns a button with an icon.
|
|
98
62
|
*/
|
|
99
63
|
_GuIconButton({ name, icon, className }: IconButtonProps): string;
|
|
100
|
-
|
|
101
|
-
_GuTwoColumns(children: string[], className?: string): string;
|
|
64
|
+
_GuTwoColumns(children: string[]): string;
|
|
102
65
|
/**
|
|
103
66
|
* Creates an orderable (sortable) list control
|
|
104
67
|
* @param name - The control name for value binding
|
|
@@ -1,13 +1,6 @@
|
|
|
1
|
-
import type { DynamicContent
|
|
1
|
+
import type { DynamicContent } from '@@/Types/generic';
|
|
2
2
|
export declare class ExternalMergeTagsLibrary {
|
|
3
3
|
selectedDynamicContent: DynamicContent | null;
|
|
4
4
|
dataSelectCallback: (data: DynamicContent) => void;
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Opens the merge tags library modal
|
|
8
|
-
* @param dynamicContent - Currently selected dynamic content (if any)
|
|
9
|
-
* @param onDataSelectCallback - Callback invoked when user selects a merge tag
|
|
10
|
-
* @param position - Optional position data to place the modal
|
|
11
|
-
*/
|
|
12
|
-
openMergeTagsLibrary(dynamicContent: DynamicContent, onDataSelectCallback: (data: DynamicContent) => void, position?: PositionData): void;
|
|
5
|
+
openMergeTagsLibrary(dynamicContent: DynamicContent, onDataSelectCallback: (data: DynamicContent) => void): void;
|
|
13
6
|
}
|
|
@@ -1,66 +1,16 @@
|
|
|
1
|
-
import type { MergeTag } from '@@/Types/generic';
|
|
2
1
|
import { UIElementType, UIElement, UIElementTagRegistry } from '@stripoinc/ui-editor-extensions';
|
|
3
2
|
export declare class DynamicContentTagRegistry extends UIElementTagRegistry {
|
|
4
3
|
registerUiElements(uiElementsTagsMap: Record<UIElementType, string>): void;
|
|
5
4
|
}
|
|
6
5
|
export declare class DynamicContentUiElementExtension extends UIElement {
|
|
7
6
|
private mergeTagsButton;
|
|
7
|
+
private listener;
|
|
8
8
|
private mergeTagsLibrary;
|
|
9
|
-
private
|
|
10
|
-
private lastClickedElement;
|
|
11
|
-
private lastClickedFrame;
|
|
12
|
-
private mousedownListener;
|
|
9
|
+
private selectedDynamicContent;
|
|
13
10
|
getId(): string;
|
|
14
11
|
onRender(container: HTMLElement): void;
|
|
15
12
|
onDestroy(): void;
|
|
16
13
|
_onClick(): void;
|
|
17
|
-
/**
|
|
18
|
-
* Called when Stripo detects merge tag interactions
|
|
19
|
-
* This is the key method that receives notifications about merge tag clicks
|
|
20
|
-
* @param name - Attribute name (e.g., 'mergeTag')
|
|
21
|
-
* @param value - MergeTag object with label, value, selStart, selEnd, etc.
|
|
22
|
-
*/
|
|
23
|
-
onAttributeUpdated(name: string, value: MergeTag | null | undefined): void;
|
|
24
14
|
openMergeTagLibrary(): void;
|
|
25
|
-
/**
|
|
26
|
-
* Opens the dynamic content library for external apps
|
|
27
|
-
* Dispatches event with dynamic content data and position
|
|
28
|
-
*/
|
|
29
|
-
private _openDynamicContentLibrary;
|
|
30
|
-
/**
|
|
31
|
-
* Gets the button's position on the screen
|
|
32
|
-
* Used to position the modal or anything else near the button
|
|
33
|
-
*/
|
|
34
|
-
private _getButtonPosition;
|
|
35
|
-
/**
|
|
36
|
-
* Sets up coordinate tracking for merge tag clicks in the iframe
|
|
37
|
-
* Workaround from Stripo intercepting click events - tracks mousedown events instead
|
|
38
|
-
*/
|
|
39
|
-
private _setupCoordinateTracking;
|
|
40
|
-
/**
|
|
41
|
-
* Gets the editor iframe element
|
|
42
|
-
*/
|
|
43
|
-
private _getEditorFrame;
|
|
44
|
-
/**
|
|
45
|
-
* Finds merge tag element in the element tree
|
|
46
|
-
*/
|
|
47
|
-
private _findMergeTagElement;
|
|
48
|
-
/**
|
|
49
|
-
* Gets the position of the last clicked element, calculated on-demand
|
|
50
|
-
* This ensures we always use the correct element's position even with rapid clicks
|
|
51
|
-
*/
|
|
52
|
-
private _getLastClickedPosition;
|
|
53
|
-
/**
|
|
54
|
-
* Calculates absolute position of element relative to page
|
|
55
|
-
*/
|
|
56
|
-
private _calculateAbsolutePosition;
|
|
57
|
-
/**
|
|
58
|
-
* Cleans up the coordinate tracking event listener
|
|
59
|
-
*/
|
|
60
|
-
private _cleanupCoordinateTracking;
|
|
61
|
-
/**
|
|
62
|
-
* Returns the HTML template for the "Add Dynamic Content" button
|
|
63
|
-
* This button is placed in the merge tags selector UI
|
|
64
|
-
*/
|
|
65
15
|
getTemplate(): string;
|
|
66
16
|
}
|
|
@@ -3,7 +3,7 @@ interface StoreState {
|
|
|
3
3
|
guidoConfig: GuidoConfig;
|
|
4
4
|
templateConfig?: TemplateConfig;
|
|
5
5
|
}
|
|
6
|
-
export declare const useConfigStore: import("pinia").StoreDefinition<"
|
|
6
|
+
export declare const useConfigStore: import("pinia").StoreDefinition<"config", StoreState, {
|
|
7
7
|
getVariationId: (state: {
|
|
8
8
|
guidoConfig: {
|
|
9
9
|
translationsPath: string;
|
|
@@ -78,7 +78,6 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guidoConfi
|
|
|
78
78
|
saveAsTemplate?: boolean | undefined;
|
|
79
79
|
versionHistory?: boolean | undefined;
|
|
80
80
|
testMessage?: boolean | undefined;
|
|
81
|
-
displayConditions?: boolean | undefined;
|
|
82
81
|
} | undefined;
|
|
83
82
|
blocks?: {
|
|
84
83
|
excludeDefaults?: import("@@/Types/generic").GuidoBlockType[] | undefined;
|
|
@@ -89,12 +88,12 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guidoConfi
|
|
|
89
88
|
templateConfig?: {
|
|
90
89
|
preselectedDynamicContentList?: {
|
|
91
90
|
value: string;
|
|
91
|
+
text: string;
|
|
92
92
|
fallback?: string | undefined;
|
|
93
93
|
format?: {
|
|
94
94
|
key: string;
|
|
95
95
|
value: string;
|
|
96
96
|
} | undefined;
|
|
97
|
-
text: string;
|
|
98
97
|
}[] | undefined;
|
|
99
98
|
selectedUnsubscribePages?: number[] | undefined;
|
|
100
99
|
variationId?: string | undefined;
|
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
import type { DynamicContent } from '@@/Types/generic';
|
|
2
|
-
export declare const useDynamicContentStore: import("pinia").StoreDefinition<"
|
|
2
|
+
export declare const useDynamicContentStore: import("pinia").StoreDefinition<"dynamicContent", {
|
|
3
3
|
selectedDynamicContent: DynamicContent;
|
|
4
4
|
selectedDynamicContentList: DynamicContent[];
|
|
5
5
|
}, {
|
|
6
6
|
getSelectedDynamicContentList: (state: {
|
|
7
7
|
selectedDynamicContent: {
|
|
8
8
|
value: string;
|
|
9
|
+
text: string;
|
|
9
10
|
fallback?: string | undefined;
|
|
10
11
|
format?: {
|
|
11
12
|
key: string;
|
|
12
13
|
value: string;
|
|
13
14
|
} | undefined;
|
|
14
|
-
text: string;
|
|
15
15
|
};
|
|
16
16
|
selectedDynamicContentList: {
|
|
17
17
|
value: string;
|
|
18
|
+
text: string;
|
|
18
19
|
fallback?: string | undefined;
|
|
19
20
|
format?: {
|
|
20
21
|
key: string;
|
|
21
22
|
value: string;
|
|
22
23
|
} | undefined;
|
|
23
|
-
text: string;
|
|
24
24
|
}[];
|
|
25
25
|
} & import("pinia").PiniaCustomStateProperties<{
|
|
26
26
|
selectedDynamicContent: DynamicContent;
|