@useinsider/guido 3.27.0-beta.3e42e7a → 3.27.0
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/dist/components/Guido.vue.js +1 -1
- package/dist/components/Guido.vue2.js +46 -45
- package/dist/components/organisms/onboarding/GenericOnboarding.vue.js +5 -5
- package/dist/components/organisms/onboarding/GenericOnboarding.vue2.js +15 -15
- package/dist/components/organisms/onboarding/ItemsOnboarding.vue.js +6 -6
- package/dist/components/organisms/onboarding/ItemsOnboarding.vue2.js +28 -27
- package/dist/components/organisms/onboarding/RecommendationLegacyStrategyOnboarding.vue.js +3 -3
- package/dist/components/organisms/onboarding/RecommendationLegacyStrategyOnboarding.vue2.js +42 -27
- package/dist/composables/useCustomInterfaceAppearance.js +50 -50
- package/dist/composables/useFullStoryBridge.js +10 -9
- package/dist/extensions/Blocks/Recommendation/controls/main/filters.js +14 -14
- package/dist/extensions/Blocks/Recommendation/controls/main/strategy.js +52 -40
- package/dist/extensions/Blocks/Recommendation/controls/syncInfoMessage.js +15 -15
- package/dist/extensions/Blocks/Recommendation/utils/priceFormatter.js +17 -15
- package/dist/extensions/Blocks/common-control.js +25 -25
- package/dist/extensions/DynamicContent/dynamic-content.js +15 -17
- package/dist/guido.css +1 -1
- package/dist/package.json.js +4 -4
- package/dist/src/extensions/Blocks/Recommendation/controls/main/strategy.d.ts +2 -0
- package/dist/src/extensions/Blocks/common-control.d.ts +1 -1
- package/dist/src/stores/onboarding.d.ts +1 -0
- package/dist/src/utils/editorShadowRoot.d.ts +1 -0
- package/dist/stores/onboarding.js +4 -1
- package/dist/utils/editorShadowRoot.js +8 -0
- package/package.json +10 -2
- package/dist/src/extensions/Blocks/_Boilerplate/block.d.ts +0 -11
- package/dist/src/extensions/Blocks/_Boilerplate/constants/controlIds.d.ts +0 -7
- package/dist/src/extensions/Blocks/_Boilerplate/constants/index.d.ts +0 -10
- package/dist/src/extensions/Blocks/_Boilerplate/constants/selectors.d.ts +0 -16
- package/dist/src/extensions/Blocks/_Boilerplate/control.d.ts +0 -17
- package/dist/src/extensions/Blocks/_Boilerplate/controls/blockBackground/index.d.ts +0 -15
- package/dist/src/extensions/Blocks/_Boilerplate/extension.d.ts +0 -2
- package/dist/src/extensions/Blocks/_Boilerplate/iconsRegistry.d.ts +0 -4
- package/dist/src/extensions/Blocks/_Boilerplate/settingsPanel.d.ts +0 -4
- package/dist/src/extensions/Blocks/_Boilerplate/template.d.ts +0 -6
|
@@ -2,16 +2,17 @@ var c = Object.defineProperty;
|
|
|
2
2
|
var g = (o, s, t) => s in o ? c(o, s, { enumerable: !0, configurable: !0, writable: !0, value: t }) : o[s] = t;
|
|
3
3
|
var r = (o, s, t) => g(o, typeof s != "symbol" ? s + "" : s, t);
|
|
4
4
|
import { useConfig as d } from "../../composables/useConfig.js";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
5
|
+
import { findEditorShadowRoot as m } from "../../utils/editorShadowRoot.js";
|
|
6
|
+
import { mergeTagToDynamicContent as u, dynamicContentToMergeTags as h } from "../../utils/genericUtil.js";
|
|
7
|
+
import { UIElement as T, UIElementType as a, UEAttr as y, UIElementTagRegistry as C } from "../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
|
|
8
|
+
import { ExternalMergeTagsLibrary as E } from "./dynamic-content-modal.js";
|
|
8
9
|
const l = "external-dynamic-content-ui-element", L = "button-add-dynamic-content";
|
|
9
|
-
class
|
|
10
|
+
class B extends C {
|
|
10
11
|
registerUiElements(s) {
|
|
11
12
|
s[a.MERGETAGS] = l;
|
|
12
13
|
}
|
|
13
14
|
}
|
|
14
|
-
class
|
|
15
|
+
class x extends T {
|
|
15
16
|
constructor() {
|
|
16
17
|
super(...arguments);
|
|
17
18
|
r(this, "mergeTagsButton", null);
|
|
@@ -44,7 +45,7 @@ class f extends h {
|
|
|
44
45
|
onAttributeUpdated(t, e) {
|
|
45
46
|
if (t !== "mergeTag" || !(e != null && e.value))
|
|
46
47
|
return;
|
|
47
|
-
const n =
|
|
48
|
+
const n = u(e), i = this._getLastClickedPosition();
|
|
48
49
|
this.lastClickedElement = null, this.lastClickedFrame = null, this._openDynamicContentLibrary(n, i);
|
|
49
50
|
}
|
|
50
51
|
openMergeTagLibrary() {
|
|
@@ -56,12 +57,12 @@ class f extends h {
|
|
|
56
57
|
* Dispatches event with dynamic content data and position
|
|
57
58
|
*/
|
|
58
59
|
_openDynamicContentLibrary(t, e) {
|
|
59
|
-
this.mergeTagsLibrary || (this.mergeTagsLibrary = new
|
|
60
|
+
this.mergeTagsLibrary || (this.mergeTagsLibrary = new E()), this.mergeTagsLibrary.openMergeTagsLibrary(
|
|
60
61
|
t,
|
|
61
62
|
(n) => {
|
|
62
63
|
if (n.text && n.value) {
|
|
63
64
|
const { isFeatureEnabled: i } = d();
|
|
64
|
-
this.api.triggerValueChange(
|
|
65
|
+
this.api.triggerValueChange(h([n], i("liquidSyntax"))[0]);
|
|
65
66
|
} else
|
|
66
67
|
this.api.triggerValueChange(null);
|
|
67
68
|
},
|
|
@@ -94,12 +95,9 @@ class f extends h {
|
|
|
94
95
|
* Gets the editor iframe element
|
|
95
96
|
*/
|
|
96
97
|
_getEditorFrame() {
|
|
97
|
-
var n;
|
|
98
|
-
const t =
|
|
99
|
-
|
|
100
|
-
return null;
|
|
101
|
-
const e = t.shadowRoot.querySelector("iframe");
|
|
102
|
-
return (n = e == null ? void 0 : e.contentWindow) != null && n.document ? e : null;
|
|
98
|
+
var e, n;
|
|
99
|
+
const t = (e = m()) == null ? void 0 : e.querySelector("iframe");
|
|
100
|
+
return (n = t == null ? void 0 : t.contentWindow) != null && n.document ? t : null;
|
|
103
101
|
}
|
|
104
102
|
/**
|
|
105
103
|
* Finds merge tag element in the element tree
|
|
@@ -147,7 +145,7 @@ class f extends h {
|
|
|
147
145
|
<${a.BUTTON}
|
|
148
146
|
id="guido__btn-add-dynamic-content"
|
|
149
147
|
class="btn btn-primary"
|
|
150
|
-
${
|
|
148
|
+
${y.BUTTON.name}="${L}">
|
|
151
149
|
<${a.ICON} src="plus" class="icon icon-button color-primary">
|
|
152
150
|
</${a.ICON}>
|
|
153
151
|
${this.api.translate("Add Dynamic Content")}
|
|
@@ -156,6 +154,6 @@ class f extends h {
|
|
|
156
154
|
}
|
|
157
155
|
}
|
|
158
156
|
export {
|
|
159
|
-
|
|
160
|
-
|
|
157
|
+
B as DynamicContentTagRegistry,
|
|
158
|
+
x as DynamicContentUiElementExtension
|
|
161
159
|
};
|
package/dist/guido.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@charset "UTF-8";.auth-error-modal[data-v-b4d7ae51]{position:relative;z-index:145}.gap-16[data-v-5553d071],.gap-16[data-v-0e1b0c54]{gap:16px}[data-v-9d988e4b] .in-button-v2__wrapper{line-height:0}[data-v-22226124] .in-segments-wrapper__button_selected,[data-v-22226124] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb;color:#0010ac;border-color:#0010ac}[data-v-2cb418af] .in-progress-wrapper__progress p span:last-child{display:none!important}[data-v-2cb418af] .in-progress-description-status{display:none!important}.color-vision-select__dropdown[data-v-64cb50da]{z-index:20;width:387px}.accessibility-toolbar[data-v-391019bc]{gap:16px}.accessibility-toolbar[data-v-391019bc] .in-segments-wrapper__button svg{margin-right:0}.accessibility-toolbar[data-v-391019bc] .in-segments-wrapper__button .clearfix:after{content:none}.view-options-wrapper[data-v-87033101]{position:relative;display:inline-block}.new-tag[data-v-87033101]{position:absolute;top:-8px;right:-16px;z-index:10}[data-v-87033101] .guido__view-option-selection-desktop svg,[data-v-87033101] .guido__view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-87033101] .in-segments-wrapper__button_selected,[data-v-87033101] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}[data-v-87033101] .in-tooltip-wrapper-v2__icon{cursor:pointer}.editor-toolbar[data-v-173c3a40]{gap:4px}.version-history-item[data-v-ee4b9c3f]{flex-basis:200px}.version-history[data-v-fad98586]{gap:8px}.version-history__toolbar[data-v-fad98586]{gap:4px}.view-options-wrapper[data-v-6ebabfe4]{position:relative;display:inline-block}.new-tag[data-v-6ebabfe4]{position:absolute;top:-8px;right:-16px;z-index:10}[data-v-6ebabfe4] .guido__verion-history-view-option-selection-desktop svg,[data-v-6ebabfe4] .guido__verion-history-view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-6ebabfe4] .in-segments-wrapper__button_selected,[data-v-6ebabfe4] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}[data-v-6ebabfe4] .in-tooltip-wrapper-v2__icon{cursor:pointer}.editor-actions-menu__dropdown[data-v-bdb3b37a]{z-index:20;width:222px}.editor-actions[data-v-9a028d08]{gap:16px}.editor-actions__divider[data-v-9a028d08]{width:1px;height:40px;background-color:#e1e1e1}.right-slot[data-v-77451c9a]{gap:16px}.header-wrapper[data-v-3c713746]{min-width:1000px}.guido-loading__wrapper[data-v-07c4b2d8]{height:100%;top:75px!important;bottom:0!important}.validation-error-list[data-v-e48cebe9]{gap:16px}.validation-error-row[data-v-e48cebe9]{gap:8px;padding:24px;border:1px solid #E1E1E1;border-radius:8px}.validation-error-row__icon[data-v-e48cebe9]{flex-shrink:0;font-size:24px;line-height:0}.validation-error-row__text[data-v-e48cebe9]{font-size:13px;line-height:16px;color:#292929;word-break:break-word}.guido-editor__wrapper[data-v-
|
|
1
|
+
@charset "UTF-8";.auth-error-modal[data-v-b4d7ae51]{position:relative;z-index:145}.gap-16[data-v-5553d071],.gap-16[data-v-0e1b0c54]{gap:16px}[data-v-9d988e4b] .in-button-v2__wrapper{line-height:0}[data-v-22226124] .in-segments-wrapper__button_selected,[data-v-22226124] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb;color:#0010ac;border-color:#0010ac}[data-v-2cb418af] .in-progress-wrapper__progress p span:last-child{display:none!important}[data-v-2cb418af] .in-progress-description-status{display:none!important}.color-vision-select__dropdown[data-v-64cb50da]{z-index:20;width:387px}.accessibility-toolbar[data-v-391019bc]{gap:16px}.accessibility-toolbar[data-v-391019bc] .in-segments-wrapper__button svg{margin-right:0}.accessibility-toolbar[data-v-391019bc] .in-segments-wrapper__button .clearfix:after{content:none}.view-options-wrapper[data-v-87033101]{position:relative;display:inline-block}.new-tag[data-v-87033101]{position:absolute;top:-8px;right:-16px;z-index:10}[data-v-87033101] .guido__view-option-selection-desktop svg,[data-v-87033101] .guido__view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-87033101] .in-segments-wrapper__button_selected,[data-v-87033101] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}[data-v-87033101] .in-tooltip-wrapper-v2__icon{cursor:pointer}.editor-toolbar[data-v-173c3a40]{gap:4px}.version-history-item[data-v-ee4b9c3f]{flex-basis:200px}.version-history[data-v-fad98586]{gap:8px}.version-history__toolbar[data-v-fad98586]{gap:4px}.view-options-wrapper[data-v-6ebabfe4]{position:relative;display:inline-block}.new-tag[data-v-6ebabfe4]{position:absolute;top:-8px;right:-16px;z-index:10}[data-v-6ebabfe4] .guido__verion-history-view-option-selection-desktop svg,[data-v-6ebabfe4] .guido__verion-history-view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-6ebabfe4] .in-segments-wrapper__button_selected,[data-v-6ebabfe4] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}[data-v-6ebabfe4] .in-tooltip-wrapper-v2__icon{cursor:pointer}.editor-actions-menu__dropdown[data-v-bdb3b37a]{z-index:20;width:222px}.editor-actions[data-v-9a028d08]{gap:16px}.editor-actions__divider[data-v-9a028d08]{width:1px;height:40px;background-color:#e1e1e1}.right-slot[data-v-77451c9a]{gap:16px}.header-wrapper[data-v-3c713746]{min-width:1000px}.guido-loading__wrapper[data-v-07c4b2d8]{height:100%;top:75px!important;bottom:0!important}.validation-error-list[data-v-e48cebe9]{gap:16px}.validation-error-row[data-v-e48cebe9]{gap:8px;padding:24px;border:1px solid #E1E1E1;border-radius:8px}.validation-error-row__icon[data-v-e48cebe9]{flex-shrink:0;font-size:24px;line-height:0}.validation-error-row__text[data-v-e48cebe9]{font-size:13px;line-height:16px;color:#292929;word-break:break-word}.guido-editor__wrapper[data-v-8fc59697]{--ribbon-offset: 0px;position:relative;width:100%;height:calc(100vh - 128px - var(--ribbon-offset))}.guido-editor__container[data-v-8fc59697]{width:100%;height:calc(100vh - 128px - var(--ribbon-offset))}.guido-editor__no-header[data-v-8fc59697]{height:calc(100vh - 75px - var(--ribbon-offset))}[data-v-293f1c47] .in-breadcrumb-wrapper__links{cursor:pointer}.templates-wrapper[data-v-eaf8e461]{gap:16px;grid-template-columns:repeat(3,1fr)}.templates-wrapper .template-wrapper[data-v-eaf8e461]{cursor:pointer}.templates-wrapper .template-wrapper .template-container[data-v-eaf8e461]{height:274px;padding:2px;transition:none}.templates-wrapper .template-wrapper .template-container.selected[data-v-eaf8e461]{padding:1px}.templates-wrapper .template-wrapper .template-container .thumbnail[data-v-eaf8e461]{object-fit:cover;transform:scale(1)}[data-v-b9a93c6e] .guido__verion-history-view-option-selection-desktop svg,[data-v-b9a93c6e] .guido__verion-history-view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-b9a93c6e] .in-segments-wrapper__button_selected,[data-v-b9a93c6e] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}.error-list[data-v-c3fd5d4b]{gap:16px}.desktop-browser-header[data-v-d86c5af5]{height:79px;min-height:79px}.desktop-browser-header__left[data-v-d86c5af5]{-webkit-user-drag:none;height:79px;width:378px}.desktop-browser-header__center[data-v-d86c5af5]{height:79px;background-repeat:repeat-x;background-size:auto 100%;background-position:left top}.desktop-browser-header__right[data-v-d86c5af5]{-webkit-user-drag:none;height:79px;width:112px}.desktop-preview[data-v-cf946232]{min-width:602px;height:70vh;min-height:583px;border-radius:10px}.desktop-preview iframe[data-v-cf946232]{min-height:504px}.iframe-wrapper[data-v-f255b2bb]{width:258px}.iframe-scaled[data-v-f255b2bb]{width:320px;height:124.0310077519%;transform:scale(.80625);transform-origin:top left}.cropped-text[data-v-eb3d05d7]{width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-preview-wrapper__phone[data-v-3f472f96]{width:282px}.mobile-preview-wrapper__phone img[data-v-3f472f96]{object-fit:cover;border-radius:44px}.mobile-preview-wrapper__content[data-v-3f472f96]{width:258px;height:450px;left:12px}[data-v-6bcaca8a] .vueperslides__parallax-wrapper{padding-bottom:110px!important}.guido-tab-bar-onboarding[data-v-219b4f7c]{z-index:21}[data-v-fcba7e99] .vueperslides__bullets{pointer-events:none!important}[data-v-fcba7e99] .vueperslides__parallax-wrapper{padding-bottom:110px!important}[data-v-1a34025a] .vueperslides__bullets{pointer-events:none!important}[data-v-1a34025a] .vueperslides__parallax-wrapper{height:110px!important;padding-bottom:110px!important}[data-v-8fc96a58] .vueperslides__bullets,[data-v-ec2027ff] .vueperslides__bullets,[data-v-b09e80c4] .vueperslides__bullets{pointer-events:none!important}[data-v-b09e80c4] .vueperslides__parallax-wrapper{height:110px!important;padding-bottom:110px!important}[data-v-9bdef600] .vueperslides__parallax-wrapper{padding-bottom:110px!important}.assign-strategy-drawer-content .assign-strategy-select[data-v-6ce48dfd]{width:100%;max-width:none}.assign-strategy-drawer-content .assign-strategy-select[data-v-6ce48dfd] .in-skeleton{width:100%!important}.assign-strategy-drawer-content .assign-strategy-select[data-v-6ce48dfd] .in-dropdown-box__container{width:413px}.assign-strategy-drawer .spaced-dot-sep{background-image:linear-gradient(90deg,#91949f 20%,#fff0 0);background-position:center bottom;background-repeat:repeat-x;background-size:5px 1px}.assign-strategy-drawer .spaced-dot-sep--top{background-position:center top}.assign-strategy-drawer .spaced-dot-sep--fc-n:first-child{background:none}.guido-display-condition-create__separator[data-v-929822bc]{height:1px;margin:0 0 24px;background-image:linear-gradient(to right,currentColor 1px,transparent 1px);background-size:5px 1px}.guido-display-condition-create__methods[data-v-929822bc]{gap:16px}.guido-display-condition-select-root[data-v-0d740001] .in-drawer__footer{justify-content:flex-start}.guido-display-condition-select__delete-modal[data-v-0d740001]{position:relative;z-index:145}.guido-display-condition-select__delete-modal[data-v-0d740001] .in-modal-v2-wrapper__header-title{margin-bottom:0}.guido-display-condition-select-root[data-v-0d740001] .in-drawer__content>div{display:flex;flex-direction:column;min-height:100%}.guido-display-condition-select__list[data-v-0d740001]{display:flex;flex-direction:column;gap:24px;margin:0;padding:0;list-style:none}.guido-display-condition-card__header[data-v-0d740001]{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px}.guido-display-condition-card__text[data-v-0d740001]{min-width:0}.guido-display-condition-card__name[data-v-0d740001],.guido-display-condition-card__description[data-v-0d740001]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.guido-display-condition-card__actions[data-v-0d740001]{display:flex;flex-shrink:0;align-items:center;gap:16px}.guido-display-condition-card__split[data-v-0d740001]{position:relative;display:flex;gap:1px}.guido-display-condition-card__menu[data-v-0d740001]{z-index:2;min-width:115px}.guido-display-condition-card__divider[data-v-0d740001]{width:1px;height:24px}.guido-display-condition-card__code[data-v-0d740001]{margin:1px 15px 15px;padding:8px;font-family:inherit;white-space:pre-wrap;word-break:break-word}.legacy-strategy-updated-modal[data-v-da2225a1]{position:relative;z-index:145}
|
package/dist/package.json.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
const o = "3.27.0
|
|
1
|
+
const o = "3.27.0", s = { stripo: { version: "2.83.1" } }, n = {
|
|
2
2
|
version: o,
|
|
3
|
-
guido:
|
|
3
|
+
guido: s
|
|
4
4
|
};
|
|
5
5
|
export {
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
n as default,
|
|
7
|
+
s as guido,
|
|
8
8
|
o as version
|
|
9
9
|
};
|
|
@@ -71,7 +71,7 @@ export declare abstract class CommonControl extends Control {
|
|
|
71
71
|
abstract getId(): string;
|
|
72
72
|
abstract getTemplate(): string;
|
|
73
73
|
abstract onRender(): Promise<void> | void;
|
|
74
|
-
getContainer(): ShadowRoot;
|
|
74
|
+
getContainer(): ShadowRoot | null;
|
|
75
75
|
onTemplateNodeUpdated(node: ImmutableHtmlNode): void;
|
|
76
76
|
onDestroy(): void;
|
|
77
77
|
protected forgetLastPanelNode(): void;
|
|
@@ -3120,6 +3120,7 @@ export declare const useOnboardingStore: import("pinia").StoreDefinition<"guidoO
|
|
|
3120
3120
|
start(type: OnboardingType): void;
|
|
3121
3121
|
startOnboarding(type: OnboardingType): void;
|
|
3122
3122
|
closeForSession(type: OnboardingType): void;
|
|
3123
|
+
resetOnboarding(type: OnboardingType): void;
|
|
3123
3124
|
close(type: OnboardingType): Promise<void>;
|
|
3124
3125
|
next(type: OnboardingType): void;
|
|
3125
3126
|
previous(type: OnboardingType): void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const findEditorShadowRoot: () => ShadowRoot | null;
|
|
@@ -89,7 +89,10 @@ const e = () => ({
|
|
|
89
89
|
this.shouldShowOnboarding(n) && !this.isActive(n) && this.start(n);
|
|
90
90
|
},
|
|
91
91
|
closeForSession(n) {
|
|
92
|
-
this.
|
|
92
|
+
this.resetOnboarding(n), this.closedThisSession.push(n);
|
|
93
|
+
},
|
|
94
|
+
resetOnboarding(n) {
|
|
95
|
+
this.closedThisSession = this.closedThisSession.filter((o) => o !== n), this.onboardings[n].isActive = !1, this.onboardings[n].cardIndex = 0, this.onboardings[n].config = [], this.onboardings[n].cardOffset = 0;
|
|
93
96
|
},
|
|
94
97
|
async close(n) {
|
|
95
98
|
this.closeForSession(n);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@useinsider/guido",
|
|
3
|
-
"version": "3.27.0
|
|
3
|
+
"version": "3.27.0",
|
|
4
4
|
"description": "Guido is a Vue + TypeScript wrapper for Email Plugin. Easily embed the email editor in your Vue applications.",
|
|
5
5
|
"main": "./dist/guido.umd.cjs",
|
|
6
6
|
"module": "./dist/library.js",
|
|
@@ -46,9 +46,11 @@
|
|
|
46
46
|
"test:watch": "vitest",
|
|
47
47
|
"test:visual-update": "npx playwright test --update-snapshots --reporter html",
|
|
48
48
|
"test:e2e:coverage": "E2E_COVERAGE=true playwright test",
|
|
49
|
+
"coverage:e2e:seed": "node scripts/e2e-coverage/seed-unloaded-coverage.mjs",
|
|
49
50
|
"coverage:e2e:report": "nyc report --reporter=lcov --reporter=text-summary --report-dir=coverage/e2e",
|
|
51
|
+
"coverage:e2e:verify": "node scripts/e2e-coverage/verify-lcov-inventory.mjs",
|
|
50
52
|
"test:mutation": "stryker run",
|
|
51
|
-
"test:mutation:since": "CHANGED=$(git diff --name-only --diff-filter=AMR origin/develop...HEAD -- 'src/**/*.ts' ':(glob)src/components/organisms/onboarding/**/*.vue' ':(glob)src/components/organisms/header/**/*.vue' ':(glob)src/components/organisms/unsubscribe/**/*.vue' ':(glob)src/components/organisms/save-as-template/**/*.vue' ':(glob)src/components/organisms/email-preview/**/*.vue' ':(glob)src/components/wrappers/**/*.vue' 'src/components/Guido.vue' ':(exclude)src/**/*.test.ts' ':(exclude)src/**/index.ts' ':(exclude)src/@types/**' ':(exclude)src/enums/**' ':(exclude)src/mock/**'
|
|
53
|
+
"test:mutation:since": "CHANGED=$(git diff --name-only --diff-filter=AMR origin/develop...HEAD -- 'src/**/*.ts' ':(glob)src/components/organisms/onboarding/**/*.vue' ':(glob)src/components/organisms/header/**/*.vue' ':(glob)src/components/organisms/unsubscribe/**/*.vue' ':(glob)src/components/organisms/save-as-template/**/*.vue' ':(glob)src/components/organisms/email-preview/**/*.vue' ':(glob)src/components/wrappers/**/*.vue' 'src/components/Guido.vue' ':(exclude)src/**/*.test.ts' ':(exclude)src/**/index.ts' ':(exclude)src/@types/**' ':(exclude)src/enums/**' ':(exclude)src/mock/**' | paste -sd, -); if [ -n \"$CHANGED\" ]; then stryker run --incremental --mutate \"$CHANGED\"; else echo \"No changed mutatable src files vs origin/develop\"; fi",
|
|
52
54
|
"stripo:manifest": "node scripts/stripo-runtime-manifest.mjs",
|
|
53
55
|
"prepare": "husky",
|
|
54
56
|
"preinstall": "rm -rf ./node_modules/.vite"
|
|
@@ -99,9 +101,11 @@
|
|
|
99
101
|
"globals": "16.0.0",
|
|
100
102
|
"happy-dom": "15.11.7",
|
|
101
103
|
"husky": "9.1.7",
|
|
104
|
+
"istanbul-lib-instrument": "6.0.3",
|
|
102
105
|
"msw": "2.10.3",
|
|
103
106
|
"nyc": "18.0.0",
|
|
104
107
|
"sass": "1.69.7",
|
|
108
|
+
"test-exclude": "7.0.2",
|
|
105
109
|
"typescript": "5.5.4",
|
|
106
110
|
"typescript-eslint": "8.26.0",
|
|
107
111
|
"vite-plugin-dts": "4.5.4",
|
|
@@ -124,6 +128,10 @@
|
|
|
124
128
|
"lcov",
|
|
125
129
|
"text-summary"
|
|
126
130
|
],
|
|
131
|
+
"extension": [
|
|
132
|
+
".ts",
|
|
133
|
+
".vue"
|
|
134
|
+
],
|
|
127
135
|
"all": false
|
|
128
136
|
},
|
|
129
137
|
"guido": {
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { Block, BlockCompositionType } from '@stripoinc/ui-editor-extensions';
|
|
2
|
-
export declare const BLOCK_ID = "{{your-block}}";
|
|
3
|
-
export declare class CustomBlock extends Block {
|
|
4
|
-
constructor();
|
|
5
|
-
getId(): string;
|
|
6
|
-
getIcon(): string;
|
|
7
|
-
getBlockCompositionType(): BlockCompositionType;
|
|
8
|
-
getName(): string;
|
|
9
|
-
getDescription(): string;
|
|
10
|
-
getTemplate(): string;
|
|
11
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Extension Constants
|
|
3
|
-
*
|
|
4
|
-
* This module re-exports all constants for the extension.
|
|
5
|
-
* Import from this file for cleaner imports.
|
|
6
|
-
* @example
|
|
7
|
-
* import { BlockControlId, BLOCK_ROOT_SELECTOR } from './constants';
|
|
8
|
-
*/
|
|
9
|
-
export { BlockControlId } from './controlIds';
|
|
10
|
-
export { BLOCK_ROOT_SELECTOR, CSS_CLASS_BLOCK, CSS_CLASS_BLOCK_V2, } from './selectors';
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* CSS selectors and class names used across the extension
|
|
3
|
-
*
|
|
4
|
-
* Declare them ONCE here and import everywhere (template, migrator, save validator,
|
|
5
|
-
* controls). The same literal re-typed across those files is how a rename half-lands.
|
|
6
|
-
*/
|
|
7
|
-
/** Stable contract class, if the backend selects this block by name. Renaming breaks it. */
|
|
8
|
-
export declare const CSS_CLASS_BLOCK = "{{your-block}}";
|
|
9
|
-
/** Current block class — what the template emits and the migrator upgrades legacy blocks to. */
|
|
10
|
-
export declare const CSS_CLASS_BLOCK_V2 = "{{your-block}}-v2";
|
|
11
|
-
/**
|
|
12
|
-
* Block root selector — the block `<td>` itself.
|
|
13
|
-
* Used across block-level controls so edits apply to the whole block, not the title cell.
|
|
14
|
-
* Derived from the class so a rename cannot half-land.
|
|
15
|
-
*/
|
|
16
|
-
export declare const BLOCK_ROOT_SELECTOR = ".{{your-block}}-v2";
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { Control, ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
|
|
2
|
-
export declare const CONTROL_BLOCK_ID = "ui-elements-{{your-control-block}}";
|
|
3
|
-
export declare class CustomControl extends Control {
|
|
4
|
-
private currentNode?;
|
|
5
|
-
private selectedUnsubGroup?;
|
|
6
|
-
private unsubList;
|
|
7
|
-
getId(): string;
|
|
8
|
-
_setFormValues(): void;
|
|
9
|
-
_getLabel(text: string, name?: string): string;
|
|
10
|
-
_getSelectItem(text: string, value: string): string;
|
|
11
|
-
_getSelect(): string;
|
|
12
|
-
getTemplate(): string;
|
|
13
|
-
_onSelectChange(value: string | number): void;
|
|
14
|
-
_listenToFormUpdates(): void;
|
|
15
|
-
onTemplateNodeUpdated(node: ImmutableHtmlNode): void;
|
|
16
|
-
onRender(): Promise<void>;
|
|
17
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export declare const BlockBackgroundControl: {
|
|
2
|
-
new (): {
|
|
3
|
-
getId(): string;
|
|
4
|
-
getLabels(): {
|
|
5
|
-
title: string;
|
|
6
|
-
};
|
|
7
|
-
getTargetNodes(root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode[];
|
|
8
|
-
getAdditionalModifications(root: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): import("@stripoinc/ui-editor-extensions").TemplateModifier<import("@stripoinc/ui-editor-extensions").HtmlNodeModifier, import("@stripoinc/ui-editor-extensions").CssNodeModifier> | undefined;
|
|
9
|
-
getParentControlId(): string;
|
|
10
|
-
api: import("@stripoinc/ui-editor-extensions").ControlApi;
|
|
11
|
-
getModificationDescription(): import("@stripoinc/ui-editor-extensions").ModificationDescription | undefined;
|
|
12
|
-
isVisible(_node: import("@stripoinc/ui-editor-extensions").ImmutableHtmlNode): boolean;
|
|
13
|
-
getElementLockCategory(): import("@stripoinc/ui-editor-extensions").ElementLockCategory | undefined;
|
|
14
|
-
};
|
|
15
|
-
};
|
|
@@ -1,6 +0,0 @@
|
|
|
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>{-{-TITLE-}-}</tr>\n <tr>{-{-DESCRIPTION-}-}</tr>\n </tbody>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n";
|
|
2
|
-
/**
|
|
3
|
-
* @returns The template for the default checkbox block
|
|
4
|
-
*/
|
|
5
|
-
export declare function getDefaultTemplate(): string;
|
|
6
|
-
export default migrationTemplate;
|