@useinsider/guido 3.17.0-beta.3e9d6e7 → 3.17.0-beta.3ff6ea0

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 (111) hide show
  1. package/README.md +0 -1
  2. package/dist/@types/config/schemas.js +6 -12
  3. package/dist/components/Guido.vue.js +6 -6
  4. package/dist/components/Guido.vue2.js +61 -63
  5. package/dist/composables/useCustomInterfaceAppearance.js +16 -19
  6. package/dist/composables/useRecommendation.js +34 -41
  7. package/dist/composables/useStripo.js +14 -14
  8. package/dist/config/migrator/index.js +9 -8
  9. package/dist/config/migrator/recommendation/compositionMapper.js +20 -20
  10. package/dist/config/migrator/recommendation/extractors.js +29 -24
  11. package/dist/config/migrator/recommendation/htmlBuilder.js +116 -130
  12. package/dist/config/migrator/recommendationMigrator.js +16 -15
  13. package/dist/config/migrator/recommendationTitleMigrator.js +119 -0
  14. package/dist/enums/date.js +3 -4
  15. package/dist/enums/extensions/recommendationBlock.js +23 -25
  16. package/dist/extensions/Blocks/Recommendation/constants/blockIds.js +1 -1
  17. package/dist/extensions/Blocks/Recommendation/constants/controlIds.js +1 -1
  18. package/dist/extensions/Blocks/Recommendation/constants/defaultConfig.js +20 -21
  19. package/dist/extensions/Blocks/Recommendation/constants/selectors.js +34 -28
  20. package/dist/extensions/Blocks/Recommendation/controls/cardComposition/index.js +306 -238
  21. package/dist/extensions/Blocks/Recommendation/controls/main/index.js +95 -122
  22. package/dist/extensions/Blocks/Recommendation/controls/main/utils.js +1 -0
  23. package/dist/extensions/Blocks/Recommendation/controls/title/index.js +44 -0
  24. package/dist/extensions/Blocks/Recommendation/extension.js +31 -29
  25. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +23 -4
  26. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +53 -199
  27. package/dist/extensions/Blocks/Recommendation/templates/grid/template.js +3 -3
  28. package/dist/extensions/Blocks/Recommendation/templates/titleRows.js +33 -0
  29. package/dist/extensions/Blocks/Recommendation/templates/utils.js +85 -107
  30. package/dist/extensions/Blocks/common-control.js +19 -22
  31. package/dist/guido.css +1 -1
  32. package/dist/services/recommendationApi.js +28 -77
  33. package/dist/src/@types/config/schemas.d.ts +0 -12
  34. package/dist/src/composables/useConfig.d.ts +0 -2
  35. package/dist/src/composables/useRecommendation.d.ts +0 -1
  36. package/dist/src/config/migrator/recommendation/extractors.d.ts +8 -0
  37. package/dist/src/config/migrator/recommendationTitleMigrator.d.ts +5 -0
  38. package/dist/src/enums/extensions/recommendationBlock.d.ts +0 -2
  39. package/dist/src/extensions/Blocks/Recommendation/constants/blockIds.d.ts +2 -1
  40. package/dist/src/extensions/Blocks/Recommendation/constants/controlIds.d.ts +7 -0
  41. package/dist/src/extensions/Blocks/Recommendation/constants/defaultConfig.d.ts +1 -0
  42. package/dist/src/extensions/Blocks/Recommendation/constants/index.d.ts +1 -1
  43. package/dist/src/extensions/Blocks/Recommendation/constants/selectors.d.ts +10 -0
  44. package/dist/src/extensions/Blocks/Recommendation/controls/cardComposition/index.d.ts +10 -0
  45. package/dist/src/extensions/Blocks/Recommendation/controls/index.d.ts +1 -0
  46. package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +3 -12
  47. package/dist/src/extensions/Blocks/Recommendation/controls/main/utils.d.ts +1 -0
  48. package/dist/src/extensions/Blocks/Recommendation/controls/title/index.d.ts +86 -0
  49. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +10 -210
  50. package/dist/src/extensions/Blocks/Recommendation/templates/titleRows.d.ts +13 -0
  51. package/dist/src/extensions/Blocks/Recommendation/types/nodeConfig.d.ts +0 -6
  52. package/dist/src/extensions/Blocks/common-control.d.ts +1 -4
  53. package/dist/src/services/recommendationApi.d.ts +1 -4
  54. package/dist/src/stores/config.d.ts +0 -18
  55. package/dist/static/styles/customEditorStyle.css.js +3 -1
  56. package/dist/utils/dateUtil.js +10 -23
  57. package/dist/utils/templatePreparation.js +34 -37
  58. package/package.json +1 -2
  59. package/dist/components/organisms/extensions/recommendation/AssignStrategyDrawer.vue.js +0 -18
  60. package/dist/components/organisms/extensions/recommendation/AssignStrategyDrawer.vue2.js +0 -67
  61. package/dist/components/organisms/extensions/recommendation/StrategyInfoBox.vue.js +0 -20
  62. package/dist/components/organisms/extensions/recommendation/StrategyInfoBox.vue2.js +0 -55
  63. package/dist/extensions/Blocks/Recommendation/controls/main/strategy.js +0 -132
  64. package/dist/node_modules/@useinsider/design-system-organisms/dist/index-Dc9AygoZ.js +0 -526
  65. package/dist/node_modules/@useinsider/design-system-organisms/dist/index.js +0 -9345
  66. package/dist/node_modules/@useinsider/design-system-organisms/node_modules/@useinsider/design-system-vue/dist/InAccordion.js +0 -174
  67. package/dist/node_modules/@useinsider/design-system-organisms/node_modules/@useinsider/design-system-vue/dist/InBasicTextInput.js +0 -381
  68. package/dist/node_modules/@useinsider/design-system-organisms/node_modules/@useinsider/design-system-vue/dist/InBox.js +0 -236
  69. package/dist/node_modules/@useinsider/design-system-organisms/node_modules/@useinsider/design-system-vue/dist/InBulkActions.js +0 -70
  70. package/dist/node_modules/@useinsider/design-system-organisms/node_modules/@useinsider/design-system-vue/dist/InButton.js +0 -350
  71. package/dist/node_modules/@useinsider/design-system-organisms/node_modules/@useinsider/design-system-vue/dist/InButtonV2.js +0 -371
  72. package/dist/node_modules/@useinsider/design-system-organisms/node_modules/@useinsider/design-system-vue/dist/InCheckBox.js +0 -152
  73. package/dist/node_modules/@useinsider/design-system-organisms/node_modules/@useinsider/design-system-vue/dist/InChips.js +0 -141
  74. package/dist/node_modules/@useinsider/design-system-organisms/node_modules/@useinsider/design-system-vue/dist/InCustomDropDown.js +0 -1047
  75. package/dist/node_modules/@useinsider/design-system-organisms/node_modules/@useinsider/design-system-vue/dist/InDataTableV2.js +0 -96050
  76. package/dist/node_modules/@useinsider/design-system-organisms/node_modules/@useinsider/design-system-vue/dist/InDatePicker.js +0 -2042
  77. package/dist/node_modules/@useinsider/design-system-organisms/node_modules/@useinsider/design-system-vue/dist/InDrawer.js +0 -166
  78. package/dist/node_modules/@useinsider/design-system-organisms/node_modules/@useinsider/design-system-vue/dist/InDropDown.js +0 -1098
  79. package/dist/node_modules/@useinsider/design-system-organisms/node_modules/@useinsider/design-system-vue/dist/InIcons.js +0 -55
  80. package/dist/node_modules/@useinsider/design-system-organisms/node_modules/@useinsider/design-system-vue/dist/InInfoBox.js +0 -265
  81. package/dist/node_modules/@useinsider/design-system-organisms/node_modules/@useinsider/design-system-vue/dist/InLinks.js +0 -184
  82. package/dist/node_modules/@useinsider/design-system-organisms/node_modules/@useinsider/design-system-vue/dist/InLoading.js +0 -50
  83. package/dist/node_modules/@useinsider/design-system-organisms/node_modules/@useinsider/design-system-vue/dist/InModals.js +0 -453
  84. package/dist/node_modules/@useinsider/design-system-organisms/node_modules/@useinsider/design-system-vue/dist/InNoData.js +0 -145
  85. package/dist/node_modules/@useinsider/design-system-organisms/node_modules/@useinsider/design-system-vue/dist/InOnPageMessage.js +0 -176
  86. package/dist/node_modules/@useinsider/design-system-organisms/node_modules/@useinsider/design-system-vue/dist/InProgress.js +0 -266
  87. package/dist/node_modules/@useinsider/design-system-organisms/node_modules/@useinsider/design-system-vue/dist/InRadioButton.js +0 -114
  88. package/dist/node_modules/@useinsider/design-system-organisms/node_modules/@useinsider/design-system-vue/dist/InSegments.js +0 -200
  89. package/dist/node_modules/@useinsider/design-system-organisms/node_modules/@useinsider/design-system-vue/dist/InSelect.js +0 -451
  90. package/dist/node_modules/@useinsider/design-system-organisms/node_modules/@useinsider/design-system-vue/dist/InSkeleton.js +0 -49
  91. package/dist/node_modules/@useinsider/design-system-organisms/node_modules/@useinsider/design-system-vue/dist/InStatusText.js +0 -119
  92. package/dist/node_modules/@useinsider/design-system-organisms/node_modules/@useinsider/design-system-vue/dist/InTabs.js +0 -4309
  93. package/dist/node_modules/@useinsider/design-system-organisms/node_modules/@useinsider/design-system-vue/dist/InTagsText.js +0 -129
  94. package/dist/node_modules/@useinsider/design-system-organisms/node_modules/@useinsider/design-system-vue/dist/InTextInput.js +0 -503
  95. package/dist/node_modules/@useinsider/design-system-organisms/node_modules/@useinsider/design-system-vue/dist/InToasts.js +0 -253
  96. package/dist/node_modules/@useinsider/design-system-organisms/node_modules/@useinsider/design-system-vue/dist/InToggle.js +0 -107
  97. package/dist/node_modules/@useinsider/design-system-organisms/node_modules/@useinsider/design-system-vue/dist/InTooltip.js +0 -134
  98. package/dist/node_modules/@useinsider/design-system-organisms/node_modules/@useinsider/design-system-vue/dist/InTooltipV2.js +0 -464
  99. package/dist/node_modules/@useinsider/design-system-organisms/node_modules/@useinsider/design-system-vue/dist/chunks/_commonjsHelpers.BItOPCY9.js +0 -28
  100. package/dist/node_modules/@useinsider/design-system-organisms/node_modules/@useinsider/design-system-vue/dist/chunks/_plugin-vue2_normalizer.WQT2Fc8L.js +0 -23
  101. package/dist/node_modules/@useinsider/design-system-organisms/node_modules/@useinsider/design-system-vue/dist/chunks/clickOutside.qP9M0QCm.js +0 -29
  102. package/dist/node_modules/@useinsider/design-system-organisms/node_modules/@useinsider/design-system-vue/dist/chunks/helpers.CgHNyjAJ.js +0 -109
  103. package/dist/node_modules/@useinsider/design-system-organisms/node_modules/@useinsider/design-system-vue/dist/chunks/index.Bw_06igr.js +0 -2339
  104. package/dist/node_modules/@useinsider/design-system-organisms/node_modules/@useinsider/design-system-vue/dist/chunks/localLocalesMixin.DYMhydo2.js +0 -16
  105. package/dist/node_modules/@useinsider/design-system-organisms/node_modules/@useinsider/design-system-vue/dist/chunks/useLocalLocales.Ckuhy7d-.js +0 -17
  106. package/dist/node_modules/@useinsider/design-system-organisms/node_modules/@useinsider/design-system-vue/dist/chunks/vue-property-decorator.BtlM7Epa.js +0 -188
  107. package/dist/src/components/organisms/extensions/recommendation/AssignStrategyDrawer.vue.d.ts +0 -3
  108. package/dist/src/components/organisms/extensions/recommendation/StrategyInfoBox.vue.d.ts +0 -24
  109. package/dist/src/extensions/Blocks/Recommendation/controls/main/strategy.d.ts +0 -37
  110. package/dist/src/mock/api/recommendation-strategies.d.ts +0 -43
  111. package/dist/static/styles/components/recommendation-strategy.css.js +0 -171
@@ -0,0 +1,119 @@
1
+ var R = Object.defineProperty;
2
+ var f = (s, t, e) => t in s ? R(s, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : s[t] = e;
3
+ var a = (s, t, e) => f(s, typeof t != "symbol" ? t + "" : t, e);
4
+ import { RecommendationBlockId as d } from "../../extensions/Blocks/Recommendation/constants/blockIds.js";
5
+ import { BLOCK_ROOT_SELECTOR as u, CSS_CLASS_SKIP_COMPILE as m, ATTR_DATA_ATTRIBUTE_TYPE as S, ATTR_RECOMMENDATION_TITLE as l, CONTAINER_SELECTOR as E, CSS_CLASS_TITLE_CELL as c, CSS_CLASS_SPACER as C, CSS_CLASS_ATTRIBUTE_ROW as A, ATTR_DATA_VISIBILITY as L } from "../../extensions/Blocks/Recommendation/constants/selectors.js";
6
+ const p = u.slice(1), g = `${u}:not(.${m})`, O = `[${S}="${l}"]`, h = "td.esd-block-text", _ = "table.container > tbody", T = "esd-ext-config";
7
+ class y {
8
+ constructor() {
9
+ a(this, "parser");
10
+ this.parser = new DOMParser();
11
+ }
12
+ migrate(t) {
13
+ try {
14
+ if (!t.includes(p))
15
+ return t;
16
+ const e = this.parser.parseFromString(t, "text/html");
17
+ return Array.from(e.querySelectorAll(g)).reduce(
18
+ (n, o) => this._migrateBlock(o) || n,
19
+ !1
20
+ ) ? e.documentElement.outerHTML : t;
21
+ } catch (e) {
22
+ return console.error("RecommendationTitleMigrator failed:", e), t;
23
+ }
24
+ }
25
+ /** Migrates one block. Returns `true` when the block was changed. */
26
+ _migrateBlock(t) {
27
+ if (t.querySelector(O) || this._hasRecordedTitleState(t))
28
+ return !1;
29
+ const e = this._findTitleCell(t), i = e !== null && (e.textContent ?? "").trim().length > 0;
30
+ return i ? this._tagExistingTitle(t, e) : this._removeTitleRemnants(t, e), this._writeVisibility(t, i), !0;
31
+ }
32
+ /** The only `esd-block-text` cell outside the product containers is the title. */
33
+ _findTitleCell(t) {
34
+ return Array.from(t.querySelectorAll(h)).find((e) => !e.closest(E) && this._isTitlePosition(t, e)) ?? null;
35
+ }
36
+ _isTitlePosition(t, e) {
37
+ var r;
38
+ const i = this._wrapperRowOf(t, e);
39
+ return e.classList.contains(c) || i !== null && i === ((r = i.parentElement) == null ? void 0 : r.firstElementChild);
40
+ }
41
+ /**
42
+ * Stamps the attribute-row tagging onto the title's wrapper row and the spacer
43
+ * below it, so one toggle governs the pair and the compiler drops both when off.
44
+ */
45
+ _tagExistingTitle(t, e) {
46
+ e.classList.add(c), e.setAttribute("esd-extension-block-id", d.TITLE);
47
+ const i = this._wrapperRowOf(t, e);
48
+ if (!i)
49
+ return;
50
+ this._tagRow(i);
51
+ const r = i.nextElementSibling;
52
+ r && this._isSpacerRow(r) && this._tagRow(r);
53
+ }
54
+ /** The `<tr>` inside `table.container > tbody` that wraps the title's own table. */
55
+ _wrapperRowOf(t, e) {
56
+ if (!e)
57
+ return null;
58
+ const i = t.querySelector(_);
59
+ return Array.from((i == null ? void 0 : i.children) ?? []).find((r) => r.contains(e)) ?? null;
60
+ }
61
+ /**
62
+ * Direct children only — a product-container row holds spacer cells further down,
63
+ * and `querySelector` would happily reach them. (`:scope >` is unsupported in happy-dom.)
64
+ */
65
+ _isSpacerRow(t) {
66
+ return Array.from(t.children).some((e) => e.classList.contains(C));
67
+ }
68
+ _tagRow(t) {
69
+ t.classList.add(A), t.setAttribute(S, l), t.setAttribute(L, "1");
70
+ }
71
+ /**
72
+ * A deleted title leaves nothing to tag — the toggle re-injects the markup only
73
+ * when the user switches it back on. Its leftovers (an emptied wrapper row, the
74
+ * spacer that trailed it) would otherwise render as blank padding on top.
75
+ */
76
+ _removeTitleRemnants(t, e) {
77
+ var o;
78
+ const i = this._wrapperRowOf(t, e), r = i == null ? void 0 : i.nextElementSibling;
79
+ if (r && this._isSpacerRow(r) && r.remove(), i) {
80
+ i.remove();
81
+ return;
82
+ }
83
+ const n = (o = t.querySelector(_)) == null ? void 0 : o.firstElementChild;
84
+ n && this._isSpacerRow(n) && n.remove();
85
+ }
86
+ /**
87
+ * Mirrors the resolved state into the persisted config blob, so a saved module
88
+ * whose `data-*` attributes Stripo strips on re-drop still restores the toggle.
89
+ */
90
+ _writeVisibility(t, e) {
91
+ const i = this._readConfig(t);
92
+ if (!i)
93
+ return;
94
+ const r = typeof i.visibility == "object" && i.visibility !== null ? i.visibility : {};
95
+ i.visibility = { ...r, [l]: e }, t.setAttribute(T, JSON.stringify(i));
96
+ }
97
+ _hasRecordedTitleState(t) {
98
+ var i;
99
+ const e = (i = this._readConfig(t)) == null ? void 0 : i.visibility;
100
+ return typeof e == "object" && e !== null && l in e;
101
+ }
102
+ _readConfig(t) {
103
+ const e = t.getAttribute(T);
104
+ if (!e)
105
+ return null;
106
+ try {
107
+ const i = JSON.parse(e);
108
+ return typeof i == "object" && i !== null ? i : null;
109
+ } catch {
110
+ return null;
111
+ }
112
+ }
113
+ }
114
+ function v(s) {
115
+ return new y().migrate(s);
116
+ }
117
+ export {
118
+ v as migrateRecommendationTitle
119
+ };
@@ -1,6 +1,5 @@
1
- const t = "tr-TR", T = "default", L = "UTC";
1
+ const t = "tr-TR", L = "default";
2
2
  export {
3
- T as DEFAULT,
4
- t as DEFAULT_LOCALE,
5
- L as DEFAULT_TZ
3
+ L as DEFAULT,
4
+ t as DEFAULT_LOCALE
6
5
  };
@@ -2,11 +2,10 @@ import { useTranslations as r } from "../../composables/useTranslations.js";
2
2
  const l = {
3
3
  RECOMMENDATION_API_URL: "https://recommendationv2.api.useinsider.com",
4
4
  // Relative path → same-origin as the embedding inone dashboard.
5
- PRODUCT_ATTRIBUTES_PATH: "/product-attributes/get-attributes",
6
- RECOMMENDATION_STRATEGIES_PATH: "/api/recommendation-strategies"
7
- }, c = "[sr_strategies.status][=][active]*[sr_strategies.suitable_channels][~][EMAIL]", d = {
5
+ PRODUCT_ATTRIBUTES_PATH: "/product-attributes/get-attributes"
6
+ }, c = {
8
7
  CLIENT_ID: "clientId"
9
- }, m = () => {
8
+ }, d = () => {
10
9
  const e = r();
11
10
  return [
12
11
  {
@@ -70,14 +69,14 @@ const l = {
70
69
  path: "top-sellers"
71
70
  }
72
71
  ];
73
- }, p = ["discount", "omnibus_price", "omnibus_discount", "price", "original_price"], v = [
72
+ }, m = ["discount", "omnibus_price", "omnibus_discount", "price", "original_price"], p = [
74
73
  { text: "before the amount", value: "0" },
75
74
  { text: "after the amount", value: "1" }
76
- ], h = [
75
+ ], v = [
77
76
  { text: "dot(.)", value: "." },
78
77
  { text: "comma(,)", value: "," },
79
78
  { text: "space( )", value: " " }
80
- ], x = [
79
+ ], h = [
81
80
  { text: "0", value: "0" },
82
81
  { text: "1", value: "1" },
83
82
  { text: "2", value: "2" },
@@ -89,55 +88,54 @@ const l = {
89
88
  { text: "contains", value: "~" },
90
89
  { text: "does not contain", value: "!~" },
91
90
  { text: "any of", value: a }
92
- ], s = [
91
+ ], n = [
93
92
  { text: "is exactly", value: "=" },
94
93
  { text: "is not exactly", value: "!==" },
95
94
  { text: "contains", value: "~" },
96
95
  { text: "does not contain", value: "!~" },
97
96
  { text: "any of", value: a }
98
- ], n = [
97
+ ], o = [
99
98
  { text: "is equal to", value: "=" },
100
99
  { text: "is greater than", value: ">" },
101
100
  { text: "is less than", value: "<" }
102
- ], o = [
101
+ ], s = [
103
102
  { text: "is equal to", value: "=" },
104
103
  { text: "after", value: ">" },
105
104
  { text: "before", value: "<" }
106
105
  ], i = [
107
106
  { text: "true", value: "==" },
108
107
  { text: "false", value: "!=" }
109
- ], b = (e) => {
108
+ ], x = (e) => {
110
109
  if (!e)
111
110
  return t;
112
111
  switch (e) {
113
112
  case "Boolean":
114
113
  return i;
115
114
  case "Date":
116
- return o;
115
+ return s;
117
116
  case "Number":
118
- return n;
117
+ return o;
119
118
  case "String":
120
119
  return t;
121
120
  case "Strings":
122
- return s;
121
+ return n;
123
122
  default:
124
123
  return t;
125
124
  }
126
125
  };
127
126
  export {
128
127
  a as OP_ANY_OF,
129
- p as PriceAttributes,
130
- d as QUERY_PARAMS,
131
- c as RRS_ACTIVE_EMAIL_FILTER,
128
+ m as PriceAttributes,
129
+ c as QUERY_PARAMS,
132
130
  l as URLS,
133
- x as currencyDecimalCounts,
134
- v as currencyLocationMaps,
135
- h as currencyOperators,
136
- b as getOperatorOptions,
137
- m as getRecommendationFeedSourceMaps,
138
- s as operatorOptionsForArrayOfStrings,
131
+ h as currencyDecimalCounts,
132
+ p as currencyLocationMaps,
133
+ v as currencyOperators,
134
+ x as getOperatorOptions,
135
+ d as getRecommendationFeedSourceMaps,
136
+ n as operatorOptionsForArrayOfStrings,
139
137
  i as operatorOptionsForBooleans,
140
- o as operatorOptionsForDates,
141
- n as operatorOptionsForNumbers,
138
+ s as operatorOptionsForDates,
139
+ o as operatorOptionsForNumbers,
142
140
  t as operatorOptionsForStrings
143
141
  };
@@ -1,4 +1,4 @@
1
- var b = /* @__PURE__ */ ((r) => (r.BUTTON = "recommendation-block-button", r.NAME = "recommendation-block-name", r.PRICE = "recommendation-block-price", r.OLD_PRICE = "recommendation-block-old-price", r.OMNIBUS_PRICE = "recommendation-block-omnibus-price", r.OMNIBUS_DISCOUNT = "recommendation-block-omnibus-discount", r.IMAGE = "recommendation-block-image", r.CUSTOM_ATTRIBUTE = "recommendation-block-custom-attribute", r))(b || {});
1
+ var b = /* @__PURE__ */ ((r) => (r.BUTTON = "recommendation-block-button", r.NAME = "recommendation-block-name", r.PRICE = "recommendation-block-price", r.OLD_PRICE = "recommendation-block-old-price", r.OMNIBUS_PRICE = "recommendation-block-omnibus-price", r.OMNIBUS_DISCOUNT = "recommendation-block-omnibus-discount", r.IMAGE = "recommendation-block-image", r.CUSTOM_ATTRIBUTE = "recommendation-block-custom-attribute", r.TITLE = "recommendation-block-title", r))(b || {});
2
2
  export {
3
3
  b as RecommendationBlockId
4
4
  };
@@ -1,4 +1,4 @@
1
- var o = /* @__PURE__ */ ((c) => (c.BLOCK_BACKGROUND = "recommendation-block-background-color-control", c.BUTTON_ALIGN = "recommendation-block-button-align-control", c.BUTTON_BORDER = "recommendation-block-button-border-control", c.BUTTON_BORDER_RADIUS = "recommendation-block-button-border-radius-control", c.BUTTON_COLOR = "recommendation-block-button-color-control", c.BUTTON_FIT_TO_CONTENT = "recommendation-block-button-fit-to-content-control", c.BUTTON_FONT_FAMILY = "recommendation-block-button-font-family-control", c.BUTTON_MARGINS = "recommendation-block-button-margins-control", c.BUTTON_PADDINGS = "recommendation-block-button-paddings-control", c.BUTTON_TEXT = "recommendation-block-button-text-control", c.BUTTON_TEXT_SIZE = "recommendation-block-button-text-size-control", c.BUTTON_TEXT_STYLE_AND_FONT_COLOR = "recommendation-block-button-text-style-and-font-color-control", c.NAME_ALIGN = "recommendation-block-name-align-control", c.NAME_BACKGROUND = "recommendation-block-name-background-control", c.NAME_COLOR = "recommendation-block-name-color-control", c.NAME_FONT_FAMILY = "recommendation-block-name-font-family-control", c.NAME_PADDINGS = "recommendation-block-name-paddings-control", c.NAME_SIZE = "recommendation-block-name-size-control", c.NAME_STYLE = "recommendation-block-name-style-control", c.NAME_TEXT_TRIM = "recommendation-block-name-text-trim-control", c.PRICE_ALIGN = "recommendation-block-price-align-control", c.PRICE_BACKGROUND = "recommendation-block-price-background-control", c.PRICE_COLOR = "recommendation-block-price-color-control", c.PRICE_FONT_FAMILY = "recommendation-block-price-font-family-control", c.PRICE_PADDINGS = "recommendation-block-price-paddings-control", c.PRICE_SIZE = "recommendation-block-price-size-control", c.PRICE_STYLE = "recommendation-block-price-style-control", c.OLD_PRICE_ALIGN = "recommendation-block-old-price-align-control", c.OLD_PRICE_BACKGROUND = "recommendation-block-old-price-background-control", c.OLD_PRICE_COLOR = "recommendation-block-old-price-color-control", c.OLD_PRICE_FONT_FAMILY = "recommendation-block-old-price-font-family-control", c.OLD_PRICE_PADDINGS = "recommendation-block-old-price-paddings-control", c.OLD_PRICE_SIZE = "recommendation-block-old-price-size-control", c.OLD_PRICE_STYLE = "recommendation-block-old-price-style-control", c.OMNIBUS_PRICE_ALIGN = "recommendation-block-omnibus-price-align-control", c.OMNIBUS_PRICE_BACKGROUND = "recommendation-block-omnibus-price-background-control", c.OMNIBUS_PRICE_COLOR = "recommendation-block-omnibus-price-color-control", c.OMNIBUS_PRICE_FONT_FAMILY = "recommendation-block-omnibus-price-font-family-control", c.OMNIBUS_PRICE_PADDINGS = "recommendation-block-omnibus-price-paddings-control", c.OMNIBUS_PRICE_SIZE = "recommendation-block-omnibus-price-size-control", c.OMNIBUS_PRICE_STYLE = "recommendation-block-omnibus-price-style-control", c.OMNIBUS_PRICE_TEXT_BEFORE = "recommendation-block-omnibus-price-text-before-control", c.OMNIBUS_PRICE_TEXT_AFTER = "recommendation-block-omnibus-price-text-after-control", c.OMNIBUS_DISCOUNT_ALIGN = "recommendation-block-omnibus-discount-align-control", c.OMNIBUS_DISCOUNT_BACKGROUND = "recommendation-block-omnibus-discount-background-control", c.OMNIBUS_DISCOUNT_COLOR = "recommendation-block-omnibus-discount-color-control", c.OMNIBUS_DISCOUNT_FONT_FAMILY = "recommendation-block-omnibus-discount-font-family-control", c.OMNIBUS_DISCOUNT_PADDINGS = "recommendation-block-omnibus-discount-paddings-control", c.OMNIBUS_DISCOUNT_SIZE = "recommendation-block-omnibus-discount-size-control", c.OMNIBUS_DISCOUNT_STYLE = "recommendation-block-omnibus-discount-style-control", c.OMNIBUS_DISCOUNT_TEXT_BEFORE = "recommendation-block-omnibus-discount-text-before-control", c.OMNIBUS_DISCOUNT_TEXT_AFTER = "recommendation-block-omnibus-discount-text-after-control", c.IMAGE_SIZE = "recommendation-block-image-size-control", c.IMAGE_MARGINS = "recommendation-block-image-margins-control", c.CUSTOM_ATTR_ALIGN = "recommendation-block-custom-attr-align-control", c.CUSTOM_ATTR_BACKGROUND = "recommendation-block-custom-attr-background-control", c.CUSTOM_ATTR_COLOR = "recommendation-block-custom-attr-color-control", c.CUSTOM_ATTR_FONT_FAMILY = "recommendation-block-custom-attr-font-family-control", c.CUSTOM_ATTR_PADDINGS = "recommendation-block-custom-attr-paddings-control", c.CUSTOM_ATTR_SIZE = "recommendation-block-custom-attr-size-control", c.CUSTOM_ATTR_STYLE = "recommendation-block-custom-attr-style-control", c.CUSTOM_ATTR_TEXT_TRIM = "recommendation-block-custom-attr-text-trim-control", c.SYNC_INFO_MESSAGE = "recommendation-block-sync-info-message", c))(o || {});
1
+ var o = /* @__PURE__ */ ((c) => (c.BLOCK_BACKGROUND = "recommendation-block-background-color-control", c.BUTTON_ALIGN = "recommendation-block-button-align-control", c.BUTTON_BORDER = "recommendation-block-button-border-control", c.BUTTON_BORDER_RADIUS = "recommendation-block-button-border-radius-control", c.BUTTON_COLOR = "recommendation-block-button-color-control", c.BUTTON_FIT_TO_CONTENT = "recommendation-block-button-fit-to-content-control", c.BUTTON_FONT_FAMILY = "recommendation-block-button-font-family-control", c.BUTTON_MARGINS = "recommendation-block-button-margins-control", c.BUTTON_PADDINGS = "recommendation-block-button-paddings-control", c.BUTTON_TEXT = "recommendation-block-button-text-control", c.BUTTON_TEXT_SIZE = "recommendation-block-button-text-size-control", c.BUTTON_TEXT_STYLE_AND_FONT_COLOR = "recommendation-block-button-text-style-and-font-color-control", c.NAME_ALIGN = "recommendation-block-name-align-control", c.NAME_BACKGROUND = "recommendation-block-name-background-control", c.NAME_COLOR = "recommendation-block-name-color-control", c.NAME_FONT_FAMILY = "recommendation-block-name-font-family-control", c.NAME_PADDINGS = "recommendation-block-name-paddings-control", c.NAME_SIZE = "recommendation-block-name-size-control", c.NAME_STYLE = "recommendation-block-name-style-control", c.NAME_TEXT_TRIM = "recommendation-block-name-text-trim-control", c.PRICE_ALIGN = "recommendation-block-price-align-control", c.PRICE_BACKGROUND = "recommendation-block-price-background-control", c.PRICE_COLOR = "recommendation-block-price-color-control", c.PRICE_FONT_FAMILY = "recommendation-block-price-font-family-control", c.PRICE_PADDINGS = "recommendation-block-price-paddings-control", c.PRICE_SIZE = "recommendation-block-price-size-control", c.PRICE_STYLE = "recommendation-block-price-style-control", c.OLD_PRICE_ALIGN = "recommendation-block-old-price-align-control", c.OLD_PRICE_BACKGROUND = "recommendation-block-old-price-background-control", c.OLD_PRICE_COLOR = "recommendation-block-old-price-color-control", c.OLD_PRICE_FONT_FAMILY = "recommendation-block-old-price-font-family-control", c.OLD_PRICE_PADDINGS = "recommendation-block-old-price-paddings-control", c.OLD_PRICE_SIZE = "recommendation-block-old-price-size-control", c.OLD_PRICE_STYLE = "recommendation-block-old-price-style-control", c.OMNIBUS_PRICE_ALIGN = "recommendation-block-omnibus-price-align-control", c.OMNIBUS_PRICE_BACKGROUND = "recommendation-block-omnibus-price-background-control", c.OMNIBUS_PRICE_COLOR = "recommendation-block-omnibus-price-color-control", c.OMNIBUS_PRICE_FONT_FAMILY = "recommendation-block-omnibus-price-font-family-control", c.OMNIBUS_PRICE_PADDINGS = "recommendation-block-omnibus-price-paddings-control", c.OMNIBUS_PRICE_SIZE = "recommendation-block-omnibus-price-size-control", c.OMNIBUS_PRICE_STYLE = "recommendation-block-omnibus-price-style-control", c.OMNIBUS_PRICE_TEXT_BEFORE = "recommendation-block-omnibus-price-text-before-control", c.OMNIBUS_PRICE_TEXT_AFTER = "recommendation-block-omnibus-price-text-after-control", c.OMNIBUS_DISCOUNT_ALIGN = "recommendation-block-omnibus-discount-align-control", c.OMNIBUS_DISCOUNT_BACKGROUND = "recommendation-block-omnibus-discount-background-control", c.OMNIBUS_DISCOUNT_COLOR = "recommendation-block-omnibus-discount-color-control", c.OMNIBUS_DISCOUNT_FONT_FAMILY = "recommendation-block-omnibus-discount-font-family-control", c.OMNIBUS_DISCOUNT_PADDINGS = "recommendation-block-omnibus-discount-paddings-control", c.OMNIBUS_DISCOUNT_SIZE = "recommendation-block-omnibus-discount-size-control", c.OMNIBUS_DISCOUNT_STYLE = "recommendation-block-omnibus-discount-style-control", c.OMNIBUS_DISCOUNT_TEXT_BEFORE = "recommendation-block-omnibus-discount-text-before-control", c.OMNIBUS_DISCOUNT_TEXT_AFTER = "recommendation-block-omnibus-discount-text-after-control", c.IMAGE_SIZE = "recommendation-block-image-size-control", c.IMAGE_MARGINS = "recommendation-block-image-margins-control", c.CUSTOM_ATTR_ALIGN = "recommendation-block-custom-attr-align-control", c.CUSTOM_ATTR_BACKGROUND = "recommendation-block-custom-attr-background-control", c.CUSTOM_ATTR_COLOR = "recommendation-block-custom-attr-color-control", c.CUSTOM_ATTR_FONT_FAMILY = "recommendation-block-custom-attr-font-family-control", c.CUSTOM_ATTR_PADDINGS = "recommendation-block-custom-attr-paddings-control", c.CUSTOM_ATTR_SIZE = "recommendation-block-custom-attr-size-control", c.CUSTOM_ATTR_STYLE = "recommendation-block-custom-attr-style-control", c.CUSTOM_ATTR_TEXT_TRIM = "recommendation-block-custom-attr-text-trim-control", c.TITLE_ALIGN = "recommendation-block-title-align-control", c.TITLE_BACKGROUND = "recommendation-block-title-background-control", c.TITLE_COLOR = "recommendation-block-title-color-control", c.TITLE_FONT_FAMILY = "recommendation-block-title-font-family-control", c.TITLE_PADDINGS = "recommendation-block-title-paddings-control", c.TITLE_SIZE = "recommendation-block-title-size-control", c.TITLE_STYLE = "recommendation-block-title-style-control", c.SYNC_INFO_MESSAGE = "recommendation-block-sync-info-message", c))(o || {});
2
2
  export {
3
3
  o as RecommendationControlId
4
4
  };
@@ -1,5 +1,5 @@
1
- import { DEFAULT_COLUMN_SPACING as n, DEFAULT_ROW_SPACING as s, DEFAULT_MOBILE_ROW_SPACING as R, DEFAULT_MOBILE_COLUMN_SPACING as U, DEFAULT_MOBILE_CARDS_IN_ROW as e, DEFAULT_CARDS_IN_ROW as a } from "./layout.js";
2
- import { ATTR_PRODUCT_IMAGE as o, ATTR_PRODUCT_NAME as t, ATTR_PRODUCT_OLD_PRICE as _, ATTR_PRODUCT_PRICE as T, ATTR_PRODUCT_OMNIBUS_PRICE as r, ATTR_PRODUCT_OMNIBUS_DISCOUNT as i, ATTR_PRODUCT_BUTTON as I } from "./selectors.js";
1
+ import { DEFAULT_COLUMN_SPACING as n, DEFAULT_ROW_SPACING as R, DEFAULT_MOBILE_ROW_SPACING as s, DEFAULT_MOBILE_COLUMN_SPACING as O, DEFAULT_MOBILE_CARDS_IN_ROW as e, DEFAULT_CARDS_IN_ROW as U } from "./layout.js";
2
+ import { ATTR_PRODUCT_IMAGE as o, ATTR_PRODUCT_NAME as t, ATTR_PRODUCT_OLD_PRICE as _, ATTR_PRODUCT_PRICE as T, ATTR_PRODUCT_OMNIBUS_PRICE as r, ATTR_PRODUCT_OMNIBUS_DISCOUNT as I, ATTR_PRODUCT_BUTTON as i, ATTR_RECOMMENDATION_TITLE as A } from "./selectors.js";
3
3
  const C = {
4
4
  code: "USD",
5
5
  symbol: "USD",
@@ -10,25 +10,26 @@ const C = {
10
10
  }, D = {
11
11
  textBefore: "",
12
12
  textAfter: ""
13
- }, O = {
13
+ }, a = {
14
14
  textBefore: "",
15
15
  textAfter: ""
16
- }, A = [
16
+ }, E = [
17
17
  o,
18
18
  t,
19
19
  _,
20
20
  T,
21
21
  r,
22
- i,
23
- I
22
+ I,
23
+ i
24
24
  ], c = {
25
+ [A]: !0,
25
26
  [o]: !0,
26
27
  [t]: !0,
27
28
  [T]: !0,
28
29
  [_]: !0,
29
30
  [r]: !1,
30
- [i]: !1,
31
- [I]: !0
31
+ [I]: !1,
32
+ [i]: !0
32
33
  }, l = {
33
34
  // Settings
34
35
  strategy: "mostPopular",
@@ -38,24 +39,22 @@ const C = {
38
39
  language: "en_US",
39
40
  currency: C,
40
41
  filters: [],
41
- // Version NOT bumped: mergeWithDefaults() backfills '' for older configs.
42
- strategyId: "",
43
42
  // Layout
44
43
  layout: "grid",
45
- cardsInRow: a,
44
+ cardsInRow: U,
46
45
  mobileCardsInRow: e,
47
46
  mobileLayoutEnabled: !1,
48
47
  previousMobileCardsInRow: e,
49
48
  columnSpacing: n,
50
- rowSpacing: s,
51
- mobileColumnSpacing: U,
52
- mobileRowSpacing: R,
49
+ rowSpacing: R,
50
+ mobileColumnSpacing: O,
51
+ mobileRowSpacing: s,
53
52
  // Composition
54
- composition: A,
53
+ composition: E,
55
54
  visibility: c,
56
55
  // Element settings
57
56
  omnibusPrice: D,
58
- omnibusDiscount: O,
57
+ omnibusDiscount: a,
59
58
  textTrimming: !1,
60
59
  // Price placement (block-level, affects all cards)
61
60
  // Default ON = current stacked look, so existing templates are unaffected.
@@ -69,14 +68,14 @@ const C = {
69
68
  // defaults, so no data transform (and no needsMigration trigger) is required.
70
69
  configVersion: 1,
71
70
  recommendationId: 0
72
- }, N = [11, 12], m = 1;
71
+ }, u = [11, 12], L = 1;
73
72
  export {
74
- m as CURRENT_CONFIG_VERSION,
75
- A as DEFAULT_COMPOSITION,
73
+ L as CURRENT_CONFIG_VERSION,
74
+ E as DEFAULT_COMPOSITION,
76
75
  C as DEFAULT_CURRENCY,
77
76
  l as DEFAULT_NODE_CONFIG,
78
- O as DEFAULT_OMNIBUS_DISCOUNT,
77
+ a as DEFAULT_OMNIBUS_DISCOUNT,
79
78
  D as DEFAULT_OMNIBUS_PRICE,
80
79
  c as DEFAULT_VISIBILITY,
81
- N as EXCLUDED_ALGORITHM_IDS
80
+ u as EXCLUDED_ALGORITHM_IDS
82
81
  };
@@ -1,11 +1,11 @@
1
- const t = ".recommendation-block-v2", c = ".ins-recommendation-product-container", o = ".ins-recommendation-desktop-container", n = ".ins-recommendation-mobile-container", _ = ".ins-recommendation-mobile-row", R = "reco-v3-button", r = "ins-skip-compile", e = {
1
+ const c = ".recommendation-block-v2", n = ".ins-recommendation-product-container", _ = ".ins-recommendation-desktop-container", R = ".ins-recommendation-mobile-container", r = ".ins-recommendation-mobile-row", e = "reco-v3-button", A = "ins-skip-compile", E = {
2
2
  CURRENCY: "currency",
3
3
  SYMBOL: "currency-symbol",
4
4
  ALIGNMENT: "currency-alignment",
5
5
  THOUSAND_SEPARATOR: "currency-thousand-separator",
6
6
  DECIMAL_SEPARATOR: "currency-decimal-separator",
7
7
  DECIMAL_COUNT: "currency-decimal-count"
8
- }, O = "productImage", A = "productName", s = "productPrice", E = "productOldPrice", i = "productOmnibusPrice", C = "productOmnibusDiscount", u = "productButton", a = "customAttr:", I = "data-custom-attributes", S = "data-card-composition", m = "product-attr", U = ".recommendation-attribute-row", d = "data-attribute-type", N = "product_attribute.", T = /* @__PURE__ */ new Set([
8
+ }, s = "productImage", O = "productName", i = "productPrice", C = "productOldPrice", S = "productOmnibusPrice", I = "productOmnibusDiscount", a = "productButton", u = "recommendationTitle", T = "ins-recommendation-title", m = `.${T}`, L = "customAttr:", d = "data-custom-attributes", U = "data-card-composition", N = "product-attr", t = "recommendation-attribute-row", P = `.${t}`, D = "data-attribute-type", p = "data-visibility", B = "spacer", M = "product_attribute.", o = /* @__PURE__ */ new Set([
9
9
  "name",
10
10
  // productName
11
11
  "price",
@@ -20,34 +20,40 @@ const t = ".recommendation-block-v2", c = ".ins-recommendation-product-container
20
20
  // productOmnibusPrice
21
21
  "omnibus_discount"
22
22
  // productOmnibusDiscount
23
- ]), P = /* @__PURE__ */ new Set([
24
- ...T,
23
+ ]), l = /* @__PURE__ */ new Set([
24
+ ...o,
25
25
  "currency",
26
26
  "discount"
27
27
  ]);
28
28
  export {
29
- a as ATTR_CUSTOM_PREFIX,
30
- d as ATTR_DATA_ATTRIBUTE_TYPE,
31
- S as ATTR_DATA_CARD_COMPOSITION,
32
- I as ATTR_DATA_CUSTOM_ATTRIBUTES,
33
- m as ATTR_PRODUCT_ATTR,
34
- u as ATTR_PRODUCT_BUTTON,
35
- O as ATTR_PRODUCT_IMAGE,
36
- A as ATTR_PRODUCT_NAME,
37
- E as ATTR_PRODUCT_OLD_PRICE,
38
- C as ATTR_PRODUCT_OMNIBUS_DISCOUNT,
39
- i as ATTR_PRODUCT_OMNIBUS_PRICE,
40
- s as ATTR_PRODUCT_PRICE,
41
- t as BLOCK_ROOT_SELECTOR,
42
- T as BUILT_IN_DEFAULT_ATTRIBUTES,
43
- c as CONTAINER_SELECTOR,
44
- R as CSS_CLASS_RECO_BUTTON,
45
- r as CSS_CLASS_SKIP_COMPILE,
46
- e as CURRENCY_ATTR,
47
- o as DESKTOP_CONTAINER_SELECTOR,
48
- n as MOBILE_CONTAINER_SELECTOR,
49
- _ as MOBILE_ROW_SELECTOR,
50
- N as PRODUCT_ATTRIBUTE_PREFIX,
51
- P as RECOMMENDATION_VARIABLE_BUILTIN_ATTRIBUTES,
52
- U as SELECTOR_ATTRIBUTE_ROW
29
+ L as ATTR_CUSTOM_PREFIX,
30
+ D as ATTR_DATA_ATTRIBUTE_TYPE,
31
+ U as ATTR_DATA_CARD_COMPOSITION,
32
+ d as ATTR_DATA_CUSTOM_ATTRIBUTES,
33
+ p as ATTR_DATA_VISIBILITY,
34
+ N as ATTR_PRODUCT_ATTR,
35
+ a as ATTR_PRODUCT_BUTTON,
36
+ s as ATTR_PRODUCT_IMAGE,
37
+ O as ATTR_PRODUCT_NAME,
38
+ C as ATTR_PRODUCT_OLD_PRICE,
39
+ I as ATTR_PRODUCT_OMNIBUS_DISCOUNT,
40
+ S as ATTR_PRODUCT_OMNIBUS_PRICE,
41
+ i as ATTR_PRODUCT_PRICE,
42
+ u as ATTR_RECOMMENDATION_TITLE,
43
+ c as BLOCK_ROOT_SELECTOR,
44
+ o as BUILT_IN_DEFAULT_ATTRIBUTES,
45
+ n as CONTAINER_SELECTOR,
46
+ t as CSS_CLASS_ATTRIBUTE_ROW,
47
+ e as CSS_CLASS_RECO_BUTTON,
48
+ A as CSS_CLASS_SKIP_COMPILE,
49
+ B as CSS_CLASS_SPACER,
50
+ T as CSS_CLASS_TITLE_CELL,
51
+ E as CURRENCY_ATTR,
52
+ _ as DESKTOP_CONTAINER_SELECTOR,
53
+ R as MOBILE_CONTAINER_SELECTOR,
54
+ r as MOBILE_ROW_SELECTOR,
55
+ M as PRODUCT_ATTRIBUTE_PREFIX,
56
+ l as RECOMMENDATION_VARIABLE_BUILTIN_ATTRIBUTES,
57
+ P as SELECTOR_ATTRIBUTE_ROW,
58
+ m as SELECTOR_TITLE_CELL
53
59
  };