@useinsider/guido 3.19.0-beta.ab4fcb3 → 3.19.0-beta.b73a570

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 (32) hide show
  1. package/dist/@types/config/schemas.js +91 -104
  2. package/dist/components/Guido.vue.js +6 -6
  3. package/dist/components/Guido.vue2.js +72 -75
  4. package/dist/components/organisms/base/AuthErrorModal.vue.js +18 -0
  5. package/dist/components/organisms/base/AuthErrorModal.vue2.js +42 -0
  6. package/dist/components/wrappers/WpModal.vue.js +1 -1
  7. package/dist/components/wrappers/WpModal.vue2.js +4 -3
  8. package/dist/composables/useAuthError.js +52 -0
  9. package/dist/composables/useHttp.js +64 -54
  10. package/dist/composables/useToaster.js +17 -15
  11. package/dist/composables/validators/useLiquidValidator.js +15 -15
  12. package/dist/config/migrator/index.js +13 -14
  13. package/dist/extensions/Blocks/Recommendation/block.js +14 -15
  14. package/dist/extensions/Blocks/Recommendation/controls/main/index.js +38 -45
  15. package/dist/extensions/Blocks/Recommendation/controls/main/strategy.js +49 -72
  16. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +0 -1
  17. package/dist/guido.css +1 -1
  18. package/dist/src/@types/config/schemas.d.ts +0 -16
  19. package/dist/src/components/organisms/base/AuthErrorModal.vue.d.ts +2 -0
  20. package/dist/src/components/wrappers/WpModal.vue.d.ts +5 -1
  21. package/dist/src/composables/useAuthError.d.ts +12 -0
  22. package/dist/src/composables/useConfig.d.ts +0 -2
  23. package/dist/src/composables/useHttp.d.ts +2 -0
  24. package/dist/src/config/migrator/index.d.ts +1 -2
  25. package/dist/src/extensions/Blocks/Recommendation/types/nodeConfig.d.ts +0 -6
  26. package/dist/src/stores/config.d.ts +0 -20
  27. package/dist/static/styles/components/recommendation-strategy.css.js +0 -9
  28. package/package.json +1 -1
  29. package/dist/config/migrator/recommendationPartnerMigrator.js +0 -50
  30. package/dist/extensions/Blocks/Recommendation/utils/partnerScope.js +0 -25
  31. package/dist/src/config/migrator/recommendationPartnerMigrator.d.ts +0 -19
  32. package/dist/src/extensions/Blocks/Recommendation/utils/partnerScope.d.ts +0 -33
@@ -1,17 +1,16 @@
1
- import { migrateCheckbox as i } from "./checkboxMigrator.js";
2
- import { migrateCouponBlock as e } from "./couponBlockMigrator.js";
3
- import { migrateItemsBlock as a } from "./itemsBlockMigrator.js";
4
- import { migrateProductNameLink as n } from "./productNameLinkMigrator.js";
5
- import { migrateRadioButton as c } from "./radioButtonMigrator.js";
6
- import { migrateRecommendation as g } from "./recommendationMigrator.js";
7
- import { migrateRecommendationPartnerScope as f } from "./recommendationPartnerMigrator.js";
8
- import { migrateRecommendationTitle as p } from "./recommendationTitleMigrator.js";
9
- import { migrateSocialIcons as d } from "./socialIconMigrator.js";
10
- import { migrateUnsubscribe as l } from "./unsubscribeMigrator.js";
11
- const h = async (r, t = {}, o) => {
12
- let m = r;
13
- return m = i(m), m = c(m), m = await l(m), m = e(m), m = g(m, t), o && (m = f(m, o)), m = p(m), m = a(m), m = n(m), m = d(m), m;
1
+ import { migrateCheckbox as t } from "./checkboxMigrator.js";
2
+ import { migrateCouponBlock as i } from "./couponBlockMigrator.js";
3
+ import { migrateItemsBlock as e } from "./itemsBlockMigrator.js";
4
+ import { migrateProductNameLink as a } from "./productNameLinkMigrator.js";
5
+ import { migrateRadioButton as n } from "./radioButtonMigrator.js";
6
+ import { migrateRecommendation as c } from "./recommendationMigrator.js";
7
+ import { migrateRecommendationTitle as g } from "./recommendationTitleMigrator.js";
8
+ import { migrateSocialIcons as p } from "./socialIconMigrator.js";
9
+ import { migrateUnsubscribe as f } from "./unsubscribeMigrator.js";
10
+ const C = async (o, r = {}) => {
11
+ let m = o;
12
+ return m = t(m), m = n(m), m = await f(m), m = i(m), m = c(m, r), m = g(m), m = e(m), m = a(m), m = p(m), m;
14
13
  };
15
14
  export {
16
- h as migrate
15
+ C as migrate
17
16
  };
@@ -1,7 +1,7 @@
1
1
  var y = Object.defineProperty;
2
2
  var A = (l, c, t) => c in l ? y(l, c, { enumerable: !0, configurable: !0, writable: !0, value: t }) : l[c] = t;
3
- var h = (l, c, t) => A(l, typeof c != "symbol" ? c + "" : c, t);
4
- import { useConfig as d } from "../../../composables/useConfig.js";
3
+ var g = (l, c, t) => A(l, typeof c != "symbol" ? c + "" : c, t);
4
+ import { useConfig as h } from "../../../composables/useConfig.js";
5
5
  import { BlockId as D } from "../../../enums/block.js";
6
6
  import { getMigrationBannerHtml as C } from "../../../utils/migrationBannerHtml.js";
7
7
  import { Block as E, BlockCompositionType as S, ModificationDescription as p } from "../../../node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js";
@@ -10,9 +10,9 @@ import { RECOMMENDATION_ID_ATTR as m } from "./constants/selectors.js";
10
10
  import { regenerateMobileProductRows as M } from "./controls/main/utils.js";
11
11
  import { ensureMobileCssRulesExist as I, setMobileLayoutOptOut as R, hasMobileLayoutOptOut as w } from "./controls/mobileLayout/cssRules.js";
12
12
  import { RecommendationConfigService as s } from "./services/configService.js";
13
- import { useRecommendationExtensionStore as g } from "./store/recommendation.js";
13
+ import { useRecommendationExtensionStore as d } from "./store/recommendation.js";
14
14
  import { getDefaultTemplate as T } from "./templates/grid/template.js";
15
- import { useRecommendationBlockWarning as v } from "./useRecommendationBlockWarning.js";
15
+ import { useRecommendationBlockWarning as x } from "./useRecommendationBlockWarning.js";
16
16
  const k = D.Recommendation, u = "recommendation-block-v2", B = "hide-price";
17
17
  let b = !1;
18
18
  class j extends E {
@@ -22,9 +22,9 @@ class j extends E {
22
22
  * Stores the ID generated in getTemplate() so onCreated() can reuse it.
23
23
  * This avoids generating a new (different) ID in onCreated().
24
24
  */
25
- h(this, "_pendingBlockId", null);
25
+ g(this, "_pendingBlockId", null);
26
26
  /** Ids already reset under their new name, so the deferred pass skips their stale snapshot. */
27
- h(this, "_resetSourceIds", /* @__PURE__ */ new Set());
27
+ g(this, "_resetSourceIds", /* @__PURE__ */ new Set());
28
28
  }
29
29
  getId() {
30
30
  return k;
@@ -91,19 +91,18 @@ class j extends E {
91
91
  }
92
92
  const i = this._pendingBlockId ?? this._generateNextId();
93
93
  this._pendingBlockId = null, this._assignRecommendationId(t, i);
94
- const n = d().isFeatureEnabled("reusableRecommendationStrategy"), o = n && !s.hasConfig(t), { config: r, wasFreshDrop: a } = s.initializeConfig(
94
+ const n = h().isFeatureEnabled("reusableRecommendationStrategy"), o = n && !s.hasConfig(t), { config: r, wasFreshDrop: a } = s.initializeConfig(
95
95
  this.api,
96
96
  t,
97
97
  {
98
98
  recommendationId: i,
99
99
  configVersion: n ? N : O,
100
- ...o ? { partnerName: d().partnerName.value } : {},
101
100
  // An RRS block picks a strategy, not an algorithm, and its algorithm control is
102
101
  // hidden. Keeping the `mostPopular` default would bake a most-popular feed URL
103
102
  // at save for a block the user never configured.
104
103
  ...o ? { strategy: "" } : {}
105
104
  }
106
- ), f = g();
105
+ ), f = d();
107
106
  if (f.setCurrentBlock(i), this._stampHidePrice(t, r.priceHideIfSameAsDiscounted), a) {
108
107
  I(this.api);
109
108
  const _ = this._getBlockElement(t);
@@ -152,7 +151,7 @@ class j extends E {
152
151
  */
153
152
  onDelete(t) {
154
153
  const e = this._getRecommendationId(t);
155
- e && g().removeBlockState(e);
154
+ e && d().removeBlockState(e);
156
155
  }
157
156
  /**
158
157
  * Warns (dark advisory toaster) when the design holds more than one live
@@ -168,7 +167,7 @@ class j extends E {
168
167
  */
169
168
  _warnIfMultipleBlocks() {
170
169
  try {
171
- v().warnIfMultipleBlocks(this.api.getDocumentRootHtmlNode());
170
+ x().warnIfMultipleBlocks(this.api.getDocumentRootHtmlNode());
172
171
  } catch {
173
172
  }
174
173
  }
@@ -198,9 +197,9 @@ class j extends E {
198
197
  * the renamed one depending on where the module was dropped (SD-149916).
199
198
  */
200
199
  _scheduleArrivalReset(t) {
201
- d().isFeatureEnabled("reusableRecommendationStrategy") && setTimeout(() => {
200
+ h().isFeatureEnabled("reusableRecommendationStrategy") && setTimeout(() => {
202
201
  const e = this._getRecommendationId(t);
203
- e !== null && e > 0 && !this._resetSourceIds.delete(e) && g().resetArrivedBlock(e);
202
+ e !== null && e > 0 && !this._resetSourceIds.delete(e) && d().resetArrivedBlock(e);
204
203
  }, 0);
205
204
  }
206
205
  /**
@@ -256,8 +255,8 @@ class j extends E {
256
255
  }
257
256
  /** Assigns a fresh id to a duplicated block and syncs DOM, node config and store. */
258
257
  _handleDuplicate(t, e) {
259
- const i = this._reassignDuplicateId(t, e), n = g();
260
- n.cloneBlockState(e, i), n.setCurrentBlock(i), d().isFeatureEnabled("reusableRecommendationStrategy") && (this._resetSourceIds.add(e), n.resetArrivedBlock(i)), this._warnIfMultipleBlocks();
258
+ const i = this._reassignDuplicateId(t, e), n = d();
259
+ n.cloneBlockState(e, i), n.setCurrentBlock(i), h().isFeatureEnabled("reusableRecommendationStrategy") && (this._resetSourceIds.add(e), n.resetArrivedBlock(i)), this._warnIfMultipleBlocks();
261
260
  }
262
261
  /**
263
262
  * Core id-reassignment for a duplicated block: rewrites the DOM
@@ -1,16 +1,16 @@
1
- var C = Object.defineProperty;
2
- var p = (g, u, t) => u in g ? C(g, u, { enumerable: !0, configurable: !0, writable: !0, value: t }) : g[u] = t;
3
- var i = (g, u, t) => p(g, typeof u != "symbol" ? u + "" : u, t);
4
- import { useConfig as h } from "../../../../../composables/useConfig.js";
1
+ var m = Object.defineProperty;
2
+ var C = (g, c, t) => c in g ? m(g, c, { enumerable: !0, configurable: !0, writable: !0, value: t }) : g[c] = t;
3
+ var i = (g, c, t) => C(g, typeof c != "symbol" ? c + "" : c, t);
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";
7
7
  import { RRS_CONFIG_VERSION as _, DEFAULT_NODE_CONFIG as a } from "../../constants/defaultConfig.js";
8
8
  import { RECOMMENDATION_ID_ATTR as I } from "../../constants/selectors.js";
9
- import { RecommendationConfigService as c } from "../../services/configService.js";
9
+ import { RecommendationConfigService as l } from "../../services/configService.js";
10
10
  import { useRecommendationExtensionStore as R } from "../../store/recommendation.js";
11
11
  import { registerNodeConfigWriter as b } from "../../utils/nodeConfigWriter.js";
12
12
  import { AlgorithmControl as T } from "./algorithm.js";
13
- import { ALGORITHM_CONTROL_ID as ut } from "./algorithm.js";
13
+ import { ALGORITHM_CONTROL_ID as dt } from "./algorithm.js";
14
14
  import { CurrencyControl as P } from "./currency.js";
15
15
  import { CURRENCY_CONTROL_ID as gt } from "./currency.js";
16
16
  import { FiltersControl as S } from "./filters.js";
@@ -29,9 +29,9 @@ import { ShuffleControl as D } 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 v, getBlockElement as A, isPartnerManagedBlock as B, updateProductContentInPlace as x, regenerateProductRowsWithStyles as U } from "./utils.js";
33
- import { adjustProductsToSize as Et, formatProductPrice as Ft, getCardComposition as Dt, getCurrentLayout as wt, getMainContainerTbody as vt, regenerateMobileProductRows as At, updatePricesInPlace as Bt, updateSingleProductContent as xt } from "./utils.js";
34
- import { useDebounceFn as f } from "../../../../../node_modules/@vueuse/shared/index.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 Et, formatProductPrice as Ft, getCardComposition as Dt, getCurrentLayout as wt, getMainContainerTbody as At, regenerateMobileProductRows as Bt, updatePricesInPlace as vt, updateSingleProductContent as xt } from "./utils.js";
34
+ import { useDebounceFn as h } from "../../../../../node_modules/@vueuse/shared/index.js";
35
35
  const W = "ui-elements-recommendation-block";
36
36
  class at extends N {
37
37
  constructor() {
@@ -58,7 +58,7 @@ class at extends N {
58
58
  /**
59
59
  * Debounced product fetch to prevent rapid API calls during config changes
60
60
  */
61
- i(this, "_debouncedFetchProducts", f(async () => {
61
+ i(this, "_debouncedFetchProducts", h(async () => {
62
62
  try {
63
63
  await this.store.fetchRecommendationProducts();
64
64
  } finally {
@@ -76,12 +76,12 @@ class at extends N {
76
76
  * count. The store pads products to the configured size, so in-place only
77
77
  * fails when the size actually changed.
78
78
  */
79
- i(this, "_debouncedRegenerateWithProducts", f(() => {
79
+ i(this, "_debouncedRegenerateWithProducts", h(() => {
80
80
  const t = this.store.recommendationProducts;
81
81
  if (!this.currentNode || !this.api)
82
82
  return;
83
83
  const e = this.api.getDocumentModifier(), o = this._stagePendingNodeConfig(e);
84
- if (B(this.currentNode)) {
84
+ if (v(this.currentNode)) {
85
85
  o && (e.apply(new y("Update recommendation configuration")), this.pendingNodeConfigWrite = null, this._clearConfigFlush());
86
86
  return;
87
87
  }
@@ -115,7 +115,7 @@ class at extends N {
115
115
  }
116
116
  getTemplate() {
117
117
  var t;
118
- return this.rrsEnabled = h().isFeatureEnabled("reusableRecommendationStrategy"), this._subControls.forEach((e) => {
118
+ return this.rrsEnabled = p().isFeatureEnabled("reusableRecommendationStrategy"), this._subControls.forEach((e) => {
119
119
  var o;
120
120
  return (o = e == null ? void 0 : e.onDestroy) == null ? void 0 : o.call(e);
121
121
  }), this.algorithmControl = new T(), this.localeControl = new L(), this.currencyControl = new P(), this.productCountControl = new E(), this.productLayoutControl = new F(), this.filtersControl = new S(), this.shuffleControl = new D(), this.pricePlacementControl = new k(), this.layoutOrientationControl = new O(), this.strategyControl = this.rrsEnabled ? new w() : null, this._subControls.forEach((e) => {
@@ -140,7 +140,7 @@ class at extends N {
140
140
  const e = (r = this.getContainer()) == null ? void 0 : r.querySelector(".recommendation-controls-container");
141
141
  if (!e)
142
142
  return;
143
- 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;
143
+ const o = this._getRecommendationIdFromNode(t) === null ? null : l.getConfig(t), n = this.rrsEnabled && !!o && (!!(o != null && o.strategyId) || ((o == null ? void 0 : o.configVersion) ?? 0) >= _), s = this.rrsEnabled && !!o && !n;
144
144
  e.classList.toggle("strategy-block", n), e.classList.toggle("legacy-strategy-block", s);
145
145
  }
146
146
  async onRender() {
@@ -209,30 +209,23 @@ class at extends N {
209
209
  const e = this.store.blockStates[t];
210
210
  if (!e)
211
211
  return;
212
- const o = JSON.stringify(c.getConfig(this.currentNode)), n = e.syncedConfigFingerprint;
212
+ const o = JSON.stringify(l.getConfig(this.currentNode)), n = e.syncedConfigFingerprint;
213
213
  e.syncedConfigFingerprint = o, n !== o && (this.pendingNodeConfigWrite || this._syncNodeConfigToStore());
214
214
  }
215
215
  /** Whether the deferred write would move the node's strategyId — see the caller (SD-149916). */
216
216
  _isPendingStrategyIdChange() {
217
217
  const t = this.pendingNodeConfigWrite;
218
- return t ? c.getConfig(this.currentNode).strategyId !== t.updates.strategyId : !1;
218
+ return t ? l.getConfig(this.currentNode).strategyId !== t.updates.strategyId : !1;
219
219
  }
220
220
  _capturePendingNodeConfigWrite() {
221
221
  const t = this.store.currentRecommendationId;
222
222
  if (!this.currentNode || !this.api || t === null)
223
223
  return;
224
- const { filters: e, strategy: o, strategyId: n, size: s, nodeConfigVersion: r } = this.store.recommendationConfigs, { partnerName: l } = h();
224
+ const { filters: e, strategy: o, strategyId: n, size: s, nodeConfigVersion: r } = this.store.recommendationConfigs;
225
225
  this.pendingNodeConfigWrite = {
226
226
  blockId: t,
227
227
  node: this.currentNode,
228
- updates: {
229
- filters: e,
230
- strategy: o,
231
- strategyId: n,
232
- size: s,
233
- configVersion: r,
234
- ...l.value ? { partnerName: l.value } : {}
235
- }
228
+ updates: { filters: e, strategy: o, strategyId: n, size: s, configVersion: r }
236
229
  };
237
230
  }
238
231
  /**
@@ -247,7 +240,7 @@ class at extends N {
247
240
  */
248
241
  _stagePendingNodeConfig(t) {
249
242
  const e = this.pendingNodeConfigWrite;
250
- return !e || !this.currentNode ? !1 : (c.stageConfig(t, this.currentNode, e.updates), !0);
243
+ return !e || !this.currentNode ? !1 : (l.stageConfig(t, this.currentNode, e.updates), !0);
251
244
  }
252
245
  /**
253
246
  * Arms the guaranteed fallback write, once the product fetch has settled. The
@@ -271,12 +264,12 @@ class at extends N {
271
264
  const t = this.pendingNodeConfigWrite;
272
265
  if (this.pendingNodeConfigWrite = null, this._clearConfigFlush(), !t || !this.api)
273
266
  return;
274
- const e = t.blockId === this.store.currentRecommendationId && this.currentNode ? this.currentNode : t.node, o = c.getConfig(e);
275
- JSON.stringify(o.filters) === JSON.stringify(t.updates.filters) && o.strategy === t.updates.strategy && o.strategyId === t.updates.strategyId && o.size === t.updates.size || c.updateConfig(this.api, e, t.updates, "Update recommendation filters");
267
+ const e = t.blockId === this.store.currentRecommendationId && this.currentNode ? this.currentNode : t.node, o = l.getConfig(e);
268
+ JSON.stringify(o.filters) === JSON.stringify(t.updates.filters) && o.strategy === t.updates.strategy && o.strategyId === t.updates.strategyId && o.size === t.updates.size || l.updateConfig(this.api, e, t.updates, "Update recommendation filters");
276
269
  }
277
270
  _syncNodeConfigToStore() {
278
271
  var n;
279
- const t = c.getConfig(this.currentNode), e = this.store.currentRecommendationId, o = e !== null && ((n = this.store.blockStates[e]) == null ? void 0 : n.isInitialized);
272
+ const t = l.getConfig(this.currentNode), e = this.store.currentRecommendationId, o = e !== null && ((n = this.store.blockStates[e]) == null ? void 0 : n.isInitialized);
280
273
  this.store.patchCurrentBlockConfig({
281
274
  strategy: t.strategy,
282
275
  strategyId: t.strategyId,
@@ -341,12 +334,12 @@ class at extends N {
341
334
  _applySmartDefaults() {
342
335
  if (!this.currentNode || !this.api)
343
336
  return;
344
- const t = c.getConfig(this.currentNode), e = {};
337
+ const t = l.getConfig(this.currentNode), e = {};
345
338
  let o = null, n = null, s = null;
346
339
  if (t.currency.code === a.currency.code) {
347
340
  const { currencyList: r } = this.store;
348
341
  r.length > 0 && (r.some(
349
- (d) => d.value === `price.${a.currency.code}`
342
+ (u) => u.value === `price.${a.currency.code}`
350
343
  ) || (o = r[0].value.replace("price.", ""), e.currency = {
351
344
  ...a.currency,
352
345
  code: o,
@@ -356,21 +349,21 @@ class at extends N {
356
349
  if (t.strategy === a.strategy) {
357
350
  const r = this.store.getActivePredictiveAlgorithms;
358
351
  r.length > 0 && (r.some(
359
- (d) => d.value === a.strategy
352
+ (u) => u.value === a.strategy
360
353
  ) || (n = r[0].value, e.strategy = n));
361
354
  }
362
355
  if (t.language === a.language) {
363
356
  const r = this.store.getLanguages;
364
357
  r.length > 0 && (r.some(
365
- (d) => d.value === a.language
358
+ (u) => u.value === a.language
366
359
  ) || (s = r[0].value, e.language = s));
367
360
  }
368
- !o && !n && !s || (c.updateConfig(
361
+ !o && !n && !s || (l.updateConfig(
369
362
  this.api,
370
363
  this.currentNode,
371
364
  e,
372
365
  "Applied smart defaults"
373
- ), o && e.currency && v({
366
+ ), o && e.currency && A({
374
367
  currentNode: this.currentNode,
375
368
  documentModifier: this.api.getDocumentModifier(),
376
369
  currency: e.currency
@@ -394,7 +387,7 @@ class at extends N {
394
387
  * Reads the recommendation-id attribute from the block element within the node
395
388
  */
396
389
  _getRecommendationIdFromNode(t) {
397
- const e = A(t);
390
+ const e = B(t);
398
391
  if (!e || !("getAttribute" in e))
399
392
  return null;
400
393
  const o = e.getAttribute(I);
@@ -427,13 +420,13 @@ class at extends N {
427
420
  }
428
421
  const r = t.$state.configVersion;
429
422
  r !== o && (o = r, this._capturePendingNodeConfigWrite(), this._isPendingStrategyIdChange() && this._flushPendingNodeConfig(), this._debouncedFetchProducts());
430
- const l = t.recommendationProducts, d = l !== e, m = Array.isArray(l) && l.length > 0;
431
- d && m && (e = l, this._debouncedRegenerateWithProducts());
423
+ const d = t.recommendationProducts, u = d !== e, f = Array.isArray(d) && d.length > 0;
424
+ u && f && (e = d, this._debouncedRegenerateWithProducts());
432
425
  });
433
426
  }
434
427
  }
435
428
  export {
436
- ut as ALGORITHM_CONTROL_ID,
429
+ dt as ALGORITHM_CONTROL_ID,
437
430
  T as AlgorithmControl,
438
431
  W as CONTROL_BLOCK_ID,
439
432
  gt as CURRENCY_CONTROL_ID,
@@ -457,15 +450,15 @@ export {
457
450
  w as StrategyControl,
458
451
  Et as adjustProductsToSize,
459
452
  Ft as formatProductPrice,
460
- A as getBlockElement,
453
+ B as getBlockElement,
461
454
  Dt as getCardComposition,
462
455
  wt as getCurrentLayout,
463
- vt as getMainContainerTbody,
464
- B as isPartnerManagedBlock,
465
- At as regenerateMobileProductRows,
456
+ At as getMainContainerTbody,
457
+ v as isPartnerManagedBlock,
458
+ Bt as regenerateMobileProductRows,
466
459
  U as regenerateProductRowsWithStyles,
467
- v as setCurrencyAttributes,
468
- Bt as updatePricesInPlace,
460
+ A as setCurrencyAttributes,
461
+ vt as updatePricesInPlace,
469
462
  x as updateProductContentInPlace,
470
463
  xt as updateSingleProductContent
471
464
  };
@@ -1,35 +1,33 @@
1
- var w = Object.defineProperty;
2
- var N = (l, o, t) => o in l ? w(l, o, { enumerable: !0, configurable: !0, writable: !0, value: t }) : l[o] = t;
3
- var i = (l, o, t) => N(l, typeof o != "symbol" ? o + "" : o, t);
4
- import { useLegacyStrategyConversion as L } from "../../../../../composables/useLegacyStrategyConversion.js";
5
- import { ACADEMY_LINKS as $ } from "../../../../../enums/academy.js";
6
- import { useOnboardingStore as A } from "../../../../../stores/onboarding.js";
7
- import { CommonControl as R } from "../../../common-control.js";
8
- import { RRS_CONFIG_VERSION as E } from "../../constants/defaultConfig.js";
9
- import { RecommendationConfigService as C } from "../../services/configService.js";
10
- import { useRecommendationExtensionStore as O } from "../../store/recommendation.js";
11
- const I = "recommendation-strategy-control";
12
- class P extends R {
1
+ var C = Object.defineProperty;
2
+ var $ = (c, n, t) => n in c ? C(c, n, { enumerable: !0, configurable: !0, writable: !0, value: t }) : c[n] = t;
3
+ var i = (c, n, t) => $(c, typeof n != "symbol" ? n + "" : n, t);
4
+ import { useLegacyStrategyConversion as k } from "../../../../../composables/useLegacyStrategyConversion.js";
5
+ import { ACADEMY_LINKS as L } from "../../../../../enums/academy.js";
6
+ import { useOnboardingStore as w } from "../../../../../stores/onboarding.js";
7
+ import { CommonControl as A } from "../../../common-control.js";
8
+ import { RRS_CONFIG_VERSION as N } from "../../constants/defaultConfig.js";
9
+ import { RecommendationConfigService as b } from "../../services/configService.js";
10
+ import { useRecommendationExtensionStore as R } from "../../store/recommendation.js";
11
+ const E = "recommendation-strategy-control";
12
+ class M extends A {
13
13
  constructor() {
14
14
  super(...arguments);
15
- i(this, "store", O());
16
- i(this, "onboardingStore", A());
17
- i(this, "legacyConversion", L());
15
+ i(this, "store", R());
16
+ i(this, "onboardingStore", w());
17
+ i(this, "legacyConversion", k());
18
18
  i(this, "storeUnsubscription", () => {
19
19
  });
20
20
  i(this, "listeners", []);
21
21
  i(this, "lastPaintedState", null);
22
22
  }
23
23
  getId() {
24
- return I;
24
+ return E;
25
25
  }
26
26
  getTemplate() {
27
27
  const t = this.api.translate(
28
28
  "You can assign a recommendation strategy by selecting an existing one or creating a new one to show specific content."
29
- ), e = this.api.translate("For more information, you can"), a = this.api.translate("visit Academy"), r = this.api.translate("Legacy Strategy"), s = this.api.translate(
29
+ ), e = this.api.translate("For more information, you can"), s = this.api.translate("visit Academy"), o = this.api.translate("Legacy Strategy"), a = this.api.translate(
30
30
  "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."
31
- ), g = this.api.translate(
32
- "The recommendation strategy used in the recommendation block is no longer available. You can assign a different strategy to it."
33
31
  );
34
32
  return `
35
33
  <div class="strategy-control-container">
@@ -54,9 +52,9 @@ class P extends R {
54
52
  ${t}
55
53
  ${e}
56
54
  <a
57
- href="${$.EMAIL_RECOMMENDATION_BLOCK}"
55
+ href="${L.EMAIL_RECOMMENDATION_BLOCK}"
58
56
  target="_blank"
59
- rel="noopener noreferrer">${a}</a>.
57
+ rel="noopener noreferrer">${s}</a>.
60
58
  </p>
61
59
  </div>
62
60
  <div data-strategy-empty-state style="display: none;">
@@ -73,37 +71,16 @@ class P extends R {
73
71
  id: "guido__btn-create-strategy",
74
72
  className: "strategy-control-cta primary"
75
73
  })
76
- ], "strategy-control-cta-row")}
77
- </div>
78
- <div data-strategy-unavailable-state style="display: none;">
79
- <div class="strategy-control-notice-row">
80
- <div class="strategy-control-notice strategy-control-notice--error" role="alert">
81
- <p class="strategy-control-notice-text">${g}</p>
82
- </div>
83
- </div>
84
- ${this._GuTwoColumns([
85
- this._GuButton({
86
- name: "assignUnavailableStrategy",
87
- label: this.api.translate("Assign Strategy"),
88
- id: "guido__btn-assign-unavailable-strategy",
89
- className: "strategy-control-cta on"
90
- }),
91
- this._GuButton({
92
- name: "createUnavailableStrategy",
93
- label: this.api.translate("Create New Strategy"),
94
- id: "guido__btn-create-unavailable-strategy",
95
- className: "strategy-control-cta primary"
96
- })
97
74
  ], "strategy-control-cta-row")}
98
75
  </div>
99
76
  <div data-strategy-legacy-state style="display: none;">
100
77
  <div class="strategy-control-notice-row">
101
78
  <div class="strategy-control-notice">
102
- <p class="strategy-control-notice-text">${s}</p>
79
+ <p class="strategy-control-notice-text">${a}</p>
103
80
  </div>
104
81
  </div>
105
82
  <div class="strategy-control-name-band">
106
- <span class="strategy-control-name">${r}</span>
83
+ <span class="strategy-control-name">${o}</span>
107
84
  ${this._strategyAction({
108
85
  id: "guido__btn-update-legacy-strategy",
109
86
  label: this.api.translate("Update"),
@@ -146,12 +123,12 @@ class P extends R {
146
123
  </div>
147
124
  `;
148
125
  }
149
- _strategyAction({ id: t, label: e, modifier: a }) {
126
+ _strategyAction({ id: t, label: e, modifier: s }) {
150
127
  return `
151
128
  <button
152
129
  id="${t}"
153
130
  type="button"
154
- class="strategy-control-action strategy-control-action--${a}">
131
+ class="strategy-control-action strategy-control-action--${s}">
155
132
  <span>${e}</span>
156
133
  </button>
157
134
  `;
@@ -159,8 +136,8 @@ class P extends R {
159
136
  onRender() {
160
137
  this._teardown(), this.store.strategyPanelOpen = !0, this._setupButtonListeners(), this._renderState(), this.storeUnsubscription = this.store.$subscribe(() => {
161
138
  this._renderState();
162
- }), this.store.recommendationConfigs.strategyId && !this.store.strategiesLoading && (this.store.invalidateStrategies(), this.store.fetchStrategies().catch(() => {
163
- }));
139
+ }), this.store.recommendationConfigs.strategyId && !this.store.strategiesFetched && this.store.fetchStrategies().catch(() => {
140
+ });
164
141
  }
165
142
  /**
166
143
  * Whether the document itself says this block has no strategy.
@@ -170,10 +147,10 @@ class P extends R {
170
147
  * strategyId) for an assigned block.
171
148
  */
172
149
  _isNodeUnassigned() {
173
- if (!C.hasConfig(this.currentNode))
150
+ if (!b.hasConfig(this.currentNode))
174
151
  return !1;
175
- const t = C.getConfig(this.currentNode);
176
- return !t.strategyId && (t.configVersion ?? 0) >= E;
152
+ const t = b.getConfig(this.currentNode);
153
+ return !t.strategyId && (t.configVersion ?? 0) >= N;
177
154
  }
178
155
  onDestroy() {
179
156
  this._teardown();
@@ -186,37 +163,37 @@ class P extends R {
186
163
  const t = this.getContainer();
187
164
  if (!t)
188
165
  return;
189
- const e = (a, r) => {
190
- const s = t.querySelector(a);
191
- s && (s.addEventListener("click", r), this.listeners.push({ element: s, handler: r }));
166
+ const e = (s, o) => {
167
+ const a = t.querySelector(s);
168
+ a && (a.addEventListener("click", o), this.listeners.push({ element: a, handler: o }));
192
169
  };
193
- e("#guido__btn-assign-strategy", () => this.store.openAssignStrategyDrawer()), e("#guido__btn-create-strategy", () => this.store.openStrategyCreation()), e("#guido__btn-assign-unavailable-strategy", () => this.store.openAssignStrategyDrawer()), e("#guido__btn-create-unavailable-strategy", () => this.store.openStrategyCreation()), 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-remove-legacy-strategy", () => this.store.openRemoveStrategyModal()), e("#guido__btn-update-legacy-strategy", () => {
170
+ e("#guido__btn-assign-strategy", () => this.store.openAssignStrategyDrawer()), e("#guido__btn-create-strategy", () => this.store.openStrategyCreation()), 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-remove-legacy-strategy", () => this.store.openRemoveStrategyModal()), e("#guido__btn-update-legacy-strategy", () => {
194
171
  this.legacyConversion.convertLegacyStrategy();
195
172
  });
196
173
  }
197
174
  _renderState() {
198
- var f;
199
- const { strategyId: t } = this.store.recommendationConfigs, e = t ? ((f = this.store.assignedStrategy) == null ? void 0 : f.name) ?? "" : "", a = !!t && !e && (this.store.strategiesLoading || !this.store.strategiesSettled), r = !!t && !e && !a && this.store.strategiesFetched, s = this.store.legacyConversionLoading, g = this.store.isLegacyStrategyBlock, p = [t, e, a, r, s, g].join("\0");
200
- if (p === this.lastPaintedState)
175
+ var _;
176
+ const { strategyId: t } = this.store.recommendationConfigs, e = t ? ((_ = this.store.assignedStrategy) == null ? void 0 : _.name) ?? "" : "", s = !!t && !e && (this.store.strategiesLoading || !this.store.strategiesSettled), o = this.store.legacyConversionLoading, a = this.store.isLegacyStrategyBlock, h = `${t}\0${e}\0${s}\0${o}\0${a}`;
177
+ if (h === this.lastPaintedState)
201
178
  return;
202
- const n = this.getContainer();
203
- if (!n)
179
+ const r = this.getContainer();
180
+ if (!r)
204
181
  return;
205
- const y = n.querySelector("[data-strategy-empty-state]"), u = n.querySelector("[data-strategy-assigned-state]"), c = n.querySelector("[data-strategy-legacy-state]"), h = n.querySelector("[data-strategy-unavailable-state]"), v = n.querySelector("[data-strategy-loading-state]"), b = n.querySelector("[data-strategy-content]"), m = n.querySelector("[data-strategy-name]"), _ = n.querySelector("[data-strategy-name-skeleton]");
206
- if (!y || !u || !c || !h)
182
+ const d = r.querySelector("[data-strategy-empty-state]"), y = r.querySelector("[data-strategy-assigned-state]"), g = r.querySelector("[data-strategy-legacy-state]"), p = r.querySelector("[data-strategy-loading-state]"), u = r.querySelector("[data-strategy-content]"), m = r.querySelector("[data-strategy-name]"), v = r.querySelector("[data-strategy-name-skeleton]");
183
+ if (!d || !y || !g)
207
184
  return;
208
- v && (v.style.display = "none"), b && (b.style.display = "");
209
- const k = t ? r ? h : u : g ? c : y;
210
- [y, u, c, h].forEach((d) => {
211
- d.style.display = d === k ? "" : "none";
212
- }), c.querySelectorAll("button").forEach((d) => {
213
- d.disabled = s;
214
- }), c.classList.toggle("is-converting", s), !t && this._isNodeUnassigned() && this.onboardingStore.startOnboarding("recommendationStrategyOnboarding");
185
+ p && (p.style.display = "none"), u && (u.style.display = "");
186
+ const f = t ? y : a ? g : d;
187
+ [d, y, g].forEach((l) => {
188
+ l.style.display = l === f ? "" : "none";
189
+ }), g.querySelectorAll("button").forEach((l) => {
190
+ l.disabled = o;
191
+ }), g.classList.toggle("is-converting", o), !t && this._isNodeUnassigned() && this.onboardingStore.startOnboarding("recommendationStrategyOnboarding");
215
192
  const S = this.store.currentRecommendationId;
216
- g && S !== null && this.store.blockStates[S] && this.onboardingStore.startOnboarding("recommendationLegacyStrategyOnboarding"), m && (m.style.display = a ? "none" : "", t && !a && (m.textContent = e || `#${t}`)), _ && (_.style.display = a ? "block" : "none"), this.lastPaintedState = p;
193
+ a && S !== null && this.store.blockStates[S] && this.onboardingStore.startOnboarding("recommendationLegacyStrategyOnboarding"), m && (m.style.display = s ? "none" : "", t && !s && (m.textContent = e || `#${t}`)), v && (v.style.display = s ? "block" : "none"), this.lastPaintedState = h;
217
194
  }
218
195
  }
219
196
  export {
220
- I as STRATEGY_CONTROL_ID,
221
- P as StrategyControl
197
+ E as STRATEGY_CONTROL_ID,
198
+ M as StrategyControl
222
199
  };
@@ -503,7 +503,6 @@ const Q = () => ({
503
503
  this.blockStates[r].legacyConversionLoading = !0;
504
504
  try {
505
505
  const n = await m.migrateLegacyStrategy(t, e);
506
- this.invalidateStrategies();
507
506
  try {
508
507
  await this.fetchStrategies();
509
508
  } catch (o) {
package/dist/guido.css CHANGED
@@ -1 +1 @@
1
- @charset "UTF-8";.gap-16[data-v-5553d071],.gap-16[data-v-0e1b0c54]{gap:16px}[data-v-73199fa4] .in-button-v2__wrapper{line-height:0}[data-v-22226124] .in-segments-wrapper__button_selected,[data-v-22226124] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb;color:#0010ac;border-color:#0010ac}[data-v-2cb418af] .in-progress-wrapper__progress p span:last-child{display:none!important}[data-v-2cb418af] .in-progress-description-status{display:none!important}.view-options-wrapper[data-v-87033101]{position:relative;display:inline-block}.new-tag[data-v-87033101]{position:absolute;top:-8px;right:-16px;z-index:10}[data-v-87033101] .guido__view-option-selection-desktop svg,[data-v-87033101] .guido__view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-87033101] .in-segments-wrapper__button_selected,[data-v-87033101] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}[data-v-87033101] .in-tooltip-wrapper-v2__icon{cursor:pointer}.editor-toolbar[data-v-173c3a40]{gap:4px}.version-history-item[data-v-ee4b9c3f]{flex-basis:200px}.version-history[data-v-fad98586]{gap:8px}.version-history__toolbar[data-v-fad98586]{gap:4px}.view-options-wrapper[data-v-6ebabfe4]{position:relative;display:inline-block}.new-tag[data-v-6ebabfe4]{position:absolute;top:-8px;right:-16px;z-index:10}[data-v-6ebabfe4] .guido__verion-history-view-option-selection-desktop svg,[data-v-6ebabfe4] .guido__verion-history-view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-6ebabfe4] .in-segments-wrapper__button_selected,[data-v-6ebabfe4] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}[data-v-6ebabfe4] .in-tooltip-wrapper-v2__icon{cursor:pointer}.auto-save-toggle[data-v-2c964af4]{position:relative}.auto-save-toggle__info-box[data-v-2c964af4]{position:absolute;top:100%;left:0;z-index:10;width:280px}.editor-actions[data-v-c61cc8ea]{gap:4px}.header-wrapper[data-v-d11dd577]{min-width:1000px}.guido-loading__wrapper[data-v-07c4b2d8]{height:100%;top:75px!important;bottom:0!important}.guido-editor__wrapper[data-v-55f67f37]{--ribbon-offset: 0px;position:relative;width:100%;height:calc(100vh - 128px - var(--ribbon-offset))}.guido-editor__container[data-v-55f67f37]{width:100%;height:calc(100vh - 128px - var(--ribbon-offset))}.guido-editor__no-header[data-v-55f67f37]{height:calc(100vh - 75px - var(--ribbon-offset))}[data-v-293f1c47] .in-breadcrumb-wrapper__links{cursor:pointer}.templates-wrapper[data-v-91a26acd]{gap:16px;grid-template-columns:repeat(3,1fr)}.templates-wrapper .template-wrapper[data-v-91a26acd]{cursor:pointer}.templates-wrapper .template-wrapper .template-container[data-v-91a26acd]{height:274px;padding:2px;transition:none}.templates-wrapper .template-wrapper .template-container.selected[data-v-91a26acd]{padding:1px}.templates-wrapper .template-wrapper .template-container .thumbnail[data-v-91a26acd]{object-fit:cover;transform:scale(1)}[data-v-b9a93c6e] .guido__verion-history-view-option-selection-desktop svg,[data-v-b9a93c6e] .guido__verion-history-view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-b9a93c6e] .in-segments-wrapper__button_selected,[data-v-b9a93c6e] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}.error-list[data-v-c3fd5d4b]{gap:16px}.desktop-browser-header[data-v-d86c5af5]{height:79px;min-height:79px}.desktop-browser-header__left[data-v-d86c5af5]{-webkit-user-drag:none;height:79px;width:378px}.desktop-browser-header__center[data-v-d86c5af5]{height:79px;background-repeat:repeat-x;background-size:auto 100%;background-position:left top}.desktop-browser-header__right[data-v-d86c5af5]{-webkit-user-drag:none;height:79px;width:112px}.desktop-preview[data-v-cf946232]{min-width:602px;height:70vh;min-height:583px;border-radius:10px}.desktop-preview iframe[data-v-cf946232]{min-height:504px}.iframe-wrapper[data-v-f255b2bb]{width:258px}.iframe-scaled[data-v-f255b2bb]{width:320px;height:124.0310077519%;transform:scale(.80625);transform-origin:top left}.cropped-text[data-v-eb3d05d7]{width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-preview-wrapper__phone[data-v-3f472f96]{width:282px}.mobile-preview-wrapper__phone img[data-v-3f472f96]{object-fit:cover;border-radius:44px}.mobile-preview-wrapper__content[data-v-3f472f96]{width:258px;height:450px;left:12px}[data-v-6bcaca8a] .vueperslides__parallax-wrapper{padding-bottom:110px!important}[data-v-f16f20f8] .vueperslides__bullets{pointer-events:none!important}[data-v-f16f20f8] .vueperslides__parallax-wrapper{padding-bottom:110px!important}[data-v-bb3cca55] .vueperslides__bullets{pointer-events:none!important}[data-v-bb3cca55] .vueperslides__parallax-wrapper{height:110px!important;padding-bottom:110px!important}[data-v-19d8cb42] .vueperslides__bullets,[data-v-ec2027ff] .vueperslides__bullets,[data-v-b09e80c4] .vueperslides__bullets{pointer-events:none!important}[data-v-b09e80c4] .vueperslides__parallax-wrapper{height:110px!important;padding-bottom:110px!important}[data-v-9bdef600] .vueperslides__parallax-wrapper{padding-bottom:110px!important}.assign-strategy-drawer-content .assign-strategy-select[data-v-6ce48dfd]{width:100%;max-width:none}.assign-strategy-drawer-content .assign-strategy-select[data-v-6ce48dfd] .in-skeleton{width:100%!important}.assign-strategy-drawer-content .assign-strategy-select[data-v-6ce48dfd] .in-dropdown-box__container{width:413px}.assign-strategy-drawer .spaced-dot-sep{background-image:linear-gradient(90deg,#91949f 20%,#fff0 0);background-position:center bottom;background-repeat:repeat-x;background-size:5px 1px}.assign-strategy-drawer .spaced-dot-sep--top{background-position:center top}.assign-strategy-drawer .spaced-dot-sep--fc-n:first-child{background:none}.legacy-strategy-updated-modal[data-v-da2225a1]{position:relative;z-index:145}
1
+ @charset "UTF-8";.auth-error-modal[data-v-b4d7ae51]{position:relative;z-index:145}.gap-16[data-v-5553d071],.gap-16[data-v-0e1b0c54]{gap:16px}[data-v-73199fa4] .in-button-v2__wrapper{line-height:0}[data-v-22226124] .in-segments-wrapper__button_selected,[data-v-22226124] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb;color:#0010ac;border-color:#0010ac}[data-v-2cb418af] .in-progress-wrapper__progress p span:last-child{display:none!important}[data-v-2cb418af] .in-progress-description-status{display:none!important}.view-options-wrapper[data-v-87033101]{position:relative;display:inline-block}.new-tag[data-v-87033101]{position:absolute;top:-8px;right:-16px;z-index:10}[data-v-87033101] .guido__view-option-selection-desktop svg,[data-v-87033101] .guido__view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-87033101] .in-segments-wrapper__button_selected,[data-v-87033101] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}[data-v-87033101] .in-tooltip-wrapper-v2__icon{cursor:pointer}.editor-toolbar[data-v-173c3a40]{gap:4px}.version-history-item[data-v-ee4b9c3f]{flex-basis:200px}.version-history[data-v-fad98586]{gap:8px}.version-history__toolbar[data-v-fad98586]{gap:4px}.view-options-wrapper[data-v-6ebabfe4]{position:relative;display:inline-block}.new-tag[data-v-6ebabfe4]{position:absolute;top:-8px;right:-16px;z-index:10}[data-v-6ebabfe4] .guido__verion-history-view-option-selection-desktop svg,[data-v-6ebabfe4] .guido__verion-history-view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-6ebabfe4] .in-segments-wrapper__button_selected,[data-v-6ebabfe4] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}[data-v-6ebabfe4] .in-tooltip-wrapper-v2__icon{cursor:pointer}.auto-save-toggle[data-v-2c964af4]{position:relative}.auto-save-toggle__info-box[data-v-2c964af4]{position:absolute;top:100%;left:0;z-index:10;width:280px}.editor-actions[data-v-c61cc8ea]{gap:4px}.header-wrapper[data-v-d11dd577]{min-width:1000px}.guido-loading__wrapper[data-v-07c4b2d8]{height:100%;top:75px!important;bottom:0!important}.guido-editor__wrapper[data-v-080ff767]{--ribbon-offset: 0px;position:relative;width:100%;height:calc(100vh - 128px - var(--ribbon-offset))}.guido-editor__container[data-v-080ff767]{width:100%;height:calc(100vh - 128px - var(--ribbon-offset))}.guido-editor__no-header[data-v-080ff767]{height:calc(100vh - 75px - var(--ribbon-offset))}[data-v-293f1c47] .in-breadcrumb-wrapper__links{cursor:pointer}.templates-wrapper[data-v-91a26acd]{gap:16px;grid-template-columns:repeat(3,1fr)}.templates-wrapper .template-wrapper[data-v-91a26acd]{cursor:pointer}.templates-wrapper .template-wrapper .template-container[data-v-91a26acd]{height:274px;padding:2px;transition:none}.templates-wrapper .template-wrapper .template-container.selected[data-v-91a26acd]{padding:1px}.templates-wrapper .template-wrapper .template-container .thumbnail[data-v-91a26acd]{object-fit:cover;transform:scale(1)}[data-v-b9a93c6e] .guido__verion-history-view-option-selection-desktop svg,[data-v-b9a93c6e] .guido__verion-history-view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-b9a93c6e] .in-segments-wrapper__button_selected,[data-v-b9a93c6e] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}.error-list[data-v-c3fd5d4b]{gap:16px}.desktop-browser-header[data-v-d86c5af5]{height:79px;min-height:79px}.desktop-browser-header__left[data-v-d86c5af5]{-webkit-user-drag:none;height:79px;width:378px}.desktop-browser-header__center[data-v-d86c5af5]{height:79px;background-repeat:repeat-x;background-size:auto 100%;background-position:left top}.desktop-browser-header__right[data-v-d86c5af5]{-webkit-user-drag:none;height:79px;width:112px}.desktop-preview[data-v-cf946232]{min-width:602px;height:70vh;min-height:583px;border-radius:10px}.desktop-preview iframe[data-v-cf946232]{min-height:504px}.iframe-wrapper[data-v-f255b2bb]{width:258px}.iframe-scaled[data-v-f255b2bb]{width:320px;height:124.0310077519%;transform:scale(.80625);transform-origin:top left}.cropped-text[data-v-eb3d05d7]{width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-preview-wrapper__phone[data-v-3f472f96]{width:282px}.mobile-preview-wrapper__phone img[data-v-3f472f96]{object-fit:cover;border-radius:44px}.mobile-preview-wrapper__content[data-v-3f472f96]{width:258px;height:450px;left:12px}[data-v-6bcaca8a] .vueperslides__parallax-wrapper{padding-bottom:110px!important}[data-v-f16f20f8] .vueperslides__bullets{pointer-events:none!important}[data-v-f16f20f8] .vueperslides__parallax-wrapper{padding-bottom:110px!important}[data-v-bb3cca55] .vueperslides__bullets{pointer-events:none!important}[data-v-bb3cca55] .vueperslides__parallax-wrapper{height:110px!important;padding-bottom:110px!important}[data-v-19d8cb42] .vueperslides__bullets,[data-v-ec2027ff] .vueperslides__bullets,[data-v-b09e80c4] .vueperslides__bullets{pointer-events:none!important}[data-v-b09e80c4] .vueperslides__parallax-wrapper{height:110px!important;padding-bottom:110px!important}[data-v-9bdef600] .vueperslides__parallax-wrapper{padding-bottom:110px!important}.assign-strategy-drawer-content .assign-strategy-select[data-v-6ce48dfd]{width:100%;max-width:none}.assign-strategy-drawer-content .assign-strategy-select[data-v-6ce48dfd] .in-skeleton{width:100%!important}.assign-strategy-drawer-content .assign-strategy-select[data-v-6ce48dfd] .in-dropdown-box__container{width:413px}.assign-strategy-drawer .spaced-dot-sep{background-image:linear-gradient(90deg,#91949f 20%,#fff0 0);background-position:center bottom;background-repeat:repeat-x;background-size:5px 1px}.assign-strategy-drawer .spaced-dot-sep--top{background-position:center top}.assign-strategy-drawer .spaced-dot-sep--fc-n:first-child{background:none}.legacy-strategy-updated-modal[data-v-da2225a1]{position:relative;z-index:145}
@@ -278,14 +278,6 @@ export declare const TemplateSchema: v.ObjectSchema<{
278
278
  * mount. Non-numbers still fail, like every other field in this schema.
279
279
  */
280
280
  readonly trackIdCounter: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.TransformAction<number, number>]>, 0>;
281
- /**
282
- * The variation's saved `recommendationCampaignUrls`, keyed by block id. A block
283
- * that still names a strategy but has no entry here had it dropped by a
284
- * cross-account duplicate, so Guido resets it on load (SD-151945). Omit it and
285
- * that check is off, and so is any non-object value such as `null`, because a reset
286
- * cannot be undone. Hosts send `[]` for an empty map.
287
- */
288
- readonly recommendationCampaignUrls: v.OptionalSchema<v.SchemaWithPipe<readonly [v.UnknownSchema, v.TransformAction<unknown, Record<string, unknown> | undefined>]>, undefined>;
289
281
  /** Migration-only inputs (legacy block configs) */
290
282
  readonly migration: v.OptionalSchema<v.ObjectSchema<{
291
283
  /**
@@ -709,14 +701,6 @@ export declare const GuidoConfigSchema: v.ObjectSchema<{
709
701
  * mount. Non-numbers still fail, like every other field in this schema.
710
702
  */
711
703
  readonly trackIdCounter: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.TransformAction<number, number>]>, 0>;
712
- /**
713
- * The variation's saved `recommendationCampaignUrls`, keyed by block id. A block
714
- * that still names a strategy but has no entry here had it dropped by a
715
- * cross-account duplicate, so Guido resets it on load (SD-151945). Omit it and
716
- * that check is off, and so is any non-object value such as `null`, because a reset
717
- * cannot be undone. Hosts send `[]` for an empty map.
718
- */
719
- readonly recommendationCampaignUrls: v.OptionalSchema<v.SchemaWithPipe<readonly [v.UnknownSchema, v.TransformAction<unknown, Record<string, unknown> | undefined>]>, undefined>;
720
704
  /** Migration-only inputs (legacy block configs) */
721
705
  readonly migration: v.OptionalSchema<v.ObjectSchema<{
722
706
  /**
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
2
+ export default _default;