@useinsider/guido 1.0.3-beta.52ded25 → 1.0.3-beta.5361682

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 (98) hide show
  1. package/README.md +32 -3
  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/composables/useActionsApi.js +1 -1
  6. package/dist/composables/useHtmlValidator.js +35 -36
  7. package/dist/composables/useStripo.js +25 -29
  8. package/dist/enums/unsubscribe.js +26 -27
  9. package/dist/extensions/Blocks/Checkbox/control.js +14 -15
  10. package/dist/extensions/Blocks/Checkbox/template.js +9 -14
  11. package/dist/extensions/Blocks/Items/block.js +26 -26
  12. package/dist/extensions/Blocks/Items/controls/name/trimming.js +2 -2
  13. package/dist/extensions/Blocks/Items/controls/settingsControl.js +81 -84
  14. package/dist/extensions/Blocks/Items/enums/productEnums.js +4 -62
  15. package/dist/extensions/Blocks/Items/layouts/horizontal.html.js +57 -57
  16. package/dist/extensions/Blocks/Items/layouts/vertical.html.js +55 -54
  17. package/dist/extensions/Blocks/Items/settingsPanel.js +29 -28
  18. package/dist/extensions/Blocks/Items/template.js +82 -79
  19. package/dist/extensions/Blocks/RadioButton/control.js +17 -18
  20. package/dist/extensions/Blocks/RadioButton/template.js +9 -18
  21. package/dist/extensions/Blocks/Unsubscribe/block.js +27 -27
  22. package/dist/guido.css +1 -1
  23. package/dist/node_modules/lodash-es/_arrayLikeKeys.js +12 -13
  24. package/dist/node_modules/lodash-es/keysIn.js +3 -3
  25. package/dist/src/extensions/Blocks/Checkbox/template.d.ts +1 -1
  26. package/dist/src/extensions/Blocks/Items/block.d.ts +0 -14
  27. package/dist/src/extensions/Blocks/Items/controls/settingsControl.d.ts +2 -5
  28. package/dist/src/extensions/Blocks/Items/enums/productEnums.d.ts +0 -2
  29. package/dist/src/extensions/Blocks/Items/template.d.ts +1 -9
  30. package/dist/src/extensions/Blocks/RadioButton/template.d.ts +1 -1
  31. package/package.json +10 -5
  32. package/dist/node_modules/lodash-es/_DataView.js +0 -6
  33. package/dist/node_modules/lodash-es/_Promise.js +0 -6
  34. package/dist/node_modules/lodash-es/_Set.js +0 -6
  35. package/dist/node_modules/lodash-es/_SetCache.js +0 -13
  36. package/dist/node_modules/lodash-es/_WeakMap.js +0 -6
  37. package/dist/node_modules/lodash-es/_arrayFilter.js +0 -10
  38. package/dist/node_modules/lodash-es/_arrayMap.js +0 -8
  39. package/dist/node_modules/lodash-es/_arrayPush.js +0 -8
  40. package/dist/node_modules/lodash-es/_arraySome.js +0 -9
  41. package/dist/node_modules/lodash-es/_baseEach.js +0 -6
  42. package/dist/node_modules/lodash-es/_baseFlatten.js +0 -13
  43. package/dist/node_modules/lodash-es/_baseForOwn.js +0 -8
  44. package/dist/node_modules/lodash-es/_baseGet.js +0 -11
  45. package/dist/node_modules/lodash-es/_baseGetAllKeys.js +0 -9
  46. package/dist/node_modules/lodash-es/_baseHasIn.js +0 -6
  47. package/dist/node_modules/lodash-es/_baseIsEqual.js +0 -8
  48. package/dist/node_modules/lodash-es/_baseIsEqualDeep.js +0 -32
  49. package/dist/node_modules/lodash-es/_baseIsMatch.js +0 -29
  50. package/dist/node_modules/lodash-es/_baseIteratee.js +0 -11
  51. package/dist/node_modules/lodash-es/_baseKeys.js +0 -14
  52. package/dist/node_modules/lodash-es/_baseMap.js +0 -11
  53. package/dist/node_modules/lodash-es/_baseMatches.js +0 -12
  54. package/dist/node_modules/lodash-es/_baseMatchesProperty.js +0 -17
  55. package/dist/node_modules/lodash-es/_baseProperty.js +0 -8
  56. package/dist/node_modules/lodash-es/_basePropertyDeep.js +0 -9
  57. package/dist/node_modules/lodash-es/_baseRange.js +0 -9
  58. package/dist/node_modules/lodash-es/_baseToString.js +0 -18
  59. package/dist/node_modules/lodash-es/_baseTrim.js +0 -8
  60. package/dist/node_modules/lodash-es/_cacheHas.js +0 -6
  61. package/dist/node_modules/lodash-es/_castPath.js +0 -10
  62. package/dist/node_modules/lodash-es/_createBaseEach.js +0 -15
  63. package/dist/node_modules/lodash-es/_createRange.js +0 -11
  64. package/dist/node_modules/lodash-es/_equalArrays.js +0 -40
  65. package/dist/node_modules/lodash-es/_equalByTag.js +0 -45
  66. package/dist/node_modules/lodash-es/_equalObjects.js +0 -36
  67. package/dist/node_modules/lodash-es/_getAllKeys.js +0 -9
  68. package/dist/node_modules/lodash-es/_getMatchData.js +0 -12
  69. package/dist/node_modules/lodash-es/_getSymbols.js +0 -10
  70. package/dist/node_modules/lodash-es/_getTag.js +0 -28
  71. package/dist/node_modules/lodash-es/_hasPath.js +0 -19
  72. package/dist/node_modules/lodash-es/_isFlattenable.js +0 -10
  73. package/dist/node_modules/lodash-es/_isKey.js +0 -12
  74. package/dist/node_modules/lodash-es/_isStrictComparable.js +0 -7
  75. package/dist/node_modules/lodash-es/_mapToArray.js +0 -9
  76. package/dist/node_modules/lodash-es/_matchesStrictComparable.js +0 -8
  77. package/dist/node_modules/lodash-es/_memoizeCapped.js +0 -11
  78. package/dist/node_modules/lodash-es/_nativeKeys.js +0 -5
  79. package/dist/node_modules/lodash-es/_setCacheAdd.js +0 -7
  80. package/dist/node_modules/lodash-es/_setCacheHas.js +0 -6
  81. package/dist/node_modules/lodash-es/_setToArray.js +0 -9
  82. package/dist/node_modules/lodash-es/_stringToPath.js +0 -10
  83. package/dist/node_modules/lodash-es/_toKey.js +0 -10
  84. package/dist/node_modules/lodash-es/_trimmedEndIndex.js +0 -9
  85. package/dist/node_modules/lodash-es/flatMap.js +0 -8
  86. package/dist/node_modules/lodash-es/get.js +0 -8
  87. package/dist/node_modules/lodash-es/hasIn.js +0 -8
  88. package/dist/node_modules/lodash-es/isSymbol.js +0 -9
  89. package/dist/node_modules/lodash-es/keys.js +0 -9
  90. package/dist/node_modules/lodash-es/map.js +0 -11
  91. package/dist/node_modules/lodash-es/property.js +0 -10
  92. package/dist/node_modules/lodash-es/range.js +0 -5
  93. package/dist/node_modules/lodash-es/stubArray.js +0 -6
  94. package/dist/node_modules/lodash-es/toFinite.js +0 -14
  95. package/dist/node_modules/lodash-es/toNumber.js +0 -22
  96. package/dist/node_modules/lodash-es/toString.js +0 -7
  97. package/dist/src/utils/environmentUtil.d.ts +0 -5
  98. package/dist/utils/environmentUtil.js +0 -4
@@ -1,20 +1,19 @@
1
- import { useOnboardingStore as y } from "../../../stores/onboarding.js";
2
- import { Block as R, BlockCompositionType as L, ModificationDescription as a } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
1
+ import { useOnboardingStore as L } from "../../../stores/onboarding.js";
2
+ import { Block as S, BlockCompositionType as y, ModificationDescription as u } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
3
3
  import { configAttributes as t } from "./enums/productEnums.js";
4
4
  import { DefaultConfigValues as e, SETTINGS_ENUMS as l } from "./enums/settingsEnums.js";
5
- import { useItemsBlockStore as S } from "./store/items-block.js";
5
+ import { useItemsBlockStore as I } from "./store/items-block.js";
6
6
  import { getDefaultTemplate as V } from "./template.js";
7
- import { syncCurrencySymbolFromAttributes as B, syncCurrencyLocationFromAttributes as U, syncFormattedPriceFromAttributes as k } from "./utils/syncAttributesFromConfigBlock.js";
8
- const M = "items-block";
9
- class x extends R {
7
+ const B = "items-block";
8
+ class z extends S {
10
9
  getId() {
11
- return M;
10
+ return B;
12
11
  }
13
12
  getIcon() {
14
13
  return "items-icon";
15
14
  }
16
15
  getBlockCompositionType() {
17
- return L.CONTAINER;
16
+ return y.CONTAINER;
18
17
  }
19
18
  getName() {
20
19
  return this.api.translate("Items");
@@ -23,45 +22,46 @@ class x extends R {
23
22
  return this.api.translate("Items lets you display personalized products based on user behavior.");
24
23
  }
25
24
  getTemplate() {
25
+ const i = I();
26
26
  return V({
27
27
  orientation: l.ORIENTATION.HORIZONTAL,
28
28
  itemsType: l.ITEMS_TYPE.CART_ITEMS,
29
29
  itemId: "{{Abandoned Cart Item (1) Url}}",
30
- currencySymbol: e.productPriceCurrencySymbolControlValue,
31
- currencyLocation: e.productPriceCurrencyLocationControlValue,
32
- formattedPrice: e.productPriceFormattedControlValue === "1"
30
+ currencySymbol: i.currencySymbol,
31
+ currencyLocation: i.currencyLocation,
32
+ formattedPrice: i.formattedPrice
33
33
  });
34
34
  }
35
35
  allowInnerBlocksDND() {
36
36
  return !1;
37
37
  }
38
- onCreated(r) {
39
- const n = r.querySelector("esd-config-block");
38
+ onCreated(i) {
39
+ const n = i.querySelector("esd-config-block");
40
40
  if (!n)
41
41
  return;
42
- const o = n, s = o.getAttribute("data-initialized") || "0", u = o.getAttribute(t.BLOCK_INSTANCE_ID), c = () => String(Date.now() + Math.floor(Math.random() * 1e3));
42
+ const o = n, s = o.getAttribute("data-initialized") || "0", a = o.getAttribute(t.BLOCK_INSTANCE_ID), c = () => String(Date.now() + Math.floor(Math.random() * 1e3));
43
43
  if (Number(s)) {
44
- if (!u) {
45
- const i = c();
46
- this.api.getDocumentModifier().modifyHtml(o).setAttribute(t.BLOCK_INSTANCE_ID, i).apply(new a("Assign block instance ID to legacy block"));
44
+ if (!a) {
45
+ const r = c();
46
+ this.api.getDocumentModifier().modifyHtml(o).setAttribute(t.BLOCK_INSTANCE_ID, r).apply(new u("Assign block instance ID to legacy block"));
47
47
  }
48
48
  } else {
49
- const i = e.itemsType, I = e.cartItemsSelectControlValue, d = e.cardOrientationControlValue, m = e.productNameTrimmingControlValue, C = e.productPriceHideDiscountControlValue, b = e.productPriceFormattedControlValue, T = e.productPriceCurrencySymbolControlValue, A = e.productPriceCurrencyLocationControlValue, E = e.productButtonLinkControlValue, O = e.productImageLinkControlValue, _ = e.productImageVisible, p = e.productNameVisible, N = e.productQuantityVisible, f = e.productPriceVisible, g = e.productOriginalPriceVisible, D = e.productButtonVisible, P = c();
50
- this.api.getDocumentModifier().modifyHtml(o).setAttribute("data-source", i).setAttribute(t.TYPE, i).setAttribute(t.ITEMS_INDEX_SELECT_CONTROL_VALUE, I).setAttribute(t.ORIENTATION, d).setAttribute(t.PRODUCT_NAME_TRIMMING, m).setAttribute(t.PRODUCT_PRICE_HIDE_DISCOUNT, C).setAttribute(t.PRODUCT_PRICE_FORMATTED, b).setAttribute(t.PRODUCT_PRICE_CURRENCY_SYMBOL, T).setAttribute(t.PRODUCT_PRICE_CURRENCY_LOCATION, A).setAttribute(t.PRODUCT_BUTTON_LINK, E).setAttribute(t.PRODUCT_IMAGE_LINK, O).setAttribute(t.BLOCK_INSTANCE_ID, P).setAttribute("data-initialized", "1").setAttribute(t.NAME_CONTROL_ENABLED, e.productNameControlEnabled).setAttribute(
49
+ const r = e.itemsType, d = e.cartItemsSelectControlValue, m = e.cardOrientationControlValue, T = e.productNameTrimmingControlValue, C = e.productPriceHideDiscountControlValue, b = e.productPriceFormattedControlValue, E = e.productPriceCurrencySymbolControlValue, O = e.productPriceCurrencyLocationControlValue, A = e.productButtonLinkControlValue, _ = e.productImageLinkControlValue, N = e.productImageVisible, p = e.productNameVisible, f = e.productQuantityVisible, g = e.productPriceVisible, D = e.productOriginalPriceVisible, R = e.productButtonVisible, P = c();
50
+ this.api.getDocumentModifier().modifyHtml(o).setAttribute("data-source", r).setAttribute(t.TYPE, r).setAttribute(t.ITEMS_INDEX_SELECT_CONTROL_VALUE, d).setAttribute(t.ORIENTATION, m).setAttribute(t.PRODUCT_NAME_TRIMMING, T).setAttribute(t.PRODUCT_PRICE_HIDE_DISCOUNT, C).setAttribute(t.PRODUCT_PRICE_FORMATTED, b).setAttribute(t.PRODUCT_PRICE_CURRENCY_SYMBOL, E).setAttribute(t.PRODUCT_PRICE_CURRENCY_LOCATION, O).setAttribute(t.PRODUCT_BUTTON_LINK, A).setAttribute(t.PRODUCT_IMAGE_LINK, _).setAttribute(t.BLOCK_INSTANCE_ID, P).setAttribute("data-initialized", "1").setAttribute(t.NAME_CONTROL_ENABLED, e.productNameControlEnabled).setAttribute(
51
51
  t.QUANTITY_CONTROL_ENABLED,
52
52
  e.productQuantityControlEnabled
53
- ).setAttribute(t.PRICE_CONTROL_OPENED, e.productPriceControlOpened).setAttribute(t.PRODUCT_IMAGE_VISIBLE, _).setAttribute(t.PRODUCT_NAME_VISIBLE, p).setAttribute(t.PRODUCT_QUANTITY_VISIBLE, N).setAttribute(t.PRODUCT_PRICE_VISIBLE, f).setAttribute(t.PRODUCT_ORIGINAL_PRICE_VISIBLE, g).setAttribute(t.PRODUCT_BUTTON_VISIBLE, D).apply(new a("Initialize config block attributes with defaults")), y().startOnboarding("itemsOnboarding");
53
+ ).setAttribute(t.PRICE_CONTROL_OPENED, e.productPriceControlOpened).setAttribute(t.PRODUCT_IMAGE_VISIBLE, N).setAttribute(t.PRODUCT_NAME_VISIBLE, p).setAttribute(t.PRODUCT_QUANTITY_VISIBLE, f).setAttribute(t.PRODUCT_PRICE_VISIBLE, g).setAttribute(t.PRODUCT_ORIGINAL_PRICE_VISIBLE, D).setAttribute(t.PRODUCT_BUTTON_VISIBLE, R).apply(new u("Initialize config block attributes with defaults")), L().startOnboarding("itemsOnboarding");
54
54
  }
55
55
  }
56
- onSelect(r) {
57
- const n = r.querySelector("esd-config-block"), o = S();
56
+ onSelect(i) {
57
+ const n = i.querySelector("esd-config-block"), o = I();
58
58
  if (!n)
59
59
  return;
60
- const s = n, u = s.getAttribute(t.TYPE) || e.itemsType, c = s.getAttribute(t.ITEMS_INDEX_SELECT_CONTROL_VALUE) || e.cartItemsSelectControlValue, i = s.getAttribute(t.ORIENTATION) || e.cardOrientationControlValue;
61
- o.setItemsType(u), o.setItemIds(c), o.setOrientation(i), B(r), U(r), k(r);
60
+ const s = n, a = s.getAttribute(t.TYPE) || e.itemsType, c = s.getAttribute(t.ITEMS_INDEX_SELECT_CONTROL_VALUE) || e.cartItemsSelectControlValue, r = s.getAttribute(t.ORIENTATION) || e.cardOrientationControlValue;
61
+ o.setItemsType(a), o.setItemIds(c), o.setOrientation(r);
62
62
  }
63
63
  }
64
64
  export {
65
- M as BLOCK_ID,
66
- x as ItemsBlock
65
+ B as BLOCK_ID,
66
+ z as ItemsBlock
67
67
  };
@@ -44,11 +44,11 @@ class R extends c {
44
44
  }
45
45
  _applyTrimmingStyles(e) {
46
46
  var m;
47
- const o = (m = this.currentNode) == null ? void 0 : m.querySelector("p > a");
47
+ const o = (m = this.currentNode) == null ? void 0 : m.querySelector("p");
48
48
  if (!o)
49
49
  return;
50
50
  const p = e !== void 0 ? e : this.store.nameTrimming, T = this.store.orientation === I.ORIENTATION.VERTICAL;
51
- p ? this.api.getDocumentModifier().modifyHtml(o).setStyle("white-space", "nowrap").setStyle("overflow", "hidden").setStyle("text-overflow", "ellipsis").setStyle("max-width", T ? "130px" : "550px").apply(new n("Text Trimming Enabled")) : this.api.getDocumentModifier().modifyHtml(o).removeStyle("white-space").removeStyle("overflow").removeStyle("text-overflow").removeStyle("max-width").apply(new n("Text Trimming Disabled"));
51
+ p ? this.api.getDocumentModifier().modifyHtml(o).setStyle("white-space", "nowrap").setStyle("overflow", "hidden").setStyle("text-overflow", "ellipsis").setStyle("max-width", T ? "130px" : "100%").apply(new n("Text Trimming Enabled")) : this.api.getDocumentModifier().modifyHtml(o).removeStyle("white-space").removeStyle("overflow").removeStyle("text-overflow").removeStyle("max-width").apply(new n("Text Trimming Disabled"));
52
52
  }
53
53
  _getTextTrimming() {
54
54
  return `
@@ -1,29 +1,28 @@
1
- var P = Object.defineProperty;
2
- var M = (T, u, e) => u in T ? P(T, u, { enumerable: !0, configurable: !0, writable: !0, value: e }) : T[u] = e;
3
- var C = (T, u, e) => M(T, typeof u != "symbol" ? u + "" : u, e);
4
- import { UEAttr as b, ModificationDescription as d } from "../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
5
- import { CommonControl as D } from "../../common-control.js";
1
+ var A = Object.defineProperty;
2
+ var M = (T, u, e) => u in T ? A(T, u, { enumerable: !0, configurable: !0, writable: !0, value: e }) : T[u] = e;
3
+ var b = (T, u, e) => M(T, typeof u != "symbol" ? u + "" : u, e);
4
+ import { UEAttr as C, ModificationDescription as d } from "../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
5
+ import { CommonControl as P } from "../../common-control.js";
6
6
  import { ItemsBlockId as m } from "../enums/controlEnums.js";
7
- import { productPairs as p, templateFirstLine as A } from "../enums/productEnums.js";
8
- import { ItemTypeOptions as R, OrientationOptions as L, ItemInCartOptions as N, SETTINGS_ENUMS as S } from "../enums/settingsEnums.js";
7
+ import { productPairs as p } from "../enums/productEnums.js";
8
+ import { ItemTypeOptions as R, OrientationOptions as D, ItemInCartOptions as y, SETTINGS_ENUMS as S } from "../enums/settingsEnums.js";
9
9
  import x from "../layouts/horizontal.html.js";
10
- import H from "../layouts/vertical.html.js";
11
- import { useItemsBlockStore as U } from "../store/items-block.js";
12
- import { getDefaultTemplate as F } from "../template.js";
13
- import { syncCurrencySymbolFromAttributes as $, syncCurrencyLocationFromAttributes as k, syncFormattedPriceFromAttributes as q } from "../utils/syncAttributesFromConfigBlock.js";
10
+ import L from "../layouts/vertical.html.js";
11
+ import { useItemsBlockStore as H } from "../store/items-block.js";
12
+ import { getDefaultTemplate as U } from "../template.js";
14
13
  import { updateConfigBlockAttributes as f } from "../utils/updateAttributes.js";
15
- const w = "ui-elements-items-block", o = {
14
+ const $ = "ui-elements-items-block", s = {
16
15
  ITEMS_TYPE: "itemsType",
17
16
  ORIENTATION: "orientation",
18
17
  ITEM_IDS: "itemIds"
19
18
  };
20
- class Z extends D {
19
+ class W extends P {
21
20
  constructor() {
22
21
  super(...arguments);
23
- C(this, "store", U());
22
+ b(this, "store", H());
24
23
  }
25
24
  getId() {
26
- return w;
25
+ return $;
27
26
  }
28
27
  getTemplate() {
29
28
  return `
@@ -36,24 +35,17 @@ class Z extends D {
36
35
  }
37
36
  onRender() {
38
37
  this.api.updateValues({
39
- [o.ORIENTATION]: this.store.orientation,
40
- [o.ITEMS_TYPE]: this.store.itemsType,
41
- [o.ITEM_IDS]: this.store.itemIds
38
+ [s.ORIENTATION]: this.store.orientation,
39
+ [s.ITEMS_TYPE]: this.store.itemsType,
40
+ [s.ITEM_IDS]: this.store.itemIds
42
41
  }), this._listenToFormUpdates();
43
42
  }
44
43
  onTemplateNodeUpdated(e) {
45
- super.onTemplateNodeUpdated(e), this.handleBlockInstanceChange(
46
- () => {
47
- $(this.currentNode), k(this.currentNode), q(this.currentNode);
48
- },
49
- () => {
50
- this.api.updateValues({
51
- [o.ORIENTATION]: this.store.orientation,
52
- [o.ITEMS_TYPE]: this.store.itemsType,
53
- [o.ITEM_IDS]: this.store.itemIds
54
- }), this._initializeSelectItems();
55
- }
56
- );
44
+ this.currentNode = e, this.api.updateValues({
45
+ [s.ORIENTATION]: this.store.orientation,
46
+ [s.ITEMS_TYPE]: this.store.itemsType,
47
+ [s.ITEM_IDS]: this.store.itemIds
48
+ }), this._initializeSelectItems();
57
49
  }
58
50
  onDestroy() {
59
51
  const e = this._getTemplateData();
@@ -64,7 +56,7 @@ class Z extends D {
64
56
  ${this._GuOneColumn([
65
57
  this._GuLabel({ text: "Item Type" }),
66
58
  this._GuSelect({
67
- name: o.ITEMS_TYPE,
59
+ name: s.ITEMS_TYPE,
68
60
  className: "es-100",
69
61
  placeholder: "Select Item Type",
70
62
  options: R
@@ -77,8 +69,8 @@ class Z extends D {
77
69
  ${this._GuTwoColumns([
78
70
  this._GuLabel({ text: "Orientation" }),
79
71
  this._GuRadioButton({
80
- name: o.ORIENTATION,
81
- buttons: L
72
+ name: s.ORIENTATION,
73
+ buttons: D
82
74
  })
83
75
  ])}
84
76
  `;
@@ -88,7 +80,7 @@ class Z extends D {
88
80
  ${this._GuTwoColumns([
89
81
  this._GuLabel({ text: "Item in Cart" }),
90
82
  this._GuSelect({
91
- name: o.ITEM_IDS,
83
+ name: s.ITEM_IDS,
92
84
  className: "es-100",
93
85
  placeholder: "Select Item In Cart",
94
86
  options: []
@@ -97,43 +89,43 @@ class Z extends D {
97
89
  `;
98
90
  }
99
91
  _onOrientationChange(e) {
100
- console.debug("Orientation changed to: ", e), this.store.setOrientation(e), this.api.updateValues({ [o.ORIENTATION]: e }), f(this.currentNode, this.api), this._reOrderTemplate(), this._recalculateTrimming();
92
+ console.debug("Orientation changed to: ", e), this.store.setOrientation(e), this.api.updateValues({ [s.ORIENTATION]: e }), f(this.currentNode, this.api), this._reOrderTemplate(), this._recalculateTrimming();
101
93
  }
102
- _onItemsTypeChange(e) {
103
- const i = S.ITEMS_TYPE[e], t = N[e], r = t == null ? void 0 : t[0];
104
- !i || !r || (this.store.setItemsType(i), this.store.setItemIds(r.value), f(this.currentNode, this.api), this._updateDataTypeAttributes(i), this._initializeSelectItems(), this._reFillTemplate());
94
+ _onItemsTypeChange(e, i) {
95
+ const { itemIds: t } = this.store, r = S.ITEMS_TYPE[e], n = y[i].findIndex((a) => a.value === t), o = y[e][n];
96
+ r && (this.store.setItemsType(r), this.store.setItemIds(o.value), f(this.currentNode, this.api), this._updateDataTypeAttributes(r), this._initializeSelectItems(), this._reFillTemplate());
105
97
  }
106
98
  _onItemIdsChange(e) {
107
- console.debug("Item ids changed to: ", e), this.store.setItemIds(e), this.api.updateValues({ [o.ITEM_IDS]: e }), f(this.currentNode, this.api), this._updateDataNumberAttributes(e), this._reFillTemplate();
99
+ console.debug("Item ids changed to: ", e), this.store.setItemIds(e), this.api.updateValues({ [s.ITEM_IDS]: e }), f(this.currentNode, this.api), this._updateDataNumberAttributes(e), this._reFillTemplate();
108
100
  }
109
101
  _initializeSelectItems() {
110
102
  this.api.setUIEAttribute(
111
- o.ITEMS_TYPE,
112
- b.SELECTPICKER.items,
103
+ s.ITEMS_TYPE,
104
+ C.SELECTPICKER.items,
113
105
  R
114
106
  );
115
107
  const { itemsType: e, itemIds: i } = this.store;
116
108
  this.api.updateValues({
117
- [o.ITEMS_TYPE]: e
109
+ [s.ITEMS_TYPE]: e
118
110
  });
119
- const t = N[e];
111
+ const t = y[e];
120
112
  this.api.setUIEAttribute(
121
- o.ITEM_IDS,
122
- b.SELECTPICKER.items,
113
+ s.ITEM_IDS,
114
+ C.SELECTPICKER.items,
123
115
  t
124
116
  ), this.api.updateValues({
125
- [o.ITEM_IDS]: i
117
+ [s.ITEM_IDS]: i
126
118
  });
127
119
  }
128
120
  _listenToFormUpdates() {
129
121
  this.api.onValueChanged(
130
- o.ITEMS_TYPE,
131
- (e) => this._onItemsTypeChange(e)
122
+ s.ITEMS_TYPE,
123
+ (e, i) => this._onItemsTypeChange(e, i)
132
124
  ), this.api.onValueChanged(
133
- o.ORIENTATION,
125
+ s.ORIENTATION,
134
126
  (e) => this._onOrientationChange(e)
135
127
  ), this.api.onValueChanged(
136
- o.ITEM_IDS,
128
+ s.ITEM_IDS,
137
129
  (e) => this._onItemIdsChange(e)
138
130
  );
139
131
  }
@@ -144,19 +136,19 @@ class Z extends D {
144
136
  itemIds: t,
145
137
  currencySymbol: r,
146
138
  currencyLocation: n,
147
- formattedPrice: s
139
+ formattedPrice: o
148
140
  } = this.store;
149
- this.api.getDocumentModifier().modifyHtml(this.currentNode).setInnerHtml(F({
141
+ this.api.getDocumentModifier().modifyHtml(this.currentNode).setInnerHtml(U({
150
142
  orientation: e,
151
143
  itemsType: i,
152
144
  itemId: t,
153
145
  currencySymbol: r,
154
146
  currencyLocation: n,
155
- formattedPrice: s
147
+ formattedPrice: o
156
148
  })).apply(new d("Updated template"));
157
149
  }
158
150
  _getTemplateData() {
159
- const { itemsType: e, itemIds: i, formattedPrice: t } = this.store, r = N[e].findIndex((s) => s.value === i), n = r > -1 ? r : 0;
151
+ const { itemsType: e, itemIds: i, formattedPrice: t } = this.store, r = y[e].findIndex((o) => o.value === i), n = r > -1 ? r : 0;
160
152
  return {
161
153
  imageSrc: p.PAIRS_FOR_EXTENSION.imageSrc[e].DEFAULT[n],
162
154
  name: p.PAIRS_FOR_EXTENSION.name[e].DEFAULT[n],
@@ -181,19 +173,19 @@ class Z extends D {
181
173
  r = r.replace(t, e), this.api.getDocumentModifier().modifyHtml(i).setInnerHtml(r).apply(new d("Updated name"));
182
174
  }
183
175
  _updatePrice(e) {
184
- var E;
185
- const i = (E = this.currentNode) == null ? void 0 : E.querySelector(`[esd-extension-block-id="${m.PRICE}"]`);
176
+ var g;
177
+ const i = (g = this.currentNode) == null ? void 0 : g.querySelector(`[esd-extension-block-id="${m.PRICE}"]`);
186
178
  if (!i)
187
179
  return;
188
180
  const t = this._getParagraphFromBlock(i);
189
181
  if (!t)
190
182
  return;
191
- const r = t.getInnerHTML() || "", n = t.getInnerText() || "", { currencySymbol: s, currencyLocation: a } = this.store, l = (s == null ? void 0 : s.trim()) || "", c = this._removeCurrencySymbol(n, l), h = this._replacePriceNumber(c, e), I = this._buildPriceContent(h, l, a), _ = r.replace(n, I);
183
+ const r = t.getInnerHTML() || "", n = t.getInnerText() || "", { currencySymbol: o, currencyLocation: a } = this.store, l = (o == null ? void 0 : o.trim()) || "", c = this._removeCurrencySymbol(n, l), I = this._replacePriceNumber(c, e), h = this._buildPriceContent(I, l, a), _ = r.replace(n, h);
192
184
  this.api.getDocumentModifier().modifyHtml(t).setInnerHtml(_).apply(new d("Updated price"));
193
185
  }
194
186
  _updateOriginalPrice(e) {
195
- var y;
196
- const i = (y = this.currentNode) == null ? void 0 : y.querySelector(
187
+ var E;
188
+ const i = (E = this.currentNode) == null ? void 0 : E.querySelector(
197
189
  `[esd-extension-block-id="${m.ORIGINAL_PRICE}"]`
198
190
  );
199
191
  if (!i)
@@ -204,8 +196,8 @@ class Z extends D {
204
196
  const r = t.querySelector("s");
205
197
  if (!r)
206
198
  return;
207
- const n = r.getInnerHTML() || "", s = r.getInnerText() || "", { currencySymbol: a, currencyLocation: l } = this.store, c = (a == null ? void 0 : a.trim()) || "", h = this._removeCurrencySymbol(s, c), I = this._replacePriceNumber(h, e), _ = this._buildPriceContent(I, c, l), g = `<s>${n.replace(s, _)}</s>`;
208
- this.api.getDocumentModifier().modifyHtml(t).setInnerHtml(g).apply(new d("Updated original price"));
199
+ const n = r.getInnerHTML() || "", o = r.getInnerText() || "", { currencySymbol: a, currencyLocation: l } = this.store, c = (a == null ? void 0 : a.trim()) || "", I = this._removeCurrencySymbol(o, c), h = this._replacePriceNumber(I, e), _ = this._buildPriceContent(h, c, l), N = `<s>${n.replace(o, _)}</s>`;
200
+ this.api.getDocumentModifier().modifyHtml(t).setInnerHtml(N).apply(new d("Updated original price"));
209
201
  }
210
202
  _updateQuantity(e) {
211
203
  var a;
@@ -213,37 +205,42 @@ class Z extends D {
213
205
  if (!t)
214
206
  return;
215
207
  const r = t.getStyle("display") === "none", n = t.getInnerText().trim();
216
- let s = t.getInnerHTML();
217
- s = s.replace(n, e), this.api.getDocumentModifier().modifyHtml(t).setInnerHtml(s).setStyle("display", i && !r ? "table-cell" : "none").apply(new d("Updated quantity"));
208
+ let o = t.getInnerHTML();
209
+ o = o.replace(n, e), this.api.getDocumentModifier().modifyHtml(t).setInnerHtml(o).setStyle("display", i && !r ? "table-cell" : "none").apply(new d("Updated quantity"));
210
+ }
211
+ _updateButton(e) {
212
+ var n;
213
+ const i = (n = this.currentNode) == null ? void 0 : n.querySelector(`[esd-extension-block-id="${m.BUTTON}"]`);
214
+ if (!i)
215
+ return;
216
+ const t = i.getInnerText().trim();
217
+ let r = i.getInnerHTML();
218
+ r = r.replace(t, e), this.api.getDocumentModifier().modifyHtml(i).setInnerHtml(r).apply(new d("Updated button"));
218
219
  }
219
- /**
220
- * @todo Optimize template reordering for performance.
221
- * @description Reorders the template structure based on current orientation and visibility settings.
222
- */
223
220
  _reOrderTemplate() {
224
- var h, I, _, E, g, y, O;
225
- const e = (h = this.currentNode) == null ? void 0 : h.querySelector(`[esd-extension-block-id="${m.IMAGE}"]`), i = (I = this.currentNode) == null ? void 0 : I.querySelector(`[esd-extension-block-id="${m.NAME}"]`), t = (_ = this.currentNode) == null ? void 0 : _.querySelector(`[esd-extension-block-id="${m.PRICE}"]`), r = (E = this.currentNode) == null ? void 0 : E.querySelector(
221
+ var I, h, _, g, N, E, O;
222
+ const e = (I = this.currentNode) == null ? void 0 : I.querySelector(`[esd-extension-block-id="${m.IMAGE}"]`), i = (h = this.currentNode) == null ? void 0 : h.querySelector(`[esd-extension-block-id="${m.NAME}"]`), t = (_ = this.currentNode) == null ? void 0 : _.querySelector(`[esd-extension-block-id="${m.PRICE}"]`), r = (g = this.currentNode) == null ? void 0 : g.querySelector(
226
223
  `[esd-extension-block-id="${m.ORIGINAL_PRICE}"]`
227
- ), n = (g = this.currentNode) == null ? void 0 : g.querySelector(`[esd-extension-block-id="${m.QUANTITY}"]`), s = (y = this.currentNode) == null ? void 0 : y.querySelector(`[esd-extension-block-id="${m.BUTTON}"]`), a = (O = this.currentNode) == null ? void 0 : O.querySelector("esd-config-block");
228
- if (!e || !i || !t || !r || !n || !s || !a)
224
+ ), n = (N = this.currentNode) == null ? void 0 : N.querySelector(`[esd-extension-block-id="${m.QUANTITY}"]`), o = (E = this.currentNode) == null ? void 0 : E.querySelector(`[esd-extension-block-id="${m.BUTTON}"]`), a = (O = this.currentNode) == null ? void 0 : O.querySelector("esd-config-block");
225
+ if (!e || !i || !t || !r || !n || !o || !a)
229
226
  return;
230
227
  const { orientation: l } = this.store;
231
- let c = l === S.ORIENTATION.VERTICAL ? H : x;
232
- c = c.replace("{-{-TEMPLATE_FIRST_LINE-}-}", A).replace("{-{-PRODUCT_IMAGE-}-}", e.getOuterHTML()).replace("{-{-PRODUCT_NAME-}-}", i.getOuterHTML()).replace("{-{-PRODUCT_PRICE-}-}", t.getOuterHTML()).replace("{-{-PRODUCT_ORIGINAL_PRICE-}-}", r.getOuterHTML()).replace("{-{-PRODUCT_QUANTITY-}-}", n.getOuterHTML()).replace("{-{-PRODUCT_BUTTON-}-}", s.getOuterHTML()).replace("{-{-CONFIG_BLOCK-}-}", a.getOuterHTML()), c = c.trim().replace(A, "").slice(0, -5), this.api.getDocumentModifier().modifyHtml(this.currentNode).setInnerHtml(c).apply(new d("Reordered template"));
228
+ let c = l === S.ORIENTATION.VERTICAL ? L : x;
229
+ c = c.replace("{-{-PRODUCT_IMAGE-}-}", e.getOuterHTML()).replace("{-{-PRODUCT_NAME-}-}", i.getOuterHTML()).replace("{-{-PRODUCT_PRICE-}-}", t.getOuterHTML()).replace("{-{-PRODUCT_ORIGINAL_PRICE-}-}", r.getOuterHTML()).replace("{-{-PRODUCT_QUANTITY-}-}", n.getOuterHTML()).replace("{-{-PRODUCT_BUTTON-}-}", o.getOuterHTML()).replace("{-{-CONFIG_BLOCK-}-}", a.getOuterHTML()), c = c.trim().replace('<td align="center" class="ins-product-td items-block">', "").slice(0, -5), this.api.getDocumentModifier().modifyHtml(this.currentNode).setInnerHtml(c).apply(new d("Reordered template"));
233
230
  }
234
231
  _updateDataTypeAttributes(e) {
235
232
  if (!this.currentNode)
236
233
  return;
237
234
  const i = this.currentNode.closest(".ins-product-td"), t = this.api.getDocumentModifier();
238
235
  i && t.modifyHtml(i).setAttribute("data-type", e), this.currentNode.querySelectorAll("[data-type]").forEach((n) => {
239
- const s = n;
240
- t.modifyHtml(s).setAttribute("data-type", e);
236
+ const o = n;
237
+ t.modifyHtml(o).setAttribute("data-type", e);
241
238
  }), t.apply(new d("Updated data-type attribute"));
242
239
  }
243
240
  _updateDataNumberAttributes(e) {
244
241
  if (!this.currentNode)
245
242
  return;
246
- const { itemsType: i } = this.store, t = N[i].findIndex((l) => l.value === e);
243
+ const { itemsType: i } = this.store, t = y[i].findIndex((l) => l.value === e);
247
244
  let r = "1";
248
245
  if (t >= 0)
249
246
  r = String(t + 1);
@@ -254,15 +251,15 @@ class Z extends D {
254
251
  r = c;
255
252
  }
256
253
  }
257
- const n = this.currentNode.closest(".ins-product-td"), s = this.api.getDocumentModifier();
258
- n && s.modifyHtml(n).setAttribute("data-number", r), this.currentNode.querySelectorAll("[data-number]").forEach((l) => {
254
+ const n = this.currentNode.closest(".ins-product-td"), o = this.api.getDocumentModifier();
255
+ n && o.modifyHtml(n).setAttribute("data-number", r), this.currentNode.querySelectorAll("[data-number]").forEach((l) => {
259
256
  const c = l;
260
- s.modifyHtml(c).setAttribute("data-number", r);
261
- }), s.apply(new d("Updated data-number attribute"));
257
+ o.modifyHtml(c).setAttribute("data-number", r);
258
+ }), o.apply(new d("Updated data-number attribute"));
262
259
  }
263
260
  _reFillTemplate() {
264
261
  const e = this._getTemplateData();
265
- this._updateImageSrc(e.imageSrc), this._updateName(e.name), this._updatePrice(e.price), this._updateOriginalPrice(e.originalPrice), this._updateQuantity(e.quantity);
262
+ this._updateImageSrc(e.imageSrc), this._updateName(e.name), this._updatePrice(e.price), this._updateOriginalPrice(e.originalPrice), this._updateQuantity(e.quantity), this._updateButton(e.button);
266
263
  }
267
264
  _recalculateTrimming() {
268
265
  var r;
@@ -292,7 +289,7 @@ class Z extends D {
292
289
  } else {
293
290
  const n = t.match(/([^0-9.,\s]+)/);
294
291
  if (n && n[1]) {
295
- const s = n[1].trim(), a = new RegExp(`\\s*${this._escapeRegex(s)}\\s*`);
292
+ const o = n[1].trim(), a = new RegExp(`\\s*${this._escapeRegex(o)}\\s*`);
296
293
  r = t.replace(a, "").trim();
297
294
  }
298
295
  }
@@ -307,6 +304,6 @@ class Z extends D {
307
304
  }
308
305
  }
309
306
  export {
310
- w as CONTROL_BLOCK_ID,
311
- Z as ItemsBlockControl
307
+ $ as CONTROL_BLOCK_ID,
308
+ W as ItemsBlockControl
312
309
  };
@@ -1,6 +1,4 @@
1
- import _ from "../../../../node_modules/lodash-es/flatMap.js";
2
- import i from "../../../../node_modules/lodash-es/range.js";
3
- const o = '<td align="center" class="ins-product-td items-block items-block-v2">', R = {
1
+ const e = {
4
2
  TYPE: "data-type",
5
3
  ITEMS_INDEX_SELECT_CONTROL_VALUE: "data-cart_items_select_control_value",
6
4
  ORIENTATION: "data-card_orientation_control_value",
@@ -24,7 +22,7 @@ const o = '<td align="center" class="ins-product-td items-block items-block-v2">
24
22
  PRODUCT_PRICE_VISIBLE: "data-product_price_visible",
25
23
  PRODUCT_ORIGINAL_PRICE_VISIBLE: "data-product_original_price_visible",
26
24
  PRODUCT_BUTTON_VISIBLE: "data-product_button_visible"
27
- }, t = { PAIRS_FOR_EXTENSION: {
25
+ }, s = { PAIRS_FOR_EXTENSION: {
28
26
  imageSrc: {
29
27
  CART_ITEMS: {
30
28
  ATTR: "ins_apr_img",
@@ -211,63 +209,7 @@ const o = '<td align="center" class="ins-product-td items-block items-block-v2">
211
209
  }
212
210
  }
213
211
  } };
214
- function m(e, a = 8) {
215
- return i(1, a + 1).map((s) => `${e}_${s}`);
216
- }
217
- function E() {
218
- const { PAIRS_FOR_EXTENSION: e } = t, a = [];
219
- return a.push(
220
- e.imageSrc.CART_ITEMS.ATTR,
221
- e.imageSrc.BROWSED_ITEMS.ATTR,
222
- e.imageSrc.PURCHASED_ITEMS.ATTR
223
- ), a.push(
224
- e.name.CART_ITEMS.ATTR,
225
- e.name.CART_ITEMS.HREF,
226
- e.name.BROWSED_ITEMS.ATTR,
227
- e.name.BROWSED_ITEMS.HREF,
228
- e.name.PURCHASED_ITEMS.ATTR,
229
- e.name.PURCHASED_ITEMS.HREF
230
- ), a.push(
231
- e.quantity.CART_ITEMS.ATTR,
232
- e.quantity.BROWSED_ITEMS.ATTR,
233
- e.quantity.PURCHASED_ITEMS.ATTR
234
- ), a.push(
235
- e.price.CART_ITEMS.PRICE,
236
- e.price.CART_ITEMS.PRICE_FORMATTED,
237
- e.price.CART_ITEMS.CURRENCY,
238
- e.price.BROWSED_ITEMS.PRICE,
239
- e.price.BROWSED_ITEMS.PRICE_FORMATTED,
240
- e.price.BROWSED_ITEMS.CURRENCY,
241
- e.price.PURCHASED_ITEMS.PRICE,
242
- e.price.PURCHASED_ITEMS.PRICE_FORMATTED,
243
- e.price.PURCHASED_ITEMS.CURRENCY
244
- ), a.push(
245
- e.originalPrice.CART_ITEMS.PRICE,
246
- e.originalPrice.CART_ITEMS.PRICE_FORMATTED,
247
- e.originalPrice.CART_ITEMS.CURRENCY,
248
- e.originalPrice.BROWSED_ITEMS.PRICE,
249
- e.originalPrice.BROWSED_ITEMS.PRICE_FORMATTED,
250
- e.originalPrice.BROWSED_ITEMS.CURRENCY,
251
- e.originalPrice.PURCHASED_ITEMS.PRICE,
252
- e.originalPrice.PURCHASED_ITEMS.PRICE_FORMATTED,
253
- e.originalPrice.PURCHASED_ITEMS.CURRENCY
254
- ), a.push(
255
- e.button.CART_ITEMS.HREF,
256
- e.button.BROWSED_ITEMS.HREF,
257
- e.button.PURCHASED_ITEMS.HREF
258
- ), a.push(
259
- e.itemLink.CART_ITEMS.HREF,
260
- e.itemLink.BROWSED_ITEMS.HREF,
261
- e.itemLink.PURCHASED_ITEMS.HREF
262
- ), a;
263
- }
264
- const p = _(
265
- E(),
266
- (e) => m(e)
267
- );
268
212
  export {
269
- R as configAttributes,
270
- p as itemsBlockDynamicVariables,
271
- t as productPairs,
272
- o as templateFirstLine
213
+ e as configAttributes,
214
+ s as productPairs
273
215
  };
@@ -1,60 +1,60 @@
1
- const t = `{-{-TEMPLATE_FIRST_LINE-}-}
2
- <table class="es-left ins-product-wrapper" cellspacing="0" cellpadding="0" align="left" width="100%">
3
- {-{-CONFIG_BLOCK-}-}
4
- <tbody>
5
- <tr>
6
- <td class="es-p20b es-p10r es-p10l es-m-p20b es-p10t" width="100%" align="center">
7
- <table class="ins-product-cart" width="100%" cellspacing="0" cellpadding="0">
8
- <tr style="vertical-align: top">
9
- <td colspan="2" width="100%" align="center" data-slot-1>
10
- <table width="100%">
11
- <tbody>
12
- {-{-PRODUCT_IMAGE-}-}
13
- </tbody>
14
- </table>
15
- </td>
16
- </tr>
17
- {-{-PRODUCT_NAME-}-}
18
- <tr>
19
- <td width="50%" style=" width: 50%;display: block;float: left;" class="product-price-class">
20
- <table width="100%">
21
- <tbody>
22
- {-{-PRODUCT_PRICE-}-}
23
- </tbody>
24
- </table>
25
- </td>
26
- <td width="50%" style=" width: 50%;display: block;float: left;"
27
- class="product-original-price-class">
28
- <table width="100%">
29
- <tbody>
30
- {-{-PRODUCT_ORIGINAL_PRICE-}-}
31
- </tbody>
32
- </table>
33
- </td>
34
- </tr>
35
- <tr>
36
- <td width="100%">
37
- <table width="100%">
38
- <tbody>
39
- {-{-PRODUCT_QUANTITY-}-}
40
- </tbody>
41
- </table>
42
- </td>
43
- </tr>
44
- <tr>
45
- <td width="100%">
46
- <table width="100%">
47
- <tbody>
48
- {-{-PRODUCT_BUTTON-}-}
49
- </tbody>
50
- </table>
51
- </td>
52
- </tr>
53
- </table>
54
- </td>
55
- </tr>
56
- </tbody>
57
- </table>
1
+ const t = `<td align="center" class="ins-product-td items-block items-block-v2">
2
+ <table class="es-left ins-product-wrapper" cellspacing="0" cellpadding="0" align="left" width="100%">
3
+ {-{-CONFIG_BLOCK-}-}
4
+ <tbody>
5
+ <tr>
6
+ <td class="es-p20b es-p10r es-p10l es-m-p20b es-p10t" width="100%" align="center">
7
+ <table class="ins-product-cart" width="100%" cellspacing="0" cellpadding="0">
8
+ <tr style="vertical-align: top">
9
+ <td colspan="2" width="100%" align="center" data-slot-1>
10
+ <table width="100%">
11
+ <tbody>
12
+ {-{-PRODUCT_IMAGE-}-}
13
+ </tbody>
14
+ </table>
15
+ </td>
16
+ </tr>
17
+ {-{-PRODUCT_NAME-}-}
18
+ <tr>
19
+ <td width="50%" style=" width: 50%;display: block;float: left;" class="product-price-class">
20
+ <table width="100%">
21
+ <tbody>
22
+ {-{-PRODUCT_PRICE-}-}
23
+ </tbody>
24
+ </table>
25
+ </td>
26
+ <td width="50%" style=" width: 50%;display: block;float: left;"
27
+ class="product-original-price-class">
28
+ <table width="100%">
29
+ <tbody>
30
+ {-{-PRODUCT_ORIGINAL_PRICE-}-}
31
+ </tbody>
32
+ </table>
33
+ </td>
34
+ </tr>
35
+ <tr>
36
+ <td width="100%">
37
+ <table width="100%">
38
+ <tbody>
39
+ {-{-PRODUCT_QUANTITY-}-}
40
+ </tbody>
41
+ </table>
42
+ </td>
43
+ </tr>
44
+ <tr>
45
+ <td width="100%">
46
+ <table width="100%">
47
+ <tbody>
48
+ {-{-PRODUCT_BUTTON-}-}
49
+ </tbody>
50
+ </table>
51
+ </td>
52
+ </tr>
53
+ </table>
54
+ </td>
55
+ </tr>
56
+ </tbody>
57
+ </table>
58
58
  </td>
59
59
  `;
60
60
  export {