@useinsider/guido 2.2.0-beta.d819452 → 2.2.0-beta.eeefcc3

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 (200) hide show
  1. package/README.md +36 -0
  2. package/dist/@types/config/schemas.js +70 -65
  3. package/dist/components/Guido.vue.js +1 -1
  4. package/dist/components/Guido.vue2.js +69 -58
  5. package/dist/components/organisms/extensions/recommendation/FilterSelectionDrawer.vue2.js +15 -14
  6. package/dist/components/organisms/header/HeaderWrapper.vue.js +9 -9
  7. package/dist/composables/useActionsApi.js +15 -13
  8. package/dist/composables/useBlocksConfig.js +26 -16
  9. package/dist/composables/useHtmlValidator.js +114 -104
  10. package/dist/composables/useRecommendation.js +54 -21
  11. package/dist/composables/useStripo.js +25 -23
  12. package/dist/composables/useVersionHistoryApi.js +1 -1
  13. package/dist/config/compiler/recommendationCompilerRules.js +45 -39
  14. package/dist/config/compiler/utils/recommendationCompilerUtils.js +121 -0
  15. package/dist/config/i18n/en/index.js +11 -0
  16. package/dist/config/i18n/en/labels.json.js +7 -0
  17. package/dist/config/i18n/en/toasters.json.js +56 -0
  18. package/dist/config/i18n/en/tooltips.json.js +82 -0
  19. package/dist/config/i18n/index.js +7 -0
  20. package/dist/config/migrator/itemsBlockMigrator.js +142 -120
  21. package/dist/config/migrator/recommendationMigrator.js +2 -2
  22. package/dist/enums/defaults.js +8 -4
  23. package/dist/enums/extensions/recommendationBlock.js +1 -1
  24. package/dist/enums/recommendation.js +16 -15
  25. package/dist/extensions/Blocks/Items/block.js +19 -28
  26. package/dist/extensions/Blocks/Items/controls/button/link.js +19 -31
  27. package/dist/extensions/Blocks/Items/controls/cardComposition.js +124 -85
  28. package/dist/extensions/Blocks/Items/controls/image/link.js +19 -31
  29. package/dist/extensions/Blocks/Items/controls/name/trimming.js +28 -40
  30. package/dist/extensions/Blocks/Items/controls/price/currencyLocation.js +35 -47
  31. package/dist/extensions/Blocks/Items/controls/price/currencySymbol.js +49 -54
  32. package/dist/extensions/Blocks/Items/controls/price/formattedPrice.js +42 -51
  33. package/dist/extensions/Blocks/Items/controls/price/hideDiscount.js +23 -36
  34. package/dist/extensions/Blocks/Items/controls/price/priceOrientation.js +45 -57
  35. package/dist/extensions/Blocks/Items/controls/price/singlePrice.js +42 -60
  36. package/dist/extensions/Blocks/Items/controls/settingsControl.js +189 -196
  37. package/dist/extensions/Blocks/Items/enums/settingsEnums.js +0 -2
  38. package/dist/extensions/Blocks/Items/extension.js +8 -9
  39. package/dist/extensions/Blocks/Items/settingsPanel.js +10 -15
  40. package/dist/extensions/Blocks/Items/template.js +181 -175
  41. package/dist/extensions/Blocks/Items/utils/nodeConfigUtils.js +65 -65
  42. package/dist/extensions/Blocks/Recommendation/block.js +133 -9
  43. package/dist/extensions/Blocks/Recommendation/constants/blockIds.js +4 -0
  44. package/dist/extensions/Blocks/Recommendation/constants/controlIds.js +4 -0
  45. package/dist/extensions/Blocks/Recommendation/constants/defaultConfig.js +66 -0
  46. package/dist/extensions/Blocks/Recommendation/constants/layout.js +22 -0
  47. package/dist/extensions/Blocks/Recommendation/constants/selectors.js +21 -0
  48. package/dist/extensions/Blocks/Recommendation/controls/button/index.js +64 -0
  49. package/dist/extensions/Blocks/Recommendation/controls/cardBackground/index.js +80 -0
  50. package/dist/extensions/Blocks/Recommendation/controls/cardComposition/index.js +232 -0
  51. package/dist/extensions/Blocks/Recommendation/controls/image/index.js +19 -0
  52. package/dist/extensions/Blocks/Recommendation/controls/layout/index.js +92 -0
  53. package/dist/extensions/Blocks/Recommendation/controls/main/algorithm.js +102 -0
  54. package/dist/extensions/Blocks/Recommendation/controls/main/currency.js +209 -0
  55. package/dist/extensions/Blocks/Recommendation/controls/main/filters.js +52 -0
  56. package/dist/extensions/Blocks/Recommendation/controls/main/index.js +250 -0
  57. package/dist/extensions/Blocks/Recommendation/controls/main/locale.js +70 -0
  58. package/dist/extensions/Blocks/Recommendation/controls/main/productLayout.js +160 -0
  59. package/dist/extensions/Blocks/Recommendation/controls/main/shuffle.js +67 -0
  60. package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +307 -0
  61. package/dist/extensions/Blocks/Recommendation/controls/mobileLayout/cssRules.js +21 -0
  62. package/dist/extensions/Blocks/Recommendation/controls/name/index.js +46 -0
  63. package/dist/extensions/Blocks/Recommendation/controls/name/textTrim.js +108 -0
  64. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/index.js +44 -0
  65. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.js +48 -0
  66. package/dist/extensions/Blocks/Recommendation/controls/{omnibusDiscountTextAfterControl.js → omnibusDiscount/textAfter.js} +16 -14
  67. package/dist/extensions/Blocks/Recommendation/controls/{omnibusDiscountTextBeforeControl.js → omnibusDiscount/textBefore.js} +16 -14
  68. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/index.js +48 -0
  69. package/dist/extensions/Blocks/Recommendation/controls/{omnibusPriceTextAfterControl.js → omnibusPrice/textAfter.js} +16 -14
  70. package/dist/extensions/Blocks/Recommendation/controls/{omnibusPriceTextBeforeControl.js → omnibusPrice/textBefore.js} +14 -12
  71. package/dist/extensions/Blocks/Recommendation/controls/price/index.js +44 -0
  72. package/dist/extensions/Blocks/Recommendation/controls/spacing/index.js +222 -0
  73. package/dist/extensions/Blocks/Recommendation/extension.js +40 -17
  74. package/dist/extensions/Blocks/Recommendation/iconsRegistry.js +19 -3
  75. package/dist/extensions/Blocks/Recommendation/recommendation.css.js +13 -4
  76. package/dist/extensions/Blocks/Recommendation/services/configService.js +240 -0
  77. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +21 -10
  78. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +254 -207
  79. package/dist/extensions/Blocks/Recommendation/templates/grid/elementRenderer.js +228 -0
  80. package/dist/extensions/Blocks/Recommendation/templates/grid/migration.js +251 -0
  81. package/dist/extensions/Blocks/Recommendation/templates/grid/template.js +66 -0
  82. package/dist/extensions/Blocks/Recommendation/templates/index.js +12 -0
  83. package/dist/extensions/Blocks/Recommendation/templates/list/elementRenderer.js +169 -0
  84. package/dist/extensions/Blocks/Recommendation/templates/list/template.js +73 -0
  85. package/dist/extensions/Blocks/Recommendation/templates/utils.js +134 -0
  86. package/dist/extensions/Blocks/Recommendation/types/nodeConfig.js +6 -0
  87. package/dist/extensions/Blocks/Recommendation/utils/filterUtil.js +9 -9
  88. package/dist/extensions/Blocks/Recommendation/utils/preserveTextStyles.js +26 -15
  89. package/dist/extensions/Blocks/Recommendation/utils/priceFormatter.js +29 -0
  90. package/dist/extensions/Blocks/Recommendation/utils/tagName.js +46 -0
  91. package/dist/extensions/Blocks/common-control.js +91 -92
  92. package/dist/extensions/Blocks/controlFactories.js +125 -93
  93. package/dist/extensions/ModulesTabIcons/extension.js +17 -0
  94. package/dist/guido.css +1 -1
  95. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +317 -193
  96. package/dist/package.json.js +1 -1
  97. package/dist/services/recommendationApi.js +11 -8
  98. package/dist/services/stripoApi.js +20 -17
  99. package/dist/services/templateLibraryApi.js +16 -13
  100. package/dist/src/@types/config/schemas.d.ts +8 -0
  101. package/dist/src/components/wrappers/WpDrawer.vue.d.ts +1 -1
  102. package/dist/src/composables/useConfig.d.ts +4 -0
  103. package/dist/src/composables/useRecommendation.d.ts +1 -0
  104. package/dist/src/config/compiler/utils/recommendationCompilerUtils.d.ts +17 -0
  105. package/dist/src/config/i18n/en/index.d.ts +1 -0
  106. package/dist/src/config/i18n/index.d.ts +16 -0
  107. package/dist/src/enums/defaults.d.ts +4 -0
  108. package/dist/src/extensions/Blocks/Items/block.d.ts +0 -1
  109. package/dist/src/extensions/Blocks/Items/controls/button/link.d.ts +0 -1
  110. package/dist/src/extensions/Blocks/Items/controls/cardComposition.d.ts +5 -5
  111. package/dist/src/extensions/Blocks/Items/controls/image/link.d.ts +0 -1
  112. package/dist/src/extensions/Blocks/Items/controls/name/trimming.d.ts +0 -1
  113. package/dist/src/extensions/Blocks/Items/controls/price/currencyLocation.d.ts +0 -1
  114. package/dist/src/extensions/Blocks/Items/controls/price/currencySymbol.d.ts +0 -1
  115. package/dist/src/extensions/Blocks/Items/controls/price/formattedPrice.d.ts +0 -1
  116. package/dist/src/extensions/Blocks/Items/controls/price/hideDiscount.d.ts +0 -1
  117. package/dist/src/extensions/Blocks/Items/controls/price/priceOrientation.d.ts +0 -1
  118. package/dist/src/extensions/Blocks/Items/controls/price/singlePrice.d.ts +0 -5
  119. package/dist/src/extensions/Blocks/Items/controls/settingsControl.d.ts +10 -12
  120. package/dist/src/extensions/Blocks/Items/utils/nodeConfigUtils.d.ts +2 -1
  121. package/dist/src/extensions/Blocks/Recommendation/block.d.ts +67 -0
  122. package/dist/src/extensions/Blocks/Recommendation/constants/blockIds.d.ts +13 -0
  123. package/dist/src/extensions/Blocks/Recommendation/{constants.d.ts → constants/controlIds.d.ts} +0 -24
  124. package/dist/src/extensions/Blocks/Recommendation/constants/defaultConfig.d.ts +49 -0
  125. package/dist/src/extensions/Blocks/Recommendation/constants/index.d.ts +13 -0
  126. package/dist/src/extensions/Blocks/Recommendation/constants/layout.d.ts +41 -0
  127. package/dist/src/extensions/Blocks/Recommendation/constants/selectors.d.ts +35 -0
  128. package/dist/src/extensions/Blocks/Recommendation/controls/button/index.d.ts +143 -0
  129. package/dist/src/extensions/Blocks/Recommendation/controls/cardBackground/index.d.ts +31 -0
  130. package/dist/src/extensions/Blocks/Recommendation/{cardCompositionControl.d.ts → controls/cardComposition/index.d.ts} +23 -3
  131. package/dist/src/extensions/Blocks/Recommendation/controls/image/index.d.ts +35 -0
  132. package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +21 -589
  133. package/dist/src/extensions/Blocks/Recommendation/controls/layout/index.d.ts +37 -0
  134. package/dist/src/extensions/Blocks/Recommendation/controls/main/algorithm.d.ts +29 -0
  135. package/dist/src/extensions/Blocks/Recommendation/controls/main/currency.d.ts +52 -0
  136. package/dist/src/extensions/Blocks/Recommendation/controls/main/filters.d.ts +22 -0
  137. package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +79 -0
  138. package/dist/src/extensions/Blocks/Recommendation/controls/main/locale.d.ts +24 -0
  139. package/dist/src/extensions/Blocks/Recommendation/controls/main/productLayout.d.ts +60 -0
  140. package/dist/src/extensions/Blocks/Recommendation/controls/main/shuffle.d.ts +23 -0
  141. package/dist/src/extensions/Blocks/Recommendation/controls/main/utils.d.ts +221 -0
  142. package/dist/src/extensions/Blocks/Recommendation/controls/mobileLayout/cssRules.d.ts +29 -0
  143. package/dist/src/extensions/Blocks/Recommendation/controls/name/index.d.ts +97 -0
  144. package/dist/src/extensions/Blocks/Recommendation/controls/name/textTrim.d.ts +34 -0
  145. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/index.d.ts +95 -0
  146. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.d.ts +100 -0
  147. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.d.ts +15 -0
  148. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.d.ts +15 -0
  149. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/index.d.ts +100 -0
  150. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.d.ts +15 -0
  151. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.d.ts +15 -0
  152. package/dist/src/extensions/Blocks/Recommendation/controls/price/index.d.ts +95 -0
  153. package/dist/src/extensions/Blocks/Recommendation/controls/spacing/index.d.ts +83 -0
  154. package/dist/src/extensions/Blocks/Recommendation/extension.d.ts +9 -0
  155. package/dist/src/extensions/Blocks/Recommendation/services/configService.d.ts +151 -0
  156. package/dist/src/extensions/Blocks/Recommendation/services/index.d.ts +6 -0
  157. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +138 -468
  158. package/dist/src/extensions/Blocks/Recommendation/templates/grid/elementRenderer.d.ts +20 -0
  159. package/dist/src/extensions/Blocks/Recommendation/templates/{migrationTemplate.d.ts → grid/migration.d.ts} +11 -4
  160. package/dist/src/extensions/Blocks/Recommendation/templates/grid/template.d.ts +33 -0
  161. package/dist/src/extensions/Blocks/Recommendation/templates/index.d.ts +41 -0
  162. package/dist/src/extensions/Blocks/Recommendation/templates/list/elementRenderer.d.ts +8 -0
  163. package/dist/src/extensions/Blocks/Recommendation/templates/list/migration.d.ts +25 -0
  164. package/dist/src/extensions/Blocks/Recommendation/templates/list/template.d.ts +18 -0
  165. package/dist/src/extensions/Blocks/Recommendation/templates/utils.d.ts +66 -0
  166. package/dist/src/extensions/Blocks/Recommendation/types/index.d.ts +7 -0
  167. package/dist/src/extensions/Blocks/Recommendation/types/nodeConfig.d.ts +166 -0
  168. package/dist/src/extensions/Blocks/Recommendation/utils/priceFormatter.d.ts +33 -0
  169. package/dist/src/extensions/Blocks/Recommendation/utils/stylePreserver.d.ts +113 -0
  170. package/dist/src/extensions/Blocks/Recommendation/utils/tagName.d.ts +77 -0
  171. package/dist/src/extensions/Blocks/common-control.d.ts +4 -5
  172. package/dist/src/extensions/ModulesTabIcons/extension.d.ts +2 -0
  173. package/dist/src/stores/config.d.ts +36 -0
  174. package/dist/static/styles/components/notification.css.js +19 -0
  175. package/dist/static/styles/components/tools.css.js +6 -2
  176. package/dist/static/styles/components/version-history.css.js +10 -2
  177. package/dist/static/styles/components/wide-panel.css.js +18 -2
  178. package/dist/static/styles/customEditorStyle.css.js +35 -11
  179. package/dist/static/styles/variables.css.js +2 -0
  180. package/dist/static/templates/empty/index.html.js +74 -0
  181. package/dist/static/templates/empty/style.css.js +779 -0
  182. package/dist/utils/pairProductVariables.js +57 -56
  183. package/dist/utils/templatePreparation.js +15 -14
  184. package/package.json +2 -2
  185. package/dist/extensions/Blocks/Items/store/items-block.js +0 -79
  186. package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +0 -187
  187. package/dist/extensions/Blocks/Recommendation/constants.js +0 -13
  188. package/dist/extensions/Blocks/Recommendation/control.js +0 -336
  189. package/dist/extensions/Blocks/Recommendation/controls/cardBackgroundColorControl.js +0 -68
  190. package/dist/extensions/Blocks/Recommendation/controls/index.js +0 -245
  191. package/dist/extensions/Blocks/Recommendation/controls/nameTextTrimControl.js +0 -74
  192. package/dist/extensions/Blocks/Recommendation/controls/spacingControl.js +0 -188
  193. package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +0 -181
  194. package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +0 -189
  195. package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +0 -209
  196. package/dist/src/extensions/Blocks/Items/store/items-block.d.ts +0 -45
  197. package/dist/src/extensions/Blocks/Recommendation/control.d.ts +0 -38
  198. package/dist/src/extensions/Blocks/Recommendation/controls/nameTextTrimControl.d.ts +0 -16
  199. package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +0 -16
  200. package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +0 -52
@@ -1,336 +0,0 @@
1
- var p = Object.defineProperty;
2
- var S = (a, s, e) => s in a ? p(a, s, { enumerable: !0, configurable: !0, writable: !0, value: e }) : a[s] = e;
3
- var u = (a, s, e) => S(a, typeof s != "symbol" ? s + "" : s, e);
4
- import { currencyDecimalCounts as _, currencyOperators as C, currencyLocationMaps as R } from "../../../enums/extensions/recommendationBlock.js";
5
- import { UEAttr as O, ModificationDescription as g } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
6
- import { CommonControl as U } from "../common-control.js";
7
- import { useRecommendationExtensionStore as N } from "./store/recommendation.js";
8
- import { prepareProductRows as E } from "./templates/blockTemplate.js";
9
- import { DEFAULT_CARD_COMPOSITION as d, getDefaultProducts as L } from "./templates/templateUtils.js";
10
- import { useDebounceFn as T } from "../../../node_modules/@vueuse/shared/index.js";
11
- const f = "ui-elements-recommendation-block", t = {
12
- ALGORITHM: "strategy",
13
- PRODUCT_IDS: "productIds",
14
- LOCALE: "language",
15
- CURRENCY: "value",
16
- CURRENCY_LOCATION: "alignment",
17
- CURRENCY_SYMBOL: "symbol",
18
- CURRENCY_THOUSAND_SEPARATOR: "thousandSeparator",
19
- CURRENCY_DECIMAL_SEPARATOR: "decimalSeparator",
20
- CURRENCY_DECIMAL_COUNT: "decimalCount",
21
- FILTERS: "filterStatus",
22
- PRODUCT_COUNT: "size",
23
- PRODUCT_IN_ROW: "cardsInRow",
24
- SHUFFLE_PRODUCTS: "shuffleProducts"
25
- };
26
- class Y extends U {
27
- constructor() {
28
- super(...arguments);
29
- u(this, "store", N());
30
- u(this, "storeUnsubscription", () => {
31
- });
32
- u(this, "addFilterListener", () => {
33
- });
34
- u(this, "addFilterButton", null);
35
- u(this, "_debouncedRegenerateProductRows", T(() => {
36
- this._regenerateProductRows();
37
- }, 500));
38
- }
39
- getId() {
40
- return f;
41
- }
42
- getTemplate() {
43
- return `
44
- <div class="recommendation-controls-container">
45
- ${this._getAlgorithms()}
46
- ${this._getLanguages()}
47
- ${this._getCurrency()}
48
- ${this._getFilterStatus()}
49
- ${this._getProductLayout()}
50
- ${this._getShuffleProducts()}
51
- </div>
52
- `;
53
- }
54
- async onRender() {
55
- await Promise.all([
56
- this.store.fetchRecommendationFilters(),
57
- this.store.fetchRecommendationCreateData(),
58
- this.store.fetchRecommendationProducts()
59
- // TODO: We need to change the location. It's just for testing
60
- ]), this._listenStateUpdates(), this._initializeSelectItems(), this._setFormValues(), this._listenToFormUpdates();
61
- }
62
- onDestroy() {
63
- var e;
64
- (e = this.addFilterButton) == null || e.removeEventListener("click", this.addFilterListener), this.storeUnsubscription();
65
- }
66
- _setFormValues() {
67
- const e = this.store.recommendationConfigs;
68
- this._setProductIdsVisibility(), this.api.updateValues({
69
- [t.ALGORITHM]: e.strategy,
70
- [t.PRODUCT_IDS]: e.productIds.join(","),
71
- [t.CURRENCY]: e.currencySettings.value,
72
- [t.LOCALE]: e.language,
73
- [t.CURRENCY_LOCATION]: e.currencySettings.alignment,
74
- [t.CURRENCY_SYMBOL]: e.currencySettings.symbol,
75
- [t.CURRENCY_THOUSAND_SEPARATOR]: e.currencySettings.thousandSeparator,
76
- [t.CURRENCY_DECIMAL_SEPARATOR]: e.currencySettings.decimalSeparator,
77
- [t.CURRENCY_DECIMAL_COUNT]: e.currencySettings.decimalCount,
78
- [t.PRODUCT_COUNT]: e.size,
79
- [t.PRODUCT_IN_ROW]: e.cardsInRow,
80
- [t.SHUFFLE_PRODUCTS]: e.shuffleProducts
81
- });
82
- }
83
- _initializeSelectItems() {
84
- const { store: e } = this, o = e.getActivePredictiveAlgorithms, i = e.getLanguages, n = {
85
- [t.ALGORITHM]: o,
86
- [t.LOCALE]: i,
87
- [t.CURRENCY]: e.currencyList,
88
- [t.CURRENCY_LOCATION]: R,
89
- [t.CURRENCY_SYMBOL]: e.getCurrencySymbolList,
90
- [t.CURRENCY_THOUSAND_SEPARATOR]: C,
91
- [t.CURRENCY_DECIMAL_SEPARATOR]: C,
92
- [t.CURRENCY_DECIMAL_COUNT]: _,
93
- [t.PRODUCT_COUNT]: Number(e.recommendationConfigs.size),
94
- [t.PRODUCT_IN_ROW]: e.recommendationConfigs.cardsInRow,
95
- [t.SHUFFLE_PRODUCTS]: e.recommendationConfigs.shuffleProducts
96
- };
97
- Object.entries(n).forEach(([r, l]) => {
98
- this.api.setUIEAttribute(r, O.SELECTPICKER.items, l);
99
- });
100
- }
101
- _getAlgorithms() {
102
- return `
103
- ${this._GuTwoColumns([
104
- this._GuLabel({ text: "Recommendation Algorithm" }),
105
- this._GuSelect({
106
- name: t.ALGORITHM,
107
- placeholder: "Select Recommendation Algorithm",
108
- options: this.store.getActivePredictiveAlgorithms
109
- }),
110
- this._GuLabel({ text: "Product Ids", name: `${t.PRODUCT_IDS}_label` }),
111
- this._GuTextInput({
112
- name: t.PRODUCT_IDS,
113
- placeholder: "Enter Product Ids",
114
- className: "es-180w"
115
- })
116
- ])}
117
- `;
118
- }
119
- _getLanguages() {
120
- return `
121
- ${this._GuTwoColumns([
122
- this._GuLabel({ text: "Recommendation Locale" }),
123
- this._GuSelect({
124
- name: t.LOCALE,
125
- placeholder: "Select Recommendation Locale",
126
- options: this.store.getLanguages
127
- })
128
- ])}
129
- `;
130
- }
131
- _getCurrency() {
132
- return `
133
- ${this._GuTwoColumns([
134
- this._GuLabel({ text: "Currency" }),
135
- this._GuSelect({
136
- name: t.CURRENCY,
137
- placeholder: "Select Currency",
138
- options: this.store.currencyList
139
- }),
140
- this._GuLabel({ text: "Currency Location" }),
141
- this._GuSelect({
142
- name: t.CURRENCY_LOCATION,
143
- placeholder: "Select Currency Location",
144
- options: R
145
- }),
146
- this._GuLabel({ text: "Currency Symbol" }),
147
- this._GuSelect({
148
- name: t.CURRENCY_SYMBOL,
149
- placeholder: "Select Currency Symbol",
150
- options: this.store.getCurrencySymbolList
151
- }),
152
- this._GuLabel({ text: "Thousand Separator" }),
153
- this._GuSelect({
154
- name: t.CURRENCY_THOUSAND_SEPARATOR,
155
- placeholder: "Select Thousand Separator",
156
- options: C
157
- }),
158
- this._GuLabel({ text: "Decimal Separator" }),
159
- this._GuSelect({
160
- name: t.CURRENCY_DECIMAL_SEPARATOR,
161
- placeholder: "Select Decimal Separator",
162
- options: C
163
- }),
164
- this._GuLabel({ text: "Decimal Count" }),
165
- this._GuSelect({
166
- name: t.CURRENCY_DECIMAL_COUNT,
167
- placeholder: "Select Decimal Count",
168
- options: _
169
- })
170
- ])}
171
- `;
172
- }
173
- _getProductLayout() {
174
- return `
175
- ${this._GuTwoColumns([
176
- this._GuLabel({ text: "Number of Products" }),
177
- this._GuCounter({ name: t.PRODUCT_COUNT, maxValue: 9 }),
178
- this._GuLabel({ text: "Products in One Row" }),
179
- this._GuCounter({ name: t.PRODUCT_IN_ROW, maxValue: 4 })
180
- ])}
181
- `;
182
- }
183
- _getFilterStatus() {
184
- return `
185
- ${this._GuTwoColumns([
186
- this._GuLabel({ text: "Filters" }),
187
- this._GuButton({
188
- name: t.FILTERS,
189
- label: "Add Filter",
190
- id: "guido__btn-add-filter"
191
- })
192
- ])}
193
- `;
194
- }
195
- _getShuffleProducts() {
196
- return `
197
- ${this._GuTwoColumns([
198
- this._GuLabel({ text: "Shuffle Recommended Products" }),
199
- this._GuToggle(t.SHUFFLE_PRODUCTS)
200
- ])}
201
- `;
202
- }
203
- _onFilterSelectClick() {
204
- this.store.$patch({
205
- filterSelectionDrawerStatus: !0
206
- });
207
- }
208
- _onDataChange(e, o) {
209
- this.currentNode && (this.store.$patch({
210
- recommendationConfigs: {
211
- [e]: o
212
- }
213
- }), this._debouncedRegenerateProductRows());
214
- }
215
- /**
216
- * Get the current card composition from block data attribute or use default
217
- */
218
- _getCardComposition() {
219
- if (!this.currentNode)
220
- return d;
221
- const e = this.currentNode.querySelector(".ins-recommendation-v3-block-v2");
222
- if (!e || !("getAttribute" in e))
223
- return d;
224
- const o = e.getAttribute("data-card-composition");
225
- return o ? o.split(",").filter(Boolean) : d;
226
- }
227
- _regenerateProductRows() {
228
- if (!this.currentNode || !("querySelector" in this.currentNode))
229
- return;
230
- const e = this.currentNode.querySelector(".ins-recommendation-product-container");
231
- if (!e) {
232
- console.error("Could not find container table for product rows");
233
- return;
234
- }
235
- const o = this.store.recommendationProducts.length > 0 ? this.store.recommendationProducts : L(), { cardsInRow: i } = this.store.recommendationConfigs, n = this._getCardComposition(), r = E(o, i, n);
236
- this.api.getDocumentModifier().modifyHtml(e).setInnerHtml(r).apply(new g("Updated product")), this._reapplySpacing();
237
- }
238
- /**
239
- * Reapply spacing values after product regeneration
240
- * This ensures spacing persists when products are regenerated
241
- */
242
- _reapplySpacing() {
243
- if (!this.currentNode)
244
- return;
245
- const e = this.currentNode.querySelector(".ins-recommendation-v3-block-v2");
246
- if (!e || !("getAttribute" in e))
247
- return;
248
- const o = e.getAttribute("data-column-spacing"), i = e.getAttribute("data-row-spacing"), n = this.api.getDocumentModifier();
249
- if (o) {
250
- const r = parseInt(o);
251
- if (!Number.isNaN(r)) {
252
- const h = `0 ${Math.floor(r / 2)}px`;
253
- Array.from(
254
- this.currentNode.querySelectorAll(".product-card-wrapper")
255
- ).forEach((c) => {
256
- "parentNode" in c && c.parentNode && typeof c.parentNode == "object" && "tagName" in c.parentNode && c.parentNode.tagName === "TD" && n.modifyHtml(c.parentNode).setStyle("padding", h);
257
- });
258
- }
259
- }
260
- if (i) {
261
- const r = parseInt(i);
262
- if (!Number.isNaN(r)) {
263
- const l = `${r}px`;
264
- Array.from(this.currentNode.querySelectorAll(".spacer")).forEach((m) => {
265
- n.modifyHtml(m).setStyle("height", l);
266
- });
267
- }
268
- }
269
- (o || i) && n.apply(new g("Reapply spacing after regeneration"));
270
- }
271
- _onCurrencyConfigChange(e, o) {
272
- this.currentNode && this.store.$patch({
273
- recommendationConfigs: {
274
- currencySettings: {
275
- [e]: o
276
- }
277
- }
278
- });
279
- }
280
- _onCurrencyChange(e) {
281
- const [, o] = e.split(".");
282
- this.store.$patch({
283
- recommendationConfigs: {
284
- currencySettings: {
285
- name: o,
286
- value: o
287
- }
288
- }
289
- });
290
- }
291
- _setProductIdsVisibility() {
292
- const { recommendationConfigs: e } = this.store, o = e.strategy === "manualMerchandising";
293
- this.api.setVisibility(t.PRODUCT_IDS, o), this.api.setVisibility(`${t.PRODUCT_IDS}_label`, o);
294
- }
295
- _listenToFormUpdates() {
296
- var o;
297
- this.api.onValueChanged(t.ALGORITHM, (i) => {
298
- const n = i;
299
- this._onDataChange(t.ALGORITHM, n), this._setProductIdsVisibility();
300
- }), this.api.onValueChanged(t.PRODUCT_IDS, (i) => {
301
- this._onDataChange(t.PRODUCT_IDS, i.split(",") || []);
302
- }), this.api.onValueChanged(t.LOCALE, (i) => {
303
- this._onDataChange(t.LOCALE, i);
304
- }), this.api.onValueChanged(t.CURRENCY, (i) => {
305
- this._onCurrencyChange(i);
306
- }), [
307
- t.CURRENCY_LOCATION,
308
- t.CURRENCY_SYMBOL,
309
- t.CURRENCY_THOUSAND_SEPARATOR,
310
- t.CURRENCY_DECIMAL_SEPARATOR,
311
- t.CURRENCY_DECIMAL_COUNT
312
- ].forEach((i) => {
313
- this.api.onValueChanged(i, (n) => {
314
- this._onCurrencyConfigChange(i, n);
315
- });
316
- }), this.api.onValueChanged(t.PRODUCT_COUNT, (i) => {
317
- this._onDataChange(t.PRODUCT_COUNT, i.toString());
318
- }), this.api.onValueChanged(t.PRODUCT_IN_ROW, (i) => {
319
- this._onDataChange(t.PRODUCT_IN_ROW, i);
320
- }), this.api.onValueChanged(t.SHUFFLE_PRODUCTS, (i) => {
321
- this._onDataChange(t.SHUFFLE_PRODUCTS, i);
322
- }), this.addFilterListener = this._onFilterSelectClick.bind(this), this.addFilterButton = this.getContainer().querySelector("#guido__btn-add-filter"), (o = this.addFilterButton) == null || o.addEventListener("click", this.addFilterListener);
323
- }
324
- _listenStateUpdates() {
325
- this.storeUnsubscription = this.store.$subscribe((e) => {
326
- if ("payload" in e) {
327
- const o = e.payload.recommendationConfigs;
328
- o && (this.api.updateValues(o), this.store.fetchRecommendationProducts());
329
- }
330
- });
331
- }
332
- }
333
- export {
334
- f as CONTROL_BLOCK_ID,
335
- Y as RecommendationBlockControl
336
- };
@@ -1,68 +0,0 @@
1
- import { ModificationDescription as a } from "../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
- import { CommonControl as d } from "../../common-control.js";
3
- const c = "recommendation-card-background-color-control", o = {
4
- CARD_BACKGROUND_COLOR: "cardBackgroundColor"
5
- };
6
- class u extends d {
7
- getId() {
8
- return c;
9
- }
10
- getTemplate() {
11
- return `
12
- <div class="card-bg-control-container">
13
- ${this._GuTwoColumns([
14
- this._GuLabel({ text: "Card Background Color" }),
15
- this._GuColorPicker(o.CARD_BACKGROUND_COLOR)
16
- ])}
17
- </div>
18
- `;
19
- }
20
- onRender() {
21
- this._setFormValues(), this._listenToFormUpdates();
22
- }
23
- onTemplateNodeUpdated(r) {
24
- super.onTemplateNodeUpdated(r), this._setFormValues();
25
- }
26
- _setFormValues() {
27
- const r = this._getCurrentCardBackgroundColor();
28
- this.api.updateValues({
29
- [o.CARD_BACKGROUND_COLOR]: r
30
- });
31
- }
32
- /**
33
- * Reads the current background color from the first product card wrapper
34
- * @returns The background color value or 'transparent' if not found
35
- */
36
- _getCurrentCardBackgroundColor() {
37
- if (!this.currentNode || !("querySelectorAll" in this.currentNode))
38
- return "transparent";
39
- const r = this.currentNode.querySelector(".product-card-wrapper");
40
- return !r || !("getStyle" in r) ? "transparent" : r.getStyle("background-color") || "transparent";
41
- }
42
- /**
43
- * Handles card background color changes
44
- * Applies the color to all product card wrapper elements
45
- */
46
- _onCardBackgroundColorChange(r) {
47
- if (!this.currentNode || !("querySelectorAll" in this.currentNode))
48
- return;
49
- const e = Array.from(
50
- this.currentNode.querySelectorAll(".product-card-wrapper")
51
- );
52
- if (e.length === 0)
53
- return;
54
- const t = this.api.getDocumentModifier();
55
- e.forEach((n) => {
56
- t.modifyHtml(n).setStyle("background-color", r);
57
- }), t.apply(new a("Update card background color"));
58
- }
59
- _listenToFormUpdates() {
60
- this.api.onValueChanged(o.CARD_BACKGROUND_COLOR, (r) => {
61
- this._onCardBackgroundColorChange(r);
62
- });
63
- }
64
- }
65
- export {
66
- c as CARD_BACKGROUND_COLOR_CONTROL_ID,
67
- u as CardBackgroundColorControl
68
- };
@@ -1,245 +0,0 @@
1
- import { createButtonAlignControl as c, createButtonBorderControl as _, createButtonBorderRadiusControl as T, createButtonColorControl as i, createButtonFitToContainerControl as B, createButtonFontFamilyControl as s, createButtonMarginsControl as S, createButtonPaddingsControl as E, createButtonTextControl as P, createButtonTextSizeControl as U, createButtonTextStyleAndFontColorControl as R, createImageMarginsControl as a, createImageSizeControl as M, createTextAlignControl as C, createTextBackgroundColorControl as r, createTextColorControl as O, createTextFontFamilyControl as I, createPaddingsControl as e, createTextSizeControl as N, createTextStyleControl as l } from "../../controlFactories.js";
2
- import { RecommendationBlockId as o, RecommendationControlId as t } from "../constants.js";
3
- const n = ".ins-recommendation-product-container", u = C(
4
- t.NAME_ALIGN,
5
- o.NAME,
6
- n
7
- ), d = O(
8
- t.NAME_COLOR,
9
- o.NAME,
10
- n
11
- ), m = N(
12
- t.NAME_SIZE,
13
- o.NAME,
14
- n
15
- ), L = l(
16
- t.NAME_STYLE,
17
- o.NAME,
18
- n
19
- ), F = I(
20
- t.NAME_FONT_FAMILY,
21
- o.NAME,
22
- n
23
- ), g = r(
24
- t.NAME_BACKGROUND,
25
- o.NAME,
26
- n
27
- ), G = e(
28
- t.NAME_PADDINGS,
29
- o.NAME,
30
- n
31
- ), y = C(
32
- t.PRICE_ALIGN,
33
- o.PRICE,
34
- n
35
- ), b = O(
36
- t.PRICE_COLOR,
37
- o.PRICE,
38
- n
39
- ), x = N(
40
- t.PRICE_SIZE,
41
- o.PRICE,
42
- n
43
- ), Y = l(
44
- t.PRICE_STYLE,
45
- o.PRICE,
46
- n
47
- ), z = I(
48
- t.PRICE_FONT_FAMILY,
49
- o.PRICE,
50
- n
51
- ), k = r(
52
- t.PRICE_BACKGROUND,
53
- o.PRICE,
54
- n
55
- ), Z = e(
56
- t.PRICE_PADDINGS,
57
- o.PRICE,
58
- n
59
- ), K = C(
60
- t.OLD_PRICE_ALIGN,
61
- o.OLD_PRICE,
62
- n
63
- ), p = O(
64
- t.OLD_PRICE_COLOR,
65
- o.OLD_PRICE,
66
- n
67
- ), X = N(
68
- t.OLD_PRICE_SIZE,
69
- o.OLD_PRICE,
70
- n
71
- ), f = l(
72
- t.OLD_PRICE_STYLE,
73
- o.OLD_PRICE,
74
- n
75
- ), h = I(
76
- t.OLD_PRICE_FONT_FAMILY,
77
- o.OLD_PRICE,
78
- n
79
- ), j = r(
80
- t.OLD_PRICE_BACKGROUND,
81
- o.OLD_PRICE,
82
- n
83
- ), q = e(
84
- t.OLD_PRICE_PADDINGS,
85
- o.OLD_PRICE,
86
- n
87
- ), v = C(
88
- t.OMNIBUS_PRICE_ALIGN,
89
- o.OMNIBUS_PRICE,
90
- n
91
- ), w = O(
92
- t.OMNIBUS_PRICE_COLOR,
93
- o.OMNIBUS_PRICE,
94
- n
95
- ), H = N(
96
- t.OMNIBUS_PRICE_SIZE,
97
- o.OMNIBUS_PRICE,
98
- n
99
- ), J = l(
100
- t.OMNIBUS_PRICE_STYLE,
101
- o.OMNIBUS_PRICE,
102
- n
103
- ), Q = I(
104
- t.OMNIBUS_PRICE_FONT_FAMILY,
105
- o.OMNIBUS_PRICE,
106
- n
107
- ), V = r(
108
- t.OMNIBUS_PRICE_BACKGROUND,
109
- o.OMNIBUS_PRICE,
110
- n
111
- ), W = e(
112
- t.OMNIBUS_PRICE_PADDINGS,
113
- o.OMNIBUS_PRICE,
114
- n
115
- ), $ = C(
116
- t.OMNIBUS_DISCOUNT_ALIGN,
117
- o.OMNIBUS_DISCOUNT,
118
- n
119
- ), oo = O(
120
- t.OMNIBUS_DISCOUNT_COLOR,
121
- o.OMNIBUS_DISCOUNT,
122
- n
123
- ), to = N(
124
- t.OMNIBUS_DISCOUNT_SIZE,
125
- o.OMNIBUS_DISCOUNT,
126
- n
127
- ), no = l(
128
- t.OMNIBUS_DISCOUNT_STYLE,
129
- o.OMNIBUS_DISCOUNT,
130
- n
131
- ), Co = I(
132
- t.OMNIBUS_DISCOUNT_FONT_FAMILY,
133
- o.OMNIBUS_DISCOUNT,
134
- n
135
- ), ro = r(
136
- t.OMNIBUS_DISCOUNT_BACKGROUND,
137
- o.OMNIBUS_DISCOUNT,
138
- n
139
- ), Oo = e(
140
- t.OMNIBUS_DISCOUNT_PADDINGS,
141
- o.OMNIBUS_DISCOUNT,
142
- n
143
- ), Io = c(
144
- t.BUTTON_ALIGN,
145
- o.BUTTON,
146
- n
147
- ), eo = _(
148
- t.BUTTON_BORDER,
149
- o.BUTTON,
150
- n
151
- ), No = T(
152
- t.BUTTON_BORDER_RADIUS,
153
- o.BUTTON,
154
- n
155
- ), lo = i(
156
- t.BUTTON_COLOR,
157
- o.BUTTON,
158
- n
159
- ), co = s(
160
- t.BUTTON_FONT_FAMILY,
161
- o.BUTTON,
162
- n
163
- ), _o = S(
164
- t.BUTTON_MARGINS,
165
- o.BUTTON,
166
- n
167
- ), To = E(
168
- t.BUTTON_PADDINGS,
169
- o.BUTTON,
170
- n
171
- ), io = P(
172
- t.BUTTON_TEXT,
173
- o.BUTTON,
174
- n
175
- ), Bo = U(
176
- t.BUTTON_TEXT_SIZE,
177
- o.BUTTON,
178
- n
179
- ), so = R(
180
- t.BUTTON_TEXT_STYLE_AND_FONT_COLOR,
181
- o.BUTTON,
182
- n
183
- ), So = B(
184
- t.BUTTON_FIT_TO_CONTENT,
185
- o.BUTTON,
186
- n
187
- ), Eo = M(
188
- t.IMAGE_SIZE,
189
- o.IMAGE,
190
- n
191
- ), Po = a(
192
- t.IMAGE_MARGINS,
193
- o.IMAGE,
194
- n
195
- );
196
- export {
197
- Io as ButtonAlignControl,
198
- eo as ButtonBorderControl,
199
- No as ButtonBorderRadiusControl,
200
- lo as ButtonColorControl,
201
- So as ButtonFitToContentControl,
202
- co as ButtonFontFamilyControl,
203
- _o as ButtonMarginsControl,
204
- To as ButtonPaddingsControl,
205
- io as ButtonTextControl,
206
- Bo as ButtonTextSizeControl,
207
- so as ButtonTextStyleAndFontColorControl,
208
- Po as ImageMarginsControl,
209
- Eo as ImageSizeControl,
210
- u as NameAlignControl,
211
- g as NameBackgroundControl,
212
- d as NameColorControl,
213
- F as NameFontFamilyControl,
214
- G as NamePaddingsControl,
215
- m as NameSizeControl,
216
- L as NameStyleControl,
217
- K as OldPriceAlignControl,
218
- j as OldPriceBackgroundControl,
219
- p as OldPriceColorControl,
220
- h as OldPriceFontFamilyControl,
221
- q as OldPricePaddingsControl,
222
- X as OldPriceSizeControl,
223
- f as OldPriceStyleControl,
224
- $ as OmnibusDiscountAlignControl,
225
- ro as OmnibusDiscountBackgroundControl,
226
- oo as OmnibusDiscountColorControl,
227
- Co as OmnibusDiscountFontFamilyControl,
228
- Oo as OmnibusDiscountPaddingsControl,
229
- to as OmnibusDiscountSizeControl,
230
- no as OmnibusDiscountStyleControl,
231
- v as OmnibusPriceAlignControl,
232
- V as OmnibusPriceBackgroundControl,
233
- w as OmnibusPriceColorControl,
234
- Q as OmnibusPriceFontFamilyControl,
235
- W as OmnibusPricePaddingsControl,
236
- H as OmnibusPriceSizeControl,
237
- J as OmnibusPriceStyleControl,
238
- y as PriceAlignControl,
239
- k as PriceBackgroundControl,
240
- b as PriceColorControl,
241
- z as PriceFontFamilyControl,
242
- Z as PricePaddingsControl,
243
- x as PriceSizeControl,
244
- Y as PriceStyleControl
245
- };