@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.
- package/dist/@types/config/schemas.js +91 -104
- package/dist/components/Guido.vue.js +6 -6
- package/dist/components/Guido.vue2.js +72 -75
- package/dist/components/organisms/base/AuthErrorModal.vue.js +18 -0
- package/dist/components/organisms/base/AuthErrorModal.vue2.js +42 -0
- package/dist/components/wrappers/WpModal.vue.js +1 -1
- package/dist/components/wrappers/WpModal.vue2.js +4 -3
- package/dist/composables/useAuthError.js +52 -0
- package/dist/composables/useHttp.js +64 -54
- package/dist/composables/useToaster.js +17 -15
- package/dist/composables/validators/useLiquidValidator.js +15 -15
- package/dist/config/migrator/index.js +13 -14
- package/dist/extensions/Blocks/Recommendation/block.js +14 -15
- package/dist/extensions/Blocks/Recommendation/controls/main/index.js +38 -45
- package/dist/extensions/Blocks/Recommendation/controls/main/strategy.js +49 -72
- package/dist/extensions/Blocks/Recommendation/store/recommendation.js +0 -1
- package/dist/guido.css +1 -1
- package/dist/src/@types/config/schemas.d.ts +0 -16
- package/dist/src/components/organisms/base/AuthErrorModal.vue.d.ts +2 -0
- package/dist/src/components/wrappers/WpModal.vue.d.ts +5 -1
- package/dist/src/composables/useAuthError.d.ts +12 -0
- package/dist/src/composables/useConfig.d.ts +0 -2
- package/dist/src/composables/useHttp.d.ts +2 -0
- package/dist/src/config/migrator/index.d.ts +1 -2
- package/dist/src/extensions/Blocks/Recommendation/types/nodeConfig.d.ts +0 -6
- package/dist/src/stores/config.d.ts +0 -20
- package/dist/static/styles/components/recommendation-strategy.css.js +0 -9
- package/package.json +1 -1
- package/dist/config/migrator/recommendationPartnerMigrator.js +0 -50
- package/dist/extensions/Blocks/Recommendation/utils/partnerScope.js +0 -25
- package/dist/src/config/migrator/recommendationPartnerMigrator.d.ts +0 -19
- package/dist/src/extensions/Blocks/Recommendation/utils/partnerScope.d.ts +0 -33
|
@@ -1,17 +1,16 @@
|
|
|
1
|
-
import { migrateCheckbox as
|
|
2
|
-
import { migrateCouponBlock as
|
|
3
|
-
import { migrateItemsBlock as
|
|
4
|
-
import { migrateProductNameLink as
|
|
5
|
-
import { migrateRadioButton as
|
|
6
|
-
import { migrateRecommendation as
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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
|
-
|
|
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
|
|
4
|
-
import { useConfig as
|
|
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
|
|
13
|
+
import { useRecommendationExtensionStore as d } from "./store/recommendation.js";
|
|
14
14
|
import { getDefaultTemplate as T } from "./templates/grid/template.js";
|
|
15
|
-
import { useRecommendationBlockWarning as
|
|
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
|
-
|
|
25
|
+
g(this, "_pendingBlockId", null);
|
|
26
26
|
/** Ids already reset under their new name, so the deferred pass skips their stale snapshot. */
|
|
27
|
-
|
|
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 =
|
|
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 =
|
|
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 &&
|
|
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
|
-
|
|
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
|
-
|
|
200
|
+
h().isFeatureEnabled("reusableRecommendationStrategy") && setTimeout(() => {
|
|
202
201
|
const e = this._getRecommendationId(t);
|
|
203
|
-
e !== null && e > 0 && !this._resetSourceIds.delete(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 =
|
|
260
|
-
n.cloneBlockState(e, i), n.setCurrentBlock(i),
|
|
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
|
|
2
|
-
var
|
|
3
|
-
var i = (g,
|
|
4
|
-
import { useConfig as
|
|
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
|
|
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
|
|
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
|
|
33
|
-
import { adjustProductsToSize as Et, formatProductPrice as Ft, getCardComposition as Dt, getCurrentLayout as wt, getMainContainerTbody as
|
|
34
|
-
import { useDebounceFn as
|
|
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",
|
|
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",
|
|
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 (
|
|
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 =
|
|
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 :
|
|
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(
|
|
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 ?
|
|
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
|
|
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 : (
|
|
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 =
|
|
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 ||
|
|
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 =
|
|
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 =
|
|
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
|
-
(
|
|
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
|
-
(
|
|
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
|
-
(
|
|
358
|
+
(u) => u.value === a.language
|
|
366
359
|
) || (s = r[0].value, e.language = s));
|
|
367
360
|
}
|
|
368
|
-
!o && !n && !s || (
|
|
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 &&
|
|
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 =
|
|
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
|
|
431
|
-
|
|
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
|
-
|
|
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
|
-
|
|
453
|
+
B as getBlockElement,
|
|
461
454
|
Dt as getCardComposition,
|
|
462
455
|
wt as getCurrentLayout,
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
456
|
+
At as getMainContainerTbody,
|
|
457
|
+
v as isPartnerManagedBlock,
|
|
458
|
+
Bt as regenerateMobileProductRows,
|
|
466
459
|
U as regenerateProductRowsWithStyles,
|
|
467
|
-
|
|
468
|
-
|
|
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
|
|
2
|
-
var
|
|
3
|
-
var i = (
|
|
4
|
-
import { useLegacyStrategyConversion as
|
|
5
|
-
import { ACADEMY_LINKS as
|
|
6
|
-
import { useOnboardingStore as
|
|
7
|
-
import { CommonControl as
|
|
8
|
-
import { RRS_CONFIG_VERSION as
|
|
9
|
-
import { RecommendationConfigService as
|
|
10
|
-
import { useRecommendationExtensionStore as
|
|
11
|
-
const
|
|
12
|
-
class
|
|
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",
|
|
16
|
-
i(this, "onboardingStore",
|
|
17
|
-
i(this, "legacyConversion",
|
|
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
|
|
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"),
|
|
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="${
|
|
55
|
+
href="${L.EMAIL_RECOMMENDATION_BLOCK}"
|
|
58
56
|
target="_blank"
|
|
59
|
-
rel="noopener noreferrer">${
|
|
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">${
|
|
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">${
|
|
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:
|
|
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--${
|
|
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.
|
|
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 (!
|
|
150
|
+
if (!b.hasConfig(this.currentNode))
|
|
174
151
|
return !1;
|
|
175
|
-
const t =
|
|
176
|
-
return !t.strategyId && (t.configVersion ?? 0) >=
|
|
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 = (
|
|
190
|
-
const
|
|
191
|
-
|
|
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-
|
|
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
|
|
199
|
-
const { strategyId: t } = this.store.recommendationConfigs, e = t ? ((
|
|
200
|
-
if (
|
|
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
|
|
203
|
-
if (!
|
|
179
|
+
const r = this.getContainer();
|
|
180
|
+
if (!r)
|
|
204
181
|
return;
|
|
205
|
-
const
|
|
206
|
-
if (!
|
|
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
|
-
|
|
209
|
-
const
|
|
210
|
-
[
|
|
211
|
-
|
|
212
|
-
}),
|
|
213
|
-
|
|
214
|
-
}),
|
|
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
|
-
|
|
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
|
-
|
|
221
|
-
|
|
197
|
+
E as STRATEGY_CONTROL_ID,
|
|
198
|
+
M as StrategyControl
|
|
222
199
|
};
|
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-
|
|
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;
|