@useinsider/guido 1.0.3-beta.d1ff593 → 1.0.3-beta.d6f4719

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 (68) hide show
  1. package/README.md +126 -0
  2. package/dist/components/organisms/header/LeftSlot.vue.js +1 -1
  3. package/dist/components/organisms/header/LeftSlot.vue2.js +16 -15
  4. package/dist/components/organisms/header/RightSlot.vue.js +5 -5
  5. package/dist/components/organisms/header/RightSlot.vue2.js +20 -19
  6. package/dist/composables/useBlocksConfig.js +58 -0
  7. package/dist/composables/usePartner.js +9 -5
  8. package/dist/composables/useStripo.js +39 -50
  9. package/dist/config/migrator/index.js +6 -7
  10. package/dist/enums/defaults.js +10 -5
  11. package/dist/extensions/Blocks/Recommendation/block.js +2 -5
  12. package/dist/extensions/Blocks/Recommendation/control.js +40 -68
  13. package/dist/extensions/Blocks/Recommendation/extension.js +6 -25
  14. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +18 -58
  15. package/dist/extensions/Blocks/Recommendation/template.js +151 -265
  16. package/dist/extensions/Blocks/common-control.js +43 -125
  17. package/dist/guido.css +1 -1
  18. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +104 -289
  19. package/dist/src/@types/generic.d.ts +7 -0
  20. package/dist/src/components/wrappers/WpModal.vue.d.ts +1 -1
  21. package/dist/src/composables/useBlocksConfig.d.ts +11 -0
  22. package/dist/src/composables/usePartner.d.ts +1 -0
  23. package/dist/src/extensions/Blocks/Recommendation/block.d.ts +0 -1
  24. package/dist/src/extensions/Blocks/Recommendation/control.d.ts +0 -6
  25. package/dist/src/extensions/Blocks/Recommendation/template.d.ts +1 -38
  26. package/dist/src/extensions/Blocks/common-control.d.ts +0 -21
  27. package/dist/src/stores/config.d.ts +4 -0
  28. package/package.json +2 -2
  29. package/dist/config/migrator/recommendationMigrator.js +0 -203
  30. package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +0 -335
  31. package/dist/extensions/Blocks/Recommendation/controls/button/align.js +0 -12
  32. package/dist/extensions/Blocks/Recommendation/controls/button/border.js +0 -12
  33. package/dist/extensions/Blocks/Recommendation/controls/button/borderRadius.js +0 -12
  34. package/dist/extensions/Blocks/Recommendation/controls/button/color.js +0 -12
  35. package/dist/extensions/Blocks/Recommendation/controls/button/fitToContent.js +0 -12
  36. package/dist/extensions/Blocks/Recommendation/controls/button/fontFamily.js +0 -12
  37. package/dist/extensions/Blocks/Recommendation/controls/button/margins.js +0 -12
  38. package/dist/extensions/Blocks/Recommendation/controls/button/paddings.js +0 -12
  39. package/dist/extensions/Blocks/Recommendation/controls/button/text.js +0 -12
  40. package/dist/extensions/Blocks/Recommendation/controls/button/textSize.js +0 -12
  41. package/dist/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.js +0 -12
  42. package/dist/extensions/Blocks/Recommendation/controls/name/align.js +0 -12
  43. package/dist/extensions/Blocks/Recommendation/controls/name/background.js +0 -12
  44. package/dist/extensions/Blocks/Recommendation/controls/name/color.js +0 -12
  45. package/dist/extensions/Blocks/Recommendation/controls/name/fontFamily.js +0 -12
  46. package/dist/extensions/Blocks/Recommendation/controls/name/paddings.js +0 -12
  47. package/dist/extensions/Blocks/Recommendation/controls/name/size.js +0 -12
  48. package/dist/extensions/Blocks/Recommendation/controls/name/style.js +0 -12
  49. package/dist/src/config/migrator/recommendationMigrator.d.ts +0 -1
  50. package/dist/src/extensions/Blocks/Recommendation/cardCompositionControl.d.ts +0 -65
  51. package/dist/src/extensions/Blocks/Recommendation/controls/button/align.d.ts +0 -5
  52. package/dist/src/extensions/Blocks/Recommendation/controls/button/border.d.ts +0 -5
  53. package/dist/src/extensions/Blocks/Recommendation/controls/button/borderRadius.d.ts +0 -5
  54. package/dist/src/extensions/Blocks/Recommendation/controls/button/color.d.ts +0 -5
  55. package/dist/src/extensions/Blocks/Recommendation/controls/button/fitToContent.d.ts +0 -5
  56. package/dist/src/extensions/Blocks/Recommendation/controls/button/fontFamily.d.ts +0 -5
  57. package/dist/src/extensions/Blocks/Recommendation/controls/button/margins.d.ts +0 -5
  58. package/dist/src/extensions/Blocks/Recommendation/controls/button/paddings.d.ts +0 -5
  59. package/dist/src/extensions/Blocks/Recommendation/controls/button/text.d.ts +0 -5
  60. package/dist/src/extensions/Blocks/Recommendation/controls/button/textSize.d.ts +0 -5
  61. package/dist/src/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.d.ts +0 -5
  62. package/dist/src/extensions/Blocks/Recommendation/controls/name/align.d.ts +0 -5
  63. package/dist/src/extensions/Blocks/Recommendation/controls/name/background.d.ts +0 -5
  64. package/dist/src/extensions/Blocks/Recommendation/controls/name/color.d.ts +0 -5
  65. package/dist/src/extensions/Blocks/Recommendation/controls/name/fontFamily.d.ts +0 -5
  66. package/dist/src/extensions/Blocks/Recommendation/controls/name/paddings.d.ts +0 -5
  67. package/dist/src/extensions/Blocks/Recommendation/controls/name/size.d.ts +0 -5
  68. package/dist/src/extensions/Blocks/Recommendation/controls/name/style.d.ts +0 -5
@@ -1,314 +1,200 @@
1
- import { BlockType as o, BlockAttr as _ } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
- const R = {
1
+ const g = {
3
2
  TITLE: "You May Also Like!"
4
- }, m = `
5
- <tr>
6
- <td class="spacer" style="height: 20px;"></td>
7
- </tr>
8
- `, O = `
9
- <td align="left" class="ins-recommendation-v3-block-v2 esd-block-recommendation-v3-block es-p20">
3
+ }, h = `
4
+ <td align="left" class="ins-recommendation-v3-block-v2 esd-block-recommendation-v3-block">
10
5
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
11
6
  <tr>
12
- <td align="center">
13
- <table
14
- class="container"
15
- width="100%"
16
- cellpadding="0"
17
- cellspacing="0"
18
- border="0">
19
- <tbody>
20
- <tr>
21
- <td>
22
- <table
23
- width="100%"
24
- cellpadding="0"
25
- cellspacing="0"
26
- border="0">
27
- <tbody>
28
- <${o.BLOCK_TEXT}
29
- class="es-p10t es-p10b es-p20l es-p20r"
30
- align="center">
31
- <p path="1" style="font-size: 28px; color: #333333;">
32
- <strong path="1,0">{-{-TITLE-}-}</strong>
33
- </p>
34
- </${o.BLOCK_TEXT}>
35
- </tbody>
36
- </table>
37
- </td>
38
- </tr>
39
- ${m}
40
- <tr>
41
- <td>
42
- <table
43
- class="ins-recommendation-product-container"
44
- width="100%"
45
- cellpadding="0"
46
- cellspacing="0"
47
- border="0"
48
- >
49
- {-{-PRODUCT_ROWS-}-}
50
- </table>
51
- </td>
52
- </tr>
53
- </tbody>
7
+ <td align="center" style="padding: 20px 0;">
8
+ <!-- Email Content Container -->
9
+ <table class="container"
10
+ width="600"
11
+ cellpadding="0"
12
+ cellspacing="0"
13
+ border="0"
14
+ style="max-width: 600px; width: 100%; background-color: #ffffff;">
15
+ <!-- Heading -->
16
+ <tr>
17
+ <td class="heading"
18
+ style="
19
+ font-size: 28px;
20
+ font-weight: bold;
21
+ color: #333333;
22
+ text-align: center;
23
+ padding: 30px 20px;">
24
+ {-{-TITLE-}-}
25
+ </td>
26
+ </tr>
27
+
28
+ <!-- Product Rows -->
29
+ {-{-PRODUCT_ROWS-}-}
54
30
  </table>
31
+ <!-- End Email Content Container -->
55
32
  </td>
56
33
  </tr>
57
34
  </table>
58
35
  </td>
59
- `, w = `
36
+ `, u = `
60
37
  <tr>
61
- <td>
38
+ <td style="padding: 0 20px;">
62
39
  <table width="100%" height="100%" cellpadding="0" cellspacing="0" border="0">
63
40
  {-{-PRODUCTS-}-}
64
41
  </table>
65
42
  </td>
66
43
  </tr>
67
- `, r = `
44
+ `, m = `
68
45
  <td width="{-{-COLUMN_WIDTH-}-}" style="padding: 0 5px;" valign="top" height="100%">
69
- <table
70
- width="100%"
71
- height="100%"
72
- cellpadding="0"
73
- cellspacing="0"
74
- border="0"
75
- class="product-card-wrapper"
46
+ <table width="100%"
47
+ height="100%"
48
+ cellpadding="0"
49
+ cellspacing="0"
50
+ border="0"
51
+ class="product-card-wrapper"
76
52
  style="background-color: #f8f8f8;">
77
53
  <tr>
78
- {-{-PRODUCT_CONTENT-}-}
54
+ <td class="product-image-cell"
55
+ valign="top"
56
+ style="background-color: #e8f0f2; padding: 30px; text-align: center;">
57
+ <img src="{-{-PRODUCT_IMAGE-}-}"
58
+ alt="{-{-PRODUCT_NAME-}-}" width="120" style="max-width: 100%; height: auto; margin: 0 auto;">
59
+ </td>
79
60
  </tr>
80
61
  </table>
81
62
  </td>
82
- `, y = `
83
- <td class="product-image-cell" valign="top" style="background-color: #e8f0f2; text-align: center;">
84
- <img
85
- src="{-{-PRODUCT_IMAGE-}-}"
86
- alt="{-{-PRODUCT_NAME-}-}"
87
- style="max-width: 100%; height: auto; margin: 0 auto;">
88
- </td>
89
- `, C = `
90
- <td
91
- class="product-name-cell"
92
- valign="top">
93
- <table cellpadding="0" cellspacing="0" role="presentation" width="100%">
94
- <tbody>
95
- <${o.BLOCK_TEXT}
96
- class="product-name es-p15t es-p15b es-p10l es-p10r"
97
- align="center"
98
- esd-extension-block-id="recommendation-block-name">
99
- <p
100
- path="1"
101
- contenteditable="false"
102
- style="font-size: 16px; color: #333333;">
103
- <strong path="1,0">{-{-PRODUCT_NAME-}-}</strong>
104
- </p>
105
- </${o.BLOCK_TEXT}>
106
- </tbody>
63
+ `, b = `
64
+ <td width="{-{-COLUMN_WIDTH-}-}" style="padding: 0 5px;" valign="top" height="100%">
65
+ <table width="100%"
66
+ height="100%"
67
+ cellpadding="0"
68
+ cellspacing="0"
69
+ border="0"
70
+ class="product-card-wrapper"
71
+ style="background-color: #f8f8f8;">
72
+ <tr>
73
+ <td class="product-name-cell"
74
+ valign="top"
75
+ style="font-size: 16px; color: #333333; font-weight: 600; padding: 15px 10px; text-align: center;">
76
+ {-{-PRODUCT_NAME-}-}
77
+ </td>
78
+ </tr>
107
79
  </table>
108
80
  </td>
109
- `, f = `
110
- <td class="price-cell" valign="top" style="padding: 10px; text-align: center;">
111
- <span class="current-price" style="font-size: 16px; color: #333333; font-weight: bold;">18,00 TRY</span>
112
- <span class="old-price" style="font-size: 14px; color: #999999; text-decoration: line-through;">20,00 TRY</span>
113
- </td>
114
- `, k = `
115
- <td
116
- class="button-cell"
117
- valign="top">
118
- <table cellpadding="0" cellspacing="0" role="presentation" width="100%">
119
- <tbody>
120
- <${o.BLOCK_BUTTON}
121
- ${_.BLOCK_BUTTON.href}="#"
122
- class="product-name"
123
- align="center"
124
- esd-extension-block-id="recommendation-block-button">
125
- Buy
126
- </${o.BLOCK_BUTTON}>
127
- </tbody>
81
+ `, x = `
82
+ <td width="{-{-COLUMN_WIDTH-}-}" style="padding: 0 5px;" valign="top" height="100%">
83
+ <table width="100%"
84
+ height="100%"
85
+ cellpadding="0"
86
+ cellspacing="0"
87
+ border="0"
88
+ class="product-card-wrapper"
89
+ style="background-color: #f8f8f8;">
90
+ <tr>
91
+ <td class="price-cell" valign="top" style="padding: 10px; text-align: center;">
92
+ <span class="current-price" style="font-size: 16px; color: #333333; font-weight: bold;">
93
+ 18,00 TRY
94
+ </span>
95
+ <span class="old-price" style="font-size: 14px; color: #999999; text-decoration: line-through;">
96
+ 20,00 TRY
97
+ </span>
98
+ </td>
99
+ </tr>
128
100
  </table>
129
101
  </td>
130
- `, E = `
131
- <td
132
- align="left"
133
- esd-extension-block-id="recommendation-block"
134
- esd-handler-name="esd-extension-RecommendationBlock"
135
- class="ins-recommendation-v3-block-v2 esd-block-recommendation-v3-block esd-extension-block es-p20"
136
- >
137
- <table width="100%" cellpadding="0" cellspacing="0" border="0">
102
+ `, w = `
103
+ <td width="{-{-COLUMN_WIDTH-}-}" style="padding: 0 5px;" valign="top" height="100%">
104
+ <table width="100%"
105
+ height="100%"
106
+ cellpadding="0"
107
+ cellspacing="0"
108
+ border="0"
109
+ class="product-card-wrapper"
110
+ style="background-color: #f8f8f8;">
138
111
  <tr>
139
- <td align="center">
140
- <table
141
- class="container"
142
- width="100%"
143
- cellpadding="0"
144
- cellspacing="0"
145
- border="0">
146
- <tbody>
147
- <tr>
148
- <td>
149
- <table
150
- width="100%"
151
- cellpadding="0"
152
- cellspacing="0"
153
- border="0">
154
- <tbody>
155
- <tr>
156
- {-{-TITLE-}-}
157
- </tr>
158
- </tbody>
159
- </table>
160
- </td>
161
- </tr>
162
- <tr>
163
- <td class="spacer" style="height: 20px;"></td>
164
- </tr>
165
- <tr>
166
- <td>
167
- <table
168
- class="ins-recommendation-product-container"
169
- width="100%"
170
- cellpadding="0"
171
- cellspacing="0"
172
- border="0"
173
- >
174
- {-{-PRODUCT_ROWS-}-}
175
- </table>
176
- </td>
177
- </tr>
178
- </tbody>
179
- </table>
112
+ <td class="button-cell" valign="top" style="padding: 15px 10px 20px 10px; text-align: center;">
113
+ <a href="#"
114
+ class="buy-button"
115
+ style="
116
+ display: inline-block;
117
+ width: 90%;
118
+ max-width: 150px;
119
+ padding: 12px 20px;
120
+ background-color: #ffffff;
121
+ color: #333333;
122
+ text-decoration: none;
123
+ border: 2px solid #cccccc;
124
+ font-size: 16px;
125
+ box-sizing: border-box;">
126
+ Buy
127
+ </a>
180
128
  </td>
181
129
  </tr>
182
130
  </table>
183
131
  </td>
184
- `, D = [
185
- "productImage",
186
- "productName",
187
- "productPrice",
188
- "productButton"
189
- ];
190
- function N(c, l, a = D) {
191
- const b = (100 / l).toFixed(2), i = [];
192
- for (let e = 0; e < c.length; e += l)
193
- i.push(c.slice(e, e + l));
194
- let n = "";
195
- return i.forEach((e, T) => {
196
- T > 0 && (n += m);
197
- let p = "", d = "", s = "", g = "";
198
- e.forEach((t) => {
199
- p += r.replace(
200
- "{-{-PRODUCT_CONTENT-}-}",
201
- y.replace("{-{-PRODUCT_IMAGE-}-}", t.image_url).replace("{-{-PRODUCT_NAME-}-}", t.name)
202
- ), d += r.replace(
203
- "{-{-PRODUCT_CONTENT-}-}",
204
- C.replace("{-{-PRODUCT_NAME-}-}", t.name)
205
- ), s += r.replace(
206
- "{-{-PRODUCT_CONTENT-}-}",
207
- f
208
- ), g += r.replace(
209
- "{-{-PRODUCT_CONTENT-}-}",
210
- k
211
- );
212
- });
213
- const u = {
214
- productImage: p,
215
- productName: d,
216
- productPrice: s,
217
- productButton: g
218
- }, h = a.filter((t) => u[t]).map((t) => `<tr>${u[t]}</tr>`).join("");
219
- n += w.replace("{-{-PRODUCTS-}-}", h);
220
- }), n.replaceAll("{-{-COLUMN_WIDTH-}-}", `${b}%`);
221
- }
222
- function U() {
223
- return [
132
+ `, f = `
133
+ <tr>
134
+ <td class="spacer" style="height: 20px;"></td>
135
+ </tr>
136
+ `;
137
+ function T() {
138
+ const c = [
224
139
  {
225
- name: "Product Name",
226
- image_url: "https://email-static.useinsider.com/stripo/modules/email-recommendation-v3/assets/images/image-placeholder.png",
227
- price: { USD: 18 },
228
- original_price: { USD: 20 },
229
- discount: { USD: 2 },
230
- url: "https://example.com/product/1",
231
- item_id: "1",
232
- in_stock: 1,
233
- locale: "en",
234
- product_attributes: {},
235
- category: []
140
+ name: "Beanie with Logo",
141
+ image: "https://inshoppingcart.com/ins-html/wp-content/uploads/2018/08/beanie-with-logo-1.jpg",
142
+ price: "18,00 TRY",
143
+ oldPrice: "20,00 TRY",
144
+ url: "https://example.com/product/1"
236
145
  },
237
146
  {
238
147
  name: "Belt",
239
- image_url: "https://inshoppingcart.com/ins-html/wp-content/uploads/2018/09/belt-2.jpg",
240
- price: { TRY: 55 },
241
- original_price: { TRY: 65 },
242
- discount: { TRY: 10 },
243
- url: "https://example.com/product/2",
244
- item_id: "2",
245
- in_stock: 1,
246
- locale: "tr",
247
- product_attributes: {},
248
- category: []
148
+ image: "https://inshoppingcart.com/ins-html/wp-content/uploads/2018/09/belt-2.jpg",
149
+ price: "55,00 TRY",
150
+ oldPrice: "65,00 TRY",
151
+ url: "https://example.com/product/2"
249
152
  },
250
153
  {
251
154
  name: "Beanie",
252
- image_url: "https://inshoppingcart.com/ins-html/wp-content/uploads/2018/08/beanie-with-logo-1.jpg",
253
- price: { TRY: 18 },
254
- original_price: { TRY: 20 },
255
- discount: { TRY: 2 },
256
- url: "https://example.com/product/3",
257
- item_id: "3",
258
- in_stock: 1,
259
- locale: "tr",
260
- product_attributes: {},
261
- category: []
155
+ image: "https://inshoppingcart.com/ins-html/wp-content/uploads/2018/08/beanie-with-logo-1.jpg",
156
+ price: "18,00 TRY",
157
+ oldPrice: "20,00 TRY",
158
+ url: "https://example.com/product/3"
262
159
  },
263
160
  {
264
161
  name: "Album",
265
- image_url: "https://inshoppingcart.com/ins-html/wp-content/uploads/2018/12/poster_2_up.jpg",
266
- price: { TRY: 15 },
267
- original_price: { TRY: 15 },
268
- discount: { TRY: 0 },
269
- url: "https://example.com/product/4",
270
- item_id: "4",
271
- in_stock: 1,
272
- locale: "tr",
273
- product_attributes: {},
274
- category: []
162
+ image: "https://inshoppingcart.com/ins-html/wp-content/uploads/2018/12/poster_2_up.jpg",
163
+ price: "15,00 TRY",
164
+ oldPrice: "15,00 TRY",
165
+ url: "https://example.com/product/4"
275
166
  },
276
167
  {
277
168
  name: "Flying Ninja with a very long product name",
278
- image_url: "https://inshoppingcart.com/ins-html/wp-content/uploads/2018/09/belt-2.jpg",
279
- price: { TRY: 12 },
280
- original_price: { TRY: 15 },
281
- discount: { TRY: 3 },
282
- url: "https://example.com/product/5",
283
- item_id: "5",
284
- in_stock: 1,
285
- locale: "tr",
286
- product_attributes: {},
287
- category: []
169
+ image: "https://inshoppingcart.com/ins-html/wp-content/uploads/2018/09/belt-2.jpg",
170
+ price: "12,00 TRY",
171
+ oldPrice: "15,00 TRY",
172
+ url: "https://example.com/product/5"
288
173
  },
289
174
  {
290
175
  name: "Single",
291
- image_url: "https://inshoppingcart.com/ins-html/wp-content/uploads/2018/12/poster_2_up.jpg",
292
- price: { TRY: 22555 },
293
- original_price: { TRY: 33989 },
294
- discount: { TRY: 11434 },
295
- url: "https://example.com/product/6",
296
- item_id: "6",
297
- in_stock: 1,
298
- locale: "tr",
299
- product_attributes: {},
300
- category: []
176
+ image: "https://inshoppingcart.com/ins-html/wp-content/uploads/2018/12/poster_2_up.jpg",
177
+ price: "22.555,00 TRY",
178
+ oldPrice: "33.989,00 TRY",
179
+ url: "https://example.com/product/6"
301
180
  }
302
- ];
303
- }
304
- function P() {
305
- const c = U(), a = N(c, 3);
306
- return O.replace("{-{-TITLE-}-}", R.TITLE).replace("{-{-PRODUCT_ROWS-}-}", a);
181
+ ], l = 3, d = (100 / l).toFixed(2), a = [];
182
+ for (let t = 0; t < c.length; t += l)
183
+ a.push(c.slice(t, t + l));
184
+ let e = "";
185
+ return a.forEach((t, s) => {
186
+ s > 0 && (e += f);
187
+ let p = "", r = "", n = "", i = "";
188
+ t.forEach((o) => {
189
+ p += m.replace("{-{-PRODUCT_IMAGE-}-}", o.image).replace("{-{-PRODUCT_NAME-}-}", o.name), r += b.replace("{-{-PRODUCT_NAME-}-}", o.name), n += x, i += w;
190
+ }), e += u.replace("{-{-PRODUCTS-}-}", `
191
+ <tr>${p}</tr>
192
+ <tr>${r}</tr>
193
+ <tr>${n}</tr>
194
+ <tr>${i}</tr>
195
+ `), e = e.replaceAll("{-{-COLUMN_WIDTH-}-}", `${d}%`);
196
+ }), h.replace("{-{-TITLE-}-}", g.TITLE).replace("{-{-PRODUCT_ROWS-}-}", e);
307
197
  }
308
198
  export {
309
- D as DEFAULT_CARD_COMPOSITION,
310
- E as default,
311
- U as getDefaultProducts,
312
- P as getDefaultTemplate,
313
- N as prepareProductRows
199
+ T as getDefaultTemplate
314
200
  };