@useinsider/guido 3.17.0-beta.668ca65 → 3.17.0-beta.a18fbda

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 (59) hide show
  1. package/README.md +5 -6
  2. package/dist/@types/config/schemas.js +6 -7
  3. package/dist/components/Guido.vue.js +8 -8
  4. package/dist/components/Guido.vue2.js +83 -83
  5. package/dist/components/organisms/header/EditorActions.vue.js +1 -1
  6. package/dist/components/organisms/header/EditorActions.vue2.js +54 -41
  7. package/dist/composables/useActionsApi.js +82 -67
  8. package/dist/composables/useAutoSave.js +31 -26
  9. package/dist/composables/useCustomInterfaceAppearance.js +38 -52
  10. package/dist/composables/useEditorLock.js +20 -0
  11. package/dist/composables/useGuidoStateBridge.js +37 -31
  12. package/dist/composables/useRecommendation.js +34 -41
  13. package/dist/composables/useSave.js +39 -36
  14. package/dist/config/migrator/recommendation/settingsMapper.js +17 -17
  15. package/dist/config/migrator/recommendationMigrator.js +4 -5
  16. package/dist/enums/academy.js +1 -2
  17. package/dist/enums/date.js +3 -5
  18. package/dist/enums/extensions/recommendationBlock.js +1 -3
  19. package/dist/extensions/Blocks/Recommendation/block.js +21 -26
  20. package/dist/extensions/Blocks/Recommendation/constants/defaultConfig.js +34 -34
  21. package/dist/extensions/Blocks/Recommendation/controls/cardComposition/index.js +95 -96
  22. package/dist/extensions/Blocks/Recommendation/controls/main/index.js +166 -162
  23. package/dist/extensions/Blocks/Recommendation/services/configService.js +35 -35
  24. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +79 -165
  25. package/dist/extensions/Blocks/common-control.js +19 -22
  26. package/dist/guido.css +1 -1
  27. package/dist/services/recommendationApi.js +30 -69
  28. package/dist/src/@types/config/schemas.d.ts +0 -2
  29. package/dist/src/composables/useConfig.d.ts +0 -2
  30. package/dist/src/composables/useEditorLock.d.ts +10 -0
  31. package/dist/src/composables/useRecommendation.d.ts +0 -1
  32. package/dist/src/enums/academy.d.ts +0 -1
  33. package/dist/src/enums/date.d.ts +0 -1
  34. package/dist/src/enums/extensions/recommendationBlock.d.ts +0 -2
  35. package/dist/src/extensions/Blocks/Recommendation/constants/defaultConfig.d.ts +6 -2
  36. package/dist/src/extensions/Blocks/Recommendation/constants/index.d.ts +1 -1
  37. package/dist/src/extensions/Blocks/Recommendation/controls/main/index.d.ts +4 -10
  38. package/dist/src/extensions/Blocks/Recommendation/store/recommendation.d.ts +10 -150
  39. package/dist/src/extensions/Blocks/Recommendation/types/nodeConfig.d.ts +0 -1
  40. package/dist/src/extensions/Blocks/common-control.d.ts +1 -4
  41. package/dist/src/services/recommendationApi.d.ts +1 -4
  42. package/dist/src/stores/config.d.ts +0 -18
  43. package/dist/src/stores/save-as-template.d.ts +3 -4
  44. package/dist/utils/dateUtil.js +10 -23
  45. package/dist/utils/templatePreparation.js +34 -35
  46. package/package.json +2 -3
  47. package/dist/components/organisms/extensions/recommendation/AssignStrategyDrawer.vue.js +0 -21
  48. package/dist/components/organisms/extensions/recommendation/AssignStrategyDrawer.vue2.js +0 -105
  49. package/dist/components/organisms/extensions/recommendation/StrategyInfoBoxContent.vue.js +0 -19
  50. package/dist/components/organisms/extensions/recommendation/StrategyInfoBoxContent.vue2.js +0 -62
  51. package/dist/extensions/Blocks/Recommendation/controls/main/strategy.js +0 -124
  52. package/dist/src/components/organisms/extensions/recommendation/AssignStrategyDrawer.vue.d.ts +0 -3
  53. package/dist/src/components/organisms/extensions/recommendation/StrategyInfoBoxContent.vue.d.ts +0 -15
  54. package/dist/src/extensions/Blocks/Recommendation/controls/main/strategy.d.ts +0 -16
  55. package/dist/src/mock/api/recommendation-strategies.d.ts +0 -2
  56. package/dist/static/assets/icons/line-change.svg.js +0 -5
  57. package/dist/static/assets/icons/line-delete.svg.js +0 -5
  58. package/dist/static/assets/icons/line-plus.svg.js +0 -5
  59. package/dist/static/styles/components/recommendation-strategy.css.js +0 -155
@@ -1,91 +1,52 @@
1
- import { useHttp as l } from "../composables/useHttp.js";
2
- import { URLS as m, QUERY_PARAMS as u } from "../enums/extensions/recommendationBlock.js";
3
- const y = "[sr_strategies.status][=][active]*[sr_strategies.suitable_channels][~][EMAIL]", R = (c) => c.reduce(
4
- (s, r, i) => (s[i] = {
5
- attributeName: r.attributeName,
6
- attributeJs: r.attributeJs,
7
- attributeType: r.attributeType,
8
- type: r.type,
9
- displayName: r.displayName,
10
- isFilterable: r.isFilterable
11
- }, s),
1
+ import { useHttp as d } from "../composables/useHttp.js";
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
11
+ }, a),
12
12
  {}
13
- ), _ = () => {
14
- const { get: c, post: s } = l(), { get: r } = l({ headers: {} }), i = "6KcLM9TwheVB1mgK";
13
+ ), f = () => {
14
+ const { get: o } = d(), { get: a } = d({ headers: {} }), t = "6KcLM9TwheVB1mgK";
15
15
  return {
16
16
  fetchRecommendationCreateData: async () => {
17
17
  try {
18
- return (await c("/newsletter/recommendations/create-data")).data;
18
+ return (await o("/newsletter/recommendations/create-data")).data;
19
19
  } catch (e) {
20
20
  throw console.error("fetchUserModalState error:", e), e;
21
21
  }
22
22
  },
23
23
  fetchRecommendationFilters: async () => {
24
24
  try {
25
- const { data: e } = await c(
26
- m.PRODUCT_ATTRIBUTES_PATH
27
- ), o = Array.isArray(e) ? e : (e == null ? void 0 : e.data) ?? [];
28
- return R(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);
29
29
  } catch (e) {
30
30
  throw console.error("fetchRecommendationFilters error:", e), e;
31
31
  }
32
32
  },
33
- fetchRecommendationProducts: async (e, o) => {
34
- var t;
33
+ fetchRecommendationProducts: async (e, n) => {
34
+ var i;
35
35
  try {
36
- const n = new URLSearchParams(Object.entries(o));
37
- n.set(u.CLIENT_ID, i);
38
- const d = decodeURIComponent(n.toString());
39
- console.debug("🏁 Recommendation API Query:", d);
40
- const a = await r(
41
- `${m.RECOMMENDATION_API_URL}/v2/${e}?${d}`
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}`
42
42
  );
43
- return ((t = a == null ? void 0 : a.data) == null ? void 0 : t.data) ?? [];
44
- } catch (n) {
45
- throw console.error("fetchRecommendationProducts error:", n), n;
46
- }
47
- },
48
- fetchRecommendationProductsByUrl: async (e) => {
49
- var o;
50
- try {
51
- const t = new RegExp(`[?&]${u.CLIENT_ID}=`).test(e), n = e.includes("?") ? "&" : "?", d = t ? e : `${e}${n}${u.CLIENT_ID}=${i}`, a = await r(
52
- d
53
- );
54
- return ((o = a == null ? void 0 : a.data) == null ? void 0 : o.data) ?? [];
55
- } catch (t) {
56
- return console.error("fetchRecommendationProductsByUrl error:", t), [];
57
- }
58
- },
59
- fetchRecommendationStrategies: async () => {
60
- try {
61
- const { data: e } = await c(
62
- `${m.RECOMMENDATION_STRATEGIES_PATH}?filters=${encodeURIComponent(y)}`
63
- );
64
- return Array.isArray(e) ? e : (e == null ? void 0 : e.data) ?? [];
65
- } catch (e) {
66
- return console.error("fetchRecommendationStrategies error:", e), [];
67
- }
68
- },
69
- generateStrategyEndpoint: async (e, o) => {
70
- try {
71
- const { data: t } = await s(
72
- `${m.RECOMMENDATION_STRATEGIES_PATH}/endpoint-generate`,
73
- {
74
- campaignId: 0,
75
- pageTypes: [],
76
- isPreviewer: !1,
77
- strategy: e,
78
- userId: "",
79
- currency: o
80
- }
81
- );
82
- return !t || typeof t != "object" || !("full_path" in t || "data" in t) ? (console.error("generateStrategyEndpoint unexpected response shape:", t), null) : "full_path" in t ? t : t.data;
83
- } catch (t) {
84
- return console.error("generateStrategyEndpoint error:", t), 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;
85
46
  }
86
47
  }
87
48
  };
88
49
  };
89
50
  export {
90
- _ as useRecommendationApi
51
+ f as useRecommendationApi
91
52
  };
@@ -395,7 +395,6 @@ export declare const FeaturesSchema: v.ObjectSchema<{
395
395
  readonly allowlistEnabled: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
396
396
  /** Enable persistent link tracking-id assignment for the click heatmap (opt-in) */
397
397
  readonly linkTrackingIds: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
398
- readonly reusableRecommendationStrategy: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
399
398
  }, undefined>;
400
399
  /**
401
400
  * Default block types available in Stripo
@@ -795,7 +794,6 @@ export declare const GuidoConfigSchema: v.ObjectSchema<{
795
794
  readonly allowlistEnabled: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
796
795
  /** Enable persistent link tracking-id assignment for the click heatmap (opt-in) */
797
796
  readonly linkTrackingIds: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
798
- readonly reusableRecommendationStrategy: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
799
797
  }, undefined>, {}>;
800
798
  /** Block configuration */
801
799
  readonly blocks: v.OptionalSchema<v.ObjectSchema<{
@@ -99,7 +99,6 @@ export declare const useConfig: () => {
99
99
  autosave: boolean;
100
100
  allowlistEnabled: boolean;
101
101
  linkTrackingIds: boolean;
102
- reusableRecommendationStrategy: boolean;
103
102
  };
104
103
  blocks: {
105
104
  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")[];
@@ -234,7 +233,6 @@ export declare const useConfig: () => {
234
233
  autosave: boolean;
235
234
  allowlistEnabled: boolean;
236
235
  linkTrackingIds: boolean;
237
- reusableRecommendationStrategy: boolean;
238
236
  } | null>;
239
237
  blocks: import("vue").ComputedRef<{
240
238
  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")[];
@@ -0,0 +1,10 @@
1
+ export declare const isEditorBusy: () => boolean;
2
+ export declare const beginMount: () => number;
3
+ export declare const isCurrentMount: (generation: number) => boolean;
4
+ export declare const runExclusive: <T>(task: () => Promise<T>) => Promise<T>;
5
+ export declare const useEditorLock: () => {
6
+ runExclusive: <T>(task: () => Promise<T>) => Promise<T>;
7
+ isEditorBusy: () => boolean;
8
+ beginMount: () => number;
9
+ isCurrentMount: (generation: number) => boolean;
10
+ };
@@ -18,7 +18,6 @@ export declare const useRecommendation: () => {
18
18
  getRecommendationCampaignData: (id: string) => CampaignData;
19
19
  buildCampaignUrl: (campaignId: string, overrides?: {
20
20
  strategy: string;
21
- strategyId: string;
22
21
  language: string;
23
22
  currencyCode: string;
24
23
  size: string;
@@ -8,6 +8,5 @@ export declare const ACADEMY_LINKS: {
8
8
  readonly EMAIL_EDITOR: "https://academy.insiderone.com/docs/email-drag-and-drop-editor";
9
9
  readonly GLOBAL_UNSUBSCRIBE: "https://academy.insiderone.com/docs/global-unsubscribe-preference-center";
10
10
  readonly AMP_FOR_EMAILS: "https://academy.insiderone.com/docs/amp-for-emails";
11
- readonly EMAIL_RECOMMENDATION_BLOCK: "https://academy.insiderone.com/docs/new-editor-email-recommendation-block";
12
11
  };
13
12
  export type AcademyLinkKey = keyof typeof ACADEMY_LINKS;
@@ -1,5 +1,4 @@
1
1
  export declare const DEFAULT_LOCALE = "tr-TR";
2
- export declare const DOTTED_DATE_LOCALE = "tr-TR";
3
2
  export declare const DEFAULT = "default";
4
3
  export declare const DEFAULT_TZ = "UTC";
5
4
  export declare const FORMAT_MAPPING: Record<string, string>;
@@ -3,8 +3,6 @@ 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
- RECOMMENDATION_STRATEGIES_PANEL_PATH: string;
8
6
  };
9
7
  export declare const QUERY_PARAMS: {
10
8
  CLIENT_ID: string;
@@ -8,8 +8,6 @@
8
8
  * - Merging partial updates with existing config
9
9
  */
10
10
  import type { RecommendationNodeConfig, CurrencyConfig, OmnibusTextConfig } from '../types/nodeConfig';
11
- export declare const PRE_RRS_CONFIG_VERSION = 1;
12
- export declare const CURRENT_CONFIG_VERSION = 2;
13
11
  /**
14
12
  * Default currency configuration
15
13
  * Uses USD as the base currency with standard formatting
@@ -49,3 +47,9 @@ export declare const DEFAULT_NODE_CONFIG: RecommendationNodeConfig;
49
47
  * View Together and Purchase Together algorithms are disabled because these require product id.
50
48
  */
51
49
  export declare const EXCLUDED_ALGORITHM_IDS: number[];
50
+ /**
51
+ * Current configuration version
52
+ * Increment this when making breaking changes to the schema
53
+ * Used for migration detection
54
+ */
55
+ export declare const CURRENT_CONFIG_VERSION = 1;
@@ -10,4 +10,4 @@ export { RecommendationBlockId } from './blockIds';
10
10
  export { RecommendationControlId } from './controlIds';
11
11
  export { BLOCK_ROOT_SELECTOR, CONTAINER_SELECTOR, DESKTOP_CONTAINER_SELECTOR, MOBILE_CONTAINER_SELECTOR, MOBILE_ROW_SELECTOR, CSS_CLASS_RECO_BUTTON, CSS_CLASS_SKIP_COMPILE, RECOMMENDATION_VARIABLE_BUILTIN_ATTRIBUTES, CURRENCY_ATTR, ATTR_PRODUCT_IMAGE, ATTR_PRODUCT_NAME, ATTR_PRODUCT_PRICE, ATTR_PRODUCT_OLD_PRICE, ATTR_PRODUCT_OMNIBUS_PRICE, ATTR_PRODUCT_OMNIBUS_DISCOUNT, ATTR_PRODUCT_BUTTON, ATTR_CUSTOM_PREFIX, ATTR_DATA_CARD_COMPOSITION, ATTR_DATA_CUSTOM_ATTRIBUTES, ATTR_PRODUCT_ATTR, SELECTOR_ATTRIBUTE_ROW, ATTR_DATA_ATTRIBUTE_TYPE, PRODUCT_ATTRIBUTE_PREFIX, BUILT_IN_DEFAULT_ATTRIBUTES, } from './selectors';
12
12
  export { LAYOUT_VALUES, LAYOUT_OPTIONS, DEFAULT_PRODUCTS_PER_ROW, DEFAULT_CARDS_IN_ROW, DEFAULT_MOBILE_CARDS_IN_ROW, MAX_PRODUCT_COUNT, MIN_PRODUCT_COUNT, MAX_PRODUCTS_PER_ROW, MIN_PRODUCTS_PER_ROW, MAX_MOBILE_PRODUCTS_PER_ROW, MIN_MOBILE_PRODUCTS_PER_ROW, DEFAULT_COLUMN_SPACING, DEFAULT_ROW_SPACING, DEFAULT_MOBILE_COLUMN_SPACING, DEFAULT_MOBILE_ROW_SPACING, MIN_SPACING, MAX_SPACING, SPACING_STEP, } from './layout';
13
- export { DEFAULT_NODE_CONFIG, DEFAULT_CURRENCY, DEFAULT_COMPOSITION, DEFAULT_VISIBILITY, CURRENT_CONFIG_VERSION, PRE_RRS_CONFIG_VERSION, EXCLUDED_ALGORITHM_IDS, } from './defaultConfig';
13
+ export { DEFAULT_NODE_CONFIG, DEFAULT_CURRENCY, DEFAULT_COMPOSITION, DEFAULT_VISIBILITY, CURRENT_CONFIG_VERSION, EXCLUDED_ALGORITHM_IDS, } from './defaultConfig';
@@ -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
@@ -30,12 +29,8 @@ export declare class RecommendationBlockControl extends CommonControl {
30
29
  private shuffleControl;
31
30
  private pricePlacementControl;
32
31
  private layoutOrientationControl;
33
- private strategyControl;
34
- private rrsEnabled;
35
32
  getId(): string;
36
- private get _subControls();
37
33
  getTemplate(): string;
38
- private _showControlsForBlock;
39
34
  onRender(): Promise<void>;
40
35
  onTemplateNodeUpdated(node: ImmutableHtmlNode): void;
41
36
  onDestroy(): void;
@@ -47,6 +42,7 @@ export declare class RecommendationBlockControl extends CommonControl {
47
42
  /**
48
43
  * Syncs persisted node config into the Pinia store's block state.
49
44
  *
45
+ * setCurrentBlock() creates a default entry (USD, en_US, mostPopular).
50
46
  * For saved templates, the real config lives in the node (e.g., TRY, tr_TR).
51
47
  * This method reads it and patches the store so fetchRecommendationProducts()
52
48
  * uses the correct values.
@@ -111,10 +107,8 @@ export declare class RecommendationBlockControl extends CommonControl {
111
107
  */
112
108
  private _listenStateUpdates;
113
109
  /**
114
- * Persists filter + strategy state to the Stripo node config so it survives
115
- * save/reload (strategyId must reach esd-ext-config before any save).
116
- * `size` rides along: assigning a strategy writes it to the store only, and a
117
- * stale node config would rebuild the block against the old slot count.
110
+ * Persists the current filter state from Pinia store to the Stripo node config.
111
+ * This ensures filters survive template save/reload cycles.
118
112
  */
119
113
  private _persistFiltersToNodeConfig;
120
114
  }
@@ -1,4 +1,4 @@
1
- import type { Orientation, Languages, Currency, NumericSeparator, FiltersResponse, Filter, RecommendationCampaignUrlValue, RecommendationProduct, RrsStrategy } from '@@/Types/recommendation';
1
+ import type { Orientation, Languages, Currency, NumericSeparator, FiltersResponse, Filter, RecommendationProduct } from '@@/Types/recommendation';
2
2
  export interface PerBlockConfigs {
3
3
  cardsInRow: number;
4
4
  currencySettings: {
@@ -21,7 +21,6 @@ export interface PerBlockConfigs {
21
21
  sendProductRequestFlag: boolean;
22
22
  shuffleProducts: boolean;
23
23
  strategy: string;
24
- strategyId: string;
25
24
  textTrimming: boolean;
26
25
  unresponsive: boolean;
27
26
  size: string;
@@ -34,7 +33,6 @@ interface PerBlockState {
34
33
  recommendationProducts: RecommendationProduct[];
35
34
  filterStatus: boolean;
36
35
  filterSelectionDrawerStatus: boolean;
37
- assignStrategyDrawerStatus: boolean;
38
36
  filterGroup: number;
39
37
  /** Whether initial API data (filters, algorithms, products) has been fetched for this block */
40
38
  isInitialized: boolean;
@@ -49,7 +47,6 @@ interface PerBlockState {
49
47
  */
50
48
  export interface PerBlockUrlConfig {
51
49
  strategy: string;
52
- strategyId: string;
53
50
  language: string;
54
51
  size: string;
55
52
  productIds: string[];
@@ -62,14 +59,11 @@ export interface PerBlockUrlConfig {
62
59
  currencyThousandSeparator: string;
63
60
  }
64
61
  interface StoreState {
65
- recommendationCampaignUrls: Record<string, RecommendationCampaignUrlValue>;
62
+ recommendationCampaignUrls: Record<string, string>;
66
63
  activePredictiveAlgorithms: number[];
67
64
  languages: Languages;
68
65
  currencyList: Currency[];
69
66
  filterList: FiltersResponse;
70
- strategies: RrsStrategy[];
71
- strategiesLoading: boolean;
72
- strategyUrlTemplates: Record<string, string>;
73
67
  blockStates: Record<number, PerBlockState>;
74
68
  currentRecommendationId: number | null;
75
69
  configVersion: number;
@@ -80,7 +74,7 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
80
74
  * This allows all existing code that reads `store.recommendationConfigs` to work unchanged.
81
75
  */
82
76
  recommendationConfigs(state: {
83
- recommendationCampaignUrls: Record<string, RecommendationCampaignUrlValue>;
77
+ recommendationCampaignUrls: Record<string, string>;
84
78
  activePredictiveAlgorithms: number[];
85
79
  languages: Languages;
86
80
  currencyList: {
@@ -88,16 +82,6 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
88
82
  value: string;
89
83
  }[];
90
84
  filterList: FiltersResponse;
91
- strategies: {
92
- [x: string]: unknown;
93
- strategy_id: number;
94
- name: string;
95
- status: string;
96
- suitable_channels: string;
97
- size?: (number | string) | undefined;
98
- }[];
99
- strategiesLoading: boolean;
100
- strategyUrlTemplates: Record<string, string>;
101
85
  blockStates: Record<number, PerBlockState>;
102
86
  currentRecommendationId: number | null;
103
87
  configVersion: number;
@@ -106,7 +90,7 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
106
90
  * Proxy getter: delegates to blockStates[currentRecommendationId].recommendationProducts
107
91
  */
108
92
  recommendationProducts(state: {
109
- recommendationCampaignUrls: Record<string, RecommendationCampaignUrlValue>;
93
+ recommendationCampaignUrls: Record<string, string>;
110
94
  activePredictiveAlgorithms: number[];
111
95
  languages: Languages;
112
96
  currencyList: {
@@ -114,16 +98,6 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
114
98
  value: string;
115
99
  }[];
116
100
  filterList: FiltersResponse;
117
- strategies: {
118
- [x: string]: unknown;
119
- strategy_id: number;
120
- name: string;
121
- status: string;
122
- suitable_channels: string;
123
- size?: (number | string) | undefined;
124
- }[];
125
- strategiesLoading: boolean;
126
- strategyUrlTemplates: Record<string, string>;
127
101
  blockStates: Record<number, PerBlockState>;
128
102
  currentRecommendationId: number | null;
129
103
  configVersion: number;
@@ -132,30 +106,7 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
132
106
  * Proxy getter: delegates to blockStates[currentRecommendationId].filterSelectionDrawerStatus
133
107
  */
134
108
  filterSelectionDrawerStatus(state: {
135
- recommendationCampaignUrls: Record<string, RecommendationCampaignUrlValue>;
136
- activePredictiveAlgorithms: number[];
137
- languages: Languages;
138
- currencyList: {
139
- text: string;
140
- value: string;
141
- }[];
142
- filterList: FiltersResponse;
143
- strategies: {
144
- [x: string]: unknown;
145
- strategy_id: number;
146
- name: string;
147
- status: string;
148
- suitable_channels: string;
149
- size?: (number | string) | undefined;
150
- }[];
151
- strategiesLoading: boolean;
152
- strategyUrlTemplates: Record<string, string>;
153
- blockStates: Record<number, PerBlockState>;
154
- currentRecommendationId: number | null;
155
- configVersion: number;
156
- } & import("pinia").PiniaCustomStateProperties<StoreState>): boolean;
157
- assignStrategyDrawerStatus(state: {
158
- recommendationCampaignUrls: Record<string, RecommendationCampaignUrlValue>;
109
+ recommendationCampaignUrls: Record<string, string>;
159
110
  activePredictiveAlgorithms: number[];
160
111
  languages: Languages;
161
112
  currencyList: {
@@ -163,48 +114,15 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
163
114
  value: string;
164
115
  }[];
165
116
  filterList: FiltersResponse;
166
- strategies: {
167
- [x: string]: unknown;
168
- strategy_id: number;
169
- name: string;
170
- status: string;
171
- suitable_channels: string;
172
- size?: (number | string) | undefined;
173
- }[];
174
- strategiesLoading: boolean;
175
- strategyUrlTemplates: Record<string, string>;
176
117
  blockStates: Record<number, PerBlockState>;
177
118
  currentRecommendationId: number | null;
178
119
  configVersion: number;
179
120
  } & import("pinia").PiniaCustomStateProperties<StoreState>): boolean;
180
- assignedStrategy(state: {
181
- recommendationCampaignUrls: Record<string, RecommendationCampaignUrlValue>;
182
- activePredictiveAlgorithms: number[];
183
- languages: Languages;
184
- currencyList: {
185
- text: string;
186
- value: string;
187
- }[];
188
- filterList: FiltersResponse;
189
- strategies: {
190
- [x: string]: unknown;
191
- strategy_id: number;
192
- name: string;
193
- status: string;
194
- suitable_channels: string;
195
- size?: (number | string) | undefined;
196
- }[];
197
- strategiesLoading: boolean;
198
- strategyUrlTemplates: Record<string, string>;
199
- blockStates: Record<number, PerBlockState>;
200
- currentRecommendationId: number | null;
201
- configVersion: number;
202
- } & import("pinia").PiniaCustomStateProperties<StoreState>): RrsStrategy | null;
203
121
  /**
204
122
  * Proxy getter: delegates to blockStates[currentRecommendationId].filterStatus
205
123
  */
206
124
  filterStatus(state: {
207
- recommendationCampaignUrls: Record<string, RecommendationCampaignUrlValue>;
125
+ recommendationCampaignUrls: Record<string, string>;
208
126
  activePredictiveAlgorithms: number[];
209
127
  languages: Languages;
210
128
  currencyList: {
@@ -212,16 +130,6 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
212
130
  value: string;
213
131
  }[];
214
132
  filterList: FiltersResponse;
215
- strategies: {
216
- [x: string]: unknown;
217
- strategy_id: number;
218
- name: string;
219
- status: string;
220
- suitable_channels: string;
221
- size?: (number | string) | undefined;
222
- }[];
223
- strategiesLoading: boolean;
224
- strategyUrlTemplates: Record<string, string>;
225
133
  blockStates: Record<number, PerBlockState>;
226
134
  currentRecommendationId: number | null;
227
135
  configVersion: number;
@@ -230,7 +138,7 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
230
138
  * Proxy getter: delegates to blockStates[currentRecommendationId].filterGroup
231
139
  */
232
140
  filterGroup(state: {
233
- recommendationCampaignUrls: Record<string, RecommendationCampaignUrlValue>;
141
+ recommendationCampaignUrls: Record<string, string>;
234
142
  activePredictiveAlgorithms: number[];
235
143
  languages: Languages;
236
144
  currencyList: {
@@ -238,16 +146,6 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
238
146
  value: string;
239
147
  }[];
240
148
  filterList: FiltersResponse;
241
- strategies: {
242
- [x: string]: unknown;
243
- strategy_id: number;
244
- name: string;
245
- status: string;
246
- suitable_channels: string;
247
- size?: (number | string) | undefined;
248
- }[];
249
- strategiesLoading: boolean;
250
- strategyUrlTemplates: Record<string, string>;
251
149
  blockStates: Record<number, PerBlockState>;
252
150
  currentRecommendationId: number | null;
253
151
  configVersion: number;
@@ -257,7 +155,7 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
257
155
  getFilterGroupCount(): number;
258
156
  getUniqueFilterGroups(): number[];
259
157
  getActivePredictiveAlgorithms: (state: {
260
- recommendationCampaignUrls: Record<string, RecommendationCampaignUrlValue>;
158
+ recommendationCampaignUrls: Record<string, string>;
261
159
  activePredictiveAlgorithms: number[];
262
160
  languages: Languages;
263
161
  currencyList: {
@@ -265,16 +163,6 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
265
163
  value: string;
266
164
  }[];
267
165
  filterList: FiltersResponse;
268
- strategies: {
269
- [x: string]: unknown;
270
- strategy_id: number;
271
- name: string;
272
- status: string;
273
- suitable_channels: string;
274
- size?: (number | string) | undefined;
275
- }[];
276
- strategiesLoading: boolean;
277
- strategyUrlTemplates: Record<string, string>;
278
166
  blockStates: Record<number, PerBlockState>;
279
167
  currentRecommendationId: number | null;
280
168
  configVersion: number;
@@ -283,7 +171,7 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
283
171
  value: string;
284
172
  }[];
285
173
  getLanguages: (state: {
286
- recommendationCampaignUrls: Record<string, RecommendationCampaignUrlValue>;
174
+ recommendationCampaignUrls: Record<string, string>;
287
175
  activePredictiveAlgorithms: number[];
288
176
  languages: Languages;
289
177
  currencyList: {
@@ -291,16 +179,6 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
291
179
  value: string;
292
180
  }[];
293
181
  filterList: FiltersResponse;
294
- strategies: {
295
- [x: string]: unknown;
296
- strategy_id: number;
297
- name: string;
298
- status: string;
299
- suitable_channels: string;
300
- size?: (number | string) | undefined;
301
- }[];
302
- strategiesLoading: boolean;
303
- strategyUrlTemplates: Record<string, string>;
304
182
  blockStates: Record<number, PerBlockState>;
305
183
  currentRecommendationId: number | null;
306
184
  configVersion: number;
@@ -309,7 +187,7 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
309
187
  value: string;
310
188
  }[];
311
189
  getCurrencySymbolList: (state: {
312
- recommendationCampaignUrls: Record<string, RecommendationCampaignUrlValue>;
190
+ recommendationCampaignUrls: Record<string, string>;
313
191
  activePredictiveAlgorithms: number[];
314
192
  languages: Languages;
315
193
  currencyList: {
@@ -317,16 +195,6 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
317
195
  value: string;
318
196
  }[];
319
197
  filterList: FiltersResponse;
320
- strategies: {
321
- [x: string]: unknown;
322
- strategy_id: number;
323
- name: string;
324
- status: string;
325
- suitable_channels: string;
326
- size?: (number | string) | undefined;
327
- }[];
328
- strategiesLoading: boolean;
329
- strategyUrlTemplates: Record<string, string>;
330
198
  blockStates: Record<number, PerBlockState>;
331
199
  currentRecommendationId: number | null;
332
200
  configVersion: number;
@@ -404,12 +272,6 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
404
272
  * to the snapshot taken when the drawer was opened.
405
273
  */
406
274
  cancelFilterDrawer(): void;
407
- openAssignStrategyDrawer(): void;
408
- closeAssignStrategyDrawer(): void;
409
- fetchStrategies(): Promise<void>;
410
- resolveStrategyUrlTemplate(strategy: RrsStrategy, currency: string): Promise<string>;
411
- assignStrategy(strategy: RrsStrategy): void;
412
- removeStrategy(): void;
413
275
  fetchRecommendationCreateData(): Promise<void>;
414
276
  fetchRecommendationFilters(): Promise<void>;
415
277
  addFilterGroup(filterGroup: number): void;
@@ -426,7 +288,5 @@ export declare const useRecommendationExtensionStore: import("pinia").StoreDefin
426
288
  hasInvalidBlock(): boolean;
427
289
  fetchRecommendationProducts(): Promise<void>;
428
290
  _doFetchProducts(): Promise<void>;
429
- _doFetchStrategyProducts(blockId: number): Promise<void>;
430
- _setBlockProducts(blockId: number, products: RecommendationProduct[], size: number): void;
431
291
  }>;
432
292
  export {};
@@ -82,7 +82,6 @@ export interface RecommendationNodeConfig {
82
82
  * Uses existing Filter interface from recommendation types
83
83
  */
84
84
  filters: Filter[];
85
- strategyId: string;
86
85
  /**
87
86
  * Layout orientation
88
87
  * - 'grid': Products in a grid, attributes aligned across products
@@ -56,9 +56,6 @@ interface ButtonProps {
56
56
  name: string;
57
57
  label: string;
58
58
  id?: string;
59
- className?: string;
60
- icon?: string;
61
- disabled?: boolean;
62
59
  }
63
60
  /**
64
61
  * Common control for all blocks which includes common UI Elements.
@@ -119,7 +116,7 @@ export declare abstract class CommonControl extends Control {
119
116
  icon?: string;
120
117
  }): string;
121
118
  _GuRadioButton({ name, buttons, id }: RadioButtonProps): string;
122
- _GuButton({ name, label, id, className, icon, disabled }: ButtonProps): string;
119
+ _GuButton({ name, label, id }: ButtonProps): string;
123
120
  _GuIcon({ src, className }: IconProps): string;
124
121
  /**
125
122
  *
@@ -1,9 +1,6 @@
1
- import type { InitialResponse, FiltersResponse, RecommendationProduct, RecommendationProductsParams, RrsEndpointGenerateResponse, RrsStrategy } from '@@/Types/recommendation';
1
+ import type { InitialResponse, FiltersResponse, RecommendationProduct, RecommendationProductsParams } from '@@/Types/recommendation';
2
2
  export declare const useRecommendationApi: () => {
3
3
  fetchRecommendationCreateData: () => Promise<InitialResponse>;
4
4
  fetchRecommendationFilters: () => Promise<FiltersResponse>;
5
5
  fetchRecommendationProducts: (strategy: string, params: RecommendationProductsParams) => Promise<RecommendationProduct[]>;
6
- fetchRecommendationProductsByUrl: (url: string) => Promise<RecommendationProduct[]>;
7
- fetchRecommendationStrategies: () => Promise<RrsStrategy[]>;
8
- generateStrategyEndpoint: (strategy: RrsStrategy, currency: string) => Promise<RrsEndpointGenerateResponse | null>;
9
6
  };