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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (280) hide show
  1. package/README.md +3 -147
  2. package/dist/components/Guido.vue.js +9 -11
  3. package/dist/components/Guido.vue2.js +70 -76
  4. package/dist/components/organisms/LoadingWrapper.vue.js +1 -1
  5. package/dist/components/organisms/header/LeftSlot.vue.js +1 -1
  6. package/dist/components/organisms/header/LeftSlot.vue2.js +15 -16
  7. package/dist/components/organisms/header/RightSlot.vue.js +11 -11
  8. package/dist/components/organisms/header/RightSlot.vue2.js +20 -21
  9. package/dist/components/organisms/onboarding/NewVersionPopup.vue.js +9 -9
  10. package/dist/components/organisms/onboarding/NewVersionPopup.vue2.js +17 -30
  11. package/dist/components/organisms/onboarding/OnboardingWrapper.vue.js +10 -12
  12. package/dist/components/organisms/onboarding/OnboardingWrapper.vue2.js +20 -23
  13. package/dist/composables/useActionsApi.js +1 -1
  14. package/dist/composables/useGuidoActions.js +9 -19
  15. package/dist/composables/useHtmlCompiler.js +13 -15
  16. package/dist/composables/useHtmlValidator.js +35 -36
  17. package/dist/composables/useStripo.js +60 -55
  18. package/dist/config/compiler/unsubscribeCompilerRules.js +28 -33
  19. package/dist/config/migrator/recommendationMigrator.js +98 -188
  20. package/dist/enums/defaults.js +8 -16
  21. package/dist/enums/extensions/recommendationBlock.js +2 -2
  22. package/dist/enums/onboarding.js +2 -7
  23. package/dist/enums/unsubscribe.js +25 -27
  24. package/dist/extensions/Blocks/Checkbox/block.js +2 -5
  25. package/dist/extensions/Blocks/Checkbox/control.js +14 -15
  26. package/dist/extensions/Blocks/Checkbox/extension.js +2 -2
  27. package/dist/extensions/Blocks/Checkbox/template.js +9 -14
  28. package/dist/extensions/Blocks/CouponBlock/extension.js +2 -2
  29. package/dist/extensions/Blocks/RadioButton/block.js +2 -5
  30. package/dist/extensions/Blocks/RadioButton/control.js +17 -18
  31. package/dist/extensions/Blocks/RadioButton/template.js +9 -18
  32. package/dist/extensions/Blocks/Recommendation/block.js +1 -1
  33. package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +298 -66
  34. package/dist/extensions/Blocks/Recommendation/control.js +4 -5
  35. package/dist/extensions/Blocks/Recommendation/controls/button/align.js +6 -7
  36. package/dist/extensions/Blocks/Recommendation/controls/button/border.js +6 -7
  37. package/dist/extensions/Blocks/Recommendation/controls/button/borderRadius.js +6 -7
  38. package/dist/extensions/Blocks/Recommendation/controls/button/color.js +4 -5
  39. package/dist/extensions/Blocks/Recommendation/controls/button/fitToContent.js +4 -5
  40. package/dist/extensions/Blocks/Recommendation/controls/button/fontFamily.js +4 -5
  41. package/dist/extensions/Blocks/Recommendation/controls/button/margins.js +4 -5
  42. package/dist/extensions/Blocks/Recommendation/controls/button/paddings.js +4 -5
  43. package/dist/extensions/Blocks/Recommendation/controls/button/text.js +4 -5
  44. package/dist/extensions/Blocks/Recommendation/controls/button/textSize.js +4 -5
  45. package/dist/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.js +4 -5
  46. package/dist/extensions/Blocks/Recommendation/controls/name/align.js +4 -5
  47. package/dist/extensions/Blocks/Recommendation/controls/name/background.js +6 -7
  48. package/dist/extensions/Blocks/Recommendation/controls/name/color.js +4 -5
  49. package/dist/extensions/Blocks/Recommendation/controls/name/fontFamily.js +4 -5
  50. package/dist/extensions/Blocks/Recommendation/controls/name/paddings.js +4 -5
  51. package/dist/extensions/Blocks/Recommendation/controls/name/size.js +6 -7
  52. package/dist/extensions/Blocks/Recommendation/controls/name/style.js +6 -7
  53. package/dist/extensions/Blocks/Recommendation/extension.js +21 -37
  54. package/dist/extensions/Blocks/Recommendation/iconsRegistry.js +43 -43
  55. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +45 -90
  56. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +1 -1
  57. package/dist/extensions/Blocks/Recommendation/template.js +314 -0
  58. package/dist/extensions/Blocks/Unsubscribe/block.js +27 -27
  59. package/dist/extensions/Blocks/common-control.js +110 -174
  60. package/dist/extensions/DynamicContent/dynamic-content-modal.js +19 -25
  61. package/dist/extensions/DynamicContent/dynamic-content.js +33 -128
  62. package/dist/guido.css +1 -1
  63. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +191 -258
  64. package/dist/node_modules/lodash-es/_arrayLikeKeys.js +12 -13
  65. package/dist/node_modules/lodash-es/keysIn.js +3 -3
  66. package/dist/package.json.js +1 -1
  67. package/dist/services/recommendationApi.js +19 -13
  68. package/dist/services/stripoApi.js +1 -1
  69. package/dist/src/@types/generic.d.ts +6 -42
  70. package/dist/src/components/Guido.vue.d.ts +2 -4
  71. package/dist/src/components/organisms/onboarding/NewVersionPopup.vue.d.ts +1 -3
  72. package/dist/src/components/organisms/onboarding/OnboardingWrapper.vue.d.ts +1 -3
  73. package/dist/src/components/wrappers/WpModal.vue.d.ts +1 -1
  74. package/dist/src/composables/useGuidoActions.d.ts +0 -9
  75. package/dist/src/enums/onboarding.d.ts +0 -5
  76. package/dist/src/extensions/Blocks/Checkbox/block.d.ts +0 -1
  77. package/dist/src/extensions/Blocks/Checkbox/template.d.ts +1 -1
  78. package/dist/src/extensions/Blocks/RadioButton/block.d.ts +0 -1
  79. package/dist/src/extensions/Blocks/RadioButton/template.d.ts +1 -1
  80. package/dist/src/extensions/Blocks/Recommendation/cardCompositionControl.d.ts +42 -5
  81. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +1 -1
  82. package/dist/src/extensions/Blocks/Recommendation/{templates/migrationTemplate.d.ts → template.d.ts} +34 -7
  83. package/dist/src/extensions/Blocks/common-control.d.ts +7 -44
  84. package/dist/src/extensions/DynamicContent/dynamic-content-modal.d.ts +2 -9
  85. package/dist/src/extensions/DynamicContent/dynamic-content.d.ts +2 -52
  86. package/dist/src/stores/config.d.ts +2 -10
  87. package/dist/src/stores/dynamic-content.d.ts +3 -3
  88. package/dist/src/stores/editor.d.ts +1 -1
  89. package/dist/src/stores/onboarding.d.ts +1 -335
  90. package/dist/src/stores/preview.d.ts +1 -1
  91. package/dist/src/stores/recommendation.d.ts +1 -1
  92. package/dist/src/stores/save-as-template.d.ts +1 -1
  93. package/dist/src/stores/toaster.d.ts +1 -1
  94. package/dist/src/stores/unsubscribe.d.ts +1 -1
  95. package/dist/src/stores/version-history.d.ts +1 -1
  96. package/dist/src/utils/dateUtil.d.ts +0 -21
  97. package/dist/src/utils/genericUtil.d.ts +0 -1
  98. package/dist/static/styles/components/narrow-panel.css.js +0 -10
  99. package/dist/static/styles/customEditorStyle.css.js +0 -5
  100. package/dist/stores/config.js +5 -5
  101. package/dist/stores/dynamic-content.js +2 -2
  102. package/dist/stores/editor.js +1 -1
  103. package/dist/stores/onboarding.js +36 -44
  104. package/dist/stores/preview.js +1 -1
  105. package/dist/stores/recommendation.js +3 -3
  106. package/dist/stores/save-as-template.js +2 -2
  107. package/dist/stores/toaster.js +1 -1
  108. package/dist/stores/unsubscribe.js +1 -1
  109. package/dist/stores/version-history.js +4 -4
  110. package/dist/utils/dateUtil.js +3 -24
  111. package/dist/utils/genericUtil.js +8 -18
  112. package/package.json +4 -4
  113. package/dist/components/organisms/onboarding/ItemsOnboarding.vue.js +0 -21
  114. package/dist/components/organisms/onboarding/ItemsOnboarding.vue2.js +0 -99
  115. package/dist/composables/useBlocksConfig.js +0 -48
  116. package/dist/config/compiler/itemsCompilerRules.js +0 -14
  117. package/dist/enums/date.js +0 -6
  118. package/dist/extensions/Blocks/Items/block.js +0 -67
  119. package/dist/extensions/Blocks/Items/controls/button/link.js +0 -68
  120. package/dist/extensions/Blocks/Items/controls/cardComposition.js +0 -193
  121. package/dist/extensions/Blocks/Items/controls/image/link.js +0 -68
  122. package/dist/extensions/Blocks/Items/controls/index.js +0 -217
  123. package/dist/extensions/Blocks/Items/controls/name/trimming.js +0 -70
  124. package/dist/extensions/Blocks/Items/controls/price/currencyLocation.js +0 -107
  125. package/dist/extensions/Blocks/Items/controls/price/currencySymbol.js +0 -123
  126. package/dist/extensions/Blocks/Items/controls/price/formattedPrice.js +0 -76
  127. package/dist/extensions/Blocks/Items/controls/price/hideDiscount.js +0 -61
  128. package/dist/extensions/Blocks/Items/controls/settingsControl.js +0 -312
  129. package/dist/extensions/Blocks/Items/enums/controlEnums.js +0 -5
  130. package/dist/extensions/Blocks/Items/enums/productEnums.js +0 -273
  131. package/dist/extensions/Blocks/Items/enums/settingsEnums.js +0 -76
  132. package/dist/extensions/Blocks/Items/extension.js +0 -19
  133. package/dist/extensions/Blocks/Items/iconsRegistry.js +0 -32
  134. package/dist/extensions/Blocks/Items/items.css.js +0 -23
  135. package/dist/extensions/Blocks/Items/layouts/horizontal.html.js +0 -62
  136. package/dist/extensions/Blocks/Items/layouts/vertical.html.js +0 -60
  137. package/dist/extensions/Blocks/Items/settingsPanel.js +0 -131
  138. package/dist/extensions/Blocks/Items/store/items-block.js +0 -71
  139. package/dist/extensions/Blocks/Items/template.js +0 -189
  140. package/dist/extensions/Blocks/Items/utils/configBlockUtils.js +0 -17
  141. package/dist/extensions/Blocks/Items/utils/syncAttributeFromConfigBlock.js +0 -28
  142. package/dist/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.js +0 -67
  143. package/dist/extensions/Blocks/Items/utils/updateAttributes.js +0 -44
  144. package/dist/extensions/Blocks/Recommendation/constants.js +0 -5
  145. package/dist/extensions/Blocks/Recommendation/controls/image/margins.js +0 -13
  146. package/dist/extensions/Blocks/Recommendation/controls/image/size.js +0 -13
  147. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/align.js +0 -13
  148. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/background.js +0 -13
  149. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/color.js +0 -13
  150. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.js +0 -13
  151. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/paddings.js +0 -13
  152. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/size.js +0 -13
  153. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/style.js +0 -13
  154. package/dist/extensions/Blocks/Recommendation/controls/price/align.js +0 -13
  155. package/dist/extensions/Blocks/Recommendation/controls/price/background.js +0 -13
  156. package/dist/extensions/Blocks/Recommendation/controls/price/color.js +0 -13
  157. package/dist/extensions/Blocks/Recommendation/controls/price/fontFamily.js +0 -13
  158. package/dist/extensions/Blocks/Recommendation/controls/price/paddings.js +0 -13
  159. package/dist/extensions/Blocks/Recommendation/controls/price/size.js +0 -13
  160. package/dist/extensions/Blocks/Recommendation/controls/price/style.js +0 -13
  161. package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +0 -160
  162. package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +0 -152
  163. package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +0 -180
  164. package/dist/extensions/Blocks/controlFactories.js +0 -223
  165. package/dist/node_modules/lodash-es/_DataView.js +0 -6
  166. package/dist/node_modules/lodash-es/_Promise.js +0 -6
  167. package/dist/node_modules/lodash-es/_Set.js +0 -6
  168. package/dist/node_modules/lodash-es/_SetCache.js +0 -13
  169. package/dist/node_modules/lodash-es/_WeakMap.js +0 -6
  170. package/dist/node_modules/lodash-es/_arrayFilter.js +0 -10
  171. package/dist/node_modules/lodash-es/_arrayMap.js +0 -8
  172. package/dist/node_modules/lodash-es/_arrayPush.js +0 -8
  173. package/dist/node_modules/lodash-es/_arraySome.js +0 -9
  174. package/dist/node_modules/lodash-es/_baseEach.js +0 -6
  175. package/dist/node_modules/lodash-es/_baseFlatten.js +0 -13
  176. package/dist/node_modules/lodash-es/_baseForOwn.js +0 -8
  177. package/dist/node_modules/lodash-es/_baseGet.js +0 -11
  178. package/dist/node_modules/lodash-es/_baseGetAllKeys.js +0 -9
  179. package/dist/node_modules/lodash-es/_baseHasIn.js +0 -6
  180. package/dist/node_modules/lodash-es/_baseIsEqual.js +0 -8
  181. package/dist/node_modules/lodash-es/_baseIsEqualDeep.js +0 -32
  182. package/dist/node_modules/lodash-es/_baseIsMatch.js +0 -29
  183. package/dist/node_modules/lodash-es/_baseIteratee.js +0 -11
  184. package/dist/node_modules/lodash-es/_baseKeys.js +0 -14
  185. package/dist/node_modules/lodash-es/_baseMap.js +0 -11
  186. package/dist/node_modules/lodash-es/_baseMatches.js +0 -12
  187. package/dist/node_modules/lodash-es/_baseMatchesProperty.js +0 -17
  188. package/dist/node_modules/lodash-es/_baseProperty.js +0 -8
  189. package/dist/node_modules/lodash-es/_basePropertyDeep.js +0 -9
  190. package/dist/node_modules/lodash-es/_baseRange.js +0 -9
  191. package/dist/node_modules/lodash-es/_baseToString.js +0 -18
  192. package/dist/node_modules/lodash-es/_baseTrim.js +0 -8
  193. package/dist/node_modules/lodash-es/_cacheHas.js +0 -6
  194. package/dist/node_modules/lodash-es/_castPath.js +0 -10
  195. package/dist/node_modules/lodash-es/_createBaseEach.js +0 -15
  196. package/dist/node_modules/lodash-es/_createRange.js +0 -11
  197. package/dist/node_modules/lodash-es/_equalArrays.js +0 -40
  198. package/dist/node_modules/lodash-es/_equalByTag.js +0 -45
  199. package/dist/node_modules/lodash-es/_equalObjects.js +0 -36
  200. package/dist/node_modules/lodash-es/_getAllKeys.js +0 -9
  201. package/dist/node_modules/lodash-es/_getMatchData.js +0 -12
  202. package/dist/node_modules/lodash-es/_getSymbols.js +0 -10
  203. package/dist/node_modules/lodash-es/_getTag.js +0 -28
  204. package/dist/node_modules/lodash-es/_hasPath.js +0 -19
  205. package/dist/node_modules/lodash-es/_isFlattenable.js +0 -10
  206. package/dist/node_modules/lodash-es/_isKey.js +0 -12
  207. package/dist/node_modules/lodash-es/_isStrictComparable.js +0 -7
  208. package/dist/node_modules/lodash-es/_mapToArray.js +0 -9
  209. package/dist/node_modules/lodash-es/_matchesStrictComparable.js +0 -8
  210. package/dist/node_modules/lodash-es/_memoizeCapped.js +0 -11
  211. package/dist/node_modules/lodash-es/_nativeKeys.js +0 -5
  212. package/dist/node_modules/lodash-es/_setCacheAdd.js +0 -7
  213. package/dist/node_modules/lodash-es/_setCacheHas.js +0 -6
  214. package/dist/node_modules/lodash-es/_setToArray.js +0 -9
  215. package/dist/node_modules/lodash-es/_stringToPath.js +0 -10
  216. package/dist/node_modules/lodash-es/_toKey.js +0 -10
  217. package/dist/node_modules/lodash-es/_trimmedEndIndex.js +0 -9
  218. package/dist/node_modules/lodash-es/flatMap.js +0 -8
  219. package/dist/node_modules/lodash-es/get.js +0 -8
  220. package/dist/node_modules/lodash-es/hasIn.js +0 -8
  221. package/dist/node_modules/lodash-es/isSymbol.js +0 -9
  222. package/dist/node_modules/lodash-es/keys.js +0 -9
  223. package/dist/node_modules/lodash-es/map.js +0 -11
  224. package/dist/node_modules/lodash-es/property.js +0 -10
  225. package/dist/node_modules/lodash-es/range.js +0 -5
  226. package/dist/node_modules/lodash-es/stubArray.js +0 -6
  227. package/dist/node_modules/lodash-es/toFinite.js +0 -14
  228. package/dist/node_modules/lodash-es/toNumber.js +0 -22
  229. package/dist/node_modules/lodash-es/toString.js +0 -7
  230. package/dist/src/components/organisms/onboarding/ItemsOnboarding.vue.d.ts +0 -2
  231. package/dist/src/composables/useBlocksConfig.d.ts +0 -11
  232. package/dist/src/config/compiler/itemsCompilerRules.d.ts +0 -2
  233. package/dist/src/enums/date.d.ts +0 -4
  234. package/dist/src/extensions/Blocks/Items/block.d.ts +0 -27
  235. package/dist/src/extensions/Blocks/Items/controls/button/link.d.ts +0 -14
  236. package/dist/src/extensions/Blocks/Items/controls/cardComposition.d.ts +0 -33
  237. package/dist/src/extensions/Blocks/Items/controls/image/link.d.ts +0 -14
  238. package/dist/src/extensions/Blocks/Items/controls/index.d.ts +0 -501
  239. package/dist/src/extensions/Blocks/Items/controls/name/trimming.d.ts +0 -14
  240. package/dist/src/extensions/Blocks/Items/controls/price/currencyLocation.d.ts +0 -19
  241. package/dist/src/extensions/Blocks/Items/controls/price/currencySymbol.d.ts +0 -21
  242. package/dist/src/extensions/Blocks/Items/controls/price/formattedPrice.d.ts +0 -14
  243. package/dist/src/extensions/Blocks/Items/controls/price/hideDiscount.d.ts +0 -13
  244. package/dist/src/extensions/Blocks/Items/controls/settingsControl.d.ts +0 -48
  245. package/dist/src/extensions/Blocks/Items/enums/controlEnums.d.ts +0 -61
  246. package/dist/src/extensions/Blocks/Items/enums/productEnums.d.ts +0 -162
  247. package/dist/src/extensions/Blocks/Items/enums/settingsEnums.d.ts +0 -49
  248. package/dist/src/extensions/Blocks/Items/extension.d.ts +0 -2
  249. package/dist/src/extensions/Blocks/Items/iconsRegistry.d.ts +0 -4
  250. package/dist/src/extensions/Blocks/Items/settingsPanel.d.ts +0 -4
  251. package/dist/src/extensions/Blocks/Items/store/items-block.d.ts +0 -41
  252. package/dist/src/extensions/Blocks/Items/template.d.ts +0 -24
  253. package/dist/src/extensions/Blocks/Items/utils/configBlockUtils.d.ts +0 -23
  254. package/dist/src/extensions/Blocks/Items/utils/syncAttributeFromConfigBlock.d.ts +0 -32
  255. package/dist/src/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.d.ts +0 -44
  256. package/dist/src/extensions/Blocks/Items/utils/updateAttributes.d.ts +0 -8
  257. package/dist/src/extensions/Blocks/Recommendation/constants.d.ts +0 -51
  258. package/dist/src/extensions/Blocks/Recommendation/controls/image/margins.d.ts +0 -5
  259. package/dist/src/extensions/Blocks/Recommendation/controls/image/size.d.ts +0 -5
  260. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/align.d.ts +0 -5
  261. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/background.d.ts +0 -5
  262. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/color.d.ts +0 -5
  263. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.d.ts +0 -5
  264. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/paddings.d.ts +0 -5
  265. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/size.d.ts +0 -5
  266. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/style.d.ts +0 -5
  267. package/dist/src/extensions/Blocks/Recommendation/controls/price/align.d.ts +0 -5
  268. package/dist/src/extensions/Blocks/Recommendation/controls/price/background.d.ts +0 -5
  269. package/dist/src/extensions/Blocks/Recommendation/controls/price/color.d.ts +0 -5
  270. package/dist/src/extensions/Blocks/Recommendation/controls/price/fontFamily.d.ts +0 -5
  271. package/dist/src/extensions/Blocks/Recommendation/controls/price/paddings.d.ts +0 -5
  272. package/dist/src/extensions/Blocks/Recommendation/controls/price/size.d.ts +0 -5
  273. package/dist/src/extensions/Blocks/Recommendation/controls/price/style.d.ts +0 -5
  274. package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +0 -16
  275. package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +0 -44
  276. package/dist/src/extensions/Blocks/controlFactories.d.ts +0 -312
  277. package/dist/src/utils/environmentUtil.d.ts +0 -5
  278. package/dist/src/utils/pairProductVariables.d.ts +0 -7
  279. package/dist/utils/environmentUtil.js +0 -4
  280. package/dist/utils/pairProductVariables.js +0 -136
@@ -1,41 +1,36 @@
1
- import { usePartner as N } from "../../composables/usePartner.js";
2
- import { LINK_REGEXES as l, LINK_TYPES as g, INSIDER_ID as f, URLS as S } from "../../enums/unsubscribe.js";
3
- import { parsePageList as U } from "../../extensions/Blocks/Unsubscribe/utils/utils.js";
4
- import { useConfigStore as B } from "../../stores/config.js";
5
- import { useDynamicContentStore as y } from "../../stores/dynamic-content.js";
6
- import { useUnsubscribeStore as L } from "../../stores/unsubscribe.js";
7
- const D = [
1
+ import { usePartner as U } from "../../composables/usePartner.js";
2
+ import { LINK_REGEXES as l, LINK_TYPES as b, URLS as f } from "../../enums/unsubscribe.js";
3
+ import { parsePageList as B } from "../../extensions/Blocks/Unsubscribe/utils/utils.js";
4
+ import { useConfigStore as N } from "../../stores/config.js";
5
+ import { useUnsubscribeStore as I } from "../../stores/unsubscribe.js";
6
+ const T = [
8
7
  {
9
8
  id: "add-unsubscribe-link-values",
10
9
  description: "Adding unsubscribe link values",
11
10
  type: "custom",
12
11
  processor: (t) => {
13
- const { getPartnerName: i } = N(), c = B(), n = y(), u = L(), a = c.getVariationId;
14
- if (!a)
12
+ const { getPartnerName: i } = U(), a = N(), n = I(), u = a.getVariationId;
13
+ if (!u)
15
14
  return t;
16
- let e = t;
17
- const r = `/${i()}/email/${a}?user={{iid}}`;
18
- return new DOMParser().parseFromString(e, "text/html").querySelectorAll(".unsubscribe-block-v2[data-unsubscribe-page-list]").forEach((p) => {
19
- var b;
20
- const m = p.getAttribute("data-unsubscribe-page-list");
21
- if (!m)
15
+ let o = t;
16
+ const e = `/${i()}/email/${u}?user={{iid}}`;
17
+ return new DOMParser().parseFromString(o, "text/html").querySelectorAll(".unsubscribe-block-v2[data-unsubscribe-page-list]").forEach((p) => {
18
+ var g;
19
+ const d = p.getAttribute("data-unsubscribe-page-list");
20
+ if (!d)
22
21
  return;
23
- const R = U(m), d = ((b = u.templates) == null ? void 0 : b.filter(
24
- (o) => R.includes(o.id)
25
- )) ?? [], _ = d.some((o) => o.type === g.UNSUBSCRIBE_LINK_TYPE), I = d.some((o) => o.type === g.PREFERENCES_LINK_TYPE), E = p.outerHTML;
22
+ const S = B(d), m = ((g = n.templates) == null ? void 0 : g.filter(
23
+ (c) => S.includes(c.id)
24
+ )) ?? [], R = m.some((c) => c.type === b.UNSUBSCRIBE_LINK_TYPE), _ = m.some((c) => c.type === b.PREFERENCES_LINK_TYPE), E = p.outerHTML;
26
25
  let s = E;
27
- _ && (n.selectedDynamicContentList.push({
28
- text: f,
29
- value: f,
30
- fallback: ""
31
- }), s = s.replace(
26
+ R && (s = s.replace(
32
27
  l.GLOBAL_UNSUBSCRIBE_LINK_REGEX,
33
- S.UNSUBSCRIBE_URL + r
34
- )), I && (s = s.replace(
28
+ f.UNSUBSCRIBE_URL + e
29
+ )), _ && (s = s.replace(
35
30
  l.PREFERENCES_UNSUBSCRIBE_LINK_REGEX,
36
- S.PREFERENCES_URL + r
37
- )), s = s.replace(l.UNSUBSCRIBE_LINK_REGEX, ""), e = e.replace(E, s);
38
- }), e;
31
+ f.PREFERENCES_URL + e
32
+ )), s = s.replace(l.UNSUBSCRIBE_LINK_REGEX, ""), o = o.replace(E, s);
33
+ }), o;
39
34
  },
40
35
  priority: 60
41
36
  },
@@ -61,16 +56,16 @@ const D = [
61
56
  type: "custom",
62
57
  processor: (t) => {
63
58
  let i = t;
64
- const c = i.match(/<a[^>]+>(.*?)<\/a>/gm);
65
- return c && c.forEach((n) => {
59
+ const a = i.match(/<a[^>]+>(.*?)<\/a>/gm);
60
+ return a && a.forEach((n) => {
66
61
  if (n.includes("insEmail=1"))
67
62
  return;
68
63
  if (n.match(/<a\s+(?:[^>]*?\s+)?href=(["'`”])(.*?)\1\s+(?:[^>]*?\s+)?universal=(["'`”])true\3/gm)) {
69
- const a = n.replace(/href=(["'`”])(.*?)\1/gm, (e) => {
64
+ const o = n.replace(/href=(["'`”])(.*?)\1/gm, (e) => {
70
65
  const r = e.slice(6, e.length - 1).trim();
71
66
  return e.includes("?") || e.includes("#") ? r.slice(-1) === "&" ? e.replace(r, `${r}insEmail=1`) : e.replace(r, `${r}&insEmail=1`) : e.replace(r, `${r}?insEmail=1`);
72
67
  });
73
- i = i.replace(n, a);
68
+ i = i.replace(n, o);
74
69
  }
75
70
  }), i;
76
71
  },
@@ -78,5 +73,5 @@ const D = [
78
73
  }
79
74
  ];
80
75
  export {
81
- D as unsubscribeCompilerRules
76
+ T as unsubscribeCompilerRules
82
77
  };
@@ -1,24 +1,23 @@
1
- var h = Object.defineProperty;
2
- var T = (A, e, t) => e in A ? h(A, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : A[e] = t;
3
- var m = (A, e, t) => T(A, typeof e != "symbol" ? e + "" : e, t);
4
- import P, { prepareProductRows as S } from "../../extensions/Blocks/Recommendation/templates/migrationTemplate.js";
5
- import { getDefaultProducts as q } from "../../extensions/Blocks/Recommendation/templates/templateUtils.js";
1
+ var b = Object.defineProperty;
2
+ var y = (i, e, t) => e in i ? b(i, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : i[e] = t;
3
+ var p = (i, e, t) => y(i, typeof e != "symbol" ? e + "" : e, t);
4
+ import h, { getDefaultProducts as x, prepareProductRows as C } from "../../extensions/Blocks/Recommendation/template.js";
6
5
  class w {
7
6
  constructor() {
8
- m(this, "parser");
7
+ p(this, "parser");
9
8
  this.parser = new DOMParser();
10
9
  }
11
10
  migrate(e) {
12
11
  try {
13
- const t = this.parser.parseFromString(e, "text/html"), s = t.querySelectorAll(
12
+ const t = this.parser.parseFromString(e, "text/html"), r = t.querySelectorAll(
14
13
  'td.ins-recommendation-v3-block-1, td.product-block[esd-handler-name*="EmailRecommendationV3"]'
15
14
  );
16
- return s.length === 0 ? e : (s.forEach((o) => {
17
- const l = o.getAttribute("id"), r = this.extractBgColor(o), i = this.extractTitle(o), u = this.extractProductRows(o), c = P.replace("{-{-TITLE-}-}", i).replace("{-{-PRODUCT_ROWS-}-}", u), a = this.parser.parseFromString(
18
- `<table id="tempDoc"><tbody><tr>${c}</tr></tbody></table>`,
15
+ return r.length === 0 ? e : (r.forEach((o) => {
16
+ const n = o.getAttribute("id"), s = this.extractBgColor(o), c = this.extractTitle(o), a = this.extractProductRows(o), u = h.replace("{-{-TITLE-}-}", c).replace("{-{-PRODUCT_ROWS-}-}", a), l = this.parser.parseFromString(
17
+ `<table id="tempDoc"><tbody><tr>${u}</tr></tbody></table>`,
19
18
  "text/html"
20
19
  ).querySelector(".ins-recommendation-v3-block-v2");
21
- a && o.parentNode && (l && a.setAttribute("id", l), r && a.setAttribute("bgcolor", r), o.parentNode.replaceChild(a, o));
20
+ l && o.parentNode && (n && l.setAttribute("id", n), console.debug("BG Color", s), s && l.setAttribute("bgcolor", s), o.parentNode.replaceChild(l, o));
22
21
  }), t.documentElement.outerHTML);
23
22
  } catch (t) {
24
23
  return console.error("RecommendationMigrator failed:", t), e;
@@ -26,45 +25,53 @@ class w {
26
25
  }
27
26
  /**
28
27
  * Extracts background color from old block
28
+ *
29
+ * Checks for background color in the following priority order:
30
+ * 1. bgcolor attribute: `<td bgcolor="#f9f9f9">`
31
+ * 2. style attribute: `<td style="background-color: #f9f9f9;">`
32
+ * @example
33
+ * // From bgcolor attribute
34
+ * <td bgcolor="#ffffff"> → "#ffffff"
35
+ *
36
+ * // From style attribute
37
+ * <td style="background-color: rgb(255, 255, 255);"> → "rgb(255, 255, 255)"
38
+ *
39
+ * // No background color
40
+ * <td> → ""
29
41
  * @param block - The old recommendation block element
30
- * @returns The background color value or empty string
42
+ * @returns The background color value (hex, rgb, rgba, named color) or empty string
31
43
  */
32
44
  extractBgColor(e) {
33
45
  const t = e.getAttribute("bgcolor");
34
- if (t)
46
+ if (console.debug("bg block", e), console.debug("bg attr", t), t)
35
47
  return t.trim();
36
- const s = e.getAttribute("style");
37
- if (s) {
38
- const o = s.match(/background-color\s*:\s*([^;]+)/i);
48
+ const r = e.getAttribute("style");
49
+ if (console.debug("bg style", r), r) {
50
+ const o = r.match(/background-color\s*:\s*([^;]+)/i);
39
51
  if (o && o[1])
40
52
  return o[1].trim();
41
53
  }
42
54
  return "";
43
55
  }
44
56
  /**
45
- * Extracts background color from product card wrapper element
46
- * @param cardElement - The product card TD element
47
- * @returns The background color value or empty string
48
- */
49
- extractCardBgColor(e) {
50
- const t = e.getAttribute("bgcolor");
51
- if (t)
52
- return t.trim();
53
- const s = e.getAttribute("style");
54
- if (s) {
55
- const o = s.match(/background-color\s*:\s*([^;]+)/i);
56
- if (o && o[1])
57
- return o[1].trim();
58
- }
59
- return "";
60
- }
61
- /**
62
- * Extracts title from old block and converts to new structure
63
- * @param block - The old recommendation block element
64
- * @returns HTML string for the title block
57
+ * Extracts title from old block
58
+ *
59
+ * Old structure:
60
+ * <td class="ext-recommendation-title" align="right">
61
+ * <p style="color: #93c47d; font-weight: bold; font-style: italic; font-size: 28px;">
62
+ * This is amazing recommendation
63
+ * </p>
64
+ * </td>
65
+ *
66
+ * New structure (output):
67
+ * <td class="esd-block-text es-p10t es-p10b es-p20l es-p20r" align="center">
68
+ * <p path="1" style="font-size: 28px; color: #333333;">
69
+ * <strong path="1,0">Title Text</strong>
70
+ * </p>
71
+ * </td>
65
72
  */
66
73
  extractTitle(e) {
67
- var a, g;
74
+ var l, d;
68
75
  const t = e.querySelector(".ext-recommendation-title");
69
76
  if (!t)
70
77
  return this.buildTitleBlock({
@@ -74,182 +81,83 @@ class w {
74
81
  align: "center",
75
82
  styles: "font-size: 28px; color: #333333;"
76
83
  });
77
- const s = t.querySelector("p");
78
- if (!s) {
79
- const p = ((a = t.textContent) == null ? void 0 : a.trim()) || "You May Also Like!", b = t.getAttribute("align") || "center";
84
+ const r = t.querySelector("p");
85
+ if (!r) {
86
+ const m = ((l = t.textContent) == null ? void 0 : l.trim()) || "You May Also Like!", f = t.getAttribute("align") || "center";
80
87
  return this.buildTitleBlock({
81
- text: p,
88
+ text: m,
82
89
  isBold: !0,
83
90
  isItalic: !1,
84
- align: b,
91
+ align: f,
85
92
  styles: "font-size: 28px; color: #333333;"
86
93
  });
87
94
  }
88
- const o = ((g = s.textContent) == null ? void 0 : g.trim()) || "You May Also Like!", l = t.getAttribute("align") || s.getAttribute("align") || "center", r = s.getAttribute("style") || "", i = /font-weight\s*:\s*bold/i.test(r) || !!s.querySelector("b, strong"), u = /font-style\s*:\s*italic/i.test(r) || !!s.querySelector("i, em"), c = this.removeStyleProperties(r, ["font-weight", "font-style"]), n = this.convertInlineToBlock(c);
95
+ const o = ((d = r.textContent) == null ? void 0 : d.trim()) || "You May Also Like!", n = t.getAttribute("align") || r.getAttribute("align") || "center", s = r.getAttribute("style") || "", c = /font-weight\s*:\s*bold/i.test(s) || !!r.querySelector("b, strong"), a = /font-style\s*:\s*italic/i.test(s) || !!r.querySelector("i, em"), u = this.removeStyleProperties(s, ["font-weight", "font-style"]), g = this.convertInlineToBlock(u);
89
96
  return this.buildTitleBlock({
90
97
  text: o,
91
- isBold: i,
92
- isItalic: u,
93
- align: l,
94
- styles: n
98
+ isBold: c,
99
+ isItalic: a,
100
+ align: n,
101
+ styles: g
95
102
  });
96
103
  }
97
104
  /**
98
105
  * Extracts product configuration from old block and generates new product rows
99
- * @param block - The old recommendation block element
100
- * @returns HTML string for product rows
106
+ *
107
+ * Strategy:
108
+ * 1. Extract product count and layout configuration from old block
109
+ * 2. Use prepareProductRows() to generate new HTML structure with default product data
110
+ *
111
+ * The migrator uses default/placeholder product data from getDefaultProducts()
112
+ * to populate the new block structure.
101
113
  */
102
114
  extractProductRows(e) {
103
115
  const t = this.extractProductConfig(e);
104
116
  if (!t)
105
- return console.warn("[RecommendationMigrator] No product config found, using defaults"), this.generateProductRows(6, 3, {});
106
- const { totalCount: s, productsPerRow: o } = t, l = this.extractProductStyles(e);
107
- return this.generateProductRows(s, o, l);
108
- }
109
- /**
110
- * Extracts Stripo padding/margin utility classes from a class string
111
- * @param classString - Space-separated class string from element
112
- * @returns Filtered Stripo utility classes as a space-separated string
113
- */
114
- extractStripoClasses(e) {
115
- return e ? e.split(/\s+/).filter((o) => /^es-(p\d+|m[-\d])/.test(o)).join(" ") : "";
117
+ return console.warn("[RecommendationMigrator] No product config found, using defaults"), this.generateProductRows(6, 3);
118
+ const { totalCount: r, rowCount: o } = t;
119
+ return this.generateProductRows(r, o);
116
120
  }
117
121
  /**
118
122
  * Extracts product configuration from old block
119
- * @param block - The old recommendation block element
120
- * @returns Object with totalCount and productsPerRow, or null if parsing fails
123
+ *
124
+ * Parses esd-dev-product-config attribute:
125
+ * {"rowCount":3,"totalCount":6,"orientation":"vertical",...}
121
126
  */
122
127
  extractProductConfig(e) {
123
128
  const t = e.getAttribute("esd-dev-product-config");
124
129
  if (!t)
125
130
  return null;
126
131
  try {
127
- const s = this.unescapeJsonString(t), o = JSON.parse(s);
132
+ const r = t.replace(/&quot;/g, '"').replace(/&amp;/g, "&").replace(/&lt;/g, "<").replace(/&gt;/g, ">"), o = JSON.parse(r);
128
133
  return {
129
134
  totalCount: o.totalCount ?? 6,
130
- productsPerRow: o.rowCount ?? 3
135
+ rowCount: o.rowCount ?? 3
131
136
  };
132
- } catch (s) {
133
- return console.error("[RecommendationMigrator] Failed to parse product config:", s), console.error(
134
- "[RecommendationMigrator] Error details:",
135
- s instanceof Error ? s.message : String(s)
136
- ), null;
137
+ } catch (r) {
138
+ return console.error("[RecommendationMigrator] Failed to parse product config:", r), null;
137
139
  }
138
140
  }
139
- /**
140
- * Decodes HTML entities from JSON string
141
- * @param text - The encoded string
142
- * @returns Decoded string
143
- */
144
- unescapeJsonString(e) {
145
- return e.replace(/&amp;/g, "&").replace(/&gt;/g, ">").replace(/&lt;/g, "<").replace(/&#x27;/g, "'").replace(/&quot;/g, '"').replace(/\\\\"/g, "'");
146
- }
147
141
  /**
148
142
  * Generates product rows using prepareProductRows with default product data
149
- * @param totalCount - Total number of products to display
150
- * @param productsPerRow - Number of products in each row
151
- * @param extractedStyles - Styles extracted from old product elements
152
- * @returns HTML string for product rows with applied styles
153
- */
154
- generateProductRows(e, t, s) {
155
- const o = q(), l = [];
156
- for (let i = 0; i < e; i++) {
157
- const u = o[i % o.length];
158
- l.push({ ...u });
159
- }
160
- let r = S(l, t);
161
- return r = this.applyExtractedStyles(r, s), r;
162
- }
163
- /**
164
- * Extracts styles from old product elements
165
- * @param block - The old recommendation block element
166
- * @returns Object with extracted styles for each element type
143
+ *
144
+ * Process:
145
+ * 1. Get default products from getDefaultProducts()
146
+ * 2. Create array of products (repeat defaults if needed to reach totalCount)
147
+ * 3. Call prepareProductRows() to generate HTML structure
148
+ *
149
+ * The generated HTML will contain placeholder/default product data
150
+ * which can be replaced with real data at runtime.
151
+ * @param totalCount - Total number of products (e.g., 6)
152
+ * @param productsPerRow - Products per row (e.g., 3)
167
153
  */
168
- extractProductStyles(e) {
169
- const t = {}, s = e.querySelector(".product-card");
170
- if (!s)
171
- return console.warn("[RecommendationMigrator] No product card found, using default styles"), t;
172
- const o = this.extractCardBgColor(s);
173
- o && (t.cardBgColor = o);
174
- const l = s.querySelector(".ext-product-image");
175
- if (l) {
176
- const n = l.querySelector("img"), a = n == null ? void 0 : n.getAttribute("width"), g = l.getAttribute("style") || "", p = l.getAttribute("align") || "center", b = l.getAttribute("class") || "", d = this.extractStripoClasses(b);
177
- t.imageWidth = a || "120", t.imageAlign = p, t.imageTdStyle = g, t.imageClasses = d;
178
- }
179
- const r = s.querySelector(".ext-product-name");
180
- if (r) {
181
- const n = r.querySelector("p"), a = (n == null ? void 0 : n.getAttribute("style")) || "", g = r.getAttribute("align") || "center", p = r.getAttribute("style") || "", b = r.getAttribute("class") || "", d = this.extractStripoClasses(b);
182
- t.nameStyle = a, t.nameAlign = g, t.nameTdStyle = p, t.nameClasses = d;
154
+ generateProductRows(e, t) {
155
+ const r = x(), o = [];
156
+ for (let n = 0; n < e; n++) {
157
+ const s = r[n % r.length];
158
+ o.push({ ...s });
183
159
  }
184
- const i = s.querySelector(".ext-product-price");
185
- if (i) {
186
- const n = i.querySelector("p"), a = (n == null ? void 0 : n.getAttribute("style")) || "", g = i.getAttribute("align") || "center", p = i.getAttribute("style") || "", b = i.getAttribute("class") || "", d = this.extractStripoClasses(b);
187
- t.priceStyle = a, t.priceAlign = g, t.priceTdStyle = p, t.priceClasses = d;
188
- }
189
- const u = s.querySelector(".ext-product-original-price");
190
- if (u) {
191
- const n = u.querySelector("p"), a = (n == null ? void 0 : n.getAttribute("style")) || "", g = u.getAttribute("align") || "center", p = u.getAttribute("style") || "", b = u.getAttribute("class") || "", d = this.extractStripoClasses(b);
192
- t.oldPriceStyle = a, t.oldPriceAlign = g, t.oldPriceTdStyle = p, t.oldPriceClasses = d;
193
- }
194
- const c = s.querySelector(".ext-product-button");
195
- if (c) {
196
- const n = c.querySelector(".es-button-border"), a = c.querySelector("a.es-button"), g = (n == null ? void 0 : n.getAttribute("style")) || "", p = (a == null ? void 0 : a.getAttribute("style")) || "", b = c.getAttribute("align") || "center", d = c.getAttribute("style") || "", f = c.getAttribute("class") || "", C = this.extractStripoClasses(f), y = ((c == null ? void 0 : c.textContent) || "").trim();
197
- t.buttonBorderStyle = g, t.buttonLinkStyle = p, t.buttonAlign = b, t.buttonTdStyle = d, t.buttonClasses = C, t.buttonText = y;
198
- }
199
- return t;
200
- }
201
- /**
202
- * Applies extracted styles to the generated HTML
203
- * @param html - The generated HTML from prepareProductRows
204
- * @param extractedStyles - Styles extracted from old product elements
205
- * @returns HTML with applied styles
206
- */
207
- applyExtractedStyles(e, t) {
208
- if (!t || Object.keys(t).length === 0)
209
- return e;
210
- const s = this.parser.parseFromString(`<table>${e}</table>`, "text/html");
211
- t.cardBgColor && s.querySelectorAll(".product-attribute-cell").forEach((r) => {
212
- r.setAttribute("bgcolor", t.cardBgColor);
213
- }), (t.imageWidth || t.imageAlign || t.imageTdStyle || t.imageClasses) && s.querySelectorAll(".product-image").forEach((r) => {
214
- if (t.imageAlign && r.setAttribute("align", t.imageAlign), t.imageTdStyle && r.setAttribute("style", t.imageTdStyle), t.imageClasses) {
215
- const c = `${r.getAttribute("class") || ""} ${t.imageClasses}`.trim();
216
- r.setAttribute("class", c);
217
- }
218
- const i = r.querySelector("img");
219
- i && t.imageWidth && i.setAttribute("width", t.imageWidth);
220
- }), (t.nameStyle || t.nameAlign || t.nameTdStyle || t.nameClasses) && s.querySelectorAll(".product-name").forEach((r) => {
221
- if (t.nameAlign && r.setAttribute("align", t.nameAlign), t.nameTdStyle && r.setAttribute("style", t.nameTdStyle), t.nameClasses) {
222
- const c = `${r.getAttribute("class") || ""} ${t.nameClasses}`.trim();
223
- r.setAttribute("class", c);
224
- }
225
- const i = r.querySelector("p");
226
- i && t.nameStyle && i.setAttribute("style", t.nameStyle);
227
- }), (t.priceStyle || t.priceAlign || t.priceTdStyle || t.priceClasses) && s.querySelectorAll(".product-price").forEach((r) => {
228
- if (t.priceAlign && r.setAttribute("align", t.priceAlign), t.priceTdStyle && r.setAttribute("style", t.priceTdStyle), t.priceClasses) {
229
- const c = `${r.getAttribute("class") || ""} ${t.priceClasses}`.trim();
230
- r.setAttribute("class", c);
231
- }
232
- const i = r.querySelector("p");
233
- i && t.priceStyle && i.setAttribute("style", t.priceStyle);
234
- }), (t.oldPriceStyle || t.oldPriceAlign || t.oldPriceTdStyle || t.oldPriceClasses) && s.querySelectorAll(".product-old-price").forEach((r) => {
235
- if (t.oldPriceAlign && r.setAttribute("align", t.oldPriceAlign), t.oldPriceTdStyle && r.setAttribute("style", t.oldPriceTdStyle), t.oldPriceClasses) {
236
- const c = `${r.getAttribute("class") || ""} ${t.oldPriceClasses}`.trim();
237
- r.setAttribute("class", c);
238
- }
239
- const i = r.querySelector("p");
240
- i && t.oldPriceStyle && i.setAttribute("style", t.oldPriceStyle);
241
- }), (t.buttonBorderStyle || t.buttonLinkStyle || t.buttonAlign || t.buttonTdStyle || t.buttonClasses) && s.querySelectorAll(".product-button").forEach((r) => {
242
- if (t.buttonAlign && r.setAttribute("align", t.buttonAlign), t.buttonTdStyle && r.setAttribute("style", t.buttonTdStyle), t.buttonClasses) {
243
- const n = `${r.getAttribute("class") || ""} ${t.buttonClasses}`.trim();
244
- r.setAttribute("class", n);
245
- }
246
- const i = r.querySelector(".es-button-border");
247
- i && t.buttonBorderStyle && i.setAttribute("style", t.buttonBorderStyle);
248
- const u = r.querySelector("a.es-button");
249
- u && (t.buttonLinkStyle && u.setAttribute("style", t.buttonLinkStyle), t.buttonText && (u.textContent = t.buttonText));
250
- });
251
- const o = s.querySelector("table");
252
- return (o == null ? void 0 : o.innerHTML) || e;
160
+ return C(o, t);
253
161
  }
254
162
  /**
255
163
  * Builds title block with proper structure
@@ -257,9 +165,9 @@ class w {
257
165
  buildTitleBlock(e) {
258
166
  let t = e.text;
259
167
  e.isBold && e.isItalic ? t = `<strong path="1,0"><em path="1,0,0">${t}</em></strong>` : e.isBold ? t = `<strong path="1,0">${t}</strong>` : e.isItalic && (t = `<em path="1,0">${t}</em>`);
260
- const s = e.align ? ` align="${e.align}"` : "", o = e.styles ? ` style="${e.styles}"` : "";
168
+ const r = e.align ? ` align="${e.align}"` : "", o = e.styles ? ` style="${e.styles}"` : "";
261
169
  return `
262
- <td class="esd-block-text es-p10t es-p10b es-p20l es-p20r"${s}>
170
+ <td class="esd-block-text es-p10t es-p10b es-p20l es-p20r"${r}>
263
171
  <p path="1"${o}>
264
172
  ${t}
265
173
  </p>
@@ -268,26 +176,28 @@ class w {
268
176
  }
269
177
  /**
270
178
  * Removes specified style properties from a style string
179
+ * Helper from CheckboxMigrator
271
180
  */
272
181
  removeStyleProperties(e, t) {
273
- return e ? t.reduce((o, l) => {
274
- const r = new RegExp(`${l}\\s*:\\s*[^;]*;?`, "gi");
275
- return o.replace(r, "");
182
+ return e ? t.reduce((o, n) => {
183
+ const s = new RegExp(`${n}\\s*:\\s*[^;]*;?`, "gi");
184
+ return o.replace(s, "");
276
185
  }, e).replace(/;\s*;/g, ";").replace(/^;|;$/g, "").trim() : "";
277
186
  }
278
187
  /**
279
188
  * Converts inline display to block display
189
+ * Helper from CheckboxMigrator
280
190
  */
281
191
  convertInlineToBlock(e) {
282
192
  if (!e)
283
193
  return "";
284
194
  let t = e.replace(/display\s*:\s*inline/gi, "display: block");
285
- return /display\s*:/i.test(t) || (t = t ? `${t}; display: block` : "display: block"), t.replace(/;\s*;/g, ";").replace(/^;|;$/g, "").replace(/"/g, "'").trim();
195
+ return /display\s*:/i.test(t) || (t = t ? `${t}; display: block` : "display: block"), t.replace(/;\s*;/g, ";").replace(/^;|;$/g, "").trim();
286
196
  }
287
197
  }
288
- function k(A) {
289
- return new w().migrate(A);
198
+ function P(i) {
199
+ return new w().migrate(i);
290
200
  }
291
201
  export {
292
- k as migrateRecommendation
202
+ P as migrateRecommendation
293
203
  };
@@ -1,6 +1,5 @@
1
- const e = {
1
+ const a = {
2
2
  translationsPath: "window.trans.en",
3
- migrationDate: 1759696858,
4
3
  emailHeader: {
5
4
  senderName: "",
6
5
  subject: ""
@@ -8,25 +7,18 @@ const e = {
8
7
  extensions: {
9
8
  unsubscribe: !0
10
9
  },
11
- blocks: {
12
- excludeDefaults: [],
13
- includeCustoms: []
14
- },
15
10
  features: {
16
11
  dynamicContent: !0,
17
12
  saveAsTemplate: !0,
18
- versionHistory: !0,
19
- testMessage: !0,
20
- displayConditions: !0
13
+ versionHistory: !0
21
14
  },
22
15
  useHeader: !0
23
16
  }, t = {
24
17
  promotional: 1,
25
18
  transactional: 2
26
- }, a = "email", o = "Guido User", s = t.promotional, n = 2, i = {
19
+ }, e = "email", o = "Guido User", n = t.promotional, s = 2, i = {
27
20
  email: 60,
28
- architect: 49,
29
- unsubscribePages: 97
21
+ architect: 49
30
22
  }, u = [
31
23
  "alfredtesting",
32
24
  "electio",
@@ -60,11 +52,11 @@ const e = {
60
52
  "stripoeditorlivetest"
61
53
  ];
62
54
  export {
63
- e as DefaultGuidoConfig,
64
- s as DefaultMessageType,
65
- a as DefaultProductType,
55
+ a as DefaultGuidoConfig,
56
+ n as DefaultMessageType,
57
+ e as DefaultProductType,
66
58
  o as DefaultUsername,
67
- n as EditorType,
59
+ s as EditorType,
68
60
  i as ProductIds,
69
61
  u as TEST_PARTNER_LIST,
70
62
  t as TemplateTypes
@@ -12,8 +12,8 @@ const s = {
12
12
  { id: 61, key: "mostPopular", name: "Most Popular Items", path: "most-popular" },
13
13
  { id: 62, key: "mostPurchased", name: "Top Sellers", path: "top-sellers" }
14
14
  ], u = ["discount", "omnibus_price", "omnibus_discount", "price", "original_price"], l = [
15
- { text: "before the amount", value: "0" },
16
- { text: "after the amount", value: "1" }
15
+ { text: "after the amount", value: "1" },
16
+ { text: "before the amount", value: "0" }
17
17
  ], c = [
18
18
  { text: "dot(.)", value: "." },
19
19
  { text: "comma(,)", value: "," }
@@ -2,12 +2,7 @@ const e = [
2
2
  ".service-element.stacked-panel-item.ng-tns-c1014751574-3.level-bottom-0.ng-star-inserted",
3
3
  ".service-element.stacked-panel-item.ng-tns-c1014751574-3.level-bottom-1.ng-star-inserted",
4
4
  ".service-element.stacked-panel-item.ng-tns-c1014751574-3.level-bottom-2.ng-star-inserted"
5
- ], t = "ui-editor", n = 'button[role="tab"][aria-label="Card Composition"]', s = 'button[role="tab"][aria-label="Settings"]', o = ".in-ribbons-wrapper", a = "https://academy.useinsider.com/docs/email-drag-drop-editor";
5
+ ];
6
6
  export {
7
- a as ACADEMY_LINK,
8
- n as CARD_COMPOSITION_TAB_SELECTOR,
9
- o as RIBBON_SELECTOR,
10
- e as SERVICE_HOVER_SELECTORS,
11
- s as SETTINGS_TAB_SELECTOR,
12
- t as UI_EDITOR_SELECTOR
7
+ e as SERVICE_HOVER_SELECTORS
13
8
  };
@@ -1,26 +1,25 @@
1
- import { useTranslations as n } from "../composables/useTranslations.js";
2
- import { getEnvironmentPrefix as R } from "../utils/environmentUtil.js";
3
- const e = n(), I = {
1
+ import { useTranslations as e } from "../composables/useTranslations.js";
2
+ const s = e(), R = {
4
3
  UNSUBSCRIBE_LINK_TYPE: 1,
5
4
  PREFERENCES_LINK_TYPE: 3
6
- }, r = {
5
+ }, S = {
7
6
  UNSUBSCRIBE_LINK_REGEX: /{{ins-unsubscribe-link}}/g,
8
7
  DATA_OGSB_BUTTON_CSS_REGEX: "\\[data-ogsb\\]\\s*\\.es-button\\.es-button-[0-9]+\\s*\\{(?:[^\\}]*)\\}",
9
8
  GLOBAL_UNSUBSCRIBE_LINK_REGEX: /{{ins-global-unsubscribe-link}}/g,
10
9
  PREFERENCES_UNSUBSCRIBE_LINK_REGEX: /{{ins-preferences-unsubscribe-link}}/g
11
- }, s = R(), _ = {
12
- UNSUBSCRIBE_URL: `https://mail.${s}.com/user/v1/unsub`,
13
- PREFERENCES_URL: `https://mail.${s}.com/user/v1/prefs`
14
- }, i = "iid", B = {
10
+ }, N = {
11
+ UNSUBSCRIBE_URL: "https://mail.useinsider.com/user/v1/unsub",
12
+ PREFERENCES_URL: "https://mail.useinsider.com/user/v1/prefs"
13
+ }, _ = {
15
14
  name: "Global Unsubscribe",
16
15
  sendGridId: "G"
17
- }, C = "https://academy.useinsider.com/docs/global-unsubscribe-preference-center", c = "/email/unsubscribe-pages", E = {
16
+ }, I = "https://academy.useinsider.com/docs/global-unsubscribe-preference-center", r = "/email/unsubscribe-pages", E = {
18
17
  GLOBAL_UNSUBSCRIBE: 1,
19
18
  GLOBAL_UNSUBSCRIBE_CONFIRMATION_PAGE: 2,
20
19
  SUBSCRIPTION_PREFERENCE_CENTER: 3,
21
20
  SUBSCRIPTION_PREFERENCE_CONFIRMATION: 4,
22
21
  RESUBSCRIBE: 5
23
- }, t = {
22
+ }, i = {
24
23
  [E.GLOBAL_UNSUBSCRIBE]: [
25
24
  E.GLOBAL_UNSUBSCRIBE,
26
25
  E.GLOBAL_UNSUBSCRIBE_CONFIRMATION_PAGE,
@@ -30,27 +29,26 @@ const e = n(), I = {
30
29
  E.SUBSCRIPTION_PREFERENCE_CENTER,
31
30
  E.SUBSCRIPTION_PREFERENCE_CONFIRMATION
32
31
  ]
33
- }, U = {
34
- [E.GLOBAL_UNSUBSCRIBE]: e("unsubscription-preference.type-global-unsubscribe"),
35
- [E.GLOBAL_UNSUBSCRIBE_CONFIRMATION_PAGE]: e("unsubscription-preference.type-global-unsubscription-confirmation"),
36
- [E.RESUBSCRIBE]: e("unsubscription-preference.type-resubscribe"),
37
- [E.SUBSCRIPTION_PREFERENCE_CENTER]: e("unsubscription-preference.type-subscription-preferences-center"),
38
- [E.SUBSCRIPTION_PREFERENCE_CONFIRMATION]: e("unsubscription-preference.type-subscription-preferences-confirmation")
39
- }, o = {
32
+ }, B = {
33
+ [E.GLOBAL_UNSUBSCRIBE]: s("unsubscription-preference.type-global-unsubscribe"),
34
+ [E.GLOBAL_UNSUBSCRIBE_CONFIRMATION_PAGE]: s("unsubscription-preference.type-global-unsubscription-confirmation"),
35
+ [E.RESUBSCRIBE]: s("unsubscription-preference.type-resubscribe"),
36
+ [E.SUBSCRIPTION_PREFERENCE_CENTER]: s("unsubscription-preference.type-subscription-preferences-center"),
37
+ [E.SUBSCRIPTION_PREFERENCE_CONFIRMATION]: s("unsubscription-preference.type-subscription-preferences-confirmation")
38
+ }, C = {
40
39
  default: "{{ins-unsubscribe-link}}",
41
40
  [E.GLOBAL_UNSUBSCRIBE]: "{{ins-global-unsubscribe-link}}",
42
41
  [E.SUBSCRIPTION_PREFERENCE_CENTER]: "{{ins-preferences-unsubscribe-link}}"
43
42
  };
44
43
  export {
45
- C as ACADEMY_LINK,
46
- B as DEFAULT_UNSUBSCRIBE_GROUP,
47
- i as INSIDER_ID,
48
- r as LINK_REGEXES,
49
- I as LINK_TYPES,
50
- o as MERGE_TAGS,
44
+ I as ACADEMY_LINK,
45
+ _ as DEFAULT_UNSUBSCRIBE_GROUP,
46
+ S as LINK_REGEXES,
47
+ R as LINK_TYPES,
48
+ C as MERGE_TAGS,
51
49
  E as PAGE_TYPES,
52
- t as TYPE_COLLECTIONS,
53
- U as TYPE_TRANSLATIONS,
54
- c as UNSUBSCRIBE_PAGES_LINK,
55
- _ as URLS
50
+ i as TYPE_COLLECTIONS,
51
+ B as TYPE_TRANSLATIONS,
52
+ r as UNSUBSCRIBE_PAGES_LINK,
53
+ N as URLS
56
54
  };