vue-instantsearch
Version:
👀 Lightning-fast Algolia search for Vue apps
2 lines (1 loc) • 1.46 kB
JavaScript
import{connectDynamicWidgets as t}from"instantsearch.js/es/connectors/index.js";import{createSuitMixin as e}from"../mixins/suit.js";import{createWidgetMixin as i}from"../mixins/widget.js";import{_objectSpread as r}from"../util/polyfills.js";import{renderCompat as s,getDefaultSlot as n}from"../util/vue-compat/index-vue2.js";function a(t){var e,i=t.componentOptions&&t.componentOptions.propsData;if(i){if(i.attribute)return i.attribute;if(Array.isArray(i.attributes))return i.attributes[0]}if(e=t.componentOptions&&t.componentOptions.children?t.componentOptions.children:t.children,Array.isArray(e))return e.reduce(function(t,e){return t||a(e)},void 0)}var o={name:"AisDynamicWidgets",mixins:[i({connector:t},{$$widgetType:"ais.dynamicWidgets"}),e({name:"DynamicWidgets"})],props:{transformItems:{type:Function,default:void 0},facets:{type:Array,default:void 0},maxValuesPerFacet:{type:Number,default:void 0}},render:s(function(t){var e=this,i=new Map;if((n(this)||[]).forEach(function(r){var s=a(r);s&&i.set(s,t("div",{key:s,class:[e.suit("widget")]},[r]))}),!this.state){var s=[];return i.forEach(function(t){return s.push(t)}),t("div",r({class:[this.suit()]},{attrs:{hidden:!0}}),s)}return t("div",{class:[this.suit()]},this.state.attributesToRender.map(function(t){return i.get(t)}))}),computed:{widgetParams:function(){return{transformItems:this.transformItems,facets:this.facets,maxValuesPerFacet:this.maxValuesPerFacet,widgets:[]}}}};export{o as default};