@useinsider/guido 2.1.0-beta.7ffef92 → 2.1.0-beta.84a7014
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 +41 -2
- package/dist/@types/config/schemas.js +1 -1
- package/dist/components/Guido.vue.js +1 -1
- package/dist/components/Guido.vue2.js +66 -66
- package/dist/components/organisms/extensions/recommendation/FilterItem.vue.js +13 -11
- package/dist/components/organisms/extensions/recommendation/FilterItem.vue2.js +24 -55
- package/dist/components/organisms/extensions/recommendation/FilterSelectionDrawer.vue.js +3 -3
- package/dist/components/organisms/extensions/recommendation/FilterSelectionDrawer.vue2.js +21 -34
- package/dist/components/organisms/extensions/recommendation/Filters.vue.js +9 -9
- package/dist/components/organisms/extensions/recommendation/Filters.vue2.js +35 -44
- package/dist/components/organisms/unsubscribe/UnsubscribePageSelection.vue.js +1 -1
- package/dist/components/organisms/unsubscribe/UnsubscribePageSelection.vue2.js +19 -19
- package/dist/composables/useSave.js +16 -12
- package/dist/composables/useStripo.js +63 -57
- package/dist/composables/useStripoEventHandler.js +27 -12
- package/dist/composables/useSyncModuleExtractor.js +45 -0
- package/dist/composables/useVersionHistoryApi.js +1 -1
- package/dist/config/i18n/en/index.js +11 -0
- package/dist/config/i18n/en/labels.json.js +7 -0
- package/dist/config/i18n/en/toasters.json.js +56 -0
- package/dist/config/i18n/en/tooltips.json.js +82 -0
- package/dist/config/i18n/index.js +7 -0
- package/dist/config/migrator/itemsBlockMigrator.js +65 -64
- package/dist/enums/unsubscribe.js +25 -21
- package/dist/extensions/Blocks/Recommendation/controls/main/index.js +39 -58
- package/dist/extensions/Blocks/Recommendation/store/recommendation.js +57 -93
- package/dist/extensions/Blocks/Recommendation/utils/filterUtil.js +8 -8
- package/dist/extensions/Blocks/Unsubscribe/block.js +29 -29
- package/dist/extensions/Blocks/Unsubscribe/control.js +12 -9
- package/dist/extensions/Blocks/Unsubscribe/elements/preview.js +13 -11
- package/dist/extensions/Blocks/Unsubscribe/styles.css.js +31 -1
- package/dist/guido.css +1 -1
- package/dist/services/stripoApi.js +55 -19
- package/dist/src/@types/config/schemas.d.ts +1 -1
- package/dist/src/@types/events.d.ts +38 -2
- package/dist/src/components/Guido.vue.d.ts +2 -2
- package/dist/src/components/organisms/extensions/recommendation/FilterItem.vue.d.ts +0 -1
- package/dist/src/components/organisms/extensions/recommendation/Filters.vue.d.ts +1 -15
- package/dist/src/components/organisms/header/EditorActions.vue.d.ts +1 -1
- package/dist/src/components/organisms/header/HeaderWrapper.vue.d.ts +1 -1
- package/dist/src/components/organisms/header/RightSlot.vue.d.ts +1 -1
- package/dist/src/composables/useGuidoActions.d.ts +1 -1
- package/dist/src/composables/useSave.d.ts +2 -2
- package/dist/src/composables/useStripo.d.ts +2 -2
- package/dist/src/composables/useSyncModuleExtractor.d.ts +4 -0
- package/dist/src/config/i18n/en/index.d.ts +1 -0
- package/dist/src/config/i18n/index.d.ts +16 -0
- package/dist/src/enums/unsubscribe.d.ts +3 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +0 -5
- package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +2 -18
- package/dist/src/extensions/Blocks/Unsubscribe/control.d.ts +1 -0
- package/dist/src/mock/api/settings.d.ts +2 -0
- package/dist/src/services/stripoApi.d.ts +5 -0
- package/dist/src/stores/editor.d.ts +23 -0
- package/dist/src/utils/templatePreparation.d.ts +1 -1
- package/dist/static/styles/components/notification.css.js +18 -0
- package/dist/static/styles/components/tools.css.js +6 -2
- package/dist/static/styles/variables.css.js +2 -0
- package/dist/stores/editor.js +2 -1
- package/dist/stores/unsubscribe.js +37 -34
- package/dist/utils/templatePreparation.js +1 -1
- package/package.json +1 -1
- package/dist/extensions/Blocks/Recommendation/validation/filterSchema.js +0 -29
- package/dist/src/extensions/Blocks/Recommendation/validation/filterSchema.d.ts +0 -15
|
@@ -1,47 +1,83 @@
|
|
|
1
|
-
import { useHttp as
|
|
2
|
-
import { useToaster as
|
|
3
|
-
import { MAX_DEFAULT_TEMPLATE_ID as
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
const
|
|
7
|
-
const { get:
|
|
1
|
+
import { useHttp as d } from "../composables/useHttp.js";
|
|
2
|
+
import { useToaster as m } from "../composables/useToaster.js";
|
|
3
|
+
import { MAX_DEFAULT_TEMPLATE_ID as y } from "../enums/defaults.js";
|
|
4
|
+
import g from "../static/templates/empty/index.html.js";
|
|
5
|
+
import f from "../static/templates/empty/style.css.js";
|
|
6
|
+
const E = () => {
|
|
7
|
+
const { get: s, post: c } = d(), { handleError: r } = m();
|
|
8
8
|
return {
|
|
9
9
|
getToken: async () => {
|
|
10
10
|
try {
|
|
11
|
-
const t = Number(localStorage.getItem("ins-guido-test-instance")), { data: e } = await
|
|
11
|
+
const t = Number(localStorage.getItem("ins-guido-test-instance")), { data: e } = await s(`/stripo/get-user-token?test=${t}`);
|
|
12
12
|
return e.body.token;
|
|
13
13
|
} catch (t) {
|
|
14
|
-
return
|
|
14
|
+
return r(t, "Failed to fetch token"), "";
|
|
15
15
|
}
|
|
16
16
|
},
|
|
17
17
|
getCustomFonts: async () => {
|
|
18
18
|
try {
|
|
19
|
-
const { data: t = [] } = await
|
|
19
|
+
const { data: t = [] } = await s("/stripo/get-partner-custom-fonts");
|
|
20
20
|
return t.map((e) => ({
|
|
21
21
|
...e,
|
|
22
22
|
active: !0
|
|
23
23
|
}));
|
|
24
24
|
} catch (t) {
|
|
25
|
-
return
|
|
25
|
+
return r(t, "Failed to fetch custom fonts"), [];
|
|
26
26
|
}
|
|
27
27
|
},
|
|
28
28
|
getDefaultTemplate: async () => {
|
|
29
29
|
const t = {
|
|
30
|
-
html:
|
|
31
|
-
css:
|
|
30
|
+
html: g,
|
|
31
|
+
css: f
|
|
32
32
|
};
|
|
33
33
|
try {
|
|
34
|
-
const e = new URLSearchParams(window.location.search),
|
|
35
|
-
if (!
|
|
34
|
+
const e = new URLSearchParams(window.location.search), u = e.get("default-template"), l = e.get("master"), a = u ? parseInt(u) : 0, i = a >= 1 && a <= y ? a : 0;
|
|
35
|
+
if (!i && !l)
|
|
36
36
|
return t;
|
|
37
|
-
const
|
|
38
|
-
return !
|
|
37
|
+
const p = `/stripo/default-template/${i}`, { data: n } = await s(p), o = typeof n == "string" ? JSON.parse(n) : n;
|
|
38
|
+
return !o || typeof o != "object" || !("html" in o) || !("css" in o) ? t : o;
|
|
39
39
|
} catch (e) {
|
|
40
|
-
return
|
|
40
|
+
return r(e, "Failed to fetch default template"), t;
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
getSyncModulesStatus: async () => {
|
|
44
|
+
try {
|
|
45
|
+
const { data: t } = await s("/newsletter/settings/synchronisation-in-modules-status");
|
|
46
|
+
return t.status;
|
|
47
|
+
} catch (t) {
|
|
48
|
+
return r(t, "Failed to fetch sync modules status"), !1;
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
updateSyncModule: async (t) => {
|
|
52
|
+
try {
|
|
53
|
+
return await c(`/stripo/stripo-modules/${t.moduleId}/update`), !0;
|
|
54
|
+
} catch (e) {
|
|
55
|
+
return r(e, "Failed to update sync module"), !1;
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
getSyncModule: async (t) => {
|
|
59
|
+
try {
|
|
60
|
+
const { data: e } = await s(`/stripo/stripo-modules/${t}/get`);
|
|
61
|
+
return e;
|
|
62
|
+
} catch (e) {
|
|
63
|
+
return r(e, "Failed to get sync module"), {
|
|
64
|
+
id: 0,
|
|
65
|
+
stripoId: 0,
|
|
66
|
+
unsubscriptionPreferencePages: []
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
setSyncModuleUnsubscriptionPages: async (t) => {
|
|
71
|
+
if (t.length === 0)
|
|
72
|
+
return !0;
|
|
73
|
+
try {
|
|
74
|
+
return await c("/stripo/stripo-modules/set-unsubscription-preference-pages", t), !0;
|
|
75
|
+
} catch (e) {
|
|
76
|
+
return r(e, "Failed to set unsubscription preference pages"), !1;
|
|
41
77
|
}
|
|
42
78
|
}
|
|
43
79
|
};
|
|
44
80
|
};
|
|
45
81
|
export {
|
|
46
|
-
|
|
82
|
+
E as useStripoApi
|
|
47
83
|
};
|
|
@@ -12,7 +12,7 @@ import * as v from 'valibot';
|
|
|
12
12
|
* @param data - The template details to validate
|
|
13
13
|
* @returns Promise<boolean> - true if valid, false to cancel save
|
|
14
14
|
*/
|
|
15
|
-
export type ExternalValidationHandler = (data: SavedTemplateDetails) => Promise<boolean>;
|
|
15
|
+
export type ExternalValidationHandler = (data: Omit<SavedTemplateDetails, 'metadata'>) => Promise<boolean>;
|
|
16
16
|
/**
|
|
17
17
|
* Message type constants for email templates
|
|
18
18
|
*/
|
|
@@ -1,6 +1,42 @@
|
|
|
1
|
-
export type StripoEventType = 'save' | 'export' | 'close' | 'autosave' | 'publish' | 'export:requested' | 'export:ready';
|
|
1
|
+
export type StripoEventType = 'save' | 'export' | 'close' | 'autosave' | 'publish' | 'export:requested' | 'export:ready' | 'module_updated' | 'module_dropped';
|
|
2
|
+
export interface ModuleUpdatedParams {
|
|
3
|
+
target: string;
|
|
4
|
+
blockType: string;
|
|
5
|
+
moduleId: number;
|
|
6
|
+
moduleCategory: string | null;
|
|
7
|
+
syncModule: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface ModuleDroppedParams {
|
|
10
|
+
target: string;
|
|
11
|
+
blockType: string;
|
|
12
|
+
moduleId: number;
|
|
13
|
+
syncModule: boolean;
|
|
14
|
+
}
|
|
15
|
+
export interface SyncModuleUnsubscribePayload {
|
|
16
|
+
stripoModuleId: string;
|
|
17
|
+
unsubscriptionPreferencePages: number[];
|
|
18
|
+
type: string;
|
|
19
|
+
}
|
|
20
|
+
export interface SyncModuleExtractResult {
|
|
21
|
+
unsubscribePayload: SyncModuleUnsubscribePayload[];
|
|
22
|
+
stripoModules: number[];
|
|
23
|
+
}
|
|
24
|
+
export interface SyncModuleResponse {
|
|
25
|
+
id: number;
|
|
26
|
+
stripoId: number;
|
|
27
|
+
unsubscriptionPreferencePages: UnsubscriptionPreferencePage[];
|
|
28
|
+
}
|
|
29
|
+
export interface UnsubscriptionPreferencePage {
|
|
30
|
+
id: number;
|
|
31
|
+
name: string;
|
|
32
|
+
type: number;
|
|
33
|
+
status: number;
|
|
34
|
+
isVisible: number;
|
|
35
|
+
thumbnail: string;
|
|
36
|
+
createdAt: string;
|
|
37
|
+
}
|
|
2
38
|
export interface EventHandler {
|
|
3
|
-
(params: Record<string,
|
|
39
|
+
(params: Record<string, unknown>): void | Promise<void>;
|
|
4
40
|
}
|
|
5
41
|
export interface EventHandlers {
|
|
6
42
|
[eventType: string]: EventHandler;
|
|
@@ -11,7 +11,7 @@ declare const _default: import("vue").DefineComponent<__VLS_TypePropsToOption<__
|
|
|
11
11
|
close: () => void;
|
|
12
12
|
};
|
|
13
13
|
hasChanges: import("vue").ComputedRef<boolean>;
|
|
14
|
-
saveSilent: () => Promise<SavedTemplateDetails | undefined> | undefined;
|
|
14
|
+
saveSilent: () => Promise<Omit<SavedTemplateDetails, "metadata"> | undefined> | undefined;
|
|
15
15
|
}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {
|
|
16
16
|
"dynamic-content:open": (detail: {
|
|
17
17
|
text: string;
|
|
@@ -24,7 +24,7 @@ declare const _default: import("vue").DefineComponent<__VLS_TypePropsToOption<__
|
|
|
24
24
|
} | null, position?: PositionData | undefined) => void;
|
|
25
25
|
back: () => void;
|
|
26
26
|
"save:start": () => void;
|
|
27
|
-
"save:complete": (data:
|
|
27
|
+
"save:complete": (data: SavedTemplateDetails) => void;
|
|
28
28
|
"on-change": (hasChanges: boolean) => void;
|
|
29
29
|
ready: () => void;
|
|
30
30
|
"onboarding:finished": () => void;
|
|
@@ -3,7 +3,6 @@ type __VLS_Props = {
|
|
|
3
3
|
filter: Filter;
|
|
4
4
|
index: number;
|
|
5
5
|
hasLogicAdapter?: boolean;
|
|
6
|
-
submitted: boolean;
|
|
7
6
|
};
|
|
8
7
|
declare const _default: import("vue").DefineComponent<__VLS_TypePropsToOption<__VLS_Props>, {}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {
|
|
9
8
|
"delete-filter": (filter: Filter) => void;
|
|
@@ -1,16 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
submitted: boolean;
|
|
3
|
-
};
|
|
4
|
-
declare const _default: import("vue").DefineComponent<__VLS_TypePropsToOption<__VLS_Props>, {
|
|
5
|
-
switchToGroup: (groupId: number) => void;
|
|
6
|
-
}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToOption<__VLS_Props>>>, {}>;
|
|
1
|
+
declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
|
|
7
2
|
export default _default;
|
|
8
|
-
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
9
|
-
type __VLS_TypePropsToOption<T> = {
|
|
10
|
-
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
11
|
-
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
12
|
-
} : {
|
|
13
|
-
type: import('vue').PropType<T[K]>;
|
|
14
|
-
required: true;
|
|
15
|
-
};
|
|
16
|
-
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
declare const _default: import("vue").DefineComponent<{}, {
|
|
2
|
-
handleSave: (isSilent: boolean) => Promise<import("../../../@types/stripo").SavedTemplateDetails | undefined>;
|
|
2
|
+
handleSave: (isSilent: boolean) => Promise<Omit<import("../../../@types/stripo").SavedTemplateDetails, "metadata"> | undefined>;
|
|
3
3
|
}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
|
|
4
4
|
export default _default;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
declare const _default: import("vue").DefineComponent<{}, {
|
|
2
|
-
handleSave: (isSilent: boolean) => Promise<import("../../../@types/stripo.js").SavedTemplateDetails | undefined> | undefined;
|
|
2
|
+
handleSave: (isSilent: boolean) => Promise<Omit<import("../../../@types/stripo.js").SavedTemplateDetails, "metadata"> | undefined> | undefined;
|
|
3
3
|
}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
|
|
4
4
|
export default _default;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
declare const _default: import("vue").DefineComponent<{}, {
|
|
2
|
-
handleSave: (isSilent: boolean) => Promise<import("../../../@types/stripo.js").SavedTemplateDetails | undefined> | undefined;
|
|
2
|
+
handleSave: (isSilent: boolean) => Promise<Omit<import("../../../@types/stripo.js").SavedTemplateDetails, "metadata"> | undefined> | undefined;
|
|
3
3
|
}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
|
|
4
4
|
export default _default;
|
|
@@ -2,7 +2,7 @@ import type { SavedTemplateDetails } from '@@/Types/stripo';
|
|
|
2
2
|
import type { InjectionKey } from 'vue';
|
|
3
3
|
export type BackHandler = () => void;
|
|
4
4
|
export type SaveStartHandler = () => void;
|
|
5
|
-
export type SaveCompleteHandler = (template: Omit<SavedTemplateDetails, '
|
|
5
|
+
export type SaveCompleteHandler = (template: Omit<SavedTemplateDetails, 'metadata'>) => void;
|
|
6
6
|
export type TestEmailClickHandler = () => void;
|
|
7
7
|
export declare const BACK_KEY: InjectionKey<BackHandler>;
|
|
8
8
|
export declare const SAVE_START_KEY: InjectionKey<SaveStartHandler>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SavedTemplateDetails } from '@@/Types/stripo';
|
|
1
|
+
import type { SavedTemplateDetails } from '@@/Types/stripo';
|
|
2
2
|
export declare const useSave: () => {
|
|
3
|
-
save: (isSilent?: boolean) => Promise<SavedTemplateDetails | undefined>;
|
|
3
|
+
save: (isSilent?: boolean) => Promise<Omit<SavedTemplateDetails, "metadata"> | undefined>;
|
|
4
4
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Metadata, Template } from '@@/Types/stripo';
|
|
2
|
-
export declare const useStripo: (metadata: Metadata) => {
|
|
1
|
+
import type { Metadata, Options, Template } from '@@/Types/stripo';
|
|
2
|
+
export declare const useStripo: (metadata: Metadata, options: Options) => {
|
|
3
3
|
initPlugin: (template: Template) => Promise<void>;
|
|
4
4
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const en: Record<string, string>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stripo Editor Translation Overrides
|
|
3
|
+
*
|
|
4
|
+
* Custom translations for Stripo editor UI elements.
|
|
5
|
+
* Each language has its own folder with categorized JSON files.
|
|
6
|
+
*
|
|
7
|
+
* Reference: https://email-static.useinsider.com/guido/{version}/assets/i18n/en.json
|
|
8
|
+
* @module config/i18n
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Combined locale patch for Stripo editor initialization.
|
|
12
|
+
* Maps language codes to their translation overrides.
|
|
13
|
+
*/
|
|
14
|
+
export declare const localePatch: {
|
|
15
|
+
en: Record<string, string>;
|
|
16
|
+
};
|
|
@@ -25,6 +25,9 @@ export declare const PAGE_TYPES: {
|
|
|
25
25
|
SUBSCRIPTION_PREFERENCE_CONFIRMATION: number;
|
|
26
26
|
RESUBSCRIBE: number;
|
|
27
27
|
};
|
|
28
|
+
export declare const UNSUBSCRIBE_SYNC_MODULE_TYPES: {
|
|
29
|
+
[x: number]: string;
|
|
30
|
+
};
|
|
28
31
|
export declare const TYPE_COLLECTIONS: {
|
|
29
32
|
[x: number]: number[];
|
|
30
33
|
};
|
|
@@ -76,9 +76,4 @@ export declare class RecommendationBlockControl extends CommonControl {
|
|
|
76
76
|
* (e.g., fetchRecommendationCreateData setting preferred currency).
|
|
77
77
|
*/
|
|
78
78
|
_listenStateUpdates(): void;
|
|
79
|
-
/**
|
|
80
|
-
* Persists the current filter state from Pinia store to the Stripo node config.
|
|
81
|
-
* This ensures filters survive template save/reload cycles.
|
|
82
|
-
*/
|
|
83
|
-
private _persistFiltersToNodeConfig;
|
|
84
79
|
}
|
|
@@ -31,8 +31,6 @@ interface PerBlockState {
|
|
|
31
31
|
filterGroup: number;
|
|
32
32
|
/** Whether initial API data (filters, algorithms, products) has been fetched for this block */
|
|
33
33
|
isInitialized: boolean;
|
|
34
|
-
/** Snapshot of filters taken when the drawer opens, used to revert on cancel */
|
|
35
|
-
filterSnapshot: Filter[] | null;
|
|
36
34
|
}
|
|
37
35
|
interface StoreState {
|
|
38
36
|
recommendationCampaignUrls: Record<string, string>;
|
|
@@ -127,9 +125,7 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
|
|
|
127
125
|
configVersion: number;
|
|
128
126
|
} & import("pinia").PiniaCustomStateProperties<StoreState>): number;
|
|
129
127
|
hasFilters(): boolean;
|
|
130
|
-
hasValidFilters(): boolean;
|
|
131
128
|
getFilterGroupCount(): number;
|
|
132
|
-
getUniqueFilterGroups(): number[];
|
|
133
129
|
getActivePredictiveAlgorithms: (state: {
|
|
134
130
|
recommendationCampaignUrls: Record<string, string>;
|
|
135
131
|
activePredictiveAlgorithms: number[];
|
|
@@ -207,31 +203,19 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
|
|
|
207
203
|
patchCurrentBlockConfig(updates: Partial<PerBlockConfigs>, options?: {
|
|
208
204
|
triggerRefetch?: boolean;
|
|
209
205
|
}): void;
|
|
210
|
-
/**
|
|
211
|
-
* Creates a filter with the first available attribute and operator pre-selected.
|
|
212
|
-
*/
|
|
213
|
-
createDefaultFilter(filterGroup: number, filterNumber: number): Filter;
|
|
214
206
|
/**
|
|
215
207
|
* Opens the filter selection drawer for the current block.
|
|
216
|
-
*
|
|
217
|
-
* If no filters exist, initializes with a default filter
|
|
208
|
+
* If no filters exist, initializes with a default empty filter
|
|
218
209
|
* so the user has a starting point for input.
|
|
219
210
|
*/
|
|
220
211
|
openFilterDrawer(): void;
|
|
221
212
|
/**
|
|
222
|
-
* Closes the filter selection drawer for the current block
|
|
223
|
-
* Called after successful apply — discards the snapshot.
|
|
213
|
+
* Closes the filter selection drawer for the current block
|
|
224
214
|
*/
|
|
225
215
|
closeFilterDrawer(): void;
|
|
226
|
-
/**
|
|
227
|
-
* Cancels the filter selection drawer and reverts filters
|
|
228
|
-
* to the snapshot taken when the drawer was opened.
|
|
229
|
-
*/
|
|
230
|
-
cancelFilterDrawer(): void;
|
|
231
216
|
fetchRecommendationCreateData(): Promise<void>;
|
|
232
217
|
fetchRecommendationFilters(): Promise<void>;
|
|
233
218
|
addFilterGroup(filterGroup: number): void;
|
|
234
|
-
deleteFilterGroup(groupId: number): void;
|
|
235
219
|
updateFilter(updatedFilter: Filter): void;
|
|
236
220
|
deleteFilter(filter: Filter): void;
|
|
237
221
|
addFilter(filter: Filter): void;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ModuleUpdatedParams, SyncModuleResponse, SyncModuleUnsubscribePayload } from '@@/Types/events';
|
|
1
2
|
import type { CustomFont, Template } from '@@/Types/stripo';
|
|
2
3
|
export declare const useStripoApi: () => {
|
|
3
4
|
getToken: () => Promise<string>;
|
|
@@ -5,4 +6,8 @@ export declare const useStripoApi: () => {
|
|
|
5
6
|
active: boolean;
|
|
6
7
|
})[]>;
|
|
7
8
|
getDefaultTemplate: () => Promise<Template>;
|
|
9
|
+
getSyncModulesStatus: () => Promise<boolean>;
|
|
10
|
+
updateSyncModule: (params: ModuleUpdatedParams) => Promise<boolean>;
|
|
11
|
+
getSyncModule: (moduleId: number) => Promise<SyncModuleResponse>;
|
|
12
|
+
setSyncModuleUnsubscriptionPages: (payload: SyncModuleUnsubscribePayload[]) => Promise<boolean>;
|
|
8
13
|
};
|
|
@@ -8,6 +8,7 @@ export declare const useEditorStore: import("pinia").StoreDefinition<"guidoEdito
|
|
|
8
8
|
hasChanges: boolean;
|
|
9
9
|
isStripoInitialized: boolean;
|
|
10
10
|
templateId: string;
|
|
11
|
+
syncModulesEnabled: boolean;
|
|
11
12
|
}, {
|
|
12
13
|
isEditorToolbarVisible: (state: {
|
|
13
14
|
loadingStatus: boolean;
|
|
@@ -19,6 +20,7 @@ export declare const useEditorStore: import("pinia").StoreDefinition<"guidoEdito
|
|
|
19
20
|
hasChanges: boolean;
|
|
20
21
|
isStripoInitialized: boolean;
|
|
21
22
|
templateId: string;
|
|
23
|
+
syncModulesEnabled: boolean;
|
|
22
24
|
} & import("pinia").PiniaCustomStateProperties<{
|
|
23
25
|
loadingStatus: boolean;
|
|
24
26
|
isCodeEditorOpen: boolean;
|
|
@@ -29,6 +31,7 @@ export declare const useEditorStore: import("pinia").StoreDefinition<"guidoEdito
|
|
|
29
31
|
hasChanges: boolean;
|
|
30
32
|
isStripoInitialized: boolean;
|
|
31
33
|
templateId: string;
|
|
34
|
+
syncModulesEnabled: boolean;
|
|
32
35
|
}>) => boolean;
|
|
33
36
|
isUndoButtonDisabled: (state: {
|
|
34
37
|
loadingStatus: boolean;
|
|
@@ -40,6 +43,7 @@ export declare const useEditorStore: import("pinia").StoreDefinition<"guidoEdito
|
|
|
40
43
|
hasChanges: boolean;
|
|
41
44
|
isStripoInitialized: boolean;
|
|
42
45
|
templateId: string;
|
|
46
|
+
syncModulesEnabled: boolean;
|
|
43
47
|
} & import("pinia").PiniaCustomStateProperties<{
|
|
44
48
|
loadingStatus: boolean;
|
|
45
49
|
isCodeEditorOpen: boolean;
|
|
@@ -50,6 +54,7 @@ export declare const useEditorStore: import("pinia").StoreDefinition<"guidoEdito
|
|
|
50
54
|
hasChanges: boolean;
|
|
51
55
|
isStripoInitialized: boolean;
|
|
52
56
|
templateId: string;
|
|
57
|
+
syncModulesEnabled: boolean;
|
|
53
58
|
}>) => boolean;
|
|
54
59
|
isRedoButtonDisabled: (state: {
|
|
55
60
|
loadingStatus: boolean;
|
|
@@ -61,6 +66,7 @@ export declare const useEditorStore: import("pinia").StoreDefinition<"guidoEdito
|
|
|
61
66
|
hasChanges: boolean;
|
|
62
67
|
isStripoInitialized: boolean;
|
|
63
68
|
templateId: string;
|
|
69
|
+
syncModulesEnabled: boolean;
|
|
64
70
|
} & import("pinia").PiniaCustomStateProperties<{
|
|
65
71
|
loadingStatus: boolean;
|
|
66
72
|
isCodeEditorOpen: boolean;
|
|
@@ -71,6 +77,7 @@ export declare const useEditorStore: import("pinia").StoreDefinition<"guidoEdito
|
|
|
71
77
|
hasChanges: boolean;
|
|
72
78
|
isStripoInitialized: boolean;
|
|
73
79
|
templateId: string;
|
|
80
|
+
syncModulesEnabled: boolean;
|
|
74
81
|
}>) => boolean;
|
|
75
82
|
isCodeEditorButtonDisabled: (state: {
|
|
76
83
|
loadingStatus: boolean;
|
|
@@ -82,6 +89,7 @@ export declare const useEditorStore: import("pinia").StoreDefinition<"guidoEdito
|
|
|
82
89
|
hasChanges: boolean;
|
|
83
90
|
isStripoInitialized: boolean;
|
|
84
91
|
templateId: string;
|
|
92
|
+
syncModulesEnabled: boolean;
|
|
85
93
|
} & import("pinia").PiniaCustomStateProperties<{
|
|
86
94
|
loadingStatus: boolean;
|
|
87
95
|
isCodeEditorOpen: boolean;
|
|
@@ -92,6 +100,7 @@ export declare const useEditorStore: import("pinia").StoreDefinition<"guidoEdito
|
|
|
92
100
|
hasChanges: boolean;
|
|
93
101
|
isStripoInitialized: boolean;
|
|
94
102
|
templateId: string;
|
|
103
|
+
syncModulesEnabled: boolean;
|
|
95
104
|
}>) => boolean;
|
|
96
105
|
isPreviewButtonDisabled: (state: {
|
|
97
106
|
loadingStatus: boolean;
|
|
@@ -103,6 +112,7 @@ export declare const useEditorStore: import("pinia").StoreDefinition<"guidoEdito
|
|
|
103
112
|
hasChanges: boolean;
|
|
104
113
|
isStripoInitialized: boolean;
|
|
105
114
|
templateId: string;
|
|
115
|
+
syncModulesEnabled: boolean;
|
|
106
116
|
} & import("pinia").PiniaCustomStateProperties<{
|
|
107
117
|
loadingStatus: boolean;
|
|
108
118
|
isCodeEditorOpen: boolean;
|
|
@@ -113,6 +123,7 @@ export declare const useEditorStore: import("pinia").StoreDefinition<"guidoEdito
|
|
|
113
123
|
hasChanges: boolean;
|
|
114
124
|
isStripoInitialized: boolean;
|
|
115
125
|
templateId: string;
|
|
126
|
+
syncModulesEnabled: boolean;
|
|
116
127
|
}>) => boolean;
|
|
117
128
|
isViewOptionsDisabled: (state: {
|
|
118
129
|
loadingStatus: boolean;
|
|
@@ -124,6 +135,7 @@ export declare const useEditorStore: import("pinia").StoreDefinition<"guidoEdito
|
|
|
124
135
|
hasChanges: boolean;
|
|
125
136
|
isStripoInitialized: boolean;
|
|
126
137
|
templateId: string;
|
|
138
|
+
syncModulesEnabled: boolean;
|
|
127
139
|
} & import("pinia").PiniaCustomStateProperties<{
|
|
128
140
|
loadingStatus: boolean;
|
|
129
141
|
isCodeEditorOpen: boolean;
|
|
@@ -134,6 +146,7 @@ export declare const useEditorStore: import("pinia").StoreDefinition<"guidoEdito
|
|
|
134
146
|
hasChanges: boolean;
|
|
135
147
|
isStripoInitialized: boolean;
|
|
136
148
|
templateId: string;
|
|
149
|
+
syncModulesEnabled: boolean;
|
|
137
150
|
}>) => boolean;
|
|
138
151
|
isVersionHistoryButtonDisabled: (state: {
|
|
139
152
|
loadingStatus: boolean;
|
|
@@ -145,6 +158,7 @@ export declare const useEditorStore: import("pinia").StoreDefinition<"guidoEdito
|
|
|
145
158
|
hasChanges: boolean;
|
|
146
159
|
isStripoInitialized: boolean;
|
|
147
160
|
templateId: string;
|
|
161
|
+
syncModulesEnabled: boolean;
|
|
148
162
|
} & import("pinia").PiniaCustomStateProperties<{
|
|
149
163
|
loadingStatus: boolean;
|
|
150
164
|
isCodeEditorOpen: boolean;
|
|
@@ -155,6 +169,7 @@ export declare const useEditorStore: import("pinia").StoreDefinition<"guidoEdito
|
|
|
155
169
|
hasChanges: boolean;
|
|
156
170
|
isStripoInitialized: boolean;
|
|
157
171
|
templateId: string;
|
|
172
|
+
syncModulesEnabled: boolean;
|
|
158
173
|
}>) => boolean;
|
|
159
174
|
isExportButtonDisabled: (state: {
|
|
160
175
|
loadingStatus: boolean;
|
|
@@ -166,6 +181,7 @@ export declare const useEditorStore: import("pinia").StoreDefinition<"guidoEdito
|
|
|
166
181
|
hasChanges: boolean;
|
|
167
182
|
isStripoInitialized: boolean;
|
|
168
183
|
templateId: string;
|
|
184
|
+
syncModulesEnabled: boolean;
|
|
169
185
|
} & import("pinia").PiniaCustomStateProperties<{
|
|
170
186
|
loadingStatus: boolean;
|
|
171
187
|
isCodeEditorOpen: boolean;
|
|
@@ -176,6 +192,7 @@ export declare const useEditorStore: import("pinia").StoreDefinition<"guidoEdito
|
|
|
176
192
|
hasChanges: boolean;
|
|
177
193
|
isStripoInitialized: boolean;
|
|
178
194
|
templateId: string;
|
|
195
|
+
syncModulesEnabled: boolean;
|
|
179
196
|
}>) => boolean;
|
|
180
197
|
isSaveAsButtonDisabled: (state: {
|
|
181
198
|
loadingStatus: boolean;
|
|
@@ -187,6 +204,7 @@ export declare const useEditorStore: import("pinia").StoreDefinition<"guidoEdito
|
|
|
187
204
|
hasChanges: boolean;
|
|
188
205
|
isStripoInitialized: boolean;
|
|
189
206
|
templateId: string;
|
|
207
|
+
syncModulesEnabled: boolean;
|
|
190
208
|
} & import("pinia").PiniaCustomStateProperties<{
|
|
191
209
|
loadingStatus: boolean;
|
|
192
210
|
isCodeEditorOpen: boolean;
|
|
@@ -197,6 +215,7 @@ export declare const useEditorStore: import("pinia").StoreDefinition<"guidoEdito
|
|
|
197
215
|
hasChanges: boolean;
|
|
198
216
|
isStripoInitialized: boolean;
|
|
199
217
|
templateId: string;
|
|
218
|
+
syncModulesEnabled: boolean;
|
|
200
219
|
}>) => boolean;
|
|
201
220
|
isTestButtonDisabled: (state: {
|
|
202
221
|
loadingStatus: boolean;
|
|
@@ -208,6 +227,7 @@ export declare const useEditorStore: import("pinia").StoreDefinition<"guidoEdito
|
|
|
208
227
|
hasChanges: boolean;
|
|
209
228
|
isStripoInitialized: boolean;
|
|
210
229
|
templateId: string;
|
|
230
|
+
syncModulesEnabled: boolean;
|
|
211
231
|
} & import("pinia").PiniaCustomStateProperties<{
|
|
212
232
|
loadingStatus: boolean;
|
|
213
233
|
isCodeEditorOpen: boolean;
|
|
@@ -218,6 +238,7 @@ export declare const useEditorStore: import("pinia").StoreDefinition<"guidoEdito
|
|
|
218
238
|
hasChanges: boolean;
|
|
219
239
|
isStripoInitialized: boolean;
|
|
220
240
|
templateId: string;
|
|
241
|
+
syncModulesEnabled: boolean;
|
|
221
242
|
}>) => boolean;
|
|
222
243
|
isSaveButtonDisabled: (state: {
|
|
223
244
|
loadingStatus: boolean;
|
|
@@ -229,6 +250,7 @@ export declare const useEditorStore: import("pinia").StoreDefinition<"guidoEdito
|
|
|
229
250
|
hasChanges: boolean;
|
|
230
251
|
isStripoInitialized: boolean;
|
|
231
252
|
templateId: string;
|
|
253
|
+
syncModulesEnabled: boolean;
|
|
232
254
|
} & import("pinia").PiniaCustomStateProperties<{
|
|
233
255
|
loadingStatus: boolean;
|
|
234
256
|
isCodeEditorOpen: boolean;
|
|
@@ -239,5 +261,6 @@ export declare const useEditorStore: import("pinia").StoreDefinition<"guidoEdito
|
|
|
239
261
|
hasChanges: boolean;
|
|
240
262
|
isStripoInitialized: boolean;
|
|
241
263
|
templateId: string;
|
|
264
|
+
syncModulesEnabled: boolean;
|
|
242
265
|
}>) => boolean;
|
|
243
266
|
}, {}>;
|
|
@@ -17,6 +17,24 @@ ue-notifications-container .alert-message-wrapper {
|
|
|
17
17
|
padding: 16px 24px;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
+
ue-notifications-container .alert-message-wrapper.info,
|
|
21
|
+
ue-notifications-container .alert-message-wrapper.loader {
|
|
22
|
+
background-color: var(--guido-color-background-toaster-info) !important;
|
|
23
|
+
color: inherit;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.alert-message-wrapper .alert-message-main {
|
|
27
|
+
align-items: center;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
ue-notifications-container ue-caption .caption {
|
|
31
|
+
color: var(--guido-color-white) !important;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
ue-block-thumb-hint {
|
|
35
|
+
text-align: left;
|
|
36
|
+
}
|
|
37
|
+
|
|
20
38
|
ue-notifications-container .alert-message-wrapper .alert-message-main .alert-message-content {
|
|
21
39
|
width: calc(100% - 64px);
|
|
22
40
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const
|
|
1
|
+
const e = `ue-emoji .emoji-tabs .active-smile-tab {
|
|
2
2
|
border-color: var(--guido-color-primary-500);
|
|
3
3
|
}
|
|
4
4
|
|
|
@@ -17,7 +17,11 @@ ue-insert-table .template-cell {
|
|
|
17
17
|
border: 1px solid var(--guido-color-gray-300);
|
|
18
18
|
box-shadow: var(--guido-box-shadow);
|
|
19
19
|
}
|
|
20
|
+
|
|
21
|
+
.ue-popover.dark-tiny {
|
|
22
|
+
text-align: left !important;
|
|
23
|
+
}
|
|
20
24
|
`;
|
|
21
25
|
export {
|
|
22
|
-
|
|
26
|
+
e as default
|
|
23
27
|
};
|
|
@@ -10,6 +10,7 @@ const o = `:host {
|
|
|
10
10
|
--guido-color-gray-1: #F0F0F0;
|
|
11
11
|
--guido-color-gray-0: #F9F9F9;
|
|
12
12
|
--guido-color-neutral-800: #222938;
|
|
13
|
+
--guido-color-neutral-700: #2C3546;
|
|
13
14
|
--guido-color-neutral-200: #DCDFE6;
|
|
14
15
|
--guido-color-neutral-100: #EFF2F4;
|
|
15
16
|
--guido-color-danger-300: #e84342;
|
|
@@ -25,6 +26,7 @@ const o = `:host {
|
|
|
25
26
|
--guido-color-border-onpage-message-error: var(--guido-color-danger-500);
|
|
26
27
|
--guido-color-background-toaster-success: #128745;
|
|
27
28
|
--guido-color-background-toaster-error: var(--guido-color-danger-500);
|
|
29
|
+
--guido-color-background-toaster-info: var(--guido-color-neutral-700);
|
|
28
30
|
--guido-color-background-toaster-warn: #D37400;
|
|
29
31
|
}
|
|
30
32
|
`;
|