1"use strict";(self.hometalkChunk=self.hometalkChunk||[]).push([["amazon-product-search"],{15086(e,t,s){s.r(t),s.d(t,{default:()=>d});var i=s(54705),a=s(96540),r=s.n(a),n=s(70533),l=s(4211);class o extends r().Component{constructor(e){super(e),(0,i.A)(this,"handleClickOutside",e=>{this.wrapperRef.current&&!this.wrapperRef.current.contains(e.target)&&this.setState({isOpen:!1,highlightedIndex:-1})}),(0,i.A)(this,"onInputChange",e=>{const t=e.target.value;this.setState({query:t,error:null}),t.length>=3?this.searchProducts(t):this.setState({results:[],isOpen:!1})}),(0,i.A)(this,"selectProduct",e=>{this.setState({query:"",results:[],isOpen:!1,highlightedIndex:-1}),this.props.onSelect&&this.props.onSelect(e)}),(0,i.A)(this,"onKeyDown",e=>{const{results:t,highlightedIndex:s,isOpen:i}=this.state;i&&t.length&&(40===e.keyCode?(e.preventDefault(),this.setState({highlightedIndex:Math.min(s+1,t.length-1)})):38===e.keyCode?(e.preventDefault(),this.setState({highlightedIndex:Math.max(s-1,0)})):13===e.keyCode?(e.preventDefault(),s>=0&&t[s]&&this.selectProduct(t[s])):27===e.keyCode&&this.setState({isOpen:!1,highlightedIndex:-1}))}),this.state={query:"",results:[],isLoading:!1,isOpen:!1,error:null,highlightedIndex:-1},this.wrapperRef=r().createRef(),this.inputRef=r().createRef(),this.searchProducts=(0,l.sg)(this.searchProducts.bind(this),300)}componentDidMount(){document.addEventListener("mousedown",this.handleClickOutside)}componentWillUnmount(){document.removeEventListener("mousedown",this.handleClickOutside)}searchProducts(e){this.setState({isLoading:!0}),n.Ay.get("slideshow/amazon",{query:e}).then(e=>{e&&e.items?this.setState({results:e.items,isOpen:e.items.length>0,isLoading:!1}):this.setState({results:[],isOpen:!1,isLoading:!1})}).catch(()=>{this.setState({results:[],isOpen:!1,isLoading:!1,error:"Search failed. Please try again."})})}getImageUrl(e){if(e.images){if(e.images.smallImage)return e.images.smallImage.URL;if(e.images.mediumImage)return e.images.mediumImage.URL}return""}formatPrice(e){return e?"$"+parseFloat(e).toFixed(2):""}render(){const{query:e,results:t,isLoading:s,isOpen:i,error:a,highlightedIndex:n}=this.state,{isUploading:l}=this.props;return l?r().createElement("div",{className:"amazon-product-search relative",ref:this.wrapperRef},r().createElement("div",{className:"embedInputButton flexbox flex-align-center relative",style:{justifyContent:"center",padding:"8px 12px",color:"#666",gap:"8px"}},r().createElement("span",{className:"amazon-upload-spinner",style:{display:"inline-block",width:"16px",height:"16px",border:"2px solid #ddd",borderTopColor:"#666",borderRadius:"50%",animation:"amazon-spin 0.8s linear infinite"}}),r().createElement("span",null,"Adding product slide..."),r().createElement("style",null,"@keyframes amazon-spin { to { transform: rotate(360deg); } }"))):r().createElement("div",{className:"amazon-product-search relative",ref:this.wrapperRef,style:{padding:"12px 16px",marginTop:"20px",backgroundColor:"rgb(248, 249, 250)",borderLeft:"5px solid var(--colorPrimary)"}},r().createElement("div",{className:"embedInputButton flexbox flex-align-center relative",style:{margin:0,maxWidth:"100%"}},r().createElement("i",{className:"ics-search",style:{position:"absolute",left:"12px",color:"#999",zIndex:1}}),r().createElement("input",{ref:this.inputRef,type:"text",value:e,onChange:this.onInputChange,onKeyDown:this.onKeyDown,placeholder:this.props.placeholder||"Add more Amazon products...",className:"bordered sl-amazon-search-input",style:{paddingInline:"40px 10px"},autoComplete:"off"}),s&&r().createElement("span",{className:"amazon-search-spinner",style:{position:"absolute",right:"12px",color:"#999"}},"...")),a&&r().createElement("div",{className:"reqErrorMsg"},a),i&&t.length>0&&r().createElement("ul",{className:"amazon-search-results",style:{position:"absolute",top:"100%",left:0,right:0,background:"#fff",border:"1px solid #ddd",borderTop:"none",borderRadius:"0 0 6px 6px",maxHeight:"400px",overflowY:"auto",zIndex:100,listStyle:"none",padding:0,margin:0,boxShadow:"0 4px 12px rgba(0,0,0,0.1)"}},t.map((e,t)=>r().createElement("li",{key:e.ASIN,className:"amazon-search-result-item "+(n===t?"highlighted":""),onClick:()=>this.selectProduct(e),onMouseEnter:()=>this.setState({highlightedIndex:t}),style:{display:"flex",alignItems:"center",padding:"8px 12px",cursor:"pointer",borderBottom:"1px solid #eee",background:n===t?"#f5f5f5":"#fff",gap:"10px"}},this.getImageUrl(e)&&r().createElement("img",{src:this.getImageUrl(e),alt:e.title,style:{width:"40px",height:"40px",objectFit:"contain",flexShrink:0}}),r().createElement("div",{style:{flex:1,minWidth:0}},r().createElement("div",{style:{fontSize:"14px",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},e.title),e.price&&r().createElement("div",{style:{fontSize:"12px",color:"#666",marginTop:"2px"}},this.formatPrice(e.price)))))))}}const d=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.