@empathyco/x-components 6.0.0-alpha.90 → 6.0.0-alpha.91

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.
@@ -653,6 +653,7 @@ X-Components is a library usable everywhere not only for search experiences.
653
653
  | [trackNoResultsQueryWithFallbackWireDebounced](./x-components.tracknoresultsquerywithfallbackwiredebounced.md) | . Debounced version of [trackNoResultsQueryWithFallbackWire](./x-components.tracknoresultsquerywithfallbackwire.md) |
654
654
  | [trackNoResultsQueryWithSemanticsWire](./x-components.tracknoresultsquerywithsemanticswire.md) | Performs a track of a query with no results that used semantic queries as fallback. The totalHits will be changed to -1 if semantic queries are found in order to differentiate it from scenarios where the user encounters a no-results page without any semantic queries. |
655
655
  | [trackNoResultsQueryWithSemanticsWireDebounced](./x-components.tracknoresultsquerywithsemanticswiredebounced.md) | Debounced version of [trackNoResultsQueryWithFallbackWire](./x-components.tracknoresultsquerywithfallbackwire.md) |
656
+ | [trackPromotedClickedWire](./x-components.trackpromotedclickedwire.md) | Tracks the click on a promoted result. |
656
657
  | [trackQueryWire](./x-components.trackquerywire.md) | Tracks the tagging of the query. |
657
658
  | [trackRelatedPromptToolingDisplayClickWire](./x-components.trackrelatedprompttoolingdisplayclickwire.md) | Performs a track of a clicked related prompt. |
658
659
  | [trackResultClickedWire](./x-components.trackresultclickedwire.md) | Tracks the tagging of the result. |
@@ -18,7 +18,7 @@ _default: import("vue").DefineComponent<{
18
18
  };
19
19
  titleClass: StringConstructor;
20
20
  }, {
21
- emitClickEvent: () => void;
21
+ emitUserClickedAPromoted: () => void;
22
22
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
23
23
  promoted: {
24
24
  type: PropType<PromotedModel>;
@@ -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; [trackPromotedClickedWire](./x-components.trackpromotedclickedwire.md)
4
+
5
+ ## trackPromotedClickedWire variable
6
+
7
+ Tracks the click on a promoted result.
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ trackPromotedClickedWire: Wire<Taggable>
13
+ ```
package/js/index.js CHANGED
@@ -420,7 +420,7 @@ export { DefaultExternalTaggingService } from './x-modules/tagging/service/exter
420
420
  export { track } from './x-modules/tagging/store/actions/track.action.js';
421
421
  export { taggingEmitters } from './x-modules/tagging/store/emitters.js';
422
422
  export { taggingXStoreModule } from './x-modules/tagging/store/module.js';
423
- export { createSetQueryTaggingFromQueryPreview, createTrackDisplayWire, createTrackRelatedPromptToolingDisplayClickWire, createTrackToolingAdd2CartWire, createTrackToolingDisplayWire, createTrackWire, setConsent, setNoResultsTaggingEnabledWire, setQueryTaggingFromQueryPreview, setQueryTaggingInfo, setTaggingConfig, taggingWiring, trackAddToCartWire, trackBannerClickedWire, trackDisplayClickedWire, trackElementDisplayedWire, trackNoResultsQueryWithFallbackWire, trackNoResultsQueryWithFallbackWireDebounced, trackNoResultsQueryWithSemanticsWire, trackNoResultsQueryWithSemanticsWireDebounced, trackQueryWire, trackRelatedPromptToolingDisplayClickWire, trackResultClickedWire, trackToolingAdd2CartWire, trackToolingDisplayClickedWire } from './x-modules/tagging/wiring.js';
423
+ export { createSetQueryTaggingFromQueryPreview, createTrackDisplayWire, createTrackRelatedPromptToolingDisplayClickWire, createTrackToolingAdd2CartWire, createTrackToolingDisplayWire, createTrackWire, setConsent, setNoResultsTaggingEnabledWire, setQueryTaggingFromQueryPreview, setQueryTaggingInfo, setTaggingConfig, taggingWiring, trackAddToCartWire, trackBannerClickedWire, trackDisplayClickedWire, trackElementDisplayedWire, trackNoResultsQueryWithFallbackWire, trackNoResultsQueryWithFallbackWireDebounced, trackNoResultsQueryWithSemanticsWire, trackNoResultsQueryWithSemanticsWireDebounced, trackPromotedClickedWire, trackQueryWire, trackRelatedPromptToolingDisplayClickWire, trackResultClickedWire, trackToolingAdd2CartWire, trackToolingDisplayClickedWire } from './x-modules/tagging/wiring.js';
424
424
  export { taggingXModule } from './x-modules/tagging/x-module.js';
425
425
  export { default as UrlHandler } from './x-modules/url/components/url-handler.vue.js';
426
426
  export { replaceableParams, urlEmitters } from './x-modules/url/store/emitters.js';
@@ -1,5 +1,5 @@
1
1
  import _sfc_main from './promoted.vue2.js';
2
- import { openBlock, createElementBlock, createElementVNode, normalizeClass, toDisplayString } from 'vue';
2
+ import { openBlock, createElementBlock, withModifiers, createElementVNode, normalizeClass, toDisplayString } from 'vue';
3
3
  import './promoted.vue3.js';
4
4
  import _export_sfc from '../../../_virtual/_plugin-vue_export-helper.js';
5
5
 
@@ -10,7 +10,9 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
10
10
  href: _ctx.promoted.url,
11
11
  class: "x-promoted",
12
12
  "data-test": "promoted",
13
- onClick: _cache[0] || (_cache[0] = (...args) => _ctx.emitClickEvent && _ctx.emitClickEvent(...args))
13
+ onClick: _cache[0] || (_cache[0] = (...args) => _ctx.emitUserClickedAPromoted && _ctx.emitUserClickedAPromoted(...args)),
14
+ onContextmenu: _cache[1] || (_cache[1] = withModifiers((...args) => _ctx.emitUserClickedAPromoted && _ctx.emitUserClickedAPromoted(...args), ["right"])),
15
+ onMouseup: _cache[2] || (_cache[2] = withModifiers((...args) => _ctx.emitUserClickedAPromoted && _ctx.emitUserClickedAPromoted(...args), ["middle"]))
14
16
  }, [
15
17
  createElementVNode("img", {
16
18
  src: _ctx.promoted.image,
@@ -27,7 +29,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
27
29
  3
28
30
  /* TEXT, CLASS */
29
31
  )
30
- ], 8, _hoisted_1);
32
+ ], 40, _hoisted_1);
31
33
  }
32
34
  var promoted = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-4a8fc4b3"]]);
33
35
 
@@ -1 +1 @@
1
- {"version":3,"file":"promoted.vue.js","sources":["../../../../../src/x-modules/search/components/promoted.vue"],"sourcesContent":["<template>\n <a :href=\"promoted.url\" class=\"x-promoted\" data-test=\"promoted\" @click=\"emitClickEvent\">\n <img :src=\"promoted.image\" class=\"x-promoted__image\" :alt=\"promoted.title\" />\n <h2 class=\"x-promoted__title\" :class=\"titleClass\" data-test=\"promoted-title\">\n {{ promoted.title }}\n </h2>\n </a>\n</template>\n\n<script lang=\"ts\">\nimport type { Promoted as PromotedModel } from '@empathyco/x-types'\nimport type { PropType } from 'vue'\nimport { defineComponent } from 'vue'\nimport { useXBus } from '../../../composables/use-x-bus'\nimport { searchXModule } from '../x-module'\n\n/**\n * A promoted result is just an item that has been inserted into the search results to advertise\n * something. Usually it is one of the first items in the grid, and has the same shape as a\n * result. It just contains a link to the promoted content, an image, and a title.\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: 'Promoted',\n xModule: searchXModule.name,\n props: {\n /**\n * The promoted data.\n *\n * @public\n */\n promoted: {\n type: Object as PropType<PromotedModel>,\n required: true,\n },\n titleClass: String,\n },\n setup(props) {\n const xBus = useXBus()\n\n /**\n * Emits the promoted click event.\n *\n * @internal\n */\n const emitClickEvent = () => {\n xBus.emit('UserClickedAPromoted', props.promoted)\n }\n\n return {\n emitClickEvent,\n }\n },\n})\n</script>\n\n<style lang=\"css\" scoped>\n.x-promoted {\n display: flex;\n flex-flow: column nowrap;\n text-decoration: none;\n}\n\n.x-promoted__image {\n width: 100%;\n object-fit: contain;\n}\n</style>\n\n<docs lang=\"mdx\">\n## Events\n\nThis component doesn't emit events.\n\n## See it in action\n\nIn this example promoted data is passed as a prop.\n\n_Here you can see how the `Promoted` component is rendered._\n\n```vue\n<template>\n <Promoted :promoted=\"promoted\" />\n</template>\n\n<script>\nimport { Promoted } from '@empathyco/x-components/search'\n\nexport default {\n name: 'PromotedDemo',\n components: {\n Promoted,\n },\n data() {\n return {\n promoted: {\n modelName: 'Promoted',\n id: 'promoted-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 }\n },\n}\n</script>\n```\n\n### Customizing the items with classes\n\nThe `titleClass` prop can be used to add classes to the promoted title.\n\n```vue\n<template>\n <Promoted :promoted=\"promoted\" titleClass=\"x-bg-neutral-50\" />\n</template>\n\n<script>\nimport { Promoted } from '@empathyco/x-components/search'\n\nexport default {\n name: 'PromotedDemo',\n components: {\n Promoted,\n },\n data() {\n return {\n promoted: {\n modelName: 'Promoted',\n id: 'promoted-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 }\n },\n}\n</script>\n```\n</docs>\n"],"names":["promoted","_openBlock","_createElementBlock","_createElementVNode","_normalizeClass"],"mappings":";;;;;;;AACU,SAAA,WAAA,CAAEA,IAAY,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,KAAA,EAAA,QAAA,EAAA;AAAO,EAAA,OAAAC,SAAA,EAAa,EAAAC,kBAAA,CAAA,GAAA,EAAA;AAAA,IAAC,WAAS,QAAC,CAAA,GAAA;AAAA,IAAY,KAAK,EAAA,YAAA;AAAA,IAAA,WAAA,EAAA,UAAA;IACpE,OAA6E,EAAA,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,GAAA,IAAA,KAAA,IAAA,CAAA,cAAA,IAAA,IAAA,CAAA,cAAA,CAAA,GAAA,IAAA,CAAA,CAAA;AAAA,GAAA,EAAA;AAA5C,IAAAC,kBAAA,CAAA,KAAA,EAAA;AAAA,MAAqB,KAAKH,IAAS,CAAA,QAAA,CAAA,KAAA;AAAA,MAAA,KAAA,EAAA,mBAAA;MACpE,GAEK,EAAA,IAAA,CAAA,QAAA,CAAA,KAAA;AAAA,KAAA,EAFD,MAHR,CAGc,EAAA,UAAA,CAAA;AAAA,IAAAG,kBAAA;AAAkD,MAAA,IAAA;AAAA,MAAA;AAAA,QAAA,KAAA,EAAAC,cAAA,CACvDJ,CAAc,mBAAA,EAAA,IAAA,CAAA,UAAA,CAAA,CAAA;AAAA,QAAA,WAAA,EAAA,gBAAA;;;;;;;;;;;;"}
1
+ {"version":3,"file":"promoted.vue.js","sources":["../../../../../src/x-modules/search/components/promoted.vue"],"sourcesContent":["<template>\n <a\n :href=\"promoted.url\"\n class=\"x-promoted\"\n data-test=\"promoted\"\n @click=\"emitUserClickedAPromoted\"\n @click.right=\"emitUserClickedAPromoted\"\n @click.middle=\"emitUserClickedAPromoted\"\n >\n <img :src=\"promoted.image\" class=\"x-promoted__image\" :alt=\"promoted.title\" />\n <h2 class=\"x-promoted__title\" :class=\"titleClass\" data-test=\"promoted-title\">\n {{ promoted.title }}\n </h2>\n </a>\n</template>\n\n<script lang=\"ts\">\nimport type { Promoted as PromotedModel } from '@empathyco/x-types'\nimport type { PropType } from 'vue'\nimport { defineComponent } from 'vue'\nimport { useXBus } from '../../../composables/use-x-bus'\nimport { searchXModule } from '../x-module'\n\n/**\n * A promoted result is just an item that has been inserted into the search results to advertise\n * something. Usually it is one of the first items in the grid, and has the same shape as a\n * result. It just contains a link to the promoted content, an image, and a title.\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: 'Promoted',\n xModule: searchXModule.name,\n props: {\n /**\n * The promoted data.\n *\n * @public\n */\n promoted: {\n type: Object as PropType<PromotedModel>,\n required: true,\n },\n titleClass: String,\n },\n setup(props) {\n const xBus = useXBus()\n\n /**\n * Emits the promoted click event.\n *\n * @internal\n */\n const emitUserClickedAPromoted = () => {\n xBus.emit('UserClickedAPromoted', props.promoted)\n }\n\n return {\n emitUserClickedAPromoted,\n }\n },\n})\n</script>\n\n<style lang=\"css\" scoped>\n.x-promoted {\n display: flex;\n flex-flow: column nowrap;\n text-decoration: none;\n}\n\n.x-promoted__image {\n width: 100%;\n object-fit: contain;\n}\n</style>\n\n<docs lang=\"mdx\">\n## Events\n\nThis component doesn't emit events.\n\n## See it in action\n\nIn this example promoted data is passed as a prop.\n\n_Here you can see how the `Promoted` component is rendered._\n\n```vue\n<template>\n <Promoted :promoted=\"promoted\" />\n</template>\n\n<script>\nimport { Promoted } from '@empathyco/x-components/search'\n\nexport default {\n name: 'PromotedDemo',\n components: {\n Promoted,\n },\n data() {\n return {\n promoted: {\n modelName: 'Promoted',\n id: 'promoted-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 }\n },\n}\n</script>\n```\n\n### Customizing the items with classes\n\nThe `titleClass` prop can be used to add classes to the promoted title.\n\n```vue\n<template>\n <Promoted :promoted=\"promoted\" titleClass=\"x-bg-neutral-50\" />\n</template>\n\n<script>\nimport { Promoted } from '@empathyco/x-components/search'\n\nexport default {\n name: 'PromotedDemo',\n components: {\n Promoted,\n },\n data() {\n return {\n promoted: {\n modelName: 'Promoted',\n id: 'promoted-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 }\n },\n}\n</script>\n```\n</docs>\n"],"names":["promoted","_openBlock","_createElementBlock","_withModifiers","_createElementVNode","_normalizeClass"],"mappings":";;;;;;;AAES,SAAA,WAAA,CAAEA,IAAY,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,KAAA,EAAA,QAAA,EAAA;AACd,EAAA,OAAAC,SAAA,EAAa,EAAAC,kBAAA,CAAA,GAAA,EAAA;AAAA,IAClB,WAAS,QAAC,CAAA,GAAA;AAAA,IACT,KAAK,EAAA,YAAA;AAAA,IALV,WAAA,EAAA,UAAA;AAAA,IAOmB,OAAA,EAAA,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,GAAA,IAAA,KAAA,IAAA,CAAA,wBAAA,IAAA,IAAA,CAAA,wBAAA,CAAA,GAAA,IAAA,CAAA,CAAA;AAAA,IAAA,aAAA,EAAA,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAAC,aAAA,CAAA,CAAA,GAAA,IAAA,KAAA,IAAA,CAAA,wBAAA,IAAA,IAAA,CAAA,wBAAA,CAAA,GAAA,IAAA,CAAA,EAAA,CAAA,OAAA,CAAA,CAAA,CAAA;IAEf,SAA6E,EAAA,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAAA,aAAA,CAAA,CAAA,GAAA,IAAA,KAAA,IAAA,CAAA,wBAAA,IAAA,IAAA,CAAA,wBAAA,CAAA,GAAA,IAAA,CAAA,EAAA,CAAA,QAAA,CAAA,CAAA,CAAA;AAAA,GAAA,EAAA;AAA5C,IAAAC,kBAAA,CAAA,KAAA,EAAA;AAAA,MAAqB,KAAKJ,IAAS,CAAA,QAAA,CAAA,KAAA;AAAA,MAAA,KAAA,EAAA,mBAAA;MACpE,GAEK,EAAA,IAAA,CAAA,QAAA,CAAA,KAAA;AAAA,KAAA,EAFD,MAVR,CAUc,EAAA,UAAA,CAAA;AAAA,IAAAI,kBAAA;AAAkD,MAAA,IAAA;AAAA,MAAA;AAAA,QAAA,KAAA,EAAAC,cAAA,CACvDL,CAAc,mBAAA,EAAA,IAAA,CAAA,UAAA,CAAA,CAAA;AAAA,QAAA,WAAA,EAAA,gBAAA;;;;;;;;;;;;"}
@@ -34,11 +34,11 @@ var _sfc_main = defineComponent({
34
34
  *
35
35
  * @internal
36
36
  */
37
- const emitClickEvent = () => {
37
+ const emitUserClickedAPromoted = () => {
38
38
  xBus.emit('UserClickedAPromoted', props.promoted);
39
39
  };
40
40
  return {
41
- emitClickEvent,
41
+ emitUserClickedAPromoted,
42
42
  };
43
43
  },
44
44
  });
@@ -1 +1 @@
1
- {"version":3,"file":"promoted.vue2.js","sources":["../../../../../src/x-modules/search/components/promoted.vue"],"sourcesContent":["<template>\n <a :href=\"promoted.url\" class=\"x-promoted\" data-test=\"promoted\" @click=\"emitClickEvent\">\n <img :src=\"promoted.image\" class=\"x-promoted__image\" :alt=\"promoted.title\" />\n <h2 class=\"x-promoted__title\" :class=\"titleClass\" data-test=\"promoted-title\">\n {{ promoted.title }}\n </h2>\n </a>\n</template>\n\n<script lang=\"ts\">\nimport type { Promoted as PromotedModel } from '@empathyco/x-types'\nimport type { PropType } from 'vue'\nimport { defineComponent } from 'vue'\nimport { useXBus } from '../../../composables/use-x-bus'\nimport { searchXModule } from '../x-module'\n\n/**\n * A promoted result is just an item that has been inserted into the search results to advertise\n * something. Usually it is one of the first items in the grid, and has the same shape as a\n * result. It just contains a link to the promoted content, an image, and a title.\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: 'Promoted',\n xModule: searchXModule.name,\n props: {\n /**\n * The promoted data.\n *\n * @public\n */\n promoted: {\n type: Object as PropType<PromotedModel>,\n required: true,\n },\n titleClass: String,\n },\n setup(props) {\n const xBus = useXBus()\n\n /**\n * Emits the promoted click event.\n *\n * @internal\n */\n const emitClickEvent = () => {\n xBus.emit('UserClickedAPromoted', props.promoted)\n }\n\n return {\n emitClickEvent,\n }\n },\n})\n</script>\n\n<style lang=\"css\" scoped>\n.x-promoted {\n display: flex;\n flex-flow: column nowrap;\n text-decoration: none;\n}\n\n.x-promoted__image {\n width: 100%;\n object-fit: contain;\n}\n</style>\n\n<docs lang=\"mdx\">\n## Events\n\nThis component doesn't emit events.\n\n## See it in action\n\nIn this example promoted data is passed as a prop.\n\n_Here you can see how the `Promoted` component is rendered._\n\n```vue\n<template>\n <Promoted :promoted=\"promoted\" />\n</template>\n\n<script>\nimport { Promoted } from '@empathyco/x-components/search'\n\nexport default {\n name: 'PromotedDemo',\n components: {\n Promoted,\n },\n data() {\n return {\n promoted: {\n modelName: 'Promoted',\n id: 'promoted-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 }\n },\n}\n</script>\n```\n\n### Customizing the items with classes\n\nThe `titleClass` prop can be used to add classes to the promoted title.\n\n```vue\n<template>\n <Promoted :promoted=\"promoted\" titleClass=\"x-bg-neutral-50\" />\n</template>\n\n<script>\nimport { Promoted } from '@empathyco/x-components/search'\n\nexport default {\n name: 'PromotedDemo',\n components: {\n Promoted,\n },\n data() {\n return {\n promoted: {\n modelName: 'Promoted',\n id: 'promoted-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 }\n },\n}\n</script>\n```\n</docs>\n"],"names":[],"mappings":";;;;AAgBA;;;;;;;;;AASE;AACF,gBAAe,eAAe,CAAC;AAC7B,IAAA,IAAI,EAAE,UAAU;IAChB,OAAO,EAAE,aAAa,CAAC,IAAI;AAC3B,IAAA,KAAK,EAAE;AACL;;;;AAIE;AACF,QAAA,QAAQ,EAAE;AACR,YAAA,IAAI,EAAE,MAAiC;AACvC,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,CAAA;AAErB;;;;AAIE;QACF,MAAM,iBAAiB,MAAM;YAC3B,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,KAAK,CAAC,QAAQ,CAAA,CAAA;AAClD,SAAA,CAAA;QAEA,OAAO;YACL,cAAc;SAChB,CAAA;KACD;AACF,CAAA,CAAA;;;;"}
1
+ {"version":3,"file":"promoted.vue2.js","sources":["../../../../../src/x-modules/search/components/promoted.vue"],"sourcesContent":["<template>\n <a\n :href=\"promoted.url\"\n class=\"x-promoted\"\n data-test=\"promoted\"\n @click=\"emitUserClickedAPromoted\"\n @click.right=\"emitUserClickedAPromoted\"\n @click.middle=\"emitUserClickedAPromoted\"\n >\n <img :src=\"promoted.image\" class=\"x-promoted__image\" :alt=\"promoted.title\" />\n <h2 class=\"x-promoted__title\" :class=\"titleClass\" data-test=\"promoted-title\">\n {{ promoted.title }}\n </h2>\n </a>\n</template>\n\n<script lang=\"ts\">\nimport type { Promoted as PromotedModel } from '@empathyco/x-types'\nimport type { PropType } from 'vue'\nimport { defineComponent } from 'vue'\nimport { useXBus } from '../../../composables/use-x-bus'\nimport { searchXModule } from '../x-module'\n\n/**\n * A promoted result is just an item that has been inserted into the search results to advertise\n * something. Usually it is one of the first items in the grid, and has the same shape as a\n * result. It just contains a link to the promoted content, an image, and a title.\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: 'Promoted',\n xModule: searchXModule.name,\n props: {\n /**\n * The promoted data.\n *\n * @public\n */\n promoted: {\n type: Object as PropType<PromotedModel>,\n required: true,\n },\n titleClass: String,\n },\n setup(props) {\n const xBus = useXBus()\n\n /**\n * Emits the promoted click event.\n *\n * @internal\n */\n const emitUserClickedAPromoted = () => {\n xBus.emit('UserClickedAPromoted', props.promoted)\n }\n\n return {\n emitUserClickedAPromoted,\n }\n },\n})\n</script>\n\n<style lang=\"css\" scoped>\n.x-promoted {\n display: flex;\n flex-flow: column nowrap;\n text-decoration: none;\n}\n\n.x-promoted__image {\n width: 100%;\n object-fit: contain;\n}\n</style>\n\n<docs lang=\"mdx\">\n## Events\n\nThis component doesn't emit events.\n\n## See it in action\n\nIn this example promoted data is passed as a prop.\n\n_Here you can see how the `Promoted` component is rendered._\n\n```vue\n<template>\n <Promoted :promoted=\"promoted\" />\n</template>\n\n<script>\nimport { Promoted } from '@empathyco/x-components/search'\n\nexport default {\n name: 'PromotedDemo',\n components: {\n Promoted,\n },\n data() {\n return {\n promoted: {\n modelName: 'Promoted',\n id: 'promoted-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 }\n },\n}\n</script>\n```\n\n### Customizing the items with classes\n\nThe `titleClass` prop can be used to add classes to the promoted title.\n\n```vue\n<template>\n <Promoted :promoted=\"promoted\" titleClass=\"x-bg-neutral-50\" />\n</template>\n\n<script>\nimport { Promoted } from '@empathyco/x-components/search'\n\nexport default {\n name: 'PromotedDemo',\n components: {\n Promoted,\n },\n data() {\n return {\n promoted: {\n modelName: 'Promoted',\n id: 'promoted-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 }\n },\n}\n</script>\n```\n</docs>\n"],"names":[],"mappings":";;;;AAuBA;;;;;;;;;AASE;AACF,gBAAe,eAAe,CAAC;AAC7B,IAAA,IAAI,EAAE,UAAU;IAChB,OAAO,EAAE,aAAa,CAAC,IAAI;AAC3B,IAAA,KAAK,EAAE;AACL;;;;AAIE;AACF,QAAA,QAAQ,EAAE;AACR,YAAA,IAAI,EAAE,MAAiC;AACvC,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,CAAA;AAErB;;;;AAIE;QACF,MAAM,wBAAyB,GAAE,MAAM;YACrC,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,KAAK,CAAC,QAAQ,CAAA,CAAA;AAClD,SAAA,CAAA;QAEA,OAAO;YACL,wBAAwB;SAC1B,CAAA;KACD;AACF,CAAA,CAAA;;;;"}
@@ -129,6 +129,12 @@ const trackResultClickedWire = createTrackWire('click');
129
129
  * @public
130
130
  */
131
131
  const trackBannerClickedWire = createTrackWire('click');
132
+ /**
133
+ * Tracks the click on a promoted result.
134
+ *
135
+ * @public
136
+ */
137
+ const trackPromotedClickedWire = createTrackWire('click');
132
138
  /**
133
139
  * Performs a track of a result added to the cart.
134
140
  *
@@ -364,6 +370,9 @@ const taggingWiring = createWiring({
364
370
  UserClickedABanner: {
365
371
  trackBannerClickedWire,
366
372
  },
373
+ UserClickedAPromoted: {
374
+ trackPromotedClickedWire,
375
+ },
367
376
  UserClickedADisplayResult: {
368
377
  trackDisplayClickedWire,
369
378
  setQueryTaggingFromQueryPreview,
@@ -388,5 +397,5 @@ const taggingWiring = createWiring({
388
397
  },
389
398
  });
390
399
 
391
- export { createSetQueryTaggingFromQueryPreview, createTrackDisplayWire, createTrackRelatedPromptToolingDisplayClickWire, createTrackToolingAdd2CartWire, createTrackToolingDisplayWire, createTrackWire, setConsent, setNoResultsTaggingEnabledWire, setQueryTaggingFromQueryPreview, setQueryTaggingInfo, setTaggingConfig, taggingWiring, trackAddToCartWire, trackBannerClickedWire, trackDisplayClickedWire, trackElementDisplayedWire, trackNoResultsQueryWithFallbackWire, trackNoResultsQueryWithFallbackWireDebounced, trackNoResultsQueryWithSemanticsWire, trackNoResultsQueryWithSemanticsWireDebounced, trackQueryWire, trackRelatedPromptToolingDisplayClickWire, trackResultClickedWire, trackToolingAdd2CartWire, trackToolingDisplayClickedWire };
400
+ export { createSetQueryTaggingFromQueryPreview, createTrackDisplayWire, createTrackRelatedPromptToolingDisplayClickWire, createTrackToolingAdd2CartWire, createTrackToolingDisplayWire, createTrackWire, setConsent, setNoResultsTaggingEnabledWire, setQueryTaggingFromQueryPreview, setQueryTaggingInfo, setTaggingConfig, taggingWiring, trackAddToCartWire, trackBannerClickedWire, trackDisplayClickedWire, trackElementDisplayedWire, trackNoResultsQueryWithFallbackWire, trackNoResultsQueryWithFallbackWireDebounced, trackNoResultsQueryWithSemanticsWire, trackNoResultsQueryWithSemanticsWireDebounced, trackPromotedClickedWire, trackQueryWire, trackRelatedPromptToolingDisplayClickWire, trackResultClickedWire, trackToolingAdd2CartWire, trackToolingDisplayClickedWire };
392
401
  //# sourceMappingURL=wiring.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wiring.js","sources":["../../../../src/x-modules/tagging/wiring.ts"],"sourcesContent":["import type {\n RelatedPrompt,\n Result,\n SemanticQuery,\n Taggable,\n Tagging,\n TaggingRequest,\n} from '@empathyco/x-types'\nimport type { FeatureLocation } from '../../types/index'\nimport type { DisplayWireMetadata, Wire } from '../../wiring/wiring.types'\nimport { DefaultSessionService } from '@empathyco/x-utils'\nimport { createOrigin } from '../../utils/index'\nimport { namespacedWireCommit, namespacedWireDispatch } from '../../wiring/namespaced-wires.factory'\nimport { namespacedDebounce } from '../../wiring/namespaced-wires.operators'\nimport { wireService, wireServiceWithoutPayload } from '../../wiring/wires.factory'\nimport { filter, mapWire } from '../../wiring/wires.operators'\nimport { createWiring } from '../../wiring/wiring.utils'\nimport { DefaultExternalTaggingService } from './service/external-tagging.service'\n\n/**\n * `tagging` {@link XModuleName | XModule name}.\n *\n * @internal\n */\nconst moduleName = 'tagging'\n\n/**\n * Debounce function for the module.\n */\nconst moduleDebounce = namespacedDebounce(moduleName)\n\n/**\n * WireCommit for {@link TaggingXModule}.\n *\n * @internal\n */\nconst wireCommit = namespacedWireCommit(moduleName)\n\n/**\n * WireDispatch for {@link TaggingXModule}.\n *\n * @internal\n */\nconst wireDispatch = namespacedWireDispatch(moduleName)\n\n/**\n * Wires without payload factory for {@link DefaultSessionService}.\n */\nconst wireSessionServiceWithoutPayload = wireServiceWithoutPayload(DefaultSessionService.instance)\n\n/**\n * Wires factory for {@link DefaultExternalTaggingService}.\n */\nconst wireExternalTaggingService = wireService(DefaultExternalTaggingService.instance)\n\n/**\n * Stores the given result on the local storage.\n *\n * @public\n */\nconst storeClickedResultWire = wireExternalTaggingService('storeResultClicked')\n\n/**\n * Stores the result added to cart on the local storage.\n *\n * @public\n */\nconst storeAddToCartWire = wireExternalTaggingService('storeAddToCart')\n\n/**\n * Moves the result information from the local storage to session storage.\n *\n * @public\n */\nconst moveClickedResultToSessionWire = mapWire(\n wireExternalTaggingService('moveToSessionStorage'),\n (payload: string) => {\n return payload === 'url' ? undefined : payload\n },\n)\n\n/**\n * Triggers the add to cart tracking.\n *\n * @public\n */\nconst trackAddToCartFromSessionStorage = wireExternalTaggingService('trackAddToCart')\n\n/**\n * Clears the session id.\n *\n * @public\n */\nconst clearSessionWire = filter(\n wireSessionServiceWithoutPayload('clearSessionId'),\n ({ eventPayload: consent }) => !consent,\n)\n\n/**\n * Sets the tagging state `consent`.\n *\n * @public\n */\nexport const setConsent = wireCommit('setConsent')\n\n/**\n * Sets the tagging state `noResultsTaggingEnabled`.\n *\n * @public\n */\nexport const setNoResultsTaggingEnabledWire = wireCommit('setNoResultsTaggingEnabled')\n\n/**\n * Sets the tagging config state.\n *\n * @public\n */\nexport const setTaggingConfig = wireCommit('mergeConfig')\n\n/**\n * Tracks the tagging of the query.\n *\n * @public\n */\nexport const trackQueryWire = filter(\n wireDispatch('track'),\n ({ eventPayload, store }) =>\n ((eventPayload as TaggingRequest).params.totalHits as number) > 0 ||\n !store.state.x.tagging.noResultsTaggingEnabled,\n)\n\n/**\n * Sets the tagging state of the query tagging info using a debounce which ends if the user\n * accepts a query.\n *\n * @public\n */\nexport const setQueryTaggingInfo = moduleDebounce(\n wireCommit('setQueryTaggingInfo'),\n ({ state }) => state.config.queryTaggingDebounceMs,\n {\n cancelOn: 'UserClearedQuery',\n forceOn: [\n 'UserClickedAResult',\n 'UserClickedAPromoted',\n 'UserClickedABanner',\n 'UserClickedARedirection',\n 'UserReachedResultsListEnd',\n ],\n },\n)\n\n/**\n * Sets the tagging state of the query tagging info using.\n *\n * @public\n */\nexport const setQueryTaggingFromQueryPreview = createSetQueryTaggingFromQueryPreview()\n\n/**\n * Tracks the tagging of the result.\n *\n * @public\n */\nexport const trackResultClickedWire = createTrackWire('click')\n\n/**\n * Tracks the tagging of the banner.\n *\n * @public\n */\nexport const trackBannerClickedWire = createTrackWire('click')\n\n/**\n * Performs a track of a result added to the cart.\n *\n * @public\n */\nexport const trackAddToCartWire = createTrackWire('add2cart')\n\n/**\n * Performs a track of a display result being clicked.\n *\n * @public\n */\nexport const trackDisplayClickedWire = createTrackDisplayWire('displayClick')\n\n/**\n * Performs a track of a display result being clicked.\n *\n * @public\n */\nexport const trackToolingDisplayClickedWire = createTrackToolingDisplayWire()\n\n/**\n * Performs a track of a display result being clicked.\n *\n * @public\n */\nexport const trackToolingAdd2CartWire = createTrackToolingAdd2CartWire()\n\n/**\n * Performs a track of a clicked related prompt.\n *\n * @public\n */\nexport const trackRelatedPromptToolingDisplayClickWire =\n createTrackRelatedPromptToolingDisplayClickWire()\n\n/**\n * Performs a track of a display element appearing.\n *\n * @public\n */\nexport const trackElementDisplayedWire = createTrackDisplayWire('display')\n\n/**\n * Factory helper to create a wire for the track of a taggable element.\n *\n * @param property - Key of the tagging object to track.\n * @returns A new wire for the given property of the taggable element.\n *\n * @public\n */\nexport function createTrackWire(property: keyof Tagging): Wire<Taggable> {\n return filter(\n wireDispatch('track', ({ eventPayload: { tagging }, metadata: { location } }) => {\n const taggingInfo: TaggingRequest = tagging[property]\n taggingInfo.params.location = location as string\n return taggingInfo\n }),\n ({ eventPayload: { tagging }, metadata: { ignoreInModules } }) =>\n // eslint-disable-next-line ts/no-unsafe-member-access\n !!tagging?.[property] && !ignoreInModules?.includes(moduleName),\n )\n}\n\n/**\n * Performs a track of a query with no results that used related prompts or semantic queries as fallback.\n * The totalHits will be changed to -1 if related prompts or semantic queries are found in order to differentiate\n * it from scenarios where the user encounters a no-results page without any related prompts or semantic queries.\n *\n * @public\n */\nexport const trackNoResultsQueryWithFallbackWire = filter(\n wireDispatch('track', ({ eventPayload, state }) => {\n const { queryTaggingInfo } = state\n const totalHits = (eventPayload as RelatedPrompt[] | SemanticQuery[]).length > 0 ? -1 : 0\n return {\n params: { ...queryTaggingInfo?.params, totalHits },\n url: queryTaggingInfo?.url ?? '',\n }\n }),\n ({ store }) => Number(store.state.x.tagging.queryTaggingInfo?.params.totalHits) === 0,\n)\n\n/**.\n * Debounced version of {@link trackNoResultsQueryWithFallbackWire}\n *\n * @public\n */\nexport const trackNoResultsQueryWithFallbackWireDebounced = moduleDebounce(\n trackNoResultsQueryWithFallbackWire,\n ({ state }) => state.config.queryTaggingDebounceMs,\n { cancelOn: ['QueryPreviewUnmounted', 'RelatedPromptsUnmounted'] },\n)\n\n/**\n * Performs a track of a query with no results that used semantic queries as fallback.\n * The totalHits will be changed to -1 if semantic queries are found in order to differentiate\n * it from scenarios where the user encounters a no-results page without any semantic queries.\n *\n * @public\n * @deprecated - Use {@link trackNoResultsQueryWithFallbackWire} instead.\n */\nexport const trackNoResultsQueryWithSemanticsWire = trackNoResultsQueryWithFallbackWire\n\n/**\n * Debounced version of {@link trackNoResultsQueryWithFallbackWire}\n *\n * @public\n * @deprecated - Use {@link trackNoResultsQueryWithFallbackWireDebounced} instead.\n */\nexport const trackNoResultsQueryWithSemanticsWireDebounced =\n trackNoResultsQueryWithFallbackWireDebounced\n\n/**\n * Factory helper to create a wire for the track of the display click.\n *\n * @param property - Key of the tagging object to track.\n * @returns A new wire for the display click of the taggable element.\n *\n * @public\n */\nexport function createTrackDisplayWire(property: keyof Tagging): Wire<Taggable> {\n return filter(\n wireDispatch('track', ({ eventPayload: { tagging }, metadata }) => {\n const taggingInfo: TaggingRequest = tagging[property]\n const location = metadata.location as FeatureLocation\n\n taggingInfo.params.location = location\n taggingInfo.params.displayFamily = createOrigin({\n feature: metadata.feature,\n location,\n })!\n taggingInfo.params.q = (metadata as DisplayWireMetadata).displayOriginalQuery\n\n return taggingInfo\n }),\n // eslint-disable-next-line ts/no-unsafe-member-access\n ({ eventPayload: { tagging } }) => !!tagging?.[property]?.url,\n )\n}\n\n/**\n * Update the tooling tagging params with the result information.\n *\n * @param taggingRequest - The tooling tagging request to be updated.\n * @param result - The clicked result.\n * @returns The tagging request updated.\n *\n * @internal\n */\nfunction updateToolingTaggingWithResult(\n taggingRequest: TaggingRequest,\n result: Result,\n): TaggingRequest {\n taggingRequest.params.productId = result.id\n taggingRequest.params.title = result.name!\n taggingRequest.params.url = result.url!\n\n return taggingRequest\n}\n\n/**\n * Factory helper to create a wire for the track of the tooling display click.\n *\n * @returns A new wire for the tooling display click of the taggable element.\n *\n * @public\n */\nexport function createTrackToolingDisplayWire(): Wire<Taggable> {\n return filter(\n wireDispatch('track', ({ eventPayload, metadata }) => {\n const taggingInfo: TaggingRequest = metadata.toolingTagging as TaggingRequest\n const resultInfo = eventPayload as Result\n\n updateToolingTaggingWithResult(taggingInfo, resultInfo)\n\n return taggingInfo\n }),\n ({ metadata }) => !!metadata?.toolingTagging,\n )\n}\n\n/**\n * Factory helper to create a wire for the track of the tooling display add to cart.\n *\n * @returns A new wire for the tooling display add to cart of the taggable element.\n *\n * @public\n */\nexport function createTrackToolingAdd2CartWire(): Wire<Taggable> {\n return filter(\n wireDispatch('track', ({ eventPayload, metadata }) => {\n const taggingInfo: TaggingRequest = metadata.toolingAdd2CartTagging as TaggingRequest\n const resultInfo = eventPayload as Result\n\n updateToolingTaggingWithResult(taggingInfo, resultInfo)\n\n return taggingInfo\n }),\n ({ metadata }) => !!metadata?.toolingAdd2CartTagging,\n )\n}\n\n/**\n * Factory helper to create a wire for the track of the tooling display click in a related prompt.\n *\n * @returns A new wire for the tooling display click of the taggable element.\n *\n * @public\n */\nexport function createTrackRelatedPromptToolingDisplayClickWire() {\n return filter(\n wireDispatch('track', ({ metadata }) => {\n const relatedPrompt = metadata.relatedPrompt as RelatedPrompt\n const taggingInfo = relatedPrompt.tagging!.toolingDisplayClickTagging as TaggingRequest\n\n taggingInfo.params.productId = 'EXPAND'\n taggingInfo.params.title = relatedPrompt.suggestionText\n taggingInfo.params.url = 'none'\n\n return taggingInfo\n }),\n ({ metadata }) => {\n const relatedPrompt = metadata.relatedPrompt as RelatedPrompt | undefined\n const isUnselected = metadata?.selectedPrompt === -1\n const taggingInfo = relatedPrompt?.tagging?.toolingDisplayClickTagging\n return isUnselected && !!taggingInfo\n },\n )\n}\n\n/**\n * Factory helper to create a wire to set the queryTagging.\n *\n * @returns A new wire for the query of a result of a queryPreview.\n *\n * @public\n */\nexport function createSetQueryTaggingFromQueryPreview(): Wire<Taggable> {\n return filter(\n wireCommit(\n 'setQueryTaggingInfo',\n ({ metadata: { queryTagging } }) => queryTagging as TaggingRequest,\n ),\n ({ metadata: { queryTagging } }) => !!queryTagging,\n )\n}\n\n/**\n * Wiring configuration for the {@link TaggingXModule | tagging module}.\n *\n * @internal\n */\nexport const taggingWiring = createWiring({\n ConsentProvided: {\n setConsent,\n },\n ConsentChanged: {\n clearSessionWire,\n },\n PDPIsLoaded: {\n moveClickedResultToSessionWire,\n },\n ResultURLTrackingEnabled: {\n moveClickedResultToSessionWire,\n },\n SearchTaggingChanged: {\n setQueryTaggingInfo,\n },\n SearchTaggingReceived: {\n trackQueryWire,\n },\n TrackableElementDisplayed: {\n trackElementDisplayedWire,\n },\n TaggingConfigProvided: {\n setTaggingConfig,\n },\n UserClickedAResult: {\n trackResultClickedWire,\n storeClickedResultWire,\n },\n UserClickedResultAddToCart: {\n trackAddToCartWire,\n trackResultClickedWire,\n storeAddToCartWire,\n },\n UserClickedPDPAddToCart: {\n trackAddToCartFromSessionStorage,\n },\n UserClickedABanner: {\n trackBannerClickedWire,\n },\n UserClickedADisplayResult: {\n trackDisplayClickedWire,\n setQueryTaggingFromQueryPreview,\n },\n SemanticQueriesResponseChanged: {\n trackNoResultsQueryWithFallbackWireDebounced,\n },\n RelatedPromptsResponseChanged: {\n trackNoResultsQueryWithFallbackWireDebounced,\n },\n ModuleRegistered: {\n setNoResultsTaggingEnabledWire,\n },\n UserClickedARelatedPromptResult: {\n trackToolingDisplayClickedWire,\n },\n UserClickedARelatedPromptAdd2Cart: {\n trackToolingAdd2CartWire,\n },\n UserSelectedARelatedPrompt: {\n trackRelatedPromptToolingDisplayClickWire,\n },\n})\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wiring.js","sources":["../../../../src/x-modules/tagging/wiring.ts"],"sourcesContent":["import type {\n RelatedPrompt,\n Result,\n SemanticQuery,\n Taggable,\n Tagging,\n TaggingRequest,\n} from '@empathyco/x-types'\nimport type { FeatureLocation } from '../../types/index'\nimport type { DisplayWireMetadata, Wire } from '../../wiring/wiring.types'\nimport { DefaultSessionService } from '@empathyco/x-utils'\nimport { createOrigin } from '../../utils/index'\nimport { namespacedWireCommit, namespacedWireDispatch } from '../../wiring/namespaced-wires.factory'\nimport { namespacedDebounce } from '../../wiring/namespaced-wires.operators'\nimport { wireService, wireServiceWithoutPayload } from '../../wiring/wires.factory'\nimport { filter, mapWire } from '../../wiring/wires.operators'\nimport { createWiring } from '../../wiring/wiring.utils'\nimport { DefaultExternalTaggingService } from './service/external-tagging.service'\n\n/**\n * `tagging` {@link XModuleName | XModule name}.\n *\n * @internal\n */\nconst moduleName = 'tagging'\n\n/**\n * Debounce function for the module.\n */\nconst moduleDebounce = namespacedDebounce(moduleName)\n\n/**\n * WireCommit for {@link TaggingXModule}.\n *\n * @internal\n */\nconst wireCommit = namespacedWireCommit(moduleName)\n\n/**\n * WireDispatch for {@link TaggingXModule}.\n *\n * @internal\n */\nconst wireDispatch = namespacedWireDispatch(moduleName)\n\n/**\n * Wires without payload factory for {@link DefaultSessionService}.\n */\nconst wireSessionServiceWithoutPayload = wireServiceWithoutPayload(DefaultSessionService.instance)\n\n/**\n * Wires factory for {@link DefaultExternalTaggingService}.\n */\nconst wireExternalTaggingService = wireService(DefaultExternalTaggingService.instance)\n\n/**\n * Stores the given result on the local storage.\n *\n * @public\n */\nconst storeClickedResultWire = wireExternalTaggingService('storeResultClicked')\n\n/**\n * Stores the result added to cart on the local storage.\n *\n * @public\n */\nconst storeAddToCartWire = wireExternalTaggingService('storeAddToCart')\n\n/**\n * Moves the result information from the local storage to session storage.\n *\n * @public\n */\nconst moveClickedResultToSessionWire = mapWire(\n wireExternalTaggingService('moveToSessionStorage'),\n (payload: string) => {\n return payload === 'url' ? undefined : payload\n },\n)\n\n/**\n * Triggers the add to cart tracking.\n *\n * @public\n */\nconst trackAddToCartFromSessionStorage = wireExternalTaggingService('trackAddToCart')\n\n/**\n * Clears the session id.\n *\n * @public\n */\nconst clearSessionWire = filter(\n wireSessionServiceWithoutPayload('clearSessionId'),\n ({ eventPayload: consent }) => !consent,\n)\n\n/**\n * Sets the tagging state `consent`.\n *\n * @public\n */\nexport const setConsent = wireCommit('setConsent')\n\n/**\n * Sets the tagging state `noResultsTaggingEnabled`.\n *\n * @public\n */\nexport const setNoResultsTaggingEnabledWire = wireCommit('setNoResultsTaggingEnabled')\n\n/**\n * Sets the tagging config state.\n *\n * @public\n */\nexport const setTaggingConfig = wireCommit('mergeConfig')\n\n/**\n * Tracks the tagging of the query.\n *\n * @public\n */\nexport const trackQueryWire = filter(\n wireDispatch('track'),\n ({ eventPayload, store }) =>\n ((eventPayload as TaggingRequest).params.totalHits as number) > 0 ||\n !store.state.x.tagging.noResultsTaggingEnabled,\n)\n\n/**\n * Sets the tagging state of the query tagging info using a debounce which ends if the user\n * accepts a query.\n *\n * @public\n */\nexport const setQueryTaggingInfo = moduleDebounce(\n wireCommit('setQueryTaggingInfo'),\n ({ state }) => state.config.queryTaggingDebounceMs,\n {\n cancelOn: 'UserClearedQuery',\n forceOn: [\n 'UserClickedAResult',\n 'UserClickedAPromoted',\n 'UserClickedABanner',\n 'UserClickedARedirection',\n 'UserReachedResultsListEnd',\n ],\n },\n)\n\n/**\n * Sets the tagging state of the query tagging info using.\n *\n * @public\n */\nexport const setQueryTaggingFromQueryPreview = createSetQueryTaggingFromQueryPreview()\n\n/**\n * Tracks the tagging of the result.\n *\n * @public\n */\nexport const trackResultClickedWire = createTrackWire('click')\n\n/**\n * Tracks the tagging of the banner.\n *\n * @public\n */\nexport const trackBannerClickedWire = createTrackWire('click')\n\n/**\n * Tracks the click on a promoted result.\n *\n * @public\n */\nexport const trackPromotedClickedWire = createTrackWire('click')\n\n/**\n * Performs a track of a result added to the cart.\n *\n * @public\n */\nexport const trackAddToCartWire = createTrackWire('add2cart')\n\n/**\n * Performs a track of a display result being clicked.\n *\n * @public\n */\nexport const trackDisplayClickedWire = createTrackDisplayWire('displayClick')\n\n/**\n * Performs a track of a display result being clicked.\n *\n * @public\n */\nexport const trackToolingDisplayClickedWire = createTrackToolingDisplayWire()\n\n/**\n * Performs a track of a display result being clicked.\n *\n * @public\n */\nexport const trackToolingAdd2CartWire = createTrackToolingAdd2CartWire()\n\n/**\n * Performs a track of a clicked related prompt.\n *\n * @public\n */\nexport const trackRelatedPromptToolingDisplayClickWire =\n createTrackRelatedPromptToolingDisplayClickWire()\n\n/**\n * Performs a track of a display element appearing.\n *\n * @public\n */\nexport const trackElementDisplayedWire = createTrackDisplayWire('display')\n\n/**\n * Factory helper to create a wire for the track of a taggable element.\n *\n * @param property - Key of the tagging object to track.\n * @returns A new wire for the given property of the taggable element.\n *\n * @public\n */\nexport function createTrackWire(property: keyof Tagging): Wire<Taggable> {\n return filter(\n wireDispatch('track', ({ eventPayload: { tagging }, metadata: { location } }) => {\n const taggingInfo: TaggingRequest = tagging[property]\n taggingInfo.params.location = location as string\n return taggingInfo\n }),\n ({ eventPayload: { tagging }, metadata: { ignoreInModules } }) =>\n // eslint-disable-next-line ts/no-unsafe-member-access\n !!tagging?.[property] && !ignoreInModules?.includes(moduleName),\n )\n}\n\n/**\n * Performs a track of a query with no results that used related prompts or semantic queries as fallback.\n * The totalHits will be changed to -1 if related prompts or semantic queries are found in order to differentiate\n * it from scenarios where the user encounters a no-results page without any related prompts or semantic queries.\n *\n * @public\n */\nexport const trackNoResultsQueryWithFallbackWire = filter(\n wireDispatch('track', ({ eventPayload, state }) => {\n const { queryTaggingInfo } = state\n const totalHits = (eventPayload as RelatedPrompt[] | SemanticQuery[]).length > 0 ? -1 : 0\n return {\n params: { ...queryTaggingInfo?.params, totalHits },\n url: queryTaggingInfo?.url ?? '',\n }\n }),\n ({ store }) => Number(store.state.x.tagging.queryTaggingInfo?.params.totalHits) === 0,\n)\n\n/**.\n * Debounced version of {@link trackNoResultsQueryWithFallbackWire}\n *\n * @public\n */\nexport const trackNoResultsQueryWithFallbackWireDebounced = moduleDebounce(\n trackNoResultsQueryWithFallbackWire,\n ({ state }) => state.config.queryTaggingDebounceMs,\n { cancelOn: ['QueryPreviewUnmounted', 'RelatedPromptsUnmounted'] },\n)\n\n/**\n * Performs a track of a query with no results that used semantic queries as fallback.\n * The totalHits will be changed to -1 if semantic queries are found in order to differentiate\n * it from scenarios where the user encounters a no-results page without any semantic queries.\n *\n * @public\n * @deprecated - Use {@link trackNoResultsQueryWithFallbackWire} instead.\n */\nexport const trackNoResultsQueryWithSemanticsWire = trackNoResultsQueryWithFallbackWire\n\n/**\n * Debounced version of {@link trackNoResultsQueryWithFallbackWire}\n *\n * @public\n * @deprecated - Use {@link trackNoResultsQueryWithFallbackWireDebounced} instead.\n */\nexport const trackNoResultsQueryWithSemanticsWireDebounced =\n trackNoResultsQueryWithFallbackWireDebounced\n\n/**\n * Factory helper to create a wire for the track of the display click.\n *\n * @param property - Key of the tagging object to track.\n * @returns A new wire for the display click of the taggable element.\n *\n * @public\n */\nexport function createTrackDisplayWire(property: keyof Tagging): Wire<Taggable> {\n return filter(\n wireDispatch('track', ({ eventPayload: { tagging }, metadata }) => {\n const taggingInfo: TaggingRequest = tagging[property]\n const location = metadata.location as FeatureLocation\n\n taggingInfo.params.location = location\n taggingInfo.params.displayFamily = createOrigin({\n feature: metadata.feature,\n location,\n })!\n taggingInfo.params.q = (metadata as DisplayWireMetadata).displayOriginalQuery\n\n return taggingInfo\n }),\n // eslint-disable-next-line ts/no-unsafe-member-access\n ({ eventPayload: { tagging } }) => !!tagging?.[property]?.url,\n )\n}\n\n/**\n * Update the tooling tagging params with the result information.\n *\n * @param taggingRequest - The tooling tagging request to be updated.\n * @param result - The clicked result.\n * @returns The tagging request updated.\n *\n * @internal\n */\nfunction updateToolingTaggingWithResult(\n taggingRequest: TaggingRequest,\n result: Result,\n): TaggingRequest {\n taggingRequest.params.productId = result.id\n taggingRequest.params.title = result.name!\n taggingRequest.params.url = result.url!\n\n return taggingRequest\n}\n\n/**\n * Factory helper to create a wire for the track of the tooling display click.\n *\n * @returns A new wire for the tooling display click of the taggable element.\n *\n * @public\n */\nexport function createTrackToolingDisplayWire(): Wire<Taggable> {\n return filter(\n wireDispatch('track', ({ eventPayload, metadata }) => {\n const taggingInfo: TaggingRequest = metadata.toolingTagging as TaggingRequest\n const resultInfo = eventPayload as Result\n\n updateToolingTaggingWithResult(taggingInfo, resultInfo)\n\n return taggingInfo\n }),\n ({ metadata }) => !!metadata?.toolingTagging,\n )\n}\n\n/**\n * Factory helper to create a wire for the track of the tooling display add to cart.\n *\n * @returns A new wire for the tooling display add to cart of the taggable element.\n *\n * @public\n */\nexport function createTrackToolingAdd2CartWire(): Wire<Taggable> {\n return filter(\n wireDispatch('track', ({ eventPayload, metadata }) => {\n const taggingInfo: TaggingRequest = metadata.toolingAdd2CartTagging as TaggingRequest\n const resultInfo = eventPayload as Result\n\n updateToolingTaggingWithResult(taggingInfo, resultInfo)\n\n return taggingInfo\n }),\n ({ metadata }) => !!metadata?.toolingAdd2CartTagging,\n )\n}\n\n/**\n * Factory helper to create a wire for the track of the tooling display click in a related prompt.\n *\n * @returns A new wire for the tooling display click of the taggable element.\n *\n * @public\n */\nexport function createTrackRelatedPromptToolingDisplayClickWire() {\n return filter(\n wireDispatch('track', ({ metadata }) => {\n const relatedPrompt = metadata.relatedPrompt as RelatedPrompt\n const taggingInfo = relatedPrompt.tagging!.toolingDisplayClickTagging as TaggingRequest\n\n taggingInfo.params.productId = 'EXPAND'\n taggingInfo.params.title = relatedPrompt.suggestionText\n taggingInfo.params.url = 'none'\n\n return taggingInfo\n }),\n ({ metadata }) => {\n const relatedPrompt = metadata.relatedPrompt as RelatedPrompt | undefined\n const isUnselected = metadata?.selectedPrompt === -1\n const taggingInfo = relatedPrompt?.tagging?.toolingDisplayClickTagging\n return isUnselected && !!taggingInfo\n },\n )\n}\n\n/**\n * Factory helper to create a wire to set the queryTagging.\n *\n * @returns A new wire for the query of a result of a queryPreview.\n *\n * @public\n */\nexport function createSetQueryTaggingFromQueryPreview(): Wire<Taggable> {\n return filter(\n wireCommit(\n 'setQueryTaggingInfo',\n ({ metadata: { queryTagging } }) => queryTagging as TaggingRequest,\n ),\n ({ metadata: { queryTagging } }) => !!queryTagging,\n )\n}\n\n/**\n * Wiring configuration for the {@link TaggingXModule | tagging module}.\n *\n * @internal\n */\nexport const taggingWiring = createWiring({\n ConsentProvided: {\n setConsent,\n },\n ConsentChanged: {\n clearSessionWire,\n },\n PDPIsLoaded: {\n moveClickedResultToSessionWire,\n },\n ResultURLTrackingEnabled: {\n moveClickedResultToSessionWire,\n },\n SearchTaggingChanged: {\n setQueryTaggingInfo,\n },\n SearchTaggingReceived: {\n trackQueryWire,\n },\n TrackableElementDisplayed: {\n trackElementDisplayedWire,\n },\n TaggingConfigProvided: {\n setTaggingConfig,\n },\n UserClickedAResult: {\n trackResultClickedWire,\n storeClickedResultWire,\n },\n UserClickedResultAddToCart: {\n trackAddToCartWire,\n trackResultClickedWire,\n storeAddToCartWire,\n },\n UserClickedPDPAddToCart: {\n trackAddToCartFromSessionStorage,\n },\n UserClickedABanner: {\n trackBannerClickedWire,\n },\n UserClickedAPromoted: {\n trackPromotedClickedWire,\n },\n UserClickedADisplayResult: {\n trackDisplayClickedWire,\n setQueryTaggingFromQueryPreview,\n },\n SemanticQueriesResponseChanged: {\n trackNoResultsQueryWithFallbackWireDebounced,\n },\n RelatedPromptsResponseChanged: {\n trackNoResultsQueryWithFallbackWireDebounced,\n },\n ModuleRegistered: {\n setNoResultsTaggingEnabledWire,\n },\n UserClickedARelatedPromptResult: {\n trackToolingDisplayClickedWire,\n },\n UserClickedARelatedPromptAdd2Cart: {\n trackToolingAdd2CartWire,\n },\n UserSelectedARelatedPrompt: {\n trackRelatedPromptToolingDisplayClickWire,\n },\n})\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@empathyco/x-components",
3
- "version": "6.0.0-alpha.90",
3
+ "version": "6.0.0-alpha.91",
4
4
  "description": "Empathy X Components",
5
5
  "author": "Empathy Systems Corporation S.L.",
6
6
  "license": "Apache-2.0",
@@ -143,5 +143,5 @@
143
143
  "access": "public",
144
144
  "directory": "dist"
145
145
  },
146
- "gitHead": "f689c490f6a5c1a29fd4664064dc22fc01970f30"
146
+ "gitHead": "9f59471df2efad4821a9e5482620b13896403a47"
147
147
  }
@@ -45898,7 +45898,7 @@
45898
45898
  },
45899
45899
  {
45900
45900
  "kind": "Content",
45901
- "text": ";\n}, {\n emitClickEvent: () => void;\n}, unknown, {}, {}, import(\"vue\")."
45901
+ "text": ";\n}, {\n emitUserClickedAPromoted: () => void;\n}, unknown, {}, {}, import(\"vue\")."
45902
45902
  },
45903
45903
  {
45904
45904
  "kind": "Reference",
@@ -75433,6 +75433,43 @@
75433
75433
  "endIndex": 3
75434
75434
  }
75435
75435
  },
75436
+ {
75437
+ "kind": "Variable",
75438
+ "canonicalReference": "@empathyco/x-components!trackPromotedClickedWire:var",
75439
+ "docComment": "/**\n * Tracks the click on a promoted result.\n *\n * @public\n */\n",
75440
+ "excerptTokens": [
75441
+ {
75442
+ "kind": "Content",
75443
+ "text": "trackPromotedClickedWire: "
75444
+ },
75445
+ {
75446
+ "kind": "Reference",
75447
+ "text": "Wire",
75448
+ "canonicalReference": "@empathyco/x-components!Wire:type"
75449
+ },
75450
+ {
75451
+ "kind": "Content",
75452
+ "text": "<"
75453
+ },
75454
+ {
75455
+ "kind": "Reference",
75456
+ "text": "Taggable",
75457
+ "canonicalReference": "@empathyco/x-components!Taggable:interface"
75458
+ },
75459
+ {
75460
+ "kind": "Content",
75461
+ "text": ">"
75462
+ }
75463
+ ],
75464
+ "fileUrlPath": "src/x-modules/tagging/wiring.ts",
75465
+ "isReadonly": true,
75466
+ "releaseTag": "Public",
75467
+ "name": "trackPromotedClickedWire",
75468
+ "variableTypeTokenRange": {
75469
+ "startIndex": 1,
75470
+ "endIndex": 5
75471
+ }
75472
+ },
75436
75473
  {
75437
75474
  "kind": "Variable",
75438
75475
  "canonicalReference": "@empathyco/x-components!trackQueryWire:var",
@@ -5180,7 +5180,7 @@ required: true;
5180
5180
  };
5181
5181
  titleClass: StringConstructor;
5182
5182
  }, {
5183
- emitClickEvent: () => void;
5183
+ emitUserClickedAPromoted: () => void;
5184
5184
  }, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<ExtractPropTypes< {
5185
5185
  promoted: {
5186
5186
  type: PropType<Promoted_2>;
@@ -8370,6 +8370,9 @@ export const taggingWiring: {
8370
8370
  UserClickedABanner: {
8371
8371
  trackBannerClickedWire: Wire<Taggable>;
8372
8372
  };
8373
+ UserClickedAPromoted: {
8374
+ trackPromotedClickedWire: Wire<Taggable>;
8375
+ };
8373
8376
  UserClickedADisplayResult: {
8374
8377
  trackDisplayClickedWire: Wire<Taggable>;
8375
8378
  setQueryTaggingFromQueryPreview: Wire<Taggable>;
@@ -8487,6 +8490,9 @@ export const trackNoResultsQueryWithSemanticsWire: Wire<any>;
8487
8490
  // @public @deprecated
8488
8491
  export const trackNoResultsQueryWithSemanticsWireDebounced: Wire<any>;
8489
8492
 
8493
+ // @public
8494
+ export const trackPromotedClickedWire: Wire<Taggable>;
8495
+
8490
8496
  // @public
8491
8497
  export const trackQueryWire: Wire<TaggingRequest | TaggingRequest[]>;
8492
8498
 
package/tagging/index.js CHANGED
@@ -3,5 +3,5 @@ export { DefaultExternalTaggingService } from '../js/x-modules/tagging/service/e
3
3
  export { track } from '../js/x-modules/tagging/store/actions/track.action.js';
4
4
  export { taggingEmitters } from '../js/x-modules/tagging/store/emitters.js';
5
5
  export { taggingXStoreModule } from '../js/x-modules/tagging/store/module.js';
6
- export { createSetQueryTaggingFromQueryPreview, createTrackDisplayWire, createTrackRelatedPromptToolingDisplayClickWire, createTrackToolingAdd2CartWire, createTrackToolingDisplayWire, createTrackWire, setConsent, setNoResultsTaggingEnabledWire, setQueryTaggingFromQueryPreview, setQueryTaggingInfo, setTaggingConfig, taggingWiring, trackAddToCartWire, trackBannerClickedWire, trackDisplayClickedWire, trackElementDisplayedWire, trackNoResultsQueryWithFallbackWire, trackNoResultsQueryWithFallbackWireDebounced, trackNoResultsQueryWithSemanticsWire, trackNoResultsQueryWithSemanticsWireDebounced, trackQueryWire, trackRelatedPromptToolingDisplayClickWire, trackResultClickedWire, trackToolingAdd2CartWire, trackToolingDisplayClickedWire } from '../js/x-modules/tagging/wiring.js';
6
+ export { createSetQueryTaggingFromQueryPreview, createTrackDisplayWire, createTrackRelatedPromptToolingDisplayClickWire, createTrackToolingAdd2CartWire, createTrackToolingDisplayWire, createTrackWire, setConsent, setNoResultsTaggingEnabledWire, setQueryTaggingFromQueryPreview, setQueryTaggingInfo, setTaggingConfig, taggingWiring, trackAddToCartWire, trackBannerClickedWire, trackDisplayClickedWire, trackElementDisplayedWire, trackNoResultsQueryWithFallbackWire, trackNoResultsQueryWithFallbackWireDebounced, trackNoResultsQueryWithSemanticsWire, trackNoResultsQueryWithSemanticsWireDebounced, trackPromotedClickedWire, trackQueryWire, trackRelatedPromptToolingDisplayClickWire, trackResultClickedWire, trackToolingAdd2CartWire, trackToolingDisplayClickedWire } from '../js/x-modules/tagging/wiring.js';
7
7
  export { taggingXModule } from '../js/x-modules/tagging/x-module.js';
@@ -22,7 +22,7 @@ declare const _default: import("vue").DefineComponent<{
22
22
  };
23
23
  titleClass: StringConstructor;
24
24
  }, {
25
- emitClickEvent: () => void;
25
+ emitUserClickedAPromoted: () => void;
26
26
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
27
27
  /**
28
28
  * The promoted data.
@@ -49,6 +49,12 @@ export declare const trackResultClickedWire: Wire<Taggable>;
49
49
  * @public
50
50
  */
51
51
  export declare const trackBannerClickedWire: Wire<Taggable>;
52
+ /**
53
+ * Tracks the click on a promoted result.
54
+ *
55
+ * @public
56
+ */
57
+ export declare const trackPromotedClickedWire: Wire<Taggable>;
52
58
  /**
53
59
  * Performs a track of a result added to the cart.
54
60
  *
@@ -210,6 +216,9 @@ export declare const taggingWiring: {
210
216
  UserClickedABanner: {
211
217
  trackBannerClickedWire: Wire<Taggable>;
212
218
  };
219
+ UserClickedAPromoted: {
220
+ trackPromotedClickedWire: Wire<Taggable>;
221
+ };
213
222
  UserClickedADisplayResult: {
214
223
  trackDisplayClickedWire: Wire<Taggable>;
215
224
  setQueryTaggingFromQueryPreview: Wire<Taggable>;
@@ -1 +1 @@
1
- {"version":3,"file":"wiring.d.ts","sourceRoot":"","sources":["../../../../src/x-modules/tagging/wiring.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,MAAM,EAEN,QAAQ,EACR,OAAO,EACP,cAAc,EACf,MAAM,oBAAoB,CAAA;AAE3B,OAAO,KAAK,EAAuB,IAAI,EAAE,MAAM,2BAA2B,CAAA;AAyF1E;;;;GAIG;AACH,eAAO,MAAM,UAAU,eAA2B,CAAA;AAElD;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,uDAA2C,CAAA;AAEtF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,8CAA4B,CAAA;AAEzD;;;;GAIG;AACH,eAAO,MAAM,cAAc,yCAK1B,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,sBAa/B,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,+BAA+B,gBAA0C,CAAA;AAEtF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,gBAA2B,CAAA;AAE9D;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,gBAA2B,CAAA;AAE9D;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,gBAA8B,CAAA;AAE7D;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,gBAAyC,CAAA;AAE7E;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,gBAAkC,CAAA;AAE7E;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,gBAAmC,CAAA;AAExE;;;;GAIG;AACH,eAAO,MAAM,yCAAyC,WACH,CAAA;AAEnD;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,gBAAoC,CAAA;AAE1E;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAWvE;AAED;;;;;;GAMG;AACH,eAAO,MAAM,mCAAmC,WAU/C,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,4CAA4C,WAIxD,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,oCAAoC,WAAsC,CAAA;AAEvF;;;;;GAKG;AACH,eAAO,MAAM,6CAA6C,WACZ,CAAA;AAE9C;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAkB9E;AAsBD;;;;;;GAMG;AACH,wBAAgB,6BAA6B,IAAI,IAAI,CAAC,QAAQ,CAAC,CAY9D;AAED;;;;;;GAMG;AACH,wBAAgB,8BAA8B,IAAI,IAAI,CAAC,QAAQ,CAAC,CAY/D;AAED;;;;;;GAMG;AACH,wBAAgB,+CAA+C,cAmB9D;AAED;;;;;;GAMG;AACH,wBAAgB,qCAAqC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAQtE;AAED;;;;GAIG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8DxB,CAAA"}
1
+ {"version":3,"file":"wiring.d.ts","sourceRoot":"","sources":["../../../../src/x-modules/tagging/wiring.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,MAAM,EAEN,QAAQ,EACR,OAAO,EACP,cAAc,EACf,MAAM,oBAAoB,CAAA;AAE3B,OAAO,KAAK,EAAuB,IAAI,EAAE,MAAM,2BAA2B,CAAA;AAyF1E;;;;GAIG;AACH,eAAO,MAAM,UAAU,eAA2B,CAAA;AAElD;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,uDAA2C,CAAA;AAEtF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,8CAA4B,CAAA;AAEzD;;;;GAIG;AACH,eAAO,MAAM,cAAc,yCAK1B,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,sBAa/B,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,+BAA+B,gBAA0C,CAAA;AAEtF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,gBAA2B,CAAA;AAE9D;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,gBAA2B,CAAA;AAE9D;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,gBAA2B,CAAA;AAEhE;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,gBAA8B,CAAA;AAE7D;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,gBAAyC,CAAA;AAE7E;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,gBAAkC,CAAA;AAE7E;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,gBAAmC,CAAA;AAExE;;;;GAIG;AACH,eAAO,MAAM,yCAAyC,WACH,CAAA;AAEnD;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,gBAAoC,CAAA;AAE1E;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAWvE;AAED;;;;;;GAMG;AACH,eAAO,MAAM,mCAAmC,WAU/C,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,4CAA4C,WAIxD,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,oCAAoC,WAAsC,CAAA;AAEvF;;;;;GAKG;AACH,eAAO,MAAM,6CAA6C,WACZ,CAAA;AAE9C;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAkB9E;AAsBD;;;;;;GAMG;AACH,wBAAgB,6BAA6B,IAAI,IAAI,CAAC,QAAQ,CAAC,CAY9D;AAED;;;;;;GAMG;AACH,wBAAgB,8BAA8B,IAAI,IAAI,CAAC,QAAQ,CAAC,CAY/D;AAED;;;;;;GAMG;AACH,wBAAgB,+CAA+C,cAmB9D;AAED;;;;;;GAMG;AACH,wBAAgB,qCAAqC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAQtE;AAED;;;;GAIG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiExB,CAAA"}