vue-instantsearch 4.12.0 → 4.13.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 (65) hide show
  1. package/package.json +3 -3
  2. package/src/__tests__/common-connectors.test.js +86 -21
  3. package/src/__tests__/common-widgets.test.js +75 -0
  4. package/src/components/SearchBox.vue +4 -4
  5. package/src/components/SearchInput.vue +3 -10
  6. package/src/components/SortBy.vue +1 -0
  7. package/src/components/Stats.vue +40 -2
  8. package/src/components/ToggleRefinement.vue +1 -1
  9. package/src/components/__tests__/SearchBox.js +30 -101
  10. package/src/components/__tests__/SortBy.js +0 -53
  11. package/src/components/__tests__/ToggleRefinement.js +0 -132
  12. package/src/components/__tests__/__snapshots__/RefinementList.js.snap +8 -24
  13. package/src/components/__tests__/__snapshots__/SortBy.js.snap +0 -22
  14. package/src/components/__tests__/__snapshots__/ToggleRefinement.js.snap +0 -51
  15. package/src/util/vue-compat/index-vue3.js +3 -2
  16. package/vue2/cjs/index.js +1 -1
  17. package/vue2/cjs/index.js.map +1 -1
  18. package/vue2/es/package.json.js +1 -1
  19. package/vue2/es/src/components/SearchBox.vue_rollup-plugin-vue=script.js +1 -1
  20. package/vue2/es/src/components/SearchInput.vue.js +1 -1
  21. package/vue2/es/src/components/SortBy.vue.js +1 -1
  22. package/vue2/es/src/components/Stats.vue.js +1 -1
  23. package/vue2/es/src/components/Stats.vue_rollup-plugin-vue=script.js +1 -1
  24. package/vue2/es/src/components/ToggleRefinement.vue.js +1 -1
  25. package/vue2/umd/index.js +1 -1
  26. package/vue2/umd/index.js.map +1 -1
  27. package/vue3/cjs/index.js +1 -1
  28. package/vue3/cjs/index.js.map +1 -1
  29. package/vue3/es/package.json.js +1 -1
  30. package/vue3/es/src/components/SearchBox.vue.js +1 -1
  31. package/vue3/es/src/components/SearchBox.vue_vue&type=script&lang.js +1 -1
  32. package/vue3/es/src/components/SearchBox.vue_vue&type=script&lang.js.map +1 -1
  33. package/vue3/es/src/components/{SearchBox.vue_vue&type=template&id=27000fa5&lang.js → SearchBox.vue_vue&type=template&id=47fdc6ba&lang.js} +1 -1
  34. package/vue3/es/src/components/SearchBox.vue_vue&type=template&id=47fdc6ba&lang.js.map +1 -0
  35. package/vue3/es/src/components/SearchInput.vue.js +1 -1
  36. package/vue3/es/src/components/SearchInput.vue_vue&type=script&lang.js.map +1 -1
  37. package/vue3/es/src/components/SearchInput.vue_vue&type=template&id=2e14ab6e&lang.js +2 -0
  38. package/vue3/es/src/components/SearchInput.vue_vue&type=template&id=2e14ab6e&lang.js.map +1 -0
  39. package/vue3/es/src/components/SortBy.vue.js +1 -1
  40. package/vue3/es/src/components/SortBy.vue_vue&type=script&lang.js.map +1 -1
  41. package/vue3/es/src/components/SortBy.vue_vue&type=template&id=78751313&lang.js +2 -0
  42. package/vue3/es/src/components/SortBy.vue_vue&type=template&id=78751313&lang.js.map +1 -0
  43. package/vue3/es/src/components/Stats.vue.js +1 -1
  44. package/vue3/es/src/components/Stats.vue_vue&type=script&lang.js +1 -1
  45. package/vue3/es/src/components/Stats.vue_vue&type=script&lang.js.map +1 -1
  46. package/vue3/es/src/components/Stats.vue_vue&type=template&id=67854642&lang.js +2 -0
  47. package/vue3/es/src/components/Stats.vue_vue&type=template&id=67854642&lang.js.map +1 -0
  48. package/vue3/es/src/components/ToggleRefinement.vue.js +1 -1
  49. package/vue3/es/src/components/ToggleRefinement.vue_vue&type=script&lang.js.map +1 -1
  50. package/vue3/es/src/components/{ToggleRefinement.vue_vue&type=template&id=1e8d14ba&lang.js → ToggleRefinement.vue_vue&type=template&id=4074ad16&lang.js} +2 -2
  51. package/vue3/es/src/components/ToggleRefinement.vue_vue&type=template&id=4074ad16&lang.js.map +1 -0
  52. package/vue3/es/src/util/vue-compat/index-vue3.js +1 -1
  53. package/vue3/es/src/util/vue-compat/index-vue3.js.map +1 -1
  54. package/vue3/umd/index.js +1 -1
  55. package/vue3/umd/index.js.map +1 -1
  56. package/src/components/__tests__/Stats.js +0 -62
  57. package/src/components/__tests__/__snapshots__/SearchBox.js.snap +0 -59
  58. package/vue3/es/src/components/SearchBox.vue_vue&type=template&id=27000fa5&lang.js.map +0 -1
  59. package/vue3/es/src/components/SearchInput.vue_vue&type=template&id=00f0f603&lang.js +0 -2
  60. package/vue3/es/src/components/SearchInput.vue_vue&type=template&id=00f0f603&lang.js.map +0 -1
  61. package/vue3/es/src/components/SortBy.vue_vue&type=template&id=507e7d3a&lang.js +0 -2
  62. package/vue3/es/src/components/SortBy.vue_vue&type=template&id=507e7d3a&lang.js.map +0 -1
  63. package/vue3/es/src/components/Stats.vue_vue&type=template&id=6d9c672c&lang.js +0 -2
  64. package/vue3/es/src/components/Stats.vue_vue&type=template&id=6d9c672c&lang.js.map +0 -1
  65. package/vue3/es/src/components/ToggleRefinement.vue_vue&type=template&id=1e8d14ba&lang.js.map +0 -1
@@ -1,2 +1,2 @@
1
- var r="4.12.0";export{r as version};
1
+ var r="4.13.0";export{r as version};
2
2
  //# sourceMappingURL=package.json.js.map
@@ -1,2 +1,2 @@
1
- import e from"./SearchBox.vue_vue&type=script&lang.js";import{render as r}from"./SearchBox.vue_vue&type=template&id=27000fa5&lang.js";e.render=r;export default e;
1
+ import e from"./SearchBox.vue_vue&type=script&lang.js";import{render as r}from"./SearchBox.vue_vue&type=template&id=47fdc6ba&lang.js";e.render=r;export default e;
2
2
  //# sourceMappingURL=SearchBox.vue.js.map
@@ -1,2 +1,2 @@
1
- import{createSuitMixin as e}from"../mixins/suit.js";import{isVue2 as t,isVue3 as i}from"../util/vue-compat/index-vue3.js";import{createWidgetMixin as o}from"../mixins/widget.js";import{connectSearchBox as s}from"instantsearch.js/es/connectors/index.js";import a from"./SearchInput.vue.js";export default{name:"AisSearchBox",mixins:[o({connector:s},{$$widgetType:"ais.searchBox"}),e({name:"SearchBox"})],components:{SearchInput:a},props:{placeholder:{type:String,default:"Search here…"},autofocus:{type:Boolean,default:!1},showLoadingIndicator:{type:Boolean,default:!1},submitTitle:{type:String,default:"Search"},resetTitle:{type:String,default:"Clear"},value:{type:String,default:void 0},modelValue:{type:String,default:void 0},queryHook:{type:Function,default:void 0}},data:function(){return{localValue:"",isVue2:t,isVue3:i}},computed:{widgetParams:function(){return{queryHook:this.queryHook}},isControlled:function(){return void 0!==this.value||void 0!==this.modelValue},model:function(){return this.value||this.modelValue},currentRefinement:{get:function(){this.isControlled&&this.model!==this.localValue&&(this.localValue=this.model,this.$emit("input",this.model),this.$emit("update:modelValue",this.model),this.state.refine(this.model));var e=this.$refs.searchInput;return e&&e.isFocused()?this.localValue:this.model||this.state.query||""},set:function(e){this.localValue=e,this.state.refine(e),this.isControlled&&(this.$emit("input",e),this.$emit("update:modelValue",e))}}}};
1
+ import{createSuitMixin as e}from"../mixins/suit.js";import{isVue2 as t,isVue3 as i}from"../util/vue-compat/index-vue3.js";import{createWidgetMixin as o}from"../mixins/widget.js";import{connectSearchBox as s}from"instantsearch.js/es/connectors/index.js";import u from"./SearchInput.vue.js";export default{name:"AisSearchBox",mixins:[o({connector:s},{$$widgetType:"ais.searchBox"}),e({name:"SearchBox"})],components:{SearchInput:u},props:{placeholder:{type:String,default:""},autofocus:{type:Boolean,default:!1},showLoadingIndicator:{type:Boolean,default:!0},submitTitle:{type:String,default:"Submit the search query"},resetTitle:{type:String,default:"Clear the search query"},value:{type:String,default:void 0},modelValue:{type:String,default:void 0},queryHook:{type:Function,default:void 0}},data:function(){return{localValue:"",isVue2:t,isVue3:i}},computed:{widgetParams:function(){return{queryHook:this.queryHook}},isControlled:function(){return void 0!==this.value||void 0!==this.modelValue},model:function(){return this.value||this.modelValue},currentRefinement:{get:function(){this.isControlled&&this.model!==this.localValue&&(this.localValue=this.model,this.$emit("input",this.model),this.$emit("update:modelValue",this.model),this.state.refine(this.model));var e=this.$refs.searchInput;return e&&e.isFocused()?this.localValue:this.model||this.state.query||""},set:function(e){this.localValue=e,this.state.refine(e),this.isControlled&&(this.$emit("input",e),this.$emit("update:modelValue",e))}}}};
2
2
  //# sourceMappingURL=SearchBox.vue_vue&type=script&lang.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SearchBox.vue_vue&type=script&lang.js","sources":["../../../../src/components/SearchBox.vue"],"sourcesContent":["<template>\n <div v-if=\"state\" :class=\"suit()\">\n <slot\n :current-refinement=\"currentRefinement\"\n :is-search-stalled=\"state.isSearchStalled\"\n :refine=\"state.refine\"\n >\n <search-input\n @focus=\"$emit('focus', $event)\"\n @blur=\"$emit('blur', $event)\"\n @reset=\"$emit('reset')\"\n :placeholder=\"placeholder\"\n :autofocus=\"autofocus\"\n :show-loading-indicator=\"showLoadingIndicator\"\n :should-show-loading-indicator=\"state.isSearchStalled\"\n :submit-title=\"submitTitle\"\n :reset-title=\"resetTitle\"\n :class-names=\"classNames\"\n v-model=\"currentRefinement\"\n ref=\"searchInput\"\n >\n <template #loading-indicator v-if=\"isVue3\">\n <slot name=\"loading-indicator\" />\n </template>\n <slot v-if=\"isVue2\" name=\"loading-indicator\" slot=\"loading-indicator\" />\n\n <template #submit-icon v-if=\"isVue3\">\n <slot name=\"submit-icon\" />\n </template>\n <slot v-if=\"isVue2\" name=\"submit-icon\" slot=\"submit-icon\" />\n\n <template #reset-icon v-if=\"isVue3\">\n <slot name=\"reset-icon\" />\n </template>\n <slot v-if=\"isVue2\" name=\"reset-icon\" slot=\"reset-icon\" />\n </search-input>\n </slot>\n </div>\n</template>\n\n<script>\nimport { connectSearchBox } from 'instantsearch.js/es/connectors';\n\nimport { createSuitMixin } from '../mixins/suit';\nimport { createWidgetMixin } from '../mixins/widget';\nimport { isVue3, isVue2 } from '../util/vue-compat';\n\nimport SearchInput from './SearchInput.vue';\n\nexport default {\n name: 'AisSearchBox',\n mixins: [\n createWidgetMixin(\n {\n connector: connectSearchBox,\n },\n {\n $$widgetType: 'ais.searchBox',\n }\n ),\n createSuitMixin({ name: 'SearchBox' }),\n ],\n components: {\n SearchInput,\n },\n props: {\n placeholder: {\n type: String,\n default: 'Search here…',\n },\n autofocus: {\n type: Boolean,\n default: false,\n },\n showLoadingIndicator: {\n type: Boolean,\n default: false,\n },\n submitTitle: {\n type: String,\n default: 'Search',\n },\n resetTitle: {\n type: String,\n default: 'Clear',\n },\n value: {\n type: String,\n default: undefined,\n },\n modelValue: {\n type: String,\n default: undefined,\n },\n queryHook: {\n type: Function,\n default: undefined,\n },\n },\n data() {\n return {\n localValue: '',\n isVue2,\n isVue3,\n };\n },\n computed: {\n widgetParams() {\n return {\n queryHook: this.queryHook,\n };\n },\n isControlled() {\n return (\n typeof this.value !== 'undefined' ||\n typeof this.modelValue !== 'undefined'\n );\n },\n model() {\n return this.value || this.modelValue;\n },\n currentRefinement: {\n get() {\n // if the input is controlled, but not up to date\n // this means it didn't search, and we should pretend it was `set`\n if (this.isControlled && this.model !== this.localValue) {\n // eslint-disable-next-line vue/no-side-effects-in-computed-properties\n this.localValue = this.model;\n this.$emit('input', this.model);\n this.$emit('update:modelValue', this.model);\n this.state.refine(this.model);\n }\n\n // we return the local value if the input is focused to avoid\n // concurrent updates when typing\n const { searchInput } = this.$refs;\n if (searchInput && searchInput.isFocused()) {\n return this.localValue;\n }\n\n return this.model || this.state.query || '';\n },\n set(val) {\n this.localValue = val;\n this.state.refine(val);\n if (this.isControlled) {\n this.$emit('input', val);\n this.$emit('update:modelValue', val);\n }\n },\n },\n },\n};\n</script>\n"],"names":["name","mixins","createWidgetMixin","connector","connectSearchBox","$$widgetType","createSuitMixin","components","SearchInput","props","placeholder","type","String","default","autofocus","Boolean","showLoadingIndicator","submitTitle","resetTitle","value","undefined","modelValue","queryHook","Function","data","localValue","isVue2","isVue3","computed","widgetParams","this","isControlled","model","currentRefinement","get","$emit","state","refine","$refs","searchInput","isFocused","query","set","val"],"mappings":"+SAiDe,CACbA,KAAM,eACNC,OAAQ,CACNC,EACE,CACEC,UAAWC,GAEb,CACEC,aAAc,kBAGlBC,EAAgB,CAAEN,KAAM,eAE1BO,WAAY,aACVC,GAEFC,MAAO,CACLC,YAAa,CACXC,KAAMC,OACNC,QAAS,gBAEXC,UAAW,CACTH,KAAMI,QACNF,SAAS,GAEXG,qBAAsB,CACpBL,KAAMI,QACNF,SAAS,GAEXI,YAAa,CACXN,KAAMC,OACNC,QAAS,UAEXK,WAAY,CACVP,KAAMC,OACNC,QAAS,SAEXM,MAAO,CACLR,KAAMC,OACNC,aAASO,GAEXC,WAAY,CACVV,KAAMC,OACNC,aAASO,GAEXE,UAAW,CACTX,KAAMY,SACNV,aAASO,IAGbI,gBACE,MAAO,CACLC,WAAY,UACZC,SACAC,IAGJC,SAAU,CACRC,wBACE,MAAO,CACLP,UAAWQ,KAAKR,YAGpBS,wBACE,YACwB,IAAfD,KAAKX,YACe,IAApBW,KAAKT,YAGhBW,iBACE,OAAOF,KAAKX,OAASW,KAAKT,YAE5BY,kBAAmB,CACjBC,eAGMJ,KAAKC,cAAgBD,KAAKE,QAAUF,KAAKL,aAE3CK,KAAKL,WAAaK,KAAKE,MACvBF,KAAKK,MAAM,QAASL,KAAKE,OACzBF,KAAKK,MAAM,oBAAqBL,KAAKE,OACrCF,KAAKM,MAAMC,OAAOP,KAAKE,cAKDF,KAAKQ,kBAC7B,OAAIC,GAAeA,EAAYC,YACtBV,KAAKL,WAGPK,KAAKE,OAASF,KAAKM,MAAMK,OAAS,IAE3CC,aAAIC,GACFb,KAAKL,WAAakB,EAClBb,KAAKM,MAAMC,OAAOM,GACdb,KAAKC,eACPD,KAAKK,MAAM,QAASQ,GACpBb,KAAKK,MAAM,oBAAqBQ"}
1
+ {"version":3,"file":"SearchBox.vue_vue&type=script&lang.js","sources":["../../../../src/components/SearchBox.vue"],"sourcesContent":["<template>\n <div v-if=\"state\" :class=\"suit()\">\n <slot\n :current-refinement=\"currentRefinement\"\n :is-search-stalled=\"state.isSearchStalled\"\n :refine=\"state.refine\"\n >\n <search-input\n @focus=\"$emit('focus', $event)\"\n @blur=\"$emit('blur', $event)\"\n @reset=\"$emit('reset')\"\n :placeholder=\"placeholder\"\n :autofocus=\"autofocus\"\n :show-loading-indicator=\"showLoadingIndicator\"\n :should-show-loading-indicator=\"state.isSearchStalled\"\n :submit-title=\"submitTitle\"\n :reset-title=\"resetTitle\"\n :class-names=\"classNames\"\n v-model=\"currentRefinement\"\n ref=\"searchInput\"\n >\n <template #loading-indicator v-if=\"isVue3\">\n <slot name=\"loading-indicator\" />\n </template>\n <slot v-if=\"isVue2\" name=\"loading-indicator\" slot=\"loading-indicator\" />\n\n <template #submit-icon v-if=\"isVue3\">\n <slot name=\"submit-icon\" />\n </template>\n <slot v-if=\"isVue2\" name=\"submit-icon\" slot=\"submit-icon\" />\n\n <template #reset-icon v-if=\"isVue3\">\n <slot name=\"reset-icon\" />\n </template>\n <slot v-if=\"isVue2\" name=\"reset-icon\" slot=\"reset-icon\" />\n </search-input>\n </slot>\n </div>\n</template>\n\n<script>\nimport { connectSearchBox } from 'instantsearch.js/es/connectors';\n\nimport { createSuitMixin } from '../mixins/suit';\nimport { createWidgetMixin } from '../mixins/widget';\nimport { isVue3, isVue2 } from '../util/vue-compat';\n\nimport SearchInput from './SearchInput.vue';\n\nexport default {\n name: 'AisSearchBox',\n mixins: [\n createWidgetMixin(\n {\n connector: connectSearchBox,\n },\n {\n $$widgetType: 'ais.searchBox',\n }\n ),\n createSuitMixin({ name: 'SearchBox' }),\n ],\n components: {\n SearchInput,\n },\n props: {\n placeholder: {\n type: String,\n default: '',\n },\n autofocus: {\n type: Boolean,\n default: false,\n },\n showLoadingIndicator: {\n type: Boolean,\n default: true,\n },\n submitTitle: {\n type: String,\n default: 'Submit the search query',\n },\n resetTitle: {\n type: String,\n default: 'Clear the search query',\n },\n value: {\n type: String,\n default: undefined,\n },\n modelValue: {\n type: String,\n default: undefined,\n },\n queryHook: {\n type: Function,\n default: undefined,\n },\n },\n data() {\n return {\n localValue: '',\n isVue2,\n isVue3,\n };\n },\n computed: {\n widgetParams() {\n return {\n queryHook: this.queryHook,\n };\n },\n isControlled() {\n return (\n typeof this.value !== 'undefined' ||\n typeof this.modelValue !== 'undefined'\n );\n },\n model() {\n return this.value || this.modelValue;\n },\n currentRefinement: {\n get() {\n // if the input is controlled, but not up to date\n // this means it didn't search, and we should pretend it was `set`\n if (this.isControlled && this.model !== this.localValue) {\n // eslint-disable-next-line vue/no-side-effects-in-computed-properties\n this.localValue = this.model;\n this.$emit('input', this.model);\n this.$emit('update:modelValue', this.model);\n this.state.refine(this.model);\n }\n\n // we return the local value if the input is focused to avoid\n // concurrent updates when typing\n const { searchInput } = this.$refs;\n if (searchInput && searchInput.isFocused()) {\n return this.localValue;\n }\n\n return this.model || this.state.query || '';\n },\n set(val) {\n this.localValue = val;\n this.state.refine(val);\n if (this.isControlled) {\n this.$emit('input', val);\n this.$emit('update:modelValue', val);\n }\n },\n },\n },\n};\n</script>\n"],"names":["name","mixins","createWidgetMixin","connector","connectSearchBox","$$widgetType","createSuitMixin","components","SearchInput","props","placeholder","type","String","default","autofocus","Boolean","showLoadingIndicator","submitTitle","resetTitle","value","undefined","modelValue","queryHook","Function","data","localValue","isVue2","isVue3","computed","widgetParams","this","isControlled","model","currentRefinement","get","$emit","state","refine","$refs","searchInput","isFocused","query","set","val"],"mappings":"+SAiDe,CACbA,KAAM,eACNC,OAAQ,CACNC,EACE,CACEC,UAAWC,GAEb,CACEC,aAAc,kBAGlBC,EAAgB,CAAEN,KAAM,eAE1BO,WAAY,aACVC,GAEFC,MAAO,CACLC,YAAa,CACXC,KAAMC,OACNC,QAAS,IAEXC,UAAW,CACTH,KAAMI,QACNF,SAAS,GAEXG,qBAAsB,CACpBL,KAAMI,QACNF,SAAS,GAEXI,YAAa,CACXN,KAAMC,OACNC,QAAS,2BAEXK,WAAY,CACVP,KAAMC,OACNC,QAAS,0BAEXM,MAAO,CACLR,KAAMC,OACNC,aAASO,GAEXC,WAAY,CACVV,KAAMC,OACNC,aAASO,GAEXE,UAAW,CACTX,KAAMY,SACNV,aAASO,IAGbI,gBACE,MAAO,CACLC,WAAY,UACZC,SACAC,IAGJC,SAAU,CACRC,wBACE,MAAO,CACLP,UAAWQ,KAAKR,YAGpBS,wBACE,YACwB,IAAfD,KAAKX,YACe,IAApBW,KAAKT,YAGhBW,iBACE,OAAOF,KAAKX,OAASW,KAAKT,YAE5BY,kBAAmB,CACjBC,eAGMJ,KAAKC,cAAgBD,KAAKE,QAAUF,KAAKL,aAE3CK,KAAKL,WAAaK,KAAKE,MACvBF,KAAKK,MAAM,QAASL,KAAKE,OACzBF,KAAKK,MAAM,oBAAqBL,KAAKE,OACrCF,KAAKM,MAAMC,OAAOP,KAAKE,cAKDF,KAAKQ,kBAC7B,OAAIC,GAAeA,EAAYC,YACtBV,KAAKL,WAGPK,KAAKE,OAASF,KAAKM,MAAMK,OAAS,IAE3CC,aAAIC,GACFb,KAAKL,WAAakB,EAClBb,KAAKM,MAAMC,OAAOM,GACdb,KAAKC,eACPD,KAAKK,MAAM,QAASQ,GACpBb,KAAKK,MAAM,oBAAqBQ"}
@@ -1,2 +1,2 @@
1
1
  import{resolveComponent as e,openBlock as t,createElementBlock as n,normalizeClass as i,renderSlot as o,createVNode as s,createSlots as r,withCtx as u,createCommentVNode as a}from"vue";function l(l,c,d,f,m,h){var $=e("search-input");return l.state?(t(),n("div",{key:0,class:i(l.suit())},[o(l.$slots,"default",{currentRefinement:h.currentRefinement,isSearchStalled:l.state.isSearchStalled,refine:l.state.refine},function(){return[s($,{onFocus:c[0]||(c[0]=function(e){return l.$emit("focus",e)}),onBlur:c[1]||(c[1]=function(e){return l.$emit("blur",e)}),onReset:c[2]||(c[2]=function(e){return l.$emit("reset")}),placeholder:d.placeholder,autofocus:d.autofocus,"show-loading-indicator":d.showLoadingIndicator,"should-show-loading-indicator":l.state.isSearchStalled,"submit-title":d.submitTitle,"reset-title":d.resetTitle,"class-names":l.classNames,modelValue:h.currentRefinement,"onUpdate:modelValue":c[3]||(c[3]=function(e){return h.currentRefinement=e}),ref:"searchInput"},r({default:u(function(){return[m.isVue2?o(l.$slots,"loading-indicator",{key:0,slot:"loading-indicator"}):a("",!0),m.isVue2?o(l.$slots,"submit-icon",{key:1,slot:"submit-icon"}):a("",!0),m.isVue2?o(l.$slots,"reset-icon",{key:2,slot:"reset-icon"}):a("",!0)]}),_:2},[m.isVue3?{name:"loading-indicator",fn:u(function(){return[o(l.$slots,"loading-indicator")]}),key:"0"}:void 0,m.isVue3?{name:"submit-icon",fn:u(function(){return[o(l.$slots,"submit-icon")]}),key:"1"}:void 0,m.isVue3?{name:"reset-icon",fn:u(function(){return[o(l.$slots,"reset-icon")]}),key:"2"}:void 0]),1032,["placeholder","autofocus","show-loading-indicator","should-show-loading-indicator","submit-title","reset-title","class-names","modelValue"])]})],2)):a("",!0)}export{l as render};
2
- //# sourceMappingURL=SearchBox.vue_vue&type=template&id=27000fa5&lang.js.map
2
+ //# sourceMappingURL=SearchBox.vue_vue&type=template&id=47fdc6ba&lang.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchBox.vue_vue&type=template&id=47fdc6ba&lang.js","sources":["../../../../src/components/SearchBox.vue?vue&type=template&id=47fdc6ba&lang.js"],"sourcesContent":["<template>\n <div v-if=\"state\" :class=\"suit()\">\n <slot\n :current-refinement=\"currentRefinement\"\n :is-search-stalled=\"state.isSearchStalled\"\n :refine=\"state.refine\"\n >\n <search-input\n @focus=\"$emit('focus', $event)\"\n @blur=\"$emit('blur', $event)\"\n @reset=\"$emit('reset')\"\n :placeholder=\"placeholder\"\n :autofocus=\"autofocus\"\n :show-loading-indicator=\"showLoadingIndicator\"\n :should-show-loading-indicator=\"state.isSearchStalled\"\n :submit-title=\"submitTitle\"\n :reset-title=\"resetTitle\"\n :class-names=\"classNames\"\n v-model=\"currentRefinement\"\n ref=\"searchInput\"\n >\n <template #loading-indicator v-if=\"isVue3\">\n <slot name=\"loading-indicator\" />\n </template>\n <slot v-if=\"isVue2\" name=\"loading-indicator\" slot=\"loading-indicator\" />\n\n <template #submit-icon v-if=\"isVue3\">\n <slot name=\"submit-icon\" />\n </template>\n <slot v-if=\"isVue2\" name=\"submit-icon\" slot=\"submit-icon\" />\n\n <template #reset-icon v-if=\"isVue3\">\n <slot name=\"reset-icon\" />\n </template>\n <slot v-if=\"isVue2\" name=\"reset-icon\" slot=\"reset-icon\" />\n </search-input>\n </slot>\n </div>\n</template>\n\n<script>\nimport { connectSearchBox } from 'instantsearch.js/es/connectors';\n\nimport { createSuitMixin } from '../mixins/suit';\nimport { createWidgetMixin } from '../mixins/widget';\nimport { isVue3, isVue2 } from '../util/vue-compat';\n\nimport SearchInput from './SearchInput.vue';\n\nexport default {\n name: 'AisSearchBox',\n mixins: [\n createWidgetMixin(\n {\n connector: connectSearchBox,\n },\n {\n $$widgetType: 'ais.searchBox',\n }\n ),\n createSuitMixin({ name: 'SearchBox' }),\n ],\n components: {\n SearchInput,\n },\n props: {\n placeholder: {\n type: String,\n default: '',\n },\n autofocus: {\n type: Boolean,\n default: false,\n },\n showLoadingIndicator: {\n type: Boolean,\n default: true,\n },\n submitTitle: {\n type: String,\n default: 'Submit the search query',\n },\n resetTitle: {\n type: String,\n default: 'Clear the search query',\n },\n value: {\n type: String,\n default: undefined,\n },\n modelValue: {\n type: String,\n default: undefined,\n },\n queryHook: {\n type: Function,\n default: undefined,\n },\n },\n data() {\n return {\n localValue: '',\n isVue2,\n isVue3,\n };\n },\n computed: {\n widgetParams() {\n return {\n queryHook: this.queryHook,\n };\n },\n isControlled() {\n return (\n typeof this.value !== 'undefined' ||\n typeof this.modelValue !== 'undefined'\n );\n },\n model() {\n return this.value || this.modelValue;\n },\n currentRefinement: {\n get() {\n // if the input is controlled, but not up to date\n // this means it didn't search, and we should pretend it was `set`\n if (this.isControlled && this.model !== this.localValue) {\n // eslint-disable-next-line vue/no-side-effects-in-computed-properties\n this.localValue = this.model;\n this.$emit('input', this.model);\n this.$emit('update:modelValue', this.model);\n this.state.refine(this.model);\n }\n\n // we return the local value if the input is focused to avoid\n // concurrent updates when typing\n const { searchInput } = this.$refs;\n if (searchInput && searchInput.isFocused()) {\n return this.localValue;\n }\n\n return this.model || this.state.query || '';\n },\n set(val) {\n this.localValue = val;\n this.state.refine(val);\n if (this.isControlled) {\n this.$emit('input', val);\n this.$emit('update:modelValue', val);\n }\n },\n },\n },\n};\n</script>\n"],"names":["_ctx","_createElementBlock","class","_renderSlot","currentRefinement","$options","isSearchStalled","refine","_createVNode","onFocus","$event","onBlur","onReset","placeholder","$props","autofocus","show-loading-indicator","should-show-loading-indicator","submit-title","reset-title","class-names","ref","$data","slot"],"mappings":"gPACaA,aAAXC,eAAmBC,QAAOF,YACxBG,sBACGC,kBAAoBC,oBACpBC,gBAAmBN,QAAMM,gBACzBC,OAAQP,QAAMO,0BAEfC,KACGC,uCAAOT,gBAAeU,KACtBC,sCAAMX,eAAcU,KACpBE,uCAAOZ,mBACPa,YAAaC,cACbC,UAAWD,YACXE,yBAAwBF,uBACxBG,gCAA+BjB,QAAMM,gBACrCY,eAAcJ,cACdK,cAAaL,aACbM,cAAapB,wBACLK,yEAAAA,wBACTgB,IAAI,8CAKQC,SAAZnB,sCAA6CoB,KAAK,+BAKtCD,SAAZnB,gCAAuCoB,KAAK,yBAKhCD,SAAZnB,+BAAsCoB,KAAK,iCAbRD,eAAxB,2CACTnB,mDAI2BmB,eAAlB,qCACTnB,6CAI0BmB,eAAjB,oCACTnB"}
@@ -1,2 +1,2 @@
1
- import e from"./SearchInput.vue_vue&type=script&lang.js";import{render as t}from"./SearchInput.vue_vue&type=template&id=00f0f603&lang.js";e.render=t;export default e;
1
+ import e from"./SearchInput.vue_vue&type=script&lang.js";import{render as t}from"./SearchInput.vue_vue&type=template&id=2e14ab6e&lang.js";e.render=t;export default e;
2
2
  //# sourceMappingURL=SearchInput.vue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SearchInput.vue_vue&type=script&lang.js","sources":["../../../../src/components/SearchInput.vue"],"sourcesContent":["<template>\n <form\n action=\"\"\n role=\"search\"\n novalidate\n :class=\"suit('form')\"\n @submit.prevent=\"onFormSubmit\"\n @reset.prevent=\"onFormReset\"\n >\n <!-- :value/@input allows us to pass v-model to the component in v2 -->\n <!-- :modelValue/@update:modelValue allows us to pass v-model to the component in v3 -->\n <input\n type=\"search\"\n autocorrect=\"off\"\n autocapitalize=\"off\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n required\n maxlength=\"512\"\n aria-label=\"Search\"\n :placeholder=\"placeholder\"\n :autofocus=\"autofocus\"\n :class=\"suit('input')\"\n :value=\"value || modelValue\"\n @focus=\"$emit('focus', $event)\"\n @blur=\"$emit('blur', $event)\"\n @input=\"\n $emit('input', $event.target.value);\n $emit('update:modelValue', $event.target.value);\n \"\n ref=\"input\"\n />\n <button\n type=\"submit\"\n :title=\"submitTitle\"\n :class=\"suit('submit')\"\n :hidden=\"showLoadingIndicator && shouldShowLoadingIndicator\"\n >\n <slot name=\"submit-icon\">\n <svg\n aria-hidden=\"true\"\n role=\"img\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"10\"\n height=\"10\"\n viewBox=\"0 0 40 40\"\n :class=\"suit('submitIcon')\"\n >\n <path\n d=\"M26.804 29.01c-2.832 2.34-6.465 3.746-10.426 3.746C7.333 32.756 0 25.424 0 16.378 0 7.333 7.333 0 16.378 0c9.046 0 16.378 7.333 16.378 16.378 0 3.96-1.406 7.594-3.746 10.426l10.534 10.534c.607.607.61 1.59-.004 2.202-.61.61-1.597.61-2.202.004L26.804 29.01zm-10.426.627c7.323 0 13.26-5.936 13.26-13.26 0-7.32-5.937-13.257-13.26-13.257C9.056 3.12 3.12 9.056 3.12 16.378c0 7.323 5.936 13.26 13.258 13.26z\"\n fillRule=\"evenodd\"\n />\n </svg>\n </slot>\n </button>\n\n <button\n type=\"reset\"\n :title=\"resetTitle\"\n :class=\"suit('reset')\"\n :hidden=\"\n (!value && !modelValue) ||\n (showLoadingIndicator && shouldShowLoadingIndicator)\n \"\n >\n <slot name=\"reset-icon\">\n <svg\n aria-hidden=\"true\"\n role=\"img\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style=\"width: 1em; height: 1em\"\n viewBox=\"0 0 20 20\"\n :class=\"suit('resetIcon')\"\n >\n <path\n d=\"M8.114 10L.944 2.83 0 1.885 1.886 0l.943.943L10 8.113l7.17-7.17.944-.943L20 1.886l-.943.943-7.17 7.17 7.17 7.17.943.944L18.114 20l-.943-.943-7.17-7.17-7.17 7.17-.944.943L0 18.114l.943-.943L8.113 10z\"\n fillRule=\"evenodd\"\n />\n </svg>\n </slot>\n </button>\n\n <span\n v-if=\"showLoadingIndicator\"\n :hidden=\"!shouldShowLoadingIndicator\"\n :class=\"suit('loadingIndicator')\"\n >\n <slot name=\"loading-indicator\">\n <svg\n role=\"img\"\n aria-label=\"Results are loading\"\n width=\"16\"\n height=\"16\"\n xmlns=\"http://www.w3.org/2000/svg\"\n stroke=\"#444\"\n viewBox=\"0 0 38 38\"\n :class=\"suit('loadingIcon')\"\n >\n <g fill=\"none\" fill-rule=\"evenodd\">\n <g transform=\"translate(1 1)\" stroke-width=\"2\">\n <circle stroke-opacity=\".5\" cx=\"18\" cy=\"18\" r=\"18\" />\n <path d=\"M36 18c0-9.94-8.06-18-18-18\">\n <animateTransform\n attributeName=\"transform\"\n type=\"rotate\"\n from=\"0 18 18\"\n to=\"360 18 18\"\n dur=\"1s\"\n repeatCount=\"indefinite\"\n />\n </path>\n </g>\n </g>\n </svg>\n </slot>\n </span>\n </form>\n</template>\n\n<script>\nimport { createSuitMixin } from '../mixins/suit';\n\nexport default {\n name: 'SearchInput',\n mixins: [createSuitMixin({ name: 'SearchBox' })],\n props: {\n placeholder: {\n type: String,\n default: 'Search here…',\n },\n autofocus: {\n type: Boolean,\n default: false,\n },\n showLoadingIndicator: {\n type: Boolean,\n default: false,\n },\n shouldShowLoadingIndicator: {\n type: Boolean,\n default: false,\n },\n submitTitle: {\n type: String,\n default: 'Search',\n },\n resetTitle: {\n type: String,\n default: 'Clear',\n },\n value: {\n type: String,\n required: false,\n default: undefined,\n },\n modelValue: {\n type: String,\n required: false,\n default: undefined,\n },\n },\n emits: ['input', 'update:modelValue', 'blur', 'focus', 'reset'],\n data() {\n return {\n query: '',\n };\n },\n methods: {\n isFocused() {\n return document.activeElement === this.$refs.input;\n },\n onFormSubmit() {\n const input = this.$refs.input;\n input.blur();\n },\n onFormReset() {\n this.$emit('input', '');\n this.$emit('update:modelValue', '');\n this.$emit('reset');\n },\n },\n};\n</script>\n"],"names":["name","mixins","createSuitMixin","props","placeholder","type","String","default","autofocus","Boolean","showLoadingIndicator","shouldShowLoadingIndicator","submitTitle","resetTitle","value","required","undefined","modelValue","emits","data","query","methods","isFocused","document","activeElement","this","$refs","input","onFormSubmit","blur","onFormReset","$emit"],"mappings":"kEA0He,CACbA,KAAM,cACNC,OAAQ,CAACC,EAAgB,CAAEF,KAAM,eACjCG,MAAO,CACLC,YAAa,CACXC,KAAMC,OACNC,QAAS,gBAEXC,UAAW,CACTH,KAAMI,QACNF,SAAS,GAEXG,qBAAsB,CACpBL,KAAMI,QACNF,SAAS,GAEXI,2BAA4B,CAC1BN,KAAMI,QACNF,SAAS,GAEXK,YAAa,CACXP,KAAMC,OACNC,QAAS,UAEXM,WAAY,CACVR,KAAMC,OACNC,QAAS,SAEXO,MAAO,CACLT,KAAMC,OACNS,UAAU,EACVR,aAASS,GAEXC,WAAY,CACVZ,KAAMC,OACNS,UAAU,EACVR,aAASS,IAGbE,MAAO,CAAC,QAAS,oBAAqB,OAAQ,QAAS,SACvDC,gBACE,MAAO,CACLC,MAAO,KAGXC,QAAS,CACPC,qBACE,OAAOC,SAASC,gBAAkBC,KAAKC,MAAMC,OAE/CC,wBACgBH,KAAKC,MAAMC,MACnBE,QAERC,uBACEL,KAAKM,MAAM,QAAS,IACpBN,KAAKM,MAAM,oBAAqB,IAChCN,KAAKM,MAAM"}
1
+ {"version":3,"file":"SearchInput.vue_vue&type=script&lang.js","sources":["../../../../src/components/SearchInput.vue"],"sourcesContent":["<template>\n <form\n action=\"\"\n role=\"search\"\n novalidate\n :class=\"suit('form')\"\n @submit.prevent=\"onFormSubmit\"\n @reset.prevent=\"onFormReset\"\n >\n <!-- :value/@input allows us to pass v-model to the component in v2 -->\n <!-- :modelValue/@update:modelValue allows us to pass v-model to the component in v3 -->\n <input\n type=\"search\"\n autocorrect=\"off\"\n autocapitalize=\"off\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n maxlength=\"512\"\n aria-label=\"Search\"\n :placeholder=\"placeholder\"\n :autofocus=\"autofocus\"\n :class=\"suit('input')\"\n :value=\"value || modelValue\"\n @focus=\"$emit('focus', $event)\"\n @blur=\"$emit('blur', $event)\"\n @input=\"\n $emit('input', $event.target.value);\n $emit('update:modelValue', $event.target.value);\n \"\n ref=\"input\"\n />\n <button\n type=\"submit\"\n :title=\"submitTitle\"\n :class=\"suit('submit')\"\n :hidden=\"showLoadingIndicator && shouldShowLoadingIndicator\"\n >\n <slot name=\"submit-icon\">\n <svg\n aria-hidden=\"true\"\n width=\"10\"\n height=\"10\"\n viewBox=\"0 0 40 40\"\n :class=\"suit('submitIcon')\"\n >\n <path\n d=\"M26.804 29.01c-2.832 2.34-6.465 3.746-10.426 3.746C7.333 32.756 0 25.424 0 16.378 0 7.333 7.333 0 16.378 0c9.046 0 16.378 7.333 16.378 16.378 0 3.96-1.406 7.594-3.746 10.426l10.534 10.534c.607.607.61 1.59-.004 2.202-.61.61-1.597.61-2.202.004L26.804 29.01zm-10.426.627c7.323 0 13.26-5.936 13.26-13.26 0-7.32-5.937-13.257-13.26-13.257C9.056 3.12 3.12 9.056 3.12 16.378c0 7.323 5.936 13.26 13.258 13.26z\"\n />\n </svg>\n </slot>\n </button>\n\n <button\n type=\"reset\"\n :title=\"resetTitle\"\n :class=\"suit('reset')\"\n :hidden=\"\n (!value && !modelValue) ||\n (showLoadingIndicator && shouldShowLoadingIndicator)\n \"\n >\n <slot name=\"reset-icon\">\n <svg\n aria-hidden=\"true\"\n height=\"10\"\n viewBox=\"0 0 20 20\"\n :class=\"suit('resetIcon')\"\n width=\"10\"\n >\n <path\n d=\"M8.114 10L.944 2.83 0 1.885 1.886 0l.943.943L10 8.113l7.17-7.17.944-.943L20 1.886l-.943.943-7.17 7.17 7.17 7.17.943.944L18.114 20l-.943-.943-7.17-7.17-7.17 7.17-.944.943L0 18.114l.943-.943L8.113 10z\"\n />\n </svg>\n </slot>\n </button>\n\n <span\n v-if=\"showLoadingIndicator\"\n :hidden=\"!shouldShowLoadingIndicator\"\n :class=\"suit('loadingIndicator')\"\n >\n <slot name=\"loading-indicator\">\n <svg\n :aria-hidden=\"!shouldShowLoadingIndicator\"\n aria-label=\"Results are loading\"\n width=\"16\"\n height=\"16\"\n stroke=\"#444\"\n viewBox=\"0 0 38 38\"\n :class=\"suit('loadingIcon')\"\n >\n <g fill=\"none\" fill-rule=\"evenodd\">\n <g transform=\"translate(1 1)\" stroke-width=\"2\">\n <circle stroke-opacity=\".5\" cx=\"18\" cy=\"18\" r=\"18\" />\n <path d=\"M36 18c0-9.94-8.06-18-18-18\">\n <animateTransform\n attributeName=\"transform\"\n type=\"rotate\"\n from=\"0 18 18\"\n to=\"360 18 18\"\n dur=\"1s\"\n repeatCount=\"indefinite\"\n />\n </path>\n </g>\n </g>\n </svg>\n </slot>\n </span>\n </form>\n</template>\n\n<script>\nimport { createSuitMixin } from '../mixins/suit';\n\nexport default {\n name: 'SearchInput',\n mixins: [createSuitMixin({ name: 'SearchBox' })],\n props: {\n placeholder: {\n type: String,\n default: 'Search here…',\n },\n autofocus: {\n type: Boolean,\n default: false,\n },\n showLoadingIndicator: {\n type: Boolean,\n default: false,\n },\n shouldShowLoadingIndicator: {\n type: Boolean,\n default: false,\n },\n submitTitle: {\n type: String,\n default: 'Search',\n },\n resetTitle: {\n type: String,\n default: 'Clear',\n },\n value: {\n type: String,\n required: false,\n default: undefined,\n },\n modelValue: {\n type: String,\n required: false,\n default: undefined,\n },\n },\n emits: ['input', 'update:modelValue', 'blur', 'focus', 'reset'],\n data() {\n return {\n query: '',\n };\n },\n methods: {\n isFocused() {\n return document.activeElement === this.$refs.input;\n },\n onFormSubmit() {\n const input = this.$refs.input;\n input.blur();\n },\n onFormReset() {\n this.$emit('input', '');\n this.$emit('update:modelValue', '');\n this.$emit('reset');\n },\n },\n};\n</script>\n"],"names":["name","mixins","createSuitMixin","props","placeholder","type","String","default","autofocus","Boolean","showLoadingIndicator","shouldShowLoadingIndicator","submitTitle","resetTitle","value","required","undefined","modelValue","emits","data","query","methods","isFocused","document","activeElement","this","$refs","input","onFormSubmit","blur","onFormReset","$emit"],"mappings":"kEAmHe,CACbA,KAAM,cACNC,OAAQ,CAACC,EAAgB,CAAEF,KAAM,eACjCG,MAAO,CACLC,YAAa,CACXC,KAAMC,OACNC,QAAS,gBAEXC,UAAW,CACTH,KAAMI,QACNF,SAAS,GAEXG,qBAAsB,CACpBL,KAAMI,QACNF,SAAS,GAEXI,2BAA4B,CAC1BN,KAAMI,QACNF,SAAS,GAEXK,YAAa,CACXP,KAAMC,OACNC,QAAS,UAEXM,WAAY,CACVR,KAAMC,OACNC,QAAS,SAEXO,MAAO,CACLT,KAAMC,OACNS,UAAU,EACVR,aAASS,GAEXC,WAAY,CACVZ,KAAMC,OACNS,UAAU,EACVR,aAASS,IAGbE,MAAO,CAAC,QAAS,oBAAqB,OAAQ,QAAS,SACvDC,gBACE,MAAO,CACLC,MAAO,KAGXC,QAAS,CACPC,qBACE,OAAOC,SAASC,gBAAkBC,KAAKC,MAAMC,OAE/CC,wBACgBH,KAAKC,MAAMC,MACnBE,QAERC,uBACEL,KAAKM,MAAM,QAAS,IACpBN,KAAKM,MAAM,oBAAqB,IAChCN,KAAKM,MAAM"}
@@ -0,0 +1,2 @@
1
+ import{openBlock as t,createElementBlock as e,normalizeClass as o,withModifiers as i,createElementVNode as n,renderSlot as a,createCommentVNode as r,createStaticVNode as l}from"vue";var u=["placeholder","autofocus","value"],s=["title","hidden"],d=[n("path",{d:"M26.804 29.01c-2.832 2.34-6.465 3.746-10.426 3.746C7.333 32.756 0 25.424 0 16.378 0 7.333 7.333 0 16.378 0c9.046 0 16.378 7.333 16.378 16.378 0 3.96-1.406 7.594-3.746 10.426l10.534 10.534c.607.607.61 1.59-.004 2.202-.61.61-1.597.61-2.202.004L26.804 29.01zm-10.426.627c7.323 0 13.26-5.936 13.26-13.26 0-7.32-5.937-13.257-13.26-13.257C9.056 3.12 3.12 9.056 3.12 16.378c0 7.323 5.936 13.26 13.258 13.26z"},null,-1)],c=["title","hidden"],h=[n("path",{d:"M8.114 10L.944 2.83 0 1.885 1.886 0l.943.943L10 8.113l7.17-7.17.944-.943L20 1.886l-.943.943-7.17 7.17 7.17 7.17.943.944L18.114 20l-.943-.943-7.17-7.17-7.17 7.17-.944.943L0 18.114l.943-.943L8.113 10z"},null,-1)],f=["hidden"],m=["aria-hidden"],p=[l('<g fill="none" fill-rule="evenodd"><g transform="translate(1 1)" stroke-width="2"><circle stroke-opacity=".5" cx="18" cy="18" r="18"></circle><path d="M36 18c0-9.94-8.06-18-18-18"><animateTransform attributeName="transform" type="rotate" from="0 18 18" to="360 18 18" dur="1s" repeatCount="indefinite"></animateTransform></path></g></g>',1)];function g(l,g,v,b,w,L){return t(),e("form",{action:"",role:"search",novalidate:"",class:o(l.suit("form")),onSubmit:g[3]||(g[3]=i(function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];return L.onFormSubmit&&L.onFormSubmit.apply(L,t)},["prevent"])),onReset:g[4]||(g[4]=i(function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];return L.onFormReset&&L.onFormReset.apply(L,t)},["prevent"]))},[n("input",{type:"search",autocorrect:"off",autocapitalize:"off",autocomplete:"off",spellcheck:"false",maxlength:"512","aria-label":"Search",placeholder:v.placeholder,autofocus:v.autofocus,class:o(l.suit("input")),value:v.value||v.modelValue,onFocus:g[0]||(g[0]=function(t){return l.$emit("focus",t)}),onBlur:g[1]||(g[1]=function(t){return l.$emit("blur",t)}),onInput:g[2]||(g[2]=function(t){l.$emit("input",t.target.value),l.$emit("update:modelValue",t.target.value)}),ref:"input"},null,42,u),n("button",{type:"submit",title:v.submitTitle,class:o(l.suit("submit")),hidden:v.showLoadingIndicator&&v.shouldShowLoadingIndicator},[a(l.$slots,"submit-icon",{},function(){return[(t(),e("svg",{"aria-hidden":"true",width:"10",height:"10",viewBox:"0 0 40 40",class:o(l.suit("submitIcon"))},d,2))]})],10,s),n("button",{type:"reset",title:v.resetTitle,class:o(l.suit("reset")),hidden:!v.value&&!v.modelValue||v.showLoadingIndicator&&v.shouldShowLoadingIndicator},[a(l.$slots,"reset-icon",{},function(){return[(t(),e("svg",{"aria-hidden":"true",height:"10",viewBox:"0 0 20 20",class:o(l.suit("resetIcon")),width:"10"},h,2))]})],10,c),v.showLoadingIndicator?(t(),e("span",{key:0,hidden:!v.shouldShowLoadingIndicator,class:o(l.suit("loadingIndicator"))},[a(l.$slots,"loading-indicator",{},function(){return[(t(),e("svg",{"aria-hidden":!v.shouldShowLoadingIndicator,"aria-label":"Results are loading",width:"16",height:"16",stroke:"#444",viewBox:"0 0 38 38",class:o(l.suit("loadingIcon"))},p,10,m))]})],10,f)):r("",!0)],34)}export{g as render};
2
+ //# sourceMappingURL=SearchInput.vue_vue&type=template&id=2e14ab6e&lang.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchInput.vue_vue&type=template&id=2e14ab6e&lang.js","sources":["../../../../src/components/SearchInput.vue?vue&type=template&id=2e14ab6e&lang.js"],"sourcesContent":["<template>\n <form\n action=\"\"\n role=\"search\"\n novalidate\n :class=\"suit('form')\"\n @submit.prevent=\"onFormSubmit\"\n @reset.prevent=\"onFormReset\"\n >\n <!-- :value/@input allows us to pass v-model to the component in v2 -->\n <!-- :modelValue/@update:modelValue allows us to pass v-model to the component in v3 -->\n <input\n type=\"search\"\n autocorrect=\"off\"\n autocapitalize=\"off\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n maxlength=\"512\"\n aria-label=\"Search\"\n :placeholder=\"placeholder\"\n :autofocus=\"autofocus\"\n :class=\"suit('input')\"\n :value=\"value || modelValue\"\n @focus=\"$emit('focus', $event)\"\n @blur=\"$emit('blur', $event)\"\n @input=\"\n $emit('input', $event.target.value);\n $emit('update:modelValue', $event.target.value);\n \"\n ref=\"input\"\n />\n <button\n type=\"submit\"\n :title=\"submitTitle\"\n :class=\"suit('submit')\"\n :hidden=\"showLoadingIndicator && shouldShowLoadingIndicator\"\n >\n <slot name=\"submit-icon\">\n <svg\n aria-hidden=\"true\"\n width=\"10\"\n height=\"10\"\n viewBox=\"0 0 40 40\"\n :class=\"suit('submitIcon')\"\n >\n <path\n d=\"M26.804 29.01c-2.832 2.34-6.465 3.746-10.426 3.746C7.333 32.756 0 25.424 0 16.378 0 7.333 7.333 0 16.378 0c9.046 0 16.378 7.333 16.378 16.378 0 3.96-1.406 7.594-3.746 10.426l10.534 10.534c.607.607.61 1.59-.004 2.202-.61.61-1.597.61-2.202.004L26.804 29.01zm-10.426.627c7.323 0 13.26-5.936 13.26-13.26 0-7.32-5.937-13.257-13.26-13.257C9.056 3.12 3.12 9.056 3.12 16.378c0 7.323 5.936 13.26 13.258 13.26z\"\n />\n </svg>\n </slot>\n </button>\n\n <button\n type=\"reset\"\n :title=\"resetTitle\"\n :class=\"suit('reset')\"\n :hidden=\"\n (!value && !modelValue) ||\n (showLoadingIndicator && shouldShowLoadingIndicator)\n \"\n >\n <slot name=\"reset-icon\">\n <svg\n aria-hidden=\"true\"\n height=\"10\"\n viewBox=\"0 0 20 20\"\n :class=\"suit('resetIcon')\"\n width=\"10\"\n >\n <path\n d=\"M8.114 10L.944 2.83 0 1.885 1.886 0l.943.943L10 8.113l7.17-7.17.944-.943L20 1.886l-.943.943-7.17 7.17 7.17 7.17.943.944L18.114 20l-.943-.943-7.17-7.17-7.17 7.17-.944.943L0 18.114l.943-.943L8.113 10z\"\n />\n </svg>\n </slot>\n </button>\n\n <span\n v-if=\"showLoadingIndicator\"\n :hidden=\"!shouldShowLoadingIndicator\"\n :class=\"suit('loadingIndicator')\"\n >\n <slot name=\"loading-indicator\">\n <svg\n :aria-hidden=\"!shouldShowLoadingIndicator\"\n aria-label=\"Results are loading\"\n width=\"16\"\n height=\"16\"\n stroke=\"#444\"\n viewBox=\"0 0 38 38\"\n :class=\"suit('loadingIcon')\"\n >\n <g fill=\"none\" fill-rule=\"evenodd\">\n <g transform=\"translate(1 1)\" stroke-width=\"2\">\n <circle stroke-opacity=\".5\" cx=\"18\" cy=\"18\" r=\"18\" />\n <path d=\"M36 18c0-9.94-8.06-18-18-18\">\n <animateTransform\n attributeName=\"transform\"\n type=\"rotate\"\n from=\"0 18 18\"\n to=\"360 18 18\"\n dur=\"1s\"\n repeatCount=\"indefinite\"\n />\n </path>\n </g>\n </g>\n </svg>\n </slot>\n </span>\n </form>\n</template>\n\n<script>\nimport { createSuitMixin } from '../mixins/suit';\n\nexport default {\n name: 'SearchInput',\n mixins: [createSuitMixin({ name: 'SearchBox' })],\n props: {\n placeholder: {\n type: String,\n default: 'Search here…',\n },\n autofocus: {\n type: Boolean,\n default: false,\n },\n showLoadingIndicator: {\n type: Boolean,\n default: false,\n },\n shouldShowLoadingIndicator: {\n type: Boolean,\n default: false,\n },\n submitTitle: {\n type: String,\n default: 'Search',\n },\n resetTitle: {\n type: String,\n default: 'Clear',\n },\n value: {\n type: String,\n required: false,\n default: undefined,\n },\n modelValue: {\n type: String,\n required: false,\n default: undefined,\n },\n },\n emits: ['input', 'update:modelValue', 'blur', 'focus', 'reset'],\n data() {\n return {\n query: '',\n };\n },\n methods: {\n isFocused() {\n return document.activeElement === this.$refs.input;\n },\n onFormSubmit() {\n const input = this.$refs.input;\n input.blur();\n },\n onFormReset() {\n this.$emit('input', '');\n this.$emit('update:modelValue', '');\n this.$emit('reset');\n },\n },\n};\n</script>\n"],"names":["_createElementVNode","d","_createElementBlock","action","role","novalidate","class","_ctx","onSubmit","$options","onReset","type","autocorrect","autocapitalize","autocomplete","spellcheck","maxlength","aria-label","placeholder","$props","autofocus","value","onFocus","$event","onBlur","onInput","ref","title","hidden","_renderSlot","aria-hidden","width","height","viewBox","stroke"],"mappings":"wPA6CUA,UACEC,EAAE,sbAuBJD,UACEC,EAAE,knBArEZC,UACEC,OAAO,GACPC,KAAK,SACLC,WAAA,GACCC,QAAOC,gBACPC,gGAAgBC,yDAChBC,+FAAeD,yDAIhBT,WACEW,KAAK,SACLC,YAAY,MACZC,eAAe,MACfC,aAAa,MACbC,WAAW,QACXC,UAAU,MACVC,aAAW,SACVC,YAAaC,cACbC,UAAWD,YACXb,QAAOC,iBACPc,MAAOF,SAASA,aAChBG,uCAAOf,gBAAegB,KACtBC,sCAAMjB,eAAcgB,KACpBE,8GAIDC,IAAI,oBAEN1B,YACEW,KAAK,SACJgB,MAAOR,cACPb,QAAOC,kBACPqB,OAAQT,wBAAwBA,+BAEjCU,mDACE3B,SACE4B,cAAY,OACZC,MAAM,KACNC,OAAO,KACPC,QAAQ,YACP3B,QAAOC,uCASdP,YACEW,KAAK,QACJgB,MAAOR,aACPb,QAAOC,iBACPqB,uFAKDC,kDACE3B,SACE4B,cAAY,OACZE,OAAO,KACPC,QAAQ,YACP3B,QAAOC,qBACRwB,MAAM,sBAUJZ,4BADRjB,gBAEG0B,QAAST,6BACTb,QAAOC,8BAERsB,yDACE3B,SACG4B,eAAcX,6BACfF,aAAW,sBACXc,MAAM,KACNC,OAAO,KACPE,OAAO,OACPD,QAAQ,YACP3B,QAAOC"}
@@ -1,2 +1,2 @@
1
- import e from"./SortBy.vue_vue&type=script&lang.js";import{render as t}from"./SortBy.vue_vue&type=template&id=507e7d3a&lang.js";e.render=t;export default e;
1
+ import e from"./SortBy.vue_vue&type=script&lang.js";import{render as t}from"./SortBy.vue_vue&type=template&id=78751313&lang.js";e.render=t;export default e;
2
2
  //# sourceMappingURL=SortBy.vue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SortBy.vue_vue&type=script&lang.js","sources":["../../../../src/components/SortBy.vue"],"sourcesContent":["<template>\n <div :class=\"suit()\" v-if=\"state\">\n <slot\n :items=\"state.options\"\n :has-no-results=\"state.hasNoResults\"\n :refine=\"state.refine\"\n :current-refinement=\"state.currentRefinement\"\n :can-refine=\"state.canRefine\"\n >\n <select\n :class=\"suit('select')\"\n @change=\"state.refine($event.currentTarget.value)\"\n >\n <option\n v-for=\"item in state.options\"\n :key=\"item.value\"\n :class=\"suit('option')\"\n :value=\"item.value\"\n :selected=\"item.value === state.currentRefinement\"\n >\n {{ item.label }}\n </option>\n </select>\n </slot>\n </div>\n</template>\n\n<script>\nimport { connectSortBy } 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: 'AisSortBy',\n mixins: [\n createSuitMixin({ name: 'SortBy' }),\n createWidgetMixin(\n { connector: connectSortBy },\n {\n $$widgetType: 'ais.sortBy',\n }\n ),\n\n createPanelConsumerMixin(),\n ],\n props: {\n items: {\n type: Array,\n required: true,\n },\n transformItems: {\n type: Function,\n default: undefined,\n },\n },\n computed: {\n widgetParams() {\n return {\n items: this.items,\n transformItems: this.transformItems,\n };\n },\n },\n};\n</script>\n"],"names":["name","mixins","createSuitMixin","createWidgetMixin","connector","connectSortBy","$$widgetType","createPanelConsumerMixin","props","items","type","Array","required","transformItems","Function","default","undefined","computed","widgetParams","this"],"mappings":"gQAkCe,CACbA,KAAM,YACNC,OAAQ,CACNC,EAAgB,CAAEF,KAAM,WACxBG,EACE,CAAEC,UAAWC,GACb,CACEC,aAAc,eAIlBC,KAEFC,MAAO,CACLC,MAAO,CACLC,KAAMC,MACNC,UAAU,GAEZC,eAAgB,CACdH,KAAMI,SACNC,aAASC,IAGbC,SAAU,CACRC,wBACE,MAAO,CACLT,MAAOU,KAAKV,MACZI,eAAgBM,KAAKN"}
1
+ {"version":3,"file":"SortBy.vue_vue&type=script&lang.js","sources":["../../../../src/components/SortBy.vue"],"sourcesContent":["<template>\n <div :class=\"suit()\" v-if=\"state\">\n <slot\n :items=\"state.options\"\n :has-no-results=\"state.hasNoResults\"\n :refine=\"state.refine\"\n :current-refinement=\"state.currentRefinement\"\n :can-refine=\"state.canRefine\"\n >\n <select\n :class=\"suit('select')\"\n @change=\"state.refine($event.currentTarget.value)\"\n aria-label=\"Sort results by\"\n >\n <option\n v-for=\"item in state.options\"\n :key=\"item.value\"\n :class=\"suit('option')\"\n :value=\"item.value\"\n :selected=\"item.value === state.currentRefinement\"\n >\n {{ item.label }}\n </option>\n </select>\n </slot>\n </div>\n</template>\n\n<script>\nimport { connectSortBy } 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: 'AisSortBy',\n mixins: [\n createSuitMixin({ name: 'SortBy' }),\n createWidgetMixin(\n { connector: connectSortBy },\n {\n $$widgetType: 'ais.sortBy',\n }\n ),\n\n createPanelConsumerMixin(),\n ],\n props: {\n items: {\n type: Array,\n required: true,\n },\n transformItems: {\n type: Function,\n default: undefined,\n },\n },\n computed: {\n widgetParams() {\n return {\n items: this.items,\n transformItems: this.transformItems,\n };\n },\n },\n};\n</script>\n"],"names":["name","mixins","createSuitMixin","createWidgetMixin","connector","connectSortBy","$$widgetType","createPanelConsumerMixin","props","items","type","Array","required","transformItems","Function","default","undefined","computed","widgetParams","this"],"mappings":"gQAmCe,CACbA,KAAM,YACNC,OAAQ,CACNC,EAAgB,CAAEF,KAAM,WACxBG,EACE,CAAEC,UAAWC,GACb,CACEC,aAAc,eAIlBC,KAEFC,MAAO,CACLC,MAAO,CACLC,KAAMC,MACNC,UAAU,GAEZC,eAAgB,CACdH,KAAMI,SACNC,aAASC,IAGbC,SAAU,CACRC,wBACE,MAAO,CACLT,MAAOU,KAAKV,MACZI,eAAgBM,KAAKN"}
@@ -0,0 +1,2 @@
1
+ import{openBlock as e,createElementBlock as t,normalizeClass as n,renderSlot as s,createElementVNode as a,Fragment as r,renderList as u,toDisplayString as l,createCommentVNode as i}from"vue";var o=["value","selected"];function c(c,f,v,R,m,p){return c.state?(e(),t("div",{key:0,class:n(c.suit())},[s(c.$slots,"default",{items:c.state.options,hasNoResults:c.state.hasNoResults,refine:c.state.refine,currentRefinement:c.state.currentRefinement,canRefine:c.state.canRefine},function(){return[a("select",{class:n(c.suit("select")),onChange:f[0]||(f[0]=function(e){return c.state.refine(e.currentTarget.value)}),"aria-label":"Sort results by"},[(e(!0),t(r,null,u(c.state.options,function(s){return e(),t("option",{key:s.value,class:n(c.suit("option")),value:s.value,selected:s.value===c.state.currentRefinement},l(s.label),11,o)}),128))],34)]})],2)):i("",!0)}export{c as render};
2
+ //# sourceMappingURL=SortBy.vue_vue&type=template&id=78751313&lang.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SortBy.vue_vue&type=template&id=78751313&lang.js","sources":["../../../../src/components/SortBy.vue?vue&type=template&id=78751313&lang.js"],"sourcesContent":["<template>\n <div :class=\"suit()\" v-if=\"state\">\n <slot\n :items=\"state.options\"\n :has-no-results=\"state.hasNoResults\"\n :refine=\"state.refine\"\n :current-refinement=\"state.currentRefinement\"\n :can-refine=\"state.canRefine\"\n >\n <select\n :class=\"suit('select')\"\n @change=\"state.refine($event.currentTarget.value)\"\n aria-label=\"Sort results by\"\n >\n <option\n v-for=\"item in state.options\"\n :key=\"item.value\"\n :class=\"suit('option')\"\n :value=\"item.value\"\n :selected=\"item.value === state.currentRefinement\"\n >\n {{ item.label }}\n </option>\n </select>\n </slot>\n </div>\n</template>\n\n<script>\nimport { connectSortBy } 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: 'AisSortBy',\n mixins: [\n createSuitMixin({ name: 'SortBy' }),\n createWidgetMixin(\n { connector: connectSortBy },\n {\n $$widgetType: 'ais.sortBy',\n }\n ),\n\n createPanelConsumerMixin(),\n ],\n props: {\n items: {\n type: Array,\n required: true,\n },\n transformItems: {\n type: Function,\n default: undefined,\n },\n },\n computed: {\n widgetParams() {\n return {\n items: this.items,\n transformItems: this.transformItems,\n };\n },\n },\n};\n</script>\n"],"names":["_ctx","_createElementBlock","class","_renderSlot","items","options","hasNoResults","refine","currentRefinement","canRefine","_createElementVNode","onChange","$event","currentTarget","value","aria-label","item","key","selected","label"],"mappings":"yPAC6BA,aAA3BC,eAAMC,QAAOF,YACXG,sBACGC,MAAOJ,QAAMK,QACbC,aAAgBN,QAAMM,aACtBC,OAAQP,QAAMO,OACdC,kBAAoBR,QAAMQ,kBAC1BC,UAAYT,QAAMS,6BAEnBC,YACGR,QAAOF,kBACPW,wCAAQX,QAAMO,OAAOK,EAAOC,cAAcC,SAC3CC,aAAW,2BAEXd,WACiBD,QAAMK,iBAAdW,cADTf,YAEGgB,IAAKD,EAAKF,MACVZ,QAAOF,kBACPc,MAAOE,EAAKF,MACZI,SAAUF,EAAKF,QAAUd,QAAMQ,qBAE7BQ,EAAKG"}
@@ -1,2 +1,2 @@
1
- import t from"./Stats.vue_vue&type=script&lang.js";import{render as e}from"./Stats.vue_vue&type=template&id=6d9c672c&lang.js";t.render=e;export default t;
1
+ import t from"./Stats.vue_vue&type=script&lang.js";import{render as e}from"./Stats.vue_vue&type=template&id=67854642&lang.js";t.render=e;export default t;
2
2
  //# sourceMappingURL=Stats.vue.js.map
@@ -1,2 +1,2 @@
1
- import{createSuitMixin as t}from"../mixins/suit.js";import{createWidgetMixin as s}from"../mixins/widget.js";import{connectStats as i}from"instantsearch.js/es/connectors/index.js";export default{name:"AisStats",mixins:[s({connector:i},{$$widgetType:"ais.stats"}),t({name:"Stats"})],computed:{widgetParams:function(){return{}}}};
1
+ import{createSuitMixin as t}from"../mixins/suit.js";import{createWidgetMixin as e}from"../mixins/widget.js";import{connectStats as s}from"instantsearch.js/es/connectors/index.js";export default{name:"AisStats",mixins:[e({connector:s},{$$widgetType:"ais.stats"}),t({name:"Stats"})],computed:{sortedResultsSentence:function(){var t=this.state,e=t.nbHits,s=t.nbSortedHits,r="sorted out of "+e.toLocaleString();return 0===s?"No relevant results "+r:1===s?"1 relevant result "+r:s>1?(s||0).toLocaleString()+" relevant results "+r:""},resultsSentence:function(){var t=this.state.nbHits;return 0===t?"No results":1===t?"1 result":t>1?t.toLocaleString()+" results":""},widgetParams:function(){return{}}}};
2
2
  //# sourceMappingURL=Stats.vue_vue&type=script&lang.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Stats.vue_vue&type=script&lang.js","sources":["../../../../src/components/Stats.vue"],"sourcesContent":["<template>\n <div v-if=\"state\" :class=\"suit()\">\n <slot\n v-bind=\"state\"\n :results=\"state.instantSearchInstance.helper.lastResults\"\n >\n <!-- prettier-ignore -->\n <span :class=\"suit('text')\"\n ><template v-if=\"state.areHitsSorted\"\n >{{ state.nbSortedHits.toLocaleString() }} relevant results sorted out of {{ state.nbHits.toLocaleString() }}</template\n ><template v-else>{{ state.nbHits.toLocaleString() }} results</template\n > found in {{ state.processingTimeMS.toLocaleString() }}ms</span\n >\n </slot>\n </div>\n</template>\n\n<script>\nimport { connectStats } from 'instantsearch.js/es/connectors';\n\nimport { createSuitMixin } from '../mixins/suit';\nimport { createWidgetMixin } from '../mixins/widget';\n\nexport default {\n name: 'AisStats',\n mixins: [\n createWidgetMixin(\n { connector: connectStats },\n {\n $$widgetType: 'ais.stats',\n }\n ),\n createSuitMixin({ name: 'Stats' }),\n ],\n computed: {\n widgetParams() {\n return {};\n },\n },\n};\n</script>\n"],"names":["name","mixins","createWidgetMixin","connector","connectStats","$$widgetType","createSuitMixin","computed","widgetParams"],"mappings":"iMAuBe,CACbA,KAAM,WACNC,OAAQ,CACNC,EACE,CAAEC,UAAWC,GACb,CACEC,aAAc,cAGlBC,EAAgB,CAAEN,KAAM,WAE1BO,SAAU,CACRC,wBACE,MAAO"}
1
+ {"version":3,"file":"Stats.vue_vue&type=script&lang.js","sources":["../../../../src/components/Stats.vue"],"sourcesContent":["<template>\n <div v-if=\"state\" :class=\"suit()\">\n <slot\n v-bind=\"state\"\n :results=\"state.instantSearchInstance.helper.lastResults\"\n >\n <!-- prettier-ignore -->\n <span :class=\"suit('text')\"\n ><template v-if=\"state.areHitsSorted\"\n >{{ sortedResultsSentence }}</template\n ><template v-else>{{ resultsSentence }}</template\n > found in {{ state.processingTimeMS.toLocaleString() }}ms</span\n >\n </slot>\n </div>\n</template>\n\n<script>\nimport { connectStats } from 'instantsearch.js/es/connectors';\n\nimport { createSuitMixin } from '../mixins/suit';\nimport { createWidgetMixin } from '../mixins/widget';\n\nexport default {\n name: 'AisStats',\n mixins: [\n createWidgetMixin(\n { connector: connectStats },\n {\n $$widgetType: 'ais.stats',\n }\n ),\n createSuitMixin({ name: 'Stats' }),\n ],\n computed: {\n sortedResultsSentence() {\n const { nbHits, nbSortedHits } = this.state;\n\n const suffix = `sorted out of ${nbHits.toLocaleString()}`;\n\n if (nbSortedHits === 0) {\n return `No relevant results ${suffix}`;\n }\n\n if (nbSortedHits === 1) {\n return `1 relevant result ${suffix}`;\n }\n\n if (nbSortedHits > 1) {\n return `${(\n nbSortedHits || 0\n ).toLocaleString()} relevant results ${suffix}`;\n }\n\n return '';\n },\n resultsSentence() {\n const { nbHits } = this.state;\n\n if (nbHits === 0) {\n return 'No results';\n }\n\n if (nbHits === 1) {\n return '1 result';\n }\n\n if (nbHits > 1) {\n return `${nbHits.toLocaleString()} results`;\n }\n\n return '';\n },\n widgetParams() {\n return {};\n },\n },\n};\n</script>\n"],"names":["name","mixins","createWidgetMixin","connector","connectStats","$$widgetType","createSuitMixin","computed","sortedResultsSentence","this","state","suffix","nbHits","toLocaleString","nbSortedHits","resultsSentence","widgetParams"],"mappings":"iMAuBe,CACbA,KAAM,WACNC,OAAQ,CACNC,EACE,CAAEC,UAAWC,GACb,CACEC,aAAc,cAGlBC,EAAgB,CAAEN,KAAM,WAE1BO,SAAU,CACRC,uCACmCC,KAAKC,kCAEhCC,EAAS,iBAAiBC,EAAOC,iBAEvC,OAAqB,IAAjBC,yBAC4BH,EAGX,IAAjBG,uBAC0BH,EAG1BG,EAAe,GAEfA,GAAgB,GAChBD,sCAAqCF,EAGlC,IAETI,iCACqBN,KAAKC,aAExB,OAAe,IAAXE,EACK,aAGM,IAAXA,EACK,WAGLA,EAAS,EACDA,EAAOC,4BAGZ,IAETG,wBACE,MAAO"}
@@ -0,0 +1,2 @@
1
+ import{openBlock as t,createElementBlock as e,normalizeClass as s,renderSlot as n,mergeProps as r,createElementVNode as a,Fragment as u,createTextVNode as i,toDisplayString as o,createCommentVNode as l}from"vue";function c(c,S,d,f,p,m){return c.state?(t(),e("div",{key:0,class:s(c.suit())},[n(c.$slots,"default",r(c.state,{results:c.state.instantSearchInstance.helper.lastResults}),function(){return[a("span",{class:s(c.suit("text"))},[c.state.areHitsSorted?(t(),e(u,{key:0},[i(o(m.sortedResultsSentence),1)],64)):(t(),e(u,{key:1},[i(o(m.resultsSentence),1)],64)),i(" found in "+o(c.state.processingTimeMS.toLocaleString())+"ms",1)],2)]})],2)):l("",!0)}export{c as render};
2
+ //# sourceMappingURL=Stats.vue_vue&type=template&id=67854642&lang.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Stats.vue_vue&type=template&id=67854642&lang.js","sources":["../../../../src/components/Stats.vue?vue&type=template&id=67854642&lang.js"],"sourcesContent":["<template>\n <div v-if=\"state\" :class=\"suit()\">\n <slot\n v-bind=\"state\"\n :results=\"state.instantSearchInstance.helper.lastResults\"\n >\n <!-- prettier-ignore -->\n <span :class=\"suit('text')\"\n ><template v-if=\"state.areHitsSorted\"\n >{{ sortedResultsSentence }}</template\n ><template v-else>{{ resultsSentence }}</template\n > found in {{ state.processingTimeMS.toLocaleString() }}ms</span\n >\n </slot>\n </div>\n</template>\n\n<script>\nimport { connectStats } from 'instantsearch.js/es/connectors';\n\nimport { createSuitMixin } from '../mixins/suit';\nimport { createWidgetMixin } from '../mixins/widget';\n\nexport default {\n name: 'AisStats',\n mixins: [\n createWidgetMixin(\n { connector: connectStats },\n {\n $$widgetType: 'ais.stats',\n }\n ),\n createSuitMixin({ name: 'Stats' }),\n ],\n computed: {\n sortedResultsSentence() {\n const { nbHits, nbSortedHits } = this.state;\n\n const suffix = `sorted out of ${nbHits.toLocaleString()}`;\n\n if (nbSortedHits === 0) {\n return `No relevant results ${suffix}`;\n }\n\n if (nbSortedHits === 1) {\n return `1 relevant result ${suffix}`;\n }\n\n if (nbSortedHits > 1) {\n return `${(\n nbSortedHits || 0\n ).toLocaleString()} relevant results ${suffix}`;\n }\n\n return '';\n },\n resultsSentence() {\n const { nbHits } = this.state;\n\n if (nbHits === 0) {\n return 'No results';\n }\n\n if (nbHits === 1) {\n return '1 result';\n }\n\n if (nbHits > 1) {\n return `${nbHits.toLocaleString()} results`;\n }\n\n return '';\n },\n widgetParams() {\n return {};\n },\n },\n};\n</script>\n"],"names":["_ctx","_createElementBlock","class","_renderSlot","_mergeProps","results","instantSearchInstance","helper","lastResults","_createElementVNode","areHitsSorted","_Fragment","$options","processingTimeMS","toLocaleString"],"mappings":"mPACaA,aAAXC,eAAmBC,QAAOF,YACxBG,qBAAAC,WAEGC,QAASL,QAAMM,sBAAsBC,OAAOC,gCAG7CC,UAAOP,QAAOF,kBACKA,QAAMU,mBAAtBT,EAEAU,eADKC,uCACLX,iBAAoBW,6CACPZ,QAAMa,iBAAiBC,kBAAmB"}
@@ -1,2 +1,2 @@
1
- import e from"./ToggleRefinement.vue_vue&type=script&lang.js";import{render as t}from"./ToggleRefinement.vue_vue&type=template&id=1e8d14ba&lang.js";e.render=t;export default e;
1
+ import e from"./ToggleRefinement.vue_vue&type=script&lang.js";import{render as t}from"./ToggleRefinement.vue_vue&type=template&id=4074ad16&lang.js";e.render=t;export default e;
2
2
  //# sourceMappingURL=ToggleRefinement.vue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToggleRefinement.vue_vue&type=script&lang.js","sources":["../../../../src/components/ToggleRefinement.vue"],"sourcesContent":["<template>\n <div\n v-if=\"state\"\n :class=\"[suit(), !state.canRefine && suit('', 'noRefinement')]\"\n >\n <slot\n :value=\"state.value\"\n :can-refine=\"state.canRefine\"\n :refine=\"state.refine\"\n :createURL=\"state.createURL\"\n :send-event=\"state.sendEvent\"\n >\n <label :class=\"suit('label')\">\n <input\n :class=\"suit('checkbox')\"\n type=\"checkbox\"\n :name=\"state.value.name\"\n :value=\"on\"\n :checked=\"state.value.isRefined\"\n @change=\"state.refine(state.value)\"\n />\n <span :class=\"suit('labelText')\">{{ label }}</span>\n <span v-if=\"state.value.count !== null\" :class=\"suit('count')\">{{\n state.value.count.toLocaleString()\n }}</span>\n </label>\n </slot>\n </div>\n</template>\n\n<script>\nimport { connectToggleRefinement } 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: 'AisToggleRefinement',\n mixins: [\n createSuitMixin({ name: 'ToggleRefinement' }),\n createWidgetMixin(\n {\n connector: connectToggleRefinement,\n },\n {\n $$widgetType: 'ais.toggleRefinement',\n }\n ),\n createPanelConsumerMixin(),\n ],\n props: {\n attribute: {\n type: String,\n required: true,\n },\n label: {\n type: String,\n required: true,\n },\n on: {\n type: [String, Number, Boolean, Array],\n required: false,\n default: true,\n },\n off: {\n type: [String, Number, Boolean, Array],\n required: false,\n default: undefined,\n },\n },\n computed: {\n widgetParams() {\n return {\n attribute: this.attribute,\n label: this.label,\n on: this.on,\n off: this.off,\n };\n },\n },\n};\n</script>\n"],"names":["name","mixins","createSuitMixin","createWidgetMixin","connector","connectToggleRefinement","$$widgetType","createPanelConsumerMixin","props","attribute","type","String","required","label","on","Number","Boolean","Array","default","off","undefined","computed","widgetParams","this"],"mappings":"0QAqCe,CACbA,KAAM,sBACNC,OAAQ,CACNC,EAAgB,CAAEF,KAAM,qBACxBG,EACE,CACEC,UAAWC,GAEb,CACEC,aAAc,yBAGlBC,KAEFC,MAAO,CACLC,UAAW,CACTC,KAAMC,OACNC,UAAU,GAEZC,MAAO,CACLH,KAAMC,OACNC,UAAU,GAEZE,GAAI,CACFJ,KAAM,CAACC,OAAQI,OAAQC,QAASC,OAChCL,UAAU,EACVM,SAAS,GAEXC,IAAK,CACHT,KAAM,CAACC,OAAQI,OAAQC,QAASC,OAChCL,UAAU,EACVM,aAASE,IAGbC,SAAU,CACRC,wBACE,MAAO,CACLb,UAAWc,KAAKd,UAChBI,MAAOU,KAAKV,MACZC,GAAIS,KAAKT,GACTK,IAAKI,KAAKJ"}
1
+ {"version":3,"file":"ToggleRefinement.vue_vue&type=script&lang.js","sources":["../../../../src/components/ToggleRefinement.vue"],"sourcesContent":["<template>\n <div\n v-if=\"state\"\n :class=\"[suit(), !state.canRefine && suit('', 'noRefinement')]\"\n >\n <slot\n :value=\"state.value\"\n :can-refine=\"state.canRefine\"\n :refine=\"state.refine\"\n :createURL=\"state.createURL\"\n :send-event=\"state.sendEvent\"\n >\n <label :class=\"suit('label')\">\n <input\n :class=\"suit('checkbox')\"\n type=\"checkbox\"\n :name=\"state.value.name\"\n :value=\"on\"\n :checked=\"state.value.isRefined\"\n @change=\"state.refine(state.value)\"\n />\n <span :class=\"suit('labelText')\">{{ label || state.value.name }}</span>\n <span v-if=\"state.value.count !== null\" :class=\"suit('count')\">{{\n state.value.count.toLocaleString()\n }}</span>\n </label>\n </slot>\n </div>\n</template>\n\n<script>\nimport { connectToggleRefinement } 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: 'AisToggleRefinement',\n mixins: [\n createSuitMixin({ name: 'ToggleRefinement' }),\n createWidgetMixin(\n {\n connector: connectToggleRefinement,\n },\n {\n $$widgetType: 'ais.toggleRefinement',\n }\n ),\n createPanelConsumerMixin(),\n ],\n props: {\n attribute: {\n type: String,\n required: true,\n },\n label: {\n type: String,\n required: true,\n },\n on: {\n type: [String, Number, Boolean, Array],\n required: false,\n default: true,\n },\n off: {\n type: [String, Number, Boolean, Array],\n required: false,\n default: undefined,\n },\n },\n computed: {\n widgetParams() {\n return {\n attribute: this.attribute,\n label: this.label,\n on: this.on,\n off: this.off,\n };\n },\n },\n};\n</script>\n"],"names":["name","mixins","createSuitMixin","createWidgetMixin","connector","connectToggleRefinement","$$widgetType","createPanelConsumerMixin","props","attribute","type","String","required","label","on","Number","Boolean","Array","default","off","undefined","computed","widgetParams","this"],"mappings":"0QAqCe,CACbA,KAAM,sBACNC,OAAQ,CACNC,EAAgB,CAAEF,KAAM,qBACxBG,EACE,CACEC,UAAWC,GAEb,CACEC,aAAc,yBAGlBC,KAEFC,MAAO,CACLC,UAAW,CACTC,KAAMC,OACNC,UAAU,GAEZC,MAAO,CACLH,KAAMC,OACNC,UAAU,GAEZE,GAAI,CACFJ,KAAM,CAACC,OAAQI,OAAQC,QAASC,OAChCL,UAAU,EACVM,SAAS,GAEXC,IAAK,CACHT,KAAM,CAACC,OAAQI,OAAQC,QAASC,OAChCL,UAAU,EACVM,aAASE,IAGbC,SAAU,CACRC,wBACE,MAAO,CACLb,UAAWc,KAAKd,UAChBI,MAAOU,KAAKV,MACZC,GAAIS,KAAKT,GACTK,IAAKI,KAAKJ"}
@@ -1,2 +1,2 @@
1
- import{openBlock as e,createElementBlock as t,normalizeClass as a,renderSlot as n,createElementVNode as s,toDisplayString as l,createCommentVNode as u}from"vue";var c=["name","value","checked"];function i(i,o,r,v,f,d){return i.state?(e(),t("div",{key:0,class:a([i.suit(),!i.state.canRefine&&i.suit("","noRefinement")])},[n(i.$slots,"default",{value:i.state.value,canRefine:i.state.canRefine,refine:i.state.refine,createURL:i.state.createURL,sendEvent:i.state.sendEvent},function(){return[s("label",{class:a(i.suit("label"))},[s("input",{class:a(i.suit("checkbox")),type:"checkbox",name:i.state.value.name,value:r.on,checked:i.state.value.isRefined,onChange:o[0]||(o[0]=function(e){return i.state.refine(i.state.value)})},null,42,c),s("span",{class:a(i.suit("labelText"))},l(r.label),3),null!==i.state.value.count?(e(),t("span",{key:0,class:a(i.suit("count"))},l(i.state.value.count.toLocaleString()),3)):u("",!0)],2)]})],2)):u("",!0)}export{i as render};
2
- //# sourceMappingURL=ToggleRefinement.vue_vue&type=template&id=1e8d14ba&lang.js.map
1
+ import{openBlock as e,createElementBlock as t,normalizeClass as a,renderSlot as n,createElementVNode as s,toDisplayString as l,createCommentVNode as u}from"vue";var c=["name","value","checked"];function i(i,o,r,v,f,d){return i.state?(e(),t("div",{key:0,class:a([i.suit(),!i.state.canRefine&&i.suit("","noRefinement")])},[n(i.$slots,"default",{value:i.state.value,canRefine:i.state.canRefine,refine:i.state.refine,createURL:i.state.createURL,sendEvent:i.state.sendEvent},function(){return[s("label",{class:a(i.suit("label"))},[s("input",{class:a(i.suit("checkbox")),type:"checkbox",name:i.state.value.name,value:r.on,checked:i.state.value.isRefined,onChange:o[0]||(o[0]=function(e){return i.state.refine(i.state.value)})},null,42,c),s("span",{class:a(i.suit("labelText"))},l(r.label||i.state.value.name),3),null!==i.state.value.count?(e(),t("span",{key:0,class:a(i.suit("count"))},l(i.state.value.count.toLocaleString()),3)):u("",!0)],2)]})],2)):u("",!0)}export{i as render};
2
+ //# sourceMappingURL=ToggleRefinement.vue_vue&type=template&id=4074ad16&lang.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToggleRefinement.vue_vue&type=template&id=4074ad16&lang.js","sources":["../../../../src/components/ToggleRefinement.vue?vue&type=template&id=4074ad16&lang.js"],"sourcesContent":["<template>\n <div\n v-if=\"state\"\n :class=\"[suit(), !state.canRefine && suit('', 'noRefinement')]\"\n >\n <slot\n :value=\"state.value\"\n :can-refine=\"state.canRefine\"\n :refine=\"state.refine\"\n :createURL=\"state.createURL\"\n :send-event=\"state.sendEvent\"\n >\n <label :class=\"suit('label')\">\n <input\n :class=\"suit('checkbox')\"\n type=\"checkbox\"\n :name=\"state.value.name\"\n :value=\"on\"\n :checked=\"state.value.isRefined\"\n @change=\"state.refine(state.value)\"\n />\n <span :class=\"suit('labelText')\">{{ label || state.value.name }}</span>\n <span v-if=\"state.value.count !== null\" :class=\"suit('count')\">{{\n state.value.count.toLocaleString()\n }}</span>\n </label>\n </slot>\n </div>\n</template>\n\n<script>\nimport { connectToggleRefinement } 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: 'AisToggleRefinement',\n mixins: [\n createSuitMixin({ name: 'ToggleRefinement' }),\n createWidgetMixin(\n {\n connector: connectToggleRefinement,\n },\n {\n $$widgetType: 'ais.toggleRefinement',\n }\n ),\n createPanelConsumerMixin(),\n ],\n props: {\n attribute: {\n type: String,\n required: true,\n },\n label: {\n type: String,\n required: true,\n },\n on: {\n type: [String, Number, Boolean, Array],\n required: false,\n default: true,\n },\n off: {\n type: [String, Number, Boolean, Array],\n required: false,\n default: undefined,\n },\n },\n computed: {\n widgetParams() {\n return {\n attribute: this.attribute,\n label: this.label,\n on: this.on,\n off: this.off,\n };\n },\n },\n};\n</script>\n"],"names":["_ctx","_createElementBlock","class","canRefine","_renderSlot","value","refine","createURL","sendEvent","_createElementVNode","type","name","$props","checked","isRefined","onChange","count","toLocaleString"],"mappings":"iOAEUA,aADRC,eAEGC,SAAQF,UAASA,QAAMG,WAAaH,8BAErCI,sBACGC,MAAOL,QAAMK,MACbF,UAAYH,QAAMG,UAClBG,OAAQN,QAAMM,OACdC,UAAWP,QAAMO,UACjBC,UAAYR,QAAMQ,6BAEnBC,WAAQP,QAAOF,mBACbS,WACGP,QAAOF,oBACRU,KAAK,WACJC,KAAMX,QAAMK,MAAMM,KAClBN,MAAOO,KACPC,QAASb,QAAMK,MAAMS,UACrBC,wCAAQf,QAAMM,OAAON,QAAMK,qBAE9BI,UAAOP,QAAOF,wBAAsBY,SAASZ,QAAMK,MAAMM,gBAC7CX,QAAMK,MAAMW,WAAxBf,gBAAyCC,QAAOF,oBAC9CA,QAAMK,MAAMW,MAAMC"}
@@ -1,2 +1,2 @@
1
- import{h as e}from"vue";import*as t from"vue";export{t as Vue};export{createApp,createSSRApp,h,nextTick,version}from"vue";var o=!1,r=!0;function n(t){function o(t,o,r){if("object"==typeof o&&(o.attrs||o.props||o.scopedSlots||o.on)){var n=Object.assign({},o,o.attrs,o.props,Object.keys(o.on||{}).reduce(function(e,t){return e["on"+t[0].toUpperCase()+t.slice(1)]=o.on[t],e},{}));return delete n.attrs,delete n.props,delete n.scopedSlots,delete n.on,e(t,n,o.scopedSlots?Object.assign({default:function(){return r}},o.scopedSlots):r)}return e(t,o,r)}return function(){return t.call(this,o)}}function s(e){return e.$slots.default&&e.$slots.default()}export{s as getDefaultSlot,o as isVue2,r as isVue3,n as renderCompat};
1
+ import{h as e}from"vue";import*as t from"vue";export{t as Vue};export{createApp,createSSRApp,h,nextTick,version}from"vue";var o=!1,r=!0;function n(t){function o(t,o,r){if("object"==typeof o&&(o.attrs||o.props||o.scopedSlots||o.on)){var n=Object.keys(o.on||{}),s=Object.assign({},o,o.attrs,o.props,n.reduce(function(e,t){return e["on"+t[0].toUpperCase()+t.slice(1)]=o.on[t],e},{}));return delete s.attrs,delete s.props,delete s.scopedSlots,n.forEach(function(e){return delete s.on[e]}),e(t,s,o.scopedSlots?Object.assign({default:function(){return r}},o.scopedSlots):r)}return e(t,o,r)}return function(){return t.call(this,o)}}function s(e){return e.$slots.default&&e.$slots.default()}export{s as getDefaultSlot,o as isVue2,r as isVue3,n as renderCompat};
2
2
  //# sourceMappingURL=index-vue3.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-vue3.js","sources":["../../../../../src/util/vue-compat/index-vue3.js"],"sourcesContent":["import * as Vue from 'vue';\n\nconst isVue2 = false;\nconst isVue3 = true;\nconst Vue2 = undefined;\n\nexport { createApp, createSSRApp, h, version, nextTick } from 'vue';\nexport { Vue, Vue2, isVue2, isVue3 };\n\nexport function renderCompat(fn) {\n function h(tag, props, children) {\n if (\n typeof props === 'object' &&\n (props.attrs || props.props || props.scopedSlots || props.on)\n ) {\n // In vue 3, we no longer wrap with `attrs` or `props` key.\n const flatProps = Object.assign(\n {},\n props,\n props.attrs,\n props.props,\n Object.keys(props.on || {}).reduce((acc, key) => {\n // eslint-disable-next-line no-param-reassign\n acc[`on${key[0].toUpperCase()}${key.slice(1)}`] = props.on[key];\n return acc;\n }, {})\n );\n delete flatProps.attrs;\n delete flatProps.props;\n delete flatProps.scopedSlots;\n delete flatProps.on;\n\n return Vue.h(\n tag,\n flatProps,\n props.scopedSlots\n ? Object.assign({ default: () => children }, props.scopedSlots)\n : children\n );\n }\n\n return Vue.h(tag, props, children);\n }\n\n return function () {\n return fn.call(this, h);\n };\n}\n\nexport function getDefaultSlot(component) {\n return component.$slots.default && component.$slots.default();\n}\n"],"names":["isVue2","isVue3","renderCompat","fn","h","tag","props","children","attrs","scopedSlots","on","const","flatProps","Object","assign","keys","reduce","acc","key","toUpperCase","slice","Vue","default","call","this","getDefaultSlot","component","$slots"],"mappings":"8HAEMA,GAAS,EACTC,GAAS,EAMR,SAASC,EAAaC,GAC3B,SAASC,EAAEC,EAAKC,EAAOC,GACrB,GACmB,iBAAVD,IACNA,EAAME,OAASF,EAAMA,OAASA,EAAMG,aAAeH,EAAMI,IAC1D,CAEAC,IAAMC,EAAYC,OAAOC,OACvB,GACAR,EACAA,EAAME,MACNF,EAAMA,MACNO,OAAOE,KAAKT,EAAMI,IAAM,IAAIM,gBAAQC,EAAKC,GAGvC,OADAD,OAASC,EAAI,GAAGC,cAAgBD,EAAIE,MAAM,IAAQd,EAAMI,GAAGQ,GACpDD,GACN,KAOL,cALOL,EAAUJ,aACVI,EAAUN,aACVM,EAAUH,mBACVG,EAAUF,GAEVW,EACLhB,EACAO,EACAN,EAAMG,YACFI,OAAOC,OAAO,CAAEQ,0BAAef,IAAYD,EAAMG,aACjDF,GAIR,OAAOc,EAAMhB,EAAKC,EAAOC,GAG3B,OAAO,WACL,OAAOJ,EAAGoB,KAAKC,KAAMpB,IAIlB,SAASqB,EAAeC,GAC7B,OAAOA,EAAUC,OAAOL,SAAWI,EAAUC,OAAOL"}
1
+ {"version":3,"file":"index-vue3.js","sources":["../../../../../src/util/vue-compat/index-vue3.js"],"sourcesContent":["import * as Vue from 'vue';\n\nconst isVue2 = false;\nconst isVue3 = true;\nconst Vue2 = undefined;\n\nexport { createApp, createSSRApp, h, version, nextTick } from 'vue';\nexport { Vue, Vue2, isVue2, isVue3 };\n\nexport function renderCompat(fn) {\n function h(tag, props, children) {\n if (\n typeof props === 'object' &&\n (props.attrs || props.props || props.scopedSlots || props.on)\n ) {\n // In vue 3, we no longer wrap with `attrs` or `props` key.\n const onPropKeys = Object.keys(props.on || {});\n const flatProps = Object.assign(\n {},\n props,\n props.attrs,\n props.props,\n onPropKeys.reduce((acc, key) => {\n // eslint-disable-next-line no-param-reassign\n acc[`on${key[0].toUpperCase()}${key.slice(1)}`] = props.on[key];\n return acc;\n }, {})\n );\n delete flatProps.attrs;\n delete flatProps.props;\n delete flatProps.scopedSlots;\n onPropKeys.forEach((key) => delete flatProps.on[key]);\n\n return Vue.h(\n tag,\n flatProps,\n props.scopedSlots\n ? Object.assign({ default: () => children }, props.scopedSlots)\n : children\n );\n }\n\n return Vue.h(tag, props, children);\n }\n\n return function () {\n return fn.call(this, h);\n };\n}\n\nexport function getDefaultSlot(component) {\n return component.$slots.default && component.$slots.default();\n}\n"],"names":["isVue2","isVue3","renderCompat","fn","h","tag","props","children","attrs","scopedSlots","on","const","onPropKeys","Object","keys","flatProps","assign","reduce","acc","key","toUpperCase","slice","forEach","Vue","default","call","this","getDefaultSlot","component","$slots"],"mappings":"8HAEMA,GAAS,EACTC,GAAS,EAMR,SAASC,EAAaC,GAC3B,SAASC,EAAEC,EAAKC,EAAOC,GACrB,GACmB,iBAAVD,IACNA,EAAME,OAASF,EAAMA,OAASA,EAAMG,aAAeH,EAAMI,IAC1D,CAEAC,IAAMC,EAAaC,OAAOC,KAAKR,EAAMI,IAAM,IACrCK,EAAYF,OAAOG,OACvB,GACAV,EACAA,EAAME,MACNF,EAAMA,MACNM,EAAWK,gBAAQC,EAAKC,GAGtB,OADAD,OAASC,EAAI,GAAGC,cAAgBD,EAAIE,MAAM,IAAQf,EAAMI,GAAGS,GACpDD,GACN,KAOL,cALOH,EAAUP,aACVO,EAAUT,aACVS,EAAUN,YACjBG,EAAWU,iBAASH,iBAAeJ,EAAUL,GAAGS,KAEzCI,EACLlB,EACAU,EACAT,EAAMG,YACFI,OAAOG,OAAO,CAAEQ,0BAAejB,IAAYD,EAAMG,aACjDF,GAIR,OAAOgB,EAAMlB,EAAKC,EAAOC,GAG3B,OAAO,WACL,OAAOJ,EAAGsB,KAAKC,KAAMtB,IAIlB,SAASuB,EAAeC,GAC7B,OAAOA,EAAUC,OAAOL,SAAWI,EAAUC,OAAOL"}