@empathyco/x-components 8.5.0 → 8.6.0

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 (40) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/docs/API-reference/api/x-components.banner.md +11 -1
  3. package/docs/API-reference/api/x-components.hierarchicalfilter.md +2 -0
  4. package/docs/API-reference/api/x-components.md +11 -0
  5. package/docs/API-reference/api/x-components.simplefilter.md +2 -0
  6. package/docs/API-reference/api/x-components.snippetcallbacks.md +2 -0
  7. package/docs/API-reference/api/x-components.vendorbanner.md +21 -2
  8. package/docs/API-reference/api/x-components.vendorbanner.tagging.md +11 -0
  9. package/docs/API-reference/api/x-components.vendorbannertagging.clickurl.md +11 -0
  10. package/docs/API-reference/api/x-components.vendorbannertagging.md +73 -0
  11. package/docs/API-reference/api/x-components.vendorbannertagging.viewurl.md +11 -0
  12. package/docs/API-reference/api/x-components.vendorxevents.md +38 -0
  13. package/docs/API-reference/api/x-components.vendorxevents.userclickedavendorbanner.md +13 -0
  14. package/docs/API-reference/api/x-components.vendorxevents.userviewedavendorbanner.md +13 -0
  15. package/docs/API-reference/api/x-types.banner.md +2 -2
  16. package/docs/API-reference/components/search/x-components.banner.md +8 -6
  17. package/js/x-modules/search/components/banner.vue.js.map +1 -1
  18. package/js/x-modules/search/components/banner.vue2.js +10 -1
  19. package/js/x-modules/search/components/banner.vue2.js.map +1 -1
  20. package/js/x-modules/vendor/wiring.js +8 -0
  21. package/js/x-modules/vendor/wiring.js.map +1 -1
  22. package/package.json +4 -4
  23. package/report/x-components.api.json +283 -10
  24. package/report/x-components.api.md +37 -3
  25. package/report/x-types.api.json +1 -1
  26. package/types/src/components/snippet-callbacks.vue.d.ts +2 -0
  27. package/types/src/components/snippet-callbacks.vue.d.ts.map +1 -1
  28. package/types/src/x-modules/facets/components/filters/hierarchical-filter.vue.d.ts +2 -0
  29. package/types/src/x-modules/facets/components/filters/hierarchical-filter.vue.d.ts.map +1 -1
  30. package/types/src/x-modules/facets/components/filters/simple-filter.vue.d.ts +2 -0
  31. package/types/src/x-modules/facets/components/filters/simple-filter.vue.d.ts.map +1 -1
  32. package/types/src/x-modules/related-prompts/components/related-prompts-tag-list.vue.d.ts.map +1 -1
  33. package/types/src/x-modules/search/components/banner.vue.d.ts +22 -1
  34. package/types/src/x-modules/search/components/banner.vue.d.ts.map +1 -1
  35. package/types/src/x-modules/vendor/events.types.d.ts +10 -0
  36. package/types/src/x-modules/vendor/events.types.d.ts.map +1 -1
  37. package/types/src/x-modules/vendor/types.d.ts +11 -1
  38. package/types/src/x-modules/vendor/types.d.ts.map +1 -1
  39. package/types/src/x-modules/vendor/wiring.d.ts +6 -0
  40. package/types/src/x-modules/vendor/wiring.d.ts.map +1 -1
package/CHANGELOG.md CHANGED
@@ -3,6 +3,13 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [8.6.0](https://github.com/empathyco/x/compare/@empathyco/x-components@8.5.0...@empathyco/x-components@8.6.0) (2026-07-17)
7
+
8
+ ### Features
9
+
10
+ * **vendor:** vendor banner events (#2140)
11
+
12
+
6
13
  ## [8.5.0](https://github.com/empathyco/x/compare/@empathyco/x-components@8.4.0...@empathyco/x-components@8.5.0) (2026-07-16)
7
14
 
8
15
  ### Features
@@ -17,6 +17,10 @@ _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
17
17
  required: true;
18
18
  };
19
19
  titleClass: StringConstructor;
20
+ clickEvent: {
21
+ type: PropType<XEvent>;
22
+ default: string;
23
+ };
20
24
  }>, {
21
25
  imageFailed: import("vue").Ref<boolean, boolean>;
22
26
  anchorEvents: () => Partial<{ [key in keyof GlobalEventHandlersEventMap]: () => void; }>;
@@ -26,5 +30,11 @@ _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
26
30
  required: true;
27
31
  };
28
32
  titleClass: StringConstructor;
29
- }>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>
33
+ clickEvent: {
34
+ type: PropType<XEvent>;
35
+ default: string;
36
+ };
37
+ }>> & Readonly<{}>, {
38
+ clickEvent: keyof import("../../../wiring").XEventsTypes;
39
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>
30
40
  ```
@@ -214,6 +214,8 @@ _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
214
214
  UserClickedAVendorResult?: import("../../../vendor").VendorResult | undefined;
215
215
  UserClickedVendorResultAddToCart?: import("../../../vendor").VendorResult | undefined;
216
216
  VendorBannersChanged?: Omit<import("../../../vendor").VendorBanner, "modelName">[] | undefined;
217
+ UserViewedAVendorBanner?: import("../../../vendor").VendorBanner | undefined;
218
+ UserClickedAVendorBanner?: import("../../../vendor").VendorBanner | undefined;
217
219
  }>;
218
220
  innerCssClasses: import("vue").ComputedRef<(string | Dictionary<boolean>)[]>;
219
221
  renderedChildrenFilters: import("vue").ComputedRef<HierarchicalFilterModel[]>;
@@ -3395,6 +3395,17 @@ Alias to facilitate retrieving the modules with status.
3395
3395
  The interface for a vendor banner, extending the base Banner interface. The optional position means: - If the position is defined, the banner will be displayed in that position inside the grid. - If the position is undefined, the banner will be displayed on top of the grid and full width.
3396
3396
 
3397
3397
 
3398
+ </td></tr>
3399
+ <tr><td>
3400
+
3401
+ [VendorBannerTagging](./x-components.vendorbannertagging.md)
3402
+
3403
+
3404
+ </td><td>
3405
+
3406
+ The tagging info for a vendor banner.
3407
+
3408
+
3398
3409
  </td></tr>
3399
3410
  <tr><td>
3400
3411
 
@@ -211,6 +211,8 @@ _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
211
211
  UserClickedAVendorResult?: import("../../../vendor").VendorResult | undefined;
212
212
  UserClickedVendorResultAddToCart?: import("../../../vendor").VendorResult | undefined;
213
213
  VendorBannersChanged?: Omit<import("../../../vendor").VendorBanner, "modelName">[] | undefined;
214
+ UserViewedAVendorBanner?: import("../../../vendor").VendorBanner | undefined;
215
+ UserClickedAVendorBanner?: import("../../../vendor").VendorBanner | undefined;
214
216
  }>;
215
217
  innerCssClasses: import("vue").ComputedRef<(string | Dictionary<boolean>)[]>;
216
218
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
@@ -201,6 +201,8 @@ _default: import("vue").DefineComponent<{}, {
201
201
  UserClickedAVendorResult: (payload: import("..").VendorResult, metadata: WireMetadata) => unknown;
202
202
  UserClickedVendorResultAddToCart: (payload: import("..").VendorResult, metadata: WireMetadata) => unknown;
203
203
  VendorBannersChanged: (payload: Omit<import("..").VendorBanner, "modelName">[], metadata: WireMetadata) => unknown;
204
+ UserViewedAVendorBanner: (payload: import("..").VendorBanner, metadata: WireMetadata) => unknown;
205
+ UserClickedAVendorBanner: (payload: import("..").VendorBanner, metadata: WireMetadata) => unknown;
204
206
  }>>;
205
207
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {
206
208
  GlobalXBus: import("vue").DefineComponent<{}, {}, any>;
@@ -9,9 +9,9 @@ The interface for a vendor banner, extending the base Banner interface. The opti
9
9
  **Signature:**
10
10
 
11
11
  ```typescript
12
- export interface VendorBanner extends Omit<Banner, 'modelName'>, NamedModel<'VendorBanner'>
12
+ export interface VendorBanner extends Omit<Banner, 'modelName' | 'tagging'>, NamedModel<'VendorBanner'>
13
13
  ```
14
- **Extends:** Omit&lt;Banner, 'modelName'&gt;, NamedModel&lt;'VendorBanner'&gt;
14
+ **Extends:** Omit&lt;Banner, 'modelName' \| 'tagging'&gt;, NamedModel&lt;'VendorBanner'&gt;
15
15
 
16
16
  ## Properties
17
17
 
@@ -54,6 +54,25 @@ number
54
54
  _(Optional)_
55
55
 
56
56
 
57
+ </td></tr>
58
+ <tr><td>
59
+
60
+ [tagging?](./x-components.vendorbanner.tagging.md)
61
+
62
+
63
+ </td><td>
64
+
65
+
66
+ </td><td>
67
+
68
+ [VendorBannerTagging](./x-components.vendorbannertagging.md)
69
+
70
+
71
+ </td><td>
72
+
73
+ _(Optional)_
74
+
75
+
57
76
  </td></tr>
58
77
  </tbody></table>
59
78
 
@@ -0,0 +1,11 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@empathyco/x-components](./x-components.md) &gt; [VendorBanner](./x-components.vendorbanner.md) &gt; [tagging](./x-components.vendorbanner.tagging.md)
4
+
5
+ ## VendorBanner.tagging property
6
+
7
+ **Signature:**
8
+
9
+ ```typescript
10
+ tagging?: VendorBannerTagging;
11
+ ```
@@ -0,0 +1,11 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@empathyco/x-components](./x-components.md) &gt; [VendorBannerTagging](./x-components.vendorbannertagging.md) &gt; [clickUrl](./x-components.vendorbannertagging.clickurl.md)
4
+
5
+ ## VendorBannerTagging.clickUrl property
6
+
7
+ **Signature:**
8
+
9
+ ```typescript
10
+ clickUrl: string;
11
+ ```
@@ -0,0 +1,73 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@empathyco/x-components](./x-components.md) &gt; [VendorBannerTagging](./x-components.vendorbannertagging.md)
4
+
5
+ ## VendorBannerTagging interface
6
+
7
+ The tagging info for a vendor banner.
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ export interface VendorBannerTagging
13
+ ```
14
+
15
+ ## Properties
16
+
17
+ <table><thead><tr><th>
18
+
19
+ Property
20
+
21
+
22
+ </th><th>
23
+
24
+ Modifiers
25
+
26
+
27
+ </th><th>
28
+
29
+ Type
30
+
31
+
32
+ </th><th>
33
+
34
+ Description
35
+
36
+
37
+ </th></tr></thead>
38
+ <tbody><tr><td>
39
+
40
+ [clickUrl](./x-components.vendorbannertagging.clickurl.md)
41
+
42
+
43
+ </td><td>
44
+
45
+
46
+ </td><td>
47
+
48
+ string
49
+
50
+
51
+ </td><td>
52
+
53
+
54
+ </td></tr>
55
+ <tr><td>
56
+
57
+ [viewUrl](./x-components.vendorbannertagging.viewurl.md)
58
+
59
+
60
+ </td><td>
61
+
62
+
63
+ </td><td>
64
+
65
+ string
66
+
67
+
68
+ </td><td>
69
+
70
+
71
+ </td></tr>
72
+ </tbody></table>
73
+
@@ -0,0 +1,11 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@empathyco/x-components](./x-components.md) &gt; [VendorBannerTagging](./x-components.vendorbannertagging.md) &gt; [viewUrl](./x-components.vendorbannertagging.viewurl.md)
4
+
5
+ ## VendorBannerTagging.viewUrl property
6
+
7
+ **Signature:**
8
+
9
+ ```typescript
10
+ viewUrl: string;
11
+ ```
@@ -37,6 +37,25 @@ Description
37
37
  </th></tr></thead>
38
38
  <tbody><tr><td>
39
39
 
40
+ [UserClickedAVendorBanner](./x-components.vendorxevents.userclickedavendorbanner.md)
41
+
42
+
43
+ </td><td>
44
+
45
+
46
+ </td><td>
47
+
48
+ [VendorBanner](./x-components.vendorbanner.md)
49
+
50
+
51
+ </td><td>
52
+
53
+ The user clicked on a vendor banner. Payload: The [vendor banner](./x-components.vendorbanner.md) that was clicked.
54
+
55
+
56
+ </td></tr>
57
+ <tr><td>
58
+
40
59
  [UserClickedAVendorResult](./x-components.vendorxevents.userclickedavendorresult.md)
41
60
 
42
61
 
@@ -72,6 +91,25 @@ The user clicked on a vendor result. Payload: The [vendor result](./x-components
72
91
  The user clicked on the add to cart button of a vendor result. Payload: The [vendor result](./x-components.vendorresult.md) that was clicked.
73
92
 
74
93
 
94
+ </td></tr>
95
+ <tr><td>
96
+
97
+ [UserViewedAVendorBanner](./x-components.vendorxevents.userviewedavendorbanner.md)
98
+
99
+
100
+ </td><td>
101
+
102
+
103
+ </td><td>
104
+
105
+ [VendorBanner](./x-components.vendorbanner.md)
106
+
107
+
108
+ </td><td>
109
+
110
+ The user viewed a vendor banner. Payload: The [vendor banner](./x-components.vendorbanner.md) that was viewed.
111
+
112
+
75
113
  </td></tr>
76
114
  <tr><td>
77
115
 
@@ -0,0 +1,13 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@empathyco/x-components](./x-components.md) &gt; [VendorXEvents](./x-components.vendorxevents.md) &gt; [UserClickedAVendorBanner](./x-components.vendorxevents.userclickedavendorbanner.md)
4
+
5
+ ## VendorXEvents.UserClickedAVendorBanner property
6
+
7
+ The user clicked on a vendor banner. Payload: The [vendor banner](./x-components.vendorbanner.md) that was clicked.
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ UserClickedAVendorBanner: VendorBanner;
13
+ ```
@@ -0,0 +1,13 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@empathyco/x-components](./x-components.md) &gt; [VendorXEvents](./x-components.vendorxevents.md) &gt; [UserViewedAVendorBanner](./x-components.vendorxevents.userviewedavendorbanner.md)
4
+
5
+ ## VendorXEvents.UserViewedAVendorBanner property
6
+
7
+ The user viewed a vendor banner. Payload: The [vendor banner](./x-components.vendorbanner.md) that was viewed.
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ UserViewedAVendorBanner: VendorBanner;
13
+ ```
@@ -9,9 +9,9 @@ A banner is an image with a title, that when clicked redirect the user to an URL
9
9
  **Signature:**
10
10
 
11
11
  ```typescript
12
- export interface Banner extends NamedModel<'Banner'>, Identifiable, Taggable
12
+ export interface Banner extends NamedModel<'Banner' | 'VendorBanner'>, Identifiable, Taggable
13
13
  ```
14
- **Extends:** [NamedModel](./x-types.namedmodel.md)<!-- -->&lt;'Banner'&gt;, [Identifiable](./x-types.identifiable.md)<!-- -->, [Taggable](./x-types.taggable.md)
14
+ **Extends:** [NamedModel](./x-types.namedmodel.md)<!-- -->&lt;'Banner' \| 'VendorBanner'&gt;, [Identifiable](./x-types.identifiable.md)<!-- -->, [Taggable](./x-types.taggable.md)
15
15
 
16
16
  ## Properties
17
17
 
@@ -8,17 +8,19 @@ title: Banner
8
8
 
9
9
  ## Props
10
10
 
11
- | Name | Description | Type | Default |
12
- | ----------------------- | ---------------- | ------------------------ | ------------- |
13
- | <code>banner</code> | The banner data. | <code>BannerModel</code> | <code></code> |
14
- | <code>titleClass</code> | | <code>string</code> | <code></code> |
11
+ | Name | Description | Type | Default |
12
+ | ----------------------- | ----------------------------------------- | ------------------------ | --------------------------------- |
13
+ | <code>banner</code> | The banner data. | <code>BannerModel</code> | <code></code> |
14
+ | <code>titleClass</code> | | <code>string</code> | <code></code> |
15
+ | <code>clickEvent</code> | Event to emit when the banner is clicked. | <code>XEvent</code> | <code>'UserClickedABanner'</code> |
15
16
 
16
17
  ## Events
17
18
 
18
19
  This component emits the following event:
19
20
 
20
- - [`UserClickedABanner`](https://github.com/empathyco/x/blob/main/packages/x-components/src/wiring/events.types.ts):
21
- emitted when the user clicks the banner (if it has a URL).
21
+ - `clickEvent` (default `UserClickedABanner`):
22
+ emitted when the user clicks the banner (if it has a URL). The event name can be customized
23
+ via the `clickEvent` prop.
22
24
 
23
25
  ## See it in action
24
26
 
@@ -1 +1 @@
1
- {"version":3,"file":"banner.vue.js","sources":["../../../../../src/x-modules/search/components/banner.vue"],"sourcesContent":["<template>\n <component\n :is=\"banner.url ? 'a' : 'figure'\"\n v-if=\"!imageFailed\"\n :href=\"banner.url\"\n class=\"x-banner\"\n data-test=\"banner\"\n v-on=\"banner.url ? anchorEvents() : {}\"\n >\n <img\n :src=\"banner.image\"\n :alt=\"banner.title ? banner.title : 'Banner'\"\n class=\"x-banner__image\"\n data-test=\"banner-image\"\n @error=\"imageFailed = true\"\n />\n <h2 v-if=\"banner.title\" class=\"x-banner__title\" :class=\"titleClass\" data-test=\"banner-title\">\n {{ banner.title }}\n </h2>\n </component>\n</template>\n\n<script lang=\"ts\">\nimport type { Banner as BannerModel } from '@empathyco/x-types'\nimport type { PropType } from 'vue'\nimport { defineComponent, ref } from 'vue'\nimport { useXBus } from '../../../composables/use-x-bus'\nimport { searchXModule } from '../x-module'\n\n/**.\n * A banner result is just an item that has been inserted into the search results to advertise\n * something. Usually it is the first item in the grid or it can be placed in the middle of them\n * and fill the whole row where appears.\n * The banner may be clickable or non-clickable depending on whether it has an associated URL\n * or not. It contains an image and, optionally, a title. In case the image does not\n * load due to an error the banner will not be rendered.\n *\n * Additionally, this component exposes the following props to modify the classes of the\n * elements: `titleClass`.\n *\n * @public\n */\nexport default defineComponent({\n name: 'Banner',\n xModule: searchXModule.name,\n props: {\n /**\n * The banner data.\n *\n * @public\n */\n banner: {\n type: Object as PropType<BannerModel>,\n required: true,\n },\n titleClass: String,\n },\n setup(props) {\n const xBus = useXBus()\n\n /**\n * Flag to handle banner image errors.\n *\n * @public\n */\n const imageFailed = ref(false)\n\n /**\n * Emits the banner click event.\n *\n * @internal\n */\n const emitClickEvent = (): void => {\n xBus.emit('UserClickedABanner', props.banner)\n }\n\n /**\n * Returns the events supported by the anchor.\n *\n * @returns Events supported by the anchor.\n *\n * @internal\n */\n const anchorEvents = (): Partial<{\n [key in keyof GlobalEventHandlersEventMap]: () => void\n }> => ({\n click: () => emitClickEvent(),\n auxclick: () => emitClickEvent(),\n contextmenu: () => emitClickEvent(),\n })\n\n return {\n imageFailed,\n anchorEvents,\n }\n },\n})\n</script>\n\n<style lang=\"css\" scoped>\n.x-banner {\n display: flex;\n flex-flow: column nowrap;\n text-decoration: none;\n}\n\n.x-banner__image {\n width: 100%;\n object-fit: contain;\n}\n</style>\n\n<docs lang=\"mdx\">\n## Events\n\nThis component emits the following event:\n\n- [`UserClickedABanner`](https://github.com/empathyco/x/blob/main/packages/x-components/src/wiring/events.types.ts):\n emitted when the user clicks the banner (if it has a URL).\n\n## See it in action\n\nIn this example, banner data is passed as a prop.\n\n_Here you can see how the `Banner` component is rendered._\n\n```vue\n<template>\n <Banner :banner=\"banner\" />\n</template>\n\n<script setup>\nimport { Banner } from '@empathyco/x-components/search'\nimport { ref } from 'vue'\n\nconst banner = ref({\n modelName: 'Banner',\n id: 'banner-example',\n url: 'https://my-website.com/summer-shirts',\n image: 'https://my-website.com/images/summer-shirts.jpg',\n title: 'Trendy summer shirts',\n position: 1,\n})\n</script>\n```\n\n### Customizing the items with classes\n\nThe `titleClass` prop can be used to add classes to the banner title.\n\n```vue\n<template>\n <Banner :banner=\"banner\" titleClass=\"x-bg-neutral-50\" />\n</template>\n\n<script setup>\nimport { Banner } from '@empathyco/x-components/search'\nimport { ref } from 'vue'\n\nconst banner = ref({\n modelName: 'Banner',\n id: 'banner-example',\n url: 'https://my-website.com/summer-shirts',\n image: 'https://my-website.com/images/summer-shirts.jpg',\n title: 'Trendy summer shirts',\n position: 1,\n})\n</script>\n```\n</docs>\n"],"names":["_openBlock","_createBlock","_resolveDynamicComponent","_mergeProps","_toHandlers","_withCtx","_createElementVNode","_createElementBlock","_normalizeClass","_toDisplayString","_createCommentVNode"],"mappings":";;;;;;;AAGW,EAAA,OAAA,CAAA,IAAA,CAAA,WAAA,IAAAA,SAAA,EAAA,EAFTC,WAAA,CAkBYC,uBAAA,CAjBL,IAAA,CAAA,MAAA,CAAO,GAAA,GAAG,iBADjBC,UAAA,CAkBY;AAAA,IAAA,GAAA,EAAA,CAAA;AAfT,IAAA,IAAA,EAAM,IAAA,CAAA,MAAA,CAAO,GAAA;AAAA,IACd,KAAA,EAAM,UAAA;AAAA,IACN,WAAA,EAAU;AAAA,GAAA,EACVC,UAAA,CAAuC,IAAA,CAAjC,MAAA,CAAO,GAAA,GAAM,IAAA,CAAA,YAAA,EAAY,GAAA,EAAA,CAAA,CAAA,EAAA;AAAA,IAAA,OAAA,EAAAC,OAAA,CAE/B,MAME;AAAA,MANFC,kBAAA,CAME,KAAA,EAAA;AAAA,QALC,KAAK,IAAA,CAAA,MAAA,CAAO,KAAA;AAAA,QACZ,GAAA,EAAK,IAAA,CAAA,MAAA,CAAO,KAAA,GAAQ,IAAA,CAAA,MAAA,CAAO,KAAA,GAAK,QAAA;AAAA,QACjC,KAAA,EAAM,iBAAA;AAAA,QACN,WAAA,EAAU,cAAA;AAAA,QACT,OAAA,EAAK,sCAAE,IAAA,CAAA,WAAA,GAAW,IAAA;AAAA,OAAA,EAAA,IAAA,EAAA,EAAA,EAAA,UAAA,CAAA;AAEX,MAAA,IAAA,CAAA,MAAA,CAAO,KAAA,IAAAN,SAAA,EAAA,EAAjBO,kBAAA;AAAA,QAEK,IAAA;AAAA,QAAA;AAAA,UAAA,GAAA,EAAA,CAAA;UAFmB,KAAA,EAAKC,cAAA,CAAA,CAAC,mBAA0B,IAAA,CAAA,UAAU,CAAA,CAAA;AAAA,UAAE,WAAA,EAAU;AAAA,SAAA;AACzE,QAAAC,eAAA,CAAA,IAAA,CAAA,MAAA,CAAO,KAAK,CAAA;AAAA,QAAA;AAAA;AAAA,OAAA,IAAAC,kBAAA,CAAA,MAAA,EAAA,IAAA;;;;;;;;;;"}
1
+ {"version":3,"file":"banner.vue.js","sources":["../../../../../src/x-modules/search/components/banner.vue"],"sourcesContent":["<template>\n <component\n :is=\"banner.url ? 'a' : 'figure'\"\n v-if=\"!imageFailed\"\n :href=\"banner.url\"\n class=\"x-banner\"\n data-test=\"banner\"\n v-on=\"banner.url ? anchorEvents() : {}\"\n >\n <img\n :src=\"banner.image\"\n :alt=\"banner.title ? banner.title : 'Banner'\"\n class=\"x-banner__image\"\n data-test=\"banner-image\"\n @error=\"imageFailed = true\"\n />\n <h2 v-if=\"banner.title\" class=\"x-banner__title\" :class=\"titleClass\" data-test=\"banner-title\">\n {{ banner.title }}\n </h2>\n </component>\n</template>\n\n<script lang=\"ts\">\nimport type { Banner as BannerModel } from '@empathyco/x-types'\nimport type { PropType } from 'vue'\nimport type { XEvent } from '../../../wiring'\nimport { defineComponent, ref } from 'vue'\nimport { useXBus } from '../../../composables/use-x-bus'\nimport { searchXModule } from '../x-module'\n\n/**.\n * A banner result is just an item that has been inserted into the search results to advertise\n * something. Usually it is the first item in the grid or it can be placed in the middle of them\n * and fill the whole row where appears.\n * The banner may be clickable or non-clickable depending on whether it has an associated URL\n * or not. It contains an image and, optionally, a title. In case the image does not\n * load due to an error the banner will not be rendered.\n *\n * Additionally, this component exposes the following props to modify the classes of the\n * elements: `titleClass`.\n *\n * @public\n */\nexport default defineComponent({\n name: 'Banner',\n xModule: searchXModule.name,\n props: {\n /**\n * The banner data.\n *\n * @public\n */\n banner: {\n type: Object as PropType<BannerModel>,\n required: true,\n },\n titleClass: String,\n /**\n * Event to emit when the banner is clicked.\n *\n * @public\n */\n clickEvent: {\n type: String as PropType<XEvent>,\n default: 'UserClickedABanner',\n },\n },\n setup(props) {\n const xBus = useXBus()\n\n /**\n * Flag to handle banner image errors.\n *\n * @public\n */\n const imageFailed = ref(false)\n\n /**\n * Emits the banner click event.\n *\n * @internal\n */\n const emitClickEvent = (): void => {\n xBus.emit(props.clickEvent, props.banner)\n }\n\n /**\n * Returns the events supported by the anchor.\n *\n * @returns Events supported by the anchor.\n *\n * @internal\n */\n const anchorEvents = (): Partial<{\n [key in keyof GlobalEventHandlersEventMap]: () => void\n }> => ({\n click: () => emitClickEvent(),\n auxclick: () => emitClickEvent(),\n contextmenu: () => emitClickEvent(),\n })\n\n return {\n imageFailed,\n anchorEvents,\n }\n },\n})\n</script>\n\n<style lang=\"css\" scoped>\n.x-banner {\n display: flex;\n flex-flow: column nowrap;\n text-decoration: none;\n}\n\n.x-banner__image {\n width: 100%;\n object-fit: contain;\n}\n</style>\n\n<docs lang=\"mdx\">\n## Events\n\nThis component emits the following event:\n\n- `clickEvent` (default `UserClickedABanner`):\n emitted when the user clicks the banner (if it has a URL). The event name can be customized\n via the `clickEvent` prop.\n\n## See it in action\n\nIn this example, banner data is passed as a prop.\n\n_Here you can see how the `Banner` component is rendered._\n\n```vue\n<template>\n <Banner :banner=\"banner\" />\n</template>\n\n<script setup>\nimport { Banner } from '@empathyco/x-components/search'\nimport { ref } from 'vue'\n\nconst banner = ref({\n modelName: 'Banner',\n id: 'banner-example',\n url: 'https://my-website.com/summer-shirts',\n image: 'https://my-website.com/images/summer-shirts.jpg',\n title: 'Trendy summer shirts',\n position: 1,\n})\n</script>\n```\n\n### Customizing the items with classes\n\nThe `titleClass` prop can be used to add classes to the banner title.\n\n```vue\n<template>\n <Banner :banner=\"banner\" titleClass=\"x-bg-neutral-50\" />\n</template>\n\n<script setup>\nimport { Banner } from '@empathyco/x-components/search'\nimport { ref } from 'vue'\n\nconst banner = ref({\n modelName: 'Banner',\n id: 'banner-example',\n url: 'https://my-website.com/summer-shirts',\n image: 'https://my-website.com/images/summer-shirts.jpg',\n title: 'Trendy summer shirts',\n position: 1,\n})\n</script>\n```\n</docs>\n"],"names":["_openBlock","_createBlock","_resolveDynamicComponent","_mergeProps","_toHandlers","_withCtx","_createElementVNode","_createElementBlock","_normalizeClass","_toDisplayString","_createCommentVNode"],"mappings":";;;;;;;AAGW,EAAA,OAAA,CAAA,IAAA,CAAA,WAAA,IAAAA,SAAA,EAAA,EAFTC,WAAA,CAkBYC,uBAAA,CAjBL,IAAA,CAAA,MAAA,CAAO,GAAA,GAAG,iBADjBC,UAAA,CAkBY;AAAA,IAAA,GAAA,EAAA,CAAA;AAfT,IAAA,IAAA,EAAM,IAAA,CAAA,MAAA,CAAO,GAAA;AAAA,IACd,KAAA,EAAM,UAAA;AAAA,IACN,WAAA,EAAU;AAAA,GAAA,EACVC,UAAA,CAAuC,IAAA,CAAjC,MAAA,CAAO,GAAA,GAAM,IAAA,CAAA,YAAA,EAAY,GAAA,EAAA,CAAA,CAAA,EAAA;AAAA,IAAA,OAAA,EAAAC,OAAA,CAE/B,MAME;AAAA,MANFC,kBAAA,CAME,KAAA,EAAA;AAAA,QALC,KAAK,IAAA,CAAA,MAAA,CAAO,KAAA;AAAA,QACZ,GAAA,EAAK,IAAA,CAAA,MAAA,CAAO,KAAA,GAAQ,IAAA,CAAA,MAAA,CAAO,KAAA,GAAK,QAAA;AAAA,QACjC,KAAA,EAAM,iBAAA;AAAA,QACN,WAAA,EAAU,cAAA;AAAA,QACT,OAAA,EAAK,sCAAE,IAAA,CAAA,WAAA,GAAW,IAAA;AAAA,OAAA,EAAA,IAAA,EAAA,EAAA,EAAA,UAAA,CAAA;AAEX,MAAA,IAAA,CAAA,MAAA,CAAO,KAAA,IAAAN,SAAA,EAAA,EAAjBO,kBAAA;AAAA,QAEK,IAAA;AAAA,QAAA;AAAA,UAAA,GAAA,EAAA,CAAA;UAFmB,KAAA,EAAKC,cAAA,CAAA,CAAC,mBAA0B,IAAA,CAAA,UAAU,CAAA,CAAA;AAAA,UAAE,WAAA,EAAU;AAAA,SAAA;AACzE,QAAAC,eAAA,CAAA,IAAA,CAAA,MAAA,CAAO,KAAK,CAAA;AAAA,QAAA;AAAA;AAAA,OAAA,IAAAC,kBAAA,CAAA,MAAA,EAAA,IAAA;;;;;;;;;;"}
@@ -29,6 +29,15 @@ var _sfc_main = defineComponent({
29
29
  required: true,
30
30
  },
31
31
  titleClass: String,
32
+ /**
33
+ * Event to emit when the banner is clicked.
34
+ *
35
+ * @public
36
+ */
37
+ clickEvent: {
38
+ type: String,
39
+ default: 'UserClickedABanner',
40
+ },
32
41
  },
33
42
  setup(props) {
34
43
  const xBus = useXBus();
@@ -44,7 +53,7 @@ var _sfc_main = defineComponent({
44
53
  * @internal
45
54
  */
46
55
  const emitClickEvent = () => {
47
- xBus.emit('UserClickedABanner', props.banner);
56
+ xBus.emit(props.clickEvent, props.banner);
48
57
  };
49
58
  /**
50
59
  * Returns the events supported by the anchor.
@@ -1 +1 @@
1
- {"version":3,"file":"banner.vue2.js","sources":["../../../../../src/x-modules/search/components/banner.vue"],"sourcesContent":["<template>\n <component\n :is=\"banner.url ? 'a' : 'figure'\"\n v-if=\"!imageFailed\"\n :href=\"banner.url\"\n class=\"x-banner\"\n data-test=\"banner\"\n v-on=\"banner.url ? anchorEvents() : {}\"\n >\n <img\n :src=\"banner.image\"\n :alt=\"banner.title ? banner.title : 'Banner'\"\n class=\"x-banner__image\"\n data-test=\"banner-image\"\n @error=\"imageFailed = true\"\n />\n <h2 v-if=\"banner.title\" class=\"x-banner__title\" :class=\"titleClass\" data-test=\"banner-title\">\n {{ banner.title }}\n </h2>\n </component>\n</template>\n\n<script lang=\"ts\">\nimport type { Banner as BannerModel } from '@empathyco/x-types'\nimport type { PropType } from 'vue'\nimport { defineComponent, ref } from 'vue'\nimport { useXBus } from '../../../composables/use-x-bus'\nimport { searchXModule } from '../x-module'\n\n/**.\n * A banner result is just an item that has been inserted into the search results to advertise\n * something. Usually it is the first item in the grid or it can be placed in the middle of them\n * and fill the whole row where appears.\n * The banner may be clickable or non-clickable depending on whether it has an associated URL\n * or not. It contains an image and, optionally, a title. In case the image does not\n * load due to an error the banner will not be rendered.\n *\n * Additionally, this component exposes the following props to modify the classes of the\n * elements: `titleClass`.\n *\n * @public\n */\nexport default defineComponent({\n name: 'Banner',\n xModule: searchXModule.name,\n props: {\n /**\n * The banner data.\n *\n * @public\n */\n banner: {\n type: Object as PropType<BannerModel>,\n required: true,\n },\n titleClass: String,\n },\n setup(props) {\n const xBus = useXBus()\n\n /**\n * Flag to handle banner image errors.\n *\n * @public\n */\n const imageFailed = ref(false)\n\n /**\n * Emits the banner click event.\n *\n * @internal\n */\n const emitClickEvent = (): void => {\n xBus.emit('UserClickedABanner', props.banner)\n }\n\n /**\n * Returns the events supported by the anchor.\n *\n * @returns Events supported by the anchor.\n *\n * @internal\n */\n const anchorEvents = (): Partial<{\n [key in keyof GlobalEventHandlersEventMap]: () => void\n }> => ({\n click: () => emitClickEvent(),\n auxclick: () => emitClickEvent(),\n contextmenu: () => emitClickEvent(),\n })\n\n return {\n imageFailed,\n anchorEvents,\n }\n },\n})\n</script>\n\n<style lang=\"css\" scoped>\n.x-banner {\n display: flex;\n flex-flow: column nowrap;\n text-decoration: none;\n}\n\n.x-banner__image {\n width: 100%;\n object-fit: contain;\n}\n</style>\n\n<docs lang=\"mdx\">\n## Events\n\nThis component emits the following event:\n\n- [`UserClickedABanner`](https://github.com/empathyco/x/blob/main/packages/x-components/src/wiring/events.types.ts):\n emitted when the user clicks the banner (if it has a URL).\n\n## See it in action\n\nIn this example, banner data is passed as a prop.\n\n_Here you can see how the `Banner` component is rendered._\n\n```vue\n<template>\n <Banner :banner=\"banner\" />\n</template>\n\n<script setup>\nimport { Banner } from '@empathyco/x-components/search'\nimport { ref } from 'vue'\n\nconst banner = ref({\n modelName: 'Banner',\n id: 'banner-example',\n url: 'https://my-website.com/summer-shirts',\n image: 'https://my-website.com/images/summer-shirts.jpg',\n title: 'Trendy summer shirts',\n position: 1,\n})\n</script>\n```\n\n### Customizing the items with classes\n\nThe `titleClass` prop can be used to add classes to the banner title.\n\n```vue\n<template>\n <Banner :banner=\"banner\" titleClass=\"x-bg-neutral-50\" />\n</template>\n\n<script setup>\nimport { Banner } from '@empathyco/x-components/search'\nimport { ref } from 'vue'\n\nconst banner = ref({\n modelName: 'Banner',\n id: 'banner-example',\n url: 'https://my-website.com/summer-shirts',\n image: 'https://my-website.com/images/summer-shirts.jpg',\n title: 'Trendy summer shirts',\n position: 1,\n})\n</script>\n```\n</docs>\n"],"names":[],"mappings":";;;;AA6BA;;;;;;;;;;;;AAYE;AACF,gBAAe,eAAe,CAAC;AAC7B,IAAA,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,aAAa,CAAC,IAAI;AAC3B,IAAA,KAAK,EAAE;AACL;;;;AAIE;AACF,QAAA,MAAM,EAAE;AACN,YAAA,IAAI,EAAE,MAA+B;AACrC,YAAA,QAAQ,EAAE,IAAI;AACf,SAAA;AACD,QAAA,UAAU,EAAE,MAAM;AACnB,KAAA;AACD,IAAA,KAAK,CAAC,KAAK,EAAA;AACT,QAAA,MAAM,IAAG,GAAI,OAAO,EAAC;AAErB;;;;AAIE;AACF,QAAA,MAAM,WAAU,GAAI,GAAG,CAAC,KAAK,CAAA;AAE7B;;;;AAIE;QACF,MAAM,cAAa,GAAI,MAAU;YAC/B,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,KAAK,CAAC,MAAM,CAAA;AAC9C,QAAA,CAAA;AAEA;;;;;;AAME;AACF,QAAA,MAAM,YAAW,GAAI,OAEd;AACL,YAAA,KAAK,EAAE,MAAM,cAAc,EAAE;AAC7B,YAAA,QAAQ,EAAE,MAAM,cAAc,EAAE;AAChC,YAAA,WAAW,EAAE,MAAM,cAAc,EAAE;AACpC,SAAA,CAAA;QAED,OAAO;YACL,WAAW;YACX,YAAY;SACd;IACF,CAAC;AACF,CAAA,CAAA;;;;"}
1
+ {"version":3,"file":"banner.vue2.js","sources":["../../../../../src/x-modules/search/components/banner.vue"],"sourcesContent":["<template>\n <component\n :is=\"banner.url ? 'a' : 'figure'\"\n v-if=\"!imageFailed\"\n :href=\"banner.url\"\n class=\"x-banner\"\n data-test=\"banner\"\n v-on=\"banner.url ? anchorEvents() : {}\"\n >\n <img\n :src=\"banner.image\"\n :alt=\"banner.title ? banner.title : 'Banner'\"\n class=\"x-banner__image\"\n data-test=\"banner-image\"\n @error=\"imageFailed = true\"\n />\n <h2 v-if=\"banner.title\" class=\"x-banner__title\" :class=\"titleClass\" data-test=\"banner-title\">\n {{ banner.title }}\n </h2>\n </component>\n</template>\n\n<script lang=\"ts\">\nimport type { Banner as BannerModel } from '@empathyco/x-types'\nimport type { PropType } from 'vue'\nimport type { XEvent } from '../../../wiring'\nimport { defineComponent, ref } from 'vue'\nimport { useXBus } from '../../../composables/use-x-bus'\nimport { searchXModule } from '../x-module'\n\n/**.\n * A banner result is just an item that has been inserted into the search results to advertise\n * something. Usually it is the first item in the grid or it can be placed in the middle of them\n * and fill the whole row where appears.\n * The banner may be clickable or non-clickable depending on whether it has an associated URL\n * or not. It contains an image and, optionally, a title. In case the image does not\n * load due to an error the banner will not be rendered.\n *\n * Additionally, this component exposes the following props to modify the classes of the\n * elements: `titleClass`.\n *\n * @public\n */\nexport default defineComponent({\n name: 'Banner',\n xModule: searchXModule.name,\n props: {\n /**\n * The banner data.\n *\n * @public\n */\n banner: {\n type: Object as PropType<BannerModel>,\n required: true,\n },\n titleClass: String,\n /**\n * Event to emit when the banner is clicked.\n *\n * @public\n */\n clickEvent: {\n type: String as PropType<XEvent>,\n default: 'UserClickedABanner',\n },\n },\n setup(props) {\n const xBus = useXBus()\n\n /**\n * Flag to handle banner image errors.\n *\n * @public\n */\n const imageFailed = ref(false)\n\n /**\n * Emits the banner click event.\n *\n * @internal\n */\n const emitClickEvent = (): void => {\n xBus.emit(props.clickEvent, props.banner)\n }\n\n /**\n * Returns the events supported by the anchor.\n *\n * @returns Events supported by the anchor.\n *\n * @internal\n */\n const anchorEvents = (): Partial<{\n [key in keyof GlobalEventHandlersEventMap]: () => void\n }> => ({\n click: () => emitClickEvent(),\n auxclick: () => emitClickEvent(),\n contextmenu: () => emitClickEvent(),\n })\n\n return {\n imageFailed,\n anchorEvents,\n }\n },\n})\n</script>\n\n<style lang=\"css\" scoped>\n.x-banner {\n display: flex;\n flex-flow: column nowrap;\n text-decoration: none;\n}\n\n.x-banner__image {\n width: 100%;\n object-fit: contain;\n}\n</style>\n\n<docs lang=\"mdx\">\n## Events\n\nThis component emits the following event:\n\n- `clickEvent` (default `UserClickedABanner`):\n emitted when the user clicks the banner (if it has a URL). The event name can be customized\n via the `clickEvent` prop.\n\n## See it in action\n\nIn this example, banner data is passed as a prop.\n\n_Here you can see how the `Banner` component is rendered._\n\n```vue\n<template>\n <Banner :banner=\"banner\" />\n</template>\n\n<script setup>\nimport { Banner } from '@empathyco/x-components/search'\nimport { ref } from 'vue'\n\nconst banner = ref({\n modelName: 'Banner',\n id: 'banner-example',\n url: 'https://my-website.com/summer-shirts',\n image: 'https://my-website.com/images/summer-shirts.jpg',\n title: 'Trendy summer shirts',\n position: 1,\n})\n</script>\n```\n\n### Customizing the items with classes\n\nThe `titleClass` prop can be used to add classes to the banner title.\n\n```vue\n<template>\n <Banner :banner=\"banner\" titleClass=\"x-bg-neutral-50\" />\n</template>\n\n<script setup>\nimport { Banner } from '@empathyco/x-components/search'\nimport { ref } from 'vue'\n\nconst banner = ref({\n modelName: 'Banner',\n id: 'banner-example',\n url: 'https://my-website.com/summer-shirts',\n image: 'https://my-website.com/images/summer-shirts.jpg',\n title: 'Trendy summer shirts',\n position: 1,\n})\n</script>\n```\n</docs>\n"],"names":[],"mappings":";;;;AA8BA;;;;;;;;;;;;AAYE;AACF,gBAAe,eAAe,CAAC;AAC7B,IAAA,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,aAAa,CAAC,IAAI;AAC3B,IAAA,KAAK,EAAE;AACL;;;;AAIE;AACF,QAAA,MAAM,EAAE;AACN,YAAA,IAAI,EAAE,MAA+B;AACrC,YAAA,QAAQ,EAAE,IAAI;AACf,SAAA;AACD,QAAA,UAAU,EAAE,MAAM;AAClB;;;;AAIE;AACF,QAAA,UAAU,EAAE;AACV,YAAA,IAAI,EAAE,MAA0B;AAChC,YAAA,OAAO,EAAE,oBAAoB;AAC9B,SAAA;AACF,KAAA;AACD,IAAA,KAAK,CAAC,KAAK,EAAA;AACT,QAAA,MAAM,IAAG,GAAI,OAAO,EAAC;AAErB;;;;AAIE;AACF,QAAA,MAAM,WAAU,GAAI,GAAG,CAAC,KAAK,CAAA;AAE7B;;;;AAIE;QACF,MAAM,cAAa,GAAI,MAAU;YAC/B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,CAAA;AAC1C,QAAA,CAAA;AAEA;;;;;;AAME;AACF,QAAA,MAAM,YAAW,GAAI,OAEd;AACL,YAAA,KAAK,EAAE,MAAM,cAAc,EAAE;AAC7B,YAAA,QAAQ,EAAE,MAAM,cAAc,EAAE;AAChC,YAAA,WAAW,EAAE,MAAM,cAAc,EAAE;AACpC,SAAA,CAAA;QAED,OAAO;YACL,WAAW;YACX,YAAY;SACd;IACF,CAAC;AACF,CAAA,CAAA;;;;"}
@@ -14,6 +14,8 @@ const fetchTagging = async (url) => fetch(url, { method: 'GET', keepalive: true
14
14
  const trackResultView = createWireFromFunction(({ eventPayload: { tagging } }) => tagging?.viewUrl && void fetchTagging(tagging.viewUrl));
15
15
  const trackResultClick = createWireFromFunction(({ eventPayload: { tagging } }) => tagging?.clickUrl && void fetchTagging(tagging.clickUrl));
16
16
  const trackResultAddToCart = createWireFromFunction(({ eventPayload: { tagging } }) => tagging?.add2cartUrl && void fetchTagging(tagging.add2cartUrl));
17
+ const trackBannerView = createWireFromFunction(({ eventPayload: { tagging } }) => tagging?.viewUrl && void fetchTagging(tagging.viewUrl));
18
+ const trackBannerClick = createWireFromFunction(({ eventPayload: { tagging } }) => tagging?.clickUrl && void fetchTagging(tagging.clickUrl));
17
19
  /**
18
20
  * Sets the vendor results of the {@link VendorXModule}.
19
21
  *
@@ -65,6 +67,12 @@ const vendorWiring = createWiring({
65
67
  VendorBannersChanged: {
66
68
  setBanners,
67
69
  },
70
+ UserViewedAVendorBanner: {
71
+ trackBannerView,
72
+ },
73
+ UserClickedAVendorBanner: {
74
+ trackBannerClick,
75
+ },
68
76
  SearchRequestChanged: {
69
77
  resetResults,
70
78
  resetBanners,
@@ -1 +1 @@
1
- {"version":3,"file":"wiring.js","sources":["../../../../src/x-modules/vendor/wiring.ts"],"sourcesContent":["import type { WirePayload, XEventPayload } from '../../wiring'\nimport { createWireFromFunction, createWiring, namespacedWireCommit } from '../../wiring'\n\n/**\n * WireCommit for {@link VendorXModule}.\n *\n * @internal\n */\nconst wireCommit = namespacedWireCommit('vendor')\n\nconst fetchTagging = async (url: string) => fetch(url, { method: 'GET', keepalive: true })\n\nconst trackResultView = createWireFromFunction<XEventPayload<'UserViewedAVendorResult'>>(\n ({ eventPayload: { tagging } }) => tagging?.viewUrl && void fetchTagging(tagging.viewUrl),\n)\nconst trackResultClick = createWireFromFunction<XEventPayload<'UserClickedAVendorResult'>>(\n ({ eventPayload: { tagging } }) => tagging?.clickUrl && void fetchTagging(tagging.clickUrl),\n)\nconst trackResultAddToCart = createWireFromFunction<\n XEventPayload<'UserClickedVendorResultAddToCart'>\n>(({ eventPayload: { tagging } }) => tagging?.add2cartUrl && void fetchTagging(tagging.add2cartUrl))\n/**\n * Sets the vendor results of the {@link VendorXModule}.\n *\n * @public\n */\nexport const setResults = wireCommit(\n 'setResults',\n ({ eventPayload }: WirePayload<XEventPayload<'VendorResultsChanged'>>) =>\n eventPayload.map(vendorResult => ({\n ...vendorResult,\n modelName: 'VendorResult' as const,\n })),\n)\n\n/**\n * Sets the vendor banners of the {@link VendorXModule}.\n *\n * @public\n */\nexport const setBanners = wireCommit(\n 'setBanners',\n ({ eventPayload }: WirePayload<XEventPayload<'VendorBannersChanged'>>) =>\n eventPayload.map(vendorBanner => ({\n ...vendorBanner,\n modelName: 'VendorBanner' as const,\n })),\n)\n\n/**\n * Resets the vendor results of the {@link VendorXModule}.\n *\n * @public\n */\nconst resetResults = wireCommit('setResults', [])\n\n/**\n * Resets the vendor banners of the {@link VendorXModule}.\n *\n * @public\n */\nconst resetBanners = wireCommit('setBanners', [])\n\n/**\n * Wiring configuration for the {@link VendorXModule | vendor module}.\n *\n * @internal\n */\nexport const vendorWiring = createWiring({\n VendorResultsChanged: {\n setResults,\n },\n UserViewedAVendorResult: {\n trackResultView,\n },\n UserClickedAVendorResult: {\n trackResultClick,\n },\n UserClickedVendorResultAddToCart: {\n trackResultAddToCart,\n },\n VendorBannersChanged: {\n setBanners,\n },\n SearchRequestChanged: {\n resetResults,\n resetBanners,\n },\n})\n"],"names":[],"mappings":";;;;;;AAGA;;;;AAIG;AACH,MAAM,UAAU,GAAG,oBAAoB,CAAC,QAAQ,CAAC;AAEjD,MAAM,YAAY,GAAG,OAAO,GAAW,KAAK,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAE1F,MAAM,eAAe,GAAG,sBAAsB,CAC5C,CAAC,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,EAAE,KAAK,OAAO,EAAE,OAAO,IAAI,KAAK,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAC1F;AACD,MAAM,gBAAgB,GAAG,sBAAsB,CAC7C,CAAC,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,EAAE,KAAK,OAAO,EAAE,QAAQ,IAAI,KAAK,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAC5F;AACD,MAAM,oBAAoB,GAAG,sBAAsB,CAEjD,CAAC,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,EAAE,KAAK,OAAO,EAAE,WAAW,IAAI,KAAK,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AACpG;;;;AAIG;MACU,UAAU,GAAG,UAAU,CAClC,YAAY,EACZ,CAAC,EAAE,YAAY,EAAsD,KACnE,YAAY,CAAC,GAAG,CAAC,YAAY,KAAK;AAChC,IAAA,GAAG,YAAY;AACf,IAAA,SAAS,EAAE,cAAuB;CACnC,CAAC,CAAC;AAGP;;;;AAIG;MACU,UAAU,GAAG,UAAU,CAClC,YAAY,EACZ,CAAC,EAAE,YAAY,EAAsD,KACnE,YAAY,CAAC,GAAG,CAAC,YAAY,KAAK;AAChC,IAAA,GAAG,YAAY;AACf,IAAA,SAAS,EAAE,cAAuB;CACnC,CAAC,CAAC;AAGP;;;;AAIG;AACH,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,EAAE,EAAE,CAAC;AAEjD;;;;AAIG;AACH,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,EAAE,EAAE,CAAC;AAEjD;;;;AAIG;AACI,MAAM,YAAY,GAAG,YAAY,CAAC;AACvC,IAAA,oBAAoB,EAAE;QACpB,UAAU;AACX,KAAA;AACD,IAAA,uBAAuB,EAAE;QACvB,eAAe;AAChB,KAAA;AACD,IAAA,wBAAwB,EAAE;QACxB,gBAAgB;AACjB,KAAA;AACD,IAAA,gCAAgC,EAAE;QAChC,oBAAoB;AACrB,KAAA;AACD,IAAA,oBAAoB,EAAE;QACpB,UAAU;AACX,KAAA;AACD,IAAA,oBAAoB,EAAE;QACpB,YAAY;QACZ,YAAY;AACb,KAAA;AACF,CAAA;;;;"}
1
+ {"version":3,"file":"wiring.js","sources":["../../../../src/x-modules/vendor/wiring.ts"],"sourcesContent":["import type { WirePayload, XEventPayload } from '../../wiring'\nimport { createWireFromFunction, createWiring, namespacedWireCommit } from '../../wiring'\n\n/**\n * WireCommit for {@link VendorXModule}.\n *\n * @internal\n */\nconst wireCommit = namespacedWireCommit('vendor')\n\nconst fetchTagging = async (url: string) => fetch(url, { method: 'GET', keepalive: true })\n\nconst trackResultView = createWireFromFunction<XEventPayload<'UserViewedAVendorResult'>>(\n ({ eventPayload: { tagging } }) => tagging?.viewUrl && void fetchTagging(tagging.viewUrl),\n)\nconst trackResultClick = createWireFromFunction<XEventPayload<'UserClickedAVendorResult'>>(\n ({ eventPayload: { tagging } }) => tagging?.clickUrl && void fetchTagging(tagging.clickUrl),\n)\nconst trackResultAddToCart = createWireFromFunction<\n XEventPayload<'UserClickedVendorResultAddToCart'>\n>(({ eventPayload: { tagging } }) => tagging?.add2cartUrl && void fetchTagging(tagging.add2cartUrl))\nconst trackBannerView = createWireFromFunction<XEventPayload<'UserViewedAVendorBanner'>>(\n ({ eventPayload: { tagging } }) => tagging?.viewUrl && void fetchTagging(tagging.viewUrl),\n)\nconst trackBannerClick = createWireFromFunction<XEventPayload<'UserClickedAVendorBanner'>>(\n ({ eventPayload: { tagging } }) => tagging?.clickUrl && void fetchTagging(tagging.clickUrl),\n)\n/**\n * Sets the vendor results of the {@link VendorXModule}.\n *\n * @public\n */\nexport const setResults = wireCommit(\n 'setResults',\n ({ eventPayload }: WirePayload<XEventPayload<'VendorResultsChanged'>>) =>\n eventPayload.map(vendorResult => ({\n ...vendorResult,\n modelName: 'VendorResult' as const,\n })),\n)\n\n/**\n * Sets the vendor banners of the {@link VendorXModule}.\n *\n * @public\n */\nexport const setBanners = wireCommit(\n 'setBanners',\n ({ eventPayload }: WirePayload<XEventPayload<'VendorBannersChanged'>>) =>\n eventPayload.map(vendorBanner => ({\n ...vendorBanner,\n modelName: 'VendorBanner' as const,\n })),\n)\n\n/**\n * Resets the vendor results of the {@link VendorXModule}.\n *\n * @public\n */\nconst resetResults = wireCommit('setResults', [])\n\n/**\n * Resets the vendor banners of the {@link VendorXModule}.\n *\n * @public\n */\nconst resetBanners = wireCommit('setBanners', [])\n\n/**\n * Wiring configuration for the {@link VendorXModule | vendor module}.\n *\n * @internal\n */\nexport const vendorWiring = createWiring({\n VendorResultsChanged: {\n setResults,\n },\n UserViewedAVendorResult: {\n trackResultView,\n },\n UserClickedAVendorResult: {\n trackResultClick,\n },\n UserClickedVendorResultAddToCart: {\n trackResultAddToCart,\n },\n VendorBannersChanged: {\n setBanners,\n },\n UserViewedAVendorBanner: {\n trackBannerView,\n },\n UserClickedAVendorBanner: {\n trackBannerClick,\n },\n SearchRequestChanged: {\n resetResults,\n resetBanners,\n },\n})\n"],"names":[],"mappings":";;;;;;AAGA;;;;AAIG;AACH,MAAM,UAAU,GAAG,oBAAoB,CAAC,QAAQ,CAAC;AAEjD,MAAM,YAAY,GAAG,OAAO,GAAW,KAAK,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAE1F,MAAM,eAAe,GAAG,sBAAsB,CAC5C,CAAC,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,EAAE,KAAK,OAAO,EAAE,OAAO,IAAI,KAAK,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAC1F;AACD,MAAM,gBAAgB,GAAG,sBAAsB,CAC7C,CAAC,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,EAAE,KAAK,OAAO,EAAE,QAAQ,IAAI,KAAK,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAC5F;AACD,MAAM,oBAAoB,GAAG,sBAAsB,CAEjD,CAAC,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,EAAE,KAAK,OAAO,EAAE,WAAW,IAAI,KAAK,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AACpG,MAAM,eAAe,GAAG,sBAAsB,CAC5C,CAAC,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,EAAE,KAAK,OAAO,EAAE,OAAO,IAAI,KAAK,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAC1F;AACD,MAAM,gBAAgB,GAAG,sBAAsB,CAC7C,CAAC,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,EAAE,KAAK,OAAO,EAAE,QAAQ,IAAI,KAAK,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAC5F;AACD;;;;AAIG;MACU,UAAU,GAAG,UAAU,CAClC,YAAY,EACZ,CAAC,EAAE,YAAY,EAAsD,KACnE,YAAY,CAAC,GAAG,CAAC,YAAY,KAAK;AAChC,IAAA,GAAG,YAAY;AACf,IAAA,SAAS,EAAE,cAAuB;CACnC,CAAC,CAAC;AAGP;;;;AAIG;MACU,UAAU,GAAG,UAAU,CAClC,YAAY,EACZ,CAAC,EAAE,YAAY,EAAsD,KACnE,YAAY,CAAC,GAAG,CAAC,YAAY,KAAK;AAChC,IAAA,GAAG,YAAY;AACf,IAAA,SAAS,EAAE,cAAuB;CACnC,CAAC,CAAC;AAGP;;;;AAIG;AACH,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,EAAE,EAAE,CAAC;AAEjD;;;;AAIG;AACH,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,EAAE,EAAE,CAAC;AAEjD;;;;AAIG;AACI,MAAM,YAAY,GAAG,YAAY,CAAC;AACvC,IAAA,oBAAoB,EAAE;QACpB,UAAU;AACX,KAAA;AACD,IAAA,uBAAuB,EAAE;QACvB,eAAe;AAChB,KAAA;AACD,IAAA,wBAAwB,EAAE;QACxB,gBAAgB;AACjB,KAAA;AACD,IAAA,gCAAgC,EAAE;QAChC,oBAAoB;AACrB,KAAA;AACD,IAAA,oBAAoB,EAAE;QACpB,UAAU;AACX,KAAA;AACD,IAAA,uBAAuB,EAAE;QACvB,eAAe;AAChB,KAAA;AACD,IAAA,wBAAwB,EAAE;QACxB,gBAAgB;AACjB,KAAA;AACD,IAAA,oBAAoB,EAAE;QACpB,YAAY;QACZ,YAAY;AACb,KAAA;AACF,CAAA;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@empathyco/x-components",
3
- "version": "8.5.0",
3
+ "version": "8.6.0",
4
4
  "description": "Empathy X Components",
5
5
  "author": "Empathy Systems Corporation S.L.",
6
6
  "license": "Apache-2.0",
@@ -68,8 +68,8 @@
68
68
  },
69
69
  "dependencies": {
70
70
  "@empathyco/x-adapter": "8.1.8",
71
- "@empathyco/x-adapter-platform": "1.7.1",
72
- "@empathyco/x-types": "10.6.0",
71
+ "@empathyco/x-adapter-platform": "1.7.2",
72
+ "@empathyco/x-types": "10.7.0",
73
73
  "@empathyco/x-utils": "1.0.9",
74
74
  "@vue/devtools-api": "~6.6.4",
75
75
  "@vueuse/core": "~12.8.2",
@@ -117,5 +117,5 @@
117
117
  "access": "public",
118
118
  "directory": "dist"
119
119
  },
120
- "gitHead": "23cadd3838c5517e15f0284e33c568f0faf82078"
120
+ "gitHead": "b939fa80f9090a85ca9085dfc15fdc4e90cf5958"
121
121
  }
@@ -4651,7 +4651,25 @@
4651
4651
  },
4652
4652
  {
4653
4653
  "kind": "Content",
4654
- "text": ";\n}>, {\n imageFailed: import(\"vue\")."
4654
+ "text": ";\n clickEvent: {\n type: "
4655
+ },
4656
+ {
4657
+ "kind": "Reference",
4658
+ "text": "PropType",
4659
+ "canonicalReference": "@vue/runtime-core!PropType:type"
4660
+ },
4661
+ {
4662
+ "kind": "Content",
4663
+ "text": "<"
4664
+ },
4665
+ {
4666
+ "kind": "Reference",
4667
+ "text": "XEvent",
4668
+ "canonicalReference": "@empathyco/x-components!XEvent:type"
4669
+ },
4670
+ {
4671
+ "kind": "Content",
4672
+ "text": ">;\n default: string;\n };\n}>, {\n imageFailed: import(\"vue\")."
4655
4673
  },
4656
4674
  {
4657
4675
  "kind": "Reference",
@@ -4750,7 +4768,25 @@
4750
4768
  },
4751
4769
  {
4752
4770
  "kind": "Content",
4753
- "text": ";\n}>> & "
4771
+ "text": ";\n clickEvent: {\n type: "
4772
+ },
4773
+ {
4774
+ "kind": "Reference",
4775
+ "text": "PropType",
4776
+ "canonicalReference": "@vue/runtime-core!PropType:type"
4777
+ },
4778
+ {
4779
+ "kind": "Content",
4780
+ "text": "<"
4781
+ },
4782
+ {
4783
+ "kind": "Reference",
4784
+ "text": "XEvent",
4785
+ "canonicalReference": "@empathyco/x-components!XEvent:type"
4786
+ },
4787
+ {
4788
+ "kind": "Content",
4789
+ "text": ">;\n default: string;\n };\n}>> & "
4754
4790
  },
4755
4791
  {
4756
4792
  "kind": "Reference",
@@ -4759,7 +4795,16 @@
4759
4795
  },
4760
4796
  {
4761
4797
  "kind": "Content",
4762
- "text": "<{}>, {}, {}, {}, {}, string, import(\"vue\")."
4798
+ "text": "<{}>, {\n clickEvent: keyof import(\"../../../wiring\")."
4799
+ },
4800
+ {
4801
+ "kind": "Reference",
4802
+ "text": "XEventsTypes",
4803
+ "canonicalReference": "@empathyco/x-components!XEventsTypes:interface"
4804
+ },
4805
+ {
4806
+ "kind": "Content",
4807
+ "text": ";\n}, {}, {}, {}, string, import(\"vue\")."
4763
4808
  },
4764
4809
  {
4765
4810
  "kind": "Reference",
@@ -4777,7 +4822,7 @@
4777
4822
  "name": "Banner",
4778
4823
  "variableTypeTokenRange": {
4779
4824
  "startIndex": 1,
4780
- "endIndex": 38
4825
+ "endIndex": 48
4781
4826
  }
4782
4827
  },
4783
4828
  {
@@ -37162,7 +37207,25 @@
37162
37207
  },
37163
37208
  {
37164
37209
  "kind": "Content",
37165
- "text": ", \"modelName\">[] | undefined;\n }>;\n innerCssClasses: import(\"vue\")."
37210
+ "text": ", \"modelName\">[] | undefined;\n UserViewedAVendorBanner?: import(\"../../../vendor\")."
37211
+ },
37212
+ {
37213
+ "kind": "Reference",
37214
+ "text": "VendorBanner",
37215
+ "canonicalReference": "@empathyco/x-components!VendorBanner:interface"
37216
+ },
37217
+ {
37218
+ "kind": "Content",
37219
+ "text": " | undefined;\n UserClickedAVendorBanner?: import(\"../../../vendor\")."
37220
+ },
37221
+ {
37222
+ "kind": "Reference",
37223
+ "text": "VendorBanner",
37224
+ "canonicalReference": "@empathyco/x-components!VendorBanner:interface"
37225
+ },
37226
+ {
37227
+ "kind": "Content",
37228
+ "text": " | undefined;\n }>;\n innerCssClasses: import(\"vue\")."
37166
37229
  },
37167
37230
  {
37168
37231
  "kind": "Reference",
@@ -37432,7 +37495,7 @@
37432
37495
  "name": "HierarchicalFilter",
37433
37496
  "variableTypeTokenRange": {
37434
37497
  "startIndex": 1,
37435
- "endIndex": 310
37498
+ "endIndex": 314
37436
37499
  }
37437
37500
  },
37438
37501
  {
@@ -76435,7 +76498,25 @@
76435
76498
  },
76436
76499
  {
76437
76500
  "kind": "Content",
76438
- "text": ", \"modelName\">[] | undefined;\n }>;\n innerCssClasses: import(\"vue\")."
76501
+ "text": ", \"modelName\">[] | undefined;\n UserViewedAVendorBanner?: import(\"../../../vendor\")."
76502
+ },
76503
+ {
76504
+ "kind": "Reference",
76505
+ "text": "VendorBanner",
76506
+ "canonicalReference": "@empathyco/x-components!VendorBanner:interface"
76507
+ },
76508
+ {
76509
+ "kind": "Content",
76510
+ "text": " | undefined;\n UserClickedAVendorBanner?: import(\"../../../vendor\")."
76511
+ },
76512
+ {
76513
+ "kind": "Reference",
76514
+ "text": "VendorBanner",
76515
+ "canonicalReference": "@empathyco/x-components!VendorBanner:interface"
76516
+ },
76517
+ {
76518
+ "kind": "Content",
76519
+ "text": " | undefined;\n }>;\n innerCssClasses: import(\"vue\")."
76439
76520
  },
76440
76521
  {
76441
76522
  "kind": "Reference",
@@ -76606,7 +76687,7 @@
76606
76687
  "name": "SimpleFilter",
76607
76688
  "variableTypeTokenRange": {
76608
76689
  "startIndex": 1,
76609
- "endIndex": 278
76690
+ "endIndex": 282
76610
76691
  }
76611
76692
  },
76612
76693
  {
@@ -79893,6 +79974,42 @@
79893
79974
  "text": "WireMetadata",
79894
79975
  "canonicalReference": "@empathyco/x-components!WireMetadata:interface"
79895
79976
  },
79977
+ {
79978
+ "kind": "Content",
79979
+ "text": ") => unknown;\n UserViewedAVendorBanner: (payload: import(\"..\")."
79980
+ },
79981
+ {
79982
+ "kind": "Reference",
79983
+ "text": "VendorBanner",
79984
+ "canonicalReference": "@empathyco/x-components!VendorBanner:interface"
79985
+ },
79986
+ {
79987
+ "kind": "Content",
79988
+ "text": ", metadata: "
79989
+ },
79990
+ {
79991
+ "kind": "Reference",
79992
+ "text": "WireMetadata",
79993
+ "canonicalReference": "@empathyco/x-components!WireMetadata:interface"
79994
+ },
79995
+ {
79996
+ "kind": "Content",
79997
+ "text": ") => unknown;\n UserClickedAVendorBanner: (payload: import(\"..\")."
79998
+ },
79999
+ {
80000
+ "kind": "Reference",
80001
+ "text": "VendorBanner",
80002
+ "canonicalReference": "@empathyco/x-components!VendorBanner:interface"
80003
+ },
80004
+ {
80005
+ "kind": "Content",
80006
+ "text": ", metadata: "
80007
+ },
80008
+ {
80009
+ "kind": "Reference",
80010
+ "text": "WireMetadata",
80011
+ "canonicalReference": "@empathyco/x-components!WireMetadata:interface"
80012
+ },
79896
80013
  {
79897
80014
  "kind": "Content",
79898
80015
  "text": ") => unknown;\n }>>;\n}, {}, {}, {}, import(\"vue\")."
@@ -79967,7 +80084,7 @@
79967
80084
  "name": "SnippetCallbacks",
79968
80085
  "variableTypeTokenRange": {
79969
80086
  "startIndex": 1,
79970
- "endIndex": 592
80087
+ "endIndex": 600
79971
80088
  }
79972
80089
  },
79973
80090
  {
@@ -89970,7 +90087,7 @@
89970
90087
  },
89971
90088
  {
89972
90089
  "kind": "Content",
89973
- "text": ", 'modelName'>"
90090
+ "text": ", 'modelName' | 'tagging'>"
89974
90091
  },
89975
90092
  {
89976
90093
  "kind": "Content",
@@ -90021,6 +90138,34 @@
90021
90138
  "startIndex": 1,
90022
90139
  "endIndex": 2
90023
90140
  }
90141
+ },
90142
+ {
90143
+ "kind": "PropertySignature",
90144
+ "canonicalReference": "@empathyco/x-components!VendorBanner#tagging:member",
90145
+ "docComment": "",
90146
+ "excerptTokens": [
90147
+ {
90148
+ "kind": "Content",
90149
+ "text": "tagging?: "
90150
+ },
90151
+ {
90152
+ "kind": "Reference",
90153
+ "text": "VendorBannerTagging",
90154
+ "canonicalReference": "@empathyco/x-components!VendorBannerTagging:interface"
90155
+ },
90156
+ {
90157
+ "kind": "Content",
90158
+ "text": ";"
90159
+ }
90160
+ ],
90161
+ "isReadonly": false,
90162
+ "isOptional": true,
90163
+ "releaseTag": "Public",
90164
+ "name": "tagging",
90165
+ "propertyTypeTokenRange": {
90166
+ "startIndex": 1,
90167
+ "endIndex": 2
90168
+ }
90024
90169
  }
90025
90170
  ],
90026
90171
  "extendsTokenRanges": [
@@ -90237,6 +90382,78 @@
90237
90382
  "endIndex": 42
90238
90383
  }
90239
90384
  },
90385
+ {
90386
+ "kind": "Interface",
90387
+ "canonicalReference": "@empathyco/x-components!VendorBannerTagging:interface",
90388
+ "docComment": "/**\n * The tagging info for a vendor banner.\n *\n * @public\n */\n",
90389
+ "excerptTokens": [
90390
+ {
90391
+ "kind": "Content",
90392
+ "text": "export interface VendorBannerTagging "
90393
+ }
90394
+ ],
90395
+ "fileUrlPath": "src/x-modules/vendor/types.ts",
90396
+ "releaseTag": "Public",
90397
+ "name": "VendorBannerTagging",
90398
+ "preserveMemberOrder": false,
90399
+ "members": [
90400
+ {
90401
+ "kind": "PropertySignature",
90402
+ "canonicalReference": "@empathyco/x-components!VendorBannerTagging#clickUrl:member",
90403
+ "docComment": "",
90404
+ "excerptTokens": [
90405
+ {
90406
+ "kind": "Content",
90407
+ "text": "clickUrl: "
90408
+ },
90409
+ {
90410
+ "kind": "Content",
90411
+ "text": "string"
90412
+ },
90413
+ {
90414
+ "kind": "Content",
90415
+ "text": ";"
90416
+ }
90417
+ ],
90418
+ "isReadonly": false,
90419
+ "isOptional": false,
90420
+ "releaseTag": "Public",
90421
+ "name": "clickUrl",
90422
+ "propertyTypeTokenRange": {
90423
+ "startIndex": 1,
90424
+ "endIndex": 2
90425
+ }
90426
+ },
90427
+ {
90428
+ "kind": "PropertySignature",
90429
+ "canonicalReference": "@empathyco/x-components!VendorBannerTagging#viewUrl:member",
90430
+ "docComment": "",
90431
+ "excerptTokens": [
90432
+ {
90433
+ "kind": "Content",
90434
+ "text": "viewUrl: "
90435
+ },
90436
+ {
90437
+ "kind": "Content",
90438
+ "text": "string"
90439
+ },
90440
+ {
90441
+ "kind": "Content",
90442
+ "text": ";"
90443
+ }
90444
+ ],
90445
+ "isReadonly": false,
90446
+ "isOptional": false,
90447
+ "releaseTag": "Public",
90448
+ "name": "viewUrl",
90449
+ "propertyTypeTokenRange": {
90450
+ "startIndex": 1,
90451
+ "endIndex": 2
90452
+ }
90453
+ }
90454
+ ],
90455
+ "extendsTokenRanges": []
90456
+ },
90240
90457
  {
90241
90458
  "kind": "Interface",
90242
90459
  "canonicalReference": "@empathyco/x-components!VendorGetters:interface",
@@ -90860,6 +91077,34 @@
90860
91077
  "name": "VendorXEvents",
90861
91078
  "preserveMemberOrder": false,
90862
91079
  "members": [
91080
+ {
91081
+ "kind": "PropertySignature",
91082
+ "canonicalReference": "@empathyco/x-components!VendorXEvents#UserClickedAVendorBanner:member",
91083
+ "docComment": "/**\n * The user clicked on a vendor banner. Payload: The {@link VendorBanner | vendor banner} that was clicked.\n */\n",
91084
+ "excerptTokens": [
91085
+ {
91086
+ "kind": "Content",
91087
+ "text": "UserClickedAVendorBanner: "
91088
+ },
91089
+ {
91090
+ "kind": "Reference",
91091
+ "text": "VendorBanner",
91092
+ "canonicalReference": "@empathyco/x-components!VendorBanner:interface"
91093
+ },
91094
+ {
91095
+ "kind": "Content",
91096
+ "text": ";"
91097
+ }
91098
+ ],
91099
+ "isReadonly": false,
91100
+ "isOptional": false,
91101
+ "releaseTag": "Public",
91102
+ "name": "UserClickedAVendorBanner",
91103
+ "propertyTypeTokenRange": {
91104
+ "startIndex": 1,
91105
+ "endIndex": 2
91106
+ }
91107
+ },
90863
91108
  {
90864
91109
  "kind": "PropertySignature",
90865
91110
  "canonicalReference": "@empathyco/x-components!VendorXEvents#UserClickedAVendorResult:member",
@@ -90916,6 +91161,34 @@
90916
91161
  "endIndex": 2
90917
91162
  }
90918
91163
  },
91164
+ {
91165
+ "kind": "PropertySignature",
91166
+ "canonicalReference": "@empathyco/x-components!VendorXEvents#UserViewedAVendorBanner:member",
91167
+ "docComment": "/**\n * The user viewed a vendor banner. Payload: The {@link VendorBanner | vendor banner} that was viewed.\n */\n",
91168
+ "excerptTokens": [
91169
+ {
91170
+ "kind": "Content",
91171
+ "text": "UserViewedAVendorBanner: "
91172
+ },
91173
+ {
91174
+ "kind": "Reference",
91175
+ "text": "VendorBanner",
91176
+ "canonicalReference": "@empathyco/x-components!VendorBanner:interface"
91177
+ },
91178
+ {
91179
+ "kind": "Content",
91180
+ "text": ";"
91181
+ }
91182
+ ],
91183
+ "isReadonly": false,
91184
+ "isOptional": false,
91185
+ "releaseTag": "Public",
91186
+ "name": "UserViewedAVendorBanner",
91187
+ "propertyTypeTokenRange": {
91188
+ "startIndex": 1,
91189
+ "endIndex": 2
91190
+ }
91191
+ },
90919
91192
  {
90920
91193
  "kind": "PropertySignature",
90921
91194
  "canonicalReference": "@empathyco/x-components!VendorXEvents#UserViewedAVendorResult:member",
@@ -539,6 +539,10 @@ type: PropType<Banner_2>;
539
539
  required: true;
540
540
  };
541
541
  titleClass: StringConstructor;
542
+ clickEvent: {
543
+ type: PropType<XEvent>;
544
+ default: string;
545
+ };
542
546
  }>, {
543
547
  imageFailed: Ref<boolean, boolean>;
544
548
  anchorEvents: () => Partial<{ [key in keyof GlobalEventHandlersEventMap]: () => void; }>;
@@ -548,7 +552,13 @@ type: PropType<Banner_2>;
548
552
  required: true;
549
553
  };
550
554
  titleClass: StringConstructor;
551
- }>> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
555
+ clickEvent: {
556
+ type: PropType<XEvent>;
557
+ default: string;
558
+ };
559
+ }>> & Readonly<{}>, {
560
+ clickEvent: keyof XEventsTypes;
561
+ }, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
552
562
 
553
563
  // @public
554
564
  export const BannersList: DefineComponent<ExtractPropTypes< {
@@ -3982,6 +3992,8 @@ UserViewedAVendorResult?: VendorResult | undefined;
3982
3992
  UserClickedAVendorResult?: VendorResult | undefined;
3983
3993
  UserClickedVendorResultAddToCart?: VendorResult | undefined;
3984
3994
  VendorBannersChanged?: Omit<VendorBanner, "modelName">[] | undefined;
3995
+ UserViewedAVendorBanner?: VendorBanner | undefined;
3996
+ UserClickedAVendorBanner?: VendorBanner | undefined;
3985
3997
  }>;
3986
3998
  innerCssClasses: ComputedRef<(string | Dictionary<boolean>)[]>;
3987
3999
  renderedChildrenFilters: ComputedRef<HierarchicalFilter_2[]>;
@@ -8241,6 +8253,8 @@ UserViewedAVendorResult?: VendorResult | undefined;
8241
8253
  UserClickedAVendorResult?: VendorResult | undefined;
8242
8254
  UserClickedVendorResultAddToCart?: VendorResult | undefined;
8243
8255
  VendorBannersChanged?: Omit<VendorBanner, "modelName">[] | undefined;
8256
+ UserViewedAVendorBanner?: VendorBanner | undefined;
8257
+ UserClickedAVendorBanner?: VendorBanner | undefined;
8244
8258
  }>;
8245
8259
  innerCssClasses: ComputedRef<(string | Dictionary<boolean>)[]>;
8246
8260
  }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<ExtractPropTypes< {
@@ -8584,6 +8598,8 @@ UserViewedAVendorResult: (payload: VendorResult, metadata: WireMetadata) => unkn
8584
8598
  UserClickedAVendorResult: (payload: VendorResult, metadata: WireMetadata) => unknown;
8585
8599
  UserClickedVendorResultAddToCart: (payload: VendorResult, metadata: WireMetadata) => unknown;
8586
8600
  VendorBannersChanged: (payload: Omit<VendorBanner, "modelName">[], metadata: WireMetadata) => unknown;
8601
+ UserViewedAVendorBanner: (payload: VendorBanner, metadata: WireMetadata) => unknown;
8602
+ UserClickedAVendorBanner: (payload: VendorBanner, metadata: WireMetadata) => unknown;
8587
8603
  }>>;
8588
8604
  }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {
8589
8605
  GlobalXBus: DefineComponent< {}, {}, any>;
@@ -9590,9 +9606,11 @@ export interface VendorActions {
9590
9606
  }
9591
9607
 
9592
9608
  // @public
9593
- export interface VendorBanner extends Omit<Banner_2, 'modelName'>, NamedModel<'VendorBanner'> {
9609
+ export interface VendorBanner extends Omit<Banner_2, 'modelName' | 'tagging'>, NamedModel<'VendorBanner'> {
9594
9610
  // (undocumented)
9595
9611
  position?: number;
9612
+ // (undocumented)
9613
+ tagging?: VendorBannerTagging;
9596
9614
  }
9597
9615
 
9598
9616
  // @public
@@ -9612,6 +9630,14 @@ default: string;
9612
9630
  animation: string | Function | Record<string, any>;
9613
9631
  }, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
9614
9632
 
9633
+ // @public
9634
+ export interface VendorBannerTagging {
9635
+ // (undocumented)
9636
+ clickUrl: string;
9637
+ // (undocumented)
9638
+ viewUrl: string;
9639
+ }
9640
+
9615
9641
  // @internal
9616
9642
  export const vendorEmitters: {};
9617
9643
 
@@ -9687,6 +9713,12 @@ export const vendorWiring: {
9687
9713
  VendorBannersChanged: {
9688
9714
  setBanners: AnyWire;
9689
9715
  };
9716
+ UserViewedAVendorBanner: {
9717
+ trackBannerView: Wire<VendorBanner>;
9718
+ };
9719
+ UserClickedAVendorBanner: {
9720
+ trackBannerClick: Wire<VendorBanner>;
9721
+ };
9690
9722
  SearchRequestChanged: {
9691
9723
  resetResults: AnyWire;
9692
9724
  resetBanners: AnyWire;
@@ -9695,8 +9727,10 @@ export const vendorWiring: {
9695
9727
 
9696
9728
  // @public
9697
9729
  export interface VendorXEvents {
9730
+ UserClickedAVendorBanner: VendorBanner;
9698
9731
  UserClickedAVendorResult: VendorResult;
9699
9732
  UserClickedVendorResultAddToCart: VendorResult;
9733
+ UserViewedAVendorBanner: VendorBanner;
9700
9734
  UserViewedAVendorResult: VendorResult;
9701
9735
  VendorBannersChanged: Omit<VendorBanner, 'modelName'>[];
9702
9736
  VendorResultsChanged: Omit<VendorResult, 'modelName'>[];
@@ -10264,7 +10298,7 @@ export type XStoreModuleOptions<StoreModule extends AnyXStoreModule> = StoreModu
10264
10298
  // dist/types/src/x-modules/facets/components/filters/hierarchical-filter.vue.d.ts:211:9 - (ae-forgotten-export) The symbol "RelatedPrompt_2" needs to be exported by the entry point index.d.ts
10265
10299
  // dist/types/src/x-modules/facets/components/lists/selected-filters-list.vue.d.ts:27:5 - (ae-forgotten-export) The symbol "RenderFilter" needs to be exported by the entry point index.d.ts
10266
10300
  // dist/types/src/x-modules/related-prompts/components/related-prompts-tag-list.vue.d.ts:62:9 - (ae-forgotten-export) The symbol "RelatedPromptNextQuery" needs to be exported by the entry point index.d.ts
10267
- // dist/types/src/x-modules/search/components/banner.vue.d.ts:23:9 - (ae-forgotten-export) The symbol "Banner_2" needs to be exported by the entry point index.d.ts
10301
+ // dist/types/src/x-modules/search/components/banner.vue.d.ts:24:9 - (ae-forgotten-export) The symbol "Banner_2" needs to be exported by the entry point index.d.ts
10268
10302
  // src/x-modules/ai/store/emitters.ts:9:24 - (ae-forgotten-export) The symbol "AiSuggestionsSearchRequest" needs to be exported by the entry point index.d.ts
10269
10303
  // src/x-modules/browse/store/emitters.ts:13:40 - (ae-forgotten-export) The symbol "Promoted_2" needs to be exported by the entry point index.d.ts
10270
10304
  // src/x-modules/url/store/emitters.ts:57:1 - (ae-forgotten-export) The symbol "shouldPushUrl" needs to be exported by the entry point index.d.ts
@@ -1477,7 +1477,7 @@
1477
1477
  },
1478
1478
  {
1479
1479
  "kind": "Content",
1480
- "text": "<'Banner'>"
1480
+ "text": "<'Banner' | 'VendorBanner'>"
1481
1481
  },
1482
1482
  {
1483
1483
  "kind": "Content",
@@ -197,6 +197,8 @@ declare const _default: import("vue").DefineComponent<{}, {
197
197
  UserClickedAVendorResult: (payload: import("..").VendorResult, metadata: WireMetadata) => unknown;
198
198
  UserClickedVendorResultAddToCart: (payload: import("..").VendorResult, metadata: WireMetadata) => unknown;
199
199
  VendorBannersChanged: (payload: Omit<import("..").VendorBanner, "modelName">[], metadata: WireMetadata) => unknown;
200
+ UserViewedAVendorBanner: (payload: import("..").VendorBanner, metadata: WireMetadata) => unknown;
201
+ UserClickedAVendorBanner: (payload: import("..").VendorBanner, metadata: WireMetadata) => unknown;
200
202
  }>>;
201
203
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {
202
204
  GlobalXBus: import("vue").DefineComponent<{}, {}, any>;
@@ -1 +1 @@
1
- {"version":3,"file":"snippet-callbacks.vue?vue&type=script&lang.d.ts","sourceRoot":"","sources":["../../../../src/components/snippet-callbacks.vue?vue&type=script&lang.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAO7C;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACH,wBA0CE"}
1
+ {"version":3,"file":"snippet-callbacks.vue?vue&type=script&lang.d.ts","sourceRoot":"","sources":["../../../../src/components/snippet-callbacks.vue?vue&type=script&lang.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAO7C;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACH,wBA0CE"}
@@ -222,6 +222,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
222
222
  UserClickedAVendorResult?: import("../../../vendor").VendorResult | undefined;
223
223
  UserClickedVendorResultAddToCart?: import("../../../vendor").VendorResult | undefined;
224
224
  VendorBannersChanged?: Omit<import("../../../vendor").VendorBanner, "modelName">[] | undefined;
225
+ UserViewedAVendorBanner?: import("../../../vendor").VendorBanner | undefined;
226
+ UserClickedAVendorBanner?: import("../../../vendor").VendorBanner | undefined;
225
227
  }>;
226
228
  innerCssClasses: import("vue").ComputedRef<(string | Dictionary<boolean>)[]>;
227
229
  renderedChildrenFilters: import("vue").ComputedRef<HierarchicalFilterModel[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"hierarchical-filter.vue?vue&type=script&lang.d.ts","sourceRoot":"","sources":["../../../../../../../src/x-modules/facets/components/filters/hierarchical-filter.vue?vue&type=script&lang.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,kBAAkB,IAAI,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAC/F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAA;AACnC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AASnE;;;;GAIG;;IAMC,iCAAiC;;cAEf,QAAQ,CAAC,uBAAuB,CAAC;;;IAGnD,+DAA+D;;IAE/D;;;;OAIG;iBACoB,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACtD,+BAA+B;;cAEd,QAAQ,CAAC,CAAC,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;;;IAG3D,0CAA0C;;IAE1C,0CAA0C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6CAwDM,uBAAuB;;IA5EvE,iCAAiC;;cAEf,QAAQ,CAAC,uBAAuB,CAAC;;;IAGnD,+DAA+D;;IAE/D;;;;OAIG;iBACoB,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACtD,+BAA+B;;cAEd,QAAQ,CAAC,CAAC,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;;;IAG3D,0CAA0C;;IAE1C,0CAA0C;;;;;;;;AAzB9C,wBA+GE"}
1
+ {"version":3,"file":"hierarchical-filter.vue?vue&type=script&lang.d.ts","sourceRoot":"","sources":["../../../../../../../src/x-modules/facets/components/filters/hierarchical-filter.vue?vue&type=script&lang.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,kBAAkB,IAAI,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAC/F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAA;AACnC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AASnE;;;;GAIG;;IAMC,iCAAiC;;cAEf,QAAQ,CAAC,uBAAuB,CAAC;;;IAGnD,+DAA+D;;IAE/D;;;;OAIG;iBACoB,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACtD,+BAA+B;;cAEd,QAAQ,CAAC,CAAC,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;;;IAG3D,0CAA0C;;IAE1C,0CAA0C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6CAwDM,uBAAuB;;IA5EvE,iCAAiC;;cAEf,QAAQ,CAAC,uBAAuB,CAAC;;;IAGnD,+DAA+D;;IAE/D;;;;OAIG;iBACoB,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACtD,+BAA+B;;cAEd,QAAQ,CAAC,CAAC,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;;;IAG3D,0CAA0C;;IAE1C,0CAA0C;;;;;;;;AAzB9C,wBA+GE"}
@@ -212,6 +212,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
212
212
  UserClickedAVendorResult?: import("../../../vendor").VendorResult | undefined;
213
213
  UserClickedVendorResultAddToCart?: import("../../../vendor").VendorResult | undefined;
214
214
  VendorBannersChanged?: Omit<import("../../../vendor").VendorBanner, "modelName">[] | undefined;
215
+ UserViewedAVendorBanner?: import("../../../vendor").VendorBanner | undefined;
216
+ UserClickedAVendorBanner?: import("../../../vendor").VendorBanner | undefined;
215
217
  }>;
216
218
  innerCssClasses: import("vue").ComputedRef<(string | Dictionary<boolean>)[]>;
217
219
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
@@ -1 +1 @@
1
- {"version":3,"file":"simple-filter.vue?vue&type=script&lang.d.ts","sourceRoot":"","sources":["../../../../../../../src/x-modules/facets/components/filters/simple-filter.vue?vue&type=script&lang.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,IAAI,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC3E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAA;AACnC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAKnE;;;;GAIG;;IAOC,iCAAiC;;cAEf,QAAQ,CAAC,iBAAiB,CAAC;;;IAG7C,iFAAiF;iBAC1D,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACtD,+BAA+B;;cAEd,QAAQ,CAAC,CAAC,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAT3D,iCAAiC;;cAEf,QAAQ,CAAC,iBAAiB,CAAC;;;IAG7C,iFAAiF;iBAC1D,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACtD,+BAA+B;;cAEd,QAAQ,CAAC,CAAC,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;;;;;;;;AAf/D,wBAsCE"}
1
+ {"version":3,"file":"simple-filter.vue?vue&type=script&lang.d.ts","sourceRoot":"","sources":["../../../../../../../src/x-modules/facets/components/filters/simple-filter.vue?vue&type=script&lang.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,IAAI,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC3E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAA;AACnC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAKnE;;;;GAIG;;IAOC,iCAAiC;;cAEf,QAAQ,CAAC,iBAAiB,CAAC;;;IAG7C,iFAAiF;iBAC1D,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACtD,+BAA+B;;cAEd,QAAQ,CAAC,CAAC,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAT3D,iCAAiC;;cAEf,QAAQ,CAAC,iBAAiB,CAAC;;;IAG7C,iFAAiF;iBAC1D,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACtD,+BAA+B;;cAEd,QAAQ,CAAC,CAAC,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;;;;;;;;AAf/D,wBAsCE"}
@@ -1 +1 @@
1
- {"version":3,"file":"related-prompts-tag-list.vue?vue&type=script&lang.d.ts","sourceRoot":"","sources":["../../../../../../src/x-modules/related-prompts/components/related-prompts-tag-list.vue?vue&type=script&lang.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAA;AAQnC;;;;;;;GAOG;;IAMC;;;;OAIG;;IAEH;;;;OAIG;;;;;IAEH;;;;OAIG;;IAEH;;;;OAIG;;IAEH;;;;;OAKG;eACiB,QAAQ,CAAC,MAAM,EAAE,CAAC;IACtC;;;;OAIG;;;;;;8BAoE8B,MAAM,KAAG,IAAI;wBAiEnB,OAAO;kBAeb,OAAO,QAAQ,MAAM,IAAI;kBAkBzB,OAAO,QAAQ,MAAM,IAAI;;;;;;;;;;;iCAoCq8b,CAAC;sCAAqD,CAAC;8BAA6C,CAAC;;;;;;;;;;;;;IA7Oxlc;;;;OAIG;;IAEH;;;;OAIG;;;;;IAEH;;;;OAIG;;IAEH;;;;OAIG;;IAEH;;;;;OAKG;eACiB,QAAQ,CAAC,MAAM,EAAE,CAAC;IACtC;;;;OAIG;;;;;;;;;;;;;AAxCP,wBAiPE"}
1
+ {"version":3,"file":"related-prompts-tag-list.vue?vue&type=script&lang.d.ts","sourceRoot":"","sources":["../../../../../../src/x-modules/related-prompts/components/related-prompts-tag-list.vue?vue&type=script&lang.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAA;AAQnC;;;;;;;GAOG;;IAMC;;;;OAIG;;IAEH;;;;OAIG;;;;;IAEH;;;;OAIG;;IAEH;;;;OAIG;;IAEH;;;;;OAKG;eACiB,QAAQ,CAAC,MAAM,EAAE,CAAC;IACtC;;;;OAIG;;;;;;8BAoE8B,MAAM,KAAG,IAAI;wBAiEnB,OAAO;kBAeb,OAAO,QAAQ,MAAM,IAAI;kBAkBzB,OAAO,QAAQ,MAAM,IAAI;;;;;;;;;;;iCAoCs9b,CAAC;sCAAqD,CAAC;8BAA6C,CAAC;;;;;;;;;;;;;IA7Ozmc;;;;OAIG;;IAEH;;;;OAIG;;;;;IAEH;;;;OAIG;;IAEH;;;;OAIG;;IAEH;;;;;OAKG;eACiB,QAAQ,CAAC,MAAM,EAAE,CAAC;IACtC;;;;OAIG;;;;;;;;;;;;;AAxCP,wBAiPE"}
@@ -1,5 +1,6 @@
1
1
  import type { Banner as BannerModel } from '@empathyco/x-types';
2
2
  import type { PropType } from 'vue';
3
+ import type { XEvent } from '../../../wiring';
3
4
  /**.
4
5
  * A banner result is just an item that has been inserted into the search results to advertise
5
6
  * something. Usually it is the first item in the grid or it can be placed in the middle of them
@@ -24,6 +25,15 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
24
25
  required: true;
25
26
  };
26
27
  titleClass: StringConstructor;
28
+ /**
29
+ * Event to emit when the banner is clicked.
30
+ *
31
+ * @public
32
+ */
33
+ clickEvent: {
34
+ type: PropType<XEvent>;
35
+ default: string;
36
+ };
27
37
  }>, {
28
38
  imageFailed: import("vue").Ref<boolean, boolean>;
29
39
  anchorEvents: () => Partial<{ [key in keyof GlobalEventHandlersEventMap]: () => void; }>;
@@ -38,6 +48,17 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
38
48
  required: true;
39
49
  };
40
50
  titleClass: StringConstructor;
41
- }>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
51
+ /**
52
+ * Event to emit when the banner is clicked.
53
+ *
54
+ * @public
55
+ */
56
+ clickEvent: {
57
+ type: PropType<XEvent>;
58
+ default: string;
59
+ };
60
+ }>> & Readonly<{}>, {
61
+ clickEvent: keyof import("../../../wiring").XEventsTypes;
62
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
42
63
  export default _default;
43
64
  //# sourceMappingURL=banner.vue?vue&type=script&lang.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"banner.vue?vue&type=script&lang.d.ts","sourceRoot":"","sources":["../../../../../../src/x-modules/search/components/banner.vue?vue&type=script&lang.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAA;AAKnC;;;;;;;;;;;;GAYG;;IAKC;;;;OAIG;;cAEe,QAAQ,CAAC,WAAW,CAAC;;;;;;wBA+Bd,OAAO,CAAC,GAC9B,GAAG,IAAI,MAAM,2BAA2B,GAAG,MAAM,IAAI,GACvD,CAAC;;IAvCF;;;;OAIG;;cAEe,QAAQ,CAAC,WAAW,CAAC;;;;;AAV3C,wBAsDE"}
1
+ {"version":3,"file":"banner.vue?vue&type=script&lang.d.ts","sourceRoot":"","sources":["../../../../../../src/x-modules/search/components/banner.vue?vue&type=script&lang.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAA;AACnC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAK7C;;;;;;;;;;;;GAYG;;IAKC;;;;OAIG;;cAEe,QAAQ,CAAC,WAAW,CAAC;;;;IAIvC;;;;OAIG;;cAEe,QAAQ,CAAC,MAAM,CAAC;;;;;wBA8BT,OAAO,CAAC,GAC9B,GAAG,IAAI,MAAM,2BAA2B,GAAG,MAAM,IAAI,GACvD,CAAC;;IAhDF;;;;OAIG;;cAEe,QAAQ,CAAC,WAAW,CAAC;;;;IAIvC;;;;OAIG;;cAEe,QAAQ,CAAC,MAAM,CAAC;;;;;;AApBtC,wBA+DE"}
@@ -32,5 +32,15 @@ export interface VendorXEvents {
32
32
  * modelName is excluded since it is an internal field, and we will assign it under the hood.
33
33
  */
34
34
  VendorBannersChanged: Omit<VendorBanner, 'modelName'>[];
35
+ /**
36
+ * The user viewed a vendor banner.
37
+ * Payload: The {@link VendorBanner | vendor banner} that was viewed.
38
+ */
39
+ UserViewedAVendorBanner: VendorBanner;
40
+ /**
41
+ * The user clicked on a vendor banner.
42
+ * Payload: The {@link VendorBanner | vendor banner} that was clicked.
43
+ */
44
+ UserClickedAVendorBanner: VendorBanner;
35
45
  }
36
46
  //# sourceMappingURL=events.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"events.types.d.ts","sourceRoot":"","sources":["../../../../../src/x-modules/vendor/events.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAEzD;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,oBAAoB,EAAE,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE,CAAA;IACvD;;;OAGG;IACH,uBAAuB,EAAE,YAAY,CAAA;IACrC;;;OAGG;IACH,wBAAwB,EAAE,YAAY,CAAA;IACtC;;;OAGG;IACH,gCAAgC,EAAE,YAAY,CAAA;IAE9C;;;;OAIG;IACH,oBAAoB,EAAE,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE,CAAA;CACxD"}
1
+ {"version":3,"file":"events.types.d.ts","sourceRoot":"","sources":["../../../../../src/x-modules/vendor/events.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAEzD;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,oBAAoB,EAAE,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE,CAAA;IACvD;;;OAGG;IACH,uBAAuB,EAAE,YAAY,CAAA;IACrC;;;OAGG;IACH,wBAAwB,EAAE,YAAY,CAAA;IACtC;;;OAGG;IACH,gCAAgC,EAAE,YAAY,CAAA;IAE9C;;;;OAIG;IACH,oBAAoB,EAAE,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE,CAAA;IAEvD;;;OAGG;IACH,uBAAuB,EAAE,YAAY,CAAA;IACrC;;;OAGG;IACH,wBAAwB,EAAE,YAAY,CAAA;CACvC"}
@@ -4,6 +4,15 @@ export interface VendorResultTagging {
4
4
  clickUrl: string;
5
5
  add2cartUrl: string;
6
6
  }
7
+ /**
8
+ * The tagging info for a vendor banner.
9
+ *
10
+ * @public
11
+ */
12
+ export interface VendorBannerTagging {
13
+ clickUrl: string;
14
+ viewUrl: string;
15
+ }
7
16
  /**
8
17
  * The interface for a vendor result, extending the base Result interface.
9
18
  */
@@ -17,7 +26,8 @@ export interface VendorResult extends Omit<Result, 'modelName' | 'tagging'>, Nam
17
26
  * - If the position is defined, the banner will be displayed in that position inside the grid.
18
27
  * - If the position is undefined, the banner will be displayed on top of the grid and full width.
19
28
  */
20
- export interface VendorBanner extends Omit<Banner, 'modelName'>, NamedModel<'VendorBanner'> {
29
+ export interface VendorBanner extends Omit<Banner, 'modelName' | 'tagging'>, NamedModel<'VendorBanner'> {
21
30
  position?: number;
31
+ tagging?: VendorBannerTagging;
22
32
  }
23
33
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/x-modules/vendor/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAEpE,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,YACf,SAAQ,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC;IACzE,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,mBAAmB,CAAA;CAC9B;AAED;;;;;GAKG;AACH,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC;IACzF,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/x-modules/vendor/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAEpE,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,YACf,SAAQ,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC;IACzE,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,mBAAmB,CAAA;CAC9B;AAED;;;;;GAKG;AACH,MAAM,WAAW,YACf,SAAQ,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,mBAAmB,CAAA;CAC9B"}
@@ -31,6 +31,12 @@ export declare const vendorWiring: {
31
31
  VendorBannersChanged: {
32
32
  setBanners: import("../../wiring").AnyWire;
33
33
  };
34
+ UserViewedAVendorBanner: {
35
+ trackBannerView: import("../../wiring").Wire<import("./types").VendorBanner>;
36
+ };
37
+ UserClickedAVendorBanner: {
38
+ trackBannerClick: import("../../wiring").Wire<import("./types").VendorBanner>;
39
+ };
34
40
  SearchRequestChanged: {
35
41
  resetResults: import("../../wiring").AnyWire;
36
42
  resetBanners: import("../../wiring").AnyWire;
@@ -1 +1 @@
1
- {"version":3,"file":"wiring.d.ts","sourceRoot":"","sources":["../../../../../src/x-modules/vendor/wiring.ts"],"names":[],"mappings":"AAqBA;;;;GAIG;AACH,eAAO,MAAM,UAAU,gCAOtB,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,UAAU,gCAOtB,CAAA;AAgBD;;;;GAIG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;CAoBvB,CAAA"}
1
+ {"version":3,"file":"wiring.d.ts","sourceRoot":"","sources":["../../../../../src/x-modules/vendor/wiring.ts"],"names":[],"mappings":"AA2BA;;;;GAIG;AACH,eAAO,MAAM,UAAU,gCAOtB,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,UAAU,gCAOtB,CAAA;AAgBD;;;;GAIG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;CA0BvB,CAAA"}