@useinsider/guido 3.1.1-beta.a7d73f2 → 3.1.1-beta.a80cc5e
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/@types/config/schemas.js +66 -56
- package/dist/components/organisms/email-preview/desktop-preview/EmailSizeIndicator.vue.js +7 -7
- package/dist/components/organisms/email-preview/desktop-preview/EmailSizeIndicator.vue2.js +12 -20
- package/dist/composables/useHtmlCompiler.js +20 -20
- package/dist/composables/useHtmlValidator.js +40 -38
- package/dist/composables/usePreviewMode.js +20 -16
- package/dist/composables/useSave.js +15 -13
- package/dist/config/compiler/unsubscribeCompilerRules.js +37 -37
- package/dist/config/i18n/en/tooltips.json.js +2 -1
- package/dist/config/migrator/checkboxMigrator.js +5 -3
- package/dist/config/migrator/radioButtonMigrator.js +14 -12
- package/dist/extensions/Blocks/Recommendation/block.js +1 -1
- package/dist/extensions/Blocks/Recommendation/constants/selectors.js +27 -11
- package/dist/extensions/Blocks/Recommendation/controls/cardComposition/index.js +185 -172
- package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +95 -93
- package/dist/extensions/Blocks/Recommendation/controls/spacing/index.js +75 -73
- package/dist/extensions/Blocks/Recommendation/templates/grid/elementRenderer.js +7 -5
- package/dist/extensions/Blocks/Recommendation/templates/grid/template.js +30 -29
- package/dist/extensions/Blocks/Recommendation/templates/index.js +7 -7
- package/dist/extensions/Blocks/Recommendation/templates/list/elementRenderer.js +3 -1
- package/dist/extensions/Blocks/Recommendation/templates/list/template.js +20 -20
- package/dist/extensions/Blocks/Recommendation/templates/utils.js +57 -50
- package/dist/extensions/Blocks/Recommendation/utils/tagName.js +6 -6
- package/dist/extensions/Blocks/Unsubscribe/settingsPanel.js +16 -17
- package/dist/guido.css +1 -1
- package/dist/src/@types/config/index.d.ts +1 -1
- package/dist/src/@types/config/schemas.d.ts +24 -0
- package/dist/src/@types/config/types.d.ts +3 -1
- package/dist/src/composables/useConfig.d.ts +10 -0
- package/dist/src/extensions/Blocks/Recommendation/constants/index.d.ts +1 -1
- package/dist/src/extensions/Blocks/Recommendation/constants/selectors.d.ts +5 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/cardComposition/index.d.ts +5 -0
- package/dist/src/extensions/Blocks/Recommendation/templates/grid/template.d.ts +4 -4
- package/dist/src/extensions/Blocks/Recommendation/templates/list/template.d.ts +3 -3
- package/dist/src/extensions/Blocks/Recommendation/templates/utils.d.ts +20 -3
- package/dist/src/stores/config.d.ts +90 -0
- package/dist/src/stores/preview.d.ts +3 -0
- package/dist/src/utils/htmlCompiler.d.ts +2 -1
- package/dist/stores/preview.js +4 -3
- package/dist/utils/htmlCompiler.js +48 -41
- package/dist/utils/templatePreparation.js +20 -20
- package/package.json +1 -1
|
@@ -22,6 +22,10 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
22
22
|
productType: 60 | 49 | 97;
|
|
23
23
|
messageType: 1 | 2;
|
|
24
24
|
username: string;
|
|
25
|
+
fallbackFont?: {
|
|
26
|
+
name: string;
|
|
27
|
+
family: string;
|
|
28
|
+
} | undefined;
|
|
25
29
|
};
|
|
26
30
|
template: {
|
|
27
31
|
html: string;
|
|
@@ -35,6 +39,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
35
39
|
value: string;
|
|
36
40
|
} | undefined;
|
|
37
41
|
}[];
|
|
42
|
+
customFieldAttributes: string[];
|
|
38
43
|
selectedUnsubscribePages: number[];
|
|
39
44
|
forceRecreate: boolean;
|
|
40
45
|
};
|
|
@@ -119,6 +124,10 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
119
124
|
productType: 60 | 49 | 97;
|
|
120
125
|
messageType: 1 | 2;
|
|
121
126
|
username: string;
|
|
127
|
+
fallbackFont?: {
|
|
128
|
+
name: string;
|
|
129
|
+
family: string;
|
|
130
|
+
} | undefined;
|
|
122
131
|
};
|
|
123
132
|
template: {
|
|
124
133
|
html: string;
|
|
@@ -132,6 +141,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
132
141
|
value: string;
|
|
133
142
|
} | undefined;
|
|
134
143
|
}[];
|
|
144
|
+
customFieldAttributes: string[];
|
|
135
145
|
selectedUnsubscribePages: number[];
|
|
136
146
|
forceRecreate: boolean;
|
|
137
147
|
};
|
|
@@ -216,6 +226,10 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
216
226
|
productType: 60 | 49 | 97;
|
|
217
227
|
messageType: 1 | 2;
|
|
218
228
|
username: string;
|
|
229
|
+
fallbackFont?: {
|
|
230
|
+
name: string;
|
|
231
|
+
family: string;
|
|
232
|
+
} | undefined;
|
|
219
233
|
};
|
|
220
234
|
template: {
|
|
221
235
|
html: string;
|
|
@@ -229,6 +243,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
229
243
|
value: string;
|
|
230
244
|
} | undefined;
|
|
231
245
|
}[];
|
|
246
|
+
customFieldAttributes: string[];
|
|
232
247
|
selectedUnsubscribePages: number[];
|
|
233
248
|
forceRecreate: boolean;
|
|
234
249
|
};
|
|
@@ -313,6 +328,10 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
313
328
|
productType: 60 | 49 | 97;
|
|
314
329
|
messageType: 1 | 2;
|
|
315
330
|
username: string;
|
|
331
|
+
fallbackFont?: {
|
|
332
|
+
name: string;
|
|
333
|
+
family: string;
|
|
334
|
+
} | undefined;
|
|
316
335
|
};
|
|
317
336
|
template: {
|
|
318
337
|
html: string;
|
|
@@ -326,6 +345,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
326
345
|
value: string;
|
|
327
346
|
} | undefined;
|
|
328
347
|
}[];
|
|
348
|
+
customFieldAttributes: string[];
|
|
329
349
|
selectedUnsubscribePages: number[];
|
|
330
350
|
forceRecreate: boolean;
|
|
331
351
|
};
|
|
@@ -410,6 +430,10 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
410
430
|
productType: 60 | 49 | 97;
|
|
411
431
|
messageType: 1 | 2;
|
|
412
432
|
username: string;
|
|
433
|
+
fallbackFont?: {
|
|
434
|
+
name: string;
|
|
435
|
+
family: string;
|
|
436
|
+
} | undefined;
|
|
413
437
|
};
|
|
414
438
|
template: {
|
|
415
439
|
html: string;
|
|
@@ -423,6 +447,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
423
447
|
value: string;
|
|
424
448
|
} | undefined;
|
|
425
449
|
}[];
|
|
450
|
+
customFieldAttributes: string[];
|
|
426
451
|
selectedUnsubscribePages: number[];
|
|
427
452
|
forceRecreate: boolean;
|
|
428
453
|
};
|
|
@@ -507,6 +532,10 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
507
532
|
productType: 60 | 49 | 97;
|
|
508
533
|
messageType: 1 | 2;
|
|
509
534
|
username: string;
|
|
535
|
+
fallbackFont?: {
|
|
536
|
+
name: string;
|
|
537
|
+
family: string;
|
|
538
|
+
} | undefined;
|
|
510
539
|
};
|
|
511
540
|
template: {
|
|
512
541
|
html: string;
|
|
@@ -520,6 +549,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
520
549
|
value: string;
|
|
521
550
|
} | undefined;
|
|
522
551
|
}[];
|
|
552
|
+
customFieldAttributes: string[];
|
|
523
553
|
selectedUnsubscribePages: number[];
|
|
524
554
|
forceRecreate: boolean;
|
|
525
555
|
};
|
|
@@ -604,6 +634,10 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
604
634
|
productType: 60 | 49 | 97;
|
|
605
635
|
messageType: 1 | 2;
|
|
606
636
|
username: string;
|
|
637
|
+
fallbackFont?: {
|
|
638
|
+
name: string;
|
|
639
|
+
family: string;
|
|
640
|
+
} | undefined;
|
|
607
641
|
};
|
|
608
642
|
template: {
|
|
609
643
|
html: string;
|
|
@@ -617,6 +651,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
617
651
|
value: string;
|
|
618
652
|
} | undefined;
|
|
619
653
|
}[];
|
|
654
|
+
customFieldAttributes: string[];
|
|
620
655
|
selectedUnsubscribePages: number[];
|
|
621
656
|
forceRecreate: boolean;
|
|
622
657
|
};
|
|
@@ -701,6 +736,10 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
701
736
|
productType: 60 | 49 | 97;
|
|
702
737
|
messageType: 1 | 2;
|
|
703
738
|
username: string;
|
|
739
|
+
fallbackFont?: {
|
|
740
|
+
name: string;
|
|
741
|
+
family: string;
|
|
742
|
+
} | undefined;
|
|
704
743
|
};
|
|
705
744
|
template: {
|
|
706
745
|
html: string;
|
|
@@ -714,6 +753,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
714
753
|
value: string;
|
|
715
754
|
} | undefined;
|
|
716
755
|
}[];
|
|
756
|
+
customFieldAttributes: string[];
|
|
717
757
|
selectedUnsubscribePages: number[];
|
|
718
758
|
forceRecreate: boolean;
|
|
719
759
|
};
|
|
@@ -798,6 +838,10 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
798
838
|
productType: 60 | 49 | 97;
|
|
799
839
|
messageType: 1 | 2;
|
|
800
840
|
username: string;
|
|
841
|
+
fallbackFont?: {
|
|
842
|
+
name: string;
|
|
843
|
+
family: string;
|
|
844
|
+
} | undefined;
|
|
801
845
|
};
|
|
802
846
|
template: {
|
|
803
847
|
html: string;
|
|
@@ -811,6 +855,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
811
855
|
value: string;
|
|
812
856
|
} | undefined;
|
|
813
857
|
}[];
|
|
858
|
+
customFieldAttributes: string[];
|
|
814
859
|
selectedUnsubscribePages: number[];
|
|
815
860
|
forceRecreate: boolean;
|
|
816
861
|
};
|
|
@@ -895,6 +940,10 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
895
940
|
productType: 60 | 49 | 97;
|
|
896
941
|
messageType: 1 | 2;
|
|
897
942
|
username: string;
|
|
943
|
+
fallbackFont?: {
|
|
944
|
+
name: string;
|
|
945
|
+
family: string;
|
|
946
|
+
} | undefined;
|
|
898
947
|
};
|
|
899
948
|
template: {
|
|
900
949
|
html: string;
|
|
@@ -908,6 +957,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
908
957
|
value: string;
|
|
909
958
|
} | undefined;
|
|
910
959
|
}[];
|
|
960
|
+
customFieldAttributes: string[];
|
|
911
961
|
selectedUnsubscribePages: number[];
|
|
912
962
|
forceRecreate: boolean;
|
|
913
963
|
};
|
|
@@ -992,6 +1042,10 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
992
1042
|
productType: 60 | 49 | 97;
|
|
993
1043
|
messageType: 1 | 2;
|
|
994
1044
|
username: string;
|
|
1045
|
+
fallbackFont?: {
|
|
1046
|
+
name: string;
|
|
1047
|
+
family: string;
|
|
1048
|
+
} | undefined;
|
|
995
1049
|
};
|
|
996
1050
|
template: {
|
|
997
1051
|
html: string;
|
|
@@ -1005,6 +1059,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
1005
1059
|
value: string;
|
|
1006
1060
|
} | undefined;
|
|
1007
1061
|
}[];
|
|
1062
|
+
customFieldAttributes: string[];
|
|
1008
1063
|
selectedUnsubscribePages: number[];
|
|
1009
1064
|
forceRecreate: boolean;
|
|
1010
1065
|
};
|
|
@@ -1089,6 +1144,10 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
1089
1144
|
productType: 60 | 49 | 97;
|
|
1090
1145
|
messageType: 1 | 2;
|
|
1091
1146
|
username: string;
|
|
1147
|
+
fallbackFont?: {
|
|
1148
|
+
name: string;
|
|
1149
|
+
family: string;
|
|
1150
|
+
} | undefined;
|
|
1092
1151
|
};
|
|
1093
1152
|
template: {
|
|
1094
1153
|
html: string;
|
|
@@ -1102,6 +1161,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
1102
1161
|
value: string;
|
|
1103
1162
|
} | undefined;
|
|
1104
1163
|
}[];
|
|
1164
|
+
customFieldAttributes: string[];
|
|
1105
1165
|
selectedUnsubscribePages: number[];
|
|
1106
1166
|
forceRecreate: boolean;
|
|
1107
1167
|
};
|
|
@@ -1186,6 +1246,10 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
1186
1246
|
productType: 60 | 49 | 97;
|
|
1187
1247
|
messageType: 1 | 2;
|
|
1188
1248
|
username: string;
|
|
1249
|
+
fallbackFont?: {
|
|
1250
|
+
name: string;
|
|
1251
|
+
family: string;
|
|
1252
|
+
} | undefined;
|
|
1189
1253
|
};
|
|
1190
1254
|
template: {
|
|
1191
1255
|
html: string;
|
|
@@ -1199,6 +1263,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
1199
1263
|
value: string;
|
|
1200
1264
|
} | undefined;
|
|
1201
1265
|
}[];
|
|
1266
|
+
customFieldAttributes: string[];
|
|
1202
1267
|
selectedUnsubscribePages: number[];
|
|
1203
1268
|
forceRecreate: boolean;
|
|
1204
1269
|
};
|
|
@@ -1283,6 +1348,10 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
1283
1348
|
productType: 60 | 49 | 97;
|
|
1284
1349
|
messageType: 1 | 2;
|
|
1285
1350
|
username: string;
|
|
1351
|
+
fallbackFont?: {
|
|
1352
|
+
name: string;
|
|
1353
|
+
family: string;
|
|
1354
|
+
} | undefined;
|
|
1286
1355
|
};
|
|
1287
1356
|
template: {
|
|
1288
1357
|
html: string;
|
|
@@ -1296,6 +1365,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
1296
1365
|
value: string;
|
|
1297
1366
|
} | undefined;
|
|
1298
1367
|
}[];
|
|
1368
|
+
customFieldAttributes: string[];
|
|
1299
1369
|
selectedUnsubscribePages: number[];
|
|
1300
1370
|
forceRecreate: boolean;
|
|
1301
1371
|
};
|
|
@@ -1380,6 +1450,10 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
1380
1450
|
productType: 60 | 49 | 97;
|
|
1381
1451
|
messageType: 1 | 2;
|
|
1382
1452
|
username: string;
|
|
1453
|
+
fallbackFont?: {
|
|
1454
|
+
name: string;
|
|
1455
|
+
family: string;
|
|
1456
|
+
} | undefined;
|
|
1383
1457
|
};
|
|
1384
1458
|
template: {
|
|
1385
1459
|
html: string;
|
|
@@ -1393,6 +1467,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
1393
1467
|
value: string;
|
|
1394
1468
|
} | undefined;
|
|
1395
1469
|
}[];
|
|
1470
|
+
customFieldAttributes: string[];
|
|
1396
1471
|
selectedUnsubscribePages: number[];
|
|
1397
1472
|
forceRecreate: boolean;
|
|
1398
1473
|
};
|
|
@@ -1477,6 +1552,10 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
1477
1552
|
productType: 60 | 49 | 97;
|
|
1478
1553
|
messageType: 1 | 2;
|
|
1479
1554
|
username: string;
|
|
1555
|
+
fallbackFont?: {
|
|
1556
|
+
name: string;
|
|
1557
|
+
family: string;
|
|
1558
|
+
} | undefined;
|
|
1480
1559
|
};
|
|
1481
1560
|
template: {
|
|
1482
1561
|
html: string;
|
|
@@ -1490,6 +1569,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
1490
1569
|
value: string;
|
|
1491
1570
|
} | undefined;
|
|
1492
1571
|
}[];
|
|
1572
|
+
customFieldAttributes: string[];
|
|
1493
1573
|
selectedUnsubscribePages: number[];
|
|
1494
1574
|
forceRecreate: boolean;
|
|
1495
1575
|
};
|
|
@@ -1574,6 +1654,10 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
1574
1654
|
productType: 60 | 49 | 97;
|
|
1575
1655
|
messageType: 1 | 2;
|
|
1576
1656
|
username: string;
|
|
1657
|
+
fallbackFont?: {
|
|
1658
|
+
name: string;
|
|
1659
|
+
family: string;
|
|
1660
|
+
} | undefined;
|
|
1577
1661
|
};
|
|
1578
1662
|
template: {
|
|
1579
1663
|
html: string;
|
|
@@ -1587,6 +1671,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
1587
1671
|
value: string;
|
|
1588
1672
|
} | undefined;
|
|
1589
1673
|
}[];
|
|
1674
|
+
customFieldAttributes: string[];
|
|
1590
1675
|
selectedUnsubscribePages: number[];
|
|
1591
1676
|
forceRecreate: boolean;
|
|
1592
1677
|
};
|
|
@@ -1671,6 +1756,10 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
1671
1756
|
productType: 60 | 49 | 97;
|
|
1672
1757
|
messageType: 1 | 2;
|
|
1673
1758
|
username: string;
|
|
1759
|
+
fallbackFont?: {
|
|
1760
|
+
name: string;
|
|
1761
|
+
family: string;
|
|
1762
|
+
} | undefined;
|
|
1674
1763
|
};
|
|
1675
1764
|
template: {
|
|
1676
1765
|
html: string;
|
|
@@ -1684,6 +1773,7 @@ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-conf
|
|
|
1684
1773
|
value: string;
|
|
1685
1774
|
} | undefined;
|
|
1686
1775
|
}[];
|
|
1776
|
+
customFieldAttributes: string[];
|
|
1687
1777
|
selectedUnsubscribePages: number[];
|
|
1688
1778
|
forceRecreate: boolean;
|
|
1689
1779
|
};
|
|
@@ -7,6 +7,7 @@ export declare const usePreviewStore: import("pinia").StoreDefinition<"guidoPrev
|
|
|
7
7
|
templateHtml: string;
|
|
8
8
|
isLoaded: boolean;
|
|
9
9
|
isAMPErrorModalVisible: boolean;
|
|
10
|
+
emailSizeKB: number;
|
|
10
11
|
} & import("pinia").PiniaCustomStateProperties<PreviewState>) => boolean;
|
|
11
12
|
previewHtml(): string;
|
|
12
13
|
hasAMP: (state: {
|
|
@@ -16,6 +17,7 @@ export declare const usePreviewStore: import("pinia").StoreDefinition<"guidoPrev
|
|
|
16
17
|
templateHtml: string;
|
|
17
18
|
isLoaded: boolean;
|
|
18
19
|
isAMPErrorModalVisible: boolean;
|
|
20
|
+
emailSizeKB: number;
|
|
19
21
|
} & import("pinia").PiniaCustomStateProperties<PreviewState>) => boolean;
|
|
20
22
|
hasAMPErrors: (state: {
|
|
21
23
|
emailFormat: EmailFormat;
|
|
@@ -24,6 +26,7 @@ export declare const usePreviewStore: import("pinia").StoreDefinition<"guidoPrev
|
|
|
24
26
|
templateHtml: string;
|
|
25
27
|
isLoaded: boolean;
|
|
26
28
|
isAMPErrorModalVisible: boolean;
|
|
29
|
+
emailSizeKB: number;
|
|
27
30
|
} & import("pinia").PiniaCustomStateProperties<PreviewState>) => boolean;
|
|
28
31
|
showAMPErrorButton(): boolean;
|
|
29
32
|
isAMPResponsive(): boolean;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import type { FallbackFont } from '@@/Types/config';
|
|
1
2
|
import type { CompilerRule, CompilationResult, HtmlCompiler } from '@@/Types/html-compiler';
|
|
2
3
|
export declare class HtmlCompilerEngine implements HtmlCompiler {
|
|
3
4
|
private rules;
|
|
4
5
|
constructor(rules?: CompilerRule[]);
|
|
5
|
-
compile(html: string, rules?: CompilerRule[]): CompilationResult;
|
|
6
|
+
compile(html: string, rules?: CompilerRule[], fallbackFont?: FallbackFont): CompilationResult;
|
|
6
7
|
private applyRule;
|
|
7
8
|
private applyReplaceRule;
|
|
8
9
|
private applyRegexRule;
|
package/dist/stores/preview.js
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { defineStore as e } from "pinia";
|
|
2
|
-
const
|
|
2
|
+
const i = () => ({
|
|
3
3
|
emailFormat: "html",
|
|
4
4
|
ampHtml: "",
|
|
5
5
|
ampErrors: [],
|
|
6
6
|
templateHtml: "",
|
|
7
7
|
isLoaded: !1,
|
|
8
|
-
isAMPErrorModalVisible: !1
|
|
8
|
+
isAMPErrorModalVisible: !1,
|
|
9
|
+
emailSizeKB: 0
|
|
9
10
|
}), a = e("guidoPreview", {
|
|
10
|
-
state: () =>
|
|
11
|
+
state: () => i(),
|
|
11
12
|
getters: {
|
|
12
13
|
isAMPModeEnabled: (t) => t.emailFormat === "AMP",
|
|
13
14
|
previewHtml() {
|
|
@@ -1,70 +1,77 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var
|
|
4
|
-
import { useToaster as
|
|
5
|
-
|
|
1
|
+
var h = Object.defineProperty;
|
|
2
|
+
var f = (o, e, t) => e in o ? h(o, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : o[e] = t;
|
|
3
|
+
var m = (o, e, t) => f(o, typeof e != "symbol" ? e + "" : e, t);
|
|
4
|
+
import { useToaster as x } from "../composables/useToaster.js";
|
|
5
|
+
const E = /font-family\s*:[^;}"']+/gi;
|
|
6
|
+
class T {
|
|
6
7
|
constructor(e = []) {
|
|
7
|
-
|
|
8
|
+
m(this, "rules");
|
|
8
9
|
this.rules = e;
|
|
9
10
|
}
|
|
10
|
-
compile(e, r) {
|
|
11
|
-
const
|
|
11
|
+
compile(e, t, r) {
|
|
12
|
+
const n = performance.now(), l = e, c = e.length;
|
|
12
13
|
let s = e;
|
|
13
|
-
const
|
|
14
|
-
(
|
|
15
|
-
const
|
|
16
|
-
s = this.applyRule(s,
|
|
14
|
+
const i = [];
|
|
15
|
+
(t || this.rules).sort((p, a) => p.priority - a.priority).forEach((p) => {
|
|
16
|
+
const a = s.length;
|
|
17
|
+
s = this.applyRule(s, p), s.length !== a && i.push(p.id);
|
|
17
18
|
});
|
|
18
|
-
const
|
|
19
|
+
const u = s.length, R = c > 0 ? (c - u) / c * 100 : 0, d = new TextEncoder().encode(s).byteLength;
|
|
20
|
+
let y = 0;
|
|
21
|
+
if (r && r.name && r.family) {
|
|
22
|
+
const p = (s.match(E) || []).length, a = `, ${r.name}, ${r.family}`;
|
|
23
|
+
y = p * new TextEncoder().encode(a).byteLength;
|
|
24
|
+
}
|
|
25
|
+
const g = Math.round((d + y) / 1024);
|
|
19
26
|
return {
|
|
20
|
-
originalHtml:
|
|
27
|
+
originalHtml: l,
|
|
21
28
|
compiledHtml: s,
|
|
22
|
-
appliedRules:
|
|
23
|
-
|
|
29
|
+
appliedRules: i,
|
|
30
|
+
estimatedSizeKB: g,
|
|
24
31
|
stats: {
|
|
25
|
-
originalSize:
|
|
26
|
-
compiledSize:
|
|
32
|
+
originalSize: c,
|
|
33
|
+
compiledSize: u,
|
|
27
34
|
reductionPercentage: R,
|
|
28
|
-
executionTime: performance.now() -
|
|
35
|
+
executionTime: performance.now() - n
|
|
29
36
|
}
|
|
30
37
|
};
|
|
31
38
|
}
|
|
32
|
-
applyRule(e,
|
|
39
|
+
applyRule(e, t) {
|
|
33
40
|
try {
|
|
34
|
-
switch (
|
|
41
|
+
switch (t.type) {
|
|
35
42
|
case "replace":
|
|
36
|
-
return this.applyReplaceRule(e,
|
|
43
|
+
return this.applyReplaceRule(e, t);
|
|
37
44
|
case "regex":
|
|
38
|
-
return this.applyRegexRule(e,
|
|
45
|
+
return this.applyRegexRule(e, t);
|
|
39
46
|
case "remove":
|
|
40
|
-
return this.applyRemoveRule(e,
|
|
47
|
+
return this.applyRemoveRule(e, t);
|
|
41
48
|
case "custom":
|
|
42
|
-
return this.applyCustomRule(e,
|
|
49
|
+
return this.applyCustomRule(e, t);
|
|
43
50
|
default:
|
|
44
51
|
return e;
|
|
45
52
|
}
|
|
46
|
-
} catch (
|
|
47
|
-
const { handleError:
|
|
48
|
-
return
|
|
53
|
+
} catch (r) {
|
|
54
|
+
const { handleError: n } = x();
|
|
55
|
+
return n(r, `Failed to apply rule ${t.id}:`), e;
|
|
49
56
|
}
|
|
50
57
|
}
|
|
51
|
-
applyReplaceRule(e,
|
|
52
|
-
const { search:
|
|
53
|
-
return
|
|
58
|
+
applyReplaceRule(e, t) {
|
|
59
|
+
const { search: r, replacement: n, replaceAll: l = !0 } = t;
|
|
60
|
+
return l ? e.replaceAll(r, n) : e.replace(r, n);
|
|
54
61
|
}
|
|
55
|
-
applyRegexRule(e,
|
|
56
|
-
const { pattern:
|
|
57
|
-
return e.replace(
|
|
62
|
+
applyRegexRule(e, t) {
|
|
63
|
+
const { pattern: r, replacement: n, flags: l = "g" } = t, c = new RegExp(r, l);
|
|
64
|
+
return e.replace(c, n);
|
|
58
65
|
}
|
|
59
|
-
applyRemoveRule(e,
|
|
60
|
-
return
|
|
66
|
+
applyRemoveRule(e, t) {
|
|
67
|
+
return t.targets.reduce((r, n) => n instanceof RegExp ? r.replace(n, "") : r.replaceAll(n, ""), e);
|
|
61
68
|
}
|
|
62
|
-
applyCustomRule(e,
|
|
63
|
-
return
|
|
69
|
+
applyCustomRule(e, t) {
|
|
70
|
+
return t.processor(e);
|
|
64
71
|
}
|
|
65
72
|
}
|
|
66
|
-
const
|
|
73
|
+
const H = (o = []) => new T(o);
|
|
67
74
|
export {
|
|
68
|
-
|
|
69
|
-
|
|
75
|
+
T as HtmlCompilerEngine,
|
|
76
|
+
H as createHtmlCompiler
|
|
70
77
|
};
|
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
import { useActionsApi as
|
|
2
|
-
import { useHtmlCompiler as
|
|
3
|
-
import { useRecommendationExtensionStore as
|
|
4
|
-
import { useDynamicContentStore as
|
|
5
|
-
import { useUnsubscribeStore as
|
|
6
|
-
const
|
|
7
|
-
const o =
|
|
1
|
+
import { useActionsApi as S } from "../composables/useActionsApi.js";
|
|
2
|
+
import { useHtmlCompiler as f } from "../composables/useHtmlCompiler.js";
|
|
3
|
+
import { useRecommendationExtensionStore as C } from "../extensions/Blocks/Recommendation/store/recommendation.js";
|
|
4
|
+
import { useDynamicContentStore as T } from "../stores/dynamic-content.js";
|
|
5
|
+
import { useUnsubscribeStore as x } from "../stores/unsubscribe.js";
|
|
6
|
+
const h = () => {
|
|
7
|
+
const o = T(), e = x(), { getCompiledEmail: i, getTemplateData: s } = S(), { compileHtml: n } = f();
|
|
8
8
|
return {
|
|
9
9
|
prepareTemplateDetails: async () => {
|
|
10
|
-
const { html:
|
|
10
|
+
const { html: a, ampHtml: m = "", ampErrors: r = [] } = await i({
|
|
11
11
|
minimize: !0,
|
|
12
12
|
resetDataSavedFlag: !1
|
|
13
|
-
}), { html:
|
|
13
|
+
}), { html: c, css: l, syncModulesIds: p = [] } = await s();
|
|
14
14
|
e.selectedUnsubscribePages.length && await e.fetchTemplates();
|
|
15
|
-
const { compiledHtml:
|
|
16
|
-
return
|
|
15
|
+
const { compiledHtml: u, stats: t, appliedRules: d } = n(a), g = o.getSelectedDynamicContentList, b = C();
|
|
16
|
+
return console.debug("HTML Compilation Stats:", {
|
|
17
17
|
originalSize: t.originalSize,
|
|
18
18
|
compiledSize: t.compiledSize,
|
|
19
19
|
reduction: `${t.reductionPercentage.toFixed(2)}%`,
|
|
20
|
-
appliedRules:
|
|
20
|
+
appliedRules: d,
|
|
21
21
|
executionTime: `${t.executionTime.toFixed(2)}ms`
|
|
22
22
|
}), {
|
|
23
|
-
dynamicContentList:
|
|
24
|
-
compiledHtml:
|
|
25
|
-
rawHtml:
|
|
26
|
-
css:
|
|
27
|
-
ampHtml:
|
|
28
|
-
ampErrors:
|
|
29
|
-
modules:
|
|
23
|
+
dynamicContentList: g,
|
|
24
|
+
compiledHtml: u,
|
|
25
|
+
rawHtml: c,
|
|
26
|
+
css: l,
|
|
27
|
+
ampHtml: m,
|
|
28
|
+
ampErrors: r,
|
|
29
|
+
modules: p.map(Number),
|
|
30
30
|
recommendation: {
|
|
31
31
|
campaignUrls: b.recommendationCampaignUrls,
|
|
32
32
|
configs: {}
|
|
@@ -40,5 +40,5 @@ const w = () => {
|
|
|
40
40
|
};
|
|
41
41
|
};
|
|
42
42
|
export {
|
|
43
|
-
|
|
43
|
+
h as useTemplatePreparation
|
|
44
44
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@useinsider/guido",
|
|
3
|
-
"version": "3.1.1-beta.
|
|
3
|
+
"version": "3.1.1-beta.a80cc5e",
|
|
4
4
|
"description": "Guido is a Vue + TypeScript wrapper for Email Plugin. Easily embed the email editor in your Vue applications.",
|
|
5
5
|
"main": "./dist/guido.umd.cjs",
|
|
6
6
|
"module": "./dist/library.js",
|