@robot-admin/naive-ui-components 0.12.1 → 0.13.1

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.
Files changed (254) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.md +60 -1
  3. package/README_EN.md +59 -0
  4. package/dist/C_ActionBar.css +60 -60
  5. package/dist/C_ActionBar2.cjs +1 -1
  6. package/dist/C_ActionBar2.js +1 -1
  7. package/dist/C_AntV.css +49 -49
  8. package/dist/C_AntV2.cjs +3 -3
  9. package/dist/C_AntV2.js +3 -3
  10. package/dist/C_AudioPlayer.css +81 -66
  11. package/dist/C_AudioPlayer2.cjs +1 -1
  12. package/dist/C_AudioPlayer2.js +1 -1
  13. package/dist/C_AvatarGroup.css +40 -25
  14. package/dist/C_AvatarGroup2.cjs +1 -1
  15. package/dist/C_AvatarGroup2.js +1 -1
  16. package/dist/C_Barcode.css +6 -6
  17. package/dist/C_Barcode2.cjs +1 -1
  18. package/dist/C_Barcode2.js +1 -1
  19. package/dist/C_Breadcrumb.css +14 -14
  20. package/dist/C_Breadcrumb2.cjs +1 -1
  21. package/dist/C_Breadcrumb2.js +1 -1
  22. package/dist/C_Captcha.css +50 -50
  23. package/dist/C_Captcha2.cjs +1 -1
  24. package/dist/C_Captcha2.js +1 -1
  25. package/dist/C_Cascade.css +2 -2
  26. package/dist/C_Cascade2.cjs +1 -1
  27. package/dist/C_Cascade2.js +1 -1
  28. package/dist/C_Chat.css +96 -78
  29. package/dist/C_Chat2.cjs +1 -1
  30. package/dist/C_Chat2.js +1 -1
  31. package/dist/C_City.css +52 -28
  32. package/dist/C_City2.cjs +1 -1
  33. package/dist/C_City2.js +1 -1
  34. package/dist/C_Code.css +48 -42
  35. package/dist/C_Code2.cjs +1 -1
  36. package/dist/C_Code2.js +1 -1
  37. package/dist/C_CollapsePanel.css +14 -14
  38. package/dist/C_CollapsePanel2.cjs +1 -1
  39. package/dist/C_CollapsePanel2.js +1 -1
  40. package/dist/C_ContextMenu.css +14 -14
  41. package/dist/C_ContextMenu2.cjs +1 -1
  42. package/dist/C_ContextMenu2.js +1 -1
  43. package/dist/C_Cron.css +94 -55
  44. package/dist/C_Cron2.cjs +1 -1
  45. package/dist/C_Cron2.js +1 -1
  46. package/dist/C_Date2.cjs +1 -1
  47. package/dist/C_Date2.js +1 -1
  48. package/dist/C_Draggable.css +48 -48
  49. package/dist/C_Draggable2.cjs +1 -1
  50. package/dist/C_Draggable2.js +1 -1
  51. package/dist/C_Editor.css +13 -14
  52. package/dist/C_Editor2.cjs +1 -1
  53. package/dist/C_Editor2.js +1 -1
  54. package/dist/C_FilePreview.css +18 -18
  55. package/dist/C_FilePreview2.cjs +1 -1
  56. package/dist/C_FilePreview2.js +1 -1
  57. package/dist/C_Form.base.css +36 -36
  58. package/dist/C_Form.css +49 -50
  59. package/dist/C_Form2.cjs +1 -1
  60. package/dist/C_Form2.js +1 -1
  61. package/dist/C_FormModal.css +8 -8
  62. package/dist/C_FormModal2.cjs +1 -1
  63. package/dist/C_FormModal2.js +1 -1
  64. package/dist/C_FormSearch.css +45 -45
  65. package/dist/C_FormSearch2.cjs +1 -1
  66. package/dist/C_FormSearch2.js +1 -1
  67. package/dist/C_FormulaEditor.css +94 -55
  68. package/dist/C_FormulaEditor2.cjs +2 -2
  69. package/dist/C_FormulaEditor2.js +2 -2
  70. package/dist/C_FullCalendar.css +8 -1
  71. package/dist/C_FullCalendar2.cjs +1 -1
  72. package/dist/C_FullCalendar2.js +1 -1
  73. package/dist/C_GlobalSearch2.cjs +1 -1
  74. package/dist/C_GlobalSearch2.js +1 -1
  75. package/dist/C_Guide.css +137 -14
  76. package/dist/C_Guide.d.cts +2 -2
  77. package/dist/C_Guide.d.ts +2 -2
  78. package/dist/C_Guide2.cjs +1 -1
  79. package/dist/C_Guide2.js +1 -1
  80. package/dist/C_Icon.css +14 -14
  81. package/dist/C_Icon2.cjs +1 -1
  82. package/dist/C_Icon2.js +1 -1
  83. package/dist/C_ImageCropper.css +22 -22
  84. package/dist/C_ImageCropper2.cjs +1 -1
  85. package/dist/C_ImageCropper2.js +1 -1
  86. package/dist/C_Language.css +14 -14
  87. package/dist/C_Language2.cjs +1 -1
  88. package/dist/C_Language2.js +1 -1
  89. package/dist/C_Login.css +134 -134
  90. package/dist/C_Login2.cjs +1 -1
  91. package/dist/C_Login2.js +1 -1
  92. package/dist/C_Map.css +3 -3
  93. package/dist/C_Map2.cjs +1 -1
  94. package/dist/C_Map2.js +1 -1
  95. package/dist/C_Markdown.css +35 -35
  96. package/dist/C_Markdown2.cjs +1 -1
  97. package/dist/C_Markdown2.js +1 -1
  98. package/dist/C_Menu2.cjs +1 -1
  99. package/dist/C_Menu2.js +1 -1
  100. package/dist/C_NotificationCenter.css +30 -30
  101. package/dist/C_NotificationCenter2.cjs +1 -1
  102. package/dist/C_NotificationCenter2.js +1 -1
  103. package/dist/C_OrgChart.css +4 -0
  104. package/dist/C_OrgChart2.cjs +1 -1
  105. package/dist/C_OrgChart2.js +1 -1
  106. package/dist/C_Progress2.cjs +1 -1
  107. package/dist/C_Progress2.js +1 -1
  108. package/dist/C_QRCode.css +8 -8
  109. package/dist/C_QRCode2.cjs +1 -1
  110. package/dist/C_QRCode2.js +1 -1
  111. package/dist/C_Signature.css +14 -14
  112. package/dist/C_Signature2.cjs +1 -1
  113. package/dist/C_Signature2.js +1 -1
  114. package/dist/C_Skeleton2.cjs +1 -1
  115. package/dist/C_Skeleton2.js +1 -1
  116. package/dist/C_SplitPane.css +39 -39
  117. package/dist/C_SplitPane2.cjs +1 -1
  118. package/dist/C_SplitPane2.js +1 -1
  119. package/dist/C_Steps.css +48 -38
  120. package/dist/C_Steps2.cjs +1 -1
  121. package/dist/C_Steps2.js +1 -1
  122. package/dist/C_Table.base.css +160 -160
  123. package/dist/C_Table.css +173 -174
  124. package/dist/C_TagsView.css +52 -52
  125. package/dist/C_TagsView2.cjs +1 -1
  126. package/dist/C_TagsView2.js +1 -1
  127. package/dist/C_Theme.css +14 -14
  128. package/dist/C_Theme2.cjs +1 -1
  129. package/dist/C_Theme2.js +1 -1
  130. package/dist/C_Time.css +4 -4
  131. package/dist/C_Time2.cjs +1 -1
  132. package/dist/C_Time2.js +1 -1
  133. package/dist/C_Timeline.css +76 -58
  134. package/dist/C_Timeline2.cjs +1 -1
  135. package/dist/C_Timeline2.js +1 -1
  136. package/dist/C_Transfer.css +51 -51
  137. package/dist/C_Transfer2.cjs +1 -1
  138. package/dist/C_Transfer2.js +1 -1
  139. package/dist/C_Tree.css +35 -32
  140. package/dist/C_Tree2.cjs +1 -1
  141. package/dist/C_Tree2.js +1 -1
  142. package/dist/C_Upload.css +53 -50
  143. package/dist/C_Upload2.cjs +1 -1
  144. package/dist/C_Upload2.js +1 -1
  145. package/dist/C_VideoPlayer.css +17 -13
  146. package/dist/C_VideoPlayer2.cjs +2 -2
  147. package/dist/C_VideoPlayer2.js +2 -2
  148. package/dist/C_VtableGantt.css +19 -19
  149. package/dist/C_VtableGantt2.cjs +1 -1
  150. package/dist/C_VtableGantt2.js +1 -1
  151. package/dist/C_WaterFall.css +19 -15
  152. package/dist/C_WaterFall2.cjs +1 -1
  153. package/dist/C_WaterFall2.js +1 -1
  154. package/dist/C_WorkFlow.css +123 -123
  155. package/dist/C_WorkFlow2.cjs +1 -1
  156. package/dist/C_WorkFlow2.js +1 -1
  157. package/dist/constants.d.cts +3 -3
  158. package/dist/constants.d.ts +3 -3
  159. package/dist/constants2.d.cts +2 -2
  160. package/dist/constants2.d.ts +2 -2
  161. package/dist/constants3.d.cts +12 -8
  162. package/dist/constants3.d.ts +12 -8
  163. package/dist/constants4.d.cts +9 -9
  164. package/dist/constants4.d.ts +9 -9
  165. package/dist/constants5.d.cts +4 -4
  166. package/dist/constants5.d.ts +4 -4
  167. package/dist/data.d.cts +11 -11
  168. package/dist/data.d.ts +11 -11
  169. package/dist/data2.cjs +1 -1
  170. package/dist/data2.js +1 -1
  171. package/dist/index.cjs +1 -1
  172. package/dist/index.d.cts +2 -3
  173. package/dist/index.d.ts +2 -2
  174. package/dist/index.js +1 -1
  175. package/dist/index.vue.d.cts +7 -5
  176. package/dist/index.vue.d.ts +7 -5
  177. package/dist/index10.vue.d.cts +2 -2
  178. package/dist/index10.vue.d.ts +2 -2
  179. package/dist/index11.vue.d.cts +2 -2
  180. package/dist/index11.vue.d.ts +5 -5
  181. package/dist/index12.vue.d.cts +5 -5
  182. package/dist/index12.vue.d.ts +2 -2
  183. package/dist/index13.vue.d.cts +2 -2
  184. package/dist/index13.vue.d.ts +35 -9
  185. package/dist/index14.vue.d.cts +35 -9
  186. package/dist/index14.vue.d.ts +15 -48
  187. package/dist/index15.vue.d.cts +15 -48
  188. package/dist/index17.vue.d.ts +4 -4
  189. package/dist/index18.vue.d.cts +4 -4
  190. package/dist/index18.vue.d.ts +2 -2
  191. package/dist/index19.vue.d.cts +2 -2
  192. package/dist/index19.vue.d.ts +2 -2
  193. package/dist/index2.vue.d.cts +3 -3
  194. package/dist/index2.vue.d.ts +3 -3
  195. package/dist/index20.vue.d.cts +2 -2
  196. package/dist/index20.vue.d.ts +2 -2
  197. package/dist/index21.vue.d.cts +3 -3
  198. package/dist/index21.vue.d.ts +3 -3
  199. package/dist/index22.vue.d.cts +1 -1
  200. package/dist/index22.vue.d.ts +1 -1
  201. package/dist/index24.vue.d.cts +3 -3
  202. package/dist/index24.vue.d.ts +3 -3
  203. package/dist/index26.vue.d.cts +1 -1
  204. package/dist/index26.vue.d.ts +1 -1
  205. package/dist/index27.vue.d.cts +1 -1
  206. package/dist/index27.vue.d.ts +1 -1
  207. package/dist/index3.vue.d.cts +8 -8
  208. package/dist/index3.vue.d.ts +8 -8
  209. package/dist/index4.vue.d.cts +2 -2
  210. package/dist/index6.vue.d.ts +1 -1
  211. package/dist/index7.vue.d.cts +1 -1
  212. package/dist/index8.vue.d.ts +3 -3
  213. package/dist/index9.vue.d.cts +3 -3
  214. package/dist/index9.vue.d.ts +2 -2
  215. package/dist/mapUtils.d.cts +4 -4
  216. package/dist/mapUtils.d.ts +4 -4
  217. package/dist/style.css +1698 -1365
  218. package/dist/useCalendarEvents.d.cts +23 -18
  219. package/dist/useCalendarEvents.d.ts +23 -18
  220. package/dist/useCollapsePanel.d.cts +1 -0
  221. package/dist/useCollapsePanel.d.ts +1 -0
  222. package/dist/useCropperCore.d.cts +32 -17
  223. package/dist/useCropperCore.d.ts +32 -17
  224. package/dist/useDraggableLayout.d.cts +3 -3
  225. package/dist/useDraggableLayout.d.ts +3 -3
  226. package/dist/useDynamicFormState.d.cts +5 -0
  227. package/dist/useDynamicFormState.d.ts +5 -0
  228. package/dist/useEdgeInteraction.d.cts +19 -19
  229. package/dist/useEdgeInteraction.d.ts +19 -19
  230. package/dist/useFullscreen.d.cts +6 -6
  231. package/dist/useFullscreen.d.ts +6 -6
  232. package/dist/useInfiniteScroll.d.cts +2 -2
  233. package/dist/useInfiniteScroll.d.ts +2 -2
  234. package/dist/useQRCode.d.cts +6 -5
  235. package/dist/useQRCode.d.ts +6 -5
  236. package/dist/useSearchState.d.cts +7 -7
  237. package/dist/useSearchState.d.ts +7 -7
  238. package/dist/useSignatureHistory.d.cts +16 -8
  239. package/dist/useSignatureHistory.d.ts +16 -8
  240. package/dist/useSplitResize.d.cts +4 -4
  241. package/dist/useSplitResize.d.ts +4 -4
  242. package/dist/useTableQuery.cjs +3 -3
  243. package/dist/useTableQuery.d.cts +2 -5
  244. package/dist/useTableQuery.d.ts +2 -5
  245. package/dist/useTableQuery.js +3 -3
  246. package/dist/useTimeSelection.d.cts +5 -2
  247. package/dist/useTimeSelection.d.ts +5 -2
  248. package/dist/useTreeOperations.d.cts +6 -6
  249. package/dist/useTreeOperations.d.ts +6 -6
  250. package/dist/useWorkflowValidation.d.cts +4 -2
  251. package/dist/useWorkflowValidation.d.ts +4 -2
  252. package/dist/verification.d.cts +3 -3
  253. package/dist/verification.d.ts +3 -3
  254. package/package.json +4 -3
@@ -1 +1 @@
1
- const e=require(`./chunk.cjs`),t=require(`./export-helper.cjs`),n=require(`./html.cjs`);let r=require(`vue`),i=require(`qrcode`);i=e.t(i);function a(e,t,n){return new Promise((r,i)=>{let a=e.getContext(`2d`);if(!a)return i(Error(`Canvas context 不可用`));let o=new Image;o.crossOrigin=`anonymous`,o.onload=()=>{let i=t.size??.2,s=Math.floor(n*i),c=t.padding??4,l=t.borderRadius??4,u=(e.width-s)/2,d=(e.height-s)/2;a.save();let f=u-c,p=d-c,m=s+c*2,h=l+c;a.beginPath(),a.moveTo(f+h,p),a.arcTo(f+m,p,f+m,p+m,h),a.arcTo(f+m,p+m,f,p+m,h),a.arcTo(f,p+m,f,p,h),a.arcTo(f,p,f+m,p,h),a.closePath(),a.fillStyle=t.bgColor??`#ffffff`,a.fill(),a.beginPath(),a.moveTo(u+l,d),a.arcTo(u+s,d,u+s,d+s,l),a.arcTo(u+s,d+s,u,d+s,l),a.arcTo(u,d+s,u,d,l),a.arcTo(u,d,u+s,d,l),a.closePath(),a.clip(),a.drawImage(o,u,d,s,s),a.restore(),r()},o.onerror=()=>i(Error(`Logo 加载失败: ${t.src}`)),o.src=t.src})}function o(e,t){let n=(0,r.ref)(``),o=(0,r.ref)(null),s=(0,r.ref)(!1),c=(0,r.computed)(()=>{if(t.logo.value){let e=t.errorCorrectionLevel.value;return e===`L`||e===`M`?`Q`:e}return t.errorCorrectionLevel.value}),l=(0,r.computed)(()=>({width:t.size.value,margin:t.margin.value,errorCorrectionLevel:c.value,color:{dark:t.color.value,light:t.bgColor.value}}));async function u(){let n=e.value;!n||!t.value.value||(await i.default.toCanvas(n,t.value.value,l.value),t.logo.value&&await a(n,t.logo.value,t.size.value))}async function d(){if(!t.value.value){n.value=``;return}n.value=await i.default.toString(t.value.value,{...l.value,type:`svg`})}async function f(){if(t.value.value){s.value=!0,o.value=null;try{t.mode.value===`canvas`?await u():await d()}catch(e){o.value=e instanceof Error?e:Error(String(e)),console.error(`二维码渲染失败:`,e)}finally{s.value=!1}}}async function p(e=`png`,n=.92){if(e===`svg`){let e=await i.default.toString(t.value.value,{...l.value,type:`svg`});return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(e)}`}let r=document.createElement(`canvas`);await i.default.toCanvas(r,t.value.value,l.value),t.logo.value&&await a(r,t.logo.value,t.size.value);let o=e===`jpeg`?`image/jpeg`:`image/png`;return r.toDataURL(o,n)}async function m(e=`qrcode`,t=`png`){let n=await p(t),r=document.createElement(`a`);r.download=`${e}.${t}`,r.href=n,r.click()}return(0,r.watch)([t.value,t.size,t.color,t.bgColor,t.errorCorrectionLevel,t.margin,t.mode,t.logo],()=>f(),{deep:!0}),{svgHtml:n,error:o,loading:s,render:f,toDataURL:p,download:m}}const s={class:`c-qrcode`},c=[`innerHTML`],l={key:0,class:`qrcode-label`},u=(0,r.defineComponent)({name:`C_QRCode`,__name:`index`,props:{value:{},size:{default:200},color:{default:`#000000`},bgColor:{default:`#FFFFFF`},errorCorrectionLevel:{default:`M`},margin:{default:2},mode:{default:`canvas`},logo:{default:void 0},showBorder:{type:Boolean,default:!0},label:{default:``},showLabel:{type:Boolean,default:!1}},emits:[`error`],setup(e,{expose:t,emit:i}){let a=e,u=i,d=(0,r.ref)(null),{svgHtml:f,error:p,render:m,toDataURL:h,download:g}=o(d,{value:(0,r.toRef)(a,`value`),size:(0,r.toRef)(a,`size`),color:(0,r.toRef)(a,`color`),bgColor:(0,r.toRef)(a,`bgColor`),errorCorrectionLevel:(0,r.toRef)(a,`errorCorrectionLevel`),margin:(0,r.toRef)(a,`margin`),mode:(0,r.toRef)(a,`mode`),logo:(0,r.toRef)(a,`logo`)}),_=(0,r.computed)(()=>n.n(f.value));return(0,r.watch)(p,e=>{e&&u(`error`,e)}),(0,r.onMounted)(()=>m()),t({toDataURL:(e,t)=>h(e,t),download:(e,t)=>g(e,t),refresh:()=>m()}),(t,n)=>((0,r.openBlock)(),(0,r.createElementBlock)(`div`,s,[(0,r.createElementVNode)(`div`,{class:(0,r.normalizeClass)([`qrcode-wrapper`,{"with-border":e.showBorder}])},[(0,r.withDirectives)((0,r.createElementVNode)(`canvas`,{ref_key:`canvasRef`,ref:d},null,512),[[r.vShow,e.mode===`canvas`]]),e.mode===`svg`?((0,r.openBlock)(),(0,r.createElementBlock)(`div`,{key:0,class:`qrcode-svg`,style:(0,r.normalizeStyle)({width:`${e.size}px`,height:`${e.size}px`}),innerHTML:_.value},null,12,c)):(0,r.createCommentVNode)(`v-if`,!0)],2),e.showLabel&&e.label?((0,r.openBlock)(),(0,r.createElementBlock)(`div`,l,(0,r.toDisplayString)(e.label),1)):(0,r.createCommentVNode)(`v-if`,!0)]))}});var d=t.t(u,[[`__scopeId`,`data-v-959c13aa`]]);Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return d}});
1
+ const e=require(`./chunk.cjs`),t=require(`./export-helper.cjs`),n=require(`./html.cjs`);let r=require(`vue`),i=require(`qrcode`);i=e.t(i);function a(e,t,n){return new Promise((r,i)=>{let a=e.getContext(`2d`);if(!a)return i(Error(`Canvas context 不可用`));let o=new Image;o.crossOrigin=`anonymous`,o.onload=()=>{let i=Math.min(.3,Math.max(.05,t.size??.2)),s=Math.floor(n*i),c=Math.max(0,t.padding??4),l=Math.min(s/2,Math.max(0,t.borderRadius??4)),u=(e.width-s)/2,d=(e.height-s)/2;a.save();let f=u-c,p=d-c,m=s+c*2,h=l+c;a.beginPath(),a.moveTo(f+h,p),a.arcTo(f+m,p,f+m,p+m,h),a.arcTo(f+m,p+m,f,p+m,h),a.arcTo(f,p+m,f,p,h),a.arcTo(f,p,f+m,p,h),a.closePath(),a.fillStyle=t.bgColor??`#ffffff`,a.fill(),a.beginPath(),a.moveTo(u+l,d),a.arcTo(u+s,d,u+s,d+s,l),a.arcTo(u+s,d+s,u,d+s,l),a.arcTo(u,d+s,u,d,l),a.arcTo(u,d,u+s,d,l),a.closePath(),a.clip(),a.drawImage(o,u,d,s,s),a.restore(),r()},o.onerror=()=>i(Error(`Logo 加载失败: ${t.src}`)),o.src=t.src})}function o(e,t){let n=(0,r.ref)(``),o=(0,r.ref)(!1),s=(0,r.ref)(null),c=(0,r.ref)(!1),l=0,u=(0,r.computed)(()=>{if(t.logo.value){let e=t.errorCorrectionLevel.value;return e===`L`||e===`M`?`Q`:e}return t.errorCorrectionLevel.value}),d=(0,r.computed)(()=>({width:t.size.value,margin:t.margin.value,errorCorrectionLevel:u.value,color:{dark:t.color.value,light:t.bgColor.value}}));async function f(){let e=document.createElement(`canvas`),{value:n}=t.value,r=d.value,o=t.logo.value,s=t.size.value;return await i.default.toCanvas(e,n,r),o&&await a(e,o,s),e}async function p(){if(t.logo.value){let e=await f(),t=e.toDataURL(`image/png`);return`<svg xmlns="http://www.w3.org/2000/svg" width="${e.width}" height="${e.height}" viewBox="0 0 ${e.width} ${e.height}"><image href="${t}" width="100%" height="100%"/></svg>`}return i.default.toString(t.value.value,{...d.value,type:`svg`})}function m(){let t=e.value;t&&(t.getContext(`2d`)?.clearRect(0,0,t.width,t.height),t.width=0,t.height=0)}function h(){n.value=``,o.value=!1,m()}async function g(r){if(t.mode.value===`canvas`){let t=await f();if(r!==l)return;let i=e.value;if(!i)return;i.width=t.width,i.height=t.height;let a=i.getContext(`2d`);if(!a)throw Error(`Canvas context 不可用`);a.drawImage(t,0,0),n.value=``,o.value=!1;return}let i=await p();r===l&&(n.value=i,o.value=!!t.logo.value,m())}async function _(){let e=++l;if(!t.value.value){h(),s.value=null,c.value=!1;return}c.value=!0,s.value=null;try{await g(e)}catch(t){if(e!==l)return;s.value=t instanceof Error?t:Error(String(t)),h()}finally{e===l&&(c.value=!1)}}async function v(e=`png`,t=.92){if(e===`svg`){let e=await p();return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(e)}`}let n=await f(),r=e===`jpeg`?`image/jpeg`:`image/png`;return n.toDataURL(r,t)}async function y(e=`qrcode`,t=`png`){let n=await v(t),r=document.createElement(`a`);r.download=`${e}.${t}`,r.href=n,document.body.appendChild(r),r.click(),r.remove()}return(0,r.watch)([t.value,t.size,t.color,t.bgColor,t.errorCorrectionLevel,t.margin,t.mode,t.logo],()=>_(),{deep:!0}),(0,r.onBeforeUnmount)(()=>{l++}),{svgHtml:n,svgTrusted:o,error:s,loading:c,render:_,toDataURL:v,download:y}}const s={class:`c-qrcode`},c=[`innerHTML`],l={key:0,class:`qrcode-label`},u=(0,r.defineComponent)({name:`C_QRCode`,__name:`index`,props:{value:{},size:{default:200},color:{default:`#000000`},bgColor:{default:`#FFFFFF`},errorCorrectionLevel:{default:`M`},margin:{default:2},mode:{default:`canvas`},logo:{default:void 0},showBorder:{type:Boolean,default:!0},label:{default:``},showLabel:{type:Boolean,default:!1}},emits:[`error`],setup(e,{expose:t,emit:i}){let a=e,u=i,d=(0,r.ref)(null),{svgHtml:f,svgTrusted:p,error:m,render:h,toDataURL:g,download:_}=o(d,{value:(0,r.toRef)(a,`value`),size:(0,r.toRef)(a,`size`),color:(0,r.toRef)(a,`color`),bgColor:(0,r.toRef)(a,`bgColor`),errorCorrectionLevel:(0,r.toRef)(a,`errorCorrectionLevel`),margin:(0,r.toRef)(a,`margin`),mode:(0,r.toRef)(a,`mode`),logo:(0,r.toRef)(a,`logo`)}),v=(0,r.computed)(()=>p.value?f.value:n.n(f.value));return(0,r.watch)(m,e=>{e&&u(`error`,e)}),(0,r.onMounted)(()=>h()),t({toDataURL:(e,t)=>g(e,t),download:(e,t)=>_(e,t),refresh:()=>h()}),(t,n)=>((0,r.openBlock)(),(0,r.createElementBlock)(`div`,s,[(0,r.createElementVNode)(`div`,{class:(0,r.normalizeClass)([`qrcode-wrapper`,{"with-border":e.showBorder}])},[(0,r.withDirectives)((0,r.createElementVNode)(`canvas`,{ref_key:`canvasRef`,ref:d},null,512),[[r.vShow,e.mode===`canvas`]]),e.mode===`svg`?((0,r.openBlock)(),(0,r.createElementBlock)(`div`,{key:0,class:`qrcode-svg`,style:(0,r.normalizeStyle)({width:`${e.size}px`,height:`${e.size}px`}),innerHTML:v.value},null,12,c)):(0,r.createCommentVNode)(`v-if`,!0)],2),e.showLabel&&e.label?((0,r.openBlock)(),(0,r.createElementBlock)(`div`,l,(0,r.toDisplayString)(e.label),1)):(0,r.createCommentVNode)(`v-if`,!0)]))}});var d=t.t(u,[[`__scopeId`,`data-v-d73134a9`]]);Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return d}});
package/dist/C_QRCode2.js CHANGED
@@ -1 +1 @@
1
- import{t as e}from"./export-helper.js";import{n as t}from"./html.js";import{computed as n,createCommentVNode as r,createElementBlock as i,createElementVNode as a,defineComponent as o,normalizeClass as s,normalizeStyle as c,onMounted as l,openBlock as u,ref as d,toDisplayString as f,toRef as p,vShow as m,watch as h,withDirectives as g}from"vue";import _ from"qrcode";function v(e,t,n){return new Promise((r,i)=>{let a=e.getContext(`2d`);if(!a)return i(Error(`Canvas context 不可用`));let o=new Image;o.crossOrigin=`anonymous`,o.onload=()=>{let i=t.size??.2,s=Math.floor(n*i),c=t.padding??4,l=t.borderRadius??4,u=(e.width-s)/2,d=(e.height-s)/2;a.save();let f=u-c,p=d-c,m=s+c*2,h=l+c;a.beginPath(),a.moveTo(f+h,p),a.arcTo(f+m,p,f+m,p+m,h),a.arcTo(f+m,p+m,f,p+m,h),a.arcTo(f,p+m,f,p,h),a.arcTo(f,p,f+m,p,h),a.closePath(),a.fillStyle=t.bgColor??`#ffffff`,a.fill(),a.beginPath(),a.moveTo(u+l,d),a.arcTo(u+s,d,u+s,d+s,l),a.arcTo(u+s,d+s,u,d+s,l),a.arcTo(u,d+s,u,d,l),a.arcTo(u,d,u+s,d,l),a.closePath(),a.clip(),a.drawImage(o,u,d,s,s),a.restore(),r()},o.onerror=()=>i(Error(`Logo 加载失败: ${t.src}`)),o.src=t.src})}function y(e,t){let r=d(``),i=d(null),a=d(!1),o=n(()=>{if(t.logo.value){let e=t.errorCorrectionLevel.value;return e===`L`||e===`M`?`Q`:e}return t.errorCorrectionLevel.value}),s=n(()=>({width:t.size.value,margin:t.margin.value,errorCorrectionLevel:o.value,color:{dark:t.color.value,light:t.bgColor.value}}));async function c(){let n=e.value;!n||!t.value.value||(await _.toCanvas(n,t.value.value,s.value),t.logo.value&&await v(n,t.logo.value,t.size.value))}async function l(){if(!t.value.value){r.value=``;return}r.value=await _.toString(t.value.value,{...s.value,type:`svg`})}async function u(){if(t.value.value){a.value=!0,i.value=null;try{t.mode.value===`canvas`?await c():await l()}catch(e){i.value=e instanceof Error?e:Error(String(e)),console.error(`二维码渲染失败:`,e)}finally{a.value=!1}}}async function f(e=`png`,n=.92){if(e===`svg`){let e=await _.toString(t.value.value,{...s.value,type:`svg`});return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(e)}`}let r=document.createElement(`canvas`);await _.toCanvas(r,t.value.value,s.value),t.logo.value&&await v(r,t.logo.value,t.size.value);let i=e===`jpeg`?`image/jpeg`:`image/png`;return r.toDataURL(i,n)}async function p(e=`qrcode`,t=`png`){let n=await f(t),r=document.createElement(`a`);r.download=`${e}.${t}`,r.href=n,r.click()}return h([t.value,t.size,t.color,t.bgColor,t.errorCorrectionLevel,t.margin,t.mode,t.logo],()=>u(),{deep:!0}),{svgHtml:r,error:i,loading:a,render:u,toDataURL:f,download:p}}const b={class:`c-qrcode`},x=[`innerHTML`],S={key:0,class:`qrcode-label`};var C=e(o({name:`C_QRCode`,__name:`index`,props:{value:{},size:{default:200},color:{default:`#000000`},bgColor:{default:`#FFFFFF`},errorCorrectionLevel:{default:`M`},margin:{default:2},mode:{default:`canvas`},logo:{default:void 0},showBorder:{type:Boolean,default:!0},label:{default:``},showLabel:{type:Boolean,default:!1}},emits:[`error`],setup(e,{expose:o,emit:_}){let v=e,C=_,w=d(null),{svgHtml:T,error:E,render:D,toDataURL:O,download:k}=y(w,{value:p(v,`value`),size:p(v,`size`),color:p(v,`color`),bgColor:p(v,`bgColor`),errorCorrectionLevel:p(v,`errorCorrectionLevel`),margin:p(v,`margin`),mode:p(v,`mode`),logo:p(v,`logo`)}),A=n(()=>t(T.value));return h(E,e=>{e&&C(`error`,e)}),l(()=>D()),o({toDataURL:(e,t)=>O(e,t),download:(e,t)=>k(e,t),refresh:()=>D()}),(t,n)=>(u(),i(`div`,b,[a(`div`,{class:s([`qrcode-wrapper`,{"with-border":e.showBorder}])},[g(a(`canvas`,{ref_key:`canvasRef`,ref:w},null,512),[[m,e.mode===`canvas`]]),e.mode===`svg`?(u(),i(`div`,{key:0,class:`qrcode-svg`,style:c({width:`${e.size}px`,height:`${e.size}px`}),innerHTML:A.value},null,12,x)):r(`v-if`,!0)],2),e.showLabel&&e.label?(u(),i(`div`,S,f(e.label),1)):r(`v-if`,!0)]))}}),[[`__scopeId`,`data-v-959c13aa`]]);export{y as n,C as t};
1
+ import{t as e}from"./export-helper.js";import{n as t}from"./html.js";import{computed as n,createCommentVNode as r,createElementBlock as i,createElementVNode as a,defineComponent as o,normalizeClass as s,normalizeStyle as c,onBeforeUnmount as l,onMounted as u,openBlock as d,ref as f,toDisplayString as p,toRef as m,vShow as h,watch as g,withDirectives as _}from"vue";import v from"qrcode";function y(e,t,n){return new Promise((r,i)=>{let a=e.getContext(`2d`);if(!a)return i(Error(`Canvas context 不可用`));let o=new Image;o.crossOrigin=`anonymous`,o.onload=()=>{let i=Math.min(.3,Math.max(.05,t.size??.2)),s=Math.floor(n*i),c=Math.max(0,t.padding??4),l=Math.min(s/2,Math.max(0,t.borderRadius??4)),u=(e.width-s)/2,d=(e.height-s)/2;a.save();let f=u-c,p=d-c,m=s+c*2,h=l+c;a.beginPath(),a.moveTo(f+h,p),a.arcTo(f+m,p,f+m,p+m,h),a.arcTo(f+m,p+m,f,p+m,h),a.arcTo(f,p+m,f,p,h),a.arcTo(f,p,f+m,p,h),a.closePath(),a.fillStyle=t.bgColor??`#ffffff`,a.fill(),a.beginPath(),a.moveTo(u+l,d),a.arcTo(u+s,d,u+s,d+s,l),a.arcTo(u+s,d+s,u,d+s,l),a.arcTo(u,d+s,u,d,l),a.arcTo(u,d,u+s,d,l),a.closePath(),a.clip(),a.drawImage(o,u,d,s,s),a.restore(),r()},o.onerror=()=>i(Error(`Logo 加载失败: ${t.src}`)),o.src=t.src})}function b(e,t){let r=f(``),i=f(!1),a=f(null),o=f(!1),s=0,c=n(()=>{if(t.logo.value){let e=t.errorCorrectionLevel.value;return e===`L`||e===`M`?`Q`:e}return t.errorCorrectionLevel.value}),u=n(()=>({width:t.size.value,margin:t.margin.value,errorCorrectionLevel:c.value,color:{dark:t.color.value,light:t.bgColor.value}}));async function d(){let e=document.createElement(`canvas`),{value:n}=t.value,r=u.value,i=t.logo.value,a=t.size.value;return await v.toCanvas(e,n,r),i&&await y(e,i,a),e}async function p(){if(t.logo.value){let e=await d(),t=e.toDataURL(`image/png`);return`<svg xmlns="http://www.w3.org/2000/svg" width="${e.width}" height="${e.height}" viewBox="0 0 ${e.width} ${e.height}"><image href="${t}" width="100%" height="100%"/></svg>`}return v.toString(t.value.value,{...u.value,type:`svg`})}function m(){let t=e.value;t&&(t.getContext(`2d`)?.clearRect(0,0,t.width,t.height),t.width=0,t.height=0)}function h(){r.value=``,i.value=!1,m()}async function _(n){if(t.mode.value===`canvas`){let t=await d();if(n!==s)return;let a=e.value;if(!a)return;a.width=t.width,a.height=t.height;let o=a.getContext(`2d`);if(!o)throw Error(`Canvas context 不可用`);o.drawImage(t,0,0),r.value=``,i.value=!1;return}let a=await p();n===s&&(r.value=a,i.value=!!t.logo.value,m())}async function b(){let e=++s;if(!t.value.value){h(),a.value=null,o.value=!1;return}o.value=!0,a.value=null;try{await _(e)}catch(t){if(e!==s)return;a.value=t instanceof Error?t:Error(String(t)),h()}finally{e===s&&(o.value=!1)}}async function x(e=`png`,t=.92){if(e===`svg`){let e=await p();return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(e)}`}let n=await d(),r=e===`jpeg`?`image/jpeg`:`image/png`;return n.toDataURL(r,t)}async function S(e=`qrcode`,t=`png`){let n=await x(t),r=document.createElement(`a`);r.download=`${e}.${t}`,r.href=n,document.body.appendChild(r),r.click(),r.remove()}return g([t.value,t.size,t.color,t.bgColor,t.errorCorrectionLevel,t.margin,t.mode,t.logo],()=>b(),{deep:!0}),l(()=>{s++}),{svgHtml:r,svgTrusted:i,error:a,loading:o,render:b,toDataURL:x,download:S}}const x={class:`c-qrcode`},S=[`innerHTML`],C={key:0,class:`qrcode-label`};var w=e(o({name:`C_QRCode`,__name:`index`,props:{value:{},size:{default:200},color:{default:`#000000`},bgColor:{default:`#FFFFFF`},errorCorrectionLevel:{default:`M`},margin:{default:2},mode:{default:`canvas`},logo:{default:void 0},showBorder:{type:Boolean,default:!0},label:{default:``},showLabel:{type:Boolean,default:!1}},emits:[`error`],setup(e,{expose:o,emit:l}){let v=e,y=l,w=f(null),{svgHtml:T,svgTrusted:E,error:D,render:O,toDataURL:k,download:A}=b(w,{value:m(v,`value`),size:m(v,`size`),color:m(v,`color`),bgColor:m(v,`bgColor`),errorCorrectionLevel:m(v,`errorCorrectionLevel`),margin:m(v,`margin`),mode:m(v,`mode`),logo:m(v,`logo`)}),j=n(()=>E.value?T.value:t(T.value));return g(D,e=>{e&&y(`error`,e)}),u(()=>O()),o({toDataURL:(e,t)=>k(e,t),download:(e,t)=>A(e,t),refresh:()=>O()}),(t,n)=>(d(),i(`div`,x,[a(`div`,{class:s([`qrcode-wrapper`,{"with-border":e.showBorder}])},[_(a(`canvas`,{ref_key:`canvasRef`,ref:w},null,512),[[h,e.mode===`canvas`]]),e.mode===`svg`?(d(),i(`div`,{key:0,class:`qrcode-svg`,style:c({width:`${e.size}px`,height:`${e.size}px`}),innerHTML:j.value},null,12,S)):r(`v-if`,!0)],2),e.showLabel&&e.label?(d(),i(`div`,C,p(e.label),1)):r(`v-if`,!0)]))}}),[[`__scopeId`,`data-v-d73134a9`]]);export{b as n,w as t};
@@ -1,11 +1,11 @@
1
1
  /* unplugin-vue-components disabled *//* 电子签名组件样式 */
2
- .c-signature[data-v-d7438dde] {
2
+ .c-signature[data-v-99dc336d] {
3
3
  display: flex;
4
4
  flex-direction: column;
5
5
  gap: 12px;
6
6
  width: 100%;
7
7
  }
8
- .c-signature .signature-toolbar[data-v-d7438dde] {
8
+ .c-signature .signature-toolbar[data-v-99dc336d] {
9
9
  display: flex;
10
10
  align-items: center;
11
11
  gap: 12px;
@@ -15,29 +15,29 @@
15
15
  border-radius: var(--c-radius, 6px);
16
16
  flex-wrap: wrap;
17
17
  }
18
- .c-signature .signature-toolbar .toolbar-section[data-v-d7438dde] {
18
+ .c-signature .signature-toolbar .toolbar-section[data-v-99dc336d] {
19
19
  display: flex;
20
20
  align-items: center;
21
21
  gap: 8px;
22
22
  }
23
- .c-signature .signature-toolbar .toolbar-section.divider[data-v-d7438dde] {
23
+ .c-signature .signature-toolbar .toolbar-section.divider[data-v-99dc336d] {
24
24
  width: 1px;
25
25
  height: 24px;
26
26
  background: var(--c-border, #e1e4e8);
27
27
  margin: 0 4px;
28
28
  }
29
- .c-signature .signature-toolbar .toolbar-section .section-label[data-v-d7438dde] {
29
+ .c-signature .signature-toolbar .toolbar-section .section-label[data-v-99dc336d] {
30
30
  font-size: 13px;
31
31
  color: var(--c-text-3, #999);
32
32
  font-weight: 500;
33
33
  white-space: nowrap;
34
34
  flex-shrink: 0;
35
35
  }
36
- .c-signature .signature-toolbar .toolbar-section .n-color-picker[data-v-d7438dde] {
36
+ .c-signature .signature-toolbar .toolbar-section .n-color-picker[data-v-99dc336d] {
37
37
  width: 90px !important;
38
38
  flex-shrink: 0;
39
39
  }
40
- .c-signature .signature-canvas-wrapper[data-v-d7438dde] {
40
+ .c-signature .signature-canvas-wrapper[data-v-99dc336d] {
41
41
  position: relative;
42
42
  border: 1px solid var(--c-border, #e1e4e8);
43
43
  border-radius: var(--c-radius, 6px);
@@ -45,28 +45,28 @@
45
45
  background: var(--c-bg, #fff);
46
46
  transition: border-color 0.3s;
47
47
  }
48
- .c-signature .signature-canvas-wrapper[data-v-d7438dde]:hover {
48
+ .c-signature .signature-canvas-wrapper[data-v-99dc336d]:hover {
49
49
  border-color: var(--c-primary, #409eff);
50
50
  }
51
- .c-signature .signature-canvas-wrapper.disabled[data-v-d7438dde] {
51
+ .c-signature .signature-canvas-wrapper.disabled[data-v-99dc336d] {
52
52
  opacity: 0.6;
53
53
  cursor: not-allowed;
54
54
  border-color: var(--c-border, #e1e4e8);
55
55
  }
56
- .c-signature .signature-canvas-wrapper.readonly[data-v-d7438dde] {
56
+ .c-signature .signature-canvas-wrapper.readonly[data-v-99dc336d] {
57
57
  cursor: default;
58
58
  }
59
- .c-signature .signature-canvas-wrapper .signature-canvas[data-v-d7438dde] {
59
+ .c-signature .signature-canvas-wrapper .signature-canvas[data-v-99dc336d] {
60
60
  display: block;
61
61
  width: 100%;
62
62
  height: 100%;
63
63
  cursor: crosshair;
64
64
  touch-action: none;
65
65
  }
66
- .c-signature .signature-canvas-wrapper .signature-canvas.disabled[data-v-d7438dde], .c-signature .signature-canvas-wrapper .signature-canvas.readonly[data-v-d7438dde] {
66
+ .c-signature .signature-canvas-wrapper .signature-canvas.disabled[data-v-99dc336d], .c-signature .signature-canvas-wrapper .signature-canvas.readonly[data-v-99dc336d] {
67
67
  cursor: not-allowed;
68
68
  }
69
- .c-signature .signature-canvas-wrapper .canvas-placeholder[data-v-d7438dde] {
69
+ .c-signature .signature-canvas-wrapper .canvas-placeholder[data-v-99dc336d] {
70
70
  position: absolute;
71
71
  top: 50%;
72
72
  left: 50%;
@@ -76,7 +76,7 @@
76
76
  pointer-events: none;
77
77
  user-select: none;
78
78
  }
79
- .c-signature .signature-actions[data-v-d7438dde] {
79
+ .c-signature .signature-actions[data-v-99dc336d] {
80
80
  display: flex;
81
81
  justify-content: flex-end;
82
82
  gap: 8px;
@@ -1 +1 @@
1
- require(`./chunk.cjs`);const e=require(`./C_Icon2.cjs`),t=require(`./export-helper.cjs`);let n=require(`vue`),r=require(`naive-ui`);function i(e){let{canvasRef:t,penConfig:r,mode:i,disabled:a,onStrokeComplete:o,onDrawStart:s,onDrawing:c}=e,l=(0,n.ref)(!1),u=(0,n.ref)([]),d=null,f=()=>{let e=t.value;if(!e||(d=e.getContext(`2d`,{willReadFrequently:!0}),!d))return;let n=window.devicePixelRatio||1,r=e.getBoundingClientRect();e.width=r.width*n,e.height=r.height*n,e.style.width=`${r.width}px`,e.style.height=`${r.height}px`,d.scale(n,n),d.lineCap=`round`,d.lineJoin=`round`},p=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()}},m=(e,t,n,r=!1)=>{d&&(d.save(),r?(d.globalCompositeOperation=`destination-out`,d.lineWidth=20):(d.globalCompositeOperation=`source-over`,d.strokeStyle=n.color,d.lineWidth=n.width,d.globalAlpha=n.opacity),d.beginPath(),d.moveTo(e.x,e.y),d.lineTo(t.x,t.y),d.stroke(),d.restore())},h=e=>{if(a.value)return;e.preventDefault(),l.value=!0,u.value=[];let t=p(e);u.value.push(t),s()},g=e=>{if(!l.value||a.value)return;e.preventDefault();let t=p(e),n=u.value[u.value.length-1];n&&m(n,t,r.value,i.value===`eraser`),u.value.push(t),c(t)},_=e=>{!l.value||a.value||(e.preventDefault(),l.value=!1,u.value.length>0&&(o({points:[...u.value],color:r.value.color,width:r.value.width,opacity:r.value.opacity,mode:i.value}),u.value=[]))};return{isDrawing:(0,n.readonly)(l),initCanvas:f,bindEvents:()=>{let e=t.value;e&&(e.addEventListener(`mousedown`,h),e.addEventListener(`mousemove`,g),e.addEventListener(`mouseup`,_),e.addEventListener(`mouseleave`,_),e.addEventListener(`touchstart`,h,{passive:!1}),e.addEventListener(`touchmove`,g,{passive:!1}),e.addEventListener(`touchend`,_),e.addEventListener(`touchcancel`,_))},unbindEvents:()=>{let e=t.value;e&&(e.removeEventListener(`mousedown`,h),e.removeEventListener(`mousemove`,g),e.removeEventListener(`mouseup`,_),e.removeEventListener(`mouseleave`,_),e.removeEventListener(`touchstart`,h),e.removeEventListener(`touchmove`,g),e.removeEventListener(`touchend`,_),e.removeEventListener(`touchcancel`,_))},redrawStrokes:e=>{if(!d||!t.value)return;let n=t.value;d.clearRect(0,0,n.width,n.height),e.forEach(e=>{for(let t=1;t<e.points.length;t++)m(e.points[t-1],e.points[t],{color:e.color,width:e.width,opacity:e.opacity},e.mode===`eraser`)})},clearCanvas:()=>{!d||!t.value||d.clearRect(0,0,t.value.width,t.value.height)}}}function a(e={}){let{maxHistory:t=50,onChange:r}=e,i=(0,n.ref)([]),a=(0,n.ref)([]),o=(0,n.ref)(-1),s=(0,n.computed)(()=>o.value>0),c=(0,n.computed)(()=>o.value<a.value.length-1),l=e=>{i.value.push(e),u()},u=()=>{a.value=a.value.slice(0,o.value+1),a.value.push([...i.value]),o.value++,a.value.length>t&&(a.value.shift(),o.value--),r?.(i.value)},d=()=>s.value?(o.value--,i.value=[...a.value[o.value]],r?.(i.value),!0):!1,f=()=>c.value?(o.value++,i.value=[...a.value[o.value]],r?.(i.value),!0):!1,p=()=>{i.value=[],a.value=[[]],o.value=0,r?.(i.value)},m=e=>{i.value=[...e],a.value=[[...e]],o.value=0,r?.(i.value)},h=(0,n.computed)(()=>i.value.length===0);return a.value=[[]],o.value=0,{strokes:(0,n.readonly)(i),canUndo:(0,n.readonly)(s),canRedo:(0,n.readonly)(c),isEmpty:(0,n.readonly)(h),addStroke:l,undo:d,redo:f,clear:p,loadData:m}}function o(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?.show)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;if(r===`svg`)return`data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg"><text>SVG export placeholder</text></svg>`;let a=o(n,e);if(r===`blob`)return s(a,i);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}`,i.click(),URL.revokeObjectURL(t)}else if(typeof r==`string`){let t=document.createElement(`a`);t.href=r,t.download=`${e}.${n}`,t.click()}},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 s={color:`#000000`,width:2,opacity:1},c={show:!1,text:``,fontSize:12,color:`#999999`,position:`bottom-right`},l=[`#000000`,`#FF0000`,`#0000FF`,`#00AA00`,`#FF6600`,`#9900FF`],u={class:`c-signature`},d={key:0,class:`signature-toolbar`},f={class:`toolbar-section`},p={key:0,class:`toolbar-section`},m={key:1,class:`toolbar-section`},h={class:`toolbar-section`},g={class:`toolbar-section`},_={key:0,class:`canvas-placeholder`},v=(0,n.defineComponent)({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`],setup(t,{expose:v,emit:y}){let b=t,x=y,S=(0,n.ref)(null),C=(0,n.ref)(`pen`),w=(0,n.reactive)({...s,...b.penConfig}),T=(0,n.reactive)({...c,...b.watermark}),{strokes:E,canUndo:D,canRedo:O,isEmpty:k,addStroke:A,undo:j,redo:M,clear:N,loadData:P}=a({maxHistory:b.maxHistory,onChange:e=>{F.redrawStrokes(e),x(`change`,e)}}),F=i({canvasRef:S,penConfig:(0,n.toRef)(w),mode:C,disabled:(0,n.toRef)(b,`disabled`),onStrokeComplete:e=>{A(e),x(`end-draw`,e)},onDrawStart:()=>x(`start-draw`),onDrawing:e=>x(`drawing`,e)}),I=o({canvasRef:S,watermark:(0,n.toRef)(T)}),L=()=>{let e=j();return e&&x(`undo`),e},R=()=>{let e=M();return e&&x(`redo`),e},z=()=>{N(),F.clearCanvas(),x(`clear`)},B=async e=>I.exportSignature(e),V=async(e,t)=>I.download(e,t),H=async e=>{await I.loadImage(e),N()};return(0,n.onMounted)(()=>{F.initCanvas(),F.bindEvents(),b.backgroundImage&&H(b.backgroundImage)}),(0,n.onUnmounted)(()=>F.unbindEvents()),v({clear:z,undo:L,redo:R,export:B,download:V,loadImage:H,getSignatureData:()=>E.value,loadSignatureData:e=>P(e),isEmpty:()=>k.value}),(i,a)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,u,[t.showToolbar?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,d,[(0,n.createElementVNode)(`div`,f,[(0,n.createVNode)((0,n.unref)(r.NButtonGroup),null,{default:(0,n.withCtx)(()=>[(0,n.createVNode)((0,n.unref)(r.NButton),{type:C.value===`pen`?`primary`:`default`,size:`small`,onClick:a[0]||=e=>C.value=`pen`},{icon:(0,n.withCtx)(()=>[(0,n.createVNode)(e.t,{name:`mdi:draw`,size:16,color:`currentColor`})]),default:(0,n.withCtx)(()=>[a[4]||=(0,n.createTextVNode)(` 画笔 `,-1)]),_:1},8,[`type`]),(0,n.createVNode)((0,n.unref)(r.NButton),{type:C.value===`eraser`?`primary`:`default`,size:`small`,onClick:a[1]||=e=>C.value=`eraser`},{icon:(0,n.withCtx)(()=>[(0,n.createVNode)(e.t,{name:`mdi:eraser`,size:16,color:`currentColor`})]),default:(0,n.withCtx)(()=>[a[5]||=(0,n.createTextVNode)(` 橡皮擦 `,-1)]),_:1},8,[`type`])]),_:1})]),a[11]||=(0,n.createElementVNode)(`div`,{class:`toolbar-section divider`},null,-1),C.value===`pen`?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,p,[a[6]||=(0,n.createElementVNode)(`span`,{class:`section-label`},`颜色`,-1),(0,n.createVNode)((0,n.unref)(r.NColorPicker),{value:w.color,"onUpdate:value":a[2]||=e=>w.color=e,"show-alpha":!1,size:`small`,swatches:(0,n.unref)(l)},null,8,[`value`,`swatches`])])):(0,n.createCommentVNode)(`v-if`,!0),C.value===`pen`?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,m,[a[7]||=(0,n.createElementVNode)(`span`,{class:`section-label`},`粗细`,-1),(0,n.createVNode)((0,n.unref)(r.NInputNumber),{value:w.width,"onUpdate:value":a[3]||=e=>w.width=e,min:1,max:20,size:`small`,style:{width:`80px`}},null,8,[`value`])])):(0,n.createCommentVNode)(`v-if`,!0),a[12]||=(0,n.createElementVNode)(`div`,{class:`toolbar-section divider`},null,-1),(0,n.createElementVNode)(`div`,h,[(0,n.createVNode)((0,n.unref)(r.NButton),{size:`small`,disabled:!(0,n.unref)(D),onClick:L},{icon:(0,n.withCtx)(()=>[(0,n.createVNode)(e.t,{name:`mdi:undo`,size:16,color:`currentColor`})]),default:(0,n.withCtx)(()=>[a[8]||=(0,n.createTextVNode)(` 撤销 `,-1)]),_:1},8,[`disabled`]),(0,n.createVNode)((0,n.unref)(r.NButton),{size:`small`,disabled:!(0,n.unref)(O),onClick:R},{icon:(0,n.withCtx)(()=>[(0,n.createVNode)(e.t,{name:`mdi:redo`,size:16,color:`currentColor`})]),default:(0,n.withCtx)(()=>[a[9]||=(0,n.createTextVNode)(` 重做 `,-1)]),_:1},8,[`disabled`])]),a[13]||=(0,n.createElementVNode)(`div`,{class:`toolbar-section divider`},null,-1),(0,n.createElementVNode)(`div`,g,[(0,n.createVNode)((0,n.unref)(r.NButton),{size:`small`,type:`error`,disabled:(0,n.unref)(k),onClick:z},{icon:(0,n.withCtx)(()=>[(0,n.createVNode)(e.t,{name:`mdi:delete-outline`,size:16,color:`currentColor`})]),default:(0,n.withCtx)(()=>[a[10]||=(0,n.createTextVNode)(` 清空 `,-1)]),_:1},8,[`disabled`])])])):(0,n.createCommentVNode)(`v-if`,!0),(0,n.createElementVNode)(`div`,{class:(0,n.normalizeClass)([`signature-canvas-wrapper`,{disabled:t.disabled,readonly:t.readonly}]),style:(0,n.normalizeStyle)({width:typeof t.width==`number`?`${t.width}px`:t.width,height:typeof t.height==`number`?`${t.height}px`:t.height,backgroundColor:t.backgroundColor||`transparent`})},[(0,n.createElementVNode)(`canvas`,{ref_key:`canvasRef`,ref:S,class:(0,n.normalizeClass)([`signature-canvas`,{disabled:t.disabled,readonly:t.readonly}])},null,2),(0,n.unref)(k)&&!t.disabled&&!t.readonly?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,_,` 请在此处签名 `)):(0,n.createCommentVNode)(`v-if`,!0)],6)]))}});var y=t.t(v,[[`__scopeId`,`data-v-d7438dde`]]);Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return y}});
1
+ require(`./chunk.cjs`);const e=require(`./C_Icon2.cjs`),t=require(`./export-helper.cjs`);let n=require(`vue`),r=require(`naive-ui`);function i(e){let{canvasRef:t,penConfig:r,mode:i,disabled:a,backgroundImage:o,importedImage:s,onStrokeComplete:c,onDrawStart:l,onDrawing:u}=e,d=(0,n.ref)(!1),f=(0,n.ref)([]),p=null,m=()=>{let e=t.value;if(!e||(p=e.getContext(`2d`,{willReadFrequently:!0}),!p))return;let n=window.devicePixelRatio||1,r=e.getBoundingClientRect();e.width=r.width*n,e.height=r.height*n,p.scale(n,n),p.lineCap=`round`,p.lineJoin=`round`},h=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()}},g=(e,t,n,r=!1)=>{p&&(p.save(),r?(p.globalCompositeOperation=`destination-out`,p.lineWidth=20):(p.globalCompositeOperation=`source-over`,p.strokeStyle=n.color,p.lineWidth=n.width,p.globalAlpha=n.opacity),p.beginPath(),p.moveTo(e.x,e.y),p.lineTo(t.x,t.y),p.stroke(),p.restore())},_=e=>{if(a.value)return;e.preventDefault(),d.value=!0,f.value=[];let t=h(e);f.value.push(t),l()},v=e=>{if(!d.value||a.value)return;e.preventDefault();let t=h(e),n=f.value[f.value.length-1];n&&g(n,t,r.value,i.value===`eraser`),f.value.push(t),u(t)},y=e=>{!d.value||a.value||(e.preventDefault(),d.value=!1,f.value.length>0&&(c({points:[...f.value],color:r.value.color,width:r.value.width,opacity:r.value.opacity,mode:i.value}),f.value=[]))};return{isDrawing:(0,n.readonly)(d),initCanvas:m,bindEvents:()=>{let e=t.value;e&&(e.addEventListener(`mousedown`,_),e.addEventListener(`mousemove`,v),e.addEventListener(`mouseup`,y),e.addEventListener(`mouseleave`,y),e.addEventListener(`touchstart`,_,{passive:!1}),e.addEventListener(`touchmove`,v,{passive:!1}),e.addEventListener(`touchend`,y),e.addEventListener(`touchcancel`,y))},unbindEvents:()=>{let e=t.value;e&&(e.removeEventListener(`mousedown`,_),e.removeEventListener(`mousemove`,v),e.removeEventListener(`mouseup`,y),e.removeEventListener(`mouseleave`,y),e.removeEventListener(`touchstart`,_),e.removeEventListener(`touchmove`,v),e.removeEventListener(`touchend`,y),e.removeEventListener(`touchcancel`,y))},redrawStrokes:e=>{if(!p||!t.value)return;let n=t.value,{width:r,height:i}=n.getBoundingClientRect();p.clearRect(0,0,n.width,n.height),o?.value&&p.drawImage(o.value,0,0,r,i),s?.value&&p.drawImage(s.value,0,0,r,i),e.forEach(e=>{for(let t=1;t<e.points.length;t++)g(e.points[t-1],e.points[t],{color:e.color,width:e.width,opacity:e.opacity},e.mode===`eraser`)})},clearCanvas:()=>{!p||!t.value||p.clearRect(0,0,t.value.width,t.value.height)}}}const a=e=>e.map(e=>({...e,points:e.points.map(e=>({...e}))}));function o(e={}){let{onChange:t}=e,r=Math.max(2,Math.floor(e.maxHistory??50)),i=(0,n.ref)([]),o=(0,n.ref)([]),s=(0,n.ref)(-1),c=(0,n.computed)(()=>s.value>0),l=(0,n.computed)(()=>s.value<o.value.length-1),u=e=>{i.value.push(a([e])[0]),d()},d=()=>{o.value=o.value.slice(0,s.value+1),o.value.push(a(i.value)),s.value++,o.value.length>r&&(o.value.shift(),s.value--),t?.(a(i.value))},f=()=>c.value?(s.value--,i.value=a(o.value[s.value]),t?.(a(i.value)),!0):!1,p=()=>l.value?(s.value++,i.value=a(o.value[s.value]),t?.(a(i.value)),!0):!1,m=()=>{i.value=[],o.value=[[]],s.value=0,t?.([])},h=e=>{i.value=a(e),o.value=[a(e)],s.value=0,t?.(a(i.value))},g=(0,n.computed)(()=>i.value.length===0);return o.value=[[]],s.value=0,{strokes:(0,n.readonly)(i),canUndo:(0,n.readonly)(c),canRedo:(0,n.readonly)(l),isEmpty:(0,n.readonly)(g),addStroke:u,undo:f,redo:p,clear:m,loadData:h}}function s(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 c={color:`#000000`,width:2,opacity:1},l={show:!1,text:``,fontSize:12,color:`#999999`,position:`bottom-right`},u=[`#000000`,`#FF0000`,`#0000FF`,`#00AA00`,`#FF6600`,`#9900FF`],d={class:`c-signature`},f={key:0,class:`signature-toolbar`},p={class:`toolbar-section`},m={key:0,class:`toolbar-section`},h={key:1,class:`toolbar-section`},g={class:`toolbar-section`},_={class:`toolbar-section`},v={key:0,class:`canvas-placeholder`},y=(0,n.defineComponent)({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:a,emit:y}){let b=t,x=y,S=(0,n.ref)(null),C=(0,n.ref)(null),w=(0,n.shallowRef)(null),T=(0,n.shallowRef)(null),E=(0,n.computed)(()=>b.disabled||b.readonly),D=(0,n.ref)(`pen`),O=(0,n.reactive)({...c,...b.penConfig}),k=(0,n.reactive)({...l,...b.watermark}),{strokes:A,canUndo:j,canRedo:M,isEmpty:N,addStroke:P,undo:F,redo:I,clear:L,loadData:R}=o({maxHistory:b.maxHistory,onChange:e=>{B.redrawStrokes(e),x(`change`,e)}}),z=(0,n.computed)(()=>N.value&&!T.value),B=i({canvasRef:S,penConfig:(0,n.toRef)(O),mode:D,disabled:E,backgroundImage:w,importedImage:T,onStrokeComplete:e=>{P(e),x(`end-draw`,e)},onDrawStart:()=>x(`start-draw`),onDrawing:e=>x(`drawing`,e)}),V=s({canvasRef:S,watermark:(0,n.toRef)(k)}),H=()=>{let e=F();return e&&x(`undo`),e},U=()=>{let e=I();return e&&x(`redo`),e},W=()=>{T.value=null,L(),x(`clear`)},G=async e=>V.exportSignature(e),K=async(e,t)=>V.download(e,t);function q(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 J=0;async function Y(e){let t=++J;if(!e){w.value=null,B.redrawStrokes(A.value);return}let n=await q(e);t===J&&(w.value=n,B.redrawStrokes(A.value))}let X=async e=>{T.value=await q(e),L()},Z=()=>A.value.map(e=>({...e,points:e.points.map(e=>({...e}))})),ee=e=>{T.value=null,R(e)},te=()=>z.value;(0,n.onMounted)(()=>{B.initCanvas(),B.bindEvents(),typeof ResizeObserver<`u`&&C.value&&(Q=new ResizeObserver(()=>{B.initCanvas(),B.redrawStrokes(A.value)}),Q.observe(C.value)),Y(b.backgroundImage).catch($)});let Q=null;function $(e){x(`error`,e instanceof Error?e:Error(String(e)))}return(0,n.watch)(()=>b.backgroundImage,e=>{Y(e).catch($)}),(0,n.onUnmounted)(()=>{J++,Q?.disconnect(),B.unbindEvents()}),a({clear:W,undo:H,redo:U,export:G,download:K,loadImage:X,getSignatureData:Z,loadSignatureData:ee,isEmpty:te}),(i,a)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,d,[t.showToolbar?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,f,[(0,n.createElementVNode)(`div`,p,[(0,n.createVNode)((0,n.unref)(r.NButtonGroup),null,{default:(0,n.withCtx)(()=>[(0,n.createVNode)((0,n.unref)(r.NButton),{type:D.value===`pen`?`primary`:`default`,size:`small`,disabled:E.value,onClick:a[0]||=e=>D.value=`pen`},{icon:(0,n.withCtx)(()=>[(0,n.createVNode)(e.t,{name:`mdi:draw`,size:16,color:`currentColor`})]),default:(0,n.withCtx)(()=>[a[4]||=(0,n.createTextVNode)(` 画笔 `,-1)]),_:1},8,[`type`,`disabled`]),(0,n.createVNode)((0,n.unref)(r.NButton),{type:D.value===`eraser`?`primary`:`default`,size:`small`,disabled:E.value,onClick:a[1]||=e=>D.value=`eraser`},{icon:(0,n.withCtx)(()=>[(0,n.createVNode)(e.t,{name:`mdi:eraser`,size:16,color:`currentColor`})]),default:(0,n.withCtx)(()=>[a[5]||=(0,n.createTextVNode)(` 橡皮擦 `,-1)]),_:1},8,[`type`,`disabled`])]),_:1})]),a[11]||=(0,n.createElementVNode)(`div`,{class:`toolbar-section divider`},null,-1),D.value===`pen`?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,m,[a[6]||=(0,n.createElementVNode)(`span`,{class:`section-label`},`颜色`,-1),(0,n.createVNode)((0,n.unref)(r.NColorPicker),{value:O.color,"onUpdate:value":a[2]||=e=>O.color=e,"show-alpha":!1,disabled:E.value,size:`small`,swatches:(0,n.unref)(u)},null,8,[`value`,`disabled`,`swatches`])])):(0,n.createCommentVNode)(`v-if`,!0),D.value===`pen`?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,h,[a[7]||=(0,n.createElementVNode)(`span`,{class:`section-label`},`粗细`,-1),(0,n.createVNode)((0,n.unref)(r.NInputNumber),{value:O.width,"onUpdate:value":a[3]||=e=>O.width=e,min:1,max:20,disabled:E.value,size:`small`,style:{width:`80px`}},null,8,[`value`,`disabled`])])):(0,n.createCommentVNode)(`v-if`,!0),a[12]||=(0,n.createElementVNode)(`div`,{class:`toolbar-section divider`},null,-1),(0,n.createElementVNode)(`div`,g,[(0,n.createVNode)((0,n.unref)(r.NButton),{size:`small`,disabled:E.value||!(0,n.unref)(j),onClick:H},{icon:(0,n.withCtx)(()=>[(0,n.createVNode)(e.t,{name:`mdi:undo`,size:16,color:`currentColor`})]),default:(0,n.withCtx)(()=>[a[8]||=(0,n.createTextVNode)(` 撤销 `,-1)]),_:1},8,[`disabled`]),(0,n.createVNode)((0,n.unref)(r.NButton),{size:`small`,disabled:E.value||!(0,n.unref)(M),onClick:U},{icon:(0,n.withCtx)(()=>[(0,n.createVNode)(e.t,{name:`mdi:redo`,size:16,color:`currentColor`})]),default:(0,n.withCtx)(()=>[a[9]||=(0,n.createTextVNode)(` 重做 `,-1)]),_:1},8,[`disabled`])]),a[13]||=(0,n.createElementVNode)(`div`,{class:`toolbar-section divider`},null,-1),(0,n.createElementVNode)(`div`,_,[(0,n.createVNode)((0,n.unref)(r.NButton),{size:`small`,type:`error`,disabled:E.value||z.value,onClick:W},{icon:(0,n.withCtx)(()=>[(0,n.createVNode)(e.t,{name:`mdi:delete-outline`,size:16,color:`currentColor`})]),default:(0,n.withCtx)(()=>[a[10]||=(0,n.createTextVNode)(` 清空 `,-1)]),_:1},8,[`disabled`])])])):(0,n.createCommentVNode)(`v-if`,!0),(0,n.createElementVNode)(`div`,{ref_key:`canvasWrapperRef`,ref:C,class:(0,n.normalizeClass)([`signature-canvas-wrapper`,{disabled:t.disabled,readonly:t.readonly}]),style:(0,n.normalizeStyle)({width:typeof t.width==`number`?`${t.width}px`:t.width,height:typeof t.height==`number`?`${t.height}px`:t.height,backgroundColor:t.backgroundColor||`transparent`})},[(0,n.createElementVNode)(`canvas`,{ref_key:`canvasRef`,ref:S,class:(0,n.normalizeClass)([`signature-canvas`,{disabled:t.disabled,readonly:t.readonly}])},null,2),z.value&&!t.disabled&&!t.readonly?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,v,` 请在此处签名 `)):(0,n.createCommentVNode)(`v-if`,!0)],6)]))}});var b=t.t(y,[[`__scopeId`,`data-v-99dc336d`]]);Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return b}});
@@ -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,toRef as _,unref as v,withCtx as y}from"vue";import{NButton as b,NButtonGroup as x,NColorPicker as S,NInputNumber as C}from"naive-ui";function w(e){let{canvasRef:t,penConfig:n,mode:r,disabled:i,onStrokeComplete:a,onDrawStart:o,onDrawing:s}=e,c=g(!1),l=g([]),u=null,d=()=>{let e=t.value;if(!e||(u=e.getContext(`2d`,{willReadFrequently:!0}),!u))return;let n=window.devicePixelRatio||1,r=e.getBoundingClientRect();e.width=r.width*n,e.height=r.height*n,e.style.width=`${r.width}px`,e.style.height=`${r.height}px`,u.scale(n,n),u.lineCap=`round`,u.lineJoin=`round`},f=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()}},p=(e,t,n,r=!1)=>{u&&(u.save(),r?(u.globalCompositeOperation=`destination-out`,u.lineWidth=20):(u.globalCompositeOperation=`source-over`,u.strokeStyle=n.color,u.lineWidth=n.width,u.globalAlpha=n.opacity),u.beginPath(),u.moveTo(e.x,e.y),u.lineTo(t.x,t.y),u.stroke(),u.restore())},m=e=>{if(i.value)return;e.preventDefault(),c.value=!0,l.value=[];let t=f(e);l.value.push(t),o()},_=e=>{if(!c.value||i.value)return;e.preventDefault();let t=f(e),a=l.value[l.value.length-1];a&&p(a,t,n.value,r.value===`eraser`),l.value.push(t),s(t)},v=e=>{!c.value||i.value||(e.preventDefault(),c.value=!1,l.value.length>0&&(a({points:[...l.value],color:n.value.color,width:n.value.width,opacity:n.value.opacity,mode:r.value}),l.value=[]))};return{isDrawing:h(c),initCanvas:d,bindEvents:()=>{let e=t.value;e&&(e.addEventListener(`mousedown`,m),e.addEventListener(`mousemove`,_),e.addEventListener(`mouseup`,v),e.addEventListener(`mouseleave`,v),e.addEventListener(`touchstart`,m,{passive:!1}),e.addEventListener(`touchmove`,_,{passive:!1}),e.addEventListener(`touchend`,v),e.addEventListener(`touchcancel`,v))},unbindEvents:()=>{let e=t.value;e&&(e.removeEventListener(`mousedown`,m),e.removeEventListener(`mousemove`,_),e.removeEventListener(`mouseup`,v),e.removeEventListener(`mouseleave`,v),e.removeEventListener(`touchstart`,m),e.removeEventListener(`touchmove`,_),e.removeEventListener(`touchend`,v),e.removeEventListener(`touchcancel`,v))},redrawStrokes:e=>{if(!u||!t.value)return;let n=t.value;u.clearRect(0,0,n.width,n.height),e.forEach(e=>{for(let t=1;t<e.points.length;t++)p(e.points[t-1],e.points[t],{color:e.color,width:e.width,opacity:e.opacity},e.mode===`eraser`)})},clearCanvas:()=>{!u||!t.value||u.clearRect(0,0,t.value.width,t.value.height)}}}function T(e={}){let{maxHistory:t=50,onChange:r}=e,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(e),u()},u=()=>{a.value=a.value.slice(0,o.value+1),a.value.push([...i.value]),o.value++,a.value.length>t&&(a.value.shift(),o.value--),r?.(i.value)},d=()=>s.value?(o.value--,i.value=[...a.value[o.value]],r?.(i.value),!0):!1,f=()=>c.value?(o.value++,i.value=[...a.value[o.value]],r?.(i.value),!0):!1,p=()=>{i.value=[],a.value=[[]],o.value=0,r?.(i.value)},m=e=>{i.value=[...e],a.value=[[...e]],o.value=0,r?.(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?.show)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;if(r===`svg`)return`data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg"><text>SVG export placeholder</text></svg>`;let a=o(n,e);if(r===`blob`)return s(a,i);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}`,i.click(),URL.revokeObjectURL(t)}else if(typeof r==`string`){let t=document.createElement(`a`);t.href=r,t.download=`${e}.${n}`,t.click()}},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 D={color:`#000000`,width:2,opacity:1},O={show:!1,text:``,fontSize:12,color:`#999999`,position:`bottom-right`},k=[`#000000`,`#FF0000`,`#0000FF`,`#00AA00`,`#FF6600`,`#9900FF`],A={class:`c-signature`},j={key:0,class:`signature-toolbar`},M={class:`toolbar-section`},ee={key:0,class:`toolbar-section`},te={key:1,class:`toolbar-section`},ne={class:`toolbar-section`},re={class:`toolbar-section`},N={key:0,class:`canvas-placeholder`};var P=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`],setup(t,{expose:n,emit:c}){let h=t,P=c,F=g(null),I=g(`pen`),L=m({...D,...h.penConfig}),R=m({...O,...h.watermark}),{strokes:z,canUndo:B,canRedo:V,isEmpty:H,addStroke:U,undo:W,redo:G,clear:K,loadData:q}=T({maxHistory:h.maxHistory,onChange:e=>{J.redrawStrokes(e),P(`change`,e)}}),J=w({canvasRef:F,penConfig:_(L),mode:I,disabled:_(h,`disabled`),onStrokeComplete:e=>{U(e),P(`end-draw`,e)},onDrawStart:()=>P(`start-draw`),onDrawing:e=>P(`drawing`,e)}),Y=E({canvasRef:F,watermark:_(R)}),X=()=>{let e=W();return e&&P(`undo`),e},Z=()=>{let e=G();return e&&P(`redo`),e},Q=()=>{K(),J.clearCanvas(),P(`clear`)},ie=async e=>Y.exportSignature(e),ae=async(e,t)=>Y.download(e,t),$=async e=>{await Y.loadImage(e),K()};return d(()=>{J.initCanvas(),J.bindEvents(),h.backgroundImage&&$(h.backgroundImage)}),f(()=>J.unbindEvents()),n({clear:Q,undo:X,redo:Z,export:ie,download:ae,loadImage:$,getSignatureData:()=>z.value,loadSignatureData:e=>q(e),isEmpty:()=>H.value}),(n,c)=>(p(),i(`div`,A,[t.showToolbar?(p(),i(`div`,j,[a(`div`,M,[s(v(x),null,{default:y(()=>[s(v(b),{type:I.value===`pen`?`primary`:`default`,size:`small`,onClick:c[0]||=e=>I.value=`pen`},{icon:y(()=>[s(e,{name:`mdi:draw`,size:16,color:`currentColor`})]),default:y(()=>[c[4]||=o(` 画笔 `,-1)]),_:1},8,[`type`]),s(v(b),{type:I.value===`eraser`?`primary`:`default`,size:`small`,onClick:c[1]||=e=>I.value=`eraser`},{icon:y(()=>[s(e,{name:`mdi:eraser`,size:16,color:`currentColor`})]),default:y(()=>[c[5]||=o(` 橡皮擦 `,-1)]),_:1},8,[`type`])]),_:1})]),c[11]||=a(`div`,{class:`toolbar-section divider`},null,-1),I.value===`pen`?(p(),i(`div`,ee,[c[6]||=a(`span`,{class:`section-label`},`颜色`,-1),s(v(S),{value:L.color,"onUpdate:value":c[2]||=e=>L.color=e,"show-alpha":!1,size:`small`,swatches:v(k)},null,8,[`value`,`swatches`])])):r(`v-if`,!0),I.value===`pen`?(p(),i(`div`,te,[c[7]||=a(`span`,{class:`section-label`},`粗细`,-1),s(v(C),{value:L.width,"onUpdate:value":c[3]||=e=>L.width=e,min:1,max:20,size:`small`,style:{width:`80px`}},null,8,[`value`])])):r(`v-if`,!0),c[12]||=a(`div`,{class:`toolbar-section divider`},null,-1),a(`div`,ne,[s(v(b),{size:`small`,disabled:!v(B),onClick:X},{icon:y(()=>[s(e,{name:`mdi:undo`,size:16,color:`currentColor`})]),default:y(()=>[c[8]||=o(` 撤销 `,-1)]),_:1},8,[`disabled`]),s(v(b),{size:`small`,disabled:!v(V),onClick:Z},{icon:y(()=>[s(e,{name:`mdi:redo`,size:16,color:`currentColor`})]),default:y(()=>[c[9]||=o(` 重做 `,-1)]),_:1},8,[`disabled`])]),c[13]||=a(`div`,{class:`toolbar-section divider`},null,-1),a(`div`,re,[s(v(b),{size:`small`,type:`error`,disabled:v(H),onClick:Q},{icon:y(()=>[s(e,{name:`mdi:delete-outline`,size:16,color:`currentColor`})]),default:y(()=>[c[10]||=o(` 清空 `,-1)]),_:1},8,[`disabled`])])])):r(`v-if`,!0),a(`div`,{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:F,class:l([`signature-canvas`,{disabled:t.disabled,readonly:t.readonly}])},null,2),v(H)&&!t.disabled&&!t.readonly?(p(),i(`div`,N,` 请在此处签名 `)):r(`v-if`,!0)],6)]))}}),[[`__scopeId`,`data-v-d7438dde`]]);export{w as i,E as n,T as r,P 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 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-99dc336d`]]);export{C as i,E as n,T as r,k as t};
@@ -1 +1 @@
1
- require(`./chunk.cjs`);let e=require(`vue`);const t={key:0,class:`c-skeleton__card-cover c-skeleton__item`},n={class:`c-skeleton__card-body`},r={class:`c-skeleton__card-desc`},i={key:1,class:`c-skeleton__card-footer`},a={class:`c-skeleton__table`},o={key:0,class:`c-skeleton__table-header`},s={key:0,class:`c-skeleton__table-cell c-skeleton__table-cell--action`},c={key:0,class:`c-skeleton__table-cell c-skeleton__table-cell--action`},l={key:0,class:`c-skeleton__form-actions`},u={key:0,class:`c-skeleton__circle c-skeleton__circle--sm c-skeleton__item`},d={class:`c-skeleton__list-content`},f={class:`c-skeleton__detail`},p={key:0,class:`c-skeleton__detail-header`},m={class:`c-skeleton__detail-body`},h={class:`c-skeleton__detail-value`},g=(0,e.defineComponent)({name:`C_Skeleton`,__name:`index`,props:{preset:{default:`text`},loading:{type:Boolean,default:!0},animation:{type:[String,Boolean],default:`wave`},repeat:{default:3},borderRadius:{default:`4px`},table:{},form:{},list:{},card:{},detail:{}},setup(g){let _=g,v=(0,e.computed)(()=>_.animation===!1?`none`:_.animation),y=(0,e.computed)(()=>({rows:_.table?.rows??5,cols:_.table?.cols??4,showHeader:_.table?.showHeader??!0,showActions:_.table?.showActions??!0})),b=(0,e.computed)(()=>({fields:_.form?.fields??6,cols:_.form?.cols??2,showLabel:_.form?.showLabel??!0,showActions:_.form?.showActions??!0})),x=(0,e.computed)(()=>({items:_.list?.items??5,showAvatar:_.list?.showAvatar??!0,descLines:_.list?.descLines??2})),S=(0,e.computed)(()=>({showCover:_.card?.showCover??!0,titleLines:_.card?.titleLines??1,descLines:_.card?.descLines??2,showFooter:_.card?.showFooter??!0})),C=(0,e.computed)(()=>({fields:_.detail?.fields??6,valueLines:_.detail?.valueLines??1,showAvatar:_.detail?.showAvatar??!0}));return(w,T)=>_.loading?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:0,class:(0,e.normalizeClass)([`c-skeleton`,[`c-skeleton--${v.value}`]])},[(0,e.createCommentVNode)(` text 预设 `),g.preset===`text`?((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,{key:0},(0,e.renderList)(g.repeat,t=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:t,class:`c-skeleton__text`},[(0,e.createElementVNode)(`div`,{class:`c-skeleton__line c-skeleton__item`,style:(0,e.normalizeStyle)({width:t===g.repeat?`60%`:`100%`})},null,4)]))),128)):g.preset===`avatar`?((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:1},[(0,e.createCommentVNode)(` avatar 预设 `),T[0]||=(0,e.createStaticVNode)(`<div class="c-skeleton__avatar-group"><div class="c-skeleton__circle c-skeleton__item"></div><div class="c-skeleton__avatar-text"><div class="c-skeleton__line c-skeleton__item" style="width:40%;"></div><div class="c-skeleton__line c-skeleton__item c-skeleton__line--sm" style="width:60%;"></div></div></div>`,1)],64)):g.preset===`image`?((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:2},[(0,e.createCommentVNode)(` image 预设 `),((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(g.repeat,t=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:t,class:`c-skeleton__image c-skeleton__item`},[...T[1]||=[(0,e.createElementVNode)(`div`,{class:`c-skeleton__image-icon`},[(0,e.createElementVNode)(`svg`,{viewBox:`0 0 24 24`,fill:`currentColor`,width:`32`,height:`32`},[(0,e.createElementVNode)(`path`,{d:`M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z`})])],-1)]]))),128))],64)):g.preset===`card`?((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:3},[(0,e.createCommentVNode)(` card 预设 `),((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(g.repeat,a=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:a,class:`c-skeleton__card`},[S.value.showCover?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,t)):(0,e.createCommentVNode)(`v-if`,!0),(0,e.createElementVNode)(`div`,n,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(S.value.titleLines,t=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:`t-${t}`,class:`c-skeleton__line c-skeleton__item`,style:(0,e.normalizeStyle)({width:t===S.value.titleLines?`50%`:`80%`})},null,4))),128)),(0,e.createElementVNode)(`div`,r,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(S.value.descLines,t=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:`d-${t}`,class:`c-skeleton__line c-skeleton__item c-skeleton__line--sm`,style:(0,e.normalizeStyle)({width:t===S.value.descLines?`70%`:`100%`})},null,4))),128))])]),S.value.showFooter?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,i,[...T[2]||=[(0,e.createElementVNode)(`div`,{class:`c-skeleton__line c-skeleton__item c-skeleton__line--btn`,style:{width:`80px`}},null,-1),(0,e.createElementVNode)(`div`,{class:`c-skeleton__line c-skeleton__item c-skeleton__line--btn`,style:{width:`80px`}},null,-1)]])):(0,e.createCommentVNode)(`v-if`,!0)]))),128))],64)):g.preset===`table`?((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:4},[(0,e.createCommentVNode)(` table 预设 `),(0,e.createElementVNode)(`div`,a,[y.value.showHeader?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,o,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(y.value.cols,t=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:`h-${t}`,class:`c-skeleton__table-cell`},[...T[3]||=[(0,e.createElementVNode)(`div`,{class:`c-skeleton__line c-skeleton__item c-skeleton__line--sm`},null,-1)]]))),128)),y.value.showActions?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,s,[...T[4]||=[(0,e.createElementVNode)(`div`,{class:`c-skeleton__line c-skeleton__item c-skeleton__line--sm`,style:{width:`60%`}},null,-1)]])):(0,e.createCommentVNode)(`v-if`,!0)])):(0,e.createCommentVNode)(`v-if`,!0),((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(y.value.rows,t=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:`r-${t}`,class:`c-skeleton__table-row`},[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(y.value.cols,n=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:`c-${n}`,class:`c-skeleton__table-cell`},[(0,e.createElementVNode)(`div`,{class:`c-skeleton__line c-skeleton__item c-skeleton__line--sm`,style:(0,e.normalizeStyle)({width:`${Math.floor(50+t*n*17%50)}%`})},null,4)]))),128)),y.value.showActions?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,c,[...T[5]||=[(0,e.createElementVNode)(`div`,{class:`c-skeleton__action-btns`},[(0,e.createElementVNode)(`div`,{class:`c-skeleton__line c-skeleton__item c-skeleton__line--mini`,style:{width:`40px`}}),(0,e.createElementVNode)(`div`,{class:`c-skeleton__line c-skeleton__item c-skeleton__line--mini`,style:{width:`40px`}})],-1)]])):(0,e.createCommentVNode)(`v-if`,!0)]))),128))])],64)):g.preset===`form`?((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:5},[(0,e.createCommentVNode)(` form 预设 `),(0,e.createElementVNode)(`div`,{class:`c-skeleton__form`,style:(0,e.normalizeStyle)({"--form-cols":b.value.cols})},[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(b.value.fields,t=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:t,class:`c-skeleton__form-field`},[b.value.showLabel?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:0,class:`c-skeleton__line c-skeleton__item c-skeleton__line--label`,style:(0,e.normalizeStyle)({width:`${60+t*13%30}px`})},null,4)):(0,e.createCommentVNode)(`v-if`,!0),T[6]||=(0,e.createElementVNode)(`div`,{class:`c-skeleton__line c-skeleton__item c-skeleton__line--input`},null,-1)]))),128)),b.value.showActions?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,l,[...T[7]||=[(0,e.createElementVNode)(`div`,{class:`c-skeleton__line c-skeleton__item c-skeleton__line--btn`,style:{width:`100px`}},null,-1),(0,e.createElementVNode)(`div`,{class:`c-skeleton__line c-skeleton__item c-skeleton__line--btn`,style:{width:`80px`}},null,-1)]])):(0,e.createCommentVNode)(`v-if`,!0)],4)],64)):g.preset===`list`?((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:6},[(0,e.createCommentVNode)(` list 预设 `),((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(x.value.items,t=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:t,class:`c-skeleton__list-item`},[x.value.showAvatar?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,u)):(0,e.createCommentVNode)(`v-if`,!0),(0,e.createElementVNode)(`div`,d,[T[8]||=(0,e.createElementVNode)(`div`,{class:`c-skeleton__line c-skeleton__item`,style:{width:`30%`}},null,-1),((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(x.value.descLines,t=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:`d-${t}`,class:`c-skeleton__line c-skeleton__item c-skeleton__line--sm`,style:(0,e.normalizeStyle)({width:t===x.value.descLines?`50%`:`90%`})},null,4))),128))])]))),128))],64)):g.preset===`detail`?((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:7},[(0,e.createCommentVNode)(` detail 预设 `),(0,e.createElementVNode)(`div`,f,[C.value.showAvatar?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,p,[...T[9]||=[(0,e.createElementVNode)(`div`,{class:`c-skeleton__circle c-skeleton__circle--lg c-skeleton__item`},null,-1),(0,e.createElementVNode)(`div`,{class:`c-skeleton__detail-title`},[(0,e.createElementVNode)(`div`,{class:`c-skeleton__line c-skeleton__item`,style:{width:`120px`}}),(0,e.createElementVNode)(`div`,{class:`c-skeleton__line c-skeleton__item c-skeleton__line--sm`,style:{width:`200px`}})],-1)]])):(0,e.createCommentVNode)(`v-if`,!0),(0,e.createElementVNode)(`div`,m,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(C.value.fields,t=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:t,class:`c-skeleton__detail-field`},[(0,e.createElementVNode)(`div`,{class:`c-skeleton__line c-skeleton__item c-skeleton__line--label`,style:(0,e.normalizeStyle)({width:`${50+t*17%40}px`})},null,4),(0,e.createElementVNode)(`div`,h,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(C.value.valueLines,t=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:`v-${t}`,class:`c-skeleton__line c-skeleton__item c-skeleton__line--sm`,style:(0,e.normalizeStyle)({width:t===C.value.valueLines?`60%`:`100%`})},null,4))),128))])]))),128))])])],64)):(0,e.createCommentVNode)(`v-if`,!0)],2)):((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:1},[(0,e.createCommentVNode)(` 加载完成后显示插槽内容 `),(0,e.renderSlot)(w.$slots,`default`)],2112))}});Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return g}});
1
+ require(`./chunk.cjs`);let e=require(`vue`);const t={key:0,class:`c-skeleton__card-cover c-skeleton__item`},n={class:`c-skeleton__card-body`},r={class:`c-skeleton__card-desc`},i={key:1,class:`c-skeleton__card-footer`},a={class:`c-skeleton__table`},o={key:0,class:`c-skeleton__table-header`},s={key:0,class:`c-skeleton__table-cell c-skeleton__table-cell--action`},c={key:0,class:`c-skeleton__table-cell c-skeleton__table-cell--action`},l={key:0,class:`c-skeleton__form-actions`},u={key:0,class:`c-skeleton__circle c-skeleton__circle--sm c-skeleton__item`},d={class:`c-skeleton__list-content`},f={class:`c-skeleton__detail`},p={key:0,class:`c-skeleton__detail-header`},m={class:`c-skeleton__detail-body`},h={class:`c-skeleton__detail-value`},g=(0,e.defineComponent)({name:`C_Skeleton`,__name:`index`,props:{preset:{default:`text`},loading:{type:Boolean,default:!0},animation:{type:[String,Boolean],default:`wave`},repeat:{default:3},borderRadius:{default:`4px`},table:{},form:{},list:{},card:{},detail:{}},setup(g){let _=g,v=(0,e.computed)(()=>_.animation===!1?`none`:_.animation),y=(e,t)=>Number.isFinite(e)?Math.min(t,Math.max(1,Math.floor(e))):1,b=(0,e.computed)(()=>y(_.repeat,100)),x=(0,e.computed)(()=>({rows:y(_.table?.rows??5,100),cols:y(_.table?.cols??4,20),showHeader:_.table?.showHeader??!0,showActions:_.table?.showActions??!0})),S=(0,e.computed)(()=>({fields:y(_.form?.fields??6,100),cols:y(_.form?.cols??2,12),showLabel:_.form?.showLabel??!0,showActions:_.form?.showActions??!0})),C=(0,e.computed)(()=>({items:y(_.list?.items??5,100),showAvatar:_.list?.showAvatar??!0,descLines:y(_.list?.descLines??2,20)})),w=(0,e.computed)(()=>({showCover:_.card?.showCover??!0,titleLines:y(_.card?.titleLines??1,20),descLines:y(_.card?.descLines??2,20),showFooter:_.card?.showFooter??!0})),T=(0,e.computed)(()=>({fields:y(_.detail?.fields??6,100),valueLines:y(_.detail?.valueLines??1,20),showAvatar:_.detail?.showAvatar??!0}));return(y,E)=>_.loading?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:0,class:(0,e.normalizeClass)([`c-skeleton`,[`c-skeleton--${v.value}`]]),style:(0,e.normalizeStyle)({"--c-skeleton-radius":g.borderRadius}),role:`status`,"aria-label":`加载中`},[(0,e.createCommentVNode)(` text 预设 `),g.preset===`text`?((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,{key:0},(0,e.renderList)(b.value,t=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:t,class:`c-skeleton__text`},[(0,e.createElementVNode)(`div`,{class:`c-skeleton__line c-skeleton__item`,style:(0,e.normalizeStyle)({width:t===b.value?`60%`:`100%`})},null,4)]))),128)):g.preset===`avatar`?((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:1},[(0,e.createCommentVNode)(` avatar 预设 `),E[0]||=(0,e.createStaticVNode)(`<div class="c-skeleton__avatar-group"><div class="c-skeleton__circle c-skeleton__item"></div><div class="c-skeleton__avatar-text"><div class="c-skeleton__line c-skeleton__item" style="width:40%;"></div><div class="c-skeleton__line c-skeleton__item c-skeleton__line--sm" style="width:60%;"></div></div></div>`,1)],64)):g.preset===`image`?((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:2},[(0,e.createCommentVNode)(` image 预设 `),((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(b.value,t=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:t,class:`c-skeleton__image c-skeleton__item`},[...E[1]||=[(0,e.createElementVNode)(`div`,{class:`c-skeleton__image-icon`},[(0,e.createElementVNode)(`svg`,{viewBox:`0 0 24 24`,fill:`currentColor`,width:`32`,height:`32`},[(0,e.createElementVNode)(`path`,{d:`M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z`})])],-1)]]))),128))],64)):g.preset===`card`?((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:3},[(0,e.createCommentVNode)(` card 预设 `),((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(b.value,a=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:a,class:`c-skeleton__card`},[w.value.showCover?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,t)):(0,e.createCommentVNode)(`v-if`,!0),(0,e.createElementVNode)(`div`,n,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(w.value.titleLines,t=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:`t-${t}`,class:`c-skeleton__line c-skeleton__item`,style:(0,e.normalizeStyle)({width:t===w.value.titleLines?`50%`:`80%`})},null,4))),128)),(0,e.createElementVNode)(`div`,r,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(w.value.descLines,t=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:`d-${t}`,class:`c-skeleton__line c-skeleton__item c-skeleton__line--sm`,style:(0,e.normalizeStyle)({width:t===w.value.descLines?`70%`:`100%`})},null,4))),128))])]),w.value.showFooter?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,i,[...E[2]||=[(0,e.createElementVNode)(`div`,{class:`c-skeleton__line c-skeleton__item c-skeleton__line--btn`,style:{width:`80px`}},null,-1),(0,e.createElementVNode)(`div`,{class:`c-skeleton__line c-skeleton__item c-skeleton__line--btn`,style:{width:`80px`}},null,-1)]])):(0,e.createCommentVNode)(`v-if`,!0)]))),128))],64)):g.preset===`table`?((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:4},[(0,e.createCommentVNode)(` table 预设 `),(0,e.createElementVNode)(`div`,a,[x.value.showHeader?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,o,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(x.value.cols,t=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:`h-${t}`,class:`c-skeleton__table-cell`},[...E[3]||=[(0,e.createElementVNode)(`div`,{class:`c-skeleton__line c-skeleton__item c-skeleton__line--sm`},null,-1)]]))),128)),x.value.showActions?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,s,[...E[4]||=[(0,e.createElementVNode)(`div`,{class:`c-skeleton__line c-skeleton__item c-skeleton__line--sm`,style:{width:`60%`}},null,-1)]])):(0,e.createCommentVNode)(`v-if`,!0)])):(0,e.createCommentVNode)(`v-if`,!0),((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(x.value.rows,t=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:`r-${t}`,class:`c-skeleton__table-row`},[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(x.value.cols,n=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:`c-${n}`,class:`c-skeleton__table-cell`},[(0,e.createElementVNode)(`div`,{class:`c-skeleton__line c-skeleton__item c-skeleton__line--sm`,style:(0,e.normalizeStyle)({width:`${Math.floor(50+t*n*17%50)}%`})},null,4)]))),128)),x.value.showActions?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,c,[...E[5]||=[(0,e.createElementVNode)(`div`,{class:`c-skeleton__action-btns`},[(0,e.createElementVNode)(`div`,{class:`c-skeleton__line c-skeleton__item c-skeleton__line--mini`,style:{width:`40px`}}),(0,e.createElementVNode)(`div`,{class:`c-skeleton__line c-skeleton__item c-skeleton__line--mini`,style:{width:`40px`}})],-1)]])):(0,e.createCommentVNode)(`v-if`,!0)]))),128))])],64)):g.preset===`form`?((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:5},[(0,e.createCommentVNode)(` form 预设 `),(0,e.createElementVNode)(`div`,{class:`c-skeleton__form`,style:(0,e.normalizeStyle)({"--form-cols":S.value.cols})},[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(S.value.fields,t=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:t,class:`c-skeleton__form-field`},[S.value.showLabel?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:0,class:`c-skeleton__line c-skeleton__item c-skeleton__line--label`,style:(0,e.normalizeStyle)({width:`${60+t*13%30}px`})},null,4)):(0,e.createCommentVNode)(`v-if`,!0),E[6]||=(0,e.createElementVNode)(`div`,{class:`c-skeleton__line c-skeleton__item c-skeleton__line--input`},null,-1)]))),128)),S.value.showActions?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,l,[...E[7]||=[(0,e.createElementVNode)(`div`,{class:`c-skeleton__line c-skeleton__item c-skeleton__line--btn`,style:{width:`100px`}},null,-1),(0,e.createElementVNode)(`div`,{class:`c-skeleton__line c-skeleton__item c-skeleton__line--btn`,style:{width:`80px`}},null,-1)]])):(0,e.createCommentVNode)(`v-if`,!0)],4)],64)):g.preset===`list`?((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:6},[(0,e.createCommentVNode)(` list 预设 `),((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(C.value.items,t=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:t,class:`c-skeleton__list-item`},[C.value.showAvatar?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,u)):(0,e.createCommentVNode)(`v-if`,!0),(0,e.createElementVNode)(`div`,d,[E[8]||=(0,e.createElementVNode)(`div`,{class:`c-skeleton__line c-skeleton__item`,style:{width:`30%`}},null,-1),((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(C.value.descLines,t=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:`d-${t}`,class:`c-skeleton__line c-skeleton__item c-skeleton__line--sm`,style:(0,e.normalizeStyle)({width:t===C.value.descLines?`50%`:`90%`})},null,4))),128))])]))),128))],64)):g.preset===`detail`?((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:7},[(0,e.createCommentVNode)(` detail 预设 `),(0,e.createElementVNode)(`div`,f,[T.value.showAvatar?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,p,[...E[9]||=[(0,e.createElementVNode)(`div`,{class:`c-skeleton__circle c-skeleton__circle--lg c-skeleton__item`},null,-1),(0,e.createElementVNode)(`div`,{class:`c-skeleton__detail-title`},[(0,e.createElementVNode)(`div`,{class:`c-skeleton__line c-skeleton__item`,style:{width:`120px`}}),(0,e.createElementVNode)(`div`,{class:`c-skeleton__line c-skeleton__item c-skeleton__line--sm`,style:{width:`200px`}})],-1)]])):(0,e.createCommentVNode)(`v-if`,!0),(0,e.createElementVNode)(`div`,m,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(T.value.fields,t=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:t,class:`c-skeleton__detail-field`},[(0,e.createElementVNode)(`div`,{class:`c-skeleton__line c-skeleton__item c-skeleton__line--label`,style:(0,e.normalizeStyle)({width:`${50+t*17%40}px`})},null,4),(0,e.createElementVNode)(`div`,h,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(T.value.valueLines,t=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:`v-${t}`,class:`c-skeleton__line c-skeleton__item c-skeleton__line--sm`,style:(0,e.normalizeStyle)({width:t===T.value.valueLines?`60%`:`100%`})},null,4))),128))])]))),128))])])],64)):(0,e.createCommentVNode)(`v-if`,!0)],6)):((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:1},[(0,e.createCommentVNode)(` 加载完成后显示插槽内容 `),(0,e.renderSlot)(y.$slots,`default`)],2112))}});Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return g}});
@@ -1 +1 @@
1
- import{Fragment as e,computed as t,createCommentVNode as n,createElementBlock as r,createElementVNode as i,createStaticVNode as a,defineComponent as o,normalizeClass as s,normalizeStyle as c,openBlock as l,renderList as u,renderSlot as d}from"vue";const f={key:0,class:`c-skeleton__card-cover c-skeleton__item`},p={class:`c-skeleton__card-body`},m={class:`c-skeleton__card-desc`},h={key:1,class:`c-skeleton__card-footer`},g={class:`c-skeleton__table`},_={key:0,class:`c-skeleton__table-header`},v={key:0,class:`c-skeleton__table-cell c-skeleton__table-cell--action`},y={key:0,class:`c-skeleton__table-cell c-skeleton__table-cell--action`},b={key:0,class:`c-skeleton__form-actions`},x={key:0,class:`c-skeleton__circle c-skeleton__circle--sm c-skeleton__item`},S={class:`c-skeleton__list-content`},C={class:`c-skeleton__detail`},w={key:0,class:`c-skeleton__detail-header`},T={class:`c-skeleton__detail-body`},E={class:`c-skeleton__detail-value`},D=o({name:`C_Skeleton`,__name:`index`,props:{preset:{default:`text`},loading:{type:Boolean,default:!0},animation:{type:[String,Boolean],default:`wave`},repeat:{default:3},borderRadius:{default:`4px`},table:{},form:{},list:{},card:{},detail:{}},setup(o){let D=o,O=t(()=>D.animation===!1?`none`:D.animation),k=t(()=>({rows:D.table?.rows??5,cols:D.table?.cols??4,showHeader:D.table?.showHeader??!0,showActions:D.table?.showActions??!0})),A=t(()=>({fields:D.form?.fields??6,cols:D.form?.cols??2,showLabel:D.form?.showLabel??!0,showActions:D.form?.showActions??!0})),j=t(()=>({items:D.list?.items??5,showAvatar:D.list?.showAvatar??!0,descLines:D.list?.descLines??2})),M=t(()=>({showCover:D.card?.showCover??!0,titleLines:D.card?.titleLines??1,descLines:D.card?.descLines??2,showFooter:D.card?.showFooter??!0})),N=t(()=>({fields:D.detail?.fields??6,valueLines:D.detail?.valueLines??1,showAvatar:D.detail?.showAvatar??!0}));return(t,P)=>D.loading?(l(),r(`div`,{key:0,class:s([`c-skeleton`,[`c-skeleton--${O.value}`]])},[n(` text 预设 `),o.preset===`text`?(l(!0),r(e,{key:0},u(o.repeat,e=>(l(),r(`div`,{key:e,class:`c-skeleton__text`},[i(`div`,{class:`c-skeleton__line c-skeleton__item`,style:c({width:e===o.repeat?`60%`:`100%`})},null,4)]))),128)):o.preset===`avatar`?(l(),r(e,{key:1},[n(` avatar 预设 `),P[0]||=a(`<div class="c-skeleton__avatar-group"><div class="c-skeleton__circle c-skeleton__item"></div><div class="c-skeleton__avatar-text"><div class="c-skeleton__line c-skeleton__item" style="width:40%;"></div><div class="c-skeleton__line c-skeleton__item c-skeleton__line--sm" style="width:60%;"></div></div></div>`,1)],64)):o.preset===`image`?(l(),r(e,{key:2},[n(` image 预设 `),(l(!0),r(e,null,u(o.repeat,e=>(l(),r(`div`,{key:e,class:`c-skeleton__image c-skeleton__item`},[...P[1]||=[i(`div`,{class:`c-skeleton__image-icon`},[i(`svg`,{viewBox:`0 0 24 24`,fill:`currentColor`,width:`32`,height:`32`},[i(`path`,{d:`M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z`})])],-1)]]))),128))],64)):o.preset===`card`?(l(),r(e,{key:3},[n(` card 预设 `),(l(!0),r(e,null,u(o.repeat,t=>(l(),r(`div`,{key:t,class:`c-skeleton__card`},[M.value.showCover?(l(),r(`div`,f)):n(`v-if`,!0),i(`div`,p,[(l(!0),r(e,null,u(M.value.titleLines,e=>(l(),r(`div`,{key:`t-${e}`,class:`c-skeleton__line c-skeleton__item`,style:c({width:e===M.value.titleLines?`50%`:`80%`})},null,4))),128)),i(`div`,m,[(l(!0),r(e,null,u(M.value.descLines,e=>(l(),r(`div`,{key:`d-${e}`,class:`c-skeleton__line c-skeleton__item c-skeleton__line--sm`,style:c({width:e===M.value.descLines?`70%`:`100%`})},null,4))),128))])]),M.value.showFooter?(l(),r(`div`,h,[...P[2]||=[i(`div`,{class:`c-skeleton__line c-skeleton__item c-skeleton__line--btn`,style:{width:`80px`}},null,-1),i(`div`,{class:`c-skeleton__line c-skeleton__item c-skeleton__line--btn`,style:{width:`80px`}},null,-1)]])):n(`v-if`,!0)]))),128))],64)):o.preset===`table`?(l(),r(e,{key:4},[n(` table 预设 `),i(`div`,g,[k.value.showHeader?(l(),r(`div`,_,[(l(!0),r(e,null,u(k.value.cols,e=>(l(),r(`div`,{key:`h-${e}`,class:`c-skeleton__table-cell`},[...P[3]||=[i(`div`,{class:`c-skeleton__line c-skeleton__item c-skeleton__line--sm`},null,-1)]]))),128)),k.value.showActions?(l(),r(`div`,v,[...P[4]||=[i(`div`,{class:`c-skeleton__line c-skeleton__item c-skeleton__line--sm`,style:{width:`60%`}},null,-1)]])):n(`v-if`,!0)])):n(`v-if`,!0),(l(!0),r(e,null,u(k.value.rows,t=>(l(),r(`div`,{key:`r-${t}`,class:`c-skeleton__table-row`},[(l(!0),r(e,null,u(k.value.cols,e=>(l(),r(`div`,{key:`c-${e}`,class:`c-skeleton__table-cell`},[i(`div`,{class:`c-skeleton__line c-skeleton__item c-skeleton__line--sm`,style:c({width:`${Math.floor(50+t*e*17%50)}%`})},null,4)]))),128)),k.value.showActions?(l(),r(`div`,y,[...P[5]||=[i(`div`,{class:`c-skeleton__action-btns`},[i(`div`,{class:`c-skeleton__line c-skeleton__item c-skeleton__line--mini`,style:{width:`40px`}}),i(`div`,{class:`c-skeleton__line c-skeleton__item c-skeleton__line--mini`,style:{width:`40px`}})],-1)]])):n(`v-if`,!0)]))),128))])],64)):o.preset===`form`?(l(),r(e,{key:5},[n(` form 预设 `),i(`div`,{class:`c-skeleton__form`,style:c({"--form-cols":A.value.cols})},[(l(!0),r(e,null,u(A.value.fields,e=>(l(),r(`div`,{key:e,class:`c-skeleton__form-field`},[A.value.showLabel?(l(),r(`div`,{key:0,class:`c-skeleton__line c-skeleton__item c-skeleton__line--label`,style:c({width:`${60+e*13%30}px`})},null,4)):n(`v-if`,!0),P[6]||=i(`div`,{class:`c-skeleton__line c-skeleton__item c-skeleton__line--input`},null,-1)]))),128)),A.value.showActions?(l(),r(`div`,b,[...P[7]||=[i(`div`,{class:`c-skeleton__line c-skeleton__item c-skeleton__line--btn`,style:{width:`100px`}},null,-1),i(`div`,{class:`c-skeleton__line c-skeleton__item c-skeleton__line--btn`,style:{width:`80px`}},null,-1)]])):n(`v-if`,!0)],4)],64)):o.preset===`list`?(l(),r(e,{key:6},[n(` list 预设 `),(l(!0),r(e,null,u(j.value.items,t=>(l(),r(`div`,{key:t,class:`c-skeleton__list-item`},[j.value.showAvatar?(l(),r(`div`,x)):n(`v-if`,!0),i(`div`,S,[P[8]||=i(`div`,{class:`c-skeleton__line c-skeleton__item`,style:{width:`30%`}},null,-1),(l(!0),r(e,null,u(j.value.descLines,e=>(l(),r(`div`,{key:`d-${e}`,class:`c-skeleton__line c-skeleton__item c-skeleton__line--sm`,style:c({width:e===j.value.descLines?`50%`:`90%`})},null,4))),128))])]))),128))],64)):o.preset===`detail`?(l(),r(e,{key:7},[n(` detail 预设 `),i(`div`,C,[N.value.showAvatar?(l(),r(`div`,w,[...P[9]||=[i(`div`,{class:`c-skeleton__circle c-skeleton__circle--lg c-skeleton__item`},null,-1),i(`div`,{class:`c-skeleton__detail-title`},[i(`div`,{class:`c-skeleton__line c-skeleton__item`,style:{width:`120px`}}),i(`div`,{class:`c-skeleton__line c-skeleton__item c-skeleton__line--sm`,style:{width:`200px`}})],-1)]])):n(`v-if`,!0),i(`div`,T,[(l(!0),r(e,null,u(N.value.fields,t=>(l(),r(`div`,{key:t,class:`c-skeleton__detail-field`},[i(`div`,{class:`c-skeleton__line c-skeleton__item c-skeleton__line--label`,style:c({width:`${50+t*17%40}px`})},null,4),i(`div`,E,[(l(!0),r(e,null,u(N.value.valueLines,e=>(l(),r(`div`,{key:`v-${e}`,class:`c-skeleton__line c-skeleton__item c-skeleton__line--sm`,style:c({width:e===N.value.valueLines?`60%`:`100%`})},null,4))),128))])]))),128))])])],64)):n(`v-if`,!0)],2)):(l(),r(e,{key:1},[n(` 加载完成后显示插槽内容 `),d(t.$slots,`default`)],2112))}});export{D as t};
1
+ import{Fragment as e,computed as t,createCommentVNode as n,createElementBlock as r,createElementVNode as i,createStaticVNode as a,defineComponent as o,normalizeClass as s,normalizeStyle as c,openBlock as l,renderList as u,renderSlot as d}from"vue";const f={key:0,class:`c-skeleton__card-cover c-skeleton__item`},p={class:`c-skeleton__card-body`},m={class:`c-skeleton__card-desc`},h={key:1,class:`c-skeleton__card-footer`},g={class:`c-skeleton__table`},_={key:0,class:`c-skeleton__table-header`},v={key:0,class:`c-skeleton__table-cell c-skeleton__table-cell--action`},y={key:0,class:`c-skeleton__table-cell c-skeleton__table-cell--action`},b={key:0,class:`c-skeleton__form-actions`},x={key:0,class:`c-skeleton__circle c-skeleton__circle--sm c-skeleton__item`},S={class:`c-skeleton__list-content`},C={class:`c-skeleton__detail`},w={key:0,class:`c-skeleton__detail-header`},T={class:`c-skeleton__detail-body`},E={class:`c-skeleton__detail-value`},D=o({name:`C_Skeleton`,__name:`index`,props:{preset:{default:`text`},loading:{type:Boolean,default:!0},animation:{type:[String,Boolean],default:`wave`},repeat:{default:3},borderRadius:{default:`4px`},table:{},form:{},list:{},card:{},detail:{}},setup(o){let D=o,O=t(()=>D.animation===!1?`none`:D.animation),k=(e,t)=>Number.isFinite(e)?Math.min(t,Math.max(1,Math.floor(e))):1,A=t(()=>k(D.repeat,100)),j=t(()=>({rows:k(D.table?.rows??5,100),cols:k(D.table?.cols??4,20),showHeader:D.table?.showHeader??!0,showActions:D.table?.showActions??!0})),M=t(()=>({fields:k(D.form?.fields??6,100),cols:k(D.form?.cols??2,12),showLabel:D.form?.showLabel??!0,showActions:D.form?.showActions??!0})),N=t(()=>({items:k(D.list?.items??5,100),showAvatar:D.list?.showAvatar??!0,descLines:k(D.list?.descLines??2,20)})),P=t(()=>({showCover:D.card?.showCover??!0,titleLines:k(D.card?.titleLines??1,20),descLines:k(D.card?.descLines??2,20),showFooter:D.card?.showFooter??!0})),F=t(()=>({fields:k(D.detail?.fields??6,100),valueLines:k(D.detail?.valueLines??1,20),showAvatar:D.detail?.showAvatar??!0}));return(t,k)=>D.loading?(l(),r(`div`,{key:0,class:s([`c-skeleton`,[`c-skeleton--${O.value}`]]),style:c({"--c-skeleton-radius":o.borderRadius}),role:`status`,"aria-label":`加载中`},[n(` text 预设 `),o.preset===`text`?(l(!0),r(e,{key:0},u(A.value,e=>(l(),r(`div`,{key:e,class:`c-skeleton__text`},[i(`div`,{class:`c-skeleton__line c-skeleton__item`,style:c({width:e===A.value?`60%`:`100%`})},null,4)]))),128)):o.preset===`avatar`?(l(),r(e,{key:1},[n(` avatar 预设 `),k[0]||=a(`<div class="c-skeleton__avatar-group"><div class="c-skeleton__circle c-skeleton__item"></div><div class="c-skeleton__avatar-text"><div class="c-skeleton__line c-skeleton__item" style="width:40%;"></div><div class="c-skeleton__line c-skeleton__item c-skeleton__line--sm" style="width:60%;"></div></div></div>`,1)],64)):o.preset===`image`?(l(),r(e,{key:2},[n(` image 预设 `),(l(!0),r(e,null,u(A.value,e=>(l(),r(`div`,{key:e,class:`c-skeleton__image c-skeleton__item`},[...k[1]||=[i(`div`,{class:`c-skeleton__image-icon`},[i(`svg`,{viewBox:`0 0 24 24`,fill:`currentColor`,width:`32`,height:`32`},[i(`path`,{d:`M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z`})])],-1)]]))),128))],64)):o.preset===`card`?(l(),r(e,{key:3},[n(` card 预设 `),(l(!0),r(e,null,u(A.value,t=>(l(),r(`div`,{key:t,class:`c-skeleton__card`},[P.value.showCover?(l(),r(`div`,f)):n(`v-if`,!0),i(`div`,p,[(l(!0),r(e,null,u(P.value.titleLines,e=>(l(),r(`div`,{key:`t-${e}`,class:`c-skeleton__line c-skeleton__item`,style:c({width:e===P.value.titleLines?`50%`:`80%`})},null,4))),128)),i(`div`,m,[(l(!0),r(e,null,u(P.value.descLines,e=>(l(),r(`div`,{key:`d-${e}`,class:`c-skeleton__line c-skeleton__item c-skeleton__line--sm`,style:c({width:e===P.value.descLines?`70%`:`100%`})},null,4))),128))])]),P.value.showFooter?(l(),r(`div`,h,[...k[2]||=[i(`div`,{class:`c-skeleton__line c-skeleton__item c-skeleton__line--btn`,style:{width:`80px`}},null,-1),i(`div`,{class:`c-skeleton__line c-skeleton__item c-skeleton__line--btn`,style:{width:`80px`}},null,-1)]])):n(`v-if`,!0)]))),128))],64)):o.preset===`table`?(l(),r(e,{key:4},[n(` table 预设 `),i(`div`,g,[j.value.showHeader?(l(),r(`div`,_,[(l(!0),r(e,null,u(j.value.cols,e=>(l(),r(`div`,{key:`h-${e}`,class:`c-skeleton__table-cell`},[...k[3]||=[i(`div`,{class:`c-skeleton__line c-skeleton__item c-skeleton__line--sm`},null,-1)]]))),128)),j.value.showActions?(l(),r(`div`,v,[...k[4]||=[i(`div`,{class:`c-skeleton__line c-skeleton__item c-skeleton__line--sm`,style:{width:`60%`}},null,-1)]])):n(`v-if`,!0)])):n(`v-if`,!0),(l(!0),r(e,null,u(j.value.rows,t=>(l(),r(`div`,{key:`r-${t}`,class:`c-skeleton__table-row`},[(l(!0),r(e,null,u(j.value.cols,e=>(l(),r(`div`,{key:`c-${e}`,class:`c-skeleton__table-cell`},[i(`div`,{class:`c-skeleton__line c-skeleton__item c-skeleton__line--sm`,style:c({width:`${Math.floor(50+t*e*17%50)}%`})},null,4)]))),128)),j.value.showActions?(l(),r(`div`,y,[...k[5]||=[i(`div`,{class:`c-skeleton__action-btns`},[i(`div`,{class:`c-skeleton__line c-skeleton__item c-skeleton__line--mini`,style:{width:`40px`}}),i(`div`,{class:`c-skeleton__line c-skeleton__item c-skeleton__line--mini`,style:{width:`40px`}})],-1)]])):n(`v-if`,!0)]))),128))])],64)):o.preset===`form`?(l(),r(e,{key:5},[n(` form 预设 `),i(`div`,{class:`c-skeleton__form`,style:c({"--form-cols":M.value.cols})},[(l(!0),r(e,null,u(M.value.fields,e=>(l(),r(`div`,{key:e,class:`c-skeleton__form-field`},[M.value.showLabel?(l(),r(`div`,{key:0,class:`c-skeleton__line c-skeleton__item c-skeleton__line--label`,style:c({width:`${60+e*13%30}px`})},null,4)):n(`v-if`,!0),k[6]||=i(`div`,{class:`c-skeleton__line c-skeleton__item c-skeleton__line--input`},null,-1)]))),128)),M.value.showActions?(l(),r(`div`,b,[...k[7]||=[i(`div`,{class:`c-skeleton__line c-skeleton__item c-skeleton__line--btn`,style:{width:`100px`}},null,-1),i(`div`,{class:`c-skeleton__line c-skeleton__item c-skeleton__line--btn`,style:{width:`80px`}},null,-1)]])):n(`v-if`,!0)],4)],64)):o.preset===`list`?(l(),r(e,{key:6},[n(` list 预设 `),(l(!0),r(e,null,u(N.value.items,t=>(l(),r(`div`,{key:t,class:`c-skeleton__list-item`},[N.value.showAvatar?(l(),r(`div`,x)):n(`v-if`,!0),i(`div`,S,[k[8]||=i(`div`,{class:`c-skeleton__line c-skeleton__item`,style:{width:`30%`}},null,-1),(l(!0),r(e,null,u(N.value.descLines,e=>(l(),r(`div`,{key:`d-${e}`,class:`c-skeleton__line c-skeleton__item c-skeleton__line--sm`,style:c({width:e===N.value.descLines?`50%`:`90%`})},null,4))),128))])]))),128))],64)):o.preset===`detail`?(l(),r(e,{key:7},[n(` detail 预设 `),i(`div`,C,[F.value.showAvatar?(l(),r(`div`,w,[...k[9]||=[i(`div`,{class:`c-skeleton__circle c-skeleton__circle--lg c-skeleton__item`},null,-1),i(`div`,{class:`c-skeleton__detail-title`},[i(`div`,{class:`c-skeleton__line c-skeleton__item`,style:{width:`120px`}}),i(`div`,{class:`c-skeleton__line c-skeleton__item c-skeleton__line--sm`,style:{width:`200px`}})],-1)]])):n(`v-if`,!0),i(`div`,T,[(l(!0),r(e,null,u(F.value.fields,t=>(l(),r(`div`,{key:t,class:`c-skeleton__detail-field`},[i(`div`,{class:`c-skeleton__line c-skeleton__item c-skeleton__line--label`,style:c({width:`${50+t*17%40}px`})},null,4),i(`div`,E,[(l(!0),r(e,null,u(F.value.valueLines,e=>(l(),r(`div`,{key:`v-${e}`,class:`c-skeleton__line c-skeleton__item c-skeleton__line--sm`,style:c({width:e===F.value.valueLines?`60%`:`100%`})},null,4))),128))])]))),128))])])],64)):n(`v-if`,!0)],6)):(l(),r(e,{key:1},[n(` 加载完成后显示插槽内容 `),d(t.$slots,`default`)],2112))}});export{D as t};
@@ -1,5 +1,5 @@
1
1
  /* unplugin-vue-components disabled *//* 分割面板组件样式 */
2
- .c-split-pane[data-v-e35daacb] {
2
+ .c-split-pane[data-v-b547c019] {
3
3
  display: flex;
4
4
  width: 100%;
5
5
  height: 100%;
@@ -7,49 +7,49 @@
7
7
  position: relative;
8
8
  /* ─── 方向 ────────────────────────────────── */
9
9
  }
10
- .c-split-pane--horizontal[data-v-e35daacb] {
10
+ .c-split-pane--horizontal[data-v-b547c019] {
11
11
  flex-direction: row;
12
12
  }
13
- .c-split-pane--vertical[data-v-e35daacb] {
13
+ .c-split-pane--vertical[data-v-b547c019] {
14
14
  flex-direction: column;
15
15
  }
16
- .c-split-pane[data-v-e35daacb] {
16
+ .c-split-pane[data-v-b547c019] {
17
17
  /* ─── 拖拽中 ──────────────────────────────── */
18
18
  }
19
- .c-split-pane--dragging .split-panel__content[data-v-e35daacb] {
19
+ .c-split-pane--dragging .split-panel__content[data-v-b547c019] {
20
20
  pointer-events: none;
21
21
  user-select: none;
22
22
  }
23
- .c-split-pane[data-v-e35daacb] {
23
+ .c-split-pane[data-v-b547c019] {
24
24
  /* ─── 禁用 ────────────────────────────────── */
25
25
  }
26
- .c-split-pane--disabled .split-gutter[data-v-e35daacb] {
26
+ .c-split-pane--disabled .split-gutter[data-v-b547c019] {
27
27
  cursor: default !important;
28
28
  opacity: 0.5;
29
29
  }
30
- .c-split-pane--disabled .split-gutter[data-v-e35daacb]:hover {
30
+ .c-split-pane--disabled .split-gutter[data-v-b547c019]:hover {
31
31
  background: transparent;
32
32
  }
33
- .c-split-pane[data-v-e35daacb] {
33
+ .c-split-pane[data-v-b547c019] {
34
34
  /* ─── 折叠过渡 ────────────────────────────── */
35
35
  }
36
- .c-split-pane--collapsed-first .split-panel[data-v-e35daacb], .c-split-pane--collapsed-second .split-panel[data-v-e35daacb] {
36
+ .c-split-pane--collapsed-first .split-panel[data-v-b547c019], .c-split-pane--collapsed-second .split-panel[data-v-b547c019] {
37
37
  transition: width 0.3s ease, height 0.3s ease;
38
38
  }
39
39
 
40
40
  /* ─── 面板 ──────────────────────────────────── */
41
- .split-panel[data-v-e35daacb] {
41
+ .split-panel[data-v-b547c019] {
42
42
  overflow: hidden;
43
43
  position: relative;
44
44
  }
45
- .split-panel__content[data-v-e35daacb] {
45
+ .split-panel__content[data-v-b547c019] {
46
46
  width: 100%;
47
47
  height: 100%;
48
48
  overflow: auto;
49
49
  }
50
50
 
51
51
  /* ─── 分割线手柄 ────────────────────────────── */
52
- .split-gutter[data-v-e35daacb] {
52
+ .split-gutter[data-v-b547c019] {
53
53
  position: relative;
54
54
  display: flex;
55
55
  align-items: center;
@@ -61,61 +61,61 @@
61
61
  outline: none;
62
62
  /* 水平方向 */
63
63
  }
64
- .c-split-pane--horizontal .split-gutter[data-v-e35daacb] {
64
+ .c-split-pane--horizontal .split-gutter[data-v-b547c019] {
65
65
  cursor: col-resize;
66
66
  min-width: 4px;
67
67
  }
68
- .c-split-pane--horizontal .split-gutter[data-v-e35daacb]:hover, .c-split-pane--horizontal .split-gutter[data-v-e35daacb]:focus-visible {
68
+ .c-split-pane--horizontal .split-gutter[data-v-b547c019]:hover, .c-split-pane--horizontal .split-gutter[data-v-b547c019]:focus-visible {
69
69
  background: var(--c-primary, #409eff);
70
70
  }
71
- .split-gutter[data-v-e35daacb] {
71
+ .split-gutter[data-v-b547c019] {
72
72
  /* 垂直方向 */
73
73
  }
74
- .c-split-pane--vertical .split-gutter[data-v-e35daacb] {
74
+ .c-split-pane--vertical .split-gutter[data-v-b547c019] {
75
75
  cursor: row-resize;
76
76
  min-height: 4px;
77
77
  }
78
- .c-split-pane--vertical .split-gutter[data-v-e35daacb]:hover, .c-split-pane--vertical .split-gutter[data-v-e35daacb]:focus-visible {
78
+ .c-split-pane--vertical .split-gutter[data-v-b547c019]:hover, .c-split-pane--vertical .split-gutter[data-v-b547c019]:focus-visible {
79
79
  background: var(--c-primary, #409eff);
80
80
  }
81
- .split-gutter[data-v-e35daacb] {
81
+ .split-gutter[data-v-b547c019] {
82
82
  /* focus 轮廓 */
83
83
  }
84
- .split-gutter[data-v-e35daacb]:focus-visible {
84
+ .split-gutter[data-v-b547c019]:focus-visible {
85
85
  box-shadow: 0 0 0 2px rgba(64, 158, 255, 0.3);
86
86
  }
87
- .split-gutter[data-v-e35daacb] {
87
+ .split-gutter[data-v-b547c019] {
88
88
  /* ─── 视觉指示条 ──────────────────────────── */
89
89
  }
90
- .split-gutter__visual[data-v-e35daacb] {
90
+ .split-gutter__visual[data-v-b547c019] {
91
91
  display: flex;
92
92
  align-items: center;
93
93
  justify-content: center;
94
94
  }
95
- .split-gutter__dots[data-v-e35daacb] {
95
+ .split-gutter__dots[data-v-b547c019] {
96
96
  display: flex;
97
97
  gap: 2px;
98
98
  }
99
- .c-split-pane--horizontal .split-gutter__dots[data-v-e35daacb] {
99
+ .c-split-pane--horizontal .split-gutter__dots[data-v-b547c019] {
100
100
  flex-direction: column;
101
101
  }
102
- .c-split-pane--vertical .split-gutter__dots[data-v-e35daacb] {
102
+ .c-split-pane--vertical .split-gutter__dots[data-v-b547c019] {
103
103
  flex-direction: row;
104
104
  }
105
- .split-gutter__dot[data-v-e35daacb] {
105
+ .split-gutter__dot[data-v-b547c019] {
106
106
  width: 3px;
107
107
  height: 3px;
108
108
  border-radius: 50%;
109
109
  background: var(--c-text-4, #ccc);
110
110
  transition: background-color 0.2s ease;
111
111
  }
112
- .split-gutter:hover .split-gutter__dot[data-v-e35daacb] {
112
+ .split-gutter:hover .split-gutter__dot[data-v-b547c019] {
113
113
  background: #fff;
114
114
  }
115
- .split-gutter[data-v-e35daacb] {
115
+ .split-gutter[data-v-b547c019] {
116
116
  /* ─── 折叠按钮 ────────────────────────────── */
117
117
  }
118
- .split-gutter__collapse-btn[data-v-e35daacb] {
118
+ .split-gutter__collapse-btn[data-v-b547c019] {
119
119
  position: absolute;
120
120
  display: flex;
121
121
  align-items: center;
@@ -133,36 +133,36 @@
133
133
  transition: opacity 0.2s ease, color 0.2s ease, background-color 0.2s ease;
134
134
  z-index: 2;
135
135
  }
136
- .split-gutter:hover .split-gutter__collapse-btn[data-v-e35daacb] {
136
+ .split-gutter:hover .split-gutter__collapse-btn[data-v-b547c019] {
137
137
  opacity: 1;
138
138
  }
139
- .split-gutter__collapse-btn[data-v-e35daacb]:hover {
139
+ .split-gutter__collapse-btn[data-v-b547c019]:hover {
140
140
  color: var(--c-primary, #409eff);
141
141
  background: var(--c-bg, #fff);
142
142
  }
143
- .split-gutter__collapse-btn[data-v-e35daacb] {
143
+ .split-gutter__collapse-btn[data-v-b547c019] {
144
144
  /* 水平方向的定位 */
145
145
  }
146
- .c-split-pane--horizontal .split-gutter__collapse-btn[data-v-e35daacb] {
146
+ .c-split-pane--horizontal .split-gutter__collapse-btn[data-v-b547c019] {
147
147
  left: 50%;
148
148
  transform: translateX(-50%);
149
149
  }
150
- .c-split-pane--horizontal .split-gutter__collapse-btn--first[data-v-e35daacb] {
150
+ .c-split-pane--horizontal .split-gutter__collapse-btn--first[data-v-b547c019] {
151
151
  top: 8px;
152
152
  }
153
- .c-split-pane--horizontal .split-gutter__collapse-btn--second[data-v-e35daacb] {
153
+ .c-split-pane--horizontal .split-gutter__collapse-btn--second[data-v-b547c019] {
154
154
  bottom: 8px;
155
155
  }
156
- .split-gutter__collapse-btn[data-v-e35daacb] {
156
+ .split-gutter__collapse-btn[data-v-b547c019] {
157
157
  /* 垂直方向的定位 */
158
158
  }
159
- .c-split-pane--vertical .split-gutter__collapse-btn[data-v-e35daacb] {
159
+ .c-split-pane--vertical .split-gutter__collapse-btn[data-v-b547c019] {
160
160
  top: 50%;
161
161
  transform: translateY(-50%);
162
162
  }
163
- .c-split-pane--vertical .split-gutter__collapse-btn--first[data-v-e35daacb] {
163
+ .c-split-pane--vertical .split-gutter__collapse-btn--first[data-v-b547c019] {
164
164
  left: 8px;
165
165
  }
166
- .c-split-pane--vertical .split-gutter__collapse-btn--second[data-v-e35daacb] {
166
+ .c-split-pane--vertical .split-gutter__collapse-btn--second[data-v-b547c019] {
167
167
  right: 8px;
168
168
  }
@@ -1 +1 @@
1
- require(`./chunk.cjs`);const e=require(`./C_Icon2.cjs`),t=require(`./export-helper.cjs`);let n=require(`vue`);function r(e){let{containerRef:t,direction:r,defaultSize:i,minSize:a,maxSize:o,disabled:s,collapsible:c,step:l,onResize:u,onCollapse:d,onExpand:f,onDragStart:p,onDragEnd:m}=e,h=(0,n.ref)(i),g=(0,n.ref)(!1),_=(0,n.ref)(null),v=(0,n.ref)(i),y=``,b=``,x=(0,n.computed)(()=>_.value===`first`),S=(0,n.computed)(()=>_.value===`second`),C=e=>Math.min(o,Math.max(a,e)),w=()=>{let e=t.value;return e?r.value===`horizontal`?e.offsetWidth:e.offsetHeight:0},T=()=>{let e=t.value;if(!e)return 0;let n=e.getBoundingClientRect();return r.value===`horizontal`?n.left:n.top},E=e=>{let t=w();return t===0?h.value:C((e-T())/t*100)},D=e=>e instanceof TouchEvent?r.value===`horizontal`?e.touches[0].clientX:e.touches[0].clientY:r.value===`horizontal`?e.clientX:e.clientY,O=e=>{let t=C(e);h.value=t,u?.(t,100-t)},k=e=>{if(!g.value||s.value)return;e.preventDefault();let t=E(D(e));_.value&&=null,O(t)},A=()=>{g.value&&(g.value=!1,document.body.style.cursor=y,document.body.style.userSelect=b,m?.(h.value),document.removeEventListener(`mousemove`,k),document.removeEventListener(`mouseup`,A),document.removeEventListener(`touchmove`,k),document.removeEventListener(`touchend`,A))},j=e=>{s.value||g.value||(e.preventDefault(),e.currentTarget?.focus(),g.value=!0,y=document.body.style.cursor,b=document.body.style.userSelect,document.body.style.cursor=r.value===`horizontal`?`col-resize`:`row-resize`,document.body.style.userSelect=`none`,p?.(h.value),document.addEventListener(`mousemove`,k),document.addEventListener(`mouseup`,A),document.addEventListener(`touchmove`,k,{passive:!1}),document.addEventListener(`touchend`,A))},M=()=>{s.value||!c.value||F(`first`)},N=(e=`first`)=>{!c.value||_.value===e||(_.value||(v.value=h.value),_.value=e,e===`first`?h.value=0:h.value=100,d?.(e),u?.(h.value,100-h.value))},P=()=>{if(!_.value)return;let e=_.value;_.value=null,h.value=v.value,f?.(e),u?.(h.value,100-h.value)},F=(e=`first`)=>{_.value?P():N(e)},I=(e,t)=>({ArrowLeft:t?-l:0,ArrowRight:t?l:0,ArrowUp:t?0:-l,ArrowDown:t?0:l})[e]??null;return(0,n.onUnmounted)(()=>{g.value&&=(document.body.style.cursor=y,document.body.style.userSelect=b,!1),document.removeEventListener(`mousemove`,k),document.removeEventListener(`mouseup`,A),document.removeEventListener(`touchmove`,k),document.removeEventListener(`touchend`,A)}),{panelSize:h,isDragging:g,collapsedTarget:_,isFirstCollapsed:x,isSecondCollapsed:S,handleMouseDown:j,handleDoubleClick:M,handleKeyDown:e=>{if(s.value)return;if(e.key===`Home`){O(a),e.preventDefault();return}if(e.key===`End`){O(o),e.preventDefault();return}let t=I(e.key,r.value===`horizontal`);t===null||t===0||(e.preventDefault(),_.value&&=null,O(h.value+t))},collapse:N,expand:P,toggle:F,resetSize:()=>{_.value=null,h.value=i,u?.(i,100-i)},setSize:e=>{_.value=null,O(e)},getPanelInfo:()=>({first:{size:h.value,collapsed:x.value},second:{size:100-h.value,collapsed:S.value}})}}const i={class:`split-panel__content`},a=[`aria-orientation`,`aria-valuenow`],o={class:`split-gutter__visual`},s={class:`split-gutter__dots`},c=[`title`],l=[`title`],u={class:`split-panel__content`},d=(0,n.defineComponent)({name:`C_SplitPane`,__name:`index`,props:{direction:{default:`horizontal`},defaultSize:{default:50},minSize:{default:0},maxSize:{default:100},disabled:{type:Boolean,default:!1},collapsible:{type:Boolean,default:!0},showCollapseButton:{type:Boolean,default:!0},gutterSize:{default:6},step:{default:2}},emits:[`resize`,`collapse`,`expand`,`drag-start`,`drag-end`],setup(t,{expose:d,emit:f}){let p=t,m=f,h=(0,n.ref)(null),{panelSize:g,isDragging:_,isFirstCollapsed:v,isSecondCollapsed:y,handleMouseDown:b,handleDoubleClick:x,handleKeyDown:S,collapse:C,expand:w,toggle:T,resetSize:E,setSize:D,getPanelInfo:O}=r({containerRef:h,direction:(0,n.toRef)(p,`direction`),defaultSize:p.defaultSize,minSize:p.minSize,maxSize:p.maxSize,disabled:(0,n.toRef)(p,`disabled`),collapsible:(0,n.toRef)(p,`collapsible`),step:p.step,onResize:(e,t)=>m(`resize`,e,t),onCollapse:e=>m(`collapse`,e),onExpand:e=>m(`expand`,e),onDragStart:e=>m(`drag-start`,e),onDragEnd:e=>m(`drag-end`,e)}),k=(0,n.computed)(()=>{let e=`calc(${g.value}% - ${p.gutterSize/2}px)`;return p.direction===`horizontal`?{width:e}:{height:e}}),A=(0,n.computed)(()=>{let e=`calc(${100-g.value}% - ${p.gutterSize/2}px)`;return p.direction===`horizontal`?{width:e}:{height:e}}),j=(0,n.computed)(()=>p.direction===`horizontal`?{width:`${p.gutterSize}px`}:{height:`${p.gutterSize}px`}),M=(0,n.computed)(()=>p.direction===`horizontal`?v.value?`mdi:chevron-right`:`mdi:chevron-left`:v.value?`mdi:chevron-down`:`mdi:chevron-up`),N=(0,n.computed)(()=>p.direction===`horizontal`?y.value?`mdi:chevron-left`:`mdi:chevron-right`:y.value?`mdi:chevron-up`:`mdi:chevron-down`);return d({collapse:C,expand:w,toggle:T,resetSize:E,getPanelInfo:O,setSize:D}),(r,d)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{ref_key:`containerRef`,ref:h,class:(0,n.normalizeClass)([`c-split-pane`,[`c-split-pane--${t.direction}`,{"c-split-pane--dragging":(0,n.unref)(_),"c-split-pane--disabled":t.disabled,"c-split-pane--collapsed-first":(0,n.unref)(v),"c-split-pane--collapsed-second":(0,n.unref)(y)}]])},[(0,n.createCommentVNode)(` 首面板 `),(0,n.createElementVNode)(`div`,{class:`split-panel split-panel--first`,style:(0,n.normalizeStyle)(k.value)},[(0,n.createElementVNode)(`div`,i,[(0,n.renderSlot)(r.$slots,`first`,{},void 0,!0)])],4),(0,n.createCommentVNode)(` 分割线手柄 `),(0,n.createElementVNode)(`div`,{class:`split-gutter`,style:(0,n.normalizeStyle)(j.value),role:`separator`,"aria-orientation":t.direction===`horizontal`?`vertical`:`horizontal`,"aria-valuenow":Math.round((0,n.unref)(g)),"aria-valuemin":0,"aria-valuemax":100,tabindex:`0`,onMousedown:d[4]||=(...e)=>(0,n.unref)(b)&&(0,n.unref)(b)(...e),onTouchstart:d[5]||=(0,n.withModifiers)((...e)=>(0,n.unref)(b)&&(0,n.unref)(b)(...e),[`prevent`]),onDblclick:d[6]||=(...e)=>(0,n.unref)(x)&&(0,n.unref)(x)(...e),onKeydown:d[7]||=(...e)=>(0,n.unref)(S)&&(0,n.unref)(S)(...e)},[(0,n.createElementVNode)(`div`,o,[(0,n.createElementVNode)(`div`,s,[((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`,title:(0,n.unref)(v)?`展开首面板`:`折叠首面板`,onClick:d[0]||=(0,n.withModifiers)(e=>(0,n.unref)(T)(`first`),[`stop`]),onMousedown:d[1]||=(0,n.withModifiers)(()=>{},[`stop`])},[(0,n.createVNode)(e.t,{name:M.value,size:16,color:`currentColor`},null,8,[`name`])],40,c),(0,n.createElementVNode)(`button`,{class:`split-gutter__collapse-btn split-gutter__collapse-btn--second`,title:(0,n.unref)(y)?`展开第二面板`:`折叠第二面板`,onClick:d[2]||=(0,n.withModifiers)(e=>(0,n.unref)(T)(`second`),[`stop`]),onMousedown:d[3]||=(0,n.withModifiers)(()=>{},[`stop`])},[(0,n.createVNode)(e.t,{name:N.value,size:16,color:`currentColor`},null,8,[`name`])],40,l)],64)):(0,n.createCommentVNode)(`v-if`,!0)],44,a),(0,n.createCommentVNode)(` 第二面板 `),(0,n.createElementVNode)(`div`,{class:`split-panel split-panel--second`,style:(0,n.normalizeStyle)(A.value)},[(0,n.createElementVNode)(`div`,u,[(0,n.renderSlot)(r.$slots,`second`,{},void 0,!0)])],4)],2))}});var f=t.t(d,[[`__scopeId`,`data-v-e35daacb`]]);Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return f}});
1
+ require(`./chunk.cjs`);const e=require(`./C_Icon2.cjs`),t=require(`./export-helper.cjs`);let n=require(`vue`);function r(e){let{containerRef:t,direction:r,defaultSize:i,minSize:a,maxSize:o,disabled:s,collapsible:c,step:l,onResize:u,onCollapse:d,onExpand:f,onDragStart:p,onDragEnd:m}=e,h=Number.isFinite(a)?a:0,g=Number.isFinite(o)?o:100,_=Math.max(0,Math.min(100,Math.min(h,g))),v=Math.max(0,Math.min(100,Math.max(h,g))),y=Math.min(v,Math.max(_,Number.isFinite(i)?i:50)),b=(0,n.ref)(y),x=(0,n.ref)(!1),S=(0,n.ref)(null),C=(0,n.ref)(y),w=``,T=``,E=(0,n.computed)(()=>S.value===`first`),D=(0,n.computed)(()=>S.value===`second`),O=e=>Number.isFinite(e)?Math.min(v,Math.max(_,e)):b.value,k=()=>{let e=t.value;return e?r.value===`horizontal`?e.offsetWidth:e.offsetHeight:0},A=()=>{let e=t.value;if(!e)return 0;let n=e.getBoundingClientRect();return r.value===`horizontal`?n.left:n.top},j=e=>{let t=k();return t===0?b.value:O((e-A())/t*100)},M=e=>e instanceof TouchEvent?r.value===`horizontal`?e.touches[0].clientX:e.touches[0].clientY:r.value===`horizontal`?e.clientX:e.clientY,N=e=>{let t=O(e);t!==b.value&&(b.value=t,u?.(t,100-t))},P=e=>{if(!x.value||s.value)return;e.preventDefault();let t=j(M(e));S.value&&=null,N(t)},F=()=>{x.value&&(x.value=!1,document.body.style.cursor=w,document.body.style.userSelect=T,m?.(b.value),document.removeEventListener(`mousemove`,P),document.removeEventListener(`mouseup`,F),document.removeEventListener(`touchmove`,P),document.removeEventListener(`touchend`,F))},I=e=>{s.value||x.value||(e.preventDefault(),e.currentTarget?.focus(),x.value=!0,w=document.body.style.cursor,T=document.body.style.userSelect,document.body.style.cursor=r.value===`horizontal`?`col-resize`:`row-resize`,document.body.style.userSelect=`none`,p?.(b.value),document.addEventListener(`mousemove`,P),document.addEventListener(`mouseup`,F),document.addEventListener(`touchmove`,P,{passive:!1}),document.addEventListener(`touchend`,F))},L=()=>{s.value||!c.value||B(`first`)},R=(e=`first`)=>{!c.value||S.value===e||(S.value||(C.value=b.value),S.value=e,e===`first`?b.value=0:b.value=100,d?.(e),u?.(b.value,100-b.value))},z=()=>{if(!S.value)return;let e=S.value;S.value=null,b.value=O(C.value),f?.(e),u?.(b.value,100-b.value)},B=(e=`first`)=>{S.value===e?z():R(e)},V=(e,t)=>{let n=Number.isFinite(l)&&l>0?l:2;return{ArrowLeft:t?-n:0,ArrowRight:t?n:0,ArrowUp:t?0:-n,ArrowDown:t?0:n}[e]??null};return(0,n.onUnmounted)(()=>{x.value&&=(document.body.style.cursor=w,document.body.style.userSelect=T,!1),document.removeEventListener(`mousemove`,P),document.removeEventListener(`mouseup`,F),document.removeEventListener(`touchmove`,P),document.removeEventListener(`touchend`,F)}),{panelSize:b,isDragging:x,collapsedTarget:S,isFirstCollapsed:E,isSecondCollapsed:D,handleMouseDown:I,handleDoubleClick:L,handleKeyDown:e=>{if(s.value)return;if(e.key===`Home`){N(_),e.preventDefault();return}if(e.key===`End`){N(v),e.preventDefault();return}let t=V(e.key,r.value===`horizontal`);t===null||t===0||(e.preventDefault(),S.value&&=null,N(b.value+t))},collapse:R,expand:z,toggle:B,resetSize:()=>{S.value=null,b.value=y,u?.(y,100-y)},setSize:e=>{S.value=null,N(e)},getPanelInfo:()=>({first:{size:b.value,collapsed:E.value},second:{size:100-b.value,collapsed:D.value}})}}const i={class:`split-panel__content`},a=[`aria-orientation`,`aria-valuenow`,`aria-valuemin`,`aria-valuemax`,`aria-disabled`,`tabindex`],o={class:`split-gutter__visual`},s={class:`split-gutter__dots`},c=[`title`],l=[`title`],u={class:`split-panel__content`},d=(0,n.defineComponent)({name:`C_SplitPane`,__name:`index`,props:{direction:{default:`horizontal`},defaultSize:{default:50},minSize:{default:0},maxSize:{default:100},disabled:{type:Boolean,default:!1},collapsible:{type:Boolean,default:!0},showCollapseButton:{type:Boolean,default:!0},gutterSize:{default:6},step:{default:2}},emits:[`resize`,`collapse`,`expand`,`drag-start`,`drag-end`],setup(t,{expose:d,emit:f}){let p=t,m=f,h=(0,n.ref)(null),{panelSize:g,isDragging:_,isFirstCollapsed:v,isSecondCollapsed:y,handleMouseDown:b,handleDoubleClick:x,handleKeyDown:S,collapse:C,expand:w,toggle:T,resetSize:E,setSize:D,getPanelInfo:O}=r({containerRef:h,direction:(0,n.toRef)(p,`direction`),defaultSize:p.defaultSize,minSize:p.minSize,maxSize:p.maxSize,disabled:(0,n.toRef)(p,`disabled`),collapsible:(0,n.toRef)(p,`collapsible`),step:p.step,onResize:(e,t)=>m(`resize`,e,t),onCollapse:e=>m(`collapse`,e),onExpand:e=>m(`expand`,e),onDragStart:e=>m(`drag-start`,e),onDragEnd:e=>m(`drag-end`,e)}),k=(0,n.computed)(()=>{let e=`calc(${g.value}% - ${Math.max(0,p.gutterSize)/2}px)`;return p.direction===`horizontal`?{width:e}:{height:e}}),A=(0,n.computed)(()=>{let e=`calc(${100-g.value}% - ${Math.max(0,p.gutterSize)/2}px)`;return p.direction===`horizontal`?{width:e}:{height:e}}),j=(0,n.computed)(()=>p.direction===`horizontal`?{width:`${Math.max(0,p.gutterSize)}px`}:{height:`${Math.max(0,p.gutterSize)}px`}),M=(0,n.computed)(()=>p.direction===`horizontal`?v.value?`mdi:chevron-right`:`mdi:chevron-left`:v.value?`mdi:chevron-down`:`mdi:chevron-up`),N=(0,n.computed)(()=>p.direction===`horizontal`?y.value?`mdi:chevron-left`:`mdi:chevron-right`:y.value?`mdi:chevron-up`:`mdi:chevron-down`);return d({collapse:C,expand:w,toggle:T,resetSize:E,getPanelInfo:O,setSize:D}),(r,d)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{ref_key:`containerRef`,ref:h,class:(0,n.normalizeClass)([`c-split-pane`,[`c-split-pane--${t.direction}`,{"c-split-pane--dragging":(0,n.unref)(_),"c-split-pane--disabled":t.disabled,"c-split-pane--collapsed-first":(0,n.unref)(v),"c-split-pane--collapsed-second":(0,n.unref)(y)}]])},[(0,n.createCommentVNode)(` 首面板 `),(0,n.createElementVNode)(`div`,{class:`split-panel split-panel--first`,style:(0,n.normalizeStyle)(k.value)},[(0,n.createElementVNode)(`div`,i,[(0,n.renderSlot)(r.$slots,`first`,{},void 0,!0)])],4),(0,n.createCommentVNode)(` 分割线手柄 `),(0,n.createElementVNode)(`div`,{class:`split-gutter`,style:(0,n.normalizeStyle)(j.value),role:`separator`,"aria-orientation":t.direction===`horizontal`?`vertical`:`horizontal`,"aria-valuenow":Math.round((0,n.unref)(g)),"aria-valuemin":Math.min(t.minSize,t.maxSize),"aria-valuemax":Math.max(t.minSize,t.maxSize),"aria-disabled":t.disabled||void 0,tabindex:t.disabled?-1:0,onMousedown:d[4]||=(...e)=>(0,n.unref)(b)&&(0,n.unref)(b)(...e),onTouchstart:d[5]||=(0,n.withModifiers)((...e)=>(0,n.unref)(b)&&(0,n.unref)(b)(...e),[`prevent`]),onDblclick:d[6]||=(...e)=>(0,n.unref)(x)&&(0,n.unref)(x)(...e),onKeydown:d[7]||=(...e)=>(0,n.unref)(S)&&(0,n.unref)(S)(...e)},[(0,n.createElementVNode)(`div`,o,[(0,n.createElementVNode)(`div`,s,[((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`,title:(0,n.unref)(v)?`展开首面板`:`折叠首面板`,onClick:d[0]||=(0,n.withModifiers)(e=>(0,n.unref)(T)(`first`),[`stop`]),onMousedown:d[1]||=(0,n.withModifiers)(()=>{},[`stop`])},[(0,n.createVNode)(e.t,{name:M.value,size:16,color:`currentColor`},null,8,[`name`])],40,c),(0,n.createElementVNode)(`button`,{class:`split-gutter__collapse-btn split-gutter__collapse-btn--second`,title:(0,n.unref)(y)?`展开第二面板`:`折叠第二面板`,onClick:d[2]||=(0,n.withModifiers)(e=>(0,n.unref)(T)(`second`),[`stop`]),onMousedown:d[3]||=(0,n.withModifiers)(()=>{},[`stop`])},[(0,n.createVNode)(e.t,{name:N.value,size:16,color:`currentColor`},null,8,[`name`])],40,l)],64)):(0,n.createCommentVNode)(`v-if`,!0)],44,a),(0,n.createCommentVNode)(` 第二面板 `),(0,n.createElementVNode)(`div`,{class:`split-panel split-panel--second`,style:(0,n.normalizeStyle)(A.value)},[(0,n.createElementVNode)(`div`,u,[(0,n.renderSlot)(r.$slots,`second`,{},void 0,!0)])],4)],2))}});var f=t.t(d,[[`__scopeId`,`data-v-b547c019`]]);Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return f}});