vue-instantsearch-ssr
Version:
👀 Lightning-fast Algolia search for Vue apps
3 lines (2 loc) • 2.57 kB
JavaScript
import{createSuitMixin as t}from"../mixins/suit.js";import{createWidgetMixin as e}from"../mixins/widget.js";import{connectRange as n}from"instantsearch.js/es/connectors/index.js";import{createPanelConsumerMixin as i}from"../mixins/panel.js";var a=function(t){return t&&Boolean(t.range)&&t.range.min!==t.range.max};export default{render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return t.state?n("div",{class:[t.suit(),!t.canRefine&&t.suit("","noRefinement")]},[t._t("default",[n("form",{class:t.suit("form"),on:{submit:function(e){e.preventDefault(),t.refine({min:t.pick(t.minInput,t.values.min),max:t.pick(t.maxInput,t.values.max)})}}},[n("label",{class:t.suit("label")},[t._t("minLabel"),t._v(" "),n("input",{class:[t.suit("input"),t.suit("input","min")],attrs:{type:"number",step:t.step,min:t.state.range.min,max:t.state.range.max,placeholder:t.state.range.min},domProps:{value:t.values.min},on:{change:function(e){t.minInput=e.currentTarget.value}}})],2),t._v(" "),n("span",{class:t.suit("separator")},[t._t("separator",[t._v("to")])],2),t._v(" "),n("label",{class:t.suit("label")},[t._t("maxLabel"),t._v(" "),n("input",{class:[t.suit("input"),t.suit("input","max")],attrs:{type:"number",step:t.step,min:t.state.range.min,max:t.state.range.max,placeholder:t.state.range.max},domProps:{value:t.values.max},on:{change:function(e){t.maxInput=e.currentTarget.value}}})],2),t._v(" "),n("button",{class:t.suit("submit"),attrs:{type:"submit"}},[t._t("submitLabel",[t._v("Go")])],2)])],{currentRefinement:t.values,refine:t.refine,canRefine:t.canRefine,range:t.state.range,sendEvent:t.state.sendEvent})],2):t._e()},staticRenderFns:[],name:"AisRangeInput",mixins:[t({name:"RangeInput"}),e({connector:n}),i({mapStateToCanRefine:a})],props:{attribute:{type:String,required:!0},min:{type:Number,required:!1,default:void 0},max:{type:Number,required:!1,default:void 0},precision:{type:Number,required:!1,default:0}},data:function(){return{minInput:void 0,maxInput:void 0}},updated:function(){this.minInput=void 0,this.maxInput=void 0},computed:{widgetParams:function(){return{attribute:this.attribute,min:this.min,max:this.max,precision:this.precision}},canRefine:function(){return a(this.state)},step:function(){return 1/Math.pow(10,this.precision)},values:function(){var t=this.state.start,e=t[0],n=t[1],i=this.state.range,a=i.min,s=i.max;return{min:e!==-1/0&&e!==a?e:void 0,max:n!==1/0&&n!==s?n:void 0}}},methods:{pick:function(t,e){return null!=t?t:e},refine:function(t){var e=t.min,n=t.max;this.state.refine([e,n])}}};
//# sourceMappingURL=RangeInput.vue.js.map