@para-ui/core 5.0.0-beta.13 → 5.0.0-beta.14
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/codemods/modal-onCancel-to-onDismiss.js +69 -0
- package/es/Cascader/Cascader.js +188 -180
- package/es/Collapse/index.js +45 -38
- package/es/ComboSelect/index.js +297 -290
- package/es/ComboSelect/interface.d.ts +4 -1
- package/es/DatePicker/generatePicker/generateRangePicker.d.ts +0 -8
- package/es/DatePicker/generatePicker/generateRangePicker.js +76 -68
- package/es/DatePicker/generatePicker/index.d.ts +11 -4
- package/es/Modal/Confirm/index.js +81 -75
- package/es/Modal/index.d.ts +12 -1
- package/es/Modal/index.js +156 -141
- package/es/Tooltip/index.js +67 -61
- package/lib/Cascader/Cascader.js +1 -1
- package/lib/Collapse/index.js +1 -1
- package/lib/ComboSelect/index.js +1 -1
- package/lib/ComboSelect/interface.d.ts +4 -1
- package/lib/DatePicker/generatePicker/generateRangePicker.d.ts +0 -8
- package/lib/DatePicker/generatePicker/generateRangePicker.js +1 -1
- package/lib/DatePicker/generatePicker/index.d.ts +11 -4
- package/lib/Modal/Confirm/index.js +1 -1
- package/lib/Modal/index.d.ts +12 -1
- package/lib/Modal/index.js +1 -1
- package/lib/Tooltip/index.js +1 -1
- package/package.json +3 -2
package/lib/ComboSelect/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./index.css');require('../Tree/style/index.css');const t=require("../_virtual/jsx-runtime.js"),o=require("react"),Bt=require("../node_modules/@para-ui/icons/Down/index.js"),Gt=require("../node_modules/@para-ui/icons/Search/index.js"),et=require("../node_modules/@para-ui/icons/Close/index.js"),Ut=require("../node_modules/@para-ui/icons/CloseCircleF/index.js"),Jt=require("../Table/index.js"),Qt=require("../Tree/Tree.js");;/* empty css */const tt=require("../Button/index.js"),Xt=require("../Dropdown/index.js"),st=require("../Popover/index.js"),be=require("../AutoTips/index.js"),Yt=require("../Tooltip/index.js"),z=require("clsx"),S=require("./utils.js"),Zt=require("@snack-kit/lib"),es=require("../Utils/snack-kit-shims.js"),ts=require("../GlobalContext/index.js"),ss=require("../Hooks/useGlobalProps.js"),rs=require("../GlobalContext/useFormatMessage.js"),os=require("./lang/index.js"),ns=require("../Label/index.js"),ls=require("../HelperText/index.js"),d=require("../GlobalContext/constant.js"),cs=require("../Search/index.js"),is=require("../node_modules/@para-ui/icons/LoadingF/index.js");;/* empty css */const rt=ot=>{const{mode:m="table",placeholder:je,searchPlaceholder:nt,overLine:F=!1,disabled:Re=!1,allowClear:lt=!1,className:ct,style:it,maxHeight:at,height:ut,placement:dt="bottomLeft",popoverClassName:mt,size:pt="large",popoverActions:ve=null,showPopoverActions:ge=!1,defaultOpen:Z=!1,defaultValue:Ee,replaceFields:xt={key:"key",title:"title",children:"children"},outputFields:ft={outputKey:"key",outputTitle:"label"},value:ee,onClear:te,onCancel:ht,onOk:bt,onClose:jt,onChange:C,onSearch:se,refresh:y,TableProps:re,TreeProps:k,checkable:a=!0,url:Ce,ctx:ye,params:$,method:we="Get",showSearch:_=!1,realTimeSearch:Rt=!1,error:Se=!1,hideErrorDom:vt,helperText:oe,paramsCallback:gt,fullPathKey:Et,fullPathRender:$e,disablePopup:x=!1,tagRender:ne,onTagRemove:Ne,action:Ct,label:Te="",labelTooltip:yt,required:ke=!1,emptyProps:Pe,toggleSelectedOnSingle:wt=!1,optionRender:qe,getOptionLabel:Me,dropdownMatchSelectWidth:le=!0,getPopupContainer:St,maxTagTextLength:A,renderInputContent:I,renderTagLabel:ce,renderMoreTagLabel:Le}=ss.default(ot,"ComboSelect"),{language:Oe,locale:De}=o.useContext(ts.default),N=o.useRef(null),[f,ie]=o.useState(!1),[j,V]=o.useState([]),H=o.useRef(new Map),[u,W]=o.useState([]),[B,Ke]=o.useState(""),G=o.useRef(void 0),[P,ze]=o.useState(null),[q,$t]=o.useState(!1),[T,Nt]=o.useState(0),[M,L]=o.useState(!1),ae=o.useRef([]),O=o.useRef(!1),U=o.useRef(null),Fe=o.useRef({}),_e=S.getReplaceField(m,xt,re,k),{key:Tt,title:kt}=_e,D=Tt||"",Ae=kt||"",{outputKey:R="key",outputTitle:g="label"}=ft||{},w=rs.default("ComboSelect",os.default),Ie=o.useRef(S.isRemoteLoad(m,m==="table"?re:k)),[ue,Pt]=o.useState(),h=o.useRef({list:[]}),[E,de]=o.useState(null),me=o.useRef(null);h.current.openMore=M,h.current.list=[...u];const qt=()=>{h.current.openMore&&L(!1)},Ve=e=>{if(e===null||e===0||(e===void 0&&(e=h.current.list.length),!me.current))return;const s=me.current.querySelector(".comboselect-overflow-list");if(s)if(s.scrollHeight>s.clientHeight){const r=Number(e)-1;de(r),Ve(r)}else h.current.list.length<=e&&qt()},J=()=>{if(h.current.list.length===0)return de(null);clearTimeout(h.current.resizeTimer),h.current.resizeTimer=setTimeout(()=>{de(h.current.list.length),Ve()},50)};o.useEffect(()=>(J(),()=>{clearTimeout(h.current.resizeTimer)}),[u]),o.useEffect(()=>(!F&&a?window.addEventListener("resize",J):window.removeEventListener("resize",J),()=>{window.removeEventListener("resize",J)}),[F,a]);const Mt=e=>{if(!x&&!Re){if(O.current){v();return}O.current=!0,ie(!0)}},v=(e,s)=>{O.current=!1,G.current=void 0,Fe.current={},ie(!1),ze(null),Ke(""),jt?.(),s==="cancel"&&He()},He=()=>{V([]),W([])},pe=(e,s)=>{V(e),zt(s,e)},Lt=e=>{V(s=>{const r=s.findIndex(l=>l===e[R]);return r>-1&&s.splice(r,1),[...s]})},We=(e,s)=>{if(e.stopPropagation(),s.closable===!1||Ne?.(s)===!1)return;const r=[...u],l=r.findIndex(n=>n[R]===s[R]);l>-1&&r.splice(l,1),W(r),Lt(s),C?.(r)},Ot=o.useMemo(()=>S.debounce(async e=>{Q(e)},400),[]),Dt=e=>{Ke(e),Rt&&Ot(e)},Q=e=>{const s=e??B;se?se(s):(G.current=s?.trim(),Nt(Math.random())),Ie.current&&Pt([])},Be=(e,s)=>{s?(bt?.(u),v(null,"ok")):(ht?.(),v(null,"cancel"))},Ge=()=>{let e="auto";N.current&&(e=`${N.current.offsetWidth}px`);const s=S.getOverlaySize(m,Ie.current,at,ut),r={minWidth:e,maxWidth:960};return typeof le=="number"?r.width=le:le&&(r.width=e),{overflow:"auto",...r,...s}},Kt=()=>z(`${d.$prefixCls}-comboselect`,ct,{[`${d.$prefixCls}-comboselect-focused`]:f&&!x,[`${d.$prefixCls}-comboselect-disabled`]:Re,[`${d.$prefixCls}-comboselect-radioable`]:!a,[`${d.$prefixCls}-comboselect-error`]:Se,[`${d.$prefixCls}-comboselect-clear`]:q,[`${d.$prefixCls}-comboselect-non-popup`]:x,[`${d.$prefixCls}-comboselect-overLine`]:F},`${d.$prefixCls}-comboselect-${pt}`),zt=(e,s)=>{let r=[];if(e?.length&&(r=e.map(n=>{const i={};i[R]=n[D]||"",Me?i[g]=Me(n)||"":i[g]=n[Ae]||"";const c=ae.current?.find(p=>p[R]===i[R]);return c&&(c.disabled!==void 0&&(i.disabled=c.disabled),c.closable!==void 0&&(i.closable=c.closable)),i})),s?.length&&e){const n=s.filter(c=>e.findIndex(p=>p[D]===c)===-1),i=ae.current?.filter(c=>n?.includes(c[R]));i&&r.push(...i)}W(r);const l=Zt.DeepClone(e||[]);a?C?.(r,l):C?.(r[0],l[0])},Ue=e=>{const s=e.map(r=>r[R]);W(e),V(s),ae.current=e},Ft=(e,s)=>{ze(s.node)},Je=()=>{let e={};if(!x){const{width:s,minWidth:r,maxWidth:l}=Ge();e={width:s,minWidth:r,maxWidth:l}}return t.jsxRuntimeExports.jsx("div",{className:"comboselect-search",style:e,children:t.jsxRuntimeExports.jsx(cs.Search,{className:"comboselect-search-input",rightIconExist:!0,showBtn:!1,rightIcon:t.jsxRuntimeExports.jsx(Gt.Search,{}),btnType:"inside",value:B,onChange:Dt,placeholder:nt??w({id:"searchPlaceholder"}),onClickBtn:()=>{Q()},onEnter:()=>{Q()},onClear:()=>{Q("")}})})},Qe=()=>ve?t.jsxRuntimeExports.jsx("div",{className:"comboselect-actions",children:ve}):t.jsxRuntimeExports.jsxs("div",{className:"comboselect-actions",children:[t.jsxRuntimeExports.jsx(tt.Button,{onClick:e=>Be(e,!1),variant:"outlined",size:"small",children:w({id:"cancel"})}),t.jsxRuntimeExports.jsx(tt.Button,{variant:"outlined",onClick:e=>Be(e,!0),size:"small",children:w({id:"ok"})})]}),Xe=()=>m!=="tree"||!P?null:$e?t.jsxRuntimeExports.jsx("div",{className:"comboselect-fullPath",children:$e(P??{})}):t.jsxRuntimeExports.jsxs("div",{className:"comboselect-fullPath",children:[t.jsxRuntimeExports.jsx("span",{children:w({id:"fullPath"})}),P?.[Et]??""]}),_t=e=>{e.stopPropagation(),He(),v(),L(!1),te?.(),C?.(a?[]:{})},At=e=>{e.stopPropagation(),L(!0),v()};o.useImperativeHandle(Ct,()=>({closePopup:()=>v()})),o.useEffect(()=>{!x&&Z&&(O.current=!0,ie(Z))},[Z]),o.useEffect(()=>{Ee&&Ue(S.toArray(Ee))},[]),o.useEffect(()=>{ee&&Ue(S.toArray(ee))},[ee]),o.useEffect(()=>{lt&&$t(!!u?.length)},[u]),o.useEffect(()=>{const e=r=>r&&r.ownerDocument||document,s=r=>{const l=e(N.current),n=r.target,i=!l.documentElement.contains(n)||U.current?.contains(n)||N.current?.contains(n)||!1;if(m==="table"){const c=`.${d.$prefixCls}-select-popover`,p=`.${d.$prefixCls}-table-show-colums-popover`,b=`.${d.$prefixCls}-filter-popover`;if(S.closest(n,`${c}, ${p}, ${b}`))return}O.current&&!i&&v()};if(f&&setTimeout(()=>{if(!U.current)return;const r=U.current.querySelector(".comboselect-search-input input");r&&r.focus()},200),!x&&f){const r=e(N.current);return r.addEventListener("mousedown",s),()=>{r.removeEventListener("mousedown",s)}}},[f]);const Ye=o.useMemo(()=>{if(!u?.length)return null;if(I)return I(a?u:u[0]);if(!a)return t.jsxRuntimeExports.jsx("span",{className:"comboselect-single-content",children:t.jsxRuntimeExports.jsx(be.default,{children:u[0]?.[g]})});if(!u.length)return;const e=l=>{if(ne)return ne(l);const{disabled:n,closable:i=!0}=l??{};let c=l[g];ce&&(c=ce(l));let p=!1;if(typeof A=="number"&&(typeof c=="string"||typeof c=="number")){const b=String(c);b.length>A&&(c=`${b.slice(0,A)}...`,p=!0)}return t.jsxRuntimeExports.jsxs("span",{className:z("comboselect-item",{"comboselect-item--disabled":n,"comboselect-item--unclosable":!i}),children:[p?t.jsxRuntimeExports.jsx(Yt.Tooltip,{title:t.jsxRuntimeExports.jsx("div",{onClick:b=>b.stopPropagation(),children:l[g]}),arrow:!1,placement:"bottomLeft",children:t.jsxRuntimeExports.jsx("span",{className:"comboselect-item-content",children:c})}):t.jsxRuntimeExports.jsx("span",{className:"comboselect-item-content",children:t.jsxRuntimeExports.jsx(be.default,{children:c})}),i===!0&&t.jsxRuntimeExports.jsx("span",{className:"comboselect-item-remove",onClick:b=>We(b,l),onMouseDown:b=>b.stopPropagation(),children:t.jsxRuntimeExports.jsx(et.Close,{})})]})},s=()=>E!==null&&h.current.list.length>E?t.jsxRuntimeExports.jsx("div",{className:"comboselect-overflow-item",children:t.jsxRuntimeExports.jsx("span",{className:"comboselect-item",onClick:At,children:t.jsxRuntimeExports.jsxs("span",{className:"comboselect-item-content",children:["+",h.current.list.length-E]})})}):null,r=u.map((l,n)=>E!==null&&E<=n?null:t.jsxRuntimeExports.jsx("div",{className:"comboselect-overflow-item",children:e(l)},n));return t.jsxRuntimeExports.jsxs("div",{className:"comboselect-overflow-list",children:[r,s()]})},[u,C,a,E,A,g,ne,I,ce,F]),X=o.useMemo(()=>{let e=$||Fe.current;return _&&!se&&G.current!==void 0&&(e={...e,searchKey:G.current}),gt?.(e)||e},[$,T,y,f]),xe=o.useMemo(()=>{if(!x&&!f||m!=="table")return null;const e={url:Ce,ctx:ye,search:X,method:we},s=(r,l)=>{!a&&(v(),j.includes(r))||pe([r],[l])};return t.jsxRuntimeExports.jsx("div",{className:"comboselect-table",children:t.jsxRuntimeExports.jsx(Jt.default,{...e,...re,emptyProps:Pe,check:a,radio:!a,rowKey:D,setCheck:pe,setRadio:s,checkDefaultValue:j,radioDefaultValue:j[0],refresh:y??T,autoSize:!1,refreshInside:!1,checkCount:!1,paginationType:"simple"})})},[j,y,$,T,x,f,X,D,a]),fe=o.useMemo(()=>{if(!x&&!f||!["tree","list"].includes(m))return null;const e={url:Ce,ctx:ye,params:X,method:we},s=(n,i)=>{if(!i.checked){const p={};if(p[R]=i.node[D]||"",p[g]=i.node[Ae]||"",Ne?.(p)===!1)return}if(!a&&(v(),!wt&&j.includes(i.node?.key)))return;let c=i.checkedNodes;if(a||n?.length&&(c=[i.node]),a){const p=es.ArrayToObject("key",c);Array.from(H.current.keys()).forEach(K=>{n.includes(K)||H.current.delete(K)}),n.forEach(K=>{const he=String(K);p[he]&&H.current.set(he,p[he])}),c=Array.from(H.current.values())}pe(n,c)},r=n=>k?.titleRender?k.titleRender(n):qe?qe(n):n.title,l=z("comboselect-tree",{"comboselect-list":m==="list","comboselect-list-single":m==="list"&&!a});return t.jsxRuntimeExports.jsx("div",{className:l,children:t.jsxRuntimeExports.jsx(Qt.default,{blockNode:!0,...e,...k,wrapperStyle:{position:"static"},emptyProps:{size:"small",...Pe},replaceFields:_e,checkable:a,radioable:!a,showRadio:!1,selectable:m!=="list",loadedKeys:ue,checkedKeys:j,onCheck:s,onSelect:Ft,titleRender:r,refresh:y??T,loadingNode:t.jsxRuntimeExports.jsxs("div",{className:"loading-node-content",children:[t.jsxRuntimeExports.jsx("div",{className:"loading-icon",children:t.jsxRuntimeExports.jsx(is.LoadingF,{})}),w({id:"searching"})]})})})},[j,y,$,T,x,f,ue,m,X,a]),Y=o.useMemo(()=>t.jsxRuntimeExports.jsxs("div",{className:"comboselect-wrapper",ref:N,onClick:Mt,children:[t.jsxRuntimeExports.jsx("div",{className:z("comboselect-overflow",!a&&"comboselect-overflow-single"),children:Ye}),!x&&t.jsxRuntimeExports.jsx("span",{className:"comboselect-arrow",children:t.jsxRuntimeExports.jsx(Bt.Down,{})}),q&&t.jsxRuntimeExports.jsx("span",{className:"comboselect-clear",onClick:_t,children:t.jsxRuntimeExports.jsx(Ut.CloseCircleF,{})}),!u?.length&&t.jsxRuntimeExports.jsx("span",{className:"comboselect-placeholder",children:je??w({id:"pleaseSelect"})})]}),[u,Ye,a,q,x,je]),It=()=>Te||ke?t.jsxRuntimeExports.jsx(ns.default,{label:Te,required:ke,...yt}):null,Vt=()=>t.jsxRuntimeExports.jsx("div",{ref:U,className:`comboselect-dropdown-wrapper ${_?"show-search":""} mode-${m}`,children:t.jsxRuntimeExports.jsxs("div",{style:Ge(),className:`${d.$prefixCls}-scrollbar-small dropdown-content`,children:[_&&Je(),m==="table"?xe:fe,f&&Xe(),ge&&Qe()]})}),Ze=()=>{const e=()=>u.map((s,r)=>{if(E!==null&&E>r)return null;let l=s[g];return Le&&(l=Le(s)),t.jsxRuntimeExports.jsxs("div",{className:"comboselect-more-item",children:[t.jsxRuntimeExports.jsx("span",{className:"comboselect-more-item-text",children:t.jsxRuntimeExports.jsx(be.default,{children:l})}),t.jsxRuntimeExports.jsx("span",{className:"comboselect-more-item-remove",onClick:n=>We(n,s),children:t.jsxRuntimeExports.jsx(et.Close,{})})]},r)});return t.jsxRuntimeExports.jsxs("div",{className:"comboselect-more-wrapper",children:[t.jsxRuntimeExports.jsx("span",{className:"comboselect-more-title",children:t.jsxRuntimeExports.jsx("span",{children:w({id:"more"})})}),t.jsxRuntimeExports.jsx("div",{className:"comboselect-more-content",children:e()})]})},Ht=o.useMemo(()=>t.jsxRuntimeExports.jsx(Xt.Dropdown,{overlay:Vt(),visible:f,placement:dt,trigger:["click"],overlayClassName:z(`${d.$prefixCls}-comboselect-dropdown`,mt),getPopupContainer:St,children:t.jsxRuntimeExports.jsx(st.Popover,{visible:M,destroyTooltipOnHide:!0,placement:"rightTop",content:Ze(),onVisibleChange:()=>L(!1),overlayClassName:`${d.$prefixCls}-comboselect-more-popover`,children:Y})}),[f,j,B,y,$,P,T,q,oe,Oe,De,M,ue,C,te,Y,u]),Wt=o.useMemo(()=>t.jsxRuntimeExports.jsxs(t.jsxRuntimeExports.Fragment,{children:[t.jsxRuntimeExports.jsx(st.Popover,{visible:M,destroyTooltipOnHide:!0,placement:"rightTop",content:Ze(),onVisibleChange:()=>L(!1),overlayClassName:`${d.$prefixCls}-comboselect-more-popover`,children:Y}),t.jsxRuntimeExports.jsxs("div",{className:"comboselect-non-popup-content",children:[_&&Je(),m==="table"?xe:fe,Xe(),ge&&Qe()]})]}),[j,B,y,$,P,q,oe,Oe,De,C,te,xe,fe,Y,M,u]);return t.jsxRuntimeExports.jsxs("div",{className:Kt(),style:it,ref:me,children:[It(),x?Wt:Ht,x?null:t.jsxRuntimeExports.jsx(ls.default,{error:Se,helperText:oe,hideErrorDom:vt})]})};exports.ComboSelect=rt;exports.default=rt;
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./index.css');require('../Tree/style/index.css');const t=require("../_virtual/jsx-runtime.js"),o=require("react"),Ut=require("../node_modules/@para-ui/icons/Down/index.js"),Jt=require("../node_modules/@para-ui/icons/Search/index.js"),st=require("../node_modules/@para-ui/icons/Close/index.js"),Qt=require("../node_modules/@para-ui/icons/CloseCircleF/index.js"),Xt=require("../Table/index.js"),Yt=require("../Tree/Tree.js");;/* empty css */const rt=require("../Button/index.js"),Zt=require("../Dropdown/index.js"),ot=require("../Popover/index.js"),be=require("../AutoTips/index.js"),es=require("../Tooltip/index.js"),_=require("clsx"),S=require("./utils.js"),ts=require("@snack-kit/lib"),ss=require("../Utils/snack-kit-shims.js"),rs=require("../GlobalContext/index.js"),os=require("../Hooks/useGlobalProps.js"),ns=require("../GlobalContext/useFormatMessage.js"),ls=require("./lang/index.js"),cs=require("../Label/index.js"),is=require("../HelperText/index.js"),d=require("../GlobalContext/constant.js"),as=require("../Search/index.js"),us=require("../node_modules/@para-ui/icons/LoadingF/index.js");;/* empty css */const nt=lt=>{const{mode:m="table",placeholder:je,searchPlaceholder:ct,maxCount:Re,overLine:z=!1,disabled:ve=!1,allowClear:it=!1,className:at,style:ut,maxHeight:dt,height:mt,placement:pt="bottomLeft",popoverClassName:ft,size:xt="large",popoverActions:ge=null,showPopoverActions:Ce=!1,defaultOpen:Z=!1,defaultValue:Ee,replaceFields:ht={key:"key",title:"title",children:"children"},outputFields:bt={outputKey:"key",outputTitle:"label"},value:ee,onClear:te,onCancel:jt,onOk:Rt,onClose:vt,onChange:E,onSearch:se,refresh:y,TableProps:re,TreeProps:k,checkable:a=!0,url:ye,ctx:we,params:N,method:Se="Get",showSearch:F=!1,realTimeSearch:gt=!1,error:Ne=!1,hideErrorDom:Ct,helperText:oe,paramsCallback:Et,fullPathKey:yt,fullPathRender:$e,disablePopup:f=!1,tagRender:ne,onTagRemove:Te,action:wt,label:ke="",labelTooltip:St,required:Pe=!1,emptyProps:qe,toggleSelectedOnSingle:Nt=!1,optionRender:Me,getOptionLabel:Le,dropdownMatchSelectWidth:le=!0,getPopupContainer:$t,maxTagTextLength:A,renderInputContent:V,renderTagLabel:ce,renderMoreTagLabel:Oe}=os.default(lt,"ComboSelect"),{language:De,locale:Ke}=o.useContext(rs.default),$=o.useRef(null),_e=o.useRef(!1);o.useEffect(()=>{process.env.NODE_ENV!=="production"&&Re!==void 0&&!_e.current&&(_e.current=!0,console.warn("[ComboSelect] maxCount 已在 v5.x 标记为 @deprecated 且自当前版本起 runtime 完全不生效(原代码 dead field)。请从 props 中移除 maxCount;tag 显示数量由 overLine 控制是否换行。v6.0 将移除该字段。"))},[Re]);const[x,ie]=o.useState(!1),[j,I]=o.useState([]),H=o.useRef(new Map),[u,W]=o.useState([]),[B,ze]=o.useState(""),G=o.useRef(void 0),[P,Fe]=o.useState(null),[q,Tt]=o.useState(!1),[T,kt]=o.useState(0),[M,L]=o.useState(!1),ae=o.useRef([]),O=o.useRef(!1),U=o.useRef(null),Ae=o.useRef({}),Ve=S.getReplaceField(m,ht,re,k),{key:Pt,title:qt}=Ve,D=Pt||"",Ie=qt||"",{outputKey:R="key",outputTitle:g="label"}=bt||{},w=ns.default("ComboSelect",ls.default),He=o.useRef(S.isRemoteLoad(m,m==="table"?re:k)),[ue,Mt]=o.useState(),h=o.useRef({list:[]}),[C,de]=o.useState(null),me=o.useRef(null);h.current.openMore=M,h.current.list=[...u];const Lt=()=>{h.current.openMore&&L(!1)},We=e=>{if(e===null||e===0||(e===void 0&&(e=h.current.list.length),!me.current))return;const s=me.current.querySelector(".comboselect-overflow-list");if(s)if(s.scrollHeight>s.clientHeight){const r=Number(e)-1;de(r),We(r)}else h.current.list.length<=e&&Lt()},J=()=>{if(h.current.list.length===0)return de(null);clearTimeout(h.current.resizeTimer),h.current.resizeTimer=setTimeout(()=>{de(h.current.list.length),We()},50)};o.useEffect(()=>(J(),()=>{clearTimeout(h.current.resizeTimer)}),[u]),o.useEffect(()=>(!z&&a?window.addEventListener("resize",J):window.removeEventListener("resize",J),()=>{window.removeEventListener("resize",J)}),[z,a]);const Ot=e=>{if(!f&&!ve){if(O.current){v();return}O.current=!0,ie(!0)}},v=(e,s)=>{O.current=!1,G.current=void 0,Ae.current={},ie(!1),Fe(null),ze(""),vt?.(),s==="cancel"&&Be()},Be=()=>{I([]),W([])},pe=(e,s)=>{I(e),Ft(s,e)},Dt=e=>{I(s=>{const r=s.findIndex(l=>l===e[R]);return r>-1&&s.splice(r,1),[...s]})},Ge=(e,s)=>{if(e.stopPropagation(),s.closable===!1||Te?.(s)===!1)return;const r=[...u],l=r.findIndex(n=>n[R]===s[R]);l>-1&&r.splice(l,1),W(r),Dt(s),E?.(r)},Kt=o.useMemo(()=>S.debounce(async e=>{Q(e)},400),[]),_t=e=>{ze(e),gt&&Kt(e)},Q=e=>{const s=e??B;se?se(s):(G.current=s?.trim(),kt(Math.random())),He.current&&Mt([])},Ue=(e,s)=>{s?(Rt?.(u),v(null,"ok")):(jt?.(),v(null,"cancel"))},Je=()=>{let e="auto";$.current&&(e=`${$.current.offsetWidth}px`);const s=S.getOverlaySize(m,He.current,dt,mt),r={minWidth:e,maxWidth:960};return typeof le=="number"?r.width=le:le&&(r.width=e),{overflow:"auto",...r,...s}},zt=()=>_(`${d.$prefixCls}-comboselect`,at,{[`${d.$prefixCls}-comboselect-focused`]:x&&!f,[`${d.$prefixCls}-comboselect-disabled`]:ve,[`${d.$prefixCls}-comboselect-radioable`]:!a,[`${d.$prefixCls}-comboselect-error`]:Ne,[`${d.$prefixCls}-comboselect-clear`]:q,[`${d.$prefixCls}-comboselect-non-popup`]:f,[`${d.$prefixCls}-comboselect-overLine`]:z},`${d.$prefixCls}-comboselect-${xt}`),Ft=(e,s)=>{let r=[];if(e?.length&&(r=e.map(n=>{const i={};i[R]=n[D]||"",Le?i[g]=Le(n)||"":i[g]=n[Ie]||"";const c=ae.current?.find(p=>p[R]===i[R]);return c&&(c.disabled!==void 0&&(i.disabled=c.disabled),c.closable!==void 0&&(i.closable=c.closable)),i})),s?.length&&e){const n=s.filter(c=>e.findIndex(p=>p[D]===c)===-1),i=ae.current?.filter(c=>n?.includes(c[R]));i&&r.push(...i)}W(r);const l=ts.DeepClone(e||[]);a?E?.(r,l):E?.(r[0],l[0])},Qe=e=>{const s=e.map(r=>r[R]);W(e),I(s),ae.current=e},At=(e,s)=>{Fe(s.node)},Xe=()=>{let e={};if(!f){const{width:s,minWidth:r,maxWidth:l}=Je();e={width:s,minWidth:r,maxWidth:l}}return t.jsxRuntimeExports.jsx("div",{className:"comboselect-search",style:e,children:t.jsxRuntimeExports.jsx(as.Search,{className:"comboselect-search-input",rightIconExist:!0,showBtn:!1,rightIcon:t.jsxRuntimeExports.jsx(Jt.Search,{}),btnType:"inside",value:B,onChange:_t,placeholder:ct??w({id:"searchPlaceholder"}),onClickBtn:()=>{Q()},onEnter:()=>{Q()},onClear:()=>{Q("")}})})},Ye=()=>ge?t.jsxRuntimeExports.jsx("div",{className:"comboselect-actions",children:ge}):t.jsxRuntimeExports.jsxs("div",{className:"comboselect-actions",children:[t.jsxRuntimeExports.jsx(rt.Button,{onClick:e=>Ue(e,!1),variant:"outlined",size:"small",children:w({id:"cancel"})}),t.jsxRuntimeExports.jsx(rt.Button,{variant:"outlined",onClick:e=>Ue(e,!0),size:"small",children:w({id:"ok"})})]}),Ze=()=>m!=="tree"||!P?null:$e?t.jsxRuntimeExports.jsx("div",{className:"comboselect-fullPath",children:$e(P??{})}):t.jsxRuntimeExports.jsxs("div",{className:"comboselect-fullPath",children:[t.jsxRuntimeExports.jsx("span",{children:w({id:"fullPath"})}),P?.[yt]??""]}),Vt=e=>{e.stopPropagation(),Be(),v(),L(!1),te?.(),E?.(a?[]:{})},It=e=>{e.stopPropagation(),L(!0),v()};o.useImperativeHandle(wt,()=>({closePopup:()=>v()})),o.useEffect(()=>{!f&&Z&&(O.current=!0,ie(Z))},[Z]),o.useEffect(()=>{Ee&&Qe(S.toArray(Ee))},[]),o.useEffect(()=>{ee&&Qe(S.toArray(ee))},[ee]),o.useEffect(()=>{it&&Tt(!!u?.length)},[u]),o.useEffect(()=>{const e=r=>r&&r.ownerDocument||document,s=r=>{const l=e($.current),n=r.target,i=!l.documentElement.contains(n)||U.current?.contains(n)||$.current?.contains(n)||!1;if(m==="table"){const c=`.${d.$prefixCls}-select-popover`,p=`.${d.$prefixCls}-table-show-colums-popover`,b=`.${d.$prefixCls}-filter-popover`;if(S.closest(n,`${c}, ${p}, ${b}`))return}O.current&&!i&&v()};if(x&&setTimeout(()=>{if(!U.current)return;const r=U.current.querySelector(".comboselect-search-input input");r&&r.focus()},200),!f&&x){const r=e($.current);return r.addEventListener("mousedown",s),()=>{r.removeEventListener("mousedown",s)}}},[x]);const et=o.useMemo(()=>{if(!u?.length)return null;if(V)return V(a?u:u[0]);if(!a)return t.jsxRuntimeExports.jsx("span",{className:"comboselect-single-content",children:t.jsxRuntimeExports.jsx(be.default,{children:u[0]?.[g]})});if(!u.length)return;const e=l=>{if(ne)return ne(l);const{disabled:n,closable:i=!0}=l??{};let c=l[g];ce&&(c=ce(l));let p=!1;if(typeof A=="number"&&(typeof c=="string"||typeof c=="number")){const b=String(c);b.length>A&&(c=`${b.slice(0,A)}...`,p=!0)}return t.jsxRuntimeExports.jsxs("span",{className:_("comboselect-item",{"comboselect-item--disabled":n,"comboselect-item--unclosable":!i}),children:[p?t.jsxRuntimeExports.jsx(es.Tooltip,{title:t.jsxRuntimeExports.jsx("div",{onClick:b=>b.stopPropagation(),children:l[g]}),arrow:!1,placement:"bottomLeft",children:t.jsxRuntimeExports.jsx("span",{className:"comboselect-item-content",children:c})}):t.jsxRuntimeExports.jsx("span",{className:"comboselect-item-content",children:t.jsxRuntimeExports.jsx(be.default,{children:c})}),i===!0&&t.jsxRuntimeExports.jsx("span",{className:"comboselect-item-remove",onClick:b=>Ge(b,l),onMouseDown:b=>b.stopPropagation(),children:t.jsxRuntimeExports.jsx(st.Close,{})})]})},s=()=>C!==null&&h.current.list.length>C?t.jsxRuntimeExports.jsx("div",{className:"comboselect-overflow-item",children:t.jsxRuntimeExports.jsx("span",{className:"comboselect-item",onClick:It,children:t.jsxRuntimeExports.jsxs("span",{className:"comboselect-item-content",children:["+",h.current.list.length-C]})})}):null,r=u.map((l,n)=>C!==null&&C<=n?null:t.jsxRuntimeExports.jsx("div",{className:"comboselect-overflow-item",children:e(l)},n));return t.jsxRuntimeExports.jsxs("div",{className:"comboselect-overflow-list",children:[r,s()]})},[u,E,a,C,A,g,ne,V,ce,z]),X=o.useMemo(()=>{let e=N||Ae.current;return F&&!se&&G.current!==void 0&&(e={...e,searchKey:G.current}),Et?.(e)||e},[N,T,y,x]),fe=o.useMemo(()=>{if(!f&&!x||m!=="table")return null;const e={url:ye,ctx:we,search:X,method:Se},s=(r,l)=>{!a&&(v(),j.includes(r))||pe([r],[l])};return t.jsxRuntimeExports.jsx("div",{className:"comboselect-table",children:t.jsxRuntimeExports.jsx(Xt.default,{...e,...re,emptyProps:qe,check:a,radio:!a,rowKey:D,setCheck:pe,setRadio:s,checkDefaultValue:j,radioDefaultValue:j[0],refresh:y??T,autoSize:!1,refreshInside:!1,checkCount:!1,paginationType:"simple"})})},[j,y,N,T,f,x,X,D,a]),xe=o.useMemo(()=>{if(!f&&!x||!["tree","list"].includes(m))return null;const e={url:ye,ctx:we,params:X,method:Se},s=(n,i)=>{if(!i.checked){const p={};if(p[R]=i.node[D]||"",p[g]=i.node[Ie]||"",Te?.(p)===!1)return}if(!a&&(v(),!Nt&&j.includes(i.node?.key)))return;let c=i.checkedNodes;if(a||n?.length&&(c=[i.node]),a){const p=ss.ArrayToObject("key",c);Array.from(H.current.keys()).forEach(K=>{n.includes(K)||H.current.delete(K)}),n.forEach(K=>{const he=String(K);p[he]&&H.current.set(he,p[he])}),c=Array.from(H.current.values())}pe(n,c)},r=n=>k?.titleRender?k.titleRender(n):Me?Me(n):n.title,l=_("comboselect-tree",{"comboselect-list":m==="list","comboselect-list-single":m==="list"&&!a});return t.jsxRuntimeExports.jsx("div",{className:l,children:t.jsxRuntimeExports.jsx(Yt.default,{blockNode:!0,...e,...k,wrapperStyle:{position:"static"},emptyProps:{size:"small",...qe},replaceFields:Ve,checkable:a,radioable:!a,showRadio:!1,selectable:m!=="list",loadedKeys:ue,checkedKeys:j,onCheck:s,onSelect:At,titleRender:r,refresh:y??T,loadingNode:t.jsxRuntimeExports.jsxs("div",{className:"loading-node-content",children:[t.jsxRuntimeExports.jsx("div",{className:"loading-icon",children:t.jsxRuntimeExports.jsx(us.LoadingF,{})}),w({id:"searching"})]})})})},[j,y,N,T,f,x,ue,m,X,a]),Y=o.useMemo(()=>t.jsxRuntimeExports.jsxs("div",{className:"comboselect-wrapper",ref:$,onClick:Ot,children:[t.jsxRuntimeExports.jsx("div",{className:_("comboselect-overflow",!a&&"comboselect-overflow-single"),children:et}),!f&&t.jsxRuntimeExports.jsx("span",{className:"comboselect-arrow",children:t.jsxRuntimeExports.jsx(Ut.Down,{})}),q&&t.jsxRuntimeExports.jsx("span",{className:"comboselect-clear",onClick:Vt,children:t.jsxRuntimeExports.jsx(Qt.CloseCircleF,{})}),!u?.length&&t.jsxRuntimeExports.jsx("span",{className:"comboselect-placeholder",children:je??w({id:"pleaseSelect"})})]}),[u,et,a,q,f,je]),Ht=()=>ke||Pe?t.jsxRuntimeExports.jsx(cs.default,{label:ke,required:Pe,...St}):null,Wt=()=>t.jsxRuntimeExports.jsx("div",{ref:U,className:`comboselect-dropdown-wrapper ${F?"show-search":""} mode-${m}`,children:t.jsxRuntimeExports.jsxs("div",{style:Je(),className:`${d.$prefixCls}-scrollbar-small dropdown-content`,children:[F&&Xe(),m==="table"?fe:xe,x&&Ze(),Ce&&Ye()]})}),tt=()=>{const e=()=>u.map((s,r)=>{if(C!==null&&C>r)return null;let l=s[g];return Oe&&(l=Oe(s)),t.jsxRuntimeExports.jsxs("div",{className:"comboselect-more-item",children:[t.jsxRuntimeExports.jsx("span",{className:"comboselect-more-item-text",children:t.jsxRuntimeExports.jsx(be.default,{children:l})}),t.jsxRuntimeExports.jsx("span",{className:"comboselect-more-item-remove",onClick:n=>Ge(n,s),children:t.jsxRuntimeExports.jsx(st.Close,{})})]},r)});return t.jsxRuntimeExports.jsxs("div",{className:"comboselect-more-wrapper",children:[t.jsxRuntimeExports.jsx("span",{className:"comboselect-more-title",children:t.jsxRuntimeExports.jsx("span",{children:w({id:"more"})})}),t.jsxRuntimeExports.jsx("div",{className:"comboselect-more-content",children:e()})]})},Bt=o.useMemo(()=>t.jsxRuntimeExports.jsx(Zt.Dropdown,{overlay:Wt(),visible:x,placement:pt,trigger:["click"],overlayClassName:_(`${d.$prefixCls}-comboselect-dropdown`,ft),getPopupContainer:$t,children:t.jsxRuntimeExports.jsx(ot.Popover,{visible:M,destroyTooltipOnHide:!0,placement:"rightTop",content:tt(),onVisibleChange:()=>L(!1),overlayClassName:`${d.$prefixCls}-comboselect-more-popover`,children:Y})}),[x,j,B,y,N,P,T,q,oe,De,Ke,M,ue,E,te,Y,u]),Gt=o.useMemo(()=>t.jsxRuntimeExports.jsxs(t.jsxRuntimeExports.Fragment,{children:[t.jsxRuntimeExports.jsx(ot.Popover,{visible:M,destroyTooltipOnHide:!0,placement:"rightTop",content:tt(),onVisibleChange:()=>L(!1),overlayClassName:`${d.$prefixCls}-comboselect-more-popover`,children:Y}),t.jsxRuntimeExports.jsxs("div",{className:"comboselect-non-popup-content",children:[F&&Xe(),m==="table"?fe:xe,Ze(),Ce&&Ye()]})]}),[j,B,y,N,P,q,oe,De,Ke,E,te,fe,xe,Y,M,u]);return t.jsxRuntimeExports.jsxs("div",{className:zt(),style:ut,ref:me,children:[Ht(),f?Gt:Bt,f?null:t.jsxRuntimeExports.jsx(is.default,{error:Ne,helperText:oe,hideErrorDom:Ct})]})};exports.ComboSelect=nt;exports.default=nt;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -30,7 +30,10 @@ export interface ComboSelectProps extends HelperTextDetailProps {
|
|
|
30
30
|
/**search 占位符*/
|
|
31
31
|
searchPlaceholder?: string;
|
|
32
32
|
/**最大显示数*/
|
|
33
|
-
/**
|
|
33
|
+
/**
|
|
34
|
+
* @deprecated v5.x dead field — 该字段历史遗留,代码内仅解构未引用,runtime 完全不生效。v5.0.0-beta.14 起 dev 模式抛 warn,v6.0 移除字段。
|
|
35
|
+
* 迁移:从 props 中移除 maxCount;tag 换行行为请用 `overLine` 控制。
|
|
36
|
+
*/
|
|
34
37
|
maxCount?: number;
|
|
35
38
|
/** 超出换行 */
|
|
36
39
|
overLine?: boolean;
|
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
import { default as React } from 'react';
|
|
2
1
|
import { GenerateConfig } from 'rc-picker/lib/generate/index';
|
|
3
2
|
import { RangePickerProps } from '.';
|
|
4
|
-
import { RangeValue } from 'rc-picker/lib/interface';
|
|
5
3
|
import { PickerComponentClass } from './interface';
|
|
6
|
-
interface PresetDate<T> {
|
|
7
|
-
label: React.ReactNode;
|
|
8
|
-
value: T | (() => T);
|
|
9
|
-
}
|
|
10
4
|
export default function generateRangePicker<DateType>(generateConfig: GenerateConfig<DateType>): PickerComponentClass<RangePickerProps<DateType> & {
|
|
11
5
|
/**
|
|
12
6
|
* @deprecated `dropdownClassName` is deprecated which will be removed in next major
|
|
@@ -14,6 +8,4 @@ export default function generateRangePicker<DateType>(generateConfig: GenerateCo
|
|
|
14
8
|
*/
|
|
15
9
|
dropdownClassName?: string;
|
|
16
10
|
popupClassName?: string;
|
|
17
|
-
presets?: PresetDate<Exclude<RangeValue<DateType>, null>>[];
|
|
18
11
|
}>;
|
|
19
|
-
export {};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=require("../../_virtual/jsx-runtime.js"),o=require("react"),
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=require("../../_virtual/jsx-runtime.js"),o=require("react"),p=require("clsx"),te=require("../../node_modules/@para-ui/icons/CloseCircleF/index.js"),se=require("../../node_modules/@para-ui/icons/SortRight/index.js"),ne=require("../../node_modules/@para-ui/icons/Calendar/index.js"),oe=require("../../node_modules/@para-ui/icons/Time/index.js"),ae=require("rc-picker"),s=require("../util.js"),T=require("./index.js"),w=require("../lang/index.js"),le=require("../../GlobalContext/index.js"),ie=require("../../Label/index.js"),ue=require("../../HelperText/index.js"),y=require("../../GlobalContext/constant.js"),ce=require("@snack-kit/lib"),I=require("../PickerTag.js"),pe=require("../../Tooltip/index.js");function xe(z){return o.forwardRef((i,L)=>{const{className:O,size:fe,bordered:_=!0,placeholder:H,error:u=!1,helperText:M,style:S,value:V,defaultValue:F,label:x="",labelTooltip:A,required:d=!1,shortcuts:f,presets:m,ranges:me,shortcutsPlacement:j="left",getPopupContainer:D,isolationPopupOnHide:U=!1,disabled:R,disabledTooltip:g,dropdownClassName:B,popupClassName:G,...P}=i,{format:c,showTime:h,picker:n,use12Hours:J}=i,l=o.useRef(null),b=o.useRef(null),C=o.useMemo(()=>ce.UUID(),[]),t=`${y.$prefixCls}-picker`,{language:$,locale:q}=o.useContext(le.default);let E={};if(q){const e=q[$||"zh"];e&&(E=e.DatePicker)}const K=w.default[$||"zh"]||w.default.zh,v=s.mergedLocale(E,K);let a={};a={...a,...h?s.getTimeProps({format:c,picker:n,...h}):{},...n==="time"?s.getTimeProps({format:c,...i,picker:n}):{}},a.style&&delete a.style;const k=e=>{if(!Array.isArray(e))return e;const ee=c??T.pickerFormatMap[n];return e.map(re=>s.formatPickerValue(re,ee))},Q=()=>x||d?r.jsxRuntimeExports.jsx(ie.default,{label:x,required:d,...A}):null;o.useImperativeHandle(L,()=>({focus:()=>l.current?.focus(),blur:()=>l.current?.blur()}));const N=m?m.map(e=>({label:typeof e.label=="string"?r.jsxRuntimeExports.jsx(I.default,{children:e.label}):e.label,value:e.value})):f?f.map(e=>({label:typeof e.text=="string"?r.jsxRuntimeExports.jsx(I.default,{children:e.text}):e.text,value:typeof e.value=="function"?e.value():e.value})):[],W=!!N?.length,X=p(C,B,G,`${y.$prefixCls}-scrollbar-small`,{[`${t}-use12Hours`]:J,[`${t}-presets-${j}`]:W}),Y=e=>s.getPopupContainer(e,D,b),Z=e=>{P.onOpenChange?.(e),U&&s.isolationPopupPollution(e,C),e||l.current?.blur()};return(()=>{const e=r.jsxRuntimeExports.jsxs("div",{ref:b,className:p(`${t}-wrapper`,O),style:S,children:[Q(),r.jsxRuntimeExports.jsx(ae.RangePicker,{separator:r.jsxRuntimeExports.jsx("span",{"aria-label":"to",className:`${t}-separator`,children:r.jsxRuntimeExports.jsx(se.SortRight,{})}),ref:l,placeholder:s.getRangePlaceholder(n,v,H),suffixIcon:n==="time"?r.jsxRuntimeExports.jsx(oe.Time,{}):r.jsxRuntimeExports.jsx(ne.Calendar,{className:"picker-icon"}),clearIcon:r.jsxRuntimeExports.jsx(te.CloseCircleF,{}),allowClear:!0,disabled:R,...P,...a,defaultValue:k(F),value:k(V),presets:N,className:p({[`${t}-borderless`]:!_,[`${t}-error`]:u,[`${t}-shortcuts-${j}`]:u}),locale:v.lang,prefixCls:t,generateConfig:z,prevIcon:r.jsxRuntimeExports.jsx("span",{className:`${t}-prev-icon`}),nextIcon:r.jsxRuntimeExports.jsx("span",{className:`${t}-next-icon`}),superPrevIcon:r.jsxRuntimeExports.jsx("span",{className:`${t}-super-prev-icon`}),superNextIcon:r.jsxRuntimeExports.jsx("span",{className:`${t}-super-next-icon`}),components:T.Components,direction:"ltr",dropdownClassName:X,getPopupContainer:Y,onOpenChange:Z}),r.jsxRuntimeExports.jsx(ue.default,{error:u,helperText:M})]});return R&&g?r.jsxRuntimeExports.jsx(pe.Tooltip,{disabled:!0,...g,children:e}):e})()})}exports.default=xe;
|
|
2
2
|
//# sourceMappingURL=generateRangePicker.js.map
|
|
@@ -5,6 +5,7 @@ import { RangePickerBaseProps as RCRangePickerBaseProps, RangePickerDateProps as
|
|
|
5
5
|
import { Locale as RcPickerLocale } from 'rc-picker/lib/interface';
|
|
6
6
|
import { default as PickerButton } from '../PickerButton';
|
|
7
7
|
import { default as PickerTag } from '../PickerTag';
|
|
8
|
+
import { PresetDate } from './generateSinglePicker';
|
|
8
9
|
import { Dayjs } from 'dayjs';
|
|
9
10
|
import { LabelTooltipProps } from '../../Label';
|
|
10
11
|
import { TooltipProps } from '../../Tooltip';
|
|
@@ -89,18 +90,24 @@ export type RangePickerProps<DateType> = (RangePickerBaseProps<DateType> | Range
|
|
|
89
90
|
shortcuts?: ShortcutType[];
|
|
90
91
|
/** 预设范围选择面板位置 */
|
|
91
92
|
shortcutsPlacement?: 'left' | 'right';
|
|
93
|
+
/**
|
|
94
|
+
* 预设时间范围(v5.x 推荐,替换旧 `shortcuts`)。
|
|
95
|
+
* 修复:v5.0.0-beta.14 起从内部 DateRangePickerProps 提升到导出类型,
|
|
96
|
+
* 解决下游业务方 `<RangePicker presets={...}>` TS2322 报错(PARA_UI_BETA13_FEEDBACK P1)。
|
|
97
|
+
*/
|
|
98
|
+
presets?: PresetDate<Exclude<RangeValue<DateType>, null>>[];
|
|
92
99
|
};
|
|
93
100
|
declare function generatePicker<DateType>(generateConfig: GenerateConfig<DateType>): import('./interface').PickerComponentClass<PickerProps<DateType> & {
|
|
94
|
-
presets?:
|
|
101
|
+
presets?: PresetDate<DateType>[] | undefined;
|
|
95
102
|
}, unknown> & {
|
|
96
103
|
WeekPicker: import('./interface').PickerComponentClass<Omit<PickerProps<DateType> & {
|
|
97
|
-
presets?:
|
|
104
|
+
presets?: PresetDate<DateType>[] | undefined;
|
|
98
105
|
}, "picker">, unknown>;
|
|
99
106
|
MonthPicker: import('./interface').PickerComponentClass<Omit<PickerProps<DateType> & {
|
|
100
|
-
presets?:
|
|
107
|
+
presets?: PresetDate<DateType>[] | undefined;
|
|
101
108
|
}, "picker">, unknown>;
|
|
102
109
|
YearPicker: import('./interface').PickerComponentClass<Omit<PickerProps<DateType> & {
|
|
103
|
-
presets?:
|
|
110
|
+
presets?: PresetDate<DateType>[] | undefined;
|
|
104
111
|
}, "picker">, unknown>;
|
|
105
112
|
RangePicker: React.ComponentClass<RangePickerProps<DateType>>;
|
|
106
113
|
TimePicker: import('./interface').PickerComponentClass<PickerTimeProps<DateType>, unknown>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('./index.css');const t=require("../../_virtual/jsx-runtime.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('./index.css');const t=require("../../_virtual/jsx-runtime.js"),R=require("react-dom"),O=require("../index.js"),$=require("../../node_modules/@para-ui/icons/Close/index.js"),P=require("../../node_modules/@para-ui/icons/CheckCircleF/index.js"),d=require("../../node_modules/@para-ui/icons/WarningCircleF/index.js"),D=require("../../node_modules/@para-ui/icons/CloseCircleF/index.js"),k=require("clsx"),m=require("../../Button/index.js"),z=require("@snack-kit/lib");require("../../GlobalContext/index.js");const L=require("../../GlobalContext/constant.js");;/* empty css */const S=require("../../GlobalContext/confirmLocale.js"),W={success:t.jsxRuntimeExports.jsx(P.CheckCircleF,{}),warn:t.jsxRuntimeExports.jsx(d.WarningCircleF,{}),warning:t.jsxRuntimeExports.jsx(d.WarningCircleF,{}),error:t.jsxRuntimeExports.jsx(D.CloseCircleF,{}),info:t.jsxRuntimeExports.jsx(d.WarningCircleF,{})},H=e=>{const{type:n="warning",title:o,content:s,icon:r,okText:l,cancelText:c,onOk:v,onCancel:y,className:b,showCancel:q=!0,closable:N=!1,okButtonProps:w,cancelButtonProps:g,resolveFn:j,callback:B,destroy:f,actions:p,showActions:F=!0,disableBackdropClick:C,disableEscapeKeyDown:h,...T}=e,x={};C!==void 0&&(x.closeOnBackdrop=!C),h!==void 0&&(x.closeOnEsc=!h);const A=`${L.$prefixCls}-confirm`,a=()=>{y?.(),j?.(!1),f?.()},E=()=>{v?.(),j?.(!0),B?.(),f?.()},M=()=>F?p?t.jsxRuntimeExports.jsx("div",{className:"confirm-content-actions",children:p}):t.jsxRuntimeExports.jsxs("div",{className:"confirm-content-actions",children:[q&&t.jsxRuntimeExports.jsx(m.Button,{variant:"outlined",size:"small",onClick:a,...g,children:c}),t.jsxRuntimeExports.jsx(m.Button,{variant:"contained",size:"small",onClick:E,...w,children:l})]}):null;return t.jsxRuntimeExports.jsx(O.Modal,{bodyStyle:{minHeight:"auto"},...T,...x,onOk:E,onCancel:a,onDismiss:a,title:"",footer:"",size:"auto",hideHeader:!0,showActions:!1,className:k(A,b),children:t.jsxRuntimeExports.jsx("div",{className:"confirm-wrapper",children:t.jsxRuntimeExports.jsxs("div",{className:"confirm-content",children:[N&&t.jsxRuntimeExports.jsx(m.Button.IconButton,{variant:"outlined",size:"small",className:"confirm-content-close",onClick:a,children:t.jsxRuntimeExports.jsx($.Close,{})}),t.jsxRuntimeExports.jsx("span",{className:k("confirm-content-icon",`confirm-content-icon--${n}`),children:r||W[n]}),t.jsxRuntimeExports.jsxs("div",{className:"confirm-content-body",children:[o&&t.jsxRuntimeExports.jsx("span",{className:"confirm-body-title",children:o}),t.jsxRuntimeExports.jsx("div",{className:"confirm-body-desc",children:s})]}),M()]})})})},i=new Map,I=(e,n,o)=>{const s=document.createElement("div"),r=e.uuid||z.UUID();e.uuid&&s.setAttribute("data-confirm-cid",e.uuid),document.body.appendChild(s);const l=()=>{R.unmountComponentAtNode(s)&&s.parentNode&&s.parentNode.removeChild(s),i.delete(r)};i.set(r,l),setTimeout(()=>{const c=S.getConfirmLocale();R.render(t.jsxRuntimeExports.jsx(H,{...e,okText:e.okText??c.ok,cancelText:e.cancelText??c.cancel,open:!0,resolveFn:n,callback:o,destroy:l}),s)})},u=(e,n,o)=>{let s={type:n};return typeof e=="string"?s.content=e:s={...e,type:n},new Promise(r=>{I(s,r,o)})},U=e=>{if(e){const n=i.get(e);n&&n(),i.delete(e);return}i.forEach(n=>{n&&n()}),i.clear()},_={info:(e,n)=>u(e,"info",n),warn:(e,n)=>u(e,"warn",n),error:(e,n)=>u(e,"error",n),success:(e,n)=>u(e,"success",n),destroyAll:U};exports.Confirm=_;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/lib/Modal/index.d.ts
CHANGED
|
@@ -59,7 +59,18 @@ export interface ModalProps {
|
|
|
59
59
|
* 仅传 `onOk` → 旧行为不变(onOk 仍触发)。dev 环境若检测到只传 `onOk` 会 console.warn 1 次提示迁移。
|
|
60
60
|
*/
|
|
61
61
|
onSubmit?: (e?: React.MouseEvent<HTMLElement>) => void | Promise<void>;
|
|
62
|
-
/**
|
|
62
|
+
/**
|
|
63
|
+
* 取消按钮回调(v5.x.next 起为主职责)。
|
|
64
|
+
*
|
|
65
|
+
* **v5.0.0-beta.14(v5.x.next-fix)起兼容性约定**:
|
|
66
|
+
* - 显式传 `onDismiss` → 仅取消按钮触发 onCancel,X / ESC / mask 走 onDismiss(γ 单触发)
|
|
67
|
+
* - 显式传 `onClose` → R6 双触发:onCancel + onClose(legacy)
|
|
68
|
+
* - **未传 onDismiss / onClose**(v4 写法) → onCancel 仍 fallback 兜底 X / ESC / mask 三路;
|
|
69
|
+
* **dev 环境抛 Error 强制业务方迁移到 onDismiss(prod 仍 fallback 不影响线上)**。
|
|
70
|
+
*
|
|
71
|
+
* v6.0(2026 Q3)起 fallback 兜底移除 — 只用 onCancel 接 X / ESC / mask 的写法运行时静默失效。
|
|
72
|
+
* 详见 BREAKING-CHANGES §B-Modal-props-rework 子条 #5。
|
|
73
|
+
*/
|
|
63
74
|
onCancel?: (e?: React.MouseEvent<HTMLElement>) => boolean | void;
|
|
64
75
|
/**
|
|
65
76
|
* @deprecated v5.x.next 改用 onDismiss(X/ESC/mask)+ onOk(确定)+ onCancel(取消)三回调职责互斥;v6.0 移除 onClose。详见 BREAKING-CHANGES §B-Modal-props-rework
|
package/lib/Modal/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./index.css');const
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./index.css');const t=require("../_virtual/jsx-runtime.js"),n=require("react"),qe=require("rc-dialog"),C=require("../Button/index.js"),ze=require("../node_modules/@para-ui/icons/Close/index.js"),Fe=require("../GlobalContext/useFormatMessage.js"),Te=require("./lang/index.js"),Ie=require("./Confirm/index.js"),P=require("clsx"),V=require("../GlobalContext/constant.js"),Ke=require("../AutoTips/index.js");;/* empty css */let E;const Pe=e=>{E={x:e.pageX,y:e.pageY},setTimeout(()=>{E=null},100)};window.document.documentElement&&document.documentElement.addEventListener("click",Pe,!0);const W=e=>{const{open:f,visible:m,defaultOpen:k,closeIcon:X,centered:L=!0,focusTriggerAfterClose:Q=!0,title:U,footer:Y,showActions:J=!0,actions:Z,header:h,hideHeader:ee=!1,showCancel:se=!0,maskClosable:ne=!1,disableBackdropClick:oe=!0,closeOnBackdrop:v,keyboard:te=!1,disableEscapeKeyDown:re=!0,closeOnEsc:p,restoreFocusOnClose:g,fullScreen:le,customizeSize:ie,style:ce,bodyStyle:ae,contentWidth:ue,contentHeight:b,contentStyle:N,size:l="md",children:de,closable:fe=!0,mask:O=!0,...me}=e,R=Fe.default("Modal",Te.default),a=e.onClose!==void 0,w=n.useRef(!1);n.useEffect(()=>{process.env.NODE_ENV!=="production"&&a&&!w.current&&(w.current=!0,console.warn("[Modal] onClose 已在 v5.x.next 标记为 @deprecated,将在 v6.0 移除。请迁移到 onDismiss(处理 X/ESC/mask 关闭)+ onOk(确定按钮)+ onCancel(取消按钮)三回调模式。详见 BREAKING-CHANGES §B-Modal-props-rework。"))},[a]);const S=m!==void 0,B=n.useRef(!1);n.useEffect(()=>{process.env.NODE_ENV!=="production"&&S&&!B.current&&(B.current=!0,console.warn("[Modal] visible 已在 v5.x.next 标记为 @deprecated,将在 v6.0 移除。请改用 open prop。详见 BREAKING-CHANGES §B-Modal-props-rework 子条 #3-A"))},[S]);const j=e.onOk!==void 0,D=e.onSubmit!==void 0,M=n.useRef(!1);n.useEffect(()=>{process.env.NODE_ENV!=="production"&&j&&!D&&!M.current&&(M.current=!0,console.warn("[Modal] onOk 已在 v5.x.next 标记为 @deprecated,将在 v6.0 移除。请改用 onSubmit prop(语义更清晰)。详见 BREAKING-CHANGES §B-Modal-props-rework"))},[j,D]);const A=e.onCancel!==void 0,y=e.onDismiss!==void 0,$=n.useRef(!1);n.useEffect(()=>{if(process.env.NODE_ENV!=="production"&&A&&!y&&!a&&!$.current)throw $.current=!0,new Error("[Modal] v5.0.0-beta.14 起 X / ESC / 蒙层关闭路径主职责已交给 onDismiss(γ 互斥语义)。当前仅传 onCancel 而未传 onDismiss/onClose,prod 走 fallback 兼容,dev 抛 Error 强制迁移。一键迁移:`npx jscodeshift -t node_modules/@para-ui/core/codemods/modal-onCancel-to-onDismiss.js --parser=tsx src/`。v6.0(2026 Q3)起 fallback 删除,届时 X/ESC/mask 静默失效。详见 docs/UPGRADE_v4_to_v5.md §3.D.0 + BREAKING-CHANGES §B-Modal-props-rework 子条 #5。")},[A,y,a]);const _=e.maskClosable!==void 0,H=e.disableBackdropClick!==void 0,G=e.disableEscapeKeyDown!==void 0,q=e.focusTriggerAfterClose!==void 0,z=n.useRef(!1);n.useEffect(()=>{if(process.env.NODE_ENV==="production"||z.current)return;const s=[];_&&s.push("maskClosable → closeOnBackdrop"),H&&s.push("disableBackdropClick → closeOnBackdrop"),G&&s.push("disableEscapeKeyDown → closeOnEsc"),q&&s.push("focusTriggerAfterClose → restoreFocusOnClose"),s.length!==0&&(z.current=!0,console.warn(`[Modal] 检测到 v5.x.next 已 @deprecated 的反向命名 prop:${s.join("、")}。v5.x 仍 fallback 兼容,v6.0 移除。请按箭头右侧迁移到正向命名(对齐业界 antd/chakra/mui)。详见 BREAKING-CHANGES §B-Modal-props-rework + §B6。`))},[_,H,G,q]);const r=f!==void 0||m!==void 0,[xe,u]=n.useState(k??!1),Ce=r?f??m??!1:xe,F=k!==void 0,T=f!==void 0;n.useEffect(()=>{process.env.NODE_ENV!=="production"&&T&&F&&console.warn("[Modal] 同时传 open + defaultOpen,defaultOpen 被忽略(open 优先,受控模式)。详见 BREAKING-CHANGES §B-Modal-props-rework 子条 #2")},[T,F]);const I=n.useRef(r);n.useEffect(()=>{I.current!==r&&(process.env.NODE_ENV!=="production"&&console.warn("[Modal] open 受控/非受控状态运行时切换,React 不支持此模式,请保持一致。"),I.current=r)},[r]);const Ee=le||l==="fullScreen",o=`${V.$prefixCls}-modal`,ke=p!==void 0?p:!re,he=v!==void 0?v:!oe,ve=g!==void 0?g:Q,pe=s=>{e.onCancel?.(s),e.onClose?.("cancel"),r||u(!1)},ge=s=>{e.onClose!==void 0?(e.onCancel?.(s),e.onClose("x")):e.onDismiss!==void 0?e.onDismiss("x"):e.onCancel?.(s),r||u(!1)},be=s=>{const i=s&&s.type==="keydown"?"esc":"mask";e.onClose!==void 0?(e.onCancel?.(s),e.onClose(i)):e.onDismiss!==void 0?e.onDismiss(i):e.onCancel?.(s),r||u(!1)},Ne=s=>{e.onSubmit?e.onSubmit(s):e.onOk?.(s),e.onClose?.("ok"),r||u(!1)},Oe=()=>{const s={sm:`${o}-sm`,md:`${o}-md`,lg:`${o}-lg`,auto:`${o}-auto`,fullScreen:`${o}-fullscreen`};if(!N)return Ee?s.fullScreen:s[l]},Re=()=>!l||l==="fullScreen"||l==="auto"?void 0:{sm:{width:430,maxHeight:118},md:{width:486,maxHeight:478},lg:{width:948,maxHeight:478}}[l],we=()=>O?`${o}-with-mask`:`${o}-without-mask`,Se=()=>({...ie,...ce}),Be=()=>{const{maxHeight:s,width:i}=Re()||{};return{maxHeight:b||s||"calc(100vh - 142px)",width:ue||i,height:b,...ae,...N}},je=()=>{if(ee)return null;if(h)return h;const s=fe&&t.jsxRuntimeExports.jsx(C.Button.IconButton,{onClick:ge,className:`${o}-close`,variant:"outlined",size:"small",children:X||t.jsxRuntimeExports.jsx(ze.Close,{className:`${o}-close-icon`})});return t.jsxRuntimeExports.jsxs(t.jsxRuntimeExports.Fragment,{children:[t.jsxRuntimeExports.jsx(Ke.default,{className:`${o}-title-text`,children:U}),s]})},De=()=>{if(!J)return null;const{okText:s,cancelText:i,okButtonProps:ye,cancelButtonProps:$e,confirmLoading:_e=!1}=e,He=t.jsxRuntimeExports.jsx(C.Button,{variant:"contained",size:"large",loading:_e,onClick:Ne,...ye,children:s??R({id:"ok"})}),K=[se&&t.jsxRuntimeExports.jsx(C.Button,{variant:"outlined",size:"large",onClick:pe,...$e,children:i??R({id:"cancel"})}),He],d=Z??Y;if(typeof d=="function"){const c=d(K);return t.jsxRuntimeExports.jsx(t.jsxRuntimeExports.Fragment,{children:Array.isArray(c)?c.map((x,Ge)=>t.jsxRuntimeExports.jsx(n.Fragment,{children:x},Ge)):c})}else if(d)return d;return t.jsxRuntimeExports.jsx(t.jsxRuntimeExports.Fragment,{children:K.map((c,x)=>t.jsxRuntimeExports.jsx(n.Fragment,{children:c},x))})},Me=P(e.wrapClassName,{[`${o}-centered`]:L}),Ae=P(e.className,`${V.$prefixCls}-scrollbar-small`,Oe(),we());return t.jsxRuntimeExports.jsx(qe,{...me,mask:O,visible:Ce,title:je(),footer:De(),style:Se(),bodyStyle:Be(),prefixCls:o,className:Ae,wrapClassName:Me,mousePosition:E,onClose:be,closable:!1,closeIcon:null,maskClosable:he||ne,keyboard:ke||te,focusTriggerAfterClose:ve,transitionName:`${o}-zoom`,maskTransitionName:`${o}-fade`,children:de})};exports.Confirm=Ie.Confirm;exports.Modal=W;exports.default=W;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/lib/Tooltip/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./index.css');const r=require("../_virtual/jsx-runtime.js"),
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./index.css');const r=require("../_virtual/jsx-runtime.js"),o=require("react"),Y=require("rc-tooltip"),a=require("./utils.js"),z=require("clsx"),x=require("../GlobalContext/constant.js"),U=require("../node_modules/@para-ui/icons/Forbid/index.js");;/* empty css */const u=o.forwardRef((e,P)=>{const[T,p]=o.useState(e.defaultVisible),d=o.useRef(null),b=o.useRef(null),[$,S]=o.useState([0,0]),v=o.useRef(!1);o.useEffect(()=>{("visible"in e||"open"in e)&&p(!!(e.visible??e.open))},[e.visible??e.open]),o.useEffect(()=>{process.env.NODE_ENV!=="production"&&!v.current&&Array.isArray(e.trigger)&&e.trigger.length===0&&(v.current=!0,console.warn("[Tooltip] `trigger=[]` 受控屏蔽写法已 deprecated,请改用 `visible={false}`(语义更清晰);v6 可能收紧 trigger 类型,提前迁移。"))},[e.trigger]);const m=()=>{const{title:t}=e;return!t&&t!==0},q=t=>{"visible"in e||"open"in e||p(m()?!1:t),m()||e.onVisibleChange?.(t)},y=()=>{const{builtinPlacements:t,autoAdjustOverflow:i}=e;return t||a.default({autoAdjustOverflow:i})},N=(t,i)=>{const l=y(),n=Object.keys(l).find(c=>l[c].points[0]===i.points[0]&&l[c].points[1]===i.points[1]);if(!n)return;const f=t.getBoundingClientRect(),s={top:"50%",left:"50%"};n.indexOf("top")>=0||n.indexOf("Bottom")>=0?s.top=`${f.height-(i.offset?.[1]||0)}px`:(n.indexOf("Top")>=0||n.indexOf("bottom")>=0)&&(s.top=`${-(i.offset?.[1]||0)}px`),n.indexOf("left")>=0||n.indexOf("Right")>=0?s.left=`${f.width-(i.offset?.[0]||0)}px`:(n.indexOf("right")>=0||n.indexOf("Left")>=0)&&(s.left=`${-(i.offset?.[0]||0)}px`),t.style.transformOrigin=`${s.left} ${s.top}`},V=t=>{if(d.current){const i=b.current?.popupRef?.current?.getElement()?.offsetHeight||0,l=i===0?60:30,{x:n,y:f,width:s}=d.current.getBoundingClientRect(),c=t.clientX-(n+s/2),X=t.clientY-f+i+l;setTimeout(()=>{S([-c,-X])})}},{prefixCls:D=`${x.$rcPrefixCls}-tooltip`,getPopupContainer:M,overlayClassName:A,overlayInnerStyle:W,overlayStyle:F,children:h,title:L,placement:_,isPopover:B,followCursor:R,maxWidth:C,disabled:g,showForbidIcon:I,...k}=e;let O=T;!("visible"in e||"open"in e)&&m()&&(O=!1);const w=o.useRef(!1);o.useEffect(()=>{process.env.NODE_ENV!=="production"&&g!==void 0&&!w.current&&(w.current=!0,console.warn("[Tooltip] disabled 已 @deprecated → 请改用 showForbidIcon(自描述命名,对齐业界)。v5.x 仍 fallback 兼容,v6.0 移除。"))},[g]);const H=z(!B&&`${x.$prefixCls}-tooltip`,A),E={...F};C&&(E.maxWidth=C);const j={targetOffset:$};return e.offset&&(j.offset=e.offset),r.jsxRuntimeExports.jsx(Y,{...k,prefixCls:D,placement:R?"top":a.mapLegacyPlacement(_),overlayClassName:H,getTooltipContainer:M,ref:P||b,builtinPlacements:y(),overlay:r.jsxRuntimeExports.jsxs(r.jsxRuntimeExports.Fragment,{children:[(g||I)&&r.jsxRuntimeExports.jsx(U.Forbid,{className:"disabled-svg"}),L]}),visible:O,align:j,onVisibleChange:q,onPopupAlign:N,overlayStyle:E,overlayInnerStyle:W,arrowContent:null,motion:{motionName:`${x.$rcPrefixCls}-tooltip-zoom-big-fast`,motionDeadline:1e3},children:R?r.jsxRuntimeExports.jsx("div",{style:{display:"inline-block"},ref:d,onMouseMove:V,children:a.getDisabledCompatibleChildren(h)}):a.getDisabledCompatibleChildren(h)})});u.displayName="Tooltip";u.defaultProps={placement:"topLeft",mouseEnterDelay:.1,mouseLeaveDelay:.1,autoAdjustOverflow:!0,defaultVisible:!1,followCursor:!1,maxWidth:500};exports.Tooltip=u;exports.default=u;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@para-ui/core",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "5.0.0-beta.
|
|
4
|
+
"version": "5.0.0-beta.14",
|
|
5
5
|
"workspaces": [
|
|
6
6
|
"packages/eslint-plugin-para-ui"
|
|
7
7
|
],
|
|
@@ -22,7 +22,8 @@
|
|
|
22
22
|
"src/**/lang/*.ts",
|
|
23
23
|
"AGENTS.md",
|
|
24
24
|
"skills/**/*",
|
|
25
|
-
"ai-workflows/**/*"
|
|
25
|
+
"ai-workflows/**/*",
|
|
26
|
+
"codemods/**/*"
|
|
26
27
|
],
|
|
27
28
|
"description": "Powered by Para FED",
|
|
28
29
|
"author": "HKLMTT",
|