@useinsider/guido 3.18.1-beta.8d3bf29 → 3.18.1

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 (40) hide show
  1. package/dist/@types/config/schemas.js +1 -3
  2. package/dist/components/Guido.vue.js +4 -4
  3. package/dist/components/Guido.vue2.js +53 -55
  4. package/dist/components/organisms/extensions/recommendation/AssignStrategyDrawer.vue.js +7 -7
  5. package/dist/components/organisms/extensions/recommendation/AssignStrategyDrawer.vue2.js +57 -82
  6. package/dist/components/organisms/onboarding/OnboardingWrapper.vue2.js +24 -28
  7. package/dist/composables/useCustomInterfaceAppearance.js +42 -46
  8. package/dist/enums/extensions/recommendationBlock.js +1 -2
  9. package/dist/extensions/Blocks/Recommendation/controls/main/index.js +69 -70
  10. package/dist/extensions/Blocks/Recommendation/controls/main/strategy.js +28 -67
  11. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +56 -98
  12. package/dist/guido.css +1 -1
  13. package/dist/services/recommendationApi.js +52 -61
  14. package/dist/src/@types/config/schemas.d.ts +0 -4
  15. package/dist/src/composables/useConfig.d.ts +0 -2
  16. package/dist/src/enums/extensions/recommendationBlock.d.ts +0 -1
  17. package/dist/src/extensions/Blocks/Recommendation/controls/main/strategy.d.ts +0 -2
  18. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +1 -54
  19. package/dist/src/services/recommendationApi.d.ts +1 -2
  20. package/dist/src/stores/config.d.ts +0 -160
  21. package/dist/src/stores/onboarding.d.ts +10 -808
  22. package/dist/static/styles/components/recommendation-strategy.css.js +5 -70
  23. package/dist/stores/config.js +59 -66
  24. package/dist/stores/onboarding.js +36 -46
  25. package/package.json +1 -1
  26. package/dist/components/organisms/extensions/recommendation/LegacyStrategyUpdatedModal.vue.js +0 -18
  27. package/dist/components/organisms/extensions/recommendation/LegacyStrategyUpdatedModal.vue2.js +0 -25
  28. package/dist/components/organisms/onboarding/RecommendationLegacyStrategyOnboarding.vue.js +0 -21
  29. package/dist/components/organisms/onboarding/RecommendationLegacyStrategyOnboarding.vue2.js +0 -46
  30. package/dist/components/organisms/onboarding/RecommendationStrategyOnboarding.vue.js +0 -21
  31. package/dist/components/organisms/onboarding/RecommendationStrategyOnboarding.vue2.js +0 -46
  32. package/dist/composables/useLegacyStrategyConversion.js +0 -54
  33. package/dist/extensions/Blocks/Recommendation/utils/legacyStrategyMigration.js +0 -58
  34. package/dist/src/components/organisms/extensions/recommendation/LegacyStrategyUpdatedModal.vue.d.ts +0 -2
  35. package/dist/src/components/organisms/onboarding/RecommendationLegacyStrategyOnboarding.vue.d.ts +0 -2
  36. package/dist/src/components/organisms/onboarding/RecommendationStrategyOnboarding.vue.d.ts +0 -2
  37. package/dist/src/composables/useLegacyStrategyConversion.d.ts +0 -3
  38. package/dist/src/extensions/Blocks/Recommendation/utils/legacyStrategyMigration.d.ts +0 -39
  39. package/dist/static/assets/icons/filled-arrow-rising.svg.js +0 -5
  40. package/dist/static/assets/icons/line-info.svg.js +0 -5
@@ -1,71 +1,67 @@
1
- import i from "../static/assets/icons/filled-arrow-rising.svg.js";
2
- import n from "../static/assets/icons/line-change.svg.js";
3
- import S from "../static/assets/icons/line-delete.svg.js";
4
- import p from "../static/assets/icons/line-info.svg.js";
5
- import s from "../static/assets/icons/line-plus.svg.js";
6
- import f from "../static/styles/base.css.js";
7
- import C from "../static/styles/components/alert-message.css.js";
8
- import a from "../static/styles/components/amp-block.css.js";
9
- import c from "../static/styles/components/base-input.css.js";
10
- import l from "../static/styles/components/button-group.css.js";
11
- import u from "../static/styles/components/button.css.js";
12
- import d from "../static/styles/components/combobox.css.js";
13
- import I from "../static/styles/components/counter.css.js";
14
- import g from "../static/styles/components/dropdown-menu.css.js";
1
+ import S from "../static/assets/icons/line-change.svg.js";
2
+ import i from "../static/assets/icons/line-delete.svg.js";
3
+ import n from "../static/assets/icons/line-plus.svg.js";
4
+ import p from "../static/styles/base.css.js";
5
+ import s from "../static/styles/components/alert-message.css.js";
6
+ import C from "../static/styles/components/amp-block.css.js";
7
+ import a from "../static/styles/components/base-input.css.js";
8
+ import f from "../static/styles/components/button-group.css.js";
9
+ import c from "../static/styles/components/button.css.js";
10
+ import u from "../static/styles/components/combobox.css.js";
11
+ import l from "../static/styles/components/counter.css.js";
12
+ import d from "../static/styles/components/dropdown-menu.css.js";
15
13
  import h from "../static/styles/components/loader.css.js";
16
- import w from "../static/styles/components/narrow-panel.css.js";
17
- import $ from "../static/styles/components/popup.css.js";
18
- import y from "../static/styles/components/recommendation-strategy.css.js";
19
- import b from "../static/styles/components/switcher.css.js";
20
- import B from "../static/styles/components/tabs.css.js";
21
- import A from "../static/styles/components/tools.css.js";
22
- import P from "../static/styles/components/version-history.css.js";
23
- import R from "../static/styles/components/wide-panel.css.js";
14
+ import g from "../static/styles/components/narrow-panel.css.js";
15
+ import I from "../static/styles/components/popup.css.js";
16
+ import w from "../static/styles/components/recommendation-strategy.css.js";
17
+ import y from "../static/styles/components/switcher.css.js";
18
+ import b from "../static/styles/components/tabs.css.js";
19
+ import B from "../static/styles/components/tools.css.js";
20
+ import $ from "../static/styles/components/version-history.css.js";
21
+ import P from "../static/styles/components/wide-panel.css.js";
24
22
  import x from "../static/styles/variables.css.js";
25
- function o(t, r) {
26
- return `--guido-icon-${t}: url("data:image/svg+xml,${encodeURIComponent(r.trim())}");`;
23
+ function r(t, o) {
24
+ return `--guido-icon-${t}: url("data:image/svg+xml,${encodeURIComponent(o.trim())}");`;
27
25
  }
28
- const V = `:host {
29
- ${o("line-change", n)}
30
- ${o("line-delete", S)}
31
- ${o("filled-arrow-rising", i)}
32
- ${o("line-info", p)}
33
- ${o("line-plus", s)}
34
- }`, D = [
26
+ const A = `:host {
27
+ ${r("line-change", S)}
28
+ ${r("line-delete", i)}
29
+ ${r("line-plus", n)}
30
+ }`, R = [
35
31
  x,
36
32
  // Must be on top
37
- V,
38
- f,
33
+ A,
34
+ p,
39
35
  // Must be on top
36
+ s,
40
37
  C,
41
38
  a,
39
+ f,
42
40
  c,
43
- l,
44
41
  u,
42
+ l,
45
43
  d,
46
- I,
47
- g,
48
44
  h,
49
- w,
50
- $,
45
+ g,
46
+ I,
47
+ y,
51
48
  b,
52
49
  B,
53
- A,
50
+ $,
54
51
  P,
55
- R,
56
- y
52
+ w
57
53
  // Last: overrides button.css / wide-panel.css defaults
58
54
  ].join(`
59
55
 
60
- `), ro = () => ({ importCss: () => {
61
- const r = new CSSStyleSheet();
62
- r.replaceSync(D);
56
+ `), Y = () => ({ importCss: () => {
57
+ const o = new CSSStyleSheet();
58
+ o.replaceSync(R);
63
59
  const e = document.querySelector("ui-editor");
64
60
  if (!e)
65
61
  return;
66
62
  const m = e.shadowRoot;
67
- m && (m.adoptedStyleSheets = [r]);
63
+ m && (m.adoptedStyleSheets = [o]);
68
64
  } });
69
65
  export {
70
- ro as useCustomInterfaceAppearance
66
+ Y as useCustomInterfaceAppearance
71
67
  };
@@ -4,8 +4,7 @@ const l = {
4
4
  // Relative path → same-origin as the embedding inone dashboard.
5
5
  PRODUCT_ATTRIBUTES_PATH: "/product-attributes/get-attributes",
6
6
  RECOMMENDATION_STRATEGIES_PATH: "/api/recommendation-strategies",
7
- RECOMMENDATION_STRATEGIES_PANEL_PATH: "/discovery/recommendation-strategies",
8
- NEWSLETTER_RECOMMENDATIONS_PATH: "/newsletter/recommendations"
7
+ RECOMMENDATION_STRATEGIES_PANEL_PATH: "/discovery/recommendation-strategies"
9
8
  }, c = {
10
9
  CLIENT_ID: "clientId"
11
10
  }, d = () => {
@@ -1,6 +1,6 @@
1
1
  var m = Object.defineProperty;
2
- var C = (g, l, t) => l in g ? m(g, l, { enumerable: !0, configurable: !0, writable: !0, value: t }) : g[l] = t;
3
- var r = (g, l, t) => C(g, typeof l != "symbol" ? l + "" : l, t);
2
+ var C = (h, l, t) => l in h ? m(h, l, { enumerable: !0, configurable: !0, writable: !0, value: t }) : h[l] = t;
3
+ var n = (h, l, t) => C(h, typeof l != "symbol" ? l + "" : l, t);
4
4
  import { useConfig as p } from "../../../../../composables/useConfig.js";
5
5
  import { ModificationDescription as y } from "../../../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
6
6
  import { CommonControl as N } from "../../../common-control.js";
@@ -12,9 +12,9 @@ import { registerNodeConfigWriter as b } from "../../utils/nodeConfigWriter.js";
12
12
  import { AlgorithmControl as T } from "./algorithm.js";
13
13
  import { ALGORITHM_CONTROL_ID as ut } from "./algorithm.js";
14
14
  import { CurrencyControl as P } from "./currency.js";
15
- import { CURRENCY_CONTROL_ID as gt } from "./currency.js";
15
+ import { CURRENCY_CONTROL_ID as ht } from "./currency.js";
16
16
  import { FiltersControl as S } from "./filters.js";
17
- import { FILTERS_CONTROL_ID as ht } from "./filters.js";
17
+ import { FILTERS_CONTROL_ID as gt } from "./filters.js";
18
18
  import { LayoutOrientationControl as O } from "./layoutOrientation.js";
19
19
  import { LAYOUT_ORIENTATION_CONTROL_ID as Ct } from "./layoutOrientation.js";
20
20
  import { LocaleControl as L } from "./locale.js";
@@ -29,38 +29,38 @@ import { ShuffleControl as F } from "./shuffle.js";
29
29
  import { SHUFFLE_CONTROL_ID as St } from "./shuffle.js";
30
30
  import { StrategyControl as w } from "./strategy.js";
31
31
  import { STRATEGY_CONTROL_ID as Lt } from "./strategy.js";
32
- import { setCurrencyAttributes as A, getBlockElement as B, isPartnerManagedBlock as v, updateProductContentInPlace as x, regenerateProductRowsWithStyles as U } from "./utils.js";
33
- import { adjustProductsToSize as kt, formatProductPrice as Dt, getCardComposition as Ft, getCurrentLayout as wt, getMainContainerTbody as At, regenerateMobileProductRows as Bt, updatePricesInPlace as vt, updateSingleProductContent as xt } from "./utils.js";
32
+ import { setCurrencyAttributes as A, getBlockElement as v, isPartnerManagedBlock as x, updateProductContentInPlace as B, regenerateProductRowsWithStyles as U } from "./utils.js";
33
+ import { adjustProductsToSize as kt, formatProductPrice as Dt, getCardComposition as Ft, getCurrentLayout as wt, getMainContainerTbody as At, regenerateMobileProductRows as vt, updatePricesInPlace as xt, updateSingleProductContent as Bt } from "./utils.js";
34
34
  import { useDebounceFn as f } from "../../../../../node_modules/@vueuse/shared/index.js";
35
35
  const $ = "ui-elements-recommendation-block";
36
36
  class at extends N {
37
37
  constructor() {
38
38
  super(...arguments);
39
- r(this, "store", R());
40
- r(this, "storeUnsubscription", () => {
39
+ n(this, "store", R());
40
+ n(this, "storeUnsubscription", () => {
41
41
  });
42
42
  // blockId -> fingerprint of the node config as it looked at the last sync.
43
- r(this, "syncedConfigs", /* @__PURE__ */ new Map());
43
+ n(this, "syncedConfigs", /* @__PURE__ */ new Map());
44
44
  // A config change waiting to reach the node config. Deferred so it can ride the
45
45
  // re-render's single apply() — one user action must cost one undo press.
46
- r(this, "pendingNodeConfigWrite", null);
47
- r(this, "pendingConfigFlushTimer", null);
46
+ n(this, "pendingNodeConfigWrite", null);
47
+ n(this, "pendingConfigFlushTimer", null);
48
48
  // Sub-control instances for lifecycle management
49
- r(this, "algorithmControl", null);
50
- r(this, "localeControl", null);
51
- r(this, "currencyControl", null);
52
- r(this, "productCountControl", null);
53
- r(this, "productLayoutControl", null);
54
- r(this, "filtersControl", null);
55
- r(this, "shuffleControl", null);
56
- r(this, "pricePlacementControl", null);
57
- r(this, "layoutOrientationControl", null);
58
- r(this, "strategyControl", null);
59
- r(this, "rrsEnabled", !1);
49
+ n(this, "algorithmControl", null);
50
+ n(this, "localeControl", null);
51
+ n(this, "currencyControl", null);
52
+ n(this, "productCountControl", null);
53
+ n(this, "productLayoutControl", null);
54
+ n(this, "filtersControl", null);
55
+ n(this, "shuffleControl", null);
56
+ n(this, "pricePlacementControl", null);
57
+ n(this, "layoutOrientationControl", null);
58
+ n(this, "strategyControl", null);
59
+ n(this, "rrsEnabled", !1);
60
60
  /**
61
61
  * Debounced product fetch to prevent rapid API calls during config changes
62
62
  */
63
- r(this, "_debouncedFetchProducts", f(async () => {
63
+ n(this, "_debouncedFetchProducts", f(async () => {
64
64
  try {
65
65
  await this.store.fetchRecommendationProducts();
66
66
  } finally {
@@ -78,16 +78,16 @@ class at extends N {
78
78
  * count. The store pads products to the configured size, so in-place only
79
79
  * fails when the size actually changed.
80
80
  */
81
- r(this, "_debouncedRegenerateWithProducts", f(() => {
81
+ n(this, "_debouncedRegenerateWithProducts", f(() => {
82
82
  const t = this.store.recommendationProducts;
83
83
  if (!this.currentNode || !this.api)
84
84
  return;
85
85
  const e = this.api.getDocumentModifier(), o = this._stagePendingNodeConfig(e);
86
- if (v(this.currentNode)) {
86
+ if (x(this.currentNode)) {
87
87
  o && (e.apply(new y("Update recommendation configuration")), this.pendingNodeConfigWrite = null, this._clearConfigFlush());
88
88
  return;
89
89
  }
90
- x({
90
+ B({
91
91
  currentNode: this.currentNode,
92
92
  documentModifier: e,
93
93
  products: t
@@ -142,8 +142,8 @@ class at extends N {
142
142
  const e = (i = this.getContainer()) == null ? void 0 : i.querySelector(".recommendation-controls-container");
143
143
  if (!e)
144
144
  return;
145
- const o = this._getRecommendationIdFromNode(t) === null ? null : c.getConfig(t), n = this.rrsEnabled && !!o && (!!(o != null && o.strategyId) || ((o == null ? void 0 : o.configVersion) ?? 0) >= _), s = this.rrsEnabled && !!o && !n;
146
- e.classList.toggle("strategy-block", n), e.classList.toggle("legacy-strategy-block", s);
145
+ const o = this._getRecommendationIdFromNode(t) === null ? null : c.getConfig(t), r = this.rrsEnabled && !!o && (!!(o != null && o.strategyId) || ((o == null ? void 0 : o.configVersion) ?? 0) >= _);
146
+ e.classList.toggle("strategy-block", r);
147
147
  }
148
148
  async onRender() {
149
149
  var o;
@@ -161,9 +161,9 @@ class at extends N {
161
161
  const e = this._getRecommendationIdFromNode(t);
162
162
  e !== null && e !== this.store.currentRecommendationId && this.store.setCurrentBlock(e), e !== null && this._syncNodeConfigIfChanged(e), this._showControlsForBlock(t), e !== null && !((o = this.store.blockStates[e]) != null && o.isInitialized) && this._fetchBlockData(e).then(() => {
163
163
  this._initializeSubControls();
164
- }), this._subControls.forEach((n) => {
165
- var s;
166
- n != null && n.api && (n.currentNode = t, (s = n.onTemplateNodeUpdated) == null || s.call(n, t));
164
+ }), this._subControls.forEach((r) => {
165
+ var i;
166
+ r != null && r.api && (r.currentNode = t, (i = r.onTemplateNodeUpdated) == null || i.call(r, t));
167
167
  });
168
168
  }
169
169
  onDestroy() {
@@ -210,11 +210,11 @@ class at extends N {
210
210
  const t = this.store.currentRecommendationId;
211
211
  if (!this.currentNode || !this.api || t === null)
212
212
  return;
213
- const { filters: e, strategyId: o, size: n, nodeConfigVersion: s } = this.store.recommendationConfigs;
213
+ const { filters: e, strategyId: o, size: r } = this.store.recommendationConfigs;
214
214
  this.pendingNodeConfigWrite = {
215
215
  blockId: t,
216
216
  node: this.currentNode,
217
- updates: { filters: e, strategyId: o, size: n, configVersion: s }
217
+ updates: { filters: e, strategyId: o, size: r }
218
218
  };
219
219
  }
220
220
  /**
@@ -257,12 +257,11 @@ class at extends N {
257
257
  JSON.stringify(o.filters) === JSON.stringify(t.updates.filters) && o.strategyId === t.updates.strategyId && o.size === t.updates.size || c.updateConfig(this.api, e, t.updates, "Update recommendation filters");
258
258
  }
259
259
  _syncNodeConfigToStore() {
260
- var n;
261
- const t = c.getConfig(this.currentNode), e = this.store.currentRecommendationId, o = e !== null && ((n = this.store.blockStates[e]) == null ? void 0 : n.isInitialized);
260
+ var r;
261
+ const t = c.getConfig(this.currentNode), e = this.store.currentRecommendationId, o = e !== null && ((r = this.store.blockStates[e]) == null ? void 0 : r.isInitialized);
262
262
  this.store.patchCurrentBlockConfig({
263
263
  strategy: t.strategy,
264
264
  strategyId: t.strategyId,
265
- nodeConfigVersion: t.configVersion,
266
265
  language: t.language,
267
266
  size: t.size,
268
267
  productIds: t.productIds,
@@ -301,8 +300,8 @@ class at extends N {
301
300
  t !== null && this.store.markBlockInitialized(t), (await Promise.allSettled([
302
301
  this.store.fetchRecommendationCreateData(),
303
302
  this.store.fetchRecommendationFilters()
304
- ])).forEach((o, n) => {
305
- o.status === "rejected" && console.warn(`Recommendation block: ${["fetchRecommendationCreateData", "fetchRecommendationFilters"][n]} failed`, o.reason);
303
+ ])).forEach((o, r) => {
304
+ o.status === "rejected" && console.warn(`Recommendation block: ${["fetchRecommendationCreateData", "fetchRecommendationFilters"][r]} failed`, o.reason);
306
305
  }), this._applySmartDefaults();
307
306
  try {
308
307
  await this.store.fetchRecommendationProducts();
@@ -324,30 +323,30 @@ class at extends N {
324
323
  if (!this.currentNode || !this.api)
325
324
  return;
326
325
  const t = c.getConfig(this.currentNode), e = {};
327
- let o = null, n = null, s = null;
326
+ let o = null, r = null, i = null;
328
327
  if (t.currency.code === a.currency.code) {
329
- const { currencyList: i } = this.store;
330
- i.length > 0 && (i.some(
328
+ const { currencyList: s } = this.store;
329
+ s.length > 0 && (s.some(
331
330
  (d) => d.value === `price.${a.currency.code}`
332
- ) || (o = i[0].value.replace("price.", ""), e.currency = {
331
+ ) || (o = s[0].value.replace("price.", ""), e.currency = {
333
332
  ...a.currency,
334
333
  code: o,
335
334
  symbol: o
336
335
  }));
337
336
  }
338
337
  if (t.strategy === a.strategy) {
339
- const i = this.store.getActivePredictiveAlgorithms;
340
- i.length > 0 && (i.some(
338
+ const s = this.store.getActivePredictiveAlgorithms;
339
+ s.length > 0 && (s.some(
341
340
  (d) => d.value === a.strategy
342
- ) || (n = i[0].value, e.strategy = n));
341
+ ) || (r = s[0].value, e.strategy = r));
343
342
  }
344
343
  if (t.language === a.language) {
345
- const i = this.store.getLanguages;
346
- i.length > 0 && (i.some(
344
+ const s = this.store.getLanguages;
345
+ s.length > 0 && (s.some(
347
346
  (d) => d.value === a.language
348
- ) || (s = i[0].value, e.language = s));
347
+ ) || (i = s[0].value, e.language = i));
349
348
  }
350
- !o && !n && !s || (c.updateConfig(
349
+ !o && !r && !i || (c.updateConfig(
351
350
  this.api,
352
351
  this.currentNode,
353
352
  e,
@@ -368,22 +367,22 @@ class at extends N {
368
367
  thousandSeparator: a.currency.thousandSeparator
369
368
  }
370
369
  } : {},
371
- ...n ? { strategy: n } : {},
372
- ...s ? { language: s } : {}
370
+ ...r ? { strategy: r } : {},
371
+ ...i ? { language: i } : {}
373
372
  }, { triggerRefetch: !1 }));
374
373
  }
375
374
  /**
376
375
  * Reads the recommendation-id attribute from the block element within the node
377
376
  */
378
377
  _getRecommendationIdFromNode(t) {
379
- const e = B(t);
378
+ const e = v(t);
380
379
  if (!e || !("getAttribute" in e))
381
380
  return null;
382
381
  const o = e.getAttribute(I);
383
382
  if (!o)
384
383
  return null;
385
- const n = parseInt(o);
386
- return Number.isNaN(n) ? null : n;
384
+ const r = parseInt(o);
385
+ return Number.isNaN(r) ? null : r;
387
386
  }
388
387
  /**
389
388
  * Listen to store changes that require product refresh or regeneration.
@@ -400,17 +399,17 @@ class at extends N {
400
399
  */
401
400
  _listenStateUpdates() {
402
401
  const { store: t } = this;
403
- let e = t.recommendationProducts, o = t.$state.configVersion, n = t.currentRecommendationId;
402
+ let e = t.recommendationProducts, o = t.$state.configVersion, r = t.currentRecommendationId;
404
403
  this.storeUnsubscription = t.$subscribe(() => {
405
- const s = t.currentRecommendationId;
406
- if (s !== n) {
407
- n = s, e = t.recommendationProducts, o = t.$state.configVersion;
404
+ const i = t.currentRecommendationId;
405
+ if (i !== r) {
406
+ r = i, e = t.recommendationProducts, o = t.$state.configVersion;
408
407
  return;
409
408
  }
410
- const i = t.$state.configVersion;
411
- i !== o && (o = i, this._capturePendingNodeConfigWrite(), this._debouncedFetchProducts());
412
- const u = t.recommendationProducts, d = u !== e, h = Array.isArray(u) && u.length > 0;
413
- d && h && (e = u, this._debouncedRegenerateWithProducts());
409
+ const s = t.$state.configVersion;
410
+ s !== o && (o = s, this._capturePendingNodeConfigWrite(), this._debouncedFetchProducts());
411
+ const u = t.recommendationProducts, d = u !== e, g = Array.isArray(u) && u.length > 0;
412
+ d && g && (e = u, this._debouncedRegenerateWithProducts());
414
413
  });
415
414
  }
416
415
  }
@@ -418,9 +417,9 @@ export {
418
417
  ut as ALGORITHM_CONTROL_ID,
419
418
  T as AlgorithmControl,
420
419
  $ as CONTROL_BLOCK_ID,
421
- gt as CURRENCY_CONTROL_ID,
420
+ ht as CURRENCY_CONTROL_ID,
422
421
  P as CurrencyControl,
423
- ht as FILTERS_CONTROL_ID,
422
+ gt as FILTERS_CONTROL_ID,
424
423
  S as FiltersControl,
425
424
  Ct as LAYOUT_ORIENTATION_CONTROL_ID,
426
425
  yt as LOCALE_CONTROL_ID,
@@ -439,15 +438,15 @@ export {
439
438
  w as StrategyControl,
440
439
  kt as adjustProductsToSize,
441
440
  Dt as formatProductPrice,
442
- B as getBlockElement,
441
+ v as getBlockElement,
443
442
  Ft as getCardComposition,
444
443
  wt as getCurrentLayout,
445
444
  At as getMainContainerTbody,
446
- v as isPartnerManagedBlock,
447
- Bt as regenerateMobileProductRows,
445
+ x as isPartnerManagedBlock,
446
+ vt as regenerateMobileProductRows,
448
447
  U as regenerateProductRowsWithStyles,
449
448
  A as setCurrencyAttributes,
450
- vt as updatePricesInPlace,
451
- x as updateProductContentInPlace,
452
- xt as updateSingleProductContent
449
+ xt as updatePricesInPlace,
450
+ B as updateProductContentInPlace,
451
+ Bt as updateSingleProductContent
453
452
  };
@@ -1,32 +1,26 @@
1
- var p = Object.defineProperty;
2
- var S = (i, s, t) => s in i ? p(i, s, { enumerable: !0, configurable: !0, writable: !0, value: t }) : i[s] = t;
3
- var r = (i, s, t) => S(i, typeof s != "symbol" ? s + "" : s, t);
4
- import { useLegacyStrategyConversion as v } from "../../../../../composables/useLegacyStrategyConversion.js";
5
- import { ACADEMY_LINKS as b } from "../../../../../enums/academy.js";
6
- import { useOnboardingStore as _ } from "../../../../../stores/onboarding.js";
7
- import { CommonControl as f } from "../../../common-control.js";
8
- import { useRecommendationExtensionStore as C } from "../../store/recommendation.js";
9
- const $ = "recommendation-strategy-control";
10
- class N extends f {
1
+ var d = Object.defineProperty;
2
+ var y = (r, s, t) => s in r ? d(r, s, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[s] = t;
3
+ var o = (r, s, t) => y(r, typeof s != "symbol" ? s + "" : s, t);
4
+ import { ACADEMY_LINKS as m } from "../../../../../enums/academy.js";
5
+ import { CommonControl as h } from "../../../common-control.js";
6
+ import { useRecommendationExtensionStore as u } from "../../store/recommendation.js";
7
+ const p = "recommendation-strategy-control";
8
+ class f extends h {
11
9
  constructor() {
12
10
  super(...arguments);
13
- r(this, "store", C());
14
- r(this, "onboardingStore", _());
15
- r(this, "legacyConversion", v());
16
- r(this, "storeUnsubscription", () => {
11
+ o(this, "store", u());
12
+ o(this, "storeUnsubscription", () => {
17
13
  });
18
- r(this, "listeners", []);
19
- r(this, "lastPaintedState", null);
14
+ o(this, "listeners", []);
15
+ o(this, "lastPaintedState", null);
20
16
  }
21
17
  getId() {
22
- return $;
18
+ return p;
23
19
  }
24
20
  getTemplate() {
25
21
  const t = this.api.translate(
26
22
  "You can assign a recommendation strategy by selecting an existing one or creating a new one to show specific content."
27
- ), e = this.api.translate("For more information, you can"), a = this.api.translate("visit Academy"), o = this.api.translate("Legacy Strategy"), n = this.api.translate(
28
- "Note that this is an older version of the Recommendation Strategy. We recommend you update it to the new Recommendation Strategy for an improved experience."
29
- );
23
+ ), e = this.api.translate("For more information, you can"), a = this.api.translate("visit Academy");
30
24
  return `
31
25
  <div class="strategy-control-container">
32
26
  <div class="strategy-control-header">
@@ -37,7 +31,7 @@ class N extends f {
37
31
  ${t}
38
32
  ${e}
39
33
  <a
40
- href="${b.EMAIL_RECOMMENDATION_BLOCK}"
34
+ href="${m.EMAIL_RECOMMENDATION_BLOCK}"
41
35
  target="_blank"
42
36
  rel="noopener noreferrer">${a}</a>.
43
37
  </p>
@@ -59,28 +53,6 @@ class N extends f {
59
53
  })
60
54
  ], "strategy-control-cta-row")}
61
55
  </div>
62
- <div data-strategy-legacy-state style="display: none;">
63
- <div class="strategy-control-notice-row">
64
- <div class="strategy-control-notice">
65
- <p class="strategy-control-notice-text">${n}</p>
66
- </div>
67
- </div>
68
- <div class="strategy-control-name-band">
69
- <span class="strategy-control-name">${o}</span>
70
- ${this._strategyAction({
71
- id: "guido__btn-update-legacy-strategy",
72
- label: this.api.translate("Update"),
73
- modifier: "update"
74
- })}
75
- </div>
76
- <div class="strategy-control-actions">
77
- ${this._strategyAction({
78
- id: "guido__btn-change-legacy-strategy",
79
- label: this.api.translate("Change"),
80
- modifier: "change"
81
- })}
82
- </div>
83
- </div>
84
56
  <div data-strategy-assigned-state style="display: none;">
85
57
  <div class="strategy-control-name-band">
86
58
  <span class="strategy-control-name" data-strategy-name></span>
@@ -116,8 +88,6 @@ class N extends f {
116
88
  this._renderState();
117
89
  }), this.store.recommendationConfigs.strategyId && !this.store.strategies.length && this.store.fetchStrategies().catch(() => {
118
90
  });
119
- const t = this.store.currentRecommendationId, e = t !== null && !!this.store.blockStates[t], a = this.store.isLegacyStrategyBlock;
120
- e && !this.store.recommendationConfigs.strategyId && !a && this.onboardingStore.startOnboarding("recommendationStrategyOnboarding"), e && a && this.onboardingStore.startOnboarding("recommendationLegacyStrategyOnboarding");
121
91
  }
122
92
  onDestroy() {
123
93
  this._teardown();
@@ -130,34 +100,25 @@ class N extends f {
130
100
  const t = this.getContainer();
131
101
  if (!t)
132
102
  return;
133
- const e = (a, o) => {
134
- const n = t.querySelector(a);
135
- n && (n.addEventListener("click", o), this.listeners.push({ element: n, handler: o }));
103
+ const e = (a, n) => {
104
+ const i = t.querySelector(a);
105
+ i && (i.addEventListener("click", n), this.listeners.push({ element: i, handler: n }));
136
106
  };
137
- e("#guido__btn-assign-strategy", () => this.store.openAssignStrategyDrawer()), e("#guido__btn-change-strategy", () => this.store.openAssignStrategyDrawer()), e("#guido__btn-change-legacy-strategy", () => this.store.openAssignStrategyDrawer()), e("#guido__btn-remove-strategy", () => this.store.openRemoveStrategyModal()), e("#guido__btn-update-legacy-strategy", () => {
138
- this.legacyConversion.convertLegacyStrategy();
139
- });
107
+ e("#guido__btn-assign-strategy", () => this.store.openAssignStrategyDrawer()), e("#guido__btn-change-strategy", () => this.store.openAssignStrategyDrawer()), e("#guido__btn-remove-strategy", () => this.store.openRemoveStrategyModal());
140
108
  }
141
109
  _renderState() {
142
- var m;
143
- const { strategyId: t } = this.store.recommendationConfigs, e = t ? ((m = this.store.assignedStrategy) == null ? void 0 : m.name) ?? "" : "", a = this.store.legacyConversionLoading, o = this.store.isLegacyStrategyBlock, n = `${t}\0${e}\0${a}\0${o}`;
144
- if (n === this.lastPaintedState)
145
- return;
146
- const c = this.getContainer();
147
- if (!c)
110
+ var l;
111
+ const { strategyId: t } = this.store.recommendationConfigs, e = t ? ((l = this.store.assignedStrategy) == null ? void 0 : l.name) ?? "" : "", a = `${t}\0${e}`;
112
+ if (a === this.lastPaintedState)
148
113
  return;
149
- const d = c.querySelector("[data-strategy-empty-state]"), y = c.querySelector("[data-strategy-assigned-state]"), g = c.querySelector("[data-strategy-legacy-state]"), h = c.querySelector("[data-strategy-name]");
150
- if (!d || !y || !g)
114
+ const n = this.getContainer();
115
+ if (!n)
151
116
  return;
152
- const u = t ? y : o ? g : d;
153
- [d, y, g].forEach((l) => {
154
- l.style.display = l === u ? "" : "none";
155
- }), g.querySelectorAll("button").forEach((l) => {
156
- l.disabled = a;
157
- }), g.classList.toggle("is-converting", a), h && t && (h.textContent = e || `#${t}`), this.lastPaintedState = n;
117
+ const i = n.querySelector("[data-strategy-empty-state]"), c = n.querySelector("[data-strategy-assigned-state]"), g = n.querySelector("[data-strategy-name]");
118
+ !i || !c || (i.style.display = t ? "none" : "", c.style.display = t ? "" : "none", g && t && (g.textContent = e || `#${t}`), this.lastPaintedState = a);
158
119
  }
159
120
  }
160
121
  export {
161
- $ as STRATEGY_CONTROL_ID,
162
- N as StrategyControl
122
+ p as STRATEGY_CONTROL_ID,
123
+ f as StrategyControl
163
124
  };