@crmchatreactcomponent/quick-messages 0.0.5 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.es.js +1028 -437
- package/dist/index.umd.js +13 -10
- package/package.json +14 -13
package/dist/index.umd.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(f,o){typeof exports=="object"&&typeof module<"u"?o(exports,require("react/jsx-runtime"),require("react"),require("antd"),require("emoji-picker-react"),require("react-i18next"),require("lodash-es"),require("styled-components"),require("@ant-design/icons"),require("react-use"),require("color"),require("i18next")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","react","antd","emoji-picker-react","react-i18next","lodash-es","styled-components","@ant-design/icons","react-use","color","i18next"],o):(f=typeof globalThis<"u"?globalThis:f||self,o(f.quickmessages={},f.jsxRuntime,f.react,f.antd,f.EmojiPicker,f.reactI18next,f.lodashEs,f.styled,f.icons,f.reactUse,f.Color,f.i18n))})(this,function(f,o,b,i,L,M,gt,j,G,ht,bt,yt){"use strict";function Q(){const{theme:e}=b.useContext(i.ConfigProvider.ConfigContext);return b.useMemo(()=>(e==null?void 0:e.algorithm)===i.theme.darkAlgorithm,[e])}const vt=L.EmojiStyle.FACEBOOK,mt=({children:e,disabled:t=!1,onSelect:r=()=>{},onOpenChange:n=()=>{}})=>{const[a,s]=b.useState(!1),d=Q();b.useEffect(()=>{n(a)},[a]);function g(l){r(l.emoji),s(!1)}function u(l){t||s(l)}return o.jsx(i.Popover,{title:"",open:a,onOpenChange:u,overlayInnerStyle:{backgroundColor:"transparent",padding:0},trigger:["click"],content:o.jsx(i.Space,{direction:"vertical",size:12,children:o.jsx(L,{skinTonesDisabled:!0,onEmojiClick:g,emojiStyle:vt,lazyLoadEmojis:!1,theme:d?L.Theme.DARK:L.Theme.LIGHT})}),destroyTooltipOnHide:!0,children:e})};function Ct(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){const t=Math.random()*16|0;return(e=="x"?t:t&3|8).toString(16)})}function Z(e,t){return e.length>t?e.substring(0,t)+"…":e}const F=b.createContext(null);function Tt(e){const[t,r]=i.message.useMessage(),[n,a]=i.Modal.useModal();return o.jsxs(F.Provider,{value:{messageApi:t,modalApi:n},children:[r,a,e.children]})}class xt{constructor(){this.type=v.PLAIN}toText(t){return t}toHtml(t){return t}parse(t){return t}}var St=typeof global=="object"&&global&&global.Object===Object&&global,R=St,jt=typeof self=="object"&&self&&self.Object===Object&&self,$t=R||jt||Function("return this")(),A=$t,At=A.Symbol,H=At,ee=Object.prototype,kt=ee.hasOwnProperty,Mt=ee.toString,D=H?H.toStringTag:void 0;function Pt(e){var t=kt.call(e,D),r=e[D];try{e[D]=void 0;var n=!0}catch{}var a=Mt.call(e);return n&&(t?e[D]=r:delete e[D]),a}var wt=Object.prototype,Ot=wt.toString;function Dt(e){return Ot.call(e)}var Et="[object Null]",It="[object Undefined]",te=H?H.toStringTag:void 0;function P(e){return e==null?e===void 0?It:Et:te&&te in Object(e)?Pt(e):Dt(e)}function E(e){return e!=null&&typeof e=="object"}var Nt=Array.isArray,S=Nt;function re(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Lt="[object AsyncFunction]",Gt="[object Function]",Ht="[object GeneratorFunction]",_t="[object Proxy]";function ne(e){if(!re(e))return!1;var t=P(e);return t==Gt||t==Ht||t==Lt||t==_t}var Ft=A["__core-js_shared__"],z=Ft,oe=function(){var e=/[^.]+$/.exec(z&&z.keys&&z.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function zt(e){return!!oe&&oe in e}var Bt=Function.prototype,qt=Bt.toString;function w(e){if(e!=null){try{return qt.call(e)}catch{}try{return e+""}catch{}}return""}var Kt=/[\\^$.*+?()[\]{}|]/g,Wt=/^\[object .+?Constructor\]$/,Ut=Function.prototype,Vt=Object.prototype,Yt=Ut.toString,Jt=Vt.hasOwnProperty,Xt=RegExp("^"+Yt.call(Jt).replace(Kt,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Qt(e){if(!re(e)||zt(e))return!1;var t=ne(e)?Xt:Wt;return t.test(w(e))}function Zt(e,t){return e==null?void 0:e[t]}function I(e,t){var r=Zt(e,t);return Qt(r)?r:void 0}var Rt=I(A,"WeakMap"),B=Rt,er=9007199254740991;function ae(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=er}function tr(e){return e!=null&&ae(e.length)&&!ne(e)}var rr=Object.prototype;function se(e){var t=e&&e.constructor,r=typeof t=="function"&&t.prototype||rr;return e===r}var nr="[object Arguments]";function ie(e){return E(e)&&P(e)==nr}var le=Object.prototype,or=le.hasOwnProperty,ar=le.propertyIsEnumerable,sr=ie(function(){return arguments}())?ie:function(e){return E(e)&&or.call(e,"callee")&&!ar.call(e,"callee")},ir=sr;function lr(){return!1}var ce=typeof f=="object"&&f&&!f.nodeType&&f,ue=ce&&typeof module=="object"&&module&&!module.nodeType&&module,cr=ue&&ue.exports===ce,de=cr?A.Buffer:void 0,ur=de?de.isBuffer:void 0,dr=ur||lr,pr=dr,fr="[object Arguments]",gr="[object Array]",hr="[object Boolean]",br="[object Date]",yr="[object Error]",vr="[object Function]",mr="[object Map]",Cr="[object Number]",Tr="[object Object]",xr="[object RegExp]",Sr="[object Set]",jr="[object String]",$r="[object WeakMap]",Ar="[object ArrayBuffer]",kr="[object DataView]",Mr="[object Float32Array]",Pr="[object Float64Array]",wr="[object Int8Array]",Or="[object Int16Array]",Dr="[object Int32Array]",Er="[object Uint8Array]",Ir="[object Uint8ClampedArray]",Nr="[object Uint16Array]",Lr="[object Uint32Array]",y={};y[Mr]=y[Pr]=y[wr]=y[Or]=y[Dr]=y[Er]=y[Ir]=y[Nr]=y[Lr]=!0,y[fr]=y[gr]=y[Ar]=y[hr]=y[kr]=y[br]=y[yr]=y[vr]=y[mr]=y[Cr]=y[Tr]=y[xr]=y[Sr]=y[jr]=y[$r]=!1;function Gr(e){return E(e)&&ae(e.length)&&!!y[P(e)]}function Hr(e){return function(t){return e(t)}}var pe=typeof f=="object"&&f&&!f.nodeType&&f,N=pe&&typeof module=="object"&&module&&!module.nodeType&&module,_r=N&&N.exports===pe,q=_r&&R.process,Fr=function(){try{var e=N&&N.require&&N.require("util").types;return e||q&&q.binding&&q.binding("util")}catch{}}(),fe=Fr,ge=fe&&fe.isTypedArray,zr=ge?Hr(ge):Gr,Br=zr;function he(e,t){return function(r){return e(t(r))}}var qr=he(Object.keys,Object),Kr=qr,Wr=Object.prototype,Ur=Wr.hasOwnProperty;function Vr(e){if(!se(e))return Kr(e);var t=[];for(var r in Object(e))Ur.call(e,r)&&r!="constructor"&&t.push(r);return t}var Yr=I(A,"Map"),K=Yr,Jr=he(Object.getPrototypeOf,Object),Xr=Jr,Qr="[object Object]",Zr=Function.prototype,Rr=Object.prototype,be=Zr.toString,en=Rr.hasOwnProperty,tn=be.call(Object);function W(e){if(!E(e)||P(e)!=Qr)return!1;var t=Xr(e);if(t===null)return!0;var r=en.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&be.call(r)==tn}var rn=I(A,"DataView"),U=rn,nn=I(A,"Promise"),V=nn,on=I(A,"Set"),Y=on,ye="[object Map]",an="[object Object]",ve="[object Promise]",me="[object Set]",Ce="[object WeakMap]",Te="[object DataView]",sn=w(U),ln=w(K),cn=w(V),un=w(Y),dn=w(B),O=P;(U&&O(new U(new ArrayBuffer(1)))!=Te||K&&O(new K)!=ye||V&&O(V.resolve())!=ve||Y&&O(new Y)!=me||B&&O(new B)!=Ce)&&(O=function(e){var t=P(e),r=t==an?e.constructor:void 0,n=r?w(r):"";if(n)switch(n){case sn:return Te;case ln:return ye;case cn:return ve;case un:return me;case dn:return Ce}return t});var pn=O,fn="[object String]";function J(e){return typeof e=="string"||!S(e)&&E(e)&&P(e)==fn}var gn="[object Map]",hn="[object Set]",bn=Object.prototype,yn=bn.hasOwnProperty;function vn(e){if(e==null)return!0;if(tr(e)&&(S(e)||typeof e=="string"||typeof e.splice=="function"||pr(e)||Br(e)||ir(e)))return!e.length;var t=pn(e);if(t==gn||t==hn)return!e.size;if(se(e))return!Vr(e).length;for(var r in e)if(yn.call(e,r))return!1;return!0}function xe(e){return e.every(t=>S(t))}function _(e){return!!(!S(e)||e.length===0||S(e[0])&&e[0].length===0)}function Se(e){let t="";return Object.keys(e).map(r=>{t+=` ${r}="${e[r].replace(/"/g,'\\"')}"`}),t}class mn{constructor(){this.type=v.IMAGE}toText(t){var r;return(r=t.title)!=null?r:""}toHtml(t){var r;return`<img src="${t.src}" alt="${t.title}" ${Se((r=t.attrs)!=null?r:{})}>`}parse(t){var r,n;return t.title=(r=t.title)!=null?r:"",t.attrs=(n=t.attrs)!=null?n:{},t}}class Cn{constructor(){this.type=v.HYPERLINK}toText(t){var r;return(r=t.title)!=null?r:""}toHtml(t){return`<a href="${t.link}" target="_blank" ${Se(t.attrs)}>${t.title}</a>`}parse(t){var r,n;return t.title=(r=t.title)!=null?r:"",t.attrs=(n=t.attrs)!=null?n:{},t}}class Tn{constructor(){this.type=v.RICH_TEXT}toText(t){return t.plain}toHtml(t){return t.value}parse(t){return t}}var v=(e=>(e.PLAIN="gs-plain-text",e.IMAGE="gs-image",e.HYPERLINK="gs-hyperlink",e.RICH_TEXT="gs-rich-text",e))(v||{});const xn=[new xt,new mn,new Cn,new Tn];var $=(e=>(e.PLAIN="text/plain",e.HTML="text/html",e))($||{});class Sn{detectRule(t){return!!~t.indexOf("google-sheets-html-origin")}parser(t){const r=document.createElement("div");return r.innerHTML=t,[...r.querySelector("table").querySelector("tbody").childNodes].map(a=>[...a.childNodes].map(s=>this.parseTd(s)))}getSheetsValue(t){try{const r=JSON.parse(t);return r[r[1]]?r[r[1]].replaceAll(" "," "):""}catch{return""}}parseTd(t){var r;if(t.dataset.sheetsHyperlink)return{value:{title:this.getSheetsValue(t.dataset.sheetsValue),link:t.dataset.sheetsHyperlink},type:v.HYPERLINK};if(t.dataset.sheetsTextstyleruns)return{value:{plain:this.getSheetsValue(t.dataset.sheetsValue),value:t.innerHTML},type:v.RICH_TEXT};if(t.dataset.sheetsValue)return{value:t.innerHTML.replace(/\<br\>/g,`
|
|
2
|
+
`).trim(),type:v.PLAIN};if(t.querySelector("img")){const n=t.querySelector("img");return{value:{src:n.src,title:(r=n.title)!=null?r:""},type:v.IMAGE}}return{value:t.innerText,type:v.PLAIN}}}const X=[new Sn];function jn(e){for(let t=0;t<X.length;t++)if(X[t].detectRule(e)){const r=X[t].parser(e);if(!_(r))return r}return[]}class $n{static parse(t){const r=document.createElement("div");r.innerHTML=t;const n=r.childNodes[0];if(!n)return!1;if(n.dataset.sheetsHyperlink)return{value:{link:n.dataset.sheetsHyperlink,title:n.innerText},type:v.HYPERLINK};if(n.tagName==="A")return{value:{link:n.getAttribute("href"),title:n.innerText},type:v.HYPERLINK};const a=n.childNodes[0];return a&&n.childNodes.length===1&&a.tagName==="IMG"?{value:{link:a.getAttribute("src"),title:a.title},type:v.IMAGE}:n.tagName==="IMG"?{value:{link:n.getAttribute("src"),title:n.title},type:v.IMAGE}:!1}}class An{constructor(){this.handles={},this.props={},this.evenHandles={}}destroy(){this.handles={}}registerHandler(t){[...t,...xn].map(r=>{this.handles[r.type]=r})}formatSetCopyData(t){return J(t)?[[{value:t,payload:void 0,type:this.handles[v.PLAIN].type}]]:W(t)?[[t]]:S(t)?(xe(t)||(t=[t.map(r=>J(r)?{value:r,payload:"",type:this.handles[v.PLAIN].type}:r)]),t=t.map(r=>r.map(n=>J(n)?{value:n,type:this.handles[v.PLAIN].type,payload:""}:n)),t):(console.error("unknown data type",t),[])}getTextData(t){let r="";return t.map((n,a)=>{n.map((s,d)=>{var g;const{value:u,type:l,payload:m}=s;r+=((g=this.handles[l])!=null?g:this.handles[v.PLAIN]).toText(u,m),r+=d<n.length-1?" ":""}),r+=a<t.length-1?`
|
|
3
|
+
`:""}),r}getHtmlData(t){var r;let n="";if(t.length===1&&t[0].length===1){const{type:a,value:s,payload:d}=t[0][0];return((r=this.handles[a])!=null?r:this.handles[v.PLAIN]).toHtml(s,d)}return t.map((a,s)=>{n+="<tr>",a.map((d,g)=>{var u;const{value:l,type:m,payload:x}=d;n+=`<td>${((u=this.handles[m])!=null?u:this.handles[v.PLAIN]).toHtml(l,x)}</td>`}),n+="</tr>"}),`<table id="gs-clipboard-table"><tbody>${n}</tbody></table>`}async formatClipboardData(t){const r={text:"",html:"",clipboardType:[]};if(!t.types.includes($.HTML)){const m=await(await t.getType($.PLAIN)).text();return r.text=m,r.html=m,r.clipboardType=[[{value:m,type:this.handles[v.PLAIN].type}]],r}const n=await t.getType($.HTML),a=await t.getType($.PLAIN),s=await n.text(),d=await a.text(),g=document.createElement("div");g.innerHTML=s;const u=g.querySelector("#original-data");if(g.querySelector("#gs-clipboard-table")||u)r.text=d,r.html=s,r.clipboardType=JSON.parse(decodeURIComponent(u.dataset.data));else if(g.querySelector("table")){r.text=d,r.html=s;let l=[];if(this.props.tableParsers.length>0){for(let m=0;m<this.props.tableParsers.length;m++)if(this.props.tableParsers[m].detectRule(s)){const x=this.props.tableParsers[m].parser(s);if(!_(x)){l=x;break}}}(vn(l)||_(l))&&(l=jn(s)),r.clipboardType=l}else{let l=null;this.props.unknownHtmlParser&&(l=this.props.unknownHtmlParser(s)),l=l||$n.parse(s),l||(l={value:d,type:this.handles[v.PLAIN].type}),r.text=d,r.html=s,W(l)&&(r.clipboardType=[[l]]),S(l)&&(xe(l)?r.clipboardType=l:r.clipboardType=[l])}return r}getClipboardTypeData(t){return t}on(t,r){return S(this.evenHandles[t])||(this.evenHandles[t]=[]),this.evenHandles[t].push(r),()=>{this.evenHandles[t].splice(this.evenHandles[t].indexOf(r),1)}}trigger(t,...r){if(S(this.evenHandles[t]))for(let n=0;n<this.evenHandles[t].length;n++){const a=this.evenHandles[t][n];a(...r)}}}const kn={handlers:[],tableParsers:[]};class Mn extends An{constructor(t={}){var r,n;if(super(),(n=(r=window.navigator)==null?void 0:r.clipboard)!=null&&n.read)this.props=Object.assign(kn,t),this.registerHandler(this.props.handlers);else throw new Error("You browser didn't support clipboard api!")}async getDataFromClipboard(){return new Promise((t,r)=>{window.navigator.clipboard.read().then(async n=>{const a=n[0];t(this.transformClipboardData(await this.formatClipboardData(a)))},n=>r(n))})}setCopy(t){return this.setCopyData(this.formatSetCopyData(t),!1)}formatCopyData(t){return this.setCopyData(this.formatSetCopyData(t),!0)}transformClipboardData(t){return _(t.clipboardType)||t.clipboardType.map(r=>{S(r)?r.map(n=>{n.value=this.handles[n.type]?this.handles[n.type].parse(n.value):n.value}):W(r)&&(r.value=this.handles[r.type]?this.handles[r.type].parse(r.value):r.value)}),t}setCopyData(t,r=!1){const n={text:this.getTextData(t),html:this.getHtmlData(t),clipboardType:this.getClipboardTypeData(t)};if(r)return n;this.trigger("beforeCopy",n);const a=[new ClipboardItem({[$.PLAIN]:new Blob([n.text],{type:$.PLAIN}),[$.HTML]:new Blob([n.html+`<div id="original-data" data-data="${encodeURIComponent(JSON.stringify(n.clipboardType))}"></div>`],{type:$.HTML})})];return window.navigator.clipboard.write(a).then(()=>this.trigger("copySucceeded",a),s=>this.trigger("copyFailed",s)),n}}const Pn=new Mn,je=({data:e=[],onChange:t=()=>{},tableHeight:r="460px",limitation:n={}})=>{const{messageApi:a}=b.useContext(F),{title:s=15,content:d=2e3}=n,{t:g}=M.useTranslation();function u(c){const h=e.findIndex(p=>p.label===c.label);e[h]=c,t([...e])}function l(){const c=[{label:`#${e.length+1}`,content:""},...e];t(c),a.success(g("createSuccessfully"))}function m(c){const h=e.filter(p=>p.label!==c);t(h)}async function x(){const p=[...(await Pn.getDataFromClipboard()).clipboardType.map(C=>{var k,T;return{label:((k=C==null?void 0:C[0])==null?void 0:k.value)??"",content:((T=C==null?void 0:C[1])==null?void 0:T.value)??""}}).filter(C=>C.label&&C.content),...e];t(gt.uniqBy(p,"label"))}return o.jsxs(i.Table,{bordered:!0,dataSource:e,pagination:!1,rowKey:"label",size:"small",scroll:{y:r,x:!0},locale:{emptyText:()=>o.jsxs(i.Space,{direction:"vertical",size:24,style:{width:"100%",textAlign:"center",padding:"62px 0px"},children:[o.jsx(i.Empty,{}),o.jsx(i.Button,{type:"primary",onClick:l,children:g("create")})]})},footer:()=>o.jsxs(i.Flex,{style:{width:"100%"},justify:"space-between",children:[o.jsx(i.Space,{children:o.jsx("div",{})}),o.jsxs(i.Space,{size:12,children:[o.jsx(i.Button,{block:!0,type:"text",onClick:x,children:g("importFromClipboard")}),o.jsx(i.Button,{type:"primary",onClick:l,children:g("create")})]})]}),children:[o.jsx(i.Table.Column,{title:g("titleFieldName"),dataIndex:"label",width:400,render:(c,h)=>o.jsx($e,{maxLength:s,type:"input",value:c,onChange:p=>{if(h.label!==p){if(e.find(C=>C.label===p)){a.error(g("cannotSavedMessageCuzLabelExisted"));return}if(p.trim()===""){a.error(g("cannotSavedMessageCuzLabelEmpty"));return}h.label=p,u(h)}}})},"label"),o.jsx(i.Table.Column,{title:g("content"),dataIndex:"content",width:400,render:(c,h)=>o.jsx($e,{maxLength:d,type:"textarea",value:c,onChange:p=>{if(p.trim()===""){a.error(g("cannotSavedMessageCuzContentEmpty"));return}h.content=p,u(h)}})},"content"),o.jsx(i.Table.Column,{title:"操作",dataIndex:"id",width:120,render:(c,h)=>o.jsx(i.Space,{size:4,children:o.jsx(i.Button,{size:"small",type:"text",danger:!0,onClick:()=>m(h.label),children:g("delete")})})},"id")]})},wn=j.div`
|
|
2
4
|
border: 1px solid transparent;
|
|
3
5
|
padding: 0 4px;
|
|
4
6
|
margin: 0 -4px;
|
|
@@ -8,13 +10,13 @@
|
|
|
8
10
|
&:hover {
|
|
9
11
|
border-color: ${e=>e.$isDark?"#4d4848":"#c0bbbb"};
|
|
10
12
|
}
|
|
11
|
-
`;function
|
|
13
|
+
`;function $e(e){const[t,r]=b.useState(!1),n=b.useRef(null),a=Q();b.useEffect(()=>{t&&n.current&&(e.type==="input"?n.current.select():n.current.focus())},[t,e.type]);function s(){r(!0)}function d(u){r(!1),e.onChange(u)}function g(u){e.onChange(u),n.current.blur()}if(t){if(e.type==="textarea")return o.jsx("div",{style:{paddingBottom:18},children:o.jsx(i.Input.TextArea,{showCount:!0,maxLength:e.maxLength,defaultValue:e.value,ref:n,size:"small",style:{width:"100%"},autoSize:{minRows:4,maxRows:4},onBlur:u=>d(u.target.value),onKeyDown:u=>{if(u.key==="Enter"){if(u.shiftKey||u.ctrlKey||u.metaKey)return;{u.preventDefault();const l=u.target;return g(l.value),!1}}}})});if(e.type==="input")return o.jsx(i.Input,{showCount:!0,maxLength:e.maxLength,defaultValue:e.value,ref:n,size:"small",style:{width:"100%"},onBlur:u=>d(u.target.value),onPressEnter:u=>{const l=u.target;g(l.value)}})}return o.jsx(wn,{onClick:s,$isDark:a,children:o.jsx("div",{style:{minHeight:22},dangerouslySetInnerHTML:{__html:e.value.trim().split(`
|
|
12
14
|
`).slice(0,4).join("<br/>")+(e.value.trim().split(`
|
|
13
|
-
`).length>4?"...":"")}})})}const
|
|
15
|
+
`).length>4?"...":"")}})})}const On=j.div``,Dn=j.div`
|
|
14
16
|
min-height: 380px;
|
|
15
|
-
`,
|
|
17
|
+
`,En=j.span`
|
|
16
18
|
font-size: 12px;
|
|
17
|
-
|
|
19
|
+
`,In=j.div`
|
|
18
20
|
&:hover {
|
|
19
21
|
.ant-btn {
|
|
20
22
|
display: block;
|
|
@@ -23,13 +25,13 @@
|
|
|
23
25
|
.ant-btn {
|
|
24
26
|
display: none;
|
|
25
27
|
}
|
|
26
|
-
`,
|
|
28
|
+
`,Nn=j.div`
|
|
27
29
|
background-color: ${e=>e.$color};
|
|
28
30
|
width: 12px;
|
|
29
31
|
height: 12px;
|
|
30
32
|
border: 1px solid #fff;
|
|
31
33
|
border-radius: 4px;
|
|
32
|
-
`,
|
|
34
|
+
`,Ae=({data:e=[],onChange:t=()=>{},...r})=>{const[n,a]=b.useState([]),{t:s}=M.useTranslation();b.useEffect(()=>{e.length>0&&a([e[0].id])},[]);const d=b.useMemo(()=>e.map(c=>({key:c.id,label:o.jsx(In,{children:o.jsxs(i.Flex,{justify:"space-between",align:"center",children:[o.jsxs(i.Space,{children:[o.jsx("span",{children:c.title}),c.data.length?o.jsxs(En,{children:["(",c.data.length,")"]}):null]}),o.jsxs(i.Space,{size:8,children:[o.jsx(Nn,{$color:c.color}),o.jsx(Ln,{data:c,onSaved:h=>u(c.id,h)}),o.jsx(i.Popconfirm,{title:s("confirmDelete"),onConfirm:()=>l(c.id),children:o.jsx(i.Button,{danger:!0,size:"small",icon:o.jsx(G.DeleteOutlined,{}),type:"text"})})]})]})})})),[e]),g=b.useMemo(()=>{const c=n[0];if(c){const h=e.find(p=>p.id===c);if(h)return h.data}return!1},[n,e]);function u(c,h){const p=[...e],C=p.findIndex(k=>k.id===c);~C&&(p[C]={...p[C],...h}),t(p)}function l(c){const h=[...e].filter(p=>p.id!==c);t(h)}function m(c){const h=[...e],p=n[0];if(p){const C=h.find(k=>k.id===p);C&&(C.data=c)}t(h)}function x(c){const h=Ct(),p=[...e];p.push({id:h,color:c.color,title:c.title,data:[]}),t(p),a([h])}return d.length===0?o.jsxs(i.Flex,{vertical:!0,align:"center",gap:8,children:[o.jsx(i.Empty,{description:s("noData")}),o.jsx(ke,{onCreate:x})]}):o.jsx(On,{children:o.jsxs(i.Flex,{gap:16,children:[o.jsxs(i.Space,{direction:"vertical",children:[o.jsx(Dn,{children:o.jsx(i.Menu,{items:d,style:{width:300},selectedKeys:n,onSelect:({key:c})=>{a([c])}})}),o.jsx(ke,{onCreate:x,block:!0})]}),g?o.jsx(je,{data:g,onChange:m,...r}):o.jsx(i.Alert,{type:"info",message:s("selectAGroupFirst"),style:{height:60,minWidth:400}})]})})};function Ln(e){const[t,r]=b.useState({title:"",color:""});return o.jsx(Me,{isEdit:!1,onCompleteChange:e.onSaved,data:t,onOpenChange:n=>{n&&r(e.data)},onDataChange:n=>r(n),children:o.jsx(i.Button,{size:"small",icon:o.jsx(G.EditOutlined,{}),type:"text"})})}function ke(e){const{t}=M.useTranslation(),r={title:"",color:"#1677FF"},[n,a]=b.useState({...r});return o.jsx(Me,{isEdit:!1,onCompleteChange:e.onCreate,data:n,onOpenChange:s=>{s&&a({...r})},onDataChange:s=>a(s),children:o.jsx(i.Button,{block:!!e.block,icon:o.jsx(G.PlusOutlined,{}),children:t("addNewGroup")})})}function Me(e){const[t,r]=b.useState(!1),[n,a]=b.useState(""),s=b.useRef(null),{t:d}=M.useTranslation();b.useEffect(()=>{e.onOpenChange(t)},[t]),b.useEffect(()=>{t?(a(e.data.color),setTimeout(()=>{var l;(l=s.current)==null||l.focus()},300)):a("")},[e.data]);function g(){e.data.title.trim().length!==0&&(e.onCompleteChange({title:e.data.title.trim(),color:e.data.color}),r(!1))}function u(l,m){e.onDataChange({...e.data,[l]:m})}return o.jsx(o.Fragment,{children:o.jsx(i.Popover,{title:e.isEdit?d("editGroup"):d("createGroup"),open:t,onOpenChange:r,trigger:["click"],content:o.jsxs(i.Space,{direction:"vertical",size:16,children:[o.jsxs(i.Space,{size:16,children:[o.jsxs("span",{children:[d("titleFieldName"),":"]}),o.jsx(i.Input,{ref:s,showCount:!0,maxLength:20,value:e.data.title,onChange:l=>u("title",l.target.value)})]}),o.jsxs(i.Space,{size:16,children:[o.jsxs("span",{children:[d("colorFieldName"),":"]}),n&&o.jsx(i.ColorPicker,{value:n,onChange:l=>a(`#${l.toHex()}`),showText:!0,onChangeComplete:l=>{u("color",`#${l.toHex()}`)}})]}),o.jsx(i.Button,{block:!0,type:"primary",onClick:g,children:e.isEdit?d("create"):d("save")})]}),children:e.children})})}const Pe=({open:e,onOpenChange:t=()=>{},children:r,...n})=>{const[a,s]=b.useState(e),{t:d}=M.useTranslation();return b.useEffect(()=>{s(!!e)},[e]),o.jsxs(o.Fragment,{children:[o.jsx(i.Modal,{title:d("quickMessageConfigs"),open:a,onCancel:()=>{s(!1),t(!1)},width:980,footer:null,children:o.jsx(Ae,{...n})}),o.jsx("span",{onClick:()=>{s(!0),t(!0)},children:r})]})},Gn=j.div`
|
|
33
35
|
font-size: 14px;
|
|
34
36
|
background: #dae5f8;
|
|
35
37
|
padding: 0 4px;
|
|
@@ -38,6 +40,7 @@
|
|
|
38
40
|
min-width: 20px;
|
|
39
41
|
user-select: none;
|
|
40
42
|
color: #333;
|
|
43
|
+
white-space: nowrap;
|
|
41
44
|
|
|
42
45
|
&:hover {
|
|
43
46
|
background-color: #bcd0f3;
|
|
@@ -46,9 +49,9 @@
|
|
|
46
49
|
&:active {
|
|
47
50
|
background-color: #9dbcf3;
|
|
48
51
|
}
|
|
49
|
-
`,
|
|
52
|
+
`,Hn=j.div`
|
|
50
53
|
min-height: 18px;
|
|
51
|
-
`,
|
|
54
|
+
`,_n=({data:e=[],onChange:t,tableHeight:r,limitation:n,displayTitleMaxLength:a=10,displayMaxLength:s=99,SlotContentPrefixSlot:d,SlotContentSuffixSlot:g,onSelect:u=()=>{}})=>{const[l,m]=b.useState(!1),[x,c]=ht.useLocalStorage("__activeGroupId",""),{t:h}=M.useTranslation(),p=b.useMemo(()=>e.find(T=>T.id===x),[x,e]),C=b.useMemo(()=>p?p.data:[],[p,e]),k=b.useMemo(()=>e.length===0,[e]);return o.jsxs(o.Fragment,{children:[k?o.jsx(i.Button,{size:"small",type:"primary",onClick:()=>m(!0),children:h("create")}):o.jsxs(i.Space,{size:2,direction:"vertical",children:[o.jsx(Hn,{children:o.jsx(i.Space,{size:8,children:C.slice(0,s).map(T=>o.jsx(i.Tooltip,{title:o.jsx("span",{style:{fontSize:12},children:T.label}),destroyTooltipOnHide:!0,children:o.jsxs(Gn,{onClick:Kn=>{Kn.target.closest("bdi")||u(T)},children:[d&&o.jsx("bdi",{children:o.jsx(d,{group:p,message:T})}),Z(T.label,a),g&&o.jsxs("bdi",{children:[o.jsx(g,{group:p,message:T})," "]})]})},T.label))})}),o.jsxs(i.Space,{size:8,children:[e.slice(0,s).map(T=>o.jsx(zn,{data:T,active:x===T.id,displayTitleMaxLength:a,onClick:()=>{c(x===T.id?"":T.id)}},T.id)),o.jsx(i.Button,{size:"small",type:"text",onClick:()=>m(!0),children:o.jsx(G.SettingOutlined,{})})]})]}),o.jsx(Pe,{open:l,onOpenChange:m,data:e,onChange:t,tableHeight:r,limitation:n})]})},Fn=j.div`
|
|
52
55
|
background-color: ${e=>e.$backgroundColor};
|
|
53
56
|
color: ${e=>e.$textColor};
|
|
54
57
|
border: 1px solid transparent;
|
|
@@ -65,4 +68,4 @@
|
|
|
65
68
|
&:active {
|
|
66
69
|
opacity: 0.6;
|
|
67
70
|
}
|
|
68
|
-
`;function
|
|
71
|
+
`;function zn(e){const t=b.useMemo(()=>{var s,d;const r=bt(e.data.color),n=r.isDark(),a=n?(s=r.lighten(.2))==null?void 0:s.hex():(d=r.darken(.15))==null?void 0:d.hex();return{$textColor:n?"#fff":"#333",$backgroundColor:e.data.color,$hoverColor:a}},[e.data.color]);return o.jsx(Fn,{...t,$active:e.active,"data-id":e.data.id,onClick:e.onClick,title:e.data.title,children:Z(e.data.title,e.displayTitleMaxLength)})}/*! This file was generated by vite-i18n-gen-resources-type check https://github.com/CRMChatReactComponent/vite-i18n-gen-resources-type. Please do not modify. */var we=(e=>(e.ZH_CN="zh-CN",e.EN_US="en-US",e))(we||{});const Oe="Are you sure to delete it?",De="No data available",Ee="Select a Group first",Ie="Create a Group",Ne="Edit Group",Le="Create Group",Ge="Title",He="Color",_e="Save",Fe="Create",ze="Quick Messages Configs",Be="Created Successfully",qe="Cannot be saved: title already existing",Ke="Cannot be saved: title is empty",We="Cannot be saved: content is empty",Ue="Content",Ve="Import from Clipboard",Bn=Object.freeze(Object.defineProperty({__proto__:null,addNewGroup:Ie,cannotSavedMessageCuzContentEmpty:We,cannotSavedMessageCuzLabelEmpty:Ke,cannotSavedMessageCuzLabelExisted:qe,colorFieldName:He,confirmDelete:Oe,content:Ue,create:Fe,createGroup:Le,createSuccessfully:Be,default:{confirmDelete:Oe,noData:De,selectAGroupFirst:Ee,addNewGroup:Ie,editGroup:Ne,createGroup:Le,titleFieldName:Ge,colorFieldName:He,save:_e,create:Fe,quickMessageConfigs:ze,createSuccessfully:Be,cannotSavedMessageCuzLabelExisted:qe,cannotSavedMessageCuzLabelEmpty:Ke,cannotSavedMessageCuzContentEmpty:We,content:Ue,delete:"Delete",importFromClipboard:Ve},editGroup:Ne,importFromClipboard:Ve,noData:De,quickMessageConfigs:ze,save:_e,selectAGroupFirst:Ee,titleFieldName:Ge},Symbol.toStringTag,{value:"Module"})),Ye="确定删除吗?",Je="没有数据",Xe="请在左侧选择一个分组",Qe="添加一个分组",Ze="编辑分组",Re="新建分组",et="标题",tt="颜色",rt="保存",nt="创建",ot="快捷消息配置",at="创建成功",st="无法保存: 标题重复",it="无法保存: 标题不能为空",lt="无法保存: 内容不能为空",ct="内容",ut="从剪切板导入",dt=Object.entries(Object.assign({"./locales/en-US/common.json":Bn,"./locales/zh-CN/common.json":Object.freeze(Object.defineProperty({__proto__:null,addNewGroup:Qe,cannotSavedMessageCuzContentEmpty:lt,cannotSavedMessageCuzLabelEmpty:it,cannotSavedMessageCuzLabelExisted:st,colorFieldName:tt,confirmDelete:Ye,content:ct,create:nt,createGroup:Re,createSuccessfully:at,default:{confirmDelete:Ye,noData:Je,selectAGroupFirst:Xe,addNewGroup:Qe,editGroup:Ze,createGroup:Re,titleFieldName:et,colorFieldName:tt,save:rt,create:nt,quickMessageConfigs:ot,createSuccessfully:at,cannotSavedMessageCuzLabelExisted:st,cannotSavedMessageCuzLabelEmpty:it,cannotSavedMessageCuzContentEmpty:lt,content:ct,delete:"删除",importFromClipboard:ut},editGroup:Ze,importFromClipboard:ut,noData:Je,quickMessageConfigs:ot,save:rt,selectAGroupFirst:Xe,titleFieldName:et},Symbol.toStringTag,{value:"Module"}))})).reduce((e,t)=>{const[r,n]=t,a=r.match(/\/locales\/([\w-]+)\//),s=r.match(/\/([\w-_]+)\.json$/);return s&&a?(e[a[1]]=e[a[1]]||{},e[a[1]][s[1]]=n.default):console.error(`无法解析文件名称 path:${r}`),e},{}),pt=yt.createInstance();pt.init({lng:we.ZH_CN,debug:!1,ns:Object.keys(dt),resources:dt});const ft=b.createContext(null);function qn(e){return o.jsx(M.I18nextProvider,{i18n:pt,defaultNS:"common",children:o.jsx(ft.Provider,{value:{},children:e.children})})}f.AntdApiContext=F,f.AntdApiContextProviderCmp=Tt,f.EmojiPickerWrapper=mt,f.I18nContext=ft,f.I18nContextCmp=qn,f.MessageConfigsPanel=Ae,f.MessageConfigsPanelModalWrapper=Pe,f.MessagesEditTable=je,f.QuickMessages=_n,Object.defineProperty(f,Symbol.toStringTag,{value:"Module"})});
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@crmchatreactcomponent/quick-messages",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.7",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.umd.js",
|
|
7
7
|
"module": "./dist/index.es.js",
|
|
@@ -20,15 +20,15 @@
|
|
|
20
20
|
"author": "CarlJin",
|
|
21
21
|
"homepage": "https://quick-messages-component.pages.dev/",
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@ant-design/icons": "^5.3.
|
|
24
|
-
"antd": "^5.
|
|
23
|
+
"@ant-design/icons": "^5.3.1",
|
|
24
|
+
"antd": "^5.15.1",
|
|
25
25
|
"color": "^4.2.3",
|
|
26
26
|
"emoji-picker-react": "^4.8.0",
|
|
27
27
|
"i18next": "^23.10.0",
|
|
28
28
|
"lodash-es": "^4.17.21",
|
|
29
29
|
"react": "^18.2.0",
|
|
30
30
|
"react-dom": "^18.2.0",
|
|
31
|
-
"react-i18next": "^14.0
|
|
31
|
+
"react-i18next": "^14.1.0",
|
|
32
32
|
"react-use": "^17.5.0",
|
|
33
33
|
"styled-components": "^6.1.8"
|
|
34
34
|
},
|
|
@@ -48,20 +48,21 @@
|
|
|
48
48
|
"@testing-library/react": "^14.2.1",
|
|
49
49
|
"@trivago/prettier-plugin-sort-imports": "^4.3.0",
|
|
50
50
|
"@types/lodash-es": "^4.17.12",
|
|
51
|
-
"@types/node": "^20.11.
|
|
52
|
-
"@types/react": "^18.2.
|
|
53
|
-
"@types/react-dom": "^18.2.
|
|
54
|
-
"@typescript-eslint/eslint-plugin": "^7.
|
|
55
|
-
"@typescript-eslint/parser": "^7.
|
|
51
|
+
"@types/node": "^20.11.25",
|
|
52
|
+
"@types/react": "^18.2.64",
|
|
53
|
+
"@types/react-dom": "^18.2.21",
|
|
54
|
+
"@typescript-eslint/eslint-plugin": "^7.1.1",
|
|
55
|
+
"@typescript-eslint/parser": "^7.1.1",
|
|
56
56
|
"@vitejs/plugin-react": "^4.2.1",
|
|
57
57
|
"@vitest/coverage-v8": "^1.3.1",
|
|
58
|
-
"eslint": "^8.
|
|
58
|
+
"eslint": "^8.57.0",
|
|
59
59
|
"eslint-config-prettier": "^9.1.0",
|
|
60
60
|
"eslint-plugin-prettier": "^5.1.3",
|
|
61
|
-
"eslint-plugin-react": "^7.
|
|
61
|
+
"eslint-plugin-react": "^7.34.0",
|
|
62
62
|
"eslint-plugin-react-hooks": "^4.6.0",
|
|
63
63
|
"eslint-plugin-react-refresh": "^0.4.5",
|
|
64
64
|
"eslint-plugin-storybook": "^0.8.0",
|
|
65
|
+
"gs-clipboard": "^1.1.4",
|
|
65
66
|
"jsdom": "^24.0.0",
|
|
66
67
|
"less": "^4.2.0",
|
|
67
68
|
"npm-check": "^6.0.1",
|
|
@@ -71,8 +72,8 @@
|
|
|
71
72
|
"storybook-addon-react-docgen": "^1.2.44",
|
|
72
73
|
"ts-node": "^10.9.2",
|
|
73
74
|
"tsc-alias": "^1.8.8",
|
|
74
|
-
"typescript": "^5.
|
|
75
|
-
"vite": "^5.1.
|
|
75
|
+
"typescript": "^5.4.2",
|
|
76
|
+
"vite": "^5.1.5",
|
|
76
77
|
"vite-i18n-gen-resources-type": "^0.0.4",
|
|
77
78
|
"vite-tsconfig-paths": "^4.3.1",
|
|
78
79
|
"vitest": "^1.3.1"
|