meraproject/lib/js/bws/react/form/select.min.js
keboss-m 5c21d25d45 Initial commit: Merakomis portal, Docker stack and user-reader API.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-24 11:04:05 +03:00

3 lines
4.7 KiB
JavaScript

var Select;export default window.Select=Select=class extends React.Component{constructor(e){var t,a,s,r,l,n,i,c,o;if(super(e),o=null,null!=(t=this.prepareData(e.data))&&null!=e.id)for(s=0,r=t.length;s<r;s++)if(a=t[s],parseInt(a.id)===parseInt(e.id)){o=a;break}this.state={open:null!=e.open?e.open:e.open=!1,data:null!=t?t:[],selected:null!=o?o:null!=(l=t[0])?l:null,ajax:null!=(n=e.ajax)&&n,controller:null!=(i=e.controller)?i:"",placeholder:null!=(c=e.placeholder)?c:"",search:"",statuses:!0===e.statuses},this.input=null,this.inputSearch=null,this.roller=null,this.toggle=this.toggle.bind(this),this.prepareData=this.prepareData.bind(this),this.preventClose=this.preventClose.bind(this)}preventClose(e){return null!=e&&e.stopPropagation(),null!=e?e.preventDefault():void 0}prepareData(e){var t,a,s,r;if(a=[],Array.isArray(e)){if("string"==typeof e[0])for(t in e)r=e[t],a.push({id:parseInt(t),title:r})}else for(t in e)r=e[t],a.push({id:parseInt(t),title:r});if(0===a.length&&(a=e),!0===this.props.statuses)for(t in a){if("string"==typeof(r=a[t]).title)switch(parseInt(r.type)){case OrderStatusType.NEW:s=React.createElement("div",{class:"status st-new"},React.createElement("div",{class:"st-round"}),React.createElement("div",{class:"st-txt ch-black"},r.title));break;case OrderStatusType.WORK:s=React.createElement("div",{class:"status st-work"},React.createElement("div",{class:"st-round"}),React.createElement("div",{class:"st-txt ch-black"},r.title));break;case OrderStatusType.WAIT:s=React.createElement("div",{class:"status st-need-pay"},React.createElement("div",{class:"st-round"}),React.createElement("div",{class:"st-txt ch-black"},r.title));break;case OrderStatusType.PART:s=React.createElement("div",{class:"status st-half-pay"},React.createElement("div",{class:"st-round"}),React.createElement("div",{class:"st-txt ch-black"},r.title));break;case OrderStatusType.FINISH:s=React.createElement("div",{class:"status st-end"},React.createElement("div",{class:"st-round"}),React.createElement("div",{class:"st-txt ch-black"},r.title));break;case OrderStatusType.CANCEL:s=React.createElement("div",{class:"status st-new"},React.createElement("div",{class:"st-round"}),React.createElement("div",{class:"st-txt ch-black"},r.title))}else s=r.title;a[t].title=s}return a}getValue(){return null!=this.state.selected?this.state.selected.id:0}close(){return this.setState({open:!1})}open(){return this.setState({open:!0},this.afterOpen)}afterOpen(){return $(this.roller).perfectScrollbar("update")}toggle(){return this.state.open?this.close():this.open()}componentDidMount(){return $(this.roller).perfectScrollbar(),document.addEventListener("click",this.handleOuterClick.bind(this))}componentWillUnmount(){return document.removeEventListener("click",this.handleOuterClick.bind(this))}handleOuterClick(e){if(0===this.$wrap.has(e.target).length)return this.close()}aOnSelect(){var e;return this.close(),"function"==typeof(e=this.props).onSelect?e.onSelect(this.state.selected):void 0}onSelect(e,t){return null!=e&&e.stopPropagation(),null!=e&&e.preventDefault(),this,this.setState({selected:t},this.aOnSelect.bind(this))}refWrap(e){return this.wrap=e,this.$wrap=$(this.wrap)}aAjaxSearch(e){var t;return t=this.prepareData(e),this.setState({data:t},this.afterOpen)}ajaxSearch(){return API(this.state.controller+"/getNameList",{q:this.input.value,dataType:"JSON"},this.aAjaxSearch.bind(this))}search(){return this.setState({search:this.inputSearch.value})}renderItem(e,t){var a,s=this;return a=!0,""!==this.state.search&&"string"==typeof e.title&&(a=e.title.toLowerCase().indexOf(this.state.search.toLowerCase())>-1),a?React.createElement("div",{onClick:function(t){return s.onSelect(t,e)},className:"option"},e.title):null}render(){var e,t,a,s,r,l,n,i=this;return this,t=!0===this.state.open,({selected:l,search:r,ajax:e,placeholder:a}=this.state),n=null,null!=l&&(n=l.title),React.createElement("div",{className:["select c-100",t?"open":""].join(" "),ref:this.refWrap.bind(this)},React.createElement("div",{className:"i_wrap",onClick:this.toggle},React.createElement("div",{className:null!=(s=this.props.titleClass)?s:"i"},n)),React.createElement("div",{className:"options_bg",onClick:this.close.bind(this)},React.createElement("div",{className:"options _roller",ref:function(e){return i.roller=e}},React.createElement("div",null,e?React.createElement("input",{onKeyUp:this.ajaxSearch.bind(this),ref:function(e){return i.input=e},onClick:this.preventClose,className:"i",placeholder:a+" - поиск"}):null,!0===this.props.search?React.createElement("input",{onKeyUp:this.search.bind(this),ref:function(e){return i.inputSearch=e},class:"i",placeholder:a+" - поиск",onClick:this.preventClose}):null,Array.isArray(this.state.data)?this.state.data.map(this.renderItem.bind(this)):null))))}};
//# sourceMappingURL=select.min.js.map