@useinsider/guido 3.2.0-beta.7e0c6bd → 3.2.0-beta.7fb9b70

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 (337) hide show
  1. package/README.md +117 -1
  2. package/dist/@types/config/schemas.js +153 -95
  3. package/dist/@types/config/validator.js +34 -27
  4. package/dist/components/Guido.vue.js +4 -4
  5. package/dist/components/Guido.vue2.js +95 -88
  6. package/dist/components/organisms/AutoSaveController.vue.js +17 -0
  7. package/dist/components/organisms/AutoSaveController.vue2.js +13 -0
  8. package/dist/components/organisms/base/Toaster.vue2.js +11 -10
  9. package/dist/components/organisms/email-preview/desktop-preview/DesktopPreview.vue2.js +12 -12
  10. package/dist/components/organisms/email-preview/mobile-preview/ContentView.vue2.js +6 -6
  11. package/dist/components/organisms/email-preview/mobile-preview/InboxView.vue2.js +15 -9
  12. package/dist/components/organisms/extensions/recommendation/FilterItem.vue2.js +40 -31
  13. package/dist/components/organisms/extensions/recommendation/FilterSelectionDrawer.vue2.js +20 -19
  14. package/dist/components/organisms/extensions/recommendation/Filters.vue2.js +14 -11
  15. package/dist/components/organisms/header/AutoSaveToggle.vue.js +22 -0
  16. package/dist/components/organisms/header/AutoSaveToggle.vue2.js +19 -0
  17. package/dist/components/organisms/header/EditorActions.vue.js +12 -11
  18. package/dist/components/organisms/header/EditorActions.vue2.js +22 -18
  19. package/dist/components/organisms/header/HeaderWrapper.vue2.js +15 -12
  20. package/dist/components/organisms/header/LeftSlot.vue2.js +19 -16
  21. package/dist/components/organisms/header/MiddleSlot.vue2.js +11 -14
  22. package/dist/components/organisms/header/RightSlot.vue.js +8 -8
  23. package/dist/components/organisms/header/RightSlot.vue2.js +17 -13
  24. package/dist/components/organisms/onboarding/AMPOnboarding.vue.js +12 -11
  25. package/dist/components/organisms/onboarding/AMPOnboarding.vue2.js +26 -24
  26. package/dist/components/organisms/onboarding/GenericOnboarding.vue.js +12 -11
  27. package/dist/components/organisms/onboarding/GenericOnboarding.vue2.js +44 -41
  28. package/dist/components/organisms/onboarding/ItemsOnboarding.vue.js +12 -11
  29. package/dist/components/organisms/onboarding/ItemsOnboarding.vue2.js +38 -36
  30. package/dist/components/organisms/onboarding/NewVersionPopup.vue2.js +21 -18
  31. package/dist/components/organisms/onboarding/OnboardingWrapper.vue2.js +31 -27
  32. package/dist/components/organisms/onboarding/TextBlockOnboarding.vue.js +12 -11
  33. package/dist/components/organisms/onboarding/TextBlockOnboarding.vue2.js +32 -30
  34. package/dist/components/organisms/onboarding/VersionHistoryOnboarding.vue.js +12 -11
  35. package/dist/components/organisms/onboarding/VersionHistoryOnboarding.vue2.js +23 -21
  36. package/dist/components/organisms/save-as-template/SaveAsTemplateDrawer.vue2.js +9 -8
  37. package/dist/components/organisms/unsubscribe/UnsubscribeWrapper.vue.js +10 -9
  38. package/dist/composables/useActionsApi.js +38 -37
  39. package/dist/composables/useAutoSave.js +71 -0
  40. package/dist/composables/useBlocksConfig.js +26 -26
  41. package/dist/composables/useFullStoryBridge.js +9 -8
  42. package/dist/composables/useHtmlCompiler.js +26 -34
  43. package/dist/composables/useHtmlValidator.js +109 -101
  44. package/dist/composables/useHttp.js +30 -30
  45. package/dist/composables/usePartner.js +1 -1
  46. package/dist/composables/useRecommendation.js +46 -25
  47. package/dist/composables/useRibbonOffset.js +15 -15
  48. package/dist/composables/useSave.js +25 -21
  49. package/dist/composables/useStripo.js +48 -53
  50. package/dist/composables/useSyncModuleExtractor.js +29 -31
  51. package/dist/composables/useTimerClone.js +25 -24
  52. package/dist/composables/useTranslations.js +16 -23
  53. package/dist/composables/useValidation.js +8 -7
  54. package/dist/composables/validators/useCouponBlockValidator.js +24 -0
  55. package/dist/composables/validators/useLiquidValidator.js +13 -13
  56. package/dist/config/compiler/recommendationCompilerRules.js +25 -25
  57. package/dist/config/compiler/unsubscribeCompilerRules.js +19 -17
  58. package/dist/config/compiler/utils/recommendationCompilerUtils.js +105 -71
  59. package/dist/config/migrator/checkboxMigrator.js +21 -20
  60. package/dist/config/migrator/couponBlockMigrator.js +19 -18
  61. package/dist/config/migrator/index.js +9 -9
  62. package/dist/config/migrator/itemsBlockMigrator.js +89 -87
  63. package/dist/config/migrator/radioButtonMigrator.js +63 -42
  64. package/dist/config/migrator/recommendation/compositionMapper.js +98 -0
  65. package/dist/config/migrator/recommendation/extractors.js +27 -0
  66. package/dist/config/migrator/recommendation/htmlBuilder.js +496 -0
  67. package/dist/config/migrator/recommendation/parseLegacyConfig.js +33 -0
  68. package/dist/config/migrator/recommendation/settingsMapper.js +70 -0
  69. package/dist/config/migrator/recommendation/themeMapper.js +93 -0
  70. package/dist/config/migrator/recommendationMigrator.js +74 -287
  71. package/dist/config/migrator/unsubscribeMigrator.js +11 -10
  72. package/dist/enums/extensions/recommendationBlock.js +2 -1
  73. package/dist/enums/unsubscribe.js +19 -18
  74. package/dist/extensions/Blocks/Items/block.js +9 -9
  75. package/dist/extensions/Blocks/Items/controls/button/link.js +14 -14
  76. package/dist/extensions/Blocks/Items/controls/cardComposition.js +97 -89
  77. package/dist/extensions/Blocks/Items/controls/image/link.js +14 -14
  78. package/dist/extensions/Blocks/Items/controls/name/trimming.js +24 -23
  79. package/dist/extensions/Blocks/Items/controls/price/currencyLocation.js +14 -13
  80. package/dist/extensions/Blocks/Items/controls/price/currencySymbol.js +47 -44
  81. package/dist/extensions/Blocks/Items/controls/price/formattedPrice.js +38 -38
  82. package/dist/extensions/Blocks/Items/controls/price/hideDiscount.js +11 -11
  83. package/dist/extensions/Blocks/Items/controls/price/priceOrientation.js +40 -38
  84. package/dist/extensions/Blocks/Items/controls/price/singlePrice.js +35 -35
  85. package/dist/extensions/Blocks/Items/controls/settingsControl.js +162 -155
  86. package/dist/extensions/Blocks/Items/enums/productEnums.js +14 -9
  87. package/dist/extensions/Blocks/Items/template.js +210 -210
  88. package/dist/extensions/Blocks/RadioButton/template.js +1 -1
  89. package/dist/extensions/Blocks/Recommendation/block.js +35 -32
  90. package/dist/extensions/Blocks/Recommendation/constants/defaultConfig.js +5 -5
  91. package/dist/extensions/Blocks/Recommendation/controls/button/index.js +36 -36
  92. package/dist/extensions/Blocks/Recommendation/controls/cardComposition/index.js +133 -128
  93. package/dist/extensions/Blocks/Recommendation/controls/customAttribute/index.js +9 -9
  94. package/dist/extensions/Blocks/Recommendation/controls/customAttribute/textTrim.js +10 -10
  95. package/dist/extensions/Blocks/Recommendation/controls/image/index.js +9 -9
  96. package/dist/extensions/Blocks/Recommendation/controls/main/algorithm.js +34 -32
  97. package/dist/extensions/Blocks/Recommendation/controls/main/filters.js +6 -4
  98. package/dist/extensions/Blocks/Recommendation/controls/main/index.js +90 -82
  99. package/dist/extensions/Blocks/Recommendation/controls/main/layoutOrientation.js +18 -18
  100. package/dist/extensions/Blocks/Recommendation/controls/main/productCount.js +4 -4
  101. package/dist/extensions/Blocks/Recommendation/controls/main/productLayout.js +36 -35
  102. package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +240 -192
  103. package/dist/extensions/Blocks/Recommendation/controls/name/index.js +24 -24
  104. package/dist/extensions/Blocks/Recommendation/controls/name/textTrim.js +10 -10
  105. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/index.js +24 -24
  106. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.js +24 -24
  107. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.js +4 -4
  108. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.js +4 -4
  109. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/index.js +24 -24
  110. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.js +4 -4
  111. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.js +4 -4
  112. package/dist/extensions/Blocks/Recommendation/controls/price/index.js +24 -24
  113. package/dist/extensions/Blocks/Recommendation/controls/spacing/index.js +32 -32
  114. package/dist/extensions/Blocks/Recommendation/controls/syncInfoMessage.js +20 -18
  115. package/dist/extensions/Blocks/Recommendation/extension.js +32 -31
  116. package/dist/extensions/Blocks/Recommendation/services/configService.js +65 -29
  117. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +16 -8
  118. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +150 -109
  119. package/dist/extensions/Blocks/Recommendation/templates/grid/elementRenderer.js +37 -27
  120. package/dist/extensions/Blocks/Recommendation/templates/grid/template.js +10 -10
  121. package/dist/extensions/Blocks/Recommendation/templates/index.js +6 -6
  122. package/dist/extensions/Blocks/Recommendation/templates/list/elementRenderer.js +37 -26
  123. package/dist/extensions/Blocks/Recommendation/templates/list/template.js +1 -1
  124. package/dist/extensions/Blocks/Recommendation/templates/utils.js +47 -45
  125. package/dist/extensions/Blocks/Recommendation/utils/legacyStrategyMap.js +21 -0
  126. package/dist/extensions/Blocks/Recommendation/utils/preserveTextStyles.js +13 -22
  127. package/dist/extensions/Blocks/Recommendation/validation/filterSchema.js +16 -13
  128. package/dist/extensions/Blocks/Unsubscribe/control.js +13 -11
  129. package/dist/extensions/Blocks/Unsubscribe/elements/preview.js +18 -16
  130. package/dist/extensions/Blocks/common-control.js +26 -25
  131. package/dist/extensions/DynamicContent/dynamic-content.js +58 -53
  132. package/dist/guido.css +1 -1
  133. package/dist/library.js +12 -11
  134. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +234 -233
  135. package/dist/node_modules/lodash-es/_DataView.js +6 -0
  136. package/dist/node_modules/lodash-es/_Hash.js +20 -0
  137. package/dist/node_modules/lodash-es/_ListCache.js +20 -0
  138. package/dist/node_modules/lodash-es/_Map.js +6 -0
  139. package/dist/node_modules/lodash-es/_MapCache.js +20 -0
  140. package/dist/node_modules/lodash-es/_Promise.js +6 -0
  141. package/dist/node_modules/lodash-es/_Set.js +6 -0
  142. package/dist/node_modules/lodash-es/_SetCache.js +13 -0
  143. package/dist/node_modules/lodash-es/_Stack.js +18 -0
  144. package/dist/node_modules/lodash-es/_Symbol.js +5 -0
  145. package/dist/node_modules/lodash-es/_Uint8Array.js +5 -0
  146. package/dist/node_modules/lodash-es/_WeakMap.js +6 -0
  147. package/dist/node_modules/lodash-es/_arrayFilter.js +10 -0
  148. package/dist/node_modules/lodash-es/_arrayLikeKeys.js +20 -0
  149. package/dist/node_modules/lodash-es/_arrayMap.js +8 -0
  150. package/dist/node_modules/lodash-es/_arrayPush.js +8 -0
  151. package/dist/node_modules/lodash-es/_arraySome.js +9 -0
  152. package/dist/node_modules/lodash-es/_assocIndexOf.js +10 -0
  153. package/dist/node_modules/lodash-es/_baseEach.js +6 -0
  154. package/dist/node_modules/lodash-es/_baseFlatten.js +13 -0
  155. package/dist/node_modules/lodash-es/_baseFor.js +5 -0
  156. package/dist/node_modules/lodash-es/_baseForOwn.js +8 -0
  157. package/dist/node_modules/lodash-es/_baseGet.js +11 -0
  158. package/dist/node_modules/lodash-es/_baseGetAllKeys.js +9 -0
  159. package/dist/node_modules/lodash-es/_baseGetTag.js +10 -0
  160. package/dist/node_modules/lodash-es/_baseHasIn.js +6 -0
  161. package/dist/node_modules/lodash-es/_baseIsArguments.js +9 -0
  162. package/dist/node_modules/lodash-es/_baseIsEqual.js +8 -0
  163. package/dist/node_modules/lodash-es/_baseIsEqualDeep.js +32 -0
  164. package/dist/node_modules/lodash-es/_baseIsMatch.js +29 -0
  165. package/dist/node_modules/lodash-es/_baseIsNative.js +16 -0
  166. package/dist/node_modules/lodash-es/_baseIsTypedArray.js +12 -0
  167. package/dist/node_modules/lodash-es/_baseIteratee.js +11 -0
  168. package/dist/node_modules/lodash-es/_baseKeys.js +14 -0
  169. package/dist/node_modules/lodash-es/_baseMap.js +11 -0
  170. package/dist/node_modules/lodash-es/_baseMatches.js +12 -0
  171. package/dist/node_modules/lodash-es/_baseMatchesProperty.js +17 -0
  172. package/dist/node_modules/lodash-es/_baseProperty.js +8 -0
  173. package/dist/node_modules/lodash-es/_basePropertyDeep.js +9 -0
  174. package/dist/node_modules/lodash-es/_baseRange.js +9 -0
  175. package/dist/node_modules/lodash-es/_baseTimes.js +8 -0
  176. package/dist/node_modules/lodash-es/_baseToString.js +18 -0
  177. package/dist/node_modules/lodash-es/_baseTrim.js +8 -0
  178. package/dist/node_modules/lodash-es/_baseUnary.js +8 -0
  179. package/dist/node_modules/lodash-es/_cacheHas.js +6 -0
  180. package/dist/node_modules/lodash-es/_castPath.js +10 -0
  181. package/dist/node_modules/lodash-es/_coreJsData.js +5 -0
  182. package/dist/node_modules/lodash-es/_createBaseEach.js +15 -0
  183. package/dist/node_modules/lodash-es/_createBaseFor.js +13 -0
  184. package/dist/node_modules/lodash-es/_createRange.js +11 -0
  185. package/dist/node_modules/lodash-es/_equalArrays.js +40 -0
  186. package/dist/node_modules/lodash-es/_equalByTag.js +45 -0
  187. package/dist/node_modules/lodash-es/_equalObjects.js +36 -0
  188. package/dist/node_modules/lodash-es/_freeGlobal.js +4 -0
  189. package/dist/node_modules/lodash-es/_getAllKeys.js +9 -0
  190. package/dist/node_modules/lodash-es/_getMapData.js +8 -0
  191. package/dist/node_modules/lodash-es/_getMatchData.js +12 -0
  192. package/dist/node_modules/lodash-es/_getNative.js +9 -0
  193. package/dist/node_modules/lodash-es/_getRawTag.js +15 -0
  194. package/dist/node_modules/lodash-es/_getSymbols.js +10 -0
  195. package/dist/node_modules/lodash-es/_getTag.js +28 -0
  196. package/dist/node_modules/lodash-es/_getValue.js +6 -0
  197. package/dist/node_modules/lodash-es/_hasPath.js +19 -0
  198. package/dist/node_modules/lodash-es/_hashClear.js +7 -0
  199. package/dist/node_modules/lodash-es/_hashDelete.js +7 -0
  200. package/dist/node_modules/lodash-es/_hashGet.js +13 -0
  201. package/dist/node_modules/lodash-es/_hashHas.js +9 -0
  202. package/dist/node_modules/lodash-es/_hashSet.js +9 -0
  203. package/dist/node_modules/lodash-es/_isFlattenable.js +10 -0
  204. package/dist/node_modules/lodash-es/_isIndex.js +8 -0
  205. package/dist/node_modules/lodash-es/_isIterateeCall.js +13 -0
  206. package/dist/node_modules/lodash-es/_isKey.js +12 -0
  207. package/dist/node_modules/lodash-es/_isKeyable.js +7 -0
  208. package/dist/node_modules/lodash-es/_isMasked.js +11 -0
  209. package/dist/node_modules/lodash-es/_isPrototype.js +8 -0
  210. package/dist/node_modules/lodash-es/_isStrictComparable.js +7 -0
  211. package/dist/node_modules/lodash-es/_listCacheClear.js +6 -0
  212. package/dist/node_modules/lodash-es/_listCacheDelete.js +12 -0
  213. package/dist/node_modules/lodash-es/_listCacheGet.js +8 -0
  214. package/dist/node_modules/lodash-es/_listCacheHas.js +7 -0
  215. package/dist/node_modules/lodash-es/_listCacheSet.js +8 -0
  216. package/dist/node_modules/lodash-es/_mapCacheClear.js +13 -0
  217. package/dist/node_modules/lodash-es/_mapCacheDelete.js +8 -0
  218. package/dist/node_modules/lodash-es/_mapCacheGet.js +7 -0
  219. package/dist/node_modules/lodash-es/_mapCacheHas.js +7 -0
  220. package/dist/node_modules/lodash-es/_mapCacheSet.js +8 -0
  221. package/dist/node_modules/lodash-es/_mapToArray.js +9 -0
  222. package/dist/node_modules/lodash-es/_matchesStrictComparable.js +8 -0
  223. package/dist/node_modules/lodash-es/_memoizeCapped.js +11 -0
  224. package/dist/node_modules/lodash-es/_nativeCreate.js +5 -0
  225. package/dist/node_modules/lodash-es/_nativeKeys.js +5 -0
  226. package/dist/node_modules/lodash-es/_nodeUtil.js +11 -0
  227. package/dist/node_modules/lodash-es/_objectToString.js +7 -0
  228. package/dist/node_modules/lodash-es/_overArg.js +8 -0
  229. package/dist/node_modules/lodash-es/_root.js +5 -0
  230. package/dist/node_modules/lodash-es/_setCacheAdd.js +7 -0
  231. package/dist/node_modules/lodash-es/_setCacheHas.js +6 -0
  232. package/dist/node_modules/lodash-es/_setToArray.js +9 -0
  233. package/dist/node_modules/lodash-es/_stackClear.js +7 -0
  234. package/dist/node_modules/lodash-es/_stackDelete.js +7 -0
  235. package/dist/node_modules/lodash-es/_stackGet.js +6 -0
  236. package/dist/node_modules/lodash-es/_stackHas.js +6 -0
  237. package/dist/node_modules/lodash-es/_stackSet.js +17 -0
  238. package/dist/node_modules/lodash-es/_stringToPath.js +10 -0
  239. package/dist/node_modules/lodash-es/_toKey.js +10 -0
  240. package/dist/node_modules/lodash-es/_toSource.js +17 -0
  241. package/dist/node_modules/lodash-es/_trimmedEndIndex.js +9 -0
  242. package/dist/node_modules/lodash-es/eq.js +6 -0
  243. package/dist/node_modules/lodash-es/flatMap.js +8 -0
  244. package/dist/node_modules/lodash-es/get.js +8 -0
  245. package/dist/node_modules/lodash-es/hasIn.js +8 -0
  246. package/dist/node_modules/lodash-es/identity.js +6 -0
  247. package/dist/node_modules/lodash-es/isArguments.js +10 -0
  248. package/dist/node_modules/lodash-es/isArray.js +4 -0
  249. package/dist/node_modules/lodash-es/isArrayLike.js +8 -0
  250. package/dist/node_modules/lodash-es/isBuffer.js +6 -0
  251. package/dist/node_modules/lodash-es/isFunction.js +12 -0
  252. package/dist/node_modules/lodash-es/isLength.js +7 -0
  253. package/dist/node_modules/lodash-es/isObject.js +7 -0
  254. package/dist/node_modules/lodash-es/isObjectLike.js +6 -0
  255. package/dist/node_modules/lodash-es/isSymbol.js +9 -0
  256. package/dist/node_modules/lodash-es/isTypedArray.js +7 -0
  257. package/dist/node_modules/lodash-es/keys.js +9 -0
  258. package/dist/node_modules/lodash-es/map.js +11 -0
  259. package/dist/node_modules/lodash-es/memoize.js +18 -0
  260. package/dist/node_modules/lodash-es/property.js +10 -0
  261. package/dist/node_modules/lodash-es/range.js +5 -0
  262. package/dist/node_modules/lodash-es/stubArray.js +6 -0
  263. package/dist/node_modules/lodash-es/stubFalse.js +6 -0
  264. package/dist/node_modules/lodash-es/toFinite.js +14 -0
  265. package/dist/node_modules/lodash-es/toNumber.js +22 -0
  266. package/dist/node_modules/lodash-es/toString.js +7 -0
  267. package/dist/node_modules/valibot/dist/index.js +458 -239
  268. package/dist/services/recommendationApi.js +17 -14
  269. package/dist/services/templateLibraryApi.js +40 -38
  270. package/dist/src/@types/config/defaults.d.ts +5 -1
  271. package/dist/src/@types/config/index.d.ts +3 -3
  272. package/dist/src/@types/config/schemas.d.ts +217 -0
  273. package/dist/src/@types/config/types.d.ts +9 -1
  274. package/dist/src/components/Guido.vue.d.ts +1 -1
  275. package/dist/src/components/organisms/AutoSaveController.vue.d.ts +2 -0
  276. package/dist/src/components/organisms/header/AutoSaveToggle.vue.d.ts +2 -0
  277. package/dist/src/components/organisms/header/EditorActions.vue.d.ts +1 -1
  278. package/dist/src/components/organisms/header/HeaderWrapper.vue.d.ts +1 -1
  279. package/dist/src/components/organisms/header/RightSlot.vue.d.ts +1 -1
  280. package/dist/src/components/wrappers/WpModal.vue.d.ts +2 -2
  281. package/dist/src/composables/useAutoSave.d.ts +3 -0
  282. package/dist/src/composables/useConfig.d.ts +58 -0
  283. package/dist/src/composables/useHtmlCompiler.d.ts +2 -1
  284. package/dist/src/composables/useRecommendation.d.ts +10 -1
  285. package/dist/src/composables/useRecommendation.test.d.ts +1 -0
  286. package/dist/src/composables/useSave.d.ts +1 -1
  287. package/dist/src/composables/useTranslations.d.ts +1 -1
  288. package/dist/src/composables/validators/useCouponBlockValidator.d.ts +3 -0
  289. package/dist/src/config/migrator/index.d.ts +2 -1
  290. package/dist/src/config/migrator/recommendation/compositionMapper.d.ts +2 -0
  291. package/dist/src/config/migrator/recommendation/compositionMapper.test.d.ts +1 -0
  292. package/dist/src/config/migrator/recommendation/extractors.d.ts +7 -0
  293. package/dist/src/config/migrator/recommendation/extractors.test.d.ts +1 -0
  294. package/dist/src/config/migrator/recommendation/htmlBuilder.d.ts +11 -0
  295. package/dist/src/config/migrator/recommendation/parseLegacyConfig.d.ts +15 -0
  296. package/dist/src/config/migrator/recommendation/parseLegacyConfig.test.d.ts +1 -0
  297. package/dist/src/config/migrator/recommendation/settingsMapper.d.ts +7 -0
  298. package/dist/src/config/migrator/recommendation/settingsMapper.test.d.ts +1 -0
  299. package/dist/src/config/migrator/recommendation/themeMapper.d.ts +5 -0
  300. package/dist/src/config/migrator/recommendation/themeMapper.test.d.ts +1 -0
  301. package/dist/src/config/migrator/recommendation/types.d.ts +205 -0
  302. package/dist/src/config/migrator/recommendationMigrator.d.ts +13 -1
  303. package/dist/src/config/migrator/recommendationMigrator.test.d.ts +1 -0
  304. package/dist/src/extensions/Blocks/RadioButton/template.d.ts +1 -1
  305. package/dist/src/extensions/Blocks/Recommendation/controls/main/utils.test.d.ts +1 -0
  306. package/dist/src/extensions/Blocks/Recommendation/services/configService.d.ts +10 -0
  307. package/dist/src/extensions/Blocks/Recommendation/services/configService.test.d.ts +1 -0
  308. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +34 -0
  309. package/dist/src/extensions/Blocks/Recommendation/types/nodeConfig.d.ts +1 -1
  310. package/dist/src/extensions/Blocks/Recommendation/utils/legacyStrategyMap.d.ts +21 -0
  311. package/dist/src/extensions/Blocks/Recommendation/utils/legacyStrategyMap.test.d.ts +1 -0
  312. package/dist/src/extensions/Blocks/Recommendation/utils/preserveTextStyles.d.ts +0 -3
  313. package/dist/src/library.d.ts +1 -1
  314. package/dist/src/stores/autosave.d.ts +12 -0
  315. package/dist/src/stores/config.d.ts +522 -0
  316. package/dist/src/stores/dynamic-content.d.ts +3 -3
  317. package/dist/src/stores/editor.d.ts +23 -0
  318. package/dist/src/utils/htmlEscape.d.ts +5 -0
  319. package/dist/src/utils/htmlEscape.test.d.ts +1 -0
  320. package/dist/src/utils/timeUtil.d.ts +8 -0
  321. package/dist/stores/autosave.js +17 -0
  322. package/dist/stores/config.js +81 -25
  323. package/dist/stores/dynamic-content.js +11 -6
  324. package/dist/stores/editor.js +3 -1
  325. package/dist/stores/onboarding.js +1 -1
  326. package/dist/stores/preview.js +9 -6
  327. package/dist/stores/unsubscribe.js +4 -1
  328. package/dist/utils/dateUtil.js +10 -7
  329. package/dist/utils/genericUtil.js +13 -10
  330. package/dist/utils/htmlEscape.js +13 -0
  331. package/dist/utils/pairProductVariables.js +89 -87
  332. package/dist/utils/templatePreparation.js +72 -32
  333. package/dist/utils/timeUtil.js +19 -0
  334. package/package.json +7 -6
  335. package/dist/enums/displayConditions.js +0 -80
  336. package/dist/extensions/Blocks/Recommendation/templates/grid/migration.js +0 -251
  337. package/dist/src/enums/displayConditions.d.ts +0 -2
@@ -1,154 +1,158 @@
1
1
  import { ModificationDescription as p } from "../../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
+ import { RecommendationBlockId as m } from "../../constants/blockIds.js";
3
+ import { MOBILE_CONTAINER_SELECTOR as q, MOBILE_ROW_SELECTOR as k, CURRENCY_ATTR as y, DESKTOP_CONTAINER_SELECTOR as P, CONTAINER_SELECTOR as v, ATTR_PRODUCT_ATTR as W } from "../../constants/selectors.js";
2
4
  import { RecommendationConfigService as E } from "../../services/configService.js";
3
5
  import { useRecommendationExtensionStore as C } from "../../store/recommendation.js";
4
- import { prepareProductRows as k } from "../../templates/index.js";
5
- import { formatPrice as $ } from "../../utils/priceFormatter.js";
6
- import { isTdNode as B } from "../../utils/tagName.js";
7
- import { RecommendationBlockId as m } from "../../constants/blockIds.js";
8
- import { MOBILE_CONTAINER_SELECTOR as P, MOBILE_ROW_SELECTOR as T, CURRENCY_ATTR as y, DESKTOP_CONTAINER_SELECTOR as q, CONTAINER_SELECTOR as v } from "../../constants/selectors.js";
9
- import { getDefaultProducts as L, DEFAULT_CARD_COMPOSITION as M, sanitizeImageUrl as j } from "../../templates/utils.js";
10
- const h = "recommendation-block-v2";
11
- function R(t) {
6
+ import { prepareProductRows as _ } from "../../templates/index.js";
7
+ import { formatPrice as j } from "../../utils/priceFormatter.js";
8
+ import { isTdNode as F } from "../../utils/tagName.js";
9
+ import { getDefaultProducts as L, DEFAULT_CARD_COMPOSITION as R, sanitizeImageUrl as V } from "../../templates/utils.js";
10
+ const M = "recommendation-block-v2";
11
+ function h(t) {
12
12
  if (!t)
13
13
  return null;
14
14
  if ("getAttribute" in t) {
15
15
  const e = t.getAttribute("class");
16
- if (e && e.includes(h))
16
+ if (e && e.includes(M))
17
17
  return t;
18
18
  }
19
- return "querySelector" in t ? t.querySelector(`.${h}`) ?? null : null;
19
+ return "querySelector" in t ? t.querySelector(`.${M}`) ?? null : null;
20
20
  }
21
21
  function b(t) {
22
- const e = R(t);
22
+ const e = h(t);
23
23
  if (!e || !("getAttribute" in e))
24
24
  return "grid";
25
25
  const o = e.getAttribute("data-layout");
26
26
  return o === "list" || o === "horizontal" ? "list" : "grid";
27
27
  }
28
- function _(t) {
29
- const e = R(t);
28
+ function x(t) {
29
+ const e = h(t);
30
30
  if (!e || !("getAttribute" in e))
31
- return M;
31
+ return R;
32
32
  const o = e.getAttribute("data-card-composition");
33
- return o ? o.split(",").filter(Boolean) : M;
33
+ return o ? o.split(",").filter(Boolean) : R;
34
34
  }
35
- function g(t, e, o) {
36
- if (!e || !("childNodes" in e))
37
- return !1;
38
- const r = e.childNodes().find(
39
- (c) => "getType" in c && c.getType() === "text"
35
+ function D(t) {
36
+ if (!t || !("childNodes" in t))
37
+ return null;
38
+ const e = t.childNodes(), o = e.find(
39
+ (n) => "getType" in n && n.getType() === "text"
40
40
  );
41
- return r ? (t.modifyHtml(r).setText(o), !0) : !1;
41
+ return o || e.reduce((n, i) => n || !("getType" in i) || i.getType() === "text" ? n : D(i), null);
42
42
  }
43
- function D(t, e) {
43
+ function S(t, e, o) {
44
+ const n = D(e);
45
+ return n ? (t.modifyHtml(n).setText(o), !0) : !1;
46
+ }
47
+ function U(t, e) {
44
48
  return t && t.length > 0 ? t : e.length > 0 ? e : L();
45
49
  }
46
- function V(t) {
50
+ function G(t) {
47
51
  const { currentNode: e, documentModifier: o } = t;
48
52
  if (!e || !("querySelector" in e))
49
53
  return;
50
- const n = e.querySelector(T);
54
+ const n = e.querySelector(k);
51
55
  n && (o.modifyHtml(n).setInnerHtml(""), o.apply(new p("Cleared mobile row content")));
52
56
  }
53
- function W(t) {
57
+ function Y(t) {
54
58
  const {
55
59
  currentNode: e,
56
60
  documentModifier: o,
57
61
  products: n,
58
- layout: r,
62
+ layout: i,
59
63
  composition: c
60
64
  } = t;
61
65
  if (!e || !("querySelector" in e))
62
66
  return;
63
- const i = r ?? b(e), u = E.getConfig(e);
64
- if (i === "list" || !u.mobileLayoutEnabled) {
65
- V({ currentNode: e, documentModifier: o });
67
+ const r = i ?? b(e), s = E.getConfig(e);
68
+ if (r === "list" || !s.mobileLayoutEnabled) {
69
+ G({ currentNode: e, documentModifier: o });
66
70
  return;
67
71
  }
68
- const s = e.querySelector(T);
69
- if (!s)
72
+ const u = e.querySelector(k);
73
+ if (!u)
70
74
  return;
71
- const l = C(), a = D(n, l.recommendationProducts), f = c ?? _(e), S = `<td><table class="ins-recommendation-product-container ins-recommendation-mobile-container" width="100%" cellpadding="0" cellspacing="0" border="0">${k(a, i, {
72
- productsPerRow: u.mobileCardsInRow,
73
- composition: f,
75
+ const l = C(), d = U(n, l.recommendationProducts), a = c ?? x(e), g = `<td><table class="ins-recommendation-product-container ins-recommendation-mobile-container" width="100%" cellpadding="0" cellspacing="0" border="0">${_(d, r, {
76
+ productsPerRow: s.mobileCardsInRow,
77
+ composition: a,
74
78
  filterList: l.filterList
75
79
  })}</table></td>`;
76
- o.modifyHtml(s).setInnerHtml(S), o.apply(new p("Updated mobile product rows"));
80
+ o.modifyHtml(u).setInnerHtml(g), o.apply(new p("Updated mobile product rows"));
77
81
  }
78
- function G(t) {
82
+ function K(t) {
79
83
  const {
80
84
  currentNode: e,
81
85
  documentModifier: o,
82
86
  afterRegenerate: n,
83
- products: r,
87
+ products: i,
84
88
  layout: c,
85
- composition: i
89
+ composition: r
86
90
  } = t;
87
91
  if (!e || !("querySelector" in e))
88
92
  return;
89
- const u = e.querySelector(q) ?? e.querySelector(v);
90
- if (!u)
93
+ const s = e.querySelector(P) ?? e.querySelector(v);
94
+ if (!s)
91
95
  return;
92
- const s = C(), l = D(r, s.recommendationProducts), { cardsInRow: a } = s.recommendationConfigs, f = i ?? _(e), d = c ?? b(e), S = k(l, d, {
93
- productsPerRow: a,
94
- composition: f,
95
- filterList: s.filterList
96
+ const u = C(), l = U(i, u.recommendationProducts), { cardsInRow: d } = u.recommendationConfigs, a = r ?? x(e), f = c ?? b(e), g = _(l, f, {
97
+ productsPerRow: d,
98
+ composition: a,
99
+ filterList: u.filterList
96
100
  });
97
- o.modifyHtml(u).setInnerHtml(S).apply(new p("Updated product")), W(t), n?.();
101
+ o.modifyHtml(s).setInnerHtml(g).apply(new p("Updated product")), Y(t), n == null || n();
98
102
  }
99
- function I(t, e, o, n) {
103
+ function T(t, e, o, n) {
100
104
  const c = `0 ${Math.floor(o / 2)}px`;
101
- let i = !1;
105
+ let r = !1;
102
106
  return n === "grid" ? Array.from(
103
107
  t.querySelectorAll(".attribute-cell")
104
- ).forEach((s) => {
105
- e.modifyHtml(s).setStyle("padding", c), i = !0;
108
+ ).forEach((u) => {
109
+ e.modifyHtml(u).setStyle("padding", c), r = !0;
106
110
  }) : Array.from(
107
111
  t.querySelectorAll(".product-card-wrapper")
108
- ).forEach((s) => {
109
- const l = "parentNode" in s ? s.parentNode : null;
110
- l && B(l) && (e.modifyHtml(l).setStyle("padding", c), i = !0);
111
- }), i;
112
+ ).forEach((u) => {
113
+ const l = "parentNode" in u ? u.parentNode : null;
114
+ l && F(l) && (e.modifyHtml(l).setStyle("padding", c), r = !0);
115
+ }), r;
112
116
  }
113
- function O(t, e, o) {
114
- const n = `${o}px`, r = Array.from(t.querySelectorAll(".spacer"));
117
+ function I(t, e, o) {
118
+ const n = `${o}px`, i = Array.from(t.querySelectorAll(".spacer"));
115
119
  let c = !1;
116
- return r.forEach((i) => {
117
- e.modifyHtml(i).setStyle("height", n), c = !0;
120
+ return i.forEach((r) => {
121
+ e.modifyHtml(r).setStyle("height", n), c = !0;
118
122
  }), c;
119
123
  }
120
- function Y(t) {
124
+ function X(t) {
121
125
  const { currentNode: e, documentModifier: o } = t;
122
126
  if (!e)
123
127
  return;
124
- const n = E.getConfig(e), r = b(e);
128
+ const n = E.getConfig(e), i = b(e);
125
129
  let c = !1;
126
- const i = e.querySelector(q);
127
- if (i) {
128
- c = I(
129
- i,
130
+ const r = e.querySelector(P);
131
+ if (r) {
132
+ c = T(
133
+ r,
130
134
  o,
131
135
  n.columnSpacing,
132
- r
136
+ i
133
137
  );
134
- const l = O(
135
- i,
138
+ const l = I(
139
+ r,
136
140
  o,
137
141
  n.rowSpacing
138
142
  );
139
143
  c = c || l;
140
144
  }
141
- const u = e.querySelector(P);
142
- if (u) {
143
- const s = I(
144
- u,
145
+ const s = e.querySelector(q);
146
+ if (s) {
147
+ const u = T(
148
+ s,
145
149
  o,
146
150
  n.mobileColumnSpacing,
147
- r
151
+ i
148
152
  );
149
- c = c || s;
150
- const l = O(
151
- u,
153
+ c = c || u;
154
+ const l = I(
155
+ s,
152
156
  o,
153
157
  n.mobileRowSpacing
154
158
  );
@@ -156,25 +160,25 @@ function Y(t) {
156
160
  }
157
161
  c && o.apply(new p("Reapply spacing after regeneration"));
158
162
  }
159
- function re(t) {
160
- const { currentNode: e, documentModifier: o, afterRegenerate: n, products: r, layout: c, composition: i } = t;
161
- e && G({
163
+ function se(t) {
164
+ const { currentNode: e, documentModifier: o, afterRegenerate: n, products: i, layout: c, composition: r } = t;
165
+ e && K({
162
166
  currentNode: e,
163
167
  documentModifier: o,
164
- products: r,
168
+ products: i,
165
169
  layout: c,
166
- composition: i,
170
+ composition: r,
167
171
  afterRegenerate: () => {
168
172
  setTimeout(() => {
169
- Y({ currentNode: e, documentModifier: o });
170
- }, 0), n?.();
173
+ X({ currentNode: e, documentModifier: o });
174
+ }, 0), n == null || n();
171
175
  }
172
176
  });
173
177
  }
174
- function ie(t, e) {
178
+ function ae(t, e) {
175
179
  return t.length === e ? t : t.length > e ? t.slice(0, e) : [...t, ...L(e - t.length)];
176
180
  }
177
- function x() {
181
+ function H() {
178
182
  const t = C(), { currencySettings: e } = t.recommendationConfigs, o = parseInt(e.decimalCount);
179
183
  return {
180
184
  code: e.value,
@@ -186,199 +190,243 @@ function x() {
186
190
  };
187
191
  }
188
192
  function A(t, e = "price") {
189
- const o = x(), n = t[e], r = n?.[o.code] ?? Object.values(n ?? {})[0] ?? 0;
190
- return $({
191
- price: r,
193
+ const o = H(), n = t[e], i = (n == null ? void 0 : n[o.code]) ?? Object.values(n ?? {})[0] ?? 0;
194
+ return j({
195
+ price: i,
192
196
  currency: o
193
197
  });
194
198
  }
195
- function F(t) {
196
- const e = x(), o = t.original_price?.[e.code] ?? Object.values(t.original_price ?? {})[0] ?? 0, n = t.price?.[e.code] ?? Object.values(t.price ?? {})[0] ?? 0, r = o > 0 ? Math.round((o - n) / o * 100) : 0;
197
- return r > 0 ? `-${r}%` : "0%";
199
+ function z(t) {
200
+ var c, r;
201
+ const e = H(), o = ((c = t.original_price) == null ? void 0 : c[e.code]) ?? Object.values(t.original_price ?? {})[0] ?? 0, n = ((r = t.price) == null ? void 0 : r[e.code]) ?? Object.values(t.price ?? {})[0] ?? 0, i = o > 0 ? Math.round((o - n) / o * 100) : 0;
202
+ return i > 0 ? `-${i}%` : "0%";
198
203
  }
199
- function H(t) {
200
- const { documentModifier: e, product: o, priceEl: n, oldPriceEl: r, omnibusPriceEl: c, omnibusDiscountEl: i } = t;
201
- let u = !1;
204
+ function $(t) {
205
+ const { documentModifier: e, product: o, priceEl: n, oldPriceEl: i, omnibusPriceEl: c, omnibusDiscountEl: r } = t;
206
+ let s = !1;
202
207
  if (n && "querySelector" in n) {
203
- const s = n.querySelector("strong") ?? null, l = A(o, "price");
204
- g(e, s, l) && (u = !0);
208
+ const u = n.querySelector("strong") ?? n.querySelector("p"), l = A(o, "price");
209
+ S(e, u ?? null, l) && (s = !0);
205
210
  }
206
- if (r && "querySelector" in r) {
207
- const s = r.querySelector("strong") ?? null, l = A(o, "original_price");
208
- g(e, s, l) && (u = !0);
211
+ if (i && "querySelector" in i) {
212
+ const u = i.querySelector("strong") ?? i.querySelector("p"), l = A(o, "original_price");
213
+ S(e, u ?? null, l) && (s = !0);
209
214
  }
210
215
  if (c && "querySelector" in c) {
211
- const s = c.querySelector(".omnibus-price-value") ?? null, l = A(o, "original_price");
212
- g(e, s, l) && (u = !0);
216
+ const u = c.querySelector(".omnibus-price-value") ?? null, l = A(o, "original_price");
217
+ S(e, u, l) && (s = !0);
213
218
  }
214
- if (i && "querySelector" in i) {
215
- const s = i.querySelector(".omnibus-discount-value") ?? null, l = F(o);
216
- g(e, s, l) && (u = !0);
219
+ if (r && "querySelector" in r) {
220
+ const u = r.querySelector(".omnibus-discount-value") ?? null, l = z(o);
221
+ S(e, u, l) && (s = !0);
217
222
  }
218
- return u;
223
+ return s;
219
224
  }
220
- function K(t) {
225
+ function J(t) {
221
226
  const {
222
227
  documentModifier: e,
223
228
  product: o,
224
229
  imageEl: n,
225
- nameEl: r,
230
+ nameEl: i,
226
231
  priceEl: c,
227
- oldPriceEl: i,
228
- omnibusPriceEl: u,
229
- omnibusDiscountEl: s,
232
+ oldPriceEl: r,
233
+ omnibusPriceEl: s,
234
+ omnibusDiscountEl: u,
230
235
  buttonEl: l
231
236
  } = t;
232
- let a = !1;
237
+ let d = !1;
233
238
  if (n && "querySelector" in n) {
234
- const f = n.querySelector("img");
235
- f && (e.modifyHtml(f).setAttribute("src", j(o.image_url)).setAttribute("alt", o.name), a = !0);
236
- const d = n.querySelector("a");
237
- d && (e.modifyHtml(d).setAttribute("href", o.url), a = !0);
239
+ const a = n.querySelector("img");
240
+ a && (e.modifyHtml(a).setAttribute("src", V(o.image_url)).setAttribute("alt", o.name), d = !0);
241
+ const f = n.querySelector("a");
242
+ f && (e.modifyHtml(f).setAttribute("href", o.url), d = !0);
238
243
  }
239
- if (r && "querySelector" in r) {
240
- const f = r.querySelector("strong") ?? null;
241
- g(e, f, o.name) && (a = !0);
244
+ if (i && "querySelector" in i) {
245
+ const a = i.querySelector("strong") ?? i.querySelector("p");
246
+ S(e, a ?? null, o.name) && (d = !0);
242
247
  }
243
- if (H({
248
+ if ($({
244
249
  documentModifier: e,
245
250
  product: o,
246
251
  priceEl: c,
247
- oldPriceEl: i,
248
- omnibusPriceEl: u,
249
- omnibusDiscountEl: s
250
- }) && (a = !0), l && "querySelector" in l) {
251
- const f = l.querySelector("a.es-button") || l.querySelector("a");
252
- f && (e.modifyHtml(f).setAttribute("href", o.url), a = !0);
252
+ oldPriceEl: r,
253
+ omnibusPriceEl: s,
254
+ omnibusDiscountEl: u
255
+ }) && (d = !0), l && "querySelector" in l) {
256
+ const a = l.querySelector("a.es-button") || l.querySelector("a");
257
+ a && (e.modifyHtml(a).setAttribute("href", o.url), d = !0);
253
258
  }
254
- return a;
259
+ return d;
260
+ }
261
+ function B(t) {
262
+ return "querySelector" in t ? t.querySelector(P) ?? t : t;
255
263
  }
256
- function U(t) {
257
- return "querySelector" in t ? t.querySelector(q) ?? t : t;
264
+ const O = "product_attribute.";
265
+ function Q(t, e) {
266
+ var n;
267
+ let o;
268
+ if (t.startsWith(O)) {
269
+ const i = t.slice(O.length);
270
+ o = (n = e.product_attributes) == null ? void 0 : n[i];
271
+ } else
272
+ o = e[t];
273
+ return typeof o == "string" && o.length > 0 ? o : typeof o == "number" ? String(o) : null;
274
+ }
275
+ function Z(t, e, o) {
276
+ if (!("querySelectorAll" in t))
277
+ return !1;
278
+ const n = t.querySelectorAll(
279
+ `[esd-extension-block-id="${m.CUSTOM_ATTRIBUTE}"]`
280
+ );
281
+ if (n.length === 0)
282
+ return !1;
283
+ const i = /* @__PURE__ */ new Map();
284
+ n.forEach((r) => {
285
+ if (!("getAttribute" in r))
286
+ return;
287
+ const s = r.getAttribute(W);
288
+ if (!s)
289
+ return;
290
+ const u = i.get(s) ?? [];
291
+ u.push(r), i.set(s, u);
292
+ });
293
+ let c = !1;
294
+ return i.forEach((r, s) => {
295
+ const u = Math.min(r.length, o.length);
296
+ r.slice(0, u).forEach((l, d) => {
297
+ if (!("querySelector" in l))
298
+ return;
299
+ const a = Q(s, o[d]);
300
+ if (a === null)
301
+ return;
302
+ const f = l.querySelector("p") ?? null;
303
+ S(e, f, a) && (c = !0);
304
+ });
305
+ }), c;
258
306
  }
259
307
  function w(t, e, o) {
260
308
  if (!("querySelectorAll" in t))
261
309
  return !1;
262
310
  const n = t.querySelectorAll(
263
311
  `[esd-extension-block-id="${m.IMAGE}"]`
264
- ), r = t.querySelectorAll(
312
+ ), i = t.querySelectorAll(
265
313
  `[esd-extension-block-id="${m.NAME}"]`
266
314
  ), c = t.querySelectorAll(
267
315
  `[esd-extension-block-id="${m.PRICE}"]`
268
- ), i = t.querySelectorAll(
316
+ ), r = t.querySelectorAll(
269
317
  `[esd-extension-block-id="${m.OLD_PRICE}"]`
270
- ), u = t.querySelectorAll(
271
- `[esd-extension-block-id="${m.OMNIBUS_PRICE}"]`
272
318
  ), s = t.querySelectorAll(
319
+ `[esd-extension-block-id="${m.OMNIBUS_PRICE}"]`
320
+ ), u = t.querySelectorAll(
273
321
  `[esd-extension-block-id="${m.OMNIBUS_DISCOUNT}"]`
274
322
  ), l = t.querySelectorAll(
275
323
  `[esd-extension-block-id="${m.BUTTON}"]`
276
- ), a = Math.min(n.length, o.length);
277
- let f = !1;
278
- for (let d = 0; d < a; d++) {
279
- const S = K({
324
+ ), d = Math.min(n.length, o.length);
325
+ let a = !1;
326
+ for (let f = 0; f < d; f++) {
327
+ const g = J({
280
328
  documentModifier: e,
281
- product: o[d],
282
- imageEl: n[d] ?? null,
283
- nameEl: r[d] ?? null,
284
- priceEl: c[d] ?? null,
285
- oldPriceEl: i[d] ?? null,
286
- omnibusPriceEl: u[d] ?? null,
287
- omnibusDiscountEl: s[d] ?? null,
288
- buttonEl: l[d] ?? null
329
+ product: o[f],
330
+ imageEl: n[f] ?? null,
331
+ nameEl: i[f] ?? null,
332
+ priceEl: c[f] ?? null,
333
+ oldPriceEl: r[f] ?? null,
334
+ omnibusPriceEl: s[f] ?? null,
335
+ omnibusDiscountEl: u[f] ?? null,
336
+ buttonEl: l[f] ?? null
289
337
  });
290
- f = f || S;
338
+ a = a || g;
291
339
  }
292
- return f;
340
+ return Z(t, e, o) && (a = !0), a;
293
341
  }
294
- function le(t) {
342
+ function de(t) {
295
343
  const { currentNode: e, documentModifier: o, products: n } = t;
296
344
  if (!e || !("querySelectorAll" in e))
297
345
  return !1;
298
- const r = U(e);
299
- if (!("querySelectorAll" in r) || r.querySelectorAll(
346
+ const i = B(e);
347
+ if (!("querySelectorAll" in i) || i.querySelectorAll(
300
348
  `[esd-extension-block-id="${m.IMAGE}"]`
301
349
  ).length !== n.length)
302
350
  return !1;
303
- let i = w(r, o, n);
304
- const u = b(e), s = E.getConfig(e);
305
- if (u !== "list" && s.mobileLayoutEnabled && "querySelector" in e) {
306
- const l = e.querySelector(P);
351
+ let r = w(i, o, n);
352
+ const s = b(e), u = E.getConfig(e);
353
+ if (s !== "list" && u.mobileLayoutEnabled && "querySelector" in e) {
354
+ const l = e.querySelector(q);
307
355
  if (l) {
308
- const a = w(
356
+ const d = w(
309
357
  l,
310
358
  o,
311
359
  n
312
360
  );
313
- i = i || a;
361
+ r = r || d;
314
362
  }
315
363
  }
316
- return i && o.apply(new p("Updated product content in-place")), !0;
364
+ return r && o.apply(new p("Updated product content in-place")), !0;
317
365
  }
318
366
  function N(t, e, o) {
319
367
  if (!("querySelectorAll" in t))
320
368
  return !1;
321
369
  const n = t.querySelectorAll(
322
370
  `[esd-extension-block-id="${m.PRICE}"]`
323
- ), r = t.querySelectorAll(
371
+ ), i = t.querySelectorAll(
324
372
  `[esd-extension-block-id="${m.OLD_PRICE}"]`
325
373
  ), c = t.querySelectorAll(
326
374
  `[esd-extension-block-id="${m.OMNIBUS_PRICE}"]`
327
- ), i = t.querySelectorAll(
375
+ ), r = t.querySelectorAll(
328
376
  `[esd-extension-block-id="${m.OMNIBUS_DISCOUNT}"]`
329
- ), u = Math.min(n.length, o.length);
330
- let s = !1;
331
- for (let l = 0; l < u; l++)
332
- H({
377
+ ), s = Math.min(n.length, o.length);
378
+ let u = !1;
379
+ for (let l = 0; l < s; l++)
380
+ $({
333
381
  documentModifier: e,
334
382
  product: o[l],
335
383
  priceEl: n[l] ?? null,
336
- oldPriceEl: r[l] ?? null,
384
+ oldPriceEl: i[l] ?? null,
337
385
  omnibusPriceEl: c[l] ?? null,
338
- omnibusDiscountEl: i[l] ?? null
339
- }) && (s = !0);
340
- return s;
386
+ omnibusDiscountEl: r[l] ?? null
387
+ }) && (u = !0);
388
+ return u;
341
389
  }
342
- function ce(t) {
390
+ function fe(t) {
343
391
  const { currentNode: e, documentModifier: o } = t;
344
392
  if (!e || !("querySelectorAll" in e))
345
393
  return !1;
346
- const r = C().recommendationProducts;
347
- if (r.length === 0)
394
+ const i = C().recommendationProducts;
395
+ if (i.length === 0)
348
396
  return !1;
349
- const c = U(e);
350
- let i = N(c, o, r);
351
- const u = b(e), s = E.getConfig(e);
352
- if (u !== "list" && s.mobileLayoutEnabled && "querySelector" in e) {
353
- const l = e.querySelector(P);
397
+ const c = B(e);
398
+ let r = N(c, o, i);
399
+ const s = b(e), u = E.getConfig(e);
400
+ if (s !== "list" && u.mobileLayoutEnabled && "querySelector" in e) {
401
+ const l = e.querySelector(q);
354
402
  if (l) {
355
- const a = N(l, o, r);
356
- i = i || a;
403
+ const d = N(l, o, i);
404
+ r = r || d;
357
405
  }
358
406
  }
359
- return i && o.apply(new p("Updated price formatting in-place")), i;
407
+ return r && o.apply(new p("Updated price formatting in-place")), r;
360
408
  }
361
- function se(t) {
362
- const { currentNode: e, documentModifier: o, currency: n } = t, r = R(e);
363
- if (!r)
409
+ function me(t) {
410
+ const { currentNode: e, documentModifier: o, currency: n } = t, i = h(e);
411
+ if (!i)
364
412
  return;
365
- const c = n.alignment === "before" ? "0" : "1", i = (u, s) => {
366
- o.modifyHtml(r).setAttribute(u, s);
413
+ const c = n.alignment === "before" ? "0" : "1", r = (s, u) => {
414
+ o.modifyHtml(i).setAttribute(s, u);
367
415
  };
368
- i(y.CURRENCY, n.code), i(y.SYMBOL, n.symbol), i(y.ALIGNMENT, c), i(y.THOUSAND_SEPARATOR, n.thousandSeparator), i(y.DECIMAL_SEPARATOR, n.decimalSeparator), i(y.DECIMAL_COUNT, n.decimalCount.toString()), o.apply(new p("Update currency attributes"));
416
+ r(y.CURRENCY, n.code), r(y.SYMBOL, n.symbol), r(y.ALIGNMENT, c), r(y.THOUSAND_SEPARATOR, n.thousandSeparator), r(y.DECIMAL_SEPARATOR, n.decimalSeparator), r(y.DECIMAL_COUNT, n.decimalCount.toString()), o.apply(new p("Update currency attributes"));
369
417
  }
370
418
  export {
371
- ie as adjustProductsToSize,
419
+ ae as adjustProductsToSize,
372
420
  A as formatProductPrice,
373
- R as getBlockElement,
374
- _ as getCardComposition,
421
+ h as getBlockElement,
422
+ x as getCardComposition,
375
423
  b as getCurrentLayout,
376
- Y as reapplySpacing,
377
- W as regenerateMobileProductRows,
378
- G as regenerateProductRows,
379
- re as regenerateProductRowsWithStyles,
380
- se as setCurrencyAttributes,
381
- ce as updatePricesInPlace,
382
- le as updateProductContentInPlace,
383
- K as updateSingleProductContent
424
+ X as reapplySpacing,
425
+ Y as regenerateMobileProductRows,
426
+ K as regenerateProductRows,
427
+ se as regenerateProductRowsWithStyles,
428
+ me as setCurrencyAttributes,
429
+ fe as updatePricesInPlace,
430
+ de as updateProductContentInPlace,
431
+ J as updateSingleProductContent
384
432
  };