@useinsider/guido 1.0.3-beta.c4d9021 → 1.0.3-beta.c600a63

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 (167) hide show
  1. package/README.md +3 -0
  2. package/dist/components/Guido.vue.js +1 -1
  3. package/dist/components/organisms/LoadingWrapper.vue.js +1 -1
  4. package/dist/components/organisms/header/RightSlot.vue2.js +13 -13
  5. package/dist/components/organisms/onboarding/ItemsOnboarding.vue.js +21 -0
  6. package/dist/components/organisms/onboarding/ItemsOnboarding.vue2.js +99 -0
  7. package/dist/components/organisms/onboarding/OnboardingWrapper.vue2.js +20 -18
  8. package/dist/composables/useActionsApi.js +1 -1
  9. package/dist/composables/useBlocksConfig.js +1 -2
  10. package/dist/composables/useHtmlCompiler.js +15 -13
  11. package/dist/composables/useHtmlValidator.js +36 -35
  12. package/dist/composables/useStripo.js +32 -28
  13. package/dist/config/compiler/itemsCompilerRules.js +14 -0
  14. package/dist/enums/defaults.js +5 -4
  15. package/dist/enums/extensions/recommendationBlock.js +2 -2
  16. package/dist/enums/onboarding.js +7 -3
  17. package/dist/extensions/Blocks/Checkbox/block.js +5 -2
  18. package/dist/extensions/Blocks/Checkbox/control.js +15 -14
  19. package/dist/extensions/Blocks/Checkbox/template.js +14 -9
  20. package/dist/extensions/Blocks/Items/block.js +67 -0
  21. package/dist/extensions/Blocks/Items/controls/button/link.js +68 -0
  22. package/dist/extensions/Blocks/Items/controls/cardComposition.js +193 -0
  23. package/dist/extensions/Blocks/Items/controls/image/link.js +68 -0
  24. package/dist/extensions/Blocks/Items/controls/index.js +217 -0
  25. package/dist/extensions/Blocks/Items/controls/name/trimming.js +70 -0
  26. package/dist/extensions/Blocks/Items/controls/price/currencyLocation.js +107 -0
  27. package/dist/extensions/Blocks/Items/controls/price/currencySymbol.js +123 -0
  28. package/dist/extensions/Blocks/Items/controls/price/formattedPrice.js +76 -0
  29. package/dist/extensions/Blocks/Items/controls/price/hideDiscount.js +61 -0
  30. package/dist/extensions/Blocks/Items/controls/price/priceOrientation.js +92 -0
  31. package/dist/extensions/Blocks/Items/controls/settingsControl.js +316 -0
  32. package/dist/extensions/Blocks/Items/enums/controlEnums.js +5 -0
  33. package/dist/extensions/Blocks/Items/enums/productEnums.js +274 -0
  34. package/dist/extensions/Blocks/Items/enums/settingsEnums.js +77 -0
  35. package/dist/extensions/Blocks/Items/extension.js +20 -0
  36. package/dist/extensions/Blocks/Items/iconsRegistry.js +32 -0
  37. package/dist/extensions/Blocks/Items/items.css.js +23 -0
  38. package/dist/extensions/Blocks/Items/layouts/horizontal.html.js +62 -0
  39. package/dist/extensions/Blocks/Items/layouts/vertical.html.js +72 -0
  40. package/dist/extensions/Blocks/Items/settingsPanel.js +132 -0
  41. package/dist/extensions/Blocks/Items/store/items-block.js +75 -0
  42. package/dist/extensions/Blocks/Items/template.js +195 -0
  43. package/dist/extensions/Blocks/Items/utils/configBlockUtils.js +17 -0
  44. package/dist/extensions/Blocks/Items/utils/syncAttributeFromConfigBlock.js +28 -0
  45. package/dist/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.js +76 -0
  46. package/dist/extensions/Blocks/Items/utils/updateAttributes.js +46 -0
  47. package/dist/extensions/Blocks/RadioButton/block.js +5 -2
  48. package/dist/extensions/Blocks/RadioButton/control.js +18 -17
  49. package/dist/extensions/Blocks/RadioButton/template.js +18 -9
  50. package/dist/extensions/Blocks/Recommendation/iconsRegistry.js +43 -43
  51. package/dist/extensions/Blocks/Unsubscribe/block.js +45 -41
  52. package/dist/extensions/Blocks/common-control.js +174 -110
  53. package/dist/extensions/Blocks/controlFactories.js +223 -0
  54. package/dist/guido.css +1 -1
  55. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +213 -168
  56. package/dist/node_modules/lodash-es/_DataView.js +6 -0
  57. package/dist/node_modules/lodash-es/_Promise.js +6 -0
  58. package/dist/node_modules/lodash-es/_Set.js +6 -0
  59. package/dist/node_modules/lodash-es/_SetCache.js +13 -0
  60. package/dist/node_modules/lodash-es/_WeakMap.js +6 -0
  61. package/dist/node_modules/lodash-es/_arrayFilter.js +10 -0
  62. package/dist/node_modules/lodash-es/_arrayLikeKeys.js +13 -12
  63. package/dist/node_modules/lodash-es/_arrayMap.js +8 -0
  64. package/dist/node_modules/lodash-es/_arrayPush.js +8 -0
  65. package/dist/node_modules/lodash-es/_arraySome.js +9 -0
  66. package/dist/node_modules/lodash-es/_baseEach.js +6 -0
  67. package/dist/node_modules/lodash-es/_baseFlatten.js +13 -0
  68. package/dist/node_modules/lodash-es/_baseForOwn.js +8 -0
  69. package/dist/node_modules/lodash-es/_baseGet.js +11 -0
  70. package/dist/node_modules/lodash-es/_baseGetAllKeys.js +9 -0
  71. package/dist/node_modules/lodash-es/_baseHasIn.js +6 -0
  72. package/dist/node_modules/lodash-es/_baseIsEqual.js +8 -0
  73. package/dist/node_modules/lodash-es/_baseIsEqualDeep.js +32 -0
  74. package/dist/node_modules/lodash-es/_baseIsMatch.js +29 -0
  75. package/dist/node_modules/lodash-es/_baseIteratee.js +11 -0
  76. package/dist/node_modules/lodash-es/_baseKeys.js +14 -0
  77. package/dist/node_modules/lodash-es/_baseMap.js +11 -0
  78. package/dist/node_modules/lodash-es/_baseMatches.js +12 -0
  79. package/dist/node_modules/lodash-es/_baseMatchesProperty.js +17 -0
  80. package/dist/node_modules/lodash-es/_baseProperty.js +8 -0
  81. package/dist/node_modules/lodash-es/_basePropertyDeep.js +9 -0
  82. package/dist/node_modules/lodash-es/_baseRange.js +9 -0
  83. package/dist/node_modules/lodash-es/_baseToString.js +18 -0
  84. package/dist/node_modules/lodash-es/_baseTrim.js +8 -0
  85. package/dist/node_modules/lodash-es/_cacheHas.js +6 -0
  86. package/dist/node_modules/lodash-es/_castPath.js +10 -0
  87. package/dist/node_modules/lodash-es/_createBaseEach.js +15 -0
  88. package/dist/node_modules/lodash-es/_createRange.js +11 -0
  89. package/dist/node_modules/lodash-es/_equalArrays.js +40 -0
  90. package/dist/node_modules/lodash-es/_equalByTag.js +45 -0
  91. package/dist/node_modules/lodash-es/_equalObjects.js +36 -0
  92. package/dist/node_modules/lodash-es/_getAllKeys.js +9 -0
  93. package/dist/node_modules/lodash-es/_getMatchData.js +12 -0
  94. package/dist/node_modules/lodash-es/_getSymbols.js +10 -0
  95. package/dist/node_modules/lodash-es/_getTag.js +28 -0
  96. package/dist/node_modules/lodash-es/_hasPath.js +19 -0
  97. package/dist/node_modules/lodash-es/_isFlattenable.js +10 -0
  98. package/dist/node_modules/lodash-es/_isKey.js +12 -0
  99. package/dist/node_modules/lodash-es/_isStrictComparable.js +7 -0
  100. package/dist/node_modules/lodash-es/_mapToArray.js +9 -0
  101. package/dist/node_modules/lodash-es/_matchesStrictComparable.js +8 -0
  102. package/dist/node_modules/lodash-es/_memoizeCapped.js +11 -0
  103. package/dist/node_modules/lodash-es/_nativeKeys.js +5 -0
  104. package/dist/node_modules/lodash-es/_setCacheAdd.js +7 -0
  105. package/dist/node_modules/lodash-es/_setCacheHas.js +6 -0
  106. package/dist/node_modules/lodash-es/_setToArray.js +9 -0
  107. package/dist/node_modules/lodash-es/_stringToPath.js +10 -0
  108. package/dist/node_modules/lodash-es/_toKey.js +10 -0
  109. package/dist/node_modules/lodash-es/_trimmedEndIndex.js +9 -0
  110. package/dist/node_modules/lodash-es/flatMap.js +8 -0
  111. package/dist/node_modules/lodash-es/get.js +8 -0
  112. package/dist/node_modules/lodash-es/hasIn.js +8 -0
  113. package/dist/node_modules/lodash-es/isSymbol.js +9 -0
  114. package/dist/node_modules/lodash-es/keys.js +9 -0
  115. package/dist/node_modules/lodash-es/keysIn.js +3 -3
  116. package/dist/node_modules/lodash-es/map.js +11 -0
  117. package/dist/node_modules/lodash-es/property.js +10 -0
  118. package/dist/node_modules/lodash-es/range.js +5 -0
  119. package/dist/node_modules/lodash-es/stubArray.js +6 -0
  120. package/dist/node_modules/lodash-es/toFinite.js +14 -0
  121. package/dist/node_modules/lodash-es/toNumber.js +22 -0
  122. package/dist/node_modules/lodash-es/toString.js +7 -0
  123. package/dist/package.json.js +1 -1
  124. package/dist/services/recommendationApi.js +13 -19
  125. package/dist/services/stripoApi.js +31 -26
  126. package/dist/src/components/organisms/onboarding/ItemsOnboarding.vue.d.ts +2 -0
  127. package/dist/src/config/compiler/itemsCompilerRules.d.ts +2 -0
  128. package/dist/src/enums/defaults.d.ts +1 -0
  129. package/dist/src/enums/onboarding.d.ts +4 -0
  130. package/dist/src/extensions/Blocks/Checkbox/block.d.ts +1 -0
  131. package/dist/src/extensions/Blocks/Checkbox/template.d.ts +1 -1
  132. package/dist/src/extensions/Blocks/Items/block.d.ts +27 -0
  133. package/dist/src/extensions/Blocks/Items/controls/button/link.d.ts +14 -0
  134. package/dist/src/extensions/Blocks/Items/controls/cardComposition.d.ts +33 -0
  135. package/dist/src/extensions/Blocks/Items/controls/image/link.d.ts +14 -0
  136. package/dist/src/extensions/Blocks/Items/controls/index.d.ts +501 -0
  137. package/dist/src/extensions/Blocks/Items/controls/name/trimming.d.ts +14 -0
  138. package/dist/src/extensions/Blocks/Items/controls/price/currencyLocation.d.ts +19 -0
  139. package/dist/src/extensions/Blocks/Items/controls/price/currencySymbol.d.ts +21 -0
  140. package/dist/src/extensions/Blocks/Items/controls/price/formattedPrice.d.ts +14 -0
  141. package/dist/src/extensions/Blocks/Items/controls/price/hideDiscount.d.ts +13 -0
  142. package/dist/src/extensions/Blocks/Items/controls/price/priceOrientation.d.ts +15 -0
  143. package/dist/src/extensions/Blocks/Items/controls/settingsControl.d.ts +48 -0
  144. package/dist/src/extensions/Blocks/Items/enums/controlEnums.d.ts +62 -0
  145. package/dist/src/extensions/Blocks/Items/enums/productEnums.d.ts +163 -0
  146. package/dist/src/extensions/Blocks/Items/enums/settingsEnums.d.ts +50 -0
  147. package/dist/src/extensions/Blocks/Items/extension.d.ts +2 -0
  148. package/dist/src/extensions/Blocks/Items/iconsRegistry.d.ts +4 -0
  149. package/dist/src/extensions/Blocks/Items/settingsPanel.d.ts +4 -0
  150. package/dist/src/extensions/Blocks/Items/store/items-block.d.ts +43 -0
  151. package/dist/src/extensions/Blocks/Items/template.d.ts +24 -0
  152. package/dist/src/extensions/Blocks/Items/utils/configBlockUtils.d.ts +23 -0
  153. package/dist/src/extensions/Blocks/Items/utils/syncAttributeFromConfigBlock.d.ts +32 -0
  154. package/dist/src/extensions/Blocks/Items/utils/syncAttributesFromConfigBlock.d.ts +50 -0
  155. package/dist/src/extensions/Blocks/Items/utils/updateAttributes.d.ts +8 -0
  156. package/dist/src/extensions/Blocks/RadioButton/block.d.ts +1 -0
  157. package/dist/src/extensions/Blocks/RadioButton/template.d.ts +1 -1
  158. package/dist/src/extensions/Blocks/Unsubscribe/block.d.ts +3 -4
  159. package/dist/src/extensions/Blocks/common-control.d.ts +44 -7
  160. package/dist/src/extensions/Blocks/controlFactories.d.ts +312 -0
  161. package/dist/src/stores/onboarding.d.ts +334 -0
  162. package/dist/src/utils/pairProductVariables.d.ts +7 -0
  163. package/dist/static/styles/customEditorStyle.css.js +1 -1
  164. package/dist/stores/onboarding.js +20 -12
  165. package/dist/utils/genericUtil.js +16 -17
  166. package/dist/utils/pairProductVariables.js +136 -0
  167. package/package.json +6 -4
@@ -0,0 +1,132 @@
1
+ import { SettingsPanelRegistry as O, SettingsPanelTab as T, SettingsTab as N } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
+ import { BLOCK_ID as R } from "./block.js";
3
+ import { COMPOSITION_CONTROL_BLOCK_ID as S } from "./controls/cardComposition.js";
4
+ import { CONTROL_BLOCK_ID as A } from "./controls/settingsControl.js";
5
+ import { ItemsBlockId as E, ItemsBlockControlId as I } from "./enums/controlEnums.js";
6
+ class U extends O {
7
+ registerBlockControls(_) {
8
+ _[R] = [
9
+ new T(
10
+ N.SETTINGS,
11
+ [
12
+ A
13
+ ]
14
+ ),
15
+ new T(
16
+ "Card Composition",
17
+ [
18
+ S
19
+ ]
20
+ ).withLabel("Card Composition")
21
+ ], _[E.ORIGINAL_PRICE] = [
22
+ new T(
23
+ N.SETTINGS,
24
+ [
25
+ I.ORIGINAL_PRICE_STYLE,
26
+ I.ORIGINAL_PRICE_ALIGN,
27
+ I.ORIGINAL_PRICE_PADDINGS
28
+ ]
29
+ ),
30
+ new T(
31
+ N.STYLES,
32
+ [
33
+ I.ORIGINAL_PRICE_COLOR,
34
+ I.ORIGINAL_PRICE_FONT_FAMILY,
35
+ I.ORIGINAL_PRICE_SIZE
36
+ ]
37
+ )
38
+ ], _[E.PRICE] = [
39
+ new T(
40
+ N.SETTINGS,
41
+ [
42
+ I.PRICE_STYLE,
43
+ I.PRICE_ALIGN,
44
+ I.PRICE_HIDE_DISCOUNT,
45
+ I.PRICE_FORMATTED_PRICE,
46
+ I.PRICE_CURRENCY_SYMBOL,
47
+ I.PRICE_CURRENCY_LOCATION,
48
+ I.PRICE_ORIENTATION,
49
+ I.PRICE_PADDINGS
50
+ ]
51
+ ),
52
+ new T(
53
+ N.STYLES,
54
+ [
55
+ I.PRICE_COLOR,
56
+ I.PRICE_FONT_FAMILY,
57
+ I.PRICE_SIZE
58
+ ]
59
+ )
60
+ ], _[E.NAME] = [
61
+ new T(
62
+ N.SETTINGS,
63
+ [
64
+ I.NAME_STYLE,
65
+ I.NAME_ALIGN,
66
+ I.NAME_TRIMMING,
67
+ I.NAME_PADDINGS
68
+ ]
69
+ ),
70
+ new T(
71
+ N.STYLES,
72
+ [
73
+ I.NAME_FONT_FAMILY,
74
+ I.NAME_SIZE,
75
+ I.NAME_COLOR
76
+ ]
77
+ )
78
+ ], _[E.QUANTITY] = [
79
+ new T(
80
+ N.SETTINGS,
81
+ [
82
+ I.QUANTITY_FONT_FAMILY,
83
+ I.QUANTITY_STYLE
84
+ ]
85
+ ),
86
+ new T(
87
+ N.STYLES,
88
+ [
89
+ I.QUANTITY_ALIGN,
90
+ I.QUANTITY_SIZE,
91
+ I.QUANTITY_COLOR,
92
+ I.QUANTITY_PADDINGS
93
+ ]
94
+ )
95
+ ], _[E.IMAGE] = [
96
+ new T(
97
+ N.SETTINGS,
98
+ [
99
+ I.IMAGE_LINK,
100
+ I.IMAGE_SIZE,
101
+ I.IMAGE_MARGINS
102
+ ]
103
+ )
104
+ ], _[E.BUTTON] = [
105
+ new T(
106
+ N.SETTINGS,
107
+ [
108
+ I.BUTTON_LINK,
109
+ I.BUTTON_TEXT,
110
+ I.BUTTON_ALIGN,
111
+ I.BUTTON_PADDINGS,
112
+ I.BUTTON_MARGINS
113
+ ]
114
+ ),
115
+ new T(
116
+ N.STYLES,
117
+ [
118
+ I.BUTTON_COLOR,
119
+ I.BUTTON_FONT_FAMILY,
120
+ I.BUTTON_TEXT_SIZE,
121
+ I.BUTTON_TEXT_STYLE_AND_FONT_COLOR,
122
+ I.BUTTON_FIT_TO_CONTENT,
123
+ I.BUTTON_BORDER_RADIUS,
124
+ I.BUTTON_BORDER
125
+ ]
126
+ )
127
+ ];
128
+ }
129
+ }
130
+ export {
131
+ U as SettingsPanel
132
+ };
@@ -0,0 +1,75 @@
1
+ import { defineStore as r } from "pinia";
2
+ import { DefaultConfigValues as e } from "../enums/settingsEnums.js";
3
+ const n = (t) => t.replace(/Url\}/, "Image}"), o = (t) => t.replace(/Image\}/, "Url}"), i = () => {
4
+ const t = e.cartItemsSelectControlValue;
5
+ return {
6
+ itemsType: e.itemsType,
7
+ itemIds: t,
8
+ imageLink: n(t),
9
+ buttonLink: o(t),
10
+ orientation: e.cardOrientationControlValue,
11
+ nameTrimming: !0,
12
+ hideDiscount: !1,
13
+ currencySymbol: "USD",
14
+ currencyLocation: "0",
15
+ formattedPrice: !0,
16
+ priceOrientation: "horizontal",
17
+ templateData: {
18
+ imageSrc: "",
19
+ name: "",
20
+ price: "",
21
+ originalPrice: "",
22
+ quantity: "",
23
+ button: ""
24
+ }
25
+ };
26
+ }, m = r("guidoItemsBlock", {
27
+ state: () => i(),
28
+ actions: {
29
+ setItemsType(t) {
30
+ this.itemsType = t;
31
+ },
32
+ setItemIds(t) {
33
+ this.itemIds = t, this.imageLink = n(t), this.buttonLink = o(t);
34
+ },
35
+ setImageLink(t) {
36
+ this.imageLink = t;
37
+ },
38
+ setButtonLink(t) {
39
+ this.buttonLink = t;
40
+ },
41
+ setOrientation(t) {
42
+ this.orientation = t;
43
+ },
44
+ setNameTrimming(t) {
45
+ this.nameTrimming = t;
46
+ },
47
+ setHideDiscount(t) {
48
+ this.hideDiscount = t;
49
+ },
50
+ setCurrencySymbol(t) {
51
+ this.currencySymbol = t;
52
+ },
53
+ setCurrencyLocation(t) {
54
+ this.currencyLocation = t;
55
+ },
56
+ setFormattedPrice(t) {
57
+ this.formattedPrice = t;
58
+ },
59
+ setPriceOrientation(t) {
60
+ this.priceOrientation = t;
61
+ },
62
+ setTemplateData(t) {
63
+ this.templateData = t;
64
+ },
65
+ updateFromAttributes(t) {
66
+ t.itemsType && (this.itemsType = t.itemsType), t.itemIds && this.setItemIds(t.itemIds), t.orientation && (this.orientation = t.orientation);
67
+ },
68
+ reset() {
69
+ Object.assign(this, i());
70
+ }
71
+ }
72
+ });
73
+ export {
74
+ m as useItemsBlockStore
75
+ };
@@ -0,0 +1,195 @@
1
+ import { BlockType as l, BlockAttr as _ } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
+ import { ItemsBlockId as T } from "./enums/controlEnums.js";
3
+ import { productPairs as i, templateFirstLine as N } from "./enums/productEnums.js";
4
+ import { ItemInCartOptions as f, SETTINGS_ENUMS as O, DefaultConfigValues as P } from "./enums/settingsEnums.js";
5
+ import B from "./layouts/horizontal.html.js";
6
+ import g from "./layouts/vertical.html.js";
7
+ let [C] = i.PAIRS_FOR_EXTENSION.imageSrc.CART_ITEMS.DEFAULT, [A] = i.PAIRS_FOR_EXTENSION.name.CART_ITEMS.DEFAULT, [p] = i.PAIRS_FOR_EXTENSION.price.CART_ITEMS.DEFAULT_PRICE_FORMATTED, [I] = i.PAIRS_FOR_EXTENSION.originalPrice.CART_ITEMS.DEFAULT_PRICE_FORMATTED, [u] = i.PAIRS_FOR_EXTENSION.quantity.CART_ITEMS.DEFAULT;
8
+ const h = (a, t) => `
9
+ <${l.BLOCK_IMAGE}
10
+ ${_.BLOCK_IMAGE.src}="${C}"
11
+ ${_.BLOCK_IMAGE.alt}="${A}"
12
+ ${_.BLOCK_IMAGE.href}="#!"
13
+ ${_.BLOCK_IMAGE.width}=${P.productImageWidth}
14
+ esd-extension-block-id="${T.IMAGE}"
15
+ data-slot-1
16
+ product-attr="imageSrc"
17
+ data-type="${a}"
18
+ data-number="${t}"
19
+ />
20
+ `, F = (a) => `
21
+ <${l.BLOCK_TEXT}
22
+ width="100%"
23
+ align="center"
24
+ class="es-p10"
25
+ data-type="${a}"
26
+ esd-extension-block-id="${T.NAME}"
27
+ >
28
+ <p contenteditable="false">
29
+ <a
30
+ href="#!"
31
+ style="
32
+ text-decoration:none;
33
+ font-size: inherit;
34
+ font-weight: inherit;
35
+ line-height: inherit;
36
+ font-family: inherit;
37
+ color: inherit;
38
+ display: block;
39
+ word-wrap:break-word;
40
+ white-space: nowrap;
41
+ width: 520px;
42
+ overflow: hidden;
43
+ text-overflow: ellipsis;
44
+ "
45
+ product-attr="name"
46
+ data-slot-2
47
+ width="100%">
48
+ ${A}
49
+ </a>
50
+ </p>
51
+ </${l.BLOCK_TEXT}>
52
+ `, S = (a, t, o, e, c) => {
53
+ let n = p;
54
+ if (e && e.trim()) {
55
+ const E = `&nbsp;${e.trim()}&nbsp;`;
56
+ n = (c || "0") === "1" ? `${p}${E}` : `${E}${p}`;
57
+ }
58
+ const r = c === "1" ? "after" : "before", d = `data-formated="${o ? "true" : "false"}"`, s = `data-curency="${r}"`;
59
+ return `
60
+ <${l.BLOCK_TEXT}
61
+ esd-extension-block-id="${T.PRICE}"
62
+ class="items-block-price"
63
+ width="100%"
64
+ align="center"
65
+ >
66
+ <p
67
+ product-attr="price"
68
+ contenteditable="false"
69
+ data-slot-4
70
+ data-type="${a}"
71
+ data-number="${t}"
72
+ ${d}
73
+ ${s}
74
+ ${e ? `data-currency_symbol="${e}"` : ""}
75
+ >
76
+ ${n}
77
+ </p>
78
+ </${l.BLOCK_TEXT}>
79
+ `;
80
+ }, L = (a, t, o, e, c) => {
81
+ let n = I;
82
+ if (e && e.trim()) {
83
+ const E = `&nbsp;${e.trim()}&nbsp;`;
84
+ n = (c || "0") === "1" ? `${I}${E}` : `${E}${I}`;
85
+ }
86
+ const r = c === "1" ? "after" : "before", d = `data-formated="${o ? "true" : "false"}"`, s = `data-curency="${r}"`;
87
+ return `
88
+ <${l.BLOCK_TEXT}
89
+ class="items-block-price"
90
+ esd-extension-block-id="${T.ORIGINAL_PRICE}"
91
+ width="100%"
92
+ align="center"
93
+ >
94
+ <p
95
+ product-attr="originalPrice"
96
+ contenteditable="false"
97
+ data-slot-5
98
+ style="color: #cc0000"
99
+ data-type="${a}"
100
+ data-number="${t}"
101
+ ${d}
102
+ ${s}
103
+ ${e ? `data-currency_symbol="${e}"` : ""}
104
+ >
105
+ <s>${n}</s>
106
+ </p>
107
+ </${l.BLOCK_TEXT}>
108
+ `;
109
+ }, b = () => `
110
+ <${l.BLOCK_TEXT}
111
+ width="100%"
112
+ align="center"
113
+ class="es-p10"
114
+ esd-extension-block-id="${T.QUANTITY}"
115
+ >
116
+ <p
117
+ product-attr="quantity"
118
+ data-slot-3
119
+ contenteditable="false"
120
+ width="100%">
121
+ ${u}
122
+ </p>
123
+ </${l.BLOCK_TEXT}>
124
+ `, U = (a, t) => `
125
+ <${l.BLOCK_BUTTON}
126
+ width="100%"
127
+ class="ins-button"
128
+ name="buy-button"
129
+ caption="Buy"
130
+ align="center"
131
+ esd-extension-block-id="${T.BUTTON}"
132
+ product-attr="button"
133
+ data-slot-6
134
+ data-type="${a}"
135
+ data-number="${t}"
136
+ >Buy
137
+ </${l.BLOCK_BUTTON}>
138
+ `, D = () => `
139
+ <esd-config-block style="display: none;"></esd-config-block>
140
+ `, R = (a, t, o, e, c, n, r, d) => {
141
+ const $ = `${`data-type="${t}" data-number="${o}"`} data-orientation="${e}"`;
142
+ return a.replace(
143
+ /<td([^>]*class="[^"]*ins-product-td[^"]*"[^>]*)>/,
144
+ `<td$1 ${$}>`
145
+ ).replace("{-{-TEMPLATE_FIRST_LINE-}-}", N).replace("{-{-PRODUCT_IMAGE-}-}", h(t, o)).replace("{-{-PRODUCT_NAME-}-}", F(t)).replaceAll(
146
+ "{-{-PRODUCT_PRICE-}-}",
147
+ S(t, o, c, n, r)
148
+ ).replaceAll(
149
+ "{-{-PRODUCT_ORIGINAL_PRICE-}-}",
150
+ L(
151
+ t,
152
+ o,
153
+ c,
154
+ n,
155
+ r
156
+ )
157
+ ).replace("{-{-PRODUCT_QUANTITY-}-}", b()).replace("{-{-PRODUCT_BUTTON-}-}", U(t, o)).replace("{-{-CONFIG_BLOCK-}-}", D());
158
+ };
159
+ function G({
160
+ orientation: a,
161
+ itemsType: t = O.ITEMS_TYPE.CART_ITEMS,
162
+ itemId: o,
163
+ currencySymbol: e,
164
+ currencyLocation: c,
165
+ formattedPrice: n = !0
166
+ }) {
167
+ const r = f[t].findIndex((s) => s.value === o);
168
+ let d = "1";
169
+ if (r >= 0)
170
+ d = String(r + 1);
171
+ else if (o) {
172
+ const s = o.match(/\((\d+)\)/);
173
+ s && s[1] && ([, d] = s);
174
+ }
175
+ return C = i.PAIRS_FOR_EXTENSION.imageSrc[t].DEFAULT[r >= 0 ? r : 0], A = i.PAIRS_FOR_EXTENSION.name[t].DEFAULT[r >= 0 ? r : 0], p = n ? i.PAIRS_FOR_EXTENSION.price[t].DEFAULT_PRICE_FORMATTED : i.PAIRS_FOR_EXTENSION.price[t].DEFAULT_PRICE, I = n ? i.PAIRS_FOR_EXTENSION.originalPrice[t].DEFAULT_PRICE_FORMATTED : i.PAIRS_FOR_EXTENSION.originalPrice[t].DEFAULT_PRICE, u = i.PAIRS_FOR_EXTENSION.quantity[t].DEFAULT, a === O.ORIENTATION.VERTICAL ? R(
176
+ g,
177
+ t,
178
+ d,
179
+ a,
180
+ n,
181
+ e,
182
+ c
183
+ ) : R(
184
+ B,
185
+ t,
186
+ d,
187
+ a,
188
+ n,
189
+ e,
190
+ c
191
+ );
192
+ }
193
+ export {
194
+ G as getDefaultTemplate
195
+ };
@@ -0,0 +1,17 @@
1
+ function r(t) {
2
+ if (!t)
3
+ return null;
4
+ const n = t.closest(".items-block-v2");
5
+ return n ? n.querySelector("esd-config-block") : null;
6
+ }
7
+ function o(t, n = !1) {
8
+ return t == null ? n : t === "1" || t === "true";
9
+ }
10
+ function e(t, n = "") {
11
+ return t || n;
12
+ }
13
+ export {
14
+ o as attributeToBoolean,
15
+ e as attributeToString,
16
+ r as getConfigBlock
17
+ };
@@ -0,0 +1,28 @@
1
+ import { configAttributes as i } from "../enums/productEnums.js";
2
+ import { getConfigBlock as c, attributeToBoolean as u, attributeToString as a } from "./configBlockUtils.js";
3
+ function l(r, t) {
4
+ const e = c(r);
5
+ if (!e)
6
+ return;
7
+ const o = e.getAttribute(i[t.attributeName]), n = t.converter(o);
8
+ t.storeSetter(n);
9
+ }
10
+ function b(r, t, e = !1) {
11
+ return {
12
+ attributeName: r,
13
+ storeSetter: t,
14
+ converter: (o) => u(o, e)
15
+ };
16
+ }
17
+ function s(r, t, e = "") {
18
+ return {
19
+ attributeName: r,
20
+ storeSetter: t,
21
+ converter: (o) => a(o, e)
22
+ };
23
+ }
24
+ export {
25
+ b as createBooleanSyncConfig,
26
+ s as createStringSyncConfig,
27
+ l as syncAttributeFromConfigBlock
28
+ };
@@ -0,0 +1,76 @@
1
+ import { useItemsBlockStore as e } from "../store/items-block.js";
2
+ import { syncAttributeFromConfigBlock as r, createBooleanSyncConfig as i, createStringSyncConfig as s } from "./syncAttributeFromConfigBlock.js";
3
+ function m(t) {
4
+ const o = e(), n = i(
5
+ "PRODUCT_NAME_TRIMMING",
6
+ (c) => o.setNameTrimming(c),
7
+ !1
8
+ );
9
+ r(t, n);
10
+ }
11
+ function f(t) {
12
+ const o = e(), n = i(
13
+ "PRODUCT_PRICE_HIDE_DISCOUNT",
14
+ (c) => o.setHideDiscount(c),
15
+ !1
16
+ );
17
+ r(t, n);
18
+ }
19
+ function R(t) {
20
+ const o = e(), n = i(
21
+ "PRODUCT_PRICE_FORMATTED",
22
+ (c) => o.setFormattedPrice(c),
23
+ !0
24
+ );
25
+ r(t, n);
26
+ }
27
+ function O(t) {
28
+ const o = e(), n = s(
29
+ "PRODUCT_PRICE_CURRENCY_SYMBOL",
30
+ (c) => o.setCurrencySymbol(c),
31
+ ""
32
+ );
33
+ r(t, n);
34
+ }
35
+ function _(t) {
36
+ const o = e(), n = s(
37
+ "PRODUCT_PRICE_CURRENCY_LOCATION",
38
+ (c) => o.setCurrencyLocation(c),
39
+ "0"
40
+ );
41
+ r(t, n);
42
+ }
43
+ function I(t) {
44
+ const o = e(), n = s(
45
+ "PRODUCT_BUTTON_LINK",
46
+ (c) => o.setButtonLink(c),
47
+ ""
48
+ );
49
+ r(t, n);
50
+ }
51
+ function T(t) {
52
+ const o = e(), n = s(
53
+ "PRODUCT_IMAGE_LINK",
54
+ (c) => o.setImageLink(c),
55
+ ""
56
+ );
57
+ r(t, n);
58
+ }
59
+ function y(t) {
60
+ const o = e(), n = s(
61
+ "PRODUCT_ORIGINAL_PRICE_CONTROL_ORIENTATION",
62
+ (c) => o.setPriceOrientation(c),
63
+ "horizontal"
64
+ );
65
+ r(t, n);
66
+ }
67
+ export {
68
+ I as syncButtonLinkFromAttributes,
69
+ _ as syncCurrencyLocationFromAttributes,
70
+ O as syncCurrencySymbolFromAttributes,
71
+ R as syncFormattedPriceFromAttributes,
72
+ f as syncHideDiscountFromAttributes,
73
+ T as syncImageLinkFromAttributes,
74
+ m as syncNameTrimmingFromAttributes,
75
+ y as syncPriceOrientationFromAttributes
76
+ };
@@ -0,0 +1,46 @@
1
+ import { ModificationDescription as p } from "../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
+ import { configAttributes as t } from "../enums/productEnums.js";
3
+ import { DefaultConfigValues as i } from "../enums/settingsEnums.js";
4
+ import { useItemsBlockStore as s } from "../store/items-block.js";
5
+ import { getConfigBlock as P } from "./configBlockUtils.js";
6
+ function M(n, O) {
7
+ const e = P(n);
8
+ if (!e)
9
+ return;
10
+ const c = s(), {
11
+ itemsType: r,
12
+ itemIds: C,
13
+ orientation: T,
14
+ nameTrimming: _,
15
+ hideDiscount: E,
16
+ formattedPrice: R,
17
+ currencySymbol: N,
18
+ currencyLocation: m,
19
+ priceOrientation: I,
20
+ buttonLink: a,
21
+ imageLink: f
22
+ } = c, u = {
23
+ "data-source": r,
24
+ [t.TYPE]: r,
25
+ [t.ITEMS_INDEX_SELECT_CONTROL_VALUE]: C,
26
+ [t.ORIENTATION]: T,
27
+ [t.PRODUCT_NAME_TRIMMING]: _ ? "1" : "0",
28
+ [t.PRODUCT_PRICE_HIDE_DISCOUNT]: E ? "1" : "0",
29
+ [t.PRODUCT_PRICE_FORMATTED]: R ? "1" : "0",
30
+ [t.PRODUCT_PRICE_CURRENCY_SYMBOL]: N || "",
31
+ [t.PRODUCT_PRICE_CURRENCY_LOCATION]: m || "0",
32
+ [t.PRODUCT_ORIGINAL_PRICE_CONTROL_ORIENTATION]: I || "horizontal",
33
+ [t.PRODUCT_BUTTON_LINK]: a || "",
34
+ [t.PRODUCT_IMAGE_LINK]: f || "",
35
+ [t.NAME_CONTROL_ENABLED]: i.productNameControlEnabled,
36
+ [t.QUANTITY_CONTROL_ENABLED]: i.productQuantityControlEnabled,
37
+ [t.PRICE_CONTROL_OPENED]: i.productPriceControlOpened
38
+ };
39
+ let o = O.getDocumentModifier().modifyHtml(e);
40
+ Object.entries(u).forEach(([D, l]) => {
41
+ o = o.setAttribute(D, l);
42
+ }), o.apply(new p("Update config block attributes from control"));
43
+ }
44
+ export {
45
+ M as updateConfigBlockAttributes
46
+ };
@@ -1,7 +1,7 @@
1
1
  import { Block as t, BlockCompositionType as o } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
2
2
  import { getDefaultTemplate as e } from "./template.js";
3
3
  const r = "radio-button-block";
4
- class c extends t {
4
+ class l extends t {
5
5
  constructor() {
6
6
  super();
7
7
  }
@@ -23,8 +23,11 @@ class c extends t {
23
23
  getTemplate() {
24
24
  return e();
25
25
  }
26
+ allowInnerBlocksDND() {
27
+ return !1;
28
+ }
26
29
  }
27
30
  export {
28
31
  r as BLOCK_ID,
29
- c as RadioButtonCustomBlock
32
+ l as RadioButtonCustomBlock
30
33
  };
@@ -2,10 +2,10 @@ var d = Object.defineProperty;
2
2
  var l = (r, n, t) => n in r ? d(r, n, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[n] = t;
3
3
  var o = (r, n, t) => l(r, typeof n != "symbol" ? n + "" : n, t);
4
4
  import { useHttp as L } from "../../../composables/useHttp.js";
5
- import { DEFAULT_UNSUBSCRIBE_GROUP as E } from "../../../enums/unsubscribe.js";
5
+ import { DEFAULT_UNSUBSCRIBE_GROUP as c } from "../../../enums/unsubscribe.js";
6
6
  import { Control as p, UIElementType as i, UEAttr as e, ModificationDescription as h } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
7
- const m = "ui-elements-radio-button", a = "select", { get: $ } = L();
8
- class _ extends p {
7
+ const m = "ui-elements-radio-button", u = "select", { get: $ } = L();
8
+ class S extends p {
9
9
  constructor() {
10
10
  super(...arguments);
11
11
  o(this, "currentNode");
@@ -16,15 +16,16 @@ class _ extends p {
16
16
  return m;
17
17
  }
18
18
  _setFormValues() {
19
- if (this.currentNode && "getAttribute" in this.currentNode) {
19
+ if (this.selectedUnsubGroup = "", this.currentNode && "getAttribute" in this.currentNode) {
20
20
  const t = this.currentNode.getAttribute("id");
21
21
  if (t) {
22
- const s = t === E.sendGridId ? t : Number(t);
23
- s && (this.selectedUnsubGroup = s, this.api.updateValues({
24
- [a]: this.selectedUnsubGroup
25
- }));
22
+ const s = t === c.sendGridId ? t : Number(t);
23
+ s && (this.selectedUnsubGroup = s);
26
24
  }
27
25
  }
26
+ this.api.updateValues({
27
+ [u]: this.selectedUnsubGroup
28
+ });
28
29
  }
29
30
  _getLabel(t, s = `${Math.random()}`) {
30
31
  return `
@@ -54,7 +55,7 @@ class _ extends p {
54
55
  </${i.LABEL}>
55
56
 
56
57
  <${i.SELECTPICKER}
57
- ${e.SELECTPICKER.name}="${a}"
58
+ ${e.SELECTPICKER.name}="${u}"
58
59
  ${e.SELECTPICKER.placeholder}="${this.api.translate("Select Unsubscribe Group")}">
59
60
  ${this._getSelect()}
60
61
  </${i.SELECTPICKER}>
@@ -66,27 +67,27 @@ class _ extends p {
66
67
  this.currentNode && this.api.getDocumentModifier().modifyHtml(this.currentNode).setAttribute("id", t.toString()).apply(new h(`Updated text to ${t}`));
67
68
  }
68
69
  _listenToFormUpdates() {
69
- this.api.onValueChanged(a, (t) => this._onSelectChange(t));
70
+ this.api.onValueChanged(u, (t) => this._onSelectChange(t));
70
71
  }
71
72
  onTemplateNodeUpdated(t) {
72
- this.currentNode = t;
73
+ this.currentNode = t, this._setFormValues();
73
74
  }
74
75
  // eslint-disable-next-line @typescript-eslint/no-misused-promises
75
76
  async onRender() {
76
77
  const t = await $(
77
78
  "/unsubscribe-groups/unsubscribe-list"
78
- ), s = [E, ...t.data], c = s.map((u) => ({
79
- [e.SELECT_ITEM.text]: u.name,
80
- [e.SELECT_ITEM.value]: u.sendGridId
79
+ ), s = [c, ...t.data], E = s.map((a) => ({
80
+ [e.SELECT_ITEM.text]: a.name,
81
+ [e.SELECT_ITEM.value]: a.sendGridId
81
82
  }));
82
83
  this.unsubList = s, this.api.setUIEAttribute(
83
- a,
84
+ u,
84
85
  e.SELECTPICKER.items,
85
- c
86
+ E
86
87
  ), this._setFormValues(), this._listenToFormUpdates();
87
88
  }
88
89
  }
89
90
  export {
90
91
  m as CONTROL_BLOCK_ID,
91
- _ as RadioButtonControl
92
+ S as RadioButtonControl
92
93
  };