@useinsider/guido 1.0.3-beta.3f12f40 → 1.0.3-beta.413aef4

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 (219) hide show
  1. package/README.md +3 -176
  2. package/dist/components/Guido.vue.js +9 -11
  3. package/dist/components/Guido.vue2.js +70 -76
  4. package/dist/components/organisms/header/LeftSlot.vue.js +1 -1
  5. package/dist/components/organisms/header/LeftSlot.vue2.js +15 -16
  6. package/dist/components/organisms/header/RightSlot.vue.js +11 -11
  7. package/dist/components/organisms/header/RightSlot.vue2.js +22 -23
  8. package/dist/components/organisms/onboarding/NewVersionPopup.vue.js +9 -9
  9. package/dist/components/organisms/onboarding/NewVersionPopup.vue2.js +17 -30
  10. package/dist/components/organisms/onboarding/OnboardingWrapper.vue.js +10 -12
  11. package/dist/components/organisms/onboarding/OnboardingWrapper.vue2.js +20 -23
  12. package/dist/composables/useGuidoActions.js +9 -19
  13. package/dist/composables/useStripo.js +59 -50
  14. package/dist/config/compiler/unsubscribeCompilerRules.js +28 -33
  15. package/dist/config/migrator/index.js +6 -7
  16. package/dist/enums/defaults.js +8 -16
  17. package/dist/enums/extensions/recommendationBlock.js +2 -2
  18. package/dist/enums/onboarding.js +2 -6
  19. package/dist/enums/unsubscribe.js +9 -10
  20. package/dist/extensions/Blocks/Checkbox/block.js +2 -5
  21. package/dist/extensions/Blocks/Checkbox/extension.js +2 -2
  22. package/dist/extensions/Blocks/CouponBlock/extension.js +2 -2
  23. package/dist/extensions/Blocks/RadioButton/block.js +2 -5
  24. package/dist/extensions/Blocks/Recommendation/block.js +3 -6
  25. package/dist/extensions/Blocks/Recommendation/control.js +40 -69
  26. package/dist/extensions/Blocks/Recommendation/extension.js +7 -42
  27. package/dist/extensions/Blocks/Recommendation/iconsRegistry.js +43 -43
  28. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +22 -107
  29. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +1 -1
  30. package/dist/extensions/Blocks/Recommendation/template.js +200 -0
  31. package/dist/extensions/Blocks/common-control.js +55 -201
  32. package/dist/extensions/DynamicContent/dynamic-content-modal.js +19 -25
  33. package/dist/extensions/DynamicContent/dynamic-content.js +33 -128
  34. package/dist/guido.css +1 -1
  35. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +101 -353
  36. package/dist/package.json.js +1 -1
  37. package/dist/services/recommendationApi.js +19 -13
  38. package/dist/services/stripoApi.js +1 -1
  39. package/dist/src/@types/generic.d.ts +6 -42
  40. package/dist/src/components/Guido.vue.d.ts +2 -4
  41. package/dist/src/components/organisms/onboarding/NewVersionPopup.vue.d.ts +1 -3
  42. package/dist/src/components/organisms/onboarding/OnboardingWrapper.vue.d.ts +1 -3
  43. package/dist/src/components/wrappers/WpModal.vue.d.ts +1 -1
  44. package/dist/src/composables/useGuidoActions.d.ts +0 -9
  45. package/dist/src/enums/onboarding.d.ts +0 -4
  46. package/dist/src/extensions/Blocks/Checkbox/block.d.ts +0 -1
  47. package/dist/src/extensions/Blocks/RadioButton/block.d.ts +0 -1
  48. package/dist/src/extensions/Blocks/Recommendation/block.d.ts +0 -1
  49. package/dist/src/extensions/Blocks/Recommendation/control.d.ts +0 -6
  50. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +1 -1
  51. package/dist/src/extensions/Blocks/Recommendation/template.d.ts +6 -0
  52. package/dist/src/extensions/Blocks/common-control.d.ts +7 -65
  53. package/dist/src/extensions/DynamicContent/dynamic-content-modal.d.ts +2 -9
  54. package/dist/src/extensions/DynamicContent/dynamic-content.d.ts +2 -52
  55. package/dist/src/stores/config.d.ts +2 -10
  56. package/dist/src/stores/dynamic-content.d.ts +3 -3
  57. package/dist/src/stores/editor.d.ts +1 -1
  58. package/dist/src/stores/onboarding.d.ts +1 -335
  59. package/dist/src/stores/preview.d.ts +1 -1
  60. package/dist/src/stores/recommendation.d.ts +1 -1
  61. package/dist/src/stores/save-as-template.d.ts +1 -1
  62. package/dist/src/stores/toaster.d.ts +1 -1
  63. package/dist/src/stores/unsubscribe.d.ts +1 -1
  64. package/dist/src/stores/version-history.d.ts +1 -1
  65. package/dist/src/utils/dateUtil.d.ts +0 -21
  66. package/dist/src/utils/genericUtil.d.ts +0 -1
  67. package/dist/static/styles/components/narrow-panel.css.js +0 -10
  68. package/dist/static/styles/customEditorStyle.css.js +0 -5
  69. package/dist/stores/config.js +5 -5
  70. package/dist/stores/dynamic-content.js +2 -2
  71. package/dist/stores/editor.js +1 -1
  72. package/dist/stores/onboarding.js +36 -44
  73. package/dist/stores/preview.js +1 -1
  74. package/dist/stores/recommendation.js +3 -3
  75. package/dist/stores/save-as-template.js +2 -2
  76. package/dist/stores/toaster.js +1 -1
  77. package/dist/stores/unsubscribe.js +1 -1
  78. package/dist/stores/version-history.js +4 -4
  79. package/dist/utils/dateUtil.js +3 -24
  80. package/dist/utils/genericUtil.js +8 -18
  81. package/package.json +4 -11
  82. package/dist/components/organisms/onboarding/ItemsOnboarding.vue.js +0 -21
  83. package/dist/components/organisms/onboarding/ItemsOnboarding.vue2.js +0 -96
  84. package/dist/composables/useBlocksConfig.js +0 -48
  85. package/dist/config/migrator/recommendationMigrator.js +0 -293
  86. package/dist/enums/date.js +0 -6
  87. package/dist/extensions/Blocks/Items/block.js +0 -67
  88. package/dist/extensions/Blocks/Items/controls/button/link.js +0 -68
  89. package/dist/extensions/Blocks/Items/controls/cardComposition.js +0 -99
  90. package/dist/extensions/Blocks/Items/controls/image/link.js +0 -68
  91. package/dist/extensions/Blocks/Items/controls/index.js +0 -217
  92. package/dist/extensions/Blocks/Items/controls/name/trimming.js +0 -70
  93. package/dist/extensions/Blocks/Items/controls/price/currencyLocation.js +0 -107
  94. package/dist/extensions/Blocks/Items/controls/price/currencySymbol.js +0 -123
  95. package/dist/extensions/Blocks/Items/controls/price/formattedPrice.js +0 -76
  96. package/dist/extensions/Blocks/Items/controls/price/hideDiscount.js +0 -61
  97. package/dist/extensions/Blocks/Items/controls/settingsControl.js +0 -280
  98. package/dist/extensions/Blocks/Items/enums/controlEnums.js +0 -5
  99. package/dist/extensions/Blocks/Items/enums/productEnums.js +0 -195
  100. package/dist/extensions/Blocks/Items/enums/settingsEnums.js +0 -70
  101. package/dist/extensions/Blocks/Items/extension.js +0 -19
  102. package/dist/extensions/Blocks/Items/iconsRegistry.js +0 -32
  103. package/dist/extensions/Blocks/Items/items.css.js +0 -23
  104. package/dist/extensions/Blocks/Items/layouts/horizontal.html.js +0 -61
  105. package/dist/extensions/Blocks/Items/layouts/vertical.html.js +0 -61
  106. package/dist/extensions/Blocks/Items/settingsPanel.js +0 -106
  107. package/dist/extensions/Blocks/Items/store/items-block.js +0 -71
  108. package/dist/extensions/Blocks/Items/template.js +0 -110
  109. package/dist/extensions/Blocks/Items/utils/configBlockUtils.js +0 -17
  110. package/dist/extensions/Blocks/Items/utils/syncAttributeFromConfigBlock.js +0 -28
  111. package/dist/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.js +0 -67
  112. package/dist/extensions/Blocks/Items/utils/updateAttributes.js +0 -44
  113. package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +0 -103
  114. package/dist/extensions/Blocks/Recommendation/constants.js +0 -5
  115. package/dist/extensions/Blocks/Recommendation/controls/button/align.js +0 -13
  116. package/dist/extensions/Blocks/Recommendation/controls/button/border.js +0 -13
  117. package/dist/extensions/Blocks/Recommendation/controls/button/borderRadius.js +0 -13
  118. package/dist/extensions/Blocks/Recommendation/controls/button/color.js +0 -13
  119. package/dist/extensions/Blocks/Recommendation/controls/button/fitToContent.js +0 -13
  120. package/dist/extensions/Blocks/Recommendation/controls/button/fontFamily.js +0 -13
  121. package/dist/extensions/Blocks/Recommendation/controls/button/margins.js +0 -13
  122. package/dist/extensions/Blocks/Recommendation/controls/button/paddings.js +0 -13
  123. package/dist/extensions/Blocks/Recommendation/controls/button/text.js +0 -13
  124. package/dist/extensions/Blocks/Recommendation/controls/button/textSize.js +0 -13
  125. package/dist/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.js +0 -13
  126. package/dist/extensions/Blocks/Recommendation/controls/image/margins.js +0 -13
  127. package/dist/extensions/Blocks/Recommendation/controls/image/size.js +0 -13
  128. package/dist/extensions/Blocks/Recommendation/controls/name/align.js +0 -13
  129. package/dist/extensions/Blocks/Recommendation/controls/name/background.js +0 -13
  130. package/dist/extensions/Blocks/Recommendation/controls/name/color.js +0 -13
  131. package/dist/extensions/Blocks/Recommendation/controls/name/fontFamily.js +0 -13
  132. package/dist/extensions/Blocks/Recommendation/controls/name/paddings.js +0 -13
  133. package/dist/extensions/Blocks/Recommendation/controls/name/size.js +0 -13
  134. package/dist/extensions/Blocks/Recommendation/controls/name/style.js +0 -13
  135. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/align.js +0 -13
  136. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/background.js +0 -13
  137. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/color.js +0 -13
  138. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.js +0 -13
  139. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/paddings.js +0 -13
  140. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/size.js +0 -13
  141. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/style.js +0 -13
  142. package/dist/extensions/Blocks/Recommendation/controls/price/align.js +0 -13
  143. package/dist/extensions/Blocks/Recommendation/controls/price/background.js +0 -13
  144. package/dist/extensions/Blocks/Recommendation/controls/price/color.js +0 -13
  145. package/dist/extensions/Blocks/Recommendation/controls/price/fontFamily.js +0 -13
  146. package/dist/extensions/Blocks/Recommendation/controls/price/paddings.js +0 -13
  147. package/dist/extensions/Blocks/Recommendation/controls/price/size.js +0 -13
  148. package/dist/extensions/Blocks/Recommendation/controls/price/style.js +0 -13
  149. package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +0 -160
  150. package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +0 -152
  151. package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +0 -180
  152. package/dist/extensions/Blocks/controlFactories.js +0 -223
  153. package/dist/src/components/organisms/onboarding/ItemsOnboarding.vue.d.ts +0 -2
  154. package/dist/src/composables/useBlocksConfig.d.ts +0 -11
  155. package/dist/src/config/migrator/recommendationMigrator.d.ts +0 -1
  156. package/dist/src/enums/date.d.ts +0 -4
  157. package/dist/src/extensions/Blocks/Items/block.d.ts +0 -13
  158. package/dist/src/extensions/Blocks/Items/controls/button/link.d.ts +0 -14
  159. package/dist/src/extensions/Blocks/Items/controls/cardComposition.d.ts +0 -20
  160. package/dist/src/extensions/Blocks/Items/controls/image/link.d.ts +0 -14
  161. package/dist/src/extensions/Blocks/Items/controls/index.d.ts +0 -501
  162. package/dist/src/extensions/Blocks/Items/controls/name/trimming.d.ts +0 -14
  163. package/dist/src/extensions/Blocks/Items/controls/price/currencyLocation.d.ts +0 -19
  164. package/dist/src/extensions/Blocks/Items/controls/price/currencySymbol.d.ts +0 -21
  165. package/dist/src/extensions/Blocks/Items/controls/price/formattedPrice.d.ts +0 -14
  166. package/dist/src/extensions/Blocks/Items/controls/price/hideDiscount.d.ts +0 -13
  167. package/dist/src/extensions/Blocks/Items/controls/settingsControl.d.ts +0 -42
  168. package/dist/src/extensions/Blocks/Items/enums/controlEnums.d.ts +0 -61
  169. package/dist/src/extensions/Blocks/Items/enums/productEnums.d.ts +0 -154
  170. package/dist/src/extensions/Blocks/Items/enums/settingsEnums.d.ts +0 -43
  171. package/dist/src/extensions/Blocks/Items/extension.d.ts +0 -2
  172. package/dist/src/extensions/Blocks/Items/iconsRegistry.d.ts +0 -4
  173. package/dist/src/extensions/Blocks/Items/settingsPanel.d.ts +0 -4
  174. package/dist/src/extensions/Blocks/Items/store/items-block.d.ts +0 -41
  175. package/dist/src/extensions/Blocks/Items/template.d.ts +0 -16
  176. package/dist/src/extensions/Blocks/Items/utils/configBlockUtils.d.ts +0 -23
  177. package/dist/src/extensions/Blocks/Items/utils/syncAttributeFromConfigBlock.d.ts +0 -32
  178. package/dist/src/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.d.ts +0 -44
  179. package/dist/src/extensions/Blocks/Items/utils/updateAttributes.d.ts +0 -8
  180. package/dist/src/extensions/Blocks/Recommendation/cardCompositionControl.d.ts +0 -28
  181. package/dist/src/extensions/Blocks/Recommendation/constants.d.ts +0 -51
  182. package/dist/src/extensions/Blocks/Recommendation/controls/button/align.d.ts +0 -5
  183. package/dist/src/extensions/Blocks/Recommendation/controls/button/border.d.ts +0 -5
  184. package/dist/src/extensions/Blocks/Recommendation/controls/button/borderRadius.d.ts +0 -5
  185. package/dist/src/extensions/Blocks/Recommendation/controls/button/color.d.ts +0 -5
  186. package/dist/src/extensions/Blocks/Recommendation/controls/button/fitToContent.d.ts +0 -5
  187. package/dist/src/extensions/Blocks/Recommendation/controls/button/fontFamily.d.ts +0 -5
  188. package/dist/src/extensions/Blocks/Recommendation/controls/button/margins.d.ts +0 -5
  189. package/dist/src/extensions/Blocks/Recommendation/controls/button/paddings.d.ts +0 -5
  190. package/dist/src/extensions/Blocks/Recommendation/controls/button/text.d.ts +0 -5
  191. package/dist/src/extensions/Blocks/Recommendation/controls/button/textSize.d.ts +0 -5
  192. package/dist/src/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.d.ts +0 -5
  193. package/dist/src/extensions/Blocks/Recommendation/controls/image/margins.d.ts +0 -5
  194. package/dist/src/extensions/Blocks/Recommendation/controls/image/size.d.ts +0 -5
  195. package/dist/src/extensions/Blocks/Recommendation/controls/name/align.d.ts +0 -5
  196. package/dist/src/extensions/Blocks/Recommendation/controls/name/background.d.ts +0 -5
  197. package/dist/src/extensions/Blocks/Recommendation/controls/name/color.d.ts +0 -5
  198. package/dist/src/extensions/Blocks/Recommendation/controls/name/fontFamily.d.ts +0 -5
  199. package/dist/src/extensions/Blocks/Recommendation/controls/name/paddings.d.ts +0 -5
  200. package/dist/src/extensions/Blocks/Recommendation/controls/name/size.d.ts +0 -5
  201. package/dist/src/extensions/Blocks/Recommendation/controls/name/style.d.ts +0 -5
  202. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/align.d.ts +0 -5
  203. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/background.d.ts +0 -5
  204. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/color.d.ts +0 -5
  205. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.d.ts +0 -5
  206. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/paddings.d.ts +0 -5
  207. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/size.d.ts +0 -5
  208. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/style.d.ts +0 -5
  209. package/dist/src/extensions/Blocks/Recommendation/controls/price/align.d.ts +0 -5
  210. package/dist/src/extensions/Blocks/Recommendation/controls/price/background.d.ts +0 -5
  211. package/dist/src/extensions/Blocks/Recommendation/controls/price/color.d.ts +0 -5
  212. package/dist/src/extensions/Blocks/Recommendation/controls/price/fontFamily.d.ts +0 -5
  213. package/dist/src/extensions/Blocks/Recommendation/controls/price/paddings.d.ts +0 -5
  214. package/dist/src/extensions/Blocks/Recommendation/controls/price/size.d.ts +0 -5
  215. package/dist/src/extensions/Blocks/Recommendation/controls/price/style.d.ts +0 -5
  216. package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +0 -16
  217. package/dist/src/extensions/Blocks/Recommendation/templates/migrationTemplate.d.ts +0 -16
  218. package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +0 -44
  219. package/dist/src/extensions/Blocks/controlFactories.d.ts +0 -312
@@ -1,293 +0,0 @@
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";
6
- class w {
7
- constructor() {
8
- m(this, "parser");
9
- this.parser = new DOMParser();
10
- }
11
- migrate(e) {
12
- try {
13
- const t = this.parser.parseFromString(e, "text/html"), s = t.querySelectorAll(
14
- 'td.ins-recommendation-v3-block-1, td.product-block[esd-handler-name*="EmailRecommendationV3"]'
15
- );
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>`,
19
- "text/html"
20
- ).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));
22
- }), t.documentElement.outerHTML);
23
- } catch (t) {
24
- return console.error("RecommendationMigrator failed:", t), e;
25
- }
26
- }
27
- /**
28
- * Extracts background color from old block
29
- * @param block - The old recommendation block element
30
- * @returns The background color value or empty string
31
- */
32
- extractBgColor(e) {
33
- const t = e.getAttribute("bgcolor");
34
- if (t)
35
- return t.trim();
36
- const s = e.getAttribute("style");
37
- if (s) {
38
- const o = s.match(/background-color\s*:\s*([^;]+)/i);
39
- if (o && o[1])
40
- return o[1].trim();
41
- }
42
- return "";
43
- }
44
- /**
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
65
- */
66
- extractTitle(e) {
67
- var a, g;
68
- const t = e.querySelector(".ext-recommendation-title");
69
- if (!t)
70
- return this.buildTitleBlock({
71
- text: "You May Also Like!",
72
- isBold: !0,
73
- isItalic: !1,
74
- align: "center",
75
- styles: "font-size: 28px; color: #333333;"
76
- });
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";
80
- return this.buildTitleBlock({
81
- text: p,
82
- isBold: !0,
83
- isItalic: !1,
84
- align: b,
85
- styles: "font-size: 28px; color: #333333;"
86
- });
87
- }
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);
89
- return this.buildTitleBlock({
90
- text: o,
91
- isBold: i,
92
- isItalic: u,
93
- align: l,
94
- styles: n
95
- });
96
- }
97
- /**
98
- * 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
101
- */
102
- extractProductRows(e) {
103
- const t = this.extractProductConfig(e);
104
- 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(" ") : "";
116
- }
117
- /**
118
- * 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
121
- */
122
- extractProductConfig(e) {
123
- const t = e.getAttribute("esd-dev-product-config");
124
- if (!t)
125
- return null;
126
- try {
127
- const s = this.unescapeJsonString(t), o = JSON.parse(s);
128
- return {
129
- totalCount: o.totalCount ?? 6,
130
- productsPerRow: o.rowCount ?? 3
131
- };
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
- }
138
- }
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
- /**
148
- * 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
167
- */
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;
183
- }
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;
253
- }
254
- /**
255
- * Builds title block with proper structure
256
- */
257
- buildTitleBlock(e) {
258
- let t = e.text;
259
- 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}"` : "";
261
- return `
262
- <td class="esd-block-text es-p10t es-p10b es-p20l es-p20r"${s}>
263
- <p path="1"${o}>
264
- ${t}
265
- </p>
266
- </td>
267
- `;
268
- }
269
- /**
270
- * Removes specified style properties from a style string
271
- */
272
- removeStyleProperties(e, t) {
273
- return e ? t.reduce((o, l) => {
274
- const r = new RegExp(`${l}\\s*:\\s*[^;]*;?`, "gi");
275
- return o.replace(r, "");
276
- }, e).replace(/;\s*;/g, ";").replace(/^;|;$/g, "").trim() : "";
277
- }
278
- /**
279
- * Converts inline display to block display
280
- */
281
- convertInlineToBlock(e) {
282
- if (!e)
283
- return "";
284
- 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();
286
- }
287
- }
288
- function k(A) {
289
- return new w().migrate(A);
290
- }
291
- export {
292
- k as migrateRecommendation
293
- };
@@ -1,6 +0,0 @@
1
- const t = "tr-TR", T = "default", L = "UTC";
2
- export {
3
- T as DEFAULT,
4
- t as DEFAULT_LOCALE,
5
- L as DEFAULT_TZ
6
- };
@@ -1,67 +0,0 @@
1
- import { useOnboardingStore as f } from "../../../stores/onboarding.js";
2
- import { Block as _, BlockCompositionType as g, ModificationDescription as u } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
3
- import { configAttributes as t } from "./enums/productEnums.js";
4
- import { DefaultConfigValues as e, SETTINGS_ENUMS as l } from "./enums/settingsEnums.js";
5
- import { useItemsBlockStore as d } from "./store/items-block.js";
6
- import { getDefaultTemplate as D } from "./template.js";
7
- const y = "items-block";
8
- class V extends _ {
9
- getId() {
10
- return y;
11
- }
12
- getIcon() {
13
- return "items-icon";
14
- }
15
- getBlockCompositionType() {
16
- return g.CONTAINER;
17
- }
18
- getName() {
19
- return this.api.translate("Items");
20
- }
21
- getDescription() {
22
- return this.api.translate("Items lets you display personalized products based on user behavior.");
23
- }
24
- getTemplate() {
25
- const r = d();
26
- return D({
27
- orientation: l.ORIENTATION.HORIZONTAL,
28
- itemsType: l.ITEMS_TYPE.CART_ITEMS,
29
- itemId: "{{Abandoned Cart Item (1) Url}}",
30
- currencySymbol: r.currencySymbol,
31
- currencyLocation: r.currencyLocation,
32
- formattedPrice: r.formattedPrice
33
- });
34
- }
35
- allowInnerBlocksDND() {
36
- return !1;
37
- }
38
- onCreated(r) {
39
- const n = r.querySelector("esd-config-block");
40
- if (!n)
41
- return;
42
- const o = n, c = o.getAttribute("data-initialized") || "0", a = o.getAttribute(t.BLOCK_INSTANCE_ID), s = () => String(Date.now() + Math.floor(Math.random() * 1e3));
43
- if (Number(c)) {
44
- if (!a) {
45
- const i = s();
46
- this.api.getDocumentModifier().modifyHtml(o).setAttribute(t.BLOCK_INSTANCE_ID, i).apply(new u("Assign block instance ID to legacy block"));
47
- }
48
- } else {
49
- const i = e.itemsType, m = e.cartItemsSelectControlValue, I = e.cardOrientationControlValue, C = e.productNameTrimmingControlValue, T = e.productPriceHideDiscountControlValue, E = e.productPriceFormattedControlValue, b = e.productPriceCurrencySymbolControlValue, O = e.productPriceCurrencyLocationControlValue, A = e.productButtonLinkControlValue, N = e.productImageLinkControlValue, p = s();
50
- this.api.getDocumentModifier().modifyHtml(o).setAttribute("data-source", i).setAttribute(t.TYPE, i).setAttribute(t.ITEMS_INDEX_SELECT_CONTROL_VALUE, m).setAttribute(t.ORIENTATION, I).setAttribute(t.PRODUCT_NAME_TRIMMING, C).setAttribute(t.PRODUCT_PRICE_HIDE_DISCOUNT, T).setAttribute(t.PRODUCT_PRICE_FORMATTED, E).setAttribute(t.PRODUCT_PRICE_CURRENCY_SYMBOL, b).setAttribute(t.PRODUCT_PRICE_CURRENCY_LOCATION, O).setAttribute(t.PRODUCT_BUTTON_LINK, A).setAttribute(t.PRODUCT_IMAGE_LINK, N).setAttribute(t.BLOCK_INSTANCE_ID, p).setAttribute("data-initialized", "1").setAttribute(t.NAME_CONTROL_ENABLED, e.productNameControlEnabled).setAttribute(
51
- t.QUANTITY_CONTROL_ENABLED,
52
- e.productQuantityControlEnabled
53
- ).setAttribute(t.PRICE_CONTROL_OPENED, e.productPriceControlOpened).apply(new u("Initialize config block attributes with defaults")), f().startOnboarding("itemsOnboarding");
54
- }
55
- }
56
- onSelect(r) {
57
- const n = r.querySelector("esd-config-block"), o = d();
58
- if (!n)
59
- return;
60
- const c = n, a = c.getAttribute(t.TYPE) || e.itemsType, s = c.getAttribute(t.ITEMS_INDEX_SELECT_CONTROL_VALUE) || e.cartItemsSelectControlValue, i = c.getAttribute(t.ORIENTATION) || e.cardOrientationControlValue;
61
- o.setItemsType(a), o.setItemIds(s), o.setOrientation(i);
62
- }
63
- }
64
- export {
65
- y as BLOCK_ID,
66
- V as ItemsBlock
67
- };
@@ -1,68 +0,0 @@
1
- var r = Object.defineProperty;
2
- var a = (o, e, t) => e in o ? r(o, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : o[e] = t;
3
- var s = (o, e, t) => a(o, typeof e != "symbol" ? e + "" : e, t);
4
- import { CommonControl as u } from "../../../common-control.js";
5
- import { ItemsBlockControlId as d } from "../../enums/controlEnums.js";
6
- import { useItemsBlockStore as l } from "../../store/items-block.js";
7
- import { syncButtonLinkFromAttributes as h } from "../../utils/syncAttributesFromConfigBlock.js";
8
- import { updateConfigBlockAttributes as m } from "../../utils/updateAttributes.js";
9
- const i = d.BUTTON_LINK, n = {
10
- LINK: "link"
11
- };
12
- class C extends u {
13
- constructor() {
14
- super(...arguments);
15
- s(this, "store", l());
16
- }
17
- getId() {
18
- return i;
19
- }
20
- getTemplate() {
21
- return `
22
- <div class="${i}">
23
- ${this._getLink()}
24
- </div>
25
- `;
26
- }
27
- onRender() {
28
- this.api.updateValues({
29
- [n.LINK]: this.store.buttonLink
30
- }), this._listenToFormUpdates();
31
- }
32
- onTemplateNodeUpdated(t) {
33
- super.onTemplateNodeUpdated(t), this.handleBlockInstanceChange(
34
- () => h(this.currentNode),
35
- () => {
36
- this.api.updateValues({
37
- [n.LINK]: this.store.buttonLink
38
- });
39
- }
40
- );
41
- }
42
- _listenToFormUpdates() {
43
- this.api.onValueChanged(
44
- n.LINK,
45
- (t) => this._onLinkChange(t)
46
- );
47
- }
48
- _onLinkChange(t) {
49
- console.debug("Button link changed to: ", t), this.store.setButtonLink(t), m(this.currentNode, this.api);
50
- }
51
- _getLink() {
52
- return `
53
- ${this._GuOneColumn([
54
- this._GuLabel({ text: "Link" }),
55
- this._GuTextInput({
56
- name: n.LINK,
57
- placeholder: "Enter Link",
58
- className: "es-100",
59
- disabled: !0
60
- })
61
- ])}
62
- `;
63
- }
64
- }
65
- export {
66
- C as ButtonLinkControl,
67
- i as CONTROL_BLOCK_ID
68
- };
@@ -1,99 +0,0 @@
1
- import { UIElementType as a, UEAttr as l, ModificationDescription as o } from "../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
- import { CommonControl as s } from "../../common-control.js";
3
- import { ItemsBlockId as r } from "../enums/controlEnums.js";
4
- const d = "ui-elements-items-card-composition-block", i = {
5
- PRODUCT_IMAGE: "image",
6
- PRODUCT_NAME: "name",
7
- PRODUCT_QUANTITY: "quantity",
8
- PRODUCT_PRICE: "price",
9
- PRODUCT_ORIGINAL_PRICE: "originalPrice",
10
- PRODUCT_BUTTON: "button"
11
- };
12
- class g extends s {
13
- getId() {
14
- return d;
15
- }
16
- getTemplate() {
17
- return `
18
- <div class="items-controls-container">
19
- ${[
20
- { name: i.PRODUCT_IMAGE, label: "Product Image" },
21
- { name: i.PRODUCT_NAME, label: "Product Name" },
22
- { name: i.PRODUCT_QUANTITY, label: "Product Quantity" },
23
- { name: i.PRODUCT_PRICE, label: "Product Price" },
24
- { name: i.PRODUCT_ORIGINAL_PRICE, label: "Product Original Price" },
25
- { name: i.PRODUCT_BUTTON, label: "Product Button" }
26
- ].map((t) => this._getToggleContainer(t)).join("")}
27
- </div>
28
- `;
29
- }
30
- onRender() {
31
- this._initializeToggles(), this._listenToFormUpdates();
32
- }
33
- onDestroy() {
34
- }
35
- _getToggleContainer({ name: e, label: t }) {
36
- return `
37
- <div class="container">
38
- <div class="display-flex align-items-center justify-content-between">
39
- <${a.LABEL} ${l.LABEL.text}="${t}"></${a.LABEL}>
40
- ${this._GuToggle(e)}
41
- </div>
42
- </div>
43
- `;
44
- }
45
- _initializeToggles() {
46
- this.api.updateValues({
47
- [i.PRODUCT_IMAGE]: !0,
48
- [i.PRODUCT_NAME]: !0,
49
- [i.PRODUCT_QUANTITY]: !0,
50
- [i.PRODUCT_PRICE]: !0,
51
- [i.PRODUCT_ORIGINAL_PRICE]: !0,
52
- [i.PRODUCT_BUTTON]: !0
53
- });
54
- }
55
- _listenToFormUpdates() {
56
- this.api.onValueChanged(i.PRODUCT_IMAGE, (e) => this._onProductImageChange(e)), this.api.onValueChanged(i.PRODUCT_NAME, (e) => this._onProductNameChange(e)), this.api.onValueChanged(i.PRODUCT_QUANTITY, (e) => this._onProductQuantityChange(e)), this.api.onValueChanged(i.PRODUCT_PRICE, (e) => this._onProductPriceChange(e)), this.api.onValueChanged(
57
- i.PRODUCT_ORIGINAL_PRICE,
58
- (e) => this._onProductOriginalPriceChange(e)
59
- ), this.api.onValueChanged(i.PRODUCT_BUTTON, (e) => this._onProductButtonChange(e));
60
- }
61
- _onProductImageChange(e) {
62
- var n;
63
- const t = (n = this.currentNode) == null ? void 0 : n.querySelector(`[esd-extension-block-id="${r.IMAGE}"]`);
64
- t && this.api.getDocumentModifier().modifyHtml(t).setStyle("display", e ? "table-cell" : "none").apply(new o(`Product image visibility changed to ${e ? "visible" : "hidden"}`));
65
- }
66
- _onProductNameChange(e) {
67
- var n;
68
- const t = (n = this.currentNode) == null ? void 0 : n.querySelector(`[esd-extension-block-id="${r.NAME}"]`);
69
- t && this.api.getDocumentModifier().modifyHtml(t).setStyle("display", e ? "table-cell" : "none").apply(new o(`Product name visibility changed to ${e ? "visible" : "hidden"}`));
70
- }
71
- _onProductQuantityChange(e) {
72
- var n;
73
- const t = (n = this.currentNode) == null ? void 0 : n.querySelector(`[esd-extension-block-id="${r.QUANTITY}"]`);
74
- t && this.api.getDocumentModifier().modifyHtml(t).setStyle("display", e ? "table-cell" : "none").apply(new o(
75
- `Product quantity visibility changed to ${e ? "visible" : "hidden"}`
76
- ));
77
- }
78
- _onProductPriceChange(e) {
79
- var n;
80
- const t = (n = this.currentNode) == null ? void 0 : n.querySelector(`[esd-extension-block-id="${r.PRICE}"]`);
81
- t && this.api.getDocumentModifier().modifyHtml(t).setStyle("display", e ? "table-cell" : "none").apply(new o(`Product price visibility changed to ${e ? "visible" : "hidden"}`));
82
- }
83
- _onProductOriginalPriceChange(e) {
84
- var n;
85
- const t = (n = this.currentNode) == null ? void 0 : n.querySelector(`[esd-extension-block-id="${r.ORIGINAL_PRICE}"]`);
86
- t && this.api.getDocumentModifier().modifyHtml(t).setStyle("display", e ? "table-cell" : "none").apply(new o(
87
- `Product original price visibility changed to ${e ? "visible" : "hidden"}`
88
- ));
89
- }
90
- _onProductButtonChange(e) {
91
- var n;
92
- const t = (n = this.currentNode) == null ? void 0 : n.querySelector(`[esd-extension-block-id="${r.BUTTON}"]`);
93
- t && this.api.getDocumentModifier().modifyHtml(t).setStyle("display", e ? "table-cell" : "none").apply(new o(`Product button visibility changed to ${e ? "visible" : "hidden"}`));
94
- }
95
- }
96
- export {
97
- d as COMPOSITION_CONTROL_BLOCK_ID,
98
- g as ItemsBlockCardCompositionControl
99
- };
@@ -1,68 +0,0 @@
1
- var r = Object.defineProperty;
2
- var a = (o, t, e) => t in o ? r(o, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : o[t] = e;
3
- var i = (o, t, e) => a(o, typeof t != "symbol" ? t + "" : t, e);
4
- import { CommonControl as m } from "../../../common-control.js";
5
- import { ItemsBlockControlId as d } from "../../enums/controlEnums.js";
6
- import { useItemsBlockStore as l } from "../../store/items-block.js";
7
- import { syncImageLinkFromAttributes as h } from "../../utils/syncAttributesFromConfigBlock.js";
8
- import { updateConfigBlockAttributes as p } from "../../utils/updateAttributes.js";
9
- const s = d.IMAGE_LINK, n = {
10
- LINK: "link"
11
- };
12
- class N extends m {
13
- constructor() {
14
- super(...arguments);
15
- i(this, "store", l());
16
- }
17
- getId() {
18
- return s;
19
- }
20
- getTemplate() {
21
- return `
22
- <div class="${s}">
23
- ${this._getLink()}
24
- </div>
25
- `;
26
- }
27
- onRender() {
28
- this.api.updateValues({
29
- [n.LINK]: this.store.imageLink
30
- }), this._listenToFormUpdates();
31
- }
32
- onTemplateNodeUpdated(e) {
33
- super.onTemplateNodeUpdated(e), this.handleBlockInstanceChange(
34
- () => h(this.currentNode),
35
- () => {
36
- this.api.updateValues({
37
- [n.LINK]: this.store.imageLink
38
- });
39
- }
40
- );
41
- }
42
- _listenToFormUpdates() {
43
- this.api.onValueChanged(
44
- n.LINK,
45
- (e) => this._onLinkChange(e)
46
- );
47
- }
48
- _onLinkChange(e) {
49
- console.debug("Image link changed to: ", e), this.store.setImageLink(e), p(this.currentNode, this.api);
50
- }
51
- _getLink() {
52
- return `
53
- ${this._GuOneColumn([
54
- this._GuLabel({ text: "Link" }),
55
- this._GuTextInput({
56
- name: n.LINK,
57
- placeholder: "Enter Link",
58
- className: "es-100",
59
- disabled: !0
60
- })
61
- ])}
62
- `;
63
- }
64
- }
65
- export {
66
- s as CONTROL_BLOCK_ID,
67
- N as ImageLinkControl
68
- };