IconSelect-DxbD0LUf.js 9.6 KB

1
  1. import{ck as T,cL as x,cM as F,s as M,bd as P,y as m,f as o,ag as s,L as C,E as S,G as E,bf as b,c3 as V,O as R,b9 as v,k as _,z as p,P as u,Q as a,a1 as B}from"./index-DT8qTvyx.js";var g=[];function A(i){i===void 0&&(i="amis-icon-manage-mount-node");var n=document.getElementById(i);if(n)return n;var e=document.createElement("div");return e.setAttribute("id",i),e.setAttribute("style","width:0;height:0;visibility:hidden;"),document.body.firstElementChild?document.body.insertBefore(e,document.body.firstElementChild):document.body.appendChild(e),e}function N(i,n){var e=A(n);e&&(e.innerHTML=i)}var f=null;function D(i){if(i&&typeof i=="function")f=function(){return i({setSvgIconList:L,mountIconSpriteToDom:N})};else throw f=null,new Error("setRefreshSvgListAction need a function param, not "+typeof i)}function L(i,n,e){n===void 0&&(n=!0),e===void 0&&(e=F());var t=T(i),r=x(e);if(n){var l=t.map(function(d){return d.children}).flat();g=[{name:r("IconSelect.all"),groupId:"all",children:l}].concat(i)}else g=i}const k=Object.freeze(Object.defineProperty({__proto__:null,mountIconSpriteToDom:N,get refreshIconList(){return f},setRefreshSvgListAction:D,setSvgIconList:L,get svgIcons(){return g}},Symbol.toStringTag,{value:"Module"}));var O=function(i){M(n,i);function n(e){var t=i.call(this,e)||this;return t.state={activeTypeIndex:0,showModal:!1,tmpCheckIconId:null,searchValue:"",isRefreshLoading:!1},t.handleSearchValueChange=P(t.handleSearchValueChange.bind(t),300),t}return n.prototype.getSvgName=function(e){var t;return typeof e=="string"?((t=/data-name="(.*?)"/.exec(e))===null||t===void 0?void 0:t[1])||"":(e==null?void 0:e.name)||(e==null?void 0:e.id)||""},n.prototype.getSvgId=function(e){var t;return typeof e=="string"?((t=/data-id="(.*?)"/.exec(e))===null||t===void 0?void 0:t[1])||"":(e==null?void 0:e.id)||""},n.prototype.getValueBySvg=function(e){var t;if(!e)return null;if(typeof e!="string")return m(m({},e),{svg:(t=e.svg)===null||t===void 0?void 0:t.replace(/'/g,"")});var r=this.getSvgName(e),l=this.getSvgId(e);return{name:r,id:l,svg:e.replace(/'/g,"")}},n.prototype.handleClick=function(){this.props.disabled||this.toggleModel(!0)},n.prototype.handleClear=function(e){e.preventDefault(),e.stopPropagation(),this.props.onChange&&this.props.onChange("")},n.prototype.renderInputArea=function(){var e=this.props,t=e.classPrefix,r=e.disabled,l=e.value,d=e.placeholder,h=e.clearable,c=this.getValueBySvg(l);return o.createElement("div",{className:s("".concat(t,"IconSelectControl-input-area"))},o.createElement("div",{className:s("".concat(t,"IconSelectControl-input-icon-show"))},o.createElement(C,{icon:c==null?void 0:c.svg,className:"icon"})),o.createElement("span",{className:s("".concat(t,"IconSelectControl-input-icon-id"))},c==null?void 0:c.name),h&&!r&&c?o.createElement("a",{onClick:this.handleClear,className:s("".concat(t,"IconSelectControl-clear"))},o.createElement(C,{icon:"input-clear",className:"icon"})):null,!c&&d&&o.createElement("span",{className:s("".concat(t,"IconSelectControl-input-icon-placeholder"))},d)||null)},n.prototype.handleIconTypeClick=function(e,t){this.setState({activeTypeIndex:t})},n.prototype.renderIconTypes=function(){var e=this,t=this.props.classPrefix,r=g.map(function(l){return{id:l.groupId,label:l.name}});return o.createElement("ul",{className:s("".concat(t,"IconSelectControl-type-list"))},r.map(function(l,d){return o.createElement("li",{key:l.id,onClick:function(){return e.handleIconTypeClick(l,d)},className:s({active:d===e.state.activeTypeIndex})},l.label)}))},n.prototype.handleConfirm=function(){var e=this.state.tmpCheckIconId;if(this.props.returnSvg){var t=e&&e.svg||"";t=t.replace(/<svg/,'<svg data-name="'.concat(e==null?void 0:e.name,'" data-id="').concat(e==null?void 0:e.id,'"')),this.props.onChange&&this.props.onChange(t)}else this.props.onChange&&this.props.onChange(e&&e.id?m(m({},e),{id:"svg-"+e.id}):"");this.toggleModel(!1)},n.prototype.handleLocalUpload=function(e){return S(this,void 0,void 0,function(){return E(this,function(t){return this.props.onChange&&this.props.onChange(e),this.toggleModel(!1),[2]})})},n.prototype.handleClickIconInModal=function(e){var t;this.setState({tmpCheckIconId:(e==null?void 0:e.id)===((t=this.state.tmpCheckIconId)===null||t===void 0?void 0:t.id)?null:e})},n.prototype.renderIconList=function(e){var t=this,r=this.props,l=r.classPrefix,d=r.noDataTip,h=r.translate;return!e||!e.length?o.createElement("p",{className:s("".concat(l,"IconSelectControl-icon-list-empty"))},h(d)):o.createElement("ul",{className:s("".concat(l,"IconSelectControl-icon-list"))},e.map(function(c,I){var y;return o.createElement("li",{key:c.id},o.createElement("div",{className:s("".concat(l,"IconSelectControl-icon-list-item"),{active:((y=t.state.tmpCheckIconId)===null||y===void 0?void 0:y.id)===c.id}),onClick:function(){return t.handleClickIconInModal(c)}},o.createElement("svg",null,o.createElement("use",{xlinkHref:"#".concat(c.id)})),o.createElement("div",{className:s("".concat(l,"IconSelectControl-icon-list-item-info"))},o.createElement("p",{className:s("".concat(l,"IconSelectControl-icon-list-item-info-name"))},c.name))))}))},n.prototype.handleSearchValueChange=function(e){this.setState({searchValue:e})},n.prototype.handleRefreshIconList=function(){return S(this,void 0,void 0,function(){var e,t;return E(this,function(r){switch(r.label){case 0:if(e=f,!(e&&typeof e=="function"))return[3,5];r.label=1;case 1:return r.trys.push([1,3,4,5]),this.setState({isRefreshLoading:!0}),[4,Promise.resolve(e())];case 2:return r.sent(),[3,5];case 3:return t=r.sent(),console.error(t),[3,5];case 4:return this.setState({isRefreshLoading:!1}),[7];case 5:return[2]}})})},n.prototype.renderModalContent=function(){var e=this.props,t=e.render,r=e.classPrefix,l=e.loadingConfig;e.funcSchema;var d=e.funcCom,h=this.getIconsByType(),c=this.state.searchValue,I=c?b(h,c,{keys:["name"],threshold:b.rankings.CONTAINS}):h;return o.createElement(o.Fragment,null,o.createElement(V,{className:s("".concat(r,"IconSelectControl-Modal-search")),mini:!1,clearable:!0,onChange:this.handleSearchValueChange}),f&&t("refresh-btn",{type:"button",icon:"fa fa-refresh"},{className:s("".concat(r,"IconSelectControl-Modal-refresh")),onClick:this.handleRefreshIconList})||null,d?o.createElement("div",{className:s("".concat(r,"IconSelectControl-Modal-func"))},o.createElement(d,{onUpload:this.handleLocalUpload})):null,o.createElement("div",{className:s("".concat(r,"IconSelectControl-Modal-content"))},o.createElement(R,{size:"lg",loadingConfig:l,overlay:!0,key:"info",show:this.state.isRefreshLoading}),o.createElement("div",{className:s("".concat(r,"IconSelectControl-Modal-content-aside"))},this.renderIconTypes()),o.createElement("div",{className:s("".concat(r,"IconSelectControl-Modal-content-main"))},this.renderIconList(I))))},n.prototype.getIconsByType=function(){return(k==null?void 0:g.length)&&g[this.state.activeTypeIndex].children||[]},n.prototype.toggleModel=function(e){var t=this.props.value,r=typeof t=="string"?this.getValueBySvg(t):t;if(e===void 0){this.setState({showModal:!this.state.showModal,searchValue:""});return}this.setState({showModal:e,tmpCheckIconId:e&&(r!=null&&r.id)?m(m({},r),{id:String(r.id).replace(/^svg-/,"")}):null,searchValue:""})},n.prototype.render=function(){var e=this,t=this.props,r=t.className;t.style;var l=t.classPrefix,d=t.disabled,h=t.translate;return o.createElement("div",{className:s(r,"".concat(l,"IconSelectControl"),{"is-focused":this.state.showModal,"is-disabled":d})},o.createElement("div",{className:s("".concat(l,"IconSelectControl-input")),onClick:this.handleClick},this.renderInputArea()),o.createElement(v,{show:this.state.showModal,closeOnOutside:!0,closeOnEsc:!0,size:"lg",overlay:!0,onHide:function(){return e.toggleModel(!1)}},o.createElement(v.Header,{onClose:function(){return e.toggleModel(!1)}},h("IconSelect.choice")),o.createElement(v.Body,null,this.renderModalContent()),o.createElement(v.Footer,null,o.createElement(_,{type:"button",className:"m-l",onClick:function(){return e.toggleModel(!1)}},h("cancel")),o.createElement(_,{type:"button",level:"primary",onClick:this.handleConfirm},h("confirm")))))},n.defaultProps={noDataTip:"placeholder.noData",clearable:!0},p([u,a("design:type",Function),a("design:paramtypes",[]),a("design:returntype",void 0)],n.prototype,"handleClick",null),p([u,a("design:type",Function),a("design:paramtypes",[Object]),a("design:returntype",void 0)],n.prototype,"handleClear",null),p([u,a("design:type",Function),a("design:paramtypes",[]),a("design:returntype",void 0)],n.prototype,"renderInputArea",null),p([u,a("design:type",Function),a("design:paramtypes",[Object,Number]),a("design:returntype",void 0)],n.prototype,"handleIconTypeClick",null),p([u,a("design:type",Function),a("design:paramtypes",[]),a("design:returntype",void 0)],n.prototype,"renderIconTypes",null),p([u,a("design:type",Function),a("design:paramtypes",[]),a("design:returntype",void 0)],n.prototype,"handleConfirm",null),p([u,a("design:type",Function),a("design:paramtypes",[String]),a("design:returntype",Promise)],n.prototype,"handleLocalUpload",null),p([u,a("design:type",Function),a("design:paramtypes",[Array]),a("design:returntype",void 0)],n.prototype,"renderIconList",null),p([u,a("design:type",Function),a("design:paramtypes",[]),a("design:returntype",Promise)],n.prototype,"handleRefreshIconList",null),p([u,a("design:type",Function),a("design:paramtypes",[]),a("design:returntype",void 0)],n.prototype,"renderModalContent",null),p([u,a("design:type",Function),a("design:paramtypes",[Boolean]),a("design:returntype",void 0)],n.prototype,"toggleModel",null),n}(o.PureComponent),j=function(i){M(n,i);function n(){return i!==null&&i.apply(this,arguments)||this}return n=p([B({type:"icon-select"})],n),n}(O);export{j as IconSelectControlRenderer,O as default};