@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
package/dist/C_Guide2.js CHANGED
@@ -1 +1 @@
1
- import{t as e}from"./C_Icon2.js";import{computed as t,createBlock as n,createCommentVNode as r,createElementVNode as i,createVNode as a,defineComponent as o,onBeforeUnmount as s,openBlock as c,toDisplayString as l,unref as u,withCtx as d}from"vue";import{NButton as f,NTooltip as p}from"naive-ui";import{driver as m}from"driver.js";const h=o({name:`C_Guide`,__name:`index`,props:{steps:{default:()=>[]},doneBtnText:{default:`完成`},nextBtnText:{default:`下一步`},prevBtnText:{default:`上一步`},showProgress:{type:Boolean,default:!0},keyboard:{type:Boolean,default:!0},animate:{type:Boolean,default:!0},allowClose:{type:Boolean,default:!0},theme:{},persistence:{},popoverClass:{default:`driverjs-theme`},showTrigger:{type:Boolean,default:!0},triggerTooltip:{default:`功能引导`},triggerIcon:{default:`mdi:sign-routes`}},emits:[`start`,`complete`,`close`,`step-change`],setup(o,{expose:h,emit:g}){let _=o,v=g,y=null,b=t(()=>`${_.persistence?.keyPrefix??`c_guide`}_completed`),x=()=>{if(!_.persistence?.enabled)return!1;try{return localStorage.getItem(b.value)===`true`}catch{return!1}},S=()=>{if(_.persistence?.enabled)try{localStorage.setItem(b.value,`true`)}catch{}},C=()=>{try{localStorage.removeItem(b.value)}catch{}},w=()=>_.steps.filter(e=>!e.skipIf?.()),T=()=>_.popoverClass||``,E=(e=!1)=>{if(!e&&x())return;let t=w();if(!t.length){console.warn(`[C_Guide] 未提供引导步骤(steps),请通过 :steps prop 传入。`);return}y?.destroy();let n=0,r=!1,i=_.theme?.overlayOpacity===void 0?{}:{overlayOpacity:_.theme.overlayOpacity},a=m({popoverClass:T(),animate:_.animate,showProgress:_.showProgress,allowClose:_.allowClose,allowKeyboardControl:_.keyboard,...i,doneBtnText:_.doneBtnText,nextBtnText:_.nextBtnText,prevBtnText:_.prevBtnText,steps:t.map(e=>({element:e.element,popover:e.popover})),onPopoverRender:e=>{_.theme?.popoverBgColor&&(e.wrapper.style.backgroundColor=_.theme.popoverBgColor),_.theme?.popoverTextColor&&(e.wrapper.style.color=_.theme.popoverTextColor),_.theme?.borderRadius&&(e.wrapper.style.borderRadius=_.theme.borderRadius),_.theme?.primaryColor&&(e.nextButton.style.backgroundColor=_.theme.primaryColor,e.nextButton.style.borderColor=_.theme.primaryColor)},onHighlightStarted:(e,r,{state:i})=>{n=i.activeIndex??n;let a=t[n];a&&(a.onHighlightStarted?.(e,a),v(`step-change`,n,a))},onDeselected:e=>{let r=t[n];r?.onDeselected?.(e,r)},onNextClick:()=>{a.isLastStep()?(r=!0,a.destroy()):a.moveNext()},onDestroyStarted:()=>{r?(S(),v(`complete`)):v(`close`,n),y=null,a.destroy()}});v(`start`),y=a,a.drive()};return s(()=>{y?.destroy(),y=null}),h({startGuide:E,resetCompleted:C,isCompleted:x}),(t,o)=>_.showTrigger?(c(),n(u(p),{key:0,placement:`bottom`,trigger:`hover`},{trigger:d(()=>[a(u(f),{text:``,onClick:E},{default:d(()=>[a(e,{name:_.triggerIcon,size:18},null,8,[`name`])]),_:1})]),default:d(()=>[i(`span`,null,l(_.triggerTooltip),1)]),_:1})):r(`v-if`,!0)}});export{h as t};
1
+ import{t as e}from"./C_Icon2.js";import{t}from"./export-helper.js";import{computed as n,createBlock as r,createCommentVNode as i,createElementVNode as a,createVNode as o,defineComponent as s,onBeforeUnmount as c,openBlock as l,ref as u,toDisplayString as d,unref as f,watch as p,withCtx as m}from"vue";import{NButton as h,NTooltip as g,useThemeVars as _}from"naive-ui";const v={navigation:`<rect x="34" y="12" width="56" height="72" rx="6" fill="currentColor" opacity=".12"/><path d="M46 30h30M46 48h30M46 66h20"/><rect x="108" y="12" width="118" height="72" rx="6" fill="currentColor" opacity=".07"/><path d="M122 32h64M122 48h90M122 64h74"/>`,search:`<rect x="28" y="26" width="204" height="44" rx="10" fill="currentColor" opacity=".09"/><circle cx="56" cy="46" r="8"/><path d="m62 52 6 6M86 44h104M86 55h70"/>`,tabs:`<rect x="28" y="24" width="204" height="56" rx="6" fill="currentColor" opacity=".07"/><rect x="40" y="16" width="58" height="26" rx="6" fill="currentColor" opacity=".2"/><path d="M50 29h25m10-3 6 6m0-6-6 6M112 29h38M166 29h38M44 56h100M44 67h144"/>`,account:`<circle cx="60" cy="48" r="22" fill="currentColor" opacity=".12"/><circle cx="60" cy="41" r="6"/><path d="M49 60c0-13 22-13 22 0M94 40h40m-8-6 8 6-8 6M94 58h40m-32-6-8 6 8 6"/><rect x="154" y="20" width="62" height="56" rx="6" fill="currentColor" opacity=".09"/><path d="M168 36h34M168 48h34M168 60h22"/>`,overview:`<rect x="28" y="14" width="204" height="68" rx="8" fill="currentColor" opacity=".07"/><path d="M42 30h76M42 42h52"/><rect x="42" y="54" width="48" height="16" rx="4"/><rect x="106" y="54" width="48" height="16" rx="4"/><rect x="170" y="54" width="48" height="16" rx="4"/>`,notification:`<circle cx="130" cy="48" r="36" fill="currentColor" opacity=".07"/><path d="M109 63h42l-6-10V40a15 15 0 0 0-30 0v13l-6 10ZM124 71h12"/><circle cx="150" cy="26" r="8" fill="currentColor" opacity=".3"/>`,fullscreen:`<rect x="50" y="14" width="160" height="68" rx="8" fill="currentColor" opacity=".07"/><path d="M66 40V28h20M174 28h20v12M66 56v12h20M174 68h20V56"/><rect x="106" y="34" width="48" height="28" rx="4"/>`,language:`<rect x="54" y="18" width="72" height="54" rx="8" fill="currentColor" opacity=".1"/><rect x="134" y="24" width="72" height="54" rx="8" fill="currentColor" opacity=".07"/><path d="M70 34h40M90 27v7M79 34c2 15 9 22 27 28M101 34c-3 15-13 24-28 29M151 64l16-27 16 27M158 53h18"/>`,theme:`<circle cx="78" cy="48" r="15" fill="currentColor" opacity=".12"/><path d="M78 24v-6M78 78v-6M54 48h-6M108 48h-6M61 31l-5-5M100 70l-5-5M61 65l-5 5M100 26l-5 5M168 22a26 26 0 1 0 28 42 26 26 0 0 1-28-42Z"/>`,settings:`<rect x="44" y="14" width="172" height="68" rx="8" fill="currentColor" opacity=".07"/><path d="M62 31h136M62 48h136M62 65h136"/><circle cx="94" cy="31" r="5" fill="currentColor"/><circle cx="168" cy="48" r="5" fill="currentColor"/><circle cx="124" cy="65" r="5" fill="currentColor"/>`};function y(e){return e.width>0&&e.height>0&&e.right>0&&e.bottom>0&&e.left<window.innerWidth&&e.top<window.innerHeight}function b(e){if(!(!e||typeof document>`u`))return(typeof e==`string`?Array.from(document.querySelectorAll(e)):[typeof e==`function`?e():e]).find(e=>{if(!e?.isConnected)return!1;let t=e.getBoundingClientRect(),n=e.ownerDocument.defaultView?.getComputedStyle(e);return y(t)&&n?.visibility!==`hidden`})}function x(e){let{illustration:t}=e.popover,n=t&&v[t];return n?`<div class="c-guide-figure"><svg viewBox="0 0 260 96" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round">${n}</svg></div><div class="c-guide-copy">${e.popover.description}</div>`:e.popover.description}var S=t(s({name:`C_Guide`,__name:`index`,props:{steps:{default:()=>[]},doneBtnText:{default:`完成`},nextBtnText:{default:`下一步`},prevBtnText:{default:`上一步`},showSkipButton:{type:Boolean,default:!0},skipBtnText:{default:`跳过引导`},showProgress:{type:Boolean,default:!0},keyboard:{type:Boolean,default:!0},animate:{type:Boolean,default:!0},allowClose:{type:Boolean,default:!0},skipMissingElements:{type:Boolean,default:!0},theme:{},persistence:{},popoverClass:{default:`driverjs-theme`},showTrigger:{type:Boolean,default:!0},triggerTooltip:{default:`功能引导`},triggerIcon:{default:`mdi:sign-routes`}},emits:[`start`,`complete`,`close`,`skip`,`step-change`,`error`],setup(t,{expose:s,emit:v}){let y=t,S=v,C=_(),w=u(!1),T=n(()=>`${y.persistence?.keyPrefix??`c_guide`}_completed`),E=null,D,O=0,k=()=>{if(!y.persistence?.enabled)return!1;try{return localStorage.getItem(T.value)===`true`}catch{return!1}},A=()=>{if(y.persistence?.enabled)try{localStorage.setItem(T.value,`true`)}catch{}},j=()=>{try{localStorage.removeItem(T.value)}catch{}},M=()=>{O++,w.value=!1;let e=D;D=void 0,e?.()},N=e=>{let t=y.theme??{},n={"--c-guide-bg":t.popoverBgColor??C.value.popoverColor,"--c-guide-text":t.popoverTextColor??C.value.textColor1,"--c-guide-text-secondary":t.popoverTextColor??C.value.textColor2,"--c-guide-text-muted":C.value.textColor3,"--c-guide-primary":t.primaryColor??C.value.primaryColor,"--c-guide-primary-hover":t.primaryColor??C.value.primaryColorHover,"--c-guide-border":C.value.borderColor,"--c-guide-radius":t.borderRadius??`14px`};for(let[t,r]of Object.entries(n))e.wrapper.style.setProperty(t,r)},P=()=>y.theme?.overlayOpacity===void 0?{}:{overlayOpacity:y.theme.overlayOpacity},F=e=>w.value||!e&&k(),I=async(e=!1)=>{if(F(e))return;M();let t=O;w.value=!0;try{let{driver:e}=await import(`driver.js`);if(t!==O)return;let n=y.steps.filter(e=>!e.skipIf?.()&&(!y.skipMissingElements||!e.element||b(e.element)));if(!n.length)return;let r=`close`,i=0,a=!1,o=!1,s=e=>{e.nextButton.disabled=o,e.previousButton.disabled=o},c=()=>{a||(a=!0,E===f&&(E=null,D=void 0),r===`complete`?(A(),S(`complete`)):r!==`dispose`&&(r===`skip`&&S(`skip`,i),S(`close`,i)))},l=()=>{f.destroy(),c()},u=()=>{o||(f.isLastStep()?(r=`complete`,l()):f.moveNext())},d=P(),f=e({popoverClass:`c-guide-popover ${y.popoverClass}`.trim(),animate:y.animate&&!window.matchMedia(`(prefers-reduced-motion: reduce)`).matches,showProgress:y.showProgress,progressText:`{{current}} / {{total}}`,allowClose:y.allowClose,allowKeyboardControl:y.keyboard,skipMissingElement:y.skipMissingElements,...d,doneBtnText:y.doneBtnText,nextBtnText:y.nextBtnText,prevBtnText:y.prevBtnText,steps:n.map(e=>({element:e.element?()=>b(e.element):void 0,popover:{...e.popover,description:x(e)},onHighlightStarted:(t,n,{state:r})=>{o=!0,i=r.activeIndex??i,e.onHighlightStarted?.(t,e),S(`step-change`,i,e)},onHighlighted:()=>{o=!1;let{popover:e}=f.getState();e&&s(e)},onDeselected:t=>e.onDeselected?.(t,e)})),onPopoverRender:e=>{if(N(e),s(e),y.showSkipButton&&y.allowClose){let t=document.createElement(`button`);t.type=`button`,t.className=`c-guide-skip-btn`,t.textContent=y.skipBtnText,t.addEventListener(`click`,()=>{r=`skip`,l()}),e.footer.prepend(t)}},onNextClick:u,onPrevClick:()=>{o||f.movePrevious()},onDestroyStarted:l,onDestroyed:c});E=f,D=()=>{r=`dispose`,l()},S(`start`),t===O&&f.drive()}catch(e){t===O&&(M(),S(`error`,e))}finally{t===O&&(w.value=!1)}};return c(M),p(()=>y.steps,M),p([C,()=>y.theme],()=>{let e=E?.getState().popover;e&&N(e)},{deep:!0}),s({startGuide:I,stopGuide:M,resetCompleted:j,isCompleted:k}),(t,n)=>y.showTrigger?(l(),r(f(g),{key:0,placement:`bottom`,trigger:`hover`},{trigger:m(()=>[o(f(h),{text:``,loading:w.value,"aria-label":y.triggerTooltip,onClick:n[0]||=e=>I(!0)},{default:m(()=>[o(e,{name:y.triggerIcon,size:18},null,8,[`name`])]),_:1},8,[`loading`,`aria-label`])]),default:m(()=>[a(`span`,null,d(y.triggerTooltip),1)]),_:1})):i(`v-if`,!0)}}),[[`__scopeId`,`data-v-1dcaf6fa`]]);export{S as t};
package/dist/C_Icon.css CHANGED
@@ -1,54 +1,54 @@
1
- /* unplugin-vue-components disabled */.c-icon[data-v-d0d8dba0] {
1
+ /* unplugin-vue-components disabled */.c-icon[data-v-711aedcd] {
2
2
  display: inline-flex;
3
3
  align-items: center;
4
4
  justify-content: center;
5
5
  user-select: none;
6
6
  transition: all 0.2s ease-in-out;
7
7
  }
8
- .c-icon--clickable[data-v-d0d8dba0] {
8
+ .c-icon--clickable[data-v-711aedcd] {
9
9
  cursor: pointer;
10
10
  }
11
- .c-icon--clickable[data-v-d0d8dba0]:hover {
11
+ .c-icon--clickable[data-v-711aedcd]:hover {
12
12
  opacity: 0.8;
13
13
  transform: scale(1.05);
14
14
  }
15
- .c-icon--clickable[data-v-d0d8dba0]:active {
15
+ .c-icon--clickable[data-v-711aedcd]:active {
16
16
  transform: scale(0.95);
17
17
  }
18
- .c-icon--clickable[data-v-d0d8dba0]:focus-visible {
18
+ .c-icon--clickable[data-v-711aedcd]:focus-visible {
19
19
  outline: 2px solid currentColor;
20
20
  outline-offset: 2px;
21
21
  border-radius: 4px;
22
22
  }
23
- .c-icon--loading[data-v-d0d8dba0] {
23
+ .c-icon--loading[data-v-711aedcd] {
24
24
  opacity: 0.6;
25
25
  cursor: wait;
26
26
  }
27
- .c-icon--error[data-v-d0d8dba0] {
27
+ .c-icon--error[data-v-711aedcd] {
28
28
  opacity: 0.5;
29
29
  }
30
- .c-icon__loading[data-v-d0d8dba0] {
30
+ .c-icon__loading[data-v-711aedcd] {
31
31
  position: relative;
32
32
  }
33
- .c-icon__spinner[data-v-d0d8dba0] {
33
+ .c-icon__spinner[data-v-711aedcd] {
34
34
  width: 100%;
35
35
  height: 100%;
36
36
  border: 2px solid currentColor;
37
37
  border-radius: 50%;
38
38
  border-top-color: transparent;
39
- animation: spin-d0d8dba0 1s linear infinite;
39
+ animation: spin-711aedcd 1s linear infinite;
40
40
  }
41
- .c-icon__error[data-v-d0d8dba0] {
41
+ .c-icon__error[data-v-711aedcd] {
42
42
  font-size: 0.8em;
43
43
  opacity: 0.5;
44
44
  }
45
- .c-icon__rotatable[data-v-d0d8dba0] {
45
+ .c-icon__rotatable[data-v-711aedcd] {
46
46
  transition: transform 0.3s ease-in-out;
47
47
  }
48
- .c-icon__flippable[data-v-d0d8dba0] {
48
+ .c-icon__flippable[data-v-711aedcd] {
49
49
  transition: transform 0.3s ease-in-out;
50
50
  }
51
- @keyframes spin-d0d8dba0 {
51
+ @keyframes spin-711aedcd {
52
52
  0% {
53
53
  transform: rotate(0deg);
54
54
  }
package/dist/C_Icon2.cjs CHANGED
@@ -1 +1 @@
1
- require(`./chunk.cjs`);const e=require(`./export-helper.cjs`);let t=require(`vue`),n=require(`@iconify/vue`);const r=async(e,t)=>{if(!e)return``;if(e.startsWith(`http://`)||e.startsWith(`https://`)||e.startsWith(`data:`)||e.startsWith(`blob:`)||e.startsWith(`/`))return e;if(t)try{return await t(e)}catch(t){return console.error(`[useImage] 自定义解析器处理失败: ${e}`,t),``}return e},i=[`title`,`aria-label`,`role`,`tabindex`],a=[`width`,`height`,`viewBox`,`fill`],o=[`d`,`fill`],s=[`src`,`alt`,`width`,`height`],c=[`title`],l=(0,t.defineComponent)({__name:`index`,props:{name:{default:void 0},type:{default:`iconify`},color:{default:`currentColor`},size:{default:18},svgPath:{default:``},viewBox:{default:`0 0 24 24`},alt:{default:``},clickable:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},fallbackIcon:{default:``},title:{default:``},ariaLabel:{default:``},customClass:{default:``},rotate:{default:0},flip:{default:void 0},componentProps:{default:()=>({})}},emits:[`click`,`error`,`load`],setup(e,{expose:l,emit:u}){let d=e,f=u,p=(0,t.ref)(),m=(0,t.ref)(!1),h=(0,t.ref)(``),g=(0,t.ref)(``),_=(0,t.ref)(!1),v=(0,t.computed)(()=>({fontSize:typeof d.size==`number`?`${d.size}px`:d.size,color:d.color,cursor:d.clickable?`pointer`:`inherit`})),y=(0,t.computed)(()=>{let e={display:`inline-flex`,justifyContent:`center`,alignItems:`center`,width:typeof d.size==`number`?`${d.size}px`:d.size,height:typeof d.size==`number`?`${d.size}px`:d.size};if(d.rotate&&(e.transform=`rotate(${d.rotate}deg)`),d.flip){let t=d.flip===`horizontal`||d.flip===`both`?-1:1,n=d.flip===`vertical`||d.flip===`both`?-1:1;e.transform=`${e.transform||``} scaleX(${t}) scaleY(${n})`.trim()}return e}),b=(0,t.computed)(()=>typeof d.name==`string`?d.name:d.name&&d.name.__name?d.name.__name:d.name&&d.name.name?d.name.name:`Component Icon`),x=(0,t.computed)(()=>[d.customClass,{"c-icon__rotatable":d.rotate!==0,"c-icon__flippable":!!d.flip}]),S=(0,t.computed)(()=>d.type!==`component`||!d.name?null:d.name),C=(e,t,n)=>{if(console.warn(`[C_Icon] ${t}:`,b.value,n),h.value=t,_.value=!1,f(`error`,e,n),d.fallbackIcon&&!m.value){m.value=!1;return}m.value=!0},w=e=>{!d.clickable||d.loading||f(`click`,e)},T=e=>{!d.clickable||d.loading||(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),f(`click`,e))},E=()=>{_.value=!1,f(`load`)},D=async()=>{if(d.type!==`image`||typeof d.name!=`string`){g.value=``;return}if(d.name.startsWith(`http://`)||d.name.startsWith(`https://`)||d.name.startsWith(`//`)||d.name.startsWith(`/`)){g.value=d.name;return}try{_.value=!0;let e=await r(d.name);e?g.value=e:C(`image`,`图片路径解析失败`)}catch(e){C(`image`,`图片加载失败`,e)}finally{_.value=!1}},O={iconify:()=>(d.name.includes(`:`)||console.warn(`[C_Icon] Iconify图标名称格式应为 "prefix:name",如 "mdi:home"`),null),unocss:()=>((typeof d.name!=`string`||!d.name.startsWith(`i-`))&&console.warn(`[C_Icon] UnoCSS图标名称应以 "i-" 开头`),null),component:()=>S.value?null:`无法解析组件`,svg:()=>d.svgPath?null:`SVG路径不能为空`,image:()=>null},k=()=>{if(m.value=!1,h.value=``,!d.name)return C(`validation`,`图标名称不能为空`);let e=O[d.type];if(!e)return C(`type`,`不支持的图标类型`);let t=e();t&&C(d.type,t),d.type===`image`&&D()};return(0,t.watch)(()=>[d.name,d.type,d.svgPath],()=>{(0,t.nextTick)(k)},{immediate:!0}),(0,t.onMounted)(()=>{!m.value&&d.type!==`image`&&f(`load`)}),l({validate:k,hasError:(0,t.readonly)(m),errorMessage:(0,t.readonly)(h),el:p}),(r,l)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{ref_key:`iconRef`,ref:p,class:(0,t.normalizeClass)([`c-icon`,[`c-icon--${e.type}`,{"c-icon--clickable":e.clickable,"c-icon--loading":e.loading,"c-icon--error":m.value}]]),style:(0,t.normalizeStyle)(v.value),title:e.title||void 0,"aria-label":e.ariaLabel||b.value,role:e.clickable?`button`:`img`,tabindex:e.clickable?0:-1,onClick:w,onKeydown:T},[(0,t.createCommentVNode)(` 方式1:Iconify图标(默认方式) `),(e.type===`iconify`||!e.type)&&!m.value&&typeof e.name==`string`?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(n.Icon),{key:0,icon:e.name,width:e.size,height:e.size,color:e.color,style:(0,t.normalizeStyle)(y.value),onError:l[0]||=()=>C(`iconify`,`Iconify图标加载失败`)},null,8,[`icon`,`width`,`height`,`color`,`style`])):e.type===`unocss`&&!m.value&&typeof e.name==`string`?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:1},[(0,t.createCommentVNode)(` 方式2:UnoCSS图标 `),(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([e.name,x.value]),style:(0,t.normalizeStyle)(y.value),onError:l[1]||=()=>C(`unocss`,`UnoCSS图标渲染失败`)},null,38)],2112)):e.type===`component`&&S.value&&!m.value?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:2},[(0,t.createCommentVNode)(` 方式3:组件挂载方式 `),((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(S.value),(0,t.mergeProps)({style:y.value},e.componentProps,{onError:l[2]||=()=>C(`component`,`组件图标渲染失败`)}),null,16,[`style`]))],2112)):e.type===`svg`&&e.svgPath&&!m.value?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:3},[(0,t.createCommentVNode)(` 方式4:SVG路径方式 `),((0,t.openBlock)(),(0,t.createElementBlock)(`svg`,{width:e.size,height:e.size,viewBox:e.viewBox,style:(0,t.normalizeStyle)(y.value),fill:e.color,onError:l[3]||=()=>C(`svg`,`SVG图标渲染失败`)},[(0,t.createElementVNode)(`path`,{d:e.svgPath,fill:e.color},null,8,o)],44,a))],2112)):e.type===`image`&&g.value&&!m.value&&!_.value?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:4},[(0,t.createCommentVNode)(` 方式5:图片方式 - 修复异步加载 `),(0,t.createElementVNode)(`img`,{src:g.value,alt:e.alt||b.value,width:e.size,height:e.size,style:{display:`inline-block`,"vertical-align":`middle`},onError:l[4]||=()=>C(`image`,`图片图标加载失败`),onLoad:E},null,40,s)],2112)):(0,t.createCommentVNode)(`v-if`,!0),(0,t.createCommentVNode)(` 图片加载状态 `),(e.loading||_.value)&&!m.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:5,class:`c-icon__loading`,style:(0,t.normalizeStyle)(y.value)},[...l[5]||=[(0,t.createElementVNode)(`div`,{class:`c-icon__spinner`},null,-1)]],4)):m.value&&e.fallbackIcon?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:6},[(0,t.createCommentVNode)(` 统一错误状态显示 `),(0,t.createVNode)((0,t.unref)(n.Icon),{icon:e.fallbackIcon,width:e.size,height:e.size,color:e.color,style:(0,t.normalizeStyle)(y.value)},null,8,[`icon`,`width`,`height`,`color`,`style`])],2112)):m.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:7,class:`c-icon__error`,style:(0,t.normalizeStyle)(y.value),title:`图标解析失败: ${b.value} (${h.value})`},` ⚠️ `,12,c)):(0,t.createCommentVNode)(`v-if`,!0)],46,i))}});var u=e.t(l,[[`__scopeId`,`data-v-d0d8dba0`]]);Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return u}});
1
+ require(`./chunk.cjs`);const e=require(`./export-helper.cjs`);let t=require(`vue`),n=require(`@iconify/vue`);const r=async(e,t)=>{if(!e)return``;if(e.startsWith(`http://`)||e.startsWith(`https://`)||e.startsWith(`data:`)||e.startsWith(`blob:`)||e.startsWith(`/`))return e;if(t)try{return await t(e)}catch(t){return console.error(`[useImage] 自定义解析器处理失败: ${e}`,t),``}return e},i=[`title`,`aria-label`,`role`,`tabindex`],a=[`width`,`height`,`viewBox`,`fill`],o=[`d`,`fill`],s=[`src`,`alt`,`width`,`height`],c=[`title`],l=(0,t.defineComponent)({__name:`index`,props:{name:{default:void 0},type:{default:`iconify`},color:{default:`currentColor`},size:{default:18},svgPath:{default:``},viewBox:{default:`0 0 24 24`},alt:{default:``},clickable:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},fallbackIcon:{default:``},title:{default:``},ariaLabel:{default:``},customClass:{default:``},rotate:{default:0},flip:{default:void 0},componentProps:{default:()=>({})}},emits:[`click`,`error`,`load`],setup(e,{expose:l,emit:u}){let d=e,f=u,p=(0,t.ref)(),m=(0,t.ref)(!1),h=(0,t.ref)(``),g=(0,t.ref)(``),_=(0,t.ref)(!1),v=(0,t.computed)(()=>({fontSize:typeof d.size==`number`?`${d.size}px`:d.size,color:d.color,cursor:d.clickable?`pointer`:`inherit`})),y=(0,t.computed)(()=>{let e={display:`inline-flex`,justifyContent:`center`,alignItems:`center`,width:typeof d.size==`number`?`${d.size}px`:d.size,height:typeof d.size==`number`?`${d.size}px`:d.size};if(d.rotate&&(e.transform=`rotate(${d.rotate}deg)`),d.flip){let t=d.flip===`horizontal`||d.flip===`both`?-1:1,n=d.flip===`vertical`||d.flip===`both`?-1:1;e.transform=`${e.transform||``} scaleX(${t}) scaleY(${n})`.trim()}return e}),b=(0,t.computed)(()=>{if(typeof d.name==`string`)return d.name;let e=d.name;return e?.__name?e.__name:e?.name?e.name:`Component Icon`}),x=(0,t.computed)(()=>[d.customClass,{"c-icon__rotatable":d.rotate!==0,"c-icon__flippable":!!d.flip}]),S=(0,t.computed)(()=>d.type!==`component`||!d.name?null:d.name),C=(e,t,n)=>{if(console.warn(`[C_Icon] ${t}:`,b.value,n),h.value=t,_.value=!1,f(`error`,e,n),d.fallbackIcon&&!m.value){m.value=!1;return}m.value=!0},w=e=>{!d.clickable||d.loading||f(`click`,e)},T=e=>{!d.clickable||d.loading||(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),f(`click`,e))},E=()=>{_.value=!1,f(`load`)},D=async()=>{if(d.type!==`image`||typeof d.name!=`string`){g.value=``;return}if(d.name.startsWith(`http://`)||d.name.startsWith(`https://`)||d.name.startsWith(`//`)||d.name.startsWith(`/`)){g.value=d.name;return}try{_.value=!0;let e=await r(d.name);e?g.value=e:C(`image`,`图片路径解析失败`)}catch(e){C(`image`,`图片加载失败`,e)}finally{_.value=!1}},O={iconify:()=>typeof d.name==`string`?(d.name.includes(`:`)||console.warn(`[C_Icon] Iconify图标名称格式应为 "prefix:name",如 "mdi:home"`),null):`Iconify图标名称必须为字符串`,unocss:()=>((typeof d.name!=`string`||!d.name.startsWith(`i-`))&&console.warn(`[C_Icon] UnoCSS图标名称应以 "i-" 开头`),null),component:()=>S.value?null:`无法解析组件`,svg:()=>d.svgPath?null:`SVG路径不能为空`,image:()=>null},k=()=>{if(m.value=!1,h.value=``,!d.name)return C(`validation`,`图标名称不能为空`);let e=O[d.type];if(!e)return C(`type`,`不支持的图标类型`);let t=e();t&&C(d.type,t),d.type===`image`&&D()};return(0,t.watch)(()=>[d.name,d.type,d.svgPath],()=>{(0,t.nextTick)(k)},{immediate:!0}),(0,t.onMounted)(()=>{!m.value&&d.type!==`image`&&f(`load`)}),l({validate:k,hasError:(0,t.readonly)(m),errorMessage:(0,t.readonly)(h),el:p}),(r,l)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{ref_key:`iconRef`,ref:p,class:(0,t.normalizeClass)([`c-icon`,[`c-icon--${e.type}`,{"c-icon--clickable":e.clickable,"c-icon--loading":e.loading,"c-icon--error":m.value}]]),style:(0,t.normalizeStyle)(v.value),title:e.title||void 0,"aria-label":e.ariaLabel||b.value,role:e.clickable?`button`:`img`,tabindex:e.clickable?0:-1,onClick:w,onKeydown:T},[(0,t.createCommentVNode)(` 方式1:Iconify图标(默认方式) `),(e.type===`iconify`||!e.type)&&!m.value&&typeof e.name==`string`?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(n.Icon),{key:0,icon:e.name,width:e.size,height:e.size,color:e.color,style:(0,t.normalizeStyle)(y.value),onError:l[0]||=()=>C(`iconify`,`Iconify图标加载失败`)},null,8,[`icon`,`width`,`height`,`color`,`style`])):e.type===`unocss`&&!m.value&&typeof e.name==`string`?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:1},[(0,t.createCommentVNode)(` 方式2:UnoCSS图标 `),(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([e.name,x.value]),style:(0,t.normalizeStyle)(y.value),onError:l[1]||=()=>C(`unocss`,`UnoCSS图标渲染失败`)},null,38)],2112)):e.type===`component`&&S.value&&!m.value?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:2},[(0,t.createCommentVNode)(` 方式3:组件挂载方式 `),((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(S.value),(0,t.mergeProps)({style:y.value},e.componentProps,{onError:l[2]||=()=>C(`component`,`组件图标渲染失败`)}),null,16,[`style`]))],2112)):e.type===`svg`&&e.svgPath&&!m.value?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:3},[(0,t.createCommentVNode)(` 方式4:SVG路径方式 `),((0,t.openBlock)(),(0,t.createElementBlock)(`svg`,{width:e.size,height:e.size,viewBox:e.viewBox,style:(0,t.normalizeStyle)(y.value),fill:e.color,onError:l[3]||=()=>C(`svg`,`SVG图标渲染失败`)},[(0,t.createElementVNode)(`path`,{d:e.svgPath,fill:e.color},null,8,o)],44,a))],2112)):e.type===`image`&&g.value&&!m.value&&!_.value?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:4},[(0,t.createCommentVNode)(` 方式5:图片方式 - 修复异步加载 `),(0,t.createElementVNode)(`img`,{src:g.value,alt:e.alt||b.value,width:e.size,height:e.size,style:{display:`inline-block`,"vertical-align":`middle`},onError:l[4]||=()=>C(`image`,`图片图标加载失败`),onLoad:E},null,40,s)],2112)):(0,t.createCommentVNode)(`v-if`,!0),(0,t.createCommentVNode)(` 图片加载状态 `),(e.loading||_.value)&&!m.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:5,class:`c-icon__loading`,style:(0,t.normalizeStyle)(y.value)},[...l[5]||=[(0,t.createElementVNode)(`div`,{class:`c-icon__spinner`},null,-1)]],4)):m.value&&e.fallbackIcon?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:6},[(0,t.createCommentVNode)(` 统一错误状态显示 `),(0,t.createVNode)((0,t.unref)(n.Icon),{icon:e.fallbackIcon,width:e.size,height:e.size,color:e.color,style:(0,t.normalizeStyle)(y.value)},null,8,[`icon`,`width`,`height`,`color`,`style`])],2112)):m.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:7,class:`c-icon__error`,style:(0,t.normalizeStyle)(y.value),title:`图标解析失败: ${b.value} (${h.value})`},` ⚠️ `,12,c)):(0,t.createCommentVNode)(`v-if`,!0)],46,i))}});var u=e.t(l,[[`__scopeId`,`data-v-711aedcd`]]);Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return u}});
package/dist/C_Icon2.js CHANGED
@@ -1 +1 @@
1
- import{t as e}from"./export-helper.js";import{Fragment as t,computed as n,createBlock as r,createCommentVNode as i,createElementBlock as a,createElementVNode as o,createVNode as s,defineComponent as c,mergeProps as l,nextTick as u,normalizeClass as d,normalizeStyle as f,onMounted as p,openBlock as m,readonly as h,ref as g,resolveDynamicComponent as _,unref as v,watch as y}from"vue";import{Icon as b}from"@iconify/vue";const x=async(e,t)=>{if(!e)return``;if(e.startsWith(`http://`)||e.startsWith(`https://`)||e.startsWith(`data:`)||e.startsWith(`blob:`)||e.startsWith(`/`))return e;if(t)try{return await t(e)}catch(t){return console.error(`[useImage] 自定义解析器处理失败: ${e}`,t),``}return e},S=[`title`,`aria-label`,`role`,`tabindex`],C=[`width`,`height`,`viewBox`,`fill`],w=[`d`,`fill`],T=[`src`,`alt`,`width`,`height`],E=[`title`];var D=e(c({__name:`index`,props:{name:{default:void 0},type:{default:`iconify`},color:{default:`currentColor`},size:{default:18},svgPath:{default:``},viewBox:{default:`0 0 24 24`},alt:{default:``},clickable:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},fallbackIcon:{default:``},title:{default:``},ariaLabel:{default:``},customClass:{default:``},rotate:{default:0},flip:{default:void 0},componentProps:{default:()=>({})}},emits:[`click`,`error`,`load`],setup(e,{expose:c,emit:D}){let O=e,k=D,A=g(),j=g(!1),M=g(``),N=g(``),P=g(!1),F=n(()=>({fontSize:typeof O.size==`number`?`${O.size}px`:O.size,color:O.color,cursor:O.clickable?`pointer`:`inherit`})),I=n(()=>{let e={display:`inline-flex`,justifyContent:`center`,alignItems:`center`,width:typeof O.size==`number`?`${O.size}px`:O.size,height:typeof O.size==`number`?`${O.size}px`:O.size};if(O.rotate&&(e.transform=`rotate(${O.rotate}deg)`),O.flip){let t=O.flip===`horizontal`||O.flip===`both`?-1:1,n=O.flip===`vertical`||O.flip===`both`?-1:1;e.transform=`${e.transform||``} scaleX(${t}) scaleY(${n})`.trim()}return e}),L=n(()=>typeof O.name==`string`?O.name:O.name&&O.name.__name?O.name.__name:O.name&&O.name.name?O.name.name:`Component Icon`),R=n(()=>[O.customClass,{"c-icon__rotatable":O.rotate!==0,"c-icon__flippable":!!O.flip}]),z=n(()=>O.type!==`component`||!O.name?null:O.name),B=(e,t,n)=>{if(console.warn(`[C_Icon] ${t}:`,L.value,n),M.value=t,P.value=!1,k(`error`,e,n),O.fallbackIcon&&!j.value){j.value=!1;return}j.value=!0},V=e=>{!O.clickable||O.loading||k(`click`,e)},H=e=>{!O.clickable||O.loading||(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),k(`click`,e))},U=()=>{P.value=!1,k(`load`)},W=async()=>{if(O.type!==`image`||typeof O.name!=`string`){N.value=``;return}if(O.name.startsWith(`http://`)||O.name.startsWith(`https://`)||O.name.startsWith(`//`)||O.name.startsWith(`/`)){N.value=O.name;return}try{P.value=!0;let e=await x(O.name);e?N.value=e:B(`image`,`图片路径解析失败`)}catch(e){B(`image`,`图片加载失败`,e)}finally{P.value=!1}},G={iconify:()=>(O.name.includes(`:`)||console.warn(`[C_Icon] Iconify图标名称格式应为 "prefix:name",如 "mdi:home"`),null),unocss:()=>((typeof O.name!=`string`||!O.name.startsWith(`i-`))&&console.warn(`[C_Icon] UnoCSS图标名称应以 "i-" 开头`),null),component:()=>z.value?null:`无法解析组件`,svg:()=>O.svgPath?null:`SVG路径不能为空`,image:()=>null},K=()=>{if(j.value=!1,M.value=``,!O.name)return B(`validation`,`图标名称不能为空`);let e=G[O.type];if(!e)return B(`type`,`不支持的图标类型`);let t=e();t&&B(O.type,t),O.type===`image`&&W()};return y(()=>[O.name,O.type,O.svgPath],()=>{u(K)},{immediate:!0}),p(()=>{!j.value&&O.type!==`image`&&k(`load`)}),c({validate:K,hasError:h(j),errorMessage:h(M),el:A}),(n,c)=>(m(),a(`div`,{ref_key:`iconRef`,ref:A,class:d([`c-icon`,[`c-icon--${e.type}`,{"c-icon--clickable":e.clickable,"c-icon--loading":e.loading,"c-icon--error":j.value}]]),style:f(F.value),title:e.title||void 0,"aria-label":e.ariaLabel||L.value,role:e.clickable?`button`:`img`,tabindex:e.clickable?0:-1,onClick:V,onKeydown:H},[i(` 方式1:Iconify图标(默认方式) `),(e.type===`iconify`||!e.type)&&!j.value&&typeof e.name==`string`?(m(),r(v(b),{key:0,icon:e.name,width:e.size,height:e.size,color:e.color,style:f(I.value),onError:c[0]||=()=>B(`iconify`,`Iconify图标加载失败`)},null,8,[`icon`,`width`,`height`,`color`,`style`])):e.type===`unocss`&&!j.value&&typeof e.name==`string`?(m(),a(t,{key:1},[i(` 方式2:UnoCSS图标 `),o(`div`,{class:d([e.name,R.value]),style:f(I.value),onError:c[1]||=()=>B(`unocss`,`UnoCSS图标渲染失败`)},null,38)],2112)):e.type===`component`&&z.value&&!j.value?(m(),a(t,{key:2},[i(` 方式3:组件挂载方式 `),(m(),r(_(z.value),l({style:I.value},e.componentProps,{onError:c[2]||=()=>B(`component`,`组件图标渲染失败`)}),null,16,[`style`]))],2112)):e.type===`svg`&&e.svgPath&&!j.value?(m(),a(t,{key:3},[i(` 方式4:SVG路径方式 `),(m(),a(`svg`,{width:e.size,height:e.size,viewBox:e.viewBox,style:f(I.value),fill:e.color,onError:c[3]||=()=>B(`svg`,`SVG图标渲染失败`)},[o(`path`,{d:e.svgPath,fill:e.color},null,8,w)],44,C))],2112)):e.type===`image`&&N.value&&!j.value&&!P.value?(m(),a(t,{key:4},[i(` 方式5:图片方式 - 修复异步加载 `),o(`img`,{src:N.value,alt:e.alt||L.value,width:e.size,height:e.size,style:{display:`inline-block`,"vertical-align":`middle`},onError:c[4]||=()=>B(`image`,`图片图标加载失败`),onLoad:U},null,40,T)],2112)):i(`v-if`,!0),i(` 图片加载状态 `),(e.loading||P.value)&&!j.value?(m(),a(`div`,{key:5,class:`c-icon__loading`,style:f(I.value)},[...c[5]||=[o(`div`,{class:`c-icon__spinner`},null,-1)]],4)):j.value&&e.fallbackIcon?(m(),a(t,{key:6},[i(` 统一错误状态显示 `),s(v(b),{icon:e.fallbackIcon,width:e.size,height:e.size,color:e.color,style:f(I.value)},null,8,[`icon`,`width`,`height`,`color`,`style`])],2112)):j.value?(m(),a(`div`,{key:7,class:`c-icon__error`,style:f(I.value),title:`图标解析失败: ${L.value} (${M.value})`},` ⚠️ `,12,E)):i(`v-if`,!0)],46,S))}}),[[`__scopeId`,`data-v-d0d8dba0`]]);export{D as t};
1
+ import{t as e}from"./export-helper.js";import{Fragment as t,computed as n,createBlock as r,createCommentVNode as i,createElementBlock as a,createElementVNode as o,createVNode as s,defineComponent as c,mergeProps as l,nextTick as u,normalizeClass as d,normalizeStyle as f,onMounted as p,openBlock as m,readonly as h,ref as g,resolveDynamicComponent as _,unref as v,watch as y}from"vue";import{Icon as b}from"@iconify/vue";const x=async(e,t)=>{if(!e)return``;if(e.startsWith(`http://`)||e.startsWith(`https://`)||e.startsWith(`data:`)||e.startsWith(`blob:`)||e.startsWith(`/`))return e;if(t)try{return await t(e)}catch(t){return console.error(`[useImage] 自定义解析器处理失败: ${e}`,t),``}return e},S=[`title`,`aria-label`,`role`,`tabindex`],C=[`width`,`height`,`viewBox`,`fill`],w=[`d`,`fill`],T=[`src`,`alt`,`width`,`height`],E=[`title`];var D=e(c({__name:`index`,props:{name:{default:void 0},type:{default:`iconify`},color:{default:`currentColor`},size:{default:18},svgPath:{default:``},viewBox:{default:`0 0 24 24`},alt:{default:``},clickable:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},fallbackIcon:{default:``},title:{default:``},ariaLabel:{default:``},customClass:{default:``},rotate:{default:0},flip:{default:void 0},componentProps:{default:()=>({})}},emits:[`click`,`error`,`load`],setup(e,{expose:c,emit:D}){let O=e,k=D,A=g(),j=g(!1),M=g(``),N=g(``),P=g(!1),F=n(()=>({fontSize:typeof O.size==`number`?`${O.size}px`:O.size,color:O.color,cursor:O.clickable?`pointer`:`inherit`})),I=n(()=>{let e={display:`inline-flex`,justifyContent:`center`,alignItems:`center`,width:typeof O.size==`number`?`${O.size}px`:O.size,height:typeof O.size==`number`?`${O.size}px`:O.size};if(O.rotate&&(e.transform=`rotate(${O.rotate}deg)`),O.flip){let t=O.flip===`horizontal`||O.flip===`both`?-1:1,n=O.flip===`vertical`||O.flip===`both`?-1:1;e.transform=`${e.transform||``} scaleX(${t}) scaleY(${n})`.trim()}return e}),L=n(()=>{if(typeof O.name==`string`)return O.name;let e=O.name;return e?.__name?e.__name:e?.name?e.name:`Component Icon`}),R=n(()=>[O.customClass,{"c-icon__rotatable":O.rotate!==0,"c-icon__flippable":!!O.flip}]),z=n(()=>O.type!==`component`||!O.name?null:O.name),B=(e,t,n)=>{if(console.warn(`[C_Icon] ${t}:`,L.value,n),M.value=t,P.value=!1,k(`error`,e,n),O.fallbackIcon&&!j.value){j.value=!1;return}j.value=!0},V=e=>{!O.clickable||O.loading||k(`click`,e)},H=e=>{!O.clickable||O.loading||(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),k(`click`,e))},U=()=>{P.value=!1,k(`load`)},W=async()=>{if(O.type!==`image`||typeof O.name!=`string`){N.value=``;return}if(O.name.startsWith(`http://`)||O.name.startsWith(`https://`)||O.name.startsWith(`//`)||O.name.startsWith(`/`)){N.value=O.name;return}try{P.value=!0;let e=await x(O.name);e?N.value=e:B(`image`,`图片路径解析失败`)}catch(e){B(`image`,`图片加载失败`,e)}finally{P.value=!1}},G={iconify:()=>typeof O.name==`string`?(O.name.includes(`:`)||console.warn(`[C_Icon] Iconify图标名称格式应为 "prefix:name",如 "mdi:home"`),null):`Iconify图标名称必须为字符串`,unocss:()=>((typeof O.name!=`string`||!O.name.startsWith(`i-`))&&console.warn(`[C_Icon] UnoCSS图标名称应以 "i-" 开头`),null),component:()=>z.value?null:`无法解析组件`,svg:()=>O.svgPath?null:`SVG路径不能为空`,image:()=>null},K=()=>{if(j.value=!1,M.value=``,!O.name)return B(`validation`,`图标名称不能为空`);let e=G[O.type];if(!e)return B(`type`,`不支持的图标类型`);let t=e();t&&B(O.type,t),O.type===`image`&&W()};return y(()=>[O.name,O.type,O.svgPath],()=>{u(K)},{immediate:!0}),p(()=>{!j.value&&O.type!==`image`&&k(`load`)}),c({validate:K,hasError:h(j),errorMessage:h(M),el:A}),(n,c)=>(m(),a(`div`,{ref_key:`iconRef`,ref:A,class:d([`c-icon`,[`c-icon--${e.type}`,{"c-icon--clickable":e.clickable,"c-icon--loading":e.loading,"c-icon--error":j.value}]]),style:f(F.value),title:e.title||void 0,"aria-label":e.ariaLabel||L.value,role:e.clickable?`button`:`img`,tabindex:e.clickable?0:-1,onClick:V,onKeydown:H},[i(` 方式1:Iconify图标(默认方式) `),(e.type===`iconify`||!e.type)&&!j.value&&typeof e.name==`string`?(m(),r(v(b),{key:0,icon:e.name,width:e.size,height:e.size,color:e.color,style:f(I.value),onError:c[0]||=()=>B(`iconify`,`Iconify图标加载失败`)},null,8,[`icon`,`width`,`height`,`color`,`style`])):e.type===`unocss`&&!j.value&&typeof e.name==`string`?(m(),a(t,{key:1},[i(` 方式2:UnoCSS图标 `),o(`div`,{class:d([e.name,R.value]),style:f(I.value),onError:c[1]||=()=>B(`unocss`,`UnoCSS图标渲染失败`)},null,38)],2112)):e.type===`component`&&z.value&&!j.value?(m(),a(t,{key:2},[i(` 方式3:组件挂载方式 `),(m(),r(_(z.value),l({style:I.value},e.componentProps,{onError:c[2]||=()=>B(`component`,`组件图标渲染失败`)}),null,16,[`style`]))],2112)):e.type===`svg`&&e.svgPath&&!j.value?(m(),a(t,{key:3},[i(` 方式4:SVG路径方式 `),(m(),a(`svg`,{width:e.size,height:e.size,viewBox:e.viewBox,style:f(I.value),fill:e.color,onError:c[3]||=()=>B(`svg`,`SVG图标渲染失败`)},[o(`path`,{d:e.svgPath,fill:e.color},null,8,w)],44,C))],2112)):e.type===`image`&&N.value&&!j.value&&!P.value?(m(),a(t,{key:4},[i(` 方式5:图片方式 - 修复异步加载 `),o(`img`,{src:N.value,alt:e.alt||L.value,width:e.size,height:e.size,style:{display:`inline-block`,"vertical-align":`middle`},onError:c[4]||=()=>B(`image`,`图片图标加载失败`),onLoad:U},null,40,T)],2112)):i(`v-if`,!0),i(` 图片加载状态 `),(e.loading||P.value)&&!j.value?(m(),a(`div`,{key:5,class:`c-icon__loading`,style:f(I.value)},[...c[5]||=[o(`div`,{class:`c-icon__spinner`},null,-1)]],4)):j.value&&e.fallbackIcon?(m(),a(t,{key:6},[i(` 统一错误状态显示 `),s(v(b),{icon:e.fallbackIcon,width:e.size,height:e.size,color:e.color,style:f(I.value)},null,8,[`icon`,`width`,`height`,`color`,`style`])],2112)):j.value?(m(),a(`div`,{key:7,class:`c-icon__error`,style:f(I.value),title:`图标解析失败: ${L.value} (${M.value})`},` ⚠️ `,12,E)):i(`v-if`,!0)],46,S))}}),[[`__scopeId`,`data-v-711aedcd`]]);export{D as t};
@@ -1,16 +1,16 @@
1
- /* unplugin-vue-components disabled */.cropper-toolbar[data-v-499ffd01] {
1
+ /* unplugin-vue-components disabled */.cropper-toolbar[data-v-eb7204dc] {
2
2
  display: flex;
3
3
  flex-wrap: wrap;
4
4
  gap: 4px;
5
5
  align-items: center;
6
6
  padding: 8px 0;
7
7
  }
8
- /* unplugin-vue-components disabled */.cropper-preview[data-v-cefefdc0] {
8
+ /* unplugin-vue-components disabled */.cropper-preview[data-v-c8968d14] {
9
9
  display: flex;
10
10
  flex-direction: column;
11
11
  gap: 16px;
12
12
  }
13
- .cropper-preview .preview-label[data-v-cefefdc0] {
13
+ .cropper-preview .preview-label[data-v-c8968d14] {
14
14
  display: flex;
15
15
  gap: 6px;
16
16
  align-items: center;
@@ -18,7 +18,7 @@
18
18
  font-weight: 500;
19
19
  color: var(--text-color-2);
20
20
  }
21
- .cropper-preview .preview-main[data-v-cefefdc0] {
21
+ .cropper-preview .preview-main[data-v-c8968d14] {
22
22
  width: 100%;
23
23
  overflow: hidden;
24
24
  border: 1px solid var(--border-color);
@@ -27,14 +27,14 @@
27
27
  background-position: 0 0, 0 8px, 8px -8px, -8px 0;
28
28
  background-size: 16px 16px;
29
29
  }
30
- .cropper-preview .preview-main--circular[data-v-cefefdc0] {
30
+ .cropper-preview .preview-main--circular[data-v-c8968d14] {
31
31
  border-radius: 50%;
32
32
  }
33
- .cropper-preview .preview-main__viewport img[data-v-cefefdc0] {
33
+ .cropper-preview .preview-main__viewport img[data-v-c8968d14] {
34
34
  display: block;
35
35
  max-width: none !important;
36
36
  }
37
- .cropper-preview .preview-empty[data-v-cefefdc0] {
37
+ .cropper-preview .preview-empty[data-v-c8968d14] {
38
38
  display: flex;
39
39
  align-items: center;
40
40
  justify-content: center;
@@ -42,50 +42,50 @@
42
42
  height: 100%;
43
43
  min-height: 120px;
44
44
  }
45
- .cropper-preview .preview-thumbs[data-v-cefefdc0] {
45
+ .cropper-preview .preview-thumbs[data-v-c8968d14] {
46
46
  display: flex;
47
47
  gap: 12px;
48
48
  align-items: flex-end;
49
49
  justify-content: center;
50
50
  }
51
- .cropper-preview .preview-thumb[data-v-cefefdc0] {
51
+ .cropper-preview .preview-thumb[data-v-c8968d14] {
52
52
  display: flex;
53
53
  flex-direction: column;
54
54
  gap: 4px;
55
55
  align-items: center;
56
56
  }
57
- .cropper-preview .preview-thumb__box[data-v-cefefdc0] {
57
+ .cropper-preview .preview-thumb__box[data-v-c8968d14] {
58
58
  overflow: hidden;
59
59
  border: 1px solid var(--border-color);
60
60
  border-radius: 4px;
61
61
  background: var(--body-color);
62
62
  }
63
- .cropper-preview .preview-thumb__box--circular[data-v-cefefdc0] {
63
+ .cropper-preview .preview-thumb__box--circular[data-v-c8968d14] {
64
64
  border-radius: 50%;
65
65
  }
66
- .cropper-preview .preview-thumb__viewport img[data-v-cefefdc0] {
66
+ .cropper-preview .preview-thumb__viewport img[data-v-c8968d14] {
67
67
  display: block;
68
68
  max-width: none !important;
69
69
  }
70
- .cropper-preview .preview-thumb__label[data-v-cefefdc0] {
70
+ .cropper-preview .preview-thumb__label[data-v-c8968d14] {
71
71
  font-size: 11px;
72
72
  color: var(--text-color-3);
73
73
  }
74
74
  /* unplugin-vue-components disabled *//* C_ImageCropper styles */
75
- .c-image-cropper[data-v-296916a4] {
75
+ .c-image-cropper[data-v-8aa3952f] {
76
76
  width: 100%;
77
77
  }
78
- .c-image-cropper__body[data-v-296916a4] {
78
+ .c-image-cropper__body[data-v-8aa3952f] {
79
79
  display: flex;
80
80
  flex-direction: column;
81
81
  gap: 8px;
82
82
  }
83
- .c-image-cropper__workspace[data-v-296916a4] {
83
+ .c-image-cropper__workspace[data-v-8aa3952f] {
84
84
  display: flex;
85
85
  gap: 16px;
86
86
  align-items: stretch;
87
87
  }
88
- .c-image-cropper__canvas[data-v-296916a4] {
88
+ .c-image-cropper__canvas[data-v-8aa3952f] {
89
89
  position: relative;
90
90
  flex: 1;
91
91
  min-width: 0;
@@ -94,11 +94,11 @@
94
94
  border-radius: 6px;
95
95
  background: var(--body-color);
96
96
  }
97
- .c-image-cropper__canvas[data-v-296916a4] .vue-cropper {
97
+ .c-image-cropper__canvas[data-v-8aa3952f] .vue-cropper {
98
98
  width: 100% !important;
99
99
  height: 100% !important;
100
100
  }
101
- .c-image-cropper__preview-panel[data-v-296916a4] {
101
+ .c-image-cropper__preview-panel[data-v-8aa3952f] {
102
102
  flex: 0 1 280px;
103
103
  min-width: 200px;
104
104
  padding: 16px;
@@ -107,7 +107,7 @@
107
107
  border-radius: 6px;
108
108
  background: var(--card-color);
109
109
  }
110
- .c-image-cropper__placeholder[data-v-296916a4] {
110
+ .c-image-cropper__placeholder[data-v-8aa3952f] {
111
111
  display: flex;
112
112
  flex-direction: column;
113
113
  gap: 8px;
@@ -118,10 +118,10 @@
118
118
  font-size: 14px;
119
119
  }
120
120
  @media (width <= 768px) {
121
- .c-image-cropper__workspace[data-v-296916a4] {
121
+ .c-image-cropper__workspace[data-v-8aa3952f] {
122
122
  flex-direction: column;
123
123
  }
124
- .c-image-cropper__preview-panel[data-v-296916a4] {
124
+ .c-image-cropper__preview-panel[data-v-8aa3952f] {
125
125
  max-width: none;
126
126
  }
127
127
  }
@@ -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`),i=require(`vue-cropper`);function a(e={}){let t=(0,n.ref)(null);function r(){t.value?.rotateLeft()}function i(){t.value?.rotateRight()}function a(e){let t=Math.round(e/90),n=t>0?i:r;for(let e=0;e<Math.abs(t);e++)n()}function o(e){t.value?.changeScale(e>0?1:-1)}function s(){let e=t.value?.$refs?.img;if(!e)return;let n=e.style.transform||``;n.includes(`scaleX(-1)`)?e.style.transform=n.replace(`scaleX(-1)`,`scaleX(1)`):e.style.transform=n.replace(/scaleX\([^)]*\)/,``)+` scaleX(-1)`}function c(){let e=t.value?.$refs?.img;if(!e)return;let n=e.style.transform||``;n.includes(`scaleY(-1)`)?e.style.transform=n.replace(`scaleY(-1)`,`scaleY(1)`):e.style.transform=n.replace(/scaleY\([^)]*\)/,``)+` scaleY(-1)`}function l(){t.value?.refresh()}function u(t,n){let r=t,i=n,a=e.maxWidth?.value??0,o=e.maxHeight?.value??0;if(a>0&&r>a){let e=a/r;r=a,i=Math.round(i*e)}if(o>0&&i>o){let e=o/i;i=o,r=Math.round(r*e)}return{width:r,height:i}}function d(){return new Promise((n,r)=>{let i=t.value;if(!i)return r(Error(`Cropper not initialized`));let a=e.format?.value??`png`,o=e.quality?.value??.92,s=a===`jpeg`?`image/jpeg`:a===`webp`?`image/webp`:`image/png`;i.getCropData(e=>{i.getCropBlob(t=>{let i=new Image;i.onload=()=>{let{width:r,height:c}=u(i.width,i.height);if(r!==i.width||c!==i.height){let e=document.createElement(`canvas`);e.width=r,e.height=c,e.getContext(`2d`).drawImage(i,0,0,r,c);let t=e.toDataURL(s,o);e.toBlob(e=>{n({base64:t,blob:e,width:r,height:c,format:a})},s,a===`png`?void 0:o)}else n({base64:e,blob:t,width:i.width,height:i.height,format:a})},i.onerror=()=>r(Error(`Failed to load crop result`)),i.src=e})})})}return{cropperRef:t,rotate:a,rotateLeft:r,rotateRight:i,zoom:o,flipX:s,flipY:c,reset:l,getCropResult:d}}const o={class:`cropper-toolbar`},s=(0,n.defineComponent)({__name:`CropperToolbar`,props:{currentRatio:{},ratioPresets:{}},emits:[`ratio`,`rotate`,`flipX`,`flipY`,`zoom`,`reset`],setup(t){return(i,a)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,o,[(0,n.createVNode)((0,n.unref)(r.NButtonGroup),{size:`small`},{default:(0,n.withCtx)(()=>[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(t.ratioPresets,e=>((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(r.NButton),{key:e.value,type:t.currentRatio===e.value?`primary`:`default`,onClick:t=>i.$emit(`ratio`,e.value)},{default:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(e.label),1)]),_:2},1032,[`type`,`onClick`]))),128))]),_:1}),(0,n.createVNode)((0,n.unref)(r.NDivider),{vertical:``}),(0,n.createVNode)((0,n.unref)(r.NTooltip),null,{trigger:(0,n.withCtx)(()=>[(0,n.createVNode)((0,n.unref)(r.NButton),{size:`small`,quaternary:``,onClick:a[0]||=e=>i.$emit(`rotate`,-90)},{icon:(0,n.withCtx)(()=>[(0,n.createVNode)(e.t,{name:`mdi:rotate-left`})]),_:1})]),default:(0,n.withCtx)(()=>[a[7]||=(0,n.createTextVNode)(` 逆时针旋转 90° `,-1)]),_:1}),(0,n.createVNode)((0,n.unref)(r.NTooltip),null,{trigger:(0,n.withCtx)(()=>[(0,n.createVNode)((0,n.unref)(r.NButton),{size:`small`,quaternary:``,onClick:a[1]||=e=>i.$emit(`rotate`,90)},{icon:(0,n.withCtx)(()=>[(0,n.createVNode)(e.t,{name:`mdi:rotate-right`})]),_:1})]),default:(0,n.withCtx)(()=>[a[8]||=(0,n.createTextVNode)(` 顺时针旋转 90° `,-1)]),_:1}),(0,n.createVNode)((0,n.unref)(r.NDivider),{vertical:``}),(0,n.createVNode)((0,n.unref)(r.NTooltip),null,{trigger:(0,n.withCtx)(()=>[(0,n.createVNode)((0,n.unref)(r.NButton),{size:`small`,quaternary:``,onClick:a[2]||=e=>i.$emit(`flipX`)},{icon:(0,n.withCtx)(()=>[(0,n.createVNode)(e.t,{name:`mdi:flip-horizontal`})]),_:1})]),default:(0,n.withCtx)(()=>[a[9]||=(0,n.createTextVNode)(` 水平翻转 `,-1)]),_:1}),(0,n.createVNode)((0,n.unref)(r.NTooltip),null,{trigger:(0,n.withCtx)(()=>[(0,n.createVNode)((0,n.unref)(r.NButton),{size:`small`,quaternary:``,onClick:a[3]||=e=>i.$emit(`flipY`)},{icon:(0,n.withCtx)(()=>[(0,n.createVNode)(e.t,{name:`mdi:flip-vertical`})]),_:1})]),default:(0,n.withCtx)(()=>[a[10]||=(0,n.createTextVNode)(` 垂直翻转 `,-1)]),_:1}),(0,n.createVNode)((0,n.unref)(r.NDivider),{vertical:``}),(0,n.createVNode)((0,n.unref)(r.NTooltip),null,{trigger:(0,n.withCtx)(()=>[(0,n.createVNode)((0,n.unref)(r.NButton),{size:`small`,quaternary:``,onClick:a[4]||=e=>i.$emit(`zoom`,.1)},{icon:(0,n.withCtx)(()=>[(0,n.createVNode)(e.t,{name:`mdi:magnify-plus-outline`})]),_:1})]),default:(0,n.withCtx)(()=>[a[11]||=(0,n.createTextVNode)(` 放大 `,-1)]),_:1}),(0,n.createVNode)((0,n.unref)(r.NTooltip),null,{trigger:(0,n.withCtx)(()=>[(0,n.createVNode)((0,n.unref)(r.NButton),{size:`small`,quaternary:``,onClick:a[5]||=e=>i.$emit(`zoom`,-.1)},{icon:(0,n.withCtx)(()=>[(0,n.createVNode)(e.t,{name:`mdi:magnify-minus-outline`})]),_:1})]),default:(0,n.withCtx)(()=>[a[12]||=(0,n.createTextVNode)(` 缩小 `,-1)]),_:1}),(0,n.createVNode)((0,n.unref)(r.NDivider),{vertical:``}),(0,n.createVNode)((0,n.unref)(r.NTooltip),null,{trigger:(0,n.withCtx)(()=>[(0,n.createVNode)((0,n.unref)(r.NButton),{size:`small`,quaternary:``,onClick:a[6]||=e=>i.$emit(`reset`)},{icon:(0,n.withCtx)(()=>[(0,n.createVNode)(e.t,{name:`mdi:refresh`})]),_:1})]),default:(0,n.withCtx)(()=>[a[13]||=(0,n.createTextVNode)(` 重置 `,-1)]),_:1})]))}});var c=t.t(s,[[`__scopeId`,`data-v-499ffd01`]]);const l={class:`cropper-preview`},u={class:`preview-label`},d=[`src`],f={key:1,class:`preview-empty`},p={class:`preview-thumbs`},m=[`src`],h={class:`preview-thumb__label`},g=(0,n.defineComponent)({__name:`CropperPreview`,props:{previewData:{},circular:{type:Boolean}},setup(t){let r=t,i=(0,n.ref)(null),a=(0,n.ref)(200),o=[{label:`80px`,size:80},{label:`48px`,size:48},{label:`32px`,size:32}],s=(0,n.computed)(()=>{let e=r.previewData;return e&&e.url&&e.w>0&&e.h>0}),c=(0,n.computed)(()=>{if(!s.value)return{};let{w:e}=r.previewData;return{zoom:a.value/e,overflow:`hidden`}});function g(e){if(!s.value)return{};let{w:t}=r.previewData;return{zoom:e/t,overflow:`hidden`}}let _=null;return(0,n.onMounted)(()=>{i.value&&(a.value=i.value.clientWidth,_=new ResizeObserver(e=>{requestAnimationFrame(()=>{for(let t of e)a.value=t.contentRect.width})}),_.observe(i.value))}),(0,n.onBeforeUnmount)(()=>{_?.disconnect()}),(r,a)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,l,[(0,n.createElementVNode)(`div`,u,[(0,n.createVNode)(e.t,{name:`mdi:eye-outline`}),a[0]||=(0,n.createElementVNode)(`span`,null,`裁剪预览`,-1)]),(0,n.createElementVNode)(`div`,{ref_key:`mainBoxRef`,ref:i,class:(0,n.normalizeClass)([`preview-main`,{"preview-main--circular":t.circular}])},[s.value?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{key:0,class:`preview-main__viewport`,style:(0,n.normalizeStyle)(c.value)},[(0,n.createElementVNode)(`div`,{style:(0,n.normalizeStyle)(t.previewData.div)},[(0,n.createElementVNode)(`img`,{src:t.previewData.url,style:(0,n.normalizeStyle)(t.previewData.img),alt:`preview`},null,12,d)],4)],4)):((0,n.openBlock)(),(0,n.createElementBlock)(`div`,f,[(0,n.createVNode)(e.t,{name:`mdi:image-outline`,style:{"font-size":`32px`,opacity:`0.2`}})]))],2),(0,n.createElementVNode)(`div`,p,[((0,n.openBlock)(),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(o,e=>(0,n.createElementVNode)(`div`,{key:e.label,class:`preview-thumb`},[(0,n.createElementVNode)(`div`,{class:(0,n.normalizeClass)([`preview-thumb__box`,{"preview-thumb__box--circular":t.circular}]),style:(0,n.normalizeStyle)({width:`${e.size}px`,height:`${e.size}px`})},[s.value?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{key:0,class:`preview-thumb__viewport`,style:(0,n.normalizeStyle)(g(e.size))},[(0,n.createElementVNode)(`div`,{style:(0,n.normalizeStyle)(t.previewData.div)},[(0,n.createElementVNode)(`img`,{src:t.previewData.url,style:(0,n.normalizeStyle)(t.previewData.img),alt:`thumb`},null,12,m)],4)],4)):(0,n.createCommentVNode)(`v-if`,!0)],6),(0,n.createElementVNode)(`span`,h,(0,n.toDisplayString)(e.label),1)])),64))])]))}});var _=t.t(g,[[`__scopeId`,`data-v-cefefdc0`]]);const v={class:`c-image-cropper__body`},y={class:`c-image-cropper__workspace`},b={key:1,class:`c-image-cropper__placeholder`},x={key:0,class:`c-image-cropper__preview-panel`},S={key:1,class:`c-image-cropper`},C={class:`c-image-cropper__body`},w={class:`c-image-cropper__workspace`},T={key:1,class:`c-image-cropper__placeholder`},E={key:0,class:`c-image-cropper__preview-panel`},D=(0,n.defineComponent)({name:`C_ImageCropper`,__name:`index`,props:{src:{default:``},aspectRatio:{default:0},outputFormat:{default:`png`},outputQuality:{default:.92},maxOutputWidth:{default:0},maxOutputHeight:{default:0},showPreview:{type:Boolean,default:!0},showToolbar:{type:Boolean,default:!0},circular:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},height:{default:`400px`},modal:{type:Boolean,default:!1},modalTitle:{default:`图片裁剪`}},emits:[`crop`,`ready`,`error`,`confirm`,`cancel`],setup(t,{expose:o,emit:s}){let l=t,u=s,d=(0,n.ref)(l.src),f=(0,n.ref)(l.aspectRatio),p=(0,n.ref)(!1),m=(0,n.ref)(!1),h=(0,n.ref)(null),g=(0,n.ref)(null),D=(0,n.ref)(null),O=(0,n.computed)(()=>l.modal?D.value:g.value),k=(0,n.computed)(()=>typeof l.height==`number`?`${l.height}px`:l.height),A=(0,n.computed)(()=>({png:`png`,jpeg:`jpeg`,webp:`webp`})[l.outputFormat]||`png`),j=(0,n.computed)(()=>f.value>0),M=(0,n.computed)(()=>f.value<=0||f.value===1?[1,1]:Math.abs(f.value-16/9)<.01?[16,9]:Math.abs(f.value-4/3)<.01?[4,3]:Math.abs(f.value-3/2)<.01?[3,2]:[Math.round(f.value*100),100]),N=(0,n.computed)(()=>({width:300,height:f.value>0?300/f.value:200})),P=[{label:`自由`,value:0},{label:`1:1`,value:1},{label:`16:9`,value:16/9},{label:`4:3`,value:4/3},{label:`3:2`,value:3/2}],F=a({format:(0,n.computed)(()=>l.outputFormat),quality:(0,n.computed)(()=>l.outputQuality),maxWidth:(0,n.computed)(()=>l.maxOutputWidth),maxHeight:(0,n.computed)(()=>l.maxOutputHeight)});(0,n.watch)(O,e=>{F.cropperRef.value=e});function I(e){h.value=e}function L(e){e===`success`&&u(`ready`)}function R(e){F.rotate(e)}function z(e){f.value=e}function B(){F.reset()}async function V(){m.value=!0;try{let e=await F.getCropResult();u(`confirm`,e),u(`crop`,e),p.value=!1}finally{m.value=!1}}function H(){p.value=!1,u(`cancel`)}function U(e){let t=new FileReader;t.onload=e=>{d.value=e.target?.result},t.readAsDataURL(e)}return(0,n.watch)(()=>l.src,e=>{d.value=e}),(0,n.watch)(()=>l.aspectRatio,e=>{f.value=e}),o({getCropResult:F.getCropResult,rotate:F.rotate,zoom:F.zoom,flipX:F.flipX,flipY:F.flipY,reset:F.reset,setAspectRatio:e=>{f.value=e},loadFile:U,open:e=>{e&&(d.value=e),p.value=!0},close:()=>{p.value=!1}}),(t,a)=>l.modal?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(r.NModal),{key:0,show:p.value,"onUpdate:show":a[0]||=e=>p.value=e,preset:`card`,title:l.modalTitle||`图片裁剪`,style:{width:`860px`},"mask-closable":!1,closable:!0},{footer:(0,n.withCtx)(()=>[(0,n.createVNode)((0,n.unref)(r.NSpace),{justify:`end`},{default:(0,n.withCtx)(()=>[(0,n.createVNode)((0,n.unref)(r.NButton),{onClick:H},{default:(0,n.withCtx)(()=>[...a[2]||=[(0,n.createTextVNode)(`取消`,-1)]]),_:1}),(0,n.createVNode)((0,n.unref)(r.NButton),{type:`primary`,loading:m.value,onClick:V},{default:(0,n.withCtx)(()=>[...a[3]||=[(0,n.createTextVNode)(`确认裁剪`,-1)]]),_:1},8,[`loading`])]),_:1})]),default:(0,n.withCtx)(()=>[(0,n.createElementVNode)(`div`,v,[l.showToolbar?((0,n.openBlock)(),(0,n.createBlock)(c,{key:0,"current-ratio":f.value,"ratio-presets":P,onRatio:z,onRotate:R,onFlipX:(0,n.unref)(F).flipX,onFlipY:(0,n.unref)(F).flipY,onZoom:(0,n.unref)(F).zoom,onReset:B},null,8,[`current-ratio`,`onFlipX`,`onFlipY`,`onZoom`])):(0,n.createCommentVNode)(`v-if`,!0),(0,n.createElementVNode)(`div`,y,[(0,n.createElementVNode)(`div`,{class:`c-image-cropper__canvas`,style:(0,n.normalizeStyle)({height:k.value})},[d.value?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.VueCropper),{key:0,ref_key:`modalCropperRef`,ref:D,img:d.value,"output-size":l.outputQuality,"output-type":A.value,"can-scale":!1,"auto-crop":!0,"auto-crop-width":N.value.width,"auto-crop-height":N.value.height,fixed:j.value,"fixed-number":M.value,"center-box":!0,info:!0,"info-true":!0,"can-move":!0,"can-move-box":!0,original:!1,high:!0,full:!1,mode:`contain`,onRealTime:I,onImgLoad:L},null,8,[`img`,`output-size`,`output-type`,`auto-crop-width`,`auto-crop-height`,`fixed`,`fixed-number`])):((0,n.openBlock)(),(0,n.createElementBlock)(`div`,b,[(0,n.createVNode)(e.t,{name:`mdi:image-plus-outline`,style:{"font-size":`48px`,opacity:`0.3`}}),a[1]||=(0,n.createElementVNode)(`span`,null,`请选择图片`,-1)]))],4),l.showPreview&&d.value?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,x,[(0,n.createVNode)(_,{"preview-data":h.value,circular:l.circular},null,8,[`preview-data`,`circular`])])):(0,n.createCommentVNode)(`v-if`,!0)])])]),_:1},8,[`show`,`title`])):((0,n.openBlock)(),(0,n.createElementBlock)(`div`,S,[(0,n.createElementVNode)(`div`,C,[l.showToolbar?((0,n.openBlock)(),(0,n.createBlock)(c,{key:0,"current-ratio":f.value,"ratio-presets":P,onRatio:z,onRotate:R,onFlipX:(0,n.unref)(F).flipX,onFlipY:(0,n.unref)(F).flipY,onZoom:(0,n.unref)(F).zoom,onReset:B},null,8,[`current-ratio`,`onFlipX`,`onFlipY`,`onZoom`])):(0,n.createCommentVNode)(`v-if`,!0),(0,n.createElementVNode)(`div`,w,[(0,n.createElementVNode)(`div`,{class:`c-image-cropper__canvas`,style:(0,n.normalizeStyle)({height:k.value})},[d.value?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.VueCropper),{key:0,ref_key:`inlineCropperRef`,ref:g,img:d.value,"output-size":l.outputQuality,"output-type":A.value,"can-scale":!1,"auto-crop":!0,"auto-crop-width":N.value.width,"auto-crop-height":N.value.height,fixed:j.value,"fixed-number":M.value,"center-box":!0,info:!0,"info-true":!0,"can-move":!0,"can-move-box":!0,original:!1,high:!0,full:!1,mode:`contain`,onRealTime:I,onImgLoad:L},null,8,[`img`,`output-size`,`output-type`,`auto-crop-width`,`auto-crop-height`,`fixed`,`fixed-number`])):((0,n.openBlock)(),(0,n.createElementBlock)(`div`,T,[(0,n.createVNode)(e.t,{name:`mdi:image-plus-outline`,style:{"font-size":`48px`,opacity:`0.3`}}),a[4]||=(0,n.createElementVNode)(`span`,null,`请选择图片`,-1)]))],4),l.showPreview&&d.value?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,E,[(0,n.createVNode)(_,{"preview-data":h.value,circular:l.circular},null,8,[`preview-data`,`circular`])])):(0,n.createCommentVNode)(`v-if`,!0)])])]))}});var O=t.t(D,[[`__scopeId`,`data-v-296916a4`]]);Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return O}});
1
+ require(`./chunk.cjs`);const e=require(`./C_Icon2.cjs`),t=require(`./export-helper.cjs`);let n=require(`vue`),r=require(`naive-ui`),i=require(`vue-cropper`);function a(e={}){let t=(0,n.ref)(null);function r(){t.value?.rotateLeft()}function i(){t.value?.rotateRight()}function a(e){if(!Number.isFinite(e))return;let t=Math.round(e/90),n=t>0?i:r;for(let e=0;e<Math.abs(t);e++)n()}function o(e){!Number.isFinite(e)||e===0||t.value?.changeScale(e>0?1:-1)}function s(){t.value?.refresh()}function c(t,n){let r=e.maxWidth?.value??0,i=e.maxHeight?.value??0,a=Math.min(1,r>0?r/t:1,i>0?i/n:1);return{width:Math.max(1,Math.round(t*a)),height:Math.max(1,Math.round(n*a))}}function l(){return new Promise((n,r)=>{let i=t.value;if(!i){r(Error(`Cropper not initialized`));return}let a=e.format?.value??`png`,o=Math.min(1,Math.max(0,e.quality?.value??.92)),s=a===`jpeg`?`image/jpeg`:`image/${a}`,l=!1,u=setTimeout(()=>d(Error(`Crop result timed out`)),15e3);function d(e){l||(l=!0,clearTimeout(u),r(e instanceof Error?e:Error(String(e))))}function f(e){l||(l=!0,clearTimeout(u),n(e))}try{i.getCropChecked(e=>{if(!l)try{if(!e.width||!e.height)throw Error(`Crop result is empty`);let{width:t,height:n}=c(e.width,e.height),r=e;if(t!==e.width||n!==e.height){r=document.createElement(`canvas`),r.width=t,r.height=n;let i=r.getContext(`2d`);if(!i)throw Error(`Canvas 2D context unavailable`);i.drawImage(e,0,0,t,n)}let i=r.toDataURL(s,o);r.toBlob(e=>{if(!e){d(Error(`Crop result could not be encoded`));return}f({base64:i,blob:e,width:t,height:n,format:a})},s,o)}catch(e){d(e)}})}catch(e){d(e)}})}return{cropperRef:t,rotate:a,rotateLeft:r,rotateRight:i,zoom:o,reset:s,getCropResult:l}}const o={class:`cropper-toolbar`},s=(0,n.defineComponent)({__name:`CropperToolbar`,props:{currentRatio:{},ratioPresets:{},disabled:{type:Boolean}},emits:[`ratio`,`rotate`,`flipX`,`flipY`,`zoom`,`reset`],setup(t){return(i,a)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,o,[(0,n.createVNode)((0,n.unref)(r.NButtonGroup),{size:`small`},{default:(0,n.withCtx)(()=>[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(t.ratioPresets,e=>((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(r.NButton),{key:e.value,type:t.currentRatio===e.value?`primary`:`default`,disabled:t.disabled,onClick:t=>i.$emit(`ratio`,e.value)},{default:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(e.label),1)]),_:2},1032,[`type`,`disabled`,`onClick`]))),128))]),_:1}),(0,n.createVNode)((0,n.unref)(r.NDivider),{vertical:``}),(0,n.createVNode)((0,n.unref)(r.NTooltip),null,{trigger:(0,n.withCtx)(()=>[(0,n.createVNode)((0,n.unref)(r.NButton),{size:`small`,quaternary:``,disabled:t.disabled,onClick:a[0]||=e=>i.$emit(`rotate`,-90)},{icon:(0,n.withCtx)(()=>[(0,n.createVNode)(e.t,{name:`mdi:rotate-left`})]),_:1},8,[`disabled`])]),default:(0,n.withCtx)(()=>[a[7]||=(0,n.createTextVNode)(` 逆时针旋转 90° `,-1)]),_:1}),(0,n.createVNode)((0,n.unref)(r.NTooltip),null,{trigger:(0,n.withCtx)(()=>[(0,n.createVNode)((0,n.unref)(r.NButton),{size:`small`,quaternary:``,disabled:t.disabled,onClick:a[1]||=e=>i.$emit(`rotate`,90)},{icon:(0,n.withCtx)(()=>[(0,n.createVNode)(e.t,{name:`mdi:rotate-right`})]),_:1},8,[`disabled`])]),default:(0,n.withCtx)(()=>[a[8]||=(0,n.createTextVNode)(` 顺时针旋转 90° `,-1)]),_:1}),(0,n.createVNode)((0,n.unref)(r.NDivider),{vertical:``}),(0,n.createVNode)((0,n.unref)(r.NTooltip),null,{trigger:(0,n.withCtx)(()=>[(0,n.createVNode)((0,n.unref)(r.NButton),{size:`small`,quaternary:``,disabled:t.disabled,onClick:a[2]||=e=>i.$emit(`flipX`)},{icon:(0,n.withCtx)(()=>[(0,n.createVNode)(e.t,{name:`mdi:flip-horizontal`})]),_:1},8,[`disabled`])]),default:(0,n.withCtx)(()=>[a[9]||=(0,n.createTextVNode)(` 水平翻转 `,-1)]),_:1}),(0,n.createVNode)((0,n.unref)(r.NTooltip),null,{trigger:(0,n.withCtx)(()=>[(0,n.createVNode)((0,n.unref)(r.NButton),{size:`small`,quaternary:``,disabled:t.disabled,onClick:a[3]||=e=>i.$emit(`flipY`)},{icon:(0,n.withCtx)(()=>[(0,n.createVNode)(e.t,{name:`mdi:flip-vertical`})]),_:1},8,[`disabled`])]),default:(0,n.withCtx)(()=>[a[10]||=(0,n.createTextVNode)(` 垂直翻转 `,-1)]),_:1}),(0,n.createVNode)((0,n.unref)(r.NDivider),{vertical:``}),(0,n.createVNode)((0,n.unref)(r.NTooltip),null,{trigger:(0,n.withCtx)(()=>[(0,n.createVNode)((0,n.unref)(r.NButton),{size:`small`,quaternary:``,disabled:t.disabled,onClick:a[4]||=e=>i.$emit(`zoom`,.1)},{icon:(0,n.withCtx)(()=>[(0,n.createVNode)(e.t,{name:`mdi:magnify-plus-outline`})]),_:1},8,[`disabled`])]),default:(0,n.withCtx)(()=>[a[11]||=(0,n.createTextVNode)(` 放大 `,-1)]),_:1}),(0,n.createVNode)((0,n.unref)(r.NTooltip),null,{trigger:(0,n.withCtx)(()=>[(0,n.createVNode)((0,n.unref)(r.NButton),{size:`small`,quaternary:``,disabled:t.disabled,onClick:a[5]||=e=>i.$emit(`zoom`,-.1)},{icon:(0,n.withCtx)(()=>[(0,n.createVNode)(e.t,{name:`mdi:magnify-minus-outline`})]),_:1},8,[`disabled`])]),default:(0,n.withCtx)(()=>[a[12]||=(0,n.createTextVNode)(` 缩小 `,-1)]),_:1}),(0,n.createVNode)((0,n.unref)(r.NDivider),{vertical:``}),(0,n.createVNode)((0,n.unref)(r.NTooltip),null,{trigger:(0,n.withCtx)(()=>[(0,n.createVNode)((0,n.unref)(r.NButton),{size:`small`,quaternary:``,disabled:t.disabled,onClick:a[6]||=e=>i.$emit(`reset`)},{icon:(0,n.withCtx)(()=>[(0,n.createVNode)(e.t,{name:`mdi:refresh`})]),_:1},8,[`disabled`])]),default:(0,n.withCtx)(()=>[a[13]||=(0,n.createTextVNode)(` 重置 `,-1)]),_:1})]))}});var c=t.t(s,[[`__scopeId`,`data-v-eb7204dc`]]);const l={class:`cropper-preview`},u={class:`preview-label`},d=[`src`],f={key:1,class:`preview-empty`},p={class:`preview-thumbs`},m=[`src`],h={class:`preview-thumb__label`},g=(0,n.defineComponent)({__name:`CropperPreview`,props:{previewData:{},circular:{type:Boolean}},setup(t){let r=t,i=(0,n.ref)(null),a=(0,n.ref)(200),o=[{label:`80px`,size:80},{label:`48px`,size:48},{label:`32px`,size:32}],s=(0,n.computed)(()=>{let e=r.previewData;return e&&e.url&&e.w>0&&e.h>0}),c=(0,n.computed)(()=>{if(!s.value)return{};let{w:e}=r.previewData;return{zoom:a.value/e,overflow:`hidden`}});function g(e){if(!s.value)return{};let{w:t}=r.previewData;return{zoom:e/t,overflow:`hidden`}}let _=null;return(0,n.onMounted)(()=>{i.value&&(a.value=i.value.clientWidth,_=new ResizeObserver(e=>{requestAnimationFrame(()=>{for(let t of e)a.value=t.contentRect.width})}),_.observe(i.value))}),(0,n.onBeforeUnmount)(()=>{_?.disconnect()}),(r,a)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,l,[(0,n.createElementVNode)(`div`,u,[(0,n.createVNode)(e.t,{name:`mdi:eye-outline`}),a[0]||=(0,n.createElementVNode)(`span`,null,`裁剪预览`,-1)]),(0,n.createElementVNode)(`div`,{ref_key:`mainBoxRef`,ref:i,class:(0,n.normalizeClass)([`preview-main`,{"preview-main--circular":t.circular}])},[s.value?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{key:0,class:`preview-main__viewport`,style:(0,n.normalizeStyle)(c.value)},[(0,n.createElementVNode)(`div`,{style:(0,n.normalizeStyle)(t.previewData.div)},[(0,n.createElementVNode)(`img`,{src:t.previewData.url,style:(0,n.normalizeStyle)(t.previewData.img),alt:`preview`},null,12,d)],4)],4)):((0,n.openBlock)(),(0,n.createElementBlock)(`div`,f,[(0,n.createVNode)(e.t,{name:`mdi:image-outline`,style:{"font-size":`32px`,opacity:`0.2`}})]))],2),(0,n.createElementVNode)(`div`,p,[((0,n.openBlock)(),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(o,e=>(0,n.createElementVNode)(`div`,{key:e.label,class:`preview-thumb`},[(0,n.createElementVNode)(`div`,{class:(0,n.normalizeClass)([`preview-thumb__box`,{"preview-thumb__box--circular":t.circular}]),style:(0,n.normalizeStyle)({width:`${e.size}px`,height:`${e.size}px`})},[s.value?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{key:0,class:`preview-thumb__viewport`,style:(0,n.normalizeStyle)(g(e.size))},[(0,n.createElementVNode)(`div`,{style:(0,n.normalizeStyle)(t.previewData.div)},[(0,n.createElementVNode)(`img`,{src:t.previewData.url,style:(0,n.normalizeStyle)(t.previewData.img),alt:`thumb`},null,12,m)],4)],4)):(0,n.createCommentVNode)(`v-if`,!0)],6),(0,n.createElementVNode)(`span`,h,(0,n.toDisplayString)(e.label),1)])),64))])]))}});var _=t.t(g,[[`__scopeId`,`data-v-c8968d14`]]);function v(e,t){return new Promise((n,r)=>{let i=new Image;!e.startsWith(`data:`)&&!e.startsWith(`blob:`)&&(i.crossOrigin=`anonymous`),i.onload=()=>{try{let e=i.naturalWidth,r=i.naturalHeight;if(!e||!r)throw Error(`Image has no dimensions`);let a=document.createElement(`canvas`);a.width=e,a.height=r;let o=a.getContext(`2d`);if(!o)throw Error(`Canvas 2D context unavailable`);o.translate(t===`horizontal`?e:0,t===`vertical`?r:0),o.scale(t===`horizontal`?-1:1,t===`vertical`?-1:1),o.drawImage(i,0,0),n(a.toDataURL(`image/png`))}catch(e){r(e)}},i.onerror=()=>r(Error(`Image could not be loaded for flipping`)),i.src=e})}const y={class:`c-image-cropper__body`},b={class:`c-image-cropper__workspace`},x={key:1,class:`c-image-cropper__placeholder`},S={key:0,class:`c-image-cropper__preview-panel`},C={key:1,class:`c-image-cropper`},w={class:`c-image-cropper__body`},T={class:`c-image-cropper__workspace`},E={key:1,class:`c-image-cropper__placeholder`},D={key:0,class:`c-image-cropper__preview-panel`},O=(0,n.defineComponent)({name:`C_ImageCropper`,__name:`index`,props:{src:{default:``},aspectRatio:{default:0},outputFormat:{default:`png`},outputQuality:{default:.92},maxOutputWidth:{default:0},maxOutputHeight:{default:0},showPreview:{type:Boolean,default:!0},showToolbar:{type:Boolean,default:!0},circular:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},height:{default:`400px`},modal:{type:Boolean,default:!1},modalTitle:{default:`图片裁剪`}},emits:[`crop`,`ready`,`error`,`confirm`,`cancel`],setup(t,{expose:o,emit:s}){let l=t,u=s,d=(0,n.ref)(l.src),f=(0,n.ref)(l.aspectRatio),p=(0,n.ref)(!1),m=(0,n.ref)(!1),h=(0,n.ref)(!1),g=(0,n.ref)(!1),O=(0,n.ref)(null),k=(0,n.ref)(null),A=(0,n.ref)(null),j=(0,n.computed)(()=>l.modal?A.value:k.value),M=(0,n.computed)(()=>typeof l.height==`number`?`${l.height}px`:l.height),N=(0,n.computed)(()=>({png:`png`,jpeg:`jpeg`,webp:`webp`})[l.outputFormat]||`png`),P=(0,n.computed)(()=>f.value>0),F=(0,n.computed)(()=>f.value<=0||f.value===1?[1,1]:Math.abs(f.value-16/9)<.01?[16,9]:Math.abs(f.value-4/3)<.01?[4,3]:Math.abs(f.value-3/2)<.01?[3,2]:[Math.round(f.value*100),100]),I=(0,n.computed)(()=>({width:300,height:f.value>0?300/f.value:200})),L=[{label:`自由`,value:0},{label:`1:1`,value:1},{label:`16:9`,value:16/9},{label:`4:3`,value:4/3},{label:`3:2`,value:3/2}],R=a({format:(0,n.computed)(()=>l.outputFormat),quality:(0,n.computed)(()=>l.outputQuality),maxWidth:(0,n.computed)(()=>l.maxOutputWidth),maxHeight:(0,n.computed)(()=>l.maxOutputHeight)});(0,n.watch)(j,e=>{R.cropperRef.value=e});function z(e){O.value=e}function B(e){g.value=e===`success`,g.value?u(`ready`):W(e instanceof Error?e:Error(`Image could not be loaded`))}function V(e){l.disabled||h.value||m.value||R.rotate(e)}function H(e){l.disabled||h.value||m.value||(f.value=e)}function U(){l.disabled||h.value||m.value||(g.value=!1,R.reset())}function W(e){u(`error`,e instanceof Error?e:Error(String(e)))}async function G(e){if(l.disabled||h.value||m.value||!d.value)return;h.value=!0;let t=d.value;try{let n=await v(t,e);d.value===t&&(d.value=n)}catch(e){W(e)}finally{h.value=!1}}function K(){G(`horizontal`)}function q(){G(`vertical`)}async function J(){if(!g.value||h.value)throw Error(`Image cropper is not ready`);let e=d.value,t=await R.getCropResult();if(e!==d.value||!g.value)throw Error(`Image changed during crop export`);return t}async function Y(){if(!(l.disabled||h.value||m.value||!g.value)){m.value=!0;try{let e=await J();if(!p.value)return;u(`confirm`,e),u(`crop`,e),p.value=!1}catch(e){W(e)}finally{m.value=!1}}}function X(){p.value=!1,u(`cancel`)}function Z(e){if(!e.type.startsWith(`image/`)){W(Error(`Please select an image file`));return}let t=new FileReader;t.onerror=()=>W(Error(`Image file could not be read`)),t.onload=e=>{typeof e.target?.result==`string`&&(d.value=e.target.result)},t.readAsDataURL(e)}return(0,n.watch)(d,()=>{g.value=!1,O.value=null}),(0,n.watch)(()=>l.src,e=>{d.value=e}),(0,n.watch)(()=>l.aspectRatio,e=>{f.value=e}),o({getCropResult:J,rotate:R.rotate,zoom:R.zoom,flipX:K,flipY:q,reset:R.reset,setAspectRatio:e=>{f.value=e},loadFile:Z,open:e=>{e&&(d.value=e),p.value=!0},close:()=>{p.value=!1}}),(t,a)=>l.modal?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(r.NModal),{key:0,show:p.value,"onUpdate:show":a[0]||=e=>p.value=e,preset:`card`,title:l.modalTitle||`图片裁剪`,style:{width:`860px`},"mask-closable":!1,closable:!0},{footer:(0,n.withCtx)(()=>[(0,n.createVNode)((0,n.unref)(r.NSpace),{justify:`end`},{default:(0,n.withCtx)(()=>[(0,n.createVNode)((0,n.unref)(r.NButton),{disabled:m.value,onClick:X},{default:(0,n.withCtx)(()=>[...a[2]||=[(0,n.createTextVNode)(`取消`,-1)]]),_:1},8,[`disabled`]),(0,n.createVNode)((0,n.unref)(r.NButton),{type:`primary`,loading:m.value,disabled:l.disabled||h.value||!g.value,onClick:Y},{default:(0,n.withCtx)(()=>[...a[3]||=[(0,n.createTextVNode)(`确认裁剪`,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),default:(0,n.withCtx)(()=>[(0,n.createElementVNode)(`div`,y,[l.showToolbar?((0,n.openBlock)(),(0,n.createBlock)(c,{key:0,"current-ratio":f.value,"ratio-presets":L,disabled:l.disabled||h.value||m.value||!g.value,onRatio:H,onRotate:V,onFlipX:K,onFlipY:q,onZoom:(0,n.unref)(R).zoom,onReset:U},null,8,[`current-ratio`,`disabled`,`onZoom`])):(0,n.createCommentVNode)(`v-if`,!0),(0,n.createElementVNode)(`div`,b,[(0,n.createElementVNode)(`div`,{class:`c-image-cropper__canvas`,style:(0,n.normalizeStyle)({height:M.value})},[d.value?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.VueCropper),{key:0,ref_key:`modalCropperRef`,ref:A,img:d.value,"output-size":l.outputQuality,"output-type":N.value,"can-scale":!1,"auto-crop":!0,"auto-crop-width":I.value.width,"auto-crop-height":I.value.height,fixed:P.value,"fixed-number":F.value,"center-box":!0,info:!0,"info-true":!0,"can-move":!l.disabled&&!m.value&&!h.value,"can-move-box":!l.disabled&&!m.value&&!h.value,"fixed-box":l.disabled||m.value||h.value,original:!1,high:!0,full:!1,mode:`contain`,onRealTime:z,onImgLoad:B},null,8,[`img`,`output-size`,`output-type`,`auto-crop-width`,`auto-crop-height`,`fixed`,`fixed-number`,`can-move`,`can-move-box`,`fixed-box`])):((0,n.openBlock)(),(0,n.createElementBlock)(`div`,x,[(0,n.createVNode)(e.t,{name:`mdi:image-plus-outline`,style:{"font-size":`48px`,opacity:`0.3`}}),a[1]||=(0,n.createElementVNode)(`span`,null,`请选择图片`,-1)]))],4),l.showPreview&&d.value?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,S,[(0,n.createVNode)(_,{"preview-data":O.value,circular:l.circular},null,8,[`preview-data`,`circular`])])):(0,n.createCommentVNode)(`v-if`,!0)])])]),_:1},8,[`show`,`title`])):((0,n.openBlock)(),(0,n.createElementBlock)(`div`,C,[(0,n.createElementVNode)(`div`,w,[l.showToolbar?((0,n.openBlock)(),(0,n.createBlock)(c,{key:0,"current-ratio":f.value,"ratio-presets":L,disabled:l.disabled||h.value||m.value||!g.value,onRatio:H,onRotate:V,onFlipX:K,onFlipY:q,onZoom:(0,n.unref)(R).zoom,onReset:U},null,8,[`current-ratio`,`disabled`,`onZoom`])):(0,n.createCommentVNode)(`v-if`,!0),(0,n.createElementVNode)(`div`,T,[(0,n.createElementVNode)(`div`,{class:`c-image-cropper__canvas`,style:(0,n.normalizeStyle)({height:M.value})},[d.value?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.VueCropper),{key:0,ref_key:`inlineCropperRef`,ref:k,img:d.value,"output-size":l.outputQuality,"output-type":N.value,"can-scale":!1,"auto-crop":!0,"auto-crop-width":I.value.width,"auto-crop-height":I.value.height,fixed:P.value,"fixed-number":F.value,"center-box":!0,info:!0,"info-true":!0,"can-move":!l.disabled&&!m.value&&!h.value,"can-move-box":!l.disabled&&!m.value&&!h.value,"fixed-box":l.disabled||m.value||h.value,original:!1,high:!0,full:!1,mode:`contain`,onRealTime:z,onImgLoad:B},null,8,[`img`,`output-size`,`output-type`,`auto-crop-width`,`auto-crop-height`,`fixed`,`fixed-number`,`can-move`,`can-move-box`,`fixed-box`])):((0,n.openBlock)(),(0,n.createElementBlock)(`div`,E,[(0,n.createVNode)(e.t,{name:`mdi:image-plus-outline`,style:{"font-size":`48px`,opacity:`0.3`}}),a[4]||=(0,n.createElementVNode)(`span`,null,`请选择图片`,-1)]))],4),l.showPreview&&d.value?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,D,[(0,n.createVNode)(_,{"preview-data":O.value,circular:l.circular},null,8,[`preview-data`,`circular`])])):(0,n.createCommentVNode)(`v-if`,!0)])])]))}});var k=t.t(O,[[`__scopeId`,`data-v-8aa3952f`]]);Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return k}});
@@ -1 +1 @@
1
- import{t as e}from"./C_Icon2.js";import{t}from"./export-helper.js";import{Fragment as n,computed as r,createBlock as i,createCommentVNode as a,createElementBlock as o,createElementVNode as s,createTextVNode as c,createVNode as l,defineComponent as u,normalizeClass as d,normalizeStyle as f,onBeforeUnmount as p,onMounted as m,openBlock as h,ref as g,renderList as _,toDisplayString as v,unref as y,watch as b,withCtx as x}from"vue";import{NButton as S,NButtonGroup as C,NDivider as w,NModal as T,NSpace as E,NTooltip as D}from"naive-ui";import{VueCropper as O}from"vue-cropper";function k(e={}){let t=g(null);function n(){t.value?.rotateLeft()}function r(){t.value?.rotateRight()}function i(e){let t=Math.round(e/90),i=t>0?r:n;for(let e=0;e<Math.abs(t);e++)i()}function a(e){t.value?.changeScale(e>0?1:-1)}function o(){let e=t.value?.$refs?.img;if(!e)return;let n=e.style.transform||``;n.includes(`scaleX(-1)`)?e.style.transform=n.replace(`scaleX(-1)`,`scaleX(1)`):e.style.transform=n.replace(/scaleX\([^)]*\)/,``)+` scaleX(-1)`}function s(){let e=t.value?.$refs?.img;if(!e)return;let n=e.style.transform||``;n.includes(`scaleY(-1)`)?e.style.transform=n.replace(`scaleY(-1)`,`scaleY(1)`):e.style.transform=n.replace(/scaleY\([^)]*\)/,``)+` scaleY(-1)`}function c(){t.value?.refresh()}function l(t,n){let r=t,i=n,a=e.maxWidth?.value??0,o=e.maxHeight?.value??0;if(a>0&&r>a){let e=a/r;r=a,i=Math.round(i*e)}if(o>0&&i>o){let e=o/i;i=o,r=Math.round(r*e)}return{width:r,height:i}}function u(){return new Promise((n,r)=>{let i=t.value;if(!i)return r(Error(`Cropper not initialized`));let a=e.format?.value??`png`,o=e.quality?.value??.92,s=a===`jpeg`?`image/jpeg`:a===`webp`?`image/webp`:`image/png`;i.getCropData(e=>{i.getCropBlob(t=>{let i=new Image;i.onload=()=>{let{width:r,height:c}=l(i.width,i.height);if(r!==i.width||c!==i.height){let e=document.createElement(`canvas`);e.width=r,e.height=c,e.getContext(`2d`).drawImage(i,0,0,r,c);let t=e.toDataURL(s,o);e.toBlob(e=>{n({base64:t,blob:e,width:r,height:c,format:a})},s,a===`png`?void 0:o)}else n({base64:e,blob:t,width:i.width,height:i.height,format:a})},i.onerror=()=>r(Error(`Failed to load crop result`)),i.src=e})})})}return{cropperRef:t,rotate:i,rotateLeft:n,rotateRight:r,zoom:a,flipX:o,flipY:s,reset:c,getCropResult:u}}const A={class:`cropper-toolbar`};var j=t(u({__name:`CropperToolbar`,props:{currentRatio:{},ratioPresets:{}},emits:[`ratio`,`rotate`,`flipX`,`flipY`,`zoom`,`reset`],setup(t){return(r,a)=>(h(),o(`div`,A,[l(y(C),{size:`small`},{default:x(()=>[(h(!0),o(n,null,_(t.ratioPresets,e=>(h(),i(y(S),{key:e.value,type:t.currentRatio===e.value?`primary`:`default`,onClick:t=>r.$emit(`ratio`,e.value)},{default:x(()=>[c(v(e.label),1)]),_:2},1032,[`type`,`onClick`]))),128))]),_:1}),l(y(w),{vertical:``}),l(y(D),null,{trigger:x(()=>[l(y(S),{size:`small`,quaternary:``,onClick:a[0]||=e=>r.$emit(`rotate`,-90)},{icon:x(()=>[l(e,{name:`mdi:rotate-left`})]),_:1})]),default:x(()=>[a[7]||=c(` 逆时针旋转 90° `,-1)]),_:1}),l(y(D),null,{trigger:x(()=>[l(y(S),{size:`small`,quaternary:``,onClick:a[1]||=e=>r.$emit(`rotate`,90)},{icon:x(()=>[l(e,{name:`mdi:rotate-right`})]),_:1})]),default:x(()=>[a[8]||=c(` 顺时针旋转 90° `,-1)]),_:1}),l(y(w),{vertical:``}),l(y(D),null,{trigger:x(()=>[l(y(S),{size:`small`,quaternary:``,onClick:a[2]||=e=>r.$emit(`flipX`)},{icon:x(()=>[l(e,{name:`mdi:flip-horizontal`})]),_:1})]),default:x(()=>[a[9]||=c(` 水平翻转 `,-1)]),_:1}),l(y(D),null,{trigger:x(()=>[l(y(S),{size:`small`,quaternary:``,onClick:a[3]||=e=>r.$emit(`flipY`)},{icon:x(()=>[l(e,{name:`mdi:flip-vertical`})]),_:1})]),default:x(()=>[a[10]||=c(` 垂直翻转 `,-1)]),_:1}),l(y(w),{vertical:``}),l(y(D),null,{trigger:x(()=>[l(y(S),{size:`small`,quaternary:``,onClick:a[4]||=e=>r.$emit(`zoom`,.1)},{icon:x(()=>[l(e,{name:`mdi:magnify-plus-outline`})]),_:1})]),default:x(()=>[a[11]||=c(` 放大 `,-1)]),_:1}),l(y(D),null,{trigger:x(()=>[l(y(S),{size:`small`,quaternary:``,onClick:a[5]||=e=>r.$emit(`zoom`,-.1)},{icon:x(()=>[l(e,{name:`mdi:magnify-minus-outline`})]),_:1})]),default:x(()=>[a[12]||=c(` 缩小 `,-1)]),_:1}),l(y(w),{vertical:``}),l(y(D),null,{trigger:x(()=>[l(y(S),{size:`small`,quaternary:``,onClick:a[6]||=e=>r.$emit(`reset`)},{icon:x(()=>[l(e,{name:`mdi:refresh`})]),_:1})]),default:x(()=>[a[13]||=c(` 重置 `,-1)]),_:1})]))}}),[[`__scopeId`,`data-v-499ffd01`]]);const M={class:`cropper-preview`},N={class:`preview-label`},P=[`src`],F={key:1,class:`preview-empty`},I={class:`preview-thumbs`},L=[`src`],R={class:`preview-thumb__label`};var z=t(u({__name:`CropperPreview`,props:{previewData:{},circular:{type:Boolean}},setup(t){let i=t,c=g(null),u=g(200),y=[{label:`80px`,size:80},{label:`48px`,size:48},{label:`32px`,size:32}],b=r(()=>{let e=i.previewData;return e&&e.url&&e.w>0&&e.h>0}),x=r(()=>{if(!b.value)return{};let{w:e}=i.previewData;return{zoom:u.value/e,overflow:`hidden`}});function S(e){if(!b.value)return{};let{w:t}=i.previewData;return{zoom:e/t,overflow:`hidden`}}let C=null;return m(()=>{c.value&&(u.value=c.value.clientWidth,C=new ResizeObserver(e=>{requestAnimationFrame(()=>{for(let t of e)u.value=t.contentRect.width})}),C.observe(c.value))}),p(()=>{C?.disconnect()}),(r,i)=>(h(),o(`div`,M,[s(`div`,N,[l(e,{name:`mdi:eye-outline`}),i[0]||=s(`span`,null,`裁剪预览`,-1)]),s(`div`,{ref_key:`mainBoxRef`,ref:c,class:d([`preview-main`,{"preview-main--circular":t.circular}])},[b.value?(h(),o(`div`,{key:0,class:`preview-main__viewport`,style:f(x.value)},[s(`div`,{style:f(t.previewData.div)},[s(`img`,{src:t.previewData.url,style:f(t.previewData.img),alt:`preview`},null,12,P)],4)],4)):(h(),o(`div`,F,[l(e,{name:`mdi:image-outline`,style:{"font-size":`32px`,opacity:`0.2`}})]))],2),s(`div`,I,[(h(),o(n,null,_(y,e=>s(`div`,{key:e.label,class:`preview-thumb`},[s(`div`,{class:d([`preview-thumb__box`,{"preview-thumb__box--circular":t.circular}]),style:f({width:`${e.size}px`,height:`${e.size}px`})},[b.value?(h(),o(`div`,{key:0,class:`preview-thumb__viewport`,style:f(S(e.size))},[s(`div`,{style:f(t.previewData.div)},[s(`img`,{src:t.previewData.url,style:f(t.previewData.img),alt:`thumb`},null,12,L)],4)],4)):a(`v-if`,!0)],6),s(`span`,R,v(e.label),1)])),64))])]))}}),[[`__scopeId`,`data-v-cefefdc0`]]);const B={class:`c-image-cropper__body`},V={class:`c-image-cropper__workspace`},H={key:1,class:`c-image-cropper__placeholder`},U={key:0,class:`c-image-cropper__preview-panel`},W={key:1,class:`c-image-cropper`},G={class:`c-image-cropper__body`},K={class:`c-image-cropper__workspace`},q={key:1,class:`c-image-cropper__placeholder`},ee={key:0,class:`c-image-cropper__preview-panel`};var J=t(u({name:`C_ImageCropper`,__name:`index`,props:{src:{default:``},aspectRatio:{default:0},outputFormat:{default:`png`},outputQuality:{default:.92},maxOutputWidth:{default:0},maxOutputHeight:{default:0},showPreview:{type:Boolean,default:!0},showToolbar:{type:Boolean,default:!0},circular:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},height:{default:`400px`},modal:{type:Boolean,default:!1},modalTitle:{default:`图片裁剪`}},emits:[`crop`,`ready`,`error`,`confirm`,`cancel`],setup(t,{expose:n,emit:u}){let d=t,p=u,m=g(d.src),_=g(d.aspectRatio),v=g(!1),C=g(!1),w=g(null),D=g(null),A=g(null),M=r(()=>d.modal?A.value:D.value),N=r(()=>typeof d.height==`number`?`${d.height}px`:d.height),P=r(()=>({png:`png`,jpeg:`jpeg`,webp:`webp`})[d.outputFormat]||`png`),F=r(()=>_.value>0),I=r(()=>_.value<=0||_.value===1?[1,1]:Math.abs(_.value-16/9)<.01?[16,9]:Math.abs(_.value-4/3)<.01?[4,3]:Math.abs(_.value-3/2)<.01?[3,2]:[Math.round(_.value*100),100]),L=r(()=>({width:300,height:_.value>0?300/_.value:200})),R=[{label:`自由`,value:0},{label:`1:1`,value:1},{label:`16:9`,value:16/9},{label:`4:3`,value:4/3},{label:`3:2`,value:3/2}],J=k({format:r(()=>d.outputFormat),quality:r(()=>d.outputQuality),maxWidth:r(()=>d.maxOutputWidth),maxHeight:r(()=>d.maxOutputHeight)});b(M,e=>{J.cropperRef.value=e});function Y(e){w.value=e}function X(e){e===`success`&&p(`ready`)}function Z(e){J.rotate(e)}function Q(e){_.value=e}function $(){J.reset()}async function te(){C.value=!0;try{let e=await J.getCropResult();p(`confirm`,e),p(`crop`,e),v.value=!1}finally{C.value=!1}}function ne(){v.value=!1,p(`cancel`)}function re(e){let t=new FileReader;t.onload=e=>{m.value=e.target?.result},t.readAsDataURL(e)}return b(()=>d.src,e=>{m.value=e}),b(()=>d.aspectRatio,e=>{_.value=e}),n({getCropResult:J.getCropResult,rotate:J.rotate,zoom:J.zoom,flipX:J.flipX,flipY:J.flipY,reset:J.reset,setAspectRatio:e=>{_.value=e},loadFile:re,open:e=>{e&&(m.value=e),v.value=!0},close:()=>{v.value=!1}}),(t,n)=>d.modal?(h(),i(y(T),{key:0,show:v.value,"onUpdate:show":n[0]||=e=>v.value=e,preset:`card`,title:d.modalTitle||`图片裁剪`,style:{width:`860px`},"mask-closable":!1,closable:!0},{footer:x(()=>[l(y(E),{justify:`end`},{default:x(()=>[l(y(S),{onClick:ne},{default:x(()=>[...n[2]||=[c(`取消`,-1)]]),_:1}),l(y(S),{type:`primary`,loading:C.value,onClick:te},{default:x(()=>[...n[3]||=[c(`确认裁剪`,-1)]]),_:1},8,[`loading`])]),_:1})]),default:x(()=>[s(`div`,B,[d.showToolbar?(h(),i(j,{key:0,"current-ratio":_.value,"ratio-presets":R,onRatio:Q,onRotate:Z,onFlipX:y(J).flipX,onFlipY:y(J).flipY,onZoom:y(J).zoom,onReset:$},null,8,[`current-ratio`,`onFlipX`,`onFlipY`,`onZoom`])):a(`v-if`,!0),s(`div`,V,[s(`div`,{class:`c-image-cropper__canvas`,style:f({height:N.value})},[m.value?(h(),i(y(O),{key:0,ref_key:`modalCropperRef`,ref:A,img:m.value,"output-size":d.outputQuality,"output-type":P.value,"can-scale":!1,"auto-crop":!0,"auto-crop-width":L.value.width,"auto-crop-height":L.value.height,fixed:F.value,"fixed-number":I.value,"center-box":!0,info:!0,"info-true":!0,"can-move":!0,"can-move-box":!0,original:!1,high:!0,full:!1,mode:`contain`,onRealTime:Y,onImgLoad:X},null,8,[`img`,`output-size`,`output-type`,`auto-crop-width`,`auto-crop-height`,`fixed`,`fixed-number`])):(h(),o(`div`,H,[l(e,{name:`mdi:image-plus-outline`,style:{"font-size":`48px`,opacity:`0.3`}}),n[1]||=s(`span`,null,`请选择图片`,-1)]))],4),d.showPreview&&m.value?(h(),o(`div`,U,[l(z,{"preview-data":w.value,circular:d.circular},null,8,[`preview-data`,`circular`])])):a(`v-if`,!0)])])]),_:1},8,[`show`,`title`])):(h(),o(`div`,W,[s(`div`,G,[d.showToolbar?(h(),i(j,{key:0,"current-ratio":_.value,"ratio-presets":R,onRatio:Q,onRotate:Z,onFlipX:y(J).flipX,onFlipY:y(J).flipY,onZoom:y(J).zoom,onReset:$},null,8,[`current-ratio`,`onFlipX`,`onFlipY`,`onZoom`])):a(`v-if`,!0),s(`div`,K,[s(`div`,{class:`c-image-cropper__canvas`,style:f({height:N.value})},[m.value?(h(),i(y(O),{key:0,ref_key:`inlineCropperRef`,ref:D,img:m.value,"output-size":d.outputQuality,"output-type":P.value,"can-scale":!1,"auto-crop":!0,"auto-crop-width":L.value.width,"auto-crop-height":L.value.height,fixed:F.value,"fixed-number":I.value,"center-box":!0,info:!0,"info-true":!0,"can-move":!0,"can-move-box":!0,original:!1,high:!0,full:!1,mode:`contain`,onRealTime:Y,onImgLoad:X},null,8,[`img`,`output-size`,`output-type`,`auto-crop-width`,`auto-crop-height`,`fixed`,`fixed-number`])):(h(),o(`div`,q,[l(e,{name:`mdi:image-plus-outline`,style:{"font-size":`48px`,opacity:`0.3`}}),n[4]||=s(`span`,null,`请选择图片`,-1)]))],4),d.showPreview&&m.value?(h(),o(`div`,ee,[l(z,{"preview-data":w.value,circular:d.circular},null,8,[`preview-data`,`circular`])])):a(`v-if`,!0)])])]))}}),[[`__scopeId`,`data-v-296916a4`]]);export{k as n,J as t};
1
+ import{t as e}from"./C_Icon2.js";import{t}from"./export-helper.js";import{Fragment as n,computed as r,createBlock as i,createCommentVNode as a,createElementBlock as o,createElementVNode as s,createTextVNode as c,createVNode as l,defineComponent as u,normalizeClass as d,normalizeStyle as f,onBeforeUnmount as p,onMounted as m,openBlock as h,ref as g,renderList as _,toDisplayString as v,unref as y,watch as b,withCtx as x}from"vue";import{NButton as S,NButtonGroup as C,NDivider as w,NModal as T,NSpace as ee,NTooltip as E}from"naive-ui";import{VueCropper as D}from"vue-cropper";function O(e={}){let t=g(null);function n(){t.value?.rotateLeft()}function r(){t.value?.rotateRight()}function i(e){if(!Number.isFinite(e))return;let t=Math.round(e/90),i=t>0?r:n;for(let e=0;e<Math.abs(t);e++)i()}function a(e){!Number.isFinite(e)||e===0||t.value?.changeScale(e>0?1:-1)}function o(){t.value?.refresh()}function s(t,n){let r=e.maxWidth?.value??0,i=e.maxHeight?.value??0,a=Math.min(1,r>0?r/t:1,i>0?i/n:1);return{width:Math.max(1,Math.round(t*a)),height:Math.max(1,Math.round(n*a))}}function c(){return new Promise((n,r)=>{let i=t.value;if(!i){r(Error(`Cropper not initialized`));return}let a=e.format?.value??`png`,o=Math.min(1,Math.max(0,e.quality?.value??.92)),c=a===`jpeg`?`image/jpeg`:`image/${a}`,l=!1,u=setTimeout(()=>d(Error(`Crop result timed out`)),15e3);function d(e){l||(l=!0,clearTimeout(u),r(e instanceof Error?e:Error(String(e))))}function f(e){l||(l=!0,clearTimeout(u),n(e))}try{i.getCropChecked(e=>{if(!l)try{if(!e.width||!e.height)throw Error(`Crop result is empty`);let{width:t,height:n}=s(e.width,e.height),r=e;if(t!==e.width||n!==e.height){r=document.createElement(`canvas`),r.width=t,r.height=n;let i=r.getContext(`2d`);if(!i)throw Error(`Canvas 2D context unavailable`);i.drawImage(e,0,0,t,n)}let i=r.toDataURL(c,o);r.toBlob(e=>{if(!e){d(Error(`Crop result could not be encoded`));return}f({base64:i,blob:e,width:t,height:n,format:a})},c,o)}catch(e){d(e)}})}catch(e){d(e)}})}return{cropperRef:t,rotate:i,rotateLeft:n,rotateRight:r,zoom:a,reset:o,getCropResult:c}}const k={class:`cropper-toolbar`};var A=t(u({__name:`CropperToolbar`,props:{currentRatio:{},ratioPresets:{},disabled:{type:Boolean}},emits:[`ratio`,`rotate`,`flipX`,`flipY`,`zoom`,`reset`],setup(t){return(r,a)=>(h(),o(`div`,k,[l(y(C),{size:`small`},{default:x(()=>[(h(!0),o(n,null,_(t.ratioPresets,e=>(h(),i(y(S),{key:e.value,type:t.currentRatio===e.value?`primary`:`default`,disabled:t.disabled,onClick:t=>r.$emit(`ratio`,e.value)},{default:x(()=>[c(v(e.label),1)]),_:2},1032,[`type`,`disabled`,`onClick`]))),128))]),_:1}),l(y(w),{vertical:``}),l(y(E),null,{trigger:x(()=>[l(y(S),{size:`small`,quaternary:``,disabled:t.disabled,onClick:a[0]||=e=>r.$emit(`rotate`,-90)},{icon:x(()=>[l(e,{name:`mdi:rotate-left`})]),_:1},8,[`disabled`])]),default:x(()=>[a[7]||=c(` 逆时针旋转 90° `,-1)]),_:1}),l(y(E),null,{trigger:x(()=>[l(y(S),{size:`small`,quaternary:``,disabled:t.disabled,onClick:a[1]||=e=>r.$emit(`rotate`,90)},{icon:x(()=>[l(e,{name:`mdi:rotate-right`})]),_:1},8,[`disabled`])]),default:x(()=>[a[8]||=c(` 顺时针旋转 90° `,-1)]),_:1}),l(y(w),{vertical:``}),l(y(E),null,{trigger:x(()=>[l(y(S),{size:`small`,quaternary:``,disabled:t.disabled,onClick:a[2]||=e=>r.$emit(`flipX`)},{icon:x(()=>[l(e,{name:`mdi:flip-horizontal`})]),_:1},8,[`disabled`])]),default:x(()=>[a[9]||=c(` 水平翻转 `,-1)]),_:1}),l(y(E),null,{trigger:x(()=>[l(y(S),{size:`small`,quaternary:``,disabled:t.disabled,onClick:a[3]||=e=>r.$emit(`flipY`)},{icon:x(()=>[l(e,{name:`mdi:flip-vertical`})]),_:1},8,[`disabled`])]),default:x(()=>[a[10]||=c(` 垂直翻转 `,-1)]),_:1}),l(y(w),{vertical:``}),l(y(E),null,{trigger:x(()=>[l(y(S),{size:`small`,quaternary:``,disabled:t.disabled,onClick:a[4]||=e=>r.$emit(`zoom`,.1)},{icon:x(()=>[l(e,{name:`mdi:magnify-plus-outline`})]),_:1},8,[`disabled`])]),default:x(()=>[a[11]||=c(` 放大 `,-1)]),_:1}),l(y(E),null,{trigger:x(()=>[l(y(S),{size:`small`,quaternary:``,disabled:t.disabled,onClick:a[5]||=e=>r.$emit(`zoom`,-.1)},{icon:x(()=>[l(e,{name:`mdi:magnify-minus-outline`})]),_:1},8,[`disabled`])]),default:x(()=>[a[12]||=c(` 缩小 `,-1)]),_:1}),l(y(w),{vertical:``}),l(y(E),null,{trigger:x(()=>[l(y(S),{size:`small`,quaternary:``,disabled:t.disabled,onClick:a[6]||=e=>r.$emit(`reset`)},{icon:x(()=>[l(e,{name:`mdi:refresh`})]),_:1},8,[`disabled`])]),default:x(()=>[a[13]||=c(` 重置 `,-1)]),_:1})]))}}),[[`__scopeId`,`data-v-eb7204dc`]]);const j={class:`cropper-preview`},M={class:`preview-label`},N=[`src`],P={key:1,class:`preview-empty`},F={class:`preview-thumbs`},I=[`src`],L={class:`preview-thumb__label`};var R=t(u({__name:`CropperPreview`,props:{previewData:{},circular:{type:Boolean}},setup(t){let i=t,c=g(null),u=g(200),y=[{label:`80px`,size:80},{label:`48px`,size:48},{label:`32px`,size:32}],b=r(()=>{let e=i.previewData;return e&&e.url&&e.w>0&&e.h>0}),x=r(()=>{if(!b.value)return{};let{w:e}=i.previewData;return{zoom:u.value/e,overflow:`hidden`}});function S(e){if(!b.value)return{};let{w:t}=i.previewData;return{zoom:e/t,overflow:`hidden`}}let C=null;return m(()=>{c.value&&(u.value=c.value.clientWidth,C=new ResizeObserver(e=>{requestAnimationFrame(()=>{for(let t of e)u.value=t.contentRect.width})}),C.observe(c.value))}),p(()=>{C?.disconnect()}),(r,i)=>(h(),o(`div`,j,[s(`div`,M,[l(e,{name:`mdi:eye-outline`}),i[0]||=s(`span`,null,`裁剪预览`,-1)]),s(`div`,{ref_key:`mainBoxRef`,ref:c,class:d([`preview-main`,{"preview-main--circular":t.circular}])},[b.value?(h(),o(`div`,{key:0,class:`preview-main__viewport`,style:f(x.value)},[s(`div`,{style:f(t.previewData.div)},[s(`img`,{src:t.previewData.url,style:f(t.previewData.img),alt:`preview`},null,12,N)],4)],4)):(h(),o(`div`,P,[l(e,{name:`mdi:image-outline`,style:{"font-size":`32px`,opacity:`0.2`}})]))],2),s(`div`,F,[(h(),o(n,null,_(y,e=>s(`div`,{key:e.label,class:`preview-thumb`},[s(`div`,{class:d([`preview-thumb__box`,{"preview-thumb__box--circular":t.circular}]),style:f({width:`${e.size}px`,height:`${e.size}px`})},[b.value?(h(),o(`div`,{key:0,class:`preview-thumb__viewport`,style:f(S(e.size))},[s(`div`,{style:f(t.previewData.div)},[s(`img`,{src:t.previewData.url,style:f(t.previewData.img),alt:`thumb`},null,12,I)],4)],4)):a(`v-if`,!0)],6),s(`span`,L,v(e.label),1)])),64))])]))}}),[[`__scopeId`,`data-v-c8968d14`]]);function z(e,t){return new Promise((n,r)=>{let i=new Image;!e.startsWith(`data:`)&&!e.startsWith(`blob:`)&&(i.crossOrigin=`anonymous`),i.onload=()=>{try{let e=i.naturalWidth,r=i.naturalHeight;if(!e||!r)throw Error(`Image has no dimensions`);let a=document.createElement(`canvas`);a.width=e,a.height=r;let o=a.getContext(`2d`);if(!o)throw Error(`Canvas 2D context unavailable`);o.translate(t===`horizontal`?e:0,t===`vertical`?r:0),o.scale(t===`horizontal`?-1:1,t===`vertical`?-1:1),o.drawImage(i,0,0),n(a.toDataURL(`image/png`))}catch(e){r(e)}},i.onerror=()=>r(Error(`Image could not be loaded for flipping`)),i.src=e})}const B={class:`c-image-cropper__body`},te={class:`c-image-cropper__workspace`},ne={key:1,class:`c-image-cropper__placeholder`},re={key:0,class:`c-image-cropper__preview-panel`},ie={key:1,class:`c-image-cropper`},ae={class:`c-image-cropper__body`},oe={class:`c-image-cropper__workspace`},se={key:1,class:`c-image-cropper__placeholder`},ce={key:0,class:`c-image-cropper__preview-panel`};var V=t(u({name:`C_ImageCropper`,__name:`index`,props:{src:{default:``},aspectRatio:{default:0},outputFormat:{default:`png`},outputQuality:{default:.92},maxOutputWidth:{default:0},maxOutputHeight:{default:0},showPreview:{type:Boolean,default:!0},showToolbar:{type:Boolean,default:!0},circular:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},height:{default:`400px`},modal:{type:Boolean,default:!1},modalTitle:{default:`图片裁剪`}},emits:[`crop`,`ready`,`error`,`confirm`,`cancel`],setup(t,{expose:n,emit:u}){let d=t,p=u,m=g(d.src),_=g(d.aspectRatio),v=g(!1),C=g(!1),w=g(!1),E=g(!1),k=g(null),j=g(null),M=g(null),N=r(()=>d.modal?M.value:j.value),P=r(()=>typeof d.height==`number`?`${d.height}px`:d.height),F=r(()=>({png:`png`,jpeg:`jpeg`,webp:`webp`})[d.outputFormat]||`png`),I=r(()=>_.value>0),L=r(()=>_.value<=0||_.value===1?[1,1]:Math.abs(_.value-16/9)<.01?[16,9]:Math.abs(_.value-4/3)<.01?[4,3]:Math.abs(_.value-3/2)<.01?[3,2]:[Math.round(_.value*100),100]),V=r(()=>({width:300,height:_.value>0?300/_.value:200})),H=[{label:`自由`,value:0},{label:`1:1`,value:1},{label:`16:9`,value:16/9},{label:`4:3`,value:4/3},{label:`3:2`,value:3/2}],U=O({format:r(()=>d.outputFormat),quality:r(()=>d.outputQuality),maxWidth:r(()=>d.maxOutputWidth),maxHeight:r(()=>d.maxOutputHeight)});b(N,e=>{U.cropperRef.value=e});function W(e){k.value=e}function G(e){E.value=e===`success`,E.value?p(`ready`):Y(e instanceof Error?e:Error(`Image could not be loaded`))}function K(e){d.disabled||w.value||C.value||U.rotate(e)}function q(e){d.disabled||w.value||C.value||(_.value=e)}function J(){d.disabled||w.value||C.value||(E.value=!1,U.reset())}function Y(e){p(`error`,e instanceof Error?e:Error(String(e)))}async function X(e){if(d.disabled||w.value||C.value||!m.value)return;w.value=!0;let t=m.value;try{let n=await z(t,e);m.value===t&&(m.value=n)}catch(e){Y(e)}finally{w.value=!1}}function Z(){X(`horizontal`)}function Q(){X(`vertical`)}async function $(){if(!E.value||w.value)throw Error(`Image cropper is not ready`);let e=m.value,t=await U.getCropResult();if(e!==m.value||!E.value)throw Error(`Image changed during crop export`);return t}async function le(){if(!(d.disabled||w.value||C.value||!E.value)){C.value=!0;try{let e=await $();if(!v.value)return;p(`confirm`,e),p(`crop`,e),v.value=!1}catch(e){Y(e)}finally{C.value=!1}}}function ue(){v.value=!1,p(`cancel`)}function de(e){if(!e.type.startsWith(`image/`)){Y(Error(`Please select an image file`));return}let t=new FileReader;t.onerror=()=>Y(Error(`Image file could not be read`)),t.onload=e=>{typeof e.target?.result==`string`&&(m.value=e.target.result)},t.readAsDataURL(e)}return b(m,()=>{E.value=!1,k.value=null}),b(()=>d.src,e=>{m.value=e}),b(()=>d.aspectRatio,e=>{_.value=e}),n({getCropResult:$,rotate:U.rotate,zoom:U.zoom,flipX:Z,flipY:Q,reset:U.reset,setAspectRatio:e=>{_.value=e},loadFile:de,open:e=>{e&&(m.value=e),v.value=!0},close:()=>{v.value=!1}}),(t,n)=>d.modal?(h(),i(y(T),{key:0,show:v.value,"onUpdate:show":n[0]||=e=>v.value=e,preset:`card`,title:d.modalTitle||`图片裁剪`,style:{width:`860px`},"mask-closable":!1,closable:!0},{footer:x(()=>[l(y(ee),{justify:`end`},{default:x(()=>[l(y(S),{disabled:C.value,onClick:ue},{default:x(()=>[...n[2]||=[c(`取消`,-1)]]),_:1},8,[`disabled`]),l(y(S),{type:`primary`,loading:C.value,disabled:d.disabled||w.value||!E.value,onClick:le},{default:x(()=>[...n[3]||=[c(`确认裁剪`,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),default:x(()=>[s(`div`,B,[d.showToolbar?(h(),i(A,{key:0,"current-ratio":_.value,"ratio-presets":H,disabled:d.disabled||w.value||C.value||!E.value,onRatio:q,onRotate:K,onFlipX:Z,onFlipY:Q,onZoom:y(U).zoom,onReset:J},null,8,[`current-ratio`,`disabled`,`onZoom`])):a(`v-if`,!0),s(`div`,te,[s(`div`,{class:`c-image-cropper__canvas`,style:f({height:P.value})},[m.value?(h(),i(y(D),{key:0,ref_key:`modalCropperRef`,ref:M,img:m.value,"output-size":d.outputQuality,"output-type":F.value,"can-scale":!1,"auto-crop":!0,"auto-crop-width":V.value.width,"auto-crop-height":V.value.height,fixed:I.value,"fixed-number":L.value,"center-box":!0,info:!0,"info-true":!0,"can-move":!d.disabled&&!C.value&&!w.value,"can-move-box":!d.disabled&&!C.value&&!w.value,"fixed-box":d.disabled||C.value||w.value,original:!1,high:!0,full:!1,mode:`contain`,onRealTime:W,onImgLoad:G},null,8,[`img`,`output-size`,`output-type`,`auto-crop-width`,`auto-crop-height`,`fixed`,`fixed-number`,`can-move`,`can-move-box`,`fixed-box`])):(h(),o(`div`,ne,[l(e,{name:`mdi:image-plus-outline`,style:{"font-size":`48px`,opacity:`0.3`}}),n[1]||=s(`span`,null,`请选择图片`,-1)]))],4),d.showPreview&&m.value?(h(),o(`div`,re,[l(R,{"preview-data":k.value,circular:d.circular},null,8,[`preview-data`,`circular`])])):a(`v-if`,!0)])])]),_:1},8,[`show`,`title`])):(h(),o(`div`,ie,[s(`div`,ae,[d.showToolbar?(h(),i(A,{key:0,"current-ratio":_.value,"ratio-presets":H,disabled:d.disabled||w.value||C.value||!E.value,onRatio:q,onRotate:K,onFlipX:Z,onFlipY:Q,onZoom:y(U).zoom,onReset:J},null,8,[`current-ratio`,`disabled`,`onZoom`])):a(`v-if`,!0),s(`div`,oe,[s(`div`,{class:`c-image-cropper__canvas`,style:f({height:P.value})},[m.value?(h(),i(y(D),{key:0,ref_key:`inlineCropperRef`,ref:j,img:m.value,"output-size":d.outputQuality,"output-type":F.value,"can-scale":!1,"auto-crop":!0,"auto-crop-width":V.value.width,"auto-crop-height":V.value.height,fixed:I.value,"fixed-number":L.value,"center-box":!0,info:!0,"info-true":!0,"can-move":!d.disabled&&!C.value&&!w.value,"can-move-box":!d.disabled&&!C.value&&!w.value,"fixed-box":d.disabled||C.value||w.value,original:!1,high:!0,full:!1,mode:`contain`,onRealTime:W,onImgLoad:G},null,8,[`img`,`output-size`,`output-type`,`auto-crop-width`,`auto-crop-height`,`fixed`,`fixed-number`,`can-move`,`can-move-box`,`fixed-box`])):(h(),o(`div`,se,[l(e,{name:`mdi:image-plus-outline`,style:{"font-size":`48px`,opacity:`0.3`}}),n[4]||=s(`span`,null,`请选择图片`,-1)]))],4),d.showPreview&&m.value?(h(),o(`div`,ce,[l(R,{"preview-data":k.value,circular:d.circular},null,8,[`preview-data`,`circular`])])):a(`v-if`,!0)])])]))}}),[[`__scopeId`,`data-v-8aa3952f`]]);export{O as n,V as t};
@@ -1,54 +1,54 @@
1
- /* unplugin-vue-components disabled */.c-icon[data-v-d0d8dba0] {
1
+ /* unplugin-vue-components disabled */.c-icon[data-v-711aedcd] {
2
2
  display: inline-flex;
3
3
  align-items: center;
4
4
  justify-content: center;
5
5
  user-select: none;
6
6
  transition: all 0.2s ease-in-out;
7
7
  }
8
- .c-icon--clickable[data-v-d0d8dba0] {
8
+ .c-icon--clickable[data-v-711aedcd] {
9
9
  cursor: pointer;
10
10
  }
11
- .c-icon--clickable[data-v-d0d8dba0]:hover {
11
+ .c-icon--clickable[data-v-711aedcd]:hover {
12
12
  opacity: 0.8;
13
13
  transform: scale(1.05);
14
14
  }
15
- .c-icon--clickable[data-v-d0d8dba0]:active {
15
+ .c-icon--clickable[data-v-711aedcd]:active {
16
16
  transform: scale(0.95);
17
17
  }
18
- .c-icon--clickable[data-v-d0d8dba0]:focus-visible {
18
+ .c-icon--clickable[data-v-711aedcd]:focus-visible {
19
19
  outline: 2px solid currentColor;
20
20
  outline-offset: 2px;
21
21
  border-radius: 4px;
22
22
  }
23
- .c-icon--loading[data-v-d0d8dba0] {
23
+ .c-icon--loading[data-v-711aedcd] {
24
24
  opacity: 0.6;
25
25
  cursor: wait;
26
26
  }
27
- .c-icon--error[data-v-d0d8dba0] {
27
+ .c-icon--error[data-v-711aedcd] {
28
28
  opacity: 0.5;
29
29
  }
30
- .c-icon__loading[data-v-d0d8dba0] {
30
+ .c-icon__loading[data-v-711aedcd] {
31
31
  position: relative;
32
32
  }
33
- .c-icon__spinner[data-v-d0d8dba0] {
33
+ .c-icon__spinner[data-v-711aedcd] {
34
34
  width: 100%;
35
35
  height: 100%;
36
36
  border: 2px solid currentColor;
37
37
  border-radius: 50%;
38
38
  border-top-color: transparent;
39
- animation: spin-d0d8dba0 1s linear infinite;
39
+ animation: spin-711aedcd 1s linear infinite;
40
40
  }
41
- .c-icon__error[data-v-d0d8dba0] {
41
+ .c-icon__error[data-v-711aedcd] {
42
42
  font-size: 0.8em;
43
43
  opacity: 0.5;
44
44
  }
45
- .c-icon__rotatable[data-v-d0d8dba0] {
45
+ .c-icon__rotatable[data-v-711aedcd] {
46
46
  transition: transform 0.3s ease-in-out;
47
47
  }
48
- .c-icon__flippable[data-v-d0d8dba0] {
48
+ .c-icon__flippable[data-v-711aedcd] {
49
49
  transition: transform 0.3s ease-in-out;
50
50
  }
51
- @keyframes spin-d0d8dba0 {
51
+ @keyframes spin-711aedcd {
52
52
  0% {
53
53
  transform: rotate(0deg);
54
54
  }
@@ -1 +1 @@
1
- require(`./chunk.cjs`);const e=require(`./C_Icon2.cjs`);let t=require(`vue`),n=require(`naive-ui`);const r={class:`flex items-center`},i=(0,t.defineComponent)({name:`C_Language`,__name:`index`,props:{modelValue:{default:`zh-cn`},options:{default:()=>[{key:`zh-cn`,label:`简体中文`,iconClass:`mdi:alpha-c`},{key:`en`,label:`English`,iconClass:`mdi:alpha-u`},{key:`ja`,label:`日本語`,iconClass:`mdi:alpha-j`},{key:`ko`,label:`한국어`,iconClass:`mdi:alpha-k`}]},tooltip:{default:`语言切换`}},emits:[`update:modelValue`,`change`],setup(i,{emit:a}){let o=i,s=a,c=(0,t.computed)(()=>o.options.find(e=>e.key===o.modelValue)?.label??o.modelValue),l=(0,t.computed)(()=>`${o.tooltip} (${c.value})`),u=(0,t.computed)(()=>o.options.map(n=>({key:n.key,label:n.label,icon:n.iconClass?()=>(0,t.h)(e.t,{name:n.iconClass,size:16}):void 0}))),d=e=>{e!==o.modelValue&&(s(`update:modelValue`,e),s(`change`,e))};return(a,o)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(n.NDropdown),{size:`small`,trigger:`hover`,options:u.value,value:i.modelValue,onSelect:d},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(n.NButton),{text:``},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,r,[(0,t.createVNode)(e.t,{name:`mdi:language`,size:18,title:l.value},null,8,[`title`])])]),_:1})]),_:1},8,[`options`,`value`]))}});Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return i}});
1
+ require(`./chunk.cjs`);const e=require(`./C_Icon2.cjs`);let t=require(`vue`),n=require(`naive-ui`);const r={class:`flex items-center`},i=(0,t.defineComponent)({name:`C_Language`,__name:`index`,props:{modelValue:{default:`zh-cn`},options:{default:()=>[{key:`zh-cn`,label:`简体中文`,iconClass:`mdi:alpha-c`},{key:`en`,label:`English`,iconClass:`mdi:alpha-u`},{key:`ja`,label:`日本語`,iconClass:`mdi:alpha-j`},{key:`ko`,label:`한국어`,iconClass:`mdi:alpha-k`}]},tooltip:{default:`语言切换`}},emits:[`update:modelValue`,`change`],setup(i,{emit:a}){let o=i,s=a,c=(0,t.computed)(()=>o.options.find(e=>e.key===o.modelValue)?.label??o.modelValue),l=(0,t.computed)(()=>`${o.tooltip} (${c.value})`),u=(0,t.computed)(()=>o.options.map(n=>{let r=n.iconClass;return{key:n.key,label:n.label,icon:r?()=>(0,t.h)(e.t,{name:r,size:16}):void 0}})),d=e=>{e!==o.modelValue&&(s(`update:modelValue`,e),s(`change`,e))};return(a,o)=>((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(n.NDropdown),{size:`small`,trigger:`hover`,options:u.value,value:i.modelValue,onSelect:d},{default:(0,t.withCtx)(()=>[(0,t.createVNode)((0,t.unref)(n.NButton),{text:``},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,r,[(0,t.createVNode)(e.t,{name:`mdi:language`,size:18,title:l.value},null,8,[`title`])])]),_:1})]),_:1},8,[`options`,`value`]))}});Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return i}});
@@ -1 +1 @@
1
- import{t as e}from"./C_Icon2.js";import{computed as t,createBlock as n,createElementVNode as r,createVNode as i,defineComponent as a,h as o,openBlock as s,unref as c,withCtx as l}from"vue";import{NButton as u,NDropdown as d}from"naive-ui";const f={class:`flex items-center`},p=a({name:`C_Language`,__name:`index`,props:{modelValue:{default:`zh-cn`},options:{default:()=>[{key:`zh-cn`,label:`简体中文`,iconClass:`mdi:alpha-c`},{key:`en`,label:`English`,iconClass:`mdi:alpha-u`},{key:`ja`,label:`日本語`,iconClass:`mdi:alpha-j`},{key:`ko`,label:`한국어`,iconClass:`mdi:alpha-k`}]},tooltip:{default:`语言切换`}},emits:[`update:modelValue`,`change`],setup(a,{emit:p}){let m=a,h=p,g=t(()=>m.options.find(e=>e.key===m.modelValue)?.label??m.modelValue),_=t(()=>`${m.tooltip} (${g.value})`),v=t(()=>m.options.map(t=>({key:t.key,label:t.label,icon:t.iconClass?()=>o(e,{name:t.iconClass,size:16}):void 0}))),y=e=>{e!==m.modelValue&&(h(`update:modelValue`,e),h(`change`,e))};return(t,o)=>(s(),n(c(d),{size:`small`,trigger:`hover`,options:v.value,value:a.modelValue,onSelect:y},{default:l(()=>[i(c(u),{text:``},{default:l(()=>[r(`div`,f,[i(e,{name:`mdi:language`,size:18,title:_.value},null,8,[`title`])])]),_:1})]),_:1},8,[`options`,`value`]))}});export{p as t};
1
+ import{t as e}from"./C_Icon2.js";import{computed as t,createBlock as n,createElementVNode as r,createVNode as i,defineComponent as a,h as o,openBlock as s,unref as c,withCtx as l}from"vue";import{NButton as u,NDropdown as d}from"naive-ui";const f={class:`flex items-center`},p=a({name:`C_Language`,__name:`index`,props:{modelValue:{default:`zh-cn`},options:{default:()=>[{key:`zh-cn`,label:`简体中文`,iconClass:`mdi:alpha-c`},{key:`en`,label:`English`,iconClass:`mdi:alpha-u`},{key:`ja`,label:`日本語`,iconClass:`mdi:alpha-j`},{key:`ko`,label:`한국어`,iconClass:`mdi:alpha-k`}]},tooltip:{default:`语言切换`}},emits:[`update:modelValue`,`change`],setup(a,{emit:p}){let m=a,h=p,g=t(()=>m.options.find(e=>e.key===m.modelValue)?.label??m.modelValue),_=t(()=>`${m.tooltip} (${g.value})`),v=t(()=>m.options.map(t=>{let n=t.iconClass;return{key:t.key,label:t.label,icon:n?()=>o(e,{name:n,size:16}):void 0}})),y=e=>{e!==m.modelValue&&(h(`update:modelValue`,e),h(`change`,e))};return(t,o)=>(s(),n(c(d),{size:`small`,trigger:`hover`,options:v.value,value:a.modelValue,onSelect:y},{default:l(()=>[i(c(u),{text:``},{default:l(()=>[r(`div`,f,[i(e,{name:`mdi:language`,size:18,title:_.value},null,8,[`title`])])]),_:1})]),_:1},8,[`options`,`value`]))}});export{p as t};