vue-instantsearch 4.10.8 → 4.10.10

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 (29) hide show
  1. package/package.json +3 -3
  2. package/src/__tests__/common-widgets.test.js +46 -0
  3. package/src/components/ClearRefinements.vue +1 -0
  4. package/src/components/Menu.vue +3 -3
  5. package/src/components/__tests__/Menu.js +5 -564
  6. package/vue2/cjs/index.js +1 -1
  7. package/vue2/cjs/index.js.map +1 -1
  8. package/vue2/es/package.json.js +1 -1
  9. package/vue2/es/src/components/Menu.vue.js +1 -1
  10. package/vue2/umd/index.js +1 -1
  11. package/vue2/umd/index.js.map +1 -1
  12. package/vue3/cjs/index.js +1 -1
  13. package/vue3/cjs/index.js.map +1 -1
  14. package/vue3/es/package.json.js +1 -1
  15. package/vue3/es/src/components/ClearRefinements.vue.js +1 -1
  16. package/vue3/es/src/components/ClearRefinements.vue_vue&type=script&lang.js.map +1 -1
  17. package/vue3/es/src/components/{ClearRefinements.vue_vue&type=template&id=302b873a&lang.js → ClearRefinements.vue_vue&type=template&id=41d81b11&lang.js} +1 -1
  18. package/vue3/es/src/components/ClearRefinements.vue_vue&type=template&id=41d81b11&lang.js.map +1 -0
  19. package/vue3/es/src/components/Menu.vue.js +1 -1
  20. package/vue3/es/src/components/Menu.vue_vue&type=script&lang.js.map +1 -1
  21. package/vue3/es/src/components/{Menu.vue_vue&type=template&id=8e757064&lang.js → Menu.vue_vue&type=template&id=55b32cf6&lang.js} +1 -1
  22. package/vue3/es/src/components/Menu.vue_vue&type=template&id=55b32cf6&lang.js.map +1 -0
  23. package/vue3/umd/index.js +1 -1
  24. package/vue3/umd/index.js.map +1 -1
  25. package/src/components/__tests__/HitsPerPage.js +0 -85
  26. package/src/components/__tests__/__snapshots__/HitsPerPage.js.snap +0 -18
  27. package/src/components/__tests__/__snapshots__/Menu.js.snap +0 -503
  28. package/vue3/es/src/components/ClearRefinements.vue_vue&type=template&id=302b873a&lang.js.map +0 -1
  29. package/vue3/es/src/components/Menu.vue_vue&type=template&id=8e757064&lang.js.map +0 -1
@@ -1,2 +1,2 @@
1
- var r="4.10.8";export{r as version};
1
+ var r="4.10.10";export{r as version};
2
2
  //# sourceMappingURL=package.json.js.map
@@ -1,2 +1,2 @@
1
- import e from"./ClearRefinements.vue_vue&type=script&lang.js";import{render as t}from"./ClearRefinements.vue_vue&type=template&id=302b873a&lang.js";e.render=t;export default e;
1
+ import e from"./ClearRefinements.vue_vue&type=script&lang.js";import{render as t}from"./ClearRefinements.vue_vue&type=template&id=41d81b11&lang.js";e.render=t;export default e;
2
2
  //# sourceMappingURL=ClearRefinements.vue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ClearRefinements.vue_vue&type=script&lang.js","sources":["../../../../src/components/ClearRefinements.vue"],"sourcesContent":["<template>\n <div v-if=\"state\" :class=\"suit()\">\n <slot\n :can-refine=\"canRefine\"\n :refine=\"state.refine\"\n :createURL=\"state.createURL\"\n >\n <button\n type=\"reset\"\n :class=\"[suit('button'), !canRefine && suit('button', 'disabled')]\"\n :disabled=\"!canRefine\"\n @click.prevent=\"state.refine\"\n >\n <slot name=\"resetLabel\"> Clear refinements </slot>\n </button>\n </slot>\n </div>\n</template>\n\n<script>\nimport { connectClearRefinements } from 'instantsearch.js/es/connectors';\n\nimport { createPanelConsumerMixin } from '../mixins/panel';\nimport { createSuitMixin } from '../mixins/suit';\nimport { createWidgetMixin } from '../mixins/widget';\n\nexport default {\n name: 'AisClearRefinements',\n mixins: [\n createWidgetMixin(\n {\n connector: connectClearRefinements,\n },\n {\n $$widgetType: 'ais.clearRefinements',\n }\n ),\n createPanelConsumerMixin(),\n createSuitMixin({ name: 'ClearRefinements' }),\n ],\n props: {\n excludedAttributes: {\n type: Array,\n default: undefined,\n },\n includedAttributes: {\n type: Array,\n default: undefined,\n },\n transformItems: {\n type: Function,\n default: undefined,\n },\n },\n computed: {\n widgetParams() {\n return {\n includedAttributes: this.includedAttributes,\n excludedAttributes: this.excludedAttributes,\n transformItems: this.transformItems,\n };\n },\n canRefine() {\n return this.state.hasRefinements;\n },\n },\n};\n</script>\n"],"names":["name","mixins","createWidgetMixin","connector","connectClearRefinements","$$widgetType","createPanelConsumerMixin","createSuitMixin","props","excludedAttributes","type","Array","default","undefined","includedAttributes","transformItems","Function","computed","widgetParams","this","canRefine","state","hasRefinements"],"mappings":"0QA0Be,CACbA,KAAM,sBACNC,OAAQ,CACNC,EACE,CACEC,UAAWC,GAEb,CACEC,aAAc,yBAGlBC,IACAC,EAAgB,CAAEP,KAAM,sBAE1BQ,MAAO,CACLC,mBAAoB,CAClBC,KAAMC,MACNC,aAASC,GAEXC,mBAAoB,CAClBJ,KAAMC,MACNC,aAASC,GAEXE,eAAgB,CACdL,KAAMM,SACNJ,aAASC,IAGbI,SAAU,CACRC,wBACE,MAAO,CACLJ,mBAAoBK,KAAKL,mBACzBL,mBAAoBU,KAAKV,mBACzBM,eAAgBI,KAAKJ,iBAGzBK,qBACE,OAAOD,KAAKE,MAAMC"}
1
+ {"version":3,"file":"ClearRefinements.vue_vue&type=script&lang.js","sources":["../../../../src/components/ClearRefinements.vue"],"sourcesContent":["<!-- @MAJOR remove `type=\"reset\"` -->\n<template>\n <div v-if=\"state\" :class=\"suit()\">\n <slot\n :can-refine=\"canRefine\"\n :refine=\"state.refine\"\n :createURL=\"state.createURL\"\n >\n <button\n type=\"reset\"\n :class=\"[suit('button'), !canRefine && suit('button', 'disabled')]\"\n :disabled=\"!canRefine\"\n @click.prevent=\"state.refine\"\n >\n <slot name=\"resetLabel\"> Clear refinements </slot>\n </button>\n </slot>\n </div>\n</template>\n\n<script>\nimport { connectClearRefinements } from 'instantsearch.js/es/connectors';\n\nimport { createPanelConsumerMixin } from '../mixins/panel';\nimport { createSuitMixin } from '../mixins/suit';\nimport { createWidgetMixin } from '../mixins/widget';\n\nexport default {\n name: 'AisClearRefinements',\n mixins: [\n createWidgetMixin(\n {\n connector: connectClearRefinements,\n },\n {\n $$widgetType: 'ais.clearRefinements',\n }\n ),\n createPanelConsumerMixin(),\n createSuitMixin({ name: 'ClearRefinements' }),\n ],\n props: {\n excludedAttributes: {\n type: Array,\n default: undefined,\n },\n includedAttributes: {\n type: Array,\n default: undefined,\n },\n transformItems: {\n type: Function,\n default: undefined,\n },\n },\n computed: {\n widgetParams() {\n return {\n includedAttributes: this.includedAttributes,\n excludedAttributes: this.excludedAttributes,\n transformItems: this.transformItems,\n };\n },\n canRefine() {\n return this.state.hasRefinements;\n },\n },\n};\n</script>\n"],"names":["name","mixins","createWidgetMixin","connector","connectClearRefinements","$$widgetType","createPanelConsumerMixin","createSuitMixin","props","excludedAttributes","type","Array","default","undefined","includedAttributes","transformItems","Function","computed","widgetParams","this","canRefine","state","hasRefinements"],"mappings":"0QA2Be,CACbA,KAAM,sBACNC,OAAQ,CACNC,EACE,CACEC,UAAWC,GAEb,CACEC,aAAc,yBAGlBC,IACAC,EAAgB,CAAEP,KAAM,sBAE1BQ,MAAO,CACLC,mBAAoB,CAClBC,KAAMC,MACNC,aAASC,GAEXC,mBAAoB,CAClBJ,KAAMC,MACNC,aAASC,GAEXE,eAAgB,CACdL,KAAMM,SACNJ,aAASC,IAGbI,SAAU,CACRC,wBACE,MAAO,CACLJ,mBAAoBK,KAAKL,mBACzBL,mBAAoBU,KAAKV,mBACzBM,eAAgBI,KAAKJ,iBAGzBK,qBACE,OAAOD,KAAKE,MAAMC"}
@@ -1,2 +1,2 @@
1
1
  import{openBlock as e,createElementBlock as t,normalizeClass as n,renderSlot as r,createElementVNode as a,withModifiers as i,createTextVNode as s,createCommentVNode as f}from"vue";var u=["disabled"];function o(o,c,l,d,b,p){return o.state?(e(),t("div",{key:0,class:n(o.suit())},[r(o.$slots,"default",{canRefine:p.canRefine,refine:o.state.refine,createURL:o.state.createURL},function(){return[a("button",{type:"reset",class:n([o.suit("button"),!p.canRefine&&o.suit("button","disabled")]),disabled:!p.canRefine,onClick:c[0]||(c[0]=i(function(){for(var e,t=[],n=arguments.length;n--;)t[n]=arguments[n];return o.state.refine&&(e=o.state).refine.apply(e,t)},["prevent"]))},[r(o.$slots,"resetLabel",{},function(){return[s(" Clear refinements ")]})],10,u)]})],2)):f("",!0)}export{o as render};
2
- //# sourceMappingURL=ClearRefinements.vue_vue&type=template&id=302b873a&lang.js.map
2
+ //# sourceMappingURL=ClearRefinements.vue_vue&type=template&id=41d81b11&lang.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClearRefinements.vue_vue&type=template&id=41d81b11&lang.js","sources":["../../../../src/components/ClearRefinements.vue?vue&type=template&id=41d81b11&lang.js"],"sourcesContent":["<!-- @MAJOR remove `type=\"reset\"` -->\n<template>\n <div v-if=\"state\" :class=\"suit()\">\n <slot\n :can-refine=\"canRefine\"\n :refine=\"state.refine\"\n :createURL=\"state.createURL\"\n >\n <button\n type=\"reset\"\n :class=\"[suit('button'), !canRefine && suit('button', 'disabled')]\"\n :disabled=\"!canRefine\"\n @click.prevent=\"state.refine\"\n >\n <slot name=\"resetLabel\"> Clear refinements </slot>\n </button>\n </slot>\n </div>\n</template>\n\n<script>\nimport { connectClearRefinements } from 'instantsearch.js/es/connectors';\n\nimport { createPanelConsumerMixin } from '../mixins/panel';\nimport { createSuitMixin } from '../mixins/suit';\nimport { createWidgetMixin } from '../mixins/widget';\n\nexport default {\n name: 'AisClearRefinements',\n mixins: [\n createWidgetMixin(\n {\n connector: connectClearRefinements,\n },\n {\n $$widgetType: 'ais.clearRefinements',\n }\n ),\n createPanelConsumerMixin(),\n createSuitMixin({ name: 'ClearRefinements' }),\n ],\n props: {\n excludedAttributes: {\n type: Array,\n default: undefined,\n },\n includedAttributes: {\n type: Array,\n default: undefined,\n },\n transformItems: {\n type: Function,\n default: undefined,\n },\n },\n computed: {\n widgetParams() {\n return {\n includedAttributes: this.includedAttributes,\n excludedAttributes: this.excludedAttributes,\n transformItems: this.transformItems,\n };\n },\n canRefine() {\n return this.state.hasRefinements;\n },\n },\n};\n</script>\n"],"names":["canRefine","$options","refine","_ctx","type","class","disabled","_renderSlot"],"mappings":"4SAKOA,UAAYC,YACZC,OAAQC,QAAMD,kEAIbE,KAAK,QACJC,SAAQF,6DACRG,UAAWL,4KAGZM"}
@@ -1,2 +1,2 @@
1
- import e from"./Menu.vue_vue&type=script&lang.js";import{render as t}from"./Menu.vue_vue&type=template&id=8e757064&lang.js";e.render=t;export default e;
1
+ import e from"./Menu.vue_vue&type=script&lang.js";import{render as t}from"./Menu.vue_vue&type=template&id=55b32cf6&lang.js";e.render=t;export default e;
2
2
  //# sourceMappingURL=Menu.vue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.vue_vue&type=script&lang.js","sources":["../../../../src/components/Menu.vue"],"sourcesContent":["<template>\n <div\n v-if=\"state\"\n :class=\"[suit(), !state.canRefine && suit('', 'noRefinement')]\"\n >\n <slot\n :items=\"state.items\"\n :can-refine=\"state.canRefine\"\n :can-toggle-show-more=\"state.canToggleShowMore\"\n :is-showing-more=\"state.isShowingMore\"\n :refine=\"state.refine\"\n :createURL=\"state.createURL\"\n :toggle-show-more=\"state.toggleShowMore\"\n :send-event=\"state.sendEvent\"\n >\n <ul :class=\"suit('list')\">\n <li\n v-for=\"item in state.items\"\n :key=\"item.value\"\n :class=\"[suit('item'), item.isRefined && suit('item', 'selected')]\"\n >\n <a\n :href=\"state.createURL(item.value)\"\n :class=\"suit('link')\"\n @click.prevent=\"state.refine(item.value)\"\n >\n <span :class=\"suit('label')\">{{ item.label }}</span>\n <span :class=\"suit('count')\">{{ item.count }}</span>\n </a>\n </li>\n </ul>\n\n <button\n v-if=\"showShowMoreButton\"\n :class=\"[\n suit('showMore'),\n !state.canToggleShowMore && suit('showMore', 'disabled'),\n ]\"\n :disabled=\"!state.canToggleShowMore\"\n @click.prevent=\"state.toggleShowMore()\"\n >\n <slot name=\"showMoreLabel\" :is-showing-more=\"state.isShowingMore\">\n {{ state.isShowingMore ? 'Show less' : 'Show more' }}\n </slot>\n </button>\n </slot>\n </div>\n</template>\n\n<script>\nimport { connectMenu } from 'instantsearch.js/es/connectors';\n\nimport { createPanelConsumerMixin } from '../mixins/panel';\nimport { createSuitMixin } from '../mixins/suit';\nimport { createWidgetMixin } from '../mixins/widget';\n\nexport default {\n name: 'AisMenu',\n mixins: [\n createSuitMixin({ name: 'Menu' }),\n createWidgetMixin(\n { connector: connectMenu },\n {\n $$widgetType: 'ais.menu',\n }\n ),\n createPanelConsumerMixin(),\n ],\n props: {\n attribute: {\n type: String,\n required: true,\n },\n // TODO: implement searchable in connector\n // searchable: {\n // type: Boolean,\n // default: false,\n // },\n limit: {\n type: Number,\n default: undefined,\n },\n showMoreLimit: {\n type: Number,\n default: undefined,\n },\n showMore: {\n type: Boolean,\n default: false,\n },\n sortBy: {\n type: [Array, Function],\n default: undefined,\n },\n transformItems: {\n type: Function,\n default: undefined,\n },\n },\n computed: {\n widgetParams() {\n return {\n attribute: this.attribute,\n limit: this.limit,\n showMore: this.showMore,\n showMoreLimit: this.showMoreLimit,\n sortBy: this.sortBy,\n transformItems: this.transformItems,\n };\n },\n showShowMoreButton() {\n return this.state.canRefine && this.showMore;\n },\n },\n};\n</script>\n"],"names":["name","mixins","createSuitMixin","createWidgetMixin","connector","connectMenu","$$widgetType","createPanelConsumerMixin","props","attribute","type","String","required","limit","Number","default","undefined","showMoreLimit","showMore","Boolean","sortBy","Array","Function","transformItems","computed","widgetParams","this","showShowMoreButton","state","canRefine"],"mappings":"8PAwDe,CACbA,KAAM,UACNC,OAAQ,CACNC,EAAgB,CAAEF,KAAM,SACxBG,EACE,CAAEC,UAAWC,GACb,CACEC,aAAc,aAGlBC,KAEFC,MAAO,CACLC,UAAW,CACTC,KAAMC,OACNC,UAAU,GAOZC,MAAO,CACLH,KAAMI,OACNC,aAASC,GAEXC,cAAe,CACbP,KAAMI,OACNC,aAASC,GAEXE,SAAU,CACRR,KAAMS,QACNJ,SAAS,GAEXK,OAAQ,CACNV,KAAM,CAACW,MAAOC,UACdP,aAASC,GAEXO,eAAgB,CACdb,KAAMY,SACNP,aAASC,IAGbQ,SAAU,CACRC,wBACE,MAAO,CACLhB,UAAWiB,KAAKjB,UAChBI,MAAOa,KAAKb,MACZK,SAAUQ,KAAKR,SACfD,cAAeS,KAAKT,cACpBG,OAAQM,KAAKN,OACbG,eAAgBG,KAAKH,iBAGzBI,8BACE,OAAOD,KAAKE,MAAMC,WAAaH,KAAKR"}
1
+ {"version":3,"file":"Menu.vue_vue&type=script&lang.js","sources":["../../../../src/components/Menu.vue"],"sourcesContent":["<template>\n <div\n v-if=\"state\"\n :class=\"[suit(), !state.canRefine && suit('', 'noRefinement')]\"\n >\n <slot\n :items=\"state.items\"\n :can-refine=\"state.canRefine\"\n :can-toggle-show-more=\"state.canToggleShowMore\"\n :is-showing-more=\"state.isShowingMore\"\n :refine=\"state.refine\"\n :createURL=\"state.createURL\"\n :toggle-show-more=\"state.toggleShowMore\"\n :send-event=\"state.sendEvent\"\n >\n <ul :class=\"suit('list')\">\n <li\n v-for=\"item in state.items\"\n :key=\"item.value\"\n :class=\"[suit('item'), item.isRefined && suit('item', 'selected')]\"\n >\n <a\n :href=\"state.createURL(item.value)\"\n :class=\"suit('link')\"\n @click.prevent=\"state.refine(item.value)\"\n >\n <span :class=\"suit('label')\">{{ item.label }}</span>\n <span :class=\"suit('count')\">{{ item.count }}</span>\n </a>\n </li>\n </ul>\n\n <button\n v-if=\"showShowMoreButton\"\n :class=\"[\n suit('showMore'),\n !state.canToggleShowMore && suit('showMore', 'disabled'),\n ]\"\n :disabled=\"!state.canToggleShowMore\"\n @click.prevent=\"state.toggleShowMore()\"\n >\n <slot name=\"showMoreLabel\" :is-showing-more=\"state.isShowingMore\">{{\n state.isShowingMore ? 'Show less' : 'Show more'\n }}</slot>\n </button>\n </slot>\n </div>\n</template>\n\n<script>\nimport { connectMenu } from 'instantsearch.js/es/connectors';\n\nimport { createPanelConsumerMixin } from '../mixins/panel';\nimport { createSuitMixin } from '../mixins/suit';\nimport { createWidgetMixin } from '../mixins/widget';\n\nexport default {\n name: 'AisMenu',\n mixins: [\n createSuitMixin({ name: 'Menu' }),\n createWidgetMixin(\n { connector: connectMenu },\n {\n $$widgetType: 'ais.menu',\n }\n ),\n createPanelConsumerMixin(),\n ],\n props: {\n attribute: {\n type: String,\n required: true,\n },\n // TODO: implement searchable in connector\n // searchable: {\n // type: Boolean,\n // default: false,\n // },\n limit: {\n type: Number,\n default: undefined,\n },\n showMoreLimit: {\n type: Number,\n default: undefined,\n },\n showMore: {\n type: Boolean,\n default: false,\n },\n sortBy: {\n type: [Array, Function],\n default: undefined,\n },\n transformItems: {\n type: Function,\n default: undefined,\n },\n },\n computed: {\n widgetParams() {\n return {\n attribute: this.attribute,\n limit: this.limit,\n showMore: this.showMore,\n showMoreLimit: this.showMoreLimit,\n sortBy: this.sortBy,\n transformItems: this.transformItems,\n };\n },\n showShowMoreButton() {\n return this.state.canRefine && this.showMore;\n },\n },\n};\n</script>\n"],"names":["name","mixins","createSuitMixin","createWidgetMixin","connector","connectMenu","$$widgetType","createPanelConsumerMixin","props","attribute","type","String","required","limit","Number","default","undefined","showMoreLimit","showMore","Boolean","sortBy","Array","Function","transformItems","computed","widgetParams","this","showShowMoreButton","state","canRefine"],"mappings":"8PAwDe,CACbA,KAAM,UACNC,OAAQ,CACNC,EAAgB,CAAEF,KAAM,SACxBG,EACE,CAAEC,UAAWC,GACb,CACEC,aAAc,aAGlBC,KAEFC,MAAO,CACLC,UAAW,CACTC,KAAMC,OACNC,UAAU,GAOZC,MAAO,CACLH,KAAMI,OACNC,aAASC,GAEXC,cAAe,CACbP,KAAMI,OACNC,aAASC,GAEXE,SAAU,CACRR,KAAMS,QACNJ,SAAS,GAEXK,OAAQ,CACNV,KAAM,CAACW,MAAOC,UACdP,aAASC,GAEXO,eAAgB,CACdb,KAAMY,SACNP,aAASC,IAGbQ,SAAU,CACRC,wBACE,MAAO,CACLhB,UAAWiB,KAAKjB,UAChBI,MAAOa,KAAKb,MACZK,SAAUQ,KAAKR,SACfD,cAAeS,KAAKT,cACpBG,OAAQM,KAAKN,OACbG,eAAgBG,KAAKH,iBAGzBI,8BACE,OAAOD,KAAKE,MAAMC,WAAaH,KAAKR"}
@@ -1,2 +1,2 @@
1
1
  import{openBlock as e,createElementBlock as t,normalizeClass as s,renderSlot as o,createElementVNode as n,Fragment as i,renderList as a,withModifiers as r,toDisplayString as l,createTextVNode as u,createCommentVNode as c}from"vue";var h=["href","onClick"],g=["disabled"];function w(w,f,M,S,d,v){return w.state?(e(),t("div",{key:0,class:s([w.suit(),!w.state.canRefine&&w.suit("","noRefinement")])},[o(w.$slots,"default",{items:w.state.items,canRefine:w.state.canRefine,canToggleShowMore:w.state.canToggleShowMore,isShowingMore:w.state.isShowingMore,refine:w.state.refine,createURL:w.state.createURL,toggleShowMore:w.state.toggleShowMore,sendEvent:w.state.sendEvent},function(){return[n("ul",{class:s(w.suit("list"))},[(e(!0),t(i,null,a(w.state.items,function(o){return e(),t("li",{key:o.value,class:s([w.suit("item"),o.isRefined&&w.suit("item","selected")])},[n("a",{href:w.state.createURL(o.value),class:s(w.suit("link")),onClick:r(function(e){return w.state.refine(o.value)},["prevent"])},[n("span",{class:s(w.suit("label"))},l(o.label),3),n("span",{class:s(w.suit("count"))},l(o.count),3)],10,h)],2)}),128))],2),v.showShowMoreButton?(e(),t("button",{key:0,class:s([w.suit("showMore"),!w.state.canToggleShowMore&&w.suit("showMore","disabled")]),disabled:!w.state.canToggleShowMore,onClick:f[0]||(f[0]=r(function(e){return w.state.toggleShowMore()},["prevent"]))},[o(w.$slots,"showMoreLabel",{isShowingMore:w.state.isShowingMore},function(){return[u(l(w.state.isShowingMore?"Show less":"Show more"),1)]})],10,g)):c("",!0)]})],2)):c("",!0)}export{w as render};
2
- //# sourceMappingURL=Menu.vue_vue&type=template&id=8e757064&lang.js.map
2
+ //# sourceMappingURL=Menu.vue_vue&type=template&id=55b32cf6&lang.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Menu.vue_vue&type=template&id=55b32cf6&lang.js","sources":["../../../../src/components/Menu.vue?vue&type=template&id=55b32cf6&lang.js"],"sourcesContent":["<template>\n <div\n v-if=\"state\"\n :class=\"[suit(), !state.canRefine && suit('', 'noRefinement')]\"\n >\n <slot\n :items=\"state.items\"\n :can-refine=\"state.canRefine\"\n :can-toggle-show-more=\"state.canToggleShowMore\"\n :is-showing-more=\"state.isShowingMore\"\n :refine=\"state.refine\"\n :createURL=\"state.createURL\"\n :toggle-show-more=\"state.toggleShowMore\"\n :send-event=\"state.sendEvent\"\n >\n <ul :class=\"suit('list')\">\n <li\n v-for=\"item in state.items\"\n :key=\"item.value\"\n :class=\"[suit('item'), item.isRefined && suit('item', 'selected')]\"\n >\n <a\n :href=\"state.createURL(item.value)\"\n :class=\"suit('link')\"\n @click.prevent=\"state.refine(item.value)\"\n >\n <span :class=\"suit('label')\">{{ item.label }}</span>\n <span :class=\"suit('count')\">{{ item.count }}</span>\n </a>\n </li>\n </ul>\n\n <button\n v-if=\"showShowMoreButton\"\n :class=\"[\n suit('showMore'),\n !state.canToggleShowMore && suit('showMore', 'disabled'),\n ]\"\n :disabled=\"!state.canToggleShowMore\"\n @click.prevent=\"state.toggleShowMore()\"\n >\n <slot name=\"showMoreLabel\" :is-showing-more=\"state.isShowingMore\">{{\n state.isShowingMore ? 'Show less' : 'Show more'\n }}</slot>\n </button>\n </slot>\n </div>\n</template>\n\n<script>\nimport { connectMenu } from 'instantsearch.js/es/connectors';\n\nimport { createPanelConsumerMixin } from '../mixins/panel';\nimport { createSuitMixin } from '../mixins/suit';\nimport { createWidgetMixin } from '../mixins/widget';\n\nexport default {\n name: 'AisMenu',\n mixins: [\n createSuitMixin({ name: 'Menu' }),\n createWidgetMixin(\n { connector: connectMenu },\n {\n $$widgetType: 'ais.menu',\n }\n ),\n createPanelConsumerMixin(),\n ],\n props: {\n attribute: {\n type: String,\n required: true,\n },\n // TODO: implement searchable in connector\n // searchable: {\n // type: Boolean,\n // default: false,\n // },\n limit: {\n type: Number,\n default: undefined,\n },\n showMoreLimit: {\n type: Number,\n default: undefined,\n },\n showMore: {\n type: Boolean,\n default: false,\n },\n sortBy: {\n type: [Array, Function],\n default: undefined,\n },\n transformItems: {\n type: Function,\n default: undefined,\n },\n },\n computed: {\n widgetParams() {\n return {\n attribute: this.attribute,\n limit: this.limit,\n showMore: this.showMore,\n showMoreLimit: this.showMoreLimit,\n sortBy: this.sortBy,\n transformItems: this.transformItems,\n };\n },\n showShowMoreButton() {\n return this.state.canRefine && this.showMore;\n },\n },\n};\n</script>\n"],"names":["_ctx","_createElementBlock","class","canRefine","_renderSlot","items","canToggleShowMore","isShowingMore","refine","createURL","toggleShowMore","sendEvent","_createElementVNode","item","key","value","isRefined","href","onClick","label","count","$options","disabled"],"mappings":"8SAEUA,aADRC,eAEGC,SAAQF,UAASA,QAAMG,WAAaH,8BAErCI,sBACGC,MAAOL,QAAMK,MACbF,UAAYH,QAAMG,UAClBG,kBAAsBN,QAAMM,kBAC5BC,cAAiBP,QAAMO,cACvBC,OAAQR,QAAMQ,OACdC,UAAWT,QAAMS,UACjBC,eAAkBV,QAAMU,eACxBC,UAAYX,QAAMW,6BAEnBC,QAAKV,QAAOF,yBACVC,WACiBD,QAAMK,eAAdQ,cADTZ,QAEGa,IAAKD,EAAKE,MACVb,SAAQF,eAAca,EAAKG,WAAahB,8BAEzCY,OACGK,KAAMjB,QAAMS,UAAUI,EAAKE,OAC3Bb,QAAOF,gBACPkB,6BAAelB,QAAMQ,OAAOK,EAAKE,uBAElCH,UAAOV,QAAOF,oBAAkBa,EAAKM,UACrCP,UAAOV,QAAOF,oBAAkBa,EAAKO,iCAMnCC,0BADRpB,kBAEGC,wFAIAoB,UAAWtB,QAAMM,kBACjBY,yCAAelB,QAAMU,kCAEtBN,4BAA4BG,cAAiBP,QAAMO,qCACjDP,QAAMO"}