UNPKG

vue-instantsearch

Version:

👀 Lightning-fast Algolia search for Vue apps

2 lines (1 loc) • 2.71 kB
import{_ as e}from"@swc/helpers/_/_define_property";import{_ as t}from"@swc/helpers/_/_sliced_to_array";import{_ as n}from"@swc/helpers/_/_to_consumable_array";import{createFeedContainer as r}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-vue3.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||[])}}},"beforeUnmount",function(){null!==this.removalTimer&&(clearTimeout(this.removalTimer),this.removalTimer=null);var e=Array.from(new Set(n(this.feedContainers.values()).concat(n(this.pendingRemovals.values()))));this.pendingRemovals.clear(),this.feedContainers.clear(),e.length>0&&this.getParentIndex().removeWidgets(e)}),e(m,"methods",{reconcileContainers:function(e){var n=this,i=this.getParentIndex(),s=new Set(e),a=[];this.feedContainers.forEach(function(e,t){s.has(t)||(a.push([t,e]),n.feedContainers.delete(t))}),a.length>0&&(a.forEach(function(e){var r=t(e,2),i=r[0],s=r[1];n.pendingRemovals.set(i,s)}),null!==this.removalTimer&&clearTimeout(this.removalTimer),this.removalTimer=setTimeout(function(){var e=Array.from(n.pendingRemovals.values());n.pendingRemovals.clear(),n.removalTimer=null,e.length>0&&i.removeWidgets(e)},0));var o=[];e.forEach(function(e){if(!n.feedContainers.has(e)){var t=n.pendingRemovals.get(e);if(t)return n.pendingRemovals.delete(e),void n.feedContainers.set(e,t);var s=r(e,i,n.instantSearchInstance);n.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 n=this.state.feedIDs||[],r=d(this,"default"),i=n.map(function(n){var i=t.feedContainers.get(n);if(!i||!r)return null;var s=r({feedID:n});return e(l,{key:n,feedContainer:i,scopedSlots:{default:function(){return s}}},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};