@robot-admin/naive-ui-components 0.17.0 → 0.17.2
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/CHANGELOG.md +31 -0
- package/README.md +12 -11
- package/README_EN.md +1 -0
- package/dist/C_AntV.css +105 -105
- package/dist/C_AntV2.cjs +3 -3
- package/dist/C_AntV2.js +3 -3
- package/dist/C_AudioPlayer.css +53 -53
- package/dist/C_AudioPlayer2.cjs +1 -1
- package/dist/C_AudioPlayer2.js +1 -1
- package/dist/C_Barcode.css +6 -6
- package/dist/C_Barcode2.cjs +1 -1
- package/dist/C_Barcode2.js +1 -1
- package/dist/C_Chat.css +269 -185
- package/dist/C_Chat2.cjs +1 -1
- package/dist/C_Chat2.js +1 -1
- package/dist/C_Code.css +26 -26
- package/dist/C_Code2.cjs +1 -1
- package/dist/C_Code2.js +1 -1
- package/dist/C_Draggable2.cjs +1 -1
- package/dist/C_Draggable2.js +1 -1
- package/dist/C_FilePreview.css +96 -57
- package/dist/C_FilePreview2.cjs +1 -1
- package/dist/C_FilePreview2.js +1 -1
- package/dist/C_FullCalendar.css +10 -11
- package/dist/C_FullCalendar2.cjs +1 -1
- package/dist/C_FullCalendar2.js +1 -1
- package/dist/C_GlobalSearch.css +140 -118
- package/dist/C_GlobalSearch2.cjs +1 -1
- package/dist/C_GlobalSearch2.js +1 -1
- package/dist/C_ImageCropper.css +10 -10
- package/dist/C_ImageCropper2.cjs +1 -1
- package/dist/C_ImageCropper2.js +1 -1
- package/dist/C_Login.css +79 -79
- package/dist/C_Login2.cjs +1 -1
- package/dist/C_Login2.js +1 -1
- package/dist/C_Map.css +10 -10
- package/dist/C_Map2.cjs +1 -1
- package/dist/C_Map2.js +1 -1
- package/dist/C_OrgChart.css +28 -4
- package/dist/C_OrgChart2.cjs +1 -1
- package/dist/C_OrgChart2.js +1 -1
- package/dist/C_QRCode2.cjs +1 -1
- package/dist/C_QRCode2.js +1 -1
- package/dist/C_Signature.css +15 -15
- package/dist/C_Signature2.cjs +1 -1
- package/dist/C_Signature2.js +1 -1
- package/dist/C_SplitPane.cjs +1 -1
- package/dist/C_SplitPane.css +231 -77
- package/dist/C_SplitPane.js +1 -1
- package/dist/C_SplitPane2.cjs +1 -1
- package/dist/C_SplitPane2.js +1 -1
- package/dist/C_Table.base.css +110 -117
- package/dist/C_Table.css +110 -117
- package/dist/C_Table.d.ts +1 -0
- package/dist/C_Tabs.css +18 -18
- package/dist/C_TagsView.css +51 -51
- package/dist/C_TagsView2.cjs +1 -1
- package/dist/C_TagsView2.js +1 -1
- package/dist/C_Transfer.css +93 -84
- package/dist/C_Transfer2.cjs +1 -1
- package/dist/C_Transfer2.js +1 -1
- package/dist/C_Tree.d.ts +1 -0
- package/dist/C_Upload.css +5 -5
- package/dist/C_Upload2.cjs +1 -1
- package/dist/C_Upload2.js +1 -1
- package/dist/C_VideoPlayer.css +20 -20
- package/dist/C_VideoPlayer2.cjs +4 -3
- package/dist/C_VideoPlayer2.js +4 -3
- package/dist/C_VtableGantt.css +44 -28
- package/dist/C_VtableGantt2.cjs +1 -1
- package/dist/C_VtableGantt2.js +1 -1
- package/dist/C_WaterFall.css +29 -29
- package/dist/C_WaterFall2.cjs +1 -1
- package/dist/C_WaterFall2.js +1 -1
- package/dist/C_WorkFlow.css +111 -111
- package/dist/C_WorkFlow2.cjs +1 -1
- package/dist/C_WorkFlow2.js +1 -1
- package/dist/constants3.d.cts +2 -2
- package/dist/constants3.d.ts +2 -2
- package/dist/constants4.d.cts +5 -5
- package/dist/constants4.d.ts +5 -5
- package/dist/constants5.d.cts +12 -15
- package/dist/constants5.d.ts +12 -15
- package/dist/data.d.cts +9 -9
- package/dist/data.d.ts +9 -9
- package/dist/data2.cjs +1 -1
- package/dist/data2.js +1 -1
- package/dist/helpers.cjs +1 -1
- package/dist/helpers.js +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.vue.d.cts +4 -4
- package/dist/index.vue.d.ts +4 -4
- package/dist/index10.vue.d.cts +2 -2
- package/dist/index10.vue.d.ts +2 -2
- package/dist/index11.vue.d.cts +2 -2
- package/dist/index11.vue.d.ts +5 -5
- package/dist/index12.vue.d.cts +5 -5
- package/dist/index13.vue.d.ts +1 -1
- package/dist/index14.vue.d.cts +1 -1
- package/dist/index14.vue.d.ts +5 -5
- package/dist/index15.vue.d.cts +5 -5
- package/dist/index15.vue.d.ts +1 -1
- package/dist/index16.vue.d.cts +1 -1
- package/dist/index16.vue.d.ts +1 -1
- package/dist/index17.vue.d.cts +1 -1
- package/dist/index17.vue.d.ts +1 -1
- package/dist/index18.vue.d.cts +1 -1
- package/dist/index18.vue.d.ts +4 -4
- package/dist/index19.vue.d.cts +4 -4
- package/dist/index19.vue.d.ts +2 -2
- package/dist/index2.vue.d.cts +3 -3
- package/dist/index2.vue.d.ts +3 -3
- package/dist/index20.vue.d.cts +5 -1
- package/dist/index20.vue.d.ts +5 -1
- package/dist/index21.vue.d.cts +2 -2
- package/dist/index21.vue.d.ts +2 -2
- package/dist/index22.vue.d.cts +2 -2
- package/dist/index22.vue.d.ts +2 -2
- package/dist/index23.vue.d.cts +2 -2
- package/dist/index23.vue.d.ts +2 -2
- package/dist/index25.vue.d.cts +9 -4
- package/dist/index25.vue.d.ts +9 -4
- package/dist/index27.vue.d.cts +2 -2
- package/dist/index27.vue.d.ts +2 -2
- package/dist/index28.vue.d.cts +6 -2
- package/dist/index28.vue.d.ts +6 -2
- package/dist/index3.vue.d.cts +4 -4
- package/dist/index3.vue.d.ts +4 -4
- package/dist/index4.vue.d.cts +2 -2
- package/dist/index6.vue.d.ts +8 -5
- package/dist/index7.vue.d.cts +8 -5
- package/dist/index8.vue.d.ts +4 -6
- package/dist/index9.vue.d.cts +4 -6
- package/dist/index9.vue.d.ts +2 -2
- package/dist/mapUtils.d.cts +4 -4
- package/dist/mapUtils.d.ts +4 -4
- package/dist/style.css +1559 -1219
- package/dist/useCalendarEvents.d.cts +10 -0
- package/dist/useCalendarEvents.d.ts +10 -0
- package/dist/useCropperCore.d.cts +10 -10
- package/dist/useCropperCore.d.ts +10 -10
- package/dist/useDraggableLayout.d.cts +16 -14
- package/dist/useDraggableLayout.d.ts +16 -14
- package/dist/useEdgeInteraction.d.cts +4 -2
- package/dist/useEdgeInteraction.d.ts +4 -2
- package/dist/useFullscreen.d.cts +9 -3
- package/dist/useFullscreen.d.ts +9 -3
- package/dist/useGlobalSearch.d.cts +9 -4
- package/dist/useGlobalSearch.d.ts +9 -4
- package/dist/useInfiniteScroll.d.cts +6 -3
- package/dist/useInfiniteScroll.d.ts +6 -3
- package/dist/useQRCode.d.cts +2 -2
- package/dist/useQRCode.d.ts +2 -2
- package/dist/useSearchState.d.cts +2 -2
- package/dist/useSearchState.d.ts +2 -2
- package/dist/useSignatureHistory.d.cts +5 -5
- package/dist/useSignatureHistory.d.ts +5 -5
- package/dist/useSplitResize.d.cts +3 -3
- package/dist/useSplitResize.d.ts +3 -3
- package/dist/useTableQuery.cjs +3 -3
- package/dist/useTableQuery.d.cts +15 -5
- package/dist/useTableQuery.d.ts +15 -5
- package/dist/useTableQuery.js +3 -3
- package/dist/useTimeSelection.d.cts +2 -2
- package/dist/useTimeSelection.d.ts +2 -2
- package/dist/useWorkflowValidation.d.cts +8 -3
- package/dist/useWorkflowValidation.d.ts +8 -3
- package/dist/verification.d.cts +2 -2
- package/dist/verification.d.ts +2 -2
- package/docs/component-review-20261019.md +55 -0
- package/docs/components.en.md +4 -0
- package/docs/components.md +4 -0
- package/docs/guides/runtime-performance.md +38 -0
- package/docs/guides/split-pane.en.md +4 -0
- package/docs/guides/split-pane.md +4 -0
- package/docs/guides/table-density.md +26 -0
- package/docs/guides/transfer.md +11 -0
- package/docs/runtime-review-20261019.md +41 -0
- package/package.json +4 -2
package/dist/C_Signature2.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./C_Icon2.js";import{t}from"./export-helper.js";import{computed as n,createCommentVNode as r,createElementBlock as i,createElementVNode as a,createTextVNode as o,createVNode as s,defineComponent as c,normalizeClass as l,normalizeStyle as u,onMounted as d,onUnmounted as f,openBlock as p,reactive as m,readonly as h,ref as g,shallowRef as _,toRef as v,unref as y,watch as b,withCtx as x}from"vue";import{NButton as S,NButtonGroup as ee,NColorPicker as te,NInputNumber as ne}from"naive-ui";function C(e){let{canvasRef:t,penConfig:n,mode:r,disabled:i,backgroundImage:a,importedImage:o,onStrokeComplete:s,onDrawStart:c,onDrawing:l}=e,u=g(!1),d=g([]),f=null,p=()=>{let e=t.value;if(!e||(f=e.getContext(`2d`,{willReadFrequently:!0}),!f))return;let n=window.devicePixelRatio||1,r=e.getBoundingClientRect();e.width=r.width*n,e.height=r.height*n,f.scale(n,n),f.lineCap=`round`,f.lineJoin=`round`},m=e=>{let n=t.value;if(!n)return{x:0,y:0};let r=n.getBoundingClientRect(),i,a;if(`touches`in e&&e.touches.length>0)({clientX:i,clientY:a}=e.touches[0]);else if(`clientX`in e)({clientX:i,clientY:a}=e);else return{x:0,y:0};return{x:i-r.left,y:a-r.top,timestamp:Date.now()}},_=(e,t,n,r=!1)=>{f&&(f.save(),r?(f.globalCompositeOperation=`destination-out`,f.lineWidth=20):(f.globalCompositeOperation=`source-over`,f.strokeStyle=n.color,f.lineWidth=n.width,f.globalAlpha=n.opacity),f.beginPath(),f.moveTo(e.x,e.y),f.lineTo(t.x,t.y),f.stroke(),f.restore())},v=e=>{if(i.value)return;e.preventDefault(),u.value=!0,d.value=[];let t=m(e);d.value.push(t),c()},y=e=>{if(!u.value||i.value)return;e.preventDefault();let t=m(e),a=d.value[d.value.length-1];a&&_(a,t,n.value,r.value===`eraser`),d.value.push(t),l(t)},b=e=>{!u.value||i.value||(e.preventDefault(),u.value=!1,d.value.length>0&&(s({points:[...d.value],color:n.value.color,width:n.value.width,opacity:n.value.opacity,mode:r.value}),d.value=[]))};return{isDrawing:h(u),initCanvas:p,bindEvents:()=>{let e=t.value;e&&(e.addEventListener(`mousedown`,v),e.addEventListener(`mousemove`,y),e.addEventListener(`mouseup`,b),e.addEventListener(`mouseleave`,b),e.addEventListener(`touchstart`,v,{passive:!1}),e.addEventListener(`touchmove`,y,{passive:!1}),e.addEventListener(`touchend`,b),e.addEventListener(`touchcancel`,b))},unbindEvents:()=>{let e=t.value;e&&(e.removeEventListener(`mousedown`,v),e.removeEventListener(`mousemove`,y),e.removeEventListener(`mouseup`,b),e.removeEventListener(`mouseleave`,b),e.removeEventListener(`touchstart`,v),e.removeEventListener(`touchmove`,y),e.removeEventListener(`touchend`,b),e.removeEventListener(`touchcancel`,b))},redrawStrokes:e=>{if(!f||!t.value)return;let n=t.value,{width:r,height:i}=n.getBoundingClientRect();f.clearRect(0,0,n.width,n.height),a?.value&&f.drawImage(a.value,0,0,r,i),o?.value&&f.drawImage(o.value,0,0,r,i),e.forEach(e=>{for(let t=1;t<e.points.length;t++)_(e.points[t-1],e.points[t],{color:e.color,width:e.width,opacity:e.opacity},e.mode===`eraser`)})},clearCanvas:()=>{!f||!t.value||f.clearRect(0,0,t.value.width,t.value.height)}}}const w=e=>e.map(e=>({...e,points:e.points.map(e=>({...e}))}));function T(e={}){let{onChange:t}=e,r=Math.max(2,Math.floor(e.maxHistory??50)),i=g([]),a=g([]),o=g(-1),s=n(()=>o.value>0),c=n(()=>o.value<a.value.length-1),l=e=>{i.value.push(w([e])[0]),u()},u=()=>{a.value=a.value.slice(0,o.value+1),a.value.push(w(i.value)),o.value++,a.value.length>r&&(a.value.shift(),o.value--),t?.(w(i.value))},d=()=>s.value?(o.value--,i.value=w(a.value[o.value]),t?.(w(i.value)),!0):!1,f=()=>c.value?(o.value++,i.value=w(a.value[o.value]),t?.(w(i.value)),!0):!1,p=()=>{i.value=[],a.value=[[]],o.value=0,t?.([])},m=e=>{i.value=w(e),a.value=[w(e)],o.value=0,t?.(w(i.value))},_=n(()=>i.value.length===0);return a.value=[[]],o.value=0,{strokes:h(i),canUndo:h(s),canRedo:h(c),isEmpty:h(_),addStroke:l,undo:d,redo:f,clear:p,loadData:m}}function E(e){let{canvasRef:t,watermark:n}=e,r=(e,t,n,r)=>{let i={"top-left":{x:10,y:n+10},"top-right":{x:e.width-t-10,y:n+10},"bottom-left":{x:10,y:e.height-10},"bottom-right":{x:e.width-t-10,y:e.height-10}};return i[r]||i[`bottom-right`]},i=(e,t)=>{let i=e.getContext(`2d`);if(!i||!n?.value)return;let a={fontSize:n.value.fontSize||12,color:n.value.color||`#999999`,position:n.value.position||`bottom-right`};i.save(),i.font=`${a.fontSize}px Arial`,i.fillStyle=a.color,i.textBaseline=`bottom`;let o=i.measureText(t).width,{x:s,y:c}=r(e,o,a.fontSize,a.position);i.fillText(t,s,c),i.restore()},a=(e,t,n)=>{let r=document.createElement(`canvas`);r.width=e.width,r.height=e.height;let i=r.getContext(`2d`);if(!i)throw Error(`无法创建临时 Canvas`);return t&&(i.fillStyle=n,i.fillRect(0,0,r.width,r.height)),i.drawImage(e,0,0),{canvas:r,ctx:i}},o=(e,t)=>{let{includeBackground:r=!1,backgroundColor:o=`#FFFFFF`,includeWatermark:s=!1}=t,{canvas:c}=a(e,r,o);return s&&n?.value?.text&&i(c,n.value.text),c},s=(e,t)=>new Promise((n,r)=>{e.toBlob(e=>e?n(e):r(Error(`导出失败`)),`image/png`,t)}),c=e=>{let t=e.getContext(`2d`);if(!t)return!0;let{data:n}=t.getImageData(0,0,e.width,e.height);return!n.some(e=>e!==0)},l=async(e={})=>{let n=t.value;if(!n)throw Error(`Canvas 未初始化`);if(c(n))throw Error(`签名为空,请先签名后再导出`);let{format:r=`png`,quality:i=.92}=e,a=o(n,{...e,includeBackground:e.includeBackground??r===`jpeg`});if(r===`blob`)return s(a,i);if(r===`svg`){let e=a.toDataURL(`image/png`),t=`<svg xmlns="http://www.w3.org/2000/svg" width="${a.width}" height="${a.height}" viewBox="0 0 ${a.width} ${a.height}"><image href="${e}" width="100%" height="100%"/></svg>`;return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(t)}`}let l=r===`jpeg`?`image/jpeg`:`image/png`;return a.toDataURL(l,i)};return{exportSignature:l,download:async(e=`signature`,t={})=>{let n=t.format||`png`,r=await l({...t,format:n});if(r instanceof Blob){let t=URL.createObjectURL(r),i=document.createElement(`a`);i.href=t,i.download=`${e}.${n===`blob`?`png`:n}`,document.body.appendChild(i),i.click(),i.remove(),setTimeout(()=>URL.revokeObjectURL(t),1e3)}else if(typeof r==`string`){let t=document.createElement(`a`);t.href=r,t.download=`${e}.${n}`,document.body.appendChild(t),t.click(),t.remove()}},loadImage:async e=>{let n=t.value;if(!n)throw Error(`Canvas 未初始化`);let r=n.getContext(`2d`);if(!r)throw Error(`无法获取 Canvas 上下文`);return new Promise((t,i)=>{let a=new Image;a.crossOrigin=`anonymous`,a.onload=()=>{r.clearRect(0,0,n.width,n.height),r.drawImage(a,0,0,n.width,n.height),t()},a.onerror=()=>i(Error(`图片加载失败: ${e}`)),a.src=e})}}}const re={color:`#000000`,width:2,opacity:1},ie={show:!1,text:``,fontSize:12,color:`#999999`,position:`bottom-right`},D=[`#000000`,`#FF0000`,`#0000FF`,`#00AA00`,`#FF6600`,`#9900FF`],ae={class:`c-signature`},oe={key:0,class:`signature-toolbar`},se={class:`toolbar-section`},ce={key:0,class:`toolbar-section`},le={key:1,class:`toolbar-section`},ue={class:`toolbar-section`},O={class:`toolbar-section`},de={key:0,class:`canvas-placeholder`};var k=t(c({name:`C_Signature`,__name:`index`,props:{width:{default:`100%`},height:{default:300},penConfig:{},eraserConfig:{},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},backgroundImage:{},backgroundColor:{},watermark:{},showToolbar:{type:Boolean,default:!0},maxHistory:{default:50}},emits:[`start-draw`,`drawing`,`end-draw`,`clear`,`undo`,`redo`,`change`,`error`],setup(t,{expose:c,emit:h}){let w=t,k=h,A=g(null),j=g(null),M=_(null),N=_(null),P=n(()=>w.disabled||w.readonly),F=g(`pen`),I=m({...re,...w.penConfig}),fe=m({...ie,...w.watermark}),{strokes:L,canUndo:R,canRedo:z,isEmpty:B,addStroke:V,undo:pe,redo:me,clear:H,loadData:he}=T({maxHistory:w.maxHistory,onChange:e=>{W.redrawStrokes(e),k(`change`,e)}}),U=n(()=>B.value&&!N.value),W=C({canvasRef:A,penConfig:v(I),mode:F,disabled:P,backgroundImage:M,importedImage:N,onStrokeComplete:e=>{V(e),k(`end-draw`,e)},onDrawStart:()=>k(`start-draw`),onDrawing:e=>k(`drawing`,e)}),G=E({canvasRef:A,watermark:v(fe)}),K=()=>{let e=pe();return e&&k(`undo`),e},q=()=>{let e=me();return e&&k(`redo`),e},J=()=>{N.value=null,H(),k(`clear`)},ge=async e=>G.exportSignature(e),_e=async(e,t)=>G.download(e,t);function Y(e){return new Promise((t,n)=>{let r=new Image;r.crossOrigin=`anonymous`,r.onload=()=>t(r),r.onerror=()=>n(Error(`签名图片加载失败`)),r.src=e})}let X=0;async function Z(e){let t=++X;if(!e){M.value=null,W.redrawStrokes(L.value);return}let n=await Y(e);t===X&&(M.value=n,W.redrawStrokes(L.value))}let ve=async e=>{N.value=await Y(e),H()},ye=()=>L.value.map(e=>({...e,points:e.points.map(e=>({...e}))})),be=e=>{N.value=null,he(e)},xe=()=>U.value;d(()=>{W.initCanvas(),W.bindEvents(),typeof ResizeObserver<`u`&&j.value&&(Q=new ResizeObserver(()=>{W.initCanvas(),W.redrawStrokes(L.value)}),Q.observe(j.value)),Z(w.backgroundImage).catch($)});let Q=null;function $(e){k(`error`,e instanceof Error?e:Error(String(e)))}return b(()=>w.backgroundImage,e=>{Z(e).catch($)}),f(()=>{X++,Q?.disconnect(),W.unbindEvents()}),c({clear:J,undo:K,redo:q,export:ge,download:_e,loadImage:ve,getSignatureData:ye,loadSignatureData:be,isEmpty:xe}),(n,c)=>(p(),i(`div`,ae,[t.showToolbar?(p(),i(`div`,oe,[a(`div`,se,[s(y(ee),null,{default:x(()=>[s(y(S),{type:F.value===`pen`?`primary`:`default`,size:`small`,disabled:P.value,onClick:c[0]||=e=>F.value=`pen`},{icon:x(()=>[s(e,{name:`mdi:draw`,size:16,color:`currentColor`})]),default:x(()=>[c[4]||=o(` 画笔 `,-1)]),_:1},8,[`type`,`disabled`]),s(y(S),{type:F.value===`eraser`?`primary`:`default`,size:`small`,disabled:P.value,onClick:c[1]||=e=>F.value=`eraser`},{icon:x(()=>[s(e,{name:`mdi:eraser`,size:16,color:`currentColor`})]),default:x(()=>[c[5]||=o(` 橡皮擦 `,-1)]),_:1},8,[`type`,`disabled`])]),_:1})]),c[11]||=a(`div`,{class:`toolbar-section divider`},null,-1),F.value===`pen`?(p(),i(`div`,ce,[c[6]||=a(`span`,{class:`section-label`},`颜色`,-1),s(y(te),{value:I.color,"onUpdate:value":c[2]||=e=>I.color=e,"show-alpha":!1,disabled:P.value,size:`small`,swatches:y(D)},null,8,[`value`,`disabled`,`swatches`])])):r(`v-if`,!0),F.value===`pen`?(p(),i(`div`,le,[c[7]||=a(`span`,{class:`section-label`},`粗细`,-1),s(y(ne),{value:I.width,"onUpdate:value":c[3]||=e=>I.width=e,min:1,max:20,disabled:P.value,size:`small`,style:{width:`80px`}},null,8,[`value`,`disabled`])])):r(`v-if`,!0),c[12]||=a(`div`,{class:`toolbar-section divider`},null,-1),a(`div`,ue,[s(y(S),{size:`small`,disabled:P.value||!y(R),onClick:K},{icon:x(()=>[s(e,{name:`mdi:undo`,size:16,color:`currentColor`})]),default:x(()=>[c[8]||=o(` 撤销 `,-1)]),_:1},8,[`disabled`]),s(y(S),{size:`small`,disabled:P.value||!y(z),onClick:q},{icon:x(()=>[s(e,{name:`mdi:redo`,size:16,color:`currentColor`})]),default:x(()=>[c[9]||=o(` 重做 `,-1)]),_:1},8,[`disabled`])]),c[13]||=a(`div`,{class:`toolbar-section divider`},null,-1),a(`div`,O,[s(y(S),{size:`small`,type:`error`,disabled:P.value||U.value,onClick:J},{icon:x(()=>[s(e,{name:`mdi:delete-outline`,size:16,color:`currentColor`})]),default:x(()=>[c[10]||=o(` 清空 `,-1)]),_:1},8,[`disabled`])])])):r(`v-if`,!0),a(`div`,{ref_key:`canvasWrapperRef`,ref:j,class:l([`signature-canvas-wrapper`,{disabled:t.disabled,readonly:t.readonly}]),style:u({width:typeof t.width==`number`?`${t.width}px`:t.width,height:typeof t.height==`number`?`${t.height}px`:t.height,backgroundColor:t.backgroundColor||`transparent`})},[a(`canvas`,{ref_key:`canvasRef`,ref:A,class:l([`signature-canvas`,{disabled:t.disabled,readonly:t.readonly}])},null,2),U.value&&!t.disabled&&!t.readonly?(p(),i(`div`,de,` 请在此处签名 `)):r(`v-if`,!0)],6)]))}}),[[`__scopeId`,`data-v-66ce1727`]]);export{C as i,E as n,T as r,k as t};
|
|
1
|
+
import{t as e}from"./C_Icon2.js";import{t}from"./export-helper.js";import{computed as n,createCommentVNode as r,createElementBlock as i,createElementVNode as a,createTextVNode as o,createVNode as s,defineComponent as c,normalizeClass as l,normalizeStyle as u,onMounted as d,onUnmounted as f,openBlock as p,reactive as m,readonly as h,ref as g,shallowRef as _,toRef as v,unref as y,watch as b,withCtx as x}from"vue";import{NButton as S,NButtonGroup as ee,NColorPicker as C,NInputNumber as te}from"naive-ui";function w(e){let{canvasRef:t,penConfig:n,mode:r,disabled:i,backgroundImage:a,importedImage:o,onStrokeComplete:s,onDrawStart:c,onDrawing:l}=e,u=g(!1),d=g([]),f=null,p=()=>{let e=t.value;if(!e||(f=e.getContext(`2d`,{willReadFrequently:!0}),!f))return;let n=window.devicePixelRatio||1,r=e.getBoundingClientRect();e.width=r.width*n,e.height=r.height*n,f.scale(n,n),f.lineCap=`round`,f.lineJoin=`round`},m=e=>{let n=t.value;if(!n)return{x:0,y:0};let r=n.getBoundingClientRect(),i,a;if(`touches`in e&&e.touches.length>0)({clientX:i,clientY:a}=e.touches[0]);else if(`clientX`in e)({clientX:i,clientY:a}=e);else return{x:0,y:0};return{x:i-r.left,y:a-r.top,timestamp:Date.now()}},_=(e,t,n,r=!1)=>{f&&(f.save(),r?(f.globalCompositeOperation=`destination-out`,f.lineWidth=20):(f.globalCompositeOperation=`source-over`,f.strokeStyle=n.color,f.lineWidth=n.width,f.globalAlpha=n.opacity),f.beginPath(),f.moveTo(e.x,e.y),f.lineTo(t.x,t.y),f.stroke(),f.restore())},v=e=>{if(i.value)return;e.preventDefault(),u.value=!0,d.value=[];let t=m(e);d.value.push(t),c()},y=e=>{if(!u.value||i.value)return;e.preventDefault();let t=m(e),a=d.value[d.value.length-1];a&&_(a,t,n.value,r.value===`eraser`),d.value.push(t),l(t)},b=e=>{!u.value||i.value||(e.preventDefault(),u.value=!1,d.value.length>0&&(s({points:[...d.value],color:n.value.color,width:n.value.width,opacity:n.value.opacity,mode:r.value}),d.value=[]))};return{isDrawing:h(u),initCanvas:p,bindEvents:()=>{let e=t.value;e&&(e.addEventListener(`mousedown`,v),e.addEventListener(`mousemove`,y),e.addEventListener(`mouseup`,b),e.addEventListener(`mouseleave`,b),e.addEventListener(`touchstart`,v,{passive:!1}),e.addEventListener(`touchmove`,y,{passive:!1}),e.addEventListener(`touchend`,b),e.addEventListener(`touchcancel`,b))},unbindEvents:()=>{let e=t.value;e&&(e.removeEventListener(`mousedown`,v),e.removeEventListener(`mousemove`,y),e.removeEventListener(`mouseup`,b),e.removeEventListener(`mouseleave`,b),e.removeEventListener(`touchstart`,v),e.removeEventListener(`touchmove`,y),e.removeEventListener(`touchend`,b),e.removeEventListener(`touchcancel`,b))},redrawStrokes:e=>{if(!f||!t.value)return;let n=t.value,{width:r,height:i}=n.getBoundingClientRect();f.clearRect(0,0,n.width,n.height),a?.value&&f.drawImage(a.value,0,0,r,i),o?.value&&f.drawImage(o.value,0,0,r,i),e.forEach(e=>{for(let t=1;t<e.points.length;t++)_(e.points[t-1],e.points[t],{color:e.color,width:e.width,opacity:e.opacity},e.mode===`eraser`)})},clearCanvas:()=>{!f||!t.value||f.clearRect(0,0,t.value.width,t.value.height)}}}const T=e=>e.map(e=>({...e,points:e.points.map(e=>({...e}))}));function E(e={}){let{onChange:t}=e,r=Math.max(2,Math.floor(e.maxHistory??50)),i=g([]),a=g([]),o=g(-1),s=n(()=>o.value>0),c=n(()=>o.value<a.value.length-1),l=e=>{i.value.push(T([e])[0]),u()},u=()=>{a.value=a.value.slice(0,o.value+1),a.value.push(T(i.value)),o.value++,a.value.length>r&&(a.value.shift(),o.value--),t?.(T(i.value))},d=()=>s.value?(o.value--,i.value=T(a.value[o.value]),t?.(T(i.value)),!0):!1,f=()=>c.value?(o.value++,i.value=T(a.value[o.value]),t?.(T(i.value)),!0):!1,p=()=>{i.value=[],a.value=[[]],o.value=0,t?.([])},m=e=>{i.value=T(e),a.value=[T(e)],o.value=0,t?.(T(i.value))},_=n(()=>i.value.length===0);return a.value=[[]],o.value=0,{strokes:h(i),canUndo:h(s),canRedo:h(c),isEmpty:h(_),addStroke:l,undo:d,redo:f,clear:p,loadData:m}}function D(e){let{canvasRef:t,watermark:n}=e,r=(e,t,n,r)=>{let i={"top-left":{x:10,y:n+10},"top-right":{x:e.width-t-10,y:n+10},"bottom-left":{x:10,y:e.height-10},"bottom-right":{x:e.width-t-10,y:e.height-10}};return i[r]||i[`bottom-right`]},i=(e,t)=>{let i=e.getContext(`2d`);if(!i||!n?.value)return;let a={fontSize:n.value.fontSize||12,color:n.value.color||`#999999`,position:n.value.position||`bottom-right`};i.save(),i.font=`${a.fontSize}px Arial`,i.fillStyle=a.color,i.textBaseline=`bottom`;let o=i.measureText(t).width,{x:s,y:c}=r(e,o,a.fontSize,a.position);i.fillText(t,s,c),i.restore()},a=(e,t,n)=>{let r=document.createElement(`canvas`);r.width=e.width,r.height=e.height;let i=r.getContext(`2d`);if(!i)throw Error(`无法创建临时 Canvas`);return t&&(i.fillStyle=n,i.fillRect(0,0,r.width,r.height)),i.drawImage(e,0,0),{canvas:r,ctx:i}},o=(e,t)=>{let{includeBackground:r=!1,backgroundColor:o=`#FFFFFF`,includeWatermark:s=!1}=t,{canvas:c}=a(e,r,o);return s&&n?.value?.text&&i(c,n.value.text),c},s=(e,t)=>new Promise((n,r)=>{e.toBlob(e=>e?n(e):r(Error(`导出失败`)),`image/png`,t)}),c=e=>{let t=e.getContext(`2d`);if(!t)return!0;let{data:n}=t.getImageData(0,0,e.width,e.height);return!n.some(e=>e!==0)},l=async(e={})=>{let n=t.value;if(!n)throw Error(`Canvas 未初始化`);if(c(n))throw Error(`签名为空,请先签名后再导出`);let{format:r=`png`,quality:i=.92}=e,a=o(n,{...e,includeBackground:e.includeBackground??r===`jpeg`});if(r===`blob`)return s(a,i);if(r===`svg`){let e=a.toDataURL(`image/png`),t=`<svg xmlns="http://www.w3.org/2000/svg" width="${a.width}" height="${a.height}" viewBox="0 0 ${a.width} ${a.height}"><image href="${e}" width="100%" height="100%"/></svg>`;return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(t)}`}let l=r===`jpeg`?`image/jpeg`:`image/png`;return a.toDataURL(l,i)};return{exportSignature:l,download:async(e=`signature`,t={})=>{let n=t.format||`png`,r=await l({...t,format:n});if(r instanceof Blob){let t=URL.createObjectURL(r),i=document.createElement(`a`);i.href=t,i.download=`${e}.${n===`blob`?`png`:n}`,document.body.appendChild(i),i.click(),i.remove(),setTimeout(()=>URL.revokeObjectURL(t),1e3)}else if(typeof r==`string`){let t=document.createElement(`a`);t.href=r,t.download=`${e}.${n}`,document.body.appendChild(t),t.click(),t.remove()}},loadImage:async e=>{let n=t.value;if(!n)throw Error(`Canvas 未初始化`);let r=n.getContext(`2d`);if(!r)throw Error(`无法获取 Canvas 上下文`);return new Promise((t,i)=>{let a=new Image;a.crossOrigin=`anonymous`,a.onload=()=>{r.clearRect(0,0,n.width,n.height),r.drawImage(a,0,0,n.width,n.height),t()},a.onerror=()=>i(Error(`图片加载失败: ${e}`)),a.src=e})}}}const ne={color:`#000000`,width:2,opacity:1},re={show:!1,text:``,fontSize:12,color:`#999999`,position:`bottom-right`},ie=[`#000000`,`#FF0000`,`#0000FF`,`#00AA00`,`#FF6600`,`#9900FF`],ae={class:`c-signature`},O={key:0,class:`signature-toolbar`},oe={class:`toolbar-section`},se={key:0,class:`toolbar-section`},ce={key:1,class:`toolbar-section`},le={class:`toolbar-section`},ue={class:`toolbar-section`},de={key:0,class:`canvas-placeholder`};var k=t(c({name:`C_Signature`,__name:`index`,props:{width:{default:`100%`},height:{default:300},penConfig:{},eraserConfig:{},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},backgroundImage:{},backgroundColor:{},watermark:{},showToolbar:{type:Boolean,default:!0},maxHistory:{default:50}},emits:[`start-draw`,`drawing`,`end-draw`,`clear`,`undo`,`redo`,`change`,`error`],setup(t,{expose:c,emit:h}){let T=t,k=h,A=g(null),j=g(null),M=_(null),N=_(null),P=n(()=>T.disabled||T.readonly),F=0,I=!1,L=g(`pen`),R=m({...ne,...T.penConfig}),fe=m({...re,...T.watermark}),{strokes:z,canUndo:B,canRedo:pe,isEmpty:me,addStroke:V,undo:he,redo:ge,clear:H,loadData:_e}=E({maxHistory:T.maxHistory,onChange:e=>{W.redrawStrokes(e),k(`change`,e)}}),U=n(()=>me.value&&!N.value),W=w({canvasRef:A,penConfig:v(R),mode:L,disabled:P,backgroundImage:M,importedImage:N,onStrokeComplete:e=>{V(e),k(`end-draw`,e)},onDrawStart:()=>k(`start-draw`),onDrawing:e=>k(`drawing`,e)}),G=D({canvasRef:A,watermark:v(fe)}),K=()=>{let e=he();return e&&k(`undo`),e},q=()=>{let e=ge();return e&&k(`redo`),e},J=()=>{F++,N.value=null,H(),k(`clear`)},ve=async e=>G.exportSignature(e),ye=async(e,t)=>G.download(e,t);function Y(e){return new Promise((t,n)=>{let r=new Image;r.crossOrigin=`anonymous`,r.onload=()=>t(r),r.onerror=()=>n(Error(`签名图片加载失败`)),r.src=e})}let X=0;async function Z(e){let t=++X;if(!e){M.value=null,W.redrawStrokes(z.value);return}try{let n=await Y(e);if(I||t!==X)return;M.value=n,W.redrawStrokes(z.value)}catch(e){if(!I&&t===X)throw e}}let be=async e=>{if(I)return;let t=++F,n=await Y(e);I||t!==F||(N.value=n,H())},xe=()=>z.value.map(e=>({...e,points:e.points.map(e=>({...e}))})),Se=e=>{F++,N.value=null,_e(e)},Ce=()=>U.value;d(()=>{W.initCanvas(),W.bindEvents(),typeof ResizeObserver<`u`&&j.value&&(Q=new ResizeObserver(()=>{W.initCanvas(),W.redrawStrokes(z.value)}),Q.observe(j.value)),Z(T.backgroundImage).catch($)});let Q=null;function $(e){k(`error`,e instanceof Error?e:Error(String(e)))}return b(()=>T.backgroundImage,e=>{Z(e).catch($)}),f(()=>{I=!0,F++,X++,Q?.disconnect(),W.unbindEvents()}),c({clear:J,undo:K,redo:q,export:ve,download:ye,loadImage:be,getSignatureData:xe,loadSignatureData:Se,isEmpty:Ce}),(n,c)=>(p(),i(`div`,ae,[t.showToolbar?(p(),i(`div`,O,[a(`div`,oe,[s(y(ee),null,{default:x(()=>[s(y(S),{type:L.value===`pen`?`primary`:`default`,size:`small`,disabled:P.value,onClick:c[0]||=e=>L.value=`pen`},{icon:x(()=>[s(e,{name:`mdi:draw`,size:16,color:`currentColor`})]),default:x(()=>[c[4]||=o(` 画笔 `,-1)]),_:1},8,[`type`,`disabled`]),s(y(S),{type:L.value===`eraser`?`primary`:`default`,size:`small`,disabled:P.value,onClick:c[1]||=e=>L.value=`eraser`},{icon:x(()=>[s(e,{name:`mdi:eraser`,size:16,color:`currentColor`})]),default:x(()=>[c[5]||=o(` 橡皮擦 `,-1)]),_:1},8,[`type`,`disabled`])]),_:1})]),c[11]||=a(`div`,{class:`toolbar-section divider`},null,-1),L.value===`pen`?(p(),i(`div`,se,[c[6]||=a(`span`,{class:`section-label`},`颜色`,-1),s(y(C),{value:R.color,"onUpdate:value":c[2]||=e=>R.color=e,"show-alpha":!1,disabled:P.value,size:`small`,swatches:y(ie)},null,8,[`value`,`disabled`,`swatches`])])):r(`v-if`,!0),L.value===`pen`?(p(),i(`div`,ce,[c[7]||=a(`span`,{class:`section-label`},`粗细`,-1),s(y(te),{value:R.width,"onUpdate:value":c[3]||=e=>R.width=e,min:1,max:20,disabled:P.value,size:`small`,style:{width:`80px`}},null,8,[`value`,`disabled`])])):r(`v-if`,!0),c[12]||=a(`div`,{class:`toolbar-section divider`},null,-1),a(`div`,le,[s(y(S),{size:`small`,disabled:P.value||!y(B),onClick:K},{icon:x(()=>[s(e,{name:`mdi:undo`,size:16,color:`currentColor`})]),default:x(()=>[c[8]||=o(` 撤销 `,-1)]),_:1},8,[`disabled`]),s(y(S),{size:`small`,disabled:P.value||!y(pe),onClick:q},{icon:x(()=>[s(e,{name:`mdi:redo`,size:16,color:`currentColor`})]),default:x(()=>[c[9]||=o(` 重做 `,-1)]),_:1},8,[`disabled`])]),c[13]||=a(`div`,{class:`toolbar-section divider`},null,-1),a(`div`,ue,[s(y(S),{size:`small`,type:`error`,disabled:P.value||U.value,onClick:J},{icon:x(()=>[s(e,{name:`mdi:delete-outline`,size:16,color:`currentColor`})]),default:x(()=>[c[10]||=o(` 清空 `,-1)]),_:1},8,[`disabled`])])])):r(`v-if`,!0),a(`div`,{ref_key:`canvasWrapperRef`,ref:j,class:l([`signature-canvas-wrapper`,{disabled:t.disabled,readonly:t.readonly}]),style:u({width:typeof t.width==`number`?`${t.width}px`:t.width,height:typeof t.height==`number`?`${t.height}px`:t.height,backgroundColor:t.backgroundColor||`transparent`})},[a(`canvas`,{ref_key:`canvasRef`,ref:A,class:l([`signature-canvas`,{disabled:t.disabled,readonly:t.readonly}])},null,2),U.value&&!t.disabled&&!t.readonly?(p(),i(`div`,de,` 请在此处签名 `)):r(`v-if`,!0)],6)]))}}),[[`__scopeId`,`data-v-4ad3c383`]]);export{w as i,D as n,E as r,k as t};
|
package/dist/C_SplitPane.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`})
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./C_SplitPane2.cjs`);exports.C_SplitPane=e.t,exports.useSplitResize=e.n;
|
package/dist/C_SplitPane.css
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
:root{--c-primary: var(--primary-color, #2080f0);--c-primary-hover: var(--primary-color-hover, #4098fc);--c-primary-pressed: var(--primary-color-pressed, #1060c9);--c-success: var(--success-color, #18a058);--c-warning: var(--warning-color, #f0a020);--c-error: var(--error-color, #d03050);--c-info: var(--info-color, #2080f0);--c-bg-body: var(--body-color, #ffffff);--c-bg-card: var(--card-color, #ffffff);--c-bg-surface: var(--popover-color, #ffffff);--c-text-1: var(--text-color-1, #262626);--c-text-2: var(--text-color-2, #525252);--c-text-3: var(--text-color-3, #a3a3a3);--c-text-4: var(--text-color-4, #c0c0c0);--c-border: var(--border-color, #e5e7eb);--c-radius-sm: var(--border-radius-small, 4px);--c-radius: var(--border-radius, 6px);--c-transition-fast: 0.15s cubic-bezier(0.4, 0, 0.2, 1);--c-transition-base: 0.3s cubic-bezier(0.4, 0, 0.2, 1);--c-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.08);--c-shadow-md: 0 4px 6px rgba(0, 0, 0, 0.1);--c-shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.1)}
|
|
2
2
|
|
|
3
|
-
.c-split-pane[data-v-
|
|
3
|
+
.c-split-pane[data-v-ea8d0f77] {
|
|
4
4
|
display: flex;
|
|
5
5
|
width: 100%;
|
|
6
6
|
height: 100%;
|
|
@@ -9,21 +9,21 @@
|
|
|
9
9
|
overflow: hidden;
|
|
10
10
|
position: relative;
|
|
11
11
|
}
|
|
12
|
-
.c-split-pane--horizontal[data-v-
|
|
12
|
+
.c-split-pane--horizontal[data-v-ea8d0f77] {
|
|
13
13
|
flex-direction: row;
|
|
14
14
|
}
|
|
15
|
-
.c-split-pane--vertical[data-v-
|
|
15
|
+
.c-split-pane--vertical[data-v-ea8d0f77] {
|
|
16
16
|
flex-direction: column;
|
|
17
17
|
}
|
|
18
|
-
.c-split-pane--dragging > .split-panel > .split-panel__content[data-v-
|
|
18
|
+
.c-split-pane--dragging > .split-panel > .split-panel__content[data-v-ea8d0f77] {
|
|
19
19
|
pointer-events: none;
|
|
20
20
|
user-select: none;
|
|
21
21
|
}
|
|
22
|
-
.c-split-pane--disabled > .split-gutter[data-v-
|
|
22
|
+
.c-split-pane--disabled > .split-gutter[data-v-ea8d0f77] {
|
|
23
23
|
cursor: default;
|
|
24
24
|
opacity: 0.5;
|
|
25
25
|
}
|
|
26
|
-
.split-panel[data-v-
|
|
26
|
+
.split-panel[data-v-ea8d0f77] {
|
|
27
27
|
min-width: 0;
|
|
28
28
|
min-height: 0;
|
|
29
29
|
overflow: hidden;
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
display: flex;
|
|
32
32
|
flex-direction: column;
|
|
33
33
|
}
|
|
34
|
-
.split-panel__content[data-v-
|
|
34
|
+
.split-panel__content[data-v-ea8d0f77] {
|
|
35
35
|
width: 100%;
|
|
36
36
|
height: 100%;
|
|
37
37
|
min-width: 0;
|
|
@@ -39,7 +39,29 @@
|
|
|
39
39
|
overflow: auto;
|
|
40
40
|
overscroll-behavior: contain;
|
|
41
41
|
}
|
|
42
|
-
.split-gutter[data-v-
|
|
42
|
+
.split-gutter[data-v-ea8d0f77] {
|
|
43
|
+
--split-accent: var(--c-primary, var(--primary-color, #2080f0));
|
|
44
|
+
--split-surface: var(--c-bg-card, var(--card-color, #fff));
|
|
45
|
+
--split-border: var(--c-border, var(--border-color, #dfe3eb));
|
|
46
|
+
--split-text: var(--c-text-3, var(--text-color-3, #8b939e));
|
|
47
|
+
--split-handle-length: 80px;
|
|
48
|
+
--split-handle-thickness: 16px;
|
|
49
|
+
--split-button-size: 24px;
|
|
50
|
+
--split-control-gap: 6px;
|
|
51
|
+
--split-controls-length: var(--split-handle-length);
|
|
52
|
+
--split-line-color: color-mix(in srgb, var(--split-border) 75%, transparent);
|
|
53
|
+
--split-grip-border: color-mix(
|
|
54
|
+
in srgb,
|
|
55
|
+
var(--split-border) 88%,
|
|
56
|
+
var(--split-text)
|
|
57
|
+
);
|
|
58
|
+
--split-grip-shadow:
|
|
59
|
+
0 1px 2px rgb(15 23 42 / 7%), 0 3px 8px rgb(15 23 42 / 4%);
|
|
60
|
+
--split-grip-dot: color-mix(
|
|
61
|
+
in srgb,
|
|
62
|
+
var(--split-text) 72%,
|
|
63
|
+
var(--split-border)
|
|
64
|
+
);
|
|
43
65
|
position: relative;
|
|
44
66
|
display: flex;
|
|
45
67
|
align-items: center;
|
|
@@ -48,132 +70,264 @@
|
|
|
48
70
|
z-index: 1;
|
|
49
71
|
touch-action: none;
|
|
50
72
|
user-select: none;
|
|
51
|
-
background:
|
|
52
|
-
transition: background-color 0.16s ease;
|
|
73
|
+
background: transparent;
|
|
53
74
|
outline: none;
|
|
54
75
|
}
|
|
55
|
-
.
|
|
76
|
+
.split-gutter[data-v-ea8d0f77]::before {
|
|
77
|
+
content: "";
|
|
78
|
+
position: absolute;
|
|
79
|
+
background: var(--split-line-color);
|
|
80
|
+
pointer-events: none;
|
|
81
|
+
transition: background-color 0.16s ease;
|
|
82
|
+
}
|
|
83
|
+
.c-split-pane--horizontal > .split-gutter[data-v-ea8d0f77] {
|
|
56
84
|
cursor: col-resize;
|
|
57
85
|
}
|
|
58
|
-
.c-split-pane--
|
|
59
|
-
|
|
86
|
+
.c-split-pane--horizontal > .split-gutter[data-v-ea8d0f77]::before {
|
|
87
|
+
inset: 0 auto;
|
|
88
|
+
width: 1px;
|
|
60
89
|
}
|
|
61
|
-
.
|
|
62
|
-
|
|
90
|
+
.c-split-pane--vertical > .split-gutter[data-v-ea8d0f77] {
|
|
91
|
+
cursor: row-resize;
|
|
63
92
|
}
|
|
64
|
-
.split-gutter[data-v-
|
|
65
|
-
|
|
93
|
+
.c-split-pane--vertical > .split-gutter[data-v-ea8d0f77]::before {
|
|
94
|
+
inset: auto 0;
|
|
95
|
+
height: 1px;
|
|
66
96
|
}
|
|
67
|
-
.split-
|
|
97
|
+
.split-gutter__controls[data-v-ea8d0f77] {
|
|
98
|
+
position: absolute;
|
|
68
99
|
display: flex;
|
|
69
100
|
align-items: center;
|
|
70
101
|
justify-content: center;
|
|
102
|
+
gap: var(--split-control-gap);
|
|
71
103
|
pointer-events: none;
|
|
72
104
|
}
|
|
73
|
-
.split-
|
|
74
|
-
|
|
75
|
-
|
|
105
|
+
.split-gutter__controls--with-collapse[data-v-ea8d0f77] {
|
|
106
|
+
--split-controls-length: calc(
|
|
107
|
+
var(--split-handle-length) + var(--split-button-size) * 2 +
|
|
108
|
+
var(--split-control-gap) * 2
|
|
109
|
+
);
|
|
76
110
|
}
|
|
77
|
-
.c-split-pane--horizontal > .split-gutter .split-
|
|
111
|
+
.c-split-pane--horizontal > .split-gutter .split-gutter__controls[data-v-ea8d0f77] {
|
|
78
112
|
flex-direction: column;
|
|
113
|
+
width: var(--split-button-size);
|
|
114
|
+
height: min(var(--split-controls-length), 100% - 8px);
|
|
79
115
|
}
|
|
80
|
-
.c-split-pane--vertical > .split-gutter .split-
|
|
81
|
-
|
|
116
|
+
.c-split-pane--vertical > .split-gutter .split-gutter__controls[data-v-ea8d0f77] {
|
|
117
|
+
width: min(var(--split-controls-length), 100% - 8px);
|
|
118
|
+
height: var(--split-button-size);
|
|
82
119
|
}
|
|
83
|
-
.split-
|
|
120
|
+
.split-gutter__visual[data-v-ea8d0f77] {
|
|
121
|
+
display: flex;
|
|
122
|
+
align-items: center;
|
|
123
|
+
justify-content: center;
|
|
124
|
+
flex: 1 1 0;
|
|
125
|
+
box-sizing: border-box;
|
|
126
|
+
border: 1px solid var(--split-grip-border);
|
|
127
|
+
border-radius: 999px;
|
|
128
|
+
background: linear-gradient(180deg, color-mix(in srgb, var(--split-surface) 97%, #fff), color-mix(in srgb, var(--split-surface) 97%, var(--split-text)));
|
|
129
|
+
box-shadow: var(--split-grip-shadow), inset 0 1px 0 rgba(255, 255, 255, 0.25);
|
|
130
|
+
cursor: inherit;
|
|
131
|
+
pointer-events: auto;
|
|
132
|
+
transition: border-color 0.16s ease, box-shadow 0.16s ease;
|
|
133
|
+
}
|
|
134
|
+
.c-split-pane--horizontal > .split-gutter .split-gutter__visual[data-v-ea8d0f77] {
|
|
135
|
+
width: var(--split-handle-thickness);
|
|
136
|
+
min-height: 20px;
|
|
137
|
+
}
|
|
138
|
+
.c-split-pane--vertical > .split-gutter .split-gutter__visual[data-v-ea8d0f77] {
|
|
139
|
+
min-width: 20px;
|
|
140
|
+
height: var(--split-handle-thickness);
|
|
141
|
+
}
|
|
142
|
+
.split-gutter__dots[data-v-ea8d0f77] {
|
|
143
|
+
display: flex;
|
|
144
|
+
gap: 5px;
|
|
145
|
+
pointer-events: none;
|
|
146
|
+
}
|
|
147
|
+
.c-split-pane--horizontal > .split-gutter .split-gutter__dots[data-v-ea8d0f77] {
|
|
148
|
+
flex-direction: column;
|
|
149
|
+
}
|
|
150
|
+
.split-gutter__dot[data-v-ea8d0f77] {
|
|
84
151
|
width: 3px;
|
|
85
152
|
height: 3px;
|
|
86
153
|
border-radius: 50%;
|
|
87
|
-
background: var(--
|
|
154
|
+
background: var(--split-grip-dot);
|
|
155
|
+
box-shadow: 0 1px 0 rgba(255, 255, 255, 0.4);
|
|
88
156
|
transition: background-color 0.16s ease;
|
|
89
157
|
}
|
|
90
|
-
.split-
|
|
91
|
-
background: var(--c-bg-card, #fff);
|
|
92
|
-
}
|
|
93
|
-
.split-gutter__collapse-btn[data-v-7ce0c058] {
|
|
94
|
-
position: absolute;
|
|
158
|
+
.split-gutter__collapse-btn[data-v-ea8d0f77] {
|
|
95
159
|
display: flex;
|
|
96
160
|
align-items: center;
|
|
97
161
|
justify-content: center;
|
|
98
|
-
|
|
99
|
-
|
|
162
|
+
flex: 0 1 var(--split-button-size);
|
|
163
|
+
width: var(--split-button-size);
|
|
164
|
+
height: var(--split-button-size);
|
|
165
|
+
min-width: 14px;
|
|
166
|
+
min-height: 14px;
|
|
167
|
+
box-sizing: border-box;
|
|
100
168
|
padding: 0;
|
|
101
|
-
border: 1px solid var(--
|
|
102
|
-
border-radius:
|
|
103
|
-
background: var(--
|
|
104
|
-
color: var(--
|
|
169
|
+
border: 1px solid var(--split-border);
|
|
170
|
+
border-radius: 50%;
|
|
171
|
+
background: var(--split-surface);
|
|
172
|
+
color: var(--split-text);
|
|
173
|
+
box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
|
|
105
174
|
cursor: pointer;
|
|
106
175
|
opacity: 0;
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
.split-gutter:hover .split-gutter__collapse-btn[data-v-7ce0c058], .split-gutter:focus-within .split-gutter__collapse-btn[data-v-7ce0c058] {
|
|
111
|
-
opacity: 1;
|
|
176
|
+
visibility: hidden;
|
|
177
|
+
pointer-events: none;
|
|
178
|
+
transition: opacity 0.16s ease, border-color 0.16s ease, color 0.16s ease;
|
|
112
179
|
}
|
|
113
|
-
.split-gutter__collapse-btn[data-v-
|
|
114
|
-
color: var(--
|
|
180
|
+
.split-gutter__collapse-btn[data-v-ea8d0f77]:hover, .split-gutter__collapse-btn[data-v-ea8d0f77]:focus-visible {
|
|
181
|
+
color: var(--split-accent);
|
|
182
|
+
border-color: color-mix(in srgb, var(--split-accent) 55%, var(--split-border));
|
|
115
183
|
}
|
|
116
|
-
.split-gutter__collapse-btn[data-v-
|
|
117
|
-
outline: 2px solid var(--
|
|
184
|
+
.split-gutter__collapse-btn[data-v-ea8d0f77]:focus-visible {
|
|
185
|
+
outline: 2px solid var(--split-accent);
|
|
118
186
|
outline-offset: 2px;
|
|
119
187
|
}
|
|
120
|
-
.split-gutter__collapse-btn[data-v-
|
|
188
|
+
.split-gutter__collapse-btn[data-v-ea8d0f77]:disabled {
|
|
121
189
|
cursor: default;
|
|
122
190
|
}
|
|
123
|
-
.
|
|
124
|
-
|
|
125
|
-
|
|
191
|
+
.split-gutter__chevron[data-v-ea8d0f77] {
|
|
192
|
+
width: 14px;
|
|
193
|
+
height: 14px;
|
|
194
|
+
fill: none;
|
|
195
|
+
stroke: currentColor;
|
|
196
|
+
stroke-width: 1.6;
|
|
197
|
+
stroke-linecap: round;
|
|
198
|
+
stroke-linejoin: round;
|
|
199
|
+
pointer-events: none;
|
|
200
|
+
}
|
|
201
|
+
.split-gutter__collapse-btn--second .split-gutter__chevron[data-v-ea8d0f77] {
|
|
202
|
+
transform: rotate(180deg);
|
|
203
|
+
}
|
|
204
|
+
.c-split-pane--vertical > .split-gutter .split-gutter__collapse-btn--first .split-gutter__chevron[data-v-ea8d0f77] {
|
|
205
|
+
transform: rotate(90deg);
|
|
206
|
+
}
|
|
207
|
+
.c-split-pane--vertical > .split-gutter .split-gutter__collapse-btn--second .split-gutter__chevron[data-v-ea8d0f77] {
|
|
208
|
+
transform: rotate(270deg);
|
|
209
|
+
}
|
|
210
|
+
.c-split-pane--collapsed-first > .split-gutter .split-gutter__collapse-btn--first .split-gutter__chevron[data-v-ea8d0f77] {
|
|
211
|
+
transform: rotate(180deg);
|
|
212
|
+
}
|
|
213
|
+
.c-split-pane--collapsed-second > .split-gutter .split-gutter__collapse-btn--second .split-gutter__chevron[data-v-ea8d0f77] {
|
|
214
|
+
transform: none;
|
|
126
215
|
}
|
|
127
|
-
.c-split-pane--
|
|
128
|
-
|
|
216
|
+
.c-split-pane--vertical.c-split-pane--collapsed-first > .split-gutter .split-gutter__collapse-btn--first .split-gutter__chevron[data-v-ea8d0f77] {
|
|
217
|
+
transform: rotate(270deg);
|
|
129
218
|
}
|
|
130
|
-
.c-split-pane--
|
|
131
|
-
|
|
219
|
+
.c-split-pane--vertical.c-split-pane--collapsed-second > .split-gutter .split-gutter__collapse-btn--second .split-gutter__chevron[data-v-ea8d0f77] {
|
|
220
|
+
transform: rotate(90deg);
|
|
132
221
|
}
|
|
133
|
-
.c-split-pane--
|
|
134
|
-
|
|
135
|
-
|
|
222
|
+
.c-split-pane:not(.c-split-pane--disabled) > .split-gutter[data-v-ea8d0f77]:hover, .c-split-pane:not(.c-split-pane--disabled) > .split-gutter[data-v-ea8d0f77]:focus-within {
|
|
223
|
+
--split-line-color: color-mix(
|
|
224
|
+
in srgb,
|
|
225
|
+
var(--split-accent) 28%,
|
|
226
|
+
var(--split-border)
|
|
227
|
+
);
|
|
228
|
+
--split-grip-border: color-mix(
|
|
229
|
+
in srgb,
|
|
230
|
+
var(--split-accent) 55%,
|
|
231
|
+
var(--split-border)
|
|
232
|
+
);
|
|
233
|
+
--split-grip-dot: var(--split-accent);
|
|
234
|
+
--split-grip-shadow:
|
|
235
|
+
0 1px 3px rgb(15 23 42 / 9%),
|
|
236
|
+
0 3px 12px color-mix(in srgb, var(--split-accent) 13%, transparent);
|
|
136
237
|
}
|
|
137
|
-
.c-split-pane--
|
|
138
|
-
|
|
238
|
+
.c-split-pane:not(.c-split-pane--disabled) > .split-gutter:hover .split-gutter__collapse-btn[data-v-ea8d0f77], .c-split-pane:not(.c-split-pane--disabled) > .split-gutter:focus-within .split-gutter__collapse-btn[data-v-ea8d0f77] {
|
|
239
|
+
opacity: 1;
|
|
240
|
+
visibility: visible;
|
|
241
|
+
pointer-events: auto;
|
|
242
|
+
}
|
|
243
|
+
.c-split-pane:not(.c-split-pane--disabled) > .split-gutter:focus-visible .split-gutter__visual[data-v-ea8d0f77] {
|
|
244
|
+
outline: 2px solid var(--split-accent);
|
|
245
|
+
outline-offset: 3px;
|
|
246
|
+
}
|
|
247
|
+
.c-split-pane--dragging:not(.c-split-pane--disabled) > .split-gutter[data-v-ea8d0f77] {
|
|
248
|
+
--split-line-color: color-mix(
|
|
249
|
+
in srgb,
|
|
250
|
+
var(--split-accent) 28%,
|
|
251
|
+
var(--split-border)
|
|
252
|
+
);
|
|
253
|
+
--split-grip-border: color-mix(
|
|
254
|
+
in srgb,
|
|
255
|
+
var(--split-accent) 55%,
|
|
256
|
+
var(--split-border)
|
|
257
|
+
);
|
|
258
|
+
--split-grip-dot: var(--split-accent);
|
|
259
|
+
--split-grip-shadow:
|
|
260
|
+
0 1px 3px rgb(15 23 42 / 9%),
|
|
261
|
+
0 3px 12px color-mix(in srgb, var(--split-accent) 13%, transparent);
|
|
262
|
+
}
|
|
263
|
+
.c-split-pane--collapsed-first > .split-gutter .split-gutter__collapse-btn[data-v-ea8d0f77],
|
|
264
|
+
.c-split-pane--collapsed-second > .split-gutter .split-gutter__collapse-btn[data-v-ea8d0f77] {
|
|
265
|
+
opacity: 1;
|
|
266
|
+
visibility: visible;
|
|
267
|
+
pointer-events: auto;
|
|
268
|
+
}
|
|
269
|
+
.c-split-pane--horizontal.c-split-pane--collapsed-first > .split-gutter .split-gutter__controls[data-v-ea8d0f77] {
|
|
270
|
+
left: 0;
|
|
271
|
+
}
|
|
272
|
+
.c-split-pane--horizontal.c-split-pane--collapsed-second > .split-gutter .split-gutter__controls[data-v-ea8d0f77] {
|
|
273
|
+
right: 0;
|
|
274
|
+
}
|
|
275
|
+
.c-split-pane--vertical.c-split-pane--collapsed-first > .split-gutter .split-gutter__controls[data-v-ea8d0f77] {
|
|
276
|
+
top: 0;
|
|
139
277
|
}
|
|
140
|
-
.c-split-pane--vertical > .split-gutter .split-
|
|
141
|
-
|
|
278
|
+
.c-split-pane--vertical.c-split-pane--collapsed-second > .split-gutter .split-gutter__controls[data-v-ea8d0f77] {
|
|
279
|
+
bottom: 0;
|
|
280
|
+
}
|
|
281
|
+
.c-split-pane--disabled > .split-gutter .split-gutter__visual[data-v-ea8d0f77] {
|
|
282
|
+
pointer-events: none;
|
|
283
|
+
box-shadow: none;
|
|
284
|
+
}
|
|
285
|
+
.c-split-pane--disabled > .split-gutter .split-gutter__collapse-btn[data-v-ea8d0f77] {
|
|
286
|
+
visibility: hidden;
|
|
287
|
+
pointer-events: none;
|
|
142
288
|
}
|
|
143
289
|
@media (hover: none), (pointer: coarse) {
|
|
144
|
-
.split-
|
|
290
|
+
.split-gutter[data-v-ea8d0f77] {
|
|
291
|
+
--split-handle-thickness: 24px;
|
|
292
|
+
--split-button-size: 28px;
|
|
293
|
+
}
|
|
294
|
+
.c-split-pane:not(.c-split-pane--disabled) > .split-gutter .split-gutter__collapse-btn[data-v-ea8d0f77] {
|
|
145
295
|
opacity: 1;
|
|
296
|
+
visibility: visible;
|
|
297
|
+
pointer-events: auto;
|
|
146
298
|
}
|
|
147
299
|
}
|
|
148
300
|
@media (prefers-reduced-motion: reduce) {
|
|
149
|
-
.split-gutter[data-v-
|
|
150
|
-
.split-
|
|
151
|
-
.split-
|
|
301
|
+
.split-gutter[data-v-ea8d0f77]::before,
|
|
302
|
+
.split-gutter__visual[data-v-ea8d0f77],
|
|
303
|
+
.split-gutter__dot[data-v-ea8d0f77],
|
|
304
|
+
.split-gutter__collapse-btn[data-v-ea8d0f77] {
|
|
152
305
|
transition: none;
|
|
153
306
|
}
|
|
154
307
|
}
|
|
155
308
|
|
|
156
309
|
/* layer: shortcuts */
|
|
157
|
-
.container[data-v-
|
|
310
|
+
.container[data-v-ea8d0f77]{width:100%;}
|
|
158
311
|
@media (min-width: 640px){
|
|
159
|
-
.container[data-v-
|
|
312
|
+
.container[data-v-ea8d0f77]{max-width:640px;}
|
|
160
313
|
}
|
|
161
314
|
@media (min-width: 768px){
|
|
162
|
-
.container[data-v-
|
|
315
|
+
.container[data-v-ea8d0f77]{max-width:768px;}
|
|
163
316
|
}
|
|
164
317
|
@media (min-width: 1024px){
|
|
165
|
-
.container[data-v-
|
|
318
|
+
.container[data-v-ea8d0f77]{max-width:1024px;}
|
|
166
319
|
}
|
|
167
320
|
@media (min-width: 1280px){
|
|
168
|
-
.container[data-v-
|
|
321
|
+
.container[data-v-ea8d0f77]{max-width:1280px;}
|
|
169
322
|
}
|
|
170
323
|
@media (min-width: 1536px){
|
|
171
|
-
.container[data-v-
|
|
324
|
+
.container[data-v-ea8d0f77]{max-width:1536px;}
|
|
172
325
|
}
|
|
173
326
|
/* layer: default */
|
|
174
|
-
.visible[data-v-
|
|
175
|
-
.
|
|
176
|
-
.
|
|
177
|
-
.
|
|
178
|
-
.
|
|
179
|
-
.
|
|
327
|
+
.visible[data-v-ea8d0f77]{visibility:visible;}
|
|
328
|
+
.m9\.5[data-v-ea8d0f77]{margin:2.375rem;}
|
|
329
|
+
.flex[data-v-ea8d0f77]{display:flex;}
|
|
330
|
+
.table[data-v-ea8d0f77]{display:table;}
|
|
331
|
+
.resize[data-v-ea8d0f77]{resize:both;}
|
|
332
|
+
.px[data-v-ea8d0f77]{padding-left:1rem;padding-right:1rem;}
|
|
333
|
+
.blur[data-v-ea8d0f77]{--un-blur:blur(8px);filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia);}
|
package/dist/C_SplitPane.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import{n as e,t}from"./C_SplitPane2.js";export{t as C_SplitPane,e as useSplitResize};
|
package/dist/C_SplitPane2.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`./chunk.cjs`);const e=require(`./C_Icon2.cjs`),t=require(`./export-helper.cjs`);let n=require(`vue`);const r=(e,t)=>typeof e==`number`&&Number.isFinite(e)?e:t,i=e=>Math.max(4,r(e,6));function a(e){let t=Math.max(0,Math.min(100,r(e.minSize,0))),n=Math.max(0,Math.min(100,r(e.maxSize,100))),i=Math.min(t,n),a=Math.max(t,n),o=Math.max(0,r(e.availableLength,0));if(!o)return{min:i,max:a};let s=Math.max(0,r(e.minFirstSize,0)),c=Math.max(0,r(e.minSecondSize,0)),l=Math.max(i,s/o*100),u=Math.min(a,100-c/o*100);if(l<=u)return{min:l,max:u};let d=s+c?s/(s+c)*100:50,f=Math.max(i,Math.min(a,d));return{min:f,max:f}}function o(e,t,n){return Math.min(n,Math.max(t,r(e,50)))}const s=new WeakMap;function c(e){return`button`in e&&e.button!==0?!1:!(`isPrimary`in e)||e.isPrimary}function l(e,t,n){if(!(`touches`in e))return t===`horizontal`?e.clientX:e.clientY;let r=n===void 0?e.touches[0]:Array.from(e.touches).find(e=>e.identifier===n);if(r)return t===`horizontal`?r.clientX:r.clientY}function u(e,t){return t===void 0||!(`pointerId`in e)?!0:e.pointerId===t}function d(e,t){let{style:n}=e.body,r=t===`horizontal`?`col-resize`:`row-resize`,i=[`cursor`,`user-select`].map(e=>({name:e,value:n.getPropertyValue(e),priority:n.getPropertyPriority(e),owned:e===`cursor`?r:`none`}));for(let e of i)n.setProperty(e.name,e.owned);return()=>{for(let e of i)n.getPropertyValue(e.name)===e.owned&&(e.value?n.setProperty(e.name,e.value,e.priority):n.removeProperty(e.name))}}function f(e){return`pointerId`in e?{move:[`pointermove`],end:[`pointerup`,`pointercancel`]}:`touches`in e?{move:[`touchmove`],end:[`touchend`,`touchcancel`]}:{move:[`mousemove`],end:[`mouseup`]}}function p(e,t){let n=l(e,t.direction);if(n===void 0)return;let r=t.element.ownerDocument,i=r.defaultView;s.get(r)?.();let a=d(r,t.direction),o=`pointerId`in e?e.pointerId:void 0,c=`touches`in e?e.touches[0]?.identifier:void 0,p=!0;e.preventDefault(),e.stopPropagation(),e.currentTarget?.focus();let m=e=>{if(!u(e,o))return;let r=l(e,t.direction,c);r!==void 0&&(e.cancelable&&e.preventDefault(),t.onDelta(r-n))},h=e=>{if(!(e&&!u(e,o))&&p){p=!1,a();for(let[e,t]of v)r.removeEventListener(e,t);i?.removeEventListener(`blur`,h),s.get(r)===h&&s.delete(r),t.onEnd()}},g=()=>{r.hidden&&h()},_=f(e),v=[..._.move.map(e=>[e,m]),..._.end.map(e=>[e,h]),[`visibilitychange`,g]];for(let[e,t]of v)r.addEventListener(e,t,{passive:!1});return i?.addEventListener(`blur`,h),s.set(r,h),h}function m(e){return e===0?`first`:e===100?`second`:null}function h(e,t,n,r,i){if(e===`Home`)return i.min;if(e===`End`)return i.max;let a=t===`horizontal`?`ArrowLeft`:`ArrowUp`,o=t===`horizontal`?`ArrowRight`:`ArrowDown`;if(e===a)return r-n;if(e===o)return r+n}function g(e){let{containerRef:t,direction:s,disabled:l,collapsible:u}=e,d=(0,n.ref)(0),f=(0,n.computed)(()=>i((0,n.toValue)(e.gutterSize))),g=(0,n.computed)(()=>Math.max(0,d.value-f.value)),_=(0,n.computed)(()=>a({minSize:(0,n.toValue)(e.minSize),maxSize:(0,n.toValue)(e.maxSize),minFirstSize:(0,n.toValue)(e.minFirstSize)??0,minSecondSize:(0,n.toValue)(e.minSecondSize)??0,availableLength:g.value})),v=(0,n.ref)(o((0,n.toValue)(e.defaultSize),_.value.min,_.value.max)),y=(0,n.computed)(()=>(0,n.toValue)(e.size)!==void 0),b=(0,n.computed)(()=>y.value?r((0,n.toValue)(e.size),50):v.value),x=(0,n.computed)(()=>u.value?b.value===0?`first`:b.value===100?`second`:null:null),S=(0,n.computed)(()=>x.value?x.value===`first`?0:100:o(b.value,_.value.min,_.value.max)),C=(0,n.ref)(!1),w=(0,n.computed)(()=>x.value===`first`),T=(0,n.computed)(()=>x.value===`second`),E=r((0,n.toValue)(e.defaultSize),50),D=x.value?o(E>0&&E<100?E:50,_.value.min,_.value.max):S.value,O,k,A=(t,n=!1)=>{if(!Number.isFinite(t))return;let r=n?t:o(t,_.value.min,_.value.max);r!==b.value&&(y.value||(v.value=r),e.onUpdateSize?.(r))};(0,n.watch)(S,(t,n)=>{let r=m(n),i=x.value;!r&&i&&(D=n),r&&r!==i&&e.onExpand?.(r),i&&i!==r&&e.onCollapse?.(i),e.onResize?.(t,100-t)},{flush:`sync`}),(0,n.watch)(_,()=>{x.value||A(S.value)},{flush:`sync`}),(0,n.watch)([l,s],()=>O?.(),{flush:`sync`}),(0,n.watch)(u,()=>{x.value||A(S.value)},{flush:`sync`});let j=()=>{let e=t.value;if(!e)return;let n=e.getBoundingClientRect();d.value=s.value===`horizontal`?n.width:n.height};(0,n.watch)(s,j,{flush:`post`}),(0,n.onMounted)(()=>{j(),typeof ResizeObserver<`u`&&t.value&&(k=new ResizeObserver(j),k.observe(t.value))});let M=(e=`first`)=>{!u.value||x.value===e||(x.value||(D=S.value),A(e===`first`?0:100,!0))},N=()=>{x.value&&A(D)},P=(e=`first`)=>{x.value===e?N():M(e)};return(0,n.onUnmounted)(()=>{O?.(),k?.disconnect()}),{panelSize:S,isDragging:C,collapsedTarget:x,isFirstCollapsed:w,isSecondCollapsed:T,bounds:_,gutterSize:f,handleMouseDown:n=>{if(l.value||C.value||!c(n))return;let r=t.value;if(!r||(j(),!g.value))return;let i=S.value;O=p(n,{element:r,direction:s.value,onDelta:e=>A(i+e/g.value*100),onEnd:()=>{C.value=!1,O=void 0,e.onDragEnd?.(S.value)}}),O&&(C.value=!0,e.onDragStart?.(S.value))},handleDoubleClick:()=>{l.value||P(`first`)},handleKeyDown:t=>{if(l.value||t.target!==t.currentTarget)return;if(t.key===`Enter`){u.value&&(t.preventDefault(),x.value?N():M(`first`));return}let i=Math.max(0,r((0,n.toValue)(e.step),2))||2,a=t.shiftKey?10:1,o=h(t.key,s.value,i*a,S.value,_.value);o!==void 0&&(t.preventDefault(),A(o))},collapse:M,expand:N,toggle:P,resetSize:()=>A(r((0,n.toValue)(e.defaultSize),50)),setSize:e=>A(e),getPanelInfo:()=>({first:{size:S.value,collapsed:w.value},second:{size:100-S.value,collapsed:T.value}})}}const _=[`aria-hidden`,`inert`],v={class:`split-panel__content`},y=[`aria-orientation`,`aria-valuenow`,`aria-valuemin`,`aria-valuemax`,`aria-disabled`,`aria-label`,`tabindex`],b={class:`split-gutter__visual`},x={class:`split-gutter__dots`},S=[`disabled`,`aria-label`,`aria-expanded`,`title`],C=[`disabled`,`aria-label`,`aria-expanded`,`title`],w=[`aria-hidden`,`inert`],T={class:`split-panel__content`},E=(0,n.defineComponent)({name:`C_SplitPane`,__name:`index`,props:{ariaLabel:{default:`调整面板大小`},direction:{default:`horizontal`},size:{},defaultSize:{default:50},minSize:{default:0},maxSize:{default:100},minFirstSize:{default:0},minSecondSize:{default:0},disabled:{type:Boolean,default:!1},collapsible:{type:Boolean,default:!0},showCollapseButton:{type:Boolean,default:!0},gutterSize:{default:6},step:{default:2}},emits:[`update:size`,`resize`,`collapse`,`expand`,`drag-start`,`drag-end`],setup(t,{expose:r,emit:i}){let a=t,o=i,s=(0,n.useId)(),c=`split-${s}-first`,l=`split-${s}-second`,u=(0,n.ref)(null),{panelSize:d,bounds:f,gutterSize:p,isDragging:m,isFirstCollapsed:h,isSecondCollapsed:E,handleMouseDown:D,handleDoubleClick:O,handleKeyDown:k,collapse:A,expand:j,toggle:M,resetSize:N,setSize:P,getPanelInfo:F}=g({containerRef:u,direction:(0,n.toRef)(a,`direction`),size:(0,n.toRef)(a,`size`),defaultSize:(0,n.toRef)(a,`defaultSize`),minSize:(0,n.toRef)(a,`minSize`),maxSize:(0,n.toRef)(a,`maxSize`),minFirstSize:(0,n.toRef)(a,`minFirstSize`),minSecondSize:(0,n.toRef)(a,`minSecondSize`),gutterSize:(0,n.toRef)(a,`gutterSize`),disabled:(0,n.toRef)(a,`disabled`),collapsible:(0,n.toRef)(a,`collapsible`),step:(0,n.toRef)(a,`step`),onUpdateSize:e=>o(`update:size`,e),onResize:(e,t)=>o(`resize`,e,t),onCollapse:e=>o(`collapse`,e),onExpand:e=>o(`expand`,e),onDragStart:e=>o(`drag-start`,e),onDragEnd:e=>o(`drag-end`,e)}),I=(0,n.computed)(()=>({flex:`${d.value} 1 0px`})),L=(0,n.computed)(()=>({flex:`${100-d.value} 1 0px`})),R=(0,n.computed)(()=>a.direction===`horizontal`?{width:`${p.value}px`}:{height:`${p.value}px`}),z=(0,n.computed)(()=>a.direction===`horizontal`?h.value?`mdi:chevron-right`:`mdi:chevron-left`:h.value?`mdi:chevron-down`:`mdi:chevron-up`),B=(0,n.computed)(()=>a.direction===`horizontal`?E.value?`mdi:chevron-left`:`mdi:chevron-right`:E.value?`mdi:chevron-up`:`mdi:chevron-down`);return r({collapse:A,expand:j,toggle:M,resetSize:N,getPanelInfo:F,setSize:P}),(r,i)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{ref_key:`containerRef`,ref:u,class:(0,n.normalizeClass)([`c-split-pane`,[`c-split-pane--${t.direction}`,{"c-split-pane--dragging":(0,n.unref)(m),"c-split-pane--disabled":t.disabled,"c-split-pane--collapsed-first":(0,n.unref)(h),"c-split-pane--collapsed-second":(0,n.unref)(E)}]])},[(0,n.createCommentVNode)(` 首面板 `),(0,n.createElementVNode)(`div`,{class:`split-panel split-panel--first`,id:c,style:(0,n.normalizeStyle)(I.value),"aria-hidden":(0,n.unref)(h)||void 0,inert:(0,n.unref)(h)},[(0,n.createElementVNode)(`div`,v,[(0,n.renderSlot)(r.$slots,`first`,{size:(0,n.unref)(d),collapsed:(0,n.unref)(h)},void 0,!0)])],12,_),(0,n.createCommentVNode)(` 分割线手柄 `),(0,n.createElementVNode)(`div`,{class:`split-gutter`,style:(0,n.normalizeStyle)(R.value),role:`separator`,"aria-orientation":t.direction===`horizontal`?`vertical`:`horizontal`,"aria-valuenow":(0,n.unref)(d),"aria-valuemin":(0,n.unref)(h)?0:(0,n.unref)(f).min,"aria-valuemax":(0,n.unref)(E)?100:(0,n.unref)(f).max,"aria-disabled":t.disabled||void 0,"aria-controls":c,"aria-label":t.ariaLabel,tabindex:t.disabled?-1:0,onPointerdown:i[6]||=(...e)=>(0,n.unref)(D)&&(0,n.unref)(D)(...e),onDblclick:i[7]||=(...e)=>(0,n.unref)(O)&&(0,n.unref)(O)(...e),onKeydown:i[8]||=(...e)=>(0,n.unref)(k)&&(0,n.unref)(k)(...e)},[(0,n.createElementVNode)(`div`,b,[(0,n.createElementVNode)(`div`,x,[((0,n.openBlock)(),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(3,e=>(0,n.createElementVNode)(`span`,{key:e,class:`split-gutter__dot`})),64))])]),(0,n.createCommentVNode)(` 折叠按钮 `),t.showCollapseButton&&t.collapsible?((0,n.openBlock)(),(0,n.createElementBlock)(n.Fragment,{key:0},[(0,n.createElementVNode)(`button`,{class:`split-gutter__collapse-btn split-gutter__collapse-btn--first`,type:`button`,disabled:t.disabled,"aria-label":(0,n.unref)(h)?`展开首面板`:`折叠首面板`,"aria-expanded":!(0,n.unref)(h),"aria-controls":c,title:(0,n.unref)(h)?`展开首面板`:`折叠首面板`,onClick:i[0]||=(0,n.withModifiers)(e=>(0,n.unref)(M)(`first`),[`stop`]),onPointerdown:i[1]||=(0,n.withModifiers)(()=>{},[`stop`]),onDblclick:i[2]||=(0,n.withModifiers)(()=>{},[`stop`])},[(0,n.createVNode)(e.t,{name:z.value,size:16,color:`currentColor`},null,8,[`name`])],40,S),(0,n.createElementVNode)(`button`,{class:`split-gutter__collapse-btn split-gutter__collapse-btn--second`,type:`button`,disabled:t.disabled,"aria-label":(0,n.unref)(E)?`展开第二面板`:`折叠第二面板`,"aria-expanded":!(0,n.unref)(E),"aria-controls":l,title:(0,n.unref)(E)?`展开第二面板`:`折叠第二面板`,onClick:i[3]||=(0,n.withModifiers)(e=>(0,n.unref)(M)(`second`),[`stop`]),onPointerdown:i[4]||=(0,n.withModifiers)(()=>{},[`stop`]),onDblclick:i[5]||=(0,n.withModifiers)(()=>{},[`stop`])},[(0,n.createVNode)(e.t,{name:B.value,size:16,color:`currentColor`},null,8,[`name`])],40,C)],64)):(0,n.createCommentVNode)(`v-if`,!0)],44,y),(0,n.createCommentVNode)(` 第二面板 `),(0,n.createElementVNode)(`div`,{class:`split-panel split-panel--second`,id:l,style:(0,n.normalizeStyle)(L.value),"aria-hidden":(0,n.unref)(E)||void 0,inert:(0,n.unref)(E)},[(0,n.createElementVNode)(`div`,T,[(0,n.renderSlot)(r.$slots,`second`,{size:100-(0,n.unref)(d),collapsed:(0,n.unref)(E)},void 0,!0)])],12,w)],2))}});var D=t.t(E,[[`__scopeId`,`data-v-7ce0c058`]]);Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return D}});
|
|
1
|
+
require(`./chunk.cjs`);const e=require(`./export-helper.cjs`);let t=require(`vue`);const n=(e,t)=>typeof e==`number`&&Number.isFinite(e)?e:t,r=e=>Math.max(4,n(e,6));function i(e){let t=Math.max(0,Math.min(100,n(e.minSize,0))),r=Math.max(0,Math.min(100,n(e.maxSize,100))),i=Math.min(t,r),a=Math.max(t,r),o=Math.max(0,n(e.availableLength,0));if(!o)return{min:i,max:a};let s=Math.max(0,n(e.minFirstSize,0)),c=Math.max(0,n(e.minSecondSize,0)),l=Math.max(i,s/o*100),u=Math.min(a,100-c/o*100);if(l<=u)return{min:l,max:u};let d=s+c?s/(s+c)*100:50,f=Math.max(i,Math.min(a,d));return{min:f,max:f}}function a(e,t,r){return Math.min(r,Math.max(t,n(e,50)))}const o=new WeakMap;function s(e){return`button`in e&&e.button!==0?!1:!(`isPrimary`in e)||e.isPrimary}function c(e,t,n){if(!(`touches`in e))return t===`horizontal`?e.clientX:e.clientY;let r=n===void 0?e.touches[0]:Array.from(e.touches).find(e=>e.identifier===n);if(r)return t===`horizontal`?r.clientX:r.clientY}function l(e,t){return t===void 0||!(`pointerId`in e)?!0:e.pointerId===t}function u(e,t){let{style:n}=e.body,r=t===`horizontal`?`col-resize`:`row-resize`,i=[`cursor`,`user-select`].map(e=>({name:e,value:n.getPropertyValue(e),priority:n.getPropertyPriority(e),owned:e===`cursor`?r:`none`}));for(let e of i)n.setProperty(e.name,e.owned);return()=>{for(let e of i)n.getPropertyValue(e.name)===e.owned&&(e.value?n.setProperty(e.name,e.value,e.priority):n.removeProperty(e.name))}}function d(e){return`pointerId`in e?{move:[`pointermove`],end:[`pointerup`,`pointercancel`]}:`touches`in e?{move:[`touchmove`],end:[`touchend`,`touchcancel`]}:{move:[`mousemove`],end:[`mouseup`]}}function f(e,t){let n=c(e,t.direction);if(n===void 0)return;let r=t.element.ownerDocument,i=r.defaultView;o.get(r)?.();let a=u(r,t.direction),s=`pointerId`in e?e.pointerId:void 0,f=`touches`in e?e.touches[0]?.identifier:void 0,p=!0;e.preventDefault(),e.stopPropagation(),e.currentTarget?.focus();let m=e=>{if(!l(e,s))return;let r=c(e,t.direction,f);r!==void 0&&(e.cancelable&&e.preventDefault(),t.onDelta(r-n))},h=e=>{if(!(e&&!l(e,s))&&p){p=!1,a();for(let[e,t]of v)r.removeEventListener(e,t);i?.removeEventListener(`blur`,h),o.get(r)===h&&o.delete(r),t.onEnd()}},g=()=>{r.hidden&&h()},_=d(e),v=[..._.move.map(e=>[e,m]),..._.end.map(e=>[e,h]),[`visibilitychange`,g]];for(let[e,t]of v)r.addEventListener(e,t,{passive:!1});return i?.addEventListener(`blur`,h),o.set(r,h),h}function p(e){return e===0?`first`:e===100?`second`:null}function m(e,t,n,r,i){if(e===`Home`)return i.min;if(e===`End`)return i.max;let a=t===`horizontal`?`ArrowLeft`:`ArrowUp`,o=t===`horizontal`?`ArrowRight`:`ArrowDown`;if(e===a)return r-n;if(e===o)return r+n}function h(e){let{containerRef:o,direction:c,disabled:l,collapsible:u}=e,d=(0,t.ref)(0),h=(0,t.computed)(()=>r((0,t.toValue)(e.gutterSize))),g=(0,t.computed)(()=>Math.max(0,d.value-h.value)),_=(0,t.computed)(()=>i({minSize:(0,t.toValue)(e.minSize),maxSize:(0,t.toValue)(e.maxSize),minFirstSize:(0,t.toValue)(e.minFirstSize)??0,minSecondSize:(0,t.toValue)(e.minSecondSize)??0,availableLength:g.value})),v=(0,t.ref)(a((0,t.toValue)(e.defaultSize),_.value.min,_.value.max)),y=(0,t.computed)(()=>(0,t.toValue)(e.size)!==void 0),b=(0,t.computed)(()=>y.value?n((0,t.toValue)(e.size),50):v.value),x=(0,t.computed)(()=>u.value?b.value===0?`first`:b.value===100?`second`:null:null),S=(0,t.computed)(()=>x.value?x.value===`first`?0:100:a(b.value,_.value.min,_.value.max)),C=(0,t.ref)(!1),w=(0,t.computed)(()=>x.value===`first`),T=(0,t.computed)(()=>x.value===`second`),E=n((0,t.toValue)(e.defaultSize),50),D=x.value?a(E>0&&E<100?E:50,_.value.min,_.value.max):S.value,O,k,A=(t,n=!1)=>{if(!Number.isFinite(t))return;let r=n?t:a(t,_.value.min,_.value.max);r!==b.value&&(y.value||(v.value=r),e.onUpdateSize?.(r))};(0,t.watch)(S,(t,n)=>{let r=p(n),i=x.value;!r&&i&&(D=n),r&&r!==i&&e.onExpand?.(r),i&&i!==r&&e.onCollapse?.(i),e.onResize?.(t,100-t)},{flush:`sync`}),(0,t.watch)(_,()=>{x.value||A(S.value)},{flush:`sync`}),(0,t.watch)([l,c],()=>O?.(),{flush:`sync`}),(0,t.watch)(u,()=>{x.value||A(S.value)},{flush:`sync`});let j=()=>{let e=o.value;if(!e)return;let t=e.getBoundingClientRect();d.value=c.value===`horizontal`?t.width:t.height};(0,t.watch)(c,j,{flush:`post`}),(0,t.onMounted)(()=>{j(),typeof ResizeObserver<`u`&&o.value&&(k=new ResizeObserver(j),k.observe(o.value))});let M=(e=`first`)=>{!u.value||x.value===e||(x.value||(D=S.value),A(e===`first`?0:100,!0))},N=()=>{x.value&&A(D)},P=(e=`first`)=>{x.value===e?N():M(e)};return(0,t.onUnmounted)(()=>{O?.(),k?.disconnect()}),{panelSize:S,isDragging:C,collapsedTarget:x,isFirstCollapsed:w,isSecondCollapsed:T,bounds:_,gutterSize:h,handleMouseDown:t=>{if(l.value||C.value||!s(t))return;let n=o.value;if(!n||(j(),!g.value))return;let r=S.value;O=f(t,{element:n,direction:c.value,onDelta:e=>A(r+e/g.value*100),onEnd:()=>{C.value=!1,O=void 0,e.onDragEnd?.(S.value)}}),O&&(C.value=!0,e.onDragStart?.(S.value))},handleDoubleClick:()=>{l.value||P(`first`)},handleKeyDown:r=>{if(l.value||r.target!==r.currentTarget)return;if(r.key===`Enter`){u.value&&(r.preventDefault(),x.value?N():M(`first`));return}let i=Math.max(0,n((0,t.toValue)(e.step),2))||2,a=r.shiftKey?10:1,o=m(r.key,c.value,i*a,S.value,_.value);o!==void 0&&(r.preventDefault(),A(o))},collapse:M,expand:N,toggle:P,resetSize:()=>A(n((0,t.toValue)(e.defaultSize),50)),setSize:e=>A(e),getPanelInfo:()=>({first:{size:S.value,collapsed:w.value},second:{size:100-S.value,collapsed:T.value}})}}const g=[`aria-hidden`,`inert`],_={class:`split-panel__content`},v=[`aria-orientation`,`aria-valuenow`,`aria-valuemin`,`aria-valuemax`,`aria-disabled`,`aria-label`,`tabindex`],y=[`disabled`,`aria-label`,`aria-expanded`,`title`],b={class:`split-gutter__visual`,"aria-hidden":`true`},x={class:`split-gutter__dots`},S=[`disabled`,`aria-label`,`aria-expanded`,`title`],C=[`aria-hidden`,`inert`],w={class:`split-panel__content`},T=(0,t.defineComponent)({name:`C_SplitPane`,__name:`index`,props:{ariaLabel:{default:`调整面板大小`},direction:{default:`horizontal`},size:{},defaultSize:{default:50},minSize:{default:0},maxSize:{default:100},minFirstSize:{default:0},minSecondSize:{default:0},disabled:{type:Boolean,default:!1},collapsible:{type:Boolean,default:!0},showCollapseButton:{type:Boolean,default:!0},gutterSize:{default:6},step:{default:2}},emits:[`update:size`,`resize`,`collapse`,`expand`,`drag-start`,`drag-end`],setup(e,{expose:n,emit:r}){let i=e,a=r,o=(0,t.useId)(),s=`split-${o}-first`,c=`split-${o}-second`,l=(0,t.ref)(null),{panelSize:u,bounds:d,gutterSize:f,isDragging:p,isFirstCollapsed:m,isSecondCollapsed:T,handleMouseDown:E,handleDoubleClick:D,handleKeyDown:O,collapse:k,expand:A,toggle:j,resetSize:M,setSize:N,getPanelInfo:P}=h({containerRef:l,direction:(0,t.toRef)(i,`direction`),size:(0,t.toRef)(i,`size`),defaultSize:(0,t.toRef)(i,`defaultSize`),minSize:(0,t.toRef)(i,`minSize`),maxSize:(0,t.toRef)(i,`maxSize`),minFirstSize:(0,t.toRef)(i,`minFirstSize`),minSecondSize:(0,t.toRef)(i,`minSecondSize`),gutterSize:(0,t.toRef)(i,`gutterSize`),disabled:(0,t.toRef)(i,`disabled`),collapsible:(0,t.toRef)(i,`collapsible`),step:(0,t.toRef)(i,`step`),onUpdateSize:e=>a(`update:size`,e),onResize:(e,t)=>a(`resize`,e,t),onCollapse:e=>a(`collapse`,e),onExpand:e=>a(`expand`,e),onDragStart:e=>a(`drag-start`,e),onDragEnd:e=>a(`drag-end`,e)}),F=(0,t.computed)(()=>({flex:`${u.value} 1 0px`})),I=(0,t.computed)(()=>({flex:`${100-u.value} 1 0px`})),L=(0,t.computed)(()=>i.direction===`horizontal`?{width:`${f.value}px`}:{height:`${f.value}px`});return n({collapse:k,expand:A,toggle:j,resetSize:M,getPanelInfo:P,setSize:N}),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{ref_key:`containerRef`,ref:l,class:(0,t.normalizeClass)([`c-split-pane`,[`c-split-pane--${e.direction}`,{"c-split-pane--dragging":(0,t.unref)(p),"c-split-pane--disabled":e.disabled,"c-split-pane--collapsed-first":(0,t.unref)(m),"c-split-pane--collapsed-second":(0,t.unref)(T)}]])},[(0,t.createCommentVNode)(` 首面板 `),(0,t.createElementVNode)(`div`,{class:`split-panel split-panel--first`,id:s,style:(0,t.normalizeStyle)(F.value),"aria-hidden":(0,t.unref)(m)||void 0,inert:(0,t.unref)(m)},[(0,t.createElementVNode)(`div`,_,[(0,t.renderSlot)(n.$slots,`first`,{size:(0,t.unref)(u),collapsed:(0,t.unref)(m)},void 0,!0)])],12,g),(0,t.createCommentVNode)(` 分割线手柄 `),(0,t.createElementVNode)(`div`,{class:`split-gutter`,style:(0,t.normalizeStyle)(L.value),role:`separator`,"aria-orientation":e.direction===`horizontal`?`vertical`:`horizontal`,"aria-valuenow":(0,t.unref)(u),"aria-valuemin":(0,t.unref)(m)?0:(0,t.unref)(d).min,"aria-valuemax":(0,t.unref)(T)?100:(0,t.unref)(d).max,"aria-disabled":e.disabled||void 0,"aria-controls":s,"aria-label":e.ariaLabel,tabindex:e.disabled?-1:0,onPointerdown:r[6]||=(...e)=>(0,t.unref)(E)&&(0,t.unref)(E)(...e),onDblclick:r[7]||=(...e)=>(0,t.unref)(D)&&(0,t.unref)(D)(...e),onKeydown:r[8]||=(...e)=>(0,t.unref)(O)&&(0,t.unref)(O)(...e)},[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`split-gutter__controls`,{"split-gutter__controls--with-collapse":e.showCollapseButton&&e.collapsible}])},[e.showCollapseButton&&e.collapsible?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:0,class:`split-gutter__collapse-btn split-gutter__collapse-btn--first`,type:`button`,disabled:e.disabled,"aria-label":(0,t.unref)(m)?`展开首面板`:`折叠首面板`,"aria-expanded":!(0,t.unref)(m),"aria-controls":s,title:(0,t.unref)(m)?`展开首面板`:`折叠首面板`,onClick:r[0]||=(0,t.withModifiers)(e=>(0,t.unref)(j)(`first`),[`stop`]),onPointerdown:r[1]||=(0,t.withModifiers)(()=>{},[`stop`]),onDblclick:r[2]||=(0,t.withModifiers)(()=>{},[`stop`])},[...r[9]||=[(0,t.createElementVNode)(`svg`,{class:`split-gutter__chevron`,viewBox:`0 0 16 16`,"aria-hidden":`true`,focusable:`false`},[(0,t.createElementVNode)(`path`,{d:`m9.5 4.5-3.5 3.5 3.5 3.5`})],-1)]],40,y)):(0,t.createCommentVNode)(`v-if`,!0),(0,t.createElementVNode)(`div`,b,[(0,t.createElementVNode)(`div`,x,[((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(3,e=>(0,t.createElementVNode)(`span`,{key:e,class:`split-gutter__dot`})),64))])]),e.showCollapseButton&&e.collapsible?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:1,class:`split-gutter__collapse-btn split-gutter__collapse-btn--second`,type:`button`,disabled:e.disabled,"aria-label":(0,t.unref)(T)?`展开第二面板`:`折叠第二面板`,"aria-expanded":!(0,t.unref)(T),"aria-controls":c,title:(0,t.unref)(T)?`展开第二面板`:`折叠第二面板`,onClick:r[3]||=(0,t.withModifiers)(e=>(0,t.unref)(j)(`second`),[`stop`]),onPointerdown:r[4]||=(0,t.withModifiers)(()=>{},[`stop`]),onDblclick:r[5]||=(0,t.withModifiers)(()=>{},[`stop`])},[...r[10]||=[(0,t.createElementVNode)(`svg`,{class:`split-gutter__chevron`,viewBox:`0 0 16 16`,"aria-hidden":`true`,focusable:`false`},[(0,t.createElementVNode)(`path`,{d:`m9.5 4.5-3.5 3.5 3.5 3.5`})],-1)]],40,S)):(0,t.createCommentVNode)(`v-if`,!0)],2)],44,v),(0,t.createCommentVNode)(` 第二面板 `),(0,t.createElementVNode)(`div`,{class:`split-panel split-panel--second`,id:c,style:(0,t.normalizeStyle)(I.value),"aria-hidden":(0,t.unref)(T)||void 0,inert:(0,t.unref)(T)},[(0,t.createElementVNode)(`div`,w,[(0,t.renderSlot)(n.$slots,`second`,{size:100-(0,t.unref)(u),collapsed:(0,t.unref)(T)},void 0,!0)])],12,C)],2))}});var E=e.t(T,[[`__scopeId`,`data-v-ea8d0f77`]]);Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return E}});
|
package/dist/C_SplitPane2.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./
|
|
1
|
+
import{t as e}from"./export-helper.js";import{Fragment as t,computed as n,createCommentVNode as r,createElementBlock as i,createElementVNode as a,defineComponent as o,normalizeClass as s,normalizeStyle as c,onMounted as l,onUnmounted as u,openBlock as d,ref as f,renderList as p,renderSlot as m,toRef as h,toValue as g,unref as _,useId as v,watch as y,withModifiers as b}from"vue";const x=(e,t)=>typeof e==`number`&&Number.isFinite(e)?e:t,S=e=>Math.max(4,x(e,6));function C(e){let t=Math.max(0,Math.min(100,x(e.minSize,0))),n=Math.max(0,Math.min(100,x(e.maxSize,100))),r=Math.min(t,n),i=Math.max(t,n),a=Math.max(0,x(e.availableLength,0));if(!a)return{min:r,max:i};let o=Math.max(0,x(e.minFirstSize,0)),s=Math.max(0,x(e.minSecondSize,0)),c=Math.max(r,o/a*100),l=Math.min(i,100-s/a*100);if(c<=l)return{min:c,max:l};let u=o+s?o/(o+s)*100:50,d=Math.max(r,Math.min(i,u));return{min:d,max:d}}function w(e,t,n){return Math.min(n,Math.max(t,x(e,50)))}const T=new WeakMap;function E(e){return`button`in e&&e.button!==0?!1:!(`isPrimary`in e)||e.isPrimary}function D(e,t,n){if(!(`touches`in e))return t===`horizontal`?e.clientX:e.clientY;let r=n===void 0?e.touches[0]:Array.from(e.touches).find(e=>e.identifier===n);if(r)return t===`horizontal`?r.clientX:r.clientY}function O(e,t){return t===void 0||!(`pointerId`in e)?!0:e.pointerId===t}function k(e,t){let{style:n}=e.body,r=t===`horizontal`?`col-resize`:`row-resize`,i=[`cursor`,`user-select`].map(e=>({name:e,value:n.getPropertyValue(e),priority:n.getPropertyPriority(e),owned:e===`cursor`?r:`none`}));for(let e of i)n.setProperty(e.name,e.owned);return()=>{for(let e of i)n.getPropertyValue(e.name)===e.owned&&(e.value?n.setProperty(e.name,e.value,e.priority):n.removeProperty(e.name))}}function A(e){return`pointerId`in e?{move:[`pointermove`],end:[`pointerup`,`pointercancel`]}:`touches`in e?{move:[`touchmove`],end:[`touchend`,`touchcancel`]}:{move:[`mousemove`],end:[`mouseup`]}}function j(e,t){let n=D(e,t.direction);if(n===void 0)return;let r=t.element.ownerDocument,i=r.defaultView;T.get(r)?.();let a=k(r,t.direction),o=`pointerId`in e?e.pointerId:void 0,s=`touches`in e?e.touches[0]?.identifier:void 0,c=!0;e.preventDefault(),e.stopPropagation(),e.currentTarget?.focus();let l=e=>{if(!O(e,o))return;let r=D(e,t.direction,s);r!==void 0&&(e.cancelable&&e.preventDefault(),t.onDelta(r-n))},u=e=>{if(!(e&&!O(e,o))&&c){c=!1,a();for(let[e,t]of p)r.removeEventListener(e,t);i?.removeEventListener(`blur`,u),T.get(r)===u&&T.delete(r),t.onEnd()}},d=()=>{r.hidden&&u()},f=A(e),p=[...f.move.map(e=>[e,l]),...f.end.map(e=>[e,u]),[`visibilitychange`,d]];for(let[e,t]of p)r.addEventListener(e,t,{passive:!1});return i?.addEventListener(`blur`,u),T.set(r,u),u}function M(e){return e===0?`first`:e===100?`second`:null}function N(e,t,n,r,i){if(e===`Home`)return i.min;if(e===`End`)return i.max;let a=t===`horizontal`?`ArrowLeft`:`ArrowUp`,o=t===`horizontal`?`ArrowRight`:`ArrowDown`;if(e===a)return r-n;if(e===o)return r+n}function P(e){let{containerRef:t,direction:r,disabled:i,collapsible:a}=e,o=f(0),s=n(()=>S(g(e.gutterSize))),c=n(()=>Math.max(0,o.value-s.value)),d=n(()=>C({minSize:g(e.minSize),maxSize:g(e.maxSize),minFirstSize:g(e.minFirstSize)??0,minSecondSize:g(e.minSecondSize)??0,availableLength:c.value})),p=f(w(g(e.defaultSize),d.value.min,d.value.max)),m=n(()=>g(e.size)!==void 0),h=n(()=>m.value?x(g(e.size),50):p.value),_=n(()=>a.value?h.value===0?`first`:h.value===100?`second`:null:null),v=n(()=>_.value?_.value===`first`?0:100:w(h.value,d.value.min,d.value.max)),b=f(!1),T=n(()=>_.value===`first`),D=n(()=>_.value===`second`),O=x(g(e.defaultSize),50),k=_.value?w(O>0&&O<100?O:50,d.value.min,d.value.max):v.value,A,P,F=(t,n=!1)=>{if(!Number.isFinite(t))return;let r=n?t:w(t,d.value.min,d.value.max);r!==h.value&&(m.value||(p.value=r),e.onUpdateSize?.(r))};y(v,(t,n)=>{let r=M(n),i=_.value;!r&&i&&(k=n),r&&r!==i&&e.onExpand?.(r),i&&i!==r&&e.onCollapse?.(i),e.onResize?.(t,100-t)},{flush:`sync`}),y(d,()=>{_.value||F(v.value)},{flush:`sync`}),y([i,r],()=>A?.(),{flush:`sync`}),y(a,()=>{_.value||F(v.value)},{flush:`sync`});let I=()=>{let e=t.value;if(!e)return;let n=e.getBoundingClientRect();o.value=r.value===`horizontal`?n.width:n.height};y(r,I,{flush:`post`}),l(()=>{I(),typeof ResizeObserver<`u`&&t.value&&(P=new ResizeObserver(I),P.observe(t.value))});let L=(e=`first`)=>{!a.value||_.value===e||(_.value||(k=v.value),F(e===`first`?0:100,!0))},R=()=>{_.value&&F(k)},z=(e=`first`)=>{_.value===e?R():L(e)};return u(()=>{A?.(),P?.disconnect()}),{panelSize:v,isDragging:b,collapsedTarget:_,isFirstCollapsed:T,isSecondCollapsed:D,bounds:d,gutterSize:s,handleMouseDown:n=>{if(i.value||b.value||!E(n))return;let a=t.value;if(!a||(I(),!c.value))return;let o=v.value;A=j(n,{element:a,direction:r.value,onDelta:e=>F(o+e/c.value*100),onEnd:()=>{b.value=!1,A=void 0,e.onDragEnd?.(v.value)}}),A&&(b.value=!0,e.onDragStart?.(v.value))},handleDoubleClick:()=>{i.value||z(`first`)},handleKeyDown:t=>{if(i.value||t.target!==t.currentTarget)return;if(t.key===`Enter`){a.value&&(t.preventDefault(),_.value?R():L(`first`));return}let n=Math.max(0,x(g(e.step),2))||2,o=t.shiftKey?10:1,s=N(t.key,r.value,n*o,v.value,d.value);s!==void 0&&(t.preventDefault(),F(s))},collapse:L,expand:R,toggle:z,resetSize:()=>F(x(g(e.defaultSize),50)),setSize:e=>F(e),getPanelInfo:()=>({first:{size:v.value,collapsed:T.value},second:{size:100-v.value,collapsed:D.value}})}}const F=[`aria-hidden`,`inert`],I={class:`split-panel__content`},L=[`aria-orientation`,`aria-valuenow`,`aria-valuemin`,`aria-valuemax`,`aria-disabled`,`aria-label`,`tabindex`],R=[`disabled`,`aria-label`,`aria-expanded`,`title`],z={class:`split-gutter__visual`,"aria-hidden":`true`},B={class:`split-gutter__dots`},V=[`disabled`,`aria-label`,`aria-expanded`,`title`],H=[`aria-hidden`,`inert`],U={class:`split-panel__content`};var W=e(o({name:`C_SplitPane`,__name:`index`,props:{ariaLabel:{default:`调整面板大小`},direction:{default:`horizontal`},size:{},defaultSize:{default:50},minSize:{default:0},maxSize:{default:100},minFirstSize:{default:0},minSecondSize:{default:0},disabled:{type:Boolean,default:!1},collapsible:{type:Boolean,default:!0},showCollapseButton:{type:Boolean,default:!0},gutterSize:{default:6},step:{default:2}},emits:[`update:size`,`resize`,`collapse`,`expand`,`drag-start`,`drag-end`],setup(e,{expose:o,emit:l}){let u=e,g=l,y=v(),x=`split-${y}-first`,S=`split-${y}-second`,C=f(null),{panelSize:w,bounds:T,gutterSize:E,isDragging:D,isFirstCollapsed:O,isSecondCollapsed:k,handleMouseDown:A,handleDoubleClick:j,handleKeyDown:M,collapse:N,expand:W,toggle:G,resetSize:K,setSize:q,getPanelInfo:J}=P({containerRef:C,direction:h(u,`direction`),size:h(u,`size`),defaultSize:h(u,`defaultSize`),minSize:h(u,`minSize`),maxSize:h(u,`maxSize`),minFirstSize:h(u,`minFirstSize`),minSecondSize:h(u,`minSecondSize`),gutterSize:h(u,`gutterSize`),disabled:h(u,`disabled`),collapsible:h(u,`collapsible`),step:h(u,`step`),onUpdateSize:e=>g(`update:size`,e),onResize:(e,t)=>g(`resize`,e,t),onCollapse:e=>g(`collapse`,e),onExpand:e=>g(`expand`,e),onDragStart:e=>g(`drag-start`,e),onDragEnd:e=>g(`drag-end`,e)}),Y=n(()=>({flex:`${w.value} 1 0px`})),X=n(()=>({flex:`${100-w.value} 1 0px`})),Z=n(()=>u.direction===`horizontal`?{width:`${E.value}px`}:{height:`${E.value}px`});return o({collapse:N,expand:W,toggle:G,resetSize:K,getPanelInfo:J,setSize:q}),(n,o)=>(d(),i(`div`,{ref_key:`containerRef`,ref:C,class:s([`c-split-pane`,[`c-split-pane--${e.direction}`,{"c-split-pane--dragging":_(D),"c-split-pane--disabled":e.disabled,"c-split-pane--collapsed-first":_(O),"c-split-pane--collapsed-second":_(k)}]])},[r(` 首面板 `),a(`div`,{class:`split-panel split-panel--first`,id:x,style:c(Y.value),"aria-hidden":_(O)||void 0,inert:_(O)},[a(`div`,I,[m(n.$slots,`first`,{size:_(w),collapsed:_(O)},void 0,!0)])],12,F),r(` 分割线手柄 `),a(`div`,{class:`split-gutter`,style:c(Z.value),role:`separator`,"aria-orientation":e.direction===`horizontal`?`vertical`:`horizontal`,"aria-valuenow":_(w),"aria-valuemin":_(O)?0:_(T).min,"aria-valuemax":_(k)?100:_(T).max,"aria-disabled":e.disabled||void 0,"aria-controls":x,"aria-label":e.ariaLabel,tabindex:e.disabled?-1:0,onPointerdown:o[6]||=(...e)=>_(A)&&_(A)(...e),onDblclick:o[7]||=(...e)=>_(j)&&_(j)(...e),onKeydown:o[8]||=(...e)=>_(M)&&_(M)(...e)},[a(`div`,{class:s([`split-gutter__controls`,{"split-gutter__controls--with-collapse":e.showCollapseButton&&e.collapsible}])},[e.showCollapseButton&&e.collapsible?(d(),i(`button`,{key:0,class:`split-gutter__collapse-btn split-gutter__collapse-btn--first`,type:`button`,disabled:e.disabled,"aria-label":_(O)?`展开首面板`:`折叠首面板`,"aria-expanded":!_(O),"aria-controls":x,title:_(O)?`展开首面板`:`折叠首面板`,onClick:o[0]||=b(e=>_(G)(`first`),[`stop`]),onPointerdown:o[1]||=b(()=>{},[`stop`]),onDblclick:o[2]||=b(()=>{},[`stop`])},[...o[9]||=[a(`svg`,{class:`split-gutter__chevron`,viewBox:`0 0 16 16`,"aria-hidden":`true`,focusable:`false`},[a(`path`,{d:`m9.5 4.5-3.5 3.5 3.5 3.5`})],-1)]],40,R)):r(`v-if`,!0),a(`div`,z,[a(`div`,B,[(d(),i(t,null,p(3,e=>a(`span`,{key:e,class:`split-gutter__dot`})),64))])]),e.showCollapseButton&&e.collapsible?(d(),i(`button`,{key:1,class:`split-gutter__collapse-btn split-gutter__collapse-btn--second`,type:`button`,disabled:e.disabled,"aria-label":_(k)?`展开第二面板`:`折叠第二面板`,"aria-expanded":!_(k),"aria-controls":S,title:_(k)?`展开第二面板`:`折叠第二面板`,onClick:o[3]||=b(e=>_(G)(`second`),[`stop`]),onPointerdown:o[4]||=b(()=>{},[`stop`]),onDblclick:o[5]||=b(()=>{},[`stop`])},[...o[10]||=[a(`svg`,{class:`split-gutter__chevron`,viewBox:`0 0 16 16`,"aria-hidden":`true`,focusable:`false`},[a(`path`,{d:`m9.5 4.5-3.5 3.5 3.5 3.5`})],-1)]],40,V)):r(`v-if`,!0)],2)],44,L),r(` 第二面板 `),a(`div`,{class:`split-panel split-panel--second`,id:S,style:c(X.value),"aria-hidden":_(k)||void 0,inert:_(k)},[a(`div`,U,[m(n.$slots,`second`,{size:100-_(w),collapsed:_(k)},void 0,!0)])],12,H)],2))}}),[[`__scopeId`,`data-v-ea8d0f77`]]);export{P as n,W as t};
|