@useinsider/guido 2.0.0-beta.1c331b8 → 2.0.0-beta.2369541

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 (231) hide show
  1. package/dist/@types/config/schemas.js +53 -39
  2. package/dist/components/organisms/email-preview/PreviewContainer.vue.js +3 -3
  3. package/dist/components/organisms/email-preview/amp/AmpErrorModal.vue.js +8 -8
  4. package/dist/components/organisms/email-preview/amp/AmpErrorModal.vue2.js +17 -13
  5. package/dist/components/organisms/email-preview/amp/AmpToggle.vue.js +7 -8
  6. package/dist/components/organisms/email-preview/amp/AmpToggle.vue2.js +14 -12
  7. package/dist/components/organisms/email-preview/desktop-preview/DesktopBrowserHeader.vue.js +18 -0
  8. package/dist/components/organisms/email-preview/desktop-preview/DesktopBrowserHeader.vue2.js +15 -0
  9. package/dist/components/organisms/email-preview/desktop-preview/DesktopPreview.vue.js +10 -14
  10. package/dist/components/organisms/email-preview/desktop-preview/DesktopPreview.vue2.js +14 -22
  11. package/dist/components/organisms/email-preview/desktop-preview/EmailSizeIndicator.vue.js +3 -3
  12. package/dist/components/organisms/email-preview/mobile-preview/ContentView.vue.js +11 -10
  13. package/dist/components/organisms/email-preview/mobile-preview/InboxView.vue.js +12 -10
  14. package/dist/components/organisms/email-preview/mobile-preview/MobilePreview.vue.js +11 -10
  15. package/dist/components/organisms/email-preview/mobile-preview/MobilePreview.vue2.js +15 -14
  16. package/dist/components/organisms/header/EditorActions.vue.js +20 -0
  17. package/dist/components/organisms/header/EditorActions.vue2.js +41 -0
  18. package/dist/components/organisms/header/EditorToolbar.vue.js +18 -0
  19. package/dist/components/organisms/header/EditorToolbar.vue2.js +17 -0
  20. package/dist/components/organisms/header/HeaderWrapper.vue.js +6 -5
  21. package/dist/components/organisms/header/LeftSlot.vue.js +11 -11
  22. package/dist/components/organisms/header/LeftSlot.vue2.js +11 -12
  23. package/dist/components/organisms/header/MiddleSlot.vue.js +10 -10
  24. package/dist/components/organisms/header/MiddleSlot.vue2.js +11 -15
  25. package/dist/components/organisms/header/RightSlot.vue.js +11 -14
  26. package/dist/components/organisms/header/RightSlot.vue2.js +13 -30
  27. package/dist/components/organisms/header/version-history/VersionHistory.vue.js +5 -5
  28. package/dist/components/organisms/onboarding/NewVersionPopup.vue2.js +15 -15
  29. package/dist/components/organisms/unsubscribe/UnsubscribeTypeSelection.vue.js +1 -1
  30. package/dist/components/organisms/unsubscribe/UnsubscribeTypeSelection.vue2.js +20 -19
  31. package/dist/composables/useConfig.js +29 -27
  32. package/dist/composables/useSave.js +13 -11
  33. package/dist/config/migrator/recommendationMigrator.js +2 -2
  34. package/dist/enums/academy.js +8 -0
  35. package/dist/enums/onboarding.js +1 -2
  36. package/dist/enums/unsubscribe.js +20 -21
  37. package/dist/extensions/Blocks/Items/controls/cardComposition.js +4 -13
  38. package/dist/extensions/Blocks/Recommendation/block.js +1 -1
  39. package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +103 -0
  40. package/dist/extensions/Blocks/Recommendation/constants.js +5 -0
  41. package/dist/extensions/Blocks/Recommendation/control.js +306 -0
  42. package/dist/extensions/Blocks/Recommendation/controls/button/align.js +13 -0
  43. package/dist/extensions/Blocks/Recommendation/controls/button/border.js +13 -0
  44. package/dist/extensions/Blocks/Recommendation/controls/button/borderRadius.js +13 -0
  45. package/dist/extensions/Blocks/Recommendation/controls/button/color.js +13 -0
  46. package/dist/extensions/Blocks/Recommendation/controls/button/fitToContent.js +13 -0
  47. package/dist/extensions/Blocks/Recommendation/controls/button/fontFamily.js +13 -0
  48. package/dist/extensions/Blocks/Recommendation/controls/button/margins.js +13 -0
  49. package/dist/extensions/Blocks/Recommendation/controls/button/paddings.js +13 -0
  50. package/dist/extensions/Blocks/Recommendation/controls/button/text.js +13 -0
  51. package/dist/extensions/Blocks/Recommendation/controls/button/textSize.js +13 -0
  52. package/dist/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.js +13 -0
  53. package/dist/extensions/Blocks/Recommendation/controls/image/margins.js +13 -0
  54. package/dist/extensions/Blocks/Recommendation/controls/image/size.js +13 -0
  55. package/dist/extensions/Blocks/Recommendation/controls/name/align.js +13 -0
  56. package/dist/extensions/Blocks/Recommendation/controls/name/background.js +13 -0
  57. package/dist/extensions/Blocks/Recommendation/controls/name/color.js +13 -0
  58. package/dist/extensions/Blocks/Recommendation/controls/name/fontFamily.js +13 -0
  59. package/dist/extensions/Blocks/Recommendation/controls/name/paddings.js +13 -0
  60. package/dist/extensions/Blocks/Recommendation/controls/name/size.js +13 -0
  61. package/dist/extensions/Blocks/Recommendation/controls/name/style.js +13 -0
  62. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/align.js +13 -0
  63. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/background.js +13 -0
  64. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/color.js +13 -0
  65. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.js +13 -0
  66. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/paddings.js +13 -0
  67. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/size.js +13 -0
  68. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/style.js +13 -0
  69. package/dist/extensions/Blocks/Recommendation/controls/price/align.js +13 -0
  70. package/dist/extensions/Blocks/Recommendation/controls/price/background.js +13 -0
  71. package/dist/extensions/Blocks/Recommendation/controls/price/color.js +13 -0
  72. package/dist/extensions/Blocks/Recommendation/controls/price/fontFamily.js +13 -0
  73. package/dist/extensions/Blocks/Recommendation/controls/price/paddings.js +13 -0
  74. package/dist/extensions/Blocks/Recommendation/controls/price/size.js +13 -0
  75. package/dist/extensions/Blocks/Recommendation/controls/price/style.js +13 -0
  76. package/dist/extensions/Blocks/Recommendation/extension.js +43 -40
  77. package/dist/extensions/Blocks/Recommendation/recommendation.css.js +0 -5
  78. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +72 -128
  79. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +25 -28
  80. package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +160 -0
  81. package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +152 -0
  82. package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +180 -0
  83. package/dist/extensions/Blocks/Recommendation/utils/filterUtil.js +9 -9
  84. package/dist/extensions/Blocks/Unsubscribe/extension.js +9 -9
  85. package/dist/extensions/Blocks/common-control.js +6 -7
  86. package/dist/extensions/Blocks/controlFactories.js +121 -155
  87. package/dist/guido.css +1 -1
  88. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +291 -361
  89. package/dist/package.json.js +1 -1
  90. package/dist/src/@types/config/index.d.ts +2 -2
  91. package/dist/src/@types/config/schemas.d.ts +26 -0
  92. package/dist/src/@types/config/types.d.ts +7 -1
  93. package/dist/src/components/organisms/email-preview/desktop-preview/DesktopBrowserHeader.vue.d.ts +2 -0
  94. package/dist/src/components/organisms/header/EditorActions.vue.d.ts +4 -0
  95. package/dist/src/components/organisms/header/EditorToolbar.vue.d.ts +2 -0
  96. package/dist/src/components/organisms/header/RightSlot.vue.d.ts +1 -1
  97. package/dist/src/composables/useConfig.d.ts +6 -0
  98. package/dist/src/enums/academy.d.ts +12 -0
  99. package/dist/src/enums/onboarding.d.ts +0 -1
  100. package/dist/src/enums/unsubscribe.d.ts +0 -1
  101. package/dist/src/extensions/Blocks/Recommendation/cardCompositionControl.d.ts +28 -0
  102. package/dist/src/extensions/Blocks/Recommendation/{constants/controlIds.d.ts → constants.d.ts} +11 -19
  103. package/dist/src/extensions/Blocks/Recommendation/control.d.ts +35 -0
  104. package/dist/src/extensions/Blocks/Recommendation/controls/button/align.d.ts +5 -0
  105. package/dist/src/extensions/Blocks/Recommendation/controls/button/border.d.ts +5 -0
  106. package/dist/src/extensions/Blocks/Recommendation/controls/button/borderRadius.d.ts +5 -0
  107. package/dist/src/extensions/Blocks/Recommendation/controls/button/color.d.ts +5 -0
  108. package/dist/src/extensions/Blocks/Recommendation/controls/button/fitToContent.d.ts +5 -0
  109. package/dist/src/extensions/Blocks/Recommendation/controls/button/fontFamily.d.ts +5 -0
  110. package/dist/src/extensions/Blocks/Recommendation/controls/button/margins.d.ts +5 -0
  111. package/dist/src/extensions/Blocks/Recommendation/controls/button/paddings.d.ts +5 -0
  112. package/dist/src/extensions/Blocks/Recommendation/controls/button/text.d.ts +5 -0
  113. package/dist/src/extensions/Blocks/Recommendation/controls/button/textSize.d.ts +5 -0
  114. package/dist/src/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.d.ts +5 -0
  115. package/dist/src/extensions/Blocks/Recommendation/controls/image/margins.d.ts +5 -0
  116. package/dist/src/extensions/Blocks/Recommendation/controls/image/size.d.ts +5 -0
  117. package/dist/src/extensions/Blocks/Recommendation/controls/name/align.d.ts +5 -0
  118. package/dist/src/extensions/Blocks/Recommendation/controls/name/background.d.ts +5 -0
  119. package/dist/src/extensions/Blocks/Recommendation/controls/name/color.d.ts +5 -0
  120. package/dist/src/extensions/Blocks/Recommendation/controls/name/fontFamily.d.ts +5 -0
  121. package/dist/src/extensions/Blocks/Recommendation/controls/name/paddings.d.ts +5 -0
  122. package/dist/src/extensions/Blocks/Recommendation/controls/name/size.d.ts +5 -0
  123. package/dist/src/extensions/Blocks/Recommendation/controls/name/style.d.ts +5 -0
  124. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/align.d.ts +5 -0
  125. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/background.d.ts +5 -0
  126. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/color.d.ts +5 -0
  127. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.d.ts +5 -0
  128. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/paddings.d.ts +5 -0
  129. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/size.d.ts +5 -0
  130. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/style.d.ts +5 -0
  131. package/dist/src/extensions/Blocks/Recommendation/controls/price/align.d.ts +5 -0
  132. package/dist/src/extensions/Blocks/Recommendation/controls/price/background.d.ts +5 -0
  133. package/dist/src/extensions/Blocks/Recommendation/controls/price/color.d.ts +5 -0
  134. package/dist/src/extensions/Blocks/Recommendation/controls/price/fontFamily.d.ts +5 -0
  135. package/dist/src/extensions/Blocks/Recommendation/controls/price/paddings.d.ts +5 -0
  136. package/dist/src/extensions/Blocks/Recommendation/controls/price/size.d.ts +5 -0
  137. package/dist/src/extensions/Blocks/Recommendation/controls/price/style.d.ts +5 -0
  138. package/dist/src/extensions/Blocks/Recommendation/extension.d.ts +0 -9
  139. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +16 -16
  140. package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +16 -0
  141. package/dist/src/extensions/Blocks/Recommendation/templates/{vertical/migration.d.ts → migrationTemplate.d.ts} +4 -11
  142. package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +44 -0
  143. package/dist/src/extensions/Blocks/common-control.d.ts +1 -1
  144. package/dist/src/stores/config.d.ts +147 -1
  145. package/dist/static/assets/desktop/desktop-mockup-center.svg.js +4 -0
  146. package/dist/static/assets/desktop/desktop-mockup-left.svg.js +4 -0
  147. package/dist/static/assets/desktop/desktop-mockup-right.svg.js +4 -0
  148. package/dist/static/assets/mobile/email-mockup.svg.js +4 -0
  149. package/dist/static/assets/mobile/inbox-mockup.svg.js +4 -0
  150. package/dist/static/styles/components/button.css.js +1 -1
  151. package/dist/static/styles/components/wide-panel.css.js +4 -0
  152. package/dist/static/styles/customEditorStyle.css.js +2 -38
  153. package/dist/stores/config.js +7 -0
  154. package/package.json +3 -3
  155. package/dist/components/organisms/email-preview/desktop-preview/EmailHeaderInfo.vue.js +0 -17
  156. package/dist/components/organisms/email-preview/desktop-preview/EmailHeaderInfo.vue2.js +0 -20
  157. package/dist/extensions/Blocks/Recommendation/constants/blockIds.js +0 -4
  158. package/dist/extensions/Blocks/Recommendation/constants/controlIds.js +0 -4
  159. package/dist/extensions/Blocks/Recommendation/constants/layout.js +0 -7
  160. package/dist/extensions/Blocks/Recommendation/constants/selectors.js +0 -11
  161. package/dist/extensions/Blocks/Recommendation/controls/button/index.js +0 -64
  162. package/dist/extensions/Blocks/Recommendation/controls/cardBackground/index.js +0 -80
  163. package/dist/extensions/Blocks/Recommendation/controls/cardComposition/index.js +0 -238
  164. package/dist/extensions/Blocks/Recommendation/controls/image/index.js +0 -19
  165. package/dist/extensions/Blocks/Recommendation/controls/layout/index.js +0 -104
  166. package/dist/extensions/Blocks/Recommendation/controls/main/algorithm.js +0 -86
  167. package/dist/extensions/Blocks/Recommendation/controls/main/currency.js +0 -134
  168. package/dist/extensions/Blocks/Recommendation/controls/main/filters.js +0 -54
  169. package/dist/extensions/Blocks/Recommendation/controls/main/index.js +0 -134
  170. package/dist/extensions/Blocks/Recommendation/controls/main/locale.js +0 -64
  171. package/dist/extensions/Blocks/Recommendation/controls/main/productLayout.js +0 -124
  172. package/dist/extensions/Blocks/Recommendation/controls/main/shuffle.js +0 -60
  173. package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +0 -112
  174. package/dist/extensions/Blocks/Recommendation/controls/name/index.js +0 -46
  175. package/dist/extensions/Blocks/Recommendation/controls/name/textTrim.js +0 -76
  176. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/index.js +0 -44
  177. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.js +0 -48
  178. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.js +0 -73
  179. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.js +0 -73
  180. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/index.js +0 -48
  181. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.js +0 -73
  182. package/dist/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.js +0 -73
  183. package/dist/extensions/Blocks/Recommendation/controls/price/index.js +0 -44
  184. package/dist/extensions/Blocks/Recommendation/controls/spacing/index.js +0 -216
  185. package/dist/extensions/Blocks/Recommendation/templates/horizontal/elementRenderer.js +0 -157
  186. package/dist/extensions/Blocks/Recommendation/templates/horizontal/template.js +0 -72
  187. package/dist/extensions/Blocks/Recommendation/templates/index.js +0 -12
  188. package/dist/extensions/Blocks/Recommendation/templates/utils.js +0 -173
  189. package/dist/extensions/Blocks/Recommendation/templates/vertical/elementRenderer.js +0 -186
  190. package/dist/extensions/Blocks/Recommendation/templates/vertical/migration.js +0 -251
  191. package/dist/extensions/Blocks/Recommendation/templates/vertical/template.js +0 -62
  192. package/dist/extensions/Blocks/Recommendation/utils/preserveTextStyles.js +0 -36
  193. package/dist/src/extensions/Blocks/Recommendation/constants/blockIds.d.ts +0 -13
  194. package/dist/src/extensions/Blocks/Recommendation/constants/index.d.ts +0 -12
  195. package/dist/src/extensions/Blocks/Recommendation/constants/layout.d.ts +0 -17
  196. package/dist/src/extensions/Blocks/Recommendation/constants/selectors.d.ts +0 -19
  197. package/dist/src/extensions/Blocks/Recommendation/controls/button/index.d.ts +0 -143
  198. package/dist/src/extensions/Blocks/Recommendation/controls/cardBackground/index.d.ts +0 -31
  199. package/dist/src/extensions/Blocks/Recommendation/controls/cardComposition/index.d.ts +0 -95
  200. package/dist/src/extensions/Blocks/Recommendation/controls/image/index.d.ts +0 -35
  201. package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +0 -24
  202. package/dist/src/extensions/Blocks/Recommendation/controls/layout/index.d.ts +0 -34
  203. package/dist/src/extensions/Blocks/Recommendation/controls/main/algorithm.d.ts +0 -17
  204. package/dist/src/extensions/Blocks/Recommendation/controls/main/currency.d.ts +0 -16
  205. package/dist/src/extensions/Blocks/Recommendation/controls/main/filters.d.ts +0 -22
  206. package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +0 -43
  207. package/dist/src/extensions/Blocks/Recommendation/controls/main/locale.d.ts +0 -15
  208. package/dist/src/extensions/Blocks/Recommendation/controls/main/productLayout.d.ts +0 -40
  209. package/dist/src/extensions/Blocks/Recommendation/controls/main/shuffle.d.ts +0 -15
  210. package/dist/src/extensions/Blocks/Recommendation/controls/main/utils.d.ts +0 -81
  211. package/dist/src/extensions/Blocks/Recommendation/controls/name/index.d.ts +0 -97
  212. package/dist/src/extensions/Blocks/Recommendation/controls/name/textTrim.d.ts +0 -16
  213. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/index.d.ts +0 -95
  214. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/index.d.ts +0 -100
  215. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/textAfter.d.ts +0 -15
  216. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscount/textBefore.d.ts +0 -15
  217. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/index.d.ts +0 -100
  218. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textAfter.d.ts +0 -15
  219. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPrice/textBefore.d.ts +0 -15
  220. package/dist/src/extensions/Blocks/Recommendation/controls/price/index.d.ts +0 -95
  221. package/dist/src/extensions/Blocks/Recommendation/controls/spacing/index.d.ts +0 -72
  222. package/dist/src/extensions/Blocks/Recommendation/templates/horizontal/elementRenderer.d.ts +0 -8
  223. package/dist/src/extensions/Blocks/Recommendation/templates/horizontal/migration.d.ts +0 -25
  224. package/dist/src/extensions/Blocks/Recommendation/templates/horizontal/template.d.ts +0 -18
  225. package/dist/src/extensions/Blocks/Recommendation/templates/index.d.ts +0 -39
  226. package/dist/src/extensions/Blocks/Recommendation/templates/utils.d.ts +0 -45
  227. package/dist/src/extensions/Blocks/Recommendation/templates/vertical/elementRenderer.d.ts +0 -7
  228. package/dist/src/extensions/Blocks/Recommendation/templates/vertical/template.d.ts +0 -33
  229. package/dist/src/extensions/Blocks/Recommendation/utils/preserveTextStyles.d.ts +0 -19
  230. package/dist/static/assets/inbox-mockup.svg.js +0 -4
  231. package/dist/static/assets/phone-mockup.svg.js +0 -4
@@ -1,44 +0,0 @@
1
- import { createPaddingsControl as r, createTextBackgroundColorControl as C, createTextFontFamilyControl as e, createTextStyleControl as l, createTextSizeControl as c, createTextColorControl as I, createTextAlignControl as R } from "../../../controlFactories.js";
2
- import { RecommendationBlockId as o } from "../../constants/blockIds.js";
3
- import { RecommendationControlId as t } from "../../constants/controlIds.js";
4
- import { CONTAINER_SELECTOR as n } from "../../constants/selectors.js";
5
- const a = R(
6
- t.PRICE_ALIGN,
7
- o.PRICE,
8
- n
9
- ), i = I(
10
- t.PRICE_COLOR,
11
- o.PRICE,
12
- n
13
- ), E = c(
14
- t.PRICE_SIZE,
15
- o.PRICE,
16
- n
17
- ), P = l(
18
- t.PRICE_STYLE,
19
- o.PRICE,
20
- n
21
- ), m = e(
22
- t.PRICE_FONT_FAMILY,
23
- o.PRICE,
24
- n
25
- ), s = C(
26
- t.PRICE_BACKGROUND,
27
- o.PRICE,
28
- n
29
- ), d = r(
30
- t.PRICE_PADDINGS,
31
- o.PRICE,
32
- n
33
- ), x = {
34
- align: a,
35
- color: i,
36
- size: E,
37
- style: P,
38
- fontFamily: m,
39
- background: s,
40
- paddings: d
41
- };
42
- export {
43
- x as PriceControls
44
- };
@@ -1,216 +0,0 @@
1
- var P = Object.defineProperty;
2
- var O = (n, i, t) => i in n ? P(n, i, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[i] = t;
3
- var p = (n, i, t) => O(n, typeof i != "symbol" ? i + "" : i, t);
4
- import { ModificationDescription as d } from "../../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
5
- import { CommonControl as b } from "../../../common-control.js";
6
- import { useRecommendationExtensionStore as I } from "../../store/recommendation.js";
7
- import { getCurrentLayout as S } from "../main/utils.js";
8
- import { useDebounceFn as _ } from "../../../../../node_modules/@vueuse/shared/index.js";
9
- const y = "recommendation-spacing-control", a = {
10
- COLUMN_SPACING: "columnSpacing",
11
- COLUMN_SPACING_LABEL: "columnSpacingLabel",
12
- ROW_SPACING: "rowSpacing"
13
- }, f = {
14
- COLUMN_SPACING: "data-column-spacing",
15
- ROW_SPACING: "data-row-spacing"
16
- }, s = {
17
- COLUMN_SPACING: 10,
18
- // 5px on each side = 10px total
19
- ROW_SPACING: 20
20
- }, u = {
21
- MIN_SPACING: 0,
22
- MAX_SPACING: 50,
23
- STEP: 5
24
- };
25
- function C(n, i) {
26
- return !n || !("getStyle" in n) ? null : n.getStyle(i);
27
- }
28
- function G(n) {
29
- return !n || !("parent" in n) || typeof n.parent != "function" ? null : n.parent();
30
- }
31
- function m(n, i) {
32
- if (!n)
33
- return i;
34
- const t = parseFloat(n);
35
- return Number.isNaN(t) ? i : t;
36
- }
37
- class E extends b {
38
- constructor() {
39
- super(...arguments);
40
- p(this, "store", I());
41
- p(this, "unsubscribeOrientation", null);
42
- /**
43
- * Debounced version of _onColumnSpacingChange
44
- * Prevents excessive DOM updates when user rapidly adjusts the counter
45
- */
46
- p(this, "_debouncedOnColumnSpacingChange", _((t) => {
47
- this._onColumnSpacingChange(t);
48
- }, 300));
49
- /**
50
- * Debounced version of _onRowSpacingChange
51
- * Prevents excessive DOM updates when user rapidly adjusts the counter
52
- */
53
- p(this, "_debouncedOnRowSpacingChange", _((t) => {
54
- this._onRowSpacingChange(t);
55
- }, 300));
56
- }
57
- getId() {
58
- return y;
59
- }
60
- getTemplate() {
61
- return `
62
- <div class="spacing-control-container">
63
- ${this._GuTwoColumns([
64
- this._GuLabel({ text: "Column Spacing (px)", name: a.COLUMN_SPACING_LABEL }),
65
- this._GuCounter({
66
- name: a.COLUMN_SPACING,
67
- minValue: u.MIN_SPACING,
68
- maxValue: u.MAX_SPACING,
69
- step: u.STEP
70
- }),
71
- this._GuLabel({ text: "Row Spacing (px)" }),
72
- this._GuCounter({
73
- name: a.ROW_SPACING,
74
- minValue: u.MIN_SPACING,
75
- maxValue: u.MAX_SPACING,
76
- step: u.STEP
77
- })
78
- ])}
79
- </div>
80
- `;
81
- }
82
- onRender() {
83
- this._setFormValues(), this._updateColumnSpacingVisibility(), this._listenToFormUpdates(), this._subscribeToOrientationChanges();
84
- }
85
- onTemplateNodeUpdated(t) {
86
- super.onTemplateNodeUpdated(t), this._setFormValues(), this._updateColumnSpacingVisibility();
87
- }
88
- /**
89
- * Updates column spacing visibility based on layout orientation
90
- * Column spacing is hidden for horizontal layout (products are stacked vertically)
91
- * Reads from store first for reliability, falls back to DOM
92
- */
93
- _updateColumnSpacingVisibility() {
94
- const r = (this.store.recommendationConfigs.orientation || S(this.currentNode)) === "vertical";
95
- this.api.setVisibility(a.COLUMN_SPACING, r), this.api.setVisibility(a.COLUMN_SPACING_LABEL, r);
96
- }
97
- /**
98
- * Reads spacing values from data attributes or returns defaults
99
- */
100
- _setFormValues() {
101
- const t = this._getStoredColumnSpacing(), e = this._getStoredRowSpacing();
102
- this.api.updateValues({
103
- [a.COLUMN_SPACING]: t,
104
- [a.ROW_SPACING]: e
105
- });
106
- }
107
- /**
108
- * Gets stored column spacing from the first attribute row cell's padding.
109
- * For vertical layout: cells inside .recommendation-attribute-row have padding applied.
110
- * For horizontal layout: the parent of .product-card-wrapper has the padding.
111
- * The padding is applied as "0 {halfSpacing}px", so we extract and multiply by 2.
112
- */
113
- _getStoredColumnSpacing() {
114
- if (!this.currentNode)
115
- return s.COLUMN_SPACING;
116
- if (S(this.currentNode) === "vertical") {
117
- const o = this.currentNode.querySelector(".recommendation-attribute-row"), A = o == null ? void 0 : o.querySelector("td"), h = C(A, "padding");
118
- if (!h)
119
- return s.COLUMN_SPACING;
120
- const g = h.trim().split(/\s+/);
121
- return g.length < 2 ? s.COLUMN_SPACING : m(g[1], s.COLUMN_SPACING / 2) * 2;
122
- }
123
- const e = this.currentNode.querySelector(".product-card-wrapper"), r = G(e), l = C(r, "padding");
124
- if (!l)
125
- return s.COLUMN_SPACING;
126
- const c = l.trim().split(/\s+/);
127
- return c.length < 2 ? s.COLUMN_SPACING : m(c[1], s.COLUMN_SPACING / 2) * 2;
128
- }
129
- /**
130
- * Gets stored row spacing from the first spacer element's height style
131
- */
132
- _getStoredRowSpacing() {
133
- if (!this.currentNode)
134
- return s.ROW_SPACING;
135
- const t = this.currentNode.querySelector(".spacer"), e = C(t, "height");
136
- return m(e, s.ROW_SPACING);
137
- }
138
- /**
139
- * Handles column spacing changes.
140
- * For vertical layout: applies horizontal padding to all cells inside attribute rows.
141
- * For horizontal layout: applies padding to parent of product card wrappers.
142
- */
143
- _onColumnSpacingChange(t) {
144
- if (!this.currentNode)
145
- return;
146
- this._storeColumnSpacing(t);
147
- const e = S(this.currentNode), r = this.api.getDocumentModifier(), c = `0 ${t / 2}px`;
148
- e === "vertical" ? Array.from(
149
- this.currentNode.querySelectorAll(".attribute-cell")
150
- ).forEach((o) => {
151
- r.modifyHtml(o).setStyle("padding", c);
152
- }) : Array.from(
153
- this.currentNode.querySelectorAll(".product-card-wrapper")
154
- ).forEach((o) => {
155
- "parent" in o && o.parent() && r.modifyHtml(o.parent()).setStyle("padding", c);
156
- }), r.apply(new d(`Update column spacing to ${t}px`));
157
- }
158
- /**
159
- * Handles row spacing changes
160
- * Applies height to all spacer elements between product rows
161
- */
162
- _onRowSpacingChange(t) {
163
- if (!this.currentNode)
164
- return;
165
- this._storeRowSpacing(t);
166
- const e = Array.from(
167
- this.currentNode.querySelectorAll(".spacer")
168
- );
169
- if (!e.length)
170
- return;
171
- const r = this.api.getDocumentModifier(), l = `${t}px`;
172
- e.forEach((c) => {
173
- r.modifyHtml(c).setStyle("height", l);
174
- }), r.apply(new d(`Update row spacing to ${t}px`));
175
- }
176
- /**
177
- * Stores column spacing value in block data attribute
178
- */
179
- _storeColumnSpacing(t) {
180
- if (!this.currentNode)
181
- return;
182
- const e = this.currentNode.querySelector(".ins-recommendation-v3-block-v2");
183
- e && this.api.getDocumentModifier().modifyHtml(e).setAttribute(f.COLUMN_SPACING, t.toString()).apply(new d("Store column spacing"));
184
- }
185
- /**
186
- * Stores row spacing value in block data attribute
187
- */
188
- _storeRowSpacing(t) {
189
- if (!this.currentNode)
190
- return;
191
- const e = this.currentNode.querySelector(".ins-recommendation-v3-block-v2");
192
- e && this.api.getDocumentModifier().modifyHtml(e).setAttribute(f.ROW_SPACING, t.toString()).apply(new d("Store row spacing"));
193
- }
194
- _listenToFormUpdates() {
195
- this.api.onValueChanged(a.COLUMN_SPACING, (t) => {
196
- const e = parseInt(t);
197
- Number.isNaN(e) || this._debouncedOnColumnSpacingChange(e);
198
- }), this.api.onValueChanged(a.ROW_SPACING, (t) => {
199
- const e = parseInt(t);
200
- Number.isNaN(e) || this._debouncedOnRowSpacingChange(e);
201
- });
202
- }
203
- /**
204
- * Subscribe to store orientation changes
205
- * Updates column spacing visibility when layout changes via the layout control
206
- */
207
- _subscribeToOrientationChanges() {
208
- this.unsubscribeOrientation && this.unsubscribeOrientation(), this.unsubscribeOrientation = this.store.$subscribe((t) => {
209
- t.type === "patch object" && this._updateColumnSpacingVisibility();
210
- });
211
- }
212
- }
213
- export {
214
- y as SPACING_CONTROL_ID,
215
- E as SpacingControl
216
- };
@@ -1,157 +0,0 @@
1
- import { RecommendationBlockId as e } from "../../constants/blockIds.js";
2
- import { ATTR_PRODUCT_BUTTON as a, ATTR_PRODUCT_IMAGE as s, ATTR_PRODUCT_OMNIBUS_DISCOUNT as o, ATTR_PRODUCT_OMNIBUS_PRICE as n, ATTR_PRODUCT_OLD_PRICE as l, ATTR_PRODUCT_PRICE as i, ATTR_PRODUCT_NAME as r } from "../../constants/selectors.js";
3
- const p = {
4
- /**
5
- * Image cell - left column (120px fixed width)
6
- * Has recommendation-attribute-row class and data attributes for Card Composition control
7
- */
8
- [s]: (t) => `
9
- <td
10
- width="120"
11
- class="esd-block-image product-image-cell recommendation-attribute-row es-p5"
12
- esd-extension-block-id="${e.IMAGE}"
13
- data-attribute-type="${s}"
14
- data-visibility="1"
15
- align=center
16
- valign="middle">
17
- <a target="_blank" href="${t.url}">
18
- <img
19
- src="${t.image_url}"
20
- alt="${t.name}"
21
- style="display: block; max-width: 100%;"
22
- class="adapt-img product-image">
23
- </a>
24
- </td>
25
- `,
26
- /**
27
- * Name element - row for info cell table
28
- */
29
- [r]: (t) => `
30
- <tr>
31
- <td
32
- class="esd-block-text product-name"
33
- esd-extension-block-id="${e.NAME}"
34
- align="left">
35
- <p
36
- path="1"
37
- contenteditable="false"
38
- style="font-size: 16px; color: #333333; font-weight: 600; margin: 0;">
39
- <strong path="1,0">${t.name}</strong>
40
- </p>
41
- </td>
42
- </tr>
43
- `,
44
- /**
45
- * Price element - row for info cell table
46
- */
47
- [i]: () => `
48
- <tr>
49
- <td
50
- class="esd-block-text product-price"
51
- esd-extension-block-id="${e.PRICE}"
52
- align="left">
53
- <p
54
- path="1"
55
- contenteditable="false"
56
- style="font-size: 16px; color: #333333; font-weight: bold; margin: 0;">
57
- <strong path="1,0">18,00 TRY</strong>
58
- </p>
59
- </td>
60
- </tr>
61
- `,
62
- /**
63
- * Old price element - row for info cell table
64
- */
65
- [l]: () => `
66
- <tr>
67
- <td
68
- class="esd-block-text product-old-price"
69
- esd-extension-block-id="${e.OLD_PRICE}"
70
- align="left">
71
- <p
72
- path="1"
73
- contenteditable="false"
74
- style="font-size: 14px; color: #999999; text-decoration: line-through; margin: 0;">
75
- <s path="1,0">20,00 TRY</s>
76
- </p>
77
- </td>
78
- </tr>
79
- `,
80
- /**
81
- * Omnibus price element - row for info cell table
82
- */
83
- [n]: () => `
84
- <tr>
85
- <td
86
- class="esd-block-text product-omnibus-price"
87
- data-text-before="Lowest 30-day price: "
88
- data-text-after=""
89
- esd-extension-block-id="${e.OMNIBUS_PRICE}"
90
- align="left">
91
- <p
92
- path="1"
93
- contenteditable="false"
94
- style="font-size: 12px; color: #666666; margin: 0;">
95
- <span class="omnibus-text-before">Lowest 30-day price: </span>
96
- <span class="omnibus-price-value">17,00 TRY</span>
97
- <span class="omnibus-text-after"></span>
98
- </p>
99
- </td>
100
- </tr>
101
- `,
102
- /**
103
- * Omnibus discount element - row for info cell table
104
- */
105
- [o]: () => `
106
- <tr>
107
- <td
108
- class="esd-block-text product-omnibus-discount"
109
- data-text-before=""
110
- data-text-after=""
111
- esd-extension-block-id="${e.OMNIBUS_DISCOUNT}"
112
- align="left">
113
- <p
114
- path="1"
115
- contenteditable="false"
116
- style="font-size: 12px; color: #666666; margin: 0;">
117
- <span class="omnibus-text-before"></span>
118
- <span class="omnibus-discount-value">-6%</span>
119
- <span class="omnibus-text-after"></span>
120
- </p>
121
- </td>
122
- </tr>
123
- `,
124
- /**
125
- * Button cell - right column (100px fixed width)
126
- * Has recommendation-attribute-row class and data attributes for Card Composition control
127
- */
128
- [a]: (t) => `
129
- <td
130
- width="100"
131
- class="esd-block-button button-cell recommendation-attribute-row product-button es-p5l es-p5r"
132
- esd-extension-block-id="${e.BUTTON}"
133
- data-attribute-type="${a}"
134
- data-visibility="1"
135
- align="center"
136
- valign="middle">
137
- <span
138
- class="es-button-border"
139
- style="
140
- border-width: 1px;
141
- background: rgb(217, 234, 211);
142
- border-color: rgb(106, 168, 79);
143
- ">
144
- <a
145
- href="${t.url}"
146
- target="_blank"
147
- class="es-button buy-button"
148
- style="color: rgb(56, 118, 29); background: rgb(217, 234, 211); padding: 5px 30px;">
149
- Buy
150
- </a>
151
- </span>
152
- </td>
153
- `
154
- };
155
- export {
156
- p as horizontalElementRenderer
157
- };
@@ -1,72 +0,0 @@
1
- import { ATTR_PRODUCT_IMAGE as g, ATTR_PRODUCT_NAME as s, ATTR_PRODUCT_OLD_PRICE as c, ATTR_PRODUCT_PRICE as a, ATTR_PRODUCT_OMNIBUS_PRICE as d, ATTR_PRODUCT_OMNIBUS_DISCOUNT as T, ATTR_PRODUCT_BUTTON as E } from "../../constants/selectors.js";
2
- import { spacer as N, DEFAULT_CARD_VISIBILITY as n } from "../utils.js";
3
- import { horizontalElementRenderer as o } from "./elementRenderer.js";
4
- const $ = `
5
- <tr class="recommendation-product-row">
6
- <td style="padding: 0 5px;">
7
- <table
8
- width="100%"
9
- cellpadding="0"
10
- cellspacing="0"
11
- border="0"
12
- class="product-card-wrapper"
13
- style="background-color: #f8f8f8;">
14
- <tr>
15
- {-{-PRODUCT_CONTENT-}-}
16
- </tr>
17
- </table>
18
- </td>
19
- </tr>
20
- `;
21
- function V(t) {
22
- const i = o[g](t), l = n[s], r = n[c], R = n[a], C = n[d], b = n[T], e = (y, A, p) => {
23
- const I = p ? "" : ' style="display: none;"', f = y.replace(/<tr>/, "").replace(/<\/tr>/, "");
24
- return `<tr
25
- class="recommendation-attribute-row"
26
- data-attribute-type="${A}"
27
- data-visibility="${p ? "1" : "0"}"${I}>${f}</tr>`;
28
- }, m = e(
29
- o[s](t),
30
- s,
31
- l
32
- ), _ = e(
33
- o[c](t),
34
- c,
35
- r
36
- ), u = e(
37
- o[a](t),
38
- a,
39
- R
40
- ), O = e(
41
- o[d](t),
42
- d,
43
- C
44
- ), P = e(
45
- o[T](t),
46
- T,
47
- b
48
- ), D = `
49
- <td class="product-info-cell" valign="middle" style="padding: 15px;">
50
- <table cellpadding="0" cellspacing="0" role="presentation" width="100%">
51
- <tbody>
52
- ${m}
53
- ${_}
54
- ${u}
55
- ${O}
56
- ${P}
57
- </tbody>
58
- </table>
59
- </td>
60
- `, U = o[E](t), w = i + D + U;
61
- return $.replace("{-{-PRODUCT_CONTENT-}-}", w);
62
- }
63
- function M(t) {
64
- return t.map((i, l) => {
65
- const r = V(i);
66
- return l > 0 ? N + r : r;
67
- }).join("");
68
- }
69
- export {
70
- V as getHorizontalProductCard,
71
- M as prepareProductRows
72
- };
@@ -1,12 +0,0 @@
1
- import { DEFAULT_PRODUCTS_PER_ROW as s } from "../constants/layout.js";
2
- import { prepareProductRows as R } from "./horizontal/template.js";
3
- import { prepareProductRows as a } from "./vertical/template.js";
4
- function P(r, o, p = {}) {
5
- if (o === "horizontal")
6
- return R(r);
7
- const { productsPerRow: t = s, composition: e } = p;
8
- return a(r, t, e);
9
- }
10
- export {
11
- P as prepareProductRows
12
- };
@@ -1,173 +0,0 @@
1
- import { ATTR_PRODUCT_IMAGE as t, ATTR_PRODUCT_NAME as e, ATTR_PRODUCT_OLD_PRICE as o, ATTR_PRODUCT_PRICE as r, ATTR_PRODUCT_OMNIBUS_PRICE as i, ATTR_PRODUCT_OMNIBUS_DISCOUNT as c, ATTR_PRODUCT_BUTTON as a } from "../constants/selectors.js";
2
- const d = {
3
- TITLE: "You May Also Like!"
4
- }, u = [
5
- t,
6
- e,
7
- o,
8
- r,
9
- i,
10
- c,
11
- a
12
- ], m = {
13
- [t]: !0,
14
- [e]: !0,
15
- [r]: !0,
16
- [o]: !0,
17
- [i]: !1,
18
- [c]: !1,
19
- [a]: !0
20
- }, n = `
21
- <tr>
22
- <td class="spacer" style="height: 10px;"></td>
23
- </tr>
24
- `;
25
- function _() {
26
- return [
27
- {
28
- name: "Product Name",
29
- image_url: "https://email-static.useinsider.com/stripo/modules/email-recommendation-v3/assets/images/image-placeholder.png",
30
- price: { USD: 18 },
31
- original_price: { USD: 20 },
32
- discount: { USD: 2 },
33
- url: "https://example.com/product/1",
34
- item_id: "1",
35
- in_stock: 1,
36
- locale: "en",
37
- product_attributes: {},
38
- category: []
39
- },
40
- {
41
- name: "Belt",
42
- image_url: "https://inshoppingcart.com/ins-html/wp-content/uploads/2018/09/belt-2.jpg",
43
- price: { TRY: 55 },
44
- original_price: { TRY: 65 },
45
- discount: { TRY: 10 },
46
- url: "https://example.com/product/2",
47
- item_id: "2",
48
- in_stock: 1,
49
- locale: "tr",
50
- product_attributes: {},
51
- category: []
52
- },
53
- {
54
- name: "Beanie",
55
- image_url: "https://inshoppingcart.com/ins-html/wp-content/uploads/2018/08/beanie-with-logo-1.jpg",
56
- price: { TRY: 18 },
57
- original_price: { TRY: 20 },
58
- discount: { TRY: 2 },
59
- url: "https://example.com/product/3",
60
- item_id: "3",
61
- in_stock: 1,
62
- locale: "tr",
63
- product_attributes: {},
64
- category: []
65
- },
66
- {
67
- name: "Album",
68
- image_url: "https://inshoppingcart.com/ins-html/wp-content/uploads/2018/12/poster_2_up.jpg",
69
- price: { TRY: 15 },
70
- original_price: { TRY: 15 },
71
- discount: { TRY: 0 },
72
- url: "https://example.com/product/4",
73
- item_id: "4",
74
- in_stock: 1,
75
- locale: "tr",
76
- product_attributes: {},
77
- category: []
78
- },
79
- {
80
- name: "Flying Ninja with a very long product name",
81
- image_url: "https://inshoppingcart.com/ins-html/wp-content/uploads/2018/09/belt-2.jpg",
82
- price: { TRY: 12 },
83
- original_price: { TRY: 15 },
84
- discount: { TRY: 3 },
85
- url: "https://example.com/product/5",
86
- item_id: "5",
87
- in_stock: 1,
88
- locale: "tr",
89
- product_attributes: {},
90
- category: []
91
- },
92
- {
93
- name: "Single",
94
- image_url: "https://inshoppingcart.com/ins-html/wp-content/uploads/2018/12/poster_2_up.jpg",
95
- price: { TRY: 22555 },
96
- original_price: { TRY: 33989 },
97
- discount: { TRY: 11434 },
98
- url: "https://example.com/product/6",
99
- item_id: "6",
100
- in_stock: 1,
101
- locale: "tr",
102
- product_attributes: {},
103
- category: []
104
- }
105
- ];
106
- }
107
- function g(l = "vertical") {
108
- return `
109
- <td
110
- align="left"
111
- class="ins-recommendation-v3-block-v2 esd-block-recommendation-v3-block es-p20"${l === "horizontal" ? `
112
- data-layout="horizontal"` : ""}>
113
- <table width="100%" cellpadding="0" cellspacing="0" border="0">
114
- <tr>
115
- <td align="center">
116
- <table
117
- class="container"
118
- width="100%"
119
- cellpadding="0"
120
- cellspacing="0"
121
- border="0">
122
- <tbody>
123
- <tr>
124
- <td>
125
- <table
126
- width="100%"
127
- cellpadding="0"
128
- cellspacing="0"
129
- border="0">
130
- <tbody>
131
- <tr>
132
- <td
133
- class="esd-block-text es-p10t es-p10b es-p20l es-p20r"
134
- align="center">
135
- <p path="1" style="font-size: 28px; color: #333333;">
136
- <strong path="1,0">{-{-TITLE-}-}</strong>
137
- </p>
138
- </td>
139
- </tr>
140
- </tbody>
141
- </table>
142
- </td>
143
- </tr>
144
- ${n}
145
- <tr>
146
- <td>
147
- <table
148
- class="ins-recommendation-product-container"
149
- width="100%"
150
- cellpadding="0"
151
- cellspacing="0"
152
- border="0"
153
- >
154
- {-{-PRODUCT_ROWS-}-}
155
- </table>
156
- </td>
157
- </tr>
158
- </tbody>
159
- </table>
160
- </td>
161
- </tr>
162
- </table>
163
- </td>
164
- `;
165
- }
166
- export {
167
- d as DEFAULTS,
168
- u as DEFAULT_CARD_COMPOSITION,
169
- m as DEFAULT_CARD_VISIBILITY,
170
- g as createBlockTemplate,
171
- _ as getDefaultProducts,
172
- n as spacer
173
- };