@robot-admin/naive-ui-components 0.16.0 → 0.17.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 (225) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/README.md +12 -9
  3. package/README_EN.md +12 -9
  4. package/dist/C_ActionBar.css +56 -48
  5. package/dist/C_ActionBar2.cjs +1 -1
  6. package/dist/C_ActionBar2.js +1 -1
  7. package/dist/C_AntV2.cjs +1 -1
  8. package/dist/C_AntV2.js +3 -3
  9. package/dist/C_Barcode.css +6 -6
  10. package/dist/C_Barcode2.cjs +1 -1
  11. package/dist/C_Barcode2.js +1 -1
  12. package/dist/C_Chat.css +269 -185
  13. package/dist/C_Chat2.cjs +1 -1
  14. package/dist/C_Chat2.js +1 -1
  15. package/dist/C_Code.css +26 -26
  16. package/dist/C_Code2.cjs +1 -1
  17. package/dist/C_Code2.js +1 -1
  18. package/dist/C_Draggable2.cjs +1 -1
  19. package/dist/C_Draggable2.js +1 -1
  20. package/dist/C_FilePreview.css +96 -57
  21. package/dist/C_FilePreview2.cjs +1 -1
  22. package/dist/C_FilePreview2.js +1 -1
  23. package/dist/C_Form.base.css +295 -277
  24. package/dist/C_Form.css +295 -277
  25. package/dist/C_Form.d.cts +2 -1
  26. package/dist/C_Form.d.ts +2 -1
  27. package/dist/C_FormModal.css +10 -10
  28. package/dist/C_FormModal2.cjs +1 -1
  29. package/dist/C_FormModal2.js +1 -1
  30. package/dist/C_FormSearch.css +67 -68
  31. package/dist/C_FormSearch.d.cts +2 -1
  32. package/dist/C_FormSearch.d.ts +2 -1
  33. package/dist/C_FormSearch2.cjs +1 -1
  34. package/dist/C_FormSearch2.js +1 -1
  35. package/dist/C_FullCalendar2.cjs +1 -1
  36. package/dist/C_FullCalendar2.js +1 -1
  37. package/dist/C_GlobalSearch.css +140 -118
  38. package/dist/C_GlobalSearch2.cjs +1 -1
  39. package/dist/C_GlobalSearch2.js +1 -1
  40. package/dist/C_ImageCropper.css +12 -10
  41. package/dist/C_ImageCropper2.cjs +1 -1
  42. package/dist/C_ImageCropper2.js +1 -1
  43. package/dist/C_Login.css +79 -79
  44. package/dist/C_Login2.cjs +1 -1
  45. package/dist/C_Login2.js +1 -1
  46. package/dist/C_Map.css +10 -10
  47. package/dist/C_Map2.cjs +1 -1
  48. package/dist/C_Map2.js +1 -1
  49. package/dist/C_OrgChart.css +28 -4
  50. package/dist/C_OrgChart2.cjs +1 -1
  51. package/dist/C_OrgChart2.js +1 -1
  52. package/dist/C_QRCode2.cjs +1 -1
  53. package/dist/C_QRCode2.js +1 -1
  54. package/dist/C_Signature.css +15 -15
  55. package/dist/C_Signature2.cjs +1 -1
  56. package/dist/C_Signature2.js +1 -1
  57. package/dist/C_SplitPane.cjs +1 -1
  58. package/dist/C_SplitPane.css +251 -109
  59. package/dist/C_SplitPane.js +1 -1
  60. package/dist/C_SplitPane2.cjs +1 -1
  61. package/dist/C_SplitPane2.js +1 -1
  62. package/dist/C_Table.base.css +491 -563
  63. package/dist/C_Table.cjs +1 -1
  64. package/dist/C_Table.css +491 -563
  65. package/dist/C_Table.d.cts +3 -2
  66. package/dist/C_Table.d.ts +4 -2
  67. package/dist/C_Table.js +1 -1
  68. package/dist/C_TagsView2.cjs +1 -1
  69. package/dist/C_TagsView2.js +1 -1
  70. package/dist/C_Transfer.css +93 -84
  71. package/dist/C_Transfer2.cjs +1 -1
  72. package/dist/C_Transfer2.js +1 -1
  73. package/dist/C_Tree.css +72 -125
  74. package/dist/C_Tree.d.cts +3 -2
  75. package/dist/C_Tree.d.ts +15 -2
  76. package/dist/C_Tree2.cjs +1 -1
  77. package/dist/C_Tree2.js +1 -1
  78. package/dist/C_Upload.css +5 -5
  79. package/dist/C_Upload2.cjs +1 -1
  80. package/dist/C_Upload2.js +1 -1
  81. package/dist/C_VideoPlayer2.cjs +4 -3
  82. package/dist/C_VideoPlayer2.js +4 -3
  83. package/dist/C_VtableGantt.css +29 -28
  84. package/dist/C_VtableGantt2.cjs +1 -1
  85. package/dist/C_VtableGantt2.js +1 -1
  86. package/dist/C_WaterFall.css +29 -29
  87. package/dist/C_WaterFall2.cjs +1 -1
  88. package/dist/C_WaterFall2.js +1 -1
  89. package/dist/C_WorkFlow2.cjs +1 -1
  90. package/dist/C_WorkFlow2.js +1 -1
  91. package/dist/Card.cjs +1 -1
  92. package/dist/Card.js +1 -1
  93. package/dist/Custom.cjs +1 -1
  94. package/dist/Custom.js +1 -1
  95. package/dist/Dynamic.cjs +1 -1
  96. package/dist/Dynamic.js +1 -1
  97. package/dist/Steps.cjs +1 -1
  98. package/dist/Steps.js +1 -1
  99. package/dist/Tabs.cjs +1 -1
  100. package/dist/Tabs.js +1 -1
  101. package/dist/constants.d.cts +2 -2
  102. package/dist/constants.d.ts +2 -2
  103. package/dist/constants2.d.cts +2 -2
  104. package/dist/constants2.d.ts +2 -2
  105. package/dist/constants3.d.cts +2 -2
  106. package/dist/constants3.d.ts +2 -2
  107. package/dist/constants4.d.cts +4 -4
  108. package/dist/constants4.d.ts +4 -4
  109. package/dist/constants5.d.cts +3 -7
  110. package/dist/constants5.d.ts +3 -7
  111. package/dist/data.d.cts +10 -10
  112. package/dist/data.d.ts +10 -10
  113. package/dist/density.cjs +1 -0
  114. package/dist/density.d.cts +15 -0
  115. package/dist/density.d.ts +15 -0
  116. package/dist/density.js +1 -0
  117. package/dist/helpers.cjs +1 -1
  118. package/dist/helpers.js +1 -1
  119. package/dist/index.cjs +1 -1
  120. package/dist/index.d.cts +3 -3
  121. package/dist/index.d.ts +5 -3
  122. package/dist/index.js +1 -1
  123. package/dist/index.vue.d.cts +5 -5
  124. package/dist/index.vue.d.ts +5 -5
  125. package/dist/index10.vue.d.cts +5 -5
  126. package/dist/index10.vue.d.ts +3 -3
  127. package/dist/index11.vue.d.cts +3 -3
  128. package/dist/index11.vue.d.ts +5 -5
  129. package/dist/index12.vue.d.cts +5 -5
  130. package/dist/index13.vue.d.ts +5 -5
  131. package/dist/index14.vue.d.cts +5 -5
  132. package/dist/index14.vue.d.ts +9 -9
  133. package/dist/index15.vue.d.cts +9 -9
  134. package/dist/index15.vue.d.ts +3 -3
  135. package/dist/index16.vue.d.cts +3 -3
  136. package/dist/index17.vue.d.ts +1 -1
  137. package/dist/index18.vue.d.cts +1 -1
  138. package/dist/index18.vue.d.ts +7 -7
  139. package/dist/index19.vue.d.cts +7 -7
  140. package/dist/index19.vue.d.ts +5 -5
  141. package/dist/index2.vue.d.cts +2 -2
  142. package/dist/index2.vue.d.ts +2 -2
  143. package/dist/index20.vue.d.cts +6 -2
  144. package/dist/index20.vue.d.ts +6 -2
  145. package/dist/index21.vue.d.cts +2 -2
  146. package/dist/index21.vue.d.ts +2 -2
  147. package/dist/index22.vue.d.cts +2 -2
  148. package/dist/index22.vue.d.ts +2 -2
  149. package/dist/index23.vue.d.cts +2 -2
  150. package/dist/index23.vue.d.ts +2 -2
  151. package/dist/index25.vue.d.cts +5 -5
  152. package/dist/index25.vue.d.ts +5 -5
  153. package/dist/index27.vue.d.cts +2 -2
  154. package/dist/index27.vue.d.ts +2 -2
  155. package/dist/index28.vue.d.cts +7 -3
  156. package/dist/index28.vue.d.ts +7 -3
  157. package/dist/index3.vue.d.cts +3 -3
  158. package/dist/index3.vue.d.ts +3 -3
  159. package/dist/index4.vue.d.cts +5 -5
  160. package/dist/index5.vue.d.ts +2 -2
  161. package/dist/index6.vue.d.cts +2 -2
  162. package/dist/index6.vue.d.ts +7 -4
  163. package/dist/index7.vue.d.cts +7 -4
  164. package/dist/index7.vue.d.ts +2 -2
  165. package/dist/index8.vue.d.cts +2 -2
  166. package/dist/index8.vue.d.ts +4 -6
  167. package/dist/index9.vue.d.cts +4 -6
  168. package/dist/index9.vue.d.ts +5 -5
  169. package/dist/mapUtils.d.cts +4 -4
  170. package/dist/mapUtils.d.ts +4 -4
  171. package/dist/presets.d.cts +4 -1
  172. package/dist/presets.d.ts +4 -1
  173. package/dist/style.css +1763 -1566
  174. package/dist/useCalendarEvents.d.cts +10 -9
  175. package/dist/useCalendarEvents.d.ts +10 -9
  176. package/dist/useCollapsePanel.d.cts +3 -3
  177. package/dist/useCollapsePanel.d.ts +3 -3
  178. package/dist/useCropperCore.d.cts +9 -9
  179. package/dist/useCropperCore.d.ts +9 -9
  180. package/dist/useDraggableLayout.d.cts +15 -13
  181. package/dist/useDraggableLayout.d.ts +15 -13
  182. package/dist/useDynamicFormState.d.cts +5 -2
  183. package/dist/useDynamicFormState.d.ts +5 -2
  184. package/dist/useEdgeInteraction.d.cts +3 -3
  185. package/dist/useEdgeInteraction.d.ts +3 -3
  186. package/dist/useFullscreen.d.cts +4 -0
  187. package/dist/useFullscreen.d.ts +4 -0
  188. package/dist/useGlobalSearch.d.cts +9 -4
  189. package/dist/useGlobalSearch.d.ts +9 -4
  190. package/dist/useInfiniteScroll.d.cts +4 -1
  191. package/dist/useInfiniteScroll.d.ts +4 -1
  192. package/dist/useQRCode.d.cts +3 -3
  193. package/dist/useQRCode.d.ts +3 -3
  194. package/dist/useSearchState.d.cts +8 -6
  195. package/dist/useSearchState.d.ts +8 -6
  196. package/dist/useSignatureHistory.d.cts +7 -7
  197. package/dist/useSignatureHistory.d.ts +7 -7
  198. package/dist/useSplitResize.d.cts +50 -61
  199. package/dist/useSplitResize.d.ts +50 -61
  200. package/dist/useTableQuery.cjs +3 -3
  201. package/dist/useTableQuery.d.cts +237 -13
  202. package/dist/useTableQuery.d.ts +237 -13
  203. package/dist/useTableQuery.js +3 -3
  204. package/dist/useTimeSelection.d.cts +2 -2
  205. package/dist/useTimeSelection.d.ts +2 -2
  206. package/dist/useWorkflowValidation.d.cts +3 -3
  207. package/dist/useWorkflowValidation.d.ts +3 -3
  208. package/dist/verification.d.cts +5 -5
  209. package/dist/verification.d.ts +5 -5
  210. package/docs/component-review-20261019.md +55 -0
  211. package/docs/guides/form-density.en.md +42 -0
  212. package/docs/guides/form-density.md +59 -0
  213. package/docs/guides/runtime-performance.md +38 -0
  214. package/docs/guides/split-pane.en.md +103 -0
  215. package/docs/guides/split-pane.md +126 -0
  216. package/docs/guides/table-density.md +87 -0
  217. package/docs/guides/transfer.md +11 -0
  218. package/docs/guides/tree.md +157 -0
  219. package/docs/guides/usage.en.md +2 -0
  220. package/docs/guides/usage.md +2 -0
  221. package/docs/runtime-review-20261019.md +41 -0
  222. package/docs/wl-ui-produce-coverage.md +62 -0
  223. package/package.json +4 -2
  224. package/dist/useTreeOperations.d.cts +0 -185
  225. package/dist/useTreeOperations.d.ts +0 -185
@@ -1 +1 @@
1
- require(`./chunk.cjs`);const e=require(`./export-helper.cjs`);let t=require(`vue`);function n(e){let{menuItems:n,isDark:r,onSelect:i,storageKey:a=`robot-search-history`,maxHistory:o=10,maxDisplayHistory:s=5}=e,c=Math.min(100,Math.max(0,Math.trunc(o))),l=Math.min(c,Math.max(0,Math.trunc(s))),u=(0,t.ref)(!1),d=(0,t.ref)(``),f=(0,t.ref)(0),p=(0,t.ref)(),m=(0,t.ref)([]),h=(0,t.computed)(()=>r?.()??!1),g=(0,t.computed)(()=>{if(!d.value.trim())return[];let e=d.value.toLowerCase();return n().filter(t=>t.label.toLowerCase().includes(e)||S(t.key).toLowerCase().includes(e))}),_=(0,t.computed)(()=>m.value.slice(0,l)),v=(0,t.computed)(()=>g.value.length>0),y=(0,t.computed)(()=>v.value||_.value.length>0),b=(e,t)=>[`robot-result-item`,t&&`robot-history-item`,{"robot-result-item-selected":f.value===e}],x=(e,t)=>{if(!t)return[{text:e,matched:!1}];let n=RegExp(`(${t.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)})`,`gi`);return e.split(n).filter(Boolean).map(e=>({text:e,matched:e.toLocaleLowerCase()===t.toLocaleLowerCase()}))},S=e=>e.replace(/^\//,``).replace(/\//g,` > `)||`首页`,C=()=>{if(!(typeof localStorage>`u`))try{let e=m.value.map(e=>({query:e.query,menuKey:e.menuItem?.key??null,timestamp:e.timestamp}));localStorage.setItem(a,JSON.stringify(e))}catch{}},w=e=>{if(!e.label.trim())return;let t=e.label,n=m.value.filter(n=>!(n.query===t&&n.menuItem?.key===e.key));m.value=[{query:t,menuItem:e,timestamp:Date.now()},...n].slice(0,c),C()},T=()=>{if(!(typeof localStorage>`u`))try{let e=localStorage.getItem(a);if(e){let t=JSON.parse(e);if(!Array.isArray(t))return;let r=new Map(n().map(e=>[e.key,e]));m.value=t.flatMap(e=>{if(typeof e==`string`)return[{query:e.slice(0,200),menuItem:null,timestamp:0}];if(!e||typeof e!=`object`)return[];let t=e,n=typeof t.query==`string`?t.query:``;if(!n.trim())return[];let i=t.menuItem&&typeof t.menuItem==`object`?t.menuItem:null,a=typeof t.menuKey==`string`?t.menuKey:typeof i?.key==`string`?i.key:``;return[{query:n.slice(0,200),menuItem:r.get(a)??null,timestamp:typeof t.timestamp==`number`&&Number.isFinite(t.timestamp)?t.timestamp:0}]}).slice(0,c)}}catch{m.value=[]}},E=()=>{if(m.value=[],!(typeof localStorage>`u`))try{localStorage.removeItem(a)}catch{}},D=e=>{m.value.splice(e,1),C(),f.value>=m.value.length&&(f.value=Math.max(0,m.value.length-1))},O=async()=>{u.value=!0,d.value=``,f.value=0,await(0,t.nextTick)(),p.value?.focus()},k=()=>{u.value=!1,d.value=``,f.value=0},A=e=>{if(e.menuItem){let t=!!e.menuItem.children?.length;i?.(e.menuItem.key,t),k()}else d.value=e.query,f.value=0},j=e=>{w(e);let t=!!e.children?.length;i?.(e.key,t),k()},M=()=>{let e=!d.value.trim()&&_.value.length>0,t=d.value.trim()&&g.value.length>0;if(e){let e=_.value[f.value];e&&A(e)}else if(t){let e=g.value[f.value];e&&j(e)}},N=()=>{let e=d.value.trim()?g.value.length-1:_.value.length-1;f.value=Math.min(f.value+1,e)},P=()=>{f.value=Math.max(f.value-1,0)};(0,t.watch)(d,()=>{f.value=0});let F=e=>{e.defaultPrevented||(e.ctrlKey||e.metaKey)&&e.key===`k`&&(e.preventDefault(),O())};return(0,t.onMounted)(()=>{T(),document.addEventListener(`keydown`,F)}),(0,t.onUnmounted)(()=>document.removeEventListener(`keydown`,F)),{showDialog:u,searchValue:d,selectedIndex:f,searchInputRef:p,isDark:h,filteredMenuItems:g,displayHistory:_,hasResults:v,hasContent:y,getItemClasses:b,highlightMatch:x,formatMenuPath:S,clearHistory:E,removeHistoryItem:D,openDialog:O,closeDialog:k,selectHistoryItem:A,selectItem:j,handleEnter:M,focusNext:N,focusPrev:P}}const r={class:`robot-search-palette`},i={class:`robot-search-header`},a=[`placeholder`],o={class:`robot-search-content`},s={key:0,class:`robot-empty-state`},c={class:`robot-search-results`},l={class:`robot-result-group`},u={class:`robot-group-title`},d={class:`robot-group-count`},f={class:`robot-group-items`},p=[`onClick`,`onMouseenter`],m={key:1,class:`robot-item-icon robot-default-icon`},h={class:`robot-item-content`},g={class:`robot-item-label`},_={class:`robot-item-desc`},v=[`onClick`],y={class:`robot-search-results`},b={key:0,class:`robot-empty-state`},x={class:`robot-result-group`},S={class:`robot-group-title`},C={class:`robot-group-count`},w={class:`robot-group-items`},T=[`onClick`,`onMouseenter`],E={key:1,class:`robot-item-icon robot-default-icon`},D={class:`robot-item-content`},O={class:`robot-item-label`},k={key:0,class:`robot-highlight`},A={class:`robot-item-desc`},j={key:2,class:`robot-item-badge`},M={class:`robot-search-footer`},N={key:0,class:`robot-footer-info`},P={key:0},F={key:1},I=(0,t.defineComponent)({name:`C_GlobalSearch`,__name:`index`,props:{options:{},placeholder:{default:`搜索导航菜单...`},emptyText:{default:`输入关键词搜索菜单`},resultGroupTitle:{default:`菜单导航`}},setup(e,{expose:I}){let{showDialog:L,searchValue:R,selectedIndex:z,searchInputRef:B,isDark:V,filteredMenuItems:H,displayHistory:U,hasResults:W,hasContent:G,getItemClasses:K,highlightMatch:ee,formatMenuPath:q,clearHistory:J,removeHistoryItem:te,openDialog:Y,closeDialog:X,selectHistoryItem:ne,selectItem:re,handleEnter:Z,focusNext:Q,focusPrev:$}=n(e.options);return I({openDialog:Y,closeDialog:X}),(n,I)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,r,[(0,t.createCommentVNode)(` 搜索触发按钮 `),(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`robot-search-trigger`,{"trigger-dark":(0,t.unref)(V)}]),onClick:I[0]||=(...e)=>(0,t.unref)(Y)&&(0,t.unref)(Y)(...e)},[...I[11]||=[(0,t.createElementVNode)(`div`,{class:`i-mdi:search robot-trigger-icon`},null,-1),(0,t.createElementVNode)(`span`,{class:`robot-trigger-text`},`搜索`,-1),(0,t.createElementVNode)(`span`,{class:`robot-trigger-shortcut`},`Ctrl K`,-1)]],2),(0,t.createCommentVNode)(` 搜索对话框 `),((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:`body`},[(0,t.createVNode)(t.Transition,{name:`robot-dialog`},{default:(0,t.withCtx)(()=>[(0,t.unref)(L)?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:`robot-dialog-overlay`,onClick:I[9]||=(...e)=>(0,t.unref)(X)&&(0,t.unref)(X)(...e),onKeydown:I[10]||=(0,t.withKeys)((...e)=>(0,t.unref)(X)&&(0,t.unref)(X)(...e),[`esc`])},[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`robot-dialog-container`,{"dialog-dark":(0,t.unref)(V)}]),onClick:I[8]||=(0,t.withModifiers)(()=>{},[`stop`])},[(0,t.createCommentVNode)(` 搜索头部 `),(0,t.createElementVNode)(`div`,i,[I[13]||=(0,t.createElementVNode)(`div`,{class:`i-mdi:magnify robot-search-icon`},null,-1),(0,t.withDirectives)((0,t.createElementVNode)(`input`,{ref_key:`searchInputRef`,ref:B,"onUpdate:modelValue":I[1]||=e=>(0,t.isRef)(R)?R.value=e:null,type:`text`,placeholder:e.placeholder,class:`robot-search-input`,onKeydown:[I[2]||=(0,t.withKeys)((...e)=>(0,t.unref)(X)&&(0,t.unref)(X)(...e),[`esc`]),I[3]||=(0,t.withKeys)((...e)=>(0,t.unref)(Z)&&(0,t.unref)(Z)(...e),[`enter`]),I[4]||=(0,t.withKeys)((...e)=>(0,t.unref)(Q)&&(0,t.unref)(Q)(...e),[`arrow-down`]),I[5]||=(0,t.withKeys)((...e)=>(0,t.unref)($)&&(0,t.unref)($)(...e),[`arrow-up`])]},null,40,a),[[t.vModelText,(0,t.unref)(R)]]),(0,t.createElementVNode)(`button`,{class:`robot-close-btn`,onClick:I[6]||=(...e)=>(0,t.unref)(X)&&(0,t.unref)(X)(...e)},[...I[12]||=[(0,t.createElementVNode)(`div`,{class:`i-mdi:close`},null,-1)]])]),(0,t.createCommentVNode)(` 搜索内容 `),(0,t.createElementVNode)(`div`,o,[(0,t.createCommentVNode)(` 空状态 `),(0,t.unref)(G)?!(0,t.unref)(R).trim()&&(0,t.unref)(U).length>0?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:1},[(0,t.createCommentVNode)(` 搜索历史 `),(0,t.createElementVNode)(`div`,c,[(0,t.createElementVNode)(`div`,l,[(0,t.createElementVNode)(`div`,u,[I[16]||=(0,t.createElementVNode)(`div`,{class:`i-mdi:clock-time-four-outline robot-group-icon`},null,-1),I[17]||=(0,t.createTextVNode)(` 最近搜索 `,-1),(0,t.createElementVNode)(`span`,d,(0,t.toDisplayString)((0,t.unref)(U).length),1),(0,t.createElementVNode)(`button`,{class:`robot-clear-history`,onClick:I[7]||=(...e)=>(0,t.unref)(J)&&(0,t.unref)(J)(...e),title:`清空历史`},[...I[15]||=[(0,t.createElementVNode)(`div`,{class:`i-mdi:delete-outline`},null,-1)]])]),(0,t.createElementVNode)(`div`,f,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(U),(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:`history-${n}`,class:(0,t.normalizeClass)((0,t.unref)(K)(n,!0)),onClick:n=>(0,t.unref)(ne)(e),onMouseenter:e=>z.value=n},[e.menuItem?.icon?((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.menuItem.icon),{key:0,class:`robot-item-icon`})):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,m,[...I[18]||=[(0,t.createElementVNode)(`div`,{class:`i-mdi:file-document-outline`},null,-1)]])),(0,t.createElementVNode)(`div`,h,[(0,t.createElementVNode)(`div`,g,(0,t.toDisplayString)(e.query),1),(0,t.createElementVNode)(`div`,_,(0,t.toDisplayString)((0,t.unref)(q)(e.menuItem?.key||``)),1)]),(0,t.createElementVNode)(`button`,{class:`robot-history-delete`,onClick:(0,t.withModifiers)(e=>(0,t.unref)(te)(n),[`stop`]),title:`删除此记录`},[...I[19]||=[(0,t.createElementVNode)(`div`,{class:`i-mdi:close`},null,-1)]],8,v)],42,p))),128))])])])],64)):(0,t.unref)(R).trim()?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:2},[(0,t.createCommentVNode)(` 搜索结果 `),(0,t.createElementVNode)(`div`,y,[(0,t.createCommentVNode)(` 无结果状态 `),(0,t.unref)(W)?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:1},[(0,t.createCommentVNode)(` 搜索结果列表 `),(0,t.createElementVNode)(`div`,x,[(0,t.createElementVNode)(`div`,S,[I[21]||=(0,t.createElementVNode)(`div`,{class:`i-mdi:menu robot-group-icon`},null,-1),(0,t.createTextVNode)(` `+(0,t.toDisplayString)(e.resultGroupTitle)+` `,1),(0,t.createElementVNode)(`span`,C,(0,t.toDisplayString)((0,t.unref)(H).length),1)]),(0,t.createElementVNode)(`div`,w,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(H),(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:e.key,class:(0,t.normalizeClass)((0,t.unref)(K)(n,!1)),onClick:n=>(0,t.unref)(re)(e),onMouseenter:e=>z.value=n},[e.icon?((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.icon),{key:0,class:`robot-item-icon`})):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,E,[...I[22]||=[(0,t.createElementVNode)(`div`,{class:`i-mdi:file-document-outline`},null,-1)]])),(0,t.createElementVNode)(`div`,D,[(0,t.createElementVNode)(`div`,O,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(ee)(e.label,(0,t.unref)(R)),(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:n},[e.matched?((0,t.openBlock)(),(0,t.createElementBlock)(`mark`,k,(0,t.toDisplayString)(e.text),1)):((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:1},[(0,t.createTextVNode)((0,t.toDisplayString)(e.text),1)],64))],64))),128))]),(0,t.createElementVNode)(`div`,A,(0,t.toDisplayString)((0,t.unref)(q)(e.key)),1)]),e.children?.length?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,j,(0,t.toDisplayString)(e.children.length),1)):(0,t.createCommentVNode)(`v-if`,!0)],42,T))),128))])])],2112)):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,b,[I[20]||=(0,t.createElementVNode)(`div`,{class:`i-mdi:magnify robot-empty-icon`},null,-1),(0,t.createElementVNode)(`p`,null,`未找到 "`+(0,t.toDisplayString)((0,t.unref)(R))+`" 相关内容`,1)]))])],64)):(0,t.createCommentVNode)(`v-if`,!0):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,s,[I[14]||=(0,t.createElementVNode)(`div`,{class:`i-mdi:magnify robot-empty-icon`},null,-1),(0,t.createElementVNode)(`p`,null,(0,t.toDisplayString)(e.emptyText),1)]))]),(0,t.createCommentVNode)(` 搜索底部 `),(0,t.createElementVNode)(`div`,M,[I[23]||=(0,t.createElementVNode)(`div`,{class:`robot-footer-actions`},[(0,t.createElementVNode)(`div`,{class:`robot-action-item`},[(0,t.createElementVNode)(`kbd`,null,`↵`),(0,t.createElementVNode)(`span`,null,`选择`)]),(0,t.createElementVNode)(`div`,{class:`robot-action-item`},[(0,t.createElementVNode)(`kbd`,null,`↑↓`),(0,t.createElementVNode)(`span`,null,`导航`)]),(0,t.createElementVNode)(`div`,{class:`robot-action-item`},[(0,t.createElementVNode)(`kbd`,null,`esc`),(0,t.createElementVNode)(`span`,null,`关闭`)])],-1),(0,t.unref)(G)?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,N,[(0,t.unref)(R).trim()&&(0,t.unref)(W)?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,P,` 共 `+(0,t.toDisplayString)((0,t.unref)(H).length)+` 项结果 `,1)):!(0,t.unref)(R).trim()&&(0,t.unref)(U).length>0?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,F,(0,t.toDisplayString)((0,t.unref)(U).length)+` 条历史记录 `,1)):(0,t.createCommentVNode)(`v-if`,!0)])):(0,t.createCommentVNode)(`v-if`,!0)])],2)],32)):(0,t.createCommentVNode)(`v-if`,!0)]),_:1})]))]))}});var L=e.t(I,[[`__scopeId`,`data-v-88dfb808`]]);Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return L}});
1
+ require(`./chunk.cjs`);const e=require(`./export-helper.cjs`);let t=require(`vue`),n=require(`vueuc`);const r=e=>e.replace(/^\//,``).replace(/\//g,` > `)||`首页`;function i(e){let t=new Map;return{entries:e.map(e=>{let{key:n}=e,i=r(n);return t.set(n,i),{item:e,label:e.label.toLowerCase(),path:i.toLowerCase()}}),paths:t}}function a(e,t){if(!t.trim())return[];let n=t.toLowerCase();return e.entries.filter(e=>e.label.includes(n)||e.path.includes(n)).map(e=>e.item)}function o(e){let n=()=>(0,t.toValue)(e),o=()=>n().menuItems(),s=(0,t.computed)(()=>n().storageKey??`robot-search-history`),c=(0,t.computed)(()=>Math.min(100,Math.max(0,Math.trunc(n().maxHistory??10)))),ee=(0,t.computed)(()=>Math.min(c.value,Math.max(0,Math.trunc(n().maxDisplayHistory??5)))),l=(0,t.ref)(!1),u=(0,t.ref)(``),d=(0,t.ref)(0),f=(0,t.ref)(),p=(0,t.ref)([]),m=(0,t.ref)(!1),te=(0,t.computed)(()=>n().isDark?.()??!1),h=(0,t.computed)(()=>i(o())),g=(0,t.computed)(()=>u.value.trim()?a(h.value,u.value):[]),_=(0,t.computed)(()=>p.value.slice(0,ee.value)),v=(0,t.computed)(()=>g.value.length>0),ne=(0,t.computed)(()=>!!u.value.trim()||_.value.length>0),y=(0,t.computed)(()=>u.value.trim()?g.value.length:_.value.length),b=(e,t)=>[`robot-result-item`,t&&`robot-history-item`,{"robot-result-item-selected":d.value===e}],x=(e,t)=>{if(!t)return[{text:e,matched:!1}];let n=RegExp(`(${t.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)})`,`gi`);return e.split(n).filter(Boolean).map(e=>({text:e,matched:e.toLocaleLowerCase()===t.toLocaleLowerCase()}))},S=e=>h.value.paths.get(e)??r(e),C=()=>{if(!(typeof localStorage>`u`))try{let e=p.value.map(e=>({query:e.query,menuKey:e.menuItem?.key??null,timestamp:e.timestamp}));localStorage.setItem(s.value,JSON.stringify(e))}catch{}},w=e=>{if(!e.label.trim())return;let t=e.label,n=p.value.filter(n=>!(n.query===t&&n.menuItem?.key===e.key));p.value=[{query:t,menuItem:e,timestamp:Date.now()},...n].slice(0,c.value),C()},T=()=>{if(p.value=[],!(typeof localStorage>`u`))try{let e=localStorage.getItem(s.value);if(e){let t=JSON.parse(e);if(!Array.isArray(t))return;let n=new Map(o().map(e=>[e.key,e]));p.value=t.flatMap(e=>{if(typeof e==`string`)return[{query:e.slice(0,200),menuItem:null,timestamp:0}];if(!e||typeof e!=`object`)return[];let t=e,r=typeof t.query==`string`?t.query:``;if(!r.trim())return[];let i=t.menuItem&&typeof t.menuItem==`object`?t.menuItem:null,a=typeof t.menuKey==`string`?t.menuKey:typeof i?.key==`string`?i.key:``;return[{query:r.slice(0,200),menuItem:n.get(a)??null,timestamp:typeof t.timestamp==`number`&&Number.isFinite(t.timestamp)?t.timestamp:0}]}).slice(0,c.value)}}catch{p.value=[]}},E=()=>{if(p.value=[],!(typeof localStorage>`u`))try{localStorage.removeItem(s.value)}catch{}},D=e=>{p.value.splice(e,1),C(),d.value>=p.value.length&&(d.value=Math.max(0,p.value.length-1))},O=async()=>{l.value=!0,u.value=``,d.value=0,m.value=!1,await(0,t.nextTick)(),f.value?.focus()},k=()=>{l.value=!1,u.value=``,d.value=0,m.value=!1},A=e=>{if(e.menuItem){let t=!!e.menuItem.children?.length;n().onSelect?.(e.menuItem.key,t),k()}else u.value=e.query,d.value=0},j=e=>{w(e);let t=!!e.children?.length;n().onSelect?.(e.key,t),k()},M=e=>m.value||!!(e&&(e.defaultPrevented||e.isComposing||e.keyCode===229||e.ctrlKey||e.metaKey||e.altKey||e.shiftKey)),N=e=>{if(M(e))return;d.value=Math.max(0,Math.min(d.value,y.value-1));let t=!u.value.trim()&&_.value.length>0,n=u.value.trim()&&g.value.length>0;if(t){let t=_.value[d.value];t&&(e?.preventDefault(),A(t))}else if(n){let t=g.value[d.value];t&&(e?.preventDefault(),j(t))}},P=e=>{M(e)||(e?.preventDefault(),d.value=Math.max(0,Math.min(d.value+1,y.value-1)))},F=e=>{M(e)||(e?.preventDefault(),d.value=Math.max(0,Math.min(d.value-1,y.value-1)))},I=e=>{e.key!==`Escape`||M(e)||(e.preventDefault(),k())},L=e=>{e.key===`ArrowDown`?P(e):e.key===`ArrowUp`?F(e):e.key===`Enter`?N(e):I(e)};(0,t.watch)(u,()=>{d.value=0}),(0,t.watch)(y,e=>{d.value=Math.max(0,Math.min(d.value,e-1))}),(0,t.watch)(s,T);let R=e=>{e.defaultPrevented||e.isComposing||e.keyCode===229||m.value||(e.ctrlKey||e.metaKey)&&e.key===`k`&&(e.preventDefault(),O())};return(0,t.onMounted)(()=>{T(),document.addEventListener(`keydown`,R)}),(0,t.onUnmounted)(()=>document.removeEventListener(`keydown`,R)),{showDialog:l,searchValue:u,selectedIndex:d,searchInputRef:f,isDark:te,filteredMenuItems:g,displayHistory:_,hasResults:v,hasContent:ne,getItemClasses:b,highlightMatch:x,formatMenuPath:S,clearHistory:E,removeHistoryItem:D,openDialog:O,closeDialog:k,selectHistoryItem:A,selectItem:j,handleEnter:N,focusNext:P,focusPrev:F,handleInputKeydown:L,handleDialogKeydown:I,handleCompositionStart:()=>{m.value=!0},handleCompositionEnd:()=>{m.value=!1}}}const s={class:`robot-search-palette`},c={class:`robot-search-header`},ee=[`placeholder`,`aria-expanded`,`aria-activedescendant`],l={key:0,class:`robot-empty-state`},u={class:`robot-search-results`},d={class:`robot-result-group`},f={class:`robot-group-title`},p={class:`robot-group-count`},m=[`id`,`aria-selected`,`data-option-index`,`onClick`,`onMouseenter`],te={key:1,class:`robot-item-icon robot-default-icon`},h={class:`robot-item-content`},g={class:`robot-item-label`},_={class:`robot-item-desc`},v=[`onClick`],ne={class:`robot-search-results`},y={key:0,class:`robot-empty-state`},b={class:`robot-result-group`},x={class:`robot-group-title`},S={class:`robot-group-count`},C=[`id`,`aria-selected`,`aria-posinset`,`aria-setsize`,`title`,`onClick`,`onMouseenter`],w={key:1,class:`robot-item-icon robot-default-icon`},T={class:`robot-item-content`},E={class:`robot-item-label`},D={key:0,class:`robot-highlight`},O={class:`robot-item-desc`},k={key:2,class:`robot-item-badge`},A={class:`robot-search-footer`},j={key:0,class:`robot-footer-info`},M={key:0},N={key:1},P=(0,t.defineComponent)({name:`C_GlobalSearch`,__name:`index`,props:{options:{},placeholder:{default:`搜索导航菜单...`},emptyText:{default:`输入关键词搜索菜单`},resultGroupTitle:{default:`菜单导航`}},setup(e,{expose:r}){let i=e,{showDialog:a,searchValue:P,selectedIndex:F,searchInputRef:I,isDark:L,filteredMenuItems:R,displayHistory:z,hasResults:B,hasContent:V,getItemClasses:H,highlightMatch:re,formatMenuPath:U,clearHistory:W,removeHistoryItem:ie,openDialog:G,closeDialog:K,selectHistoryItem:ae,selectItem:oe,handleInputKeydown:se,handleDialogKeydown:q,handleCompositionStart:J,handleCompositionEnd:Y}=o(()=>i.options),X=`robot-search-options-${(0,t.useId)()}`,Z=e=>`${X}-${e}`,ce=(0,t.computed)(()=>(P.value.trim()?R.value.length:z.value.length)>0?Z(F.value):void 0),Q=(0,t.ref)(),le=(0,t.ref)(),$=!1,ue=async()=>{$||($=!0,await(0,t.nextTick)(),$=!1,a.value&&(P.value.trim()?R.value.length&&Q.value?.scrollTo({index:F.value}):le.value?.querySelector(`[data-option-index="${F.value}"]`)?.scrollIntoView({block:`nearest`})))},de=e=>{let t=e.defaultPrevented;se(e),!t&&e.defaultPrevented&&(e.key===`ArrowDown`||e.key===`ArrowUp`)&&ue()};return(0,t.watch)([F,R,z,a],ue,{flush:`post`}),r({openDialog:G,closeDialog:K}),(r,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,s,[(0,t.createCommentVNode)(` 搜索触发按钮 `),(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`robot-search-trigger`,{"trigger-dark":(0,t.unref)(L)}]),onClick:i[0]||=(...e)=>(0,t.unref)(G)&&(0,t.unref)(G)(...e)},[...i[9]||=[(0,t.createElementVNode)(`div`,{class:`i-mdi:search robot-trigger-icon`},null,-1),(0,t.createElementVNode)(`span`,{class:`robot-trigger-text`},`搜索`,-1),(0,t.createElementVNode)(`span`,{class:`robot-trigger-shortcut`},`Ctrl K`,-1)]],2),(0,t.createCommentVNode)(` 搜索对话框 `),((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:`body`},[(0,t.createVNode)(t.Transition,{name:`robot-dialog`},{default:(0,t.withCtx)(()=>[(0,t.unref)(a)?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:`robot-dialog-overlay`,onClick:i[7]||=(...e)=>(0,t.unref)(K)&&(0,t.unref)(K)(...e),onKeydown:i[8]||=(...e)=>(0,t.unref)(q)&&(0,t.unref)(q)(...e)},[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`robot-dialog-container`,{"dialog-dark":(0,t.unref)(L)}]),role:`dialog`,"aria-modal":`true`,"aria-label":`全局搜索`,onClick:i[6]||=(0,t.withModifiers)(()=>{},[`stop`])},[(0,t.createCommentVNode)(` 搜索头部 `),(0,t.createElementVNode)(`div`,c,[i[11]||=(0,t.createElementVNode)(`div`,{class:`i-mdi:magnify robot-search-icon`},null,-1),(0,t.withDirectives)((0,t.createElementVNode)(`input`,{ref_key:`searchInputRef`,ref:I,"onUpdate:modelValue":i[1]||=e=>(0,t.isRef)(P)?P.value=e:null,type:`text`,placeholder:e.placeholder,class:`robot-search-input`,role:`combobox`,"aria-label":`搜索菜单`,"aria-autocomplete":`list`,"aria-expanded":(0,t.unref)(a),"aria-controls":X,"aria-activedescendant":ce.value,onKeydown:de,onCompositionstart:i[2]||=(...e)=>(0,t.unref)(J)&&(0,t.unref)(J)(...e),onCompositionend:i[3]||=(...e)=>(0,t.unref)(Y)&&(0,t.unref)(Y)(...e)},null,40,ee),[[t.vModelText,(0,t.unref)(P)]]),(0,t.createElementVNode)(`button`,{class:`robot-close-btn`,"aria-label":`关闭搜索`,onClick:i[4]||=(...e)=>(0,t.unref)(K)&&(0,t.unref)(K)(...e)},[...i[10]||=[(0,t.createElementVNode)(`div`,{class:`i-mdi:close`},null,-1)]])]),(0,t.createCommentVNode)(` 搜索内容 `),(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`robot-search-content`,{"robot-search-content--virtual":(0,t.unref)(P).trim()&&(0,t.unref)(B)}])},[(0,t.createCommentVNode)(` 空状态 `),(0,t.unref)(V)?!(0,t.unref)(P).trim()&&(0,t.unref)(z).length>0?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:1},[(0,t.createCommentVNode)(` 搜索历史 `),(0,t.createElementVNode)(`div`,u,[(0,t.createElementVNode)(`div`,d,[(0,t.createElementVNode)(`div`,f,[i[14]||=(0,t.createElementVNode)(`div`,{class:`i-mdi:clock-time-four-outline robot-group-icon`},null,-1),i[15]||=(0,t.createTextVNode)(` 最近搜索 `,-1),(0,t.createElementVNode)(`span`,p,(0,t.toDisplayString)((0,t.unref)(z).length),1),(0,t.createElementVNode)(`button`,{class:`robot-clear-history`,onClick:i[5]||=(...e)=>(0,t.unref)(W)&&(0,t.unref)(W)(...e),title:`清空历史`},[...i[13]||=[(0,t.createElementVNode)(`div`,{class:`i-mdi:delete-outline`},null,-1)]])]),(0,t.createElementVNode)(`div`,{id:X,ref_key:`historyItemsRef`,ref:le,class:`robot-group-items`,role:`listbox`,"aria-label":`最近搜索`},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(z),(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:`history-${n}`,id:Z(n),class:(0,t.normalizeClass)((0,t.unref)(H)(n,!0)),role:`option`,"aria-selected":(0,t.unref)(F)===n,"data-option-index":n,onClick:n=>(0,t.unref)(ae)(e),onMouseenter:e=>F.value=n},[e.menuItem?.icon?((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.menuItem.icon),{key:0,class:`robot-item-icon`})):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,te,[...i[16]||=[(0,t.createElementVNode)(`div`,{class:`i-mdi:file-document-outline`},null,-1)]])),(0,t.createElementVNode)(`div`,h,[(0,t.createElementVNode)(`div`,g,(0,t.toDisplayString)(e.query),1),(0,t.createElementVNode)(`div`,_,(0,t.toDisplayString)((0,t.unref)(U)(e.menuItem?.key||``)),1)]),(0,t.createElementVNode)(`button`,{class:`robot-history-delete`,onClick:(0,t.withModifiers)(e=>(0,t.unref)(ie)(n),[`stop`]),title:`删除此记录`},[...i[17]||=[(0,t.createElementVNode)(`div`,{class:`i-mdi:close`},null,-1)]],8,v)],42,m))),128))],512)])])],64)):(0,t.unref)(P).trim()?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:2},[(0,t.createCommentVNode)(` 搜索结果 `),(0,t.createElementVNode)(`div`,ne,[(0,t.createCommentVNode)(` 无结果状态 `),(0,t.unref)(B)?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:1},[(0,t.createCommentVNode)(` 搜索结果列表 `),(0,t.createElementVNode)(`div`,b,[(0,t.createElementVNode)(`div`,x,[i[19]||=(0,t.createElementVNode)(`div`,{class:`i-mdi:menu robot-group-icon`},null,-1),(0,t.createTextVNode)(` `+(0,t.toDisplayString)(e.resultGroupTitle)+` `,1),(0,t.createElementVNode)(`span`,S,(0,t.toDisplayString)((0,t.unref)(R).length),1)]),(0,t.createVNode)((0,t.unref)(n.VVirtualList),{id:X,ref_key:`resultListRef`,ref:Q,class:`robot-group-items robot-virtual-items`,role:`listbox`,"aria-label":e.resultGroupTitle,items:(0,t.unref)(R),"item-size":64,style:(0,t.normalizeStyle)({height:`${Math.min((0,t.unref)(R).length*64,336)}px`})},{default:(0,t.withCtx)(({item:e,index:n})=>[(0,t.createElementVNode)(`div`,{id:Z(n),class:(0,t.normalizeClass)((0,t.unref)(H)(n,!1)),role:`option`,"aria-selected":(0,t.unref)(F)===n,"aria-posinset":n+1,"aria-setsize":(0,t.unref)(R).length,title:`${e.label} · ${(0,t.unref)(U)(e.key)}`,onClick:n=>(0,t.unref)(oe)(e),onMouseenter:e=>F.value=n},[e.icon?((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.icon),{key:0,class:`robot-item-icon`})):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,w,[...i[20]||=[(0,t.createElementVNode)(`div`,{class:`i-mdi:file-document-outline`},null,-1)]])),(0,t.createElementVNode)(`div`,T,[(0,t.createElementVNode)(`div`,E,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(re)(e.label,(0,t.unref)(P)),(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:n},[e.matched?((0,t.openBlock)(),(0,t.createElementBlock)(`mark`,D,(0,t.toDisplayString)(e.text),1)):((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:1},[(0,t.createTextVNode)((0,t.toDisplayString)(e.text),1)],64))],64))),128))]),(0,t.createElementVNode)(`div`,O,(0,t.toDisplayString)((0,t.unref)(U)(e.key)),1)]),e.children?.length?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,k,(0,t.toDisplayString)(e.children.length),1)):(0,t.createCommentVNode)(`v-if`,!0)],42,C)]),_:1},8,[`aria-label`,`items`,`style`])])],2112)):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,y,[i[18]||=(0,t.createElementVNode)(`div`,{class:`i-mdi:magnify robot-empty-icon`},null,-1),(0,t.createElementVNode)(`p`,null,`未找到 "`+(0,t.toDisplayString)((0,t.unref)(P))+`" 相关内容`,1)]))])],64)):(0,t.createCommentVNode)(`v-if`,!0):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,l,[i[12]||=(0,t.createElementVNode)(`div`,{class:`i-mdi:magnify robot-empty-icon`},null,-1),(0,t.createElementVNode)(`p`,null,(0,t.toDisplayString)(e.emptyText),1)]))],2),(0,t.createCommentVNode)(` 搜索底部 `),(0,t.createElementVNode)(`div`,A,[i[21]||=(0,t.createElementVNode)(`div`,{class:`robot-footer-actions`},[(0,t.createElementVNode)(`div`,{class:`robot-action-item`},[(0,t.createElementVNode)(`kbd`,null,`↵`),(0,t.createElementVNode)(`span`,null,`选择`)]),(0,t.createElementVNode)(`div`,{class:`robot-action-item`},[(0,t.createElementVNode)(`kbd`,null,`↑↓`),(0,t.createElementVNode)(`span`,null,`导航`)]),(0,t.createElementVNode)(`div`,{class:`robot-action-item`},[(0,t.createElementVNode)(`kbd`,null,`esc`),(0,t.createElementVNode)(`span`,null,`关闭`)])],-1),(0,t.unref)(V)?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,j,[(0,t.unref)(P).trim()&&(0,t.unref)(B)?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,M,` 共 `+(0,t.toDisplayString)((0,t.unref)(R).length)+` 项结果 `,1)):!(0,t.unref)(P).trim()&&(0,t.unref)(z).length>0?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,N,(0,t.toDisplayString)((0,t.unref)(z).length)+` 条历史记录 `,1)):(0,t.createCommentVNode)(`v-if`,!0)])):(0,t.createCommentVNode)(`v-if`,!0)])],2)],32)):(0,t.createCommentVNode)(`v-if`,!0)]),_:1})]))]))}});var F=e.t(P,[[`__scopeId`,`data-v-4002af54`]]);Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return F}});
@@ -1 +1 @@
1
- import{t as e}from"./export-helper.js";import{Fragment as t,Teleport as n,Transition as r,computed as i,createBlock as a,createCommentVNode as o,createElementBlock as s,createElementVNode as c,createTextVNode as l,createVNode as u,defineComponent as d,isRef as f,nextTick as p,normalizeClass as m,onMounted as h,onUnmounted as g,openBlock as _,ref as v,renderList as y,resolveDynamicComponent as b,toDisplayString as x,unref as S,vModelText as C,watch as w,withCtx as T,withDirectives as E,withKeys as D,withModifiers as O}from"vue";function k(e){let{menuItems:t,isDark:n,onSelect:r,storageKey:a=`robot-search-history`,maxHistory:o=10,maxDisplayHistory:s=5}=e,c=Math.min(100,Math.max(0,Math.trunc(o))),l=Math.min(c,Math.max(0,Math.trunc(s))),u=v(!1),d=v(``),f=v(0),m=v(),_=v([]),y=i(()=>n?.()??!1),b=i(()=>{if(!d.value.trim())return[];let e=d.value.toLowerCase();return t().filter(t=>t.label.toLowerCase().includes(e)||D(t.key).toLowerCase().includes(e))}),x=i(()=>_.value.slice(0,l)),S=i(()=>b.value.length>0),C=i(()=>S.value||x.value.length>0),T=(e,t)=>[`robot-result-item`,t&&`robot-history-item`,{"robot-result-item-selected":f.value===e}],E=(e,t)=>{if(!t)return[{text:e,matched:!1}];let n=RegExp(`(${t.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)})`,`gi`);return e.split(n).filter(Boolean).map(e=>({text:e,matched:e.toLocaleLowerCase()===t.toLocaleLowerCase()}))},D=e=>e.replace(/^\//,``).replace(/\//g,` > `)||`首页`,O=()=>{if(!(typeof localStorage>`u`))try{let e=_.value.map(e=>({query:e.query,menuKey:e.menuItem?.key??null,timestamp:e.timestamp}));localStorage.setItem(a,JSON.stringify(e))}catch{}},k=e=>{if(!e.label.trim())return;let t=e.label,n=_.value.filter(n=>!(n.query===t&&n.menuItem?.key===e.key));_.value=[{query:t,menuItem:e,timestamp:Date.now()},...n].slice(0,c),O()},A=()=>{if(!(typeof localStorage>`u`))try{let e=localStorage.getItem(a);if(e){let n=JSON.parse(e);if(!Array.isArray(n))return;let r=new Map(t().map(e=>[e.key,e]));_.value=n.flatMap(e=>{if(typeof e==`string`)return[{query:e.slice(0,200),menuItem:null,timestamp:0}];if(!e||typeof e!=`object`)return[];let t=e,n=typeof t.query==`string`?t.query:``;if(!n.trim())return[];let i=t.menuItem&&typeof t.menuItem==`object`?t.menuItem:null,a=typeof t.menuKey==`string`?t.menuKey:typeof i?.key==`string`?i.key:``;return[{query:n.slice(0,200),menuItem:r.get(a)??null,timestamp:typeof t.timestamp==`number`&&Number.isFinite(t.timestamp)?t.timestamp:0}]}).slice(0,c)}}catch{_.value=[]}},j=()=>{if(_.value=[],!(typeof localStorage>`u`))try{localStorage.removeItem(a)}catch{}},M=e=>{_.value.splice(e,1),O(),f.value>=_.value.length&&(f.value=Math.max(0,_.value.length-1))},N=async()=>{u.value=!0,d.value=``,f.value=0,await p(),m.value?.focus()},P=()=>{u.value=!1,d.value=``,f.value=0},F=e=>{if(e.menuItem){let t=!!e.menuItem.children?.length;r?.(e.menuItem.key,t),P()}else d.value=e.query,f.value=0},I=e=>{k(e);let t=!!e.children?.length;r?.(e.key,t),P()},L=()=>{let e=!d.value.trim()&&x.value.length>0,t=d.value.trim()&&b.value.length>0;if(e){let e=x.value[f.value];e&&F(e)}else if(t){let e=b.value[f.value];e&&I(e)}},R=()=>{let e=d.value.trim()?b.value.length-1:x.value.length-1;f.value=Math.min(f.value+1,e)},z=()=>{f.value=Math.max(f.value-1,0)};w(d,()=>{f.value=0});let B=e=>{e.defaultPrevented||(e.ctrlKey||e.metaKey)&&e.key===`k`&&(e.preventDefault(),N())};return h(()=>{A(),document.addEventListener(`keydown`,B)}),g(()=>document.removeEventListener(`keydown`,B)),{showDialog:u,searchValue:d,selectedIndex:f,searchInputRef:m,isDark:y,filteredMenuItems:b,displayHistory:x,hasResults:S,hasContent:C,getItemClasses:T,highlightMatch:E,formatMenuPath:D,clearHistory:j,removeHistoryItem:M,openDialog:N,closeDialog:P,selectHistoryItem:F,selectItem:I,handleEnter:L,focusNext:R,focusPrev:z}}const A={class:`robot-search-palette`},j={class:`robot-search-header`},M=[`placeholder`],N={class:`robot-search-content`},P={key:0,class:`robot-empty-state`},F={class:`robot-search-results`},I={class:`robot-result-group`},L={class:`robot-group-title`},R={class:`robot-group-count`},z={class:`robot-group-items`},B=[`onClick`,`onMouseenter`],ee={key:1,class:`robot-item-icon robot-default-icon`},te={class:`robot-item-content`},ne={class:`robot-item-label`},re={class:`robot-item-desc`},ie=[`onClick`],ae={class:`robot-search-results`},oe={key:0,class:`robot-empty-state`},se={class:`robot-result-group`},ce={class:`robot-group-title`},le={class:`robot-group-count`},ue={class:`robot-group-items`},de=[`onClick`,`onMouseenter`],V={key:1,class:`robot-item-icon robot-default-icon`},fe={class:`robot-item-content`},pe={class:`robot-item-label`},me={key:0,class:`robot-highlight`},he={class:`robot-item-desc`},ge={key:2,class:`robot-item-badge`},_e={class:`robot-search-footer`},ve={key:0,class:`robot-footer-info`},ye={key:0},be={key:1};var H=e(d({name:`C_GlobalSearch`,__name:`index`,props:{options:{},placeholder:{default:`搜索导航菜单...`},emptyText:{default:`输入关键词搜索菜单`},resultGroupTitle:{default:`菜单导航`}},setup(e,{expose:i}){let{showDialog:d,searchValue:p,selectedIndex:h,searchInputRef:g,isDark:v,filteredMenuItems:w,displayHistory:H,hasResults:U,hasContent:W,getItemClasses:G,highlightMatch:xe,formatMenuPath:K,clearHistory:q,removeHistoryItem:J,openDialog:Y,closeDialog:X,selectHistoryItem:Se,selectItem:Ce,handleEnter:Z,focusNext:Q,focusPrev:$}=k(e.options);return i({openDialog:Y,closeDialog:X}),(i,k)=>(_(),s(`div`,A,[o(` 搜索触发按钮 `),c(`div`,{class:m([`robot-search-trigger`,{"trigger-dark":S(v)}]),onClick:k[0]||=(...e)=>S(Y)&&S(Y)(...e)},[...k[11]||=[c(`div`,{class:`i-mdi:search robot-trigger-icon`},null,-1),c(`span`,{class:`robot-trigger-text`},`搜索`,-1),c(`span`,{class:`robot-trigger-shortcut`},`Ctrl K`,-1)]],2),o(` 搜索对话框 `),(_(),a(n,{to:`body`},[u(r,{name:`robot-dialog`},{default:T(()=>[S(d)?(_(),s(`div`,{key:0,class:`robot-dialog-overlay`,onClick:k[9]||=(...e)=>S(X)&&S(X)(...e),onKeydown:k[10]||=D((...e)=>S(X)&&S(X)(...e),[`esc`])},[c(`div`,{class:m([`robot-dialog-container`,{"dialog-dark":S(v)}]),onClick:k[8]||=O(()=>{},[`stop`])},[o(` 搜索头部 `),c(`div`,j,[k[13]||=c(`div`,{class:`i-mdi:magnify robot-search-icon`},null,-1),E(c(`input`,{ref_key:`searchInputRef`,ref:g,"onUpdate:modelValue":k[1]||=e=>f(p)?p.value=e:null,type:`text`,placeholder:e.placeholder,class:`robot-search-input`,onKeydown:[k[2]||=D((...e)=>S(X)&&S(X)(...e),[`esc`]),k[3]||=D((...e)=>S(Z)&&S(Z)(...e),[`enter`]),k[4]||=D((...e)=>S(Q)&&S(Q)(...e),[`arrow-down`]),k[5]||=D((...e)=>S($)&&S($)(...e),[`arrow-up`])]},null,40,M),[[C,S(p)]]),c(`button`,{class:`robot-close-btn`,onClick:k[6]||=(...e)=>S(X)&&S(X)(...e)},[...k[12]||=[c(`div`,{class:`i-mdi:close`},null,-1)]])]),o(` 搜索内容 `),c(`div`,N,[o(` 空状态 `),S(W)?!S(p).trim()&&S(H).length>0?(_(),s(t,{key:1},[o(` 搜索历史 `),c(`div`,F,[c(`div`,I,[c(`div`,L,[k[16]||=c(`div`,{class:`i-mdi:clock-time-four-outline robot-group-icon`},null,-1),k[17]||=l(` 最近搜索 `,-1),c(`span`,R,x(S(H).length),1),c(`button`,{class:`robot-clear-history`,onClick:k[7]||=(...e)=>S(q)&&S(q)(...e),title:`清空历史`},[...k[15]||=[c(`div`,{class:`i-mdi:delete-outline`},null,-1)]])]),c(`div`,z,[(_(!0),s(t,null,y(S(H),(e,t)=>(_(),s(`div`,{key:`history-${t}`,class:m(S(G)(t,!0)),onClick:t=>S(Se)(e),onMouseenter:e=>h.value=t},[e.menuItem?.icon?(_(),a(b(e.menuItem.icon),{key:0,class:`robot-item-icon`})):(_(),s(`div`,ee,[...k[18]||=[c(`div`,{class:`i-mdi:file-document-outline`},null,-1)]])),c(`div`,te,[c(`div`,ne,x(e.query),1),c(`div`,re,x(S(K)(e.menuItem?.key||``)),1)]),c(`button`,{class:`robot-history-delete`,onClick:O(e=>S(J)(t),[`stop`]),title:`删除此记录`},[...k[19]||=[c(`div`,{class:`i-mdi:close`},null,-1)]],8,ie)],42,B))),128))])])])],64)):S(p).trim()?(_(),s(t,{key:2},[o(` 搜索结果 `),c(`div`,ae,[o(` 无结果状态 `),S(U)?(_(),s(t,{key:1},[o(` 搜索结果列表 `),c(`div`,se,[c(`div`,ce,[k[21]||=c(`div`,{class:`i-mdi:menu robot-group-icon`},null,-1),l(` `+x(e.resultGroupTitle)+` `,1),c(`span`,le,x(S(w).length),1)]),c(`div`,ue,[(_(!0),s(t,null,y(S(w),(e,n)=>(_(),s(`div`,{key:e.key,class:m(S(G)(n,!1)),onClick:t=>S(Ce)(e),onMouseenter:e=>h.value=n},[e.icon?(_(),a(b(e.icon),{key:0,class:`robot-item-icon`})):(_(),s(`div`,V,[...k[22]||=[c(`div`,{class:`i-mdi:file-document-outline`},null,-1)]])),c(`div`,fe,[c(`div`,pe,[(_(!0),s(t,null,y(S(xe)(e.label,S(p)),(e,n)=>(_(),s(t,{key:n},[e.matched?(_(),s(`mark`,me,x(e.text),1)):(_(),s(t,{key:1},[l(x(e.text),1)],64))],64))),128))]),c(`div`,he,x(S(K)(e.key)),1)]),e.children?.length?(_(),s(`div`,ge,x(e.children.length),1)):o(`v-if`,!0)],42,de))),128))])])],2112)):(_(),s(`div`,oe,[k[20]||=c(`div`,{class:`i-mdi:magnify robot-empty-icon`},null,-1),c(`p`,null,`未找到 "`+x(S(p))+`" 相关内容`,1)]))])],64)):o(`v-if`,!0):(_(),s(`div`,P,[k[14]||=c(`div`,{class:`i-mdi:magnify robot-empty-icon`},null,-1),c(`p`,null,x(e.emptyText),1)]))]),o(` 搜索底部 `),c(`div`,_e,[k[23]||=c(`div`,{class:`robot-footer-actions`},[c(`div`,{class:`robot-action-item`},[c(`kbd`,null,`↵`),c(`span`,null,`选择`)]),c(`div`,{class:`robot-action-item`},[c(`kbd`,null,`↑↓`),c(`span`,null,`导航`)]),c(`div`,{class:`robot-action-item`},[c(`kbd`,null,`esc`),c(`span`,null,`关闭`)])],-1),S(W)?(_(),s(`div`,ve,[S(p).trim()&&S(U)?(_(),s(`span`,ye,` 共 `+x(S(w).length)+` 项结果 `,1)):!S(p).trim()&&S(H).length>0?(_(),s(`span`,be,x(S(H).length)+` 条历史记录 `,1)):o(`v-if`,!0)])):o(`v-if`,!0)])],2)],32)):o(`v-if`,!0)]),_:1})]))]))}}),[[`__scopeId`,`data-v-88dfb808`]]);export{k as n,H as t};
1
+ import{t as e}from"./export-helper.js";import{Fragment as t,Teleport as n,Transition as r,computed as i,createBlock as a,createCommentVNode as o,createElementBlock as s,createElementVNode as c,createTextVNode as l,createVNode as u,defineComponent as d,isRef as f,nextTick as ee,normalizeClass as p,normalizeStyle as m,onMounted as te,onUnmounted as h,openBlock as g,ref as _,renderList as v,resolveDynamicComponent as y,toDisplayString as b,toValue as x,unref as S,useId as ne,vModelText as C,watch as w,withCtx as T,withDirectives as E,withModifiers as D}from"vue";import{VVirtualList as O}from"vueuc";const k=e=>e.replace(/^\//,``).replace(/\//g,` > `)||`首页`;function re(e){let t=new Map;return{entries:e.map(e=>{let{key:n}=e,r=k(n);return t.set(n,r),{item:e,label:e.label.toLowerCase(),path:r.toLowerCase()}}),paths:t}}function A(e,t){if(!t.trim())return[];let n=t.toLowerCase();return e.entries.filter(e=>e.label.includes(n)||e.path.includes(n)).map(e=>e.item)}function j(e){let t=()=>x(e),n=()=>t().menuItems(),r=i(()=>t().storageKey??`robot-search-history`),a=i(()=>Math.min(100,Math.max(0,Math.trunc(t().maxHistory??10)))),o=i(()=>Math.min(a.value,Math.max(0,Math.trunc(t().maxDisplayHistory??5)))),s=_(!1),c=_(``),l=_(0),u=_(),d=_([]),f=_(!1),p=i(()=>t().isDark?.()??!1),m=i(()=>re(n())),g=i(()=>c.value.trim()?A(m.value,c.value):[]),v=i(()=>d.value.slice(0,o.value)),y=i(()=>g.value.length>0),b=i(()=>!!c.value.trim()||v.value.length>0),S=i(()=>c.value.trim()?g.value.length:v.value.length),ne=(e,t)=>[`robot-result-item`,t&&`robot-history-item`,{"robot-result-item-selected":l.value===e}],C=(e,t)=>{if(!t)return[{text:e,matched:!1}];let n=RegExp(`(${t.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)})`,`gi`);return e.split(n).filter(Boolean).map(e=>({text:e,matched:e.toLocaleLowerCase()===t.toLocaleLowerCase()}))},T=e=>m.value.paths.get(e)??k(e),E=()=>{if(!(typeof localStorage>`u`))try{let e=d.value.map(e=>({query:e.query,menuKey:e.menuItem?.key??null,timestamp:e.timestamp}));localStorage.setItem(r.value,JSON.stringify(e))}catch{}},D=e=>{if(!e.label.trim())return;let t=e.label,n=d.value.filter(n=>!(n.query===t&&n.menuItem?.key===e.key));d.value=[{query:t,menuItem:e,timestamp:Date.now()},...n].slice(0,a.value),E()},O=()=>{if(d.value=[],!(typeof localStorage>`u`))try{let e=localStorage.getItem(r.value);if(e){let t=JSON.parse(e);if(!Array.isArray(t))return;let r=new Map(n().map(e=>[e.key,e]));d.value=t.flatMap(e=>{if(typeof e==`string`)return[{query:e.slice(0,200),menuItem:null,timestamp:0}];if(!e||typeof e!=`object`)return[];let t=e,n=typeof t.query==`string`?t.query:``;if(!n.trim())return[];let i=t.menuItem&&typeof t.menuItem==`object`?t.menuItem:null,a=typeof t.menuKey==`string`?t.menuKey:typeof i?.key==`string`?i.key:``;return[{query:n.slice(0,200),menuItem:r.get(a)??null,timestamp:typeof t.timestamp==`number`&&Number.isFinite(t.timestamp)?t.timestamp:0}]}).slice(0,a.value)}}catch{d.value=[]}},j=()=>{if(d.value=[],!(typeof localStorage>`u`))try{localStorage.removeItem(r.value)}catch{}},M=e=>{d.value.splice(e,1),E(),l.value>=d.value.length&&(l.value=Math.max(0,d.value.length-1))},N=async()=>{s.value=!0,c.value=``,l.value=0,f.value=!1,await ee(),u.value?.focus()},P=()=>{s.value=!1,c.value=``,l.value=0,f.value=!1},F=e=>{if(e.menuItem){let n=!!e.menuItem.children?.length;t().onSelect?.(e.menuItem.key,n),P()}else c.value=e.query,l.value=0},I=e=>{D(e);let n=!!e.children?.length;t().onSelect?.(e.key,n),P()},L=e=>f.value||!!(e&&(e.defaultPrevented||e.isComposing||e.keyCode===229||e.ctrlKey||e.metaKey||e.altKey||e.shiftKey)),R=e=>{if(L(e))return;l.value=Math.max(0,Math.min(l.value,S.value-1));let t=!c.value.trim()&&v.value.length>0,n=c.value.trim()&&g.value.length>0;if(t){let t=v.value[l.value];t&&(e?.preventDefault(),F(t))}else if(n){let t=g.value[l.value];t&&(e?.preventDefault(),I(t))}},z=e=>{L(e)||(e?.preventDefault(),l.value=Math.max(0,Math.min(l.value+1,S.value-1)))},B=e=>{L(e)||(e?.preventDefault(),l.value=Math.max(0,Math.min(l.value-1,S.value-1)))},V=e=>{e.key!==`Escape`||L(e)||(e.preventDefault(),P())},ie=e=>{e.key===`ArrowDown`?z(e):e.key===`ArrowUp`?B(e):e.key===`Enter`?R(e):V(e)};w(c,()=>{l.value=0}),w(S,e=>{l.value=Math.max(0,Math.min(l.value,e-1))}),w(r,O);let H=e=>{e.defaultPrevented||e.isComposing||e.keyCode===229||f.value||(e.ctrlKey||e.metaKey)&&e.key===`k`&&(e.preventDefault(),N())};return te(()=>{O(),document.addEventListener(`keydown`,H)}),h(()=>document.removeEventListener(`keydown`,H)),{showDialog:s,searchValue:c,selectedIndex:l,searchInputRef:u,isDark:p,filteredMenuItems:g,displayHistory:v,hasResults:y,hasContent:b,getItemClasses:ne,highlightMatch:C,formatMenuPath:T,clearHistory:j,removeHistoryItem:M,openDialog:N,closeDialog:P,selectHistoryItem:F,selectItem:I,handleEnter:R,focusNext:z,focusPrev:B,handleInputKeydown:ie,handleDialogKeydown:V,handleCompositionStart:()=>{f.value=!0},handleCompositionEnd:()=>{f.value=!1}}}const M={class:`robot-search-palette`},N={class:`robot-search-header`},P=[`placeholder`,`aria-expanded`,`aria-activedescendant`],F={key:0,class:`robot-empty-state`},I={class:`robot-search-results`},L={class:`robot-result-group`},R={class:`robot-group-title`},z={class:`robot-group-count`},B=[`id`,`aria-selected`,`data-option-index`,`onClick`,`onMouseenter`],V={key:1,class:`robot-item-icon robot-default-icon`},ie={class:`robot-item-content`},H={class:`robot-item-label`},ae={class:`robot-item-desc`},oe=[`onClick`],se={class:`robot-search-results`},ce={key:0,class:`robot-empty-state`},le={class:`robot-result-group`},ue={class:`robot-group-title`},de={class:`robot-group-count`},fe=[`id`,`aria-selected`,`aria-posinset`,`aria-setsize`,`title`,`onClick`,`onMouseenter`],pe={key:1,class:`robot-item-icon robot-default-icon`},me={class:`robot-item-content`},he={class:`robot-item-label`},ge={key:0,class:`robot-highlight`},_e={class:`robot-item-desc`},ve={key:2,class:`robot-item-badge`},ye={class:`robot-search-footer`},be={key:0,class:`robot-footer-info`},xe={key:0},Se={key:1};var U=e(d({name:`C_GlobalSearch`,__name:`index`,props:{options:{},placeholder:{default:`搜索导航菜单...`},emptyText:{default:`输入关键词搜索菜单`},resultGroupTitle:{default:`菜单导航`}},setup(e,{expose:d}){let te=e,{showDialog:h,searchValue:x,selectedIndex:k,searchInputRef:re,isDark:A,filteredMenuItems:U,displayHistory:W,hasResults:G,hasContent:Ce,getItemClasses:we,highlightMatch:Te,formatMenuPath:K,clearHistory:Ee,removeHistoryItem:De,openDialog:q,closeDialog:J,selectHistoryItem:Oe,selectItem:ke,handleInputKeydown:Ae,handleDialogKeydown:je,handleCompositionStart:Y,handleCompositionEnd:Me}=j(()=>te.options),X=`robot-search-options-${ne()}`,Z=e=>`${X}-${e}`,Ne=i(()=>(x.value.trim()?U.value.length:W.value.length)>0?Z(k.value):void 0),Pe=_(),Fe=_(),Q=!1,$=async()=>{Q||(Q=!0,await ee(),Q=!1,h.value&&(x.value.trim()?U.value.length&&Pe.value?.scrollTo({index:k.value}):Fe.value?.querySelector(`[data-option-index="${k.value}"]`)?.scrollIntoView({block:`nearest`})))},Ie=e=>{let t=e.defaultPrevented;Ae(e),!t&&e.defaultPrevented&&(e.key===`ArrowDown`||e.key===`ArrowUp`)&&$()};return w([k,U,W,h],$,{flush:`post`}),d({openDialog:q,closeDialog:J}),(i,d)=>(g(),s(`div`,M,[o(` 搜索触发按钮 `),c(`div`,{class:p([`robot-search-trigger`,{"trigger-dark":S(A)}]),onClick:d[0]||=(...e)=>S(q)&&S(q)(...e)},[...d[9]||=[c(`div`,{class:`i-mdi:search robot-trigger-icon`},null,-1),c(`span`,{class:`robot-trigger-text`},`搜索`,-1),c(`span`,{class:`robot-trigger-shortcut`},`Ctrl K`,-1)]],2),o(` 搜索对话框 `),(g(),a(n,{to:`body`},[u(r,{name:`robot-dialog`},{default:T(()=>[S(h)?(g(),s(`div`,{key:0,class:`robot-dialog-overlay`,onClick:d[7]||=(...e)=>S(J)&&S(J)(...e),onKeydown:d[8]||=(...e)=>S(je)&&S(je)(...e)},[c(`div`,{class:p([`robot-dialog-container`,{"dialog-dark":S(A)}]),role:`dialog`,"aria-modal":`true`,"aria-label":`全局搜索`,onClick:d[6]||=D(()=>{},[`stop`])},[o(` 搜索头部 `),c(`div`,N,[d[11]||=c(`div`,{class:`i-mdi:magnify robot-search-icon`},null,-1),E(c(`input`,{ref_key:`searchInputRef`,ref:re,"onUpdate:modelValue":d[1]||=e=>f(x)?x.value=e:null,type:`text`,placeholder:e.placeholder,class:`robot-search-input`,role:`combobox`,"aria-label":`搜索菜单`,"aria-autocomplete":`list`,"aria-expanded":S(h),"aria-controls":X,"aria-activedescendant":Ne.value,onKeydown:Ie,onCompositionstart:d[2]||=(...e)=>S(Y)&&S(Y)(...e),onCompositionend:d[3]||=(...e)=>S(Me)&&S(Me)(...e)},null,40,P),[[C,S(x)]]),c(`button`,{class:`robot-close-btn`,"aria-label":`关闭搜索`,onClick:d[4]||=(...e)=>S(J)&&S(J)(...e)},[...d[10]||=[c(`div`,{class:`i-mdi:close`},null,-1)]])]),o(` 搜索内容 `),c(`div`,{class:p([`robot-search-content`,{"robot-search-content--virtual":S(x).trim()&&S(G)}])},[o(` 空状态 `),S(Ce)?!S(x).trim()&&S(W).length>0?(g(),s(t,{key:1},[o(` 搜索历史 `),c(`div`,I,[c(`div`,L,[c(`div`,R,[d[14]||=c(`div`,{class:`i-mdi:clock-time-four-outline robot-group-icon`},null,-1),d[15]||=l(` 最近搜索 `,-1),c(`span`,z,b(S(W).length),1),c(`button`,{class:`robot-clear-history`,onClick:d[5]||=(...e)=>S(Ee)&&S(Ee)(...e),title:`清空历史`},[...d[13]||=[c(`div`,{class:`i-mdi:delete-outline`},null,-1)]])]),c(`div`,{id:X,ref_key:`historyItemsRef`,ref:Fe,class:`robot-group-items`,role:`listbox`,"aria-label":`最近搜索`},[(g(!0),s(t,null,v(S(W),(e,t)=>(g(),s(`div`,{key:`history-${t}`,id:Z(t),class:p(S(we)(t,!0)),role:`option`,"aria-selected":S(k)===t,"data-option-index":t,onClick:t=>S(Oe)(e),onMouseenter:e=>k.value=t},[e.menuItem?.icon?(g(),a(y(e.menuItem.icon),{key:0,class:`robot-item-icon`})):(g(),s(`div`,V,[...d[16]||=[c(`div`,{class:`i-mdi:file-document-outline`},null,-1)]])),c(`div`,ie,[c(`div`,H,b(e.query),1),c(`div`,ae,b(S(K)(e.menuItem?.key||``)),1)]),c(`button`,{class:`robot-history-delete`,onClick:D(e=>S(De)(t),[`stop`]),title:`删除此记录`},[...d[17]||=[c(`div`,{class:`i-mdi:close`},null,-1)]],8,oe)],42,B))),128))],512)])])],64)):S(x).trim()?(g(),s(t,{key:2},[o(` 搜索结果 `),c(`div`,se,[o(` 无结果状态 `),S(G)?(g(),s(t,{key:1},[o(` 搜索结果列表 `),c(`div`,le,[c(`div`,ue,[d[19]||=c(`div`,{class:`i-mdi:menu robot-group-icon`},null,-1),l(` `+b(e.resultGroupTitle)+` `,1),c(`span`,de,b(S(U).length),1)]),u(S(O),{id:X,ref_key:`resultListRef`,ref:Pe,class:`robot-group-items robot-virtual-items`,role:`listbox`,"aria-label":e.resultGroupTitle,items:S(U),"item-size":64,style:m({height:`${Math.min(S(U).length*64,336)}px`})},{default:T(({item:e,index:n})=>[c(`div`,{id:Z(n),class:p(S(we)(n,!1)),role:`option`,"aria-selected":S(k)===n,"aria-posinset":n+1,"aria-setsize":S(U).length,title:`${e.label} · ${S(K)(e.key)}`,onClick:t=>S(ke)(e),onMouseenter:e=>k.value=n},[e.icon?(g(),a(y(e.icon),{key:0,class:`robot-item-icon`})):(g(),s(`div`,pe,[...d[20]||=[c(`div`,{class:`i-mdi:file-document-outline`},null,-1)]])),c(`div`,me,[c(`div`,he,[(g(!0),s(t,null,v(S(Te)(e.label,S(x)),(e,n)=>(g(),s(t,{key:n},[e.matched?(g(),s(`mark`,ge,b(e.text),1)):(g(),s(t,{key:1},[l(b(e.text),1)],64))],64))),128))]),c(`div`,_e,b(S(K)(e.key)),1)]),e.children?.length?(g(),s(`div`,ve,b(e.children.length),1)):o(`v-if`,!0)],42,fe)]),_:1},8,[`aria-label`,`items`,`style`])])],2112)):(g(),s(`div`,ce,[d[18]||=c(`div`,{class:`i-mdi:magnify robot-empty-icon`},null,-1),c(`p`,null,`未找到 "`+b(S(x))+`" 相关内容`,1)]))])],64)):o(`v-if`,!0):(g(),s(`div`,F,[d[12]||=c(`div`,{class:`i-mdi:magnify robot-empty-icon`},null,-1),c(`p`,null,b(e.emptyText),1)]))],2),o(` 搜索底部 `),c(`div`,ye,[d[21]||=c(`div`,{class:`robot-footer-actions`},[c(`div`,{class:`robot-action-item`},[c(`kbd`,null,`↵`),c(`span`,null,`选择`)]),c(`div`,{class:`robot-action-item`},[c(`kbd`,null,`↑↓`),c(`span`,null,`导航`)]),c(`div`,{class:`robot-action-item`},[c(`kbd`,null,`esc`),c(`span`,null,`关闭`)])],-1),S(Ce)?(g(),s(`div`,be,[S(x).trim()&&S(G)?(g(),s(`span`,xe,` 共 `+b(S(U).length)+` 项结果 `,1)):!S(x).trim()&&S(W).length>0?(g(),s(`span`,Se,b(S(W).length)+` 条历史记录 `,1)):o(`v-if`,!0)])):o(`v-if`,!0)])],2)],32)):o(`v-if`,!0)]),_:1})]))]))}}),[[`__scopeId`,`data-v-4002af54`]]);export{j as n,U as t};
@@ -1,5 +1,7 @@
1
1
  :root{--c-primary: var(--primary-color, #2080f0);--c-primary-hover: var(--primary-color-hover, #4098fc);--c-primary-pressed: var(--primary-color-pressed, #1060c9);--c-success: var(--success-color, #18a058);--c-warning: var(--warning-color, #f0a020);--c-error: var(--error-color, #d03050);--c-info: var(--info-color, #2080f0);--c-bg-body: var(--body-color, #ffffff);--c-bg-card: var(--card-color, #ffffff);--c-bg-surface: var(--popover-color, #ffffff);--c-text-1: var(--text-color-1, #262626);--c-text-2: var(--text-color-2, #525252);--c-text-3: var(--text-color-3, #a3a3a3);--c-text-4: var(--text-color-4, #c0c0c0);--c-border: var(--border-color, #e5e7eb);--c-radius-sm: var(--border-radius-small, 4px);--c-radius: var(--border-radius, 6px);--c-transition-fast: 0.15s cubic-bezier(0.4, 0, 0.2, 1);--c-transition-base: 0.3s cubic-bezier(0.4, 0, 0.2, 1);--c-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.08);--c-shadow-md: 0 4px 6px rgba(0, 0, 0, 0.1);--c-shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.1)}
2
2
 
3
+ .vue-cropper[data-v-a742df44]{position:relative;width:100%;height:100%;box-sizing:border-box;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;direction:ltr;touch-action:none;text-align:left;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC)}.vue-cropper .cropper-box[data-v-a742df44],.vue-cropper .cropper-box-canvas[data-v-a742df44],.vue-cropper .cropper-drag-box[data-v-a742df44],.vue-cropper .cropper-crop-box[data-v-a742df44],.vue-cropper .cropper-face[data-v-a742df44]{position:absolute;top:0;right:0;bottom:0;left:0;-webkit-user-select:none;user-select:none}.vue-cropper .cropper-box-canvas img[data-v-a742df44]{position:relative;text-align:left;-webkit-user-select:none;user-select:none;transform:none;max-width:none;max-height:none}.vue-cropper .cropper-box[data-v-a742df44]{overflow:hidden}.vue-cropper .cropper-move[data-v-a742df44]{cursor:move}.vue-cropper .cropper-crop[data-v-a742df44]{cursor:crosshair}.vue-cropper .cropper-modal[data-v-a742df44]{background:rgba(0,0,0,.5)}.vue-cropper .cropper-view-box[data-v-a742df44]{display:block;overflow:hidden;width:100%;height:100%;outline:1px solid #39f;outline-color:#3399ffbf;-webkit-user-select:none;user-select:none}.vue-cropper .cropper-view-box img[data-v-a742df44]{-webkit-user-select:none;user-select:none;text-align:left;max-width:none;max-height:none}.vue-cropper .cropper-face[data-v-a742df44]{top:0;left:0;background-color:#fff;opacity:.1}.vue-cropper .crop-info[data-v-a742df44]{position:absolute;left:0;min-width:65px;text-align:center;color:#fff;line-height:20px;background-color:#000c;font-size:12px}.vue-cropper .crop-line[data-v-a742df44]{position:absolute;display:block;width:100%;height:100%;opacity:.1}.vue-cropper .line-w[data-v-a742df44]{top:-3px;left:0;height:5px;cursor:n-resize}.vue-cropper .line-a[data-v-a742df44]{top:0;left:-3px;width:5px;cursor:w-resize}.vue-cropper .line-s[data-v-a742df44]{bottom:-3px;left:0;height:5px;cursor:s-resize}.vue-cropper .line-d[data-v-a742df44]{top:0;right:-3px;width:5px;cursor:e-resize}.vue-cropper .crop-point[data-v-a742df44]{position:absolute;width:8px;height:8px;opacity:.75;background-color:#39f;border-radius:100%}.vue-cropper .point1[data-v-a742df44]{top:-4px;left:-4px;cursor:nw-resize}.vue-cropper .point2[data-v-a742df44]{top:-5px;left:50%;margin-left:-3px;cursor:n-resize}.vue-cropper .point3[data-v-a742df44]{top:-4px;right:-4px;cursor:ne-resize}.vue-cropper .point4[data-v-a742df44]{top:50%;left:-4px;margin-top:-3px;cursor:w-resize}.vue-cropper .point5[data-v-a742df44]{top:50%;right:-4px;margin-top:-3px;cursor:e-resize}.vue-cropper .point6[data-v-a742df44]{bottom:-5px;left:-4px;cursor:sw-resize}.vue-cropper .point7[data-v-a742df44]{bottom:-5px;left:50%;margin-left:-3px;cursor:s-resize}.vue-cropper .point8[data-v-a742df44]{bottom:-5px;right:-4px;cursor:se-resize}@media screen and (max-width: 500px){.vue-cropper .crop-point[data-v-a742df44]{position:absolute;width:20px;height:20px;opacity:.45;background-color:#39f;border-radius:100%}.vue-cropper .point1[data-v-a742df44]{top:-10px;left:-10px}.vue-cropper .point2[data-v-a742df44],.vue-cropper .point4[data-v-a742df44],.vue-cropper .point5[data-v-a742df44],.vue-cropper .point7[data-v-a742df44]{display:none}.vue-cropper .point3[data-v-a742df44]{top:-10px;right:-10px}.vue-cropper .point4[data-v-a742df44]{top:0;left:0}.vue-cropper .point6[data-v-a742df44]{bottom:-10px;left:-10px}.vue-cropper .point8[data-v-a742df44]{bottom:-10px;right:-10px}}
4
+
3
5
  .cropper-preview[data-v-ca124789] {
4
6
  display: flex;
5
7
  flex-direction: column;
@@ -87,20 +89,20 @@
87
89
  .flex-wrap[data-v-8dc2ca25]{flex-wrap:wrap;}
88
90
 
89
91
  /* C_ImageCropper styles */
90
- .c-image-cropper[data-v-b3645c9b] {
92
+ .c-image-cropper[data-v-d074fd81] {
91
93
  width: 100%;
92
94
  }
93
- .c-image-cropper__body[data-v-b3645c9b] {
95
+ .c-image-cropper__body[data-v-d074fd81] {
94
96
  display: flex;
95
97
  flex-direction: column;
96
98
  gap: 8px;
97
99
  }
98
- .c-image-cropper__workspace[data-v-b3645c9b] {
100
+ .c-image-cropper__workspace[data-v-d074fd81] {
99
101
  display: flex;
100
102
  gap: 16px;
101
103
  align-items: stretch;
102
104
  }
103
- .c-image-cropper__canvas[data-v-b3645c9b] {
105
+ .c-image-cropper__canvas[data-v-d074fd81] {
104
106
  position: relative;
105
107
  flex: 1;
106
108
  min-width: 0;
@@ -109,11 +111,11 @@
109
111
  border-radius: 6px;
110
112
  background: var(--body-color);
111
113
  }
112
- .c-image-cropper__canvas[data-v-b3645c9b] .vue-cropper {
114
+ .c-image-cropper__canvas[data-v-d074fd81] .vue-cropper {
113
115
  width: 100% !important;
114
116
  height: 100% !important;
115
117
  }
116
- .c-image-cropper__preview-panel[data-v-b3645c9b] {
118
+ .c-image-cropper__preview-panel[data-v-d074fd81] {
117
119
  flex: 0 1 280px;
118
120
  min-width: 200px;
119
121
  padding: 16px;
@@ -122,7 +124,7 @@
122
124
  border-radius: 6px;
123
125
  background: var(--card-color);
124
126
  }
125
- .c-image-cropper__placeholder[data-v-b3645c9b] {
127
+ .c-image-cropper__placeholder[data-v-d074fd81] {
126
128
  display: flex;
127
129
  flex-direction: column;
128
130
  gap: 8px;
@@ -133,13 +135,13 @@
133
135
  font-size: 14px;
134
136
  }
135
137
  @media (width <= 768px) {
136
- .c-image-cropper__workspace[data-v-b3645c9b] {
138
+ .c-image-cropper__workspace[data-v-d074fd81] {
137
139
  flex-direction: column;
138
140
  }
139
- .c-image-cropper__preview-panel[data-v-b3645c9b] {
141
+ .c-image-cropper__preview-panel[data-v-d074fd81] {
140
142
  max-width: none;
141
143
  }
142
144
  }
143
145
 
144
146
  /* layer: default */
145
- .px[data-v-b3645c9b]{padding-left:1rem;padding-right:1rem;}
147
+ .px[data-v-d074fd81]{padding-left:1rem;padding-right:1rem;}
@@ -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){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-8dc2ca25`]]);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-ca124789`]]);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-b3645c9b`]]);Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return k}});
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),r=new Set,i=!1;(0,n.getCurrentScope)()&&(0,n.onScopeDispose)(()=>{i=!0;for(let e of r)e(Error(`Image cropper was disposed`));r.clear()});function a(){t.value?.rotateLeft()}function o(){t.value?.rotateRight()}function s(e){if(!Number.isFinite(e))return;let t=Math.round(e/90),n=t>0?o:a;for(let e=0;e<Math.abs(t);e++)n()}function c(e){!Number.isFinite(e)||e===0||t.value?.changeScale(e>0?1:-1)}function l(){t.value?.refresh()}function u(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 d(){return new Promise((n,a)=>{let o=t.value;if(!o||i){a(Error(i?`Image cropper was disposed`:`Cropper not initialized`));return}let s=e.format?.value??`png`,c=Math.min(1,Math.max(0,e.quality?.value??.92)),l=s===`jpeg`?`image/jpeg`:`image/${s}`,d=!1,f=setTimeout(()=>p(Error(`Crop result timed out`)),15e3);function p(e){d||(d=!0,clearTimeout(f),r.delete(p),a(e instanceof Error?e:Error(String(e))))}function m(e){d||(d=!0,clearTimeout(f),r.delete(p),n(e))}r.add(p);try{o.getCropChecked(e=>{if(!d)try{if(!e.width||!e.height)throw Error(`Crop result is empty`);let{width:t,height:n}=u(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(l,c);r.toBlob(e=>{if(!e){p(Error(`Crop result could not be encoded`));return}m({base64:i,blob:e,width:t,height:n,format:s})},l,c)}catch(e){p(e)}})}catch(e){p(e)}})}return{cropperRef:t,rotate:s,rotateLeft:a,rotateRight:o,zoom:c,reset:l,getCropResult:d}}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-8dc2ca25`]]);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-ca124789`]]);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=!1,A=null;function j(){let e=A;A=null,e&&(e.onload=null,e.onerror=null,e.readyState===FileReader.LOADING&&e.abort())}(0,n.onBeforeUnmount)(()=>{k=!0,j()});let M=(0,n.ref)(null),N=(0,n.ref)(null),P=(0,n.computed)(()=>l.modal?N.value:M.value),F=(0,n.computed)(()=>typeof l.height==`number`?`${l.height}px`:l.height),I=(0,n.computed)(()=>({png:`png`,jpeg:`jpeg`,webp:`webp`})[l.outputFormat]||`png`),L=(0,n.computed)(()=>f.value>0),R=(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]),z=(0,n.computed)(()=>({width:300,height:f.value>0?300/f.value:200})),B=[{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}],V=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)(P,e=>{V.cropperRef.value=e});function H(e){O.value=e}function U(e){g.value=e===`success`,g.value?u(`ready`):q(e instanceof Error?e:Error(`Image could not be loaded`))}function W(e){l.disabled||h.value||m.value||V.rotate(e)}function G(e){l.disabled||h.value||m.value||(f.value=e)}function K(){l.disabled||h.value||m.value||(g.value=!1,V.reset())}function q(e){k||u(`error`,e instanceof Error?e:Error(String(e)))}async function J(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);!k&&d.value===t&&(d.value=n)}catch(e){q(e)}finally{h.value=!1}}function Y(){J(`horizontal`)}function X(){J(`vertical`)}async function Z(){if(k||!g.value||h.value)throw Error(`Image cropper is not ready`);let e=d.value,t=await V.getCropResult();if(k||e!==d.value||!g.value)throw Error(`Image changed during crop export`);return t}async function Q(){if(!(l.disabled||h.value||m.value||!g.value)){m.value=!0;try{let e=await Z();if(!p.value)return;u(`confirm`,e),u(`crop`,e),p.value=!1}catch(e){q(e)}finally{m.value=!1}}}function $(){p.value=!1,u(`cancel`)}function ee(e){if(k)return;if(!e.type.startsWith(`image/`)){q(Error(`Please select an image file`));return}j();let t=new FileReader;A=t,t.onerror=()=>{k||A!==t||(A=null,q(Error(`Image file could not be read`)))},t.onload=e=>{k||A!==t||(A=null,typeof e.target?.result==`string`&&(d.value=e.target.result))};try{t.readAsDataURL(e)}catch(e){A=null,q(e)}}return(0,n.watch)(d,()=>{g.value=!1,O.value=null}),(0,n.watch)(()=>l.src,e=>{j(),d.value=e}),(0,n.watch)(()=>l.aspectRatio,e=>{f.value=e}),o({getCropResult:Z,rotate:V.rotate,zoom:V.zoom,flipX:Y,flipY:X,reset:V.reset,setAspectRatio:e=>{f.value=e},loadFile:ee,open:e=>{e&&(j(),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:$},{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:Q},{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":B,disabled:l.disabled||h.value||m.value||!g.value,onRatio:G,onRotate:W,onFlipX:Y,onFlipY:X,onZoom:(0,n.unref)(V).zoom,onReset:K},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:F.value})},[d.value?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.VueCropper),{key:0,ref_key:`modalCropperRef`,ref:N,img:d.value,"output-size":l.outputQuality,"output-type":I.value,"can-scale":!1,"auto-crop":!0,"auto-crop-width":z.value.width,"auto-crop-height":z.value.height,fixed:L.value,"fixed-number":R.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:H,onImgLoad:U},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":B,disabled:l.disabled||h.value||m.value||!g.value,onRatio:G,onRotate:W,onFlipX:Y,onFlipY:X,onZoom:(0,n.unref)(V).zoom,onReset:K},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:F.value})},[d.value?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.VueCropper),{key:0,ref_key:`inlineCropperRef`,ref:M,img:d.value,"output-size":l.outputQuality,"output-type":I.value,"can-scale":!1,"auto-crop":!0,"auto-crop-width":z.value.width,"auto-crop-height":z.value.height,fixed:L.value,"fixed-number":R.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:H,onImgLoad:U},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-d074fd81`]]);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 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-8dc2ca25`]]);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-ca124789`]]);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-b3645c9b`]]);export{O as n,V 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,getCurrentScope as d,normalizeClass as f,normalizeStyle as p,onBeforeUnmount as m,onMounted as h,onScopeDispose as g,openBlock as _,ref as v,renderList as y,toDisplayString as b,unref as x,watch as S,withCtx as C}from"vue";import{NButton as w,NButtonGroup as T,NDivider as E,NModal as ee,NSpace as te,NTooltip as D}from"naive-ui";import{VueCropper as O}from"vue-cropper";function k(e={}){let t=v(null),n=new Set,r=!1;d()&&g(()=>{r=!0;for(let e of n)e(Error(`Image cropper was disposed`));n.clear()});function i(){t.value?.rotateLeft()}function a(){t.value?.rotateRight()}function o(e){if(!Number.isFinite(e))return;let t=Math.round(e/90),n=t>0?a:i;for(let e=0;e<Math.abs(t);e++)n()}function s(e){!Number.isFinite(e)||e===0||t.value?.changeScale(e>0?1:-1)}function c(){t.value?.refresh()}function l(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 u(){return new Promise((i,a)=>{let o=t.value;if(!o||r){a(Error(r?`Image cropper was disposed`:`Cropper not initialized`));return}let s=e.format?.value??`png`,c=Math.min(1,Math.max(0,e.quality?.value??.92)),u=s===`jpeg`?`image/jpeg`:`image/${s}`,d=!1,f=setTimeout(()=>p(Error(`Crop result timed out`)),15e3);function p(e){d||(d=!0,clearTimeout(f),n.delete(p),a(e instanceof Error?e:Error(String(e))))}function m(e){d||(d=!0,clearTimeout(f),n.delete(p),i(e))}n.add(p);try{o.getCropChecked(e=>{if(!d)try{if(!e.width||!e.height)throw Error(`Crop result is empty`);let{width:t,height:n}=l(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(u,c);r.toBlob(e=>{if(!e){p(Error(`Crop result could not be encoded`));return}m({base64:i,blob:e,width:t,height:n,format:s})},u,c)}catch(e){p(e)}})}catch(e){p(e)}})}return{cropperRef:t,rotate:o,rotateLeft:i,rotateRight:a,zoom:s,reset:c,getCropResult:u}}const A={class:`cropper-toolbar`};var j=t(u({__name:`CropperToolbar`,props:{currentRatio:{},ratioPresets:{},disabled:{type:Boolean}},emits:[`ratio`,`rotate`,`flipX`,`flipY`,`zoom`,`reset`],setup(t){return(r,a)=>(_(),o(`div`,A,[l(x(T),{size:`small`},{default:C(()=>[(_(!0),o(n,null,y(t.ratioPresets,e=>(_(),i(x(w),{key:e.value,type:t.currentRatio===e.value?`primary`:`default`,disabled:t.disabled,onClick:t=>r.$emit(`ratio`,e.value)},{default:C(()=>[c(b(e.label),1)]),_:2},1032,[`type`,`disabled`,`onClick`]))),128))]),_:1}),l(x(E),{vertical:``}),l(x(D),null,{trigger:C(()=>[l(x(w),{size:`small`,quaternary:``,disabled:t.disabled,onClick:a[0]||=e=>r.$emit(`rotate`,-90)},{icon:C(()=>[l(e,{name:`mdi:rotate-left`})]),_:1},8,[`disabled`])]),default:C(()=>[a[7]||=c(` 逆时针旋转 90° `,-1)]),_:1}),l(x(D),null,{trigger:C(()=>[l(x(w),{size:`small`,quaternary:``,disabled:t.disabled,onClick:a[1]||=e=>r.$emit(`rotate`,90)},{icon:C(()=>[l(e,{name:`mdi:rotate-right`})]),_:1},8,[`disabled`])]),default:C(()=>[a[8]||=c(` 顺时针旋转 90° `,-1)]),_:1}),l(x(E),{vertical:``}),l(x(D),null,{trigger:C(()=>[l(x(w),{size:`small`,quaternary:``,disabled:t.disabled,onClick:a[2]||=e=>r.$emit(`flipX`)},{icon:C(()=>[l(e,{name:`mdi:flip-horizontal`})]),_:1},8,[`disabled`])]),default:C(()=>[a[9]||=c(` 水平翻转 `,-1)]),_:1}),l(x(D),null,{trigger:C(()=>[l(x(w),{size:`small`,quaternary:``,disabled:t.disabled,onClick:a[3]||=e=>r.$emit(`flipY`)},{icon:C(()=>[l(e,{name:`mdi:flip-vertical`})]),_:1},8,[`disabled`])]),default:C(()=>[a[10]||=c(` 垂直翻转 `,-1)]),_:1}),l(x(E),{vertical:``}),l(x(D),null,{trigger:C(()=>[l(x(w),{size:`small`,quaternary:``,disabled:t.disabled,onClick:a[4]||=e=>r.$emit(`zoom`,.1)},{icon:C(()=>[l(e,{name:`mdi:magnify-plus-outline`})]),_:1},8,[`disabled`])]),default:C(()=>[a[11]||=c(` 放大 `,-1)]),_:1}),l(x(D),null,{trigger:C(()=>[l(x(w),{size:`small`,quaternary:``,disabled:t.disabled,onClick:a[5]||=e=>r.$emit(`zoom`,-.1)},{icon:C(()=>[l(e,{name:`mdi:magnify-minus-outline`})]),_:1},8,[`disabled`])]),default:C(()=>[a[12]||=c(` 缩小 `,-1)]),_:1}),l(x(E),{vertical:``}),l(x(D),null,{trigger:C(()=>[l(x(w),{size:`small`,quaternary:``,disabled:t.disabled,onClick:a[6]||=e=>r.$emit(`reset`)},{icon:C(()=>[l(e,{name:`mdi:refresh`})]),_:1},8,[`disabled`])]),default:C(()=>[a[13]||=c(` 重置 `,-1)]),_:1})]))}}),[[`__scopeId`,`data-v-8dc2ca25`]]);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=v(null),u=v(200),d=[{label:`80px`,size:80},{label:`48px`,size:48},{label:`32px`,size:32}],g=r(()=>{let e=i.previewData;return e&&e.url&&e.w>0&&e.h>0}),x=r(()=>{if(!g.value)return{};let{w:e}=i.previewData;return{zoom:u.value/e,overflow:`hidden`}});function S(e){if(!g.value)return{};let{w:t}=i.previewData;return{zoom:e/t,overflow:`hidden`}}let C=null;return h(()=>{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))}),m(()=>{C?.disconnect()}),(r,i)=>(_(),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:f([`preview-main`,{"preview-main--circular":t.circular}])},[g.value?(_(),o(`div`,{key:0,class:`preview-main__viewport`,style:p(x.value)},[s(`div`,{style:p(t.previewData.div)},[s(`img`,{src:t.previewData.url,style:p(t.previewData.img),alt:`preview`},null,12,P)],4)],4)):(_(),o(`div`,F,[l(e,{name:`mdi:image-outline`,style:{"font-size":`32px`,opacity:`0.2`}})]))],2),s(`div`,I,[(_(),o(n,null,y(d,e=>s(`div`,{key:e.label,class:`preview-thumb`},[s(`div`,{class:f([`preview-thumb__box`,{"preview-thumb__box--circular":t.circular}]),style:p({width:`${e.size}px`,height:`${e.size}px`})},[g.value?(_(),o(`div`,{key:0,class:`preview-thumb__viewport`,style:p(S(e.size))},[s(`div`,{style:p(t.previewData.div)},[s(`img`,{src:t.previewData.url,style:p(t.previewData.img),alt:`thumb`},null,12,L)],4)],4)):a(`v-if`,!0)],6),s(`span`,R,b(e.label),1)])),64))])]))}}),[[`__scopeId`,`data-v-ca124789`]]);function ne(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 re={class:`c-image-cropper__body`},ie={class:`c-image-cropper__workspace`},ae={key:1,class:`c-image-cropper__placeholder`},oe={key:0,class:`c-image-cropper__preview-panel`},se={key:1,class:`c-image-cropper`},ce={class:`c-image-cropper__body`},le={class:`c-image-cropper__workspace`},ue={key:1,class:`c-image-cropper__placeholder`},de={key:0,class:`c-image-cropper__preview-panel`};var B=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,f=u,h=v(d.src),g=v(d.aspectRatio),y=v(!1),b=v(!1),T=v(!1),E=v(!1),D=v(null),A=!1,M=null;function N(){let e=M;M=null,e&&(e.onload=null,e.onerror=null,e.readyState===FileReader.LOADING&&e.abort())}m(()=>{A=!0,N()});let P=v(null),F=v(null),I=r(()=>d.modal?F.value:P.value),L=r(()=>typeof d.height==`number`?`${d.height}px`:d.height),R=r(()=>({png:`png`,jpeg:`jpeg`,webp:`webp`})[d.outputFormat]||`png`),B=r(()=>g.value>0),V=r(()=>g.value<=0||g.value===1?[1,1]:Math.abs(g.value-16/9)<.01?[16,9]:Math.abs(g.value-4/3)<.01?[4,3]:Math.abs(g.value-3/2)<.01?[3,2]:[Math.round(g.value*100),100]),H=r(()=>({width:300,height:g.value>0?300/g.value:200})),U=[{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}],W=k({format:r(()=>d.outputFormat),quality:r(()=>d.outputQuality),maxWidth:r(()=>d.maxOutputWidth),maxHeight:r(()=>d.maxOutputHeight)});S(I,e=>{W.cropperRef.value=e});function G(e){D.value=e}function K(e){E.value=e===`success`,E.value?f(`ready`):X(e instanceof Error?e:Error(`Image could not be loaded`))}function q(e){d.disabled||T.value||b.value||W.rotate(e)}function J(e){d.disabled||T.value||b.value||(g.value=e)}function Y(){d.disabled||T.value||b.value||(E.value=!1,W.reset())}function X(e){A||f(`error`,e instanceof Error?e:Error(String(e)))}async function Z(e){if(d.disabled||T.value||b.value||!h.value)return;T.value=!0;let t=h.value;try{let n=await ne(t,e);!A&&h.value===t&&(h.value=n)}catch(e){X(e)}finally{T.value=!1}}function Q(){Z(`horizontal`)}function $(){Z(`vertical`)}async function fe(){if(A||!E.value||T.value)throw Error(`Image cropper is not ready`);let e=h.value,t=await W.getCropResult();if(A||e!==h.value||!E.value)throw Error(`Image changed during crop export`);return t}async function pe(){if(!(d.disabled||T.value||b.value||!E.value)){b.value=!0;try{let e=await fe();if(!y.value)return;f(`confirm`,e),f(`crop`,e),y.value=!1}catch(e){X(e)}finally{b.value=!1}}}function me(){y.value=!1,f(`cancel`)}function he(e){if(A)return;if(!e.type.startsWith(`image/`)){X(Error(`Please select an image file`));return}N();let t=new FileReader;M=t,t.onerror=()=>{A||M!==t||(M=null,X(Error(`Image file could not be read`)))},t.onload=e=>{A||M!==t||(M=null,typeof e.target?.result==`string`&&(h.value=e.target.result))};try{t.readAsDataURL(e)}catch(e){M=null,X(e)}}return S(h,()=>{E.value=!1,D.value=null}),S(()=>d.src,e=>{N(),h.value=e}),S(()=>d.aspectRatio,e=>{g.value=e}),n({getCropResult:fe,rotate:W.rotate,zoom:W.zoom,flipX:Q,flipY:$,reset:W.reset,setAspectRatio:e=>{g.value=e},loadFile:he,open:e=>{e&&(N(),h.value=e),y.value=!0},close:()=>{y.value=!1}}),(t,n)=>d.modal?(_(),i(x(ee),{key:0,show:y.value,"onUpdate:show":n[0]||=e=>y.value=e,preset:`card`,title:d.modalTitle||`图片裁剪`,style:{width:`860px`},"mask-closable":!1,closable:!0},{footer:C(()=>[l(x(te),{justify:`end`},{default:C(()=>[l(x(w),{disabled:b.value,onClick:me},{default:C(()=>[...n[2]||=[c(`取消`,-1)]]),_:1},8,[`disabled`]),l(x(w),{type:`primary`,loading:b.value,disabled:d.disabled||T.value||!E.value,onClick:pe},{default:C(()=>[...n[3]||=[c(`确认裁剪`,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),default:C(()=>[s(`div`,re,[d.showToolbar?(_(),i(j,{key:0,"current-ratio":g.value,"ratio-presets":U,disabled:d.disabled||T.value||b.value||!E.value,onRatio:J,onRotate:q,onFlipX:Q,onFlipY:$,onZoom:x(W).zoom,onReset:Y},null,8,[`current-ratio`,`disabled`,`onZoom`])):a(`v-if`,!0),s(`div`,ie,[s(`div`,{class:`c-image-cropper__canvas`,style:p({height:L.value})},[h.value?(_(),i(x(O),{key:0,ref_key:`modalCropperRef`,ref:F,img:h.value,"output-size":d.outputQuality,"output-type":R.value,"can-scale":!1,"auto-crop":!0,"auto-crop-width":H.value.width,"auto-crop-height":H.value.height,fixed:B.value,"fixed-number":V.value,"center-box":!0,info:!0,"info-true":!0,"can-move":!d.disabled&&!b.value&&!T.value,"can-move-box":!d.disabled&&!b.value&&!T.value,"fixed-box":d.disabled||b.value||T.value,original:!1,high:!0,full:!1,mode:`contain`,onRealTime:G,onImgLoad:K},null,8,[`img`,`output-size`,`output-type`,`auto-crop-width`,`auto-crop-height`,`fixed`,`fixed-number`,`can-move`,`can-move-box`,`fixed-box`])):(_(),o(`div`,ae,[l(e,{name:`mdi:image-plus-outline`,style:{"font-size":`48px`,opacity:`0.3`}}),n[1]||=s(`span`,null,`请选择图片`,-1)]))],4),d.showPreview&&h.value?(_(),o(`div`,oe,[l(z,{"preview-data":D.value,circular:d.circular},null,8,[`preview-data`,`circular`])])):a(`v-if`,!0)])])]),_:1},8,[`show`,`title`])):(_(),o(`div`,se,[s(`div`,ce,[d.showToolbar?(_(),i(j,{key:0,"current-ratio":g.value,"ratio-presets":U,disabled:d.disabled||T.value||b.value||!E.value,onRatio:J,onRotate:q,onFlipX:Q,onFlipY:$,onZoom:x(W).zoom,onReset:Y},null,8,[`current-ratio`,`disabled`,`onZoom`])):a(`v-if`,!0),s(`div`,le,[s(`div`,{class:`c-image-cropper__canvas`,style:p({height:L.value})},[h.value?(_(),i(x(O),{key:0,ref_key:`inlineCropperRef`,ref:P,img:h.value,"output-size":d.outputQuality,"output-type":R.value,"can-scale":!1,"auto-crop":!0,"auto-crop-width":H.value.width,"auto-crop-height":H.value.height,fixed:B.value,"fixed-number":V.value,"center-box":!0,info:!0,"info-true":!0,"can-move":!d.disabled&&!b.value&&!T.value,"can-move-box":!d.disabled&&!b.value&&!T.value,"fixed-box":d.disabled||b.value||T.value,original:!1,high:!0,full:!1,mode:`contain`,onRealTime:G,onImgLoad:K},null,8,[`img`,`output-size`,`output-type`,`auto-crop-width`,`auto-crop-height`,`fixed`,`fixed-number`,`can-move`,`can-move-box`,`fixed-box`])):(_(),o(`div`,ue,[l(e,{name:`mdi:image-plus-outline`,style:{"font-size":`48px`,opacity:`0.3`}}),n[4]||=s(`span`,null,`请选择图片`,-1)]))],4),d.showPreview&&h.value?(_(),o(`div`,de,[l(z,{"preview-data":D.value,circular:d.circular},null,8,[`preview-data`,`circular`])])):a(`v-if`,!0)])])]))}}),[[`__scopeId`,`data-v-d074fd81`]]);export{k as n,B as t};