@useinsider/guido 2.1.0-beta.e2d48fe → 2.1.0-beta.e4c3fa1
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/README.md +36 -0
- package/dist/@types/config/schemas.js +70 -65
- package/dist/components/Guido.vue.js +1 -1
- package/dist/components/Guido.vue2.js +69 -58
- package/dist/components/organisms/base/Toaster.vue.js +4 -4
- package/dist/components/organisms/base/Toaster.vue2.js +12 -9
- package/dist/components/organisms/email-preview/desktop-preview/EmailSizeIndicator.vue.js +5 -5
- package/dist/components/organisms/email-preview/desktop-preview/EmailSizeIndicator.vue2.js +2 -2
- package/dist/components/organisms/extensions/recommendation/FilterSelectionDrawer.vue2.js +15 -14
- package/dist/components/organisms/header/HeaderWrapper.vue.js +9 -9
- package/dist/components/organisms/unsubscribe/UnsubscribePageSelection.vue.js +1 -1
- package/dist/components/organisms/unsubscribe/UnsubscribePageSelection.vue2.js +19 -19
- package/dist/composables/useActionsApi.js +15 -13
- package/dist/composables/useBlocksConfig.js +26 -16
- package/dist/composables/useHtmlValidator.js +114 -104
- package/dist/composables/useRecommendation.js +54 -21
- package/dist/composables/useStripo.js +25 -23
- package/dist/composables/useVersionHistoryApi.js +1 -1
- package/dist/config/compiler/recommendationCompilerRules.js +45 -39
- package/dist/config/compiler/utils/recommendationCompilerUtils.js +121 -0
- package/dist/config/i18n/en/index.js +11 -0
- package/dist/config/i18n/en/labels.json.js +7 -0
- package/dist/config/i18n/en/toasters.json.js +56 -0
- package/dist/config/i18n/en/tooltips.json.js +82 -0
- package/dist/config/i18n/index.js +7 -0
- package/dist/config/migrator/itemsBlockMigrator.js +127 -122
- package/dist/config/migrator/recommendationMigrator.js +2 -2
- package/dist/enums/defaults.js +8 -4
- package/dist/enums/extensions/recommendationBlock.js +1 -1
- package/dist/enums/recommendation.js +16 -15
- package/dist/extensions/Blocks/Items/controls/price/currencyLocation.js +29 -29
- package/dist/extensions/Blocks/Items/controls/price/currencySymbol.js +29 -29
- package/dist/extensions/Blocks/Items/controls/price/formattedPrice.js +31 -29
- package/dist/extensions/Blocks/Items/controls/price/hideDiscount.js +0 -1
- package/dist/extensions/Blocks/Items/controls/price/singlePrice.js +29 -27
- package/dist/extensions/Blocks/Items/settingsPanel.js +10 -15
- package/dist/extensions/Blocks/Recommendation/block.js +133 -9
- package/dist/extensions/Blocks/Recommendation/constants/blockIds.js +4 -0
- package/dist/extensions/Blocks/Recommendation/constants/controlIds.js +4 -0
- package/dist/extensions/Blocks/Recommendation/constants/defaultConfig.js +69 -0
- package/dist/extensions/Blocks/Recommendation/constants/layout.js +24 -0
- package/dist/extensions/Blocks/Recommendation/constants/selectors.js +22 -0
- package/dist/extensions/Blocks/Recommendation/controls/button/index.js +64 -0
- package/dist/extensions/Blocks/Recommendation/controls/cardBackground/index.js +80 -0
- package/dist/extensions/Blocks/Recommendation/controls/cardComposition/index.js +232 -0
- package/dist/extensions/Blocks/Recommendation/controls/image/index.js +19 -0
- package/dist/extensions/Blocks/Recommendation/controls/layout/index.js +102 -0
- package/dist/extensions/Blocks/Recommendation/controls/main/algorithm.js +102 -0
- package/dist/extensions/Blocks/Recommendation/controls/main/currency.js +207 -0
- package/dist/extensions/Blocks/Recommendation/controls/main/filters.js +52 -0
- package/dist/extensions/Blocks/Recommendation/controls/main/index.js +321 -0
- package/dist/extensions/Blocks/Recommendation/controls/main/locale.js +70 -0
- package/dist/extensions/Blocks/Recommendation/controls/main/productLayout.js +168 -0
- package/dist/extensions/Blocks/Recommendation/controls/main/shuffle.js +67 -0
- package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +361 -0
- package/dist/extensions/Blocks/Recommendation/controls/mobileLayout/cssRules.js +21 -0
- package/dist/extensions/Blocks/Recommendation/controls/name/index.js +46 -0
- package/dist/extensions/Blocks/Recommendation/controls/name/textTrim.js +108 -0
- package/dist/extensions/Blocks/Recommendation/controls/oldPrice/index.js +44 -0
- package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.js +48 -0
- package/dist/extensions/Blocks/Recommendation/controls/{omnibusDiscountTextAfterControl.js → omnibusDiscount/textAfter.js} +16 -14
- package/dist/extensions/Blocks/Recommendation/controls/{omnibusDiscountTextBeforeControl.js → omnibusDiscount/textBefore.js} +16 -14
- package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/index.js +48 -0
- package/dist/extensions/Blocks/Recommendation/controls/{omnibusPriceTextAfterControl.js → omnibusPrice/textAfter.js} +16 -14
- package/dist/extensions/Blocks/Recommendation/controls/{omnibusPriceTextBeforeControl.js → omnibusPrice/textBefore.js} +14 -12
- package/dist/extensions/Blocks/Recommendation/controls/price/index.js +44 -0
- package/dist/extensions/Blocks/Recommendation/controls/spacing/index.js +345 -0
- package/dist/extensions/Blocks/Recommendation/extension.js +40 -17
- package/dist/extensions/Blocks/Recommendation/iconsRegistry.js +19 -3
- package/dist/extensions/Blocks/Recommendation/recommendation.css.js +13 -4
- package/dist/extensions/Blocks/Recommendation/services/configService.js +240 -0
- package/dist/extensions/Blocks/Recommendation/settingsPanel.js +21 -10
- package/dist/extensions/Blocks/Recommendation/store/recommendation.js +297 -209
- package/dist/extensions/Blocks/Recommendation/templates/grid/elementRenderer.js +228 -0
- package/dist/extensions/Blocks/Recommendation/templates/grid/migration.js +251 -0
- package/dist/extensions/Blocks/Recommendation/templates/grid/template.js +66 -0
- package/dist/extensions/Blocks/Recommendation/templates/index.js +12 -0
- package/dist/extensions/Blocks/Recommendation/templates/list/elementRenderer.js +169 -0
- package/dist/extensions/Blocks/Recommendation/templates/list/template.js +73 -0
- package/dist/extensions/Blocks/Recommendation/templates/utils.js +134 -0
- package/dist/extensions/Blocks/Recommendation/types/nodeConfig.js +6 -0
- package/dist/extensions/Blocks/Recommendation/utils/filterUtil.js +9 -9
- package/dist/extensions/Blocks/Recommendation/utils/preserveTextStyles.js +26 -15
- package/dist/extensions/Blocks/Recommendation/utils/priceFormatter.js +29 -0
- package/dist/extensions/Blocks/Recommendation/utils/tagName.js +46 -0
- package/dist/extensions/Blocks/Unsubscribe/block.js +29 -29
- package/dist/extensions/Blocks/Unsubscribe/control.js +12 -9
- package/dist/extensions/Blocks/Unsubscribe/elements/preview.js +13 -11
- package/dist/extensions/Blocks/Unsubscribe/styles.css.js +31 -1
- package/dist/extensions/Blocks/controlFactories.js +125 -93
- package/dist/extensions/ModulesTabIcons/extension.js +17 -0
- package/dist/guido.css +1 -1
- package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +317 -193
- package/dist/services/recommendationApi.js +11 -8
- package/dist/services/stripoApi.js +20 -17
- package/dist/services/templateLibraryApi.js +16 -13
- package/dist/src/@types/config/schemas.d.ts +8 -0
- package/dist/src/components/wrappers/WpDrawer.vue.d.ts +1 -1
- package/dist/src/composables/useConfig.d.ts +4 -0
- package/dist/src/composables/useRecommendation.d.ts +1 -0
- package/dist/src/config/compiler/utils/recommendationCompilerUtils.d.ts +17 -0
- package/dist/src/config/i18n/en/index.d.ts +1 -0
- package/dist/src/config/i18n/index.d.ts +16 -0
- package/dist/src/enums/defaults.d.ts +4 -0
- package/dist/src/extensions/Blocks/Recommendation/block.d.ts +67 -0
- package/dist/src/extensions/Blocks/Recommendation/constants/blockIds.d.ts +13 -0
- package/dist/src/extensions/Blocks/Recommendation/{constants.d.ts → constants/controlIds.d.ts} +0 -24
- package/dist/src/extensions/Blocks/Recommendation/constants/defaultConfig.d.ts +55 -0
- package/dist/src/extensions/Blocks/Recommendation/constants/index.d.ts +13 -0
- package/dist/src/extensions/Blocks/Recommendation/constants/layout.d.ts +45 -0
- package/dist/src/extensions/Blocks/Recommendation/constants/selectors.d.ts +40 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/button/index.d.ts +143 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/cardBackground/index.d.ts +31 -0
- package/dist/src/extensions/Blocks/Recommendation/{cardCompositionControl.d.ts → controls/cardComposition/index.d.ts} +23 -3
- package/dist/src/extensions/Blocks/Recommendation/controls/image/index.d.ts +35 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +21 -589
- package/dist/src/extensions/Blocks/Recommendation/controls/layout/index.d.ts +37 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/main/algorithm.d.ts +29 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/main/currency.d.ts +52 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/main/filters.d.ts +22 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +102 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/main/locale.d.ts +24 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/main/productLayout.d.ts +60 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/main/shuffle.d.ts +23 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/main/utils.d.ts +231 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/mobileLayout/cssRules.d.ts +29 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/name/index.d.ts +97 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/name/textTrim.d.ts +34 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/index.d.ts +95 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.d.ts +100 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.d.ts +15 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.d.ts +15 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/index.d.ts +100 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.d.ts +15 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.d.ts +15 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/price/index.d.ts +95 -0
- package/dist/src/extensions/Blocks/Recommendation/controls/spacing/index.d.ts +115 -0
- package/dist/src/extensions/Blocks/Recommendation/extension.d.ts +9 -0
- package/dist/src/extensions/Blocks/Recommendation/services/configService.d.ts +151 -0
- package/dist/src/extensions/Blocks/Recommendation/services/index.d.ts +6 -0
- package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +139 -468
- package/dist/src/extensions/Blocks/Recommendation/templates/grid/elementRenderer.d.ts +20 -0
- package/dist/src/extensions/Blocks/Recommendation/templates/{migrationTemplate.d.ts → grid/migration.d.ts} +11 -4
- package/dist/src/extensions/Blocks/Recommendation/templates/grid/template.d.ts +33 -0
- package/dist/src/extensions/Blocks/Recommendation/templates/index.d.ts +41 -0
- package/dist/src/extensions/Blocks/Recommendation/templates/list/elementRenderer.d.ts +8 -0
- package/dist/src/extensions/Blocks/Recommendation/templates/list/migration.d.ts +25 -0
- package/dist/src/extensions/Blocks/Recommendation/templates/list/template.d.ts +18 -0
- package/dist/src/extensions/Blocks/Recommendation/templates/utils.d.ts +66 -0
- package/dist/src/extensions/Blocks/Recommendation/types/index.d.ts +7 -0
- package/dist/src/extensions/Blocks/Recommendation/types/nodeConfig.d.ts +174 -0
- package/dist/src/extensions/Blocks/Recommendation/utils/priceFormatter.d.ts +33 -0
- package/dist/src/extensions/Blocks/Recommendation/utils/stylePreserver.d.ts +113 -0
- package/dist/src/extensions/Blocks/Recommendation/utils/tagName.d.ts +77 -0
- package/dist/src/extensions/Blocks/Unsubscribe/control.d.ts +1 -0
- package/dist/src/extensions/ModulesTabIcons/extension.d.ts +2 -0
- package/dist/src/stores/config.d.ts +36 -0
- package/dist/static/styles/components/notification.css.js +19 -0
- package/dist/static/styles/components/tools.css.js +6 -2
- package/dist/static/styles/components/version-history.css.js +10 -2
- package/dist/static/styles/components/wide-panel.css.js +18 -2
- package/dist/static/styles/customEditorStyle.css.js +35 -11
- package/dist/static/styles/variables.css.js +2 -0
- package/dist/static/templates/empty/index.html.js +74 -0
- package/dist/static/templates/empty/style.css.js +779 -0
- package/dist/stores/unsubscribe.js +37 -34
- package/dist/utils/pairProductVariables.js +57 -56
- package/dist/utils/templatePreparation.js +15 -14
- package/package.json +1 -1
- package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +0 -187
- package/dist/extensions/Blocks/Recommendation/constants.js +0 -13
- package/dist/extensions/Blocks/Recommendation/control.js +0 -336
- package/dist/extensions/Blocks/Recommendation/controls/cardBackgroundColorControl.js +0 -68
- package/dist/extensions/Blocks/Recommendation/controls/index.js +0 -245
- package/dist/extensions/Blocks/Recommendation/controls/nameTextTrimControl.js +0 -74
- package/dist/extensions/Blocks/Recommendation/controls/spacingControl.js +0 -188
- package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +0 -181
- package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +0 -189
- package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +0 -209
- package/dist/src/extensions/Blocks/Recommendation/control.d.ts +0 -38
- package/dist/src/extensions/Blocks/Recommendation/controls/nameTextTrimControl.d.ts +0 -16
- package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +0 -16
- package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +0 -52
|
@@ -1,209 +0,0 @@
|
|
|
1
|
-
import { ATTR_PRODUCT_IMAGE as h, ATTR_PRODUCT_NAME as C, ATTR_PRODUCT_OLD_PRICE as D, ATTR_PRODUCT_PRICE as b, ATTR_PRODUCT_OMNIBUS_PRICE as P, ATTR_PRODUCT_OMNIBUS_DISCOUNT as U, ATTR_PRODUCT_BUTTON as N } from "../constants.js";
|
|
2
|
-
const E = {
|
|
3
|
-
TITLE: "You May Also Like!"
|
|
4
|
-
}, I = `
|
|
5
|
-
<tr>
|
|
6
|
-
<td class="spacer" style="height: 10px;"></td>
|
|
7
|
-
</tr>
|
|
8
|
-
`, A = `
|
|
9
|
-
<tr class="recommendation-product-row">
|
|
10
|
-
<td>
|
|
11
|
-
<table width="100%" height="100%" cellpadding="0" cellspacing="0" border="0">
|
|
12
|
-
{-{-PRODUCTS-}-}
|
|
13
|
-
</table>
|
|
14
|
-
</td>
|
|
15
|
-
</tr>
|
|
16
|
-
`, o = `
|
|
17
|
-
<td width="{-{-COLUMN_WIDTH-}-}" style="padding: 0 5px;" valign="top" height="100%">
|
|
18
|
-
<table
|
|
19
|
-
width="100%"
|
|
20
|
-
height="100%"
|
|
21
|
-
cellpadding="0"
|
|
22
|
-
cellspacing="0"
|
|
23
|
-
border="0"
|
|
24
|
-
class="product-card-wrapper">
|
|
25
|
-
<tr>
|
|
26
|
-
<td
|
|
27
|
-
class="product-attribute-cell"
|
|
28
|
-
valign="top">
|
|
29
|
-
<table cellpadding="0" cellspacing="0" role="presentation" width="100%">
|
|
30
|
-
<tbody>
|
|
31
|
-
{-{-PRODUCT_CONTENT-}-}
|
|
32
|
-
</tbody>
|
|
33
|
-
</table>
|
|
34
|
-
</td>
|
|
35
|
-
</tr>
|
|
36
|
-
</table>
|
|
37
|
-
</td>
|
|
38
|
-
`, Y = [
|
|
39
|
-
h,
|
|
40
|
-
C,
|
|
41
|
-
D,
|
|
42
|
-
b,
|
|
43
|
-
P,
|
|
44
|
-
U,
|
|
45
|
-
N
|
|
46
|
-
], S = {
|
|
47
|
-
[h]: !0,
|
|
48
|
-
[C]: !0,
|
|
49
|
-
[b]: !0,
|
|
50
|
-
[D]: !0,
|
|
51
|
-
[P]: !1,
|
|
52
|
-
[U]: !1,
|
|
53
|
-
[N]: !0
|
|
54
|
-
};
|
|
55
|
-
function M() {
|
|
56
|
-
return [
|
|
57
|
-
{
|
|
58
|
-
name: "Product Name",
|
|
59
|
-
image_url: "https://email-static.useinsider.com/stripo/modules/email-recommendation-v3/assets/images/image-placeholder.png",
|
|
60
|
-
price: { USD: 18 },
|
|
61
|
-
original_price: { USD: 20 },
|
|
62
|
-
discount: { USD: 2 },
|
|
63
|
-
url: "https://example.com/product/1",
|
|
64
|
-
item_id: "1",
|
|
65
|
-
in_stock: 1,
|
|
66
|
-
locale: "en",
|
|
67
|
-
product_attributes: {},
|
|
68
|
-
category: []
|
|
69
|
-
},
|
|
70
|
-
{
|
|
71
|
-
name: "Belt",
|
|
72
|
-
image_url: "https://inshoppingcart.com/ins-html/wp-content/uploads/2018/09/belt-2.jpg",
|
|
73
|
-
price: { TRY: 55 },
|
|
74
|
-
original_price: { TRY: 65 },
|
|
75
|
-
discount: { TRY: 10 },
|
|
76
|
-
url: "https://example.com/product/2",
|
|
77
|
-
item_id: "2",
|
|
78
|
-
in_stock: 1,
|
|
79
|
-
locale: "tr",
|
|
80
|
-
product_attributes: {},
|
|
81
|
-
category: []
|
|
82
|
-
},
|
|
83
|
-
{
|
|
84
|
-
name: "Beanie",
|
|
85
|
-
image_url: "https://inshoppingcart.com/ins-html/wp-content/uploads/2018/08/beanie-with-logo-1.jpg",
|
|
86
|
-
price: { TRY: 18 },
|
|
87
|
-
original_price: { TRY: 20 },
|
|
88
|
-
discount: { TRY: 2 },
|
|
89
|
-
url: "https://example.com/product/3",
|
|
90
|
-
item_id: "3",
|
|
91
|
-
in_stock: 1,
|
|
92
|
-
locale: "tr",
|
|
93
|
-
product_attributes: {},
|
|
94
|
-
category: []
|
|
95
|
-
},
|
|
96
|
-
{
|
|
97
|
-
name: "Album",
|
|
98
|
-
image_url: "https://inshoppingcart.com/ins-html/wp-content/uploads/2018/12/poster_2_up.jpg",
|
|
99
|
-
price: { TRY: 15 },
|
|
100
|
-
original_price: { TRY: 15 },
|
|
101
|
-
discount: { TRY: 0 },
|
|
102
|
-
url: "https://example.com/product/4",
|
|
103
|
-
item_id: "4",
|
|
104
|
-
in_stock: 1,
|
|
105
|
-
locale: "tr",
|
|
106
|
-
product_attributes: {},
|
|
107
|
-
category: []
|
|
108
|
-
},
|
|
109
|
-
{
|
|
110
|
-
name: "Flying Ninja with a very long product name",
|
|
111
|
-
image_url: "https://inshoppingcart.com/ins-html/wp-content/uploads/2018/09/belt-2.jpg",
|
|
112
|
-
price: { TRY: 12 },
|
|
113
|
-
original_price: { TRY: 15 },
|
|
114
|
-
discount: { TRY: 3 },
|
|
115
|
-
url: "https://example.com/product/5",
|
|
116
|
-
item_id: "5",
|
|
117
|
-
in_stock: 1,
|
|
118
|
-
locale: "tr",
|
|
119
|
-
product_attributes: {},
|
|
120
|
-
category: []
|
|
121
|
-
},
|
|
122
|
-
{
|
|
123
|
-
name: "Single",
|
|
124
|
-
image_url: "https://inshoppingcart.com/ins-html/wp-content/uploads/2018/12/poster_2_up.jpg",
|
|
125
|
-
price: { TRY: 22555 },
|
|
126
|
-
original_price: { TRY: 33989 },
|
|
127
|
-
discount: { TRY: 11434 },
|
|
128
|
-
url: "https://example.com/product/6",
|
|
129
|
-
item_id: "6",
|
|
130
|
-
in_stock: 1,
|
|
131
|
-
locale: "tr",
|
|
132
|
-
product_attributes: {},
|
|
133
|
-
category: []
|
|
134
|
-
}
|
|
135
|
-
];
|
|
136
|
-
}
|
|
137
|
-
function f(a, r, e, l = Y) {
|
|
138
|
-
const s = (100 / r).toFixed(2), p = [];
|
|
139
|
-
for (let i = 0; i < a.length; i += r)
|
|
140
|
-
p.push(a.slice(i, i + r));
|
|
141
|
-
let c = "";
|
|
142
|
-
return p.forEach((i, w) => {
|
|
143
|
-
w > 0 && (c += I);
|
|
144
|
-
let n = "", u = "", d = "", T = "", m = "", _ = "", g = "";
|
|
145
|
-
i.forEach((t) => {
|
|
146
|
-
n += o.replace(
|
|
147
|
-
"{-{-PRODUCT_CONTENT-}-}",
|
|
148
|
-
e.productImage(t)
|
|
149
|
-
), u += o.replace(
|
|
150
|
-
"{-{-PRODUCT_CONTENT-}-}",
|
|
151
|
-
e.productName(t)
|
|
152
|
-
), d += o.replace(
|
|
153
|
-
"{-{-PRODUCT_CONTENT-}-}",
|
|
154
|
-
e.productPrice(t)
|
|
155
|
-
), T += o.replace(
|
|
156
|
-
"{-{-PRODUCT_CONTENT-}-}",
|
|
157
|
-
e.productOldPrice(t)
|
|
158
|
-
), m += o.replace(
|
|
159
|
-
"{-{-PRODUCT_CONTENT-}-}",
|
|
160
|
-
e.productOmnibusPrice(t)
|
|
161
|
-
), _ += o.replace(
|
|
162
|
-
"{-{-PRODUCT_CONTENT-}-}",
|
|
163
|
-
e.productOmnibusDiscount(t)
|
|
164
|
-
), g += o.replace(
|
|
165
|
-
"{-{-PRODUCT_CONTENT-}-}",
|
|
166
|
-
e.productButton(t)
|
|
167
|
-
);
|
|
168
|
-
});
|
|
169
|
-
const R = {
|
|
170
|
-
productImage: n,
|
|
171
|
-
productName: u,
|
|
172
|
-
productPrice: d,
|
|
173
|
-
productOldPrice: T,
|
|
174
|
-
productOmnibusPrice: m,
|
|
175
|
-
productOmnibusDiscount: _,
|
|
176
|
-
productButton: g
|
|
177
|
-
}, y = l.filter((t) => !!R[t]).map((t) => {
|
|
178
|
-
const O = S[t] ?? !0;
|
|
179
|
-
return `
|
|
180
|
-
<tr class="recommendation-attribute-row"
|
|
181
|
-
data-attribute-type="${t}"
|
|
182
|
-
data-visibility="${O ? "1" : "0"}"${O ? "" : ' style="display: none;"'}>
|
|
183
|
-
${R[t]}
|
|
184
|
-
</tr>
|
|
185
|
-
`;
|
|
186
|
-
}).join("");
|
|
187
|
-
c += A.replace("{-{-PRODUCTS-}-}", y);
|
|
188
|
-
}), c.replaceAll("{-{-COLUMN_WIDTH-}-}", `${s}%`);
|
|
189
|
-
}
|
|
190
|
-
function j(a, r, e, l, s = E.TITLE, p) {
|
|
191
|
-
const c = f(
|
|
192
|
-
r,
|
|
193
|
-
e,
|
|
194
|
-
l,
|
|
195
|
-
p
|
|
196
|
-
);
|
|
197
|
-
return a.replace("{-{-TITLE-}-}", s).replace("{-{-PRODUCT_ROWS-}-}", c);
|
|
198
|
-
}
|
|
199
|
-
export {
|
|
200
|
-
E as DEFAULTS,
|
|
201
|
-
Y as DEFAULT_CARD_COMPOSITION,
|
|
202
|
-
S as DEFAULT_CARD_VISIBILITY,
|
|
203
|
-
j as generateTemplate,
|
|
204
|
-
M as getDefaultProducts,
|
|
205
|
-
f as prepareProductRows,
|
|
206
|
-
o as productCardWrapper,
|
|
207
|
-
A as productRow,
|
|
208
|
-
I as spacer
|
|
209
|
-
};
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { CommonControl } from '../common-control';
|
|
2
|
-
export declare const CONTROL_BLOCK_ID = "ui-elements-recommendation-block";
|
|
3
|
-
export declare class RecommendationBlockControl extends CommonControl {
|
|
4
|
-
private store;
|
|
5
|
-
private storeUnsubscription;
|
|
6
|
-
private addFilterListener;
|
|
7
|
-
private addFilterButton;
|
|
8
|
-
getId(): string;
|
|
9
|
-
getTemplate(): string;
|
|
10
|
-
onRender(): Promise<void>;
|
|
11
|
-
onDestroy(): void;
|
|
12
|
-
_setFormValues(): void;
|
|
13
|
-
_initializeSelectItems(): void;
|
|
14
|
-
_getAlgorithms(): string;
|
|
15
|
-
_getLanguages(): string;
|
|
16
|
-
_getCurrency(): string;
|
|
17
|
-
_getProductLayout(): string;
|
|
18
|
-
_getFilterStatus(): string;
|
|
19
|
-
_getShuffleProducts(): string;
|
|
20
|
-
_onFilterSelectClick(): void;
|
|
21
|
-
_onDataChange(item: string, value: string | number | string[]): void;
|
|
22
|
-
/**
|
|
23
|
-
* Get the current card composition from block data attribute or use default
|
|
24
|
-
*/
|
|
25
|
-
_getCardComposition(): string[];
|
|
26
|
-
_regenerateProductRows(): void;
|
|
27
|
-
/**
|
|
28
|
-
* Reapply spacing values after product regeneration
|
|
29
|
-
* This ensures spacing persists when products are regenerated
|
|
30
|
-
*/
|
|
31
|
-
_reapplySpacing(): void;
|
|
32
|
-
_debouncedRegenerateProductRows: import("@vueuse/shared").PromisifyFn<() => void>;
|
|
33
|
-
_onCurrencyConfigChange(item: string, value: string | number): void;
|
|
34
|
-
_onCurrencyChange(value: string): void;
|
|
35
|
-
_setProductIdsVisibility(): void;
|
|
36
|
-
_listenToFormUpdates(): void;
|
|
37
|
-
_listenStateUpdates(): void;
|
|
38
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
|
|
2
|
-
import { CommonControl } from '../../common-control';
|
|
3
|
-
/**
|
|
4
|
-
* Control for enabling/disabling text trimming on product names
|
|
5
|
-
* When enabled, adds a CSS class that applies text-overflow: ellipsis
|
|
6
|
-
*/
|
|
7
|
-
export declare class NameTextTrimControl extends CommonControl {
|
|
8
|
-
getId(): string;
|
|
9
|
-
getTemplate(): string;
|
|
10
|
-
onRender(): void;
|
|
11
|
-
onTemplateNodeUpdated(node: ImmutableHtmlNode): void;
|
|
12
|
-
_setFormValues(): void;
|
|
13
|
-
_getCurrentTrimState(): boolean;
|
|
14
|
-
_onTextTrimChange(enabled: boolean): void;
|
|
15
|
-
_listenToFormUpdates(): void;
|
|
16
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import type { RecommendationProduct } from '@@/Types/recommendation';
|
|
2
|
-
import { DEFAULTS, getDefaultProducts, DEFAULT_CARD_COMPOSITION, DEFAULT_CARD_VISIBILITY } from './templateUtils';
|
|
3
|
-
declare const blockTemplate = "\n <td align=\"left\" class=\"ins-recommendation-v3-block-v2 esd-block-recommendation-v3-block es-p20\">\n <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n <tr>\n <td align=\"center\">\n <table\n class=\"container\"\n width=\"100%\"\n cellpadding=\"0\"\n cellspacing=\"0\"\n border=\"0\">\n <tbody>\n <tr>\n <td>\n <table\n width=\"100%\"\n cellpadding=\"0\"\n cellspacing=\"0\"\n border=\"0\">\n <tbody>\n <BLOCK_TEXT\n class=\"es-p10t es-p10b es-p20l es-p20r\"\n align=\"center\">\n <p path=\"1\" style=\"font-size: 28px; color: #333333;\">\n <strong path=\"1,0\">{-{-TITLE-}-}</strong>\n </p>\n </BLOCK_TEXT>\n </tbody>\n </table>\n </td>\n </tr>\n \n <tr>\n <td class=\"spacer\" style=\"height: 10px;\"></td>\n </tr>\n\n <tr>\n <td>\n <table\n class=\"ins-recommendation-product-container\"\n width=\"100%\"\n cellpadding=\"0\"\n cellspacing=\"0\"\n border=\"0\"\n >\n {-{-PRODUCT_ROWS-}-}\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n </table>\n </td>\n";
|
|
4
|
-
export declare function getDefaultTemplate(): string;
|
|
5
|
-
/**
|
|
6
|
-
* Generates a custom template with specified products and layout
|
|
7
|
-
* @param products - Array of products to display
|
|
8
|
-
* @param productsPerRow - Number of products per row
|
|
9
|
-
* @param title - Optional title for the block
|
|
10
|
-
* @param composition - Optional array defining order of card elements
|
|
11
|
-
* @returns Complete HTML template
|
|
12
|
-
*/
|
|
13
|
-
export declare function generateBlockTemplate(products: RecommendationProduct[], productsPerRow: number, title?: string, composition?: string[]): string;
|
|
14
|
-
export declare function prepareProductRows(products: RecommendationProduct[], productsPerRow: number, composition?: string[]): string;
|
|
15
|
-
export { DEFAULTS, DEFAULT_CARD_COMPOSITION, DEFAULT_CARD_VISIBILITY, getDefaultProducts, };
|
|
16
|
-
export default blockTemplate;
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import type { RecommendationProduct } from '@@/Types/recommendation';
|
|
2
|
-
import { ATTR_PRODUCT_IMAGE, ATTR_PRODUCT_NAME, ATTR_PRODUCT_PRICE, ATTR_PRODUCT_OLD_PRICE, ATTR_PRODUCT_OMNIBUS_PRICE, ATTR_PRODUCT_OMNIBUS_DISCOUNT, ATTR_PRODUCT_BUTTON } from '../constants';
|
|
3
|
-
export interface ElementRenderer {
|
|
4
|
-
[ATTR_PRODUCT_IMAGE]: (product: RecommendationProduct) => string;
|
|
5
|
-
[ATTR_PRODUCT_NAME]: (product: RecommendationProduct) => string;
|
|
6
|
-
[ATTR_PRODUCT_PRICE]: (product: RecommendationProduct) => string;
|
|
7
|
-
[ATTR_PRODUCT_OLD_PRICE]: (product: RecommendationProduct) => string;
|
|
8
|
-
[ATTR_PRODUCT_OMNIBUS_PRICE]: (product: RecommendationProduct) => string;
|
|
9
|
-
[ATTR_PRODUCT_OMNIBUS_DISCOUNT]: (product: RecommendationProduct) => string;
|
|
10
|
-
[ATTR_PRODUCT_BUTTON]: (product: RecommendationProduct) => string;
|
|
11
|
-
}
|
|
12
|
-
export interface TemplateConfig {
|
|
13
|
-
spacer: string;
|
|
14
|
-
blockTemplate: string;
|
|
15
|
-
productRow: string;
|
|
16
|
-
productCardWrapper: string;
|
|
17
|
-
elementRenderer: ElementRenderer;
|
|
18
|
-
}
|
|
19
|
-
export declare const DEFAULTS: {
|
|
20
|
-
TITLE: string;
|
|
21
|
-
DESCRIPTION: string;
|
|
22
|
-
};
|
|
23
|
-
export declare const spacer = "\n <tr>\n <td class=\"spacer\" style=\"height: 10px;\"></td>\n </tr>\n";
|
|
24
|
-
export declare const productRow = "\n <tr class=\"recommendation-product-row\">\n <td>\n <table width=\"100%\" height=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n {-{-PRODUCTS-}-}\n </table>\n </td>\n </tr>\n";
|
|
25
|
-
export declare const productCardWrapper = "\n <td width=\"{-{-COLUMN_WIDTH-}-}\" style=\"padding: 0 5px;\" valign=\"top\" height=\"100%\">\n <table\n width=\"100%\"\n height=\"100%\"\n cellpadding=\"0\"\n cellspacing=\"0\"\n border=\"0\"\n class=\"product-card-wrapper\">\n <tr>\n <td\n class=\"product-attribute-cell\"\n valign=\"top\">\n <table cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\" width=\"100%\">\n <tbody>\n {-{-PRODUCT_CONTENT-}-}\n </tbody>\n </table>\n </td>\n </tr>\n </table>\n </td>\n";
|
|
26
|
-
export declare const DEFAULT_CARD_COMPOSITION: string[];
|
|
27
|
-
/**
|
|
28
|
-
* Default visibility settings for card composition elements
|
|
29
|
-
* Omnibus Price and Omnibus Discount are hidden by default
|
|
30
|
-
*/
|
|
31
|
-
export declare const DEFAULT_CARD_VISIBILITY: Record<string, boolean>;
|
|
32
|
-
export declare function getDefaultProducts(): RecommendationProduct[];
|
|
33
|
-
/**
|
|
34
|
-
* Core template generation logic that works with any element renderer
|
|
35
|
-
* @param products - Array of products to display
|
|
36
|
-
* @param productsPerRow - Number of products per row
|
|
37
|
-
* @param elementRenderer - Object with methods to render each product element
|
|
38
|
-
* @param composition - Optional array defining order of card elements
|
|
39
|
-
* @returns HTML string for product rows
|
|
40
|
-
*/
|
|
41
|
-
export declare function prepareProductRows(products: RecommendationProduct[], productsPerRow: number, elementRenderer: ElementRenderer, composition?: string[]): string;
|
|
42
|
-
/**
|
|
43
|
-
* Generates complete HTML template with dynamic products and layout
|
|
44
|
-
* @param blockTemplate - The base block template string
|
|
45
|
-
* @param products - Array of products to display
|
|
46
|
-
* @param productsPerRow - Number of products per row
|
|
47
|
-
* @param elementRenderer - Element renderer for generating product HTML
|
|
48
|
-
* @param title - Title for the block
|
|
49
|
-
* @param composition - Optional array defining order of card elements
|
|
50
|
-
* @returns Complete HTML template
|
|
51
|
-
*/
|
|
52
|
-
export declare function generateTemplate(blockTemplate: string, products: RecommendationProduct[], productsPerRow: number, elementRenderer: ElementRenderer, title?: string, composition?: string[]): string;
|