vue-instantsearch 4.18.0 → 4.19.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 (35) hide show
  1. package/package.json +5 -5
  2. package/src/__tests__/common-widgets.test.js +2 -6
  3. package/src/components/Hits.js +13 -1
  4. package/src/components/InfiniteHits.vue +32 -0
  5. package/src/components/__tests__/Hits.js +45 -0
  6. package/src/components/__tests__/InfiniteHits.js +74 -0
  7. package/src/components/__tests__/__snapshots__/InfiniteHits.js.snap +94 -0
  8. package/src/util/__tests__/createServerRootMixin.test.js +12 -8
  9. package/src/util/__tests__/renderCompat.test.js +52 -0
  10. package/src/util/vue-compat/index-vue2.js +17 -0
  11. package/vue2/cjs/index.js +1 -1
  12. package/vue2/cjs/index.js.map +1 -1
  13. package/vue2/es/package.json.js +1 -1
  14. package/vue2/es/src/components/Hits.js +1 -1
  15. package/vue2/es/src/components/Hits.js.map +1 -1
  16. package/vue2/es/src/components/InfiniteHits.vue.js +1 -1
  17. package/vue2/es/src/components/InfiniteHits.vue_rollup-plugin-vue=script.js +1 -1
  18. package/vue2/es/src/util/vue-compat/index-vue2.js +1 -1
  19. package/vue2/es/src/util/vue-compat/index-vue2.js.map +1 -1
  20. package/vue2/umd/index.js +1 -1
  21. package/vue2/umd/index.js.map +1 -1
  22. package/vue3/cjs/index.js +1 -1
  23. package/vue3/cjs/index.js.map +1 -1
  24. package/vue3/es/package.json.js +1 -1
  25. package/vue3/es/src/components/Hits.js +1 -1
  26. package/vue3/es/src/components/Hits.js.map +1 -1
  27. package/vue3/es/src/components/InfiniteHits.vue.js +1 -1
  28. package/vue3/es/src/components/InfiniteHits.vue_vue&type=script&lang.js +1 -1
  29. package/vue3/es/src/components/InfiniteHits.vue_vue&type=script&lang.js.map +1 -1
  30. package/vue3/es/src/components/InfiniteHits.vue_vue&type=template&id=31c7998c&lang.js +2 -0
  31. package/vue3/es/src/components/InfiniteHits.vue_vue&type=template&id=31c7998c&lang.js.map +1 -0
  32. package/vue3/umd/index.js +1 -1
  33. package/vue3/umd/index.js.map +1 -1
  34. package/vue3/es/src/components/InfiniteHits.vue_vue&type=template&id=1b2a109e&lang.js +0 -2
  35. package/vue3/es/src/components/InfiniteHits.vue_vue&type=template&id=1b2a109e&lang.js.map +0 -1
@@ -1,2 +1,2 @@
1
- var r="4.18.0";export{r as version};
1
+ var r="4.19.0";export{r as version};
2
2
  //# sourceMappingURL=package.json.js.map
@@ -1,2 +1,2 @@
1
- import{createSuitMixin as t}from"../mixins/suit.js";import{renderCompat as s,getScopedSlot as e}from"../util/vue-compat/index-vue3.js";import{createWidgetMixin as i}from"../mixins/widget.js";import{connectHitsWithInsights as n}from"instantsearch.js/es/connectors/index.js";import{createHitsComponent as a}from"instantsearch-ui-components";export default{name:"AisHits",mixins:[i({connector:n},{$$widgetType:"ais.hits"}),t({name:"Hits"})],props:{escapeHTML:{type:Boolean,default:!0},transformItems:{type:Function,default:void 0}},computed:{widgetParams:function(){return{escapeHTML:this.escapeHTML,transformItems:this.transformItems}}},render:s(function(t){var s=this;if(!this.state)return null;var i=e(this,"default"),n=e(this,"item");return!n&&i?t("div",{attrs:{class:this.suit()}},[i({items:this.state.items,insights:this.state.insights,sendEvent:this.state.sendEvent})]):t(a({createElement:t}),{hits:this.state.items,itemComponent:function(e){var i=e.hit,a=e.index,r=e.onClick,o=e.onAuxClick,m=(e.key,function(t,s){var e={};for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&-1===s.indexOf(i)&&(e[i]=t[i]);return e}(e,["hit","index","onClick","onAuxClick","key"]));return t("li",{key:i.objectID,attrs:m,on:{click:r,auxclick:o}},[n&&n({item:i,index:a,insights:s.state.insights,sendEvent:s.state.sendEvent})||"objectID: "+i.objectID+", index: "+a])},sendEvent:this.state.sendEvent,classNames:this.classNames&&{root:this.classNames["ais-Hits"],list:this.classNames["ais-Hits-list"],item:this.classNames["ais-Hits-item"]}})})};
1
+ import{createSuitMixin as t}from"../mixins/suit.js";import{renderCompat as s,getScopedSlot as e}from"../util/vue-compat/index-vue3.js";import{createWidgetMixin as i}from"../mixins/widget.js";import{connectHitsWithInsights as n}from"instantsearch.js/es/connectors/index.js";import{createHitsComponent as a}from"instantsearch-ui-components";export default{name:"AisHits",mixins:[i({connector:n},{$$widgetType:"ais.hits"}),t({name:"Hits"})],props:{showBanner:{type:Boolean,default:!0},escapeHTML:{type:Boolean,default:!0},transformItems:{type:Function,default:void 0}},computed:{widgetParams:function(){return{showBanner:this.showBanner,escapeHTML:this.escapeHTML,transformItems:this.transformItems}}},render:s(function(t){var s=this;if(!this.state)return null;var i=e(this,"default"),n=e(this,"item"),r=e(this,"banner");return n||r||!i?t(a({createElement:t}),{hits:this.state.items,itemComponent:function(e){var i=e.hit,a=e.index,r=e.onClick,o=e.onAuxClick,m=(e.key,function(t,s){var e={};for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&-1===s.indexOf(i)&&(e[i]=t[i]);return e}(e,["hit","index","onClick","onAuxClick","key"]));return t("li",{key:i.objectID,attrs:m,on:{click:r,auxclick:o}},[n&&n({item:i,index:a,insights:s.state.insights,sendEvent:s.state.sendEvent})||"objectID: "+i.objectID+", index: "+a])},banner:this.showBanner?this.state.banner:void 0,bannerComponent:r,sendEvent:this.state.sendEvent,classNames:this.classNames&&{root:this.classNames["ais-Hits"],list:this.classNames["ais-Hits-list"],item:this.classNames["ais-Hits-item"],bannerRoot:this.classNames["ais-Hits-banner"],bannerImage:this.classNames["ais-Hits-banner-image"],bannerLink:this.classNames["ais-Hits-banner-link"]}}):t("div",{attrs:{class:this.suit()}},[i({banner:this.state.banner,items:this.state.items,insights:this.state.insights,sendEvent:this.state.sendEvent})])})};
2
2
  //# sourceMappingURL=Hits.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Hits.js","sources":["../../../../src/components/Hits.js"],"sourcesContent":["import { createHitsComponent } from 'instantsearch-ui-components';\nimport { connectHitsWithInsights } from 'instantsearch.js/es/connectors';\n\nimport { createSuitMixin } from '../mixins/suit';\nimport { createWidgetMixin } from '../mixins/widget';\nimport { getScopedSlot, renderCompat } from '../util/vue-compat';\n\nexport default {\n name: 'AisHits',\n mixins: [\n createWidgetMixin(\n {\n connector: connectHitsWithInsights,\n },\n {\n $$widgetType: 'ais.hits',\n }\n ),\n createSuitMixin({ name: 'Hits' }),\n ],\n props: {\n escapeHTML: {\n type: Boolean,\n default: true,\n },\n transformItems: {\n type: Function,\n default: undefined,\n },\n },\n computed: {\n widgetParams() {\n return {\n escapeHTML: this.escapeHTML,\n transformItems: this.transformItems,\n };\n },\n },\n render: renderCompat(function (h) {\n if (!this.state) {\n return null;\n }\n\n const defaultSlot = getScopedSlot(this, 'default');\n const itemSlot = getScopedSlot(this, 'item');\n\n const itemComponent = ({\n hit,\n index,\n onClick,\n onAuxClick,\n // We don't want to pass the Preact key as a prop\n key: _key,\n ...rootProps\n }) => {\n return h(\n 'li',\n {\n key: hit.objectID,\n attrs: rootProps,\n on: {\n click: onClick,\n auxclick: onAuxClick,\n },\n },\n [\n (itemSlot &&\n itemSlot({\n item: hit,\n index,\n insights: this.state.insights,\n sendEvent: this.state.sendEvent,\n })) ||\n `objectID: ${hit.objectID}, index: ${index}`,\n ]\n );\n };\n\n // We only want to render the default slot\n // if no other slots are defined\n if (!itemSlot && defaultSlot) {\n return h(\n 'div',\n {\n attrs: {\n class: this.suit(),\n },\n },\n [\n defaultSlot({\n items: this.state.items,\n insights: this.state.insights,\n sendEvent: this.state.sendEvent,\n }),\n ]\n );\n }\n\n return h(createHitsComponent({ createElement: h }), {\n hits: this.state.items,\n itemComponent,\n sendEvent: this.state.sendEvent,\n classNames: this.classNames && {\n root: this.classNames['ais-Hits'],\n list: this.classNames['ais-Hits-list'],\n item: this.classNames['ais-Hits-item'],\n },\n });\n }),\n};\n"],"names":["name","mixins","createWidgetMixin","connector","connectHitsWithInsights","$$widgetType","createSuitMixin","props","escapeHTML","type","Boolean","default","transformItems","Function","undefined","computed","widgetParams","this","render","renderCompat","h","state","const","defaultSlot","getScopedSlot","itemSlot","attrs","class","suit","items","insights","sendEvent","createHitsComponent","createElement","hits","key","hit","objectID","rootProps","on","click","onClick","auxclick","onAuxClick","item","index","classNames","root","list"],"mappings":"iWAOe,CACbA,KAAM,UACNC,OAAQ,CACNC,EACE,CACEC,UAAWC,GAEb,CACEC,aAAc,aAGlBC,EAAgB,CAAEN,KAAM,UAE1BO,MAAO,CACLC,WAAY,CACVC,KAAMC,QACNC,SAAS,GAEXC,eAAgB,CACdH,KAAMI,SACNF,aAASG,IAGbC,SAAU,CACRC,wBACE,MAAO,CACLR,WAAYS,KAAKT,WACjBI,eAAgBK,KAAKL,kBAI3BM,OAAQC,EAAa,SAAUC,cAC7B,IAAKH,KAAKI,MACR,OAAO,KAGTC,IAAMC,EAAcC,EAAcP,KAAM,WAClCQ,EAAWD,EAAcP,KAAM,QAoCrC,OAAKQ,GAAYF,EACRH,EACL,MACA,CACEM,MAAO,CACLC,MAAOV,KAAKW,SAGhB,CACEL,EAAY,CACVM,MAAOZ,KAAKI,MAAMQ,MAClBC,SAAUb,KAAKI,MAAMS,SACrBC,UAAWd,KAAKI,MAAMU,cAMvBX,EAAEY,EAAoB,CAAEC,cAAeb,IAAM,CAClDc,KAAMjB,KAAKI,MAAMQ,qQA5CjB,OAAOT,EACL,KACA,CACEe,IAAKC,EAAIC,SACTX,MAAOY,EACPC,GAAI,CACFC,MAAOC,EACPC,SAAUC,IAGd,CACGlB,GACCA,EAAS,CACPmB,KAAMR,QACNS,EACAf,SAAUb,EAAKI,MAAMS,SACrBC,UAAWd,EAAKI,MAAMU,0BAEXK,EAAIC,qBAAoBQ,KA4B3Cd,UAAWd,KAAKI,MAAMU,UACtBe,WAAY7B,KAAK6B,YAAc,CAC7BC,KAAM9B,KAAK6B,WAAW,YACtBE,KAAM/B,KAAK6B,WAAW,iBACtBF,KAAM3B,KAAK6B,WAAW"}
1
+ {"version":3,"file":"Hits.js","sources":["../../../../src/components/Hits.js"],"sourcesContent":["import { createHitsComponent } from 'instantsearch-ui-components';\nimport { connectHitsWithInsights } from 'instantsearch.js/es/connectors';\n\nimport { createSuitMixin } from '../mixins/suit';\nimport { createWidgetMixin } from '../mixins/widget';\nimport { getScopedSlot, renderCompat } from '../util/vue-compat';\n\nexport default {\n name: 'AisHits',\n mixins: [\n createWidgetMixin(\n {\n connector: connectHitsWithInsights,\n },\n {\n $$widgetType: 'ais.hits',\n }\n ),\n createSuitMixin({ name: 'Hits' }),\n ],\n props: {\n showBanner: {\n type: Boolean,\n default: true,\n },\n escapeHTML: {\n type: Boolean,\n default: true,\n },\n transformItems: {\n type: Function,\n default: undefined,\n },\n },\n computed: {\n widgetParams() {\n return {\n showBanner: this.showBanner,\n escapeHTML: this.escapeHTML,\n transformItems: this.transformItems,\n };\n },\n },\n render: renderCompat(function (h) {\n if (!this.state) {\n return null;\n }\n\n const defaultSlot = getScopedSlot(this, 'default');\n const itemSlot = getScopedSlot(this, 'item');\n const bannerSlot = getScopedSlot(this, 'banner');\n\n const itemComponent = ({\n hit,\n index,\n onClick,\n onAuxClick,\n // We don't want to pass the Preact key as a prop\n key: _key,\n ...rootProps\n }) => {\n return h(\n 'li',\n {\n key: hit.objectID,\n attrs: rootProps,\n on: {\n click: onClick,\n auxclick: onAuxClick,\n },\n },\n [\n (itemSlot &&\n itemSlot({\n item: hit,\n index,\n insights: this.state.insights,\n sendEvent: this.state.sendEvent,\n })) ||\n `objectID: ${hit.objectID}, index: ${index}`,\n ]\n );\n };\n\n // We only want to render the default slot\n // if no other slots are defined\n if (!itemSlot && !bannerSlot && defaultSlot) {\n return h(\n 'div',\n {\n attrs: {\n class: this.suit(),\n },\n },\n [\n defaultSlot({\n banner: this.state.banner,\n items: this.state.items,\n insights: this.state.insights,\n sendEvent: this.state.sendEvent,\n }),\n ]\n );\n }\n\n return h(createHitsComponent({ createElement: h }), {\n hits: this.state.items,\n itemComponent,\n banner: this.showBanner ? this.state.banner : undefined,\n bannerComponent: bannerSlot,\n sendEvent: this.state.sendEvent,\n classNames: this.classNames && {\n root: this.classNames['ais-Hits'],\n list: this.classNames['ais-Hits-list'],\n item: this.classNames['ais-Hits-item'],\n bannerRoot: this.classNames['ais-Hits-banner'],\n bannerImage: this.classNames['ais-Hits-banner-image'],\n bannerLink: this.classNames['ais-Hits-banner-link'],\n },\n });\n }),\n};\n"],"names":["name","mixins","createWidgetMixin","connector","connectHitsWithInsights","$$widgetType","createSuitMixin","props","showBanner","type","Boolean","default","escapeHTML","transformItems","Function","undefined","computed","widgetParams","this","render","renderCompat","h","state","const","defaultSlot","getScopedSlot","itemSlot","bannerSlot","createHitsComponent","createElement","hits","items","key","hit","objectID","attrs","rootProps","on","click","onClick","auxclick","onAuxClick","item","index","insights","sendEvent","banner","bannerComponent","classNames","root","list","bannerRoot","bannerImage","bannerLink","class","suit"],"mappings":"iWAOe,CACbA,KAAM,UACNC,OAAQ,CACNC,EACE,CACEC,UAAWC,GAEb,CACEC,aAAc,aAGlBC,EAAgB,CAAEN,KAAM,UAE1BO,MAAO,CACLC,WAAY,CACVC,KAAMC,QACNC,SAAS,GAEXC,WAAY,CACVH,KAAMC,QACNC,SAAS,GAEXE,eAAgB,CACdJ,KAAMK,SACNH,aAASI,IAGbC,SAAU,CACRC,wBACE,MAAO,CACLT,WAAYU,KAAKV,WACjBI,WAAYM,KAAKN,WACjBC,eAAgBK,KAAKL,kBAI3BM,OAAQC,EAAa,SAAUC,cAC7B,IAAKH,KAAKI,MACR,OAAO,KAGTC,IAAMC,EAAcC,EAAcP,KAAM,WAClCQ,EAAWD,EAAcP,KAAM,QAC/BS,EAAaF,EAAcP,KAAM,UAoCvC,OAAKQ,GAAaC,IAAcH,EAmBzBH,EAAEO,EAAoB,CAAEC,cAAeR,IAAM,CAClDS,KAAMZ,KAAKI,MAAMS,qQA7CjB,OAAOV,EACL,KACA,CACEW,IAAKC,EAAIC,SACTC,MAAOC,EACPC,GAAI,CACFC,MAAOC,EACPC,SAAUC,IAGd,CACGf,GACCA,EAAS,CACPgB,KAAMT,QACNU,EACAC,SAAU1B,EAAKI,MAAMsB,SACrBC,UAAW3B,EAAKI,MAAMuB,0BAEXZ,EAAIC,qBAAoBS,KA6B3CG,OAAQ5B,KAAKV,WAAaU,KAAKI,MAAMwB,YAAS/B,EAC9CgC,gBAAiBpB,EACjBkB,UAAW3B,KAAKI,MAAMuB,UACtBG,WAAY9B,KAAK8B,YAAc,CAC7BC,KAAM/B,KAAK8B,WAAW,YACtBE,KAAMhC,KAAK8B,WAAW,iBACtBN,KAAMxB,KAAK8B,WAAW,iBACtBG,WAAYjC,KAAK8B,WAAW,mBAC5BI,YAAalC,KAAK8B,WAAW,yBAC7BK,WAAYnC,KAAK8B,WAAW,2BA9BvB3B,EACL,MACA,CACEc,MAAO,CACLmB,MAAOpC,KAAKqC,SAGhB,CACE/B,EAAY,CACVsB,OAAQ5B,KAAKI,MAAMwB,OACnBf,MAAOb,KAAKI,MAAMS,MAClBa,SAAU1B,KAAKI,MAAMsB,SACrBC,UAAW3B,KAAKI,MAAMuB"}
@@ -1,2 +1,2 @@
1
- import e from"./InfiniteHits.vue_vue&type=script&lang.js";import{render as t}from"./InfiniteHits.vue_vue&type=template&id=1b2a109e&lang.js";e.render=t;export default e;
1
+ import e from"./InfiniteHits.vue_vue&type=script&lang.js";import{render as t}from"./InfiniteHits.vue_vue&type=template&id=31c7998c&lang.js";e.render=t;export default e;
2
2
  //# sourceMappingURL=InfiniteHits.vue.js.map
@@ -1,2 +1,2 @@
1
- import{createSuitMixin as e}from"../mixins/suit.js";import{createWidgetMixin as t}from"../mixins/widget.js";import{connectInfiniteHitsWithInsights as s}from"instantsearch.js/es/connectors/index.js";export default{name:"AisInfiniteHits",mixins:[t({connector:s},{$$widgetType:"ais.infiniteHits"}),e({name:"InfiniteHits"})],props:{showPrevious:{type:Boolean,default:!1},escapeHTML:{type:Boolean,default:!0},transformItems:{type:Function,default:void 0},cache:{type:Object,default:void 0}},computed:{widgetParams:function(){return{showPrevious:this.showPrevious,escapeHTML:this.escapeHTML,transformItems:this.transformItems,cache:this.cache}}},methods:{refinePrevious:function(){this.state.showPrevious()},refineNext:function(){this.state.showMore()}}};
1
+ import{createSuitMixin as e}from"../mixins/suit.js";import{createWidgetMixin as t}from"../mixins/widget.js";import{connectInfiniteHitsWithInsights as s}from"instantsearch.js/es/connectors/index.js";export default{name:"AisInfiniteHits",mixins:[t({connector:s},{$$widgetType:"ais.infiniteHits"}),e({name:"InfiniteHits"})],props:{showBanner:{type:Boolean,default:!0},showPrevious:{type:Boolean,default:!1},escapeHTML:{type:Boolean,default:!0},transformItems:{type:Function,default:void 0},cache:{type:Object,default:void 0}},computed:{widgetParams:function(){return{showBanner:this.showBanner,showPrevious:this.showPrevious,escapeHTML:this.escapeHTML,transformItems:this.transformItems,cache:this.cache}}},methods:{refinePrevious:function(){this.state.showPrevious()},refineNext:function(){this.state.showMore()}}};
2
2
  //# sourceMappingURL=InfiniteHits.vue_vue&type=script&lang.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InfiniteHits.vue_vue&type=script&lang.js","sources":["../../../../src/components/InfiniteHits.vue"],"sourcesContent":["<template>\n <div v-if=\"state\" :class=\"suit()\">\n <slot\n v-if=\"showPrevious\"\n name=\"loadPrevious\"\n :refine-previous=\"refinePrevious\"\n :page=\"state.results.page\"\n :is-first-page=\"state.isFirstPage\"\n >\n <button\n :class=\"[\n suit('loadPrevious'),\n state.isFirstPage && suit('loadPrevious', 'disabled'),\n ]\"\n :disabled=\"state.isFirstPage\"\n @click=\"refinePrevious()\"\n >\n Show previous results\n </button>\n </slot>\n\n <slot\n :items=\"state.items\"\n :results=\"state.results\"\n :is-last-page=\"state.isLastPage\"\n :refine-previous=\"refinePrevious\"\n :refine-next=\"refineNext\"\n :refine=\"refineNext\"\n :insights=\"state.insights\"\n :send-event=\"state.sendEvent\"\n >\n <ol :class=\"suit('list')\">\n <li\n v-for=\"(item, index) in state.items\"\n :class=\"suit('item')\"\n :key=\"item.objectID\"\n @click=\"state.sendEvent('click:internal', item, 'Hit Clicked')\"\n @auxclick=\"state.sendEvent('click:internal', item, 'Hit Clicked')\"\n >\n <slot\n name=\"item\"\n :item=\"item\"\n :index=\"index\"\n :insights=\"state.insights\"\n :send-event=\"state.sendEvent\"\n >\n objectID: {{ item.objectID }}, index: {{ index }}\n </slot>\n </li>\n </ol>\n\n <slot\n name=\"loadMore\"\n :refine-next=\"refineNext\"\n :refine=\"refineNext\"\n :page=\"state.results.page\"\n :is-last-page=\"state.isLastPage\"\n >\n <button\n :class=\"[\n suit('loadMore'),\n state.isLastPage && suit('loadMore', 'disabled'),\n ]\"\n :disabled=\"state.isLastPage\"\n @click=\"refineNext()\"\n >\n Show more results\n </button>\n </slot>\n </slot>\n </div>\n</template>\n\n<script>\nimport { connectInfiniteHitsWithInsights } from 'instantsearch.js/es/connectors';\n\nimport { createSuitMixin } from '../mixins/suit';\nimport { createWidgetMixin } from '../mixins/widget';\n\nexport default {\n name: 'AisInfiniteHits',\n mixins: [\n createWidgetMixin(\n {\n connector: connectInfiniteHitsWithInsights,\n },\n {\n $$widgetType: 'ais.infiniteHits',\n }\n ),\n createSuitMixin({ name: 'InfiniteHits' }),\n ],\n props: {\n showPrevious: {\n type: Boolean,\n default: false,\n },\n escapeHTML: {\n type: Boolean,\n default: true,\n },\n transformItems: {\n type: Function,\n default: undefined,\n },\n cache: {\n type: Object,\n default: undefined,\n },\n },\n computed: {\n widgetParams() {\n return {\n showPrevious: this.showPrevious,\n escapeHTML: this.escapeHTML,\n transformItems: this.transformItems,\n cache: this.cache,\n };\n },\n },\n methods: {\n refinePrevious() {\n this.state.showPrevious();\n },\n refineNext() {\n this.state.showMore();\n },\n },\n};\n</script>\n"],"names":["name","mixins","createWidgetMixin","connector","connectInfiniteHitsWithInsights","$$widgetType","createSuitMixin","props","showPrevious","type","Boolean","default","escapeHTML","transformItems","Function","undefined","cache","Object","computed","widgetParams","this","methods","refinePrevious","state","refineNext","showMore"],"mappings":"oNA+Ee,CACbA,KAAM,kBACNC,OAAQ,CACNC,EACE,CACEC,UAAWC,GAEb,CACEC,aAAc,qBAGlBC,EAAgB,CAAEN,KAAM,kBAE1BO,MAAO,CACLC,aAAc,CACZC,KAAMC,QACNC,SAAS,GAEXC,WAAY,CACVH,KAAMC,QACNC,SAAS,GAEXE,eAAgB,CACdJ,KAAMK,SACNH,aAASI,GAEXC,MAAO,CACLP,KAAMQ,OACNN,aAASI,IAGbG,SAAU,CACRC,wBACE,MAAO,CACLX,aAAcY,KAAKZ,aACnBI,WAAYQ,KAAKR,WACjBC,eAAgBO,KAAKP,eACrBG,MAAOI,KAAKJ,SAIlBK,QAAS,CACPC,0BACEF,KAAKG,MAAMf,gBAEbgB,sBACEJ,KAAKG,MAAME"}
1
+ {"version":3,"file":"InfiniteHits.vue_vue&type=script&lang.js","sources":["../../../../src/components/InfiniteHits.vue"],"sourcesContent":["<template>\n <div v-if=\"state\" :class=\"suit()\">\n <slot\n v-if=\"showPrevious\"\n name=\"loadPrevious\"\n :refine-previous=\"refinePrevious\"\n :page=\"state.results.page\"\n :is-first-page=\"state.isFirstPage\"\n >\n <button\n :class=\"[\n suit('loadPrevious'),\n state.isFirstPage && suit('loadPrevious', 'disabled'),\n ]\"\n :disabled=\"state.isFirstPage\"\n @click=\"refinePrevious()\"\n >\n Show previous results\n </button>\n </slot>\n\n <slot\n :items=\"state.items\"\n :results=\"state.results\"\n :banner=\"state.banner\"\n :is-last-page=\"state.isLastPage\"\n :refine-previous=\"refinePrevious\"\n :refine-next=\"refineNext\"\n :refine=\"refineNext\"\n :insights=\"state.insights\"\n :send-event=\"state.sendEvent\"\n >\n <template\n v-if=\"showBanner && state.banner && state.banner.image.urls[0].url\"\n >\n <slot name=\"banner\" :banner=\"state.banner\">\n <aside :class=\"suit('banner')\">\n <a\n v-if=\"state.banner.link\"\n :href=\"state.banner.link.url\"\n :target=\"state.banner.link.target\"\n :class=\"suit('banner-link')\"\n >\n <img\n :src=\"state.banner.image.urls[0].url\"\n :alt=\"state.banner.image.title\"\n :class=\"suit('banner-image')\"\n />\n </a>\n <img\n v-else\n :src=\"state.banner.image.urls[0].url\"\n :alt=\"state.banner.image.title\"\n :class=\"suit('banner-image')\"\n />\n </aside>\n </slot>\n </template>\n <ol :class=\"suit('list')\">\n <li\n v-for=\"(item, index) in state.items\"\n :class=\"suit('item')\"\n :key=\"item.objectID\"\n @click=\"state.sendEvent('click:internal', item, 'Hit Clicked')\"\n @auxclick=\"state.sendEvent('click:internal', item, 'Hit Clicked')\"\n >\n <slot\n name=\"item\"\n :item=\"item\"\n :index=\"index\"\n :insights=\"state.insights\"\n :send-event=\"state.sendEvent\"\n >\n objectID: {{ item.objectID }}, index: {{ index }}\n </slot>\n </li>\n </ol>\n\n <slot\n name=\"loadMore\"\n :refine-next=\"refineNext\"\n :refine=\"refineNext\"\n :page=\"state.results.page\"\n :is-last-page=\"state.isLastPage\"\n >\n <button\n :class=\"[\n suit('loadMore'),\n state.isLastPage && suit('loadMore', 'disabled'),\n ]\"\n :disabled=\"state.isLastPage\"\n @click=\"refineNext()\"\n >\n Show more results\n </button>\n </slot>\n </slot>\n </div>\n</template>\n\n<script>\nimport { connectInfiniteHitsWithInsights } from 'instantsearch.js/es/connectors';\n\nimport { createSuitMixin } from '../mixins/suit';\nimport { createWidgetMixin } from '../mixins/widget';\n\nexport default {\n name: 'AisInfiniteHits',\n mixins: [\n createWidgetMixin(\n {\n connector: connectInfiniteHitsWithInsights,\n },\n {\n $$widgetType: 'ais.infiniteHits',\n }\n ),\n createSuitMixin({ name: 'InfiniteHits' }),\n ],\n props: {\n showBanner: {\n type: Boolean,\n default: true,\n },\n showPrevious: {\n type: Boolean,\n default: false,\n },\n escapeHTML: {\n type: Boolean,\n default: true,\n },\n transformItems: {\n type: Function,\n default: undefined,\n },\n cache: {\n type: Object,\n default: undefined,\n },\n },\n computed: {\n widgetParams() {\n return {\n showBanner: this.showBanner,\n showPrevious: this.showPrevious,\n escapeHTML: this.escapeHTML,\n transformItems: this.transformItems,\n cache: this.cache,\n };\n },\n },\n methods: {\n refinePrevious() {\n this.state.showPrevious();\n },\n refineNext() {\n this.state.showMore();\n },\n },\n};\n</script>\n"],"names":["name","mixins","createWidgetMixin","connector","connectInfiniteHitsWithInsights","$$widgetType","createSuitMixin","props","showBanner","type","Boolean","default","showPrevious","escapeHTML","transformItems","Function","undefined","cache","Object","computed","widgetParams","this","methods","refinePrevious","state","refineNext","showMore"],"mappings":"oNA0Ge,CACbA,KAAM,kBACNC,OAAQ,CACNC,EACE,CACEC,UAAWC,GAEb,CACEC,aAAc,qBAGlBC,EAAgB,CAAEN,KAAM,kBAE1BO,MAAO,CACLC,WAAY,CACVC,KAAMC,QACNC,SAAS,GAEXC,aAAc,CACZH,KAAMC,QACNC,SAAS,GAEXE,WAAY,CACVJ,KAAMC,QACNC,SAAS,GAEXG,eAAgB,CACdL,KAAMM,SACNJ,aAASK,GAEXC,MAAO,CACLR,KAAMS,OACNP,aAASK,IAGbG,SAAU,CACRC,wBACE,MAAO,CACLZ,WAAYa,KAAKb,WACjBI,aAAcS,KAAKT,aACnBC,WAAYQ,KAAKR,WACjBC,eAAgBO,KAAKP,eACrBG,MAAOI,KAAKJ,SAIlBK,QAAS,CACPC,0BACEF,KAAKG,MAAMZ,gBAEba,sBACEJ,KAAKG,MAAME"}
@@ -0,0 +1,2 @@
1
+ import{openBlock as e,createElementBlock as t,normalizeClass as s,renderSlot as n,createElementVNode as i,createCommentVNode as a,Fragment as r,renderList as l,createTextVNode as u,toDisplayString as o}from"vue";var c=["disabled"],d=["href","target"],g=["src","alt"],b=["src","alt"],f=["onClick","onAuxclick"],k=["disabled"];function v(v,P,m,x,h,p){return v.state?(e(),t("div",{key:0,class:s(v.suit())},[m.showPrevious?n(v.$slots,"loadPrevious",{key:0,refinePrevious:p.refinePrevious,page:v.state.results.page,isFirstPage:v.state.isFirstPage},function(){return[i("button",{class:s([v.suit("loadPrevious"),v.state.isFirstPage&&v.suit("loadPrevious","disabled")]),disabled:v.state.isFirstPage,onClick:P[0]||(P[0]=function(e){return p.refinePrevious()})}," Show previous results ",10,c)]}):a("",!0),n(v.$slots,"default",{items:v.state.items,results:v.state.results,banner:v.state.banner,isLastPage:v.state.isLastPage,refinePrevious:p.refinePrevious,refineNext:p.refineNext,refine:p.refineNext,insights:v.state.insights,sendEvent:v.state.sendEvent},function(){return[m.showBanner&&v.state.banner&&v.state.banner.image.urls[0].url?n(v.$slots,"banner",{key:0,banner:v.state.banner},function(){return[i("aside",{class:s(v.suit("banner"))},[v.state.banner.link?(e(),t("a",{key:0,href:v.state.banner.link.url,target:v.state.banner.link.target,class:s(v.suit("banner-link"))},[i("img",{src:v.state.banner.image.urls[0].url,alt:v.state.banner.image.title,class:s(v.suit("banner-image"))},null,10,g)],10,d)):(e(),t("img",{key:1,src:v.state.banner.image.urls[0].url,alt:v.state.banner.image.title,class:s(v.suit("banner-image"))},null,10,b))],2)]}):a("",!0),i("ol",{class:s(v.suit("list"))},[(e(!0),t(r,null,l(v.state.items,function(i,a){return e(),t("li",{class:s(v.suit("item")),key:i.objectID,onClick:function(e){return v.state.sendEvent("click:internal",i,"Hit Clicked")},onAuxclick:function(e){return v.state.sendEvent("click:internal",i,"Hit Clicked")}},[n(v.$slots,"item",{item:i,index:a,insights:v.state.insights,sendEvent:v.state.sendEvent},function(){return[u(" objectID: "+o(i.objectID)+", index: "+o(a),1)]})],42,f)}),128))],2),n(v.$slots,"loadMore",{refineNext:p.refineNext,refine:p.refineNext,page:v.state.results.page,isLastPage:v.state.isLastPage},function(){return[i("button",{class:s([v.suit("loadMore"),v.state.isLastPage&&v.suit("loadMore","disabled")]),disabled:v.state.isLastPage,onClick:P[1]||(P[1]=function(e){return p.refineNext()})}," Show more results ",10,k)]})]})],2)):a("",!0)}export{v as render};
2
+ //# sourceMappingURL=InfiniteHits.vue_vue&type=template&id=31c7998c&lang.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InfiniteHits.vue_vue&type=template&id=31c7998c&lang.js","sources":["../../../../src/components/InfiniteHits.vue?vue&type=template&id=31c7998c&lang.js"],"sourcesContent":["<template>\n <div v-if=\"state\" :class=\"suit()\">\n <slot\n v-if=\"showPrevious\"\n name=\"loadPrevious\"\n :refine-previous=\"refinePrevious\"\n :page=\"state.results.page\"\n :is-first-page=\"state.isFirstPage\"\n >\n <button\n :class=\"[\n suit('loadPrevious'),\n state.isFirstPage && suit('loadPrevious', 'disabled'),\n ]\"\n :disabled=\"state.isFirstPage\"\n @click=\"refinePrevious()\"\n >\n Show previous results\n </button>\n </slot>\n\n <slot\n :items=\"state.items\"\n :results=\"state.results\"\n :banner=\"state.banner\"\n :is-last-page=\"state.isLastPage\"\n :refine-previous=\"refinePrevious\"\n :refine-next=\"refineNext\"\n :refine=\"refineNext\"\n :insights=\"state.insights\"\n :send-event=\"state.sendEvent\"\n >\n <template\n v-if=\"showBanner && state.banner && state.banner.image.urls[0].url\"\n >\n <slot name=\"banner\" :banner=\"state.banner\">\n <aside :class=\"suit('banner')\">\n <a\n v-if=\"state.banner.link\"\n :href=\"state.banner.link.url\"\n :target=\"state.banner.link.target\"\n :class=\"suit('banner-link')\"\n >\n <img\n :src=\"state.banner.image.urls[0].url\"\n :alt=\"state.banner.image.title\"\n :class=\"suit('banner-image')\"\n />\n </a>\n <img\n v-else\n :src=\"state.banner.image.urls[0].url\"\n :alt=\"state.banner.image.title\"\n :class=\"suit('banner-image')\"\n />\n </aside>\n </slot>\n </template>\n <ol :class=\"suit('list')\">\n <li\n v-for=\"(item, index) in state.items\"\n :class=\"suit('item')\"\n :key=\"item.objectID\"\n @click=\"state.sendEvent('click:internal', item, 'Hit Clicked')\"\n @auxclick=\"state.sendEvent('click:internal', item, 'Hit Clicked')\"\n >\n <slot\n name=\"item\"\n :item=\"item\"\n :index=\"index\"\n :insights=\"state.insights\"\n :send-event=\"state.sendEvent\"\n >\n objectID: {{ item.objectID }}, index: {{ index }}\n </slot>\n </li>\n </ol>\n\n <slot\n name=\"loadMore\"\n :refine-next=\"refineNext\"\n :refine=\"refineNext\"\n :page=\"state.results.page\"\n :is-last-page=\"state.isLastPage\"\n >\n <button\n :class=\"[\n suit('loadMore'),\n state.isLastPage && suit('loadMore', 'disabled'),\n ]\"\n :disabled=\"state.isLastPage\"\n @click=\"refineNext()\"\n >\n Show more results\n </button>\n </slot>\n </slot>\n </div>\n</template>\n\n<script>\nimport { connectInfiniteHitsWithInsights } from 'instantsearch.js/es/connectors';\n\nimport { createSuitMixin } from '../mixins/suit';\nimport { createWidgetMixin } from '../mixins/widget';\n\nexport default {\n name: 'AisInfiniteHits',\n mixins: [\n createWidgetMixin(\n {\n connector: connectInfiniteHitsWithInsights,\n },\n {\n $$widgetType: 'ais.infiniteHits',\n }\n ),\n createSuitMixin({ name: 'InfiniteHits' }),\n ],\n props: {\n showBanner: {\n type: Boolean,\n default: true,\n },\n showPrevious: {\n type: Boolean,\n default: false,\n },\n escapeHTML: {\n type: Boolean,\n default: true,\n },\n transformItems: {\n type: Function,\n default: undefined,\n },\n cache: {\n type: Object,\n default: undefined,\n },\n },\n computed: {\n widgetParams() {\n return {\n showBanner: this.showBanner,\n showPrevious: this.showPrevious,\n escapeHTML: this.escapeHTML,\n transformItems: this.transformItems,\n cache: this.cache,\n };\n },\n },\n methods: {\n refinePrevious() {\n this.state.showPrevious();\n },\n refineNext() {\n this.state.showMore();\n },\n },\n};\n</script>\n"],"names":["_ctx","_createElementBlock","class","$props","_renderSlot","refinePrevious","$options","page","results","isFirstPage","_createElementVNode","disabled","onClick","items","banner","isLastPage","refineNext","refine","insights","sendEvent","image","urls","url","link","href","target","src","alt","title","item","index","key","objectID","onAuxclick"],"mappings":"oWACaA,aAAXC,eAAmBC,QAAOF,YAEhBG,eADRC,iCAGGC,eAAiBC,iBACjBC,KAAMP,QAAMQ,QAAQD,KACpBE,YAAeT,QAAMS,+BAEtBC,YACGR,yFAIAS,SAAUX,QAAMS,YAChBG,uCAAON,kEAMZF,sBACGS,MAAOb,QAAMa,MACbL,QAASR,QAAMQ,QACfM,OAAQd,QAAMc,OACdC,WAAcf,QAAMe,WACpBV,eAAiBC,iBACjBU,WAAaV,aACbW,OAAQX,aACRY,SAAUlB,QAAMkB,SAChBC,UAAYnB,QAAMmB,6BAGXhB,cAAcH,QAAMc,QAAUd,QAAMc,OAAOM,MAAMC,QAAQC,IAE/DlB,2BAAqBU,OAAQd,QAAMc,0BACjCJ,WAAQR,QAAOF,oBAELA,QAAMc,OAAOS,UADrBtB,aAEGuB,KAAMxB,QAAMc,OAAOS,KAAKD,IACxBG,OAAQzB,QAAMc,OAAOS,KAAKE,OAC1BvB,QAAOF,yBAERU,SACGgB,IAAK1B,QAAMc,OAAOM,MAAMC,QAAQC,IAChCK,IAAK3B,QAAMc,OAAOM,MAAMQ,MACxB1B,QAAOF,iDAGZC,eAEGyB,IAAK1B,QAAMc,OAAOM,MAAMC,QAAQC,IAChCK,IAAK3B,QAAMc,OAAOM,MAAMQ,MACxB1B,QAAOF,qDAKhBU,QAAKR,QAAOF,yBACVC,WAC0BD,QAAMa,eAAtBgB,EAAMC,cADhB7B,QAEGC,QAAOF,gBACP+B,IAAKF,EAAKG,SACVpB,2BAAOZ,QAAMmB,2BAA4BU,kBACzCI,8BAAUjC,QAAMmB,2BAA4BU,oBAE7CzB,mBAEGyB,KAAMA,EACNC,MAAOA,EACPZ,SAAUlB,QAAMkB,SAChBC,UAAYnB,QAAMmB,+CAENU,EAAKG,UAAW,cAAYF,4BAK/C1B,uBAEGY,WAAaV,aACbW,OAAQX,aACRC,KAAMP,QAAMQ,QAAQD,KACpBQ,WAAcf,QAAMe,8BAErBL,YACGR,gFAIAS,SAAUX,QAAMe,WAChBH,uCAAON"}