@useinsider/guido 1.0.3-beta.060cc69 → 1.0.3-beta.09a6feb

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 (160) hide show
  1. package/README.md +142 -3
  2. package/dist/components/Guido.vue.js +11 -9
  3. package/dist/components/Guido.vue2.js +51 -47
  4. package/dist/components/organisms/extensions/recommendation/FilterItem.vue.js +28 -0
  5. package/dist/components/organisms/extensions/recommendation/FilterItem.vue2.js +38 -0
  6. package/dist/components/organisms/extensions/recommendation/FilterSelectionDrawer.vue.js +17 -0
  7. package/dist/components/organisms/extensions/recommendation/FilterSelectionDrawer.vue2.js +37 -0
  8. package/dist/components/organisms/extensions/recommendation/Filters.vue.js +20 -0
  9. package/dist/components/organisms/extensions/recommendation/Filters.vue2.js +44 -0
  10. package/dist/components/organisms/extensions/recommendation/LogicAdapter.vue.js +17 -0
  11. package/dist/components/organisms/extensions/recommendation/LogicAdapter.vue2.js +27 -0
  12. package/dist/components/organisms/header/LeftSlot.vue.js +1 -1
  13. package/dist/components/organisms/header/LeftSlot.vue2.js +16 -15
  14. package/dist/components/organisms/header/RightSlot.vue.js +11 -11
  15. package/dist/components/organisms/header/RightSlot.vue2.js +23 -22
  16. package/dist/components/organisms/onboarding/NewVersionPopup.vue.js +9 -9
  17. package/dist/components/organisms/onboarding/NewVersionPopup.vue2.js +30 -17
  18. package/dist/components/organisms/onboarding/OnboardingWrapper.vue.js +12 -10
  19. package/dist/components/organisms/onboarding/OnboardingWrapper.vue2.js +19 -18
  20. package/dist/composables/useBlocksConfig.js +49 -0
  21. package/dist/composables/useGuidoActions.js +19 -9
  22. package/dist/composables/useStripo.js +39 -48
  23. package/dist/config/compiler/unsubscribeCompilerRules.js +33 -28
  24. package/dist/config/migrator/index.js +7 -6
  25. package/dist/config/migrator/recommendationMigrator.js +293 -0
  26. package/dist/enums/date.js +6 -0
  27. package/dist/enums/defaults.js +15 -8
  28. package/dist/enums/extensions/recommendationBlock.js +80 -0
  29. package/dist/enums/onboarding.js +2 -1
  30. package/dist/enums/unsubscribe.js +10 -9
  31. package/dist/extensions/Blocks/Checkbox/extension.js +2 -2
  32. package/dist/extensions/Blocks/CouponBlock/extension.js +2 -2
  33. package/dist/extensions/Blocks/RadioButton/template.js +6 -6
  34. package/dist/extensions/Blocks/Recommendation/block.js +30 -0
  35. package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +103 -0
  36. package/dist/extensions/Blocks/Recommendation/constants.js +5 -0
  37. package/dist/extensions/Blocks/Recommendation/control.js +306 -0
  38. package/dist/extensions/Blocks/Recommendation/controls/button/align.js +13 -0
  39. package/dist/extensions/Blocks/Recommendation/controls/button/border.js +13 -0
  40. package/dist/extensions/Blocks/Recommendation/controls/button/borderRadius.js +13 -0
  41. package/dist/extensions/Blocks/Recommendation/controls/button/color.js +13 -0
  42. package/dist/extensions/Blocks/Recommendation/controls/button/fitToContent.js +13 -0
  43. package/dist/extensions/Blocks/Recommendation/controls/button/fontFamily.js +13 -0
  44. package/dist/extensions/Blocks/Recommendation/controls/button/margins.js +13 -0
  45. package/dist/extensions/Blocks/Recommendation/controls/button/paddings.js +13 -0
  46. package/dist/extensions/Blocks/Recommendation/controls/button/text.js +13 -0
  47. package/dist/extensions/Blocks/Recommendation/controls/button/textSize.js +13 -0
  48. package/dist/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.js +13 -0
  49. package/dist/extensions/Blocks/Recommendation/controls/image/margins.js +13 -0
  50. package/dist/extensions/Blocks/Recommendation/controls/image/size.js +13 -0
  51. package/dist/extensions/Blocks/Recommendation/controls/name/align.js +13 -0
  52. package/dist/extensions/Blocks/Recommendation/controls/name/background.js +13 -0
  53. package/dist/extensions/Blocks/Recommendation/controls/name/color.js +13 -0
  54. package/dist/extensions/Blocks/Recommendation/controls/name/fontFamily.js +13 -0
  55. package/dist/extensions/Blocks/Recommendation/controls/name/paddings.js +13 -0
  56. package/dist/extensions/Blocks/Recommendation/controls/name/size.js +13 -0
  57. package/dist/extensions/Blocks/Recommendation/controls/name/style.js +13 -0
  58. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/align.js +13 -0
  59. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/background.js +13 -0
  60. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/color.js +13 -0
  61. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.js +13 -0
  62. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/paddings.js +13 -0
  63. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/size.js +13 -0
  64. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/style.js +13 -0
  65. package/dist/extensions/Blocks/Recommendation/controls/price/align.js +13 -0
  66. package/dist/extensions/Blocks/Recommendation/controls/price/background.js +13 -0
  67. package/dist/extensions/Blocks/Recommendation/controls/price/color.js +13 -0
  68. package/dist/extensions/Blocks/Recommendation/controls/price/fontFamily.js +13 -0
  69. package/dist/extensions/Blocks/Recommendation/controls/price/paddings.js +13 -0
  70. package/dist/extensions/Blocks/Recommendation/controls/price/size.js +13 -0
  71. package/dist/extensions/Blocks/Recommendation/controls/price/style.js +13 -0
  72. package/dist/extensions/Blocks/Recommendation/extension.js +45 -0
  73. package/dist/extensions/Blocks/Recommendation/iconsRegistry.js +51 -0
  74. package/dist/extensions/Blocks/Recommendation/recommendation.css.js +19 -0
  75. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +117 -0
  76. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +266 -0
  77. package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +160 -0
  78. package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +152 -0
  79. package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +180 -0
  80. package/dist/extensions/Blocks/Recommendation/utils/filterUtil.js +28 -0
  81. package/dist/extensions/Blocks/common-control.js +184 -0
  82. package/dist/guido.css +1 -1
  83. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +311 -93
  84. package/dist/package.json.js +1 -1
  85. package/dist/services/recommendationApi.js +43 -0
  86. package/dist/services/stripoApi.js +1 -1
  87. package/dist/src/@types/generic.d.ts +19 -0
  88. package/dist/src/components/Guido.vue.d.ts +2 -0
  89. package/dist/src/components/organisms/extensions/recommendation/FilterItem.vue.d.ts +19 -0
  90. package/dist/src/components/organisms/extensions/recommendation/FilterSelectionDrawer.vue.d.ts +2 -0
  91. package/dist/src/components/organisms/extensions/recommendation/Filters.vue.d.ts +2 -0
  92. package/dist/src/components/organisms/extensions/recommendation/LogicAdapter.vue.d.ts +16 -0
  93. package/dist/src/components/organisms/onboarding/NewVersionPopup.vue.d.ts +3 -1
  94. package/dist/src/components/organisms/onboarding/OnboardingWrapper.vue.d.ts +3 -1
  95. package/dist/src/components/wrappers/WpModal.vue.d.ts +1 -1
  96. package/dist/src/composables/useBlocksConfig.d.ts +11 -0
  97. package/dist/src/composables/useGuidoActions.d.ts +9 -0
  98. package/dist/src/config/migrator/recommendationMigrator.d.ts +1 -0
  99. package/dist/src/enums/date.d.ts +4 -0
  100. package/dist/src/enums/extensions/recommendationBlock.d.ts +16 -0
  101. package/dist/src/enums/onboarding.d.ts +1 -0
  102. package/dist/src/extensions/Blocks/Recommendation/block.d.ts +11 -0
  103. package/dist/src/extensions/Blocks/Recommendation/cardCompositionControl.d.ts +28 -0
  104. package/dist/src/extensions/Blocks/Recommendation/constants.d.ts +51 -0
  105. package/dist/src/extensions/Blocks/Recommendation/control.d.ts +35 -0
  106. package/dist/src/extensions/Blocks/Recommendation/controls/button/align.d.ts +5 -0
  107. package/dist/src/extensions/Blocks/Recommendation/controls/button/border.d.ts +5 -0
  108. package/dist/src/extensions/Blocks/Recommendation/controls/button/borderRadius.d.ts +5 -0
  109. package/dist/src/extensions/Blocks/Recommendation/controls/button/color.d.ts +5 -0
  110. package/dist/src/extensions/Blocks/Recommendation/controls/button/fitToContent.d.ts +5 -0
  111. package/dist/src/extensions/Blocks/Recommendation/controls/button/fontFamily.d.ts +5 -0
  112. package/dist/src/extensions/Blocks/Recommendation/controls/button/margins.d.ts +5 -0
  113. package/dist/src/extensions/Blocks/Recommendation/controls/button/paddings.d.ts +5 -0
  114. package/dist/src/extensions/Blocks/Recommendation/controls/button/text.d.ts +5 -0
  115. package/dist/src/extensions/Blocks/Recommendation/controls/button/textSize.d.ts +5 -0
  116. package/dist/src/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.d.ts +5 -0
  117. package/dist/src/extensions/Blocks/Recommendation/controls/image/margins.d.ts +5 -0
  118. package/dist/src/extensions/Blocks/Recommendation/controls/image/size.d.ts +5 -0
  119. package/dist/src/extensions/Blocks/Recommendation/controls/name/align.d.ts +5 -0
  120. package/dist/src/extensions/Blocks/Recommendation/controls/name/background.d.ts +5 -0
  121. package/dist/src/extensions/Blocks/Recommendation/controls/name/color.d.ts +5 -0
  122. package/dist/src/extensions/Blocks/Recommendation/controls/name/fontFamily.d.ts +5 -0
  123. package/dist/src/extensions/Blocks/Recommendation/controls/name/paddings.d.ts +5 -0
  124. package/dist/src/extensions/Blocks/Recommendation/controls/name/size.d.ts +5 -0
  125. package/dist/src/extensions/Blocks/Recommendation/controls/name/style.d.ts +5 -0
  126. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/align.d.ts +5 -0
  127. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/background.d.ts +5 -0
  128. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/color.d.ts +5 -0
  129. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.d.ts +5 -0
  130. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/paddings.d.ts +5 -0
  131. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/size.d.ts +5 -0
  132. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/style.d.ts +5 -0
  133. package/dist/src/extensions/Blocks/Recommendation/controls/price/align.d.ts +5 -0
  134. package/dist/src/extensions/Blocks/Recommendation/controls/price/background.d.ts +5 -0
  135. package/dist/src/extensions/Blocks/Recommendation/controls/price/color.d.ts +5 -0
  136. package/dist/src/extensions/Blocks/Recommendation/controls/price/fontFamily.d.ts +5 -0
  137. package/dist/src/extensions/Blocks/Recommendation/controls/price/paddings.d.ts +5 -0
  138. package/dist/src/extensions/Blocks/Recommendation/controls/price/size.d.ts +5 -0
  139. package/dist/src/extensions/Blocks/Recommendation/controls/price/style.d.ts +5 -0
  140. package/dist/src/extensions/Blocks/Recommendation/extension.d.ts +2 -0
  141. package/dist/src/extensions/Blocks/Recommendation/iconsRegistry.d.ts +4 -0
  142. package/dist/src/extensions/Blocks/Recommendation/settingsPanel.d.ts +4 -0
  143. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +555 -0
  144. package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +16 -0
  145. package/dist/src/extensions/Blocks/Recommendation/templates/migrationTemplate.d.ts +16 -0
  146. package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +44 -0
  147. package/dist/src/extensions/Blocks/Recommendation/utils/filterUtil.d.ts +7 -0
  148. package/dist/src/extensions/Blocks/common-control.d.ts +87 -0
  149. package/dist/src/mock/api/recommendation.d.ts +2 -0
  150. package/dist/src/services/recommendationApi.d.ts +6 -0
  151. package/dist/src/stores/config.d.ts +7 -0
  152. package/dist/src/stores/editor.d.ts +21 -0
  153. package/dist/src/utils/dateUtil.d.ts +21 -0
  154. package/dist/src/utils/genericUtil.d.ts +1 -0
  155. package/dist/static/styles/components/narrow-panel.css.js +10 -0
  156. package/dist/static/styles/customEditorStyle.css.js +5 -0
  157. package/dist/stores/editor.js +2 -1
  158. package/dist/utils/dateUtil.js +24 -3
  159. package/dist/utils/genericUtil.js +8 -7
  160. package/package.json +4 -4
@@ -0,0 +1,266 @@
1
+ import { RecommendationFeedSourceMaps as s, PriceAttributes as l } from "../../../../enums/extensions/recommendationBlock.js";
2
+ import { useRecommendationApi as c } from "../../../../services/recommendationApi.js";
3
+ import { defineStore as p } from "pinia";
4
+ import { generateCompleteFilterQuery as m } from "../utils/filterUtil.js";
5
+ const a = c(), d = () => ({
6
+ recommendationCampaignUrls: {},
7
+ recommendationProducts: [],
8
+ recommendationConfigs: {
9
+ cardsInRow: 3,
10
+ currencySettings: {
11
+ name: "USD",
12
+ value: "USD",
13
+ symbol: "USD",
14
+ alignment: "1",
15
+ decimalCount: "2",
16
+ decimalSeparator: ",",
17
+ thousandSeparator: "."
18
+ },
19
+ filters: [
20
+ {
21
+ type: "standardFilter",
22
+ attribute: "product_attributes.rating_star",
23
+ operatorReplace: "=",
24
+ operator: "=",
25
+ innerGroupOperator: "*",
26
+ outerGroupOperator: "*",
27
+ value: "5",
28
+ filterGroup: 1,
29
+ filterNumber: 1,
30
+ isValid: !0
31
+ },
32
+ {
33
+ type: "standardFilter",
34
+ attribute: "gender",
35
+ operatorReplace: "=",
36
+ operator: "=",
37
+ innerGroupOperator: "|",
38
+ outerGroupOperator: "*",
39
+ value: "male",
40
+ filterGroup: 1,
41
+ filterNumber: 2,
42
+ isValid: !0
43
+ },
44
+ {
45
+ type: "standardFilter",
46
+ attribute: "size",
47
+ operatorReplace: "=",
48
+ operator: "=",
49
+ innerGroupOperator: "*",
50
+ outerGroupOperator: "*",
51
+ value: "L",
52
+ filterGroup: 1,
53
+ filterNumber: 3,
54
+ isValid: !0
55
+ },
56
+ {
57
+ type: "standardFilter",
58
+ attribute: "price.USD",
59
+ operatorReplace: ">",
60
+ operator: ">",
61
+ innerGroupOperator: "*",
62
+ outerGroupOperator: "*",
63
+ value: "20",
64
+ filterGroup: 2,
65
+ filterNumber: 1,
66
+ isValid: !0
67
+ },
68
+ {
69
+ type: "standardFilter",
70
+ attribute: "url",
71
+ operatorReplace: "~",
72
+ operator: "~",
73
+ innerGroupOperator: "|",
74
+ outerGroupOperator: "*",
75
+ value: "user",
76
+ filterGroup: 2,
77
+ filterNumber: 2,
78
+ isValid: !0
79
+ },
80
+ {
81
+ type: "standardFilter",
82
+ attribute: "category",
83
+ operatorReplace: "!~",
84
+ operator: "!~",
85
+ innerGroupOperator: "*",
86
+ outerGroupOperator: "|",
87
+ value: "t-shirt",
88
+ filterGroup: 3,
89
+ filterNumber: 1,
90
+ isValid: !0
91
+ },
92
+ {
93
+ type: "standardFilter",
94
+ attribute: "omnibus_price.USD",
95
+ operatorReplace: ">",
96
+ operator: ">",
97
+ innerGroupOperator: "*",
98
+ outerGroupOperator: "|",
99
+ value: "31",
100
+ filterGroup: 3,
101
+ filterNumber: 2,
102
+ isValid: !0
103
+ },
104
+ {
105
+ type: "standardFilter",
106
+ attribute: "omnibus_discount.USD",
107
+ operatorReplace: "<",
108
+ operator: "%3C",
109
+ innerGroupOperator: "|",
110
+ outerGroupOperator: "|",
111
+ value: "20",
112
+ filterGroup: 3,
113
+ filterNumber: 3,
114
+ isValid: !0
115
+ }
116
+ ],
117
+ productIds: ["22", "12"],
118
+ id: 1,
119
+ language: "tr_TR",
120
+ orientation: "vertical",
121
+ recommendedProducts: [],
122
+ sendProductRequestFlag: !1,
123
+ shuffleProducts: !1,
124
+ strategy: "mostPopular",
125
+ textTrimming: !0,
126
+ unresponsive: !1,
127
+ size: "9"
128
+ },
129
+ activePredictiveAlgorithms: [],
130
+ languages: {},
131
+ currencyList: [],
132
+ filterStatus: !1,
133
+ filterSelectionDrawerStatus: !1,
134
+ filterList: {},
135
+ filterGroup: 1
136
+ }), G = p("recommendationExtension", {
137
+ state: () => d(),
138
+ getters: {
139
+ hasFilters: (e) => !!e.recommendationConfigs.filters.length,
140
+ getFilterGroupCount: (e) => {
141
+ const { filters: t } = e.recommendationConfigs;
142
+ return t.length && t[t.length - 1].filterGroup || 0;
143
+ },
144
+ getActivePredictiveAlgorithms: (e) => {
145
+ const t = [];
146
+ return e.activePredictiveAlgorithms.forEach((r) => {
147
+ t.push(...s.filter((i) => i.id === r));
148
+ }), t.map((r) => ({
149
+ text: r.name,
150
+ value: r.key
151
+ }));
152
+ },
153
+ getLanguages: (e) => Object.entries(e.languages).map(([t, r]) => ({
154
+ text: r,
155
+ value: t
156
+ })),
157
+ getCurrencySymbolList: (e) => e.currencyList.map((t) => ({
158
+ text: t.text,
159
+ value: t.text
160
+ })),
161
+ getFilterList: (e) => Object.values(e.filterList).map((t) => {
162
+ const r = t.type === "defaultAttribute", i = l.includes(t.attributeName);
163
+ let o = r ? t.attributeName : `product_attributes.${t.attributeName}`;
164
+ return o = i ? `${o}.${e.recommendationConfigs.currencySettings.value}` : o, {
165
+ text: t.displayName,
166
+ value: o,
167
+ type: t.attributeType
168
+ };
169
+ }),
170
+ getSelectedFilterGroup: (e) => (t) => [...e.recommendationConfigs.filters].filter((r) => r.filterGroup === t)
171
+ },
172
+ actions: {
173
+ async fetchRecommendationCreateData() {
174
+ if (this.activePredictiveAlgorithms.length)
175
+ return;
176
+ const {
177
+ activePredictiveAlgorithms: e,
178
+ languages: t,
179
+ currencies: r
180
+ } = await a.fetchRecommendationCreateData();
181
+ this.activePredictiveAlgorithms = e, this.languages = t;
182
+ const [i] = r;
183
+ this.recommendationConfigs.currencySettings.name = i.text, this.recommendationConfigs.currencySettings.value = i.value, this.currencyList = r, this.filterStatus = !!this.recommendationConfigs.filters.length;
184
+ },
185
+ async fetchRecommendationFilters() {
186
+ const e = await a.fetchRecommendationFilters();
187
+ this.filterList = e;
188
+ },
189
+ addFilterGroup(e) {
190
+ this.recommendationConfigs.filters.push({
191
+ type: "standardFilter",
192
+ attribute: "",
193
+ operatorReplace: "",
194
+ operator: "",
195
+ innerGroupOperator: "",
196
+ outerGroupOperator: "",
197
+ value: "",
198
+ filterNumber: 1,
199
+ isValid: !0,
200
+ filterGroup: e
201
+ });
202
+ },
203
+ updateFilter(e) {
204
+ const t = this.recommendationConfigs.filters.findIndex((r) => r.filterNumber === e.filterNumber && r.filterGroup === e.filterGroup);
205
+ if (t !== -1) {
206
+ const r = [...this.recommendationConfigs.filters];
207
+ r[t] = e, e.value.length && e.operator && e.attribute && e.innerGroupOperator && e.outerGroupOperator ? r[t].isValid = !0 : r[t].isValid = !1, this.$patch({
208
+ recommendationConfigs: {
209
+ filters: r
210
+ }
211
+ });
212
+ }
213
+ },
214
+ deleteFilter(e) {
215
+ const t = [...this.recommendationConfigs.filters].findIndex((r) => r.filterNumber === e.filterNumber && r.filterGroup === e.filterGroup);
216
+ if (t !== -1) {
217
+ const r = [...this.recommendationConfigs.filters];
218
+ r.splice(t, 1), this.$patch({
219
+ recommendationConfigs: {
220
+ filters: r
221
+ }
222
+ });
223
+ }
224
+ },
225
+ addFilter(e) {
226
+ const t = [...this.recommendationConfigs.filters], r = t.findLastIndex((i) => i.filterGroup === e.filterGroup);
227
+ r !== -1 ? t.splice(r + 1, 0, {
228
+ ...e,
229
+ filterNumber: r + 2
230
+ }) : t.push({
231
+ ...e,
232
+ filterNumber: 1
233
+ }), this.$patch({
234
+ recommendationConfigs: {
235
+ filters: t
236
+ }
237
+ });
238
+ },
239
+ generateFilterQuery() {
240
+ return m(this.recommendationConfigs.filters);
241
+ },
242
+ async fetchRecommendationProducts() {
243
+ var i, o, n;
244
+ const e = this.generateFilterQuery(), t = ((i = s.find((u) => u.key === this.recommendationConfigs.strategy)) == null ? void 0 : i.path) || "", r = await a.fetchRecommendationProducts(
245
+ t,
246
+ {
247
+ // TODO: Here will be optimized and filled carefully
248
+ locale: this.recommendationConfigs.language,
249
+ currency: this.recommendationConfigs.currencySettings.value,
250
+ partnerName: ((n = (o = window.GuidoConfig) == null ? void 0 : o.partner) == null ? void 0 : n.partnerName) || "",
251
+ productId: this.recommendationConfigs.strategy === "manualMerchandising" ? this.recommendationConfigs.productIds.join(",") : "{itemId}",
252
+ size: this.recommendationConfigs.size,
253
+ details: !0,
254
+ campaignId: "{campaignId}",
255
+ filter: e
256
+ }
257
+ );
258
+ this.$patch({
259
+ recommendationProducts: r
260
+ });
261
+ }
262
+ }
263
+ });
264
+ export {
265
+ G as useRecommendationExtensionStore
266
+ };
@@ -0,0 +1,160 @@
1
+ import { BlockType as t, BlockAttr as n } from "../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
+ import { RecommendationBlockId as o } from "../constants.js";
3
+ import { generateTemplate as l, prepareProductRows as s, spacer as d, DEFAULTS as p, getDefaultProducts as i } from "./templateUtils.js";
4
+ import { DEFAULT_CARD_COMPOSITION as $ } from "./templateUtils.js";
5
+ const g = `
6
+ <td align="left" class="ins-recommendation-v3-block-v2 esd-block-recommendation-v3-block es-p20">
7
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
8
+ <tr>
9
+ <td align="center">
10
+ <table
11
+ class="container"
12
+ width="100%"
13
+ cellpadding="0"
14
+ cellspacing="0"
15
+ border="0">
16
+ <tbody>
17
+ <tr>
18
+ <td>
19
+ <table
20
+ width="100%"
21
+ cellpadding="0"
22
+ cellspacing="0"
23
+ border="0">
24
+ <tbody>
25
+ <${t.BLOCK_TEXT}
26
+ class="es-p10t es-p10b es-p20l es-p20r"
27
+ align="center">
28
+ <p path="1" style="font-size: 28px; color: #333333;">
29
+ <strong path="1,0">{-{-TITLE-}-}</strong>
30
+ </p>
31
+ </${t.BLOCK_TEXT}>
32
+ </tbody>
33
+ </table>
34
+ </td>
35
+ </tr>
36
+ ${d}
37
+ <tr>
38
+ <td>
39
+ <table
40
+ class="ins-recommendation-product-container"
41
+ width="100%"
42
+ cellpadding="0"
43
+ cellspacing="0"
44
+ border="0"
45
+ >
46
+ {-{-PRODUCT_ROWS-}-}
47
+ </table>
48
+ </td>
49
+ </tr>
50
+ </tbody>
51
+ </table>
52
+ </td>
53
+ </tr>
54
+ </table>
55
+ </td>
56
+ `, a = {
57
+ productImage: (e) => `
58
+ <${t.BLOCK_IMAGE}
59
+ ${n.BLOCK_IMAGE.src}="${e.image_url}"
60
+ ${n.BLOCK_IMAGE.alt}="${e.name}"
61
+ ${n.BLOCK_IMAGE.href}="#"
62
+ class="product-image"
63
+ align="center"
64
+ style="max-width: 100%; height: auto; margin: 0 auto;"
65
+ esd-extension-block-id="${o.IMAGE}">
66
+ </${t.BLOCK_IMAGE}>
67
+ `,
68
+ productName: (e) => `
69
+ <${t.BLOCK_TEXT}
70
+ class="product-name"
71
+ align="center"
72
+ style="font-size: 16px; color: #333333; font-weight: 600; padding: 15px 10px; text-align: center;"
73
+ esd-extension-block-id="${o.NAME}">
74
+ <p path="1" contenteditable="false">
75
+ <strong path="1,0">${e.name}</strong>
76
+ </p>
77
+ </${t.BLOCK_TEXT}>
78
+ `,
79
+ productPrice: () => `
80
+ <${t.BLOCK_TEXT}
81
+ class="product-price"
82
+ align="center"
83
+ style="padding: 10px; text-align: center;"
84
+ esd-extension-block-id="${o.PRICE}">
85
+ <p path="1" contenteditable="false">
86
+ <span class="current-price" style="font-size: 16px; color: #333333; font-weight: bold;">
87
+ <strong path="1,0">18,00 TRY</strong>
88
+ </span>
89
+ </p>
90
+ </${t.BLOCK_TEXT}>
91
+ `,
92
+ productOldPrice: () => `
93
+ <${t.BLOCK_TEXT}
94
+ class="product-old-price"
95
+ align="center"
96
+ style="padding: 10px; text-align: center;"
97
+ esd-extension-block-id="${o.OLD_PRICE}">
98
+ <p path="1" contenteditable="false">
99
+ <span class="old-price" style="font-size: 14px; color: #999999; text-decoration: line-through;">
100
+ <s path="1,0">20,00 TRY</s>
101
+ </span>
102
+ </p>
103
+ </${t.BLOCK_TEXT}>
104
+ `,
105
+ productButton: () => `
106
+ <${t.BLOCK_BUTTON}
107
+ ${n.BLOCK_BUTTON.href}="#"
108
+ class="product-button"
109
+ align="center"
110
+ style="padding: 15px 10px 20px 10px; text-align: center;"
111
+ esd-extension-block-id="${o.BUTTON}">
112
+ <span class="es-button-border">
113
+ <a
114
+ href="#"
115
+ class="es-button buy-button"
116
+ target="_blank"
117
+ style="
118
+ display: inline-block;
119
+ width: 90%;
120
+ max-width: 150px;
121
+ padding: 12px 20px;
122
+ background-color: #ffffff;
123
+ color: #333333;
124
+ text-decoration: none;
125
+ border: 2px solid #cccccc;
126
+ font-size: 16px;
127
+ box-sizing: border-box;
128
+ ">
129
+ Buy
130
+ </a>
131
+ </span>
132
+ </${t.BLOCK_BUTTON}>
133
+ `
134
+ };
135
+ function x() {
136
+ const e = i();
137
+ return l(
138
+ g,
139
+ e,
140
+ 3,
141
+ a,
142
+ p.TITLE
143
+ );
144
+ }
145
+ function f(e, r, c) {
146
+ return s(
147
+ e,
148
+ r,
149
+ a,
150
+ c
151
+ );
152
+ }
153
+ export {
154
+ p as DEFAULTS,
155
+ $ as DEFAULT_CARD_COMPOSITION,
156
+ g as default,
157
+ i as getDefaultProducts,
158
+ x as getDefaultTemplate,
159
+ f as prepareProductRows
160
+ };
@@ -0,0 +1,152 @@
1
+ import { prepareProductRows as n } from "./templateUtils.js";
2
+ import { DEFAULTS as i, getDefaultProducts as p } from "./templateUtils.js";
3
+ const a = `
4
+ <td
5
+ align="left"
6
+ esd-extension-block-id="recommendation-block"
7
+ esd-handler-name="esd-extension-RecommendationBlock"
8
+ class="ins-recommendation-v3-block-v2 esd-block-recommendation-v3-block esd-extension-block es-p20"
9
+ >
10
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
11
+ <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
+ <tr>
29
+ {-{-TITLE-}-}
30
+ </tr>
31
+ </tbody>
32
+ </table>
33
+ </td>
34
+ </tr>
35
+ <tr>
36
+ <td class="spacer" style="height: 20px;"></td>
37
+ </tr>
38
+ <tr>
39
+ <td>
40
+ <table
41
+ class="ins-recommendation-product-container"
42
+ width="100%"
43
+ cellpadding="0"
44
+ cellspacing="0"
45
+ border="0"
46
+ >
47
+ {-{-PRODUCT_ROWS-}-}
48
+ </table>
49
+ </td>
50
+ </tr>
51
+ </tbody>
52
+ </table>
53
+ </td>
54
+ </tr>
55
+ </table>
56
+ </td>
57
+ `, l = {
58
+ productImage: (t) => `
59
+ <tr>
60
+ <td
61
+ class="esd-block-image product-image"
62
+ esd-extension-block-id="recommendation-block-image"
63
+ align="center"
64
+ style="font-size: 0px;">
65
+ <a target="_blank" href="${t.url}">
66
+ <img
67
+ src="${t.image_url}"
68
+ alt="${t.name}"
69
+ width="120"
70
+ style="display: block; max-width: 100%; height: auto;"
71
+ class="adapt-img">
72
+ </a>
73
+ </td>
74
+ </tr>
75
+ `,
76
+ productName: (t) => `
77
+ <tr>
78
+ <td
79
+ class="esd-block-text product-name"
80
+ esd-extension-block-id="recommendation-block-name"
81
+ align="center">
82
+ <p
83
+ path="1"
84
+ contenteditable="false"
85
+ style="font-size: 16px; color: #333333; font-weight: 600; text-align: center;">
86
+ <strong path="1,0">${t.name}</strong>
87
+ </p>
88
+ </td>
89
+ </tr>
90
+ `,
91
+ productPrice: () => `
92
+ <tr>
93
+ <td
94
+ class="esd-block-text product-price"
95
+ esd-extension-block-id="recommendation-block-price"
96
+ align="center">
97
+ <p
98
+ path="1"
99
+ contenteditable="false"
100
+ style="font-size: 16px; color: #333333; font-weight: bold; text-align: center;">
101
+ <strong path="1,0">18,00 TRY</strong>
102
+ </p>
103
+ </td>
104
+ </tr>
105
+ `,
106
+ productOldPrice: () => `
107
+ <tr>
108
+ <td
109
+ class="esd-block-text product-old-price"
110
+ esd-extension-block-id="recommendation-block-old-price"
111
+ align="center">
112
+ <p
113
+ path="1"
114
+ contenteditable="false"
115
+ style="font-size: 14px; color: #999999; text-decoration: line-through; text-align: center;">
116
+ <s path="1,0">20,00 TRY</s>
117
+ </p>
118
+ </td>
119
+ </tr>
120
+ `,
121
+ productButton: (t) => `
122
+ <tr>
123
+ <td
124
+ class="esd-block-button product-button"
125
+ esd-extension-block-id="recommendation-block-button"
126
+ align="center">
127
+ <span class="es-button-border" style="display: block;">
128
+ <a
129
+ href="${t.url}"
130
+ target="_blank"
131
+ class="es-button">
132
+ {-{-PRODUCT_BUTTON_TEXT-}-}
133
+ </a>
134
+ </span>
135
+ </td>
136
+ </tr>
137
+ `
138
+ };
139
+ function d(t, e, o) {
140
+ return n(
141
+ t,
142
+ e,
143
+ l,
144
+ o
145
+ );
146
+ }
147
+ export {
148
+ i as DEFAULTS,
149
+ a as default,
150
+ p as getDefaultProducts,
151
+ d as prepareProductRows
152
+ };