@useinsider/guido 1.0.3-beta.154cb70 → 1.0.3-beta.15f3cdb

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 (289) hide show
  1. package/README.md +0 -6
  2. package/dist/components/Guido.vue.js +1 -1
  3. package/dist/components/Guido.vue2.js +73 -79
  4. package/dist/components/organisms/header/RightSlot.vue.js +1 -1
  5. package/dist/components/organisms/header/RightSlot.vue2.js +22 -23
  6. package/dist/components/organisms/onboarding/OnboardingWrapper.vue2.js +18 -20
  7. package/dist/composables/useActionsApi.js +1 -1
  8. package/dist/composables/useBlocksConfig.js +2 -1
  9. package/dist/composables/useGuidoActions.js +9 -19
  10. package/dist/composables/useHtmlCompiler.js +13 -15
  11. package/dist/composables/useHtmlValidator.js +35 -36
  12. package/dist/composables/useStripo.js +30 -32
  13. package/dist/config/compiler/unsubscribeCompilerRules.js +28 -33
  14. package/dist/enums/defaults.js +1 -2
  15. package/dist/enums/extensions/recommendationBlock.js +2 -2
  16. package/dist/enums/onboarding.js +3 -7
  17. package/dist/enums/unsubscribe.js +25 -27
  18. package/dist/extensions/Blocks/Checkbox/block.js +2 -5
  19. package/dist/extensions/Blocks/Checkbox/control.js +14 -15
  20. package/dist/extensions/Blocks/Checkbox/template.js +9 -14
  21. package/dist/extensions/Blocks/RadioButton/block.js +2 -5
  22. package/dist/extensions/Blocks/RadioButton/control.js +17 -18
  23. package/dist/extensions/Blocks/RadioButton/template.js +9 -18
  24. package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +151 -69
  25. package/dist/extensions/Blocks/Recommendation/constants.js +7 -1
  26. package/dist/extensions/Blocks/Recommendation/control.js +74 -59
  27. package/dist/extensions/Blocks/Recommendation/controls/cardBackgroundColorControl.js +68 -0
  28. package/dist/extensions/Blocks/Recommendation/controls/index.js +175 -0
  29. package/dist/extensions/Blocks/Recommendation/controls/nameTextTrimControl.js +74 -0
  30. package/dist/extensions/Blocks/Recommendation/controls/spacingControl.js +188 -0
  31. package/dist/extensions/Blocks/Recommendation/extension.js +8 -38
  32. package/dist/extensions/Blocks/Recommendation/iconsRegistry.js +43 -43
  33. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +54 -49
  34. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +1 -1
  35. package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +50 -53
  36. package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +17 -16
  37. package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +48 -41
  38. package/dist/extensions/Blocks/Unsubscribe/block.js +41 -45
  39. package/dist/extensions/Blocks/common-control.js +110 -174
  40. package/dist/extensions/Blocks/controlFactories.js +21 -21
  41. package/dist/extensions/DynamicContent/dynamic-content-modal.js +19 -25
  42. package/dist/extensions/DynamicContent/dynamic-content.js +33 -128
  43. package/dist/guido.css +1 -1
  44. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +160 -205
  45. package/dist/node_modules/lodash-es/_arrayLikeKeys.js +12 -13
  46. package/dist/node_modules/lodash-es/keysIn.js +3 -3
  47. package/dist/package.json.js +1 -1
  48. package/dist/services/recommendationApi.js +19 -13
  49. package/dist/src/@types/generic.d.ts +6 -27
  50. package/dist/src/components/Guido.vue.d.ts +2 -3
  51. package/dist/src/composables/useGuidoActions.d.ts +0 -9
  52. package/dist/src/enums/onboarding.d.ts +0 -4
  53. package/dist/src/extensions/Blocks/Checkbox/block.d.ts +0 -1
  54. package/dist/src/extensions/Blocks/Checkbox/template.d.ts +1 -1
  55. package/dist/src/extensions/Blocks/RadioButton/block.d.ts +0 -1
  56. package/dist/src/extensions/Blocks/RadioButton/template.d.ts +1 -1
  57. package/dist/src/extensions/Blocks/Recommendation/cardCompositionControl.d.ts +50 -3
  58. package/dist/src/extensions/Blocks/Recommendation/constants.d.ts +10 -0
  59. package/dist/src/extensions/Blocks/Recommendation/control.d.ts +5 -2
  60. package/dist/src/extensions/Blocks/Recommendation/controls/cardBackgroundColorControl.d.ts +25 -0
  61. package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +46 -0
  62. package/dist/src/extensions/Blocks/Recommendation/controls/nameTextTrimControl.d.ts +16 -0
  63. package/dist/src/extensions/Blocks/Recommendation/controls/spacingControl.d.ts +60 -0
  64. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +1 -1
  65. package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +1 -1
  66. package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +8 -7
  67. package/dist/src/extensions/Blocks/Unsubscribe/block.d.ts +4 -3
  68. package/dist/src/extensions/Blocks/common-control.d.ts +7 -44
  69. package/dist/src/extensions/Blocks/controlFactories.d.ts +20 -241
  70. package/dist/src/extensions/DynamicContent/dynamic-content-modal.d.ts +2 -9
  71. package/dist/src/extensions/DynamicContent/dynamic-content.d.ts +2 -52
  72. package/dist/src/stores/config.d.ts +2 -3
  73. package/dist/src/stores/dynamic-content.d.ts +3 -3
  74. package/dist/src/stores/editor.d.ts +1 -1
  75. package/dist/src/stores/onboarding.d.ts +1 -335
  76. package/dist/src/stores/preview.d.ts +1 -1
  77. package/dist/src/stores/recommendation.d.ts +1 -1
  78. package/dist/src/stores/save-as-template.d.ts +1 -1
  79. package/dist/src/stores/toaster.d.ts +1 -1
  80. package/dist/src/stores/unsubscribe.d.ts +1 -1
  81. package/dist/src/stores/version-history.d.ts +1 -1
  82. package/dist/src/utils/genericUtil.d.ts +0 -1
  83. package/dist/static/styles/components/wide-panel.css.js +0 -4
  84. package/dist/static/styles/customEditorStyle.css.js +15 -1
  85. package/dist/stores/config.js +5 -5
  86. package/dist/stores/dynamic-content.js +2 -2
  87. package/dist/stores/editor.js +1 -1
  88. package/dist/stores/onboarding.js +36 -44
  89. package/dist/stores/preview.js +1 -1
  90. package/dist/stores/recommendation.js +3 -3
  91. package/dist/stores/save-as-template.js +2 -2
  92. package/dist/stores/toaster.js +1 -1
  93. package/dist/stores/unsubscribe.js +1 -1
  94. package/dist/stores/version-history.js +4 -4
  95. package/dist/utils/genericUtil.js +8 -18
  96. package/package.json +4 -4
  97. package/dist/components/organisms/onboarding/ItemsOnboarding.vue.js +0 -21
  98. package/dist/components/organisms/onboarding/ItemsOnboarding.vue2.js +0 -99
  99. package/dist/config/compiler/itemsCompilerRules.js +0 -14
  100. package/dist/extensions/Blocks/Items/block.js +0 -67
  101. package/dist/extensions/Blocks/Items/controls/button/link.js +0 -68
  102. package/dist/extensions/Blocks/Items/controls/cardComposition.js +0 -193
  103. package/dist/extensions/Blocks/Items/controls/image/link.js +0 -68
  104. package/dist/extensions/Blocks/Items/controls/index.js +0 -217
  105. package/dist/extensions/Blocks/Items/controls/name/trimming.js +0 -70
  106. package/dist/extensions/Blocks/Items/controls/price/currencyLocation.js +0 -107
  107. package/dist/extensions/Blocks/Items/controls/price/currencySymbol.js +0 -123
  108. package/dist/extensions/Blocks/Items/controls/price/formattedPrice.js +0 -76
  109. package/dist/extensions/Blocks/Items/controls/price/hideDiscount.js +0 -61
  110. package/dist/extensions/Blocks/Items/controls/price/priceOrientation.js +0 -92
  111. package/dist/extensions/Blocks/Items/controls/settingsControl.js +0 -316
  112. package/dist/extensions/Blocks/Items/enums/controlEnums.js +0 -5
  113. package/dist/extensions/Blocks/Items/enums/productEnums.js +0 -274
  114. package/dist/extensions/Blocks/Items/enums/settingsEnums.js +0 -77
  115. package/dist/extensions/Blocks/Items/extension.js +0 -20
  116. package/dist/extensions/Blocks/Items/iconsRegistry.js +0 -32
  117. package/dist/extensions/Blocks/Items/items.css.js +0 -23
  118. package/dist/extensions/Blocks/Items/layouts/horizontal.html.js +0 -62
  119. package/dist/extensions/Blocks/Items/layouts/vertical.html.js +0 -72
  120. package/dist/extensions/Blocks/Items/settingsPanel.js +0 -132
  121. package/dist/extensions/Blocks/Items/store/items-block.js +0 -75
  122. package/dist/extensions/Blocks/Items/template.js +0 -195
  123. package/dist/extensions/Blocks/Items/utils/configBlockUtils.js +0 -17
  124. package/dist/extensions/Blocks/Items/utils/syncAttributeFromConfigBlock.js +0 -28
  125. package/dist/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.js +0 -76
  126. package/dist/extensions/Blocks/Items/utils/updateAttributes.js +0 -46
  127. package/dist/extensions/Blocks/Recommendation/controls/button/align.js +0 -13
  128. package/dist/extensions/Blocks/Recommendation/controls/button/border.js +0 -13
  129. package/dist/extensions/Blocks/Recommendation/controls/button/borderRadius.js +0 -13
  130. package/dist/extensions/Blocks/Recommendation/controls/button/color.js +0 -13
  131. package/dist/extensions/Blocks/Recommendation/controls/button/fitToContent.js +0 -13
  132. package/dist/extensions/Blocks/Recommendation/controls/button/fontFamily.js +0 -13
  133. package/dist/extensions/Blocks/Recommendation/controls/button/margins.js +0 -13
  134. package/dist/extensions/Blocks/Recommendation/controls/button/paddings.js +0 -13
  135. package/dist/extensions/Blocks/Recommendation/controls/button/text.js +0 -13
  136. package/dist/extensions/Blocks/Recommendation/controls/button/textSize.js +0 -13
  137. package/dist/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.js +0 -13
  138. package/dist/extensions/Blocks/Recommendation/controls/image/margins.js +0 -13
  139. package/dist/extensions/Blocks/Recommendation/controls/image/size.js +0 -13
  140. package/dist/extensions/Blocks/Recommendation/controls/name/align.js +0 -13
  141. package/dist/extensions/Blocks/Recommendation/controls/name/background.js +0 -13
  142. package/dist/extensions/Blocks/Recommendation/controls/name/color.js +0 -13
  143. package/dist/extensions/Blocks/Recommendation/controls/name/fontFamily.js +0 -13
  144. package/dist/extensions/Blocks/Recommendation/controls/name/paddings.js +0 -13
  145. package/dist/extensions/Blocks/Recommendation/controls/name/size.js +0 -13
  146. package/dist/extensions/Blocks/Recommendation/controls/name/style.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/node_modules/lodash-es/_DataView.js +0 -6
  162. package/dist/node_modules/lodash-es/_Promise.js +0 -6
  163. package/dist/node_modules/lodash-es/_Set.js +0 -6
  164. package/dist/node_modules/lodash-es/_SetCache.js +0 -13
  165. package/dist/node_modules/lodash-es/_WeakMap.js +0 -6
  166. package/dist/node_modules/lodash-es/_arrayFilter.js +0 -10
  167. package/dist/node_modules/lodash-es/_arrayMap.js +0 -8
  168. package/dist/node_modules/lodash-es/_arrayPush.js +0 -8
  169. package/dist/node_modules/lodash-es/_arraySome.js +0 -9
  170. package/dist/node_modules/lodash-es/_baseEach.js +0 -6
  171. package/dist/node_modules/lodash-es/_baseFlatten.js +0 -13
  172. package/dist/node_modules/lodash-es/_baseForOwn.js +0 -8
  173. package/dist/node_modules/lodash-es/_baseGet.js +0 -11
  174. package/dist/node_modules/lodash-es/_baseGetAllKeys.js +0 -9
  175. package/dist/node_modules/lodash-es/_baseHasIn.js +0 -6
  176. package/dist/node_modules/lodash-es/_baseIsEqual.js +0 -8
  177. package/dist/node_modules/lodash-es/_baseIsEqualDeep.js +0 -32
  178. package/dist/node_modules/lodash-es/_baseIsMatch.js +0 -29
  179. package/dist/node_modules/lodash-es/_baseIteratee.js +0 -11
  180. package/dist/node_modules/lodash-es/_baseKeys.js +0 -14
  181. package/dist/node_modules/lodash-es/_baseMap.js +0 -11
  182. package/dist/node_modules/lodash-es/_baseMatches.js +0 -12
  183. package/dist/node_modules/lodash-es/_baseMatchesProperty.js +0 -17
  184. package/dist/node_modules/lodash-es/_baseProperty.js +0 -8
  185. package/dist/node_modules/lodash-es/_basePropertyDeep.js +0 -9
  186. package/dist/node_modules/lodash-es/_baseRange.js +0 -9
  187. package/dist/node_modules/lodash-es/_baseToString.js +0 -18
  188. package/dist/node_modules/lodash-es/_baseTrim.js +0 -8
  189. package/dist/node_modules/lodash-es/_cacheHas.js +0 -6
  190. package/dist/node_modules/lodash-es/_castPath.js +0 -10
  191. package/dist/node_modules/lodash-es/_createBaseEach.js +0 -15
  192. package/dist/node_modules/lodash-es/_createRange.js +0 -11
  193. package/dist/node_modules/lodash-es/_equalArrays.js +0 -40
  194. package/dist/node_modules/lodash-es/_equalByTag.js +0 -45
  195. package/dist/node_modules/lodash-es/_equalObjects.js +0 -36
  196. package/dist/node_modules/lodash-es/_getAllKeys.js +0 -9
  197. package/dist/node_modules/lodash-es/_getMatchData.js +0 -12
  198. package/dist/node_modules/lodash-es/_getSymbols.js +0 -10
  199. package/dist/node_modules/lodash-es/_getTag.js +0 -28
  200. package/dist/node_modules/lodash-es/_hasPath.js +0 -19
  201. package/dist/node_modules/lodash-es/_isFlattenable.js +0 -10
  202. package/dist/node_modules/lodash-es/_isKey.js +0 -12
  203. package/dist/node_modules/lodash-es/_isStrictComparable.js +0 -7
  204. package/dist/node_modules/lodash-es/_mapToArray.js +0 -9
  205. package/dist/node_modules/lodash-es/_matchesStrictComparable.js +0 -8
  206. package/dist/node_modules/lodash-es/_memoizeCapped.js +0 -11
  207. package/dist/node_modules/lodash-es/_nativeKeys.js +0 -5
  208. package/dist/node_modules/lodash-es/_setCacheAdd.js +0 -7
  209. package/dist/node_modules/lodash-es/_setCacheHas.js +0 -6
  210. package/dist/node_modules/lodash-es/_setToArray.js +0 -9
  211. package/dist/node_modules/lodash-es/_stringToPath.js +0 -10
  212. package/dist/node_modules/lodash-es/_toKey.js +0 -10
  213. package/dist/node_modules/lodash-es/_trimmedEndIndex.js +0 -9
  214. package/dist/node_modules/lodash-es/flatMap.js +0 -8
  215. package/dist/node_modules/lodash-es/get.js +0 -8
  216. package/dist/node_modules/lodash-es/hasIn.js +0 -8
  217. package/dist/node_modules/lodash-es/isSymbol.js +0 -9
  218. package/dist/node_modules/lodash-es/keys.js +0 -9
  219. package/dist/node_modules/lodash-es/map.js +0 -11
  220. package/dist/node_modules/lodash-es/property.js +0 -10
  221. package/dist/node_modules/lodash-es/range.js +0 -5
  222. package/dist/node_modules/lodash-es/stubArray.js +0 -6
  223. package/dist/node_modules/lodash-es/toFinite.js +0 -14
  224. package/dist/node_modules/lodash-es/toNumber.js +0 -22
  225. package/dist/node_modules/lodash-es/toString.js +0 -7
  226. package/dist/src/components/organisms/onboarding/ItemsOnboarding.vue.d.ts +0 -2
  227. package/dist/src/config/compiler/itemsCompilerRules.d.ts +0 -2
  228. package/dist/src/extensions/Blocks/Items/block.d.ts +0 -27
  229. package/dist/src/extensions/Blocks/Items/controls/button/link.d.ts +0 -14
  230. package/dist/src/extensions/Blocks/Items/controls/cardComposition.d.ts +0 -33
  231. package/dist/src/extensions/Blocks/Items/controls/image/link.d.ts +0 -14
  232. package/dist/src/extensions/Blocks/Items/controls/index.d.ts +0 -501
  233. package/dist/src/extensions/Blocks/Items/controls/name/trimming.d.ts +0 -14
  234. package/dist/src/extensions/Blocks/Items/controls/price/currencyLocation.d.ts +0 -19
  235. package/dist/src/extensions/Blocks/Items/controls/price/currencySymbol.d.ts +0 -21
  236. package/dist/src/extensions/Blocks/Items/controls/price/formattedPrice.d.ts +0 -14
  237. package/dist/src/extensions/Blocks/Items/controls/price/hideDiscount.d.ts +0 -13
  238. package/dist/src/extensions/Blocks/Items/controls/price/priceOrientation.d.ts +0 -15
  239. package/dist/src/extensions/Blocks/Items/controls/settingsControl.d.ts +0 -48
  240. package/dist/src/extensions/Blocks/Items/enums/controlEnums.d.ts +0 -62
  241. package/dist/src/extensions/Blocks/Items/enums/productEnums.d.ts +0 -163
  242. package/dist/src/extensions/Blocks/Items/enums/settingsEnums.d.ts +0 -50
  243. package/dist/src/extensions/Blocks/Items/extension.d.ts +0 -2
  244. package/dist/src/extensions/Blocks/Items/iconsRegistry.d.ts +0 -4
  245. package/dist/src/extensions/Blocks/Items/settingsPanel.d.ts +0 -4
  246. package/dist/src/extensions/Blocks/Items/store/items-block.d.ts +0 -43
  247. package/dist/src/extensions/Blocks/Items/template.d.ts +0 -24
  248. package/dist/src/extensions/Blocks/Items/utils/configBlockUtils.d.ts +0 -23
  249. package/dist/src/extensions/Blocks/Items/utils/syncAttributeFromConfigBlock.d.ts +0 -32
  250. package/dist/src/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.d.ts +0 -50
  251. package/dist/src/extensions/Blocks/Items/utils/updateAttributes.d.ts +0 -8
  252. package/dist/src/extensions/Blocks/Recommendation/controls/button/align.d.ts +0 -5
  253. package/dist/src/extensions/Blocks/Recommendation/controls/button/border.d.ts +0 -5
  254. package/dist/src/extensions/Blocks/Recommendation/controls/button/borderRadius.d.ts +0 -5
  255. package/dist/src/extensions/Blocks/Recommendation/controls/button/color.d.ts +0 -5
  256. package/dist/src/extensions/Blocks/Recommendation/controls/button/fitToContent.d.ts +0 -5
  257. package/dist/src/extensions/Blocks/Recommendation/controls/button/fontFamily.d.ts +0 -5
  258. package/dist/src/extensions/Blocks/Recommendation/controls/button/margins.d.ts +0 -5
  259. package/dist/src/extensions/Blocks/Recommendation/controls/button/paddings.d.ts +0 -5
  260. package/dist/src/extensions/Blocks/Recommendation/controls/button/text.d.ts +0 -5
  261. package/dist/src/extensions/Blocks/Recommendation/controls/button/textSize.d.ts +0 -5
  262. package/dist/src/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.d.ts +0 -5
  263. package/dist/src/extensions/Blocks/Recommendation/controls/image/margins.d.ts +0 -5
  264. package/dist/src/extensions/Blocks/Recommendation/controls/image/size.d.ts +0 -5
  265. package/dist/src/extensions/Blocks/Recommendation/controls/name/align.d.ts +0 -5
  266. package/dist/src/extensions/Blocks/Recommendation/controls/name/background.d.ts +0 -5
  267. package/dist/src/extensions/Blocks/Recommendation/controls/name/color.d.ts +0 -5
  268. package/dist/src/extensions/Blocks/Recommendation/controls/name/fontFamily.d.ts +0 -5
  269. package/dist/src/extensions/Blocks/Recommendation/controls/name/paddings.d.ts +0 -5
  270. package/dist/src/extensions/Blocks/Recommendation/controls/name/size.d.ts +0 -5
  271. package/dist/src/extensions/Blocks/Recommendation/controls/name/style.d.ts +0 -5
  272. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/align.d.ts +0 -5
  273. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/background.d.ts +0 -5
  274. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/color.d.ts +0 -5
  275. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.d.ts +0 -5
  276. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/paddings.d.ts +0 -5
  277. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/size.d.ts +0 -5
  278. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/style.d.ts +0 -5
  279. package/dist/src/extensions/Blocks/Recommendation/controls/price/align.d.ts +0 -5
  280. package/dist/src/extensions/Blocks/Recommendation/controls/price/background.d.ts +0 -5
  281. package/dist/src/extensions/Blocks/Recommendation/controls/price/color.d.ts +0 -5
  282. package/dist/src/extensions/Blocks/Recommendation/controls/price/fontFamily.d.ts +0 -5
  283. package/dist/src/extensions/Blocks/Recommendation/controls/price/paddings.d.ts +0 -5
  284. package/dist/src/extensions/Blocks/Recommendation/controls/price/size.d.ts +0 -5
  285. package/dist/src/extensions/Blocks/Recommendation/controls/price/style.d.ts +0 -5
  286. package/dist/src/utils/environmentUtil.d.ts +0 -5
  287. package/dist/src/utils/pairProductVariables.d.ts +0 -7
  288. package/dist/utils/environmentUtil.js +0 -4
  289. package/dist/utils/pairProductVariables.js +0 -136
@@ -2,10 +2,10 @@ var d = Object.defineProperty;
2
2
  var l = (r, n, t) => n in r ? d(r, n, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[n] = t;
3
3
  var o = (r, n, t) => l(r, typeof n != "symbol" ? n + "" : n, t);
4
4
  import { useHttp as L } from "../../../composables/useHttp.js";
5
- import { DEFAULT_UNSUBSCRIBE_GROUP as c } from "../../../enums/unsubscribe.js";
5
+ import { DEFAULT_UNSUBSCRIBE_GROUP as E } from "../../../enums/unsubscribe.js";
6
6
  import { Control as p, UIElementType as i, UEAttr as e, ModificationDescription as h } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
7
- const m = "ui-elements-radio-button", u = "select", { get: $ } = L();
8
- class S extends p {
7
+ const m = "ui-elements-radio-button", a = "select", { get: $ } = L();
8
+ class _ extends p {
9
9
  constructor() {
10
10
  super(...arguments);
11
11
  o(this, "currentNode");
@@ -16,16 +16,15 @@ class S extends p {
16
16
  return m;
17
17
  }
18
18
  _setFormValues() {
19
- if (this.selectedUnsubGroup = "", this.currentNode && "getAttribute" in this.currentNode) {
19
+ if (this.currentNode && "getAttribute" in this.currentNode) {
20
20
  const t = this.currentNode.getAttribute("id");
21
21
  if (t) {
22
- const s = t === c.sendGridId ? t : Number(t);
23
- s && (this.selectedUnsubGroup = s);
22
+ const s = t === E.sendGridId ? t : Number(t);
23
+ s && (this.selectedUnsubGroup = s, this.api.updateValues({
24
+ [a]: this.selectedUnsubGroup
25
+ }));
24
26
  }
25
27
  }
26
- this.api.updateValues({
27
- [u]: this.selectedUnsubGroup
28
- });
29
28
  }
30
29
  _getLabel(t, s = `${Math.random()}`) {
31
30
  return `
@@ -55,7 +54,7 @@ class S extends p {
55
54
  </${i.LABEL}>
56
55
 
57
56
  <${i.SELECTPICKER}
58
- ${e.SELECTPICKER.name}="${u}"
57
+ ${e.SELECTPICKER.name}="${a}"
59
58
  ${e.SELECTPICKER.placeholder}="${this.api.translate("Select Unsubscribe Group")}">
60
59
  ${this._getSelect()}
61
60
  </${i.SELECTPICKER}>
@@ -67,27 +66,27 @@ class S extends p {
67
66
  this.currentNode && this.api.getDocumentModifier().modifyHtml(this.currentNode).setAttribute("id", t.toString()).apply(new h(`Updated text to ${t}`));
68
67
  }
69
68
  _listenToFormUpdates() {
70
- this.api.onValueChanged(u, (t) => this._onSelectChange(t));
69
+ this.api.onValueChanged(a, (t) => this._onSelectChange(t));
71
70
  }
72
71
  onTemplateNodeUpdated(t) {
73
- this.currentNode = t, this._setFormValues();
72
+ this.currentNode = t;
74
73
  }
75
74
  // eslint-disable-next-line @typescript-eslint/no-misused-promises
76
75
  async onRender() {
77
76
  const t = await $(
78
77
  "/unsubscribe-groups/unsubscribe-list"
79
- ), s = [c, ...t.data], E = s.map((a) => ({
80
- [e.SELECT_ITEM.text]: a.name,
81
- [e.SELECT_ITEM.value]: a.sendGridId
78
+ ), s = [E, ...t.data], c = s.map((u) => ({
79
+ [e.SELECT_ITEM.text]: u.name,
80
+ [e.SELECT_ITEM.value]: u.sendGridId
82
81
  }));
83
82
  this.unsubList = s, this.api.setUIEAttribute(
84
- u,
83
+ a,
85
84
  e.SELECTPICKER.items,
86
- E
85
+ c
87
86
  ), this._setFormValues(), this._listenToFormUpdates();
88
87
  }
89
88
  }
90
89
  export {
91
90
  m as CONTROL_BLOCK_ID,
92
- S as RadioButtonControl
91
+ _ as RadioButtonControl
93
92
  };
@@ -5,7 +5,7 @@ const e = {
5
5
  YES: "Yes",
6
6
  NO: "No"
7
7
  }, d = `
8
- <td align="left" class="radio-button radio-button-v2 esd-block-radio es-p10t es-p10b es-p30r es-p30l">
8
+ <td align="left" class="radio-button-v2 esd-block-radio es-p10t es-p10b es-p30r es-p30l">
9
9
  <table cellpadding="0" cellspacing="0" role="presentation" width="100%">
10
10
  <tbody>
11
11
  <tr>
@@ -75,21 +75,12 @@ const e = {
75
75
  </tbody>
76
76
  </table>
77
77
  </td>
78
- `, a = `
79
- <td
80
- align="left"
81
- esd-extension-block-id="radio-button-block"
78
+ `, l = `
79
+ <td
80
+ align="left"
81
+ esd-extension-block-id="radio-button-block"
82
82
  esd-handler-name="esd-extension-RadioButtonBlock"
83
- class="
84
- radio-button
85
- radio-button-v2
86
- esd-block-ra
87
- esd-radio-button-block
88
- esd-extension-block
89
- es-p10t
90
- es-p10b
91
- es-p30r
92
- es-p30l"
83
+ class="radio-button-v2 esd-block-ra esd-radio-button-block esd-extension-block es-p10t es-p10b es-p30r es-p30l"
93
84
  >
94
85
  <table cellpadding="0" cellspacing="0" role="presentation" width="100%">
95
86
  <tbody>
@@ -149,10 +140,10 @@ const e = {
149
140
  </table>
150
141
  </td>
151
142
  `;
152
- function l() {
143
+ function a() {
153
144
  return d.replace("{-{-TITLE-}-}", `<p path="1">${e.TITLE}</p>`).replace("{-{-DESCRIPTION-}-}", `<p path="1">${e.DESCRIPTION}</p>`).replace("{-{-YES-}-}", `<p path="1">${e.YES}</p>`).replace("{-{-NO-}-}", `<p path="1">${e.NO}</p>`);
154
145
  }
155
146
  export {
156
- a as default,
157
- l as getDefaultTemplate
147
+ l as default,
148
+ a as getDefaultTemplate
158
149
  };
@@ -1,103 +1,185 @@
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 }
1
+ import { ModificationDescription as n } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
+ import { CommonControl as _ } from "../common-control.js";
3
+ import { ATTR_PRODUCT_IMAGE as m, ATTR_PRODUCT_NAME as y, ATTR_PRODUCT_PRICE as T, ATTR_PRODUCT_OLD_PRICE as h, ATTR_PRODUCT_BUTTON as C } from "./constants.js";
4
+ const f = "ui-elements-recommendation-card-composition", l = ".recommendation-attribute-row", g = "tr.recommendation-product-row", c = "data-card-composition", a = "data-attribute-type", d = "data-visibility", s = [
5
+ { key: m, label: "Product Image", visible: !0 },
6
+ { key: y, label: "Product Name", visible: !0 },
7
+ { key: T, label: "Product Price", visible: !0 },
8
+ { key: h, label: "Product Original Price", visible: !0 },
9
+ { key: C, label: "Product Button", visible: !0 }
12
10
  ];
13
- class g extends b {
14
- constructor() {
15
- super(...arguments);
16
- a(this, "currentComposition", []);
17
- a(this, "currentVisibility", {});
18
- }
11
+ class k extends _ {
19
12
  getId() {
20
- return h;
13
+ return f;
21
14
  }
22
15
  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
- `
16
+ const t = s.map((i) => ({
17
+ key: i.key,
18
+ label: i.label,
19
+ content: this._createItemContent(i.label, i.key)
33
20
  }));
34
21
  return `
35
22
  <div class="container">
36
23
  ${this._GuLabel({ text: "Card Element Order & Visibility" })}
37
- ${this._GuOrderable("cardComposition", i)}
24
+ ${this._GuOrderable("cardComposition", t)}
38
25
  </div>
39
26
  `;
40
27
  }
41
28
  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();
29
+ this._initializeComposition(), this._registerValueChangeListeners();
30
+ }
31
+ onTemplateNodeUpdated(t) {
32
+ super.onTemplateNodeUpdated(t), this._initializeComposition();
33
+ }
34
+ /**
35
+ * Creates the HTML content for an orderable item with label and toggle
36
+ */
37
+ _createItemContent(t, i) {
38
+ return `
39
+ <div style="display: flex; align-items: center; justify-content: space-between;
40
+ padding: 8px; gap: 8px;">
41
+ <span style="flex: 1;">${t}</span>
42
+ ${this._GuToggle(`visibility_${i}`)}
43
+ </div>
44
+ `;
45
+ }
46
+ /**
47
+ * Registers event listeners for composition and visibility changes
48
+ */
49
+ _registerValueChangeListeners() {
50
+ this.api.onValueChanged("cardComposition", (t) => {
51
+ this._applyCompositionToBlock(t);
52
+ }), s.forEach((t) => {
53
+ this.api.onValueChanged(`visibility_${t.key}`, (i) => {
54
+ this._applyVisibilityToBlock(t.key, i);
47
55
  });
48
56
  });
49
57
  }
50
- onTemplateNodeUpdated(i) {
51
- super.onTemplateNodeUpdated(i), this._initializeComposition();
52
- }
53
58
  /**
54
- * Initialize the composition order and visibility from the block or use defaults
59
+ * Initializes composition order and visibility state from the current node
55
60
  */
56
61
  _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
62
+ const t = this._readCompositionFromNode(), i = this._readVisibilityFromRows(), e = {
63
+ cardComposition: t,
64
+ ...this._buildVisibilityValues(i)
76
65
  };
77
- s.forEach((t) => {
78
- d[`visibility_${t.key}`] = this.currentVisibility[t.key] ?? !0;
79
- }), this.api.updateValues(d);
66
+ this.api.updateValues(e);
67
+ }
68
+ /**
69
+ * Reads composition order from node's data-card-composition attribute
70
+ * Falls back to default order if attribute is not present
71
+ */
72
+ _readCompositionFromNode() {
73
+ if (!this.currentNode || !("getAttribute" in this.currentNode))
74
+ return s.map((i) => i.key);
75
+ const t = this.currentNode.getAttribute(c);
76
+ return t ? t.split(",").filter(Boolean) : s.map((i) => i.key);
77
+ }
78
+ /**
79
+ * Builds visibility values object from the visibility map
80
+ */
81
+ _buildVisibilityValues(t) {
82
+ return s.reduce((i, e) => (i[`visibility_${e.key}`] = t[e.key] ?? !0, i), {});
83
+ }
84
+ /**
85
+ * Read visibility state from individual row elements' data-visibility attributes
86
+ * This ensures toggles reflect the actual DOM state
87
+ */
88
+ _readVisibilityFromRows() {
89
+ if (!this.currentNode)
90
+ return this._getDefaultVisibilities();
91
+ const t = Array.from(this.currentNode.querySelectorAll(l));
92
+ console.debug("_readVisibilityFromRows - found attribute rows:", t.length);
93
+ const i = this._extractVisibilityFromRows(t);
94
+ return this._mergeWithDefaults(i);
95
+ }
96
+ /**
97
+ * Returns default visibility values for all items
98
+ */
99
+ _getDefaultVisibilities() {
100
+ return s.reduce((t, i) => (t[i.key] = i.visible, t), {});
101
+ }
102
+ /**
103
+ * Extracts visibility values from DOM nodes
104
+ */
105
+ _extractVisibilityFromRows(t) {
106
+ const i = {};
107
+ return t.forEach((e) => {
108
+ if (!("getAttribute" in e))
109
+ return;
110
+ const o = e.getAttribute(a), r = e.getAttribute(d);
111
+ o && r !== null && (i[o] = this._parseVisibilityValue(r), console.debug(
112
+ `_readVisibilityFromRows - ${o}: ${i[o]} (raw: ${r})`
113
+ ));
114
+ }), i;
115
+ }
116
+ /**
117
+ * Parses visibility value from string to boolean
118
+ * Accepts "1", "true" as true, everything else as false
119
+ */
120
+ _parseVisibilityValue(t) {
121
+ return t === "1" || t === "true";
122
+ }
123
+ /**
124
+ * Merges extracted visibilities with default values for missing keys
125
+ */
126
+ _mergeWithDefaults(t) {
127
+ return s.forEach((i) => {
128
+ i.key in t || (t[i.key] = i.visible, console.debug(`_readVisibilityFromRows - ${i.key}: using default ${i.visible}`));
129
+ }), t;
80
130
  }
81
131
  /**
82
132
  * Apply the reordered composition to the block's HTML structure
133
+ * Updates the data-card-composition attribute and reorders product attributes
134
+ */
135
+ _applyCompositionToBlock(t) {
136
+ if (console.debug("_applyCompositionToBlock - composition:", t), !this.currentNode) {
137
+ console.debug("_applyCompositionToBlock - no current node");
138
+ return;
139
+ }
140
+ this.api.getDocumentModifier().modifyHtml(this.currentNode).setAttribute(c, t.join(",")).apply(new n("Update card composition")), this._reorderProductAttributes(t);
141
+ }
142
+ /**
143
+ * Reorders attribute rows within each product row based on composition order
83
144
  */
84
- _applyCompositionToBlock(i) {
145
+ _reorderProductAttributes(t) {
85
146
  if (!this.currentNode)
86
147
  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"));
148
+ const i = this.currentNode.querySelectorAll(g);
149
+ if (!(i != null && i.length))
150
+ return;
151
+ const e = this.api.getDocumentModifier();
152
+ i.forEach((o) => {
153
+ const r = this._buildCompositionHtml(o, t);
154
+ e.modifyHtml(o).setInnerHtml(r);
155
+ }), e.apply(new n("Reorder product attributes"));
156
+ }
157
+ /**
158
+ * Builds HTML string with attributes ordered according to composition
159
+ */
160
+ _buildCompositionHtml(t, i) {
161
+ return i.reduce((e, o) => {
162
+ const r = t.querySelector(`${l}[${a}="${o}"]`);
163
+ return r && "getOuterHTML" in r ? e + r.getOuterHTML() : e;
164
+ }, "");
89
165
  }
90
166
  /**
91
167
  * Apply visibility changes to the block's HTML structure
168
+ * Updates display style and data-visibility attribute for all matching rows
92
169
  */
93
- _applyVisibilityToBlock() {
94
- if (!this.currentNode)
170
+ _applyVisibilityToBlock(t, i) {
171
+ if (console.debug("_applyVisibilityToBlock", t, i), !this.currentNode)
172
+ return;
173
+ const e = this.currentNode.querySelectorAll(`${l}[${a}="${t}"]`);
174
+ if (!(e != null && e.length))
95
175
  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"));
176
+ const o = i ? "table-row" : "none", r = i ? "1" : "0", p = `Set ${t} visibility to ${i ? "visible" : "hidden"}`, u = this.api.getDocumentModifier();
177
+ e.forEach((b) => {
178
+ u.modifyHtml(b).setStyle("display", o).setAttribute(d, r);
179
+ }), u.apply(new n(p));
98
180
  }
99
181
  }
100
182
  export {
101
- h as COMPOSITION_CONTROL_BLOCK_ID,
102
- g as RecommendationCardCompositionControl
183
+ f as COMPOSITION_CONTROL_BLOCK_ID,
184
+ k as RecommendationCardCompositionControl
103
185
  };
@@ -1,5 +1,11 @@
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 || {});
1
+ const _ = "productImage", t = "productName", l = "productPrice", T = "productOldPrice", b = "productButton";
2
+ 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.NAME_TEXT_TRIM = "recommendation-block-name-text-trim-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
3
  export {
4
+ b as ATTR_PRODUCT_BUTTON,
5
+ _ as ATTR_PRODUCT_IMAGE,
6
+ t as ATTR_PRODUCT_NAME,
7
+ T as ATTR_PRODUCT_OLD_PRICE,
8
+ l as ATTR_PRODUCT_PRICE,
3
9
  o as RecommendationBlockId,
4
10
  r as RecommendationControlId
5
11
  };
@@ -1,14 +1,14 @@
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 = {
1
+ var p = Object.defineProperty;
2
+ var S = (a, s, e) => s in a ? p(a, s, { enumerable: !0, configurable: !0, writable: !0, value: e }) : a[s] = e;
3
+ var u = (a, s, e) => S(a, typeof s != "symbol" ? s + "" : s, e);
4
+ import { currencyDecimalCounts as _, currencyOperators as C, currencyLocationMaps as R } from "../../../enums/extensions/recommendationBlock.js";
5
+ import { UEAttr as O, ModificationDescription as g } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
6
+ import { CommonControl as U } from "../common-control.js";
7
+ import { useRecommendationExtensionStore as N } from "./store/recommendation.js";
8
+ import { prepareProductRows as E } from "./templates/blockTemplate.js";
9
+ import { DEFAULT_CARD_COMPOSITION as d, getDefaultProducts as L } from "./templates/templateUtils.js";
10
+ import { useDebounceFn as T } from "../../../node_modules/@vueuse/shared/index.js";
11
+ const f = "ui-elements-recommendation-block", t = {
12
12
  ALGORITHM: "strategy",
13
13
  PRODUCT_IDS: "productIds",
14
14
  LOCALE: "language",
@@ -21,24 +21,23 @@ const L = "ui-elements-recommendation-block", t = {
21
21
  FILTERS: "filterStatus",
22
22
  PRODUCT_COUNT: "size",
23
23
  PRODUCT_IN_ROW: "cardsInRow",
24
- SHUFFLE_PRODUCTS: "shuffleProducts",
25
- RESPONSIVE: "unresponsive"
24
+ SHUFFLE_PRODUCTS: "shuffleProducts"
26
25
  };
27
- class b extends g {
26
+ class Y extends U {
28
27
  constructor() {
29
28
  super(...arguments);
30
- r(this, "store", O());
31
- r(this, "storeUnsubscription", () => {
29
+ u(this, "store", N());
30
+ u(this, "storeUnsubscription", () => {
32
31
  });
33
- r(this, "addFilterListener", () => {
32
+ u(this, "addFilterListener", () => {
34
33
  });
35
- r(this, "addFilterButton", null);
36
- r(this, "_debouncedRegenerateProductRows", U(() => {
34
+ u(this, "addFilterButton", null);
35
+ u(this, "_debouncedRegenerateProductRows", T(() => {
37
36
  this._regenerateProductRows();
38
37
  }, 500));
39
38
  }
40
39
  getId() {
41
- return L;
40
+ return f;
42
41
  }
43
42
  getTemplate() {
44
43
  return `
@@ -49,7 +48,6 @@ class b extends g {
49
48
  ${this._getFilterStatus()}
50
49
  ${this._getProductLayout()}
51
50
  ${this._getShuffleProducts()}
52
- ${this._getResponsive()}
53
51
  </div>
54
52
  `;
55
53
  }
@@ -79,27 +77,25 @@ class b extends g {
79
77
  [t.CURRENCY_DECIMAL_COUNT]: e.currencySettings.decimalCount,
80
78
  [t.PRODUCT_COUNT]: e.size,
81
79
  [t.PRODUCT_IN_ROW]: e.cardsInRow,
82
- [t.SHUFFLE_PRODUCTS]: e.shuffleProducts,
83
- [t.RESPONSIVE]: !e.unresponsive
80
+ [t.SHUFFLE_PRODUCTS]: e.shuffleProducts
84
81
  });
85
82
  }
86
83
  _initializeSelectItems() {
87
- const { store: e } = this, o = e.getActivePredictiveAlgorithms, i = e.getLanguages, a = {
84
+ const { store: e } = this, o = e.getActivePredictiveAlgorithms, i = e.getLanguages, n = {
88
85
  [t.ALGORITHM]: o,
89
86
  [t.LOCALE]: i,
90
87
  [t.CURRENCY]: e.currencyList,
91
- [t.CURRENCY_LOCATION]: h,
88
+ [t.CURRENCY_LOCATION]: R,
92
89
  [t.CURRENCY_SYMBOL]: e.getCurrencySymbolList,
93
- [t.CURRENCY_THOUSAND_SEPARATOR]: c,
94
- [t.CURRENCY_DECIMAL_SEPARATOR]: c,
95
- [t.CURRENCY_DECIMAL_COUNT]: l,
90
+ [t.CURRENCY_THOUSAND_SEPARATOR]: C,
91
+ [t.CURRENCY_DECIMAL_SEPARATOR]: C,
92
+ [t.CURRENCY_DECIMAL_COUNT]: _,
96
93
  [t.PRODUCT_COUNT]: Number(e.recommendationConfigs.size),
97
94
  [t.PRODUCT_IN_ROW]: e.recommendationConfigs.cardsInRow,
98
- [t.SHUFFLE_PRODUCTS]: e.recommendationConfigs.shuffleProducts,
99
- [t.RESPONSIVE]: !e.recommendationConfigs.unresponsive
95
+ [t.SHUFFLE_PRODUCTS]: e.recommendationConfigs.shuffleProducts
100
96
  };
101
- Object.entries(a).forEach(([u, d]) => {
102
- this.api.setUIEAttribute(u, m.SELECTPICKER.items, d);
97
+ Object.entries(n).forEach(([r, l]) => {
98
+ this.api.setUIEAttribute(r, O.SELECTPICKER.items, l);
103
99
  });
104
100
  }
105
101
  _getAlgorithms() {
@@ -145,7 +141,7 @@ class b extends g {
145
141
  this._GuSelect({
146
142
  name: t.CURRENCY_LOCATION,
147
143
  placeholder: "Select Currency Location",
148
- options: h
144
+ options: R
149
145
  }),
150
146
  this._GuLabel({ text: "Currency Symbol" }),
151
147
  this._GuSelect({
@@ -157,19 +153,19 @@ class b extends g {
157
153
  this._GuSelect({
158
154
  name: t.CURRENCY_THOUSAND_SEPARATOR,
159
155
  placeholder: "Select Thousand Separator",
160
- options: c
156
+ options: C
161
157
  }),
162
158
  this._GuLabel({ text: "Decimal Separator" }),
163
159
  this._GuSelect({
164
160
  name: t.CURRENCY_DECIMAL_SEPARATOR,
165
161
  placeholder: "Select Decimal Separator",
166
- options: c
162
+ options: C
167
163
  }),
168
164
  this._GuLabel({ text: "Decimal Count" }),
169
165
  this._GuSelect({
170
166
  name: t.CURRENCY_DECIMAL_COUNT,
171
167
  placeholder: "Select Decimal Count",
172
- options: l
168
+ options: _
173
169
  })
174
170
  ])}
175
171
  `;
@@ -204,20 +200,6 @@ class b extends g {
204
200
  ])}
205
201
  `;
206
202
  }
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
203
  _onFilterSelectClick() {
222
204
  this.store.$patch({
223
205
  filterSelectionDrawerStatus: !0
@@ -235,12 +217,12 @@ class b extends g {
235
217
  */
236
218
  _getCardComposition() {
237
219
  if (!this.currentNode)
238
- return C;
220
+ return d;
239
221
  const e = this.currentNode.querySelector(".ins-recommendation-v3-block-v2");
240
222
  if (!e || !("getAttribute" in e))
241
- return C;
223
+ return d;
242
224
  const o = e.getAttribute("data-card-composition");
243
- return o ? o.split(",").filter(Boolean) : C;
225
+ return o ? o.split(",").filter(Boolean) : d;
244
226
  }
245
227
  _regenerateProductRows() {
246
228
  if (!this.currentNode || !("querySelector" in this.currentNode))
@@ -250,8 +232,41 @@ class b extends g {
250
232
  console.error("Could not find container table for product rows");
251
233
  return;
252
234
  }
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"));
235
+ const o = this.store.recommendationProducts.length > 0 ? this.store.recommendationProducts : L(), { cardsInRow: i } = this.store.recommendationConfigs, n = this._getCardComposition(), r = E(o, i, n);
236
+ this.api.getDocumentModifier().modifyHtml(e).setInnerHtml(r).apply(new g("Updated product")), this._reapplySpacing();
237
+ }
238
+ /**
239
+ * Reapply spacing values after product regeneration
240
+ * This ensures spacing persists when products are regenerated
241
+ */
242
+ _reapplySpacing() {
243
+ if (!this.currentNode)
244
+ return;
245
+ const e = this.currentNode.querySelector(".ins-recommendation-v3-block-v2");
246
+ if (!e || !("getAttribute" in e))
247
+ return;
248
+ const o = e.getAttribute("data-column-spacing"), i = e.getAttribute("data-row-spacing"), n = this.api.getDocumentModifier();
249
+ if (o) {
250
+ const r = parseInt(o);
251
+ if (!Number.isNaN(r)) {
252
+ const h = `0 ${Math.floor(r / 2)}px`;
253
+ Array.from(
254
+ this.currentNode.querySelectorAll(".product-card-wrapper")
255
+ ).forEach((c) => {
256
+ "parentNode" in c && c.parentNode && typeof c.parentNode == "object" && "tagName" in c.parentNode && c.parentNode.tagName === "TD" && n.modifyHtml(c.parentNode).setStyle("padding", h);
257
+ });
258
+ }
259
+ }
260
+ if (i) {
261
+ const r = parseInt(i);
262
+ if (!Number.isNaN(r)) {
263
+ const l = `${r}px`;
264
+ Array.from(this.currentNode.querySelectorAll(".spacer")).forEach((m) => {
265
+ n.modifyHtml(m).setStyle("height", l);
266
+ });
267
+ }
268
+ }
269
+ (o || i) && n.apply(new g("Reapply spacing after regeneration"));
255
270
  }
256
271
  _onCurrencyConfigChange(e, o) {
257
272
  this.currentNode && this.store.$patch({
@@ -288,8 +303,8 @@ class b extends g {
288
303
  t.CURRENCY_DECIMAL_SEPARATOR,
289
304
  t.CURRENCY_DECIMAL_COUNT
290
305
  ].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);
306
+ this.api.onValueChanged(i, (n) => this._onCurrencyConfigChange(i, n));
307
+ }), 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.addFilterListener = this._onFilterSelectClick.bind(this), this.addFilterButton = this.getContainer().querySelector("#guido__btn-add-filter"), (o = this.addFilterButton) == null || o.addEventListener("click", this.addFilterListener);
293
308
  }
294
309
  _listenStateUpdates() {
295
310
  this.storeUnsubscription = this.store.$subscribe((e) => {
@@ -301,6 +316,6 @@ class b extends g {
301
316
  }
302
317
  }
303
318
  export {
304
- L as CONTROL_BLOCK_ID,
305
- b as RecommendationBlockControl
319
+ f as CONTROL_BLOCK_ID,
320
+ Y as RecommendationBlockControl
306
321
  };