UNPKG

vue-instantsearch

Version:

👀 Lightning-fast Algolia search for Vue apps

2 lines (1 loc) • 2.67 kB
import{_ as e}from"@swc/helpers/_/_define_property";import{_ as t}from"@swc/helpers/_/_sliced_to_array";import{_ as r}from"@swc/helpers/_/_to_consumable_array";import{createFeedContainer as n}from"instantsearch.js/es/connectors/feeds/FeedContainer.js";import{connectFeeds as i}from"instantsearch.js/es/connectors/index.js";import{createSuitMixin as s}from"../mixins/suit.js";import{createWidgetMixin as a}from"../mixins/widget.js";import{renderCompat as o,getScopedSlot as d}from"../util/vue-compat/index-vue2.js";var m,l={name:"AisFeedProvider",props:{feedContainer:{type:Object,required:!0}},provide:function(){var e=this;return{$_ais_getParentIndex:function(){return e.feedContainer}}},render:o(function(e){var t=d(this,"default");return e("div",{},t?t():[])})},f=(e(m={name:"AisFeeds",mixins:[a({connector:i},{$$widgetType:"ais.feeds"}),s({name:"Feeds"})],props:{isolated:{type:Boolean,required:!0},transformFeeds:{type:Function,default:void 0}},data:function(){return{feedContainers:new Map,removalTimer:null,pendingRemovals:new Map}},watch:{state:function(e){e&&this.reconcileContainers(e.feedIDs||[])}}},"beforeDestroy",function(){null!==this.removalTimer&&(clearTimeout(this.removalTimer),this.removalTimer=null);var e=Array.from(new Set(r(this.feedContainers.values()).concat(r(this.pendingRemovals.values()))));this.pendingRemovals.clear(),this.feedContainers.clear(),e.length>0&&this.getParentIndex().removeWidgets(e)}),e(m,"methods",{reconcileContainers:function(e){var r=this,i=this.getParentIndex(),s=new Set(e),a=[];this.feedContainers.forEach(function(e,t){s.has(t)||(a.push([t,e]),r.feedContainers.delete(t))}),a.length>0&&(a.forEach(function(e){var n=t(e,2),i=n[0],s=n[1];r.pendingRemovals.set(i,s)}),null!==this.removalTimer&&clearTimeout(this.removalTimer),this.removalTimer=setTimeout(function(){var e=Array.from(r.pendingRemovals.values());r.pendingRemovals.clear(),r.removalTimer=null,e.length>0&&i.removeWidgets(e)},0));var o=[];e.forEach(function(e){if(!r.feedContainers.has(e)){var t=r.pendingRemovals.get(e);if(t)return r.pendingRemovals.delete(e),void r.feedContainers.set(e,t);var s=n(e,i,r.instantSearchInstance);r.feedContainers.set(e,s),o.push(s)}}),o.length>0&&i.addWidgets(o)}}),e(m,"render",o(function(e){var t=this;if(!this.state)return e("div",{class:[this.suit()]});var r=this.state.feedIDs||[],n=d(this,"default"),i=r.map(function(r){var i=t.feedContainers.get(r);if(!i||!n)return null;var s=n({feedID:r});return e(l,{key:r,props:{feedContainer:i}},s)});return e("div",{class:[this.suit()]},i)})),e(m,"computed",{widgetParams:function(){return{isolated:this.isolated,transformFeeds:this.transformFeeds}}}),m);export{f as default};