@useinsider/guido 2.1.0 → 2.2.0-beta.1696353

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 (156) hide show
  1. package/README.md +36 -0
  2. package/dist/@types/config/schemas.js +71 -66
  3. package/dist/components/Guido.vue.js +1 -1
  4. package/dist/components/Guido.vue2.js +69 -58
  5. package/dist/components/organisms/header/HeaderWrapper.vue.js +9 -9
  6. package/dist/composables/useActionsApi.js +15 -13
  7. package/dist/composables/useBlocksConfig.js +26 -16
  8. package/dist/config/migrator/itemsBlockMigrator.js +140 -123
  9. package/dist/enums/defaults.js +8 -4
  10. package/dist/extensions/Blocks/Items/block.js +19 -28
  11. package/dist/extensions/Blocks/Items/controls/button/link.js +19 -31
  12. package/dist/extensions/Blocks/Items/controls/cardComposition.js +137 -89
  13. package/dist/extensions/Blocks/Items/controls/image/link.js +19 -31
  14. package/dist/extensions/Blocks/Items/controls/name/trimming.js +28 -40
  15. package/dist/extensions/Blocks/Items/controls/price/currencyLocation.js +35 -47
  16. package/dist/extensions/Blocks/Items/controls/price/currencySymbol.js +49 -54
  17. package/dist/extensions/Blocks/Items/controls/price/formattedPrice.js +42 -51
  18. package/dist/extensions/Blocks/Items/controls/price/hideDiscount.js +23 -36
  19. package/dist/extensions/Blocks/Items/controls/price/priceOrientation.js +45 -57
  20. package/dist/extensions/Blocks/Items/controls/price/singlePrice.js +42 -60
  21. package/dist/extensions/Blocks/Items/controls/settingsControl.js +189 -196
  22. package/dist/extensions/Blocks/Items/enums/settingsEnums.js +0 -2
  23. package/dist/extensions/Blocks/Items/extension.js +8 -9
  24. package/dist/extensions/Blocks/Items/settingsPanel.js +10 -15
  25. package/dist/extensions/Blocks/Items/template.js +181 -175
  26. package/dist/extensions/Blocks/Items/utils/nodeConfigUtils.js +65 -65
  27. package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +153 -69
  28. package/dist/extensions/Blocks/Recommendation/constants.js +9 -1
  29. package/dist/extensions/Blocks/Recommendation/control.js +91 -61
  30. package/dist/extensions/Blocks/Recommendation/controls/cardBackgroundColorControl.js +68 -0
  31. package/dist/extensions/Blocks/Recommendation/controls/index.js +245 -0
  32. package/dist/extensions/Blocks/Recommendation/controls/nameTextTrimControl.js +74 -0
  33. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscountTextAfterControl.js +71 -0
  34. package/dist/extensions/Blocks/Recommendation/controls/omnibusDiscountTextBeforeControl.js +71 -0
  35. package/dist/extensions/Blocks/Recommendation/controls/omnibusPriceTextAfterControl.js +71 -0
  36. package/dist/extensions/Blocks/Recommendation/controls/omnibusPriceTextBeforeControl.js +71 -0
  37. package/dist/extensions/Blocks/Recommendation/controls/spacingControl.js +188 -0
  38. package/dist/extensions/Blocks/Recommendation/extension.js +16 -42
  39. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +117 -72
  40. package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +85 -64
  41. package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +54 -17
  42. package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +74 -45
  43. package/dist/extensions/Blocks/Recommendation/utils/preserveTextStyles.js +25 -0
  44. package/dist/extensions/Blocks/common-control.js +91 -92
  45. package/dist/extensions/ModulesTabIcons/extension.js +17 -0
  46. package/dist/guido.css +1 -1
  47. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +158 -95
  48. package/dist/package.json.js +1 -1
  49. package/dist/src/@types/config/schemas.d.ts +10 -2
  50. package/dist/src/composables/useConfig.d.ts +4 -0
  51. package/dist/src/enums/defaults.d.ts +4 -0
  52. package/dist/src/extensions/Blocks/Items/block.d.ts +0 -1
  53. package/dist/src/extensions/Blocks/Items/controls/button/link.d.ts +0 -1
  54. package/dist/src/extensions/Blocks/Items/controls/cardComposition.d.ts +5 -5
  55. package/dist/src/extensions/Blocks/Items/controls/image/link.d.ts +0 -1
  56. package/dist/src/extensions/Blocks/Items/controls/name/trimming.d.ts +0 -1
  57. package/dist/src/extensions/Blocks/Items/controls/price/currencyLocation.d.ts +0 -1
  58. package/dist/src/extensions/Blocks/Items/controls/price/currencySymbol.d.ts +0 -1
  59. package/dist/src/extensions/Blocks/Items/controls/price/formattedPrice.d.ts +0 -1
  60. package/dist/src/extensions/Blocks/Items/controls/price/hideDiscount.d.ts +0 -1
  61. package/dist/src/extensions/Blocks/Items/controls/price/priceOrientation.d.ts +0 -1
  62. package/dist/src/extensions/Blocks/Items/controls/price/singlePrice.d.ts +0 -5
  63. package/dist/src/extensions/Blocks/Items/controls/settingsControl.d.ts +10 -12
  64. package/dist/src/extensions/Blocks/Items/utils/nodeConfigUtils.d.ts +2 -1
  65. package/dist/src/extensions/Blocks/Recommendation/cardCompositionControl.d.ts +50 -3
  66. package/dist/src/extensions/Blocks/Recommendation/constants.d.ts +32 -0
  67. package/dist/src/extensions/Blocks/Recommendation/control.d.ts +5 -2
  68. package/dist/src/extensions/Blocks/Recommendation/controls/cardBackgroundColorControl.d.ts +25 -0
  69. package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +592 -0
  70. package/dist/src/extensions/Blocks/Recommendation/controls/nameTextTrimControl.d.ts +16 -0
  71. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscountTextAfterControl.d.ts +15 -0
  72. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusDiscountTextBeforeControl.d.ts +15 -0
  73. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPriceTextAfterControl.d.ts +15 -0
  74. package/dist/src/extensions/Blocks/Recommendation/controls/omnibusPriceTextBeforeControl.d.ts +15 -0
  75. package/dist/src/extensions/Blocks/Recommendation/controls/spacingControl.d.ts +60 -0
  76. package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +3 -3
  77. package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +15 -7
  78. package/dist/src/extensions/Blocks/Recommendation/utils/preserveTextStyles.d.ts +19 -0
  79. package/dist/src/extensions/Blocks/common-control.d.ts +4 -5
  80. package/dist/src/extensions/ModulesTabIcons/extension.d.ts +2 -0
  81. package/dist/src/stores/config.d.ts +36 -0
  82. package/dist/static/styles/components/notification.css.js +1 -0
  83. package/dist/static/styles/components/version-history.css.js +10 -2
  84. package/dist/static/styles/components/wide-panel.css.js +18 -6
  85. package/dist/static/styles/customEditorStyle.css.js +13 -0
  86. package/package.json +2 -2
  87. package/dist/extensions/Blocks/Items/store/items-block.js +0 -79
  88. package/dist/extensions/Blocks/Recommendation/controls/button/align.js +0 -13
  89. package/dist/extensions/Blocks/Recommendation/controls/button/border.js +0 -13
  90. package/dist/extensions/Blocks/Recommendation/controls/button/borderRadius.js +0 -13
  91. package/dist/extensions/Blocks/Recommendation/controls/button/color.js +0 -13
  92. package/dist/extensions/Blocks/Recommendation/controls/button/fitToContent.js +0 -13
  93. package/dist/extensions/Blocks/Recommendation/controls/button/fontFamily.js +0 -13
  94. package/dist/extensions/Blocks/Recommendation/controls/button/margins.js +0 -13
  95. package/dist/extensions/Blocks/Recommendation/controls/button/paddings.js +0 -13
  96. package/dist/extensions/Blocks/Recommendation/controls/button/text.js +0 -13
  97. package/dist/extensions/Blocks/Recommendation/controls/button/textSize.js +0 -13
  98. package/dist/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.js +0 -13
  99. package/dist/extensions/Blocks/Recommendation/controls/image/margins.js +0 -13
  100. package/dist/extensions/Blocks/Recommendation/controls/image/size.js +0 -13
  101. package/dist/extensions/Blocks/Recommendation/controls/name/align.js +0 -13
  102. package/dist/extensions/Blocks/Recommendation/controls/name/background.js +0 -13
  103. package/dist/extensions/Blocks/Recommendation/controls/name/color.js +0 -13
  104. package/dist/extensions/Blocks/Recommendation/controls/name/fontFamily.js +0 -13
  105. package/dist/extensions/Blocks/Recommendation/controls/name/paddings.js +0 -13
  106. package/dist/extensions/Blocks/Recommendation/controls/name/size.js +0 -13
  107. package/dist/extensions/Blocks/Recommendation/controls/name/style.js +0 -13
  108. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/align.js +0 -13
  109. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/background.js +0 -13
  110. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/color.js +0 -13
  111. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.js +0 -13
  112. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/paddings.js +0 -13
  113. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/size.js +0 -13
  114. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/style.js +0 -13
  115. package/dist/extensions/Blocks/Recommendation/controls/price/align.js +0 -13
  116. package/dist/extensions/Blocks/Recommendation/controls/price/background.js +0 -13
  117. package/dist/extensions/Blocks/Recommendation/controls/price/color.js +0 -13
  118. package/dist/extensions/Blocks/Recommendation/controls/price/fontFamily.js +0 -13
  119. package/dist/extensions/Blocks/Recommendation/controls/price/paddings.js +0 -13
  120. package/dist/extensions/Blocks/Recommendation/controls/price/size.js +0 -13
  121. package/dist/extensions/Blocks/Recommendation/controls/price/style.js +0 -13
  122. package/dist/src/extensions/Blocks/Items/store/items-block.d.ts +0 -45
  123. package/dist/src/extensions/Blocks/Recommendation/controls/button/align.d.ts +0 -5
  124. package/dist/src/extensions/Blocks/Recommendation/controls/button/border.d.ts +0 -5
  125. package/dist/src/extensions/Blocks/Recommendation/controls/button/borderRadius.d.ts +0 -5
  126. package/dist/src/extensions/Blocks/Recommendation/controls/button/color.d.ts +0 -5
  127. package/dist/src/extensions/Blocks/Recommendation/controls/button/fitToContent.d.ts +0 -5
  128. package/dist/src/extensions/Blocks/Recommendation/controls/button/fontFamily.d.ts +0 -5
  129. package/dist/src/extensions/Blocks/Recommendation/controls/button/margins.d.ts +0 -5
  130. package/dist/src/extensions/Blocks/Recommendation/controls/button/paddings.d.ts +0 -5
  131. package/dist/src/extensions/Blocks/Recommendation/controls/button/text.d.ts +0 -5
  132. package/dist/src/extensions/Blocks/Recommendation/controls/button/textSize.d.ts +0 -5
  133. package/dist/src/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.d.ts +0 -5
  134. package/dist/src/extensions/Blocks/Recommendation/controls/image/margins.d.ts +0 -5
  135. package/dist/src/extensions/Blocks/Recommendation/controls/image/size.d.ts +0 -5
  136. package/dist/src/extensions/Blocks/Recommendation/controls/name/align.d.ts +0 -5
  137. package/dist/src/extensions/Blocks/Recommendation/controls/name/background.d.ts +0 -5
  138. package/dist/src/extensions/Blocks/Recommendation/controls/name/color.d.ts +0 -5
  139. package/dist/src/extensions/Blocks/Recommendation/controls/name/fontFamily.d.ts +0 -5
  140. package/dist/src/extensions/Blocks/Recommendation/controls/name/paddings.d.ts +0 -5
  141. package/dist/src/extensions/Blocks/Recommendation/controls/name/size.d.ts +0 -5
  142. package/dist/src/extensions/Blocks/Recommendation/controls/name/style.d.ts +0 -5
  143. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/align.d.ts +0 -5
  144. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/background.d.ts +0 -5
  145. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/color.d.ts +0 -5
  146. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.d.ts +0 -5
  147. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/paddings.d.ts +0 -5
  148. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/size.d.ts +0 -5
  149. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/style.d.ts +0 -5
  150. package/dist/src/extensions/Blocks/Recommendation/controls/price/align.d.ts +0 -5
  151. package/dist/src/extensions/Blocks/Recommendation/controls/price/background.d.ts +0 -5
  152. package/dist/src/extensions/Blocks/Recommendation/controls/price/color.d.ts +0 -5
  153. package/dist/src/extensions/Blocks/Recommendation/controls/price/fontFamily.d.ts +0 -5
  154. package/dist/src/extensions/Blocks/Recommendation/controls/price/paddings.d.ts +0 -5
  155. package/dist/src/extensions/Blocks/Recommendation/controls/price/size.d.ts +0 -5
  156. package/dist/src/extensions/Blocks/Recommendation/controls/price/style.d.ts +0 -5
@@ -1,18 +1,19 @@
1
- const R = {
1
+ import { ATTR_PRODUCT_IMAGE as h, ATTR_PRODUCT_NAME as C, ATTR_PRODUCT_OLD_PRICE as D, ATTR_PRODUCT_PRICE as b, ATTR_PRODUCT_OMNIBUS_PRICE as P, ATTR_PRODUCT_OMNIBUS_DISCOUNT as U, ATTR_PRODUCT_BUTTON as N } from "../constants.js";
2
+ const E = {
2
3
  TITLE: "You May Also Like!"
3
- }, O = `
4
+ }, I = `
4
5
  <tr>
5
- <td class="spacer" style="height: 20px;"></td>
6
+ <td class="spacer" style="height: 10px;"></td>
6
7
  </tr>
7
- `, w = `
8
- <tr>
8
+ `, A = `
9
+ <tr class="recommendation-product-row">
9
10
  <td>
10
11
  <table width="100%" height="100%" cellpadding="0" cellspacing="0" border="0">
11
12
  {-{-PRODUCTS-}-}
12
13
  </table>
13
14
  </td>
14
15
  </tr>
15
- `, i = `
16
+ `, o = `
16
17
  <td width="{-{-COLUMN_WIDTH-}-}" style="padding: 0 5px;" valign="top" height="100%">
17
18
  <table
18
19
  width="100%"
@@ -34,14 +35,24 @@ const R = {
34
35
  </tr>
35
36
  </table>
36
37
  </td>
37
- `, b = [
38
- "productImage",
39
- "productName",
40
- "productOldPrice",
41
- "productPrice",
42
- "productButton"
43
- ];
44
- function C() {
38
+ `, Y = [
39
+ h,
40
+ C,
41
+ D,
42
+ b,
43
+ P,
44
+ U,
45
+ N
46
+ ], S = {
47
+ [h]: !0,
48
+ [C]: !0,
49
+ [b]: !0,
50
+ [D]: !0,
51
+ [P]: !1,
52
+ [U]: !1,
53
+ [N]: !0
54
+ };
55
+ function M() {
45
56
  return [
46
57
  {
47
58
  name: "Product Name",
@@ -123,58 +134,76 @@ function C() {
123
134
  }
124
135
  ];
125
136
  }
126
- function N(p, r, e, l = b) {
127
- const n = (100 / r).toFixed(2), a = [];
128
- for (let o = 0; o < p.length; o += r)
129
- a.push(p.slice(o, o + r));
137
+ function f(a, r, e, l = Y) {
138
+ const s = (100 / r).toFixed(2), p = [];
139
+ for (let i = 0; i < a.length; i += r)
140
+ p.push(a.slice(i, i + r));
130
141
  let c = "";
131
- return a.forEach((o, _) => {
132
- _ > 0 && (c += O);
133
- let s = "", u = "", d = "", m = "", g = "";
134
- o.forEach((t) => {
135
- s += i.replace(
142
+ return p.forEach((i, w) => {
143
+ w > 0 && (c += I);
144
+ let n = "", u = "", d = "", T = "", m = "", _ = "", g = "";
145
+ i.forEach((t) => {
146
+ n += o.replace(
136
147
  "{-{-PRODUCT_CONTENT-}-}",
137
148
  e.productImage(t)
138
- ), u += i.replace(
149
+ ), u += o.replace(
139
150
  "{-{-PRODUCT_CONTENT-}-}",
140
151
  e.productName(t)
141
- ), d += i.replace(
152
+ ), d += o.replace(
142
153
  "{-{-PRODUCT_CONTENT-}-}",
143
154
  e.productPrice(t)
144
- ), m += i.replace(
155
+ ), T += o.replace(
145
156
  "{-{-PRODUCT_CONTENT-}-}",
146
157
  e.productOldPrice(t)
147
- ), g += i.replace(
158
+ ), m += o.replace(
159
+ "{-{-PRODUCT_CONTENT-}-}",
160
+ e.productOmnibusPrice(t)
161
+ ), _ += o.replace(
162
+ "{-{-PRODUCT_CONTENT-}-}",
163
+ e.productOmnibusDiscount(t)
164
+ ), g += o.replace(
148
165
  "{-{-PRODUCT_CONTENT-}-}",
149
166
  e.productButton(t)
150
167
  );
151
168
  });
152
- const T = {
153
- productImage: s,
169
+ const R = {
170
+ productImage: n,
154
171
  productName: u,
155
172
  productPrice: d,
156
- productOldPrice: m,
173
+ productOldPrice: T,
174
+ productOmnibusPrice: m,
175
+ productOmnibusDiscount: _,
157
176
  productButton: g
158
- }, h = l.filter((t) => !!T[t]).map((t) => `<tr>${T[t]}</tr>`).join("");
159
- c += w.replace("{-{-PRODUCTS-}-}", h);
160
- }), c.replaceAll("{-{-COLUMN_WIDTH-}-}", `${n}%`);
177
+ }, y = l.filter((t) => !!R[t]).map((t) => {
178
+ const O = S[t] ?? !0;
179
+ return `
180
+ <tr class="recommendation-attribute-row"
181
+ data-attribute-type="${t}"
182
+ data-visibility="${O ? "1" : "0"}"${O ? "" : ' style="display: none;"'}>
183
+ ${R[t]}
184
+ </tr>
185
+ `;
186
+ }).join("");
187
+ c += A.replace("{-{-PRODUCTS-}-}", y);
188
+ }), c.replaceAll("{-{-COLUMN_WIDTH-}-}", `${s}%`);
161
189
  }
162
- function P(p, r, e, l, n = R.TITLE, a) {
163
- const c = N(
190
+ function j(a, r, e, l, s = E.TITLE, p) {
191
+ const c = f(
164
192
  r,
165
193
  e,
166
194
  l,
167
- a
195
+ p
168
196
  );
169
- return p.replace("{-{-TITLE-}-}", n).replace("{-{-PRODUCT_ROWS-}-}", c);
197
+ return a.replace("{-{-TITLE-}-}", s).replace("{-{-PRODUCT_ROWS-}-}", c);
170
198
  }
171
199
  export {
172
- R as DEFAULTS,
173
- b as DEFAULT_CARD_COMPOSITION,
174
- P as generateTemplate,
175
- C as getDefaultProducts,
176
- N as prepareProductRows,
177
- i as productCardWrapper,
178
- w as productRow,
179
- O as spacer
200
+ E as DEFAULTS,
201
+ Y as DEFAULT_CARD_COMPOSITION,
202
+ S as DEFAULT_CARD_VISIBILITY,
203
+ j as generateTemplate,
204
+ M as getDefaultProducts,
205
+ f as prepareProductRows,
206
+ o as productCardWrapper,
207
+ A as productRow,
208
+ I as spacer
180
209
  };
@@ -0,0 +1,25 @@
1
+ function a(n) {
2
+ return "getInnerHTML" in n && typeof n.getInnerHTML == "function" ? n.getInnerHTML().trim() : "innerHTML" in n ? n.innerHTML : "";
3
+ }
4
+ function m(n, t) {
5
+ if (!n)
6
+ return t;
7
+ const r = a(n);
8
+ if (!r || r.trim() === "" || !/<(strong|em|u|s|b|i)\b/i.test(r))
9
+ return t;
10
+ const i = [], s = [];
11
+ let o = r.trim();
12
+ for (; ; ) {
13
+ const u = o.match(/^<(strong|em|u|s|b|i)(\s[^>]*)?>(.*)$/is);
14
+ if (!u)
15
+ break;
16
+ const [, e, f = "", g] = u, c = new RegExp(`</${e}>$`, "i");
17
+ if (!c.test(g))
18
+ break;
19
+ i.push(`<${e}${f}>`), s.unshift(`</${e}>`), o = g.replace(c, "").trim();
20
+ }
21
+ return i.length > 0 ? i.join("") + t + s.join("") : t;
22
+ }
23
+ export {
24
+ m as preserveTextStyles
25
+ };
@@ -1,8 +1,8 @@
1
1
  var I = Object.defineProperty;
2
- var c = (T, r, e) => r in T ? I(T, r, { enumerable: !0, configurable: !0, writable: !0, value: e }) : T[r] = e;
3
- var u = (T, r, e) => c(T, typeof r != "symbol" ? r + "" : r, e);
4
- import { Control as O, UIElementType as t, UEAttr as $ } from "../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
5
- class _ extends O {
2
+ var O = (T, r, e) => r in T ? I(T, r, { enumerable: !0, configurable: !0, writable: !0, value: e }) : T[r] = e;
3
+ var u = (T, r, e) => O(T, typeof r != "symbol" ? r + "" : r, e);
4
+ import { Control as c, UIElementType as n, UEAttr as $ } from "../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
5
+ class _ extends c {
6
6
  constructor() {
7
7
  super(...arguments);
8
8
  u(this, "currentNode");
@@ -33,101 +33,100 @@ class _ extends O {
33
33
  const e = this.getItemsBlockContainer();
34
34
  if (!e)
35
35
  return null;
36
- const n = e.getNodeConfig();
37
- return n && typeof n.blockInstanceId == "string" ? n.blockInstanceId : null;
36
+ const t = e.getNodeConfig();
37
+ return t && typeof t.blockInstanceId == "string" ? t.blockInstanceId : null;
38
38
  }
39
39
  /**
40
- * Handles block instance change detection and syncing.
41
- * This is a helper method for controls that need to sync config when switching between block instances.
40
+ * Handles block instance change detection and UI updates.
41
+ * This is a helper method for controls that need to update UI when switching between block instances.
42
42
  * Uses Stripo V2 nodeConfig API for block instance tracking.
43
- * @param syncFunction - Function to call when block instance changes (to sync from node config)
44
- * @param updateUI - Function to call to update the UI (called both on change and when same block)
43
+ * @param updateUI - Function to call to update the UI (called on every update)
45
44
  * @returns true if block instance changed, false otherwise
46
45
  */
47
- handleBlockInstanceChange(e, n) {
48
- const E = this.getBlockInstanceId();
49
- if (!E)
46
+ handleBlockInstanceChange(e) {
47
+ const t = this.getBlockInstanceId();
48
+ if (!t)
50
49
  return !1;
51
- const o = E !== this.lastBlockInstanceId;
52
- return o ? (this.currentNode && e(this.currentNode), n(), this.lastBlockInstanceId = E) : n(), o;
50
+ const E = t !== this.lastBlockInstanceId;
51
+ return e(), E && (this.lastBlockInstanceId = t), E;
53
52
  }
54
- _GuLabel({ text: e, name: n = "" }) {
53
+ _GuLabel({ text: e, name: t = "" }) {
55
54
  return `
56
- <${t.LABEL}
55
+ <${n.LABEL}
57
56
  ${$.LABEL.text}="${e}"
58
- ${$.LABEL.name}="${n || `${e} Label`}">
59
- </${t.LABEL}>
57
+ ${$.LABEL.name}="${t || `${e} Label`}">
58
+ </${n.LABEL}>
60
59
  `;
61
60
  }
62
61
  _GuToggle(e) {
63
62
  return `
64
- <${t.SWITCHER}
63
+ <${n.SWITCHER}
65
64
  ${$.SWITCHER.name}="${e}">
66
- </${t.SWITCHER}>
65
+ </${n.SWITCHER}>
67
66
  `;
68
67
  }
69
- _GuSelectItem({ text: e, value: n }) {
68
+ _GuSelectItem({ text: e, value: t }) {
70
69
  return `
71
- <${t.SELECT_ITEM}
70
+ <${n.SELECT_ITEM}
72
71
  ${$.SELECT_ITEM.text}="${e}"
73
- ${$.SELECT_ITEM.value}="${n}">
74
- </${t.SELECT_ITEM}>`;
72
+ ${$.SELECT_ITEM.value}="${t}">
73
+ </${n.SELECT_ITEM}>`;
75
74
  }
76
- _GuSelect({ name: e, placeholder: n, options: E, className: o = "es-180w" }) {
75
+ _GuSelect({ name: e, placeholder: t, options: E, className: o = "es-180w" }) {
77
76
  return `
78
- <${t.SELECTPICKER}
77
+ <${n.SELECTPICKER}
79
78
  class="${o}"
80
79
  ${$.SELECTPICKER.name}="${e}"
81
- ${$.SELECTPICKER.placeholder}="${n}">
80
+ ${$.SELECTPICKER.placeholder}="${t}">
82
81
  ${E.map((a) => this._GuSelectItem(a)).join("")}
83
- </${t.SELECTPICKER}>
82
+ </${n.SELECTPICKER}>
84
83
  `;
85
84
  }
86
- _GuTextInput({ name: e, placeholder: n, className: E = "", disabled: o = !1 }) {
85
+ _GuTextInput({ name: e, placeholder: t, className: E = "", disabled: o = !1 }) {
87
86
  return `
88
- <${t.TEXT}
87
+ <${n.TEXT}
89
88
  class=${E}
90
89
  ${$.TEXT.name}="${e}"
91
- placeholder="${n || e}"
90
+ placeholder="${t || e}"
92
91
  ${o ? `${$.TEXT.disabled}="true"` : ""}>
93
- </${t.TEXT}>
92
+ </${n.TEXT}>
94
93
  `;
95
94
  }
96
- _GuCounter({ name: e, maxValue: n, minValue: E = 1, step: o = 1 }) {
95
+ _GuCounter({ name: e, maxValue: t, minValue: E = 1, step: o = 1 }) {
97
96
  return `
98
- <${t.COUNTER}
97
+ <${n.COUNTER}
99
98
  ${$.COUNTER.name}="${e}"
100
99
  ${$.COUNTER.minValue}="${E}"
101
- ${$.COUNTER.maxValue}="${n}"
100
+ ${$.COUNTER.maxValue}="${t}"
102
101
  ${$.COUNTER.step}="${o}">
103
- </${t.COUNTER}>
102
+ </${n.COUNTER}>
104
103
  `;
105
104
  }
106
- _GuRadioButtonItem({ text: e, value: n, icon: E }) {
105
+ _GuRadioButtonItem({ text: e, value: t, icon: E }) {
107
106
  return `
108
- <${t.RADIO_ITEM}
109
- ${$.RADIO_ITEM.value}="${n}"
107
+ <${n.RADIO_ITEM}
108
+ ${$.RADIO_ITEM.value}="${t}"
110
109
  ${e ? `${$.RADIO_ITEM.text}="${e}"` : ""}
111
110
  ${E ? `${$.RADIO_ITEM.icon}="${E}"` : ""}>
112
- </${t.RADIO_ITEM}>
111
+ </${n.RADIO_ITEM}>
113
112
  `;
114
113
  }
115
- _GuRadioButton({ name: e, buttons: n, id: E = "" }) {
114
+ _GuRadioButton({ name: e, buttons: t, id: E = "" }) {
116
115
  return `
117
- <${t.RADIO_BUTTONS}
116
+ <${n.RADIO_BUTTONS}
118
117
  ${E ? `id="${E}"` : ""}
119
118
  ${$.RADIO_BUTTONS.name}="${e}">
120
- ${n.map((o) => this._GuRadioButtonItem(o)).join("")}
121
- </${t.RADIO_BUTTONS}>
119
+ ${t.map((o) => this._GuRadioButtonItem(o)).join("")}
120
+ </${n.RADIO_BUTTONS}>
122
121
  `;
123
122
  }
124
- _GuButton({ name: e, label: n, id: E = "" }) {
123
+ _GuButton({ name: e, label: t, id: E = "" }) {
125
124
  return `
126
- <${t.BUTTON}
125
+ <${n.BUTTON}
127
126
  ${$.BUTTON.name}="${e}"
128
127
  ${E ? `id="${E}"` : ""}
129
- ${$.BUTTON.caption}="${n}"}>
130
- </${t.BUTTON}>
128
+ ${$.BUTTON.caption}="${t}"}>
129
+ </${n.BUTTON}>
131
130
  `;
132
131
  }
133
132
  /**
@@ -135,25 +134,25 @@ class _ extends O {
135
134
  * @param param0
136
135
  * @returns It returns a button with an icon.
137
136
  */
138
- _GuIconButton({ name: e, icon: n, className: E = "" }) {
137
+ _GuIconButton({ name: e, icon: t, className: E = "" }) {
139
138
  return `
140
- <${t.BUTTON}
139
+ <${n.BUTTON}
141
140
  class="${E}"
142
141
  ${$.BUTTON.name}="${e}"
143
- ${$.BUTTON.icon}="${n}">
144
- </${t.BUTTON}>
142
+ ${$.BUTTON.icon}="${t}">
143
+ </${n.BUTTON}>
145
144
  `;
146
145
  }
147
- _GuOneColumn(e, n = "") {
146
+ _GuOneColumn(e, t = "") {
148
147
  return `
149
- <div class="container one-column ${n}">
148
+ <div class="container one-column ${t}">
150
149
  ${e.join("")}
151
150
  </div>
152
151
  `;
153
152
  }
154
- _GuTwoColumns(e, n = "") {
153
+ _GuTwoColumns(e, t = "") {
155
154
  return `
156
- <div class="container two-columns ${n}">
155
+ <div class="container two-columns ${t}">
157
156
  ${e.join("")}
158
157
  </div>
159
158
  `;
@@ -165,79 +164,79 @@ class _ extends O {
165
164
  * @param itemLabels - Optional array of objects with key and label properties for display
166
165
  * @returns HTML string for the orderable control
167
166
  */
168
- _GuOrderable(e, n) {
167
+ _GuOrderable(e, t) {
169
168
  let E = "";
170
- n.forEach((a) => {
169
+ t.forEach((a) => {
171
170
  const l = $.ORDERABLE_ITEM && "name" in $.ORDERABLE_ITEM ? $.ORDERABLE_ITEM.name : "name";
172
171
  E += `
173
- <${t.ORDERABLE_ITEM} ${l}="${a.key}">
172
+ <${n.ORDERABLE_ITEM} ${l}="${a.key}">
174
173
  ${a.content}
175
- </${t.ORDERABLE_ITEM}>
174
+ </${n.ORDERABLE_ITEM}>
176
175
  `;
177
176
  });
178
177
  const o = $.ORDERABLE && "name" in $.ORDERABLE ? $.ORDERABLE.name : "name";
179
178
  return `
180
- <${t.ORDERABLE} ${o}="${e}">
179
+ <${n.ORDERABLE} ${o}="${e}">
181
180
  ${E}
182
- </${t.ORDERABLE}>
181
+ </${n.ORDERABLE}>
183
182
  `;
184
183
  }
185
- _GuNestedControl(e, n) {
184
+ _GuNestedControl(e, t) {
186
185
  return `
187
- <${t.NESTED_CONTROL} ${$.NESTED_CONTROL.controlId}="${e}">
188
- ${n}
189
- </${t.NESTED_CONTROL}>
186
+ <${n.NESTED_CONTROL} ${$.NESTED_CONTROL.controlId}="${e}">
187
+ ${t}
188
+ </${n.NESTED_CONTROL}>
190
189
  `;
191
190
  }
192
- _GuExpandable(e, n) {
191
+ _GuExpandable(e, t) {
193
192
  return `
194
- <${t.EXPANDABLE}>
195
- <${t.EXPANDABLE_HEADER}>
196
- <${t.LABEL} ${$.LABEL.text}="${e}"></${t.LABEL}>
197
- </${t.EXPANDABLE_HEADER}>
198
- <${t.EXPANDABLE_CONTENT}>
193
+ <${n.EXPANDABLE}>
194
+ <${n.EXPANDABLE_HEADER}>
195
+ <${n.LABEL} ${$.LABEL.text}="${e}"></${n.LABEL}>
196
+ </${n.EXPANDABLE_HEADER}>
197
+ <${n.EXPANDABLE_CONTENT}>
199
198
 
200
- ${n}
199
+ ${t}
201
200
 
202
- </${t.EXPANDABLE_CONTENT}>
203
- </${t.EXPANDABLE}>
201
+ </${n.EXPANDABLE_CONTENT}>
202
+ </${n.EXPANDABLE}>
204
203
  `;
205
204
  }
206
205
  _GuColorPicker(e) {
207
206
  return `
208
- <${t.COLOR}
207
+ <${n.COLOR}
209
208
  ${$.COLOR.name}="${e}">
210
- </${t.COLOR}>
209
+ </${n.COLOR}>
211
210
  `;
212
211
  }
213
- _GuFontFamily(e, n = "Select Font") {
212
+ _GuFontFamily(e, t = "Select Font") {
214
213
  return `
215
- <${t.FONT_FAMILY_SELECT}
214
+ <${n.FONT_FAMILY_SELECT}
216
215
  ${$.FONT_FAMILY_SELECT.name}="${e}"
217
- ${$.FONT_FAMILY_SELECT.placeholder}="${n}">
218
- </${t.FONT_FAMILY_SELECT}>
216
+ ${$.FONT_FAMILY_SELECT.placeholder}="${t}">
217
+ </${n.FONT_FAMILY_SELECT}>
219
218
  `;
220
219
  }
221
- _GuRadioButtons(e, n) {
222
- const E = n.map((o) => `
223
- <${t.RADIO_ITEM}
220
+ _GuRadioButtons(e, t) {
221
+ const E = t.map((o) => `
222
+ <${n.RADIO_ITEM}
224
223
  ${$.RADIO_ITEM.text}="${o.text}"
225
224
  ${$.RADIO_ITEM.value}="${o.value}">
226
- </${t.RADIO_ITEM}>
225
+ </${n.RADIO_ITEM}>
227
226
  `).join("");
228
227
  return `
229
- <${t.RADIO_BUTTONS}
228
+ <${n.RADIO_BUTTONS}
230
229
  ${$.RADIO_BUTTONS.name}="${e}">
231
230
  ${E}
232
- </${t.RADIO_BUTTONS}>
231
+ </${n.RADIO_BUTTONS}>
233
232
  `;
234
233
  }
235
- _GuCheckbox(e, n) {
234
+ _GuCheckbox(e, t) {
236
235
  return `
237
- <${t.CHECKBOX}
236
+ <${n.CHECKBOX}
238
237
  ${$.CHECKBOX.name}="${e}"
239
- ${$.CHECKBOX.caption}="${n}">
240
- </${t.CHECKBOX}>
238
+ ${$.CHECKBOX.caption}="${t}">
239
+ </${n.CHECKBOX}>
241
240
  `;
242
241
  }
243
242
  }
@@ -0,0 +1,17 @@
1
+ import { ModuleFolderDefaults as n } from "../../enums/defaults.js";
2
+ import { ExtensionBuilder as t, BlocksPanel as r } from "../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
3
+ class u extends r {
4
+ getModulesTabIconName(o) {
5
+ const { key: e } = o, { SAVED_MODULES: l, DEFAULT_MODULES: s } = n;
6
+ if (e.includes(l))
7
+ return "user-profile";
8
+ if (e.includes(s))
9
+ return "modules";
10
+ if (e === "amp_modules")
11
+ return "mail-template";
12
+ }
13
+ }
14
+ const c = new t().withBlocksPanel(u).build();
15
+ export {
16
+ c as default
17
+ };
package/dist/guido.css CHANGED
@@ -1 +1 @@
1
- .gap-16[data-v-6562e38c],.gap-16[data-v-1ccb6d4a]{gap:16px}[data-v-cd76c125] .in-button-v2__wrapper{line-height:0}[data-v-22226124] .in-segments-wrapper__button_selected,[data-v-22226124] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb;color:#0010ac;border-color:#0010ac}[data-v-913a3417] .in-progress-wrapper__progress p span:last-child{display:none!important}.view-options-wrapper[data-v-195ab6d4]{position:relative;display:inline-block}.new-tag[data-v-195ab6d4]{position:absolute;top:-8px;right:-16px;z-index:10}[data-v-195ab6d4] .guido__view-option-selection-desktop svg,[data-v-195ab6d4] .guido__view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-195ab6d4] .in-segments-wrapper__button_selected,[data-v-195ab6d4] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}[data-v-195ab6d4] .in-tooltip-wrapper__icon{cursor:pointer}.editor-toolbar[data-v-173c3a40]{gap:4px}.version-history-item[data-v-ee4b9c3f]{flex-basis:200px}.version-history[data-v-64c52560]{gap:8px}.version-history__toolbar[data-v-64c52560]{gap:4px}.view-options-wrapper[data-v-d405ca59]{position:relative;display:inline-block}.new-tag[data-v-d405ca59]{position:absolute;top:-8px;right:-16px;z-index:10}[data-v-d405ca59] .guido__verion-history-view-option-selection-desktop svg,[data-v-d405ca59] .guido__verion-history-view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-d405ca59] .in-segments-wrapper__button_selected,[data-v-d405ca59] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}[data-v-d405ca59] .in-tooltip-wrapper__icon{cursor:pointer}.editor-actions[data-v-17dd4d8b]{gap:4px}.header-wrapper[data-v-5df46e7a]{min-width:1000px}.guido-loading__wrapper[data-v-07c4b2d8]{height:100%;top:75px!important;bottom:0!important}.guido-editor__wrapper[data-v-890b5336]{position:relative;width:100%;height:calc(100vh - 128px)}.guido-editor__container[data-v-890b5336]{width:100%;height:calc(100vh - 128px)}.guido-editor__no-header[data-v-890b5336]{height:calc(100vh - 75px)}[data-v-293f1c47] .in-breadcrumb-wrapper__links{cursor:pointer}.templates-wrapper[data-v-a86fc486]{gap:16px;grid-template-columns:repeat(3,1fr)}.templates-wrapper .template-wrapper[data-v-a86fc486]{cursor:pointer}.templates-wrapper .template-wrapper .template-container[data-v-a86fc486]{height:274px;padding:2px;transition:none}.templates-wrapper .template-wrapper .template-container.selected[data-v-a86fc486]{padding:1px}.templates-wrapper .template-wrapper .template-container .thumbnail[data-v-a86fc486]{object-fit:cover;transform:scale(1)}[data-v-43c617a7] .guido__verion-history-view-option-selection-desktop svg,[data-v-43c617a7] .guido__verion-history-view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-43c617a7] .in-segments-wrapper__button_selected,[data-v-43c617a7] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}.error-list[data-v-c3fd5d4b]{gap:16px}.desktop-browser-header[data-v-d86c5af5]{height:79px;min-height:79px}.desktop-browser-header__left[data-v-d86c5af5]{-webkit-user-drag:none;height:79px;width:378px}.desktop-browser-header__center[data-v-d86c5af5]{height:79px;background-repeat:repeat-x;background-size:auto 100%;background-position:left top}.desktop-browser-header__right[data-v-d86c5af5]{-webkit-user-drag:none;height:79px;width:112px}.desktop-preview[data-v-988f8da6]{min-width:602px;height:70vh;min-height:583px;border-radius:10px}.desktop-preview iframe[data-v-988f8da6]{min-height:504px}.iframe-wrapper[data-v-e0424e99]{width:258px}.iframe-scaled[data-v-e0424e99]{width:320px;height:124.0310077519%;transform:scale(.80625);transform-origin:top left}.cropped-text[data-v-eb3d05d7]{width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-preview-wrapper__phone[data-v-3f472f96]{width:282px}.mobile-preview-wrapper__phone img[data-v-3f472f96]{object-fit:cover;border-radius:44px}.mobile-preview-wrapper__content[data-v-3f472f96]{width:258px;height:450px;left:12px}[data-v-d3c52b44] .vueperslides__bullets,[data-v-dd1a237a] .vueperslides__bullets{pointer-events:none!important}[data-v-dd1a237a] .vueperslides__parallax-wrapper{height:110px!important}[data-v-a408dcea] .vueperslides__bullets{pointer-events:none!important}[data-v-a408dcea] .vueperslides__parallax-wrapper{height:110px!important}
1
+ .gap-16[data-v-6562e38c],.gap-16[data-v-1ccb6d4a]{gap:16px}[data-v-cd76c125] .in-button-v2__wrapper{line-height:0}[data-v-22226124] .in-segments-wrapper__button_selected,[data-v-22226124] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb;color:#0010ac;border-color:#0010ac}[data-v-913a3417] .in-progress-wrapper__progress p span:last-child{display:none!important}.view-options-wrapper[data-v-195ab6d4]{position:relative;display:inline-block}.new-tag[data-v-195ab6d4]{position:absolute;top:-8px;right:-16px;z-index:10}[data-v-195ab6d4] .guido__view-option-selection-desktop svg,[data-v-195ab6d4] .guido__view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-195ab6d4] .in-segments-wrapper__button_selected,[data-v-195ab6d4] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}[data-v-195ab6d4] .in-tooltip-wrapper__icon{cursor:pointer}.editor-toolbar[data-v-173c3a40]{gap:4px}.version-history-item[data-v-ee4b9c3f]{flex-basis:200px}.version-history[data-v-64c52560]{gap:8px}.version-history__toolbar[data-v-64c52560]{gap:4px}.view-options-wrapper[data-v-d405ca59]{position:relative;display:inline-block}.new-tag[data-v-d405ca59]{position:absolute;top:-8px;right:-16px;z-index:10}[data-v-d405ca59] .guido__verion-history-view-option-selection-desktop svg,[data-v-d405ca59] .guido__verion-history-view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-d405ca59] .in-segments-wrapper__button_selected,[data-v-d405ca59] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}[data-v-d405ca59] .in-tooltip-wrapper__icon{cursor:pointer}.editor-actions[data-v-17dd4d8b]{gap:4px}.header-wrapper[data-v-5c02dcc7]{min-width:1000px}.guido-loading__wrapper[data-v-07c4b2d8]{height:100%;top:75px!important;bottom:0!important}.guido-editor__wrapper[data-v-16abb398]{position:relative;width:100%;height:calc(100vh - 128px)}.guido-editor__container[data-v-16abb398]{width:100%;height:calc(100vh - 128px)}.guido-editor__no-header[data-v-16abb398]{height:calc(100vh - 75px)}[data-v-293f1c47] .in-breadcrumb-wrapper__links{cursor:pointer}.templates-wrapper[data-v-a86fc486]{gap:16px;grid-template-columns:repeat(3,1fr)}.templates-wrapper .template-wrapper[data-v-a86fc486]{cursor:pointer}.templates-wrapper .template-wrapper .template-container[data-v-a86fc486]{height:274px;padding:2px;transition:none}.templates-wrapper .template-wrapper .template-container.selected[data-v-a86fc486]{padding:1px}.templates-wrapper .template-wrapper .template-container .thumbnail[data-v-a86fc486]{object-fit:cover;transform:scale(1)}[data-v-43c617a7] .guido__verion-history-view-option-selection-desktop svg,[data-v-43c617a7] .guido__verion-history-view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-43c617a7] .in-segments-wrapper__button_selected,[data-v-43c617a7] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}.error-list[data-v-c3fd5d4b]{gap:16px}.desktop-browser-header[data-v-d86c5af5]{height:79px;min-height:79px}.desktop-browser-header__left[data-v-d86c5af5]{-webkit-user-drag:none;height:79px;width:378px}.desktop-browser-header__center[data-v-d86c5af5]{height:79px;background-repeat:repeat-x;background-size:auto 100%;background-position:left top}.desktop-browser-header__right[data-v-d86c5af5]{-webkit-user-drag:none;height:79px;width:112px}.desktop-preview[data-v-988f8da6]{min-width:602px;height:70vh;min-height:583px;border-radius:10px}.desktop-preview iframe[data-v-988f8da6]{min-height:504px}.iframe-wrapper[data-v-e0424e99]{width:258px}.iframe-scaled[data-v-e0424e99]{width:320px;height:124.0310077519%;transform:scale(.80625);transform-origin:top left}.cropped-text[data-v-eb3d05d7]{width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-preview-wrapper__phone[data-v-3f472f96]{width:282px}.mobile-preview-wrapper__phone img[data-v-3f472f96]{object-fit:cover;border-radius:44px}.mobile-preview-wrapper__content[data-v-3f472f96]{width:258px;height:450px;left:12px}[data-v-d3c52b44] .vueperslides__bullets,[data-v-dd1a237a] .vueperslides__bullets{pointer-events:none!important}[data-v-dd1a237a] .vueperslides__parallax-wrapper{height:110px!important}[data-v-a408dcea] .vueperslides__bullets{pointer-events:none!important}[data-v-a408dcea] .vueperslides__parallax-wrapper{height:110px!important}