1"use strict";(self.webpackChunkkeeperweb=self.webpackChunkkeeperweb||[]).push([[44744],{76984:function(e,t,s){s.d(t,{m:function(){return n}});var a=s(96540),r=s(80278),o=s(33265);let i=0;class n extends a.Component{constructor(e){super(e),this.generateRadios=()=>{let e=[];return this.props.options.map(t=>{e.push(a.createElement("label",{className:"mdl-radio mdl-js-radio mdl-js-ripple-effect",key:t.value},a.createElement("input",{type:"radio",className:"mdl-radio__button",value:t.value,checked:this.state.value===t.value}),a.createElement("span",{className:"mdl-radio__label"},t.label)))}),e},this.generateOptions=()=>{let e=[];return this.props.options.map(t=>{e.push(a.createElement("option",{key:t.value,value:t.value},t.label))}),e},this.onSelectChange=e=>{this.propChange(e.target.selectedOptions[0].value)},this.dropdownRef=a.createRef(),this.wrapperRef=a.createRef(),this._id="keeper-dropdown-"+ ++i,this.state={value:this.props.defaultValue||e.options[0].value}}componentDidMount(){o.UI.getInstance().dropdown(this.dropdownRef.current," ","field dropdown"),$(this.dropdownRef.current).on("change",e=>{this.onSelectChange(e)})}propChange(e){this.props.change(e),this.setState({value:e})}render(){return a.createElement("div",{className:"fs-dropdown",ref:this.wrapperRef},a.createElement("select",{className:"field dropdown","data-scrollable-gradient":this.props.scrollableGradient?"":void 0,"data-gradient-color":this.props.gradientColor||void 0,ref:this.dropdownRef,id:this._id,defaultValue:this.state.value,tabIndex:-1},this.generateOptions()),a.createElement("label",{className:"keeper-md",id:`${this._id}-label`,htmlFor:this._id},this.props.defaultOptionLabel||r.Ay.t("website_0983")))}}},44744:function(e,t,s){s.r(t),s.d(t,{ComparisonDropdowns:function(){return o}});var a=s(96540),r=s(76984);class o extends a.Component{constructor(e){super(e),this.name="ComparisonDropdowns",this.generateDropdowns=()=>{let e=[];return this.props.defaults.map((t,s)=>{e.push(a.createElement(r.m,{key:JSON.stringify(this.state.dropdownOptions[s]),defaultValue:this.state.selected[s],defaultOptionLabel:" ",change:e=>this.onOptionChange(s,e),options:this.state.dropdownOptions[s]}))}),e},this.filterId=this.props.filterId,this.state={selected:this.props.defaults.map(e=>e),dropdownOptions:this.props.defaults.map((e,t)=>this.getFilteredDropdownOptions(this.props.defaults,t))},this.applyFilters(this.state.selected)}getFilteredDropdownOptions(e,t){let s=[...e];return s.splice(t,1),this.props.options.filter(e=>!s.includes(e.value))}onOptionChange(e,t){let s=[...this.state.selected];s[e]=t;let a=s.map((e,t)=>this.getFilteredDropdownOptions(s,t));this.setState({selected:s,dropdownOptions:a}),this.applyFilters(s)}applyFilters(e){document.querySelector(`[data-filter-id=${this.props.filterId}]`)&&document.querySelectorAll(`[data-filter-id=${this.props.filterId}]`).forEach(t=>{t.setAttribute("data-compare",e.join(" ")),e.map((e,s)=>{t.setAttribute(`data-column-${s}`,e)})})}render(){return a.createElement("form",{noValidate:!0,className:"materialDesign",name:this.name,"data-testid":"comparison-dropdowns-form"},a.createElement("div",{className:"gridRow"},this.generateDropdowns()))}}t.default=o}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.