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

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 (280) hide show
  1. package/README.md +3 -147
  2. package/dist/components/Guido.vue.js +9 -11
  3. package/dist/components/Guido.vue2.js +70 -76
  4. package/dist/components/organisms/LoadingWrapper.vue.js +1 -1
  5. package/dist/components/organisms/header/LeftSlot.vue.js +1 -1
  6. package/dist/components/organisms/header/LeftSlot.vue2.js +15 -16
  7. package/dist/components/organisms/header/RightSlot.vue.js +11 -11
  8. package/dist/components/organisms/header/RightSlot.vue2.js +20 -21
  9. package/dist/components/organisms/onboarding/NewVersionPopup.vue.js +9 -9
  10. package/dist/components/organisms/onboarding/NewVersionPopup.vue2.js +17 -30
  11. package/dist/components/organisms/onboarding/OnboardingWrapper.vue.js +10 -12
  12. package/dist/components/organisms/onboarding/OnboardingWrapper.vue2.js +20 -23
  13. package/dist/composables/useActionsApi.js +1 -1
  14. package/dist/composables/useGuidoActions.js +9 -19
  15. package/dist/composables/useHtmlCompiler.js +13 -15
  16. package/dist/composables/useHtmlValidator.js +35 -36
  17. package/dist/composables/useStripo.js +60 -55
  18. package/dist/config/compiler/unsubscribeCompilerRules.js +28 -33
  19. package/dist/config/migrator/recommendationMigrator.js +98 -188
  20. package/dist/enums/defaults.js +8 -16
  21. package/dist/enums/extensions/recommendationBlock.js +2 -2
  22. package/dist/enums/onboarding.js +2 -7
  23. package/dist/enums/unsubscribe.js +25 -27
  24. package/dist/extensions/Blocks/Checkbox/block.js +2 -5
  25. package/dist/extensions/Blocks/Checkbox/control.js +14 -15
  26. package/dist/extensions/Blocks/Checkbox/extension.js +2 -2
  27. package/dist/extensions/Blocks/Checkbox/template.js +9 -14
  28. package/dist/extensions/Blocks/CouponBlock/extension.js +2 -2
  29. package/dist/extensions/Blocks/RadioButton/block.js +2 -5
  30. package/dist/extensions/Blocks/RadioButton/control.js +17 -18
  31. package/dist/extensions/Blocks/RadioButton/template.js +9 -18
  32. package/dist/extensions/Blocks/Recommendation/block.js +1 -1
  33. package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +298 -66
  34. package/dist/extensions/Blocks/Recommendation/control.js +4 -5
  35. package/dist/extensions/Blocks/Recommendation/controls/button/align.js +6 -7
  36. package/dist/extensions/Blocks/Recommendation/controls/button/border.js +6 -7
  37. package/dist/extensions/Blocks/Recommendation/controls/button/borderRadius.js +6 -7
  38. package/dist/extensions/Blocks/Recommendation/controls/button/color.js +4 -5
  39. package/dist/extensions/Blocks/Recommendation/controls/button/fitToContent.js +4 -5
  40. package/dist/extensions/Blocks/Recommendation/controls/button/fontFamily.js +4 -5
  41. package/dist/extensions/Blocks/Recommendation/controls/button/margins.js +4 -5
  42. package/dist/extensions/Blocks/Recommendation/controls/button/paddings.js +4 -5
  43. package/dist/extensions/Blocks/Recommendation/controls/button/text.js +4 -5
  44. package/dist/extensions/Blocks/Recommendation/controls/button/textSize.js +4 -5
  45. package/dist/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.js +4 -5
  46. package/dist/extensions/Blocks/Recommendation/controls/name/align.js +4 -5
  47. package/dist/extensions/Blocks/Recommendation/controls/name/background.js +6 -7
  48. package/dist/extensions/Blocks/Recommendation/controls/name/color.js +4 -5
  49. package/dist/extensions/Blocks/Recommendation/controls/name/fontFamily.js +4 -5
  50. package/dist/extensions/Blocks/Recommendation/controls/name/paddings.js +4 -5
  51. package/dist/extensions/Blocks/Recommendation/controls/name/size.js +6 -7
  52. package/dist/extensions/Blocks/Recommendation/controls/name/style.js +6 -7
  53. package/dist/extensions/Blocks/Recommendation/extension.js +21 -37
  54. package/dist/extensions/Blocks/Recommendation/iconsRegistry.js +43 -43
  55. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +45 -90
  56. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +1 -1
  57. package/dist/extensions/Blocks/Recommendation/template.js +314 -0
  58. package/dist/extensions/Blocks/Unsubscribe/block.js +27 -27
  59. package/dist/extensions/Blocks/common-control.js +110 -174
  60. package/dist/extensions/DynamicContent/dynamic-content-modal.js +19 -25
  61. package/dist/extensions/DynamicContent/dynamic-content.js +33 -128
  62. package/dist/guido.css +1 -1
  63. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +191 -258
  64. package/dist/node_modules/lodash-es/_arrayLikeKeys.js +12 -13
  65. package/dist/node_modules/lodash-es/keysIn.js +3 -3
  66. package/dist/package.json.js +1 -1
  67. package/dist/services/recommendationApi.js +19 -13
  68. package/dist/services/stripoApi.js +1 -1
  69. package/dist/src/@types/generic.d.ts +6 -42
  70. package/dist/src/components/Guido.vue.d.ts +2 -4
  71. package/dist/src/components/organisms/onboarding/NewVersionPopup.vue.d.ts +1 -3
  72. package/dist/src/components/organisms/onboarding/OnboardingWrapper.vue.d.ts +1 -3
  73. package/dist/src/components/wrappers/WpModal.vue.d.ts +1 -1
  74. package/dist/src/composables/useGuidoActions.d.ts +0 -9
  75. package/dist/src/enums/onboarding.d.ts +0 -5
  76. package/dist/src/extensions/Blocks/Checkbox/block.d.ts +0 -1
  77. package/dist/src/extensions/Blocks/Checkbox/template.d.ts +1 -1
  78. package/dist/src/extensions/Blocks/RadioButton/block.d.ts +0 -1
  79. package/dist/src/extensions/Blocks/RadioButton/template.d.ts +1 -1
  80. package/dist/src/extensions/Blocks/Recommendation/cardCompositionControl.d.ts +42 -5
  81. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +1 -1
  82. package/dist/src/extensions/Blocks/Recommendation/{templates/migrationTemplate.d.ts → template.d.ts} +34 -7
  83. package/dist/src/extensions/Blocks/common-control.d.ts +7 -44
  84. package/dist/src/extensions/DynamicContent/dynamic-content-modal.d.ts +2 -9
  85. package/dist/src/extensions/DynamicContent/dynamic-content.d.ts +2 -52
  86. package/dist/src/stores/config.d.ts +2 -10
  87. package/dist/src/stores/dynamic-content.d.ts +3 -3
  88. package/dist/src/stores/editor.d.ts +1 -1
  89. package/dist/src/stores/onboarding.d.ts +1 -335
  90. package/dist/src/stores/preview.d.ts +1 -1
  91. package/dist/src/stores/recommendation.d.ts +1 -1
  92. package/dist/src/stores/save-as-template.d.ts +1 -1
  93. package/dist/src/stores/toaster.d.ts +1 -1
  94. package/dist/src/stores/unsubscribe.d.ts +1 -1
  95. package/dist/src/stores/version-history.d.ts +1 -1
  96. package/dist/src/utils/dateUtil.d.ts +0 -21
  97. package/dist/src/utils/genericUtil.d.ts +0 -1
  98. package/dist/static/styles/components/narrow-panel.css.js +0 -10
  99. package/dist/static/styles/customEditorStyle.css.js +0 -5
  100. package/dist/stores/config.js +5 -5
  101. package/dist/stores/dynamic-content.js +2 -2
  102. package/dist/stores/editor.js +1 -1
  103. package/dist/stores/onboarding.js +36 -44
  104. package/dist/stores/preview.js +1 -1
  105. package/dist/stores/recommendation.js +3 -3
  106. package/dist/stores/save-as-template.js +2 -2
  107. package/dist/stores/toaster.js +1 -1
  108. package/dist/stores/unsubscribe.js +1 -1
  109. package/dist/stores/version-history.js +4 -4
  110. package/dist/utils/dateUtil.js +3 -24
  111. package/dist/utils/genericUtil.js +8 -18
  112. package/package.json +4 -4
  113. package/dist/components/organisms/onboarding/ItemsOnboarding.vue.js +0 -21
  114. package/dist/components/organisms/onboarding/ItemsOnboarding.vue2.js +0 -99
  115. package/dist/composables/useBlocksConfig.js +0 -48
  116. package/dist/config/compiler/itemsCompilerRules.js +0 -14
  117. package/dist/enums/date.js +0 -6
  118. package/dist/extensions/Blocks/Items/block.js +0 -67
  119. package/dist/extensions/Blocks/Items/controls/button/link.js +0 -68
  120. package/dist/extensions/Blocks/Items/controls/cardComposition.js +0 -193
  121. package/dist/extensions/Blocks/Items/controls/image/link.js +0 -68
  122. package/dist/extensions/Blocks/Items/controls/index.js +0 -217
  123. package/dist/extensions/Blocks/Items/controls/name/trimming.js +0 -70
  124. package/dist/extensions/Blocks/Items/controls/price/currencyLocation.js +0 -107
  125. package/dist/extensions/Blocks/Items/controls/price/currencySymbol.js +0 -123
  126. package/dist/extensions/Blocks/Items/controls/price/formattedPrice.js +0 -76
  127. package/dist/extensions/Blocks/Items/controls/price/hideDiscount.js +0 -61
  128. package/dist/extensions/Blocks/Items/controls/settingsControl.js +0 -312
  129. package/dist/extensions/Blocks/Items/enums/controlEnums.js +0 -5
  130. package/dist/extensions/Blocks/Items/enums/productEnums.js +0 -273
  131. package/dist/extensions/Blocks/Items/enums/settingsEnums.js +0 -76
  132. package/dist/extensions/Blocks/Items/extension.js +0 -19
  133. package/dist/extensions/Blocks/Items/iconsRegistry.js +0 -32
  134. package/dist/extensions/Blocks/Items/items.css.js +0 -23
  135. package/dist/extensions/Blocks/Items/layouts/horizontal.html.js +0 -62
  136. package/dist/extensions/Blocks/Items/layouts/vertical.html.js +0 -60
  137. package/dist/extensions/Blocks/Items/settingsPanel.js +0 -131
  138. package/dist/extensions/Blocks/Items/store/items-block.js +0 -71
  139. package/dist/extensions/Blocks/Items/template.js +0 -189
  140. package/dist/extensions/Blocks/Items/utils/configBlockUtils.js +0 -17
  141. package/dist/extensions/Blocks/Items/utils/syncAttributeFromConfigBlock.js +0 -28
  142. package/dist/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.js +0 -67
  143. package/dist/extensions/Blocks/Items/utils/updateAttributes.js +0 -44
  144. package/dist/extensions/Blocks/Recommendation/constants.js +0 -5
  145. package/dist/extensions/Blocks/Recommendation/controls/image/margins.js +0 -13
  146. package/dist/extensions/Blocks/Recommendation/controls/image/size.js +0 -13
  147. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/align.js +0 -13
  148. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/background.js +0 -13
  149. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/color.js +0 -13
  150. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.js +0 -13
  151. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/paddings.js +0 -13
  152. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/size.js +0 -13
  153. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/style.js +0 -13
  154. package/dist/extensions/Blocks/Recommendation/controls/price/align.js +0 -13
  155. package/dist/extensions/Blocks/Recommendation/controls/price/background.js +0 -13
  156. package/dist/extensions/Blocks/Recommendation/controls/price/color.js +0 -13
  157. package/dist/extensions/Blocks/Recommendation/controls/price/fontFamily.js +0 -13
  158. package/dist/extensions/Blocks/Recommendation/controls/price/paddings.js +0 -13
  159. package/dist/extensions/Blocks/Recommendation/controls/price/size.js +0 -13
  160. package/dist/extensions/Blocks/Recommendation/controls/price/style.js +0 -13
  161. package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +0 -160
  162. package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +0 -152
  163. package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +0 -180
  164. package/dist/extensions/Blocks/controlFactories.js +0 -223
  165. package/dist/node_modules/lodash-es/_DataView.js +0 -6
  166. package/dist/node_modules/lodash-es/_Promise.js +0 -6
  167. package/dist/node_modules/lodash-es/_Set.js +0 -6
  168. package/dist/node_modules/lodash-es/_SetCache.js +0 -13
  169. package/dist/node_modules/lodash-es/_WeakMap.js +0 -6
  170. package/dist/node_modules/lodash-es/_arrayFilter.js +0 -10
  171. package/dist/node_modules/lodash-es/_arrayMap.js +0 -8
  172. package/dist/node_modules/lodash-es/_arrayPush.js +0 -8
  173. package/dist/node_modules/lodash-es/_arraySome.js +0 -9
  174. package/dist/node_modules/lodash-es/_baseEach.js +0 -6
  175. package/dist/node_modules/lodash-es/_baseFlatten.js +0 -13
  176. package/dist/node_modules/lodash-es/_baseForOwn.js +0 -8
  177. package/dist/node_modules/lodash-es/_baseGet.js +0 -11
  178. package/dist/node_modules/lodash-es/_baseGetAllKeys.js +0 -9
  179. package/dist/node_modules/lodash-es/_baseHasIn.js +0 -6
  180. package/dist/node_modules/lodash-es/_baseIsEqual.js +0 -8
  181. package/dist/node_modules/lodash-es/_baseIsEqualDeep.js +0 -32
  182. package/dist/node_modules/lodash-es/_baseIsMatch.js +0 -29
  183. package/dist/node_modules/lodash-es/_baseIteratee.js +0 -11
  184. package/dist/node_modules/lodash-es/_baseKeys.js +0 -14
  185. package/dist/node_modules/lodash-es/_baseMap.js +0 -11
  186. package/dist/node_modules/lodash-es/_baseMatches.js +0 -12
  187. package/dist/node_modules/lodash-es/_baseMatchesProperty.js +0 -17
  188. package/dist/node_modules/lodash-es/_baseProperty.js +0 -8
  189. package/dist/node_modules/lodash-es/_basePropertyDeep.js +0 -9
  190. package/dist/node_modules/lodash-es/_baseRange.js +0 -9
  191. package/dist/node_modules/lodash-es/_baseToString.js +0 -18
  192. package/dist/node_modules/lodash-es/_baseTrim.js +0 -8
  193. package/dist/node_modules/lodash-es/_cacheHas.js +0 -6
  194. package/dist/node_modules/lodash-es/_castPath.js +0 -10
  195. package/dist/node_modules/lodash-es/_createBaseEach.js +0 -15
  196. package/dist/node_modules/lodash-es/_createRange.js +0 -11
  197. package/dist/node_modules/lodash-es/_equalArrays.js +0 -40
  198. package/dist/node_modules/lodash-es/_equalByTag.js +0 -45
  199. package/dist/node_modules/lodash-es/_equalObjects.js +0 -36
  200. package/dist/node_modules/lodash-es/_getAllKeys.js +0 -9
  201. package/dist/node_modules/lodash-es/_getMatchData.js +0 -12
  202. package/dist/node_modules/lodash-es/_getSymbols.js +0 -10
  203. package/dist/node_modules/lodash-es/_getTag.js +0 -28
  204. package/dist/node_modules/lodash-es/_hasPath.js +0 -19
  205. package/dist/node_modules/lodash-es/_isFlattenable.js +0 -10
  206. package/dist/node_modules/lodash-es/_isKey.js +0 -12
  207. package/dist/node_modules/lodash-es/_isStrictComparable.js +0 -7
  208. package/dist/node_modules/lodash-es/_mapToArray.js +0 -9
  209. package/dist/node_modules/lodash-es/_matchesStrictComparable.js +0 -8
  210. package/dist/node_modules/lodash-es/_memoizeCapped.js +0 -11
  211. package/dist/node_modules/lodash-es/_nativeKeys.js +0 -5
  212. package/dist/node_modules/lodash-es/_setCacheAdd.js +0 -7
  213. package/dist/node_modules/lodash-es/_setCacheHas.js +0 -6
  214. package/dist/node_modules/lodash-es/_setToArray.js +0 -9
  215. package/dist/node_modules/lodash-es/_stringToPath.js +0 -10
  216. package/dist/node_modules/lodash-es/_toKey.js +0 -10
  217. package/dist/node_modules/lodash-es/_trimmedEndIndex.js +0 -9
  218. package/dist/node_modules/lodash-es/flatMap.js +0 -8
  219. package/dist/node_modules/lodash-es/get.js +0 -8
  220. package/dist/node_modules/lodash-es/hasIn.js +0 -8
  221. package/dist/node_modules/lodash-es/isSymbol.js +0 -9
  222. package/dist/node_modules/lodash-es/keys.js +0 -9
  223. package/dist/node_modules/lodash-es/map.js +0 -11
  224. package/dist/node_modules/lodash-es/property.js +0 -10
  225. package/dist/node_modules/lodash-es/range.js +0 -5
  226. package/dist/node_modules/lodash-es/stubArray.js +0 -6
  227. package/dist/node_modules/lodash-es/toFinite.js +0 -14
  228. package/dist/node_modules/lodash-es/toNumber.js +0 -22
  229. package/dist/node_modules/lodash-es/toString.js +0 -7
  230. package/dist/src/components/organisms/onboarding/ItemsOnboarding.vue.d.ts +0 -2
  231. package/dist/src/composables/useBlocksConfig.d.ts +0 -11
  232. package/dist/src/config/compiler/itemsCompilerRules.d.ts +0 -2
  233. package/dist/src/enums/date.d.ts +0 -4
  234. package/dist/src/extensions/Blocks/Items/block.d.ts +0 -27
  235. package/dist/src/extensions/Blocks/Items/controls/button/link.d.ts +0 -14
  236. package/dist/src/extensions/Blocks/Items/controls/cardComposition.d.ts +0 -33
  237. package/dist/src/extensions/Blocks/Items/controls/image/link.d.ts +0 -14
  238. package/dist/src/extensions/Blocks/Items/controls/index.d.ts +0 -501
  239. package/dist/src/extensions/Blocks/Items/controls/name/trimming.d.ts +0 -14
  240. package/dist/src/extensions/Blocks/Items/controls/price/currencyLocation.d.ts +0 -19
  241. package/dist/src/extensions/Blocks/Items/controls/price/currencySymbol.d.ts +0 -21
  242. package/dist/src/extensions/Blocks/Items/controls/price/formattedPrice.d.ts +0 -14
  243. package/dist/src/extensions/Blocks/Items/controls/price/hideDiscount.d.ts +0 -13
  244. package/dist/src/extensions/Blocks/Items/controls/settingsControl.d.ts +0 -48
  245. package/dist/src/extensions/Blocks/Items/enums/controlEnums.d.ts +0 -61
  246. package/dist/src/extensions/Blocks/Items/enums/productEnums.d.ts +0 -162
  247. package/dist/src/extensions/Blocks/Items/enums/settingsEnums.d.ts +0 -49
  248. package/dist/src/extensions/Blocks/Items/extension.d.ts +0 -2
  249. package/dist/src/extensions/Blocks/Items/iconsRegistry.d.ts +0 -4
  250. package/dist/src/extensions/Blocks/Items/settingsPanel.d.ts +0 -4
  251. package/dist/src/extensions/Blocks/Items/store/items-block.d.ts +0 -41
  252. package/dist/src/extensions/Blocks/Items/template.d.ts +0 -24
  253. package/dist/src/extensions/Blocks/Items/utils/configBlockUtils.d.ts +0 -23
  254. package/dist/src/extensions/Blocks/Items/utils/syncAttributeFromConfigBlock.d.ts +0 -32
  255. package/dist/src/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.d.ts +0 -44
  256. package/dist/src/extensions/Blocks/Items/utils/updateAttributes.d.ts +0 -8
  257. package/dist/src/extensions/Blocks/Recommendation/constants.d.ts +0 -51
  258. package/dist/src/extensions/Blocks/Recommendation/controls/image/margins.d.ts +0 -5
  259. package/dist/src/extensions/Blocks/Recommendation/controls/image/size.d.ts +0 -5
  260. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/align.d.ts +0 -5
  261. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/background.d.ts +0 -5
  262. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/color.d.ts +0 -5
  263. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.d.ts +0 -5
  264. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/paddings.d.ts +0 -5
  265. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/size.d.ts +0 -5
  266. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/style.d.ts +0 -5
  267. package/dist/src/extensions/Blocks/Recommendation/controls/price/align.d.ts +0 -5
  268. package/dist/src/extensions/Blocks/Recommendation/controls/price/background.d.ts +0 -5
  269. package/dist/src/extensions/Blocks/Recommendation/controls/price/color.d.ts +0 -5
  270. package/dist/src/extensions/Blocks/Recommendation/controls/price/fontFamily.d.ts +0 -5
  271. package/dist/src/extensions/Blocks/Recommendation/controls/price/paddings.d.ts +0 -5
  272. package/dist/src/extensions/Blocks/Recommendation/controls/price/size.d.ts +0 -5
  273. package/dist/src/extensions/Blocks/Recommendation/controls/price/style.d.ts +0 -5
  274. package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +0 -16
  275. package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +0 -44
  276. package/dist/src/extensions/Blocks/controlFactories.d.ts +0 -312
  277. package/dist/src/utils/environmentUtil.d.ts +0 -5
  278. package/dist/src/utils/pairProductVariables.d.ts +0 -7
  279. package/dist/utils/environmentUtil.js +0 -4
  280. package/dist/utils/pairProductVariables.js +0 -136
@@ -1,20 +1,19 @@
1
- import a from "./_baseTimes.js";
1
+ import p from "./_baseTimes.js";
2
2
  import g from "./isArguments.js";
3
3
  import h from "./isArray.js";
4
- import b from "./isBuffer.js";
5
- import A from "./_isIndex.js";
6
- import c from "./isTypedArray.js";
7
- var d = Object.prototype, O = d.hasOwnProperty;
8
- function l(t, p) {
9
- var o = h(t), i = !o && g(t), s = !o && !i && b(t), e = !o && !i && !s && c(t), n = o || i || s || e, f = n ? a(t.length, String) : [], m = f.length;
10
- for (var r in t)
11
- (p || O.call(t, r)) && !(n && // Safari 9 has enumerable `arguments.length` in strict mode.
4
+ import a from "./isBuffer.js";
5
+ import d from "./_isIndex.js";
6
+ import A from "./isTypedArray.js";
7
+ function c(i, b) {
8
+ var t = h(i), f = !t && g(i), s = !t && !f && a(i), o = !t && !f && !s && A(i), n = t || f || s || o, e = n ? p(i.length, String) : [], m = e.length;
9
+ for (var r in i)
10
+ n && // Safari 9 has enumerable `arguments.length` in strict mode.
12
11
  (r == "length" || // Node.js 0.10 has enumerable non-index properties on buffers.
13
12
  s && (r == "offset" || r == "parent") || // PhantomJS 2 has enumerable non-index properties on typed arrays.
14
- e && (r == "buffer" || r == "byteLength" || r == "byteOffset") || // Skip index properties.
15
- A(r, m))) && f.push(r);
16
- return f;
13
+ o && (r == "buffer" || r == "byteLength" || r == "byteOffset") || // Skip index properties.
14
+ d(r, m)) || e.push(r);
15
+ return e;
17
16
  }
18
17
  export {
19
- l as default
18
+ c as default
20
19
  };
@@ -1,9 +1,9 @@
1
1
  import e from "./_arrayLikeKeys.js";
2
2
  import i from "./_baseKeysIn.js";
3
3
  import a from "./isArrayLike.js";
4
- function t(r) {
5
- return a(r) ? e(r, !0) : i(r);
4
+ function f(r) {
5
+ return a(r) ? e(r) : i(r);
6
6
  }
7
7
  export {
8
- t as default
8
+ f as default
9
9
  };
@@ -1,4 +1,4 @@
1
- const o = { stripo: { version: "2.47.0" } }, s = {
1
+ const o = { stripo: { version: "2.42.0" } }, s = {
2
2
  guido: o
3
3
  };
4
4
  export {
@@ -1,13 +1,19 @@
1
1
  import { useHttp as c } from "../composables/useHttp.js";
2
2
  import { URLS as a } from "../enums/extensions/recommendationBlock.js";
3
- const R = () => {
3
+ import { useEditorStore as m } from "../stores/editor.js";
4
+ import { replaceString as s } from "../utils/genericUtil.js";
5
+ const l = () => {
4
6
  const { get: o } = c();
5
7
  return {
6
8
  fetchRecommendationCreateData: async () => {
9
+ const e = m();
7
10
  try {
8
- return (await o("/newsletter/recommendations/create-data")).data;
9
- } catch (e) {
10
- throw console.error("fetchUserModalState error:", e), e;
11
+ return (await o(s(
12
+ "/newsletter/{id}/recommendations/get-campaign-create-data",
13
+ { id: e.templateId }
14
+ ))).data;
15
+ } catch (t) {
16
+ throw console.error("fetchUserModalState error:", t), t;
11
17
  }
12
18
  },
13
19
  fetchRecommendationFilters: async () => {
@@ -18,20 +24,20 @@ const R = () => {
18
24
  throw console.error("fetchRecommendationFilters error:", e), e;
19
25
  }
20
26
  },
21
- fetchRecommendationProducts: async (e, n) => {
27
+ fetchRecommendationProducts: async (e, t) => {
22
28
  try {
23
- const t = decodeURIComponent(new URLSearchParams(Object.entries(n)).toString());
24
- console.debug("🏁 Recommendation API Query:", t);
25
- const r = await o(
26
- `${a.RECOMMENDATION_API_URL}/v2/${e}?${t}`
29
+ const r = decodeURIComponent(new URLSearchParams(Object.entries(t)).toString());
30
+ console.debug("🏁 Recommendation API Query:", r);
31
+ const n = await o(
32
+ `${a.RECOMMENDATION_API_URL}/v2/${e}?${r}`
27
33
  );
28
- return (r == null ? void 0 : r.data) ?? [];
29
- } catch (t) {
30
- throw console.error("fetchRecommendationProducts error:", t), t;
34
+ return (n == null ? void 0 : n.data) ?? [];
35
+ } catch (r) {
36
+ throw console.error("fetchRecommendationProducts error:", r), r;
31
37
  }
32
38
  }
33
39
  };
34
40
  };
35
41
  export {
36
- R as useRecommendationApi
42
+ l as useRecommendationApi
37
43
  };
@@ -29,7 +29,7 @@ const m = () => {
29
29
  forceRecreate: !0
30
30
  };
31
31
  try {
32
- const { data: e } = await r("/stripo/default-template/0");
32
+ const { data: e } = await r("/stripo/default-template");
33
33
  try {
34
34
  return {
35
35
  ...JSON.parse(e),
@@ -6,71 +6,36 @@ type Features = {
6
6
  dynamicContent?: boolean;
7
7
  saveAsTemplate?: boolean;
8
8
  versionHistory?: boolean;
9
- testMessage?: boolean;
10
- displayConditions?: boolean;
11
9
  };
12
10
  type Partner = {
13
11
  partnerName: string;
14
12
  productType: number;
15
13
  messageType: number;
16
14
  };
17
- export type GuidoBlockType = 'amp-accordion' | 'amp-carousel' | 'amp-form-controls' | 'banner-block' | 'button-block' | 'html-block' | 'image-block' | 'menu-block' | 'social-block' | 'spacer-block' | 'text-block' | 'timer-block' | 'video-block';
18
- export type GuidoCustomBlockType = 'dynamic-content' | 'checkbox-block' | 'radio-button-block' | 'recommendation-block' | 'unsubscribe-block' | 'coupon-block' | 'items-block';
19
- type BlocksConfig = {
20
- excludeDefaults?: GuidoBlockType[];
21
- includeCustoms?: GuidoCustomBlockType[];
22
- };
23
15
  export type GuidoConfig = {
24
16
  translationsPath: string;
25
17
  htmlCompilerRules?: CompilerRule[];
26
18
  ignoreDefaultHtmlCompilerRules?: boolean;
27
19
  useHeader?: boolean;
28
20
  emailHeader: EmailHeader;
29
- migrationDate: number;
30
21
  partner?: Partner;
31
22
  extensions?: Extensions;
32
23
  features?: Features;
33
- blocks?: BlocksConfig;
34
- backButtonLabel?: string;
35
24
  };
36
25
  export type TemplateConfig = {
37
26
  preselectedDynamicContentList?: DynamicContent[];
38
27
  selectedUnsubscribePages?: number[];
39
28
  variationId?: string;
40
29
  };
41
- export type BaseDynamicContent = {
30
+ export type DynamicContent = {
42
31
  value: string;
32
+ text: string;
43
33
  fallback?: string;
44
34
  format?: {
45
35
  key: string;
46
36
  value: string;
47
37
  };
48
38
  };
49
- export type DynamicContent = BaseDynamicContent & {
50
- text: string;
51
- };
52
- export type MergeTag = BaseDynamicContent & {
53
- label: string;
54
- selStart?: number;
55
- selEnd?: number;
56
- hidden?: boolean;
57
- };
58
- export type PositionData = {
59
- x: number;
60
- y: number;
61
- width?: number;
62
- height?: number;
63
- };
64
- export type DynamicContentEvent = {
65
- attribute: DynamicContent;
66
- position?: PositionData;
67
- };
68
- export type MergeTagClickEvent = {
69
- position: PositionData;
70
- element: HTMLElement;
71
- tagValue: string | null;
72
- tagLabel: string | null;
73
- };
74
39
  export interface EmailHeader {
75
40
  senderName: string;
76
41
  subject: string;
@@ -86,13 +51,12 @@ export interface TooltipOptions {
86
51
  };
87
52
  preventXss?: boolean;
88
53
  }
54
+ export type MergeTag = {
55
+ label: string;
56
+ value: string;
57
+ };
89
58
  export type TextValueObject = {
90
59
  text: string;
91
60
  value: string;
92
61
  };
93
- export interface L10n {
94
- locale?: string;
95
- timezone?: string;
96
- time?: number;
97
- }
98
62
  export {};
@@ -1,4 +1,4 @@
1
- import type { DynamicContent, GuidoConfig, PositionData, TemplateConfig } from '@@/Types/generic';
1
+ import type { DynamicContent, GuidoConfig, TemplateConfig } from '@@/Types/generic';
2
2
  import type { SavedTemplateDetails } from '@@/Types/stripo';
3
3
  type __VLS_Props = {
4
4
  templateId: string;
@@ -20,14 +20,12 @@ declare const _default: import("vue").DefineComponent<__VLS_TypePropsToOption<__
20
20
  hasChanges: import("vue").ComputedRef<boolean>;
21
21
  saveSilent: () => Promise<SavedTemplateDetails | undefined> | undefined;
22
22
  }, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {
23
- "dynamic-content:open": (detail: DynamicContent | null, position?: PositionData | undefined) => void;
23
+ "dynamic-content:open": (detail: DynamicContent | null) => void;
24
24
  back: () => void;
25
25
  "save:start": () => void;
26
26
  "save:complete": (data: Omit<SavedTemplateDetails, "forceRecreate">) => void;
27
27
  "on-change": (hasChanges: boolean) => void;
28
28
  ready: () => void;
29
- "onboarding:finished": () => void;
30
- "test-email:click": () => void;
31
29
  }, string, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToOption<__VLS_Props>>>, {}>;
32
30
  export default _default;
33
31
  type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
@@ -1,4 +1,2 @@
1
- declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {
2
- "onboarding-finished": () => void;
3
- }, string, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
4
2
  export default _default;
@@ -1,4 +1,2 @@
1
- declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {
2
- "onboarding-finished": () => void;
3
- }, string, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
4
2
  export default _default;
@@ -32,8 +32,8 @@ declare const __VLS_component: import("vue").DefineComponent<__VLS_WithDefaults<
32
32
  closeOnOutsideClick: boolean;
33
33
  footerStatus: boolean;
34
34
  }>>>, {
35
- size: "small" | "medium" | "large";
36
35
  description: string;
36
+ size: "small" | "medium" | "large";
37
37
  closeOnOutsideClick: boolean;
38
38
  footerButtonOptions: FooterButtonGroup;
39
39
  closeButtonStatus: boolean;
@@ -3,11 +3,9 @@ import type { InjectionKey } from 'vue';
3
3
  export type BackHandler = () => void;
4
4
  export type SaveStartHandler = () => void;
5
5
  export type SaveCompleteHandler = (template: Omit<SavedTemplateDetails, 'forceRecreate'>) => void;
6
- export type TestEmailClickHandler = () => void;
7
6
  export declare const BACK_KEY: InjectionKey<BackHandler>;
8
7
  export declare const SAVE_START_KEY: InjectionKey<SaveStartHandler>;
9
8
  export declare const SAVE_COMPLETE_KEY: InjectionKey<SaveCompleteHandler>;
10
- export declare const TEST_EMAIL_CLICK_KEY: InjectionKey<TestEmailClickHandler>;
11
9
  /**
12
10
  * Provides Guido action handlers to child components
13
11
  */
@@ -15,7 +13,6 @@ export declare const provideGuidoActions: (actions: {
15
13
  onBack: BackHandler;
16
14
  onSaveStart: SaveStartHandler;
17
15
  onSaveComplete: SaveCompleteHandler;
18
- onTestEmailClick: TestEmailClickHandler;
19
16
  }) => void;
20
17
  /**
21
18
  * Provides individual Guido action handlers
@@ -38,11 +35,6 @@ export declare const useSaveStart: () => SaveStartHandler;
38
35
  * @returns Save complete function
39
36
  */
40
37
  export declare const useSaveComplete: () => SaveCompleteHandler;
41
- /**
42
- * Hook to use the test email click handler
43
- * @returns Test email click function
44
- */
45
- export declare const useTestEmailClick: () => TestEmailClickHandler;
46
38
  /**
47
39
  * Convenience hook to get all Guido actions
48
40
  * @returns Object containing all action handlers
@@ -51,5 +43,4 @@ export declare const useGuidoActions: () => {
51
43
  back: BackHandler;
52
44
  saveStart: SaveStartHandler;
53
45
  saveComplete: SaveCompleteHandler;
54
- testEmailClick: TestEmailClickHandler;
55
46
  };
@@ -1,6 +1 @@
1
1
  export declare const SERVICE_HOVER_SELECTORS: string[];
2
- export declare const UI_EDITOR_SELECTOR = "ui-editor";
3
- export declare const CARD_COMPOSITION_TAB_SELECTOR = "button[role=\"tab\"][aria-label=\"Card Composition\"]";
4
- export declare const SETTINGS_TAB_SELECTOR = "button[role=\"tab\"][aria-label=\"Settings\"]";
5
- export declare const RIBBON_SELECTOR = ".in-ribbons-wrapper";
6
- export declare const ACADEMY_LINK = "https://academy.useinsider.com/docs/email-drag-drop-editor";
@@ -8,5 +8,4 @@ export declare class CheckboxBlock extends Block {
8
8
  getName(): string;
9
9
  getDescription(): string;
10
10
  getTemplate(): string;
11
- allowInnerBlocksDND(): boolean;
12
11
  }
@@ -1,4 +1,4 @@
1
- declare const migrationTemplate = "\n <td\n align=\"left\"\n esd-extension-block-id=\"checkbox-block\"\n class=\"\n checkbox-block\n checkbox-block-v2\n esd-block-checkbox\n esd-checkbox-block\n esd-extension-block es-p20\"\n >\n <table cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\" width=\"100%\">\n <tbody>\n <tr>\n <td align=\"left\" width=\"39\" style=\"vertical-align: top\">\n <input type=\"checkbox\">\n </td>\n <td align=\"left\" width=\"816\" style=\"vertical-align: top\">\n <table cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\" width=\"100%\">\n <tbody>\n <tr>\n {-{-TITLE-}-}\n </tr>\n <tr>\n {-{-DESCRIPTION-}-}\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n";
1
+ declare const migrationTemplate = "\n <td \n align=\"left\" \n esd-extension-block-id=\"checkbox-block\" \n class=\"checkbox-block-v2 esd-block-checkbox esd-checkbox-block esd-extension-block es-p20\"\n >\n <table cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\" width=\"100%\">\n <tbody>\n <tr>\n <td align=\"left\" width=\"39\" style=\"vertical-align: top\">\n <input type=\"checkbox\">\n </td>\n <td align=\"left\" width=\"816\" style=\"vertical-align: top\">\n <table cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\" width=\"100%\">\n <tbody>\n <tr>\n {-{-TITLE-}-}\n </tr>\n <tr>\n {-{-DESCRIPTION-}-}\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n";
2
2
  /**
3
3
  * @returns The template for the default checkbox block
4
4
  */
@@ -8,5 +8,4 @@ export declare class RadioButtonCustomBlock extends Block {
8
8
  getName(): string;
9
9
  getDescription(): string;
10
10
  getTemplate(): string;
11
- allowInnerBlocksDND(): boolean;
12
11
  }
@@ -1,4 +1,4 @@
1
- declare const migrationTemplate = "\n <td\n align=\"left\"\n esd-extension-block-id=\"radio-button-block\"\n esd-handler-name=\"esd-extension-RadioButtonBlock\"\n class=\"\n radio-button\n radio-button-v2\n esd-block-ra\n esd-radio-button-block\n esd-extension-block\n es-p10t\n es-p10b\n es-p30r\n es-p30l\"\n >\n <table cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\" width=\"100%\">\n <tbody>\n <tr>\n <td align=\"left\" width=\"70%\" style=\"vertical-align: top;\">\n <table cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\" width=\"100%\">\n <tbody>\n <tr>\n {-{-TITLE-}-}\n </tr>\n <tr>\n {-{-DESCRIPTION-}-}\n </tr>\n </tbody>\n </table>\n </td>\n <td align=\"right\" width=\"30%\" style=\"vertical-align: middle;\">\n <table cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\" width=\"100%\">\n <tbody>\n <tr>\n <td width=\"50%\">\n <table width=\"100%\">\n <tr>\n <td width=\"24\">\n <input\n type=\"radio\"\n id=\"radioYes\"\n name=\"unsubscribe\"\n data-cke-editable=\"1\"\n style=\"margin: 0px; vertical-align: middle;>\n </td>\n {-{-YES-}-}\n </tr>\n </table>\n </td>\n <td width=\"50%\">\n <table width=\"100%\">\n <tr>\n <td width=\"24\">\n <input\n type=\"radio\"\n id=\"radioNo\"\n name=\"unsubscribe\"\n data-cke-editable=\"1\"\n style=\"margin: 0px; vertical-align: middle;\">\n </td>\n {-{-NO-}-}\n </tr>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n";
1
+ declare const migrationTemplate = "\n <td \n align=\"left\" \n esd-extension-block-id=\"radio-button-block\" \n esd-handler-name=\"esd-extension-RadioButtonBlock\"\n class=\"radio-button-v2 esd-block-ra esd-radio-button-block esd-extension-block es-p10t es-p10b es-p30r es-p30l\"\n >\n <table cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\" width=\"100%\">\n <tbody>\n <tr>\n <td align=\"left\" width=\"70%\" style=\"vertical-align: top;\">\n <table cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\" width=\"100%\">\n <tbody>\n <tr>\n {-{-TITLE-}-}\n </tr>\n <tr>\n {-{-DESCRIPTION-}-}\n </tr>\n </tbody>\n </table>\n </td>\n <td align=\"right\" width=\"30%\" style=\"vertical-align: middle;\">\n <table cellpadding=\"0\" cellspacing=\"0\" role=\"presentation\" width=\"100%\">\n <tbody>\n <tr>\n <td width=\"50%\">\n <table width=\"100%\">\n <tr>\n <td width=\"24\">\n <input\n type=\"radio\"\n id=\"radioYes\"\n name=\"unsubscribe\"\n data-cke-editable=\"1\"\n style=\"margin: 0px; vertical-align: middle;>\n </td>\n {-{-YES-}-}\n </tr>\n </table>\n </td>\n <td width=\"50%\">\n <table width=\"100%\">\n <tr>\n <td width=\"24\">\n <input\n type=\"radio\"\n id=\"radioNo\"\n name=\"unsubscribe\"\n data-cke-editable=\"1\"\n style=\"margin: 0px; vertical-align: middle;\">\n </td>\n {-{-NO-}-}\n </tr>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n";
2
2
  /**
3
3
  * @returns The template for the default checkbox block
4
4
  */
@@ -4,17 +4,34 @@ export declare const COMPOSITION_CONTROL_BLOCK_ID = "ui-elements-recommendation-
4
4
  export interface CardCompositionItem {
5
5
  key: string;
6
6
  label: string;
7
- visible: boolean;
8
7
  }
9
8
  export declare class RecommendationCardCompositionControl extends CommonControl {
10
9
  private currentComposition;
11
- private currentVisibility;
10
+ private currentStyling;
12
11
  getId(): string;
13
12
  getTemplate(): string;
13
+ _getTextColor(label: string, name: string): string;
14
+ _getFontFamily(label: string, name: string): string;
15
+ /**
16
+ * Generate styling controls for Product Name element
17
+ */
18
+ private _getProductNameStylingControls;
19
+ /**
20
+ * Generate styling controls for Product Price element
21
+ */
22
+ private _getProductPriceStylingControls;
23
+ /**
24
+ * Generate styling controls for Product Original Price element
25
+ */
26
+ private _getProductOriginalPriceStylingControls;
27
+ /**
28
+ * Generate styling controls for Product Button element
29
+ */
30
+ private _getProductButtonStylingControls;
14
31
  onRender(): void;
15
32
  onTemplateNodeUpdated(node: ImmutableHtmlNode): void;
16
33
  /**
17
- * Initialize the composition order and visibility from the block or use defaults
34
+ * Initialize the composition order from the block or use defaults
18
35
  */
19
36
  private _initializeComposition;
20
37
  /**
@@ -22,7 +39,27 @@ export declare class RecommendationCardCompositionControl extends CommonControl
22
39
  */
23
40
  private _applyCompositionToBlock;
24
41
  /**
25
- * Apply visibility changes to the block's HTML structure
42
+ * Initialize styling from stored block attributes
43
+ */
44
+ private _initializeStyling;
45
+ /**
46
+ * Load default styling values and populate controls
47
+ */
48
+ private _loadDefaultStyling;
49
+ /**
50
+ * Populate control values with current styling
51
+ */
52
+ private _populateControlsWithStyling;
53
+ /**
54
+ * Update styling object for a specific element and property
55
+ */
56
+ private _updateElementStyling;
57
+ /**
58
+ * Persist current styling to block attributes
59
+ */
60
+ private _persistStyling;
61
+ /**
62
+ * Apply styling to a specific element in the DOM
26
63
  */
27
- private _applyVisibilityToBlock;
64
+ private _applyStylingToElement;
28
65
  }
@@ -34,7 +34,7 @@ interface StoreState {
34
34
  filterList: FiltersResponse;
35
35
  filterGroup: number;
36
36
  }
37
- export declare const useRecommendationExtensionStore: import("pinia").StoreDefinition<"guidoRecommendationExtension", StoreState, {
37
+ export declare const useRecommendationExtensionStore: import("pinia").StoreDefinition<"recommendationExtension", StoreState, {
38
38
  hasFilters: (state: {
39
39
  recommendationCampaignUrls: Record<string, string>;
40
40
  recommendationConfigs: {
@@ -1,16 +1,43 @@
1
1
  import type { RecommendationProduct } from '@@/Types/recommendation';
2
- import { DEFAULTS, getDefaultProducts } from './templateUtils';
2
+ /**
3
+ * Migration template for converting old recommendation blocks (v1) to new format (v2)
4
+ *
5
+ * This template is used by Stripo to migrate existing emails with old recommendation blocks
6
+ * to the new block structure. It preserves user content while updating the HTML structure.
7
+ *
8
+ * Pattern:
9
+ * - Detects old blocks with class "ins-recommendation-v3-block-1"
10
+ * - Extracts title from ".ext-recommendation-title"
11
+ * - Extracts product cards and reconstructs them in new format
12
+ * - Preserves all product data variables ({{1_0_name}}, {{1_0_price}}, etc.)
13
+ */
3
14
  declare const migrationTemplate = "\n <td\n align=\"left\"\n esd-extension-block-id=\"recommendation-block\"\n esd-handler-name=\"esd-extension-RecommendationBlock\"\n class=\"ins-recommendation-v3-block-v2 esd-block-recommendation-v3-block esd-extension-block es-p20\"\n >\n <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n <tr>\n <td align=\"center\">\n <table\n class=\"container\"\n width=\"100%\"\n cellpadding=\"0\"\n cellspacing=\"0\"\n border=\"0\">\n <tbody>\n <tr>\n <td>\n <table\n width=\"100%\"\n cellpadding=\"0\"\n cellspacing=\"0\"\n border=\"0\">\n <tbody>\n <tr>\n {-{-TITLE-}-}\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n <tr>\n <td class=\"spacer\" style=\"height: 20px;\"></td>\n </tr>\n <tr>\n <td>\n <table\n class=\"ins-recommendation-product-container\"\n width=\"100%\"\n cellpadding=\"0\"\n cellspacing=\"0\"\n border=\"0\"\n >\n {-{-PRODUCT_ROWS-}-}\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n </table>\n </td>\n";
4
- export declare function getMigrationTemplate(): string;
5
15
  /**
6
- * Generates a custom migration template with specified products and layout
16
+ * Default card composition order
17
+ */
18
+ export declare const DEFAULT_CARD_COMPOSITION: string[];
19
+ /**
20
+ * Prepares product rows HTML with customizable composition order
7
21
  * @param products - Array of products to display
8
22
  * @param productsPerRow - Number of products per row
9
- * @param title - Optional title for the block
10
23
  * @param composition - Optional array defining order of card elements
11
- * @returns Complete HTML template
24
+ * @returns HTML string for product rows
12
25
  */
13
- export declare function generateMigrationTemplate(products: RecommendationProduct[], productsPerRow: number, title?: string, composition?: string[]): string;
14
26
  export declare function prepareProductRows(products: RecommendationProduct[], productsPerRow: number, composition?: string[]): string;
15
- export { DEFAULTS, getDefaultProducts };
27
+ /**
28
+ * @returns The default mock products for initial template
29
+ */
30
+ export declare function getDefaultProducts(): RecommendationProduct[];
31
+ /**
32
+ * @returns The template for the default checkbox block
33
+ */
34
+ export declare function getDefaultTemplate(): string;
35
+ /**
36
+ * Generates the complete HTML template with dynamic products and layout
37
+ * @param products - Array of products to display
38
+ * @param productsPerRow - Number of products per row
39
+ * @param title - Optional title for the block
40
+ * @returns Complete HTML template
41
+ */
42
+ export declare function generateTemplate(products: RecommendationProduct[], productsPerRow: number, title?: string): string;
16
43
  export default migrationTemplate;
@@ -1,10 +1,8 @@
1
- import { TextValueObject } from '@@/Types/generic';
2
- import { Control, ImmutableHtmlElementNode, ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
1
+ import { Control, ImmutableHtmlNode } from '@stripoinc/ui-editor-extensions';
3
2
  interface TextInputProps {
4
3
  name: string;
5
4
  placeholder?: string;
6
5
  className?: string;
7
- disabled?: boolean;
8
6
  }
9
7
  interface LabelProps {
10
8
  text: string;
@@ -19,7 +17,10 @@ interface IconButtonProps {
19
17
  interface SelectProps {
20
18
  name: string;
21
19
  placeholder: string;
22
- options: TextValueObject[];
20
+ options: {
21
+ text: string;
22
+ value: string;
23
+ }[];
23
24
  className?: string;
24
25
  }
25
26
  interface CounterProps {
@@ -28,15 +29,6 @@ interface CounterProps {
28
29
  minValue?: number;
29
30
  step?: number;
30
31
  }
31
- interface RadioButtonProps {
32
- name: string;
33
- buttons: {
34
- text?: string;
35
- value: string;
36
- icon?: string;
37
- }[];
38
- id?: string;
39
- }
40
32
  interface ButtonProps {
41
33
  name: string;
42
34
  label: string;
@@ -48,33 +40,11 @@ interface ButtonProps {
48
40
  */
49
41
  export declare abstract class CommonControl extends Control {
50
42
  currentNode?: ImmutableHtmlNode;
51
- protected lastBlockInstanceId: string | null;
52
43
  abstract getId(): string;
53
44
  abstract getTemplate(): string;
54
45
  abstract onRender(): Promise<void> | void;
55
46
  getContainer(): ShadowRoot;
56
47
  onTemplateNodeUpdated(node: ImmutableHtmlNode): void;
57
- onDestroy(): void;
58
- /**
59
- * Gets the config block element from the current node.
60
- * @returns The config block element or null if not found
61
- */
62
- protected getConfigBlock(): ImmutableHtmlElementNode | null;
63
- /**
64
- * Gets the current block instance ID from the config block.
65
- * @param blockInstanceIdAttribute - The attribute name for block instance ID (default: 'data-block-instance-id')
66
- * @returns The block instance ID or null if not found
67
- */
68
- protected getBlockInstanceId(blockInstanceIdAttribute?: string): string | null;
69
- /**
70
- * Handles block instance change detection and syncing.
71
- * This is a helper method for controls that need to sync attributes when switching between block instances.
72
- * @param syncFunction - Function to call when block instance changes (to sync from attributes)
73
- * @param updateUI - Function to call to update the UI (called both on change and when same block)
74
- * @param blockInstanceIdAttribute - The attribute name for block instance ID (default: 'data-block-instance-id')
75
- * @returns true if block instance changed, false otherwise
76
- */
77
- protected handleBlockInstanceChange(syncFunction: (node: ImmutableHtmlNode) => void, updateUI: () => void, blockInstanceIdAttribute?: string): boolean;
78
48
  _GuLabel({ text, name, position }: LabelProps): string;
79
49
  _GuToggle(name: string): string;
80
50
  _GuSelectItem({ text, value }: {
@@ -82,14 +52,8 @@ export declare abstract class CommonControl extends Control {
82
52
  value: string;
83
53
  }): string;
84
54
  _GuSelect({ name, placeholder, options, className }: SelectProps): string;
85
- _GuTextInput({ name, placeholder, className, disabled }: TextInputProps): string;
55
+ _GuTextInput({ name, placeholder, className }: TextInputProps): string;
86
56
  _GuCounter({ name, maxValue, minValue, step }: CounterProps): string;
87
- _GuRadioButtonItem({ text, value, icon }: {
88
- text?: string;
89
- value: string;
90
- icon?: string;
91
- }): string;
92
- _GuRadioButton({ name, buttons, id }: RadioButtonProps): string;
93
57
  _GuButton({ name, label, id }: ButtonProps): string;
94
58
  /**
95
59
  *
@@ -97,8 +61,7 @@ export declare abstract class CommonControl extends Control {
97
61
  * @returns It returns a button with an icon.
98
62
  */
99
63
  _GuIconButton({ name, icon, className }: IconButtonProps): string;
100
- _GuOneColumn(children: string[], className?: string): string;
101
- _GuTwoColumns(children: string[], className?: string): string;
64
+ _GuTwoColumns(children: string[]): string;
102
65
  /**
103
66
  * Creates an orderable (sortable) list control
104
67
  * @param name - The control name for value binding
@@ -1,13 +1,6 @@
1
- import type { DynamicContent, PositionData } from '@@/Types/generic';
1
+ import type { DynamicContent } from '@@/Types/generic';
2
2
  export declare class ExternalMergeTagsLibrary {
3
3
  selectedDynamicContent: DynamicContent | null;
4
4
  dataSelectCallback: (data: DynamicContent) => void;
5
- private closeDynamicContentHandler;
6
- /**
7
- * Opens the merge tags library modal
8
- * @param dynamicContent - Currently selected dynamic content (if any)
9
- * @param onDataSelectCallback - Callback invoked when user selects a merge tag
10
- * @param position - Optional position data to place the modal
11
- */
12
- openMergeTagsLibrary(dynamicContent: DynamicContent, onDataSelectCallback: (data: DynamicContent) => void, position?: PositionData): void;
5
+ openMergeTagsLibrary(dynamicContent: DynamicContent, onDataSelectCallback: (data: DynamicContent) => void): void;
13
6
  }