@useinsider/guido 2.0.0-beta.324bded → 2.0.0-beta.38c1882

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 (240) hide show
  1. package/README.md +2 -0
  2. package/dist/@types/config/schemas.js +55 -39
  3. package/dist/components/Guido.vue.js +1 -1
  4. package/dist/components/Guido.vue2.js +15 -17
  5. package/dist/components/organisms/email-preview/PreviewContainer.vue.js +3 -3
  6. package/dist/components/organisms/email-preview/amp/AmpErrorModal.vue.js +8 -8
  7. package/dist/components/organisms/email-preview/amp/AmpErrorModal.vue2.js +11 -12
  8. package/dist/components/organisms/email-preview/amp/AmpToggle.vue.js +8 -7
  9. package/dist/components/organisms/email-preview/amp/AmpToggle.vue2.js +12 -14
  10. package/dist/components/organisms/email-preview/desktop-preview/DesktopPreview.vue.js +14 -10
  11. package/dist/components/organisms/email-preview/desktop-preview/DesktopPreview.vue2.js +22 -18
  12. package/dist/components/organisms/email-preview/desktop-preview/EmailHeaderInfo.vue.js +17 -0
  13. package/dist/components/organisms/email-preview/desktop-preview/EmailHeaderInfo.vue2.js +20 -0
  14. package/dist/components/organisms/email-preview/desktop-preview/EmailSizeIndicator.vue.js +3 -3
  15. package/dist/components/organisms/email-preview/mobile-preview/ContentView.vue.js +10 -11
  16. package/dist/components/organisms/email-preview/mobile-preview/MobilePreview.vue.js +10 -11
  17. package/dist/components/organisms/email-preview/mobile-preview/MobilePreview.vue2.js +14 -15
  18. package/dist/components/organisms/header/LeftSlot.vue.js +11 -11
  19. package/dist/components/organisms/header/LeftSlot.vue2.js +12 -11
  20. package/dist/components/organisms/header/MiddleSlot.vue.js +4 -5
  21. package/dist/components/organisms/header/MiddleSlot.vue2.js +13 -14
  22. package/dist/components/organisms/header/RightSlot.vue.js +12 -12
  23. package/dist/components/organisms/header/RightSlot.vue2.js +20 -26
  24. package/dist/components/organisms/onboarding/NewVersionPopup.vue2.js +15 -15
  25. package/dist/components/organisms/unsubscribe/UnsubscribeTypeSelection.vue.js +1 -1
  26. package/dist/components/organisms/unsubscribe/UnsubscribeTypeSelection.vue2.js +19 -20
  27. package/dist/components/wrappers/WpModal.vue.js +3 -4
  28. package/dist/composables/useConfig.js +29 -27
  29. package/dist/composables/useSave.js +13 -11
  30. package/dist/composables/useStripo.js +40 -40
  31. package/dist/config/migrator/recommendationMigrator.js +2 -2
  32. package/dist/enums/onboarding.js +2 -1
  33. package/dist/enums/unsubscribe.js +21 -20
  34. package/dist/extensions/Blocks/Items/controls/cardComposition.js +13 -4
  35. package/dist/extensions/Blocks/Recommendation/block.js +40 -6
  36. package/dist/extensions/Blocks/Recommendation/constants/blockIds.js +4 -0
  37. package/dist/extensions/Blocks/Recommendation/constants/controlIds.js +4 -0
  38. package/dist/extensions/Blocks/Recommendation/constants/defaultConfig.js +64 -0
  39. package/dist/extensions/Blocks/Recommendation/constants/layout.js +20 -0
  40. package/dist/extensions/Blocks/Recommendation/constants/selectors.js +19 -0
  41. package/dist/extensions/Blocks/Recommendation/controls/button/index.js +64 -0
  42. package/dist/extensions/Blocks/Recommendation/controls/cardBackground/index.js +80 -0
  43. package/dist/extensions/Blocks/Recommendation/controls/cardComposition/index.js +232 -0
  44. package/dist/extensions/Blocks/Recommendation/controls/image/index.js +19 -0
  45. package/dist/extensions/Blocks/Recommendation/controls/layout/index.js +108 -0
  46. package/dist/extensions/Blocks/Recommendation/controls/main/algorithm.js +110 -0
  47. package/dist/extensions/Blocks/Recommendation/controls/main/currency.js +207 -0
  48. package/dist/extensions/Blocks/Recommendation/controls/main/filters.js +54 -0
  49. package/dist/extensions/Blocks/Recommendation/controls/main/index.js +148 -0
  50. package/dist/extensions/Blocks/Recommendation/controls/main/locale.js +74 -0
  51. package/dist/extensions/Blocks/Recommendation/controls/main/productLayout.js +124 -0
  52. package/dist/extensions/Blocks/Recommendation/controls/main/shuffle.js +71 -0
  53. package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +124 -0
  54. package/dist/extensions/Blocks/Recommendation/controls/name/index.js +46 -0
  55. package/dist/extensions/Blocks/Recommendation/controls/name/textTrim.js +76 -0
  56. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/index.js +44 -0
  57. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.js +48 -0
  58. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.js +73 -0
  59. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.js +73 -0
  60. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/index.js +48 -0
  61. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.js +73 -0
  62. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.js +73 -0
  63. package/dist/extensions/Blocks/Recommendation/controls/price/index.js +44 -0
  64. package/dist/extensions/Blocks/Recommendation/controls/spacing/index.js +222 -0
  65. package/dist/extensions/Blocks/Recommendation/extension.js +40 -43
  66. package/dist/extensions/Blocks/Recommendation/recommendation.css.js +13 -4
  67. package/dist/extensions/Blocks/Recommendation/services/configService.js +239 -0
  68. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +128 -72
  69. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +39 -34
  70. package/dist/extensions/Blocks/Recommendation/templates/horizontal/elementRenderer.js +181 -0
  71. package/dist/extensions/Blocks/Recommendation/templates/horizontal/template.js +71 -0
  72. package/dist/extensions/Blocks/Recommendation/templates/index.js +12 -0
  73. package/dist/extensions/Blocks/Recommendation/templates/utils.js +116 -0
  74. package/dist/extensions/Blocks/Recommendation/templates/vertical/elementRenderer.js +211 -0
  75. package/dist/extensions/Blocks/Recommendation/templates/vertical/migration.js +251 -0
  76. package/dist/extensions/Blocks/Recommendation/templates/vertical/template.js +62 -0
  77. package/dist/extensions/Blocks/Recommendation/types/nodeConfig.js +6 -0
  78. package/dist/extensions/Blocks/Recommendation/utils/filterUtil.js +9 -9
  79. package/dist/extensions/Blocks/Recommendation/utils/preserveTextStyles.js +36 -0
  80. package/dist/extensions/Blocks/Recommendation/utils/priceFormatter.js +29 -0
  81. package/dist/extensions/Blocks/Recommendation/utils/tagName.js +46 -0
  82. package/dist/extensions/Blocks/Unsubscribe/extension.js +9 -9
  83. package/dist/extensions/Blocks/common-control.js +6 -7
  84. package/dist/extensions/Blocks/controlFactories.js +155 -121
  85. package/dist/guido.css +1 -1
  86. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +424 -297
  87. package/dist/package.json.js +1 -1
  88. package/dist/services/stripoApi.js +6 -10
  89. package/dist/src/@types/config/index.d.ts +2 -2
  90. package/dist/src/@types/config/schemas.d.ts +30 -0
  91. package/dist/src/@types/config/types.d.ts +7 -1
  92. package/dist/src/components/organisms/header/RightSlot.vue.d.ts +1 -1
  93. package/dist/src/components/wrappers/WpDrawer.vue.d.ts +1 -1
  94. package/dist/src/composables/useConfig.d.ts +8 -0
  95. package/dist/src/enums/onboarding.d.ts +1 -0
  96. package/dist/src/enums/unsubscribe.d.ts +1 -0
  97. package/dist/src/extensions/Blocks/Recommendation/block.d.ts +34 -0
  98. package/dist/src/extensions/Blocks/Recommendation/constants/blockIds.d.ts +13 -0
  99. package/dist/src/extensions/Blocks/Recommendation/{constants.d.ts → constants/controlIds.d.ts} +19 -11
  100. package/dist/src/extensions/Blocks/Recommendation/constants/defaultConfig.d.ts +49 -0
  101. package/dist/src/extensions/Blocks/Recommendation/constants/index.d.ts +13 -0
  102. package/dist/src/extensions/Blocks/Recommendation/constants/layout.d.ts +35 -0
  103. package/dist/src/extensions/Blocks/Recommendation/constants/selectors.d.ts +31 -0
  104. package/dist/src/extensions/Blocks/Recommendation/controls/button/index.d.ts +143 -0
  105. package/dist/src/extensions/Blocks/Recommendation/controls/cardBackground/index.d.ts +31 -0
  106. package/dist/src/extensions/Blocks/Recommendation/controls/cardComposition/index.d.ts +95 -0
  107. package/dist/src/extensions/Blocks/Recommendation/controls/image/index.d.ts +35 -0
  108. package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +24 -0
  109. package/dist/src/extensions/Blocks/Recommendation/controls/layout/index.d.ts +36 -0
  110. package/dist/src/extensions/Blocks/Recommendation/controls/main/algorithm.d.ts +29 -0
  111. package/dist/src/extensions/Blocks/Recommendation/controls/main/currency.d.ts +45 -0
  112. package/dist/src/extensions/Blocks/Recommendation/controls/main/filters.d.ts +22 -0
  113. package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +62 -0
  114. package/dist/src/extensions/Blocks/Recommendation/controls/main/locale.d.ts +24 -0
  115. package/dist/src/extensions/Blocks/Recommendation/controls/main/productLayout.d.ts +42 -0
  116. package/dist/src/extensions/Blocks/Recommendation/controls/main/shuffle.d.ts +23 -0
  117. package/dist/src/extensions/Blocks/Recommendation/controls/main/utils.d.ts +100 -0
  118. package/dist/src/extensions/Blocks/Recommendation/controls/name/index.d.ts +97 -0
  119. package/dist/src/extensions/Blocks/Recommendation/controls/name/textTrim.d.ts +16 -0
  120. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/index.d.ts +95 -0
  121. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.d.ts +100 -0
  122. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.d.ts +15 -0
  123. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.d.ts +15 -0
  124. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/index.d.ts +100 -0
  125. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.d.ts +15 -0
  126. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.d.ts +15 -0
  127. package/dist/src/extensions/Blocks/Recommendation/controls/price/index.d.ts +95 -0
  128. package/dist/src/extensions/Blocks/Recommendation/controls/spacing/index.d.ts +83 -0
  129. package/dist/src/extensions/Blocks/Recommendation/extension.d.ts +9 -0
  130. package/dist/src/extensions/Blocks/Recommendation/services/configService.d.ts +151 -0
  131. package/dist/src/extensions/Blocks/Recommendation/services/index.d.ts +6 -0
  132. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +17 -16
  133. package/dist/src/extensions/Blocks/Recommendation/templates/horizontal/elementRenderer.d.ts +8 -0
  134. package/dist/src/extensions/Blocks/Recommendation/templates/horizontal/migration.d.ts +25 -0
  135. package/dist/src/extensions/Blocks/Recommendation/templates/horizontal/template.d.ts +18 -0
  136. package/dist/src/extensions/Blocks/Recommendation/templates/index.d.ts +39 -0
  137. package/dist/src/extensions/Blocks/Recommendation/templates/utils.d.ts +45 -0
  138. package/dist/src/extensions/Blocks/Recommendation/templates/vertical/elementRenderer.d.ts +7 -0
  139. package/dist/src/extensions/Blocks/Recommendation/templates/{migrationTemplate.d.ts → vertical/migration.d.ts} +11 -4
  140. package/dist/src/extensions/Blocks/Recommendation/templates/vertical/template.d.ts +33 -0
  141. package/dist/src/extensions/Blocks/Recommendation/types/index.d.ts +7 -0
  142. package/dist/src/extensions/Blocks/Recommendation/types/nodeConfig.d.ts +154 -0
  143. package/dist/src/extensions/Blocks/Recommendation/utils/preserveTextStyles.d.ts +19 -0
  144. package/dist/src/extensions/Blocks/Recommendation/utils/priceFormatter.d.ts +33 -0
  145. package/dist/src/extensions/Blocks/Recommendation/utils/stylePreserver.d.ts +113 -0
  146. package/dist/src/extensions/Blocks/Recommendation/utils/tagName.d.ts +77 -0
  147. package/dist/src/extensions/Blocks/common-control.d.ts +1 -1
  148. package/dist/src/stores/config.d.ts +164 -1
  149. package/dist/static/assets/inbox-mockup.svg.js +4 -0
  150. package/dist/static/assets/phone-mockup.svg.js +4 -0
  151. package/dist/static/styles/components/button.css.js +1 -1
  152. package/dist/static/styles/components/wide-panel.css.js +0 -4
  153. package/dist/static/styles/customEditorStyle.css.js +38 -2
  154. package/dist/stores/config.js +7 -0
  155. package/package.json +3 -3
  156. package/dist/enums/academy.js +0 -8
  157. package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +0 -103
  158. package/dist/extensions/Blocks/Recommendation/constants.js +0 -5
  159. package/dist/extensions/Blocks/Recommendation/control.js +0 -306
  160. package/dist/extensions/Blocks/Recommendation/controls/button/align.js +0 -13
  161. package/dist/extensions/Blocks/Recommendation/controls/button/border.js +0 -13
  162. package/dist/extensions/Blocks/Recommendation/controls/button/borderRadius.js +0 -13
  163. package/dist/extensions/Blocks/Recommendation/controls/button/color.js +0 -13
  164. package/dist/extensions/Blocks/Recommendation/controls/button/fitToContent.js +0 -13
  165. package/dist/extensions/Blocks/Recommendation/controls/button/fontFamily.js +0 -13
  166. package/dist/extensions/Blocks/Recommendation/controls/button/margins.js +0 -13
  167. package/dist/extensions/Blocks/Recommendation/controls/button/paddings.js +0 -13
  168. package/dist/extensions/Blocks/Recommendation/controls/button/text.js +0 -13
  169. package/dist/extensions/Blocks/Recommendation/controls/button/textSize.js +0 -13
  170. package/dist/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.js +0 -13
  171. package/dist/extensions/Blocks/Recommendation/controls/image/margins.js +0 -13
  172. package/dist/extensions/Blocks/Recommendation/controls/image/size.js +0 -13
  173. package/dist/extensions/Blocks/Recommendation/controls/name/align.js +0 -13
  174. package/dist/extensions/Blocks/Recommendation/controls/name/background.js +0 -13
  175. package/dist/extensions/Blocks/Recommendation/controls/name/color.js +0 -13
  176. package/dist/extensions/Blocks/Recommendation/controls/name/fontFamily.js +0 -13
  177. package/dist/extensions/Blocks/Recommendation/controls/name/paddings.js +0 -13
  178. package/dist/extensions/Blocks/Recommendation/controls/name/size.js +0 -13
  179. package/dist/extensions/Blocks/Recommendation/controls/name/style.js +0 -13
  180. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/align.js +0 -13
  181. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/background.js +0 -13
  182. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/color.js +0 -13
  183. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.js +0 -13
  184. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/paddings.js +0 -13
  185. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/size.js +0 -13
  186. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/style.js +0 -13
  187. package/dist/extensions/Blocks/Recommendation/controls/price/align.js +0 -13
  188. package/dist/extensions/Blocks/Recommendation/controls/price/background.js +0 -13
  189. package/dist/extensions/Blocks/Recommendation/controls/price/color.js +0 -13
  190. package/dist/extensions/Blocks/Recommendation/controls/price/fontFamily.js +0 -13
  191. package/dist/extensions/Blocks/Recommendation/controls/price/paddings.js +0 -13
  192. package/dist/extensions/Blocks/Recommendation/controls/price/size.js +0 -13
  193. package/dist/extensions/Blocks/Recommendation/controls/price/style.js +0 -13
  194. package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +0 -160
  195. package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +0 -152
  196. package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +0 -180
  197. package/dist/src/enums/academy.d.ts +0 -12
  198. package/dist/src/extensions/Blocks/Recommendation/cardCompositionControl.d.ts +0 -28
  199. package/dist/src/extensions/Blocks/Recommendation/control.d.ts +0 -35
  200. package/dist/src/extensions/Blocks/Recommendation/controls/button/align.d.ts +0 -5
  201. package/dist/src/extensions/Blocks/Recommendation/controls/button/border.d.ts +0 -5
  202. package/dist/src/extensions/Blocks/Recommendation/controls/button/borderRadius.d.ts +0 -5
  203. package/dist/src/extensions/Blocks/Recommendation/controls/button/color.d.ts +0 -5
  204. package/dist/src/extensions/Blocks/Recommendation/controls/button/fitToContent.d.ts +0 -5
  205. package/dist/src/extensions/Blocks/Recommendation/controls/button/fontFamily.d.ts +0 -5
  206. package/dist/src/extensions/Blocks/Recommendation/controls/button/margins.d.ts +0 -5
  207. package/dist/src/extensions/Blocks/Recommendation/controls/button/paddings.d.ts +0 -5
  208. package/dist/src/extensions/Blocks/Recommendation/controls/button/text.d.ts +0 -5
  209. package/dist/src/extensions/Blocks/Recommendation/controls/button/textSize.d.ts +0 -5
  210. package/dist/src/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.d.ts +0 -5
  211. package/dist/src/extensions/Blocks/Recommendation/controls/image/margins.d.ts +0 -5
  212. package/dist/src/extensions/Blocks/Recommendation/controls/image/size.d.ts +0 -5
  213. package/dist/src/extensions/Blocks/Recommendation/controls/name/align.d.ts +0 -5
  214. package/dist/src/extensions/Blocks/Recommendation/controls/name/background.d.ts +0 -5
  215. package/dist/src/extensions/Blocks/Recommendation/controls/name/color.d.ts +0 -5
  216. package/dist/src/extensions/Blocks/Recommendation/controls/name/fontFamily.d.ts +0 -5
  217. package/dist/src/extensions/Blocks/Recommendation/controls/name/paddings.d.ts +0 -5
  218. package/dist/src/extensions/Blocks/Recommendation/controls/name/size.d.ts +0 -5
  219. package/dist/src/extensions/Blocks/Recommendation/controls/name/style.d.ts +0 -5
  220. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/align.d.ts +0 -5
  221. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/background.d.ts +0 -5
  222. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/color.d.ts +0 -5
  223. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.d.ts +0 -5
  224. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/paddings.d.ts +0 -5
  225. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/size.d.ts +0 -5
  226. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/style.d.ts +0 -5
  227. package/dist/src/extensions/Blocks/Recommendation/controls/price/align.d.ts +0 -5
  228. package/dist/src/extensions/Blocks/Recommendation/controls/price/background.d.ts +0 -5
  229. package/dist/src/extensions/Blocks/Recommendation/controls/price/color.d.ts +0 -5
  230. package/dist/src/extensions/Blocks/Recommendation/controls/price/fontFamily.d.ts +0 -5
  231. package/dist/src/extensions/Blocks/Recommendation/controls/price/paddings.d.ts +0 -5
  232. package/dist/src/extensions/Blocks/Recommendation/controls/price/size.d.ts +0 -5
  233. package/dist/src/extensions/Blocks/Recommendation/controls/price/style.d.ts +0 -5
  234. package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +0 -16
  235. package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +0 -44
  236. package/dist/static/assets/desktop/desktop-mockup-center.svg.js +0 -4
  237. package/dist/static/assets/desktop/desktop-mockup-left.svg.js +0 -4
  238. package/dist/static/assets/desktop/desktop-mockup-right.svg.js +0 -4
  239. package/dist/static/assets/mobile/email-mockup.svg.js +0 -4
  240. package/dist/static/assets/mobile/inbox-mockup.svg.js +0 -4
@@ -0,0 +1,4 @@
1
+ const C = "data:image/svg+xml,%3csvg%20width='344'%20height='713'%20viewBox='0%200%20344%20713'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3crect%20width='344'%20height='712.056'%20rx='44'%20fill='white'/%3e%3cpath%20d='M54.6454%2034V28.1943H54.5624L52.8095%2029.4346V28.248L54.6503%2026.9541H55.9052V34H54.6454ZM60.7072%2034V32.6475H57.2599V31.6172C58.173%2030.0303%2059.174%2028.4092%2060.131%2026.9541H61.9132V31.6074H62.8605V32.6475H61.9132V34H60.7072ZM58.4318%2031.6367H60.7267V27.96H60.6534C59.9308%2029.0635%2059.1154%2030.3672%2058.4318%2031.5635V31.6367ZM64.6742%2029.4346C64.2298%2029.4346%2063.8978%2029.0928%2063.8978%2028.6631C63.8978%2028.2285%2064.2298%2027.8916%2064.6742%2027.8916C65.1234%2027.8916%2065.4505%2028.2285%2065.4505%2028.6631C65.4505%2029.0928%2065.1234%2029.4346%2064.6742%2029.4346ZM64.6742%2033.0576C64.2298%2033.0576%2063.8978%2032.7207%2063.8978%2032.2861C63.8978%2031.8516%2064.2298%2031.5146%2064.6742%2031.5146C65.1234%2031.5146%2065.4505%2031.8516%2065.4505%2032.2861C65.4505%2032.7207%2065.1234%2033.0576%2064.6742%2033.0576ZM66.688%2034V33.1504L69.0025%2030.7871C69.9595%2029.8203%2070.2281%2029.4639%2070.2281%2028.9219V28.9072C70.2281%2028.2578%2069.7837%2027.7891%2069.0513%2027.7891C68.3042%2027.7891%2067.8013%2028.2822%2067.8013%2029.0098L67.7964%2029.0293L66.6245%2029.0244L66.6197%2029.0098C66.6197%2027.6963%2067.6451%2026.7783%2069.1148%2026.7783C70.4869%2026.7783%2071.4732%2027.6133%2071.4732%2028.7998V28.8145C71.4732%2029.6152%2071.0874%2030.25%2069.8033%2031.4854L68.3921%2032.8525V32.9551H71.5806V34H66.688ZM75.1521%2034.1758C73.4773%2034.1758%2072.4714%2032.7549%2072.4714%2030.4795V30.4697C72.4714%2028.1943%2073.4773%2026.7783%2075.1521%2026.7783C76.8269%2026.7783%2077.8425%2028.1943%2077.8425%2030.4697V30.4795C77.8425%2032.7549%2076.8269%2034.1758%2075.1521%2034.1758ZM75.1521%2033.1553C76.0505%2033.1553%2076.573%2032.1494%2076.573%2030.4795V30.4697C76.573%2028.7998%2076.0505%2027.8037%2075.1521%2027.8037C74.2537%2027.8037%2073.741%2028.7998%2073.741%2030.4697V30.4795C73.741%2032.1494%2074.2537%2033.1553%2075.1521%2033.1553Z'%20fill='black'/%3e%3cpath%20d='M257.835%2027C257.835%2026.5398%20258.208%2026.1667%20258.668%2026.1667H259.501C259.961%2026.1667%20260.335%2026.5398%20260.335%2027V33.6667C260.335%2034.1269%20259.961%2034.5%20259.501%2034.5H258.668C258.208%2034.5%20257.835%2034.1269%20257.835%2033.6667V27Z'%20fill='black'/%3e%3cpath%20d='M262.001%2025.3333C262.001%2024.8731%20262.374%2024.5%20262.835%2024.5H263.668C264.128%2024.5%20264.501%2024.8731%20264.501%2025.3333V33.6667C264.501%2034.1269%20264.128%2034.5%20263.668%2034.5H262.835C262.374%2034.5%20262.001%2034.1269%20262.001%2033.6667V25.3333Z'%20fill='black'/%3e%3cpath%20d='M253.668%2029.9167C253.668%2029.4564%20254.041%2029.0833%20254.501%2029.0833H255.335C255.795%2029.0833%20256.168%2029.4564%20256.168%2029.9167V33.6667C256.168%2034.1269%20255.795%2034.5%20255.335%2034.5H254.501C254.041%2034.5%20253.668%2034.1269%20253.668%2033.6667V29.9167Z'%20fill='black'/%3e%3cpath%20d='M249.501%2032C249.501%2031.5398%20249.874%2031.1667%20250.335%2031.1667H251.168C251.628%2031.1667%20252.001%2031.5398%20252.001%2032V33.6667C252.001%2034.1269%20251.628%2034.5%20251.168%2034.5H250.335C249.874%2034.5%20249.501%2034.1269%20249.501%2033.6667V32Z'%20fill='black'/%3e%3cpath%20d='M277.668%2032.0361C278.868%2031.0007%20280.625%2031.0005%20281.824%2032.0361C281.885%2032.0918%20281.919%2032.1709%20281.921%2032.2539C281.923%2032.3369%20281.891%2032.4174%20281.833%2032.4756L279.954%2034.4102C279.899%2034.4669%20279.825%2034.4989%20279.746%2034.499C279.668%2034.499%20279.592%2034.467%20279.537%2034.4102L277.658%2032.4756C277.6%2032.4174%20277.569%2032.3369%20277.57%2032.2539C277.572%2032.1709%20277.608%2032.0918%20277.668%2032.0361ZM275.128%2029.7207C277.713%2027.2665%20281.716%2027.2665%20284.301%2029.7207C284.359%2029.7782%20284.392%2029.8569%20284.393%2029.9395C284.394%2030.0223%20284.362%2030.1024%20284.305%2030.1611L283.219%2031.2812C283.107%2031.3954%20282.926%2031.3974%20282.812%2031.2861C281.963%2030.5016%20280.858%2030.0673%20279.713%2030.0674C278.569%2030.068%20277.466%2030.5022%20276.617%2031.2861C276.503%2031.3974%20276.322%2031.3954%20276.21%2031.2812L275.124%2030.1611C275.067%2030.1025%20275.036%2030.0223%20275.036%2029.9395C275.037%2029.8569%20275.07%2029.7781%20275.128%2029.7207ZM272.591%2027.4082C276.555%2023.5301%20282.81%2023.5301%20286.775%2027.4082C286.832%2027.4658%20286.864%2027.5448%20286.864%2027.627C286.865%2027.7088%20286.834%2027.7875%20286.778%2027.8457L285.69%2028.9658C285.578%2029.0807%20285.396%2029.0826%20285.282%2028.9697C283.772%2027.5039%20281.767%2026.6866%20279.683%2026.6865C277.599%2026.6866%20275.594%2027.5039%20274.083%2028.9697C273.969%2029.0827%20273.788%2029.0808%20273.676%2028.9658L272.588%2027.8457C272.532%2027.7875%20272.501%2027.7088%20272.501%2027.627C272.502%2027.5448%20272.534%2027.4658%20272.591%2027.4082Z'%20fill='black'/%3e%3cpath%20opacity='0.35'%20d='M298.864%2025H309.864C311.245%2025%20312.364%2026.1193%20312.364%2027.5V30.5C312.364%2031.8807%20311.245%2033%20309.864%2033H298.864C297.484%2033%20296.364%2031.8807%20296.364%2030.5V27.5C296.364%2026.1193%20297.484%2025%20298.864%2025Z'%20stroke='black'/%3e%3cpath%20opacity='0.4'%20d='M313.864%2027.5V30.5C314.47%2030.2459%20314.864%2029.6549%20314.864%2029C314.864%2028.3451%20314.47%2027.7541%20313.864%2027.5Z'%20fill='black'/%3e%3cpath%20d='M297.864%2027.5C297.864%2026.9477%20298.312%2026.5%20298.864%2026.5H309.864C310.417%2026.5%20310.864%2026.9477%20310.864%2027.5V30.5C310.864%2031.0523%20310.417%2031.5%20309.864%2031.5H298.864C298.312%2031.5%20297.864%2031.0523%20297.864%2030.5V27.5Z'%20fill='black'/%3e%3crect%20width='320'%20height='66'%20transform='translate(12%20623)'%20fill='white'/%3e%3cpath%20d='M38.5%20642.625C37.4661%20642.625%2036.625%20643.466%2036.625%20644.5V645.625H32.875C32.461%20645.625%2032.125%20645.961%2032.125%20646.375C32.125%20646.789%2032.461%20647.125%2032.875%20647.125H33.666L34.2974%20658.5C34.3641%20659.691%2035.3501%20660.625%2036.5437%20660.625H43.4563C44.6495%20660.625%2045.6359%20659.691%2045.7026%20658.5L46.334%20647.125H47.125C47.539%20647.125%2047.875%20646.789%2047.875%20646.375C47.875%20645.961%2047.539%20645.625%2047.125%20645.625H43.375V644.5C43.375%20643.466%2042.5339%20642.625%2041.5%20642.625H38.5ZM38.5%20644.125H41.5C41.707%20644.125%2041.875%20644.293%2041.875%20644.5V645.625H38.125V644.5C38.125%20644.293%2038.293%20644.125%2038.5%20644.125ZM35.1675%20647.125H44.8325L44.2048%20658.416C44.1827%20658.814%2043.8542%20659.125%2043.4563%20659.125H36.5437C36.1462%20659.125%2035.8173%20658.814%2035.7952%20658.417L35.1675%20647.125ZM40%20648.719C39.6374%20648.719%2039.3438%20649.013%2039.3438%20649.375V656.875C39.3438%20657.237%2039.6374%20657.531%2040%20657.531C40.3626%20657.531%2040.6562%20657.237%2040.6562%20656.875V649.375C40.6562%20649.013%2040.3626%20648.719%2040%20648.719ZM37.241%20648.719C36.8791%20648.732%2036.5958%20649.035%2036.6082%20649.398L36.8696%20656.93C36.882%20657.284%2037.1734%20657.563%2037.5252%20657.563C37.533%20657.563%2037.5407%20657.563%2037.5486%20657.563C37.9105%20657.551%2038.1938%20657.247%2038.1814%20656.885L37.9199%20649.352C37.9072%20648.99%2037.6025%20648.711%2037.241%20648.719ZM42.7583%20648.719C42.3957%20648.709%2042.0928%20648.99%2042.0801%20649.352L41.8186%20656.885C41.8059%20657.247%2042.0892%20657.551%2042.4514%20657.563C42.4593%20657.564%2042.467%20657.563%2042.4749%20657.563C42.8266%20657.563%2043.118%20657.284%2043.1304%20656.93L43.3918%20649.398C43.4046%20649.035%2043.1206%20648.732%2042.7583%20648.719Z'%20fill='%23989898'/%3e%3cpath%20d='M122%20644.875C120.759%20644.875%20119.75%20645.884%20119.75%20647.125V656.875C119.75%20658.116%20120.759%20659.125%20122%20659.125H134C135.241%20659.125%20136.25%20658.116%20136.25%20656.875V648.625C136.25%20647.384%20135.241%20646.375%20134%20646.375H126.914C126.574%20646.375%20126.242%20646.258%20125.978%20646.046L125.335%20645.533C124.806%20645.109%20124.14%20644.875%20123.461%20644.875H122ZM122%20646.375H123.461C123.801%20646.375%20124.133%20646.492%20124.398%20646.704L125.04%20647.217C125.569%20647.641%20126.235%20647.875%20126.914%20647.875H134C134.414%20647.875%20134.75%20648.211%20134.75%20648.625V649H121.25V647.125C121.25%20646.711%20121.586%20646.375%20122%20646.375ZM121.25%20650.5H134.75V656.875C134.75%20657.289%20134.414%20657.625%20134%20657.625H122C121.586%20657.625%20121.25%20657.289%20121.25%20656.875V650.5Z'%20fill='%23989898'/%3e%3crect%20x='204'%20y='640'%20width='24'%20height='24'%20fill='url(%23pattern0_2_77)'/%3e%3crect%20x='292'%20y='640'%20width='24'%20height='24'%20fill='url(%23pattern1_2_77)'/%3e%3cg%20opacity='0.8'%3e%3crect%20x='127'%20y='690'%20width='90'%20height='4'%20rx='2'%20fill='%230F1218'%20style='mix-blend-mode:darken'/%3e%3c/g%3e%3crect%20x='131'%20y='20'%20width='83'%20height='22'%20rx='11'%20fill='%2324262D'/%3e%3cdefs%3e%3cpattern%20id='pattern0_2_77'%20patternContentUnits='objectBoundingBox'%20width='1'%20height='1'%3e%3cuse%20xlink:href='%23image0_2_77'%20transform='scale(0.0208333)'/%3e%3c/pattern%3e%3cpattern%20id='pattern1_2_77'%20patternContentUnits='objectBoundingBox'%20width='1'%20height='1'%3e%3cuse%20xlink:href='%23image1_2_77'%20transform='scale(0.0208333)'/%3e%3c/pattern%3e%3cimage%20id='image0_2_77'%20width='48'%20height='48'%20preserveAspectRatio='none'%20xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAADPElEQVR4nO1YSWgUQRTtKHEJKnpwAUURBMXlIi6HQBS9iCKeREHwIIJeBBFBBHGOLhBktKn3fichHiRgK+Yi0YuIiAdxF7xo9BBwQUVUMMFoMvLJb2gGx2SmM5O09IO+dFf9eu9Xdf3F8zJkyJAhw3iB7/uLSD4j2eGlDSKyjGQPyQLJV16aICKrAXw08ukSQLKJ5DclDuBiqgSIyDaSvUb+fBiGk1IjwDm3G0C/kT+t70SkPhUCSB4kOQBgkOTh6H0qBAA4bl7vB7An/i0SAOCNc25WqUfH1Zx4oVCoA3DWCPaR3F48JrYDwz4APgB4pDYBNOZyuQlVIx+G4USSgS38HcDGUmNJ3iL55V+PHb1iUS9FZKc6arTJ681y2ch/IrkmqU3dKQDz1RG2A92xnbkXBMGCUSEvIg0Abpjx9yKyyqsCCoVCnXo/EmKOakpktL29fSaAu9FP6fv+klFjXHrNKSQvmcN6RWRtRYZaWlrmAnhi5J/7vj/Pq+1l0WwiespeWw2QfGEG7uu159UYuVxuAslr5sDOSjzw3Ca/DYJghTcG8H1/mq5vPBrLmtzW1jab5EPbhc8A1nljABHZbxxulT05n8/PAHAnuvudc5tGuGh9qQhcbrAKw3Ci7gKA3865OWWLaG5ungrgehR9AewYwdl9PYII3AXgqIgsHI4DAOg859w+rxJYetBhBH4B2PuPsQ1GcvAv0bfvL4IGNEgCWF7KpqYsNrbVqxTq2cgTRu7QMAI+ldpR59xKPdsaIAH8tvE/SZ7QI1M8Ry8RG9PlJYHdTqdiR+FkuQKK4ZxbSvJKzGan2igaM8u+P/VGAySPRckYgHPx5KtcARFI7gLww4jejKfbVakxAByw86uG26Otr1SAQkTW621nNi9UvUiKl5QaNfP5/OQkAhQkt8Qqvc1Vr/IAbI2KepK3NYdKIkABIG82us0p1S1TNe0F8NUWeZxUQGtr63QA78zekZrU2cWNrSQCFBq0zNY3LW5q0iiItxaTCsgNxZ1HUQCrWadDm7sAHmiHLqktEdkQi9bju1VTCiSvprLfGiEIgsWxHCp9AhQkz6RaQH6oLrmredhYc8mQIUOG/xB/ACszo0e1cHoDAAAAAElFTkSuQmCC'/%3e%3cimage%20id='image1_2_77'%20width='48'%20height='48'%20preserveAspectRatio='none'%20xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAB9UlEQVR4nO2Zv2oVQRTGBxHsLG1FEdTCXoh/wVpUtFGMD+EDbGW0Ehb2zvd9V7FO6qSztfAJBPMIQhqTaCGinGQXxuXmund3NswN84NTXe7M9zuc2V12nctkTj5lWZ713l92y4j3/iaAHZJ/SL51y4SkawD26vAHNZlMrrploSiK0wDWm/AA9r3351zqALgD4IMJWJHcIPkLwOPei3rvLwJ4A2ALwMeYJelpK3wzNhuNhJ2F3uFJPgLwM5zFWAXgXVEUp2aEb35f7x086Pwo4Um+nxee5G8Aq4MEbGyCbny1OZR0L0LdbcJLuj1K+FpgKxDof4iOQGOGN+yQNQtb51xEJN0gudsOL+lFtE3GEujSeT/kyjOmgHUewPd5nZf00vZOTqBreB6eubQESN6aNfP4d2yuBxeNdAQArPyv84btkZxA1/BJCiwSPjmBo67z825SSkXAHhNIfln0JqVUBAA87HOHVSoCJD8FQb4BeNblf0pBQNKVOsBn7/3zsizPdN1PKQjY/FdVdanPfkpBYAjKAi2ywIIoC7TIAguiLHDMr1XaSHoSPD9tuqEAeB0suG0bRHqxNass/HbQsFeDBabT6QWSP1pPlqMXgP2qqs67GEh6cJwSOPwOcN/FxLpRj9Nm7NfrqMvWJrkWrfOZTCaTOfH8BUJmVJAShmWwAAAAAElFTkSuQmCC'/%3e%3c/defs%3e%3c/svg%3e";
2
+ export {
3
+ C as default
4
+ };
@@ -48,7 +48,7 @@ const o = `.control-shadow-wrapper:has(.button) {
48
48
  }
49
49
 
50
50
  .e2e-text-insert-controls .control-shadow-wrapper:not(:last-of-type) {
51
- margin-right: 16px;
51
+ margin-right: 6px;
52
52
  }
53
53
 
54
54
  .flat-white > .button {
@@ -6,10 +6,6 @@ ue-main-editor-container[panel-position=SETTINGS_BLOCKS] ue-wide-panel {
6
6
  right: calc(100% - calc(var(--ue-spacing-step, 5px) * 3) - 425px);
7
7
  }
8
8
 
9
- ue-main-tabs-panel-component .fixed-panel-header {
10
- display: none;
11
- }
12
-
13
9
  /* Remove with this writing task DT-28355 */
14
10
  ue-description a {
15
11
  display: none;
@@ -19,10 +19,46 @@ const n = `.esd-x,
19
19
  box-shadow: none;
20
20
  }
21
21
  .ins-product-cart ue-node-actions,
22
- .ins-recommendation-v3-block-v2 .product-attribute-cell ue-node-actions,
23
- .ins-recommendation-v3-block-v2 .product-attribute-cell ue-node-panel {
22
+ /* Horizontal layout - hide for info, image, and button cells */
23
+ .ins-recommendation-v3-block-v2 .product-info-cell ue-node-actions,
24
+ .ins-recommendation-v3-block-v2 .product-info-cell ue-node-panel,
25
+ .ins-recommendation-v3-block-v2 .product-image-cell ue-node-actions,
26
+ .ins-recommendation-v3-block-v2 .product-image-cell ue-node-panel,
27
+ .ins-recommendation-v3-block-v2 .button-cell ue-node-actions,
28
+ .ins-recommendation-v3-block-v2 .button-cell ue-node-panel,
29
+ /* Vertical layout - hide for product-card-segment inner cells */
30
+ .ins-recommendation-v3-block-v2 .product-card-segment ue-node-actions,
31
+ .ins-recommendation-v3-block-v2 .product-card-segment ue-node-panel,
32
+ /* Hide for specific product attribute cells in both layouts */
33
+ .ins-recommendation-v3-block-v2 .product-image ue-node-actions,
34
+ .ins-recommendation-v3-block-v2 .product-image ue-node-panel,
35
+ .ins-recommendation-v3-block-v2 .product-name ue-node-actions,
36
+ .ins-recommendation-v3-block-v2 .product-name ue-node-panel,
37
+ .ins-recommendation-v3-block-v2 .product-price ue-node-actions,
38
+ .ins-recommendation-v3-block-v2 .product-price ue-node-panel,
39
+ .ins-recommendation-v3-block-v2 .product-old-price ue-node-actions,
40
+ .ins-recommendation-v3-block-v2 .product-old-price ue-node-panel,
41
+ .ins-recommendation-v3-block-v2 .product-omnibus-price ue-node-actions,
42
+ .ins-recommendation-v3-block-v2 .product-omnibus-price ue-node-panel,
43
+ .ins-recommendation-v3-block-v2 .product-omnibus-discount ue-node-actions,
44
+ .ins-recommendation-v3-block-v2 .product-omnibus-discount ue-node-panel,
45
+ .ins-recommendation-v3-block-v2 .product-button ue-node-actions,
46
+ .ins-recommendation-v3-block-v2 .product-button ue-node-panel {
24
47
  display: none !important;
25
48
  }
49
+
50
+ /* Apply to the table cell (td) with text-trim-enabled class */
51
+ .text-trim-enabled {
52
+ max-width: 0 !important;
53
+ }
54
+
55
+ .text-trim-enabled p {
56
+ overflow: hidden !important;
57
+ text-overflow: ellipsis !important;
58
+ white-space: nowrap !important;
59
+ margin: 0 !important;
60
+ display: block !important;
61
+ }
26
62
  `;
27
63
  export {
28
64
  n as default
@@ -64,6 +64,13 @@ const s = o("guido-config", {
64
64
  var e;
65
65
  return ((e = i.config) == null ? void 0 : e.compiler) ?? null;
66
66
  },
67
+ /**
68
+ * Get the callbacks configuration
69
+ */
70
+ callbacks: (i) => {
71
+ var e;
72
+ return ((e = i.config) == null ? void 0 : e.callbacks) ?? null;
73
+ },
67
74
  /**
68
75
  * Get the template ID
69
76
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@useinsider/guido",
3
- "version": "2.0.0-beta.324bded",
3
+ "version": "2.0.0-beta.38c1882",
4
4
  "description": "Guido is a Vue + TypeScript wrapper for Email Plugin. Easily embed the email editor in your Vue applications.",
5
5
  "main": "./dist/guido.umd.cjs",
6
6
  "module": "./dist/library.js",
@@ -31,7 +31,7 @@
31
31
  "author": "",
32
32
  "license": "ISC",
33
33
  "dependencies": {
34
- "@stripoinc/ui-editor-extensions": "3.3.0",
34
+ "@stripoinc/ui-editor-extensions": "3.5.0",
35
35
  "@useinsider/design-system-vue": "0.14.20",
36
36
  "@vueuse/core": "11.3.0",
37
37
  "lodash-es": "4.17.21",
@@ -85,7 +85,7 @@
85
85
  },
86
86
  "guido": {
87
87
  "stripo": {
88
- "version": "2.47.0"
88
+ "version": "2.52.0"
89
89
  }
90
90
  }
91
91
  }
@@ -1,8 +0,0 @@
1
- const e = "https://academy.useinsider.com", o = {
2
- EMAIL_EDITOR: `${e}/docs/email-drag-drop-editor`,
3
- GLOBAL_UNSUBSCRIBE: `${e}/docs/global-unsubscribe-preference-center`,
4
- AMP_FOR_EMAILS: `${e}/docs/amp-for-emails`
5
- };
6
- export {
7
- o as ACADEMY_LINKS
8
- };
@@ -1,103 +0,0 @@
1
- var m = Object.defineProperty;
2
- var y = (n, o, i) => o in n ? m(n, o, { enumerable: !0, configurable: !0, writable: !0, value: i }) : n[o] = i;
3
- var a = (n, o, i) => y(n, typeof o != "symbol" ? o + "" : o, i);
4
- import { ModificationDescription as u } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
5
- import { CommonControl as b } from "../common-control.js";
6
- const h = "ui-elements-recommendation-card-composition", s = [
7
- { key: "productImage", label: "Product Image", visible: !0 },
8
- { key: "productName", label: "Product Name", visible: !0 },
9
- { key: "productPrice", label: "Product Price", visible: !0 },
10
- { key: "productOriginalPrice", label: "Product Original Price", visible: !0 },
11
- { key: "productButton", label: "Product Button", visible: !0 }
12
- ];
13
- class g extends b {
14
- constructor() {
15
- super(...arguments);
16
- a(this, "currentComposition", []);
17
- a(this, "currentVisibility", {});
18
- }
19
- getId() {
20
- return h;
21
- }
22
- getTemplate() {
23
- const i = s.map((e) => ({
24
- key: e.key,
25
- label: e.label,
26
- content: `
27
- <div style="display: flex; align-items: center; justify-content: space-between;
28
- padding: 8px; gap: 8px;">
29
- <span style="flex: 1;">${e.label}</span>
30
- ${this._GuToggle(`visibility_${e.key}`)}
31
- </div>
32
- `
33
- }));
34
- return `
35
- <div class="container">
36
- ${this._GuLabel({ text: "Card Element Order & Visibility" })}
37
- ${this._GuOrderable("cardComposition", i)}
38
- </div>
39
- `;
40
- }
41
- onRender() {
42
- this._initializeComposition(), this.api.onValueChanged("cardComposition", (i) => {
43
- this.currentComposition = i, this._applyCompositionToBlock(i);
44
- }), s.forEach((i) => {
45
- this.api.onValueChanged(`visibility_${i.key}`, (e) => {
46
- this.currentVisibility[i.key] = e, this._applyVisibilityToBlock();
47
- });
48
- });
49
- }
50
- onTemplateNodeUpdated(i) {
51
- super.onTemplateNodeUpdated(i), this._initializeComposition();
52
- }
53
- /**
54
- * Initialize the composition order and visibility from the block or use defaults
55
- */
56
- _initializeComposition() {
57
- var p;
58
- const i = (p = this.currentNode) == null ? void 0 : p.querySelector(".ins-recommendation-v3-block-v2");
59
- let e = null, l = null;
60
- if (i && "getAttribute" in i && (e = i.getAttribute("data-card-composition"), l = i.getAttribute("data-card-visibility")), e) {
61
- const t = e.split(",").filter(Boolean), r = s.map((c) => c.key);
62
- t.every((c) => r.includes(c)) && t.length > 0 ? this.currentComposition = t : this.currentComposition = r;
63
- } else
64
- this.currentComposition = s.map((t) => t.key);
65
- if (l)
66
- try {
67
- const t = JSON.parse(l);
68
- this.currentVisibility = t;
69
- } catch {
70
- this.currentVisibility = s.reduce((t, r) => (t[r.key] = r.visible, t), {});
71
- }
72
- else
73
- this.currentVisibility = s.reduce((t, r) => (t[r.key] = r.visible, t), {});
74
- const d = {
75
- cardComposition: this.currentComposition
76
- };
77
- s.forEach((t) => {
78
- d[`visibility_${t.key}`] = this.currentVisibility[t.key] ?? !0;
79
- }), this.api.updateValues(d);
80
- }
81
- /**
82
- * Apply the reordered composition to the block's HTML structure
83
- */
84
- _applyCompositionToBlock(i) {
85
- if (!this.currentNode)
86
- return;
87
- const e = this.currentNode.querySelector(".ins-recommendation-v3-block-v2");
88
- e && this.api.getDocumentModifier().modifyHtml(e).setAttribute("data-card-composition", i.join(",")).apply(new u("Stored card composition order"));
89
- }
90
- /**
91
- * Apply visibility changes to the block's HTML structure
92
- */
93
- _applyVisibilityToBlock() {
94
- if (!this.currentNode)
95
- return;
96
- const i = this.currentNode.querySelector(".ins-recommendation-v3-block-v2");
97
- i && this.api.getDocumentModifier().modifyHtml(i).setAttribute("data-card-visibility", JSON.stringify(this.currentVisibility)).apply(new u("Stored card visibility settings"));
98
- }
99
- }
100
- export {
101
- h as COMPOSITION_CONTROL_BLOCK_ID,
102
- g as RecommendationCardCompositionControl
103
- };
@@ -1,5 +0,0 @@
1
- var o = /* @__PURE__ */ ((c) => (c.BUTTON = "recommendation-block-button", c.NAME = "recommendation-block-name", c.PRICE = "recommendation-block-price", c.OLD_PRICE = "recommendation-block-old-price", c.IMAGE = "recommendation-block-image", c))(o || {}), r = /* @__PURE__ */ ((c) => (c.BUTTON_ALIGN = "recommendation-block-button-align-control", c.BUTTON_BORDER = "recommendation-block-button-border-control", c.BUTTON_BORDER_RADIUS = "recommendation-block-button-border-radius-control", c.BUTTON_COLOR = "recommendation-block-button-color-control", c.BUTTON_FIT_TO_CONTENT = "recommendation-block-button-fit-to-content-control", c.BUTTON_FONT_FAMILY = "recommendation-block-button-font-family-control", c.BUTTON_MARGINS = "recommendation-block-button-margins-control", c.BUTTON_PADDINGS = "recommendation-block-button-paddings-control", c.BUTTON_TEXT = "recommendation-block-button-text-control", c.BUTTON_TEXT_SIZE = "recommendation-block-button-text-size-control", c.BUTTON_TEXT_STYLE_AND_FONT_COLOR = "recommendation-block-button-text-style-and-font-color-control", c.NAME_ALIGN = "recommendation-block-name-align-control", c.NAME_BACKGROUND = "recommendation-block-name-background-control", c.NAME_COLOR = "recommendation-block-name-color-control", c.NAME_FONT_FAMILY = "recommendation-block-name-font-family-control", c.NAME_PADDINGS = "recommendation-block-name-paddings-control", c.NAME_SIZE = "recommendation-block-name-size-control", c.NAME_STYLE = "recommendation-block-name-style-control", c.PRICE_ALIGN = "recommendation-block-price-align-control", c.PRICE_BACKGROUND = "recommendation-block-price-background-control", c.PRICE_COLOR = "recommendation-block-price-color-control", c.PRICE_FONT_FAMILY = "recommendation-block-price-font-family-control", c.PRICE_PADDINGS = "recommendation-block-price-paddings-control", c.PRICE_SIZE = "recommendation-block-price-size-control", c.PRICE_STYLE = "recommendation-block-price-style-control", c.OLD_PRICE_ALIGN = "recommendation-block-old-price-align-control", c.OLD_PRICE_BACKGROUND = "recommendation-block-old-price-background-control", c.OLD_PRICE_COLOR = "recommendation-block-old-price-color-control", c.OLD_PRICE_FONT_FAMILY = "recommendation-block-old-price-font-family-control", c.OLD_PRICE_PADDINGS = "recommendation-block-old-price-paddings-control", c.OLD_PRICE_SIZE = "recommendation-block-old-price-size-control", c.OLD_PRICE_STYLE = "recommendation-block-old-price-style-control", c.IMAGE_SIZE = "recommendation-block-image-size-control", c.IMAGE_MARGINS = "recommendation-block-image-margins-control", c))(r || {});
2
- export {
3
- o as RecommendationBlockId,
4
- r as RecommendationControlId
5
- };
@@ -1,306 +0,0 @@
1
- var _ = Object.defineProperty;
2
- var R = (s, n, e) => n in s ? _(s, n, { enumerable: !0, configurable: !0, writable: !0, value: e }) : s[n] = e;
3
- var r = (s, n, e) => R(s, typeof n != "symbol" ? n + "" : n, e);
4
- import { currencyDecimalCounts as l, currencyOperators as c, currencyLocationMaps as h } from "../../../enums/extensions/recommendationBlock.js";
5
- import { UEAttr as m, ModificationDescription as S } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
6
- import { CommonControl as g } from "../common-control.js";
7
- import { useRecommendationExtensionStore as O } from "./store/recommendation.js";
8
- import { prepareProductRows as p } from "./templates/blockTemplate.js";
9
- import { DEFAULT_CARD_COMPOSITION as C, getDefaultProducts as E } from "./templates/templateUtils.js";
10
- import { useDebounceFn as U } from "../../../node_modules/@vueuse/shared/index.js";
11
- const L = "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
- RESPONSIVE: "unresponsive"
26
- };
27
- class b extends g {
28
- constructor() {
29
- super(...arguments);
30
- r(this, "store", O());
31
- r(this, "storeUnsubscription", () => {
32
- });
33
- r(this, "addFilterListener", () => {
34
- });
35
- r(this, "addFilterButton", null);
36
- r(this, "_debouncedRegenerateProductRows", U(() => {
37
- this._regenerateProductRows();
38
- }, 500));
39
- }
40
- getId() {
41
- return L;
42
- }
43
- getTemplate() {
44
- return `
45
- <div class="recommendation-controls-container">
46
- ${this._getAlgorithms()}
47
- ${this._getLanguages()}
48
- ${this._getCurrency()}
49
- ${this._getFilterStatus()}
50
- ${this._getProductLayout()}
51
- ${this._getShuffleProducts()}
52
- ${this._getResponsive()}
53
- </div>
54
- `;
55
- }
56
- async onRender() {
57
- await Promise.all([
58
- this.store.fetchRecommendationFilters(),
59
- this.store.fetchRecommendationCreateData(),
60
- this.store.fetchRecommendationProducts()
61
- // TODO: We need to change the location. It's just for testing
62
- ]), this._listenStateUpdates(), this._initializeSelectItems(), this._setFormValues(), this._listenToFormUpdates();
63
- }
64
- onDestroy() {
65
- var e;
66
- (e = this.addFilterButton) == null || e.removeEventListener("click", this.addFilterListener), this.storeUnsubscription();
67
- }
68
- _setFormValues() {
69
- const e = this.store.recommendationConfigs;
70
- this._setProductIdsVisibility(), this.api.updateValues({
71
- [t.ALGORITHM]: e.strategy,
72
- [t.PRODUCT_IDS]: e.productIds.join(","),
73
- [t.CURRENCY]: e.currencySettings.value,
74
- [t.LOCALE]: e.language,
75
- [t.CURRENCY_LOCATION]: e.currencySettings.alignment,
76
- [t.CURRENCY_SYMBOL]: e.currencySettings.symbol,
77
- [t.CURRENCY_THOUSAND_SEPARATOR]: e.currencySettings.thousandSeparator,
78
- [t.CURRENCY_DECIMAL_SEPARATOR]: e.currencySettings.decimalSeparator,
79
- [t.CURRENCY_DECIMAL_COUNT]: e.currencySettings.decimalCount,
80
- [t.PRODUCT_COUNT]: e.size,
81
- [t.PRODUCT_IN_ROW]: e.cardsInRow,
82
- [t.SHUFFLE_PRODUCTS]: e.shuffleProducts,
83
- [t.RESPONSIVE]: !e.unresponsive
84
- });
85
- }
86
- _initializeSelectItems() {
87
- const { store: e } = this, o = e.getActivePredictiveAlgorithms, i = e.getLanguages, a = {
88
- [t.ALGORITHM]: o,
89
- [t.LOCALE]: i,
90
- [t.CURRENCY]: e.currencyList,
91
- [t.CURRENCY_LOCATION]: h,
92
- [t.CURRENCY_SYMBOL]: e.getCurrencySymbolList,
93
- [t.CURRENCY_THOUSAND_SEPARATOR]: c,
94
- [t.CURRENCY_DECIMAL_SEPARATOR]: c,
95
- [t.CURRENCY_DECIMAL_COUNT]: l,
96
- [t.PRODUCT_COUNT]: Number(e.recommendationConfigs.size),
97
- [t.PRODUCT_IN_ROW]: e.recommendationConfigs.cardsInRow,
98
- [t.SHUFFLE_PRODUCTS]: e.recommendationConfigs.shuffleProducts,
99
- [t.RESPONSIVE]: !e.recommendationConfigs.unresponsive
100
- };
101
- Object.entries(a).forEach(([u, d]) => {
102
- this.api.setUIEAttribute(u, m.SELECTPICKER.items, d);
103
- });
104
- }
105
- _getAlgorithms() {
106
- return `
107
- ${this._GuTwoColumns([
108
- this._GuLabel({ text: "Recommendation Algorithm" }),
109
- this._GuSelect({
110
- name: t.ALGORITHM,
111
- placeholder: "Select Recommendation Algorithm",
112
- options: this.store.getActivePredictiveAlgorithms
113
- }),
114
- this._GuLabel({ text: "Product Ids", name: `${t.PRODUCT_IDS}_label` }),
115
- this._GuTextInput({
116
- name: t.PRODUCT_IDS,
117
- placeholder: "Enter Product Ids",
118
- className: "es-180w"
119
- })
120
- ])}
121
- `;
122
- }
123
- _getLanguages() {
124
- return `
125
- ${this._GuTwoColumns([
126
- this._GuLabel({ text: "Recommendation Locale" }),
127
- this._GuSelect({
128
- name: t.LOCALE,
129
- placeholder: "Select Recommendation Locale",
130
- options: this.store.getLanguages
131
- })
132
- ])}
133
- `;
134
- }
135
- _getCurrency() {
136
- return `
137
- ${this._GuTwoColumns([
138
- this._GuLabel({ text: "Currency" }),
139
- this._GuSelect({
140
- name: t.CURRENCY,
141
- placeholder: "Select Currency",
142
- options: this.store.currencyList
143
- }),
144
- this._GuLabel({ text: "Currency Location" }),
145
- this._GuSelect({
146
- name: t.CURRENCY_LOCATION,
147
- placeholder: "Select Currency Location",
148
- options: h
149
- }),
150
- this._GuLabel({ text: "Currency Symbol" }),
151
- this._GuSelect({
152
- name: t.CURRENCY_SYMBOL,
153
- placeholder: "Select Currency Symbol",
154
- options: this.store.getCurrencySymbolList
155
- }),
156
- this._GuLabel({ text: "Thousand Separator" }),
157
- this._GuSelect({
158
- name: t.CURRENCY_THOUSAND_SEPARATOR,
159
- placeholder: "Select Thousand Separator",
160
- options: c
161
- }),
162
- this._GuLabel({ text: "Decimal Separator" }),
163
- this._GuSelect({
164
- name: t.CURRENCY_DECIMAL_SEPARATOR,
165
- placeholder: "Select Decimal Separator",
166
- options: c
167
- }),
168
- this._GuLabel({ text: "Decimal Count" }),
169
- this._GuSelect({
170
- name: t.CURRENCY_DECIMAL_COUNT,
171
- placeholder: "Select Decimal Count",
172
- options: l
173
- })
174
- ])}
175
- `;
176
- }
177
- _getProductLayout() {
178
- return `
179
- ${this._GuTwoColumns([
180
- this._GuLabel({ text: "Number of Products" }),
181
- this._GuCounter({ name: t.PRODUCT_COUNT, maxValue: 9 }),
182
- this._GuLabel({ text: "Products in One Row" }),
183
- this._GuCounter({ name: t.PRODUCT_IN_ROW, maxValue: 4 })
184
- ])}
185
- `;
186
- }
187
- _getFilterStatus() {
188
- return `
189
- ${this._GuTwoColumns([
190
- this._GuLabel({ text: "Filters" }),
191
- this._GuButton({
192
- name: t.FILTERS,
193
- label: "Add Filter",
194
- id: "guido__btn-add-filter"
195
- })
196
- ])}
197
- `;
198
- }
199
- _getShuffleProducts() {
200
- return `
201
- ${this._GuTwoColumns([
202
- this._GuLabel({ text: "Shuffle Recommended Products" }),
203
- this._GuToggle(t.SHUFFLE_PRODUCTS)
204
- ])}
205
- `;
206
- }
207
- _getResponsive() {
208
- return `
209
- ${this._GuTwoColumns([
210
- this._GuLabel({ text: "Responsive Block" }),
211
- this._GuToggle(t.RESPONSIVE)
212
- ])}
213
- `;
214
- }
215
- _onFilterChange(e) {
216
- this.currentNode && this.store.$patch({
217
- filterStatus: e,
218
- filterSelectionDrawerStatus: e
219
- });
220
- }
221
- _onFilterSelectClick() {
222
- this.store.$patch({
223
- filterSelectionDrawerStatus: !0
224
- });
225
- }
226
- _onDataChange(e, o) {
227
- this.currentNode && (this.store.$patch({
228
- recommendationConfigs: {
229
- [e]: o
230
- }
231
- }), this._debouncedRegenerateProductRows());
232
- }
233
- /**
234
- * Get the current card composition from block data attribute or use default
235
- */
236
- _getCardComposition() {
237
- if (!this.currentNode)
238
- return C;
239
- const e = this.currentNode.querySelector(".ins-recommendation-v3-block-v2");
240
- if (!e || !("getAttribute" in e))
241
- return C;
242
- const o = e.getAttribute("data-card-composition");
243
- return o ? o.split(",").filter(Boolean) : C;
244
- }
245
- _regenerateProductRows() {
246
- if (!this.currentNode || !("querySelector" in this.currentNode))
247
- return;
248
- const e = this.currentNode.querySelector(".ins-recommendation-product-container");
249
- if (!e) {
250
- console.error("Could not find container table for product rows");
251
- return;
252
- }
253
- const o = this.store.recommendationProducts.length > 0 ? this.store.recommendationProducts : E(), { cardsInRow: i } = this.store.recommendationConfigs, a = this._getCardComposition(), u = p(o, i, a);
254
- this.api.getDocumentModifier().modifyHtml(e).setInnerHtml(u).apply(new S("Updated product"));
255
- }
256
- _onCurrencyConfigChange(e, o) {
257
- this.currentNode && this.store.$patch({
258
- recommendationConfigs: {
259
- currencySettings: {
260
- [e]: o
261
- }
262
- }
263
- });
264
- }
265
- _onCurrencyChange(e) {
266
- const [, o] = e.split(".");
267
- this.store.$patch({
268
- recommendationConfigs: {
269
- currencySettings: {
270
- name: o,
271
- value: o
272
- }
273
- }
274
- });
275
- }
276
- _setProductIdsVisibility() {
277
- const { recommendationConfigs: e } = this.store, o = e.strategy === "manualMerchandising";
278
- this.api.setVisibility(t.PRODUCT_IDS, o), this.api.setVisibility(`${t.PRODUCT_IDS}_label`, o);
279
- }
280
- _listenToFormUpdates() {
281
- var o;
282
- this.api.onValueChanged(t.ALGORITHM, (i) => {
283
- this._onDataChange(t.ALGORITHM, i), this._setProductIdsVisibility();
284
- }), this.api.onValueChanged(t.PRODUCT_IDS, (i) => this._onDataChange(t.PRODUCT_IDS, i.split(",") || [])), this.api.onValueChanged(t.LOCALE, (i) => this._onDataChange(t.LOCALE, i)), this.api.onValueChanged(t.CURRENCY, (i) => this._onCurrencyChange(i)), [
285
- t.CURRENCY_LOCATION,
286
- t.CURRENCY_SYMBOL,
287
- t.CURRENCY_THOUSAND_SEPARATOR,
288
- t.CURRENCY_DECIMAL_SEPARATOR,
289
- t.CURRENCY_DECIMAL_COUNT
290
- ].forEach((i) => {
291
- this.api.onValueChanged(i, (a) => this._onCurrencyConfigChange(i, a));
292
- }), this.api.onValueChanged(t.PRODUCT_COUNT, (i) => this._onDataChange(t.PRODUCT_COUNT, i.toString())), this.api.onValueChanged(t.PRODUCT_IN_ROW, (i) => this._onDataChange(t.PRODUCT_IN_ROW, i)), this.api.onValueChanged(t.SHUFFLE_PRODUCTS, (i) => this._onDataChange(t.SHUFFLE_PRODUCTS, i)), this.api.onValueChanged(t.RESPONSIVE, (i) => this._onDataChange(t.RESPONSIVE, i)), this.addFilterListener = this._onFilterSelectClick.bind(this), this.addFilterButton = this.getContainer().querySelector("#guido__btn-add-filter"), (o = this.addFilterButton) == null || o.addEventListener("click", this.addFilterListener);
293
- }
294
- _listenStateUpdates() {
295
- this.storeUnsubscription = this.store.$subscribe((e) => {
296
- if ("payload" in e) {
297
- const o = e.payload.recommendationConfigs;
298
- o && (this.api.updateValues(o), this.store.fetchRecommendationProducts());
299
- }
300
- });
301
- }
302
- }
303
- export {
304
- L as CONTROL_BLOCK_ID,
305
- b as RecommendationBlockControl
306
- };
@@ -1,13 +0,0 @@
1
- import { ButtonAlignBuiltInControl as t } from "../../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
- import { RecommendationControlId as e, RecommendationBlockId as n } from "../../constants.js";
3
- class c extends t {
4
- getId() {
5
- return e.BUTTON_ALIGN;
6
- }
7
- getTargetNodes(o) {
8
- return o.closest(".ins-recommendation-product-container").querySelectorAll(`[esd-extension-block-id="${n.BUTTON}"]`);
9
- }
10
- }
11
- export {
12
- c as ButtonAlignControl
13
- };
@@ -1,13 +0,0 @@
1
- import { ButtonBorderBuiltInControl as t } from "../../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
- import { RecommendationControlId as e, RecommendationBlockId as n } from "../../constants.js";
3
- class s extends t {
4
- getId() {
5
- return e.BUTTON_BORDER;
6
- }
7
- getTargetNodes(o) {
8
- return o.closest(".ins-recommendation-product-container").querySelectorAll(`[esd-extension-block-id="${n.BUTTON}"]`);
9
- }
10
- }
11
- export {
12
- s as ButtonBorderControl
13
- };
@@ -1,13 +0,0 @@
1
- import { ButtonBorderRadiusBuiltInControl as t } from "../../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
- import { RecommendationControlId as e, RecommendationBlockId as n } from "../../constants.js";
3
- class i extends t {
4
- getId() {
5
- return e.BUTTON_BORDER_RADIUS;
6
- }
7
- getTargetNodes(o) {
8
- return o.closest(".ins-recommendation-product-container").querySelectorAll(`[esd-extension-block-id="${n.BUTTON}"]`);
9
- }
10
- }
11
- export {
12
- i as ButtonBorderRadiusControl
13
- };
@@ -1,13 +0,0 @@
1
- import { ButtonColorBuiltInControl as t } from "../../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
- import { RecommendationControlId as e, RecommendationBlockId as n } from "../../constants.js";
3
- class c extends t {
4
- getId() {
5
- return e.BUTTON_COLOR;
6
- }
7
- getTargetNodes(o) {
8
- return o.closest(".ins-recommendation-product-container").querySelectorAll(`[esd-extension-block-id="${n.BUTTON}"]`);
9
- }
10
- }
11
- export {
12
- c as ButtonColorControl
13
- };
@@ -1,13 +0,0 @@
1
- import { ButtonFitToContainerBuiltInControl as o } from "../../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
- import { RecommendationControlId as e, RecommendationBlockId as n } from "../../constants.js";
3
- class s extends o {
4
- getId() {
5
- return e.BUTTON_FIT_TO_CONTENT;
6
- }
7
- getTargetNodes(t) {
8
- return t.closest(".ins-recommendation-product-container").querySelectorAll(`[esd-extension-block-id="${n.BUTTON}"]`);
9
- }
10
- }
11
- export {
12
- s as ButtonFitToContentControl
13
- };
@@ -1,13 +0,0 @@
1
- import { ButtonFontFamilyBuiltInControl as o } from "../../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
- import { RecommendationControlId as e, RecommendationBlockId as n } from "../../constants.js";
3
- class s extends o {
4
- getId() {
5
- return e.BUTTON_FONT_FAMILY;
6
- }
7
- getTargetNodes(t) {
8
- return t.closest(".ins-recommendation-product-container").querySelectorAll(`[esd-extension-block-id="${n.BUTTON}"]`);
9
- }
10
- }
11
- export {
12
- s as ButtonFontFamilyControl
13
- };