@useinsider/guido 1.4.4-beta.00a1e0a → 1.4.4-beta.37e7556

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.
Files changed (93) hide show
  1. package/README.md +295 -664
  2. package/dist/@types/config/defaults.js +44 -0
  3. package/dist/@types/config/schemas.js +243 -0
  4. package/dist/@types/config/validator.js +56 -0
  5. package/dist/components/Guido.vue.js +1 -1
  6. package/dist/components/Guido.vue2.js +63 -89
  7. package/dist/components/organisms/email-preview/desktop-preview/EmailHeaderInfo.vue2.js +13 -13
  8. package/dist/components/organisms/email-preview/mobile-preview/InboxView.vue.js +5 -5
  9. package/dist/components/organisms/email-preview/mobile-preview/InboxView.vue2.js +13 -13
  10. package/dist/components/organisms/header/LeftSlot.vue.js +1 -1
  11. package/dist/components/organisms/header/LeftSlot.vue2.js +18 -15
  12. package/dist/components/organisms/header/RightSlot.vue.js +10 -10
  13. package/dist/components/organisms/onboarding/NewVersionPopup.vue2.js +22 -19
  14. package/dist/components/organisms/unsubscribe/UnsubscribeBreadcrumb.vue.js +4 -4
  15. package/dist/components/organisms/unsubscribe/UnsubscribeBreadcrumb.vue2.js +8 -8
  16. package/dist/components/organisms/unsubscribe/UnsubscribeTypeSelection.vue.js +3 -3
  17. package/dist/components/organisms/unsubscribe/UnsubscribeTypeSelection.vue2.js +17 -17
  18. package/dist/components/organisms/unsubscribe/UnsubscribeWrapper.vue.js +10 -10
  19. package/dist/composables/useBlocksConfig.js +23 -20
  20. package/dist/composables/useConfig.js +53 -5
  21. package/dist/composables/useHtmlCompiler.js +20 -19
  22. package/dist/composables/useHtmlValidator.js +41 -41
  23. package/dist/composables/usePartner.js +19 -9
  24. package/dist/composables/useSave.js +13 -11
  25. package/dist/composables/useStripo.js +11 -11
  26. package/dist/composables/useTranslations.js +3 -2
  27. package/dist/config/compiler/unsubscribeCompilerRules.js +1 -1
  28. package/dist/enums/defaults.js +3 -67
  29. package/dist/enums/unsubscribe.js +23 -20
  30. package/dist/extensions/Blocks/CouponBlock/extension.js +4 -5
  31. package/dist/extensions/Blocks/CouponBlock/settingsPanel.js +14 -20
  32. package/dist/extensions/Blocks/CouponBlock/template.js +11 -22
  33. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +12 -11
  34. package/dist/extensions/Blocks/Unsubscribe/extension.js +9 -9
  35. package/dist/extensions/Blocks/controlFactories.js +111 -122
  36. package/dist/guido.css +1 -1
  37. package/dist/library.js +12 -2
  38. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +52 -57
  39. package/dist/node_modules/lodash-es/_arrayLikeKeys.js +10 -10
  40. package/dist/node_modules/valibot/dist/index.js +476 -103
  41. package/dist/services/templateLibraryApi.js +18 -18
  42. package/dist/src/@types/config/defaults.d.ts +68 -0
  43. package/dist/src/@types/config/index.d.ts +14 -0
  44. package/dist/src/@types/config/schemas.d.ts +531 -0
  45. package/dist/src/@types/config/types.d.ts +148 -0
  46. package/dist/src/@types/config/validator.d.ts +119 -0
  47. package/dist/src/@types/generic.d.ts +4 -45
  48. package/dist/src/components/Guido.vue.d.ts +13 -12
  49. package/dist/src/components/wrappers/WpModal.vue.d.ts +1 -1
  50. package/dist/src/composables/useConfig.d.ts +190 -2
  51. package/dist/src/composables/usePartner.d.ts +8 -0
  52. package/dist/src/enums/defaults.d.ts +4 -6
  53. package/dist/src/enums/unsubscribe.d.ts +5 -1
  54. package/dist/src/extensions/Blocks/CouponBlock/template.d.ts +1 -1
  55. package/dist/src/extensions/Blocks/controlFactories.d.ts +7 -30
  56. package/dist/src/library.d.ts +3 -1
  57. package/dist/src/stores/config.d.ts +1691 -102
  58. package/dist/stores/config.js +148 -9
  59. package/package.json +1 -1
  60. package/dist/extensions/Blocks/CouponBlock/constants.js +0 -4
  61. package/dist/extensions/Blocks/CouponBlock/controls/index.js +0 -29
  62. package/dist/node_modules/lodash-es/_apply.js +0 -16
  63. package/dist/node_modules/lodash-es/_assignMergeValue.js +0 -8
  64. package/dist/node_modules/lodash-es/_assignValue.js +0 -10
  65. package/dist/node_modules/lodash-es/_baseAssignValue.js +0 -12
  66. package/dist/node_modules/lodash-es/_baseCreate.js +0 -17
  67. package/dist/node_modules/lodash-es/_baseKeysIn.js +0 -15
  68. package/dist/node_modules/lodash-es/_baseMerge.js +0 -20
  69. package/dist/node_modules/lodash-es/_baseMergeDeep.js +0 -31
  70. package/dist/node_modules/lodash-es/_baseRest.js +0 -9
  71. package/dist/node_modules/lodash-es/_baseSetToString.js +0 -14
  72. package/dist/node_modules/lodash-es/_cloneArrayBuffer.js +0 -8
  73. package/dist/node_modules/lodash-es/_cloneBuffer.js +0 -9
  74. package/dist/node_modules/lodash-es/_cloneTypedArray.js +0 -8
  75. package/dist/node_modules/lodash-es/_copyArray.js +0 -9
  76. package/dist/node_modules/lodash-es/_copyObject.js +0 -14
  77. package/dist/node_modules/lodash-es/_createAssigner.js +0 -15
  78. package/dist/node_modules/lodash-es/_defineProperty.js +0 -11
  79. package/dist/node_modules/lodash-es/_getPrototype.js +0 -5
  80. package/dist/node_modules/lodash-es/_initCloneObject.js +0 -9
  81. package/dist/node_modules/lodash-es/_nativeKeysIn.js +0 -10
  82. package/dist/node_modules/lodash-es/_overRest.js +0 -15
  83. package/dist/node_modules/lodash-es/_safeGet.js +0 -7
  84. package/dist/node_modules/lodash-es/_setToString.js +0 -6
  85. package/dist/node_modules/lodash-es/_shortOut.js +0 -16
  86. package/dist/node_modules/lodash-es/constant.js +0 -8
  87. package/dist/node_modules/lodash-es/isArrayLikeObject.js +0 -8
  88. package/dist/node_modules/lodash-es/isPlainObject.js +0 -16
  89. package/dist/node_modules/lodash-es/keysIn.js +0 -9
  90. package/dist/node_modules/lodash-es/merge.js +0 -8
  91. package/dist/node_modules/lodash-es/toPlainObject.js +0 -8
  92. package/dist/src/extensions/Blocks/CouponBlock/constants.d.ts +0 -14
  93. package/dist/src/extensions/Blocks/CouponBlock/controls/index.d.ts +0 -108
@@ -1,104 +1,1693 @@
1
- import type { GuidoConfig, TemplateConfig } from '@@/Types/generic';
2
- interface StoreState {
3
- guidoConfig: GuidoConfig;
4
- templateConfig?: TemplateConfig;
1
+ import type { GuidoConfig, GuidoConfigInput, IdentityConfig, PartnerConfig, TemplateConfig, EditorConfig, UIConfig, FeaturesConfig, BlocksConfig, CompilerConfig, CallbacksConfig } from '@@/Types/config';
2
+ interface ConfigStoreState {
3
+ /** Whether the config has been initialized */
4
+ initialized: boolean;
5
+ /** The validated and parsed configuration */
6
+ config: GuidoConfig | null;
5
7
  }
6
- export declare const useConfigStore: import("pinia").StoreDefinition<"guidoConfig", StoreState, {
7
- getVariationId: (state: {
8
- guidoConfig: {
9
- translationsPath: string;
10
- htmlCompilerRules?: ({
11
- type: "replace";
12
- search: string;
13
- replacement: string;
14
- replaceAll?: boolean | undefined;
15
- id: string;
16
- description?: string | undefined;
17
- priority: number;
18
- } | {
19
- type: "regex";
20
- pattern: string;
21
- replacement: string;
22
- flags?: string | undefined;
23
- id: string;
24
- description?: string | undefined;
25
- priority: number;
26
- } | {
27
- type: "remove";
28
- targets: string[] | {
29
- exec: (string: string) => RegExpExecArray | null;
30
- test: (string: string) => boolean;
31
- readonly source: string;
32
- readonly global: boolean;
33
- readonly ignoreCase: boolean;
34
- readonly multiline: boolean;
35
- lastIndex: number;
36
- compile: (pattern: string, flags?: string) => RegExp;
37
- readonly flags: string;
38
- readonly sticky: boolean;
39
- readonly unicode: boolean;
40
- readonly dotAll: boolean;
41
- readonly hasIndices: boolean;
42
- [Symbol.match]: (string: string) => RegExpMatchArray | null;
43
- [Symbol.replace]: {
44
- (string: string, replaceValue: string): string;
45
- (string: string, replacer: (substring: string, ...args: any[]) => string): string;
46
- };
47
- [Symbol.search]: (string: string) => number;
48
- [Symbol.split]: (string: string, limit?: number) => string[];
49
- [Symbol.matchAll]: (str: string) => IterableIterator<RegExpMatchArray>;
50
- }[];
51
- id: string;
52
- description?: string | undefined;
53
- priority: number;
54
- } | {
55
- type: "custom";
56
- processor: (html: string) => string;
57
- id: string;
58
- description?: string | undefined;
59
- priority: number;
60
- })[] | undefined;
61
- ignoreDefaultHtmlCompilerRules?: boolean | undefined;
62
- useHeader?: boolean | undefined;
63
- emailHeader: {
64
- senderName: string;
65
- subject: string;
66
- };
67
- migrationDate: number;
68
- partner?: {
69
- partnerName: string;
70
- productType: number;
71
- messageType: number;
72
- } | undefined;
73
- extensions?: {
74
- unsubscribe?: boolean | undefined;
75
- } | undefined;
76
- features?: {
77
- dynamicContent?: boolean | undefined;
78
- saveAsTemplate?: boolean | undefined;
79
- versionHistory?: boolean | undefined;
80
- testMessage?: boolean | undefined;
81
- displayConditions?: boolean | undefined;
82
- } | undefined;
83
- blocks?: {
84
- excludeDefaults?: import("@@/Types/generic").GuidoBlockType[] | undefined;
85
- includeCustoms?: import("@@/Types/generic").GuidoCustomBlockType[] | undefined;
86
- } | undefined;
87
- backButtonLabel?: string | undefined;
88
- };
89
- templateConfig?: {
90
- preselectedDynamicContentList?: {
91
- value: string;
92
- fallback?: string | undefined;
93
- format?: {
94
- key: string;
95
- value: string;
96
- } | undefined;
97
- text: string;
98
- }[] | undefined;
99
- selectedUnsubscribePages?: number[] | undefined;
100
- variationId?: string | undefined;
101
- } | undefined;
102
- } & import("pinia").PiniaCustomStateProperties<StoreState>) => string;
103
- }, {}>;
8
+ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-config", ConfigStoreState, {
9
+ /**
10
+ * Get the identity configuration
11
+ */
12
+ identity: (state: {
13
+ initialized: boolean;
14
+ config: {
15
+ identity: {
16
+ templateId: string;
17
+ userId: string;
18
+ variationId?: string | undefined;
19
+ };
20
+ partner: {
21
+ name: string;
22
+ productType: 60 | 49 | 97;
23
+ messageType: 1 | 2;
24
+ username: string;
25
+ };
26
+ template: {
27
+ html: string;
28
+ css: string;
29
+ preselectedDynamicContent: {
30
+ text: string;
31
+ value: string;
32
+ fallback?: string | undefined;
33
+ format?: {
34
+ key: string;
35
+ value: string;
36
+ } | undefined;
37
+ }[];
38
+ selectedUnsubscribePages: number[];
39
+ };
40
+ editor: {
41
+ locale: string;
42
+ translationsPath: string;
43
+ migrationDate: number;
44
+ emailHeader: {
45
+ senderName: string;
46
+ subject: string;
47
+ };
48
+ };
49
+ ui: {
50
+ showHeader: boolean;
51
+ backButtonLabel?: string | undefined;
52
+ };
53
+ features: {
54
+ dynamicContent: boolean;
55
+ saveAsTemplate: boolean;
56
+ versionHistory: boolean;
57
+ testMessage: boolean;
58
+ displayConditions: boolean;
59
+ unsubscribe: boolean;
60
+ };
61
+ blocks: {
62
+ 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")[];
63
+ includeCustoms: ("dynamic-content" | "checkbox-block" | "radio-button-block" | "recommendation-block" | "unsubscribe-block" | "coupon-block" | "items-block")[];
64
+ };
65
+ compiler: {
66
+ customRules: ({
67
+ type: "replace";
68
+ search: string;
69
+ replacement: string;
70
+ replaceAll?: boolean | undefined;
71
+ id: string;
72
+ description?: string | undefined;
73
+ priority: number;
74
+ } | {
75
+ type: "regex";
76
+ pattern: string;
77
+ replacement: string;
78
+ flags?: string | undefined;
79
+ id: string;
80
+ description?: string | undefined;
81
+ priority: number;
82
+ } | {
83
+ type: "remove";
84
+ targets: string[];
85
+ id: string;
86
+ description?: string | undefined;
87
+ priority: number;
88
+ } | {
89
+ type: "custom";
90
+ processor: (html: string) => string;
91
+ id: string;
92
+ description?: string | undefined;
93
+ priority: number;
94
+ })[];
95
+ ignoreDefaultRules: boolean;
96
+ };
97
+ callbacks: {
98
+ externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
99
+ };
100
+ } | null;
101
+ } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => IdentityConfig | null;
102
+ /**
103
+ * Get the partner configuration
104
+ */
105
+ partner: (state: {
106
+ initialized: boolean;
107
+ config: {
108
+ identity: {
109
+ templateId: string;
110
+ userId: string;
111
+ variationId?: string | undefined;
112
+ };
113
+ partner: {
114
+ name: string;
115
+ productType: 60 | 49 | 97;
116
+ messageType: 1 | 2;
117
+ username: string;
118
+ };
119
+ template: {
120
+ html: string;
121
+ css: string;
122
+ preselectedDynamicContent: {
123
+ text: string;
124
+ value: string;
125
+ fallback?: string | undefined;
126
+ format?: {
127
+ key: string;
128
+ value: string;
129
+ } | undefined;
130
+ }[];
131
+ selectedUnsubscribePages: number[];
132
+ };
133
+ editor: {
134
+ locale: string;
135
+ translationsPath: string;
136
+ migrationDate: number;
137
+ emailHeader: {
138
+ senderName: string;
139
+ subject: string;
140
+ };
141
+ };
142
+ ui: {
143
+ showHeader: boolean;
144
+ backButtonLabel?: string | undefined;
145
+ };
146
+ features: {
147
+ dynamicContent: boolean;
148
+ saveAsTemplate: boolean;
149
+ versionHistory: boolean;
150
+ testMessage: boolean;
151
+ displayConditions: boolean;
152
+ unsubscribe: boolean;
153
+ };
154
+ blocks: {
155
+ 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")[];
156
+ includeCustoms: ("dynamic-content" | "checkbox-block" | "radio-button-block" | "recommendation-block" | "unsubscribe-block" | "coupon-block" | "items-block")[];
157
+ };
158
+ compiler: {
159
+ customRules: ({
160
+ type: "replace";
161
+ search: string;
162
+ replacement: string;
163
+ replaceAll?: boolean | undefined;
164
+ id: string;
165
+ description?: string | undefined;
166
+ priority: number;
167
+ } | {
168
+ type: "regex";
169
+ pattern: string;
170
+ replacement: string;
171
+ flags?: string | undefined;
172
+ id: string;
173
+ description?: string | undefined;
174
+ priority: number;
175
+ } | {
176
+ type: "remove";
177
+ targets: string[];
178
+ id: string;
179
+ description?: string | undefined;
180
+ priority: number;
181
+ } | {
182
+ type: "custom";
183
+ processor: (html: string) => string;
184
+ id: string;
185
+ description?: string | undefined;
186
+ priority: number;
187
+ })[];
188
+ ignoreDefaultRules: boolean;
189
+ };
190
+ callbacks: {
191
+ externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
192
+ };
193
+ } | null;
194
+ } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => PartnerConfig | null;
195
+ /**
196
+ * Get the template configuration
197
+ */
198
+ template: (state: {
199
+ initialized: boolean;
200
+ config: {
201
+ identity: {
202
+ templateId: string;
203
+ userId: string;
204
+ variationId?: string | undefined;
205
+ };
206
+ partner: {
207
+ name: string;
208
+ productType: 60 | 49 | 97;
209
+ messageType: 1 | 2;
210
+ username: string;
211
+ };
212
+ template: {
213
+ html: string;
214
+ css: string;
215
+ preselectedDynamicContent: {
216
+ text: string;
217
+ value: string;
218
+ fallback?: string | undefined;
219
+ format?: {
220
+ key: string;
221
+ value: string;
222
+ } | undefined;
223
+ }[];
224
+ selectedUnsubscribePages: number[];
225
+ };
226
+ editor: {
227
+ locale: string;
228
+ translationsPath: string;
229
+ migrationDate: number;
230
+ emailHeader: {
231
+ senderName: string;
232
+ subject: string;
233
+ };
234
+ };
235
+ ui: {
236
+ showHeader: boolean;
237
+ backButtonLabel?: string | undefined;
238
+ };
239
+ features: {
240
+ dynamicContent: boolean;
241
+ saveAsTemplate: boolean;
242
+ versionHistory: boolean;
243
+ testMessage: boolean;
244
+ displayConditions: boolean;
245
+ unsubscribe: boolean;
246
+ };
247
+ blocks: {
248
+ 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")[];
249
+ includeCustoms: ("dynamic-content" | "checkbox-block" | "radio-button-block" | "recommendation-block" | "unsubscribe-block" | "coupon-block" | "items-block")[];
250
+ };
251
+ compiler: {
252
+ customRules: ({
253
+ type: "replace";
254
+ search: string;
255
+ replacement: string;
256
+ replaceAll?: boolean | undefined;
257
+ id: string;
258
+ description?: string | undefined;
259
+ priority: number;
260
+ } | {
261
+ type: "regex";
262
+ pattern: string;
263
+ replacement: string;
264
+ flags?: string | undefined;
265
+ id: string;
266
+ description?: string | undefined;
267
+ priority: number;
268
+ } | {
269
+ type: "remove";
270
+ targets: string[];
271
+ id: string;
272
+ description?: string | undefined;
273
+ priority: number;
274
+ } | {
275
+ type: "custom";
276
+ processor: (html: string) => string;
277
+ id: string;
278
+ description?: string | undefined;
279
+ priority: number;
280
+ })[];
281
+ ignoreDefaultRules: boolean;
282
+ };
283
+ callbacks: {
284
+ externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
285
+ };
286
+ } | null;
287
+ } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => TemplateConfig | null;
288
+ /**
289
+ * Get the editor configuration
290
+ */
291
+ editor: (state: {
292
+ initialized: boolean;
293
+ config: {
294
+ identity: {
295
+ templateId: string;
296
+ userId: string;
297
+ variationId?: string | undefined;
298
+ };
299
+ partner: {
300
+ name: string;
301
+ productType: 60 | 49 | 97;
302
+ messageType: 1 | 2;
303
+ username: string;
304
+ };
305
+ template: {
306
+ html: string;
307
+ css: string;
308
+ preselectedDynamicContent: {
309
+ text: string;
310
+ value: string;
311
+ fallback?: string | undefined;
312
+ format?: {
313
+ key: string;
314
+ value: string;
315
+ } | undefined;
316
+ }[];
317
+ selectedUnsubscribePages: number[];
318
+ };
319
+ editor: {
320
+ locale: string;
321
+ translationsPath: string;
322
+ migrationDate: number;
323
+ emailHeader: {
324
+ senderName: string;
325
+ subject: string;
326
+ };
327
+ };
328
+ ui: {
329
+ showHeader: boolean;
330
+ backButtonLabel?: string | undefined;
331
+ };
332
+ features: {
333
+ dynamicContent: boolean;
334
+ saveAsTemplate: boolean;
335
+ versionHistory: boolean;
336
+ testMessage: boolean;
337
+ displayConditions: boolean;
338
+ unsubscribe: boolean;
339
+ };
340
+ blocks: {
341
+ 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")[];
342
+ includeCustoms: ("dynamic-content" | "checkbox-block" | "radio-button-block" | "recommendation-block" | "unsubscribe-block" | "coupon-block" | "items-block")[];
343
+ };
344
+ compiler: {
345
+ customRules: ({
346
+ type: "replace";
347
+ search: string;
348
+ replacement: string;
349
+ replaceAll?: boolean | undefined;
350
+ id: string;
351
+ description?: string | undefined;
352
+ priority: number;
353
+ } | {
354
+ type: "regex";
355
+ pattern: string;
356
+ replacement: string;
357
+ flags?: string | undefined;
358
+ id: string;
359
+ description?: string | undefined;
360
+ priority: number;
361
+ } | {
362
+ type: "remove";
363
+ targets: string[];
364
+ id: string;
365
+ description?: string | undefined;
366
+ priority: number;
367
+ } | {
368
+ type: "custom";
369
+ processor: (html: string) => string;
370
+ id: string;
371
+ description?: string | undefined;
372
+ priority: number;
373
+ })[];
374
+ ignoreDefaultRules: boolean;
375
+ };
376
+ callbacks: {
377
+ externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
378
+ };
379
+ } | null;
380
+ } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => EditorConfig | null;
381
+ /**
382
+ * Get the UI configuration
383
+ */
384
+ ui: (state: {
385
+ initialized: boolean;
386
+ config: {
387
+ identity: {
388
+ templateId: string;
389
+ userId: string;
390
+ variationId?: string | undefined;
391
+ };
392
+ partner: {
393
+ name: string;
394
+ productType: 60 | 49 | 97;
395
+ messageType: 1 | 2;
396
+ username: string;
397
+ };
398
+ template: {
399
+ html: string;
400
+ css: string;
401
+ preselectedDynamicContent: {
402
+ text: string;
403
+ value: string;
404
+ fallback?: string | undefined;
405
+ format?: {
406
+ key: string;
407
+ value: string;
408
+ } | undefined;
409
+ }[];
410
+ selectedUnsubscribePages: number[];
411
+ };
412
+ editor: {
413
+ locale: string;
414
+ translationsPath: string;
415
+ migrationDate: number;
416
+ emailHeader: {
417
+ senderName: string;
418
+ subject: string;
419
+ };
420
+ };
421
+ ui: {
422
+ showHeader: boolean;
423
+ backButtonLabel?: string | undefined;
424
+ };
425
+ features: {
426
+ dynamicContent: boolean;
427
+ saveAsTemplate: boolean;
428
+ versionHistory: boolean;
429
+ testMessage: boolean;
430
+ displayConditions: boolean;
431
+ unsubscribe: boolean;
432
+ };
433
+ blocks: {
434
+ 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")[];
435
+ includeCustoms: ("dynamic-content" | "checkbox-block" | "radio-button-block" | "recommendation-block" | "unsubscribe-block" | "coupon-block" | "items-block")[];
436
+ };
437
+ compiler: {
438
+ customRules: ({
439
+ type: "replace";
440
+ search: string;
441
+ replacement: string;
442
+ replaceAll?: boolean | undefined;
443
+ id: string;
444
+ description?: string | undefined;
445
+ priority: number;
446
+ } | {
447
+ type: "regex";
448
+ pattern: string;
449
+ replacement: string;
450
+ flags?: string | undefined;
451
+ id: string;
452
+ description?: string | undefined;
453
+ priority: number;
454
+ } | {
455
+ type: "remove";
456
+ targets: string[];
457
+ id: string;
458
+ description?: string | undefined;
459
+ priority: number;
460
+ } | {
461
+ type: "custom";
462
+ processor: (html: string) => string;
463
+ id: string;
464
+ description?: string | undefined;
465
+ priority: number;
466
+ })[];
467
+ ignoreDefaultRules: boolean;
468
+ };
469
+ callbacks: {
470
+ externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
471
+ };
472
+ } | null;
473
+ } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => UIConfig | null;
474
+ /**
475
+ * Get the features configuration
476
+ */
477
+ features: (state: {
478
+ initialized: boolean;
479
+ config: {
480
+ identity: {
481
+ templateId: string;
482
+ userId: string;
483
+ variationId?: string | undefined;
484
+ };
485
+ partner: {
486
+ name: string;
487
+ productType: 60 | 49 | 97;
488
+ messageType: 1 | 2;
489
+ username: string;
490
+ };
491
+ template: {
492
+ html: string;
493
+ css: string;
494
+ preselectedDynamicContent: {
495
+ text: string;
496
+ value: string;
497
+ fallback?: string | undefined;
498
+ format?: {
499
+ key: string;
500
+ value: string;
501
+ } | undefined;
502
+ }[];
503
+ selectedUnsubscribePages: number[];
504
+ };
505
+ editor: {
506
+ locale: string;
507
+ translationsPath: string;
508
+ migrationDate: number;
509
+ emailHeader: {
510
+ senderName: string;
511
+ subject: string;
512
+ };
513
+ };
514
+ ui: {
515
+ showHeader: boolean;
516
+ backButtonLabel?: string | undefined;
517
+ };
518
+ features: {
519
+ dynamicContent: boolean;
520
+ saveAsTemplate: boolean;
521
+ versionHistory: boolean;
522
+ testMessage: boolean;
523
+ displayConditions: boolean;
524
+ unsubscribe: boolean;
525
+ };
526
+ blocks: {
527
+ 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")[];
528
+ includeCustoms: ("dynamic-content" | "checkbox-block" | "radio-button-block" | "recommendation-block" | "unsubscribe-block" | "coupon-block" | "items-block")[];
529
+ };
530
+ compiler: {
531
+ customRules: ({
532
+ type: "replace";
533
+ search: string;
534
+ replacement: string;
535
+ replaceAll?: boolean | undefined;
536
+ id: string;
537
+ description?: string | undefined;
538
+ priority: number;
539
+ } | {
540
+ type: "regex";
541
+ pattern: string;
542
+ replacement: string;
543
+ flags?: string | undefined;
544
+ id: string;
545
+ description?: string | undefined;
546
+ priority: number;
547
+ } | {
548
+ type: "remove";
549
+ targets: string[];
550
+ id: string;
551
+ description?: string | undefined;
552
+ priority: number;
553
+ } | {
554
+ type: "custom";
555
+ processor: (html: string) => string;
556
+ id: string;
557
+ description?: string | undefined;
558
+ priority: number;
559
+ })[];
560
+ ignoreDefaultRules: boolean;
561
+ };
562
+ callbacks: {
563
+ externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
564
+ };
565
+ } | null;
566
+ } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => FeaturesConfig | null;
567
+ /**
568
+ * Get the blocks configuration
569
+ */
570
+ blocks: (state: {
571
+ initialized: boolean;
572
+ config: {
573
+ identity: {
574
+ templateId: string;
575
+ userId: string;
576
+ variationId?: string | undefined;
577
+ };
578
+ partner: {
579
+ name: string;
580
+ productType: 60 | 49 | 97;
581
+ messageType: 1 | 2;
582
+ username: string;
583
+ };
584
+ template: {
585
+ html: string;
586
+ css: string;
587
+ preselectedDynamicContent: {
588
+ text: string;
589
+ value: string;
590
+ fallback?: string | undefined;
591
+ format?: {
592
+ key: string;
593
+ value: string;
594
+ } | undefined;
595
+ }[];
596
+ selectedUnsubscribePages: number[];
597
+ };
598
+ editor: {
599
+ locale: string;
600
+ translationsPath: string;
601
+ migrationDate: number;
602
+ emailHeader: {
603
+ senderName: string;
604
+ subject: string;
605
+ };
606
+ };
607
+ ui: {
608
+ showHeader: boolean;
609
+ backButtonLabel?: string | undefined;
610
+ };
611
+ features: {
612
+ dynamicContent: boolean;
613
+ saveAsTemplate: boolean;
614
+ versionHistory: boolean;
615
+ testMessage: boolean;
616
+ displayConditions: boolean;
617
+ unsubscribe: boolean;
618
+ };
619
+ blocks: {
620
+ 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")[];
621
+ includeCustoms: ("dynamic-content" | "checkbox-block" | "radio-button-block" | "recommendation-block" | "unsubscribe-block" | "coupon-block" | "items-block")[];
622
+ };
623
+ compiler: {
624
+ customRules: ({
625
+ type: "replace";
626
+ search: string;
627
+ replacement: string;
628
+ replaceAll?: boolean | undefined;
629
+ id: string;
630
+ description?: string | undefined;
631
+ priority: number;
632
+ } | {
633
+ type: "regex";
634
+ pattern: string;
635
+ replacement: string;
636
+ flags?: string | undefined;
637
+ id: string;
638
+ description?: string | undefined;
639
+ priority: number;
640
+ } | {
641
+ type: "remove";
642
+ targets: string[];
643
+ id: string;
644
+ description?: string | undefined;
645
+ priority: number;
646
+ } | {
647
+ type: "custom";
648
+ processor: (html: string) => string;
649
+ id: string;
650
+ description?: string | undefined;
651
+ priority: number;
652
+ })[];
653
+ ignoreDefaultRules: boolean;
654
+ };
655
+ callbacks: {
656
+ externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
657
+ };
658
+ } | null;
659
+ } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => BlocksConfig | null;
660
+ /**
661
+ * Get the compiler configuration
662
+ */
663
+ compiler: (state: {
664
+ initialized: boolean;
665
+ config: {
666
+ identity: {
667
+ templateId: string;
668
+ userId: string;
669
+ variationId?: string | undefined;
670
+ };
671
+ partner: {
672
+ name: string;
673
+ productType: 60 | 49 | 97;
674
+ messageType: 1 | 2;
675
+ username: string;
676
+ };
677
+ template: {
678
+ html: string;
679
+ css: string;
680
+ preselectedDynamicContent: {
681
+ text: string;
682
+ value: string;
683
+ fallback?: string | undefined;
684
+ format?: {
685
+ key: string;
686
+ value: string;
687
+ } | undefined;
688
+ }[];
689
+ selectedUnsubscribePages: number[];
690
+ };
691
+ editor: {
692
+ locale: string;
693
+ translationsPath: string;
694
+ migrationDate: number;
695
+ emailHeader: {
696
+ senderName: string;
697
+ subject: string;
698
+ };
699
+ };
700
+ ui: {
701
+ showHeader: boolean;
702
+ backButtonLabel?: string | undefined;
703
+ };
704
+ features: {
705
+ dynamicContent: boolean;
706
+ saveAsTemplate: boolean;
707
+ versionHistory: boolean;
708
+ testMessage: boolean;
709
+ displayConditions: boolean;
710
+ unsubscribe: boolean;
711
+ };
712
+ blocks: {
713
+ 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")[];
714
+ includeCustoms: ("dynamic-content" | "checkbox-block" | "radio-button-block" | "recommendation-block" | "unsubscribe-block" | "coupon-block" | "items-block")[];
715
+ };
716
+ compiler: {
717
+ customRules: ({
718
+ type: "replace";
719
+ search: string;
720
+ replacement: string;
721
+ replaceAll?: boolean | undefined;
722
+ id: string;
723
+ description?: string | undefined;
724
+ priority: number;
725
+ } | {
726
+ type: "regex";
727
+ pattern: string;
728
+ replacement: string;
729
+ flags?: string | undefined;
730
+ id: string;
731
+ description?: string | undefined;
732
+ priority: number;
733
+ } | {
734
+ type: "remove";
735
+ targets: string[];
736
+ id: string;
737
+ description?: string | undefined;
738
+ priority: number;
739
+ } | {
740
+ type: "custom";
741
+ processor: (html: string) => string;
742
+ id: string;
743
+ description?: string | undefined;
744
+ priority: number;
745
+ })[];
746
+ ignoreDefaultRules: boolean;
747
+ };
748
+ callbacks: {
749
+ externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
750
+ };
751
+ } | null;
752
+ } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => CompilerConfig | null;
753
+ /**
754
+ * Get the callbacks configuration
755
+ */
756
+ callbacks: (state: {
757
+ initialized: boolean;
758
+ config: {
759
+ identity: {
760
+ templateId: string;
761
+ userId: string;
762
+ variationId?: string | undefined;
763
+ };
764
+ partner: {
765
+ name: string;
766
+ productType: 60 | 49 | 97;
767
+ messageType: 1 | 2;
768
+ username: string;
769
+ };
770
+ template: {
771
+ html: string;
772
+ css: string;
773
+ preselectedDynamicContent: {
774
+ text: string;
775
+ value: string;
776
+ fallback?: string | undefined;
777
+ format?: {
778
+ key: string;
779
+ value: string;
780
+ } | undefined;
781
+ }[];
782
+ selectedUnsubscribePages: number[];
783
+ };
784
+ editor: {
785
+ locale: string;
786
+ translationsPath: string;
787
+ migrationDate: number;
788
+ emailHeader: {
789
+ senderName: string;
790
+ subject: string;
791
+ };
792
+ };
793
+ ui: {
794
+ showHeader: boolean;
795
+ backButtonLabel?: string | undefined;
796
+ };
797
+ features: {
798
+ dynamicContent: boolean;
799
+ saveAsTemplate: boolean;
800
+ versionHistory: boolean;
801
+ testMessage: boolean;
802
+ displayConditions: boolean;
803
+ unsubscribe: boolean;
804
+ };
805
+ blocks: {
806
+ 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")[];
807
+ includeCustoms: ("dynamic-content" | "checkbox-block" | "radio-button-block" | "recommendation-block" | "unsubscribe-block" | "coupon-block" | "items-block")[];
808
+ };
809
+ compiler: {
810
+ customRules: ({
811
+ type: "replace";
812
+ search: string;
813
+ replacement: string;
814
+ replaceAll?: boolean | undefined;
815
+ id: string;
816
+ description?: string | undefined;
817
+ priority: number;
818
+ } | {
819
+ type: "regex";
820
+ pattern: string;
821
+ replacement: string;
822
+ flags?: string | undefined;
823
+ id: string;
824
+ description?: string | undefined;
825
+ priority: number;
826
+ } | {
827
+ type: "remove";
828
+ targets: string[];
829
+ id: string;
830
+ description?: string | undefined;
831
+ priority: number;
832
+ } | {
833
+ type: "custom";
834
+ processor: (html: string) => string;
835
+ id: string;
836
+ description?: string | undefined;
837
+ priority: number;
838
+ })[];
839
+ ignoreDefaultRules: boolean;
840
+ };
841
+ callbacks: {
842
+ externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
843
+ };
844
+ } | null;
845
+ } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => CallbacksConfig | null;
846
+ /**
847
+ * Get the template ID
848
+ */
849
+ templateId: (state: {
850
+ initialized: boolean;
851
+ config: {
852
+ identity: {
853
+ templateId: string;
854
+ userId: string;
855
+ variationId?: string | undefined;
856
+ };
857
+ partner: {
858
+ name: string;
859
+ productType: 60 | 49 | 97;
860
+ messageType: 1 | 2;
861
+ username: string;
862
+ };
863
+ template: {
864
+ html: string;
865
+ css: string;
866
+ preselectedDynamicContent: {
867
+ text: string;
868
+ value: string;
869
+ fallback?: string | undefined;
870
+ format?: {
871
+ key: string;
872
+ value: string;
873
+ } | undefined;
874
+ }[];
875
+ selectedUnsubscribePages: number[];
876
+ };
877
+ editor: {
878
+ locale: string;
879
+ translationsPath: string;
880
+ migrationDate: number;
881
+ emailHeader: {
882
+ senderName: string;
883
+ subject: string;
884
+ };
885
+ };
886
+ ui: {
887
+ showHeader: boolean;
888
+ backButtonLabel?: string | undefined;
889
+ };
890
+ features: {
891
+ dynamicContent: boolean;
892
+ saveAsTemplate: boolean;
893
+ versionHistory: boolean;
894
+ testMessage: boolean;
895
+ displayConditions: boolean;
896
+ unsubscribe: boolean;
897
+ };
898
+ blocks: {
899
+ 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")[];
900
+ includeCustoms: ("dynamic-content" | "checkbox-block" | "radio-button-block" | "recommendation-block" | "unsubscribe-block" | "coupon-block" | "items-block")[];
901
+ };
902
+ compiler: {
903
+ customRules: ({
904
+ type: "replace";
905
+ search: string;
906
+ replacement: string;
907
+ replaceAll?: boolean | undefined;
908
+ id: string;
909
+ description?: string | undefined;
910
+ priority: number;
911
+ } | {
912
+ type: "regex";
913
+ pattern: string;
914
+ replacement: string;
915
+ flags?: string | undefined;
916
+ id: string;
917
+ description?: string | undefined;
918
+ priority: number;
919
+ } | {
920
+ type: "remove";
921
+ targets: string[];
922
+ id: string;
923
+ description?: string | undefined;
924
+ priority: number;
925
+ } | {
926
+ type: "custom";
927
+ processor: (html: string) => string;
928
+ id: string;
929
+ description?: string | undefined;
930
+ priority: number;
931
+ })[];
932
+ ignoreDefaultRules: boolean;
933
+ };
934
+ callbacks: {
935
+ externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
936
+ };
937
+ } | null;
938
+ } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => string;
939
+ /**
940
+ * Get the user ID
941
+ */
942
+ userId: (state: {
943
+ initialized: boolean;
944
+ config: {
945
+ identity: {
946
+ templateId: string;
947
+ userId: string;
948
+ variationId?: string | undefined;
949
+ };
950
+ partner: {
951
+ name: string;
952
+ productType: 60 | 49 | 97;
953
+ messageType: 1 | 2;
954
+ username: string;
955
+ };
956
+ template: {
957
+ html: string;
958
+ css: string;
959
+ preselectedDynamicContent: {
960
+ text: string;
961
+ value: string;
962
+ fallback?: string | undefined;
963
+ format?: {
964
+ key: string;
965
+ value: string;
966
+ } | undefined;
967
+ }[];
968
+ selectedUnsubscribePages: number[];
969
+ };
970
+ editor: {
971
+ locale: string;
972
+ translationsPath: string;
973
+ migrationDate: number;
974
+ emailHeader: {
975
+ senderName: string;
976
+ subject: string;
977
+ };
978
+ };
979
+ ui: {
980
+ showHeader: boolean;
981
+ backButtonLabel?: string | undefined;
982
+ };
983
+ features: {
984
+ dynamicContent: boolean;
985
+ saveAsTemplate: boolean;
986
+ versionHistory: boolean;
987
+ testMessage: boolean;
988
+ displayConditions: boolean;
989
+ unsubscribe: boolean;
990
+ };
991
+ blocks: {
992
+ 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")[];
993
+ includeCustoms: ("dynamic-content" | "checkbox-block" | "radio-button-block" | "recommendation-block" | "unsubscribe-block" | "coupon-block" | "items-block")[];
994
+ };
995
+ compiler: {
996
+ customRules: ({
997
+ type: "replace";
998
+ search: string;
999
+ replacement: string;
1000
+ replaceAll?: boolean | undefined;
1001
+ id: string;
1002
+ description?: string | undefined;
1003
+ priority: number;
1004
+ } | {
1005
+ type: "regex";
1006
+ pattern: string;
1007
+ replacement: string;
1008
+ flags?: string | undefined;
1009
+ id: string;
1010
+ description?: string | undefined;
1011
+ priority: number;
1012
+ } | {
1013
+ type: "remove";
1014
+ targets: string[];
1015
+ id: string;
1016
+ description?: string | undefined;
1017
+ priority: number;
1018
+ } | {
1019
+ type: "custom";
1020
+ processor: (html: string) => string;
1021
+ id: string;
1022
+ description?: string | undefined;
1023
+ priority: number;
1024
+ })[];
1025
+ ignoreDefaultRules: boolean;
1026
+ };
1027
+ callbacks: {
1028
+ externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
1029
+ };
1030
+ } | null;
1031
+ } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => string;
1032
+ /**
1033
+ * Get the variation ID
1034
+ */
1035
+ variationId: (state: {
1036
+ initialized: boolean;
1037
+ config: {
1038
+ identity: {
1039
+ templateId: string;
1040
+ userId: string;
1041
+ variationId?: string | undefined;
1042
+ };
1043
+ partner: {
1044
+ name: string;
1045
+ productType: 60 | 49 | 97;
1046
+ messageType: 1 | 2;
1047
+ username: string;
1048
+ };
1049
+ template: {
1050
+ html: string;
1051
+ css: string;
1052
+ preselectedDynamicContent: {
1053
+ text: string;
1054
+ value: string;
1055
+ fallback?: string | undefined;
1056
+ format?: {
1057
+ key: string;
1058
+ value: string;
1059
+ } | undefined;
1060
+ }[];
1061
+ selectedUnsubscribePages: number[];
1062
+ };
1063
+ editor: {
1064
+ locale: string;
1065
+ translationsPath: string;
1066
+ migrationDate: number;
1067
+ emailHeader: {
1068
+ senderName: string;
1069
+ subject: string;
1070
+ };
1071
+ };
1072
+ ui: {
1073
+ showHeader: boolean;
1074
+ backButtonLabel?: string | undefined;
1075
+ };
1076
+ features: {
1077
+ dynamicContent: boolean;
1078
+ saveAsTemplate: boolean;
1079
+ versionHistory: boolean;
1080
+ testMessage: boolean;
1081
+ displayConditions: boolean;
1082
+ unsubscribe: boolean;
1083
+ };
1084
+ blocks: {
1085
+ 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")[];
1086
+ includeCustoms: ("dynamic-content" | "checkbox-block" | "radio-button-block" | "recommendation-block" | "unsubscribe-block" | "coupon-block" | "items-block")[];
1087
+ };
1088
+ compiler: {
1089
+ customRules: ({
1090
+ type: "replace";
1091
+ search: string;
1092
+ replacement: string;
1093
+ replaceAll?: boolean | undefined;
1094
+ id: string;
1095
+ description?: string | undefined;
1096
+ priority: number;
1097
+ } | {
1098
+ type: "regex";
1099
+ pattern: string;
1100
+ replacement: string;
1101
+ flags?: string | undefined;
1102
+ id: string;
1103
+ description?: string | undefined;
1104
+ priority: number;
1105
+ } | {
1106
+ type: "remove";
1107
+ targets: string[];
1108
+ id: string;
1109
+ description?: string | undefined;
1110
+ priority: number;
1111
+ } | {
1112
+ type: "custom";
1113
+ processor: (html: string) => string;
1114
+ id: string;
1115
+ description?: string | undefined;
1116
+ priority: number;
1117
+ })[];
1118
+ ignoreDefaultRules: boolean;
1119
+ };
1120
+ callbacks: {
1121
+ externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
1122
+ };
1123
+ } | null;
1124
+ } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => string;
1125
+ /**
1126
+ * Get the partner name
1127
+ */
1128
+ partnerName: (state: {
1129
+ initialized: boolean;
1130
+ config: {
1131
+ identity: {
1132
+ templateId: string;
1133
+ userId: string;
1134
+ variationId?: string | undefined;
1135
+ };
1136
+ partner: {
1137
+ name: string;
1138
+ productType: 60 | 49 | 97;
1139
+ messageType: 1 | 2;
1140
+ username: string;
1141
+ };
1142
+ template: {
1143
+ html: string;
1144
+ css: string;
1145
+ preselectedDynamicContent: {
1146
+ text: string;
1147
+ value: string;
1148
+ fallback?: string | undefined;
1149
+ format?: {
1150
+ key: string;
1151
+ value: string;
1152
+ } | undefined;
1153
+ }[];
1154
+ selectedUnsubscribePages: number[];
1155
+ };
1156
+ editor: {
1157
+ locale: string;
1158
+ translationsPath: string;
1159
+ migrationDate: number;
1160
+ emailHeader: {
1161
+ senderName: string;
1162
+ subject: string;
1163
+ };
1164
+ };
1165
+ ui: {
1166
+ showHeader: boolean;
1167
+ backButtonLabel?: string | undefined;
1168
+ };
1169
+ features: {
1170
+ dynamicContent: boolean;
1171
+ saveAsTemplate: boolean;
1172
+ versionHistory: boolean;
1173
+ testMessage: boolean;
1174
+ displayConditions: boolean;
1175
+ unsubscribe: boolean;
1176
+ };
1177
+ blocks: {
1178
+ 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")[];
1179
+ includeCustoms: ("dynamic-content" | "checkbox-block" | "radio-button-block" | "recommendation-block" | "unsubscribe-block" | "coupon-block" | "items-block")[];
1180
+ };
1181
+ compiler: {
1182
+ customRules: ({
1183
+ type: "replace";
1184
+ search: string;
1185
+ replacement: string;
1186
+ replaceAll?: boolean | undefined;
1187
+ id: string;
1188
+ description?: string | undefined;
1189
+ priority: number;
1190
+ } | {
1191
+ type: "regex";
1192
+ pattern: string;
1193
+ replacement: string;
1194
+ flags?: string | undefined;
1195
+ id: string;
1196
+ description?: string | undefined;
1197
+ priority: number;
1198
+ } | {
1199
+ type: "remove";
1200
+ targets: string[];
1201
+ id: string;
1202
+ description?: string | undefined;
1203
+ priority: number;
1204
+ } | {
1205
+ type: "custom";
1206
+ processor: (html: string) => string;
1207
+ id: string;
1208
+ description?: string | undefined;
1209
+ priority: number;
1210
+ })[];
1211
+ ignoreDefaultRules: boolean;
1212
+ };
1213
+ callbacks: {
1214
+ externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
1215
+ };
1216
+ } | null;
1217
+ } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => string;
1218
+ /**
1219
+ * Get the product type
1220
+ */
1221
+ productType: (state: {
1222
+ initialized: boolean;
1223
+ config: {
1224
+ identity: {
1225
+ templateId: string;
1226
+ userId: string;
1227
+ variationId?: string | undefined;
1228
+ };
1229
+ partner: {
1230
+ name: string;
1231
+ productType: 60 | 49 | 97;
1232
+ messageType: 1 | 2;
1233
+ username: string;
1234
+ };
1235
+ template: {
1236
+ html: string;
1237
+ css: string;
1238
+ preselectedDynamicContent: {
1239
+ text: string;
1240
+ value: string;
1241
+ fallback?: string | undefined;
1242
+ format?: {
1243
+ key: string;
1244
+ value: string;
1245
+ } | undefined;
1246
+ }[];
1247
+ selectedUnsubscribePages: number[];
1248
+ };
1249
+ editor: {
1250
+ locale: string;
1251
+ translationsPath: string;
1252
+ migrationDate: number;
1253
+ emailHeader: {
1254
+ senderName: string;
1255
+ subject: string;
1256
+ };
1257
+ };
1258
+ ui: {
1259
+ showHeader: boolean;
1260
+ backButtonLabel?: string | undefined;
1261
+ };
1262
+ features: {
1263
+ dynamicContent: boolean;
1264
+ saveAsTemplate: boolean;
1265
+ versionHistory: boolean;
1266
+ testMessage: boolean;
1267
+ displayConditions: boolean;
1268
+ unsubscribe: boolean;
1269
+ };
1270
+ blocks: {
1271
+ 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")[];
1272
+ includeCustoms: ("dynamic-content" | "checkbox-block" | "radio-button-block" | "recommendation-block" | "unsubscribe-block" | "coupon-block" | "items-block")[];
1273
+ };
1274
+ compiler: {
1275
+ customRules: ({
1276
+ type: "replace";
1277
+ search: string;
1278
+ replacement: string;
1279
+ replaceAll?: boolean | undefined;
1280
+ id: string;
1281
+ description?: string | undefined;
1282
+ priority: number;
1283
+ } | {
1284
+ type: "regex";
1285
+ pattern: string;
1286
+ replacement: string;
1287
+ flags?: string | undefined;
1288
+ id: string;
1289
+ description?: string | undefined;
1290
+ priority: number;
1291
+ } | {
1292
+ type: "remove";
1293
+ targets: string[];
1294
+ id: string;
1295
+ description?: string | undefined;
1296
+ priority: number;
1297
+ } | {
1298
+ type: "custom";
1299
+ processor: (html: string) => string;
1300
+ id: string;
1301
+ description?: string | undefined;
1302
+ priority: number;
1303
+ })[];
1304
+ ignoreDefaultRules: boolean;
1305
+ };
1306
+ callbacks: {
1307
+ externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
1308
+ };
1309
+ } | null;
1310
+ } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => number;
1311
+ /**
1312
+ * Get the message type
1313
+ */
1314
+ messageType: (state: {
1315
+ initialized: boolean;
1316
+ config: {
1317
+ identity: {
1318
+ templateId: string;
1319
+ userId: string;
1320
+ variationId?: string | undefined;
1321
+ };
1322
+ partner: {
1323
+ name: string;
1324
+ productType: 60 | 49 | 97;
1325
+ messageType: 1 | 2;
1326
+ username: string;
1327
+ };
1328
+ template: {
1329
+ html: string;
1330
+ css: string;
1331
+ preselectedDynamicContent: {
1332
+ text: string;
1333
+ value: string;
1334
+ fallback?: string | undefined;
1335
+ format?: {
1336
+ key: string;
1337
+ value: string;
1338
+ } | undefined;
1339
+ }[];
1340
+ selectedUnsubscribePages: number[];
1341
+ };
1342
+ editor: {
1343
+ locale: string;
1344
+ translationsPath: string;
1345
+ migrationDate: number;
1346
+ emailHeader: {
1347
+ senderName: string;
1348
+ subject: string;
1349
+ };
1350
+ };
1351
+ ui: {
1352
+ showHeader: boolean;
1353
+ backButtonLabel?: string | undefined;
1354
+ };
1355
+ features: {
1356
+ dynamicContent: boolean;
1357
+ saveAsTemplate: boolean;
1358
+ versionHistory: boolean;
1359
+ testMessage: boolean;
1360
+ displayConditions: boolean;
1361
+ unsubscribe: boolean;
1362
+ };
1363
+ blocks: {
1364
+ 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")[];
1365
+ includeCustoms: ("dynamic-content" | "checkbox-block" | "radio-button-block" | "recommendation-block" | "unsubscribe-block" | "coupon-block" | "items-block")[];
1366
+ };
1367
+ compiler: {
1368
+ customRules: ({
1369
+ type: "replace";
1370
+ search: string;
1371
+ replacement: string;
1372
+ replaceAll?: boolean | undefined;
1373
+ id: string;
1374
+ description?: string | undefined;
1375
+ priority: number;
1376
+ } | {
1377
+ type: "regex";
1378
+ pattern: string;
1379
+ replacement: string;
1380
+ flags?: string | undefined;
1381
+ id: string;
1382
+ description?: string | undefined;
1383
+ priority: number;
1384
+ } | {
1385
+ type: "remove";
1386
+ targets: string[];
1387
+ id: string;
1388
+ description?: string | undefined;
1389
+ priority: number;
1390
+ } | {
1391
+ type: "custom";
1392
+ processor: (html: string) => string;
1393
+ id: string;
1394
+ description?: string | undefined;
1395
+ priority: number;
1396
+ })[];
1397
+ ignoreDefaultRules: boolean;
1398
+ };
1399
+ callbacks: {
1400
+ externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
1401
+ };
1402
+ } | null;
1403
+ } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => number;
1404
+ /**
1405
+ * Get the username
1406
+ */
1407
+ username: (state: {
1408
+ initialized: boolean;
1409
+ config: {
1410
+ identity: {
1411
+ templateId: string;
1412
+ userId: string;
1413
+ variationId?: string | undefined;
1414
+ };
1415
+ partner: {
1416
+ name: string;
1417
+ productType: 60 | 49 | 97;
1418
+ messageType: 1 | 2;
1419
+ username: string;
1420
+ };
1421
+ template: {
1422
+ html: string;
1423
+ css: string;
1424
+ preselectedDynamicContent: {
1425
+ text: string;
1426
+ value: string;
1427
+ fallback?: string | undefined;
1428
+ format?: {
1429
+ key: string;
1430
+ value: string;
1431
+ } | undefined;
1432
+ }[];
1433
+ selectedUnsubscribePages: number[];
1434
+ };
1435
+ editor: {
1436
+ locale: string;
1437
+ translationsPath: string;
1438
+ migrationDate: number;
1439
+ emailHeader: {
1440
+ senderName: string;
1441
+ subject: string;
1442
+ };
1443
+ };
1444
+ ui: {
1445
+ showHeader: boolean;
1446
+ backButtonLabel?: string | undefined;
1447
+ };
1448
+ features: {
1449
+ dynamicContent: boolean;
1450
+ saveAsTemplate: boolean;
1451
+ versionHistory: boolean;
1452
+ testMessage: boolean;
1453
+ displayConditions: boolean;
1454
+ unsubscribe: boolean;
1455
+ };
1456
+ blocks: {
1457
+ 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")[];
1458
+ includeCustoms: ("dynamic-content" | "checkbox-block" | "radio-button-block" | "recommendation-block" | "unsubscribe-block" | "coupon-block" | "items-block")[];
1459
+ };
1460
+ compiler: {
1461
+ customRules: ({
1462
+ type: "replace";
1463
+ search: string;
1464
+ replacement: string;
1465
+ replaceAll?: boolean | undefined;
1466
+ id: string;
1467
+ description?: string | undefined;
1468
+ priority: number;
1469
+ } | {
1470
+ type: "regex";
1471
+ pattern: string;
1472
+ replacement: string;
1473
+ flags?: string | undefined;
1474
+ id: string;
1475
+ description?: string | undefined;
1476
+ priority: number;
1477
+ } | {
1478
+ type: "remove";
1479
+ targets: string[];
1480
+ id: string;
1481
+ description?: string | undefined;
1482
+ priority: number;
1483
+ } | {
1484
+ type: "custom";
1485
+ processor: (html: string) => string;
1486
+ id: string;
1487
+ description?: string | undefined;
1488
+ priority: number;
1489
+ })[];
1490
+ ignoreDefaultRules: boolean;
1491
+ };
1492
+ callbacks: {
1493
+ externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
1494
+ };
1495
+ } | null;
1496
+ } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => string;
1497
+ /**
1498
+ * Check if header should be shown
1499
+ */
1500
+ showHeader: (state: {
1501
+ initialized: boolean;
1502
+ config: {
1503
+ identity: {
1504
+ templateId: string;
1505
+ userId: string;
1506
+ variationId?: string | undefined;
1507
+ };
1508
+ partner: {
1509
+ name: string;
1510
+ productType: 60 | 49 | 97;
1511
+ messageType: 1 | 2;
1512
+ username: string;
1513
+ };
1514
+ template: {
1515
+ html: string;
1516
+ css: string;
1517
+ preselectedDynamicContent: {
1518
+ text: string;
1519
+ value: string;
1520
+ fallback?: string | undefined;
1521
+ format?: {
1522
+ key: string;
1523
+ value: string;
1524
+ } | undefined;
1525
+ }[];
1526
+ selectedUnsubscribePages: number[];
1527
+ };
1528
+ editor: {
1529
+ locale: string;
1530
+ translationsPath: string;
1531
+ migrationDate: number;
1532
+ emailHeader: {
1533
+ senderName: string;
1534
+ subject: string;
1535
+ };
1536
+ };
1537
+ ui: {
1538
+ showHeader: boolean;
1539
+ backButtonLabel?: string | undefined;
1540
+ };
1541
+ features: {
1542
+ dynamicContent: boolean;
1543
+ saveAsTemplate: boolean;
1544
+ versionHistory: boolean;
1545
+ testMessage: boolean;
1546
+ displayConditions: boolean;
1547
+ unsubscribe: boolean;
1548
+ };
1549
+ blocks: {
1550
+ 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")[];
1551
+ includeCustoms: ("dynamic-content" | "checkbox-block" | "radio-button-block" | "recommendation-block" | "unsubscribe-block" | "coupon-block" | "items-block")[];
1552
+ };
1553
+ compiler: {
1554
+ customRules: ({
1555
+ type: "replace";
1556
+ search: string;
1557
+ replacement: string;
1558
+ replaceAll?: boolean | undefined;
1559
+ id: string;
1560
+ description?: string | undefined;
1561
+ priority: number;
1562
+ } | {
1563
+ type: "regex";
1564
+ pattern: string;
1565
+ replacement: string;
1566
+ flags?: string | undefined;
1567
+ id: string;
1568
+ description?: string | undefined;
1569
+ priority: number;
1570
+ } | {
1571
+ type: "remove";
1572
+ targets: string[];
1573
+ id: string;
1574
+ description?: string | undefined;
1575
+ priority: number;
1576
+ } | {
1577
+ type: "custom";
1578
+ processor: (html: string) => string;
1579
+ id: string;
1580
+ description?: string | undefined;
1581
+ priority: number;
1582
+ })[];
1583
+ ignoreDefaultRules: boolean;
1584
+ };
1585
+ callbacks: {
1586
+ externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
1587
+ };
1588
+ } | null;
1589
+ } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => boolean;
1590
+ /**
1591
+ * Check if a specific feature is enabled
1592
+ */
1593
+ isFeatureEnabled: (state: {
1594
+ initialized: boolean;
1595
+ config: {
1596
+ identity: {
1597
+ templateId: string;
1598
+ userId: string;
1599
+ variationId?: string | undefined;
1600
+ };
1601
+ partner: {
1602
+ name: string;
1603
+ productType: 60 | 49 | 97;
1604
+ messageType: 1 | 2;
1605
+ username: string;
1606
+ };
1607
+ template: {
1608
+ html: string;
1609
+ css: string;
1610
+ preselectedDynamicContent: {
1611
+ text: string;
1612
+ value: string;
1613
+ fallback?: string | undefined;
1614
+ format?: {
1615
+ key: string;
1616
+ value: string;
1617
+ } | undefined;
1618
+ }[];
1619
+ selectedUnsubscribePages: number[];
1620
+ };
1621
+ editor: {
1622
+ locale: string;
1623
+ translationsPath: string;
1624
+ migrationDate: number;
1625
+ emailHeader: {
1626
+ senderName: string;
1627
+ subject: string;
1628
+ };
1629
+ };
1630
+ ui: {
1631
+ showHeader: boolean;
1632
+ backButtonLabel?: string | undefined;
1633
+ };
1634
+ features: {
1635
+ dynamicContent: boolean;
1636
+ saveAsTemplate: boolean;
1637
+ versionHistory: boolean;
1638
+ testMessage: boolean;
1639
+ displayConditions: boolean;
1640
+ unsubscribe: boolean;
1641
+ };
1642
+ blocks: {
1643
+ 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")[];
1644
+ includeCustoms: ("dynamic-content" | "checkbox-block" | "radio-button-block" | "recommendation-block" | "unsubscribe-block" | "coupon-block" | "items-block")[];
1645
+ };
1646
+ compiler: {
1647
+ customRules: ({
1648
+ type: "replace";
1649
+ search: string;
1650
+ replacement: string;
1651
+ replaceAll?: boolean | undefined;
1652
+ id: string;
1653
+ description?: string | undefined;
1654
+ priority: number;
1655
+ } | {
1656
+ type: "regex";
1657
+ pattern: string;
1658
+ replacement: string;
1659
+ flags?: string | undefined;
1660
+ id: string;
1661
+ description?: string | undefined;
1662
+ priority: number;
1663
+ } | {
1664
+ type: "remove";
1665
+ targets: string[];
1666
+ id: string;
1667
+ description?: string | undefined;
1668
+ priority: number;
1669
+ } | {
1670
+ type: "custom";
1671
+ processor: (html: string) => string;
1672
+ id: string;
1673
+ description?: string | undefined;
1674
+ priority: number;
1675
+ })[];
1676
+ ignoreDefaultRules: boolean;
1677
+ };
1678
+ callbacks: {
1679
+ externalValidation?: import("@@/Types/config").ExternalValidationHandler | undefined;
1680
+ };
1681
+ } | null;
1682
+ } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => (feature: keyof FeaturesConfig) => boolean;
1683
+ }, {
1684
+ /**
1685
+ * Initialize the config store with validated configuration
1686
+ */
1687
+ init(input: GuidoConfigInput): void;
1688
+ /**
1689
+ * Reset the config store
1690
+ */
1691
+ reset(): void;
1692
+ }>;
104
1693
  export {};