@capillarytech/creatives-library 7.12.93 → 7.12.94

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.
@@ -0,0 +1,301 @@
1
+ export const emailRawInput = `<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional //EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+ <html xmlns="http://www.w3.org/1999/xhtml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:v="urn:schemas-microsoft-com:vml">
3
+ <head><!--[if gte mso 9]><xml><o:OfficeDocumentSettings><o:AllowPNG/><o:PixelsPerInch>96</o:PixelsPerInch></o:OfficeDocumentSettings></xml><![endif]--><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="viewport" content="width=device-width"><!--[if !mso]><meta http-equiv="X-UA-Compatible" content="IE=edge"><!--<![endif]-->
4
+ <title></title>
5
+ <!--[if !mso]><!--<![endif]-->
6
+ <style type="text/css">body {
7
+ margin: 0;
8
+ padding: 0; }
9
+
10
+ table,
11
+ td,
12
+ tr {
13
+ vertical-align: top;
14
+ border-collapse: collapse; }
15
+
16
+ * {
17
+ line-height: inherit; }
18
+
19
+ a[x-apple-data-detectors=true] {
20
+ color: inherit !important;
21
+ text-decoration: none !important; }
22
+ </style>
23
+ <style id="media-query" type="text/css">@media (max-width: 520px) {
24
+ .block-grid,
25
+ .col {
26
+ min-width: 320px !important;
27
+ max-width: 100% !important;
28
+ display: block !important;
29
+ }
30
+
31
+ .block-grid {
32
+ width: 100% !important;
33
+ }
34
+
35
+ .col {
36
+ width: 100% !important;
37
+ }
38
+
39
+ .col > div {
40
+ margin: 0 auto;
41
+ }
42
+
43
+ img.fullwidth,
44
+ img.fullwidthOnMobile {
45
+ max-width: 100% !important;
46
+ }
47
+
48
+ .no-stack .col {
49
+ min-width: 0 !important;
50
+ display: table-cell !important;
51
+ }
52
+
53
+ .no-stack.two-up .col {
54
+ width: 50% !important;
55
+ }
56
+
57
+ .no-stack .col.num4 {
58
+ width: 33% !important;
59
+ }
60
+
61
+ .no-stack .col.num8 {
62
+ width: 66% !important;
63
+ }
64
+
65
+ .no-stack .col.num4 {
66
+ width: 33% !important;
67
+ }
68
+
69
+ .no-stack .col.num3 {
70
+ width: 25% !important;
71
+ }
72
+
73
+ .no-stack .col.num6 {
74
+ width: 50% !important;
75
+ }
76
+
77
+ .no-stack .col.num9 {
78
+ width: 75% !important;
79
+ }
80
+
81
+ .video-block {
82
+ max-width: none !important;
83
+ }
84
+
85
+ .mobile_hide {
86
+ min-height: 0px;
87
+ max-height: 0px;
88
+ max-width: 0px;
89
+ display: none;
90
+ overflow: hidden;
91
+ font-size: 0px;
92
+ }
93
+
94
+ .desktop_hide {
95
+ display: block !important;
96
+ max-height: none !important;
97
+ }
98
+ }
99
+ </style>
100
+ </head>
101
+ <body class="clean-body" style="margin: 0; padding: 0; -webkit-text-size-adjust: 100%; background-color: #FFFFFF;">
102
+ <p><img alt="Capillary Image" height="184" src="https://crm-nightly-new-fileservice.s3.amazonaws.com/intouch_creative_assets/d5679e9b-1ff4-4e7c-8f77-30160048.png" width="328" /></p>
103
+ <!--[if IE]><div class="ie-browser"><![endif]-->
104
+
105
+ <p>Hello world</p>
106
+
107
+ <table bgcolor="#FFFFFF" cellpadding="0" cellspacing="0" class="nl-container" role="presentation" style="background-color:#ffffff; border-collapse:collapse; border-spacing:0; margin:0 auto; min-width:320px; mso-table-lspace:0pt; mso-table-rspace:0pt; table-layout:fixed; vertical-align:top; width:100%" valign="top">
108
+ <tbody>
109
+ <tr style="vertical-align:top" valign="top">
110
+ <td style="vertical-align:top; word-break:break-word"><!--[if (mso)|(IE)]><table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td align="center" style="background-color:#FFFFFF"><![endif]-->
111
+ <div style="background-color:transparent">
112
+ <div class="block-grid" style="background-color:transparent; margin-bottom:0; margin-left:auto; margin-right:auto; margin-top:0; max-width:500px; min-width:320px; overflow-wrap:break-word; word-break:break-word; word-wrap:break-word">
113
+ <div style="background-color:transparent; border-collapse:collapse; display:table; width:100%"><!--[if (mso)|(IE)]><table width="100%" cellpadding="0" cellspacing="0" border="0" style="background-color:transparent;"><tr><td align="center"><table cellpadding="0" cellspacing="0" border="0" style="width:500px"><tr class="layout-full-width" style="background-color:transparent"><![endif]--><!--[if (mso)|(IE)]><td align="center" width="500" style="background-color:transparent;width:500px; border-top: 0px solid transparent; border-left: 0px solid transparent; border-bottom: 0px solid transparent; border-right: 0px solid transparent;" valign="top"><table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td style="padding-right: 0px; padding-left: 0px; padding-top:5px; padding-bottom:5px;"><![endif]-->
114
+ <div class="col num12" style="display:table-cell; max-width:500px; min-width:320px; vertical-align:top; width:500px">
115
+ <div style="width:100% !important"><!--[if (!mso)&(!IE)]><div style="border-top:0px solid transparent; border-left:0px solid transparent; border-bottom:0px solid transparent; border-right:0px solid transparent; padding-top:5px; padding-bottom:5px; padding-right: 0px; padding-left: 0px;"><!--<![endif]--><!--[if (!mso)&(!IE)]></div><!--<![endif]--></div>
116
+ </div>
117
+ <!--[if (mso)|(IE)]></td></tr></table><![endif]--><!--[if (mso)|(IE)]></td></tr></table></td></tr></table><![endif]--></div>
118
+ </div>
119
+ </div>
120
+ <!--[if (mso)|(IE)]></td></tr></table><![endif]--></td>
121
+ </tr>
122
+ </tbody>
123
+ </table>
124
+ <!--[if (IE)]></div><![endif]--></body>
125
+ </html>
126
+ `;
127
+
128
+ export const emailRawTransformed = `<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional //EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
129
+ <html xmlns="http://www.w3.org/1999/xhtml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:v="urn:schemas-microsoft-com:vml">
130
+ <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="viewport" content="width=device-width">
131
+ <title></title>
132
+
133
+ <style type="text/css">body {
134
+ margin: 0;
135
+ padding: 0; }
136
+
137
+ table,
138
+ td,
139
+ tr {
140
+ vertical-align: top;
141
+ border-collapse: collapse; }
142
+
143
+ * {
144
+ line-height: inherit; }
145
+
146
+ a[x-apple-data-detectors=true] {
147
+ color: inherit !important;
148
+ text-decoration: none !important; }
149
+ </style>
150
+ <style id="media-query" type="text/css">@media (max-width: 520px) {
151
+ .block-grid,
152
+ .col {
153
+ min-width: 320px !important;
154
+ max-width: 100% !important;
155
+ display: block !important;
156
+ }
157
+
158
+ .block-grid {
159
+ width: 100% !important;
160
+ }
161
+
162
+ .col {
163
+ width: 100% !important;
164
+ }
165
+
166
+ .col > div {
167
+ margin: 0 auto;
168
+ }
169
+
170
+ img.fullwidth,
171
+ img.fullwidthOnMobile {
172
+ max-width: 100% !important;
173
+ }
174
+
175
+ .no-stack .col {
176
+ min-width: 0 !important;
177
+ display: table-cell !important;
178
+ }
179
+
180
+ .no-stack.two-up .col {
181
+ width: 50% !important;
182
+ }
183
+
184
+ .no-stack .col.num4 {
185
+ width: 33% !important;
186
+ }
187
+
188
+ .no-stack .col.num8 {
189
+ width: 66% !important;
190
+ }
191
+
192
+ .no-stack .col.num4 {
193
+ width: 33% !important;
194
+ }
195
+
196
+ .no-stack .col.num3 {
197
+ width: 25% !important;
198
+ }
199
+
200
+ .no-stack .col.num6 {
201
+ width: 50% !important;
202
+ }
203
+
204
+ .no-stack .col.num9 {
205
+ width: 75% !important;
206
+ }
207
+
208
+ .video-block {
209
+ max-width: none !important;
210
+ }
211
+
212
+ .mobile_hide {
213
+ min-height: 0px;
214
+ max-height: 0px;
215
+ max-width: 0px;
216
+ display: none;
217
+ overflow: hidden;
218
+ font-size: 0px;
219
+ }
220
+
221
+ .desktop_hide {
222
+ display: block !important;
223
+ max-height: none !important;
224
+ }
225
+ }
226
+ </style>
227
+ </head>
228
+ <body class="clean-body" style="margin: 0; padding: 0; -webkit-text-size-adjust: 100%; background-color: #FFFFFF;">
229
+ <p><img alt="Capillary Image" height="184" src="https://storage.crm.n.content-cdn.io/cdn-cgi/image/width=328,height=184,format=auto,quality=75,/intouch_creative_assets/d5679e9b-1ff4-4e7c-8f77-30160048.png" width="328"></p>
230
+
231
+
232
+ <p>Hello world</p>
233
+
234
+ <table bgcolor="#FFFFFF" cellpadding="0" cellspacing="0" class="nl-container" role="presentation" style="background-color:#ffffff; border-collapse:collapse; border-spacing:0; margin:0 auto; min-width:320px; mso-table-lspace:0pt; mso-table-rspace:0pt; table-layout:fixed; vertical-align:top; width:100%" valign="top">
235
+ <tbody>
236
+ <tr style="vertical-align:top" valign="top">
237
+ <td style="vertical-align:top; word-break:break-word">
238
+ <div style="background-color:transparent">
239
+ <div class="block-grid" style="background-color:transparent; margin-bottom:0; margin-left:auto; margin-right:auto; margin-top:0; max-width:500px; min-width:320px; overflow-wrap:break-word; word-break:break-word; word-wrap:break-word">
240
+ <div style="background-color:transparent; border-collapse:collapse; display:table; width:100%">
241
+ <div class="col num12" style="display:table-cell; max-width:500px; min-width:320px; vertical-align:top; width:500px">
242
+ <div style="width:100% !important"></div>
243
+ </div>
244
+ </div>
245
+ </div>
246
+ </div>
247
+ </td>
248
+ </tr>
249
+ </tbody>
250
+ </table>
251
+ </body>
252
+ </html>
253
+ `;
254
+
255
+
256
+ export const emailTemplateRaw = {
257
+ "versions": {
258
+ "base": {
259
+ "activeTab": "en",
260
+ "en": {
261
+ "is_drag_drop": false,
262
+ "lang_id": 69,
263
+ "iso_code": "en",
264
+ "language": "English",
265
+ "template-content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional //EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xmlns:o=\"urn:schemas-microsoft-com:office:office\" xmlns:v=\"urn:schemas-microsoft-com:vml\">\n<head><!--[if gte mso 9]><xml><o:OfficeDocumentSettings><o:AllowPNG/><o:PixelsPerInch>96</o:PixelsPerInch></o:OfficeDocumentSettings></xml><![endif]--><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"><meta name=\"viewport\" content=\"width=device-width\"><!--[if !mso]><meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\"><!--<![endif]-->\n\t<title></title>\n\t<!--[if !mso]><!--<![endif]-->\n\t<style type=\"text/css\">body {\n margin: 0;\n padding: 0; }\n\ntable,\ntd,\ntr {\n vertical-align: top;\n border-collapse: collapse; }\n\n* {\n line-height: inherit; }\n\na[x-apple-data-detectors=true] {\n color: inherit !important;\n text-decoration: none !important; }\n\t</style>\n\t<style id=\"media-query\" type=\"text/css\">@media (max-width: 520px) {\n .block-grid,\n.col {\n min-width: 320px !important;\n max-width: 100% !important;\n display: block !important;\n }\n\n .block-grid {\n width: 100% !important;\n }\n\n .col {\n width: 100% !important;\n }\n\n .col > div {\n margin: 0 auto;\n }\n\n img.fullwidth,\nimg.fullwidthOnMobile {\n max-width: 100% !important;\n }\n\n .no-stack .col {\n min-width: 0 !important;\n display: table-cell !important;\n }\n\n .no-stack.two-up .col {\n width: 50% !important;\n }\n\n .no-stack .col.num4 {\n width: 33% !important;\n }\n\n .no-stack .col.num8 {\n width: 66% !important;\n }\n\n .no-stack .col.num4 {\n width: 33% !important;\n }\n\n .no-stack .col.num3 {\n width: 25% !important;\n }\n\n .no-stack .col.num6 {\n width: 50% !important;\n }\n\n .no-stack .col.num9 {\n width: 75% !important;\n }\n\n .video-block {\n max-width: none !important;\n }\n\n .mobile_hide {\n min-height: 0px;\n max-height: 0px;\n max-width: 0px;\n display: none;\n overflow: hidden;\n font-size: 0px;\n }\n\n .desktop_hide {\n display: block !important;\n max-height: none !important;\n }\n}\n\t</style>\n</head>\n<body class=\"clean-body\" style=\"margin: 0; padding: 0; -webkit-text-size-adjust: 100%; background-color: #FFFFFF;\">\n<p><!--[if IE]><div class=\"ie-browser\"><![endif]-->hello world</p>\n\n<p><img alt=\"Capillary Image\" height=\"171\" src=\"https://crm-nightly-new-fileservice.s3.amazonaws.com/intouch_creative_assets/b4b63b22-8a81-41ee-a8df-6db967fc.jpg\" width=\"257\" /></p>\n\n<table bgcolor=\"#FFFFFF\" cellpadding=\"0\" cellspacing=\"0\" class=\"nl-container\" role=\"presentation\" style=\"background-color:#ffffff; border-collapse:collapse; border-spacing:0; margin:0 auto; min-width:320px; mso-table-lspace:0pt; mso-table-rspace:0pt; table-layout:fixed; vertical-align:top; width:100%\" valign=\"top\">\n\t<tbody>\n\t\t<tr style=\"vertical-align:top\" valign=\"top\">\n\t\t\t<td style=\"vertical-align:top; word-break:break-word\"><!--[if (mso)|(IE)]><table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><tr><td align=\"center\" style=\"background-color:#FFFFFF\"><![endif]-->\n\t\t\t<div style=\"background-color:transparent\">\n\t\t\t<div class=\"block-grid\" style=\"background-color:transparent; margin-bottom:0; margin-left:auto; margin-right:auto; margin-top:0; max-width:500px; min-width:320px; overflow-wrap:break-word; word-break:break-word; word-wrap:break-word\">\n\t\t\t<div style=\"background-color:transparent; border-collapse:collapse; display:table; width:100%\"><!--[if (mso)|(IE)]><table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"background-color:transparent;\"><tr><td align=\"center\"><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"width:500px\"><tr class=\"layout-full-width\" style=\"background-color:transparent\"><![endif]--><!--[if (mso)|(IE)]><td align=\"center\" width=\"500\" style=\"background-color:transparent;width:500px; border-top: 0px solid transparent; border-left: 0px solid transparent; border-bottom: 0px solid transparent; border-right: 0px solid transparent;\" valign=\"top\"><table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><tr><td style=\"padding-right: 0px; padding-left: 0px; padding-top:5px; padding-bottom:5px;\"><![endif]-->\n\t\t\t<div class=\"col num12\" style=\"display:table-cell; max-width:500px; min-width:320px; vertical-align:top; width:500px\">\n\t\t\t<div style=\"width:100% !important\"><!--[if (!mso)&(!IE)]><div style=\"border-top:0px solid transparent; border-left:0px solid transparent; border-bottom:0px solid transparent; border-right:0px solid transparent; padding-top:5px; padding-bottom:5px; padding-right: 0px; padding-left: 0px;\"><!--<![endif]--><!--[if (!mso)&(!IE)]></div><!--<![endif]--></div>\n\t\t\t</div>\n\t\t\t<!--[if (mso)|(IE)]></td></tr></table><![endif]--><!--[if (mso)|(IE)]></td></tr></table></td></tr></table><![endif]--></div>\n\t\t\t</div>\n\t\t\t</div>\n\t\t\t<!--[if (mso)|(IE)]></td></tr></table><![endif]--></td>\n\t\t</tr>\n\t</tbody>\n</table>\n<!--[if (IE)]></div><![endif]--></body>\n</html>\n",
266
+ "drag_drop_id": "",
267
+ "tabKey": "6",
268
+ "id": "5f7b61605f09ebe595ff404e"
269
+ },
270
+ "selectedLanguages": [
271
+ "en"
272
+ ],
273
+ "base": true,
274
+ "tabKey": "6",
275
+ "subject": "hello subject"
276
+ },
277
+ "history": [
278
+ {
279
+ "activeTab": "en",
280
+ "en": {
281
+ "is_drag_drop": false,
282
+ "lang_id": 69,
283
+ "iso_code": "en",
284
+ "language": "English",
285
+ "template-content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional //EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xmlns:o=\"urn:schemas-microsoft-com:office:office\" xmlns:v=\"urn:schemas-microsoft-com:vml\">\n<head><!--[if gte mso 9]><xml><o:OfficeDocumentSettings><o:AllowPNG/><o:PixelsPerInch>96</o:PixelsPerInch></o:OfficeDocumentSettings></xml><![endif]--><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"><meta name=\"viewport\" content=\"width=device-width\"><!--[if !mso]><meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\"><!--<![endif]-->\n\t<title></title>\n\t<!--[if !mso]><!--<![endif]-->\n\t<style type=\"text/css\">body {\n margin: 0;\n padding: 0; }\n\ntable,\ntd,\ntr {\n vertical-align: top;\n border-collapse: collapse; }\n\n* {\n line-height: inherit; }\n\na[x-apple-data-detectors=true] {\n color: inherit !important;\n text-decoration: none !important; }\n\t</style>\n\t<style id=\"media-query\" type=\"text/css\">@media (max-width: 520px) {\n .block-grid,\n.col {\n min-width: 320px !important;\n max-width: 100% !important;\n display: block !important;\n }\n\n .block-grid {\n width: 100% !important;\n }\n\n .col {\n width: 100% !important;\n }\n\n .col > div {\n margin: 0 auto;\n }\n\n img.fullwidth,\nimg.fullwidthOnMobile {\n max-width: 100% !important;\n }\n\n .no-stack .col {\n min-width: 0 !important;\n display: table-cell !important;\n }\n\n .no-stack.two-up .col {\n width: 50% !important;\n }\n\n .no-stack .col.num4 {\n width: 33% !important;\n }\n\n .no-stack .col.num8 {\n width: 66% !important;\n }\n\n .no-stack .col.num4 {\n width: 33% !important;\n }\n\n .no-stack .col.num3 {\n width: 25% !important;\n }\n\n .no-stack .col.num6 {\n width: 50% !important;\n }\n\n .no-stack .col.num9 {\n width: 75% !important;\n }\n\n .video-block {\n max-width: none !important;\n }\n\n .mobile_hide {\n min-height: 0px;\n max-height: 0px;\n max-width: 0px;\n display: none;\n overflow: hidden;\n font-size: 0px;\n }\n\n .desktop_hide {\n display: block !important;\n max-height: none !important;\n }\n}\n\t</style>\n</head>\n<body class=\"clean-body\" style=\"margin: 0; padding: 0; -webkit-text-size-adjust: 100%; background-color: #FFFFFF;\">\n<p><!--[if IE]><div class=\"ie-browser\"><![endif]-->hello world</p>\n\n<p><img alt=\"Capillary Image\" height=\"171\" src=\"https://crm-nightly-new-fileservice.s3.amazonaws.com/intouch_creative_assets/b4b63b22-8a81-41ee-a8df-6db967fc.jpg\" width=\"257\" /></p>\n\n<table bgcolor=\"#FFFFFF\" cellpadding=\"0\" cellspacing=\"0\" class=\"nl-container\" role=\"presentation\" style=\"background-color:#ffffff; border-collapse:collapse; border-spacing:0; margin:0 auto; min-width:320px; mso-table-lspace:0pt; mso-table-rspace:0pt; table-layout:fixed; vertical-align:top; width:100%\" valign=\"top\">\n\t<tbody>\n\t\t<tr style=\"vertical-align:top\" valign=\"top\">\n\t\t\t<td style=\"vertical-align:top; word-break:break-word\"><!--[if (mso)|(IE)]><table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><tr><td align=\"center\" style=\"background-color:#FFFFFF\"><![endif]-->\n\t\t\t<div style=\"background-color:transparent\">\n\t\t\t<div class=\"block-grid\" style=\"background-color:transparent; margin-bottom:0; margin-left:auto; margin-right:auto; margin-top:0; max-width:500px; min-width:320px; overflow-wrap:break-word; word-break:break-word; word-wrap:break-word\">\n\t\t\t<div style=\"background-color:transparent; border-collapse:collapse; display:table; width:100%\"><!--[if (mso)|(IE)]><table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"background-color:transparent;\"><tr><td align=\"center\"><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"width:500px\"><tr class=\"layout-full-width\" style=\"background-color:transparent\"><![endif]--><!--[if (mso)|(IE)]><td align=\"center\" width=\"500\" style=\"background-color:transparent;width:500px; border-top: 0px solid transparent; border-left: 0px solid transparent; border-bottom: 0px solid transparent; border-right: 0px solid transparent;\" valign=\"top\"><table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><tr><td style=\"padding-right: 0px; padding-left: 0px; padding-top:5px; padding-bottom:5px;\"><![endif]-->\n\t\t\t<div class=\"col num12\" style=\"display:table-cell; max-width:500px; min-width:320px; vertical-align:top; width:500px\">\n\t\t\t<div style=\"width:100% !important\"><!--[if (!mso)&(!IE)]><div style=\"border-top:0px solid transparent; border-left:0px solid transparent; border-bottom:0px solid transparent; border-right:0px solid transparent; padding-top:5px; padding-bottom:5px; padding-right: 0px; padding-left: 0px;\"><!--<![endif]--><!--[if (!mso)&(!IE)]></div><!--<![endif]--></div>\n\t\t\t</div>\n\t\t\t<!--[if (mso)|(IE)]></td></tr></table><![endif]--><!--[if (mso)|(IE)]></td></tr></table></td></tr></table><![endif]--></div>\n\t\t\t</div>\n\t\t\t</div>\n\t\t\t<!--[if (mso)|(IE)]></td></tr></table><![endif]--></td>\n\t\t</tr>\n\t</tbody>\n</table>\n<!--[if (IE)]></div><![endif]--></body>\n</html>\n",
286
+ "drag_drop_id": "",
287
+ "tabKey": "6",
288
+ "id": "5f7b61605f09ebe595ff404e"
289
+ },
290
+ "selectedLanguages": [
291
+ "en"
292
+ ],
293
+ "base": true,
294
+ "tabKey": "6",
295
+ "subject": "hello subject"
296
+ }
297
+ ]
298
+ },
299
+ "type": "EMAIL",
300
+ "name": "test template1"
301
+ }
@@ -0,0 +1,76 @@
1
+ import * as cdnUtils from '../cdnTransformation';
2
+ import * as mockdata from './cdnTransformation.mockdata';
3
+
4
+ describe('getCdnUrl()',()=>{
5
+ it('should return s3 url if bucket subfolder doesn\'t contain intouch_creative_assets',()=>{
6
+ const TEST_S3_URL = `https://crm-nightly-new-fileservice.s3.amazonaws.com/test/2c9233ed-0959-4aff-b749-9171b5c8.jpg`;
7
+ const GENERATED_CDN_URL = cdnUtils.getCdnUrl({url: TEST_S3_URL, channelName: 'EMAIL'});
8
+ expect(GENERATED_CDN_URL).toEqual(TEST_S3_URL);
9
+ })
10
+
11
+ it('should return s3 if channelName is not defined',()=>{
12
+ const TEST_S3_URL = `https://crm-nightly-new-fileservice.s3.amazonaws.com/intouch_creative_assets/2c9233ed-0959-4aff-b749-9171b5c8.jpg`;
13
+ const GENERATED_CDN_URL = cdnUtils.getCdnUrl({url: TEST_S3_URL});
14
+ expect(GENERATED_CDN_URL).toEqual(TEST_S3_URL);
15
+ })
16
+
17
+ it('should return s3 if specified channelSubType doesn\'t exist',()=>{
18
+ const TEST_S3_URL = `https://crm-nightly-new-fileservice.s3.amazonaws.com/intouch_creative_assets/2c9233ed-0959-4aff-b749-9171b5c8.jpg`;
19
+ const GENERATED_CDN_URL = cdnUtils.getCdnUrl({url: TEST_S3_URL, channelName: 'LINE', channelSubType: 'ABC'});
20
+ expect(GENERATED_CDN_URL).toEqual(TEST_S3_URL);
21
+ })
22
+
23
+ it('Should replace s3 url with cdn url for email when h/w are not provided',()=>{
24
+ const TEST_S3_URL = `https://crm-nightly-new-fileservice.s3.amazonaws.com/intouch_creative_assets/2c9233ed-0959-4aff-b749-9171b5c8.jpg`;
25
+ const GENERATED_CDN_URL = cdnUtils.getCdnUrl({url: TEST_S3_URL, channelName: 'EMAIL'})
26
+ const EXPECTED_CDN_URL = `https://storage.crm.n.content-cdn.io/cdn-cgi/image/format=auto,quality=75,/intouch_creative_assets/2c9233ed-0959-4aff-b749-9171b5c8.jpg`
27
+ expect(GENERATED_CDN_URL).toEqual(EXPECTED_CDN_URL);
28
+ })
29
+
30
+ it('Should replace s3 url with cdn url for email when h/w are provided',()=>{
31
+ const TEST_S3_URL = `https://crm-nightly-new-fileservice.s3.amazonaws.com/intouch_creative_assets/2c9233ed-0959-4aff-b749-9171b5c8.jpg`;
32
+ const GENERATED_CDN_URL = cdnUtils.getCdnUrl({url: TEST_S3_URL, channelName: 'EMAIL', height: 100, width: 200})
33
+ const EXPECTED_CDN_URL = `https://storage.crm.n.content-cdn.io/cdn-cgi/image/width=200,height=100,format=auto,quality=75,/intouch_creative_assets/2c9233ed-0959-4aff-b749-9171b5c8.jpg`
34
+ expect(GENERATED_CDN_URL).toEqual(EXPECTED_CDN_URL);
35
+ })
36
+
37
+ it('should replace cdn url with new cdn url for email incase h/w etc changed', ()=>{
38
+ const TEST_S3_URL = `https://storage.crm.n.content-cdn.io/cdn-cgi/image/width=200,height=100,format=auto,quality=75,/intouch_creative_assets/2c9233ed-0959-4aff-b749-9171b5c8.jpg`
39
+ const GENERATED_CDN_URL = cdnUtils.getCdnUrl({url: TEST_S3_URL, channelName: 'EMAIL', height: 400, width: 500})
40
+ const EXPECTED_CDN_URL = `https://storage.crm.n.content-cdn.io/cdn-cgi/image/width=500,height=400,format=auto,quality=75,/intouch_creative_assets/2c9233ed-0959-4aff-b749-9171b5c8.jpg`
41
+ expect(GENERATED_CDN_URL).toEqual(EXPECTED_CDN_URL);
42
+ })
43
+
44
+ it('should replace cdn url with new cdn url incase channelName is LINE and channelSubType is RICH_MESSAGE ',()=>{
45
+ const TEST_S3_URL = `https://crm-nightly-new-fileservice.s3.amazonaws.com/intouch_creative_assets/2c9233ed-0959-4aff-b749-9171b5c8`;
46
+ const GENERATED_CDN_URL = cdnUtils.getCdnUrl({url: TEST_S3_URL, channelName: 'LINE', channelSubType: 'RICH_MESSAGE'})
47
+ const EXPECTED_CDN_URL = `https://storage.crm.n.content-cdn.io/cdn-cgi/image/width=1040,quality=75,/intouch_creative_assets/2c9233ed-0959-4aff-b749-9171b5c8`
48
+ expect(GENERATED_CDN_URL).toEqual(EXPECTED_CDN_URL);
49
+ })
50
+
51
+ it('should replace cdn url with new cdn url for channels which has predefined h/w for channel', ()=>{
52
+ const TEST_S3_URL = `https://crm-nightly-new-fileservice.s3.amazonaws.com/intouch_creative_assets/2c9233ed-0959-4aff-b749-9171b5c8.jpg`;
53
+ const GENERATED_CDN_URL = cdnUtils.getCdnUrl({url: TEST_S3_URL, channelName: 'RCS'})
54
+ const EXPECTED_CDN_URL = `https://storage.crm.n.content-cdn.io/cdn-cgi/image/width=1440,height=720,quality=75,/intouch_creative_assets/2c9233ed-0959-4aff-b749-9171b5c8.jpg`
55
+ expect(GENERATED_CDN_URL).toEqual(EXPECTED_CDN_URL);
56
+ })
57
+ })
58
+
59
+
60
+ describe('updateImagesInHtml()',()=>{
61
+ it('should update images in html',()=>{
62
+ const htmlContentsInput = mockdata.emailRawInput;
63
+ const htmlContentsOutput = cdnUtils.updateImagesInHtml(htmlContentsInput);
64
+ const expected = mockdata.emailRawTransformed;
65
+ expect(htmlContentsOutput).toEqual(expected);
66
+ })
67
+ })
68
+
69
+
70
+ describe('transformEmailTemplate()',()=>{
71
+ it('should transform email template',()=>{
72
+ const emailTemplateInput = mockdata.emailTemplateRaw;
73
+ const emailTemplateOutput = cdnUtils.transformEmailTemplates(emailTemplateInput);
74
+ expect(emailTemplateOutput).toMatchSnapshot();
75
+ })
76
+ })
@@ -33,6 +33,7 @@ import { CREATIVE } from '../Facebook/constants';
33
33
  import { LOYALTY } from '../App/constants';
34
34
  import { WHATSAPP_STATUSES } from '../Whatsapp/constants';
35
35
 
36
+ import { updateImagesInHtml } from '../../utils/cdnTransformation';
36
37
 
37
38
  const classPrefix = 'add-creatives-section';
38
39
  const CREATIVES_CONTAINER = 'creativesContainer';
@@ -495,7 +496,8 @@ export class Creatives extends React.Component {
495
496
  if (!html_content) {
496
497
  emailBase = templateRecords.base;
497
498
  }
498
- templateData = {...templateData, ...emailBase, emailBody: html_content, emailSubject: (emailBase && emailBase.subject) ? emailBase.subject : ''};
499
+ const newHtmlContent = updateImagesInHtml(html_content);
500
+ templateData = {...templateData, ...emailBase, emailBody: newHtmlContent, emailSubject: (emailBase && emailBase.subject) ? emailBase.subject : ''};
499
501
  delete templateData.html_content;
500
502
  delete templateData.subject;
501
503
  }
@@ -35,6 +35,8 @@ import { TRACK_CREATE_EMAIL, TRACK_EDIT_EMAIL, BEE_PLUGIN, CREATE, EDIT } from '
35
35
  import { FONT_COLOR_05 } from '@capillarytech/cap-ui-library/styled/variables';
36
36
  import { gtmPush } from '../../utils/gtmTrackers';
37
37
  const {CapCustomCardList} = CapCustomCard;
38
+ import {transformEmailTemplates} from '../../utils/cdnTransformation';
39
+
38
40
  export class Email extends React.Component { // eslint-disable-line react/prefer-stateless-function
39
41
  constructor(props) {
40
42
  super(props);
@@ -2438,7 +2440,8 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
2438
2440
 
2439
2441
  // if (saveCount === 0) {
2440
2442
 
2441
- this.props.actions.createTemplate(obj, this.onUpdateTemplateComplete);
2443
+ const newEmail = transformEmailTemplates(obj);
2444
+ this.props.actions.createTemplate(newEmail, this.onUpdateTemplateComplete);
2442
2445
  // } else {
2443
2446
  // this.setState({saveObj: obj, targetSaveCount: saveCount, mode: "save", saveEdmDataMode: 'save'}, () => {
2444
2447
  // _.forEach(data.selectedLanguages, (language, langIndex) => {
@@ -7,7 +7,7 @@ import isEmpty from 'lodash/isEmpty';
7
7
  import { connect } from "react-redux";
8
8
  import { createStructuredSelector } from "reselect";
9
9
  import { selectCurrentOrgDetails } from "../../Cap/selectors";
10
-
10
+ import { getCdnUrl } from '../../../utils/cdnTransformation';
11
11
  import {
12
12
  CapInput,
13
13
  CapRadioCard,
@@ -197,7 +197,7 @@ export const Advertisement = (props) => {
197
197
  };
198
198
  if (obj.subType === IMAGE) {
199
199
  data.imageData = {
200
- imageSrc: obj.imgSrc,
200
+ imageSrc: getCdnUrl({url: obj.imgSrc, channelName: 'FACEBOOK', channelSubType: 'IMAGE'}),
201
201
  };
202
202
  }
203
203
  if (obj.subType === VIDEO) {
@@ -336,7 +336,7 @@ export const Advertisement = (props) => {
336
336
  };
337
337
  }
338
338
  if (obj.subType === IMAGE) {
339
- data.imgSrc = obj.imageData.imageSrc;
339
+ data.imgSrc = getCdnUrl({url: obj.imageData.imageSrc, channelName: 'FACEBOOK', channelSubType: 'IMAGE'});
340
340
  } else {
341
341
  const {
342
342
  videoSrc,
@@ -1033,4 +1033,4 @@ const mapStateToProps = (state, props) =>
1033
1033
  : selectCurrentOrgDetails(),
1034
1034
  });
1035
1035
 
1036
- export default connect(mapStateToProps, null)(injectIntl(Advertisement));
1036
+ export default connect(mapStateToProps, null)(injectIntl(Advertisement));
@@ -15,6 +15,7 @@ import Gallery from '../../../Assets/Gallery';
15
15
  import style from './style';
16
16
  import { CAP_G06, CAP_G09 } from '@capillarytech/cap-ui-library/styled/variables';
17
17
  import withStyles from '../../../../hoc/withStyles';
18
+ import { getCdnUrl } from '../../../../utils/cdnTransformation';
18
19
 
19
20
  import messages from './messages';
20
21
  import {
@@ -73,7 +74,7 @@ export const LineImage = ({
73
74
  if (imageSrc && (isFullMode ? messageTitle: true) && imagePreview) {
74
75
  updateMessageState({
75
76
  isError: !imageSrc || !(isFullMode ? messageTitle : true) || isImageError || errorMessageTitle,
76
- originalContentUrl: imageSrc,
77
+ originalContentUrl: getCdnUrl({url: imageSrc, channelName: 'LINE', channelSubType: 'IMAGE'}),
77
78
  previewImageUrl: imagePreview,
78
79
  messageTitle,
79
80
  index,
@@ -112,7 +113,7 @@ export const LineImage = ({
112
113
 
113
114
  updateMessageState({
114
115
  isError: !imgSrc || !(isFullMode ? messageTitle : true) || errorMessageTitle,
115
- originalContentUrl: imgSrc,
116
+ originalContentUrl: getCdnUrl({url: imgSrc, channelName: 'LINE', channelSubType: 'IMAGE'}),
116
117
  previewImageUrl: imgPreview,
117
118
  messageTitle,
118
119
  index,
@@ -155,7 +156,7 @@ export const LineImage = ({
155
156
  }
156
157
  updateMessageState({
157
158
  isError: !imageSrc || !(isFullMode ? value : true) || isImageError || !value,
158
- originalContentUrl: imageSrc,
159
+ originalContentUrl: getCdnUrl({url: imageSrc, channelName: 'LINE', channelSubType: 'IMAGE'}),
159
160
  previewImageUrl: imagePreview,
160
161
  messageTitle: value,
161
162
  index,
@@ -412,7 +413,7 @@ export const LineImage = ({
412
413
  updateImagePreview(imagePreview);
413
414
  updateMessageState({
414
415
  isError: !image || !(isFullMode ? messageTitle : true) || isImageError || errorMessageTitle,
415
- originalContentUrl: image,
416
+ originalContentUrl: getCdnUrl({url: image, channelName: 'LINE', channelSubType: 'IMAGE'}),
416
417
  previewImageUrl: imagePreview,
417
418
  messageTitle,
418
419
  index,
@@ -15,6 +15,7 @@ import LineDrawer from '../Drawer';
15
15
  import style from './style';
16
16
  import { CAP_G06, FONT_COLOR_01, FONT_COLOR_02, CAP_SPACE_08, CAP_WHITE, CAP_SPACE_24, CAP_SPACE_04 } from '@capillarytech/cap-ui-library/styled/variables';
17
17
  import withStyles from '../../../../hoc/withStyles';
18
+ import { getCdnUrl } from '../../../../utils/cdnTransformation';
18
19
 
19
20
  import LineImageCarouselContent from './Content';
20
21
 
@@ -103,7 +104,7 @@ export const LineImageCarousel = (props) => {
103
104
  } = content || {};
104
105
  validCarouselImages.push({
105
106
  activeIndex: index,
106
- originalContentUrl: url,
107
+ originalContentUrl: getCdnUrl({url: url, channelName: 'LINE', channelSubType: 'CARD'}),
107
108
  aspectRatio,
108
109
  selectedActionType: buttonType ? (buttonType === MESSAGE_ACTION_TYPE ? TEXT_ACTION_TYPE : URL_ACTION_TYPE) : '',
109
110
  actionContent: text || uri,
@@ -127,7 +128,7 @@ export const LineImageCarousel = (props) => {
127
128
 
128
129
  validCarouselImages.push({
129
130
  activeIndex: index,
130
- originalContentUrl: imageUrl,
131
+ originalContentUrl: getCdnUrl({url: imageUrl, channelName: 'LINE', channelSubType: 'CARD'}),
131
132
  selectedActionType: type ? (type === MESSAGE_ACTION_TYPE ? TEXT_ACTION_TYPE : URL_ACTION_TYPE) : '',
132
133
  actionContent: text || uri,
133
134
  actionLabel: label,
@@ -160,7 +161,7 @@ export const LineImageCarousel = (props) => {
160
161
  ? isErrorIndex
161
162
  : ((!originalContentUrl || !selectedActionType || actionContentErrorMessage || actionLabelErrorMessage || !actionContent) && activeIndex);
162
163
  columns.push({
163
- imageUrl: originalContentUrl,
164
+ imageUrl: getCdnUrl({url: originalContentUrl, channelName: 'LINE', channelSubType: 'CARD'}),
164
165
  aspectRatio,
165
166
  action: {
166
167
  type: selectedActionType ? (selectedActionType === TEXT_ACTION_TYPE ? MESSAGE_ACTION_TYPE : URL_ACTION_TYPE) : '',
@@ -455,7 +456,7 @@ export const LineImageCarousel = (props) => {
455
456
  } = content || {};
456
457
  validCarouselImages.push({
457
458
  activeIndex: index,
458
- originalContentUrl: url,
459
+ originalContentUrl: getCdnUrl({url: url, channelName: 'LINE', channelSubType: 'CARD'}),
459
460
  aspectRatio,
460
461
  selectedActionType: buttonType ? (buttonType === MESSAGE_ACTION_TYPE ? TEXT_ACTION_TYPE : URL_ACTION_TYPE) : '',
461
462
  actionContent: text || uri,
@@ -480,7 +481,7 @@ export const LineImageCarousel = (props) => {
480
481
 
481
482
  validCarouselImages.push({
482
483
  activeIndex: index,
483
- originalContentUrl: imageUrl,
484
+ originalContentUrl: getCdnUrl({url: imageUrl, channelName: 'LINE', channelSubType: 'CARD'}),
484
485
  selectedActionType: type ? (type === MESSAGE_ACTION_TYPE ? TEXT_ACTION_TYPE : URL_ACTION_TYPE) : '',
485
486
  actionContent: text || uri,
486
487
  actionLabel: label,
@@ -4643,7 +4643,7 @@ exports[`line wrapper test/> should render line component new 1`] = `
4643
4643
  "actionLabel": "Click",
4644
4644
  "activeIndex": 0,
4645
4645
  "aspectRatio": "1:1",
4646
- "originalContentUrl": "https://crm-nightly-new-fileservice.s3.amazonaws.com/intouch_creative_assets/b9f2aa7a-3f1a-4a20-a737-8d50841.jpeg",
4646
+ "originalContentUrl": "https://storage.crm.n.content-cdn.io/cdn-cgi/image/width=1024,height=1024,quality=75,/intouch_creative_assets/b9f2aa7a-3f1a-4a20-a737-8d50841.jpeg",
4647
4647
  "selectedActionType": "text",
4648
4648
  "type": "carousel",
4649
4649
  }
@@ -6081,7 +6081,7 @@ exports[`line wrapper test/> should render line component new 1`] = `
6081
6081
  "actionLabel": "Click",
6082
6082
  "activeIndex": 0,
6083
6083
  "aspectRatio": "1:1",
6084
- "originalContentUrl": "https://crm-nightly-new-fileservice.s3.amazonaws.com/intouch_creative_assets/b9f2aa7a-3f1a-4a20-a737-8d50841.jpeg",
6084
+ "originalContentUrl": "https://storage.crm.n.content-cdn.io/cdn-cgi/image/width=1024,height=1024,quality=75,/intouch_creative_assets/b9f2aa7a-3f1a-4a20-a737-8d50841.jpeg",
6085
6085
  "selectedActionType": "text",
6086
6086
  "type": "carousel",
6087
6087
  }
@@ -7375,7 +7375,7 @@ exports[`line wrapper test/> should render line component new 1`] = `
7375
7375
  "actionLabel": "Click",
7376
7376
  "activeIndex": 0,
7377
7377
  "aspectRatio": "1:1",
7378
- "originalContentUrl": "https://crm-nightly-new-fileservice.s3.amazonaws.com/intouch_creative_assets/b9f2aa7a-3f1a-4a20-a737-8d50841.jpeg",
7378
+ "originalContentUrl": "https://storage.crm.n.content-cdn.io/cdn-cgi/image/width=1024,height=1024,quality=75,/intouch_creative_assets/b9f2aa7a-3f1a-4a20-a737-8d50841.jpeg",
7379
7379
  "selectedActionType": "text",
7380
7380
  "type": "carousel",
7381
7381
  }
@@ -8680,7 +8680,7 @@ exports[`line wrapper test/> should render line component new 1`] = `
8680
8680
  "actionLabel": "Click",
8681
8681
  "activeIndex": 0,
8682
8682
  "aspectRatio": "1:1",
8683
- "originalContentUrl": "https://crm-nightly-new-fileservice.s3.amazonaws.com/intouch_creative_assets/b9f2aa7a-3f1a-4a20-a737-8d50841.jpeg",
8683
+ "originalContentUrl": "https://storage.crm.n.content-cdn.io/cdn-cgi/image/width=1024,height=1024,quality=75,/intouch_creative_assets/b9f2aa7a-3f1a-4a20-a737-8d50841.jpeg",
8684
8684
  "selectedActionType": "text",
8685
8685
  "type": "carousel",
8686
8686
  }
@@ -12747,7 +12747,7 @@ exports[`line wrapper test/> should render line component new 1`] = `
12747
12747
  "actionLabel": "Click",
12748
12748
  "activeIndex": 0,
12749
12749
  "aspectRatio": "1:1",
12750
- "originalContentUrl": "https://crm-nightly-new-fileservice.s3.amazonaws.com/intouch_creative_assets/b9f2aa7a-3f1a-4a20-a737-8d50841.jpeg",
12750
+ "originalContentUrl": "https://storage.crm.n.content-cdn.io/cdn-cgi/image/width=1024,height=1024,quality=75,/intouch_creative_assets/b9f2aa7a-3f1a-4a20-a737-8d50841.jpeg",
12751
12751
  "selectedActionType": "text",
12752
12752
  "type": "carousel",
12753
12753
  }
@@ -14157,7 +14157,7 @@ exports[`line wrapper test/> should render line component new 1`] = `
14157
14157
  "actionLabel": "Click",
14158
14158
  "activeIndex": 0,
14159
14159
  "aspectRatio": "1:1",
14160
- "originalContentUrl": "https://crm-nightly-new-fileservice.s3.amazonaws.com/intouch_creative_assets/b9f2aa7a-3f1a-4a20-a737-8d50841.jpeg",
14160
+ "originalContentUrl": "https://storage.crm.n.content-cdn.io/cdn-cgi/image/width=1024,height=1024,quality=75,/intouch_creative_assets/b9f2aa7a-3f1a-4a20-a737-8d50841.jpeg",
14161
14161
  "selectedActionType": "text",
14162
14162
  "type": "carousel",
14163
14163
  }
@@ -15498,7 +15498,7 @@ exports[`line wrapper test/> should render line component new 1`] = `
15498
15498
  "actionLabel": "Click",
15499
15499
  "activeIndex": 0,
15500
15500
  "aspectRatio": "1:1",
15501
- "originalContentUrl": "https://crm-nightly-new-fileservice.s3.amazonaws.com/intouch_creative_assets/b9f2aa7a-3f1a-4a20-a737-8d50841.jpeg",
15501
+ "originalContentUrl": "https://storage.crm.n.content-cdn.io/cdn-cgi/image/width=1024,height=1024,quality=75,/intouch_creative_assets/b9f2aa7a-3f1a-4a20-a737-8d50841.jpeg",
15502
15502
  "selectedActionType": "text",
15503
15503
  "type": "carousel",
15504
15504
  }
@@ -16752,7 +16752,7 @@ exports[`line wrapper test/> should render line component new 1`] = `
16752
16752
  "actionLabel": "Click",
16753
16753
  "activeIndex": 0,
16754
16754
  "aspectRatio": "1:1",
16755
- "originalContentUrl": "https://crm-nightly-new-fileservice.s3.amazonaws.com/intouch_creative_assets/b9f2aa7a-3f1a-4a20-a737-8d50841.jpeg",
16755
+ "originalContentUrl": "https://storage.crm.n.content-cdn.io/cdn-cgi/image/width=1024,height=1024,quality=75,/intouch_creative_assets/b9f2aa7a-3f1a-4a20-a737-8d50841.jpeg",
16756
16756
  "selectedActionType": "text",
16757
16757
  "type": "carousel",
16758
16758
  }
@@ -17753,7 +17753,7 @@ exports[`line wrapper test/> should render line component new 1`] = `
17753
17753
  "actionLabel": "Click",
17754
17754
  "activeIndex": 0,
17755
17755
  "aspectRatio": "1:1",
17756
- "originalContentUrl": "https://crm-nightly-new-fileservice.s3.amazonaws.com/intouch_creative_assets/b9f2aa7a-3f1a-4a20-a737-8d50841.jpeg",
17756
+ "originalContentUrl": "https://storage.crm.n.content-cdn.io/cdn-cgi/image/width=1024,height=1024,quality=75,/intouch_creative_assets/b9f2aa7a-3f1a-4a20-a737-8d50841.jpeg",
17757
17757
  "selectedActionType": "text",
17758
17758
  "type": "carousel",
17759
17759
  }