@useinsider/guido 3.18.1 → 3.18.2-beta.32d291d
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 +21 -3
- package/dist/@types/config/schemas.js +59 -51
- package/dist/components/Guido.vue.js +4 -4
- package/dist/components/Guido.vue2.js +55 -53
- package/dist/components/organisms/extensions/recommendation/AssignStrategyDrawer.vue.js +7 -7
- package/dist/components/organisms/extensions/recommendation/AssignStrategyDrawer.vue2.js +82 -57
- package/dist/components/organisms/extensions/recommendation/LegacyStrategyUpdatedModal.vue.js +18 -0
- package/dist/components/organisms/extensions/recommendation/LegacyStrategyUpdatedModal.vue2.js +25 -0
- package/dist/components/organisms/extensions/recommendation/RemoveStrategyModal.vue2.js +24 -22
- package/dist/components/organisms/onboarding/OnboardingWrapper.vue2.js +28 -24
- package/dist/components/organisms/onboarding/RecommendationLegacyStrategyOnboarding.vue.js +21 -0
- package/dist/components/organisms/onboarding/RecommendationLegacyStrategyOnboarding.vue2.js +46 -0
- package/dist/components/organisms/onboarding/RecommendationStrategyOnboarding.vue.js +21 -0
- package/dist/components/organisms/onboarding/RecommendationStrategyOnboarding.vue2.js +46 -0
- package/dist/components/organisms/save-as-template/SaveAsTemplateDrawer.vue2.js +34 -34
- package/dist/composables/useCustomInterfaceAppearance.js +46 -42
- package/dist/composables/useHttp.js +24 -22
- package/dist/composables/useLegacyStrategyConversion.js +61 -0
- package/dist/enums/extensions/recommendationBlock.js +40 -31
- package/dist/extensions/Blocks/Recommendation/controls/main/index.js +91 -84
- package/dist/extensions/Blocks/Recommendation/controls/main/strategy.js +72 -28
- package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +45 -44
- package/dist/extensions/Blocks/Recommendation/store/recommendation.js +123 -58
- package/dist/extensions/Blocks/Recommendation/utils/legacyStrategyMigration.js +42 -0
- package/dist/extensions/Blocks/Recommendation/utils/nodeConfigWriter.js +7 -7
- package/dist/guido.css +1 -1
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +29 -28
- package/dist/package.json.js +1 -1
- package/dist/services/recommendationApi.js +46 -37
- package/dist/services/templateLibraryApi.js +17 -14
- package/dist/src/@types/config/schemas.d.ts +16 -0
- package/dist/src/components/organisms/extensions/recommendation/LegacyStrategyUpdatedModal.vue.d.ts +2 -0
- package/dist/src/components/organisms/onboarding/RecommendationLegacyStrategyOnboarding.vue.d.ts +2 -0
- package/dist/src/components/organisms/onboarding/RecommendationStrategyOnboarding.vue.d.ts +2 -0
- package/dist/src/composables/useConfig.d.ts +4 -0
- package/dist/src/composables/useLegacyStrategyConversion.d.ts +3 -0
- package/dist/src/enums/extensions/recommendationBlock.d.ts +5 -1
- package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +5 -1
- package/dist/src/extensions/Blocks/Recommendation/controls/main/strategy.d.ts +2 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/main/utils.d.ts +4 -0
- package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +82 -1
- package/dist/src/extensions/Blocks/Recommendation/utils/legacyStrategyMigration.d.ts +32 -0
- package/dist/src/services/recommendationApi.d.ts +2 -1
- package/dist/src/stores/config.d.ts +322 -0
- package/dist/src/stores/onboarding.d.ts +808 -10
- package/dist/src/utils/genericUtil.d.ts +6 -0
- package/dist/src/utils/liquidDynamicContent.d.ts +20 -0
- package/dist/static/assets/icons/filled-arrow-rising.svg.js +5 -0
- package/dist/static/assets/icons/line-info.svg.js +5 -0
- package/dist/static/styles/components/recommendation-strategy.css.js +70 -5
- package/dist/stores/config.js +74 -60
- package/dist/stores/onboarding.js +46 -36
- package/dist/utils/genericUtil.js +63 -54
- package/dist/utils/liquidDynamicContent.js +15 -0
- package/dist/utils/templatePreparation.js +54 -52
- package/package.json +3 -3
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Orientation, Languages, Currency, NumericSeparator, FiltersResponse, Filter, RecommendationCampaignUrlValue, RecommendationProduct, RrsStrategy } from '@@/Types/recommendation';
|
|
1
|
+
import type { Orientation, Languages, Currency, NumericSeparator, FiltersResponse, Filter, RecommendationCampaignUrlValue, RecommendationProduct, RrsMigrationPayload, RrsMigrationTarget, RrsStrategy } from '@@/Types/recommendation';
|
|
2
2
|
export interface PerBlockConfigs {
|
|
3
3
|
cardsInRow: number;
|
|
4
4
|
currencySettings: {
|
|
@@ -22,6 +22,7 @@ export interface PerBlockConfigs {
|
|
|
22
22
|
shuffleProducts: boolean;
|
|
23
23
|
strategy: string;
|
|
24
24
|
strategyId: string;
|
|
25
|
+
nodeConfigVersion: number;
|
|
25
26
|
textTrimming: boolean;
|
|
26
27
|
unresponsive: boolean;
|
|
27
28
|
size: string;
|
|
@@ -36,11 +37,23 @@ interface PerBlockState {
|
|
|
36
37
|
filterSelectionDrawerStatus: boolean;
|
|
37
38
|
assignStrategyDrawerStatus: boolean;
|
|
38
39
|
removeStrategyModalStatus: boolean;
|
|
40
|
+
legacyStrategyUpdatedModalStatus: boolean;
|
|
39
41
|
filterGroup: number;
|
|
40
42
|
/** Whether initial API data (filters, algorithms, products) has been fetched for this block */
|
|
41
43
|
isInitialized: boolean;
|
|
42
44
|
/** Snapshot of filters taken when the drawer opens, used to revert on cancel */
|
|
43
45
|
filterSnapshot: Filter[] | null;
|
|
46
|
+
/**
|
|
47
|
+
* Fingerprint of the node config as this block's state last adopted it.
|
|
48
|
+
*
|
|
49
|
+
* Lives here, not on the control, because it is a claim ABOUT this state —
|
|
50
|
+
* "the store already holds that node config". Held on the control it
|
|
51
|
+
* outlived the state it described: `removeBlockState` tore the state down
|
|
52
|
+
* while the fingerprint survived, so re-dropping a saved module under the
|
|
53
|
+
* same id skipped the re-sync and kept the defaults (SD-150347).
|
|
54
|
+
*/
|
|
55
|
+
syncedConfigFingerprint: string | null;
|
|
56
|
+
legacyConversionLoading: boolean;
|
|
44
57
|
}
|
|
45
58
|
/**
|
|
46
59
|
* Persisted-config subset used by `seedBlockUrlConfig` to reconstruct
|
|
@@ -57,6 +70,8 @@ export interface PerBlockUrlConfig {
|
|
|
57
70
|
filters: Filter[];
|
|
58
71
|
shuffleProducts: boolean;
|
|
59
72
|
currencyCode: string;
|
|
73
|
+
/** The displayed symbol, which is not the code — a TRY block shows `₺`. */
|
|
74
|
+
currencySymbol: string;
|
|
60
75
|
currencyAlignment: 'before' | 'after';
|
|
61
76
|
currencyDecimalCount: number;
|
|
62
77
|
currencyDecimalSeparator: string;
|
|
@@ -201,6 +216,53 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
|
|
|
201
216
|
currentRecommendationId: number | null;
|
|
202
217
|
configVersion: number;
|
|
203
218
|
} & import("pinia").PiniaCustomStateProperties<StoreState>): boolean;
|
|
219
|
+
isLegacyStrategyBlock(): boolean;
|
|
220
|
+
legacyConversionLoading(state: {
|
|
221
|
+
recommendationCampaignUrls: Record<string, RecommendationCampaignUrlValue>;
|
|
222
|
+
activePredictiveAlgorithms: number[];
|
|
223
|
+
languages: Languages;
|
|
224
|
+
currencyList: {
|
|
225
|
+
text: string;
|
|
226
|
+
value: string;
|
|
227
|
+
}[];
|
|
228
|
+
filterList: FiltersResponse;
|
|
229
|
+
strategies: {
|
|
230
|
+
[x: string]: unknown;
|
|
231
|
+
strategy_id: number;
|
|
232
|
+
name: string;
|
|
233
|
+
status: string;
|
|
234
|
+
suitable_channels: string;
|
|
235
|
+
size?: (number | string) | undefined;
|
|
236
|
+
}[];
|
|
237
|
+
strategiesLoading: boolean;
|
|
238
|
+
strategyUrlTemplates: Record<string, string>;
|
|
239
|
+
blockStates: Record<number, PerBlockState>;
|
|
240
|
+
currentRecommendationId: number | null;
|
|
241
|
+
configVersion: number;
|
|
242
|
+
} & import("pinia").PiniaCustomStateProperties<StoreState>): boolean;
|
|
243
|
+
legacyStrategyUpdatedModalStatus(state: {
|
|
244
|
+
recommendationCampaignUrls: Record<string, RecommendationCampaignUrlValue>;
|
|
245
|
+
activePredictiveAlgorithms: number[];
|
|
246
|
+
languages: Languages;
|
|
247
|
+
currencyList: {
|
|
248
|
+
text: string;
|
|
249
|
+
value: string;
|
|
250
|
+
}[];
|
|
251
|
+
filterList: FiltersResponse;
|
|
252
|
+
strategies: {
|
|
253
|
+
[x: string]: unknown;
|
|
254
|
+
strategy_id: number;
|
|
255
|
+
name: string;
|
|
256
|
+
status: string;
|
|
257
|
+
suitable_channels: string;
|
|
258
|
+
size?: (number | string) | undefined;
|
|
259
|
+
}[];
|
|
260
|
+
strategiesLoading: boolean;
|
|
261
|
+
strategyUrlTemplates: Record<string, string>;
|
|
262
|
+
blockStates: Record<number, PerBlockState>;
|
|
263
|
+
currentRecommendationId: number | null;
|
|
264
|
+
configVersion: number;
|
|
265
|
+
} & import("pinia").PiniaCustomStateProperties<StoreState>): boolean;
|
|
204
266
|
assignedStrategy(state: {
|
|
205
267
|
recommendationCampaignUrls: Record<string, RecommendationCampaignUrlValue>;
|
|
206
268
|
activePredictiveAlgorithms: number[];
|
|
@@ -430,11 +492,24 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
|
|
|
430
492
|
cancelFilterDrawer(): void;
|
|
431
493
|
openAssignStrategyDrawer(): void;
|
|
432
494
|
closeAssignStrategyDrawer(): void;
|
|
495
|
+
openLegacyStrategyUpdatedModal(): void;
|
|
496
|
+
closeLegacyStrategyUpdatedModal(): void;
|
|
433
497
|
openRemoveStrategyModal(): void;
|
|
434
498
|
closeRemoveStrategyModal(): void;
|
|
435
499
|
fetchStrategies(): Promise<void>;
|
|
436
500
|
resolveStrategyUrlTemplate(strategy: RrsStrategy, currency: string): Promise<string>;
|
|
437
501
|
assignStrategy(strategy: RrsStrategy): void;
|
|
502
|
+
convertLegacyStrategy(payload: RrsMigrationPayload, target?: RrsMigrationTarget): Promise<string>;
|
|
503
|
+
/**
|
|
504
|
+
* Undoes the config half of a conversion whose document write never landed, so the
|
|
505
|
+
* panel and the drawer fall back to "Legacy Strategy" instead of showing an assignment
|
|
506
|
+
* the document never received.
|
|
507
|
+
*/
|
|
508
|
+
revertLegacyConversion(blockId: number, previous: {
|
|
509
|
+
strategyId: string;
|
|
510
|
+
size: string;
|
|
511
|
+
nodeConfigVersion: number;
|
|
512
|
+
}): void;
|
|
438
513
|
removeStrategy(): void;
|
|
439
514
|
fetchRecommendationCreateData(): Promise<void>;
|
|
440
515
|
fetchRecommendationFilters(): Promise<void>;
|
|
@@ -452,6 +527,12 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
|
|
|
452
527
|
hasInvalidBlock(): boolean;
|
|
453
528
|
fetchRecommendationProducts(): Promise<void>;
|
|
454
529
|
_doFetchProducts(): Promise<void>;
|
|
530
|
+
/**
|
|
531
|
+
* Block-scoped counterpart of `fetchRecommendationProducts`, which only ever serves the
|
|
532
|
+
* selected block. The legacy conversion must refresh the products of the block that
|
|
533
|
+
* started it even after the user selected another one.
|
|
534
|
+
*/
|
|
535
|
+
fetchStrategyProductsForBlock(blockId: number): Promise<void>;
|
|
455
536
|
_doFetchStrategyProducts(blockId: number): Promise<void>;
|
|
456
537
|
_setBlockProducts(blockId: number, products: RecommendationProduct[], size: number): void;
|
|
457
538
|
}>;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { RrsMigrationPayload, RrsMigrationTarget } from '@@/Types/recommendation';
|
|
2
|
+
/**
|
|
3
|
+
* A block authored before reusable strategies: it still carries a plain feed
|
|
4
|
+
* configuration (compiled into a feed URL string) instead of a strategy id.
|
|
5
|
+
* Blocks created under RRS stamp `CURRENT_CONFIG_VERSION`, so the version is
|
|
6
|
+
* what separates "never converted" from "not assigned yet".
|
|
7
|
+
*/
|
|
8
|
+
export declare function isLegacyStrategyConfig({ strategyId, nodeConfigVersion }: {
|
|
9
|
+
strategyId: string;
|
|
10
|
+
nodeConfigVersion: number;
|
|
11
|
+
}): boolean;
|
|
12
|
+
export declare function resolveMigrationTarget({ campaignId, templateLibraryId }: {
|
|
13
|
+
campaignId?: string;
|
|
14
|
+
templateLibraryId?: string;
|
|
15
|
+
}): RrsMigrationTarget;
|
|
16
|
+
interface MigrationInputs {
|
|
17
|
+
blockId: number;
|
|
18
|
+
url: string;
|
|
19
|
+
campaignId: string;
|
|
20
|
+
variationId: string;
|
|
21
|
+
strategy: string;
|
|
22
|
+
productIds: string[];
|
|
23
|
+
target: RrsMigrationTarget;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* The server names and de-duplicates the strategy, so nothing here derives a name, and the
|
|
27
|
+
* filters travel inside `url` — the endpoint parses the feed URL's filter DSL itself. The two
|
|
28
|
+
* routes take different identity fields — the campaign one names from `campaignId`/`variationId`
|
|
29
|
+
* (0 for modules, which carry no numeric campaign), the template one from `templateId`.
|
|
30
|
+
*/
|
|
31
|
+
export declare function buildLegacyMigrationPayload({ blockId, url, campaignId, variationId, strategy, productIds, target, }: MigrationInputs): RrsMigrationPayload;
|
|
32
|
+
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { InitialResponse, FiltersResponse, RecommendationProduct, RecommendationProductsParams, RrsEndpointGenerateResponse, RrsStrategy } from '@@/Types/recommendation';
|
|
1
|
+
import type { InitialResponse, FiltersResponse, RecommendationProduct, RecommendationProductsParams, RrsEndpointGenerateResponse, RrsMigrationPayload, RrsMigrationTarget, RrsStrategy } from '@@/Types/recommendation';
|
|
2
2
|
export declare const useRecommendationApi: () => {
|
|
3
3
|
fetchRecommendationCreateData: () => Promise<InitialResponse>;
|
|
4
4
|
fetchRecommendationFilters: () => Promise<FiltersResponse>;
|
|
@@ -6,4 +6,5 @@ export declare const useRecommendationApi: () => {
|
|
|
6
6
|
fetchRecommendationProductsByUrl: (url: string) => Promise<RecommendationProduct[]>;
|
|
7
7
|
fetchRecommendationStrategies: () => Promise<RrsStrategy[]>;
|
|
8
8
|
generateStrategyEndpoint: (strategy: RrsStrategy, currency: string) => Promise<RrsEndpointGenerateResponse | null>;
|
|
9
|
+
migrateLegacyStrategy: (payload: RrsMigrationPayload, target?: RrsMigrationTarget) => Promise<string>;
|
|
9
10
|
};
|
|
@@ -16,6 +16,8 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
16
16
|
templateId: string;
|
|
17
17
|
userId: string;
|
|
18
18
|
variationId?: string | undefined;
|
|
19
|
+
campaignId?: string | undefined;
|
|
20
|
+
templateLibraryId?: string | undefined;
|
|
19
21
|
};
|
|
20
22
|
partner: {
|
|
21
23
|
name: string;
|
|
@@ -157,6 +159,8 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
157
159
|
templateId: string;
|
|
158
160
|
userId: string;
|
|
159
161
|
variationId?: string | undefined;
|
|
162
|
+
campaignId?: string | undefined;
|
|
163
|
+
templateLibraryId?: string | undefined;
|
|
160
164
|
};
|
|
161
165
|
partner: {
|
|
162
166
|
name: string;
|
|
@@ -298,6 +302,8 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
298
302
|
templateId: string;
|
|
299
303
|
userId: string;
|
|
300
304
|
variationId?: string | undefined;
|
|
305
|
+
campaignId?: string | undefined;
|
|
306
|
+
templateLibraryId?: string | undefined;
|
|
301
307
|
};
|
|
302
308
|
partner: {
|
|
303
309
|
name: string;
|
|
@@ -439,6 +445,8 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
439
445
|
templateId: string;
|
|
440
446
|
userId: string;
|
|
441
447
|
variationId?: string | undefined;
|
|
448
|
+
campaignId?: string | undefined;
|
|
449
|
+
templateLibraryId?: string | undefined;
|
|
442
450
|
};
|
|
443
451
|
partner: {
|
|
444
452
|
name: string;
|
|
@@ -580,6 +588,8 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
580
588
|
templateId: string;
|
|
581
589
|
userId: string;
|
|
582
590
|
variationId?: string | undefined;
|
|
591
|
+
campaignId?: string | undefined;
|
|
592
|
+
templateLibraryId?: string | undefined;
|
|
583
593
|
};
|
|
584
594
|
partner: {
|
|
585
595
|
name: string;
|
|
@@ -721,6 +731,8 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
721
731
|
templateId: string;
|
|
722
732
|
userId: string;
|
|
723
733
|
variationId?: string | undefined;
|
|
734
|
+
campaignId?: string | undefined;
|
|
735
|
+
templateLibraryId?: string | undefined;
|
|
724
736
|
};
|
|
725
737
|
partner: {
|
|
726
738
|
name: string;
|
|
@@ -862,6 +874,8 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
862
874
|
templateId: string;
|
|
863
875
|
userId: string;
|
|
864
876
|
variationId?: string | undefined;
|
|
877
|
+
campaignId?: string | undefined;
|
|
878
|
+
templateLibraryId?: string | undefined;
|
|
865
879
|
};
|
|
866
880
|
partner: {
|
|
867
881
|
name: string;
|
|
@@ -1003,6 +1017,8 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
1003
1017
|
templateId: string;
|
|
1004
1018
|
userId: string;
|
|
1005
1019
|
variationId?: string | undefined;
|
|
1020
|
+
campaignId?: string | undefined;
|
|
1021
|
+
templateLibraryId?: string | undefined;
|
|
1006
1022
|
};
|
|
1007
1023
|
partner: {
|
|
1008
1024
|
name: string;
|
|
@@ -1144,6 +1160,8 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
1144
1160
|
templateId: string;
|
|
1145
1161
|
userId: string;
|
|
1146
1162
|
variationId?: string | undefined;
|
|
1163
|
+
campaignId?: string | undefined;
|
|
1164
|
+
templateLibraryId?: string | undefined;
|
|
1147
1165
|
};
|
|
1148
1166
|
partner: {
|
|
1149
1167
|
name: string;
|
|
@@ -1285,6 +1303,8 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
1285
1303
|
templateId: string;
|
|
1286
1304
|
userId: string;
|
|
1287
1305
|
variationId?: string | undefined;
|
|
1306
|
+
campaignId?: string | undefined;
|
|
1307
|
+
templateLibraryId?: string | undefined;
|
|
1288
1308
|
};
|
|
1289
1309
|
partner: {
|
|
1290
1310
|
name: string;
|
|
@@ -1426,6 +1446,8 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
1426
1446
|
templateId: string;
|
|
1427
1447
|
userId: string;
|
|
1428
1448
|
variationId?: string | undefined;
|
|
1449
|
+
campaignId?: string | undefined;
|
|
1450
|
+
templateLibraryId?: string | undefined;
|
|
1429
1451
|
};
|
|
1430
1452
|
partner: {
|
|
1431
1453
|
name: string;
|
|
@@ -1567,6 +1589,294 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
1567
1589
|
templateId: string;
|
|
1568
1590
|
userId: string;
|
|
1569
1591
|
variationId?: string | undefined;
|
|
1592
|
+
campaignId?: string | undefined;
|
|
1593
|
+
templateLibraryId?: string | undefined;
|
|
1594
|
+
};
|
|
1595
|
+
partner: {
|
|
1596
|
+
name: string;
|
|
1597
|
+
productType: 60 | 49 | 97;
|
|
1598
|
+
messageType: 1 | 2;
|
|
1599
|
+
username: string;
|
|
1600
|
+
fallbackFont?: {
|
|
1601
|
+
name: string;
|
|
1602
|
+
family: string;
|
|
1603
|
+
} | undefined;
|
|
1604
|
+
};
|
|
1605
|
+
template: {
|
|
1606
|
+
html: string;
|
|
1607
|
+
css: string;
|
|
1608
|
+
preselectedDynamicContent: {
|
|
1609
|
+
text: string;
|
|
1610
|
+
value: string;
|
|
1611
|
+
fallback?: string | undefined;
|
|
1612
|
+
format?: {
|
|
1613
|
+
key: string;
|
|
1614
|
+
value: string;
|
|
1615
|
+
} | undefined;
|
|
1616
|
+
}[];
|
|
1617
|
+
dynamicContentList: {
|
|
1618
|
+
[x: string]: import("../library").DynamicContentNode[];
|
|
1619
|
+
};
|
|
1620
|
+
customFieldAttributes: string[];
|
|
1621
|
+
selectedUnsubscribePages: number[];
|
|
1622
|
+
forceRecreate: boolean;
|
|
1623
|
+
trackIdCounter: number;
|
|
1624
|
+
migration: {
|
|
1625
|
+
recommendationConfigs: {
|
|
1626
|
+
[x: string]: {
|
|
1627
|
+
id?: number | undefined;
|
|
1628
|
+
decimalCount?: string | number | undefined;
|
|
1629
|
+
productIds?: unknown[] | undefined;
|
|
1630
|
+
sendProductRequestFlag?: boolean | undefined;
|
|
1631
|
+
shuffleProducts?: boolean | undefined;
|
|
1632
|
+
filters?: unknown[] | undefined;
|
|
1633
|
+
currency?: string | undefined;
|
|
1634
|
+
currencySettings?: unknown;
|
|
1635
|
+
language?: string | undefined;
|
|
1636
|
+
strategy?: string | undefined;
|
|
1637
|
+
recommendedProducts?: unknown[] | undefined;
|
|
1638
|
+
cardsInRow?: number | undefined;
|
|
1639
|
+
mobileRightPadding?: number | undefined;
|
|
1640
|
+
mobileLeftPadding?: number | undefined;
|
|
1641
|
+
unresponsive?: boolean | undefined;
|
|
1642
|
+
orientation?: string | undefined;
|
|
1643
|
+
textTrimming?: boolean | undefined;
|
|
1644
|
+
blockType?: string | undefined;
|
|
1645
|
+
size?: string | number | undefined;
|
|
1646
|
+
verticalResponsiveness?: boolean | undefined;
|
|
1647
|
+
isPriceMovedToNextLine?: boolean | undefined;
|
|
1648
|
+
isPriceDeletedForZeroSale?: boolean | undefined;
|
|
1649
|
+
} & {
|
|
1650
|
+
[key: string]: unknown;
|
|
1651
|
+
};
|
|
1652
|
+
};
|
|
1653
|
+
};
|
|
1654
|
+
};
|
|
1655
|
+
editor: {
|
|
1656
|
+
locale: string;
|
|
1657
|
+
translationsPath: string;
|
|
1658
|
+
migrationDate: number;
|
|
1659
|
+
emailHeader: {
|
|
1660
|
+
senderName: string;
|
|
1661
|
+
subject: string;
|
|
1662
|
+
};
|
|
1663
|
+
savedModulesFolderName: string;
|
|
1664
|
+
defaultModulesFolderName: string;
|
|
1665
|
+
};
|
|
1666
|
+
ui: {
|
|
1667
|
+
showHeader: boolean;
|
|
1668
|
+
backButtonLabel?: string | undefined;
|
|
1669
|
+
};
|
|
1670
|
+
features: {
|
|
1671
|
+
dynamicContent: boolean;
|
|
1672
|
+
saveAsTemplate: boolean;
|
|
1673
|
+
versionHistory: boolean;
|
|
1674
|
+
testMessage: boolean;
|
|
1675
|
+
displayConditions: boolean;
|
|
1676
|
+
unsubscribe: boolean;
|
|
1677
|
+
modulesDisabled: boolean;
|
|
1678
|
+
liquidSyntax: boolean;
|
|
1679
|
+
autosave: boolean;
|
|
1680
|
+
allowlistEnabled: boolean;
|
|
1681
|
+
linkTrackingIds: boolean;
|
|
1682
|
+
reusableRecommendationStrategy: boolean;
|
|
1683
|
+
};
|
|
1684
|
+
blocks: {
|
|
1685
|
+
excludeDefaults: ("amp-accordion" | "amp-carousel" | "amp-form-controls" | "banner-block" | "button-block" | "html-block" | "image-block" | "menu-block" | "social-block" | "spacer-block" | "text-block" | "timer-block" | "video-block")[];
|
|
1686
|
+
includeCustoms: ("dynamic-content" | "checkbox-block" | "radio-button-block" | "recommendation-block" | "unsubscribe-block" | "coupon-block" | "items-block")[];
|
|
1687
|
+
};
|
|
1688
|
+
compiler: {
|
|
1689
|
+
customRules: ({
|
|
1690
|
+
type: "replace";
|
|
1691
|
+
search: string;
|
|
1692
|
+
replacement: string;
|
|
1693
|
+
replaceAll?: boolean | undefined;
|
|
1694
|
+
id: string;
|
|
1695
|
+
description?: string | undefined;
|
|
1696
|
+
priority: number;
|
|
1697
|
+
} | {
|
|
1698
|
+
type: "regex";
|
|
1699
|
+
pattern: string;
|
|
1700
|
+
replacement: string;
|
|
1701
|
+
flags?: string | undefined;
|
|
1702
|
+
id: string;
|
|
1703
|
+
description?: string | undefined;
|
|
1704
|
+
priority: number;
|
|
1705
|
+
} | {
|
|
1706
|
+
type: "remove";
|
|
1707
|
+
targets: string[];
|
|
1708
|
+
id: string;
|
|
1709
|
+
description?: string | undefined;
|
|
1710
|
+
priority: number;
|
|
1711
|
+
} | {
|
|
1712
|
+
type: "custom";
|
|
1713
|
+
processor: (html: string) => string;
|
|
1714
|
+
id: string;
|
|
1715
|
+
description?: string | undefined;
|
|
1716
|
+
priority: number;
|
|
1717
|
+
})[];
|
|
1718
|
+
ignoreDefaultRules: boolean;
|
|
1719
|
+
};
|
|
1720
|
+
callbacks: {
|
|
1721
|
+
externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
|
|
1722
|
+
};
|
|
1723
|
+
} | null;
|
|
1724
|
+
} & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => string;
|
|
1725
|
+
/**
|
|
1726
|
+
* Get the campaign ID
|
|
1727
|
+
*/
|
|
1728
|
+
campaignId: (state: {
|
|
1729
|
+
initialized: boolean;
|
|
1730
|
+
config: {
|
|
1731
|
+
identity: {
|
|
1732
|
+
templateId: string;
|
|
1733
|
+
userId: string;
|
|
1734
|
+
variationId?: string | undefined;
|
|
1735
|
+
campaignId?: string | undefined;
|
|
1736
|
+
templateLibraryId?: string | undefined;
|
|
1737
|
+
};
|
|
1738
|
+
partner: {
|
|
1739
|
+
name: string;
|
|
1740
|
+
productType: 60 | 49 | 97;
|
|
1741
|
+
messageType: 1 | 2;
|
|
1742
|
+
username: string;
|
|
1743
|
+
fallbackFont?: {
|
|
1744
|
+
name: string;
|
|
1745
|
+
family: string;
|
|
1746
|
+
} | undefined;
|
|
1747
|
+
};
|
|
1748
|
+
template: {
|
|
1749
|
+
html: string;
|
|
1750
|
+
css: string;
|
|
1751
|
+
preselectedDynamicContent: {
|
|
1752
|
+
text: string;
|
|
1753
|
+
value: string;
|
|
1754
|
+
fallback?: string | undefined;
|
|
1755
|
+
format?: {
|
|
1756
|
+
key: string;
|
|
1757
|
+
value: string;
|
|
1758
|
+
} | undefined;
|
|
1759
|
+
}[];
|
|
1760
|
+
dynamicContentList: {
|
|
1761
|
+
[x: string]: import("../library").DynamicContentNode[];
|
|
1762
|
+
};
|
|
1763
|
+
customFieldAttributes: string[];
|
|
1764
|
+
selectedUnsubscribePages: number[];
|
|
1765
|
+
forceRecreate: boolean;
|
|
1766
|
+
trackIdCounter: number;
|
|
1767
|
+
migration: {
|
|
1768
|
+
recommendationConfigs: {
|
|
1769
|
+
[x: string]: {
|
|
1770
|
+
id?: number | undefined;
|
|
1771
|
+
decimalCount?: string | number | undefined;
|
|
1772
|
+
productIds?: unknown[] | undefined;
|
|
1773
|
+
sendProductRequestFlag?: boolean | undefined;
|
|
1774
|
+
shuffleProducts?: boolean | undefined;
|
|
1775
|
+
filters?: unknown[] | undefined;
|
|
1776
|
+
currency?: string | undefined;
|
|
1777
|
+
currencySettings?: unknown;
|
|
1778
|
+
language?: string | undefined;
|
|
1779
|
+
strategy?: string | undefined;
|
|
1780
|
+
recommendedProducts?: unknown[] | undefined;
|
|
1781
|
+
cardsInRow?: number | undefined;
|
|
1782
|
+
mobileRightPadding?: number | undefined;
|
|
1783
|
+
mobileLeftPadding?: number | undefined;
|
|
1784
|
+
unresponsive?: boolean | undefined;
|
|
1785
|
+
orientation?: string | undefined;
|
|
1786
|
+
textTrimming?: boolean | undefined;
|
|
1787
|
+
blockType?: string | undefined;
|
|
1788
|
+
size?: string | number | undefined;
|
|
1789
|
+
verticalResponsiveness?: boolean | undefined;
|
|
1790
|
+
isPriceMovedToNextLine?: boolean | undefined;
|
|
1791
|
+
isPriceDeletedForZeroSale?: boolean | undefined;
|
|
1792
|
+
} & {
|
|
1793
|
+
[key: string]: unknown;
|
|
1794
|
+
};
|
|
1795
|
+
};
|
|
1796
|
+
};
|
|
1797
|
+
};
|
|
1798
|
+
editor: {
|
|
1799
|
+
locale: string;
|
|
1800
|
+
translationsPath: string;
|
|
1801
|
+
migrationDate: number;
|
|
1802
|
+
emailHeader: {
|
|
1803
|
+
senderName: string;
|
|
1804
|
+
subject: string;
|
|
1805
|
+
};
|
|
1806
|
+
savedModulesFolderName: string;
|
|
1807
|
+
defaultModulesFolderName: string;
|
|
1808
|
+
};
|
|
1809
|
+
ui: {
|
|
1810
|
+
showHeader: boolean;
|
|
1811
|
+
backButtonLabel?: string | undefined;
|
|
1812
|
+
};
|
|
1813
|
+
features: {
|
|
1814
|
+
dynamicContent: boolean;
|
|
1815
|
+
saveAsTemplate: boolean;
|
|
1816
|
+
versionHistory: boolean;
|
|
1817
|
+
testMessage: boolean;
|
|
1818
|
+
displayConditions: boolean;
|
|
1819
|
+
unsubscribe: boolean;
|
|
1820
|
+
modulesDisabled: boolean;
|
|
1821
|
+
liquidSyntax: boolean;
|
|
1822
|
+
autosave: boolean;
|
|
1823
|
+
allowlistEnabled: boolean;
|
|
1824
|
+
linkTrackingIds: boolean;
|
|
1825
|
+
reusableRecommendationStrategy: boolean;
|
|
1826
|
+
};
|
|
1827
|
+
blocks: {
|
|
1828
|
+
excludeDefaults: ("amp-accordion" | "amp-carousel" | "amp-form-controls" | "banner-block" | "button-block" | "html-block" | "image-block" | "menu-block" | "social-block" | "spacer-block" | "text-block" | "timer-block" | "video-block")[];
|
|
1829
|
+
includeCustoms: ("dynamic-content" | "checkbox-block" | "radio-button-block" | "recommendation-block" | "unsubscribe-block" | "coupon-block" | "items-block")[];
|
|
1830
|
+
};
|
|
1831
|
+
compiler: {
|
|
1832
|
+
customRules: ({
|
|
1833
|
+
type: "replace";
|
|
1834
|
+
search: string;
|
|
1835
|
+
replacement: string;
|
|
1836
|
+
replaceAll?: boolean | undefined;
|
|
1837
|
+
id: string;
|
|
1838
|
+
description?: string | undefined;
|
|
1839
|
+
priority: number;
|
|
1840
|
+
} | {
|
|
1841
|
+
type: "regex";
|
|
1842
|
+
pattern: string;
|
|
1843
|
+
replacement: string;
|
|
1844
|
+
flags?: string | undefined;
|
|
1845
|
+
id: string;
|
|
1846
|
+
description?: string | undefined;
|
|
1847
|
+
priority: number;
|
|
1848
|
+
} | {
|
|
1849
|
+
type: "remove";
|
|
1850
|
+
targets: string[];
|
|
1851
|
+
id: string;
|
|
1852
|
+
description?: string | undefined;
|
|
1853
|
+
priority: number;
|
|
1854
|
+
} | {
|
|
1855
|
+
type: "custom";
|
|
1856
|
+
processor: (html: string) => string;
|
|
1857
|
+
id: string;
|
|
1858
|
+
description?: string | undefined;
|
|
1859
|
+
priority: number;
|
|
1860
|
+
})[];
|
|
1861
|
+
ignoreDefaultRules: boolean;
|
|
1862
|
+
};
|
|
1863
|
+
callbacks: {
|
|
1864
|
+
externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
|
|
1865
|
+
};
|
|
1866
|
+
} | null;
|
|
1867
|
+
} & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => string;
|
|
1868
|
+
/**
|
|
1869
|
+
* Get the template-library ID of the host template
|
|
1870
|
+
*/
|
|
1871
|
+
templateLibraryId: (state: {
|
|
1872
|
+
initialized: boolean;
|
|
1873
|
+
config: {
|
|
1874
|
+
identity: {
|
|
1875
|
+
templateId: string;
|
|
1876
|
+
userId: string;
|
|
1877
|
+
variationId?: string | undefined;
|
|
1878
|
+
campaignId?: string | undefined;
|
|
1879
|
+
templateLibraryId?: string | undefined;
|
|
1570
1880
|
};
|
|
1571
1881
|
partner: {
|
|
1572
1882
|
name: string;
|
|
@@ -1708,6 +2018,8 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
1708
2018
|
templateId: string;
|
|
1709
2019
|
userId: string;
|
|
1710
2020
|
variationId?: string | undefined;
|
|
2021
|
+
campaignId?: string | undefined;
|
|
2022
|
+
templateLibraryId?: string | undefined;
|
|
1711
2023
|
};
|
|
1712
2024
|
partner: {
|
|
1713
2025
|
name: string;
|
|
@@ -1849,6 +2161,8 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
1849
2161
|
templateId: string;
|
|
1850
2162
|
userId: string;
|
|
1851
2163
|
variationId?: string | undefined;
|
|
2164
|
+
campaignId?: string | undefined;
|
|
2165
|
+
templateLibraryId?: string | undefined;
|
|
1852
2166
|
};
|
|
1853
2167
|
partner: {
|
|
1854
2168
|
name: string;
|
|
@@ -1990,6 +2304,8 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
1990
2304
|
templateId: string;
|
|
1991
2305
|
userId: string;
|
|
1992
2306
|
variationId?: string | undefined;
|
|
2307
|
+
campaignId?: string | undefined;
|
|
2308
|
+
templateLibraryId?: string | undefined;
|
|
1993
2309
|
};
|
|
1994
2310
|
partner: {
|
|
1995
2311
|
name: string;
|
|
@@ -2131,6 +2447,8 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
2131
2447
|
templateId: string;
|
|
2132
2448
|
userId: string;
|
|
2133
2449
|
variationId?: string | undefined;
|
|
2450
|
+
campaignId?: string | undefined;
|
|
2451
|
+
templateLibraryId?: string | undefined;
|
|
2134
2452
|
};
|
|
2135
2453
|
partner: {
|
|
2136
2454
|
name: string;
|
|
@@ -2272,6 +2590,8 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
2272
2590
|
templateId: string;
|
|
2273
2591
|
userId: string;
|
|
2274
2592
|
variationId?: string | undefined;
|
|
2593
|
+
campaignId?: string | undefined;
|
|
2594
|
+
templateLibraryId?: string | undefined;
|
|
2275
2595
|
};
|
|
2276
2596
|
partner: {
|
|
2277
2597
|
name: string;
|
|
@@ -2415,6 +2735,8 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
2415
2735
|
templateId: string;
|
|
2416
2736
|
userId: string;
|
|
2417
2737
|
variationId?: string | undefined;
|
|
2738
|
+
campaignId?: string | undefined;
|
|
2739
|
+
templateLibraryId?: string | undefined;
|
|
2418
2740
|
};
|
|
2419
2741
|
partner: {
|
|
2420
2742
|
name: string;
|