@useinsider/guido 3.18.1-beta.180006b → 3.18.1-beta.20bdab6

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.
@@ -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: r, productIds: i } = 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: r, productIds: i }
217
+ updates: { filters: e, strategyId: o, size: r }
218
218
  };
219
219
  }
220
220
  /**
@@ -254,7 +254,7 @@ class at extends N {
254
254
  if (this.pendingNodeConfigWrite = null, this._clearConfigFlush(), !t || !this.api)
255
255
  return;
256
256
  const e = t.blockId === this.store.currentRecommendationId && this.currentNode ? this.currentNode : t.node, o = c.getConfig(e);
257
- JSON.stringify(o.filters) === JSON.stringify(t.updates.filters) && o.strategyId === t.updates.strategyId && o.size === t.updates.size && o.productIds.join(",") === (t.updates.productIds ?? []).join(",") || c.updateConfig(this.api, e, t.updates, "Update recommendation filters");
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
260
  var r;
@@ -399,8 +399,8 @@ class at extends N {
399
399
  */
400
400
  _listenStateUpdates() {
401
401
  const { store: t } = this;
402
- let e = t.recommendationProducts, o = t.$state.lastFetchedConfigVersion, r = t.currentRecommendationId;
403
- this.storeUnsubscription(), this.storeUnsubscription = t.$subscribe(() => {
402
+ let e = t.recommendationProducts, o = t.$state.configVersion, r = t.currentRecommendationId;
403
+ this.storeUnsubscription = t.$subscribe(() => {
404
404
  const i = t.currentRecommendationId;
405
405
  if (i !== r) {
406
406
  r = i, e = t.recommendationProducts, o = t.$state.configVersion;
@@ -1,22 +1,22 @@
1
- import { getRecommendationFeedSourceMaps as C, getOperatorOptions as G, PriceAttributes as v } from "../../../../enums/extensions/recommendationBlock.js";
2
- import { useRecommendationApi as _ } from "../../../../services/recommendationApi.js";
3
- import { useConfigStore as U } from "../../../../stores/config.js";
4
- import { defineStore as N } from "pinia";
1
+ import { getRecommendationFeedSourceMaps as b, getOperatorOptions as G, PriceAttributes as v } from "../../../../enums/extensions/recommendationBlock.js";
2
+ import { useRecommendationApi as D } from "../../../../services/recommendationApi.js";
3
+ import { useConfigStore as P } from "../../../../stores/config.js";
4
+ import { defineStore as F } from "pinia";
5
5
  import "../constants/selectors.js";
6
- import { DEFAULT_MOBILE_CARDS_IN_ROW as L, DEFAULT_CARDS_IN_ROW as x } from "../constants/layout.js";
7
- import { DEFAULT_NODE_CONFIG as A, EXCLUDED_ALGORITHM_IDS as B } from "../constants/defaultConfig.js";
8
- import { getDefaultProducts as w } from "../templates/utils.js";
9
- import { generateCompleteFilterQuery as P } from "../utils/filterUtil.js";
10
- import { getPartnerRecommendationParams as M } from "../utils/partnerCustomizations.js";
11
- import { sanitizeProductIds as z } from "../utils/productIds.js";
12
- import { isFilterValid as O } from "../validation/filterSchema.js";
13
- import { isConfigValid as V } from "../validation/requiredFields.js";
14
- const m = _();
15
- let f = null, h = null, g = null, p = null, y = !1, I = null, S = null;
16
- const b = /* @__PURE__ */ new Map();
17
- function F() {
6
+ import { DEFAULT_MOBILE_CARDS_IN_ROW as _, DEFAULT_CARDS_IN_ROW as U } from "../constants/layout.js";
7
+ import { DEFAULT_NODE_CONFIG as N, EXCLUDED_ALGORITHM_IDS as L } from "../constants/defaultConfig.js";
8
+ import { getDefaultProducts as R } from "../templates/utils.js";
9
+ import { generateCompleteFilterQuery as k } from "../utils/filterUtil.js";
10
+ import { getPartnerRecommendationParams as x } from "../utils/partnerCustomizations.js";
11
+ import { sanitizeProductIds as A } from "../utils/productIds.js";
12
+ import { isFilterValid as B } from "../validation/filterSchema.js";
13
+ import { isConfigValid as M } from "../validation/requiredFields.js";
14
+ const u = D();
15
+ let f = null, h = null, g = null, S = null;
16
+ const p = /* @__PURE__ */ new Map();
17
+ function w() {
18
18
  return {
19
- cardsInRow: x,
19
+ cardsInRow: U,
20
20
  currencySettings: {
21
21
  name: "USD",
22
22
  value: "USD",
@@ -30,7 +30,7 @@ function F() {
30
30
  productIds: [],
31
31
  id: 1,
32
32
  language: "en_US",
33
- mobileCardsInRow: L,
33
+ mobileCardsInRow: _,
34
34
  mobileLayoutEnabled: !1,
35
35
  orientation: "grid",
36
36
  recommendedProducts: [],
@@ -46,9 +46,9 @@ function F() {
46
46
  priceHideIfSameAsDiscounted: !1
47
47
  };
48
48
  }
49
- function D() {
49
+ function C() {
50
50
  return {
51
- recommendationConfigs: F(),
51
+ recommendationConfigs: w(),
52
52
  recommendationProducts: [],
53
53
  filterStatus: !1,
54
54
  filterSelectionDrawerStatus: !1,
@@ -59,7 +59,7 @@ function D() {
59
59
  filterSnapshot: null
60
60
  };
61
61
  }
62
- const T = () => ({
62
+ const z = () => ({
63
63
  recommendationCampaignUrls: {},
64
64
  activePredictiveAlgorithms: [],
65
65
  languages: {},
@@ -70,10 +70,9 @@ const T = () => ({
70
70
  strategyUrlTemplates: {},
71
71
  blockStates: {},
72
72
  currentRecommendationId: null,
73
- configVersion: 0,
74
- lastFetchedConfigVersion: 0
75
- }), et = N("guidoRecommendationExtension", {
76
- state: () => T(),
73
+ configVersion: 0
74
+ }), Y = F("guidoRecommendationExtension", {
75
+ state: () => z(),
77
76
  getters: {
78
77
  // ====================================================================
79
78
  // Proxy Getters — Backward Compatible Access to Current Block State
@@ -83,7 +82,7 @@ const T = () => ({
83
82
  * This allows all existing code that reads `store.recommendationConfigs` to work unchanged.
84
83
  */
85
84
  recommendationConfigs(t) {
86
- return t.currentRecommendationId !== null && t.blockStates[t.currentRecommendationId] ? t.blockStates[t.currentRecommendationId].recommendationConfigs : F();
85
+ return t.currentRecommendationId !== null && t.blockStates[t.currentRecommendationId] ? t.blockStates[t.currentRecommendationId].recommendationConfigs : w();
87
86
  },
88
87
  /**
89
88
  * Proxy getter: delegates to blockStates[currentRecommendationId].recommendationProducts
@@ -138,8 +137,8 @@ const T = () => ({
138
137
  return [...new Set(t.map((e) => e.filterGroup))].sort((e, r) => e - r);
139
138
  },
140
139
  getActivePredictiveAlgorithms: (t) => {
141
- const e = C(), r = [];
142
- return t.activePredictiveAlgorithms.filter((n) => !B.includes(n)).forEach((n) => {
140
+ const e = b(), r = [];
141
+ return t.activePredictiveAlgorithms.filter((n) => !L.includes(n)).forEach((n) => {
143
142
  r.push(...e.filter((s) => s.id === n));
144
143
  }), r.map((n) => ({
145
144
  text: n.name,
@@ -179,7 +178,7 @@ const T = () => ({
179
178
  setCurrentBlock(t) {
180
179
  this.blockStates[t] || (this.blockStates = {
181
180
  ...this.blockStates,
182
- [t]: D()
181
+ [t]: C()
183
182
  }), this.currentRecommendationId = t;
184
183
  },
185
184
  /**
@@ -247,7 +246,7 @@ const T = () => ({
247
246
  decimalCount: String(e.currencyDecimalCount),
248
247
  decimalSeparator: r(e.currencyDecimalSeparator, ","),
249
248
  thousandSeparator: r(e.currencyThousandSeparator, ".")
250
- }, s = !this.blockStates[t], i = s ? D() : this.blockStates[t];
249
+ }, s = !this.blockStates[t], i = s ? C() : this.blockStates[t];
251
250
  i.recommendationConfigs = {
252
251
  ...i.recommendationConfigs,
253
252
  strategy: e.strategy,
@@ -353,7 +352,7 @@ const T = () => ({
353
352
  S = (async () => {
354
353
  this.strategiesLoading = !0;
355
354
  try {
356
- this.strategies = await m.fetchRecommendationStrategies();
355
+ this.strategies = await u.fetchRecommendationStrategies();
357
356
  } finally {
358
357
  this.strategiesLoading = !1;
359
358
  }
@@ -368,7 +367,7 @@ const T = () => ({
368
367
  const r = typeof t.updated_at == "string" ? t.updated_at : "", n = r ? `${t.strategy_id}:${r}:${e}` : "", s = n ? this.strategyUrlTemplates[n] : void 0;
369
368
  if (s)
370
369
  return s;
371
- const { full_path: i = "" } = await m.generateStrategyEndpoint(t, e) ?? {};
370
+ const { full_path: i = "" } = await u.generateStrategyEndpoint(t, e) ?? {};
372
371
  return n && i && (this.strategyUrlTemplates = {
373
372
  ...this.strategyUrlTemplates,
374
373
  [n]: i
@@ -381,7 +380,7 @@ const T = () => ({
381
380
  });
382
381
  },
383
382
  removeStrategy() {
384
- this.patchCurrentBlockConfig({ strategyId: "", size: A.size });
383
+ this.patchCurrentBlockConfig({ strategyId: "", size: N.size });
385
384
  },
386
385
  // ====================================================================
387
386
  // Shared Data Fetching (fetched once, used by all blocks)
@@ -397,7 +396,7 @@ const T = () => ({
397
396
  activePredictiveAlgorithms: t,
398
397
  languages: e,
399
398
  currencies: r
400
- } = await m.fetchRecommendationCreateData();
399
+ } = await u.fetchRecommendationCreateData();
401
400
  if (this.activePredictiveAlgorithms = t, this.languages = e, this.currentRecommendationId !== null && this.blockStates[this.currentRecommendationId]) {
402
401
  const n = this.blockStates[this.currentRecommendationId];
403
402
  n.filterStatus = !!n.recommendationConfigs.filters.length;
@@ -418,7 +417,7 @@ const T = () => ({
418
417
  return;
419
418
  }
420
419
  h = (async () => {
421
- const t = await m.fetchRecommendationFilters();
420
+ const t = await u.fetchRecommendationFilters();
422
421
  this.filterList = t;
423
422
  })();
424
423
  try {
@@ -453,7 +452,7 @@ const T = () => ({
453
452
  const n = [...e.recommendationConfigs.filters];
454
453
  n[r] = {
455
454
  ...t,
456
- isValid: O(t)
455
+ isValid: B(t)
457
456
  }, e.recommendationConfigs.filters = n;
458
457
  }
459
458
  },
@@ -491,7 +490,7 @@ const T = () => ({
491
490
  }), e.recommendationConfigs.filters = r;
492
491
  },
493
492
  generateFilterQuery() {
494
- return P(this.recommendationConfigs.filters);
493
+ return k(this.recommendationConfigs.filters);
495
494
  },
496
495
  /**
497
496
  * Validation-only check invoked at save-CTA time. Defined as an action
@@ -499,60 +498,33 @@ const T = () => ({
499
498
  * every block's recommendationConfigs across user edits.
500
499
  */
501
500
  hasInvalidBlock() {
502
- return Object.values(this.blockStates).some((t) => !V(t.recommendationConfigs, this));
501
+ return Object.values(this.blockStates).some((t) => !M(t.recommendationConfigs, this));
503
502
  },
504
503
  // ====================================================================
505
504
  // Per-Block Product Fetching
506
505
  // ====================================================================
507
506
  async fetchRecommendationProducts() {
508
- if (this.currentRecommendationId === null || !this.blockStates[this.currentRecommendationId])
509
- return;
510
- const t = `${this.currentRecommendationId}:${this.configVersion}`;
511
- if (g) {
512
- if (t === p) {
507
+ if (!(this.currentRecommendationId === null || !this.blockStates[this.currentRecommendationId])) {
508
+ if (g) {
513
509
  await g;
514
510
  return;
515
511
  }
516
- y = !0, await I;
517
- return;
518
- }
519
- let e = () => {
520
- };
521
- I = new Promise((r) => {
522
- e = r;
523
- });
524
- try {
525
- await this._runProductsUntilSettled(t);
526
- } finally {
527
- I = null, e();
528
- }
529
- },
530
- /**
531
- * Runs the product fetch, then once more for any config that arrived while it
532
- * was running. Recursive rather than looped so a burst of edits collapses into
533
- * one trailing fetch without an await inside a loop.
534
- */
535
- async _runProductsUntilSettled(t) {
536
- y = !1;
537
- const e = this.configVersion;
538
- if (!(this.currentRecommendationId === null || !this.blockStates[this.currentRecommendationId])) {
539
- p = t, g = this._doFetchProducts();
512
+ g = this._doFetchProducts();
540
513
  try {
541
514
  await g;
542
515
  } finally {
543
- g = null, p = null, this.lastFetchedConfigVersion = e;
516
+ g = null;
544
517
  }
545
- y && await this._runProductsUntilSettled(`${this.currentRecommendationId}:${this.configVersion}`);
546
518
  }
547
519
  },
548
520
  async _doFetchProducts() {
549
521
  var d;
550
- const t = this.currentRecommendationId, e = this.blockStates[t], { recommendationConfigs: r } = e, n = U();
522
+ const t = this.currentRecommendationId, e = this.blockStates[t], { recommendationConfigs: r } = e, n = P();
551
523
  if (r.strategyId && n.isFeatureEnabled("reusableRecommendationStrategy")) {
552
524
  await this._doFetchStrategyProducts(t);
553
525
  return;
554
526
  }
555
- const s = r.filters.filter((u) => u.isValid), i = P(s), o = ((d = C().find((u) => u.key === r.strategy)) == null ? void 0 : d.path) || "", c = parseInt(r.size) || 6, a = {
527
+ const s = r.filters.filter((m) => m.isValid), i = k(s), o = ((d = b().find((m) => m.key === r.strategy)) == null ? void 0 : d.path) || "", c = parseInt(r.size) || 6, a = {
556
528
  locale: r.language,
557
529
  currency: r.currencySettings.value,
558
530
  partnerName: n.partnerName,
@@ -560,21 +532,21 @@ const T = () => ({
560
532
  details: !0,
561
533
  campaignId: n.variationId
562
534
  };
563
- r.strategy === "manualMerchandising" ? a.productId = z(r.productIds) : r.strategy === "similarViewed" && (a.productId = "{itemId}"), r.strategy === "userBased" && (a.userId = "{user_id}"), i && (a.filter = i), r.shuffleProducts && (a.shuffle = !0), Object.assign(
535
+ r.strategy === "manualMerchandising" ? a.productId = A(r.productIds) : r.strategy === "similarViewed" && (a.productId = "{itemId}"), r.strategy === "userBased" && (a.userId = "{user_id}"), i && (a.filter = i), r.shuffleProducts && (a.shuffle = !0), Object.assign(
564
536
  a,
565
- M(n.partnerName, r.strategy)
537
+ x(n.partnerName, r.strategy)
566
538
  );
567
539
  let l;
568
540
  try {
569
- l = await m.fetchRecommendationProducts(o, a);
541
+ l = await u.fetchRecommendationProducts(o, a);
570
542
  } catch {
571
543
  l = [];
572
544
  }
573
545
  this._setBlockProducts(t, l, c);
574
546
  },
575
547
  async _doFetchStrategyProducts(t) {
576
- const e = (b.get(t) ?? 0) + 1;
577
- b.set(t, e);
548
+ const e = (p.get(t) ?? 0) + 1;
549
+ p.set(t, e);
578
550
  const { recommendationConfigs: r } = this.blockStates[t];
579
551
  let n = [], s = parseInt(r.size) || 6;
580
552
  try {
@@ -584,25 +556,25 @@ const T = () => ({
584
556
  );
585
557
  if (i) {
586
558
  s = parseInt(String(i.size ?? "")) || s;
587
- const o = r.currencySettings.value, a = (await this.resolveStrategyUrlTemplate(i, o)).replaceAll("{locale}", r.language).replaceAll("{currency}", o), l = a.indexOf("?"), d = l === -1 ? a : a.slice(0, l), u = (l === -1 ? "" : a.slice(l + 1)).split("&").filter((k) => k && !k.startsWith("user_id=")), R = u.length ? `${d}?${u.join("&")}` : d;
588
- R && (n = await m.fetchRecommendationProductsByUrl(R));
559
+ const o = r.currencySettings.value, a = (await this.resolveStrategyUrlTemplate(i, o)).replaceAll("{locale}", r.language).replaceAll("{currency}", o), l = a.indexOf("?"), d = l === -1 ? a : a.slice(0, l), m = (l === -1 ? "" : a.slice(l + 1)).split("&").filter((I) => I && !I.startsWith("user_id=")), y = m.length ? `${d}?${m.join("&")}` : d;
560
+ y && (n = await u.fetchRecommendationProductsByUrl(y));
589
561
  }
590
562
  } catch {
591
563
  n = [];
592
564
  }
593
- b.get(t) === e && this._setBlockProducts(t, n, s);
565
+ p.get(t) === e && this._setBlockProducts(t, n, s);
594
566
  },
595
567
  _setBlockProducts(t, e, r) {
596
568
  if (!this.blockStates[t])
597
569
  return;
598
- const n = e.length > 0 ? e : w(r);
570
+ const n = e.length > 0 ? e : R(r);
599
571
  this.blockStates[t].recommendationProducts = [
600
572
  ...n.slice(0, r),
601
- ...w(Math.max(0, r - n.length))
573
+ ...R(Math.max(0, r - n.length))
602
574
  ];
603
575
  }
604
576
  }
605
577
  });
606
578
  export {
607
- et as useRecommendationExtensionStore
579
+ Y as useRecommendationExtensionStore
608
580
  };
@@ -21,7 +21,7 @@ ${s.map((o) => ` - ${o}`).join(`
21
21
  * This validation runs only once per class type and results are cached.
22
22
  */
23
23
  validateImplementation(t, r) {
24
- var y;
24
+ var P;
25
25
  const s = [], o = r.name, W = Object.getPrototypeOf(this);
26
26
  t.forEach((u) => {
27
27
  if (typeof this[u] != "function") {
@@ -29,7 +29,7 @@ ${s.map((o) => ` - ${o}`).join(`
29
29
  return;
30
30
  }
31
31
  W[u] === r.prototype[u] && s.push(`Method ${u}() must be implemented (currently using base class error-throwing implementation)`);
32
- }), d.validatedClasses.add(r), s.length > 0 ? (d.validationErrors.set(r, s), console.error(`[${o} Validation] ${o} validation failed:`, s)) : typeof process < "u" && ((y = process.env) == null ? void 0 : y.NODE_ENV) === "development" && console.log(`[${o} Validation] ✅ ${o} validated successfully`);
32
+ }), d.validatedClasses.add(r), s.length > 0 ? (d.validationErrors.set(r, s), console.error(`[${o} Validation] ${o} validation failed:`, s)) : typeof process < "u" && ((P = process.env) == null ? void 0 : P.NODE_ENV) === "development" && console.log(`[${o} Validation] ✅ ${o} validated successfully`);
33
33
  }
34
34
  /**
35
35
  * Lifecycle method for cleaning up resources (e.g., removing DOM artifacts from document.body).
@@ -41,9 +41,9 @@ ${s.map((o) => ` - ${o}`).join(`
41
41
  };
42
42
  v.validatedClasses = /* @__PURE__ */ new Set();
43
43
  v.validationErrors = /* @__PURE__ */ new Map();
44
- var i = v, z = /* @__PURE__ */ ((e) => (e.BLOCK = "BLOCK", e.CONTAINER = "CONTAINER", e.STRUCTURE = "STRUCTURE", e.STRIPE = "STRIPE", e))(z || {}), P = class T extends i {
44
+ var i = v, z = /* @__PURE__ */ ((e) => (e.BLOCK = "BLOCK", e.CONTAINER = "CONTAINER", e.STRUCTURE = "STRUCTURE", e.STRIPE = "STRIPE", e))(z || {}), y = class c extends i {
45
45
  constructor() {
46
- super(T.REQUIRED_METHODS, T);
46
+ super(c.REQUIRED_METHODS, c);
47
47
  }
48
48
  /**
49
49
  * Determines if the block should be available for use in the editor.
@@ -221,10 +221,10 @@ var i = v, z = /* @__PURE__ */ ((e) => (e.BLOCK = "BLOCK", e.CONTAINER = "CONTAI
221
221
  throw new Error("Method getDescription() must be implemented by the subclass");
222
222
  }
223
223
  };
224
- P.REQUIRED_METHODS = ["getId", "getTemplate", "getIcon", "getName", "getDescription"];
225
- var qe = P, Z = class c extends i {
224
+ y.REQUIRED_METHODS = ["getId", "getTemplate", "getIcon", "getName", "getDescription"];
225
+ var qe = y, Z = class T extends i {
226
226
  constructor() {
227
- super(c.REQUIRED_METHODS, c);
227
+ super(T.REQUIRED_METHODS, T);
228
228
  }
229
229
  /**
230
230
  * @deprecated - use {@link getPreviewInnerHtml} instead
@@ -339,12 +339,12 @@ var j = {
339
339
  height: "height"
340
340
  }, Je = {
341
341
  BLOCK_IMAGE: j
342
- }, U = "esd-block-button", w = "esd-block-text", K = "esd-block-image", J = "esd-structure", ee = "esd-block-video", te = "esd-block-social", re = "esd-block-banner", ae = "esd-block-timer", ne = "esd-block-menu", se = "esd-block-html", ie = "esd-block-spacer", le = "esd-container-frame", Ee = "esd-stripe", oe = "esd-amp-form", I = ((e) => (e.BUTTON = `.${U}`, e.TEXT = `.${w}`, e.IMAGE = `.${K}`, e.STRUCTURE = `.${J}`, e.VIDEO = `.${ee}`, e.SOCIAL = `.${te}`, e.BANNER = `.${re}`, e.TIMER = `.${ae}`, e.MENU = `.${ne}`, e.HTML = `.${se}`, e.SPACER = `.${ie}`, e.CONTAINER = `.${le}`, e.STRIPE = `.${Ee}`, e.FORM = `.${oe}`, e))(I || {}), de = /* @__PURE__ */ ((e) => (e.BLOCK_IMAGE = "BLOCK_IMAGE", e.BLOCK_TEXT = "BLOCK_TEXT", e.BLOCK_BUTTON = "BLOCK_BUTTON", e.BLOCK_SPACER = "BLOCK_SPACER", e.BLOCK_VIDEO = "BLOCK_VIDEO", e.BLOCK_SOCIAL = "BLOCK_SOCIAL", e.BLOCK_BANNER = "BLOCK_BANNER", e.BLOCK_TIMER = "BLOCK_TIMER", e.BLOCK_MENU = "BLOCK_MENU", e.BLOCK_MENU_ITEM = "BLOCK_MENU_ITEM", e.BLOCK_HTML = "BLOCK_HTML", e.BLOCK_AMP_CAROUSEL = "BLOCK_AMP_CAROUSEL", e.BLOCK_AMP_ACCORDION = "BLOCK_AMP_ACCORDION", e.BLOCK_AMP_FORM = "BLOCK_AMP_FORM", e.CONTAINER = "CONTAINER", e.FORM_CONTAINER = "FORM_CONTAINER", e.STRUCTURE = "STRUCTURE", e.STRIPE = "STRIPE", e.EMPTY_CONTAINER = "EMPTY_CONTAINER", e.CUSTOM_BLOCK_LINK = "CUSTOM_BLOCK_LINK", e.CUSTOM_BLOCK_IMAGE = "CUSTOM_BLOCK_IMAGE", e.CUSTOM_BLOCK_TEXT = "CUSTOM_BLOCK_TEXT", e))(de || {}), F = /* @__PURE__ */ ((e) => (e.ANCHOR_LINK_CONTAINER = "anchorLinkFormContainer", e.APPLY_CONDITION = "applyCondition", e.APPLY_CONDITION_SWITCHER = "applyConditionSwitcher", e.BACKGROUND_COLOR = "backgroundColor", e.BACKGROUND_IMAGE = "generalImageContainer", e.TEXT_COLOR = "textColor", e.TEXT_STYLE = "textStyle", e.TEXT_SIZE = "textSize", e.TEXT_LINE_SPACING = "textLineSpacing", e.TEXT_ALIGN = "textAlign", e.FIXED_HEIGHT_SWITCHER = "fixedHeightSwitcherForm", e.HIDDEN_NODE = "hiddenNode", e.SMART_BLOCK = "smartBlock", e.SYNCHRONIZED_MODULE = "synchronizedModuleForm", e.FONT_FAMILY = "generalFontFamilyForm", e.BLOCK_INTERNAL_INDENTS = "generalBlockInternalIndents", e.STRUCTURE_INTERNAL_INDENTS = "generalStructureInternalIndents", e))(F || {}), H = /* @__PURE__ */ ((e) => (e.ADJUST_TO_WIDTH = "adjustToWidth", e.ALIGNMENT = "buttonAlignment", e.BORDER = "buttonBorder", e.BORDER_RADIUS = "buttonBorderRadius", e.COLOR = "buttonColor", e.BUTTON_BLOCK_BACKGROUND_COLOR = "buttonBlockBackgroundColor", e.EXTERNAL_INDENTS = "buttonExternalIndents", e.FIXED_HEIGHT = "buttonFixedHeightForm", e.FONT_COLOR = "buttonFontColor", e.FONT_FAMILY = "buttonFontFamily", e.FONT_SIZE = "buttonFontSize", e.FONT_WEIGHT = "buttonFontWeight", e.ICON = "buttonIconContainer", e.ICON_ALIGN = "buttonIconAlign", e.ICON_INDENT = "buttonIconIndent", e.ICON_WIDTH = "buttonIconWidth", e.IMAGE = "buttonImageForm", e.INTERNAL_INDENTS = "buttonInternalIndents", e.LINK = "buttonLink", e.MIME_TYPE = "buttonMimeTypeForm", e.SWITCHER_HOVERED_STYLES = "buttonSwitcherHoveredStylesForm", e.TEXT = "buttonText", e.TEXT_STYLE_AND_COLOR = "buttonTextStyleAndColorForm", e.HOVERED_BORDER_COLOR = "hoveredStyleBorderButtonForm", e.HOVERED_COLOR = "hoveredButtonColorForm", e.HOVERED_TEXT_COLOR = "hoveredButtonTextColorForm", e))(H || {}), k = /* @__PURE__ */ ((e) => (e.HIDDEN_NODE = "hiddenNodeText", e.PARAGRAPH_STYLE = "paragraphStyleForm", e.ALIGN = "textAlignmentForm", e.ANCHOR_CONTAINER = "textAnchorForm", e.FONT_BACKGROUND_COLOR = "textBlockFontBackgroundColor", e.TEXT_BLOCK_BACKGROUND_COLOR = "textBlockBackgroundColor", e.FONT_COLOR = "textBlockFontColor", e.TEXT_BLOCK_FONT_FAMILY = "textBlockFontFamily", e.FONT_FAMILY = "textFontFamily", e.FONT_SIZE = "textBlockFontSize", e.FONT_WEIGHT = "textBlockFontWeight", e.DIRECTION = "textBlockDirectionForm", e.INSERT_FORM = "textBlockInsertForm", e.LINK_DATA = "textBlockLinkDataForm", e.FORMAT = "textBlockTextFormatForm", e.FIXED_HEIGHT = "textFixedHeightForm", e.INTERNAL_INDENTS = "textInternalIndents", e.LINE_HEIGHT = "textLineHeightForm", e.MIME_TYPE = "textMimeTypeForm", e.NO_LINE_WRAPS = "textNoLineWrapsForm", e))(k || {}), p = /* @__PURE__ */ ((e) => (e.ALT_TEXT = "altText", e.LINK = "blockLink", e.ALIGNMENT = "imageAlignment", e.ANCHOR_LINK_CONTAINER = "imageAnchorLinkContainerForm", e.BORDER_RADIUS = "imageBorderRadiusForm", e.IMAGE = "imageImageForm", e.EXTERNAL_INDENTS = "imageExternalIndents", e.MIME_TYPE = "imageMimeTypeForm", e.RESPONSIVE = "imageResponsive", e.ROLLOVER_IMAGE = "imageRolloverImageForm", e.ROLLOVER_SWITCHER = "imageRolloverSwitcherForm", e.SIZE = "imageSizeContainer", e))(p || {}), ue = /* @__PURE__ */ ((e) => (e.BACKGROUND_COLOR = "containerBackgroundColorForm", e.BORDER_FORM = "containerBorderForm", e.BORDER_RADIUS = "containerBorderRadiusForm", e.EXTERNAL_INDENTS = "containerExternalIndentsForm", e.IMAGE_CONTAINER = "containerImageContainerForm", e.MIME_TYPE = "containerMimeTypeForm", e.DISPLAY_CONDITIONS = "displayConditions", e.HIDDEN_NODE = "containerHiddenNodeForm", e))(ue || {}), n = {
342
+ }, U = "esd-block-button", w = "esd-block-text", K = "esd-block-image", J = "esd-structure", ee = "esd-block-video", te = "esd-block-social", re = "esd-block-banner", ae = "esd-block-timer", ne = "esd-block-menu", se = "esd-block-html", ie = "esd-block-spacer", le = "esd-container-frame", Ee = "esd-stripe", oe = "esd-amp-form", I = ((e) => (e.BUTTON = `.${U}`, e.TEXT = `.${w}`, e.IMAGE = `.${K}`, e.STRUCTURE = `.${J}`, e.VIDEO = `.${ee}`, e.SOCIAL = `.${te}`, e.BANNER = `.${re}`, e.TIMER = `.${ae}`, e.MENU = `.${ne}`, e.HTML = `.${se}`, e.SPACER = `.${ie}`, e.CONTAINER = `.${le}`, e.STRIPE = `.${Ee}`, e.FORM = `.${oe}`, e))(I || {}), de = /* @__PURE__ */ ((e) => (e.BLOCK_IMAGE = "BLOCK_IMAGE", e.BLOCK_TEXT = "BLOCK_TEXT", e.BLOCK_BUTTON = "BLOCK_BUTTON", e.BLOCK_SPACER = "BLOCK_SPACER", e.BLOCK_VIDEO = "BLOCK_VIDEO", e.BLOCK_SOCIAL = "BLOCK_SOCIAL", e.BLOCK_BANNER = "BLOCK_BANNER", e.BLOCK_TIMER = "BLOCK_TIMER", e.BLOCK_MENU = "BLOCK_MENU", e.BLOCK_MENU_ITEM = "BLOCK_MENU_ITEM", e.BLOCK_HTML = "BLOCK_HTML", e.BLOCK_AMP_CAROUSEL = "BLOCK_AMP_CAROUSEL", e.BLOCK_AMP_ACCORDION = "BLOCK_AMP_ACCORDION", e.BLOCK_AMP_FORM = "BLOCK_AMP_FORM", e.CONTAINER = "CONTAINER", e.FORM_CONTAINER = "FORM_CONTAINER", e.STRUCTURE = "STRUCTURE", e.STRIPE = "STRIPE", e.EMPTY_CONTAINER = "EMPTY_CONTAINER", e.CUSTOM_BLOCK_LINK = "CUSTOM_BLOCK_LINK", e.CUSTOM_BLOCK_IMAGE = "CUSTOM_BLOCK_IMAGE", e.CUSTOM_BLOCK_TEXT = "CUSTOM_BLOCK_TEXT", e))(de || {}), F = /* @__PURE__ */ ((e) => (e.ANCHOR_LINK_CONTAINER = "anchorLinkFormContainer", e.APPLY_CONDITION = "applyCondition", e.APPLY_CONDITION_SWITCHER = "applyConditionSwitcher", e.BACKGROUND_COLOR = "backgroundColor", e.BACKGROUND_IMAGE = "generalImageContainer", e.TEXT_COLOR = "textColor", e.TEXT_STYLE = "textStyle", e.TEXT_SIZE = "textSize", e.TEXT_LINE_SPACING = "textLineSpacing", e.TEXT_ALIGN = "textAlign", e.FIXED_HEIGHT_SWITCHER = "fixedHeightSwitcherForm", e.HIDDEN_NODE = "hiddenNode", e.SMART_BLOCK = "smartBlock", e.SYNCHRONIZED_MODULE = "synchronizedModuleForm", e.FONT_FAMILY = "generalFontFamilyForm", e.BLOCK_INTERNAL_INDENTS = "generalBlockInternalIndents", e.STRUCTURE_INTERNAL_INDENTS = "generalStructureInternalIndents", e))(F || {}), H = /* @__PURE__ */ ((e) => (e.ADJUST_TO_WIDTH = "adjustToWidth", e.ALIGNMENT = "buttonAlignment", e.BORDER = "buttonBorder", e.BORDER_RADIUS = "buttonBorderRadius", e.COLOR = "buttonColor", e.BUTTON_BLOCK_BACKGROUND_COLOR = "buttonBlockBackgroundColor", e.EXTERNAL_INDENTS = "buttonExternalIndents", e.FIXED_HEIGHT = "buttonFixedHeightForm", e.FONT_COLOR = "buttonFontColor", e.FONT_FAMILY = "buttonFontFamily", e.FONT_SIZE = "buttonFontSize", e.FONT_WEIGHT = "buttonFontWeight", e.ICON = "buttonIconContainer", e.ICON_ALIGN = "buttonIconAlign", e.ICON_INDENT = "buttonIconIndent", e.ICON_WIDTH = "buttonIconWidth", e.IMAGE = "buttonImageForm", e.INTERNAL_INDENTS = "buttonInternalIndents", e.LINK = "buttonLink", e.MIME_TYPE = "buttonMimeTypeForm", e.SWITCHER_HOVERED_STYLES = "buttonSwitcherHoveredStylesForm", e.TEXT = "buttonText", e.TEXT_STYLE_AND_COLOR = "buttonTextStyleAndColorForm", e.HOVERED_BORDER_COLOR = "hoveredStyleBorderButtonForm", e.HOVERED_COLOR = "hoveredButtonColorForm", e.HOVERED_TEXT_COLOR = "hoveredButtonTextColorForm", e))(H || {}), k = /* @__PURE__ */ ((e) => (e.HIDDEN_NODE = "hiddenNodeText", e.PARAGRAPH_STYLE = "paragraphStyleForm", e.ALIGN = "textAlignmentForm", e.ANCHOR_CONTAINER = "textAnchorForm", e.FONT_BACKGROUND_COLOR = "textBlockFontBackgroundColor", e.TEXT_BLOCK_BACKGROUND_COLOR = "textBlockBackgroundColor", e.FONT_COLOR = "textBlockFontColor", e.TEXT_BLOCK_FONT_FAMILY = "textBlockFontFamily", e.FONT_FAMILY = "textFontFamily", e.FONT_SIZE = "textBlockFontSize", e.FONT_WEIGHT = "textBlockFontWeight", e.DIRECTION = "textBlockDirectionForm", e.INSERT_FORM = "textBlockInsertForm", e.LETTER_SPACING = "textBlockLetterSpacing", e.LINK_DATA = "textBlockLinkDataForm", e.FORMAT = "textBlockTextFormatForm", e.FIXED_HEIGHT = "textFixedHeightForm", e.INTERNAL_INDENTS = "textInternalIndents", e.LINE_HEIGHT = "textLineHeightForm", e.MIME_TYPE = "textMimeTypeForm", e.NO_LINE_WRAPS = "textNoLineWrapsForm", e))(k || {}), X = /* @__PURE__ */ ((e) => (e.ALT_TEXT = "altText", e.LINK = "blockLink", e.ALIGNMENT = "imageAlignment", e.ANCHOR_LINK_CONTAINER = "imageAnchorLinkContainerForm", e.BORDER_RADIUS = "imageBorderRadiusForm", e.IMAGE = "imageImageForm", e.EXTERNAL_INDENTS = "imageExternalIndents", e.MIME_TYPE = "imageMimeTypeForm", e.RESPONSIVE = "imageResponsive", e.ROLLOVER_IMAGE = "imageRolloverImageForm", e.ROLLOVER_SWITCHER = "imageRolloverSwitcherForm", e.SIZE = "imageSizeContainer", e))(X || {}), ue = /* @__PURE__ */ ((e) => (e.BACKGROUND_COLOR = "containerBackgroundColorForm", e.BORDER_FORM = "containerBorderForm", e.BORDER_RADIUS = "containerBorderRadiusForm", e.EXTERNAL_INDENTS = "containerExternalIndentsForm", e.IMAGE_CONTAINER = "containerImageContainerForm", e.MIME_TYPE = "containerMimeTypeForm", e.DISPLAY_CONDITIONS = "displayConditions", e.HIDDEN_NODE = "containerHiddenNodeForm", e))(ue || {}), n = {
343
343
  BLOCK_BUTTON: H,
344
344
  BLOCK_TEXT: k,
345
- BLOCK_IMAGE: p,
345
+ BLOCK_IMAGE: X,
346
346
  GENERAL: F
347
- }, Ie = /* @__PURE__ */ ((e) => (e.SAVE_AS_MODULE = "saveAsModule", e.IMPROVE_WITH_AI = "improveWithAI", e.MOVE = "move", e.COPY = "copy", e.REMOVE = "remove", e.CLEAR_CONTAINER = "clearContainer", e.EXTERNAL_DISPLAY_CONDITION = "externalDisplayCondition", e))(Ie || {}), Te = /* @__PURE__ */ ((e) => (e.previewDeviceMode = "previewDeviceMode", e.panelPosition = "panelPosition", e.themeMode = "themeMode", e))(Te || {}), ce = /* @__PURE__ */ ((e) => (e.DESKTOP = "DESKTOP", e.MOBILE = "MOBILE", e))(ce || {}), be = /* @__PURE__ */ ((e) => (e.SETTINGS = "settings", e.STYLES = "styles", e.DATA = "data", e))(be || {}), a = {
347
+ }, Ie = /* @__PURE__ */ ((e) => (e.SAVE_AS_MODULE = "saveAsModule", e.IMPROVE_WITH_AI = "improveWithAI", e.MOVE = "move", e.COPY = "copy", e.REMOVE = "remove", e.CLEAR_CONTAINER = "clearContainer", e.EXTERNAL_DISPLAY_CONDITION = "externalDisplayCondition", e))(Ie || {}), ce = /* @__PURE__ */ ((e) => (e.previewDeviceMode = "previewDeviceMode", e.panelPosition = "panelPosition", e.themeMode = "themeMode", e))(ce || {}), Te = /* @__PURE__ */ ((e) => (e.DESKTOP = "DESKTOP", e.MOBILE = "MOBILE", e))(Te || {}), be = /* @__PURE__ */ ((e) => (e.SETTINGS = "settings", e.STYLES = "styles", e.DATA = "data", e))(be || {}), a = {
348
348
  name: "name",
349
349
  disabled: "disabled"
350
350
  }, he = {
@@ -369,18 +369,19 @@ var j = {
369
369
  hint: "hint"
370
370
  }, Le = {
371
371
  ...a,
372
- type: "type"
372
+ type: "type",
373
+ icon: "icon"
373
374
  }, _e = {
374
375
  ...a,
375
376
  buttons: "buttons"
376
- }, X = {
377
+ }, p = {
377
378
  ...a,
378
379
  searchable: "searchable",
379
380
  multiSelect: "multi-select",
380
381
  placeholder: "placeholder",
381
382
  items: "items"
382
383
  }, Ce = {
383
- ...X,
384
+ ...p,
384
385
  addCustomFontOption: "add-custom-font-option"
385
386
  }, Ae = {
386
387
  ...a,
@@ -422,10 +423,10 @@ var j = {
422
423
  }, xe = {
423
424
  ...a,
424
425
  controlId: "control-id"
425
- }, ye = {
426
+ }, Pe = {
426
427
  ...a,
427
428
  expanded: "expanded"
428
- }, Pe = {
429
+ }, ye = {
429
430
  ...a,
430
431
  icon: "icon",
431
432
  position: "position"
@@ -455,7 +456,7 @@ var j = {
455
456
  LABEL: Re,
456
457
  MESSAGE: Le,
457
458
  RADIO_BUTTONS: _e,
458
- SELECTPICKER: X,
459
+ SELECTPICKER: p,
459
460
  FONT_FAMILY_SELECT: Ce,
460
461
  SWITCHER: a,
461
462
  TEXT: Me,
@@ -465,15 +466,15 @@ var j = {
465
466
  SELECT_ITEM: Ae,
466
467
  RADIO_ITEM: Se,
467
468
  NESTED_CONTROL: xe,
468
- EXPANDABLE: ye,
469
- ORDERABLE: Pe,
469
+ EXPANDABLE: Pe,
470
+ ORDERABLE: ye,
470
471
  ORDERABLE_ITEM: Ue,
471
472
  ORDERABLE_ICON: we,
472
473
  REPEATABLE: Ke,
473
474
  DRAGGABLE_BLOCK: Fe,
474
475
  AMP_FORM_SERVICE_PICKER: He,
475
476
  MULTIPLE_SELECT: ke
476
- }, pe = /* @__PURE__ */ ((e) => (e.BUTTON = "UE-BUTTON", e.CHECKBOX = "UE-CHECKBOX", e.CHECK_BUTTONS = "UE-CHECK-BUTTONS", e.COLOR = "UE-COLOR", e.COUNTER = "UE-COUNTER", e.DATEPICKER = "UE-DATEPICKER", e.LABEL = "UE-LABEL", e.MESSAGE = "UE-MESSAGE", e.RADIO_BUTTONS = "UE-RADIO-BUTTONS", e.SELECTPICKER = "UE-SELECT", e.SWITCHER = "UE-SWITCHER", e.TEXT = "UE-TEXT", e.TEXTAREA = "UE-TEXTAREA", e.CHECK_ITEM = "UE-CHECK-ITEM", e.RADIO_ITEM = "UE-RADIO-ITEM", e.SELECT_ITEM = "UE-SELECT-ITEM", e.ICON = "UE-ICON", e.MERGETAGS = "UE-MERGETAGS", e.FONT_FAMILY_SELECT = "UE-FONT-FAMILY-SELECT", e.NESTED_CONTROL = "UE-NESTED-CONTROL", e.EXPANDABLE = "UE-EXPANDABLE", e.EXPANDABLE_HEADER = "UE-EXPANDABLE_HEADER", e.EXPANDABLE_CONTENT = "UE-EXPANDABLE_CONTENT", e.ORDERABLE = "UE-ORDERABLE", e.ORDERABLE_ITEM = "UE-ORDERABLE-ITEM", e.ORDERABLE_ICON = "UE-ORDERABLE-ICON", e.REPEATABLE = "UE-REPEATABLE", e.DRAGGABLE_BLOCK = "UE-DRAGGABLE-BLOCK", e.AMP_FORM_SERVICE_PICKER = "UE-AMP-FORM-SERVICE-PICKER", e.MULTIPLE_SELECT = "UE-MULTIPLE_SELECT", e.SCROLLABLE = "UE-SCROLLABLE-CONTAINER", e))(pe || {}), x = class {
477
+ }, Xe = /* @__PURE__ */ ((e) => (e.BUTTON = "UE-BUTTON", e.CHECKBOX = "UE-CHECKBOX", e.CHECK_BUTTONS = "UE-CHECK-BUTTONS", e.COLOR = "UE-COLOR", e.COUNTER = "UE-COUNTER", e.DATEPICKER = "UE-DATEPICKER", e.LABEL = "UE-LABEL", e.MESSAGE = "UE-MESSAGE", e.RADIO_BUTTONS = "UE-RADIO-BUTTONS", e.SELECTPICKER = "UE-SELECT", e.SWITCHER = "UE-SWITCHER", e.TEXT = "UE-TEXT", e.RICH_TEXT = "UE-RICH-TEXT", e.TEXTAREA = "UE-TEXTAREA", e.CHECK_ITEM = "UE-CHECK-ITEM", e.RADIO_ITEM = "UE-RADIO-ITEM", e.SELECT_ITEM = "UE-SELECT-ITEM", e.ICON = "UE-ICON", e.MERGETAGS = "UE-MERGETAGS", e.FONT_FAMILY_SELECT = "UE-FONT-FAMILY-SELECT", e.NESTED_CONTROL = "UE-NESTED-CONTROL", e.EXPANDABLE = "UE-EXPANDABLE", e.EXPANDABLE_HEADER = "UE-EXPANDABLE_HEADER", e.EXPANDABLE_CONTENT = "UE-EXPANDABLE_CONTENT", e.ORDERABLE = "UE-ORDERABLE", e.ORDERABLE_ITEM = "UE-ORDERABLE-ITEM", e.ORDERABLE_ICON = "UE-ORDERABLE-ICON", e.REPEATABLE = "UE-REPEATABLE", e.DRAGGABLE_BLOCK = "UE-DRAGGABLE-BLOCK", e.AMP_FORM_SERVICE_PICKER = "UE-AMP-FORM-SERVICE-PICKER", e.MULTIPLE_SELECT = "UE-MULTIPLE_SELECT", e.SCROLLABLE = "UE-SCROLLABLE-CONTAINER", e.POPUP_PANEL = "UE-POPUP-PANEL", e))(Xe || {}), x = class {
477
478
  /**
478
479
  * @description returns map of nodes parent control operates on
479
480
  */
@@ -619,7 +620,7 @@ var j = {
619
620
  }
620
621
  };
621
622
  G.REQUIRED_METHODS = ["getId", "getTemplate"];
622
- var Tt = G, Xe = class m extends i {
623
+ var ct = G, pe = class m extends i {
623
624
  constructor() {
624
625
  super(m.REQUIRED_METHODS, m);
625
626
  }
@@ -688,13 +689,13 @@ var Tt = G, Xe = class m extends i {
688
689
  onDestroy() {
689
690
  }
690
691
  };
691
- Xe.REQUIRED_METHODS = ["getId", "getIcon", "getName", "getTemplate", "getTabIndex"];
692
+ pe.REQUIRED_METHODS = ["getId", "getIcon", "getName", "getTemplate", "getTabIndex"];
692
693
  var V = class extends x {
693
694
  getTargetNodes(e) {
694
695
  const t = e.querySelectorAll(I.IMAGE), r = e.asElement().hasClass(K) ? [e] : [];
695
696
  return t.length ? t : r;
696
697
  }
697
- }, ct = class extends V {
698
+ }, Tt = class extends V {
698
699
  getParentControlId() {
699
700
  return n.BLOCK_IMAGE.EXTERNAL_INDENTS;
700
701
  }
@@ -1215,17 +1216,17 @@ export {
1215
1216
  It as ButtonTextStyleAndFontColorBuiltInControl,
1216
1217
  ue as ContainerControls,
1217
1218
  Ie as ContextActionType,
1218
- Tt as Control,
1219
- Te as EditorStatePropertyType,
1219
+ ct as Control,
1220
+ ce as EditorStatePropertyType,
1220
1221
  Ve as Extension,
1221
1222
  Nt as ExtensionBuilder,
1222
1223
  F as GeneralControls,
1223
1224
  Dt as IconsRegistry,
1224
- p as ImageControls,
1225
- ct as ImageMarginsBuiltInControl,
1225
+ X as ImageControls,
1226
+ Tt as ImageMarginsBuiltInControl,
1226
1227
  bt as ImageSizeBuiltInControl,
1227
1228
  St as ModificationDescription,
1228
- ce as PreviewDeviceMode,
1229
+ Te as PreviewDeviceMode,
1229
1230
  ht as SettingsPanelRegistry,
1230
1231
  mt as SettingsPanelTab,
1231
1232
  be as SettingsTab,
@@ -1240,5 +1241,5 @@ export {
1240
1241
  et as UEAttr,
1241
1242
  Mt as UIElement,
1242
1243
  Bt as UIElementTagRegistry,
1243
- pe as UIElementType
1244
+ Xe as UIElementType
1244
1245
  };
@@ -1,4 +1,4 @@
1
- const o = { stripo: { version: "2.73.0" } }, s = {
1
+ const o = { stripo: { version: "2.76.0" } }, s = {
2
2
  guido: o
3
3
  };
4
4
  export {
@@ -74,7 +74,6 @@ interface StoreState {
74
74
  blockStates: Record<number, PerBlockState>;
75
75
  currentRecommendationId: number | null;
76
76
  configVersion: number;
77
- lastFetchedConfigVersion: number;
78
77
  }
79
78
  export declare const useRecommendationExtensionStore: import("pinia").StoreDefinition<"guidoRecommendationExtension", StoreState, {
80
79
  /**
@@ -103,7 +102,6 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
103
102
  blockStates: Record<number, PerBlockState>;
104
103
  currentRecommendationId: number | null;
105
104
  configVersion: number;
106
- lastFetchedConfigVersion: number;
107
105
  } & import("pinia").PiniaCustomStateProperties<StoreState>): PerBlockConfigs;
108
106
  /**
109
107
  * Proxy getter: delegates to blockStates[currentRecommendationId].recommendationProducts
@@ -130,7 +128,6 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
130
128
  blockStates: Record<number, PerBlockState>;
131
129
  currentRecommendationId: number | null;
132
130
  configVersion: number;
133
- lastFetchedConfigVersion: number;
134
131
  } & import("pinia").PiniaCustomStateProperties<StoreState>): RecommendationProduct[];
135
132
  /**
136
133
  * Proxy getter: delegates to blockStates[currentRecommendationId].filterSelectionDrawerStatus
@@ -157,7 +154,6 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
157
154
  blockStates: Record<number, PerBlockState>;
158
155
  currentRecommendationId: number | null;
159
156
  configVersion: number;
160
- lastFetchedConfigVersion: number;
161
157
  } & import("pinia").PiniaCustomStateProperties<StoreState>): boolean;
162
158
  assignStrategyDrawerStatus(state: {
163
159
  recommendationCampaignUrls: Record<string, RecommendationCampaignUrlValue>;
@@ -181,7 +177,6 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
181
177
  blockStates: Record<number, PerBlockState>;
182
178
  currentRecommendationId: number | null;
183
179
  configVersion: number;
184
- lastFetchedConfigVersion: number;
185
180
  } & import("pinia").PiniaCustomStateProperties<StoreState>): boolean;
186
181
  removeStrategyModalStatus(state: {
187
182
  recommendationCampaignUrls: Record<string, RecommendationCampaignUrlValue>;
@@ -205,7 +200,6 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
205
200
  blockStates: Record<number, PerBlockState>;
206
201
  currentRecommendationId: number | null;
207
202
  configVersion: number;
208
- lastFetchedConfigVersion: number;
209
203
  } & import("pinia").PiniaCustomStateProperties<StoreState>): boolean;
210
204
  assignedStrategy(state: {
211
205
  recommendationCampaignUrls: Record<string, RecommendationCampaignUrlValue>;
@@ -229,7 +223,6 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
229
223
  blockStates: Record<number, PerBlockState>;
230
224
  currentRecommendationId: number | null;
231
225
  configVersion: number;
232
- lastFetchedConfigVersion: number;
233
226
  } & import("pinia").PiniaCustomStateProperties<StoreState>): RrsStrategy | null;
234
227
  /**
235
228
  * Proxy getter: delegates to blockStates[currentRecommendationId].filterStatus
@@ -256,7 +249,6 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
256
249
  blockStates: Record<number, PerBlockState>;
257
250
  currentRecommendationId: number | null;
258
251
  configVersion: number;
259
- lastFetchedConfigVersion: number;
260
252
  } & import("pinia").PiniaCustomStateProperties<StoreState>): boolean;
261
253
  /**
262
254
  * Proxy getter: delegates to blockStates[currentRecommendationId].filterGroup
@@ -283,7 +275,6 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
283
275
  blockStates: Record<number, PerBlockState>;
284
276
  currentRecommendationId: number | null;
285
277
  configVersion: number;
286
- lastFetchedConfigVersion: number;
287
278
  } & import("pinia").PiniaCustomStateProperties<StoreState>): number;
288
279
  hasFilters(): boolean;
289
280
  hasValidFilters(): boolean;
@@ -311,7 +302,6 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
311
302
  blockStates: Record<number, PerBlockState>;
312
303
  currentRecommendationId: number | null;
313
304
  configVersion: number;
314
- lastFetchedConfigVersion: number;
315
305
  } & import("pinia").PiniaCustomStateProperties<StoreState>) => {
316
306
  text: string;
317
307
  value: string;
@@ -338,7 +328,6 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
338
328
  blockStates: Record<number, PerBlockState>;
339
329
  currentRecommendationId: number | null;
340
330
  configVersion: number;
341
- lastFetchedConfigVersion: number;
342
331
  } & import("pinia").PiniaCustomStateProperties<StoreState>) => {
343
332
  text: string;
344
333
  value: string;
@@ -365,7 +354,6 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
365
354
  blockStates: Record<number, PerBlockState>;
366
355
  currentRecommendationId: number | null;
367
356
  configVersion: number;
368
- lastFetchedConfigVersion: number;
369
357
  } & import("pinia").PiniaCustomStateProperties<StoreState>) => {
370
358
  text: string;
371
359
  value: string;
@@ -463,12 +451,6 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
463
451
  */
464
452
  hasInvalidBlock(): boolean;
465
453
  fetchRecommendationProducts(): Promise<void>;
466
- /**
467
- * Runs the product fetch, then once more for any config that arrived while it
468
- * was running. Recursive rather than looped so a burst of edits collapses into
469
- * one trailing fetch without an await inside a loop.
470
- */
471
- _runProductsUntilSettled(token: string): Promise<void>;
472
454
  _doFetchProducts(): Promise<void>;
473
455
  _doFetchStrategyProducts(blockId: number): Promise<void>;
474
456
  _setBlockProducts(blockId: number, products: RecommendationProduct[], size: number): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@useinsider/guido",
3
- "version": "3.18.1-beta.180006b",
3
+ "version": "3.18.1-beta.20bdab6",
4
4
  "description": "Guido is a Vue + TypeScript wrapper for Email Plugin. Easily embed the email editor in your Vue applications.",
5
5
  "main": "./dist/guido.umd.cjs",
6
6
  "module": "./dist/library.js",
@@ -47,7 +47,7 @@
47
47
  "author": "",
48
48
  "license": "ISC",
49
49
  "dependencies": {
50
- "@stripoinc/ui-editor-extensions": "3.9.0",
50
+ "@stripoinc/ui-editor-extensions": "3.10.0",
51
51
  "@useinsider/design-system-organisms": "0.0.3-beta.d816f06",
52
52
  "@useinsider/design-system-vue": "1.5.0",
53
53
  "@vueuse/core": "11.3.0",
@@ -118,7 +118,7 @@
118
118
  },
119
119
  "guido": {
120
120
  "stripo": {
121
- "version": "2.73.0"
121
+ "version": "2.76.0"
122
122
  }
123
123
  }
124
124
  }