@useinsider/guido 3.12.0-beta.840207a → 3.12.0-beta.841bb6a

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 (61) hide show
  1. package/dist/@types/config/schemas.js +8 -13
  2. package/dist/components/Guido.vue.js +6 -6
  3. package/dist/components/Guido.vue2.js +49 -50
  4. package/dist/composables/useRecommendation.js +51 -82
  5. package/dist/config/migrator/recommendationMigrator.js +4 -7
  6. package/dist/enums/date.js +3 -4
  7. package/dist/enums/extensions/recommendationBlock.js +22 -28
  8. package/dist/extensions/Blocks/Recommendation/constants/defaultConfig.js +11 -12
  9. package/dist/extensions/Blocks/Recommendation/controls/main/index.js +109 -123
  10. package/dist/extensions/Blocks/Recommendation/iconsRegistry.js +1 -1
  11. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +102 -256
  12. package/dist/extensions/Blocks/Recommendation/validation/requiredFields.js +12 -24
  13. package/dist/guido.css +1 -1
  14. package/dist/services/recommendationApi.js +29 -72
  15. package/dist/src/@types/config/schemas.d.ts +0 -10
  16. package/dist/src/composables/useConfig.d.ts +0 -2
  17. package/dist/src/composables/useRecommendation.d.ts +0 -2
  18. package/dist/src/enums/extensions/recommendationBlock.d.ts +0 -10
  19. package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +1 -3
  20. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +1 -606
  21. package/dist/src/extensions/Blocks/Recommendation/types/nodeConfig.d.ts +0 -7
  22. package/dist/src/extensions/Blocks/Recommendation/validation/requiredFields.d.ts +1 -3
  23. package/dist/src/services/recommendationApi.d.ts +1 -7
  24. package/dist/src/stores/config.d.ts +0 -18
  25. package/dist/src/utils/genericUtil.d.ts +0 -9
  26. package/dist/static/styles/base.css.js +0 -15
  27. package/dist/utils/dateUtil.js +10 -23
  28. package/dist/utils/genericUtil.js +1 -10
  29. package/dist/utils/pairProductVariables.js +44 -43
  30. package/dist/utils/templatePreparation.js +58 -62
  31. package/package.json +1 -1
  32. package/dist/components/organisms/extensions/recommendation/StrategyDetailDrawer.vue.js +0 -36
  33. package/dist/components/organisms/extensions/recommendation/StrategyDetailDrawer.vue2.js +0 -244
  34. package/dist/components/organisms/extensions/recommendation/strategy-detail/CampaignTable.vue.js +0 -18
  35. package/dist/components/organisms/extensions/recommendation/strategy-detail/CampaignTable.vue2.js +0 -42
  36. package/dist/components/organisms/extensions/recommendation/strategy-detail/FilterHumanizer.vue.js +0 -20
  37. package/dist/components/organisms/extensions/recommendation/strategy-detail/FilterHumanizer.vue2.js +0 -18
  38. package/dist/components/organisms/extensions/recommendation/strategy-detail/HumanizerCondition.vue.js +0 -20
  39. package/dist/components/organisms/extensions/recommendation/strategy-detail/HumanizerCondition.vue2.js +0 -60
  40. package/dist/components/organisms/extensions/recommendation/strategy-detail/HumanizerGroup.vue.js +0 -19
  41. package/dist/components/organisms/extensions/recommendation/strategy-detail/HumanizerGroup.vue2.js +0 -19
  42. package/dist/components/organisms/extensions/recommendation/strategy-detail/InfoDisplayValue.vue.js +0 -22
  43. package/dist/components/organisms/extensions/recommendation/strategy-detail/InfoDisplayValue.vue2.js +0 -29
  44. package/dist/composables/useStrategyFilters.js +0 -16
  45. package/dist/enums/extensions/filteringV2.js +0 -8
  46. package/dist/enums/extensions/strategyDetail.js +0 -148
  47. package/dist/extensions/Blocks/Recommendation/controls/main/strategy.js +0 -146
  48. package/dist/extensions/Blocks/Recommendation/utils/strategyHumanizer.js +0 -97
  49. package/dist/extensions/Blocks/Recommendation/utils/strategySummary.js +0 -10
  50. package/dist/src/components/organisms/extensions/recommendation/StrategyDetailDrawer.vue.d.ts +0 -2
  51. package/dist/src/components/organisms/extensions/recommendation/strategy-detail/CampaignTable.vue.d.ts +0 -43
  52. package/dist/src/components/organisms/extensions/recommendation/strategy-detail/FilterHumanizer.vue.d.ts +0 -29
  53. package/dist/src/components/organisms/extensions/recommendation/strategy-detail/HumanizerCondition.vue.d.ts +0 -40
  54. package/dist/src/components/organisms/extensions/recommendation/strategy-detail/HumanizerGroup.vue.d.ts +0 -38
  55. package/dist/src/components/organisms/extensions/recommendation/strategy-detail/InfoDisplayValue.vue.d.ts +0 -51
  56. package/dist/src/composables/useStrategyFilters.d.ts +0 -24
  57. package/dist/src/enums/extensions/filteringV2.d.ts +0 -72
  58. package/dist/src/enums/extensions/strategyDetail.d.ts +0 -90
  59. package/dist/src/extensions/Blocks/Recommendation/controls/main/strategy.d.ts +0 -61
  60. package/dist/src/extensions/Blocks/Recommendation/utils/strategyHumanizer.d.ts +0 -50
  61. package/dist/src/extensions/Blocks/Recommendation/utils/strategySummary.d.ts +0 -34
package/dist/guido.css CHANGED
@@ -1 +1 @@
1
- .gap-16[data-v-5553d071],.gap-16[data-v-0e1b0c54]{gap:16px}[data-v-3ff1b2a9] .in-ag-filter-header{display:none}.condition-data[data-v-ef803818]{gap:4px}.filter-humanizer[data-v-3ecb7de4]{margin:0 -32px}[data-v-6e572ff5] .in-tooltip-wrapper__box{max-width:inherit}[data-v-008cf324] .in-drawer__content{padding:0}.other-details div[data-v-008cf324]:first-child{margin-top:0}[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-195ab6d4]{position:relative;display:inline-block}.new-tag[data-v-195ab6d4]{position:absolute;top:-8px;right:-16px;z-index:10}[data-v-195ab6d4] .guido__view-option-selection-desktop svg,[data-v-195ab6d4] .guido__view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-195ab6d4] .in-segments-wrapper__button_selected,[data-v-195ab6d4] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}[data-v-195ab6d4] .in-tooltip-wrapper__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-d405ca59]{position:relative;display:inline-block}.new-tag[data-v-d405ca59]{position:absolute;top:-8px;right:-16px;z-index:10}[data-v-d405ca59] .guido__verion-history-view-option-selection-desktop svg,[data-v-d405ca59] .guido__verion-history-view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-d405ca59] .in-segments-wrapper__button_selected,[data-v-d405ca59] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}[data-v-d405ca59] .in-tooltip-wrapper__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-6e711fd7]{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-f96d1003]{--ribbon-offset: 0px;position:relative;width:100%;height:calc(100vh - 128px - var(--ribbon-offset))}.guido-editor__container[data-v-f96d1003]{width:100%;height:calc(100vh - 128px - var(--ribbon-offset))}.guido-editor__no-header[data-v-f96d1003]{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-06afaecb]{min-width:602px;height:70vh;min-height:583px;border-radius:10px}.desktop-preview iframe[data-v-06afaecb]{min-height:504px}.iframe-wrapper[data-v-cbafc185]{width:258px}.iframe-scaled[data-v-cbafc185]{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-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}
1
+ .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-195ab6d4]{position:relative;display:inline-block}.new-tag[data-v-195ab6d4]{position:absolute;top:-8px;right:-16px;z-index:10}[data-v-195ab6d4] .guido__view-option-selection-desktop svg,[data-v-195ab6d4] .guido__view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-195ab6d4] .in-segments-wrapper__button_selected,[data-v-195ab6d4] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}[data-v-195ab6d4] .in-tooltip-wrapper__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-d405ca59]{position:relative;display:inline-block}.new-tag[data-v-d405ca59]{position:absolute;top:-8px;right:-16px;z-index:10}[data-v-d405ca59] .guido__verion-history-view-option-selection-desktop svg,[data-v-d405ca59] .guido__verion-history-view-option-selection-mobile svg{margin:0 0 0 2px}[data-v-d405ca59] .in-segments-wrapper__button_selected,[data-v-d405ca59] .in-segments-wrapper__button_selected:hover{background-color:#dae1fb}[data-v-d405ca59] .in-tooltip-wrapper__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-6e711fd7]{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-50dac6de]{--ribbon-offset: 0px;position:relative;width:100%;height:calc(100vh - 128px - var(--ribbon-offset))}.guido-editor__container[data-v-50dac6de]{width:100%;height:calc(100vh - 128px - var(--ribbon-offset))}.guido-editor__no-header[data-v-50dac6de]{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-06afaecb]{min-width:602px;height:70vh;min-height:583px;border-radius:10px}.desktop-preview iframe[data-v-06afaecb]{min-height:504px}.iframe-wrapper[data-v-cbafc185]{width:258px}.iframe-scaled[data-v-cbafc185]{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-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}
@@ -1,95 +1,52 @@
1
1
  import { useHttp as d } from "../composables/useHttp.js";
2
- import { QUERY_PARAMS as m, URLS as s, RRS_EMAIL_ACTIVE_FILTER as A } from "../enums/extensions/recommendationBlock.js";
3
- const h = (t) => {
4
- if (Array.isArray(t))
5
- return t;
6
- const a = !!t && typeof t == "object" && "data" in t, r = t == null ? void 0 : t.data;
7
- return Array.isArray(r) ? r : (t && (!a || r != null) && console.error("[Guido] Unexpected RRS payload shape, falling back to empty:", Object.keys(t)), []);
8
- }, l = (t) => !t || typeof t != "object" ? null : "data" in t ? t.data ?? null : Object.keys(t).length ? t : null, f = (t) => t.reduce(
9
- (a, r, u) => (a[u] = {
10
- attributeName: r.attributeName,
11
- attributeJs: r.attributeJs,
12
- attributeType: r.attributeType,
13
- type: r.type,
14
- displayName: r.displayName,
15
- isFilterable: r.isFilterable
2
+ import { QUERY_PARAMS as l, URLS as u } from "../enums/extensions/recommendationBlock.js";
3
+ const R = (o) => o.reduce(
4
+ (a, t, s) => (a[s] = {
5
+ attributeName: t.attributeName,
6
+ attributeJs: t.attributeJs,
7
+ attributeType: t.attributeType,
8
+ type: t.type,
9
+ displayName: t.displayName,
10
+ isFilterable: t.isFilterable
16
11
  }, a),
17
12
  {}
18
- ), b = () => {
19
- const { get: t } = d(), { get: a } = d({ headers: {} }), r = "6KcLM9TwheVB1mgK";
13
+ ), f = () => {
14
+ const { get: o } = d(), { get: a } = d({ headers: {} }), t = "6KcLM9TwheVB1mgK";
20
15
  return {
21
16
  fetchRecommendationCreateData: async () => {
22
17
  try {
23
- return (await t("/newsletter/recommendations/create-data")).data;
18
+ return (await o("/newsletter/recommendations/create-data")).data;
24
19
  } catch (e) {
25
- throw console.error("fetchRecommendationCreateData error:", e), e;
20
+ throw console.error("fetchUserModalState error:", e), e;
26
21
  }
27
22
  },
28
23
  fetchRecommendationFilters: async () => {
29
24
  try {
30
- const { data: e } = await t(
31
- s.PRODUCT_ATTRIBUTES_PATH
32
- ), o = Array.isArray(e) ? e : (e == null ? void 0 : e.data) ?? [];
33
- return f(o);
25
+ const { data: e } = await o(
26
+ u.PRODUCT_ATTRIBUTES_PATH
27
+ ), n = Array.isArray(e) ? e : (e == null ? void 0 : e.data) ?? [];
28
+ return R(n);
34
29
  } catch (e) {
35
30
  throw console.error("fetchRecommendationFilters error:", e), e;
36
31
  }
37
32
  },
38
- fetchRecommendationProducts: async (e, o) => {
39
- var c;
33
+ fetchRecommendationProducts: async (e, n) => {
34
+ var i;
40
35
  try {
41
- const n = new URLSearchParams(Object.entries(o));
42
- n.set(m.CLIENT_ID, r);
43
- const R = decodeURIComponent(n.toString());
44
- console.debug("🏁 Recommendation API Query:", R);
45
- const i = await a(
46
- `${s.RECOMMENDATION_API_URL}/v2/${e}?${R}`
36
+ const r = new URLSearchParams(Object.entries(n));
37
+ r.set(l.CLIENT_ID, t);
38
+ const m = decodeURIComponent(r.toString());
39
+ console.debug("🏁 Recommendation API Query:", m);
40
+ const c = await a(
41
+ `${u.RECOMMENDATION_API_URL}/v2/${e}?${m}`
47
42
  );
48
- return ((c = i == null ? void 0 : i.data) == null ? void 0 : c.data) ?? [];
49
- } catch (n) {
50
- throw console.error("fetchRecommendationProducts error:", n), n;
51
- }
52
- },
53
- fetchRecommendationStrategies: async () => {
54
- try {
55
- const e = new URLSearchParams({ [m.FILTERS]: A }), { data: o } = await t(
56
- `${s.RECOMMENDATION_STRATEGIES_PATH}/?${e.toString()}`
57
- );
58
- return h(o);
59
- } catch (e) {
60
- throw console.error("fetchRecommendationStrategies error:", e), e;
61
- }
62
- },
63
- fetchStrategyCampaigns: async (e, o) => {
64
- try {
65
- const { data: c } = await t(
66
- `${s.RECOMMENDATION_STRATEGIES_PATH}/${e}/campaigns`
67
- );
68
- return h(c).map((n) => ({
69
- id: n.id,
70
- name: n.name,
71
- status: n.status,
72
- variants: n.variants ?? [],
73
- channel: o(`products.${n.productAlias}`),
74
- productAlias: n.productAlias,
75
- isPreventing: n.isPreventing
76
- }));
77
- } catch (c) {
78
- return console.error("fetchStrategyCampaigns error:", c), [];
79
- }
80
- },
81
- fetchStrategyRecommendationUrl: async (e) => {
82
- try {
83
- const o = new URLSearchParams({ [m.STRATEGY_ID]: e }), { data: c } = await t(
84
- `${s.STRATEGY_RECOMMENDATION_URL_PATH}?${o.toString()}`
85
- );
86
- return l(c);
87
- } catch (o) {
88
- return console.error("fetchStrategyRecommendationUrl error:", o), null;
43
+ return ((i = c == null ? void 0 : c.data) == null ? void 0 : i.data) ?? [];
44
+ } catch (r) {
45
+ throw console.error("fetchRecommendationProducts error:", r), r;
89
46
  }
90
47
  }
91
48
  };
92
49
  };
93
50
  export {
94
- b as useRecommendationApi
51
+ f as useRecommendationApi
95
52
  };
@@ -377,11 +377,6 @@ export declare const FeaturesSchema: v.ObjectSchema<{
377
377
  readonly liquidSyntax: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
378
378
  /** Enable autosave (3-min interval + tab-hide). User toggles on/off from the header. */
379
379
  readonly autosave: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
380
- /**
381
- * Select a Reusable Recommendation Strategy (RRS) instead of a per-block algorithm.
382
- * Replaces the algorithm dropdown with a strategy dropdown fed from Smart Recommender.
383
- */
384
- readonly reusableRecommendationStrategy: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
385
380
  }, undefined>;
386
381
  /**
387
382
  * Default block types available in Stripo
@@ -769,11 +764,6 @@ export declare const GuidoConfigSchema: v.ObjectSchema<{
769
764
  readonly liquidSyntax: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
770
765
  /** Enable autosave (3-min interval + tab-hide). User toggles on/off from the header. */
771
766
  readonly autosave: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
772
- /**
773
- * Select a Reusable Recommendation Strategy (RRS) instead of a per-block algorithm.
774
- * Replaces the algorithm dropdown with a strategy dropdown fed from Smart Recommender.
775
- */
776
- readonly reusableRecommendationStrategy: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
777
767
  }, undefined>, {}>;
778
768
  /** Block configuration */
779
769
  readonly blocks: v.OptionalSchema<v.ObjectSchema<{
@@ -96,7 +96,6 @@ export declare const useConfig: () => {
96
96
  modulesDisabled: boolean;
97
97
  liquidSyntax: boolean;
98
98
  autosave: boolean;
99
- reusableRecommendationStrategy: boolean;
100
99
  };
101
100
  blocks: {
102
101
  excludeDefaults: ("amp-accordion" | "amp-carousel" | "amp-form-controls" | "banner-block" | "button-block" | "html-block" | "image-block" | "menu-block" | "social-block" | "spacer-block" | "text-block" | "timer-block" | "video-block")[];
@@ -228,7 +227,6 @@ export declare const useConfig: () => {
228
227
  modulesDisabled: boolean;
229
228
  liquidSyntax: boolean;
230
229
  autosave: boolean;
231
- reusableRecommendationStrategy: boolean;
232
230
  } | null>;
233
231
  blocks: import("vue").ComputedRef<{
234
232
  excludeDefaults: ("amp-accordion" | "amp-carousel" | "amp-form-controls" | "banner-block" | "button-block" | "html-block" | "image-block" | "menu-block" | "social-block" | "spacer-block" | "text-block" | "timer-block" | "video-block")[];
@@ -18,8 +18,6 @@ export declare const useRecommendation: () => {
18
18
  getRecommendationCampaignData: (id: string) => CampaignData;
19
19
  buildCampaignUrl: (campaignId: string, overrides?: {
20
20
  strategy: string;
21
- /** RRS strategy id; empty string when the block still uses an algorithm. */
22
- strategyId: string;
23
21
  language: string;
24
22
  currencyCode: string;
25
23
  size: string;
@@ -3,20 +3,10 @@ import type { RecommendationFeedItem } from '@@/Types/recommendation';
3
3
  export declare const URLS: {
4
4
  RECOMMENDATION_API_URL: string;
5
5
  PRODUCT_ATTRIBUTES_PATH: string;
6
- RECOMMENDATION_STRATEGIES_PATH: string;
7
- STRATEGY_RECOMMENDATION_URL_PATH: string;
8
6
  };
9
7
  export declare const QUERY_PARAMS: {
10
8
  CLIENT_ID: string;
11
- STRATEGY_ID: string;
12
- FILTERS: string;
13
9
  };
14
- /**
15
- * Smart Recommender's filter grammar: `[table.field][operator][value]`, ANDed with `*`.
16
- * `~` means "contains" — required because `suitable_channels` is a comma-separated
17
- * column, so `=` would only ever match single-channel strategies.
18
- */
19
- export declare const RRS_EMAIL_ACTIVE_FILTER = "[sr_strategies.status][=][active]*[sr_strategies.suitable_channels][~][EMAIL]";
20
10
  /**
21
11
  * Get recommendation feed source maps lazily so translated names resolve at access time.
22
12
  * Must be called within a Vue component context or after Pinia is initialized.
@@ -9,9 +9,8 @@ import { PricePlacementControl, PRICE_PLACEMENT_CONTROL_ID } from './pricePlacem
9
9
  import { ProductCountControl, PRODUCT_COUNT_CONTROL_ID } from './productCount';
10
10
  import { ProductLayoutControl, PRODUCT_LAYOUT_CONTROL_ID } from './productLayout';
11
11
  import { ShuffleControl, SHUFFLE_CONTROL_ID } from './shuffle';
12
- import { StrategyControl, STRATEGY_CONTROL_ID } from './strategy';
13
12
  export declare const CONTROL_BLOCK_ID = "ui-elements-recommendation-block";
14
- export { AlgorithmControl, ALGORITHM_CONTROL_ID, LocaleControl, LOCALE_CONTROL_ID, CurrencyControl, CURRENCY_CONTROL_ID, ProductCountControl, PRODUCT_COUNT_CONTROL_ID, ProductLayoutControl, PRODUCT_LAYOUT_CONTROL_ID, FiltersControl, FILTERS_CONTROL_ID, ShuffleControl, SHUFFLE_CONTROL_ID, LayoutOrientationControl, LAYOUT_ORIENTATION_CONTROL_ID, PricePlacementControl, PRICE_PLACEMENT_CONTROL_ID, StrategyControl, STRATEGY_CONTROL_ID, };
13
+ export { AlgorithmControl, ALGORITHM_CONTROL_ID, LocaleControl, LOCALE_CONTROL_ID, CurrencyControl, CURRENCY_CONTROL_ID, ProductCountControl, PRODUCT_COUNT_CONTROL_ID, ProductLayoutControl, PRODUCT_LAYOUT_CONTROL_ID, FiltersControl, FILTERS_CONTROL_ID, ShuffleControl, SHUFFLE_CONTROL_ID, LayoutOrientationControl, LAYOUT_ORIENTATION_CONTROL_ID, PricePlacementControl, PRICE_PLACEMENT_CONTROL_ID, };
15
14
  export * from './utils';
16
15
  /**
17
16
  * Main recommendation block control that composes all sub-controls
@@ -22,7 +21,6 @@ export declare class RecommendationBlockControl extends CommonControl {
22
21
  private storeUnsubscription;
23
22
  private syncedBlockIds;
24
23
  private algorithmControl;
25
- private strategyControl;
26
24
  private localeControl;
27
25
  private currencyControl;
28
26
  private productCountControl;