@useinsider/guido 1.3.1-beta.cf510dd → 1.4.1-beta.49e531a

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