foucui 2.3.9 → 2.3.10

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.
@@ -1,4 +1,4 @@
1
- (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("vue"),require("@iconify/vue"),require("@vueuse/core"),require("sortablejs"),require("lunar-javascript"),require("vue-router"),require("html2canvas"),require("jspdf"),require("lodash-es")):typeof define==`function`&&define.amd?define([`exports`,`vue`,`@iconify/vue`,`@vueuse/core`,`sortablejs`,`lunar-javascript`,`vue-router`,`html2canvas`,`jspdf`,`lodash-es`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.Foucui={},e.Vue,e.IconifyVue,e.VueUse,e.Sortable,e.lunarJavascript,e.VueRouter,e.html2canvas,e.jspdf,e.lodashEs))})(this,function(e,t,n,r,i,a,o,s,c,l){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var u=Object.create,d=Object.defineProperty,f=Object.getOwnPropertyDescriptor,p=Object.getOwnPropertyNames,m=Object.getPrototypeOf,h=Object.prototype.hasOwnProperty,g=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(e){throw n=[e],e}},_=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),v=(e,t)=>{let n={};for(var r in e)d(n,r,{get:e[r],enumerable:!0});return t||d(n,Symbol.toStringTag,{value:`Module`}),n},y=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=p(t),a=0,o=i.length,s;a<o;a++)s=i[a],!h.call(e,s)&&s!==n&&d(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=f(t,s))||r.enumerable});return e},b=(e,t,n)=>(n=e==null?{}:u(m(e)),y(t||!e||!e.__esModule||!h.call(e,`default`)?d(n,`default`,{value:e,enumerable:!0}):n,e));i=b(i,1),s=b(s,1);var x=(0,t.defineComponent)({name:`FouAffix`,__name:`index`,props:{offset:{default:0},position:{default:`top`},zIndex:{default:100},target:{default:``}},emits:[`change`,`scroll`],setup(e,{expose:n,emit:r}){let i=e,a=r,o=(0,t.ref)(null),s=(0,t.ref)(null),c=(0,t.ref)(!1),l=(0,t.ref)(0),u=(0,t.computed)(()=>!!i.target),d=()=>i.target&&document.querySelector(i.target)||window,f=()=>{if(u.value)return;let e=o.value,t=s.value;if(!e||!t)return;let n=d(),r=e.getBoundingClientRect();l.value=t.offsetHeight;let f=!1;if(i.position===`top`){if(n===window)f=r.top<=i.offset;else{let e=n.getBoundingClientRect().top;f=r.top<=e+i.offset}}else if(n===window)f=r.bottom>=window.innerHeight-i.offset;else{let e=n.getBoundingClientRect().bottom;f=r.bottom>=e-i.offset}f!==c.value&&(c.value=f,a(`change`,f));let p=n===window?window.scrollY||document.documentElement.scrollTop:n.scrollTop;a(`scroll`,{scrollTop:p,fixed:c.value})},p=(0,t.computed)(()=>{if(u.value)return{position:`sticky`,zIndex:String(i.zIndex),...i.position===`top`?{top:`${i.offset}px`}:{bottom:`${i.offset}px`}};if(!c.value)return;let e=d(),t={position:`fixed`,zIndex:String(i.zIndex),width:`${o.value?.offsetWidth??0}px`};if(i.position===`top`?t.top=`${e===window?i.offset:e.getBoundingClientRect().top+i.offset}px`:t.bottom=`${e===window?i.offset:window.innerHeight-e.getBoundingClientRect().bottom+i.offset}px`,e!==window){let n=e.getBoundingClientRect();t.left=`${n.left}px`,t.width=`${n.width}px`}else o.value&&(t.left=`${o.value.getBoundingClientRect().left}px`);return t}),m=window,h=()=>f(),g=()=>f(),_=()=>{m.removeEventListener(`scroll`,h),window.removeEventListener(`resize`,g),!u.value&&(m=d(),m.addEventListener(`scroll`,h,{passive:!0}),window.addEventListener(`resize`,g,{passive:!0}),f())};return(0,t.onMounted)(()=>{(0,t.nextTick)(_)}),(0,t.onBeforeUnmount)(()=>{m.removeEventListener(`scroll`,h),window.removeEventListener(`resize`,g)}),(0,t.watch)(()=>[i.target,i.offset,i.position],()=>(0,t.nextTick)(_)),n({update:f}),(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{ref_key:`rootRef`,ref:o,class:`fou-affix`},[(0,t.unref)(c)&&!(0,t.unref)(u)?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:`fou-affix__placeholder`,style:(0,t.normalizeStyle)({height:`${(0,t.unref)(l)}px`})},null,4)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,{ref_key:`affixRef`,ref:s,class:(0,t.normalizeClass)([`fou-affix__content`,{"is-fixed":(0,t.unref)(c)&&!(0,t.unref)(u),"is-sticky":(0,t.unref)(u)}]),style:(0,t.normalizeStyle)((0,t.unref)(p))},[(0,t.renderSlot)(e.$slots,`default`,{},void 0,!0)],6)],512))}}),S=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},C=v({default:()=>w}),w=S(x,[[`__scopeId`,`data-v-5e1b1c7a`]]),T=[`viewBox`],E=[`href`,`xlink:href`],D=(0,t.defineComponent)({name:`FouIcon`,__name:`index`,props:{icon:{default:``},isCustomSvg:{type:Boolean,default:!1},keepColor:{type:Boolean,default:!1},viewBox:{default:``}},emits:[`click`],setup(e,{emit:r}){let i=e,a=r,o=(0,t.computed)(()=>String(i.icon||``).trim()),s=(0,t.computed)(()=>{let e=o.value;return!!e&&e.includes(`:`)&&!e.startsWith(`http`)&&!i.isCustomSvg}),c=(0,t.computed)(()=>o.value),l=(0,t.computed)(()=>{let e=o.value;return e?e.startsWith(`ri-`)?e:`ri-${e}`:``}),u=(0,t.computed)(()=>`#fou-icon-${o.value}`),d=e=>a(`click`,e);return(r,i)=>(0,t.unref)(s)?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:0,"aria-hidden":`true`,class:`fou-icon fou-icon--iconify`,onClick:d},[(0,t.createVNode)((0,t.unref)(n.Icon),{icon:(0,t.unref)(c),width:`1em`,height:`1em`},null,8,[`icon`])])):e.isCustomSvg?((0,t.openBlock)(),(0,t.createElementBlock)(`svg`,{key:1,"aria-hidden":`true`,class:(0,t.normalizeClass)([`fou-icon fou-icon--svg`,{"is-keep-color":e.keepColor}]),viewBox:e.viewBox||void 0,onClick:d},[(0,t.createElementVNode)(`use`,{href:(0,t.unref)(u),"xlink:href":(0,t.unref)(u)},null,8,E)],10,T)):((0,t.openBlock)(),(0,t.createElementBlock)(`i`,{key:2,"aria-hidden":`true`,class:(0,t.normalizeClass)([`fou-icon`,(0,t.unref)(l)]),onClick:d},null,2))}}),O=v({default:()=>k}),k=S(D,[[`__scopeId`,`data-v-6e9a21f1`]]),A={class:`fou-alert__content`},j={key:0,class:`fou-alert__title`},M={key:1,class:`fou-alert__description`},N=[`aria-label`],P={key:0},F=(0,t.defineComponent)({name:`FouAlert`,__name:`index`,props:{title:{type:String,default:``},description:{type:String,default:``},type:{type:String,default:`info`},closable:{type:Boolean,default:!1},closeText:{type:String,default:``},showIcon:{type:Boolean,default:!1},center:{type:Boolean,default:!1},effect:{type:String,default:`light`}},emits:[`close`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.ref)(!0),o=(0,t.computed)(()=>r.type===`danger`?`error`:r.type),s=(0,t.computed)(()=>{let e={success:`checkbox-circle-line`,warning:`error-warning-line`,info:`information-line`,error:`close-circle-line`};return e[o.value]||e.info}),c=()=>{a.value=!1,i(`close`)};return(n,r)=>{let i=k;return(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createElementBlock)(`div`,(0,t.mergeProps)({class:[`fou-alert`,[`fou-alert--${(0,t.unref)(o)}`,`fou-alert--${e.effect}`,{"is-center":e.center}]],role:`alert`},n.$attrs),[e.showIcon?((0,t.openBlock)(),(0,t.createBlock)(i,{key:0,class:`fou-alert__icon`,icon:(0,t.unref)(s)},null,8,[`icon`])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,A,[e.title||n.$slots.title?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,j,[(0,t.renderSlot)(n.$slots,`title`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.title),1)],!0)])):(0,t.createCommentVNode)(``,!0),n.$slots.default||e.description?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,M,[(0,t.renderSlot)(n.$slots,`default`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.description),1)],!0)])):(0,t.createCommentVNode)(``,!0)]),e.closable?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:1,type:`button`,class:`fou-alert__close`,"aria-label":e.closeText||`Close`,onClick:c},[e.closeText?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,P,(0,t.toDisplayString)(e.closeText),1)):((0,t.openBlock)(),(0,t.createBlock)(i,{key:1,icon:`close-line`}))],8,N)):(0,t.createCommentVNode)(``,!0)],16)),[[t.vShow,(0,t.unref)(a)]])}}}),I=v({default:()=>L}),L=S(F,[[`__scopeId`,`data-v-d361a653`]]),R=Symbol(`FouAnchor`),ee={class:`fou-anchor`},z=(0,t.defineComponent)({name:`FouAnchor`,__name:`index`,props:{offset:{default:0},bound:{default:``}},setup(e){let n=e,r=(0,t.ref)([]),i=(0,t.ref)(``),a=e=>{let t=window.getComputedStyle(e);return/(auto|scroll)/.test(t.overflow+t.overflowY+t.overflowX)},o=e=>{let t=e.parentElement;for(;t;){if(a(t))return t;t=t.parentElement}return window},s=e=>{if(n.bound){let e=document.querySelector(n.bound);if(e)return e}return e?o(e):window},c=e=>e===window?window.scrollY||document.documentElement.scrollTop:e.scrollTop,l=e=>{let t=e.replace(/^#/,``),r=document.getElementById(t)||document.querySelector(e);if(!r){console.warn(`[FouAnchor] 未找到目标锚点: ${e}`);return}let a=s(r);if(a===window){let e=r.getBoundingClientRect().top+c(window)-n.offset;window.scrollTo({top:e,behavior:`smooth`})}else{let e=a,t=e.getBoundingClientRect(),i=r.getBoundingClientRect().top-t.top+e.scrollTop-n.offset;e.scrollTo({top:i,behavior:`smooth`})}i.value=e;try{e.startsWith(`#`)&&history.replaceState(null,``,e)}catch{}},u=e=>{let t=r.value.findIndex(t=>t.href===e.href);t>=0?r.value[t]=e:r.value.push(e),r.value.sort((e,t)=>{let n=document.querySelector(e.href),r=document.querySelector(t.href);return!n||!r?0:n.getBoundingClientRect().top-r.getBoundingClientRect().top})},d=e=>{r.value=r.value.filter(t=>t.href!==e)},f=()=>{if(n.bound)return document.querySelector(n.bound)||window;for(let e of r.value){let t=document.querySelector(e.href);if(t)return o(t)}return window},p=()=>{let e=f(),t=c(e),a=e===window?0:e.getBoundingClientRect().top,o=``;for(let i of r.value){let r=i.href.replace(/^#/,``),s=document.getElementById(r);s&&(e===window?s.getBoundingClientRect().top+t:s.getBoundingClientRect().top-a+t)-n.offset<=t+1&&(o=i.href)}o&&(i.value=o)};(0,t.provide)(R,{offset:(0,t.toRef)(n,`offset`),bound:(0,t.toRef)(n,`bound`),activeLink:i,registerLink:u,unregisterLink:d,scrollToLink:l});let m=window,h=()=>p(),g=()=>{let e=f();e!==m&&(m.removeEventListener(`scroll`,h),m=e,m.addEventListener(`scroll`,h,{passive:!0}))};return(0,t.onMounted)(()=>{m=f(),m.addEventListener(`scroll`,h,{passive:!0}),p()}),(0,t.onBeforeUnmount)(()=>{m.removeEventListener(`scroll`,h)}),(0,t.watch)(()=>n.bound,()=>{g(),p()}),(0,t.watch)(()=>r.value.map(e=>e.href).join(`,`),()=>{g(),p()},{flush:`post`}),(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ee,[(0,t.renderSlot)(e.$slots,`default`,{},void 0,!0)]))}}),B=v({default:()=>V}),V=S(z,[[`__scopeId`,`data-v-2d49b1d6`]]),H=[`href`],te=(0,t.defineComponent)({name:`FouAnchorLink`,__name:`index`,props:{href:{},title:{default:``}},setup(e){let n=e,r=(0,t.inject)(R,null),i=(0,t.ref)(null),a=(0,t.computed)(()=>r?.activeLink.value===n.href),o=()=>{r?.scrollToLink(n.href)};return(0,t.onMounted)(()=>{r?.registerLink({href:n.href,title:n.title,el:i.value})}),(0,t.onBeforeUnmount)(()=>{r?.unregisterLink(n.href)}),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`a`,{class:(0,t.normalizeClass)([`fou-anchor-link`,{"is-active":(0,t.unref)(a)}]),href:e.href,onClick:(0,t.withModifiers)(o,[`prevent`])},[(0,t.renderSlot)(n.$slots,`default`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.title),1)],!0)],10,H))}}),ne=v({default:()=>re}),re=S(te,[[`__scopeId`,`data-v-803a01fc`]]),U=(0,t.defineComponent)({name:`FouApp`,__name:`index`,setup(e){return(e,n)=>{let r=(0,t.resolveComponent)(`router-view`);return(0,t.openBlock)(),(0,t.createBlock)(r)}}}),ie=v({default:()=>ae}),ae=U;function W(e,t){return e[t.value??`value`]}function oe(e,t){return String(e[t.label??`label`]??``)}function se(e,t){let n=e[t.children??`children`];return Array.isArray(n)?n:void 0}function ce(e,t){return!!e[t.disabled??`disabled`]}var G=2e3;function le(e=2e3){return G=Math.max(G,e)+1,G}var ue=[`onKeydown`],K={key:0,class:`fou-cascader__tags`},de={class:`fou-cascader__tag-text`},fe=[`onClick`],q={key:0,class:`fou-cascader__tag is-collapse`},pe={class:`fou-cascader__suffix`},me={key:0,class:`fou-cascader__filter`},he=[`placeholder`],ge={key:1,class:`fou-cascader__suggestions`},_e=[`onClick`],ve={key:0,class:`fou-cascader__empty`},ye={key:2,class:`fou-cascader__menus`},be=[`onClick`,`onMouseenter`],xe=[`checked`,`disabled`,`onChange`],Se={class:`fou-cascader__label`},Ce={key:1,class:`fou-cascader__arrow`},we={key:0,class:`fou-cascader__empty-item`},Te=(0,t.defineComponent)({name:`FouCascader`,__name:`index`,props:{modelValue:{default:null},options:{default:()=>[]},props:{default:()=>({})},placeholder:{default:`请选择`},clearable:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},filterable:{type:Boolean,default:!1},filterPlaceholder:{default:`输入关键字搜索`},showAllLevels:{type:Boolean,default:!0},separator:{default:` / `},collapseTags:{type:Boolean,default:!1},maxCollapseTags:{default:1},size:{default:`default`}},emits:[`update:modelValue`,`change`,`clear`,`visibleChange`,`expand-change`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.ref)(null),o=(0,t.ref)(null),s=(0,t.ref)(!1),c=(0,t.ref)(``),l=(0,t.ref)([]),u=(0,t.ref)({}),d=(0,t.computed)(()=>({value:`value`,label:`label`,children:`children`,disabled:`disabled`,multiple:!1,checkStrictly:!1,emitPath:!0,expandTrigger:`click`,...r.props})),f=(0,t.computed)(()=>!!d.value.multiple),p=(0,t.computed)(()=>!!d.value.checkStrictly),m=(0,t.computed)(()=>d.value.emitPath!==!1),h=(0,t.computed)(()=>d.value.expandTrigger||`click`),g=(0,t.computed)(()=>r.size||`default`),_=e=>!!se(e,d.value)?.length,v=(0,t.computed)(()=>{let e=[r.options||[]];for(let t of l.value){let n=se(t,d.value);if(n?.length)e.push(n);else break}return e}),y=(e,t=[])=>{let n=[];for(let r of e){let e=[...t,r],i=e.map(e=>W(e,d.value)),a=e.map(e=>oe(e,d.value)),o=e.some(e=>ce(e,d.value)),s=se(r,d.value);(!s?.length||p.value)&&n.push({option:r,path:e,pathValues:i,pathLabels:a,pathKey:i.join(`/`),disabled:o}),s?.length&&n.push(...y(s,e))}return n},b=(0,t.computed)(()=>y(r.options||[])),x=(0,t.computed)(()=>{let e=c.value.trim().toLowerCase();return e?b.value.filter(t=>t.pathLabels.some(t=>t.toLowerCase().includes(e))):[]}),S=e=>e==null||e===``?[]:Array.isArray(e)?!e.length||Array.isArray(e[0])?[]:e:[e],C=e=>e==null||e===``?[]:Array.isArray(e)?e.length?Array.isArray(e[0])?e:e.map(e=>[e]):[]:[[e]],w=(0,t.computed)(()=>{if(f.value)return C(r.modelValue??null);let e=S(r.modelValue??null);return e.length?[e]:[]}),T=e=>{if(!e.length)return null;if(!m.value&&e.length===1)return b.value.find(t=>W(t.option,d.value)===e[0])?.path||null;let t=r.options||[],n=[];for(let r of e){let e=t.find(e=>W(e,d.value)===r);if(!e)return null;n.push(e),t=se(e,d.value)||[]}return n},E=e=>{let t=e.map(e=>W(e,d.value));return m.value?t:t[t.length-1]},D=e=>{let t=e.join(`/`),n=e[e.length-1];return w.value.some(e=>m.value?e.join(`/`)===t:e[e.length-1]===n)},O=e=>{let t=W(e,d.value);return w.value.some(e=>m.value?e[e.length-1]===t:e.includes(t)||e[e.length-1]===t)},k=(e,t)=>{let n=l.value[e];return n?W(n,d.value)===W(t,d.value):!1},A=(e,t)=>{let n=W(e,d.value);return w.value.some(e=>e[t]===n||!m.value&&e[e.length-1]===n)},j=(0,t.computed)(()=>w.value.map(e=>{let t=T(e);if(!t?.length)return{value:e[e.length-1],label:String(e[e.length-1]??``),pathValues:e};let n=t.map(e=>oe(e,d.value));return{value:W(t[t.length-1],d.value),label:r.showAllLevels?n.join(r.separator):n[n.length-1],pathValues:e}}).filter(Boolean)),M=(0,t.computed)(()=>r.collapseTags?j.value.slice(0,r.maxCollapseTags):j.value),N=(0,t.computed)(()=>r.collapseTags?Math.max(0,j.value.length-r.maxCollapseTags):0),P=(0,t.computed)(()=>{if(f.value)return``;let e=w.value;if(!e.length)return``;let t=T(e[0]);if(!t?.length)return String(e[0][e[0].length-1]??``);let n=t.map(e=>oe(e,d.value));return r.showAllLevels?n.join(r.separator):n[n.length-1]}),F=(0,t.computed)(()=>w.value.length>0),I=()=>{let e=w.value;if(!e.length){l.value=[];return}let t=T(e[0]);t?.length&&(l.value=t.slice(0,-1))},L=()=>{let e=a.value;if(!e)return;let t=e.getBoundingClientRect(),n=window.innerHeight-t.bottom,r=n<240&&t.top>n;u.value={position:`fixed`,left:`${t.left}px`,top:r?`auto`:`${t.bottom+4}px`,bottom:r?`${window.innerHeight-t.top+4}px`:`auto`,minWidth:`${Math.max(t.width,180)}px`,zIndex:String(le(2e3))}},R=()=>{r.disabled||(I(),c.value=``,L(),s.value=!0,i(`visibleChange`,!0))},ee=()=>{s.value&&(s.value=!1,c.value=``,i(`visibleChange`,!1))},z=()=>{r.disabled||(s.value?ee():R())},B=e=>{i(`update:modelValue`,e),i(`change`,e)},V=(e,t)=>{let n=l.value.slice(0,t);n[t]=e,l.value=n.slice(0,t+1),i(`expand-change`,l.value.map(e=>W(e,d.value)))},H=e=>{if(e.length){if(f.value){let t=e.map(e=>W(e,d.value)),n=t.join(`/`),r=t[t.length-1],i=w.value.some(e=>m.value?e.join(`/`)===n:e[e.length-1]===r),a=[...w.value];i?a=a.filter(e=>m.value?e.join(`/`)!==n:e[e.length-1]!==r):a.push(m.value?t:[r]);let o=m.value?a:a.map(e=>e[e.length-1]);B(o)}else B(E(e)),ee()}},te=(e,t)=>{if(ce(e,d.value))return;if(se(e,d.value)?.length){V(e,t),p.value&&!f.value&&H([...l.value.slice(0,t),e]);return}let n=[...l.value.slice(0,t),e];H(n)},ne=(e,t)=>{h.value===`hover`&&(ce(e,d.value)||_(e)&&V(e,t))},re=(e,t)=>{if(ce(e,d.value))return;let n=[...l.value.slice(0,t),e];!p.value&&_(e)||(H(n),f.value||ee())},U=e=>{H(e.path)},ie=e=>{let t=w.value.filter(t=>t[t.length-1]!==e),n=m.value?t:t.map(e=>e[e.length-1]);B(t.length?n:null)},ae=()=>{B(null),i(`clear`),l.value=[]},G=e=>{let t=e.target;a.value?.contains(t)||o.value?.contains(t)||ee()},Te=()=>{s.value&&L()};return(0,t.onMounted)(()=>{document.addEventListener(`mousedown`,G),window.addEventListener(`resize`,Te),window.addEventListener(`scroll`,Te,!0)}),(0,t.onUnmounted)(()=>{document.removeEventListener(`mousedown`,G),window.removeEventListener(`resize`,Te),window.removeEventListener(`scroll`,Te,!0)}),(0,t.watch)(()=>r.modelValue,()=>{s.value||I()}),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{ref_key:`rootRef`,ref:a,class:(0,t.normalizeClass)([`fou-cascader`,[`fou-cascader--${(0,t.unref)(g)}`,{"is-disabled":e.disabled,"is-focused":(0,t.unref)(s),"is-multiple":(0,t.unref)(f)}]])},[(0,t.createElementVNode)(`div`,{class:`fou-cascader__wrapper`,tabindex:`0`,onClick:z,onKeydown:[(0,t.withKeys)((0,t.withModifiers)(z,[`prevent`]),[`enter`]),(0,t.withKeys)((0,t.withModifiers)(z,[`prevent`]),[`space`]),(0,t.withKeys)(ee,[`esc`]),(0,t.withKeys)((0,t.withModifiers)(R,[`prevent`]),[`down`])]},[(0,t.unref)(f)&&(0,t.unref)(j).length?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,K,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(M),e=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:String(e.value),class:`fou-cascader__tag`},[(0,t.createElementVNode)(`span`,de,(0,t.toDisplayString)(e.label),1),(0,t.createElementVNode)(`button`,{type:`button`,class:`fou-cascader__tag-close`,tabindex:`-1`,onMousedown:r[0]||=(0,t.withModifiers)(()=>{},[`prevent`]),onClick:(0,t.withModifiers)(t=>ie(e.value),[`stop`])},` × `,40,fe)]))),128)),(0,t.unref)(N)>0?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,q,` +`+(0,t.toDisplayString)((0,t.unref)(N)),1)):(0,t.createCommentVNode)(``,!0)])):((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:1,class:(0,t.normalizeClass)([`fou-cascader__selected`,{"is-placeholder":!(0,t.unref)(P)}])},(0,t.toDisplayString)((0,t.unref)(P)||e.placeholder),3)),(0,t.createElementVNode)(`span`,pe,[e.clearable&&(0,t.unref)(F)&&!e.disabled?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:0,type:`button`,class:`fou-cascader__clear`,tabindex:`-1`,onMousedown:r[1]||=(0,t.withModifiers)(()=>{},[`prevent`]),onClick:(0,t.withModifiers)(ae,[`stop`])},` × `,32)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`span`,{class:(0,t.normalizeClass)([`fou-cascader__caret`,{"is-open":(0,t.unref)(s)}])},`▾`,2)])],40,ue),((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:`body`},[(0,t.createVNode)(t.Transition,{name:`fou-cascader-fade`},{default:(0,t.withCtx)(()=>[(0,t.withDirectives)((0,t.createElementVNode)(`div`,{ref_key:`panelRef`,ref:o,class:`fou-cascader__dropdown`,style:(0,t.normalizeStyle)((0,t.unref)(u)),onMousedown:r[5]||=(0,t.withModifiers)(()=>{},[`prevent`])},[e.filterable?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,me,[(0,t.withDirectives)((0,t.createElementVNode)(`input`,{"onUpdate:modelValue":r[2]||=e=>(0,t.isRef)(c)?c.value=e:null,class:`fou-cascader__filter-input`,placeholder:e.filterPlaceholder,onClick:r[3]||=(0,t.withModifiers)(()=>{},[`stop`])},null,8,he),[[t.vModelText,(0,t.unref)(c)]])])):(0,t.createCommentVNode)(``,!0),(0,t.unref)(c).trim()?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ge,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(x),n=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:n.pathKey,class:(0,t.normalizeClass)([`fou-cascader__suggestion`,{"is-selected":D(n.pathValues),"is-disabled":n.disabled}]),onClick:e=>!n.disabled&&U(n)},(0,t.toDisplayString)(n.pathLabels.join(e.separator)),11,_e))),128)),(0,t.unref)(x).length?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ve,`无匹配数据`))])):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ye,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(v),(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`ul`,{key:n,class:`fou-cascader__menu`},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`li`,{key:String((0,t.unref)(W)(e,(0,t.unref)(d))),class:(0,t.normalizeClass)([`fou-cascader__node`,{"is-active":k(n,e),"is-selected":A(e,n),"is-disabled":(0,t.unref)(ce)(e,(0,t.unref)(d))}]),onClick:t=>te(e,n),onMouseenter:t=>ne(e,n)},[(0,t.unref)(f)||(0,t.unref)(p)?((0,t.openBlock)(),(0,t.createElementBlock)(`label`,{key:0,class:`fou-cascader__check`,onClick:r[4]||=(0,t.withModifiers)(()=>{},[`stop`])},[(0,t.createElementVNode)(`input`,{type:`checkbox`,checked:O(e),disabled:(0,t.unref)(ce)(e,(0,t.unref)(d))||!(0,t.unref)(p)&&_(e),onChange:t=>re(e,n)},null,40,xe)])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`span`,Se,(0,t.toDisplayString)((0,t.unref)(oe)(e,(0,t.unref)(d))),1),_(e)?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Ce,`›`)):(0,t.createCommentVNode)(``,!0)],42,be))),128)),e.length?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createElementBlock)(`li`,we,`无数据`))]))),128))]))],36),[[t.vShow,(0,t.unref)(s)]])]),_:1})]))],2))}}),Ee=v({default:()=>De}),De=S(Te,[[`__scopeId`,`data-v-cfa5853b`]]),Oe=JSON.parse(`[{"code":"11","name":"北京市","children":[{"code":"1101","name":"市辖区","children":[{"code":"110101","name":"东城区"},{"code":"110102","name":"西城区"},{"code":"110105","name":"朝阳区"},{"code":"110106","name":"丰台区"},{"code":"110107","name":"石景山区"},{"code":"110108","name":"海淀区"},{"code":"110109","name":"门头沟区"},{"code":"110111","name":"房山区"},{"code":"110112","name":"通州区"},{"code":"110113","name":"顺义区"},{"code":"110114","name":"昌平区"},{"code":"110115","name":"大兴区"},{"code":"110116","name":"怀柔区"},{"code":"110117","name":"平谷区"},{"code":"110118","name":"密云区"},{"code":"110119","name":"延庆区"}]}]},{"code":"12","name":"天津市","children":[{"code":"1201","name":"市辖区","children":[{"code":"120101","name":"和平区"},{"code":"120102","name":"河东区"},{"code":"120103","name":"河西区"},{"code":"120104","name":"南开区"},{"code":"120105","name":"河北区"},{"code":"120106","name":"红桥区"},{"code":"120110","name":"东丽区"},{"code":"120111","name":"西青区"},{"code":"120112","name":"津南区"},{"code":"120113","name":"北辰区"},{"code":"120114","name":"武清区"},{"code":"120115","name":"宝坻区"},{"code":"120116","name":"滨海新区"},{"code":"120117","name":"宁河区"},{"code":"120118","name":"静海区"},{"code":"120119","name":"蓟州区"}]}]},{"code":"13","name":"河北省","children":[{"code":"1301","name":"石家庄市","children":[{"code":"130102","name":"长安区"},{"code":"130104","name":"桥西区"},{"code":"130105","name":"新华区"},{"code":"130107","name":"井陉矿区"},{"code":"130108","name":"裕华区"},{"code":"130109","name":"藁城区"},{"code":"130110","name":"鹿泉区"},{"code":"130111","name":"栾城区"},{"code":"130121","name":"井陉县"},{"code":"130123","name":"正定县"},{"code":"130125","name":"行唐县"},{"code":"130126","name":"灵寿县"},{"code":"130127","name":"高邑县"},{"code":"130128","name":"深泽县"},{"code":"130129","name":"赞皇县"},{"code":"130130","name":"无极县"},{"code":"130131","name":"平山县"},{"code":"130132","name":"元氏县"},{"code":"130133","name":"赵县"},{"code":"130171","name":"石家庄高新技术产业开发区"},{"code":"130172","name":"石家庄循环化工园区"},{"code":"130181","name":"辛集市"},{"code":"130183","name":"晋州市"},{"code":"130184","name":"新乐市"}]},{"code":"1302","name":"唐山市","children":[{"code":"130202","name":"路南区"},{"code":"130203","name":"路北区"},{"code":"130204","name":"古冶区"},{"code":"130205","name":"开平区"},{"code":"130207","name":"丰南区"},{"code":"130208","name":"丰润区"},{"code":"130209","name":"曹妃甸区"},{"code":"130224","name":"滦南县"},{"code":"130225","name":"乐亭县"},{"code":"130227","name":"迁西县"},{"code":"130229","name":"玉田县"},{"code":"130271","name":"河北唐山芦台经济开发区"},{"code":"130272","name":"唐山市汉沽管理区"},{"code":"130273","name":"唐山高新技术产业开发区"},{"code":"130274","name":"河北唐山海港经济开发区"},{"code":"130281","name":"遵化市"},{"code":"130283","name":"迁安市"},{"code":"130284","name":"滦州市"}]},{"code":"1303","name":"秦皇岛市","children":[{"code":"130302","name":"海港区"},{"code":"130303","name":"山海关区"},{"code":"130304","name":"北戴河区"},{"code":"130306","name":"抚宁区"},{"code":"130321","name":"青龙满族自治县"},{"code":"130322","name":"昌黎县"},{"code":"130324","name":"卢龙县"},{"code":"130371","name":"秦皇岛市经济技术开发区"},{"code":"130372","name":"北戴河新区"}]},{"code":"1304","name":"邯郸市","children":[{"code":"130402","name":"邯山区"},{"code":"130403","name":"丛台区"},{"code":"130404","name":"复兴区"},{"code":"130406","name":"峰峰矿区"},{"code":"130407","name":"肥乡区"},{"code":"130408","name":"永年区"},{"code":"130423","name":"临漳县"},{"code":"130424","name":"成安县"},{"code":"130425","name":"大名县"},{"code":"130426","name":"涉县"},{"code":"130427","name":"磁县"},{"code":"130430","name":"邱县"},{"code":"130431","name":"鸡泽县"},{"code":"130432","name":"广平县"},{"code":"130433","name":"馆陶县"},{"code":"130434","name":"魏县"},{"code":"130435","name":"曲周县"},{"code":"130471","name":"邯郸经济技术开发区"},{"code":"130473","name":"邯郸冀南新区"},{"code":"130481","name":"武安市"}]},{"code":"1305","name":"邢台市","children":[{"code":"130502","name":"襄都区"},{"code":"130503","name":"信都区"},{"code":"130505","name":"任泽区"},{"code":"130506","name":"南和区"},{"code":"130522","name":"临城县"},{"code":"130523","name":"内丘县"},{"code":"130524","name":"柏乡县"},{"code":"130525","name":"隆尧县"},{"code":"130528","name":"宁晋县"},{"code":"130529","name":"巨鹿县"},{"code":"130530","name":"新河县"},{"code":"130531","name":"广宗县"},{"code":"130532","name":"平乡县"},{"code":"130533","name":"威县"},{"code":"130534","name":"清河县"},{"code":"130535","name":"临西县"},{"code":"130571","name":"河北邢台经济开发区"},{"code":"130581","name":"南宫市"},{"code":"130582","name":"沙河市"}]},{"code":"1306","name":"保定市","children":[{"code":"130602","name":"竞秀区"},{"code":"130606","name":"莲池区"},{"code":"130607","name":"满城区"},{"code":"130608","name":"清苑区"},{"code":"130609","name":"徐水区"},{"code":"130623","name":"涞水县"},{"code":"130624","name":"阜平县"},{"code":"130626","name":"定兴县"},{"code":"130627","name":"唐县"},{"code":"130628","name":"高阳县"},{"code":"130629","name":"容城县"},{"code":"130630","name":"涞源县"},{"code":"130631","name":"望都县"},{"code":"130632","name":"安新县"},{"code":"130633","name":"易县"},{"code":"130634","name":"曲阳县"},{"code":"130635","name":"蠡县"},{"code":"130636","name":"顺平县"},{"code":"130637","name":"博野县"},{"code":"130638","name":"雄县"},{"code":"130671","name":"保定高新技术产业开发区"},{"code":"130672","name":"保定白沟新城"},{"code":"130681","name":"涿州市"},{"code":"130682","name":"定州市"},{"code":"130683","name":"安国市"},{"code":"130684","name":"高碑店市"}]},{"code":"1307","name":"张家口市","children":[{"code":"130702","name":"桥东区"},{"code":"130703","name":"桥西区"},{"code":"130705","name":"宣化区"},{"code":"130706","name":"下花园区"},{"code":"130708","name":"万全区"},{"code":"130709","name":"崇礼区"},{"code":"130722","name":"张北县"},{"code":"130723","name":"康保县"},{"code":"130724","name":"沽源县"},{"code":"130725","name":"尚义县"},{"code":"130726","name":"蔚县"},{"code":"130727","name":"阳原县"},{"code":"130728","name":"怀安县"},{"code":"130730","name":"怀来县"},{"code":"130731","name":"涿鹿县"},{"code":"130732","name":"赤城县"},{"code":"130771","name":"张家口经济开发区"},{"code":"130772","name":"张家口市察北管理区"},{"code":"130773","name":"张家口市塞北管理区"}]},{"code":"1308","name":"承德市","children":[{"code":"130802","name":"双桥区"},{"code":"130803","name":"双滦区"},{"code":"130804","name":"鹰手营子矿区"},{"code":"130821","name":"承德县"},{"code":"130822","name":"兴隆县"},{"code":"130824","name":"滦平县"},{"code":"130825","name":"隆化县"},{"code":"130826","name":"丰宁满族自治县"},{"code":"130827","name":"宽城满族自治县"},{"code":"130828","name":"围场满族蒙古族自治县"},{"code":"130871","name":"承德高新技术产业开发区"},{"code":"130881","name":"平泉市"}]},{"code":"1309","name":"沧州市","children":[{"code":"130902","name":"新华区"},{"code":"130903","name":"运河区"},{"code":"130921","name":"沧县"},{"code":"130922","name":"青县"},{"code":"130923","name":"东光县"},{"code":"130924","name":"海兴县"},{"code":"130925","name":"盐山县"},{"code":"130926","name":"肃宁县"},{"code":"130927","name":"南皮县"},{"code":"130928","name":"吴桥县"},{"code":"130929","name":"献县"},{"code":"130930","name":"孟村回族自治县"},{"code":"130971","name":"河北沧州经济开发区"},{"code":"130972","name":"沧州高新技术产业开发区"},{"code":"130973","name":"沧州渤海新区"},{"code":"130981","name":"泊头市"},{"code":"130982","name":"任丘市"},{"code":"130983","name":"黄骅市"},{"code":"130984","name":"河间市"}]},{"code":"1310","name":"廊坊市","children":[{"code":"131002","name":"安次区"},{"code":"131003","name":"广阳区"},{"code":"131022","name":"固安县"},{"code":"131023","name":"永清县"},{"code":"131024","name":"香河县"},{"code":"131025","name":"大城县"},{"code":"131026","name":"文安县"},{"code":"131028","name":"大厂回族自治县"},{"code":"131071","name":"廊坊经济技术开发区"},{"code":"131081","name":"霸州市"},{"code":"131082","name":"三河市"}]},{"code":"1311","name":"衡水市","children":[{"code":"131102","name":"桃城区"},{"code":"131103","name":"冀州区"},{"code":"131121","name":"枣强县"},{"code":"131122","name":"武邑县"},{"code":"131123","name":"武强县"},{"code":"131124","name":"饶阳县"},{"code":"131125","name":"安平县"},{"code":"131126","name":"故城县"},{"code":"131127","name":"景县"},{"code":"131128","name":"阜城县"},{"code":"131171","name":"河北衡水高新技术产业开发区"},{"code":"131172","name":"衡水滨湖新区"},{"code":"131182","name":"深州市"}]}]},{"code":"14","name":"山西省","children":[{"code":"1401","name":"太原市","children":[{"code":"140105","name":"小店区"},{"code":"140106","name":"迎泽区"},{"code":"140107","name":"杏花岭区"},{"code":"140108","name":"尖草坪区"},{"code":"140109","name":"万柏林区"},{"code":"140110","name":"晋源区"},{"code":"140121","name":"清徐县"},{"code":"140122","name":"阳曲县"},{"code":"140123","name":"娄烦县"},{"code":"140171","name":"山西转型综合改革示范区"},{"code":"140181","name":"古交市"}]},{"code":"1402","name":"大同市","children":[{"code":"140212","name":"新荣区"},{"code":"140213","name":"平城区"},{"code":"140214","name":"云冈区"},{"code":"140215","name":"云州区"},{"code":"140221","name":"阳高县"},{"code":"140222","name":"天镇县"},{"code":"140223","name":"广灵县"},{"code":"140224","name":"灵丘县"},{"code":"140225","name":"浑源县"},{"code":"140226","name":"左云县"},{"code":"140271","name":"山西大同经济开发区"}]},{"code":"1403","name":"阳泉市","children":[{"code":"140302","name":"城区"},{"code":"140303","name":"矿区"},{"code":"140311","name":"郊区"},{"code":"140321","name":"平定县"},{"code":"140322","name":"盂县"}]},{"code":"1404","name":"长治市","children":[{"code":"140403","name":"潞州区"},{"code":"140404","name":"上党区"},{"code":"140405","name":"屯留区"},{"code":"140406","name":"潞城区"},{"code":"140423","name":"襄垣县"},{"code":"140425","name":"平顺县"},{"code":"140426","name":"黎城县"},{"code":"140427","name":"壶关县"},{"code":"140428","name":"长子县"},{"code":"140429","name":"武乡县"},{"code":"140430","name":"沁县"},{"code":"140431","name":"沁源县"}]},{"code":"1405","name":"晋城市","children":[{"code":"140502","name":"城区"},{"code":"140521","name":"沁水县"},{"code":"140522","name":"阳城县"},{"code":"140524","name":"陵川县"},{"code":"140525","name":"泽州县"},{"code":"140581","name":"高平市"}]},{"code":"1406","name":"朔州市","children":[{"code":"140602","name":"朔城区"},{"code":"140603","name":"平鲁区"},{"code":"140621","name":"山阴县"},{"code":"140622","name":"应县"},{"code":"140623","name":"右玉县"},{"code":"140671","name":"山西朔州经济开发区"},{"code":"140681","name":"怀仁市"}]},{"code":"1407","name":"晋中市","children":[{"code":"140702","name":"榆次区"},{"code":"140703","name":"太谷区"},{"code":"140721","name":"榆社县"},{"code":"140722","name":"左权县"},{"code":"140723","name":"和顺县"},{"code":"140724","name":"昔阳县"},{"code":"140725","name":"寿阳县"},{"code":"140727","name":"祁县"},{"code":"140728","name":"平遥县"},{"code":"140729","name":"灵石县"},{"code":"140781","name":"介休市"}]},{"code":"1408","name":"运城市","children":[{"code":"140802","name":"盐湖区"},{"code":"140821","name":"临猗县"},{"code":"140822","name":"万荣县"},{"code":"140823","name":"闻喜县"},{"code":"140824","name":"稷山县"},{"code":"140825","name":"新绛县"},{"code":"140826","name":"绛县"},{"code":"140827","name":"垣曲县"},{"code":"140828","name":"夏县"},{"code":"140829","name":"平陆县"},{"code":"140830","name":"芮城县"},{"code":"140881","name":"永济市"},{"code":"140882","name":"河津市"}]},{"code":"1409","name":"忻州市","children":[{"code":"140902","name":"忻府区"},{"code":"140921","name":"定襄县"},{"code":"140922","name":"五台县"},{"code":"140923","name":"代县"},{"code":"140924","name":"繁峙县"},{"code":"140925","name":"宁武县"},{"code":"140926","name":"静乐县"},{"code":"140927","name":"神池县"},{"code":"140928","name":"五寨县"},{"code":"140929","name":"岢岚县"},{"code":"140930","name":"河曲县"},{"code":"140931","name":"保德县"},{"code":"140932","name":"偏关县"},{"code":"140971","name":"五台山风景名胜区"},{"code":"140981","name":"原平市"}]},{"code":"1410","name":"临汾市","children":[{"code":"141002","name":"尧都区"},{"code":"141021","name":"曲沃县"},{"code":"141022","name":"翼城县"},{"code":"141023","name":"襄汾县"},{"code":"141024","name":"洪洞县"},{"code":"141025","name":"古县"},{"code":"141026","name":"安泽县"},{"code":"141027","name":"浮山县"},{"code":"141028","name":"吉县"},{"code":"141029","name":"乡宁县"},{"code":"141030","name":"大宁县"},{"code":"141031","name":"隰县"},{"code":"141032","name":"永和县"},{"code":"141033","name":"蒲县"},{"code":"141034","name":"汾西县"},{"code":"141081","name":"侯马市"},{"code":"141082","name":"霍州市"}]},{"code":"1411","name":"吕梁市","children":[{"code":"141102","name":"离石区"},{"code":"141121","name":"文水县"},{"code":"141122","name":"交城县"},{"code":"141123","name":"兴县"},{"code":"141124","name":"临县"},{"code":"141125","name":"柳林县"},{"code":"141126","name":"石楼县"},{"code":"141127","name":"岚县"},{"code":"141128","name":"方山县"},{"code":"141129","name":"中阳县"},{"code":"141130","name":"交口县"},{"code":"141181","name":"孝义市"},{"code":"141182","name":"汾阳市"}]}]},{"code":"15","name":"内蒙古自治区","children":[{"code":"1501","name":"呼和浩特市","children":[{"code":"150102","name":"新城区"},{"code":"150103","name":"回民区"},{"code":"150104","name":"玉泉区"},{"code":"150105","name":"赛罕区"},{"code":"150121","name":"土默特左旗"},{"code":"150122","name":"托克托县"},{"code":"150123","name":"和林格尔县"},{"code":"150124","name":"清水河县"},{"code":"150125","name":"武川县"},{"code":"150172","name":"呼和浩特经济技术开发区"}]},{"code":"1502","name":"包头市","children":[{"code":"150202","name":"东河区"},{"code":"150203","name":"昆都仑区"},{"code":"150204","name":"青山区"},{"code":"150205","name":"石拐区"},{"code":"150206","name":"白云鄂博矿区"},{"code":"150207","name":"九原区"},{"code":"150221","name":"土默特右旗"},{"code":"150222","name":"固阳县"},{"code":"150223","name":"达尔罕茂明安联合旗"},{"code":"150271","name":"包头稀土高新技术产业开发区"}]},{"code":"1503","name":"乌海市","children":[{"code":"150302","name":"海勃湾区"},{"code":"150303","name":"海南区"},{"code":"150304","name":"乌达区"}]},{"code":"1504","name":"赤峰市","children":[{"code":"150402","name":"红山区"},{"code":"150403","name":"元宝山区"},{"code":"150404","name":"松山区"},{"code":"150421","name":"阿鲁科尔沁旗"},{"code":"150422","name":"巴林左旗"},{"code":"150423","name":"巴林右旗"},{"code":"150424","name":"林西县"},{"code":"150425","name":"克什克腾旗"},{"code":"150426","name":"翁牛特旗"},{"code":"150428","name":"喀喇沁旗"},{"code":"150429","name":"宁城县"},{"code":"150430","name":"敖汉旗"}]},{"code":"1505","name":"通辽市","children":[{"code":"150502","name":"科尔沁区"},{"code":"150521","name":"科尔沁左翼中旗"},{"code":"150522","name":"科尔沁左翼后旗"},{"code":"150523","name":"开鲁县"},{"code":"150524","name":"库伦旗"},{"code":"150525","name":"奈曼旗"},{"code":"150526","name":"扎鲁特旗"},{"code":"150571","name":"通辽经济技术开发区"},{"code":"150581","name":"霍林郭勒市"}]},{"code":"1506","name":"鄂尔多斯市","children":[{"code":"150602","name":"东胜区"},{"code":"150603","name":"康巴什区"},{"code":"150621","name":"达拉特旗"},{"code":"150622","name":"准格尔旗"},{"code":"150623","name":"鄂托克前旗"},{"code":"150624","name":"鄂托克旗"},{"code":"150625","name":"杭锦旗"},{"code":"150626","name":"乌审旗"},{"code":"150627","name":"伊金霍洛旗"}]},{"code":"1507","name":"呼伦贝尔市","children":[{"code":"150702","name":"海拉尔区"},{"code":"150703","name":"扎赉诺尔区"},{"code":"150721","name":"阿荣旗"},{"code":"150722","name":"莫力达瓦达斡尔族自治旗"},{"code":"150723","name":"鄂伦春自治旗"},{"code":"150724","name":"鄂温克族自治旗"},{"code":"150725","name":"陈巴尔虎旗"},{"code":"150726","name":"新巴尔虎左旗"},{"code":"150727","name":"新巴尔虎右旗"},{"code":"150781","name":"满洲里市"},{"code":"150782","name":"牙克石市"},{"code":"150783","name":"扎兰屯市"},{"code":"150784","name":"额尔古纳市"},{"code":"150785","name":"根河市"}]},{"code":"1508","name":"巴彦淖尔市","children":[{"code":"150802","name":"临河区"},{"code":"150821","name":"五原县"},{"code":"150822","name":"磴口县"},{"code":"150823","name":"乌拉特前旗"},{"code":"150824","name":"乌拉特中旗"},{"code":"150825","name":"乌拉特后旗"},{"code":"150826","name":"杭锦后旗"}]},{"code":"1509","name":"乌兰察布市","children":[{"code":"150902","name":"集宁区"},{"code":"150921","name":"卓资县"},{"code":"150922","name":"化德县"},{"code":"150923","name":"商都县"},{"code":"150924","name":"兴和县"},{"code":"150925","name":"凉城县"},{"code":"150926","name":"察哈尔右翼前旗"},{"code":"150927","name":"察哈尔右翼中旗"},{"code":"150928","name":"察哈尔右翼后旗"},{"code":"150929","name":"四子王旗"},{"code":"150981","name":"丰镇市"}]},{"code":"1522","name":"兴安盟","children":[{"code":"152201","name":"乌兰浩特市"},{"code":"152202","name":"阿尔山市"},{"code":"152221","name":"科尔沁右翼前旗"},{"code":"152222","name":"科尔沁右翼中旗"},{"code":"152223","name":"扎赉特旗"},{"code":"152224","name":"突泉县"}]},{"code":"1525","name":"锡林郭勒盟","children":[{"code":"152501","name":"二连浩特市"},{"code":"152502","name":"锡林浩特市"},{"code":"152522","name":"阿巴嘎旗"},{"code":"152523","name":"苏尼特左旗"},{"code":"152524","name":"苏尼特右旗"},{"code":"152525","name":"东乌珠穆沁旗"},{"code":"152526","name":"西乌珠穆沁旗"},{"code":"152527","name":"太仆寺旗"},{"code":"152528","name":"镶黄旗"},{"code":"152529","name":"正镶白旗"},{"code":"152530","name":"正蓝旗"},{"code":"152531","name":"多伦县"},{"code":"152571","name":"乌拉盖管理区管委会"}]},{"code":"1529","name":"阿拉善盟","children":[{"code":"152921","name":"阿拉善左旗"},{"code":"152922","name":"阿拉善右旗"},{"code":"152923","name":"额济纳旗"},{"code":"152971","name":"内蒙古阿拉善高新技术产业开发区"}]}]},{"code":"21","name":"辽宁省","children":[{"code":"2101","name":"沈阳市","children":[{"code":"210102","name":"和平区"},{"code":"210103","name":"沈河区"},{"code":"210104","name":"大东区"},{"code":"210105","name":"皇姑区"},{"code":"210106","name":"铁西区"},{"code":"210111","name":"苏家屯区"},{"code":"210112","name":"浑南区"},{"code":"210113","name":"沈北新区"},{"code":"210114","name":"于洪区"},{"code":"210115","name":"辽中区"},{"code":"210123","name":"康平县"},{"code":"210124","name":"法库县"},{"code":"210181","name":"新民市"}]},{"code":"2102","name":"大连市","children":[{"code":"210202","name":"中山区"},{"code":"210203","name":"西岗区"},{"code":"210204","name":"沙河口区"},{"code":"210211","name":"甘井子区"},{"code":"210212","name":"旅顺口区"},{"code":"210213","name":"金州区"},{"code":"210214","name":"普兰店区"},{"code":"210224","name":"长海县"},{"code":"210281","name":"瓦房店市"},{"code":"210283","name":"庄河市"}]},{"code":"2103","name":"鞍山市","children":[{"code":"210302","name":"铁东区"},{"code":"210303","name":"铁西区"},{"code":"210304","name":"立山区"},{"code":"210311","name":"千山区"},{"code":"210321","name":"台安县"},{"code":"210323","name":"岫岩满族自治县"},{"code":"210381","name":"海城市"}]},{"code":"2104","name":"抚顺市","children":[{"code":"210402","name":"新抚区"},{"code":"210403","name":"东洲区"},{"code":"210404","name":"望花区"},{"code":"210411","name":"顺城区"},{"code":"210421","name":"抚顺县"},{"code":"210422","name":"新宾满族自治县"},{"code":"210423","name":"清原满族自治县"}]},{"code":"2105","name":"本溪市","children":[{"code":"210502","name":"平山区"},{"code":"210503","name":"溪湖区"},{"code":"210504","name":"明山区"},{"code":"210505","name":"南芬区"},{"code":"210521","name":"本溪满族自治县"},{"code":"210522","name":"桓仁满族自治县"}]},{"code":"2106","name":"丹东市","children":[{"code":"210602","name":"元宝区"},{"code":"210603","name":"振兴区"},{"code":"210604","name":"振安区"},{"code":"210624","name":"宽甸满族自治县"},{"code":"210681","name":"东港市"},{"code":"210682","name":"凤城市"}]},{"code":"2107","name":"锦州市","children":[{"code":"210702","name":"古塔区"},{"code":"210703","name":"凌河区"},{"code":"210711","name":"太和区"},{"code":"210726","name":"黑山县"},{"code":"210727","name":"义县"},{"code":"210781","name":"凌海市"},{"code":"210782","name":"北镇市"}]},{"code":"2108","name":"营口市","children":[{"code":"210802","name":"站前区"},{"code":"210803","name":"西市区"},{"code":"210804","name":"鲅鱼圈区"},{"code":"210811","name":"老边区"},{"code":"210881","name":"盖州市"},{"code":"210882","name":"大石桥市"}]},{"code":"2109","name":"阜新市","children":[{"code":"210902","name":"海州区"},{"code":"210903","name":"新邱区"},{"code":"210904","name":"太平区"},{"code":"210905","name":"清河门区"},{"code":"210911","name":"细河区"},{"code":"210921","name":"阜新蒙古族自治县"},{"code":"210922","name":"彰武县"}]},{"code":"2110","name":"辽阳市","children":[{"code":"211002","name":"白塔区"},{"code":"211003","name":"文圣区"},{"code":"211004","name":"宏伟区"},{"code":"211005","name":"弓长岭区"},{"code":"211011","name":"太子河区"},{"code":"211021","name":"辽阳县"},{"code":"211081","name":"灯塔市"}]},{"code":"2111","name":"盘锦市","children":[{"code":"211102","name":"双台子区"},{"code":"211103","name":"兴隆台区"},{"code":"211104","name":"大洼区"},{"code":"211122","name":"盘山县"}]},{"code":"2112","name":"铁岭市","children":[{"code":"211202","name":"银州区"},{"code":"211204","name":"清河区"},{"code":"211221","name":"铁岭县"},{"code":"211223","name":"西丰县"},{"code":"211224","name":"昌图县"},{"code":"211281","name":"调兵山市"},{"code":"211282","name":"开原市"}]},{"code":"2113","name":"朝阳市","children":[{"code":"211302","name":"双塔区"},{"code":"211303","name":"龙城区"},{"code":"211321","name":"朝阳县"},{"code":"211322","name":"建平县"},{"code":"211324","name":"喀喇沁左翼蒙古族自治县"},{"code":"211381","name":"北票市"},{"code":"211382","name":"凌源市"}]},{"code":"2114","name":"葫芦岛市","children":[{"code":"211402","name":"连山区"},{"code":"211403","name":"龙港区"},{"code":"211404","name":"南票区"},{"code":"211421","name":"绥中县"},{"code":"211422","name":"建昌县"},{"code":"211481","name":"兴城市"}]}]},{"code":"22","name":"吉林省","children":[{"code":"2201","name":"长春市","children":[{"code":"220102","name":"南关区"},{"code":"220103","name":"宽城区"},{"code":"220104","name":"朝阳区"},{"code":"220105","name":"二道区"},{"code":"220106","name":"绿园区"},{"code":"220112","name":"双阳区"},{"code":"220113","name":"九台区"},{"code":"220122","name":"农安县"},{"code":"220171","name":"长春经济技术开发区"},{"code":"220172","name":"长春净月高新技术产业开发区"},{"code":"220173","name":"长春高新技术产业开发区"},{"code":"220174","name":"长春汽车经济技术开发区"},{"code":"220182","name":"榆树市"},{"code":"220183","name":"德惠市"},{"code":"220184","name":"公主岭市"}]},{"code":"2202","name":"吉林市","children":[{"code":"220202","name":"昌邑区"},{"code":"220203","name":"龙潭区"},{"code":"220204","name":"船营区"},{"code":"220211","name":"丰满区"},{"code":"220221","name":"永吉县"},{"code":"220271","name":"吉林经济开发区"},{"code":"220272","name":"吉林高新技术产业开发区"},{"code":"220273","name":"吉林中国新加坡食品区"},{"code":"220281","name":"蛟河市"},{"code":"220282","name":"桦甸市"},{"code":"220283","name":"舒兰市"},{"code":"220284","name":"磐石市"}]},{"code":"2203","name":"四平市","children":[{"code":"220302","name":"铁西区"},{"code":"220303","name":"铁东区"},{"code":"220322","name":"梨树县"},{"code":"220323","name":"伊通满族自治县"},{"code":"220382","name":"双辽市"}]},{"code":"2204","name":"辽源市","children":[{"code":"220402","name":"龙山区"},{"code":"220403","name":"西安区"},{"code":"220421","name":"东丰县"},{"code":"220422","name":"东辽县"}]},{"code":"2205","name":"通化市","children":[{"code":"220502","name":"东昌区"},{"code":"220503","name":"二道江区"},{"code":"220521","name":"通化县"},{"code":"220523","name":"辉南县"},{"code":"220524","name":"柳河县"},{"code":"220581","name":"梅河口市"},{"code":"220582","name":"集安市"}]},{"code":"2206","name":"白山市","children":[{"code":"220602","name":"浑江区"},{"code":"220605","name":"江源区"},{"code":"220621","name":"抚松县"},{"code":"220622","name":"靖宇县"},{"code":"220623","name":"长白朝鲜族自治县"},{"code":"220681","name":"临江市"}]},{"code":"2207","name":"松原市","children":[{"code":"220702","name":"宁江区"},{"code":"220721","name":"前郭尔罗斯蒙古族自治县"},{"code":"220722","name":"长岭县"},{"code":"220723","name":"乾安县"},{"code":"220771","name":"吉林松原经济开发区"},{"code":"220781","name":"扶余市"}]},{"code":"2208","name":"白城市","children":[{"code":"220802","name":"洮北区"},{"code":"220821","name":"镇赉县"},{"code":"220822","name":"通榆县"},{"code":"220871","name":"吉林白城经济开发区"},{"code":"220881","name":"洮南市"},{"code":"220882","name":"大安市"}]},{"code":"2224","name":"延边朝鲜族自治州","children":[{"code":"222401","name":"延吉市"},{"code":"222402","name":"图们市"},{"code":"222403","name":"敦化市"},{"code":"222404","name":"珲春市"},{"code":"222405","name":"龙井市"},{"code":"222406","name":"和龙市"},{"code":"222424","name":"汪清县"},{"code":"222426","name":"安图县"}]}]},{"code":"23","name":"黑龙江省","children":[{"code":"2301","name":"哈尔滨市","children":[{"code":"230102","name":"道里区"},{"code":"230103","name":"南岗区"},{"code":"230104","name":"道外区"},{"code":"230108","name":"平房区"},{"code":"230109","name":"松北区"},{"code":"230110","name":"香坊区"},{"code":"230111","name":"呼兰区"},{"code":"230112","name":"阿城区"},{"code":"230113","name":"双城区"},{"code":"230123","name":"依兰县"},{"code":"230124","name":"方正县"},{"code":"230125","name":"宾县"},{"code":"230126","name":"巴彦县"},{"code":"230127","name":"木兰县"},{"code":"230128","name":"通河县"},{"code":"230129","name":"延寿县"},{"code":"230183","name":"尚志市"},{"code":"230184","name":"五常市"}]},{"code":"2302","name":"齐齐哈尔市","children":[{"code":"230202","name":"龙沙区"},{"code":"230203","name":"建华区"},{"code":"230204","name":"铁锋区"},{"code":"230205","name":"昂昂溪区"},{"code":"230206","name":"富拉尔基区"},{"code":"230207","name":"碾子山区"},{"code":"230208","name":"梅里斯达斡尔族区"},{"code":"230221","name":"龙江县"},{"code":"230223","name":"依安县"},{"code":"230224","name":"泰来县"},{"code":"230225","name":"甘南县"},{"code":"230227","name":"富裕县"},{"code":"230229","name":"克山县"},{"code":"230230","name":"克东县"},{"code":"230231","name":"拜泉县"},{"code":"230281","name":"讷河市"}]},{"code":"2303","name":"鸡西市","children":[{"code":"230302","name":"鸡冠区"},{"code":"230303","name":"恒山区"},{"code":"230304","name":"滴道区"},{"code":"230305","name":"梨树区"},{"code":"230306","name":"城子河区"},{"code":"230307","name":"麻山区"},{"code":"230321","name":"鸡东县"},{"code":"230381","name":"虎林市"},{"code":"230382","name":"密山市"}]},{"code":"2304","name":"鹤岗市","children":[{"code":"230402","name":"向阳区"},{"code":"230403","name":"工农区"},{"code":"230404","name":"南山区"},{"code":"230405","name":"兴安区"},{"code":"230406","name":"东山区"},{"code":"230407","name":"兴山区"},{"code":"230421","name":"萝北县"},{"code":"230422","name":"绥滨县"}]},{"code":"2305","name":"双鸭山市","children":[{"code":"230502","name":"尖山区"},{"code":"230503","name":"岭东区"},{"code":"230505","name":"四方台区"},{"code":"230506","name":"宝山区"},{"code":"230521","name":"集贤县"},{"code":"230522","name":"友谊县"},{"code":"230523","name":"宝清县"},{"code":"230524","name":"饶河县"}]},{"code":"2306","name":"大庆市","children":[{"code":"230602","name":"萨尔图区"},{"code":"230603","name":"龙凤区"},{"code":"230604","name":"让胡路区"},{"code":"230605","name":"红岗区"},{"code":"230606","name":"大同区"},{"code":"230621","name":"肇州县"},{"code":"230622","name":"肇源县"},{"code":"230623","name":"林甸县"},{"code":"230624","name":"杜尔伯特蒙古族自治县"},{"code":"230671","name":"大庆高新技术产业开发区"}]},{"code":"2307","name":"伊春市","children":[{"code":"230717","name":"伊美区"},{"code":"230718","name":"乌翠区"},{"code":"230719","name":"友好区"},{"code":"230722","name":"嘉荫县"},{"code":"230723","name":"汤旺县"},{"code":"230724","name":"丰林县"},{"code":"230725","name":"大箐山县"},{"code":"230726","name":"南岔县"},{"code":"230751","name":"金林区"},{"code":"230781","name":"铁力市"}]},{"code":"2308","name":"佳木斯市","children":[{"code":"230803","name":"向阳区"},{"code":"230804","name":"前进区"},{"code":"230805","name":"东风区"},{"code":"230811","name":"郊区"},{"code":"230822","name":"桦南县"},{"code":"230826","name":"桦川县"},{"code":"230828","name":"汤原县"},{"code":"230881","name":"同江市"},{"code":"230882","name":"富锦市"},{"code":"230883","name":"抚远市"}]},{"code":"2309","name":"七台河市","children":[{"code":"230902","name":"新兴区"},{"code":"230903","name":"桃山区"},{"code":"230904","name":"茄子河区"},{"code":"230921","name":"勃利县"}]},{"code":"2310","name":"牡丹江市","children":[{"code":"231002","name":"东安区"},{"code":"231003","name":"阳明区"},{"code":"231004","name":"爱民区"},{"code":"231005","name":"西安区"},{"code":"231025","name":"林口县"},{"code":"231081","name":"绥芬河市"},{"code":"231083","name":"海林市"},{"code":"231084","name":"宁安市"},{"code":"231085","name":"穆棱市"},{"code":"231086","name":"东宁市"}]},{"code":"2311","name":"黑河市","children":[{"code":"231102","name":"爱辉区"},{"code":"231123","name":"逊克县"},{"code":"231124","name":"孙吴县"},{"code":"231181","name":"北安市"},{"code":"231182","name":"五大连池市"},{"code":"231183","name":"嫩江市"}]},{"code":"2312","name":"绥化市","children":[{"code":"231202","name":"北林区"},{"code":"231221","name":"望奎县"},{"code":"231222","name":"兰西县"},{"code":"231223","name":"青冈县"},{"code":"231224","name":"庆安县"},{"code":"231225","name":"明水县"},{"code":"231226","name":"绥棱县"},{"code":"231281","name":"安达市"},{"code":"231282","name":"肇东市"},{"code":"231283","name":"海伦市"}]},{"code":"2327","name":"大兴安岭地区","children":[{"code":"232701","name":"漠河市"},{"code":"232721","name":"呼玛县"},{"code":"232722","name":"塔河县"},{"code":"232761","name":"加格达奇区"},{"code":"232762","name":"松岭区"},{"code":"232763","name":"新林区"},{"code":"232764","name":"呼中区"}]}]},{"code":"31","name":"上海市","children":[{"code":"3101","name":"市辖区","children":[{"code":"310101","name":"黄浦区"},{"code":"310104","name":"徐汇区"},{"code":"310105","name":"长宁区"},{"code":"310106","name":"静安区"},{"code":"310107","name":"普陀区"},{"code":"310109","name":"虹口区"},{"code":"310110","name":"杨浦区"},{"code":"310112","name":"闵行区"},{"code":"310113","name":"宝山区"},{"code":"310114","name":"嘉定区"},{"code":"310115","name":"浦东新区"},{"code":"310116","name":"金山区"},{"code":"310117","name":"松江区"},{"code":"310118","name":"青浦区"},{"code":"310120","name":"奉贤区"},{"code":"310151","name":"崇明区"}]}]},{"code":"32","name":"江苏省","children":[{"code":"3201","name":"南京市","children":[{"code":"320102","name":"玄武区"},{"code":"320104","name":"秦淮区"},{"code":"320105","name":"建邺区"},{"code":"320106","name":"鼓楼区"},{"code":"320111","name":"浦口区"},{"code":"320113","name":"栖霞区"},{"code":"320114","name":"雨花台区"},{"code":"320115","name":"江宁区"},{"code":"320116","name":"六合区"},{"code":"320117","name":"溧水区"},{"code":"320118","name":"高淳区"}]},{"code":"3202","name":"无锡市","children":[{"code":"320205","name":"锡山区"},{"code":"320206","name":"惠山区"},{"code":"320211","name":"滨湖区"},{"code":"320213","name":"梁溪区"},{"code":"320214","name":"新吴区"},{"code":"320281","name":"江阴市"},{"code":"320282","name":"宜兴市"}]},{"code":"3203","name":"徐州市","children":[{"code":"320302","name":"鼓楼区"},{"code":"320303","name":"云龙区"},{"code":"320305","name":"贾汪区"},{"code":"320311","name":"泉山区"},{"code":"320312","name":"铜山区"},{"code":"320321","name":"丰县"},{"code":"320322","name":"沛县"},{"code":"320324","name":"睢宁县"},{"code":"320371","name":"徐州经济技术开发区"},{"code":"320381","name":"新沂市"},{"code":"320382","name":"邳州市"}]},{"code":"3204","name":"常州市","children":[{"code":"320402","name":"天宁区"},{"code":"320404","name":"钟楼区"},{"code":"320411","name":"新北区"},{"code":"320412","name":"武进区"},{"code":"320413","name":"金坛区"},{"code":"320481","name":"溧阳市"}]},{"code":"3205","name":"苏州市","children":[{"code":"320505","name":"虎丘区"},{"code":"320506","name":"吴中区"},{"code":"320507","name":"相城区"},{"code":"320508","name":"姑苏区"},{"code":"320509","name":"吴江区"},{"code":"320576","name":"苏州工业园区"},{"code":"320581","name":"常熟市"},{"code":"320582","name":"张家港市"},{"code":"320583","name":"昆山市"},{"code":"320585","name":"太仓市"}]},{"code":"3206","name":"南通市","children":[{"code":"320612","name":"通州区"},{"code":"320613","name":"崇川区"},{"code":"320614","name":"海门区"},{"code":"320623","name":"如东县"},{"code":"320671","name":"南通经济技术开发区"},{"code":"320681","name":"启东市"},{"code":"320682","name":"如皋市"},{"code":"320685","name":"海安市"}]},{"code":"3207","name":"连云港市","children":[{"code":"320703","name":"连云区"},{"code":"320706","name":"海州区"},{"code":"320707","name":"赣榆区"},{"code":"320722","name":"东海县"},{"code":"320723","name":"灌云县"},{"code":"320724","name":"灌南县"},{"code":"320771","name":"连云港经济技术开发区"}]},{"code":"3208","name":"淮安市","children":[{"code":"320803","name":"淮安区"},{"code":"320804","name":"淮阴区"},{"code":"320812","name":"清江浦区"},{"code":"320813","name":"洪泽区"},{"code":"320826","name":"涟水县"},{"code":"320830","name":"盱眙县"},{"code":"320831","name":"金湖县"},{"code":"320871","name":"淮安经济技术开发区"}]},{"code":"3209","name":"盐城市","children":[{"code":"320902","name":"亭湖区"},{"code":"320903","name":"盐都区"},{"code":"320904","name":"大丰区"},{"code":"320921","name":"响水县"},{"code":"320922","name":"滨海县"},{"code":"320923","name":"阜宁县"},{"code":"320924","name":"射阳县"},{"code":"320925","name":"建湖县"},{"code":"320971","name":"盐城经济技术开发区"},{"code":"320981","name":"东台市"}]},{"code":"3210","name":"扬州市","children":[{"code":"321002","name":"广陵区"},{"code":"321003","name":"邗江区"},{"code":"321012","name":"江都区"},{"code":"321023","name":"宝应县"},{"code":"321071","name":"扬州经济技术开发区"},{"code":"321081","name":"仪征市"},{"code":"321084","name":"高邮市"}]},{"code":"3211","name":"镇江市","children":[{"code":"321102","name":"京口区"},{"code":"321111","name":"润州区"},{"code":"321112","name":"丹徒区"},{"code":"321171","name":"镇江新区"},{"code":"321181","name":"丹阳市"},{"code":"321182","name":"扬中市"},{"code":"321183","name":"句容市"}]},{"code":"3212","name":"泰州市","children":[{"code":"321202","name":"海陵区"},{"code":"321203","name":"高港区"},{"code":"321204","name":"姜堰区"},{"code":"321281","name":"兴化市"},{"code":"321282","name":"靖江市"},{"code":"321283","name":"泰兴市"}]},{"code":"3213","name":"宿迁市","children":[{"code":"321302","name":"宿城区"},{"code":"321311","name":"宿豫区"},{"code":"321322","name":"沭阳县"},{"code":"321323","name":"泗阳县"},{"code":"321324","name":"泗洪县"},{"code":"321371","name":"宿迁经济技术开发区"}]}]},{"code":"33","name":"浙江省","children":[{"code":"3301","name":"杭州市","children":[{"code":"330102","name":"上城区"},{"code":"330105","name":"拱墅区"},{"code":"330106","name":"西湖区"},{"code":"330108","name":"滨江区"},{"code":"330109","name":"萧山区"},{"code":"330110","name":"余杭区"},{"code":"330111","name":"富阳区"},{"code":"330112","name":"临安区"},{"code":"330113","name":"临平区"},{"code":"330114","name":"钱塘区"},{"code":"330122","name":"桐庐县"},{"code":"330127","name":"淳安县"},{"code":"330182","name":"建德市"}]},{"code":"3302","name":"宁波市","children":[{"code":"330203","name":"海曙区"},{"code":"330205","name":"江北区"},{"code":"330206","name":"北仑区"},{"code":"330211","name":"镇海区"},{"code":"330212","name":"鄞州区"},{"code":"330213","name":"奉化区"},{"code":"330225","name":"象山县"},{"code":"330226","name":"宁海县"},{"code":"330281","name":"余姚市"},{"code":"330282","name":"慈溪市"}]},{"code":"3303","name":"温州市","children":[{"code":"330302","name":"鹿城区"},{"code":"330303","name":"龙湾区"},{"code":"330304","name":"瓯海区"},{"code":"330305","name":"洞头区"},{"code":"330324","name":"永嘉县"},{"code":"330326","name":"平阳县"},{"code":"330327","name":"苍南县"},{"code":"330328","name":"文成县"},{"code":"330329","name":"泰顺县"},{"code":"330381","name":"瑞安市"},{"code":"330382","name":"乐清市"},{"code":"330383","name":"龙港市"}]},{"code":"3304","name":"嘉兴市","children":[{"code":"330402","name":"南湖区"},{"code":"330411","name":"秀洲区"},{"code":"330421","name":"嘉善县"},{"code":"330424","name":"海盐县"},{"code":"330481","name":"海宁市"},{"code":"330482","name":"平湖市"},{"code":"330483","name":"桐乡市"}]},{"code":"3305","name":"湖州市","children":[{"code":"330502","name":"吴兴区"},{"code":"330503","name":"南浔区"},{"code":"330521","name":"德清县"},{"code":"330522","name":"长兴县"},{"code":"330523","name":"安吉县"}]},{"code":"3306","name":"绍兴市","children":[{"code":"330602","name":"越城区"},{"code":"330603","name":"柯桥区"},{"code":"330604","name":"上虞区"},{"code":"330624","name":"新昌县"},{"code":"330681","name":"诸暨市"},{"code":"330683","name":"嵊州市"}]},{"code":"3307","name":"金华市","children":[{"code":"330702","name":"婺城区"},{"code":"330703","name":"金东区"},{"code":"330723","name":"武义县"},{"code":"330726","name":"浦江县"},{"code":"330727","name":"磐安县"},{"code":"330781","name":"兰溪市"},{"code":"330782","name":"义乌市"},{"code":"330783","name":"东阳市"},{"code":"330784","name":"永康市"}]},{"code":"3308","name":"衢州市","children":[{"code":"330802","name":"柯城区"},{"code":"330803","name":"衢江区"},{"code":"330822","name":"常山县"},{"code":"330824","name":"开化县"},{"code":"330825","name":"龙游县"},{"code":"330881","name":"江山市"}]},{"code":"3309","name":"舟山市","children":[{"code":"330902","name":"定海区"},{"code":"330903","name":"普陀区"},{"code":"330921","name":"岱山县"},{"code":"330922","name":"嵊泗县"}]},{"code":"3310","name":"台州市","children":[{"code":"331002","name":"椒江区"},{"code":"331003","name":"黄岩区"},{"code":"331004","name":"路桥区"},{"code":"331022","name":"三门县"},{"code":"331023","name":"天台县"},{"code":"331024","name":"仙居县"},{"code":"331081","name":"温岭市"},{"code":"331082","name":"临海市"},{"code":"331083","name":"玉环市"}]},{"code":"3311","name":"丽水市","children":[{"code":"331102","name":"莲都区"},{"code":"331121","name":"青田县"},{"code":"331122","name":"缙云县"},{"code":"331123","name":"遂昌县"},{"code":"331124","name":"松阳县"},{"code":"331125","name":"云和县"},{"code":"331126","name":"庆元县"},{"code":"331127","name":"景宁畲族自治县"},{"code":"331181","name":"龙泉市"}]}]},{"code":"34","name":"安徽省","children":[{"code":"3401","name":"合肥市","children":[{"code":"340102","name":"瑶海区"},{"code":"340103","name":"庐阳区"},{"code":"340104","name":"蜀山区"},{"code":"340111","name":"包河区"},{"code":"340121","name":"长丰县"},{"code":"340122","name":"肥东县"},{"code":"340123","name":"肥西县"},{"code":"340124","name":"庐江县"},{"code":"340176","name":"合肥高新技术产业开发区"},{"code":"340177","name":"合肥经济技术开发区"},{"code":"340178","name":"合肥新站高新技术产业开发区"},{"code":"340181","name":"巢湖市"}]},{"code":"3402","name":"芜湖市","children":[{"code":"340202","name":"镜湖区"},{"code":"340207","name":"鸠江区"},{"code":"340209","name":"弋江区"},{"code":"340210","name":"湾沚区"},{"code":"340212","name":"繁昌区"},{"code":"340223","name":"南陵县"},{"code":"340271","name":"芜湖经济技术开发区"},{"code":"340272","name":"安徽芜湖三山经济开发区"},{"code":"340281","name":"无为市"}]},{"code":"3403","name":"蚌埠市","children":[{"code":"340302","name":"龙子湖区"},{"code":"340303","name":"蚌山区"},{"code":"340304","name":"禹会区"},{"code":"340311","name":"淮上区"},{"code":"340321","name":"怀远县"},{"code":"340322","name":"五河县"},{"code":"340323","name":"固镇县"},{"code":"340371","name":"蚌埠市高新技术开发区"},{"code":"340372","name":"蚌埠市经济开发区"}]},{"code":"3404","name":"淮南市","children":[{"code":"340402","name":"大通区"},{"code":"340403","name":"田家庵区"},{"code":"340404","name":"谢家集区"},{"code":"340405","name":"八公山区"},{"code":"340406","name":"潘集区"},{"code":"340421","name":"凤台县"},{"code":"340422","name":"寿县"}]},{"code":"3405","name":"马鞍山市","children":[{"code":"340503","name":"花山区"},{"code":"340504","name":"雨山区"},{"code":"340506","name":"博望区"},{"code":"340521","name":"当涂县"},{"code":"340522","name":"含山县"},{"code":"340523","name":"和县"}]},{"code":"3406","name":"淮北市","children":[{"code":"340602","name":"杜集区"},{"code":"340603","name":"相山区"},{"code":"340604","name":"烈山区"},{"code":"340621","name":"濉溪县"}]},{"code":"3407","name":"铜陵市","children":[{"code":"340705","name":"铜官区"},{"code":"340706","name":"义安区"},{"code":"340711","name":"郊区"},{"code":"340722","name":"枞阳县"}]},{"code":"3408","name":"安庆市","children":[{"code":"340802","name":"迎江区"},{"code":"340803","name":"大观区"},{"code":"340811","name":"宜秀区"},{"code":"340822","name":"怀宁县"},{"code":"340825","name":"太湖县"},{"code":"340826","name":"宿松县"},{"code":"340827","name":"望江县"},{"code":"340828","name":"岳西县"},{"code":"340871","name":"安徽安庆经济开发区"},{"code":"340881","name":"桐城市"},{"code":"340882","name":"潜山市"}]},{"code":"3410","name":"黄山市","children":[{"code":"341002","name":"屯溪区"},{"code":"341003","name":"黄山区"},{"code":"341004","name":"徽州区"},{"code":"341021","name":"歙县"},{"code":"341022","name":"休宁县"},{"code":"341023","name":"黟县"},{"code":"341024","name":"祁门县"}]},{"code":"3411","name":"滁州市","children":[{"code":"341102","name":"琅琊区"},{"code":"341103","name":"南谯区"},{"code":"341122","name":"来安县"},{"code":"341124","name":"全椒县"},{"code":"341125","name":"定远县"},{"code":"341126","name":"凤阳县"},{"code":"341171","name":"中新苏滁高新技术产业开发区"},{"code":"341172","name":"滁州经济技术开发区"},{"code":"341181","name":"天长市"},{"code":"341182","name":"明光市"}]},{"code":"3412","name":"阜阳市","children":[{"code":"341202","name":"颍州区"},{"code":"341203","name":"颍东区"},{"code":"341204","name":"颍泉区"},{"code":"341221","name":"临泉县"},{"code":"341222","name":"太和县"},{"code":"341225","name":"阜南县"},{"code":"341226","name":"颍上县"},{"code":"341271","name":"阜阳合肥现代产业园区"},{"code":"341272","name":"阜阳经济技术开发区"},{"code":"341282","name":"界首市"}]},{"code":"3413","name":"宿州市","children":[{"code":"341302","name":"埇桥区"},{"code":"341321","name":"砀山县"},{"code":"341322","name":"萧县"},{"code":"341323","name":"灵璧县"},{"code":"341324","name":"泗县"},{"code":"341371","name":"宿州马鞍山现代产业园区"},{"code":"341372","name":"宿州经济技术开发区"}]},{"code":"3415","name":"六安市","children":[{"code":"341502","name":"金安区"},{"code":"341503","name":"裕安区"},{"code":"341504","name":"叶集区"},{"code":"341522","name":"霍邱县"},{"code":"341523","name":"舒城县"},{"code":"341524","name":"金寨县"},{"code":"341525","name":"霍山县"}]},{"code":"3416","name":"亳州市","children":[{"code":"341602","name":"谯城区"},{"code":"341621","name":"涡阳县"},{"code":"341622","name":"蒙城县"},{"code":"341623","name":"利辛县"}]},{"code":"3417","name":"池州市","children":[{"code":"341702","name":"贵池区"},{"code":"341721","name":"东至县"},{"code":"341722","name":"石台县"},{"code":"341723","name":"青阳县"}]},{"code":"3418","name":"宣城市","children":[{"code":"341802","name":"宣州区"},{"code":"341821","name":"郎溪县"},{"code":"341823","name":"泾县"},{"code":"341824","name":"绩溪县"},{"code":"341825","name":"旌德县"},{"code":"341871","name":"宣城市经济开发区"},{"code":"341881","name":"宁国市"},{"code":"341882","name":"广德市"}]}]},{"code":"35","name":"福建省","children":[{"code":"3501","name":"福州市","children":[{"code":"350102","name":"鼓楼区"},{"code":"350103","name":"台江区"},{"code":"350104","name":"仓山区"},{"code":"350105","name":"马尾区"},{"code":"350111","name":"晋安区"},{"code":"350112","name":"长乐区"},{"code":"350121","name":"闽侯县"},{"code":"350122","name":"连江县"},{"code":"350123","name":"罗源县"},{"code":"350124","name":"闽清县"},{"code":"350125","name":"永泰县"},{"code":"350128","name":"平潭县"},{"code":"350181","name":"福清市"}]},{"code":"3502","name":"厦门市","children":[{"code":"350203","name":"思明区"},{"code":"350205","name":"海沧区"},{"code":"350206","name":"湖里区"},{"code":"350211","name":"集美区"},{"code":"350212","name":"同安区"},{"code":"350213","name":"翔安区"}]},{"code":"3503","name":"莆田市","children":[{"code":"350302","name":"城厢区"},{"code":"350303","name":"涵江区"},{"code":"350304","name":"荔城区"},{"code":"350305","name":"秀屿区"},{"code":"350322","name":"仙游县"}]},{"code":"3504","name":"三明市","children":[{"code":"350404","name":"三元区"},{"code":"350405","name":"沙县区"},{"code":"350421","name":"明溪县"},{"code":"350423","name":"清流县"},{"code":"350424","name":"宁化县"},{"code":"350425","name":"大田县"},{"code":"350426","name":"尤溪县"},{"code":"350428","name":"将乐县"},{"code":"350429","name":"泰宁县"},{"code":"350430","name":"建宁县"},{"code":"350481","name":"永安市"}]},{"code":"3505","name":"泉州市","children":[{"code":"350502","name":"鲤城区"},{"code":"350503","name":"丰泽区"},{"code":"350504","name":"洛江区"},{"code":"350505","name":"泉港区"},{"code":"350521","name":"惠安县"},{"code":"350524","name":"安溪县"},{"code":"350525","name":"永春县"},{"code":"350526","name":"德化县"},{"code":"350527","name":"金门县"},{"code":"350581","name":"石狮市"},{"code":"350582","name":"晋江市"},{"code":"350583","name":"南安市"}]},{"code":"3506","name":"漳州市","children":[{"code":"350602","name":"芗城区"},{"code":"350603","name":"龙文区"},{"code":"350604","name":"龙海区"},{"code":"350605","name":"长泰区"},{"code":"350622","name":"云霄县"},{"code":"350623","name":"漳浦县"},{"code":"350624","name":"诏安县"},{"code":"350626","name":"东山县"},{"code":"350627","name":"南靖县"},{"code":"350628","name":"平和县"},{"code":"350629","name":"华安县"}]},{"code":"3507","name":"南平市","children":[{"code":"350702","name":"延平区"},{"code":"350703","name":"建阳区"},{"code":"350721","name":"顺昌县"},{"code":"350722","name":"浦城县"},{"code":"350723","name":"光泽县"},{"code":"350724","name":"松溪县"},{"code":"350725","name":"政和县"},{"code":"350781","name":"邵武市"},{"code":"350782","name":"武夷山市"},{"code":"350783","name":"建瓯市"}]},{"code":"3508","name":"龙岩市","children":[{"code":"350802","name":"新罗区"},{"code":"350803","name":"永定区"},{"code":"350821","name":"长汀县"},{"code":"350823","name":"上杭县"},{"code":"350824","name":"武平县"},{"code":"350825","name":"连城县"},{"code":"350881","name":"漳平市"}]},{"code":"3509","name":"宁德市","children":[{"code":"350902","name":"蕉城区"},{"code":"350921","name":"霞浦县"},{"code":"350922","name":"古田县"},{"code":"350923","name":"屏南县"},{"code":"350924","name":"寿宁县"},{"code":"350925","name":"周宁县"},{"code":"350926","name":"柘荣县"},{"code":"350981","name":"福安市"},{"code":"350982","name":"福鼎市"}]}]},{"code":"36","name":"江西省","children":[{"code":"3601","name":"南昌市","children":[{"code":"360102","name":"东湖区"},{"code":"360103","name":"西湖区"},{"code":"360104","name":"青云谱区"},{"code":"360111","name":"青山湖区"},{"code":"360112","name":"新建区"},{"code":"360113","name":"红谷滩区"},{"code":"360121","name":"南昌县"},{"code":"360123","name":"安义县"},{"code":"360124","name":"进贤县"}]},{"code":"3602","name":"景德镇市","children":[{"code":"360202","name":"昌江区"},{"code":"360203","name":"珠山区"},{"code":"360222","name":"浮梁县"},{"code":"360281","name":"乐平市"}]},{"code":"3603","name":"萍乡市","children":[{"code":"360302","name":"安源区"},{"code":"360313","name":"湘东区"},{"code":"360321","name":"莲花县"},{"code":"360322","name":"上栗县"},{"code":"360323","name":"芦溪县"}]},{"code":"3604","name":"九江市","children":[{"code":"360402","name":"濂溪区"},{"code":"360403","name":"浔阳区"},{"code":"360404","name":"柴桑区"},{"code":"360423","name":"武宁县"},{"code":"360424","name":"修水县"},{"code":"360425","name":"永修县"},{"code":"360426","name":"德安县"},{"code":"360428","name":"都昌县"},{"code":"360429","name":"湖口县"},{"code":"360430","name":"彭泽县"},{"code":"360481","name":"瑞昌市"},{"code":"360482","name":"共青城市"},{"code":"360483","name":"庐山市"}]},{"code":"3605","name":"新余市","children":[{"code":"360502","name":"渝水区"},{"code":"360521","name":"分宜县"}]},{"code":"3606","name":"鹰潭市","children":[{"code":"360602","name":"月湖区"},{"code":"360603","name":"余江区"},{"code":"360681","name":"贵溪市"}]},{"code":"3607","name":"赣州市","children":[{"code":"360702","name":"章贡区"},{"code":"360703","name":"南康区"},{"code":"360704","name":"赣县区"},{"code":"360722","name":"信丰县"},{"code":"360723","name":"大余县"},{"code":"360724","name":"上犹县"},{"code":"360725","name":"崇义县"},{"code":"360726","name":"安远县"},{"code":"360728","name":"定南县"},{"code":"360729","name":"全南县"},{"code":"360730","name":"宁都县"},{"code":"360731","name":"于都县"},{"code":"360732","name":"兴国县"},{"code":"360733","name":"会昌县"},{"code":"360734","name":"寻乌县"},{"code":"360735","name":"石城县"},{"code":"360781","name":"瑞金市"},{"code":"360783","name":"龙南市"}]},{"code":"3608","name":"吉安市","children":[{"code":"360802","name":"吉州区"},{"code":"360803","name":"青原区"},{"code":"360821","name":"吉安县"},{"code":"360822","name":"吉水县"},{"code":"360823","name":"峡江县"},{"code":"360824","name":"新干县"},{"code":"360825","name":"永丰县"},{"code":"360826","name":"泰和县"},{"code":"360827","name":"遂川县"},{"code":"360828","name":"万安县"},{"code":"360829","name":"安福县"},{"code":"360830","name":"永新县"},{"code":"360881","name":"井冈山市"}]},{"code":"3609","name":"宜春市","children":[{"code":"360902","name":"袁州区"},{"code":"360921","name":"奉新县"},{"code":"360922","name":"万载县"},{"code":"360923","name":"上高县"},{"code":"360924","name":"宜丰县"},{"code":"360925","name":"靖安县"},{"code":"360926","name":"铜鼓县"},{"code":"360981","name":"丰城市"},{"code":"360982","name":"樟树市"},{"code":"360983","name":"高安市"}]},{"code":"3610","name":"抚州市","children":[{"code":"361002","name":"临川区"},{"code":"361003","name":"东乡区"},{"code":"361021","name":"南城县"},{"code":"361022","name":"黎川县"},{"code":"361023","name":"南丰县"},{"code":"361024","name":"崇仁县"},{"code":"361025","name":"乐安县"},{"code":"361026","name":"宜黄县"},{"code":"361027","name":"金溪县"},{"code":"361028","name":"资溪县"},{"code":"361030","name":"广昌县"}]},{"code":"3611","name":"上饶市","children":[{"code":"361102","name":"信州区"},{"code":"361103","name":"广丰区"},{"code":"361104","name":"广信区"},{"code":"361123","name":"玉山县"},{"code":"361124","name":"铅山县"},{"code":"361125","name":"横峰县"},{"code":"361126","name":"弋阳县"},{"code":"361127","name":"余干县"},{"code":"361128","name":"鄱阳县"},{"code":"361129","name":"万年县"},{"code":"361130","name":"婺源县"},{"code":"361181","name":"德兴市"}]}]},{"code":"37","name":"山东省","children":[{"code":"3701","name":"济南市","children":[{"code":"370102","name":"历下区"},{"code":"370103","name":"市中区"},{"code":"370104","name":"槐荫区"},{"code":"370105","name":"天桥区"},{"code":"370112","name":"历城区"},{"code":"370113","name":"长清区"},{"code":"370114","name":"章丘区"},{"code":"370115","name":"济阳区"},{"code":"370116","name":"莱芜区"},{"code":"370117","name":"钢城区"},{"code":"370124","name":"平阴县"},{"code":"370126","name":"商河县"},{"code":"370176","name":"济南高新技术产业开发区"}]},{"code":"3702","name":"青岛市","children":[{"code":"370202","name":"市南区"},{"code":"370203","name":"市北区"},{"code":"370211","name":"黄岛区"},{"code":"370212","name":"崂山区"},{"code":"370213","name":"李沧区"},{"code":"370214","name":"城阳区"},{"code":"370215","name":"即墨区"},{"code":"370281","name":"胶州市"},{"code":"370283","name":"平度市"},{"code":"370285","name":"莱西市"}]},{"code":"3703","name":"淄博市","children":[{"code":"370302","name":"淄川区"},{"code":"370303","name":"张店区"},{"code":"370304","name":"博山区"},{"code":"370305","name":"临淄区"},{"code":"370306","name":"周村区"},{"code":"370321","name":"桓台县"},{"code":"370322","name":"高青县"},{"code":"370323","name":"沂源县"}]},{"code":"3704","name":"枣庄市","children":[{"code":"370402","name":"市中区"},{"code":"370403","name":"薛城区"},{"code":"370404","name":"峄城区"},{"code":"370405","name":"台儿庄区"},{"code":"370406","name":"山亭区"},{"code":"370481","name":"滕州市"}]},{"code":"3705","name":"东营市","children":[{"code":"370502","name":"东营区"},{"code":"370503","name":"河口区"},{"code":"370505","name":"垦利区"},{"code":"370522","name":"利津县"},{"code":"370523","name":"广饶县"},{"code":"370571","name":"东营经济技术开发区"},{"code":"370572","name":"东营港经济开发区"}]},{"code":"3706","name":"烟台市","children":[{"code":"370602","name":"芝罘区"},{"code":"370611","name":"福山区"},{"code":"370612","name":"牟平区"},{"code":"370613","name":"莱山区"},{"code":"370614","name":"蓬莱区"},{"code":"370671","name":"烟台高新技术产业开发区"},{"code":"370676","name":"烟台经济技术开发区"},{"code":"370681","name":"龙口市"},{"code":"370682","name":"莱阳市"},{"code":"370683","name":"莱州市"},{"code":"370685","name":"招远市"},{"code":"370686","name":"栖霞市"},{"code":"370687","name":"海阳市"}]},{"code":"3707","name":"潍坊市","children":[{"code":"370702","name":"潍城区"},{"code":"370703","name":"寒亭区"},{"code":"370704","name":"坊子区"},{"code":"370705","name":"奎文区"},{"code":"370724","name":"临朐县"},{"code":"370725","name":"昌乐县"},{"code":"370772","name":"潍坊滨海经济技术开发区"},{"code":"370781","name":"青州市"},{"code":"370782","name":"诸城市"},{"code":"370783","name":"寿光市"},{"code":"370784","name":"安丘市"},{"code":"370785","name":"高密市"},{"code":"370786","name":"昌邑市"}]},{"code":"3708","name":"济宁市","children":[{"code":"370811","name":"任城区"},{"code":"370812","name":"兖州区"},{"code":"370826","name":"微山县"},{"code":"370827","name":"鱼台县"},{"code":"370828","name":"金乡县"},{"code":"370829","name":"嘉祥县"},{"code":"370830","name":"汶上县"},{"code":"370831","name":"泗水县"},{"code":"370832","name":"梁山县"},{"code":"370871","name":"济宁高新技术产业开发区"},{"code":"370881","name":"曲阜市"},{"code":"370883","name":"邹城市"}]},{"code":"3709","name":"泰安市","children":[{"code":"370902","name":"泰山区"},{"code":"370911","name":"岱岳区"},{"code":"370921","name":"宁阳县"},{"code":"370923","name":"东平县"},{"code":"370982","name":"新泰市"},{"code":"370983","name":"肥城市"}]},{"code":"3710","name":"威海市","children":[{"code":"371002","name":"环翠区"},{"code":"371003","name":"文登区"},{"code":"371071","name":"威海火炬高技术产业开发区"},{"code":"371072","name":"威海经济技术开发区"},{"code":"371073","name":"威海临港经济技术开发区"},{"code":"371082","name":"荣成市"},{"code":"371083","name":"乳山市"}]},{"code":"3711","name":"日照市","children":[{"code":"371102","name":"东港区"},{"code":"371103","name":"岚山区"},{"code":"371121","name":"五莲县"},{"code":"371122","name":"莒县"},{"code":"371171","name":"日照经济技术开发区"}]},{"code":"3713","name":"临沂市","children":[{"code":"371302","name":"兰山区"},{"code":"371311","name":"罗庄区"},{"code":"371312","name":"河东区"},{"code":"371321","name":"沂南县"},{"code":"371322","name":"郯城县"},{"code":"371323","name":"沂水县"},{"code":"371324","name":"兰陵县"},{"code":"371325","name":"费县"},{"code":"371326","name":"平邑县"},{"code":"371327","name":"莒南县"},{"code":"371328","name":"蒙阴县"},{"code":"371329","name":"临沭县"},{"code":"371371","name":"临沂高新技术产业开发区"}]},{"code":"3714","name":"德州市","children":[{"code":"371402","name":"德城区"},{"code":"371403","name":"陵城区"},{"code":"371422","name":"宁津县"},{"code":"371423","name":"庆云县"},{"code":"371424","name":"临邑县"},{"code":"371425","name":"齐河县"},{"code":"371426","name":"平原县"},{"code":"371427","name":"夏津县"},{"code":"371428","name":"武城县"},{"code":"371471","name":"德州天衢新区"},{"code":"371481","name":"乐陵市"},{"code":"371482","name":"禹城市"}]},{"code":"3715","name":"聊城市","children":[{"code":"371502","name":"东昌府区"},{"code":"371503","name":"茌平区"},{"code":"371521","name":"阳谷县"},{"code":"371522","name":"莘县"},{"code":"371524","name":"东阿县"},{"code":"371525","name":"冠县"},{"code":"371526","name":"高唐县"},{"code":"371581","name":"临清市"}]},{"code":"3716","name":"滨州市","children":[{"code":"371602","name":"滨城区"},{"code":"371603","name":"沾化区"},{"code":"371621","name":"惠民县"},{"code":"371622","name":"阳信县"},{"code":"371623","name":"无棣县"},{"code":"371625","name":"博兴县"},{"code":"371681","name":"邹平市"}]},{"code":"3717","name":"菏泽市","children":[{"code":"371702","name":"牡丹区"},{"code":"371703","name":"定陶区"},{"code":"371721","name":"曹县"},{"code":"371722","name":"单县"},{"code":"371723","name":"成武县"},{"code":"371724","name":"巨野县"},{"code":"371725","name":"郓城县"},{"code":"371726","name":"鄄城县"},{"code":"371728","name":"东明县"},{"code":"371771","name":"菏泽经济技术开发区"},{"code":"371772","name":"菏泽高新技术开发区"}]}]},{"code":"41","name":"河南省","children":[{"code":"4101","name":"郑州市","children":[{"code":"410102","name":"中原区"},{"code":"410103","name":"二七区"},{"code":"410104","name":"管城回族区"},{"code":"410105","name":"金水区"},{"code":"410106","name":"上街区"},{"code":"410108","name":"惠济区"},{"code":"410122","name":"中牟县"},{"code":"410171","name":"郑州经济技术开发区"},{"code":"410172","name":"郑州高新技术产业开发区"},{"code":"410173","name":"郑州航空港经济综合实验区"},{"code":"410181","name":"巩义市"},{"code":"410182","name":"荥阳市"},{"code":"410183","name":"新密市"},{"code":"410184","name":"新郑市"},{"code":"410185","name":"登封市"}]},{"code":"4102","name":"开封市","children":[{"code":"410202","name":"龙亭区"},{"code":"410203","name":"顺河回族区"},{"code":"410204","name":"鼓楼区"},{"code":"410205","name":"禹王台区"},{"code":"410212","name":"祥符区"},{"code":"410221","name":"杞县"},{"code":"410222","name":"通许县"},{"code":"410223","name":"尉氏县"},{"code":"410225","name":"兰考县"}]},{"code":"4103","name":"洛阳市","children":[{"code":"410302","name":"老城区"},{"code":"410303","name":"西工区"},{"code":"410304","name":"瀍河回族区"},{"code":"410305","name":"涧西区"},{"code":"410307","name":"偃师区"},{"code":"410308","name":"孟津区"},{"code":"410311","name":"洛龙区"},{"code":"410323","name":"新安县"},{"code":"410324","name":"栾川县"},{"code":"410325","name":"嵩县"},{"code":"410326","name":"汝阳县"},{"code":"410327","name":"宜阳县"},{"code":"410328","name":"洛宁县"},{"code":"410329","name":"伊川县"},{"code":"410371","name":"洛阳高新技术产业开发区"}]},{"code":"4104","name":"平顶山市","children":[{"code":"410402","name":"新华区"},{"code":"410403","name":"卫东区"},{"code":"410404","name":"石龙区"},{"code":"410411","name":"湛河区"},{"code":"410421","name":"宝丰县"},{"code":"410422","name":"叶县"},{"code":"410423","name":"鲁山县"},{"code":"410425","name":"郏县"},{"code":"410471","name":"平顶山高新技术产业开发区"},{"code":"410472","name":"平顶山市城乡一体化示范区"},{"code":"410481","name":"舞钢市"},{"code":"410482","name":"汝州市"}]},{"code":"4105","name":"安阳市","children":[{"code":"410502","name":"文峰区"},{"code":"410503","name":"北关区"},{"code":"410505","name":"殷都区"},{"code":"410506","name":"龙安区"},{"code":"410522","name":"安阳县"},{"code":"410523","name":"汤阴县"},{"code":"410526","name":"滑县"},{"code":"410527","name":"内黄县"},{"code":"410571","name":"安阳高新技术产业开发区"},{"code":"410581","name":"林州市"}]},{"code":"4106","name":"鹤壁市","children":[{"code":"410602","name":"鹤山区"},{"code":"410603","name":"山城区"},{"code":"410611","name":"淇滨区"},{"code":"410621","name":"浚县"},{"code":"410622","name":"淇县"},{"code":"410671","name":"鹤壁经济技术开发区"}]},{"code":"4107","name":"新乡市","children":[{"code":"410702","name":"红旗区"},{"code":"410703","name":"卫滨区"},{"code":"410704","name":"凤泉区"},{"code":"410711","name":"牧野区"},{"code":"410721","name":"新乡县"},{"code":"410724","name":"获嘉县"},{"code":"410725","name":"原阳县"},{"code":"410726","name":"延津县"},{"code":"410727","name":"封丘县"},{"code":"410771","name":"新乡高新技术产业开发区"},{"code":"410772","name":"新乡经济技术开发区"},{"code":"410773","name":"新乡市平原城乡一体化示范区"},{"code":"410781","name":"卫辉市"},{"code":"410782","name":"辉县市"},{"code":"410783","name":"长垣市"}]},{"code":"4108","name":"焦作市","children":[{"code":"410802","name":"解放区"},{"code":"410803","name":"中站区"},{"code":"410804","name":"马村区"},{"code":"410811","name":"山阳区"},{"code":"410821","name":"修武县"},{"code":"410822","name":"博爱县"},{"code":"410823","name":"武陟县"},{"code":"410825","name":"温县"},{"code":"410871","name":"焦作城乡一体化示范区"},{"code":"410882","name":"沁阳市"},{"code":"410883","name":"孟州市"}]},{"code":"4109","name":"濮阳市","children":[{"code":"410902","name":"华龙区"},{"code":"410922","name":"清丰县"},{"code":"410923","name":"南乐县"},{"code":"410926","name":"范县"},{"code":"410927","name":"台前县"},{"code":"410928","name":"濮阳县"},{"code":"410971","name":"河南濮阳工业园区"},{"code":"410972","name":"濮阳经济技术开发区"}]},{"code":"4110","name":"许昌市","children":[{"code":"411002","name":"魏都区"},{"code":"411003","name":"建安区"},{"code":"411024","name":"鄢陵县"},{"code":"411025","name":"襄城县"},{"code":"411071","name":"许昌经济技术开发区"},{"code":"411081","name":"禹州市"},{"code":"411082","name":"长葛市"}]},{"code":"4111","name":"漯河市","children":[{"code":"411102","name":"源汇区"},{"code":"411103","name":"郾城区"},{"code":"411104","name":"召陵区"},{"code":"411121","name":"舞阳县"},{"code":"411122","name":"临颍县"},{"code":"411171","name":"漯河经济技术开发区"}]},{"code":"4112","name":"三门峡市","children":[{"code":"411202","name":"湖滨区"},{"code":"411203","name":"陕州区"},{"code":"411221","name":"渑池县"},{"code":"411224","name":"卢氏县"},{"code":"411271","name":"河南三门峡经济开发区"},{"code":"411281","name":"义马市"},{"code":"411282","name":"灵宝市"}]},{"code":"4113","name":"南阳市","children":[{"code":"411302","name":"宛城区"},{"code":"411303","name":"卧龙区"},{"code":"411321","name":"南召县"},{"code":"411322","name":"方城县"},{"code":"411323","name":"西峡县"},{"code":"411324","name":"镇平县"},{"code":"411325","name":"内乡县"},{"code":"411326","name":"淅川县"},{"code":"411327","name":"社旗县"},{"code":"411328","name":"唐河县"},{"code":"411329","name":"新野县"},{"code":"411330","name":"桐柏县"},{"code":"411371","name":"南阳高新技术产业开发区"},{"code":"411372","name":"南阳市城乡一体化示范区"},{"code":"411381","name":"邓州市"}]},{"code":"4114","name":"商丘市","children":[{"code":"411402","name":"梁园区"},{"code":"411403","name":"睢阳区"},{"code":"411421","name":"民权县"},{"code":"411422","name":"睢县"},{"code":"411423","name":"宁陵县"},{"code":"411424","name":"柘城县"},{"code":"411425","name":"虞城县"},{"code":"411426","name":"夏邑县"},{"code":"411471","name":"豫东综合物流产业聚集区"},{"code":"411472","name":"河南商丘经济开发区"},{"code":"411481","name":"永城市"}]},{"code":"4115","name":"信阳市","children":[{"code":"411502","name":"浉河区"},{"code":"411503","name":"平桥区"},{"code":"411521","name":"罗山县"},{"code":"411522","name":"光山县"},{"code":"411523","name":"新县"},{"code":"411524","name":"商城县"},{"code":"411525","name":"固始县"},{"code":"411526","name":"潢川县"},{"code":"411527","name":"淮滨县"},{"code":"411528","name":"息县"},{"code":"411571","name":"信阳高新技术产业开发区"}]},{"code":"4116","name":"周口市","children":[{"code":"411602","name":"川汇区"},{"code":"411603","name":"淮阳区"},{"code":"411621","name":"扶沟县"},{"code":"411622","name":"西华县"},{"code":"411623","name":"商水县"},{"code":"411624","name":"沈丘县"},{"code":"411625","name":"郸城县"},{"code":"411627","name":"太康县"},{"code":"411628","name":"鹿邑县"},{"code":"411671","name":"周口临港开发区"},{"code":"411681","name":"项城市"}]},{"code":"4117","name":"驻马店市","children":[{"code":"411702","name":"驿城区"},{"code":"411721","name":"西平县"},{"code":"411722","name":"上蔡县"},{"code":"411723","name":"平舆县"},{"code":"411724","name":"正阳县"},{"code":"411725","name":"确山县"},{"code":"411726","name":"泌阳县"},{"code":"411727","name":"汝南县"},{"code":"411728","name":"遂平县"},{"code":"411729","name":"新蔡县"},{"code":"411771","name":"河南驻马店经济开发区"}]},{"code":"4190","name":"省直辖县级行政区划","children":[{"code":"419001","name":"济源市"}]}]},{"code":"42","name":"湖北省","children":[{"code":"4201","name":"武汉市","children":[{"code":"420102","name":"江岸区"},{"code":"420103","name":"江汉区"},{"code":"420104","name":"硚口区"},{"code":"420105","name":"汉阳区"},{"code":"420106","name":"武昌区"},{"code":"420107","name":"青山区"},{"code":"420111","name":"洪山区"},{"code":"420112","name":"东西湖区"},{"code":"420113","name":"汉南区"},{"code":"420114","name":"蔡甸区"},{"code":"420115","name":"江夏区"},{"code":"420116","name":"黄陂区"},{"code":"420117","name":"新洲区"}]},{"code":"4202","name":"黄石市","children":[{"code":"420202","name":"黄石港区"},{"code":"420203","name":"西塞山区"},{"code":"420204","name":"下陆区"},{"code":"420205","name":"铁山区"},{"code":"420222","name":"阳新县"},{"code":"420281","name":"大冶市"}]},{"code":"4203","name":"十堰市","children":[{"code":"420302","name":"茅箭区"},{"code":"420303","name":"张湾区"},{"code":"420304","name":"郧阳区"},{"code":"420322","name":"郧西县"},{"code":"420323","name":"竹山县"},{"code":"420324","name":"竹溪县"},{"code":"420325","name":"房县"},{"code":"420381","name":"丹江口市"}]},{"code":"4205","name":"宜昌市","children":[{"code":"420502","name":"西陵区"},{"code":"420503","name":"伍家岗区"},{"code":"420504","name":"点军区"},{"code":"420505","name":"猇亭区"},{"code":"420506","name":"夷陵区"},{"code":"420525","name":"远安县"},{"code":"420526","name":"兴山县"},{"code":"420527","name":"秭归县"},{"code":"420528","name":"长阳土家族自治县"},{"code":"420529","name":"五峰土家族自治县"},{"code":"420581","name":"宜都市"},{"code":"420582","name":"当阳市"},{"code":"420583","name":"枝江市"}]},{"code":"4206","name":"襄阳市","children":[{"code":"420602","name":"襄城区"},{"code":"420606","name":"樊城区"},{"code":"420607","name":"襄州区"},{"code":"420624","name":"南漳县"},{"code":"420625","name":"谷城县"},{"code":"420626","name":"保康县"},{"code":"420682","name":"老河口市"},{"code":"420683","name":"枣阳市"},{"code":"420684","name":"宜城市"}]},{"code":"4207","name":"鄂州市","children":[{"code":"420702","name":"梁子湖区"},{"code":"420703","name":"华容区"},{"code":"420704","name":"鄂城区"}]},{"code":"4208","name":"荆门市","children":[{"code":"420802","name":"东宝区"},{"code":"420804","name":"掇刀区"},{"code":"420822","name":"沙洋县"},{"code":"420881","name":"钟祥市"},{"code":"420882","name":"京山市"}]},{"code":"4209","name":"孝感市","children":[{"code":"420902","name":"孝南区"},{"code":"420921","name":"孝昌县"},{"code":"420922","name":"大悟县"},{"code":"420923","name":"云梦县"},{"code":"420981","name":"应城市"},{"code":"420982","name":"安陆市"},{"code":"420984","name":"汉川市"}]},{"code":"4210","name":"荆州市","children":[{"code":"421002","name":"沙市区"},{"code":"421003","name":"荆州区"},{"code":"421022","name":"公安县"},{"code":"421024","name":"江陵县"},{"code":"421071","name":"荆州经济技术开发区"},{"code":"421081","name":"石首市"},{"code":"421083","name":"洪湖市"},{"code":"421087","name":"松滋市"},{"code":"421088","name":"监利市"}]},{"code":"4211","name":"黄冈市","children":[{"code":"421102","name":"黄州区"},{"code":"421121","name":"团风县"},{"code":"421122","name":"红安县"},{"code":"421123","name":"罗田县"},{"code":"421124","name":"英山县"},{"code":"421125","name":"浠水县"},{"code":"421126","name":"蕲春县"},{"code":"421127","name":"黄梅县"},{"code":"421171","name":"龙感湖管理区"},{"code":"421181","name":"麻城市"},{"code":"421182","name":"武穴市"}]},{"code":"4212","name":"咸宁市","children":[{"code":"421202","name":"咸安区"},{"code":"421221","name":"嘉鱼县"},{"code":"421222","name":"通城县"},{"code":"421223","name":"崇阳县"},{"code":"421224","name":"通山县"},{"code":"421281","name":"赤壁市"}]},{"code":"4213","name":"随州市","children":[{"code":"421303","name":"曾都区"},{"code":"421321","name":"随县"},{"code":"421381","name":"广水市"}]},{"code":"4228","name":"恩施土家族苗族自治州","children":[{"code":"422801","name":"恩施市"},{"code":"422802","name":"利川市"},{"code":"422822","name":"建始县"},{"code":"422823","name":"巴东县"},{"code":"422825","name":"宣恩县"},{"code":"422826","name":"咸丰县"},{"code":"422827","name":"来凤县"},{"code":"422828","name":"鹤峰县"}]},{"code":"4290","name":"省直辖县级行政区划","children":[{"code":"429004","name":"仙桃市"},{"code":"429005","name":"潜江市"},{"code":"429006","name":"天门市"},{"code":"429021","name":"神农架林区"}]}]},{"code":"43","name":"湖南省","children":[{"code":"4301","name":"长沙市","children":[{"code":"430102","name":"芙蓉区"},{"code":"430103","name":"天心区"},{"code":"430104","name":"岳麓区"},{"code":"430105","name":"开福区"},{"code":"430111","name":"雨花区"},{"code":"430112","name":"望城区"},{"code":"430121","name":"长沙县"},{"code":"430181","name":"浏阳市"},{"code":"430182","name":"宁乡市"}]},{"code":"4302","name":"株洲市","children":[{"code":"430202","name":"荷塘区"},{"code":"430203","name":"芦淞区"},{"code":"430204","name":"石峰区"},{"code":"430211","name":"天元区"},{"code":"430212","name":"渌口区"},{"code":"430223","name":"攸县"},{"code":"430224","name":"茶陵县"},{"code":"430225","name":"炎陵县"},{"code":"430281","name":"醴陵市"}]},{"code":"4303","name":"湘潭市","children":[{"code":"430302","name":"雨湖区"},{"code":"430304","name":"岳塘区"},{"code":"430321","name":"湘潭县"},{"code":"430371","name":"湖南湘潭高新技术产业园区"},{"code":"430372","name":"湘潭昭山示范区"},{"code":"430373","name":"湘潭九华示范区"},{"code":"430381","name":"湘乡市"},{"code":"430382","name":"韶山市"}]},{"code":"4304","name":"衡阳市","children":[{"code":"430405","name":"珠晖区"},{"code":"430406","name":"雁峰区"},{"code":"430407","name":"石鼓区"},{"code":"430408","name":"蒸湘区"},{"code":"430412","name":"南岳区"},{"code":"430421","name":"衡阳县"},{"code":"430422","name":"衡南县"},{"code":"430423","name":"衡山县"},{"code":"430424","name":"衡东县"},{"code":"430426","name":"祁东县"},{"code":"430473","name":"湖南衡阳松木经济开发区"},{"code":"430476","name":"湖南衡阳高新技术产业园区"},{"code":"430481","name":"耒阳市"},{"code":"430482","name":"常宁市"}]},{"code":"4305","name":"邵阳市","children":[{"code":"430502","name":"双清区"},{"code":"430503","name":"大祥区"},{"code":"430511","name":"北塔区"},{"code":"430522","name":"新邵县"},{"code":"430523","name":"邵阳县"},{"code":"430524","name":"隆回县"},{"code":"430525","name":"洞口县"},{"code":"430527","name":"绥宁县"},{"code":"430528","name":"新宁县"},{"code":"430529","name":"城步苗族自治县"},{"code":"430581","name":"武冈市"},{"code":"430582","name":"邵东市"}]},{"code":"4306","name":"岳阳市","children":[{"code":"430602","name":"岳阳楼区"},{"code":"430603","name":"云溪区"},{"code":"430611","name":"君山区"},{"code":"430621","name":"岳阳县"},{"code":"430623","name":"华容县"},{"code":"430624","name":"湘阴县"},{"code":"430626","name":"平江县"},{"code":"430671","name":"岳阳市屈原管理区"},{"code":"430681","name":"汨罗市"},{"code":"430682","name":"临湘市"}]},{"code":"4307","name":"常德市","children":[{"code":"430702","name":"武陵区"},{"code":"430703","name":"鼎城区"},{"code":"430721","name":"安乡县"},{"code":"430722","name":"汉寿县"},{"code":"430723","name":"澧县"},{"code":"430724","name":"临澧县"},{"code":"430725","name":"桃源县"},{"code":"430726","name":"石门县"},{"code":"430771","name":"常德市西洞庭管理区"},{"code":"430781","name":"津市市"}]},{"code":"4308","name":"张家界市","children":[{"code":"430802","name":"永定区"},{"code":"430811","name":"武陵源区"},{"code":"430821","name":"慈利县"},{"code":"430822","name":"桑植县"}]},{"code":"4309","name":"益阳市","children":[{"code":"430902","name":"资阳区"},{"code":"430903","name":"赫山区"},{"code":"430921","name":"南县"},{"code":"430922","name":"桃江县"},{"code":"430923","name":"安化县"},{"code":"430971","name":"益阳市大通湖管理区"},{"code":"430972","name":"湖南益阳高新技术产业园区"},{"code":"430981","name":"沅江市"}]},{"code":"4310","name":"郴州市","children":[{"code":"431002","name":"北湖区"},{"code":"431003","name":"苏仙区"},{"code":"431021","name":"桂阳县"},{"code":"431022","name":"宜章县"},{"code":"431023","name":"永兴县"},{"code":"431024","name":"嘉禾县"},{"code":"431025","name":"临武县"},{"code":"431026","name":"汝城县"},{"code":"431027","name":"桂东县"},{"code":"431028","name":"安仁县"},{"code":"431081","name":"资兴市"}]},{"code":"4311","name":"永州市","children":[{"code":"431102","name":"零陵区"},{"code":"431103","name":"冷水滩区"},{"code":"431122","name":"东安县"},{"code":"431123","name":"双牌县"},{"code":"431124","name":"道县"},{"code":"431125","name":"江永县"},{"code":"431126","name":"宁远县"},{"code":"431127","name":"蓝山县"},{"code":"431128","name":"新田县"},{"code":"431129","name":"江华瑶族自治县"},{"code":"431171","name":"永州经济技术开发区"},{"code":"431173","name":"永州市回龙圩管理区"},{"code":"431181","name":"祁阳市"}]},{"code":"4312","name":"怀化市","children":[{"code":"431202","name":"鹤城区"},{"code":"431221","name":"中方县"},{"code":"431222","name":"沅陵县"},{"code":"431223","name":"辰溪县"},{"code":"431224","name":"溆浦县"},{"code":"431225","name":"会同县"},{"code":"431226","name":"麻阳苗族自治县"},{"code":"431227","name":"新晃侗族自治县"},{"code":"431228","name":"芷江侗族自治县"},{"code":"431229","name":"靖州苗族侗族自治县"},{"code":"431230","name":"通道侗族自治县"},{"code":"431271","name":"怀化市洪江管理区"},{"code":"431281","name":"洪江市"}]},{"code":"4313","name":"娄底市","children":[{"code":"431302","name":"娄星区"},{"code":"431321","name":"双峰县"},{"code":"431322","name":"新化县"},{"code":"431381","name":"冷水江市"},{"code":"431382","name":"涟源市"}]},{"code":"4331","name":"湘西土家族苗族自治州","children":[{"code":"433101","name":"吉首市"},{"code":"433122","name":"泸溪县"},{"code":"433123","name":"凤凰县"},{"code":"433124","name":"花垣县"},{"code":"433125","name":"保靖县"},{"code":"433126","name":"古丈县"},{"code":"433127","name":"永顺县"},{"code":"433130","name":"龙山县"}]}]},{"code":"44","name":"广东省","children":[{"code":"4401","name":"广州市","children":[{"code":"440103","name":"荔湾区"},{"code":"440104","name":"越秀区"},{"code":"440105","name":"海珠区"},{"code":"440106","name":"天河区"},{"code":"440111","name":"白云区"},{"code":"440112","name":"黄埔区"},{"code":"440113","name":"番禺区"},{"code":"440114","name":"花都区"},{"code":"440115","name":"南沙区"},{"code":"440117","name":"从化区"},{"code":"440118","name":"增城区"}]},{"code":"4402","name":"韶关市","children":[{"code":"440203","name":"武江区"},{"code":"440204","name":"浈江区"},{"code":"440205","name":"曲江区"},{"code":"440222","name":"始兴县"},{"code":"440224","name":"仁化县"},{"code":"440229","name":"翁源县"},{"code":"440232","name":"乳源瑶族自治县"},{"code":"440233","name":"新丰县"},{"code":"440281","name":"乐昌市"},{"code":"440282","name":"南雄市"}]},{"code":"4403","name":"深圳市","children":[{"code":"440303","name":"罗湖区"},{"code":"440304","name":"福田区"},{"code":"440305","name":"南山区"},{"code":"440306","name":"宝安区"},{"code":"440307","name":"龙岗区"},{"code":"440308","name":"盐田区"},{"code":"440309","name":"龙华区"},{"code":"440310","name":"坪山区"},{"code":"440311","name":"光明区"}]},{"code":"4404","name":"珠海市","children":[{"code":"440402","name":"香洲区"},{"code":"440403","name":"斗门区"},{"code":"440404","name":"金湾区"}]},{"code":"4405","name":"汕头市","children":[{"code":"440507","name":"龙湖区"},{"code":"440511","name":"金平区"},{"code":"440512","name":"濠江区"},{"code":"440513","name":"潮阳区"},{"code":"440514","name":"潮南区"},{"code":"440515","name":"澄海区"},{"code":"440523","name":"南澳县"}]},{"code":"4406","name":"佛山市","children":[{"code":"440604","name":"禅城区"},{"code":"440605","name":"南海区"},{"code":"440606","name":"顺德区"},{"code":"440607","name":"三水区"},{"code":"440608","name":"高明区"}]},{"code":"4407","name":"江门市","children":[{"code":"440703","name":"蓬江区"},{"code":"440704","name":"江海区"},{"code":"440705","name":"新会区"},{"code":"440781","name":"台山市"},{"code":"440783","name":"开平市"},{"code":"440784","name":"鹤山市"},{"code":"440785","name":"恩平市"}]},{"code":"4408","name":"湛江市","children":[{"code":"440802","name":"赤坎区"},{"code":"440803","name":"霞山区"},{"code":"440804","name":"坡头区"},{"code":"440811","name":"麻章区"},{"code":"440823","name":"遂溪县"},{"code":"440825","name":"徐闻县"},{"code":"440881","name":"廉江市"},{"code":"440882","name":"雷州市"},{"code":"440883","name":"吴川市"}]},{"code":"4409","name":"茂名市","children":[{"code":"440902","name":"茂南区"},{"code":"440904","name":"电白区"},{"code":"440981","name":"高州市"},{"code":"440982","name":"化州市"},{"code":"440983","name":"信宜市"}]},{"code":"4412","name":"肇庆市","children":[{"code":"441202","name":"端州区"},{"code":"441203","name":"鼎湖区"},{"code":"441204","name":"高要区"},{"code":"441223","name":"广宁县"},{"code":"441224","name":"怀集县"},{"code":"441225","name":"封开县"},{"code":"441226","name":"德庆县"},{"code":"441284","name":"四会市"}]},{"code":"4413","name":"惠州市","children":[{"code":"441302","name":"惠城区"},{"code":"441303","name":"惠阳区"},{"code":"441322","name":"博罗县"},{"code":"441323","name":"惠东县"},{"code":"441324","name":"龙门县"}]},{"code":"4414","name":"梅州市","children":[{"code":"441402","name":"梅江区"},{"code":"441403","name":"梅县区"},{"code":"441422","name":"大埔县"},{"code":"441423","name":"丰顺县"},{"code":"441424","name":"五华县"},{"code":"441426","name":"平远县"},{"code":"441427","name":"蕉岭县"},{"code":"441481","name":"兴宁市"}]},{"code":"4415","name":"汕尾市","children":[{"code":"441502","name":"城区"},{"code":"441521","name":"海丰县"},{"code":"441523","name":"陆河县"},{"code":"441581","name":"陆丰市"}]},{"code":"4416","name":"河源市","children":[{"code":"441602","name":"源城区"},{"code":"441621","name":"紫金县"},{"code":"441622","name":"龙川县"},{"code":"441623","name":"连平县"},{"code":"441624","name":"和平县"},{"code":"441625","name":"东源县"}]},{"code":"4417","name":"阳江市","children":[{"code":"441702","name":"江城区"},{"code":"441704","name":"阳东区"},{"code":"441721","name":"阳西县"},{"code":"441781","name":"阳春市"}]},{"code":"4418","name":"清远市","children":[{"code":"441802","name":"清城区"},{"code":"441803","name":"清新区"},{"code":"441821","name":"佛冈县"},{"code":"441823","name":"阳山县"},{"code":"441825","name":"连山壮族瑶族自治县"},{"code":"441826","name":"连南瑶族自治县"},{"code":"441881","name":"英德市"},{"code":"441882","name":"连州市"}]},{"code":"4419","name":"东莞市","children":[{"code":"441900003","name":"东城街道"},{"code":"441900004","name":"南城街道"},{"code":"441900005","name":"万江街道"},{"code":"441900006","name":"莞城街道"},{"code":"441900101","name":"石碣镇"},{"code":"441900102","name":"石龙镇"},{"code":"441900103","name":"茶山镇"},{"code":"441900104","name":"石排镇"},{"code":"441900105","name":"企石镇"},{"code":"441900106","name":"横沥镇"},{"code":"441900107","name":"桥头镇"},{"code":"441900108","name":"谢岗镇"},{"code":"441900109","name":"东坑镇"},{"code":"441900110","name":"常平镇"},{"code":"441900111","name":"寮步镇"},{"code":"441900112","name":"樟木头镇"},{"code":"441900113","name":"大朗镇"},{"code":"441900114","name":"黄江镇"},{"code":"441900115","name":"清溪镇"},{"code":"441900116","name":"塘厦镇"},{"code":"441900117","name":"凤岗镇"},{"code":"441900118","name":"大岭山镇"},{"code":"441900119","name":"长安镇"},{"code":"441900121","name":"虎门镇"},{"code":"441900122","name":"厚街镇"},{"code":"441900123","name":"沙田镇"},{"code":"441900124","name":"道滘镇"},{"code":"441900125","name":"洪梅镇"},{"code":"441900126","name":"麻涌镇"},{"code":"441900127","name":"望牛墩镇"},{"code":"441900128","name":"中堂镇"},{"code":"441900129","name":"高埗镇"},{"code":"441900401","name":"松山湖"},{"code":"441900402","name":"东莞港"},{"code":"441900403","name":"东莞生态园"},{"code":"441900404","name":"东莞滨海湾新区"}]},{"code":"4420","name":"中山市","children":[{"code":"442000001","name":"石岐街道"},{"code":"442000002","name":"东区街道"},{"code":"442000003","name":"中山港街道"},{"code":"442000004","name":"西区街道"},{"code":"442000005","name":"南区街道"},{"code":"442000006","name":"五桂山街道"},{"code":"442000007","name":"民众街道"},{"code":"442000008","name":"南朗街道"},{"code":"442000101","name":"黄圃镇"},{"code":"442000103","name":"东凤镇"},{"code":"442000105","name":"古镇镇"},{"code":"442000106","name":"沙溪镇"},{"code":"442000107","name":"坦洲镇"},{"code":"442000108","name":"港口镇"},{"code":"442000109","name":"三角镇"},{"code":"442000110","name":"横栏镇"},{"code":"442000111","name":"南头镇"},{"code":"442000112","name":"阜沙镇"},{"code":"442000114","name":"三乡镇"},{"code":"442000115","name":"板芙镇"},{"code":"442000116","name":"大涌镇"},{"code":"442000117","name":"神湾镇"},{"code":"442000118","name":"小榄镇"}]},{"code":"4451","name":"潮州市","children":[{"code":"445102","name":"湘桥区"},{"code":"445103","name":"潮安区"},{"code":"445122","name":"饶平县"}]},{"code":"4452","name":"揭阳市","children":[{"code":"445202","name":"榕城区"},{"code":"445203","name":"揭东区"},{"code":"445222","name":"揭西县"},{"code":"445224","name":"惠来县"},{"code":"445281","name":"普宁市"}]},{"code":"4453","name":"云浮市","children":[{"code":"445302","name":"云城区"},{"code":"445303","name":"云安区"},{"code":"445321","name":"新兴县"},{"code":"445322","name":"郁南县"},{"code":"445381","name":"罗定市"}]}]},{"code":"45","name":"广西壮族自治区","children":[{"code":"4501","name":"南宁市","children":[{"code":"450102","name":"兴宁区"},{"code":"450103","name":"青秀区"},{"code":"450105","name":"江南区"},{"code":"450107","name":"西乡塘区"},{"code":"450108","name":"良庆区"},{"code":"450109","name":"邕宁区"},{"code":"450110","name":"武鸣区"},{"code":"450123","name":"隆安县"},{"code":"450124","name":"马山县"},{"code":"450125","name":"上林县"},{"code":"450126","name":"宾阳县"},{"code":"450181","name":"横州市"}]},{"code":"4502","name":"柳州市","children":[{"code":"450202","name":"城中区"},{"code":"450203","name":"鱼峰区"},{"code":"450204","name":"柳南区"},{"code":"450205","name":"柳北区"},{"code":"450206","name":"柳江区"},{"code":"450222","name":"柳城县"},{"code":"450223","name":"鹿寨县"},{"code":"450224","name":"融安县"},{"code":"450225","name":"融水苗族自治县"},{"code":"450226","name":"三江侗族自治县"}]},{"code":"4503","name":"桂林市","children":[{"code":"450302","name":"秀峰区"},{"code":"450303","name":"叠彩区"},{"code":"450304","name":"象山区"},{"code":"450305","name":"七星区"},{"code":"450311","name":"雁山区"},{"code":"450312","name":"临桂区"},{"code":"450321","name":"阳朔县"},{"code":"450323","name":"灵川县"},{"code":"450324","name":"全州县"},{"code":"450325","name":"兴安县"},{"code":"450326","name":"永福县"},{"code":"450327","name":"灌阳县"},{"code":"450328","name":"龙胜各族自治县"},{"code":"450329","name":"资源县"},{"code":"450330","name":"平乐县"},{"code":"450332","name":"恭城瑶族自治县"},{"code":"450381","name":"荔浦市"}]},{"code":"4504","name":"梧州市","children":[{"code":"450403","name":"万秀区"},{"code":"450405","name":"长洲区"},{"code":"450406","name":"龙圩区"},{"code":"450421","name":"苍梧县"},{"code":"450422","name":"藤县"},{"code":"450423","name":"蒙山县"},{"code":"450481","name":"岑溪市"}]},{"code":"4505","name":"北海市","children":[{"code":"450502","name":"海城区"},{"code":"450503","name":"银海区"},{"code":"450512","name":"铁山港区"},{"code":"450521","name":"合浦县"}]},{"code":"4506","name":"防城港市","children":[{"code":"450602","name":"港口区"},{"code":"450603","name":"防城区"},{"code":"450621","name":"上思县"},{"code":"450681","name":"东兴市"}]},{"code":"4507","name":"钦州市","children":[{"code":"450702","name":"钦南区"},{"code":"450703","name":"钦北区"},{"code":"450721","name":"灵山县"},{"code":"450722","name":"浦北县"}]},{"code":"4508","name":"贵港市","children":[{"code":"450802","name":"港北区"},{"code":"450803","name":"港南区"},{"code":"450804","name":"覃塘区"},{"code":"450821","name":"平南县"},{"code":"450881","name":"桂平市"}]},{"code":"4509","name":"玉林市","children":[{"code":"450902","name":"玉州区"},{"code":"450903","name":"福绵区"},{"code":"450921","name":"容县"},{"code":"450922","name":"陆川县"},{"code":"450923","name":"博白县"},{"code":"450924","name":"兴业县"},{"code":"450981","name":"北流市"}]},{"code":"4510","name":"百色市","children":[{"code":"451002","name":"右江区"},{"code":"451003","name":"田阳区"},{"code":"451022","name":"田东县"},{"code":"451024","name":"德保县"},{"code":"451026","name":"那坡县"},{"code":"451027","name":"凌云县"},{"code":"451028","name":"乐业县"},{"code":"451029","name":"田林县"},{"code":"451030","name":"西林县"},{"code":"451031","name":"隆林各族自治县"},{"code":"451081","name":"靖西市"},{"code":"451082","name":"平果市"}]},{"code":"4511","name":"贺州市","children":[{"code":"451102","name":"八步区"},{"code":"451103","name":"平桂区"},{"code":"451121","name":"昭平县"},{"code":"451122","name":"钟山县"},{"code":"451123","name":"富川瑶族自治县"}]},{"code":"4512","name":"河池市","children":[{"code":"451202","name":"金城江区"},{"code":"451203","name":"宜州区"},{"code":"451221","name":"南丹县"},{"code":"451222","name":"天峨县"},{"code":"451223","name":"凤山县"},{"code":"451224","name":"东兰县"},{"code":"451225","name":"罗城仫佬族自治县"},{"code":"451226","name":"环江毛南族自治县"},{"code":"451227","name":"巴马瑶族自治县"},{"code":"451228","name":"都安瑶族自治县"},{"code":"451229","name":"大化瑶族自治县"}]},{"code":"4513","name":"来宾市","children":[{"code":"451302","name":"兴宾区"},{"code":"451321","name":"忻城县"},{"code":"451322","name":"象州县"},{"code":"451323","name":"武宣县"},{"code":"451324","name":"金秀瑶族自治县"},{"code":"451381","name":"合山市"}]},{"code":"4514","name":"崇左市","children":[{"code":"451402","name":"江州区"},{"code":"451421","name":"扶绥县"},{"code":"451422","name":"宁明县"},{"code":"451423","name":"龙州县"},{"code":"451424","name":"大新县"},{"code":"451425","name":"天等县"},{"code":"451481","name":"凭祥市"}]}]},{"code":"46","name":"海南省","children":[{"code":"4601","name":"海口市","children":[{"code":"460105","name":"秀英区"},{"code":"460106","name":"龙华区"},{"code":"460107","name":"琼山区"},{"code":"460108","name":"美兰区"}]},{"code":"4602","name":"三亚市","children":[{"code":"460202","name":"海棠区"},{"code":"460203","name":"吉阳区"},{"code":"460204","name":"天涯区"},{"code":"460205","name":"崖州区"}]},{"code":"4603","name":"三沙市","children":[{"code":"460321","name":"西沙群岛"},{"code":"460322","name":"南沙群岛"},{"code":"460323","name":"中沙群岛的岛礁及其海域"}]},{"code":"4604","name":"儋州市","children":[{"code":"460400100","name":"那大镇"},{"code":"460400101","name":"和庆镇"},{"code":"460400102","name":"南丰镇"},{"code":"460400103","name":"大成镇"},{"code":"460400104","name":"雅星镇"},{"code":"460400105","name":"兰洋镇"},{"code":"460400106","name":"光村镇"},{"code":"460400107","name":"木棠镇"},{"code":"460400108","name":"海头镇"},{"code":"460400109","name":"峨蔓镇"},{"code":"460400111","name":"王五镇"},{"code":"460400112","name":"白马井镇"},{"code":"460400113","name":"中和镇"},{"code":"460400114","name":"排浦镇"},{"code":"460400115","name":"东成镇"},{"code":"460400116","name":"新州镇"},{"code":"460400499","name":"洋浦经济开发区"},{"code":"460400500","name":"华南热作学院"}]},{"code":"4690","name":"省直辖县级行政区划","children":[{"code":"469001","name":"五指山市"},{"code":"469002","name":"琼海市"},{"code":"469005","name":"文昌市"},{"code":"469006","name":"万宁市"},{"code":"469007","name":"东方市"},{"code":"469021","name":"定安县"},{"code":"469022","name":"屯昌县"},{"code":"469023","name":"澄迈县"},{"code":"469024","name":"临高县"},{"code":"469025","name":"白沙黎族自治县"},{"code":"469026","name":"昌江黎族自治县"},{"code":"469027","name":"乐东黎族自治县"},{"code":"469028","name":"陵水黎族自治县"},{"code":"469029","name":"保亭黎族苗族自治县"},{"code":"469030","name":"琼中黎族苗族自治县"}]}]},{"code":"50","name":"重庆市","children":[{"code":"5001","name":"市辖区","children":[{"code":"500101","name":"万州区"},{"code":"500102","name":"涪陵区"},{"code":"500103","name":"渝中区"},{"code":"500104","name":"大渡口区"},{"code":"500105","name":"江北区"},{"code":"500106","name":"沙坪坝区"},{"code":"500107","name":"九龙坡区"},{"code":"500108","name":"南岸区"},{"code":"500109","name":"北碚区"},{"code":"500110","name":"綦江区"},{"code":"500111","name":"大足区"},{"code":"500112","name":"渝北区"},{"code":"500113","name":"巴南区"},{"code":"500114","name":"黔江区"},{"code":"500115","name":"长寿区"},{"code":"500116","name":"江津区"},{"code":"500117","name":"合川区"},{"code":"500118","name":"永川区"},{"code":"500119","name":"南川区"},{"code":"500120","name":"璧山区"},{"code":"500151","name":"铜梁区"},{"code":"500152","name":"潼南区"},{"code":"500153","name":"荣昌区"},{"code":"500154","name":"开州区"},{"code":"500155","name":"梁平区"},{"code":"500156","name":"武隆区"}]},{"code":"5002","name":"县","children":[{"code":"500229","name":"城口县"},{"code":"500230","name":"丰都县"},{"code":"500231","name":"垫江县"},{"code":"500233","name":"忠县"},{"code":"500235","name":"云阳县"},{"code":"500236","name":"奉节县"},{"code":"500237","name":"巫山县"},{"code":"500238","name":"巫溪县"},{"code":"500240","name":"石柱土家族自治县"},{"code":"500241","name":"秀山土家族苗族自治县"},{"code":"500242","name":"酉阳土家族苗族自治县"},{"code":"500243","name":"彭水苗族土家族自治县"}]}]},{"code":"51","name":"四川省","children":[{"code":"5101","name":"成都市","children":[{"code":"510104","name":"锦江区"},{"code":"510105","name":"青羊区"},{"code":"510106","name":"金牛区"},{"code":"510107","name":"武侯区"},{"code":"510108","name":"成华区"},{"code":"510112","name":"龙泉驿区"},{"code":"510113","name":"青白江区"},{"code":"510114","name":"新都区"},{"code":"510115","name":"温江区"},{"code":"510116","name":"双流区"},{"code":"510117","name":"郫都区"},{"code":"510118","name":"新津区"},{"code":"510121","name":"金堂县"},{"code":"510129","name":"大邑县"},{"code":"510131","name":"蒲江县"},{"code":"510181","name":"都江堰市"},{"code":"510182","name":"彭州市"},{"code":"510183","name":"邛崃市"},{"code":"510184","name":"崇州市"},{"code":"510185","name":"简阳市"}]},{"code":"5103","name":"自贡市","children":[{"code":"510302","name":"自流井区"},{"code":"510303","name":"贡井区"},{"code":"510304","name":"大安区"},{"code":"510311","name":"沿滩区"},{"code":"510321","name":"荣县"},{"code":"510322","name":"富顺县"}]},{"code":"5104","name":"攀枝花市","children":[{"code":"510402","name":"东区"},{"code":"510403","name":"西区"},{"code":"510411","name":"仁和区"},{"code":"510421","name":"米易县"},{"code":"510422","name":"盐边县"}]},{"code":"5105","name":"泸州市","children":[{"code":"510502","name":"江阳区"},{"code":"510503","name":"纳溪区"},{"code":"510504","name":"龙马潭区"},{"code":"510521","name":"泸县"},{"code":"510522","name":"合江县"},{"code":"510524","name":"叙永县"},{"code":"510525","name":"古蔺县"}]},{"code":"5106","name":"德阳市","children":[{"code":"510603","name":"旌阳区"},{"code":"510604","name":"罗江区"},{"code":"510623","name":"中江县"},{"code":"510681","name":"广汉市"},{"code":"510682","name":"什邡市"},{"code":"510683","name":"绵竹市"}]},{"code":"5107","name":"绵阳市","children":[{"code":"510703","name":"涪城区"},{"code":"510704","name":"游仙区"},{"code":"510705","name":"安州区"},{"code":"510722","name":"三台县"},{"code":"510723","name":"盐亭县"},{"code":"510725","name":"梓潼县"},{"code":"510726","name":"北川羌族自治县"},{"code":"510727","name":"平武县"},{"code":"510781","name":"江油市"}]},{"code":"5108","name":"广元市","children":[{"code":"510802","name":"利州区"},{"code":"510811","name":"昭化区"},{"code":"510812","name":"朝天区"},{"code":"510821","name":"旺苍县"},{"code":"510822","name":"青川县"},{"code":"510823","name":"剑阁县"},{"code":"510824","name":"苍溪县"}]},{"code":"5109","name":"遂宁市","children":[{"code":"510903","name":"船山区"},{"code":"510904","name":"安居区"},{"code":"510921","name":"蓬溪县"},{"code":"510923","name":"大英县"},{"code":"510981","name":"射洪市"}]},{"code":"5110","name":"内江市","children":[{"code":"511002","name":"市中区"},{"code":"511011","name":"东兴区"},{"code":"511024","name":"威远县"},{"code":"511025","name":"资中县"},{"code":"511083","name":"隆昌市"}]},{"code":"5111","name":"乐山市","children":[{"code":"511102","name":"市中区"},{"code":"511111","name":"沙湾区"},{"code":"511112","name":"五通桥区"},{"code":"511113","name":"金口河区"},{"code":"511123","name":"犍为县"},{"code":"511124","name":"井研县"},{"code":"511126","name":"夹江县"},{"code":"511129","name":"沐川县"},{"code":"511132","name":"峨边彝族自治县"},{"code":"511133","name":"马边彝族自治县"},{"code":"511181","name":"峨眉山市"}]},{"code":"5113","name":"南充市","children":[{"code":"511302","name":"顺庆区"},{"code":"511303","name":"高坪区"},{"code":"511304","name":"嘉陵区"},{"code":"511321","name":"南部县"},{"code":"511322","name":"营山县"},{"code":"511323","name":"蓬安县"},{"code":"511324","name":"仪陇县"},{"code":"511325","name":"西充县"},{"code":"511381","name":"阆中市"}]},{"code":"5114","name":"眉山市","children":[{"code":"511402","name":"东坡区"},{"code":"511403","name":"彭山区"},{"code":"511421","name":"仁寿县"},{"code":"511423","name":"洪雅县"},{"code":"511424","name":"丹棱县"},{"code":"511425","name":"青神县"}]},{"code":"5115","name":"宜宾市","children":[{"code":"511502","name":"翠屏区"},{"code":"511503","name":"南溪区"},{"code":"511504","name":"叙州区"},{"code":"511523","name":"江安县"},{"code":"511524","name":"长宁县"},{"code":"511525","name":"高县"},{"code":"511526","name":"珙县"},{"code":"511527","name":"筠连县"},{"code":"511528","name":"兴文县"},{"code":"511529","name":"屏山县"}]},{"code":"5116","name":"广安市","children":[{"code":"511602","name":"广安区"},{"code":"511603","name":"前锋区"},{"code":"511621","name":"岳池县"},{"code":"511622","name":"武胜县"},{"code":"511623","name":"邻水县"},{"code":"511681","name":"华蓥市"}]},{"code":"5117","name":"达州市","children":[{"code":"511702","name":"通川区"},{"code":"511703","name":"达川区"},{"code":"511722","name":"宣汉县"},{"code":"511723","name":"开江县"},{"code":"511724","name":"大竹县"},{"code":"511725","name":"渠县"},{"code":"511781","name":"万源市"}]},{"code":"5118","name":"雅安市","children":[{"code":"511802","name":"雨城区"},{"code":"511803","name":"名山区"},{"code":"511822","name":"荥经县"},{"code":"511823","name":"汉源县"},{"code":"511824","name":"石棉县"},{"code":"511825","name":"天全县"},{"code":"511826","name":"芦山县"},{"code":"511827","name":"宝兴县"}]},{"code":"5119","name":"巴中市","children":[{"code":"511902","name":"巴州区"},{"code":"511903","name":"恩阳区"},{"code":"511921","name":"通江县"},{"code":"511922","name":"南江县"},{"code":"511923","name":"平昌县"}]},{"code":"5120","name":"资阳市","children":[{"code":"512002","name":"雁江区"},{"code":"512021","name":"安岳县"},{"code":"512022","name":"乐至县"}]},{"code":"5132","name":"阿坝藏族羌族自治州","children":[{"code":"513201","name":"马尔康市"},{"code":"513221","name":"汶川县"},{"code":"513222","name":"理县"},{"code":"513223","name":"茂县"},{"code":"513224","name":"松潘县"},{"code":"513225","name":"九寨沟县"},{"code":"513226","name":"金川县"},{"code":"513227","name":"小金县"},{"code":"513228","name":"黑水县"},{"code":"513230","name":"壤塘县"},{"code":"513231","name":"阿坝县"},{"code":"513232","name":"若尔盖县"},{"code":"513233","name":"红原县"}]},{"code":"5133","name":"甘孜藏族自治州","children":[{"code":"513301","name":"康定市"},{"code":"513322","name":"泸定县"},{"code":"513323","name":"丹巴县"},{"code":"513324","name":"九龙县"},{"code":"513325","name":"雅江县"},{"code":"513326","name":"道孚县"},{"code":"513327","name":"炉霍县"},{"code":"513328","name":"甘孜县"},{"code":"513329","name":"新龙县"},{"code":"513330","name":"德格县"},{"code":"513331","name":"白玉县"},{"code":"513332","name":"石渠县"},{"code":"513333","name":"色达县"},{"code":"513334","name":"理塘县"},{"code":"513335","name":"巴塘县"},{"code":"513336","name":"乡城县"},{"code":"513337","name":"稻城县"},{"code":"513338","name":"得荣县"}]},{"code":"5134","name":"凉山彝族自治州","children":[{"code":"513401","name":"西昌市"},{"code":"513402","name":"会理市"},{"code":"513422","name":"木里藏族自治县"},{"code":"513423","name":"盐源县"},{"code":"513424","name":"德昌县"},{"code":"513426","name":"会东县"},{"code":"513427","name":"宁南县"},{"code":"513428","name":"普格县"},{"code":"513429","name":"布拖县"},{"code":"513430","name":"金阳县"},{"code":"513431","name":"昭觉县"},{"code":"513432","name":"喜德县"},{"code":"513433","name":"冕宁县"},{"code":"513434","name":"越西县"},{"code":"513435","name":"甘洛县"},{"code":"513436","name":"美姑县"},{"code":"513437","name":"雷波县"}]}]},{"code":"52","name":"贵州省","children":[{"code":"5201","name":"贵阳市","children":[{"code":"520102","name":"南明区"},{"code":"520103","name":"云岩区"},{"code":"520111","name":"花溪区"},{"code":"520112","name":"乌当区"},{"code":"520113","name":"白云区"},{"code":"520115","name":"观山湖区"},{"code":"520121","name":"开阳县"},{"code":"520122","name":"息烽县"},{"code":"520123","name":"修文县"},{"code":"520181","name":"清镇市"}]},{"code":"5202","name":"六盘水市","children":[{"code":"520201","name":"钟山区"},{"code":"520203","name":"六枝特区"},{"code":"520204","name":"水城区"},{"code":"520281","name":"盘州市"}]},{"code":"5203","name":"遵义市","children":[{"code":"520302","name":"红花岗区"},{"code":"520303","name":"汇川区"},{"code":"520304","name":"播州区"},{"code":"520322","name":"桐梓县"},{"code":"520323","name":"绥阳县"},{"code":"520324","name":"正安县"},{"code":"520325","name":"道真仡佬族苗族自治县"},{"code":"520326","name":"务川仡佬族苗族自治县"},{"code":"520327","name":"凤冈县"},{"code":"520328","name":"湄潭县"},{"code":"520329","name":"余庆县"},{"code":"520330","name":"习水县"},{"code":"520381","name":"赤水市"},{"code":"520382","name":"仁怀市"}]},{"code":"5204","name":"安顺市","children":[{"code":"520402","name":"西秀区"},{"code":"520403","name":"平坝区"},{"code":"520422","name":"普定县"},{"code":"520423","name":"镇宁布依族苗族自治县"},{"code":"520424","name":"关岭布依族苗族自治县"},{"code":"520425","name":"紫云苗族布依族自治县"}]},{"code":"5205","name":"毕节市","children":[{"code":"520502","name":"七星关区"},{"code":"520521","name":"大方县"},{"code":"520523","name":"金沙县"},{"code":"520524","name":"织金县"},{"code":"520525","name":"纳雍县"},{"code":"520526","name":"威宁彝族回族苗族自治县"},{"code":"520527","name":"赫章县"},{"code":"520581","name":"黔西市"}]},{"code":"5206","name":"铜仁市","children":[{"code":"520602","name":"碧江区"},{"code":"520603","name":"万山区"},{"code":"520621","name":"江口县"},{"code":"520622","name":"玉屏侗族自治县"},{"code":"520623","name":"石阡县"},{"code":"520624","name":"思南县"},{"code":"520625","name":"印江土家族苗族自治县"},{"code":"520626","name":"德江县"},{"code":"520627","name":"沿河土家族自治县"},{"code":"520628","name":"松桃苗族自治县"}]},{"code":"5223","name":"黔西南布依族苗族自治州","children":[{"code":"522301","name":"兴义市"},{"code":"522302","name":"兴仁市"},{"code":"522323","name":"普安县"},{"code":"522324","name":"晴隆县"},{"code":"522325","name":"贞丰县"},{"code":"522326","name":"望谟县"},{"code":"522327","name":"册亨县"},{"code":"522328","name":"安龙县"}]},{"code":"5226","name":"黔东南苗族侗族自治州","children":[{"code":"522601","name":"凯里市"},{"code":"522622","name":"黄平县"},{"code":"522623","name":"施秉县"},{"code":"522624","name":"三穗县"},{"code":"522625","name":"镇远县"},{"code":"522626","name":"岑巩县"},{"code":"522627","name":"天柱县"},{"code":"522628","name":"锦屏县"},{"code":"522629","name":"剑河县"},{"code":"522630","name":"台江县"},{"code":"522631","name":"黎平县"},{"code":"522632","name":"榕江县"},{"code":"522633","name":"从江县"},{"code":"522634","name":"雷山县"},{"code":"522635","name":"麻江县"},{"code":"522636","name":"丹寨县"}]},{"code":"5227","name":"黔南布依族苗族自治州","children":[{"code":"522701","name":"都匀市"},{"code":"522702","name":"福泉市"},{"code":"522722","name":"荔波县"},{"code":"522723","name":"贵定县"},{"code":"522725","name":"瓮安县"},{"code":"522726","name":"独山县"},{"code":"522727","name":"平塘县"},{"code":"522728","name":"罗甸县"},{"code":"522729","name":"长顺县"},{"code":"522730","name":"龙里县"},{"code":"522731","name":"惠水县"},{"code":"522732","name":"三都水族自治县"}]}]},{"code":"53","name":"云南省","children":[{"code":"5301","name":"昆明市","children":[{"code":"530102","name":"五华区"},{"code":"530103","name":"盘龙区"},{"code":"530111","name":"官渡区"},{"code":"530112","name":"西山区"},{"code":"530113","name":"东川区"},{"code":"530114","name":"呈贡区"},{"code":"530115","name":"晋宁区"},{"code":"530124","name":"富民县"},{"code":"530125","name":"宜良县"},{"code":"530126","name":"石林彝族自治县"},{"code":"530127","name":"嵩明县"},{"code":"530128","name":"禄劝彝族苗族自治县"},{"code":"530129","name":"寻甸回族彝族自治县"},{"code":"530181","name":"安宁市"}]},{"code":"5303","name":"曲靖市","children":[{"code":"530302","name":"麒麟区"},{"code":"530303","name":"沾益区"},{"code":"530304","name":"马龙区"},{"code":"530322","name":"陆良县"},{"code":"530323","name":"师宗县"},{"code":"530324","name":"罗平县"},{"code":"530325","name":"富源县"},{"code":"530326","name":"会泽县"},{"code":"530381","name":"宣威市"}]},{"code":"5304","name":"玉溪市","children":[{"code":"530402","name":"红塔区"},{"code":"530403","name":"江川区"},{"code":"530423","name":"通海县"},{"code":"530424","name":"华宁县"},{"code":"530425","name":"易门县"},{"code":"530426","name":"峨山彝族自治县"},{"code":"530427","name":"新平彝族傣族自治县"},{"code":"530428","name":"元江哈尼族彝族傣族自治县"},{"code":"530481","name":"澄江市"}]},{"code":"5305","name":"保山市","children":[{"code":"530502","name":"隆阳区"},{"code":"530521","name":"施甸县"},{"code":"530523","name":"龙陵县"},{"code":"530524","name":"昌宁县"},{"code":"530581","name":"腾冲市"}]},{"code":"5306","name":"昭通市","children":[{"code":"530602","name":"昭阳区"},{"code":"530621","name":"鲁甸县"},{"code":"530622","name":"巧家县"},{"code":"530623","name":"盐津县"},{"code":"530624","name":"大关县"},{"code":"530625","name":"永善县"},{"code":"530626","name":"绥江县"},{"code":"530627","name":"镇雄县"},{"code":"530628","name":"彝良县"},{"code":"530629","name":"威信县"},{"code":"530681","name":"水富市"}]},{"code":"5307","name":"丽江市","children":[{"code":"530702","name":"古城区"},{"code":"530721","name":"玉龙纳西族自治县"},{"code":"530722","name":"永胜县"},{"code":"530723","name":"华坪县"},{"code":"530724","name":"宁蒗彝族自治县"}]},{"code":"5308","name":"普洱市","children":[{"code":"530802","name":"思茅区"},{"code":"530821","name":"宁洱哈尼族彝族自治县"},{"code":"530822","name":"墨江哈尼族自治县"},{"code":"530823","name":"景东彝族自治县"},{"code":"530824","name":"景谷傣族彝族自治县"},{"code":"530825","name":"镇沅彝族哈尼族拉祜族自治县"},{"code":"530826","name":"江城哈尼族彝族自治县"},{"code":"530827","name":"孟连傣族拉祜族佤族自治县"},{"code":"530828","name":"澜沧拉祜族自治县"},{"code":"530829","name":"西盟佤族自治县"}]},{"code":"5309","name":"临沧市","children":[{"code":"530902","name":"临翔区"},{"code":"530921","name":"凤庆县"},{"code":"530922","name":"云县"},{"code":"530923","name":"永德县"},{"code":"530924","name":"镇康县"},{"code":"530925","name":"双江拉祜族佤族布朗族傣族自治县"},{"code":"530926","name":"耿马傣族佤族自治县"},{"code":"530927","name":"沧源佤族自治县"}]},{"code":"5323","name":"楚雄彝族自治州","children":[{"code":"532301","name":"楚雄市"},{"code":"532302","name":"禄丰市"},{"code":"532322","name":"双柏县"},{"code":"532323","name":"牟定县"},{"code":"532324","name":"南华县"},{"code":"532325","name":"姚安县"},{"code":"532326","name":"大姚县"},{"code":"532327","name":"永仁县"},{"code":"532328","name":"元谋县"},{"code":"532329","name":"武定县"}]},{"code":"5325","name":"红河哈尼族彝族自治州","children":[{"code":"532501","name":"个旧市"},{"code":"532502","name":"开远市"},{"code":"532503","name":"蒙自市"},{"code":"532504","name":"弥勒市"},{"code":"532523","name":"屏边苗族自治县"},{"code":"532524","name":"建水县"},{"code":"532525","name":"石屏县"},{"code":"532527","name":"泸西县"},{"code":"532528","name":"元阳县"},{"code":"532529","name":"红河县"},{"code":"532530","name":"金平苗族瑶族傣族自治县"},{"code":"532531","name":"绿春县"},{"code":"532532","name":"河口瑶族自治县"}]},{"code":"5326","name":"文山壮族苗族自治州","children":[{"code":"532601","name":"文山市"},{"code":"532622","name":"砚山县"},{"code":"532623","name":"西畴县"},{"code":"532624","name":"麻栗坡县"},{"code":"532625","name":"马关县"},{"code":"532626","name":"丘北县"},{"code":"532627","name":"广南县"},{"code":"532628","name":"富宁县"}]},{"code":"5328","name":"西双版纳傣族自治州","children":[{"code":"532801","name":"景洪市"},{"code":"532822","name":"勐海县"},{"code":"532823","name":"勐腊县"}]},{"code":"5329","name":"大理白族自治州","children":[{"code":"532901","name":"大理市"},{"code":"532922","name":"漾濞彝族自治县"},{"code":"532923","name":"祥云县"},{"code":"532924","name":"宾川县"},{"code":"532925","name":"弥渡县"},{"code":"532926","name":"南涧彝族自治县"},{"code":"532927","name":"巍山彝族回族自治县"},{"code":"532928","name":"永平县"},{"code":"532929","name":"云龙县"},{"code":"532930","name":"洱源县"},{"code":"532931","name":"剑川县"},{"code":"532932","name":"鹤庆县"}]},{"code":"5331","name":"德宏傣族景颇族自治州","children":[{"code":"533102","name":"瑞丽市"},{"code":"533103","name":"芒市"},{"code":"533122","name":"梁河县"},{"code":"533123","name":"盈江县"},{"code":"533124","name":"陇川县"}]},{"code":"5333","name":"怒江傈僳族自治州","children":[{"code":"533301","name":"泸水市"},{"code":"533323","name":"福贡县"},{"code":"533324","name":"贡山独龙族怒族自治县"},{"code":"533325","name":"兰坪白族普米族自治县"}]},{"code":"5334","name":"迪庆藏族自治州","children":[{"code":"533401","name":"香格里拉市"},{"code":"533422","name":"德钦县"},{"code":"533423","name":"维西傈僳族自治县"}]}]},{"code":"54","name":"西藏自治区","children":[{"code":"5401","name":"拉萨市","children":[{"code":"540102","name":"城关区"},{"code":"540103","name":"堆龙德庆区"},{"code":"540104","name":"达孜区"},{"code":"540121","name":"林周县"},{"code":"540122","name":"当雄县"},{"code":"540123","name":"尼木县"},{"code":"540124","name":"曲水县"},{"code":"540127","name":"墨竹工卡县"},{"code":"540171","name":"格尔木藏青工业园区"},{"code":"540172","name":"拉萨经济技术开发区"},{"code":"540173","name":"西藏文化旅游创意园区"},{"code":"540174","name":"达孜工业园区"}]},{"code":"5402","name":"日喀则市","children":[{"code":"540202","name":"桑珠孜区"},{"code":"540221","name":"南木林县"},{"code":"540222","name":"江孜县"},{"code":"540223","name":"定日县"},{"code":"540224","name":"萨迦县"},{"code":"540225","name":"拉孜县"},{"code":"540226","name":"昂仁县"},{"code":"540227","name":"谢通门县"},{"code":"540228","name":"白朗县"},{"code":"540229","name":"仁布县"},{"code":"540230","name":"康马县"},{"code":"540231","name":"定结县"},{"code":"540232","name":"仲巴县"},{"code":"540233","name":"亚东县"},{"code":"540234","name":"吉隆县"},{"code":"540235","name":"聂拉木县"},{"code":"540236","name":"萨嘎县"},{"code":"540237","name":"岗巴县"}]},{"code":"5403","name":"昌都市","children":[{"code":"540302","name":"卡若区"},{"code":"540321","name":"江达县"},{"code":"540322","name":"贡觉县"},{"code":"540323","name":"类乌齐县"},{"code":"540324","name":"丁青县"},{"code":"540325","name":"察雅县"},{"code":"540326","name":"八宿县"},{"code":"540327","name":"左贡县"},{"code":"540328","name":"芒康县"},{"code":"540329","name":"洛隆县"},{"code":"540330","name":"边坝县"}]},{"code":"5404","name":"林芝市","children":[{"code":"540402","name":"巴宜区"},{"code":"540421","name":"工布江达县"},{"code":"540423","name":"墨脱县"},{"code":"540424","name":"波密县"},{"code":"540425","name":"察隅县"},{"code":"540426","name":"朗县"},{"code":"540481","name":"米林市"}]},{"code":"5405","name":"山南市","children":[{"code":"540502","name":"乃东区"},{"code":"540521","name":"扎囊县"},{"code":"540522","name":"贡嘎县"},{"code":"540523","name":"桑日县"},{"code":"540524","name":"琼结县"},{"code":"540525","name":"曲松县"},{"code":"540526","name":"措美县"},{"code":"540527","name":"洛扎县"},{"code":"540528","name":"加查县"},{"code":"540529","name":"隆子县"},{"code":"540531","name":"浪卡子县"},{"code":"540581","name":"错那市"}]},{"code":"5406","name":"那曲市","children":[{"code":"540602","name":"色尼区"},{"code":"540621","name":"嘉黎县"},{"code":"540622","name":"比如县"},{"code":"540623","name":"聂荣县"},{"code":"540624","name":"安多县"},{"code":"540625","name":"申扎县"},{"code":"540626","name":"索县"},{"code":"540627","name":"班戈县"},{"code":"540628","name":"巴青县"},{"code":"540629","name":"尼玛县"},{"code":"540630","name":"双湖县"}]},{"code":"5425","name":"阿里地区","children":[{"code":"542521","name":"普兰县"},{"code":"542522","name":"札达县"},{"code":"542523","name":"噶尔县"},{"code":"542524","name":"日土县"},{"code":"542525","name":"革吉县"},{"code":"542526","name":"改则县"},{"code":"542527","name":"措勤县"}]}]},{"code":"61","name":"陕西省","children":[{"code":"6101","name":"西安市","children":[{"code":"610102","name":"新城区"},{"code":"610103","name":"碑林区"},{"code":"610104","name":"莲湖区"},{"code":"610111","name":"灞桥区"},{"code":"610112","name":"未央区"},{"code":"610113","name":"雁塔区"},{"code":"610114","name":"阎良区"},{"code":"610115","name":"临潼区"},{"code":"610116","name":"长安区"},{"code":"610117","name":"高陵区"},{"code":"610118","name":"鄠邑区"},{"code":"610122","name":"蓝田县"},{"code":"610124","name":"周至县"}]},{"code":"6102","name":"铜川市","children":[{"code":"610202","name":"王益区"},{"code":"610203","name":"印台区"},{"code":"610204","name":"耀州区"},{"code":"610222","name":"宜君县"}]},{"code":"6103","name":"宝鸡市","children":[{"code":"610302","name":"渭滨区"},{"code":"610303","name":"金台区"},{"code":"610304","name":"陈仓区"},{"code":"610305","name":"凤翔区"},{"code":"610323","name":"岐山县"},{"code":"610324","name":"扶风县"},{"code":"610326","name":"眉县"},{"code":"610327","name":"陇县"},{"code":"610328","name":"千阳县"},{"code":"610329","name":"麟游县"},{"code":"610330","name":"凤县"},{"code":"610331","name":"太白县"}]},{"code":"6104","name":"咸阳市","children":[{"code":"610402","name":"秦都区"},{"code":"610403","name":"杨陵区"},{"code":"610404","name":"渭城区"},{"code":"610422","name":"三原县"},{"code":"610423","name":"泾阳县"},{"code":"610424","name":"乾县"},{"code":"610425","name":"礼泉县"},{"code":"610426","name":"永寿县"},{"code":"610428","name":"长武县"},{"code":"610429","name":"旬邑县"},{"code":"610430","name":"淳化县"},{"code":"610431","name":"武功县"},{"code":"610481","name":"兴平市"},{"code":"610482","name":"彬州市"}]},{"code":"6105","name":"渭南市","children":[{"code":"610502","name":"临渭区"},{"code":"610503","name":"华州区"},{"code":"610522","name":"潼关县"},{"code":"610523","name":"大荔县"},{"code":"610524","name":"合阳县"},{"code":"610525","name":"澄城县"},{"code":"610526","name":"蒲城县"},{"code":"610527","name":"白水县"},{"code":"610528","name":"富平县"},{"code":"610581","name":"韩城市"},{"code":"610582","name":"华阴市"}]},{"code":"6106","name":"延安市","children":[{"code":"610602","name":"宝塔区"},{"code":"610603","name":"安塞区"},{"code":"610621","name":"延长县"},{"code":"610622","name":"延川县"},{"code":"610625","name":"志丹县"},{"code":"610626","name":"吴起县"},{"code":"610627","name":"甘泉县"},{"code":"610628","name":"富县"},{"code":"610629","name":"洛川县"},{"code":"610630","name":"宜川县"},{"code":"610631","name":"黄龙县"},{"code":"610632","name":"黄陵县"},{"code":"610681","name":"子长市"}]},{"code":"6107","name":"汉中市","children":[{"code":"610702","name":"汉台区"},{"code":"610703","name":"南郑区"},{"code":"610722","name":"城固县"},{"code":"610723","name":"洋县"},{"code":"610724","name":"西乡县"},{"code":"610725","name":"勉县"},{"code":"610726","name":"宁强县"},{"code":"610727","name":"略阳县"},{"code":"610728","name":"镇巴县"},{"code":"610729","name":"留坝县"},{"code":"610730","name":"佛坪县"}]},{"code":"6108","name":"榆林市","children":[{"code":"610802","name":"榆阳区"},{"code":"610803","name":"横山区"},{"code":"610822","name":"府谷县"},{"code":"610824","name":"靖边县"},{"code":"610825","name":"定边县"},{"code":"610826","name":"绥德县"},{"code":"610827","name":"米脂县"},{"code":"610828","name":"佳县"},{"code":"610829","name":"吴堡县"},{"code":"610830","name":"清涧县"},{"code":"610831","name":"子洲县"},{"code":"610881","name":"神木市"}]},{"code":"6109","name":"安康市","children":[{"code":"610902","name":"汉滨区"},{"code":"610921","name":"汉阴县"},{"code":"610922","name":"石泉县"},{"code":"610923","name":"宁陕县"},{"code":"610924","name":"紫阳县"},{"code":"610925","name":"岚皋县"},{"code":"610926","name":"平利县"},{"code":"610927","name":"镇坪县"},{"code":"610929","name":"白河县"},{"code":"610981","name":"旬阳市"}]},{"code":"6110","name":"商洛市","children":[{"code":"611002","name":"商州区"},{"code":"611021","name":"洛南县"},{"code":"611022","name":"丹凤县"},{"code":"611023","name":"商南县"},{"code":"611024","name":"山阳县"},{"code":"611025","name":"镇安县"},{"code":"611026","name":"柞水县"}]}]},{"code":"62","name":"甘肃省","children":[{"code":"6201","name":"兰州市","children":[{"code":"620102","name":"城关区"},{"code":"620103","name":"七里河区"},{"code":"620104","name":"西固区"},{"code":"620105","name":"安宁区"},{"code":"620111","name":"红古区"},{"code":"620121","name":"永登县"},{"code":"620122","name":"皋兰县"},{"code":"620123","name":"榆中县"},{"code":"620171","name":"兰州新区"}]},{"code":"6202","name":"嘉峪关市","children":[{"code":"620201001","name":"雄关街道"},{"code":"620201002","name":"钢城街道"},{"code":"620201100","name":"新城镇"},{"code":"620201101","name":"峪泉镇"},{"code":"620201102","name":"文殊镇"}]},{"code":"6203","name":"金昌市","children":[{"code":"620302","name":"金川区"},{"code":"620321","name":"永昌县"}]},{"code":"6204","name":"白银市","children":[{"code":"620402","name":"白银区"},{"code":"620403","name":"平川区"},{"code":"620421","name":"靖远县"},{"code":"620422","name":"会宁县"},{"code":"620423","name":"景泰县"}]},{"code":"6205","name":"天水市","children":[{"code":"620502","name":"秦州区"},{"code":"620503","name":"麦积区"},{"code":"620521","name":"清水县"},{"code":"620522","name":"秦安县"},{"code":"620523","name":"甘谷县"},{"code":"620524","name":"武山县"},{"code":"620525","name":"张家川回族自治县"}]},{"code":"6206","name":"武威市","children":[{"code":"620602","name":"凉州区"},{"code":"620621","name":"民勤县"},{"code":"620622","name":"古浪县"},{"code":"620623","name":"天祝藏族自治县"}]},{"code":"6207","name":"张掖市","children":[{"code":"620702","name":"甘州区"},{"code":"620721","name":"肃南裕固族自治县"},{"code":"620722","name":"民乐县"},{"code":"620723","name":"临泽县"},{"code":"620724","name":"高台县"},{"code":"620725","name":"山丹县"}]},{"code":"6208","name":"平凉市","children":[{"code":"620802","name":"崆峒区"},{"code":"620821","name":"泾川县"},{"code":"620822","name":"灵台县"},{"code":"620823","name":"崇信县"},{"code":"620825","name":"庄浪县"},{"code":"620826","name":"静宁县"},{"code":"620881","name":"华亭市"}]},{"code":"6209","name":"酒泉市","children":[{"code":"620902","name":"肃州区"},{"code":"620921","name":"金塔县"},{"code":"620922","name":"瓜州县"},{"code":"620923","name":"肃北蒙古族自治县"},{"code":"620924","name":"阿克塞哈萨克族自治县"},{"code":"620981","name":"玉门市"},{"code":"620982","name":"敦煌市"}]},{"code":"6210","name":"庆阳市","children":[{"code":"621002","name":"西峰区"},{"code":"621021","name":"庆城县"},{"code":"621022","name":"环县"},{"code":"621023","name":"华池县"},{"code":"621024","name":"合水县"},{"code":"621025","name":"正宁县"},{"code":"621026","name":"宁县"},{"code":"621027","name":"镇原县"}]},{"code":"6211","name":"定西市","children":[{"code":"621102","name":"安定区"},{"code":"621121","name":"通渭县"},{"code":"621122","name":"陇西县"},{"code":"621123","name":"渭源县"},{"code":"621124","name":"临洮县"},{"code":"621125","name":"漳县"},{"code":"621126","name":"岷县"}]},{"code":"6212","name":"陇南市","children":[{"code":"621202","name":"武都区"},{"code":"621221","name":"成县"},{"code":"621222","name":"文县"},{"code":"621223","name":"宕昌县"},{"code":"621224","name":"康县"},{"code":"621225","name":"西和县"},{"code":"621226","name":"礼县"},{"code":"621227","name":"徽县"},{"code":"621228","name":"两当县"}]},{"code":"6229","name":"临夏回族自治州","children":[{"code":"622901","name":"临夏市"},{"code":"622921","name":"临夏县"},{"code":"622922","name":"康乐县"},{"code":"622923","name":"永靖县"},{"code":"622924","name":"广河县"},{"code":"622925","name":"和政县"},{"code":"622926","name":"东乡族自治县"},{"code":"622927","name":"积石山保安族东乡族撒拉族自治县"}]},{"code":"6230","name":"甘南藏族自治州","children":[{"code":"623001","name":"合作市"},{"code":"623021","name":"临潭县"},{"code":"623022","name":"卓尼县"},{"code":"623023","name":"舟曲县"},{"code":"623024","name":"迭部县"},{"code":"623025","name":"玛曲县"},{"code":"623026","name":"碌曲县"},{"code":"623027","name":"夏河县"}]}]},{"code":"63","name":"青海省","children":[{"code":"6301","name":"西宁市","children":[{"code":"630102","name":"城东区"},{"code":"630103","name":"城中区"},{"code":"630104","name":"城西区"},{"code":"630105","name":"城北区"},{"code":"630106","name":"湟中区"},{"code":"630121","name":"大通回族土族自治县"},{"code":"630123","name":"湟源县"}]},{"code":"6302","name":"海东市","children":[{"code":"630202","name":"乐都区"},{"code":"630203","name":"平安区"},{"code":"630222","name":"民和回族土族自治县"},{"code":"630223","name":"互助土族自治县"},{"code":"630224","name":"化隆回族自治县"},{"code":"630225","name":"循化撒拉族自治县"}]},{"code":"6322","name":"海北藏族自治州","children":[{"code":"632221","name":"门源回族自治县"},{"code":"632222","name":"祁连县"},{"code":"632223","name":"海晏县"},{"code":"632224","name":"刚察县"}]},{"code":"6323","name":"黄南藏族自治州","children":[{"code":"632301","name":"同仁市"},{"code":"632322","name":"尖扎县"},{"code":"632323","name":"泽库县"},{"code":"632324","name":"河南蒙古族自治县"}]},{"code":"6325","name":"海南藏族自治州","children":[{"code":"632521","name":"共和县"},{"code":"632522","name":"同德县"},{"code":"632523","name":"贵德县"},{"code":"632524","name":"兴海县"},{"code":"632525","name":"贵南县"}]},{"code":"6326","name":"果洛藏族自治州","children":[{"code":"632621","name":"玛沁县"},{"code":"632622","name":"班玛县"},{"code":"632623","name":"甘德县"},{"code":"632624","name":"达日县"},{"code":"632625","name":"久治县"},{"code":"632626","name":"玛多县"}]},{"code":"6327","name":"玉树藏族自治州","children":[{"code":"632701","name":"玉树市"},{"code":"632722","name":"杂多县"},{"code":"632723","name":"称多县"},{"code":"632724","name":"治多县"},{"code":"632725","name":"囊谦县"},{"code":"632726","name":"曲麻莱县"}]},{"code":"6328","name":"海西蒙古族藏族自治州","children":[{"code":"632801","name":"格尔木市"},{"code":"632802","name":"德令哈市"},{"code":"632803","name":"茫崖市"},{"code":"632821","name":"乌兰县"},{"code":"632822","name":"都兰县"},{"code":"632823","name":"天峻县"},{"code":"632857","name":"大柴旦行政委员会"}]}]},{"code":"64","name":"宁夏回族自治区","children":[{"code":"6401","name":"银川市","children":[{"code":"640104","name":"兴庆区"},{"code":"640105","name":"西夏区"},{"code":"640106","name":"金凤区"},{"code":"640121","name":"永宁县"},{"code":"640122","name":"贺兰县"},{"code":"640181","name":"灵武市"}]},{"code":"6402","name":"石嘴山市","children":[{"code":"640202","name":"大武口区"},{"code":"640205","name":"惠农区"},{"code":"640221","name":"平罗县"}]},{"code":"6403","name":"吴忠市","children":[{"code":"640302","name":"利通区"},{"code":"640303","name":"红寺堡区"},{"code":"640323","name":"盐池县"},{"code":"640324","name":"同心县"},{"code":"640381","name":"青铜峡市"}]},{"code":"6404","name":"固原市","children":[{"code":"640402","name":"原州区"},{"code":"640422","name":"西吉县"},{"code":"640423","name":"隆德县"},{"code":"640424","name":"泾源县"},{"code":"640425","name":"彭阳县"}]},{"code":"6405","name":"中卫市","children":[{"code":"640502","name":"沙坡头区"},{"code":"640521","name":"中宁县"},{"code":"640522","name":"海原县"}]}]},{"code":"65","name":"新疆维吾尔自治区","children":[{"code":"6501","name":"乌鲁木齐市","children":[{"code":"650102","name":"天山区"},{"code":"650103","name":"沙依巴克区"},{"code":"650104","name":"新市区"},{"code":"650105","name":"水磨沟区"},{"code":"650106","name":"头屯河区"},{"code":"650107","name":"达坂城区"},{"code":"650109","name":"米东区"},{"code":"650121","name":"乌鲁木齐县"}]},{"code":"6502","name":"克拉玛依市","children":[{"code":"650202","name":"独山子区"},{"code":"650203","name":"克拉玛依区"},{"code":"650204","name":"白碱滩区"},{"code":"650205","name":"乌尔禾区"}]},{"code":"6504","name":"吐鲁番市","children":[{"code":"650402","name":"高昌区"},{"code":"650421","name":"鄯善县"},{"code":"650422","name":"托克逊县"}]},{"code":"6505","name":"哈密市","children":[{"code":"650502","name":"伊州区"},{"code":"650521","name":"巴里坤哈萨克自治县"},{"code":"650522","name":"伊吾县"}]},{"code":"6523","name":"昌吉回族自治州","children":[{"code":"652301","name":"昌吉市"},{"code":"652302","name":"阜康市"},{"code":"652323","name":"呼图壁县"},{"code":"652324","name":"玛纳斯县"},{"code":"652325","name":"奇台县"},{"code":"652327","name":"吉木萨尔县"},{"code":"652328","name":"木垒哈萨克自治县"}]},{"code":"6527","name":"博尔塔拉蒙古自治州","children":[{"code":"652701","name":"博乐市"},{"code":"652702","name":"阿拉山口市"},{"code":"652722","name":"精河县"},{"code":"652723","name":"温泉县"}]},{"code":"6528","name":"巴音郭楞蒙古自治州","children":[{"code":"652801","name":"库尔勒市"},{"code":"652822","name":"轮台县"},{"code":"652823","name":"尉犁县"},{"code":"652824","name":"若羌县"},{"code":"652825","name":"且末县"},{"code":"652826","name":"焉耆回族自治县"},{"code":"652827","name":"和静县"},{"code":"652828","name":"和硕县"},{"code":"652829","name":"博湖县"}]},{"code":"6529","name":"阿克苏地区","children":[{"code":"652901","name":"阿克苏市"},{"code":"652902","name":"库车市"},{"code":"652922","name":"温宿县"},{"code":"652924","name":"沙雅县"},{"code":"652925","name":"新和县"},{"code":"652926","name":"拜城县"},{"code":"652927","name":"乌什县"},{"code":"652928","name":"阿瓦提县"},{"code":"652929","name":"柯坪县"}]},{"code":"6530","name":"克孜勒苏柯尔克孜自治州","children":[{"code":"653001","name":"阿图什市"},{"code":"653022","name":"阿克陶县"},{"code":"653023","name":"阿合奇县"},{"code":"653024","name":"乌恰县"}]},{"code":"6531","name":"喀什地区","children":[{"code":"653101","name":"喀什市"},{"code":"653121","name":"疏附县"},{"code":"653122","name":"疏勒县"},{"code":"653123","name":"英吉沙县"},{"code":"653124","name":"泽普县"},{"code":"653125","name":"莎车县"},{"code":"653126","name":"叶城县"},{"code":"653127","name":"麦盖提县"},{"code":"653128","name":"岳普湖县"},{"code":"653129","name":"伽师县"},{"code":"653130","name":"巴楚县"},{"code":"653131","name":"塔什库尔干塔吉克自治县"}]},{"code":"6532","name":"和田地区","children":[{"code":"653201","name":"和田市"},{"code":"653221","name":"和田县"},{"code":"653222","name":"墨玉县"},{"code":"653223","name":"皮山县"},{"code":"653224","name":"洛浦县"},{"code":"653225","name":"策勒县"},{"code":"653226","name":"于田县"},{"code":"653227","name":"民丰县"}]},{"code":"6540","name":"伊犁哈萨克自治州","children":[{"code":"654002","name":"伊宁市"},{"code":"654003","name":"奎屯市"},{"code":"654004","name":"霍尔果斯市"},{"code":"654021","name":"伊宁县"},{"code":"654022","name":"察布查尔锡伯自治县"},{"code":"654023","name":"霍城县"},{"code":"654024","name":"巩留县"},{"code":"654025","name":"新源县"},{"code":"654026","name":"昭苏县"},{"code":"654027","name":"特克斯县"},{"code":"654028","name":"尼勒克县"}]},{"code":"6542","name":"塔城地区","children":[{"code":"654201","name":"塔城市"},{"code":"654202","name":"乌苏市"},{"code":"654203","name":"沙湾市"},{"code":"654221","name":"额敏县"},{"code":"654224","name":"托里县"},{"code":"654225","name":"裕民县"},{"code":"654226","name":"和布克赛尔蒙古自治县"}]},{"code":"6543","name":"阿勒泰地区","children":[{"code":"654301","name":"阿勒泰市"},{"code":"654321","name":"布尔津县"},{"code":"654322","name":"富蕴县"},{"code":"654323","name":"福海县"},{"code":"654324","name":"哈巴河县"},{"code":"654325","name":"青河县"},{"code":"654326","name":"吉木乃县"}]},{"code":"6590","name":"自治区直辖县级行政区划","children":[{"code":"659001","name":"石河子市"},{"code":"659002","name":"阿拉尔市"},{"code":"659003","name":"图木舒克市"},{"code":"659004","name":"五家渠市"},{"code":"659005","name":"北屯市"},{"code":"659006","name":"铁门关市"},{"code":"659007","name":"双河市"},{"code":"659008","name":"可克达拉市"},{"code":"659009","name":"昆玉市"},{"code":"659010","name":"胡杨河市"},{"code":"659011","name":"新星市"},{"code":"659012","name":"白杨市"}]}]}]`);function ke(e){return{value:String(e.code),label:String(e.name||``),children:e.children?.length?e.children.map(ke):void 0}}var Ae=Oe.map(ke),je={};function Me(e){for(let t of e)je[t.value]=t.label,t.children?.length&&Me(t.children)}Me(Ae);var Ne=(0,t.defineComponent)({name:`FouAreaPicker`,__name:`index`,props:{modelValue:{default:null},placeholder:{default:`请选择省 / 市 / 区`},clearable:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},filterable:{type:Boolean,default:!0},showAllLevels:{type:Boolean,default:!0},separator:{default:` / `},collapseTags:{type:Boolean,default:!1},maxCollapseTags:{default:1},size:{default:`default`},multiple:{type:Boolean,default:!1},checkStrictly:{type:Boolean,default:!1},emitPath:{type:Boolean,default:!0}},emits:[`update:modelValue`,`change`,`clear`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.computed)(()=>({multiple:r.multiple,checkStrictly:r.checkStrictly,emitPath:r.emitPath})),o=e=>e==null?[]:Array.isArray(e)?e.length&&Array.isArray(e[0])?e.flat().map(String):e.map(String):[String(e)],s=e=>o(e).map(e=>je[e]||``).filter(Boolean),c=e=>i(`update:modelValue`,e),l=e=>i(`change`,e,s(e));return(n,r)=>((0,t.openBlock)(),(0,t.createBlock)(De,{class:`fou-area-picker`,"model-value":e.modelValue,options:(0,t.unref)(Ae),props:(0,t.unref)(a),placeholder:e.placeholder,clearable:e.clearable,disabled:e.disabled,filterable:e.filterable,"show-all-levels":e.showAllLevels,separator:e.separator,"collapse-tags":e.collapseTags,"max-collapse-tags":e.maxCollapseTags,size:e.size,"onUpdate:modelValue":c,onChange:l,onClear:r[0]||=e=>i(`clear`)},null,8,[`model-value`,`options`,`props`,`placeholder`,`clearable`,`disabled`,`filterable`,`show-all-levels`,`separator`,`collapse-tags`,`max-collapse-tags`,`size`]))}}),Pe=v({default:()=>Fe}),Fe=Ne,Ie=[`autofocus`,`disabled`,`placeholder`,`readonly`,`required`,`type`,`value`,`onKeydown`],Le={class:`fou-autocomplete-suffix`},Re={key:0,class:`fou-autocomplete-list`},ze=[`title`,`onClick`,`onMouseenter`],Be={class:`fou-ellipsis`},Ve={key:0,class:`fou-autocomplete-empty`},He=(0,t.defineComponent)({name:`FouAutocomplete`,__name:`index`,props:{value:{default:``},modelValue:{type:[String,Boolean],default:``},placeholder:{default:``},disabled:{type:Boolean,default:!1},clearable:{type:Boolean,default:!1},autofocus:{type:Boolean,default:!1},required:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},type:{default:`text`},maxlength:{default:0},minlength:{default:1},width:{default:`100%`},height:{default:`32px`},list:{default:()=>[]},searchekey:{default:()=>[`value`]},showkey:{default:()=>[`value`]},showline:{default:` - `},valueKey:{default:`value`}},emits:[`update:modelValue`,`change`,`itemclick`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.ref)(!1),o=(0,t.ref)(!1),s=(0,t.ref)(null),c=(0,t.ref)([...r.list]),l=(0,t.ref)(-1),u=(0,t.computed)(()=>r.modelValue!==``&&r.modelValue!==void 0&&r.modelValue!==null?String(r.modelValue):r.value||``),d=(0,t.computed)(()=>u.value.length>0);(0,t.watch)(()=>r.list,e=>{c.value=[...e]},{deep:!0});let f=e=>r.showkey.map(t=>Reflect.has(e,t)?String(e[t]??``):``).filter(Boolean).join(r.showline),p=(e,t,n)=>{let r=[];if(!Array.isArray(e)||typeof t!=`string`)return c.value=r,r;let i=Array.isArray(n)?n:[`value`],a=t.toLowerCase();for(let t of e)for(let e of i)if(Reflect.has(t,e)&&String(t[e]).toLowerCase().includes(a)){r.push(t);break}return c.value=r,l.value=r.length?0:-1,r},m=e=>{let n=e.target;(0,t.nextTick)(()=>{s.value&&(n.value.length>0?(a.value=!0,p(r.list,n.value,r.searchekey)):(a.value=!1,c.value=[...r.list]))}),i(`update:modelValue`,n.value),i(`change`,n.value)},h=e=>{let t=String(e[r.valueKey]??e.value??``);s.value&&(s.value.value=t),i(`change`,t),i(`update:modelValue`,t),i(`itemclick`,e),a.value=!1},g=()=>{if(!(r.disabled||r.readonly)&&(a.value=!a.value,a.value)){s.value?.focus();let e=s.value?.value||``;e?p(r.list,e,r.searchekey):c.value=[...r.list]}},_=()=>{if(o.value=!0,!r.disabled&&!r.readonly){a.value=!0;let e=s.value?.value||``;e?p(r.list,e,r.searchekey):c.value=[...r.list]}},v=()=>{s.value&&(s.value.value=``),a.value=!1,c.value=[...r.list],i(`change`,``),i(`update:modelValue`,``),s.value?.focus()},y=e=>{if(!a.value||!c.value.length)return;let t=c.value.length;l.value=(l.value+e+t)%t},b=()=>{l.value>=0&&c.value[l.value]&&h(c.value[l.value])},x=e=>{let t=e.target?.closest?.(`.fou-autocomplete`),n=s.value?.closest(`.fou-autocomplete`);n&&t!==n&&(a.value=!1)};return(0,t.onMounted)(()=>document.addEventListener(`mousedown`,x)),(0,t.onUnmounted)(()=>document.removeEventListener(`mousedown`,x)),(e,n)=>{let i=k;return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-autocomplete`,{"is-disabled":r.disabled,"is-focused":(0,t.unref)(o),"is-clearable":r.clearable,"has-value":(0,t.unref)(d)}]),style:(0,t.normalizeStyle)({width:r.width})},[(0,t.createElementVNode)(`input`,{ref_key:`inputRef`,ref:s,autofocus:r.autofocus,class:`fou-autocomplete-input`,disabled:r.disabled,placeholder:r.placeholder,readonly:r.readonly,required:r.required,style:(0,t.normalizeStyle)({height:r.height}),type:r.type,value:(0,t.unref)(u),onChange:m,onInput:m,onFocus:_,onBlur:n[0]||=e=>o.value=!1,onKeydown:[n[1]||=(0,t.withKeys)((0,t.withModifiers)(e=>y(1),[`prevent`]),[`down`]),n[2]||=(0,t.withKeys)((0,t.withModifiers)(e=>y(-1),[`prevent`]),[`up`]),(0,t.withKeys)((0,t.withModifiers)(b,[`prevent`]),[`enter`]),n[3]||=(0,t.withKeys)(e=>a.value=!1,[`esc`])]},null,44,Ie),(0,t.createElementVNode)(`div`,Le,[(0,t.withDirectives)((0,t.createElementVNode)(`button`,{type:`button`,class:`fou-autocomplete-clear`,tabindex:`-1`,title:`清空`,onMousedown:n[4]||=(0,t.withModifiers)(()=>{},[`prevent`]),onClick:v},[(0,t.createVNode)(i,{icon:`close-circle-fill`})],544),[[t.vShow,r.clearable&&(0,t.unref)(d)]]),(0,t.createElementVNode)(`button`,{type:`button`,class:(0,t.normalizeClass)([`fou-autocomplete-caret`,{"is-open":(0,t.unref)(a)}]),tabindex:`-1`,onMousedown:n[5]||=(0,t.withModifiers)(()=>{},[`prevent`]),onClick:g},[(0,t.createVNode)(i,{icon:`arrow-down-s-line`})],34)]),(0,t.unref)(a)?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Re,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(c),(e,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:r,class:(0,t.normalizeClass)([`fou-autocomplete-list-item`,{"is-active":r===(0,t.unref)(l)}]),title:f(e),onMousedown:n[6]||=(0,t.withModifiers)(()=>{},[`prevent`]),onClick:t=>h(e),onMouseenter:e=>l.value=r},[(0,t.createElementVNode)(`span`,Be,(0,t.toDisplayString)(f(e)),1)],42,ze))),128)),(0,t.unref)(c).length?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Ve,`无匹配数据`))])):(0,t.createCommentVNode)(``,!0)],6)}}}),Ue=v({default:()=>We}),We=S(He,[[`__scopeId`,`data-v-0f14f0a8`]]),Ge=[`src`,`alt`],Ke={key:1,class:`fou-avatar__slot`},qe={key:2,class:`fou-avatar__text`},Je=(0,t.defineComponent)({name:`FouAvatar`,__name:`index`,props:{src:{},alt:{default:``},size:{default:`default`},shape:{default:`circle`},fit:{default:`cover`},text:{default:``},icon:{}},emits:[`error`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.ref)(!1);(0,t.watch)(()=>r.src,()=>{a.value=!1});let o=(0,t.computed)(()=>typeof r.size==`number`?`custom`:r.size),s=(0,t.computed)(()=>{if(typeof r.size!=`number`)return;let e=`${r.size}px`;return{width:e,height:e,fontSize:`${Math.max(12,r.size*.4)}px`}}),c=(0,t.computed)(()=>r.text?r.text.slice(0,2):`?`),l=e=>{a.value=!0,i(`error`,e)};return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{class:(0,t.normalizeClass)([`fou-avatar`,[`fou-avatar--${e.shape}`,`fou-avatar--${(0,t.unref)(o)}`,{"is-image":!!e.src&&!(0,t.unref)(a)}]]),style:(0,t.normalizeStyle)((0,t.unref)(s))},[e.src&&!(0,t.unref)(a)?((0,t.openBlock)(),(0,t.createElementBlock)(`img`,{key:0,class:`fou-avatar__img`,src:e.src,alt:e.alt,style:(0,t.normalizeStyle)({objectFit:e.fit}),onError:l},null,44,Ge)):n.$slots.default?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Ke,[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)])):((0,t.openBlock)(),(0,t.createElementBlock)(`span`,qe,(0,t.toDisplayString)((0,t.unref)(c)),1))],6))}}),Ye=v({default:()=>Xe}),Xe=S(Je,[[`__scopeId`,`data-v-3be043fa`]]),Ze=(0,t.defineComponent)({name:`FouBacktop`,__name:`index`,props:{scrollVisibilityHeight:{default:void 0},visibilityHeight:{default:void 0},right:{default:40},bottom:{default:40},zIndex:{default:100},target:{default:``}},setup(e){let n=e,r=(0,t.computed)(()=>n.visibilityHeight??n.scrollVisibilityHeight??200),i=(0,t.ref)(!1),a=()=>n.target&&document.querySelector(n.target)||window,o=e=>e===window?window.scrollY||document.documentElement.scrollTop:e.scrollTop,s=(0,t.computed)(()=>({right:`${n.right}px`,bottom:`${n.bottom}px`,zIndex:String(n.zIndex)})),c=()=>{let e=a();i.value=o(e)>=r.value},l=()=>{let e=a();e===window?window.scrollTo({top:0,behavior:`smooth`}):e.scrollTo({top:0,behavior:`smooth`})},u=window,d=()=>{u.removeEventListener(`scroll`,c),u=a(),u.addEventListener(`scroll`,c,{passive:!0}),c()};return(0,t.onMounted)(()=>{d()}),(0,t.watch)(()=>n.target,()=>d()),(0,t.onBeforeUnmount)(()=>{u.removeEventListener(`scroll`,c)}),(e,n)=>{let r=k;return(0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:`body`},[(0,t.createVNode)(t.Transition,{name:`fou-backtop-fade`},{default:(0,t.withCtx)(()=>[(0,t.withDirectives)((0,t.createElementVNode)(`button`,{type:`button`,class:`fou-backtop`,style:(0,t.normalizeStyle)((0,t.unref)(s)),"aria-label":`回到顶部`,onClick:l},[(0,t.renderSlot)(e.$slots,`default`,{},()=>[(0,t.createVNode)(r,{icon:`arrow-up-line`})],!0)],4),[[t.vShow,(0,t.unref)(i)]])]),_:3})])}}}),J=v({default:()=>Qe}),Qe=S(Ze,[[`__scopeId`,`data-v-6f249df3`]]),$e=e=>e,Y=(e,...t)=>$e(e,...t),et=0,tt=``;function nt(){return{lock:()=>{et===0&&(tt=document.body.style.overflow,document.body.style.overflow=`hidden`),et+=1},unlock:()=>{et!==0&&(--et,et===0&&(document.body.style.overflow=tt,tt=``))}}}var rt={class:`fou-dialog__title`},it=[`title`],at=[`title`],ot=[`title`],st={key:0,class:`fou-dialog__loading`},ct={key:0,class:`fou-dialog__loading-text`},lt={key:0,class:`fou-dialog__footer`},ut=[`onMousedown`],dt=(0,t.defineComponent)({name:`FouDialog`,inheritAttrs:!1,__name:`index`,props:{modelValue:{type:Boolean,default:!1},title:{default:``},width:{default:`520px`},top:{default:`15vh`},alignCenter:{type:Boolean,default:!0},modal:{type:Boolean,default:!0},modalClass:{default:``},appendToBody:{type:Boolean,default:!0},appendTo:{},lockScroll:{type:Boolean,default:!0},closeOnClickModal:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!0},destroyOnClose:{type:Boolean,default:!1},beforeClose:{},showFullscreen:{type:Boolean,default:!0},showMinimize:{type:Boolean,default:!0},maximizable:{type:Boolean,default:void 0},minimizable:{type:Boolean,default:void 0},showClose:{type:Boolean,default:!0},fullscreen:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},loadingText:{},animated:{type:Boolean,default:!0},theme:{default:`default`},draggable:{type:Boolean,default:!0},dragBound:{type:[Boolean,String],default:`viewport`},resizable:{type:Boolean,default:!0},openInTab:{type:Boolean,default:!1},minWidth:{default:320},minHeight:{default:180},zIndex:{default:0}},emits:[`update:modelValue`,`open`,`opened`,`close`,`closed`,`minimize`,`maximize`,`restore`],setup(e,{emit:n}){let i=e,a=n,o=(0,t.useAttrs)(),s=(0,t.computed)(()=>{let{class:e,style:t,...n}=o;return n}),c=(0,t.computed)(()=>o.style),l=(0,r.useVModel)(i,`modelValue`,a),u=(0,t.ref)(null),d=(0,t.ref)(!1),f=(0,t.ref)(!1),p=(0,t.ref)(null),m=(0,t.ref)(null),h=(0,t.ref)(!1),g=(0,t.ref)(!1),_=(0,t.ref)(!1),v=(0,t.ref)(0),y=(0,t.ref)(!i.destroyOnClose),b=(0,t.ref)(i.zIndex||le(4e3)),x=[`n`,`s`,`e`,`w`,`ne`,`nw`,`se`,`sw`],S=(0,t.computed)(()=>typeof i.appendTo==`string`||i.appendTo instanceof HTMLElement?i.appendTo:`body`),C=(0,t.computed)(()=>i.appendToBody!==!1),w=(0,t.computed)(()=>i.maximizable??i.showFullscreen),T=(0,t.computed)(()=>i.minimizable??i.showMinimize),E=(0,t.computed)(()=>i.draggable&&!d.value&&!f.value),D=(0,t.computed)(()=>!!p.value),O=(0,t.computed)(()=>{let e=i.dragBound;return e===!0||e===`viewport`||e===void 0}),A=(0,t.computed)(()=>({"is-open-in-tab":i.openInTab,"is-minimized-root":f.value})),j=(0,t.computed)(()=>({[`fou-dialog--${i.theme}`]:!0,"fou-dialog--minimized":f.value,"fou-dialog--fullscreen":d.value,"fou-dialog--centered":!D.value&&!d.value&&!f.value&&i.alignCenter,"fou-dialog--topped":!D.value&&!d.value&&!f.value&&!i.alignCenter,"fou-dialog--fixed-box":D.value&&!d.value&&!f.value,"fou-dialog--unbounded":!O.value&&D.value&&!d.value&&!f.value,"fou-dialog--dragging":h.value,"fou-dialog--resizing":g.value,"fou-dialog--animated":i.animated&&!h.value&&!g.value&&!_.value})),M=(0,t.computed)(()=>{let e={zIndex:String(b.value+v.value+(f.value?100:0))};return f.value?(Object.assign(e,{left:`16px`,bottom:`16px`,top:`auto`,width:`240px`,height:`48px`,transform:`none`}),e):d.value?(Object.assign(e,{left:`0`,top:`0`,width:`100vw`,height:`100vh`,transform:`none`,borderRadius:`0`}),e):p.value?(Object.assign(e,{left:`${p.value.left}px`,top:`${p.value.top}px`,width:`${p.value.width}px`,height:`${p.value.height}px`,transform:`none`}),e):(e.width=typeof i.width==`number`?`${i.width}px`:String(i.width||`520px`),i.alignCenter||(e.top=i.top||`15vh`,e.left=`50%`,e.transform=`translateX(-50%)`),e)}),N=(e,t=`resize`)=>{let n=window.innerWidth,r=window.innerHeight,a=Math.max(i.minWidth,e.width),o=Math.max(i.minHeight,e.height);if(!O.value)return{left:e.left,top:e.top,width:t===`resize`?a:Math.max(i.minWidth,e.width),height:t===`resize`?o:Math.max(i.minHeight,e.height)};let s=Math.max(i.minWidth,n-8),c=Math.max(i.minHeight,r-8),l=Math.min(a,s),u=Math.min(o,c);return{left:Math.min(Math.max(0,e.left),Math.max(0,n-l)),top:Math.min(Math.max(0,e.top),Math.max(0,r-u)),width:l,height:u}},P=()=>{let e=u.value;if(!e)return null;let t=e.getBoundingClientRect(),n=N({left:t.left,top:t.top,width:t.width,height:Math.max(t.height,i.minHeight)});return p.value=n,n},F=()=>p.value||P(),{lock:I,unlock:L}=nt(),R=e=>{i.lockScroll&&(e?I():L())},ee=()=>{_.value=!0,a(`close`),l.value=!1},z=()=>{if(i.beforeClose){i.beforeClose(()=>ee());return}ee()},B=()=>{i.closeOnClickModal&&z()},V=()=>{v.value+=1},H=()=>{if(f.value){ne();return}d.value?(d.value=!1,m.value&&(p.value={...m.value}),a(`restore`)):(F(),p.value&&(m.value={...p.value}),d.value=!0,a(`maximize`))},te=()=>{d.value&&=!1,F(),p.value&&(m.value={...p.value}),f.value=!0,a(`minimize`)},ne=()=>{f.value=!1,m.value&&(p.value={...m.value}),a(`restore`)},re=()=>{f.value&&ne()},U=()=>{f.value?ne():H()},ie=null,ae=()=>{ie?.(),ie=null,h.value=!1,g.value=!1},W=e=>{if(!E.value||e.target.closest(`.fou-dialog__actions`))return;e.preventDefault();let t=F();if(!t)return;ae(),h.value=!0;let n=e.clientX,r=e.clientY,i=e=>{p.value=N({...t,left:t.left+e.clientX-n,top:t.top+e.clientY-r},`drag`)},a=()=>ae();document.addEventListener(`mousemove`,i),document.addEventListener(`mouseup`,a),ie=()=>{document.removeEventListener(`mousemove`,i),document.removeEventListener(`mouseup`,a),h.value=!1}},oe=(e,t)=>{let n=F();if(!n)return;ae(),g.value=!0;let r=e.clientX,a=e.clientY,o=e=>{let o=e.clientX-r,s=e.clientY-a,{left:c,top:l,width:u,height:d}=n;t.includes(`e`)&&(u=n.width+o),t.includes(`s`)&&(d=n.height+s),t.includes(`w`)&&(u=n.width-o,c=n.left+o,u<i.minWidth&&(u=i.minWidth,c=n.left+n.width-i.minWidth)),t.includes(`n`)&&(d=n.height-s,l=n.top+s,d<i.minHeight&&(d=i.minHeight,l=n.top+n.height-i.minHeight)),p.value=N({left:c,top:l,width:u,height:d},`resize`)},s=()=>ae();document.addEventListener(`mousemove`,o),document.addEventListener(`mouseup`,s),ie=()=>{document.removeEventListener(`mousemove`,o),document.removeEventListener(`mouseup`,s),g.value=!1}},se=e=>{!l.value||f.value||i.closeOnPressEscape&&e.key===`Escape`&&z()},ce=()=>{f.value=!1,d.value=!!i.fullscreen,p.value=null,m.value=null,_.value=!1,h.value=!1,g.value=!1};return(0,t.watch)(()=>i.fullscreen,e=>{d.value=!!e},{immediate:!0}),(0,t.watch)(l,async e=>{e?(_.value=!1,b.value=i.zIndex||le(4e3),i.destroyOnClose&&(y.value=!0),R(!0),a(`open`),await(0,t.nextTick)(),!i.alignCenter&&!p.value&&u.value,a(`opened`)):(R(!1),a(`closed`),ce(),i.destroyOnClose&&(y.value=!1))}),(0,t.onMounted)(()=>{document.addEventListener(`keydown`,se),l.value&&R(!0)}),(0,t.onBeforeUnmount)(()=>{ae(),document.removeEventListener(`keydown`,se),R(!1)}),(n,r)=>{let a=k;return(0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:(0,t.unref)(S),disabled:!(0,t.unref)(C)},[!i.destroyOnClose||(0,t.unref)(y)||(0,t.unref)(l)?(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createElementBlock)(`div`,(0,t.mergeProps)({key:0,class:[`fou-dialog-root`,[(0,t.unref)(A),(0,t.unref)(o).class]]},(0,t.unref)(s),{style:{zIndex:(0,t.unref)(b)}}),[e.modal&&!(0,t.unref)(f)?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:(0,t.normalizeClass)([`fou-dialog__mask`,e.modalClass]),onMousedown:(0,t.withModifiers)(B,[`self`])},null,34)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,{ref_key:`panelRef`,ref:u,class:(0,t.normalizeClass)([`fou-dialog`,(0,t.unref)(j)]),style:(0,t.normalizeStyle)([(0,t.unref)(M),(0,t.unref)(c)]),role:`dialog`,"aria-modal":`true`,onMousedown:V},[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`fou-dialog__header`,{"is-movable":(0,t.unref)(E),"is-minimized-bar":(0,t.unref)(f)}]),onMousedown:W,onDblclick:U,onClick:re},[(0,t.createElementVNode)(`div`,rt,(0,t.toDisplayString)(e.title),1),(0,t.createElementVNode)(`div`,{class:`fou-dialog__actions`,onMousedown:r[1]||=(0,t.withModifiers)(()=>{},[`stop`]),onClick:r[2]||=(0,t.withModifiers)(()=>{},[`stop`])},[(0,t.unref)(T)&&!(0,t.unref)(f)?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:0,type:`button`,class:`fou-dialog__btn`,title:(0,t.unref)(Y)(`最小化`),onClick:(0,t.withModifiers)(te,[`stop`])},[(0,t.createVNode)(a,{icon:`subtract-line`})],8,it)):(0,t.createCommentVNode)(``,!0),(0,t.unref)(w)?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:1,type:`button`,class:`fou-dialog__btn`,title:(0,t.unref)(Y)((0,t.unref)(f)||(0,t.unref)(d)?`还原`:`最大化`),onClick:r[0]||=(0,t.withModifiers)(e=>(0,t.unref)(f)?ne():H(),[`stop`])},[(0,t.createVNode)(a,{icon:(0,t.unref)(f)?`picture-in-picture-2-line`:(0,t.unref)(d)?`fullscreen-exit-line`:`fullscreen-line`},null,8,[`icon`])],8,at)):(0,t.createCommentVNode)(``,!0),e.showClose?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:2,type:`button`,class:`fou-dialog__btn`,title:(0,t.unref)(Y)(`关闭`),onClick:(0,t.withModifiers)(z,[`stop`])},[(0,t.createVNode)(a,{icon:`close-line`})],8,ot)):(0,t.createCommentVNode)(``,!0)],32)],34),(0,t.withDirectives)((0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`fou-dialog__body`,{"is-loading":e.loading}])},[e.loading?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,st,[r[3]||=(0,t.createElementVNode)(`span`,{class:`fou-dialog__spinner`},null,-1),e.loadingText?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,ct,(0,t.toDisplayString)(e.loadingText),1)):(0,t.createCommentVNode)(``,!0)])):(0,t.createCommentVNode)(``,!0),(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)],2),[[t.vShow,!(0,t.unref)(f)]]),!(0,t.unref)(f)&&n.$slots.footer?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,lt,[(0,t.renderSlot)(n.$slots,`footer`,{},void 0,!0)])):(0,t.createCommentVNode)(``,!0),e.resizable&&!(0,t.unref)(d)&&!(0,t.unref)(f)?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:1},(0,t.renderList)(x,e=>(0,t.createElementVNode)(`div`,{key:e,class:(0,t.normalizeClass)([`fou-dialog__resize`,`fou-dialog__resize--${e}`]),onMousedown:(0,t.withModifiers)(t=>oe(t,e),[`prevent`,`stop`])},null,42,ut)),64)):(0,t.createCommentVNode)(``,!0)],38)],16)),[[t.vShow,(0,t.unref)(l)]]):(0,t.createCommentVNode)(``,!0)],8,[`to`,`disabled`])}}}),ft=v({default:()=>pt}),pt=S(dt,[[`__scopeId`,`data-v-20117090`]]),mt=Symbol(`FouTabBar`),ht={key:0,class:`fou-tab-bar__content`},gt=[`disabled`],_t=[`aria-selected`,`aria-disabled`,`tabindex`,`disabled`,`onClick`],vt=[`onClick`],X=[`disabled`],yt={key:3,class:`fou-tab-bar__extra`},bt={key:1,class:`fou-tab-bar__content`},xt=(0,t.defineComponent)({name:`FouTabBar`,__name:`index`,props:{modelValue:{},type:{default:`default`},tabPosition:{default:`top`},stretch:{type:Boolean,default:!1},closable:{type:Boolean,default:!1},addable:{type:Boolean,default:!1},editable:{type:Boolean,default:!1},beforeLeave:{}},emits:[`update:modelValue`,`tabClick`,`tabChange`,`tab-remove`,`tab-add`,`edit`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.ref)([]),o=(0,t.ref)([]),s=(0,t.ref)(null),c=(0,t.ref)(null),l=new Map,u=(0,t.ref)({}),d=(0,t.ref)(!1),f=(0,t.ref)(!1),p=(0,t.ref)(!1),m=(0,t.computed)(()=>r.tabPosition===`left`||r.tabPosition===`right`),h=(0,t.computed)(()=>r.addable||r.editable),g=(0,t.computed)(()=>r.type==="default"),_=(0,t.computed)(()=>a.value.filter(e=>!o.value.includes(e.name))),v=(0,t.computed)({get(){return r.modelValue!==void 0&&r.modelValue!==null?r.modelValue:_.value[0]?.name},set(e){i(`update:modelValue`,e)}}),y=e=>e.closable===void 0?r.closable||r.editable:e.closable,b=(e,t)=>{t instanceof HTMLElement?l.set(e,t):l.delete(e)};(0,t.provide)(mt,{activeName:(0,t.computed)(()=>v.value),registerPane:e=>{let t=a.value.findIndex(t=>t.uid===e.uid);t>=0?a.value[t]=e:a.value.push(e),r.modelValue===void 0&&a.value.length===1&&(v.value=e.name)},unregisterPane:e=>{a.value=a.value.filter(t=>t.uid!==e)},updatePane:(e,t)=>{let n=a.value.findIndex(t=>t.uid===e);n>=0&&(a.value[n]={...a.value[n],...t})}});let x=()=>{let e=v.value===void 0?void 0:l.get(v.value),t=c.value;if(!e||!t||!g.value){u.value={display:`none`};return}m.value?u.value={display:`block`,top:`${e.offsetTop}px`,height:`${e.offsetHeight}px`,width:`2px`,left:r.tabPosition===`left`?`auto`:`0`,right:r.tabPosition===`left`?`0`:`auto`}:u.value={display:`block`,left:`${e.offsetLeft}px`,width:`${e.offsetWidth}px`,height:`2px`,bottom:`0`}},S=()=>{let e=s.value;if(!e){d.value=!1;return}m.value?(d.value=e.scrollHeight>e.clientHeight+2,f.value=e.scrollTop>2,p.value=e.scrollTop+e.clientHeight<e.scrollHeight-2):(d.value=e.scrollWidth>e.clientWidth+2,f.value=e.scrollLeft>2,p.value=e.scrollLeft+e.clientWidth<e.scrollWidth-2)},C=()=>{let e=s.value,t=v.value===void 0?void 0:l.get(v.value);if(!e||!t)return;let n=e.getBoundingClientRect(),r=t.getBoundingClientRect();m.value?r.top<n.top?e.scrollTop+=r.top-n.top:r.bottom>n.bottom&&(e.scrollTop+=r.bottom-n.bottom):r.left<n.left?e.scrollLeft+=r.left-n.left:r.right>n.right&&(e.scrollLeft+=r.right-n.right)},w=async()=>{await(0,t.nextTick)(),x(),S(),C()},T=e=>{let t=s.value;if(!t)return;let n=m.value?t.clientHeight*.8:t.clientWidth*.8;m.value?t.scrollTop+=e*n:t.scrollLeft+=e*n,S()},E=()=>_.value.filter(e=>!e.disabled),D=async e=>{let t=v.value;if(t!==e){if(r.beforeLeave&&t!==void 0)try{if(await r.beforeLeave(e,t)===!1)return}catch{return}v.value=e,i(`tabChange`,e),w()}},O=(e,t)=>{e.disabled||(t?i(`tabClick`,e,t):i(`tabClick`,e,new MouseEvent(`click`)),D(e.name))},A=e=>{if(!(!y(e)||e.disabled)){if(i(`tab-remove`,e.name),i(`edit`,e.name,`remove`),o.value=[...o.value,e.name],v.value===e.name){let e=E()[0];e&&D(e.name)}w()}},j=()=>{i(`tab-add`),i(`edit`,null,`add`)},M=e=>{let t=E();if(!t.length)return;let n=t.findIndex(e=>e.name===v.value),r=m.value?`ArrowUp`:`ArrowLeft`,i=m.value?`ArrowDown`:`ArrowRight`;if(e.key===r){e.preventDefault();let r=t[n<=0?t.length-1:n-1];D(r.name)}else if(e.key===i){e.preventDefault();let r=t[n>=t.length-1?0:n+1];D(r.name)}else if(e.key===`Home`)e.preventDefault(),D(t[0].name);else if(e.key===`End`)e.preventDefault(),D(t[t.length-1].name);else if((e.key===`Delete`||e.key===`Backspace`)&&n>=0){let r=t[n];y(r)&&(e.preventDefault(),A(r))}},N=null;return(0,t.onMounted)(()=>{w();let e=s.value;e&&(e.addEventListener(`scroll`,S,{passive:!0}),typeof ResizeObserver<`u`&&(N=new ResizeObserver(()=>w()),N.observe(e))),window.addEventListener(`resize`,w)}),(0,t.onUnmounted)(()=>{s.value?.removeEventListener(`scroll`,S),N?.disconnect(),window.removeEventListener(`resize`,w)}),(0,t.watch)(()=>[v.value,_.value.length,r.tabPosition,r.type],()=>w()),(n,r)=>{let i=k;return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-tab-bar`,[`fou-tab-bar--${e.type}`,`fou-tab-bar--${e.tabPosition}`,{"is-stretch":e.stretch,"is-vertical":(0,t.unref)(m)}]])},[e.tabPosition===`bottom`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ht,[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`fou-tab-bar__nav-wrap`,{"is-scrollable":(0,t.unref)(d)}])},[(0,t.unref)(d)?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:0,type:`button`,class:`fou-tab-bar__scroll-btn is-prev`,disabled:!(0,t.unref)(f),"aria-label":`上一页`,onClick:r[0]||=e=>T(-1)},[(0,t.createVNode)(i,{icon:(0,t.unref)(m)?`arrow-up-s-line`:`arrow-left-s-line`},null,8,[`icon`])],8,gt)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,{ref_key:`navScrollRef`,ref:s,class:`fou-tab-bar__nav-scroll`,role:`tablist`,tabindex:0,onKeydown:M},[(0,t.createElementVNode)(`div`,{ref_key:`navRef`,ref:c,class:`fou-tab-bar__header`},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(_),e=>((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:String(e.name),ref_for:!0,ref:t=>b(e.name,t),type:`button`,class:(0,t.normalizeClass)([`fou-tab-bar__item`,{"is-active":e.name===(0,t.unref)(v),"is-disabled":e.disabled,"is-closable":y(e)}]),role:`tab`,"aria-selected":e.name===(0,t.unref)(v),"aria-disabled":e.disabled||void 0,tabindex:e.name===(0,t.unref)(v)?0:-1,disabled:e.disabled,onClick:t=>O(e,t)},[e.icon?((0,t.openBlock)(),(0,t.createBlock)(i,{key:0,icon:e.icon,class:`fou-tab-bar__icon`},null,8,[`icon`])):(0,t.createCommentVNode)(``,!0),(0,t.renderSlot)(n.$slots,`label-${e.name}`,{},()=>[e.renderLabel?.()?.length?((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(()=>e.renderLabel?.()),{key:0})):((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:1},[(0,t.createTextVNode)((0,t.toDisplayString)(e.label),1)],64))],!0),y(e)?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:1,class:`fou-tab-bar__close`,role:`button`,"aria-label":`关闭`,onClick:(0,t.withModifiers)(t=>A(e),[`stop`])},` × `,8,vt)):(0,t.createCommentVNode)(``,!0)],10,_t))),128)),(0,t.unref)(g)?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:0,class:`fou-tab-bar__ink`,style:(0,t.normalizeStyle)((0,t.unref)(u))},null,4)):(0,t.createCommentVNode)(``,!0)],512)],544),(0,t.unref)(d)?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:1,type:`button`,class:`fou-tab-bar__scroll-btn is-next`,disabled:!(0,t.unref)(p),"aria-label":`下一页`,onClick:r[1]||=e=>T(1)},[(0,t.createVNode)(i,{icon:(0,t.unref)(m)?`arrow-down-s-line`:`arrow-right-s-line`},null,8,[`icon`])],8,X)):(0,t.createCommentVNode)(``,!0),(0,t.unref)(h)?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:2,type:`button`,class:`fou-tab-bar__add`,"aria-label":`新增`,onClick:j},` + `)):(0,t.createCommentVNode)(``,!0),n.$slots.extra?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,yt,[(0,t.renderSlot)(n.$slots,`extra`,{},void 0,!0)])):(0,t.createCommentVNode)(``,!0)],2),e.tabPosition===`bottom`?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,bt,[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)]))],2)}}}),St=v({default:()=>Ct}),Ct=S(xt,[[`__scopeId`,`data-v-9d53a5a9`]]),wt=[`aria-hidden`],Tt=(0,t.defineComponent)({name:`FouTabPane`,__name:`index`,props:{name:{},label:{default:``},lazy:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},closable:{type:Boolean},icon:{}},setup(e){let n=e,r=(0,t.useSlots)(),i=(0,t.inject)(mt,null),a=(0,t.getCurrentInstance)()?.uid??Math.random(),o=(0,t.ref)(!n.lazy),s=(0,t.computed)(()=>i?.activeName.value===n.name),c=(0,t.computed)(()=>!n.lazy||o.value||s.value);(0,t.watch)(s,e=>{e&&n.lazy&&(o.value=!0)});let l=()=>n.label||String(n.name),u=()=>{i?.updatePane(a,{name:n.name,label:l(),lazy:n.lazy,loaded:o.value,disabled:n.disabled,closable:n.closable,icon:n.icon,render:()=>r.default?.()??[],renderLabel:()=>r.label?.()??[]})};return(0,t.onMounted)(()=>{i?.registerPane({uid:a,name:n.name,label:l(),lazy:n.lazy,loaded:o.value,disabled:n.disabled,closable:n.closable,icon:n.icon,render:()=>r.default?.()??[],renderLabel:()=>r.label?.()??[]})}),(0,t.onUnmounted)(()=>{i?.unregisterPane(a)}),(0,t.watch)(()=>[n.name,n.label,n.lazy,n.disabled,n.closable,n.icon],()=>u()),(e,n)=>(0,t.unref)(c)?(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:`fou-tab-pane`,role:`tabpanel`,"aria-hidden":!(0,t.unref)(s)},[(0,t.renderSlot)(e.$slots,`default`,{},void 0,!0)],8,wt)),[[t.vShow,(0,t.unref)(s)]]):(0,t.createCommentVNode)(``,!0)}}),Et=v({default:()=>Dt}),Dt=S(Tt,[[`__scopeId`,`data-v-58911a66`]]),Ot={class:`fou-empty`},kt={class:`fou-empty__image`},At={key:0,class:`fou-empty__description`},jt={key:1,class:`fou-empty__actions`},Mt=(0,t.defineComponent)({name:`FouEmpty`,__name:`index`,props:{description:{default:`暂无数据`}},setup(e){return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Ot,[(0,t.createElementVNode)(`div`,kt,[(0,t.renderSlot)(n.$slots,`image`,{},()=>[r[0]||=(0,t.createStaticVNode)(`<svg class="fou-empty__svg" viewBox="0 0 120 80" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" data-v-b743bb49><rect x="10" y="20" width="100" height="50" rx="4" fill="var(--fou-fill-color, var(--fou-fill-color, #f0f2f5))" data-v-b743bb49></rect><rect x="20" y="30" width="40" height="6" rx="2" fill="var(--fou-border-color, var(--fou-border-color, #dcdfe6))" data-v-b743bb49></rect><rect x="20" y="42" width="60" height="6" rx="2" fill="var(--fou-border-color-lighter, var(--fou-border-color-lighter, #ebeef5))" data-v-b743bb49></rect><rect x="20" y="54" width="30" height="6" rx="2" fill="var(--fou-border-color-lighter, var(--fou-border-color-lighter, #ebeef5))" data-v-b743bb49></rect></svg>`,1)],!0)]),e.description||n.$slots.description?((0,t.openBlock)(),(0,t.createElementBlock)(`p`,At,[(0,t.renderSlot)(n.$slots,`description`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.description),1)],!0)])):(0,t.createCommentVNode)(``,!0),n.$slots.default?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,jt,[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)])):(0,t.createCommentVNode)(``,!0)]))}}),Nt=v({default:()=>Pt}),Pt=S(Mt,[[`__scopeId`,`data-v-b743bb49`]]),Ft={key:0,class:`fou-button__loading`,"aria-hidden":`true`},It={key:1,class:`fou-button__icon`},Lt={key:2,class:`fou-button__label`},Rt={key:3,class:`fou-button__icon-right`},zt=(0,t.defineComponent)({name:`FouButton`,inheritAttrs:!1,__name:`index`,props:{type:{default:`default`},color:{},size:{},plain:{type:Boolean,default:!1},text:{type:Boolean,default:!1},link:{type:Boolean,default:!1},round:{type:Boolean,default:!1},circle:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},nativeType:{default:`button`},tag:{default:`button`},icon:{},iconRight:{}},emits:[`click`],setup(e,{emit:n}){let r={primary:`var(--fou-color-primary, var(--fou-color-primary, #0f766e))`,success:`var(--fou-color-success, var(--fou-color-success, #67c23a))`,warning:`var(--fou-color-warning, var(--fou-color-warning, #e6a23c))`,danger:`var(--fou-color-danger, var(--fou-color-danger, #f56c6c))`,info:`var(--fou-color-info, var(--fou-color-info, #909399))`,cyan:`#0ea5e9`,orange:`#f97316`,pink:`#ec4899`,teal:`#14b8a6`,gray:`#64748b`,magenta:`#d946ef`,lime:`#84cc16`,brown:`#a16207`},i=e,a=n,o=(0,t.inject)(`fouButtonGroupSize`,null),s=(0,t.computed)(()=>i.size||o?.value||`default`),c=(0,t.computed)(()=>i.color?i.color:i.type&&i.type!=="default"&&r[i.type]?r[i.type]:``),l=(0,t.computed)(()=>{if(c.value)return{"--fou-btn-color":c.value}}),u=(0,t.computed)(()=>[`fou-button--${s.value}`,{"fou-button--default":i.type==="default"&&!i.color,"fou-button--colored":!!c.value,"fou-button--plain":i.plain,"fou-button--text":i.text,"fou-button--link":i.link,"fou-button--round":i.round,"fou-button--circle":i.circle,"is-disabled":i.disabled||i.loading,"is-loading":i.loading}]),d=e=>{if(i.disabled||i.loading){e.preventDefault();return}a(`click`,e)};return(n,r)=>{let i=k;return(0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.tag),(0,t.mergeProps)({class:[`fou-button`,(0,t.unref)(u)],type:e.tag===`button`?e.nativeType:void 0,disabled:e.disabled||e.loading,style:(0,t.unref)(l)},n.$attrs,{onClick:d}),{default:(0,t.withCtx)(()=>[e.loading?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Ft)):(0,t.createCommentVNode)(``,!0),!e.loading&&(e.icon||n.$slots.icon)?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,It,[(0,t.renderSlot)(n.$slots,`icon`,{},()=>[e.icon?((0,t.openBlock)(),(0,t.createBlock)(i,{key:0,icon:e.icon},null,8,[`icon`])):(0,t.createCommentVNode)(``,!0)],!0)])):(0,t.createCommentVNode)(``,!0),n.$slots.default?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Lt,[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)])):(0,t.createCommentVNode)(``,!0),e.iconRight||n.$slots.iconRight?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Rt,[(0,t.renderSlot)(n.$slots,`iconRight`,{},()=>[e.iconRight?((0,t.openBlock)(),(0,t.createBlock)(i,{key:0,icon:e.iconRight},null,8,[`icon`])):(0,t.createCommentVNode)(``,!0)],!0)])):(0,t.createCommentVNode)(``,!0)]),_:3},16,[`class`,`type`,`disabled`,`style`])}}}),Bt=v({default:()=>Vt}),Vt=S(zt,[[`__scopeId`,`data-v-45258dc5`]]),Ht={class:`fou-msg__content`},Ut={key:0},Wt=(0,t.defineComponent)({name:`FouMsgItem`,__name:`FouMsgItem`,props:{id:{},type:{},position:{},message:{},showClose:{type:Boolean},visible:{type:Boolean}},emits:[`close`],setup(e){let n=e,r=(0,t.computed)(()=>({success:`ri-checkbox-circle-line`,warning:`ri-alert-line`,info:`ri-information-line`,error:`ri-close-circle-line`})[n.type]);return(n,i)=>((0,t.openBlock)(),(0,t.createBlock)(t.Transition,{name:`fou-msg-fade`},{default:(0,t.withCtx)(()=>[(0,t.withDirectives)((0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`fou-msg`,[`fou-msg--${e.type}`,`fou-msg--${e.position}`]])},[(0,t.createElementVNode)(`i`,{class:(0,t.normalizeClass)([`fou-msg__icon`,r.value])},null,2),(0,t.createElementVNode)(`div`,Ht,[typeof e.message==`string`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Ut,(0,t.toDisplayString)(e.message),1)):((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.message),{key:1}))]),e.showClose?((0,t.openBlock)(),(0,t.createElementBlock)(`i`,{key:0,class:`fou-msg__close ri-close-line`,onClick:i[0]||=e=>n.$emit(`close`)})):(0,t.createCommentVNode)(``,!0)],2),[[t.vShow,e.visible]])]),_:1}))}}),Gt=v({default:()=>Kt}),Kt=Wt,qt={center:[],"left-top":[],"left-center":[],"left-bottom":[],"top-center":[],"bottom-center":[],"right-top":[],"right-center":[],"right-bottom":[]},Z=0,Jt=(e,t=20)=>{let n=`fou-msg-host-${e}`,r=document.getElementById(n);return r||(r=document.createElement(`div`),r.id=n,r.className=`fou-msg-host fou-msg-host--${e}`,document.body.appendChild(r)),r.style.setProperty(`--fou-msg-offset`,`${t}px`),r},Yt=e=>{qt[e].forEach((e,t)=>{e.el.style.setProperty(`--fou-msg-index`,String(t))})},Xt=e=>{Object.keys(qt).forEach(t=>{let n=qt[t].findIndex(t=>t.id===e);if(n>=0){let[e]=qt[t].splice(n,1);e.timer&&clearTimeout(e.timer),e.app.unmount(),e.el.remove(),Yt(t)}})},Zt=e=>{(e?[e]:Object.keys(qt)).forEach(e=>{[...qt[e]].forEach(e=>Xt(e.id))})};function Qt(e){return e?{"bottom-right":`right-bottom`,"top-right":`right-top`,"bottom-left":`left-bottom`,"top-left":`left-top`}[e]||e:`center`}var Q=Object.assign(e=>{let n=typeof e==`string`?{message:e}:{...e},r=Qt(n.position),i=n.type||`info`,a=n.duration??3e3,o=n.id||`fou-msg-${++Z}`,s=n.offset??20;Xt(o);let c=Jt(r,s),l=document.createElement(`div`);l.className=`fou-msg-wrap`,c.appendChild(l);let u=(0,t.ref)(!0),d={id:o,app:null,el:l,position:r},f=()=>{d.timer&&=(clearTimeout(d.timer),void 0),u.value=!1,setTimeout(()=>{Xt(o),n.onClose?.()},200)},p=(0,t.createApp)({setup(){return()=>(0,t.h)(Kt,{id:o,type:i,position:r,message:n.message,showClose:n.showClose??!0,visible:u.value,onClose:f})}});return a>0&&(d.timer=setTimeout(f,a)),p.mount(l),d.app=p,qt[r].push(d),Yt(r),{close:()=>Xt(o),id:o}},{success(e,t){return Q(typeof e==`string`?{message:e,type:`success`,position:t}:{...e,type:`success`})},warning(e,t){return Q(typeof e==`string`?{message:e,type:`warning`,position:t}:{...e,type:`warning`})},info(e,t){return Q(typeof e==`string`?{message:e,type:`info`,position:t}:{...e,type:`info`})},error(e,t){return Q(typeof e==`string`?{message:e,type:`error`,position:t}:{...e,type:`error`})},closeAll:Zt}),$t={install(e){e.config.globalProperties.$fouMsg=Q,e.provide(`$fouMsg`,Q)}},en=`fou-badge-templates`,tn=`fou-badge-desk-templates`,nn=`fou-badge-library`,rn=`fou-badge-competitions`,an=e=>({code:0,data:e}),on=(e,t)=>{try{let n=localStorage.getItem(e);return n?JSON.parse(n):t}catch{return t}},sn=(e,t)=>{localStorage.setItem(e,JSON.stringify(t))},cn=()=>{let e=new Date,t=e=>String(e).padStart(2,`0`);return`${e.getFullYear()}-${t(e.getMonth()+1)}-${t(e.getDate())} ${t(e.getHours())}:${t(e.getMinutes())}:${t(e.getSeconds())}`},ln=()=>{let e=on(rn,[]);return e.length||(e=[{id:1,name:`演示比赛 A`,area_code:`A01`,host_region:`110000`,start_date:`2026-08-01`,status:1},{id:2,name:`演示比赛 B`,area_code:`B02`,host_region:`310000`,start_date:`2026-09-01`,status:2}],sn(rn,e)),e},un=e=>on(e===`badge`?en:tn,[]),dn=(e,t)=>sn(e===`badge`?en:tn,t),fn=e=>e.reduce((e,t)=>Math.max(e,Number(t.id)||0),0)+1,pn=(e,t=90,n=54)=>({version:1,canvas:{widthMm:t,heightMm:n,background:`#ffffff`},elements:[],guides:[],regions:[]}),mn=async e=>{let t=ln(),n=Number(e?.page||1),r=Number(e?.page_size||e?.pageSize||20),i=String(e?.keyword||e?.q||``).trim(),a=t;i&&(a=a.filter(e=>`${e.name}${e.area_code}`.includes(i)));let o=(n-1)*r;return an({list:a.slice(o,o+r),total:a.length,page:n,page_size:r})},hn=async e=>an(ln().find(t=>t.id===Number(e))||{id:e,name:`比赛 ${e}`,status:1}),gn=async e=>an({list:un(`badge`).filter(t=>t.competition_id===Number(e))}),_n=async(e,t)=>{let n=un(`badge`),r={id:fn(n),competition_id:Number(e),name:t.name||`未命名模板`,width_mm:90,height_mm:54,is_default:n.filter(t=>t.competition_id===Number(e)).length===0,update_time:cn(),doc:pn(t.name||`未命名模板`),kind:`badge`};return n.push(r),dn(`badge`,n),an(r)},vn=async(e,t)=>{let n=un(`badge`).find(n=>n.id===Number(t)&&n.competition_id===Number(e));return an(n?{...n,template_json:n.doc||pn(n.name,n.width_mm,n.height_mm),doc:n.doc||pn(n.name,n.width_mm,n.height_mm),default_test_json:n.default_test_json||{}}:null)},yn=async e=>{let t=un(`badge`).filter(t=>t.competition_id===Number(e)),n=t.find(e=>e.is_default)||t[0];return n?vn(e,n.id):an(null)},bn=async(e,t,n)=>{let r=un(`badge`),i=r.findIndex(n=>n.id===Number(t)&&n.competition_id===Number(e));if(i<0)return an(null);let a=n.doc||n.template_json||n.template||r[i].doc,o=String(n.name||r[i].name),s=Number(a?.canvas?.widthMm||n.width_mm||r[i].width_mm),c=Number(a?.canvas?.heightMm||n.height_mm||r[i].height_mm);return r[i]={...r[i],name:o,width_mm:s,height_mm:c,doc:a,default_test_json:n.default_test_json??r[i].default_test_json??{},update_time:cn()},dn(`badge`,r),an(r[i])},xn=async(e,t)=>(dn(`badge`,un(`badge`).filter(n=>n.id!==Number(t)||n.competition_id!==Number(e))),an(!0)),Sn=async(e,t)=>(dn(`badge`,un(`badge`).map(n=>n.competition_id===Number(e)?{...n,is_default:n.id===Number(t)}:n)),an(!0)),Cn=async e=>an({list:un(`desk`).filter(t=>t.competition_id===Number(e))}),wn=async(e,t)=>{let n=un(`desk`),r={id:fn(n),competition_id:Number(e),name:t.name||`未命名桌签`,width_mm:150,height_mm:50,is_default:n.filter(t=>t.competition_id===Number(e)).length===0,update_time:cn(),doc:pn(t.name||`未命名桌签`,150,50),kind:`desk`};return n.push(r),dn(`desk`,n),an(r)},Tn=async(e,t)=>{let n=un(`desk`).find(n=>n.id===Number(t)&&n.competition_id===Number(e));return an(n?{...n,template_json:n.doc||pn(n.name,n.width_mm,n.height_mm),doc:n.doc||pn(n.name,n.width_mm,n.height_mm),default_test_json:n.default_test_json||{}}:null)},En=async e=>{let t=un(`desk`).filter(t=>t.competition_id===Number(e)),n=t.find(e=>e.is_default)||t[0];return n?Tn(e,n.id):an(null)},Dn=async(e,t,n)=>{let r=un(`desk`),i=r.findIndex(n=>n.id===Number(t)&&n.competition_id===Number(e));if(i<0)return an(null);let a=n.doc||n.template_json||n.template||r[i].doc,o=String(n.name||r[i].name),s=Number(a?.canvas?.widthMm||n.width_mm||r[i].width_mm),c=Number(a?.canvas?.heightMm||n.height_mm||r[i].height_mm);return r[i]={...r[i],name:o,width_mm:s,height_mm:c,doc:a,default_test_json:n.default_test_json??r[i].default_test_json??{},update_time:cn()},dn(`desk`,r),an(r[i])},On=async(e,t)=>(dn(`desk`,un(`desk`).filter(n=>n.id!==Number(t)||n.competition_id!==Number(e))),an(!0)),kn=async(e,t)=>(dn(`desk`,un(`desk`).map(n=>n.competition_id===Number(e)?{...n,is_default:n.id===Number(t)}:n)),an(!0)),An=async e=>{let t=on(nn,[]),n=Number(e?.page||1),r=Number(e?.page_size||40),i=(n-1)*r;return an({list:t.slice(i,i+r),total:t.length,page:n,page_size:r})},jn=async e=>{let t=await new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(String(r.result||``)),r.onerror=()=>n(Error(`read failed`)),r.readAsDataURL(e)}),n=on(nn,[]),r={id:n.reduce((e,t)=>Math.max(e,t.id),0)+1,url:t,name:e.name,create_time:cn()};return n.unshift(r),sn(nn,n),an(r)},Mn=async e=>(sn(nn,on(nn,[]).filter(t=>t.id!==Number(e))),an(!0)),Nn=async e=>an([{id:1,name:`演示学校一`,short_name:`校一`},{id:2,name:`演示学校二`,short_name:`校二`}]),Pn=async(e,t)=>an({list:[{id:1,student_name:`张三`,competition_no:`A001`,school_name:`演示学校一`,age_group:`小学组`,competition_room:`101`,seat_no:`01`},{id:2,student_name:`李四`,competition_no:`A002`,school_name:`演示学校一`,age_group:`小学组`,competition_room:`101`,seat_no:`02`}],total:2}),Fn=async(e,t)=>an({list:[],total:0}),In=async(e,t)=>an(!0),Ln=async e=>an([{id:1,competition_room:`101`,seat_no:`01`,student_name:`张三`,school_name:`演示学校一`}]);function Rn(e){let t=String(e||``).trim();if(!t)return``;if(/^data:/i.test(t)||/^blob:/i.test(t))return t;if(/^(https?:)?\/\//i.test(t)){try{let e=new URL(t,window.location.origin);if(e.pathname.startsWith(`/uploads/`))return`${e.pathname}${e.search}${e.hash}`}catch{}return t}return t.startsWith(`/uploads/`)||t.startsWith(`/`)?t:`/${t}`}var zn={class:`lib-grid`},Bn=[`onDblclick`],Vn=[`src`],Hn=[`title`],Un=8,Wn=(0,t.defineComponent)({__name:`BadgeImagePickerDialog`,props:{modelValue:{type:Boolean},defaultTab:{default:`lib`}},emits:[`update:modelValue`,`pick`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.computed)({get:()=>r.modelValue,set:e=>i(`update:modelValue`,e)}),o=(0,t.ref)(`lib`),s=(0,t.ref)(!1),c=(0,t.ref)([]),l=(0,t.ref)(null),u=(0,t.ref)(!1),d=(0,t.ref)(null);function f(e){return Rn(e)}async function p(){s.value=!0;try{let e=await An({page:1,page_size:120});c.value=e.data?.list??[]}catch{c.value=[]}finally{s.value=!1}}(0,t.watch)(()=>r.modelValue,e=>{e&&(o.value=r.defaultTab)});function m(e){e?.url&&(i(`pick`,Rn(e.url)),a.value=!1)}function h(e){d.value=e,u.value=!0}async function g(){let e=d.value;if(e){u.value=!1;try{await Mn(Number(e.id)),Q.success(`已删除`),await p()}catch{}}}async function _(e){for(let t of Array.from(e)){if(t.size/1048576>Un){Q.error(`「${t.name}」超过 ${Un}MB,已跳过`);continue}try{let e=(await jn(t))?.data?.url;if(!e){Q.error(`「${t.name}」上传失败`);continue}i(`pick`,Rn(e)),await p()}catch{}}}function v(e){let t=e.target;t.files?.length&&_(t.files),t.value=``}function y(e){e.dataTransfer?.files?.length&&_(e.dataTransfer.files)}return(e,n)=>{let r=Vt,i=Pt,_=Dt,b=k,x=Ct,S=pt,C=(0,t.resolveDirective)(`fou-loading`);return(0,t.openBlock)(),(0,t.createBlock)(S,{modelValue:a.value,"onUpdate:modelValue":n[5]||=e=>a.value=e,title:`添加图片`,width:`720px`,"destroy-on-close":``,class:`badge-img-picker-dlg`,onOpened:p},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(x,{modelValue:o.value,"onUpdate:modelValue":n[2]||=e=>o.value=e},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(_,{label:`图片库`,name:`lib`},{default:(0,t.withCtx)(()=>[n[7]||=(0,t.createElementVNode)(`p`,{class:`dlg-hint`},`双击缩略图插入到画布;删除后模板里若仍引用该地址将无法显示。`,-1),(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createElementBlock)(`div`,zn,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(c.value,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:e.id,class:`lib-cell`,onDblclick:t=>m(e)},[(0,t.createElementVNode)(`img`,{src:f(e.url),alt:``,class:`thumb`,loading:`lazy`},null,8,Vn),(0,t.createElementVNode)(`div`,{class:`meta`,title:e.orig_name},(0,t.toDisplayString)(e.orig_name||`未命名`),9,Hn),(0,t.createVNode)(r,{type:`danger`,link:``,size:`small`,class:`del`,onClick:(0,t.withModifiers)(t=>h(e),[`stop`])},{default:(0,t.withCtx)(()=>[...n[6]||=[(0,t.createTextVNode)(`删除`,-1)]]),_:1},8,[`onClick`])],40,Bn))),128))])),[[C,s.value]]),!s.value&&!c.value.length?((0,t.openBlock)(),(0,t.createBlock)(i,{key:0,description:`暂无图片,可到「上传本地文件」添加`})):(0,t.createCommentVNode)(``,!0)]),_:1}),(0,t.createVNode)(_,{label:`上传本地文件`,name:`up`},{default:(0,t.withCtx)(()=>[n[10]||=(0,t.createElementVNode)(`p`,{class:`dlg-hint`},`上传后会写入图片库,并自动插入当前画布;可多选文件或一次拖拽多张。`,-1),(0,t.createElementVNode)(`div`,{class:`upload-drop`,onDragover:n[0]||=(0,t.withModifiers)(()=>{},[`prevent`]),onDrop:(0,t.withModifiers)(y,[`prevent`]),onClick:n[1]||=e=>l.value?.click()},[(0,t.createVNode)(b,{icon:`upload-cloud-2-line`,class:`upload-ico`}),n[8]||=(0,t.createElementVNode)(`div`,{class:`upload-text`},[(0,t.createTextVNode)(`拖到此处,或 `),(0,t.createElementVNode)(`em`,null,`点击选择多个文件`)],-1),n[9]||=(0,t.createElementVNode)(`div`,{class:`upload-sub`},`支持 JPG / PNG / GIF / WebP / BMP,单文件不超过 8MB`,-1),(0,t.createElementVNode)(`input`,{ref_key:`fileInputRef`,ref:l,type:`file`,multiple:``,accept:`image/jpeg,image/png,image/gif,image/webp,image/bmp`,class:`upload-input`,onChange:v},null,544)],32)]),_:1})]),_:1},8,[`modelValue`]),(0,t.createVNode)(S,{modelValue:u.value,"onUpdate:modelValue":n[4]||=e=>u.value=e,title:`删除确认`,width:`400px`,"append-to-body":``},{footer:(0,t.withCtx)(()=>[(0,t.createVNode)(r,{onClick:n[3]||=e=>u.value=!1},{default:(0,t.withCtx)(()=>[...n[11]||=[(0,t.createTextVNode)(`取消`,-1)]]),_:1}),(0,t.createVNode)(r,{type:`danger`,onClick:g},{default:(0,t.withCtx)(()=>[...n[12]||=[(0,t.createTextVNode)(`删除`,-1)]]),_:1})]),default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`p`,null,`确定删除「`+(0,t.toDisplayString)(d.value?.orig_name||`该图片`)+`」?`,1)]),_:1},8,[`modelValue`])]),_:1},8,[`modelValue`])}}}),Gn=v({default:()=>Kn}),Kn=S(Wn,[[`__scopeId`,`data-v-ef328213`]]),qn={key:0,class:`fou-pagination__total`},Jn={key:1,class:`fou-pagination__sizes`},Yn=[`disabled`,`value`],Xn=[`value`],Zn=[`disabled`],Qn={key:3,class:`fou-pagination__pager`},$n=[`disabled`,`onClick`],er={key:1,class:`fou-pagination__ellipsis`},tr=[`disabled`],nr={key:5,class:`fou-pagination__jumper`},rr=[`disabled`],ir=(0,t.defineComponent)({name:`FouPagination`,__name:`index`,props:{total:{default:0},currentPage:{default:1},pageSize:{default:10},pageSizes:{default:()=>[10,20,50,100]},layout:{default:`total, sizes, prev, pager, next, jumper`},background:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},hideOnSinglePage:{type:Boolean,default:!1},small:{type:Boolean,default:!1},pagerCount:{default:7},type:{default:`primary`},color:{},variant:{default:`default`}},emits:[`update:current-page`,`update:page-size`,`current-change`,`size-change`],setup(e,{emit:n}){let r={primary:`var(--fou-color-primary, #0f766e)`,success:`var(--fou-color-success, #67c23a)`,warning:`var(--fou-color-warning, #e6a23c)`,danger:`var(--fou-color-danger, #f56c6c)`,info:`var(--fou-color-info, #909399)`,cyan:`#0ea5e9`,orange:`#f97316`,pink:`#ec4899`,teal:`#14b8a6`},i=e,a=n,o=(0,t.ref)(``),s=(0,t.computed)(()=>({"--fou-page-color":i.color||r[i.type]||r.primary})),c=(0,t.computed)(()=>i.layout.split(`,`).map(e=>e.trim()).filter(Boolean)),l=(0,t.computed)(()=>c.value.includes(`total`)),u=(0,t.computed)(()=>c.value.includes(`sizes`)),d=(0,t.computed)(()=>c.value.includes(`prev`)),f=(0,t.computed)(()=>c.value.includes(`pager`)),p=(0,t.computed)(()=>c.value.includes(`next`)),m=(0,t.computed)(()=>c.value.includes(`jumper`)),h=(0,t.computed)(()=>Math.max(1,Math.ceil(i.total/i.pageSize))),g=(0,t.computed)(()=>{let e=h.value,t=i.currentPage,n=i.pagerCount,r=Math.floor(n/2);if(e<=n)return Array.from({length:e},(e,t)=>({key:`p-${t+1}`,number:t+1}));let a=[];a.push({key:`p-1`,number:1});let o=Math.max(2,t-r),s=Math.min(e-1,t+r);t<=r+1?s=n-2:t>=e-r&&(o=e-n+2),o>2&&a.push({key:`e-start`,ellipsis:!0});for(let e=o;e<=s;e++)a.push({key:`p-${e}`,number:e});return s<e-1&&a.push({key:`e-end`,ellipsis:!0}),a.push({key:`p-${e}`,number:e}),a}),_=e=>{let t=Math.min(Math.max(1,e),h.value);t!==i.currentPage&&(a(`update:current-page`,t),a(`current-change`,t))},v=e=>{if(e===i.pageSize)return;a(`update:page-size`,e),a(`size-change`,e);let t=Math.max(1,Math.ceil(i.total/e));i.currentPage>t&&_(t)},y=()=>_(i.currentPage-1),b=()=>_(i.currentPage+1),x=e=>_(e),S=e=>{let t=Number(e.target.value);Number.isNaN(t)||v(t)},C=()=>{let e=parseInt(o.value,10);Number.isNaN(e)||(_(e),o.value=``)};return(n,r)=>!e.hideOnSinglePage||(0,t.unref)(h)>1?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:(0,t.normalizeClass)([`fou-pagination`,[`fou-pagination--${e.type}`,`fou-pagination--${e.variant}`,{"is-background":e.background,"is-small":e.small,"is-disabled":e.disabled}]]),style:(0,t.normalizeStyle)((0,t.unref)(s))},[(0,t.unref)(l)?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,qn,` 共 `+(0,t.toDisplayString)(e.total)+` 条 `,1)):(0,t.createCommentVNode)(``,!0),(0,t.unref)(u)?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Jn,[(0,t.createElementVNode)(`select`,{class:`fou-pagination__select`,disabled:e.disabled,value:e.pageSize,onChange:S},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.pageSizes,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`option`,{key:e,value:e},(0,t.toDisplayString)(e)+` 条/页 `,9,Xn))),128))],40,Yn)])):(0,t.createCommentVNode)(``,!0),(0,t.unref)(d)?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:2,type:`button`,class:`fou-pagination__btn fou-pagination__prev`,disabled:e.disabled||e.currentPage<=1,onClick:y},` ‹ `,8,Zn)):(0,t.createCommentVNode)(``,!0),(0,t.unref)(f)?((0,t.openBlock)(),(0,t.createElementBlock)(`ul`,Qn,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(g),n=>((0,t.openBlock)(),(0,t.createElementBlock)(`li`,{key:n.key,class:(0,t.normalizeClass)([`fou-pagination__page`,{"is-active":n.number===e.currentPage,"is-ellipsis":n.ellipsis}])},[n.ellipsis?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,er,`…`)):((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:0,type:`button`,class:`fou-pagination__page-btn`,disabled:e.disabled,onClick:e=>x(n.number)},(0,t.toDisplayString)(n.number),9,$n))],2))),128))])):(0,t.createCommentVNode)(``,!0),(0,t.unref)(p)?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:4,type:`button`,class:`fou-pagination__btn fou-pagination__next`,disabled:e.disabled||e.currentPage>=(0,t.unref)(h),onClick:b},` › `,8,tr)):(0,t.createCommentVNode)(``,!0),(0,t.unref)(m)?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,nr,[r[1]||=(0,t.createElementVNode)(`span`,null,`前往`,-1),(0,t.withDirectives)((0,t.createElementVNode)(`input`,{"onUpdate:modelValue":r[0]||=e=>(0,t.isRef)(o)?o.value=e:null,class:`fou-pagination__jumper-input`,type:`text`,disabled:e.disabled,onKeydown:(0,t.withKeys)(C,[`enter`])},null,40,rr),[[t.vModelText,(0,t.unref)(o)]]),r[2]||=(0,t.createElementVNode)(`span`,null,`页`,-1)])):(0,t.createCommentVNode)(``,!0)],6)):(0,t.createCommentVNode)(``,!0)}}),ar=v({default:()=>or}),or=S(ir,[[`__scopeId`,`data-v-1ed90219`]]),sr=(0,t.defineComponent)({name:`FouSkeleton`,__name:`index`,props:{rows:{default:3},animated:{type:Boolean,default:!0},loading:{type:Boolean,default:!0},lastRowWidth:{default:60}},setup(e){let n=e,r=e=>e===n.rows?{width:`${n.lastRowWidth}%`}:{};return(n,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-skeleton`,{"is-loading":e.loading}])},[e.loading?((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,{key:0},(0,t.renderList)(e.rows,n=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:n,class:(0,t.normalizeClass)([`fou-skeleton__row`,{"is-animated":e.animated}]),style:(0,t.normalizeStyle)(r(n))},null,6))),128)):(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0,1)],2))}}),cr=v({default:()=>lr}),lr=S(sr,[[`__scopeId`,`data-v-909546e6`]]),ur={key:0,class:`fou-card__header`},dr={key:1,class:`fou-card__footer`},fr=(0,t.defineComponent)({name:`FouCard`,__name:`index`,props:{bodyClass:{type:String,default:``},bodyStyle:{type:[Object,String],default:()=>({})},shadow:{type:String,default:`never`},skeleton:{type:Boolean,default:!1},skeletonRows:{type:Number,default:5},title:{type:String,default:``}},setup(e){let n=(0,t.ref)(!0),r=setTimeout(()=>{n.value=!1},500);return(0,t.onBeforeUnmount)(()=>{clearTimeout(r)}),(r,i)=>{let a=lr;return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-card`,[`fou-card--shadow-${e.shadow}`]])},[r.$slots.header||e.title?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ur,[r.$slots.header?(0,t.renderSlot)(r.$slots,`header`,{},void 0,!0,0):((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:1},[(0,t.createTextVNode)((0,t.toDisplayString)(e.title),1)],64))])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`fou-card__body`,e.bodyClass]),style:(0,t.normalizeStyle)(e.bodyStyle)},[e.skeleton?((0,t.openBlock)(),(0,t.createBlock)(a,{key:0,animated:``,loading:(0,t.unref)(n),rows:e.skeletonRows},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(r.$slots,`default`,{},void 0,!0)]),_:3},8,[`loading`,`rows`])):(0,t.renderSlot)(r.$slots,`default`,{},void 0,!0,1)],6),r.$slots.footer?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,dr,[(0,t.renderSlot)(r.$slots,`footer`,{},void 0,!0)])):(0,t.createCommentVNode)(``,!0)],2)}}}),pr=v({default:()=>mr}),mr=S(fr,[[`__scopeId`,`data-v-b19ab3ea`]]),hr={class:`badge-library-panel`},gr={class:`upload-btn`},_r={class:`lib-grid`},vr=[`src`],yr=[`title`],br={class:`sub`},xr={key:1,class:`pager`},Sr=(0,t.defineComponent)({__name:`BadgeLibraryPanel`,setup(e,{expose:n}){let r=(0,t.ref)(!1),i=(0,t.ref)([]),a=(0,t.ref)(0),o=(0,t.ref)(1),s=(0,t.ref)(40),c=(0,t.ref)(!1),l=(0,t.ref)(null);function u(e){return Rn(e)}function d(e){let t=Number(e)||0;return t<1024?`${t} B`:t<1048576?`${(t/1024).toFixed(1)} KB`:`${(t/1024/1024).toFixed(2)} MB`}async function f(){r.value=!0;try{let e=await An({page:o.value,page_size:s.value});i.value=e.data?.list??[],a.value=Number(e.data?.total??0)}catch{i.value=[],a.value=0}finally{r.value=!1}}async function p(e){let t=e.target,n=t.files?.[0];if(t.value=``,n)try{await jn(n),Q.success(`已上传`),o.value=1,await f()}catch{}}function m(e){l.value=e,c.value=!0}async function h(){let e=l.value;if(e){c.value=!1;try{await Mn(Number(e.id)),Q.success(`已删除`),await f()}catch{}}}return(0,t.onMounted)(()=>f()),n({load:f}),(e,n)=>{let g=Vt,_=mr,v=Pt,y=or,b=pt,x=(0,t.resolveDirective)(`fou-loading`);return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,hr,[(0,t.createVNode)(_,{shadow:`never`,class:`toolbar-card`},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`label`,gr,[(0,t.createElementVNode)(`input`,{type:`file`,accept:`image/jpeg,image/png,image/gif,image/webp,image/bmp`,class:`upload-input`,onChange:p},null,32),(0,t.createVNode)(g,{type:`primary`,tag:`span`},{default:(0,t.withCtx)(()=>[...n[3]||=[(0,t.createTextVNode)(`上传图片`,-1)]]),_:1})]),n[4]||=(0,t.createElementVNode)(`span`,{class:`hint`},`上传后可在模板编辑器的「图片库」中选用。`,-1)]),_:1}),(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createBlock)(_,{shadow:`never`},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,_r,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(i.value,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:e.id,class:`lib-cell`},[(0,t.createElementVNode)(`img`,{src:u(e.url),alt:``,class:`thumb`,loading:`lazy`},null,8,vr),(0,t.createElementVNode)(`div`,{class:`meta`,title:e.orig_name},(0,t.toDisplayString)(e.orig_name||`未命名`),9,yr),(0,t.createElementVNode)(`div`,br,(0,t.toDisplayString)(d(e.size))+` · `+(0,t.toDisplayString)(e.create_time),1),(0,t.createVNode)(g,{type:`danger`,link:``,size:`small`,onClick:t=>m(e)},{default:(0,t.withCtx)(()=>[...n[5]||=[(0,t.createTextVNode)(`删除`,-1)]]),_:1},8,[`onClick`])]))),128))]),!r.value&&!i.value.length?((0,t.openBlock)(),(0,t.createBlock)(v,{key:0,description:`暂无图片`})):(0,t.createCommentVNode)(``,!0),a.value>s.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,xr,[(0,t.createVNode)(y,{"current-page":o.value,"onUpdate:currentPage":n[0]||=e=>o.value=e,"page-size":s.value,layout:`total, prev, pager, next`,total:a.value,onCurrentChange:f},null,8,[`current-page`,`page-size`,`total`])])):(0,t.createCommentVNode)(``,!0)]),_:1})),[[x,r.value]]),(0,t.createVNode)(b,{modelValue:c.value,"onUpdate:modelValue":n[2]||=e=>c.value=e,title:`删除确认`,width:`400px`},{footer:(0,t.withCtx)(()=>[(0,t.createVNode)(g,{onClick:n[1]||=e=>c.value=!1},{default:(0,t.withCtx)(()=>[...n[6]||=[(0,t.createTextVNode)(`取消`,-1)]]),_:1}),(0,t.createVNode)(g,{type:`danger`,onClick:h},{default:(0,t.withCtx)(()=>[...n[7]||=[(0,t.createTextVNode)(`删除`,-1)]]),_:1})]),default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`p`,null,`确定删除「`+(0,t.toDisplayString)(l.value?.orig_name||`该图片`)+`」?`,1)]),_:1},8,[`modelValue`])])}}}),Cr=v({default:()=>wr}),wr=S(Sr,[[`__scopeId`,`data-v-4ed86f1c`]]),Tr=(0,t.defineComponent)({__name:`BadgeLibraryManagerDialog`,props:{modelValue:{type:Boolean}},emits:[`update:modelValue`],setup(e){return(n,r)=>{let i=pt;return(0,t.openBlock)(),(0,t.createBlock)(i,{"model-value":e.modelValue,title:`证件图片库`,width:`min(920px, 94vw)`,class:`badge-library-manager-dialog`,"append-to-body":``,"destroy-on-close":``,"onUpdate:modelValue":r[0]||=e=>n.$emit(`update:modelValue`,e)},{default:(0,t.withCtx)(()=>[r[1]||=(0,t.createElementVNode)(`p`,{class:`dlg-tip`},`管理模板编辑中上传的图片;删除后已保存模板里若仍引用该地址将无法显示。`,-1),e.modelValue?((0,t.openBlock)(),(0,t.createBlock)(wr,{key:0})):(0,t.createCommentVNode)(``,!0)]),_:1},8,[`model-value`])}}}),Er=v({default:()=>Dr}),Dr=S(Tr,[[`__scopeId`,`data-v-2b73e005`]]);function Or(){return Ir.map(e=>({...e,fields:e.fields.map(e=>({...e})),sample:e.sample?{...e.sample}:void 0}))}function kr(e,t){let n=new Map;for(let e of Or())n.set(e.id,e);for(let t of e||[]){let e=n.get(t.id);n.set(t.id,e?{...e,...t,fields:t.fields?.length?t.fields:e.fields}:{...t})}for(let e of t||[]){let t=n.get(e.id);n.set(e.id,t?{...t,...e,fields:e.fields?.length?e.fields:t.fields}:{...e})}return[...n.values()].filter(e=>e.enabled!==!1)}function Ar(e,t){return`{{${e}.${t}}}`}function jr(e){let t=[];for(let n of e)for(let e of n.fields)t.push({moduleId:n.id,moduleLabel:n.label,key:e.key,label:e.label,token:Ar(n.id,e.key)});return t}function Mr(e){let t={};for(let n of e)t[n.id]={...n.sample||{}};return t}function Nr(e,t){let n={};for(let[t,r]of Object.entries(e))r!=null&&(n[t]=String(r));!n.competition_name&&t&&(n.competition_name=t);let r={...n};for(let[e,t]of Object.entries(Fr)){let[i,a]=t.split(`.`),o=n[e]??``;(!r[i]||typeof r[i]==`string`)&&(r[i]={}),r[i][a]=o}return r}function Pr(e,t){return{id:`custom_${Date.now().toString(36)}`,label:e||`自定义模块`,builtin:!1,enabled:!0,fields:t?.length?t:[{key:`name`,label:`名称`},{key:`value`,label:`值`}],sample:{name:`示例`,value:`123`}}}var Fr,Ir,Lr=g((()=>{Fr={competition_name:`competition.name`,student_name:`student.name`,competition_no:`student.competition_no`,school_name:`school.name`,school_short_name:`school.short_name`,age_group:`student.age_group`,competition_room:`classroom.name`,seat_no:`classroom.seat_no`,floor:`classroom.floor`,teacher_name:`teacher.name`,date:`competition.date`,session:`competition.session`,enroll_teacher_name:`teacher.enroll_name`,teacher_phone:`teacher.phone`,signup_teacher_name:`teacher.signup_name`,signup_teacher_phone:`teacher.signup_phone`,signup_teacher_department:`teacher.signup_department`,signup_teacher_position:`teacher.signup_position`,signup_teacher_id_card:`teacher.signup_id_card`,signup_teacher_email:`teacher.signup_email`,signup_teacher_username:`teacher.signup_username`,venue_name:`classroom.venue_name`,venue_address:`classroom.venue_address`,competition_daily_start:`competition.daily_start`,competition_daily_end:`competition.daily_end`},Ir=[{id:`student`,label:`学生`,builtin:!0,enabled:!0,fields:[{key:`name`,label:`姓名`},{key:`competition_no`,label:`参赛编号`},{key:`age_group`,label:`年龄段`}],sample:{name:`张三`,competition_no:`A001`,age_group:`中班`}},{id:`teacher`,label:`教师`,builtin:!0,enabled:!0,fields:[{key:`name`,label:`监考教师`},{key:`phone`,label:`手机`},{key:`enroll_name`,label:`带队教师`},{key:`signup_name`,label:`报名教师`},{key:`signup_phone`,label:`报名教师手机`},{key:`signup_department`,label:`报名教师部门`},{key:`signup_position`,label:`报名教师职务`},{key:`signup_id_card`,label:`报名教师身份证`},{key:`signup_email`,label:`报名教师邮箱`},{key:`signup_username`,label:`报名教师账号`}],sample:{name:`李老师`,phone:`13800000000`,signup_name:`王老师`}},{id:`classroom`,label:`教室`,builtin:!0,enabled:!0,fields:[{key:`name`,label:`考场/教室`},{key:`seat_no`,label:`座位号`},{key:`floor`,label:`楼层`},{key:`venue_name`,label:`场地名称`},{key:`venue_address`,label:`场地地址`}],sample:{name:`301 教室`,seat_no:`12`,floor:`3F`}},{id:`school`,label:`学校`,builtin:!0,enabled:!0,fields:[{key:`name`,label:`学校全称`},{key:`short_name`,label:`学校简称`}],sample:{name:`示范幼儿园`,short_name:`示范园`}},{id:`competition`,label:`比赛`,builtin:!0,enabled:!0,fields:[{key:`name`,label:`比赛名称`},{key:`date`,label:`比赛日期`},{key:`session`,label:`场次`},{key:`daily_start`,label:`当天开始`},{key:`daily_end`,label:`当天结束`}],sample:{name:`示例比赛`,date:`2026-08-16`,session:`上午场`}}]}));Lr();function Rr(e,t){let n=t.split(`.`).filter(Boolean);if(n.length===1){let t=e[n[0]];return t==null?``:typeof t==`string`?t:``}if(n.length>=2){let t=e[n[0]];if(t&&typeof t==`object`){let e=t[n[1]];return e!=null&&e!==``?String(e):``}}return``}function zr(e,t){let n=String(t||``).trim();if(!n)return``;if(n.includes(`.`)){let t=Rr(e,n);if(t)return t}let r=e[n];if(typeof r==`string`&&r!==``)return r;let i=Fr[n];if(i){let t=Rr(e,i);if(t)return t}return``}function Br(e,t){if(!e)return``;let n=t;return e.replace(/\{\{\s*([a-zA-Z0-9_.]+)\s*\}\}/g,(e,t)=>zr(n,t))}function Vr(e,t){return Br(e,t)}function Hr(e){return[...e].sort((e,t)=>(e.zIndex??0)-(t.zIndex??0))}function Ur(e){return e?(/^(https?:|data:|blob:|\/\/)/i.test(e),e):``}var Wr=[`src`],Gr=[`src`],Kr={class:`fou-canvas-shape-svg`,viewBox:`0 0 100 100`,preserveAspectRatio:`none`},qr=[`stroke`,`stroke-width`],Jr=[`fill`,`stroke`,`stroke-width`],Yr=[`fill`,`stroke`,`stroke-width`],Xr=[`fill`,`stroke`,`stroke-width`],Zr=[`points`,`fill`,`stroke`,`stroke-width`],Qr=96/25.4,$r=(0,t.defineComponent)({name:`FouCanvasRenderer`,__name:`FouCanvasRenderer`,props:{doc:{},mergeData:{default:()=>({})},screenScale:{default:1},enableLinks:{type:Boolean,default:!0}},setup(e){let n=e,r=(0,t.computed)(()=>n.doc?.elements?.length?Hr(n.doc.elements):[]),i=(0,t.computed)(()=>{let e=n.doc;if(!e?.canvas)return{};let t=e.canvas.showBorder!==!1&&e.mode!==`banner`,r=e.canvas.borderColor||`#334155`,i=Number(e.canvas.borderWidthMm),a=Number.isFinite(i)&&i>0?i:.35,o=e.canvas.unit===`px`||e.mode===`banner`&&!!e.canvas.widthPx;return{width:o?`${e.canvas.widthPx??Math.round(e.canvas.widthMm*Qr)}px`:`${e.canvas.widthMm}mm`,height:o?`${e.canvas.heightPx??Math.round(e.canvas.heightMm*Qr)}px`:`${e.canvas.heightMm}mm`,position:`relative`,boxSizing:`border-box`,overflow:`hidden`,backgroundColor:e.canvas.background||`transparent`,border:t?`${a}mm solid ${r}`:`0 solid transparent`}}),a=(0,t.computed)(()=>{let e=n.doc?.canvas?.backgroundImage;return e?Ur(e):``}),o=(0,t.computed)(()=>({transform:`scale(${n.screenScale})`,transformOrigin:`top left`})),s=(0,t.computed)(()=>{let e=n.doc?.canvas;if(!e)return{};let t=e.unit===`px`||n.doc?.mode===`banner`&&!!e.widthPx,r=t?(e.widthPx??e.widthMm*Qr)*n.screenScale:e.widthMm*Qr*n.screenScale,i=t?(e.heightPx??e.heightMm*Qr)*n.screenScale:e.heightMm*Qr*n.screenScale;return{width:`${r}px`,height:`${i}px`,overflow:`hidden`,lineHeight:0,display:`inline-block`,verticalAlign:`top`}});function c(e){return Br(e.text,n.mergeData||{})}function l(e){return e.link?.href?Br(e.link.href,n.mergeData||{}):``}function u(e){switch(e){case`center`:return{justifyContent:`center`,alignItems:`center`,textAlign:`center`};case`top-center`:return{justifyContent:`center`,alignItems:`flex-start`,textAlign:`center`};case`bottom-center`:return{justifyContent:`center`,alignItems:`flex-end`,textAlign:`center`};case`middle-left`:return{justifyContent:`flex-start`,alignItems:`center`,textAlign:`left`};case`middle-right`:return{justifyContent:`flex-end`,alignItems:`center`,textAlign:`right`};default:return{justifyContent:`flex-start`,alignItems:`flex-start`,textAlign:`left`}}}function d(e){let t=[];return e.rotation&&t.push(`rotate(${e.rotation}deg)`),e.flipX&&t.push(`scaleX(-1)`),e.flipY&&t.push(`scaleY(-1)`),{position:`absolute`,left:`${e.xMm}mm`,top:`${e.yMm}mm`,width:`${e.wMm}mm`,height:`${e.hMm}mm`,zIndex:e.zIndex??1,transform:t.join(` `)||void 0,transformOrigin:`center center`,pointerEvents:n.enableLinks&&e.link?.href?`auto`:`none`,textDecoration:`none`,color:void 0}}function f(e){let t=u(e.align),n=e.textDirection===`vertical`;return{...d(e),display:`flex`,...t,fontSize:`${e.fontSize}pt`,fontFamily:e.fontFamily,color:e.color,lineHeight:1.25,whiteSpace:`pre-wrap`,wordBreak:`break-word`,overflow:`hidden`,writingMode:n?`vertical-rl`:`horizontal-tb`,textOrientation:n?`upright`:`mixed`}}function p(e){return e.type!==`image`&&e.type!==`seal`?{}:{...d(e),display:`flex`,justifyContent:`center`,alignItems:`center`,padding:`0.5mm`,boxSizing:`border-box`}}function m(e){return{...d(e),boxSizing:`border-box`,opacity:e.opacity==null?void 0:String(e.opacity)}}function h(e){return e.showStroke===!1?`none`:e.strokeColor||`#606266`}function g(e){return Math.max(0,Number(e.strokeWidthMm??.6))}function _(e){return e.background||`transparent`}function v(e){let t=Math.max(3,Math.min(12,Math.round(Number(e.polygonSides??5)))),n=[];for(let e=0;e<t;e++){let r=-Math.PI/2+Math.PI*2*e/t;n.push(`${50+Math.cos(r)*44},${50+Math.sin(r)*44}`)}return n.join(` `)}return(n,u)=>e.doc?.canvas?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:`qck-layout-clip`,style:(0,t.normalizeStyle)(s.value)},[(0,t.createElementVNode)(`div`,{class:`qck-screen-wrap`,style:(0,t.normalizeStyle)(o.value)},[(0,t.createElementVNode)(`div`,{class:`fou-canvas-root qck-print-root`,style:(0,t.normalizeStyle)(i.value)},[a.value?((0,t.openBlock)(),(0,t.createElementBlock)(`img`,{key:0,class:`fou-canvas-bg`,src:a.value,alt:``,crossorigin:`anonymous`},null,8,Wr)):(0,t.createCommentVNode)(``,!0),((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.doc.regions||[],e=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:e.id,class:`fou-canvas-region`,style:(0,t.normalizeStyle)({left:`${e.xMm}mm`,top:`${e.yMm}mm`,width:`${e.wMm}mm`,height:`${e.hMm}mm`,backgroundColor:e.background||`transparent`,backgroundImage:e.backgroundImage?`url(${(0,t.unref)(Ur)(e.backgroundImage)})`:void 0,backgroundSize:e.backgroundImage?`cover`:void 0,backgroundPosition:e.backgroundImage?`center`:void 0})},null,4))),128)),((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(r.value,n=>((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:n.id},[n.type===`text`?((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.enableLinks&&l(n)?`a`:`div`),{key:0,href:e.enableLinks&&l(n)?l(n):void 0,target:n.link?.target||`_blank`,rel:n.link?.target===`_self`?void 0:`noopener noreferrer`,style:(0,t.normalizeStyle)(f(n))},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(c(n)),1)]),_:2},1032,[`href`,`target`,`rel`,`style`])):n.type===`image`||n.type===`seal`?((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.enableLinks&&l(n)?`a`:`div`),{key:1,href:e.enableLinks&&l(n)?l(n):void 0,target:n.link?.target||`_blank`,rel:n.link?.target===`_self`?void 0:`noopener noreferrer`,style:(0,t.normalizeStyle)(p(n))},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`img`,{src:(0,t.unref)(Ur)(n.src),alt:``,style:{"max-width":`100%`,"max-height":`100%`,"object-fit":`contain`}},null,8,Gr)]),_:2},1032,[`href`,`target`,`rel`,`style`])):n.type===`shape`?((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.enableLinks&&l(n)?`a`:`div`),{key:2,href:e.enableLinks&&l(n)?l(n):void 0,target:n.link?.target||`_blank`,rel:n.link?.target===`_self`?void 0:`noopener noreferrer`,style:(0,t.normalizeStyle)(m(n))},{default:(0,t.withCtx)(()=>[((0,t.openBlock)(),(0,t.createElementBlock)(`svg`,Kr,[n.shape===`line`?((0,t.openBlock)(),(0,t.createElementBlock)(`line`,{key:0,x1:`4`,y1:`50`,x2:`96`,y2:`50`,stroke:h(n),"stroke-width":Math.max(g(n)*3.2,1),"stroke-linecap":`round`},null,8,qr)):n.shape===`rect`?((0,t.openBlock)(),(0,t.createElementBlock)(`rect`,{key:1,x:`4`,y:`4`,width:`92`,height:`92`,fill:_(n),stroke:h(n),"stroke-width":g(n)*3.2},null,8,Jr)):n.shape===`circle`?((0,t.openBlock)(),(0,t.createElementBlock)(`ellipse`,{key:2,cx:`50`,cy:`50`,rx:`46`,ry:`46`,fill:_(n),stroke:h(n),"stroke-width":g(n)*3.2},null,8,Yr)):n.shape===`triangle`?((0,t.openBlock)(),(0,t.createElementBlock)(`polygon`,{key:3,points:`50,4 96,96 4,96`,fill:_(n),stroke:h(n),"stroke-width":g(n)*3.2,"stroke-linejoin":`round`},null,8,Xr)):((0,t.openBlock)(),(0,t.createElementBlock)(`polygon`,{key:4,points:v(n),fill:_(n),stroke:h(n),"stroke-width":g(n)*3.2,"stroke-linejoin":`round`},null,8,Zr))]))]),_:2},1032,[`href`,`target`,`rel`,`style`])):(0,t.createCommentVNode)(``,!0)],64))),128))],4)],4)],4)):(0,t.createCommentVNode)(``,!0)}}),ei=v({default:()=>ti}),ti=S($r,[[`__scopeId`,`data-v-739c164e`]]),ni=(0,t.defineComponent)({name:`FouBadgeTemplateRenderer`,__name:`BadgeTemplateRenderer`,props:{doc:{},mergeData:{default:()=>({})},screenScale:{default:1},enableLinks:{type:Boolean,default:!1}},setup(e){return(n,r)=>((0,t.openBlock)(),(0,t.createBlock)(ti,{doc:e.doc,"merge-data":e.mergeData,"screen-scale":e.screenScale,"enable-links":e.enableLinks},null,8,[`doc`,`merge-data`,`screen-scale`,`enable-links`]))}}),ri=v({default:()=>ii}),ii=ni,ai={class:`page-container badge-library-page`},oi=(0,t.defineComponent)({__name:`BadgeLibraryView`,setup(e){return(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ai,[n[0]||=(0,t.createElementVNode)(`div`,{class:`page-head`},[(0,t.createElementVNode)(`h2`,{class:`page-h2`},`证件图片库`),(0,t.createElementVNode)(`p`,{class:`page-desc`},`管理模板编辑中上传的图片,可删除不再使用的文件;删除后已保存模板里若仍引用该地址将无法显示。`)],-1),(0,t.createVNode)(wr)]))}}),si=v({default:()=>ci}),ci=S(oi,[[`__scopeId`,`data-v-7433605f`]]),li=Symbol(`fouForm`),ui=Symbol(`fouFormItem`);function di(e){let n=(0,t.inject)(li,null);return(0,t.computed)(()=>!!((0,t.toValue)(e)||n?.disabled.value))}function fi(){let e=(0,t.inject)(ui,null);return{triggerBlur:()=>e?.onFieldBlur?.(),triggerChange:()=>e?.onFieldChange?.()}}var pi=[`disabled`],mi=[`value`,`disabled`,`readonly`,`onKeydown`],hi=[`disabled`],gi=[`disabled`],_i=(0,t.defineComponent)({name:`FouInputNumber`,__name:`index`,props:{modelValue:{default:null},min:{default:-1/0},max:{default:1/0},step:{default:1},stepStrictly:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},controls:{type:Boolean,default:!0},controlsPosition:{default:``},size:{default:`default`},precision:{}},emits:[`update:modelValue`,`change`,`blur`],setup(e,{expose:n,emit:r}){let i=e,a=r,o=(0,t.ref)(null),s=di(()=>i.disabled),{triggerBlur:c,triggerChange:l}=fi(),u=(0,t.computed)(()=>i.size||`default`),d=e=>Math.min(i.max,Math.max(i.min,e)),f=e=>{if(!i.stepStrictly)return e;let t=Math.round((e-i.min)/i.step);return d(i.min+t*i.step)},p=e=>{if(e==null||Number.isNaN(e))return null;let t=f(e);return t=d(t),i.precision!==void 0&&(t=Number(t.toFixed(i.precision))),t},m=(0,t.computed)(()=>i.modelValue===null||i.modelValue===void 0?``:String(i.modelValue)),h=(0,t.computed)(()=>i.modelValue!==null&&i.modelValue<=i.min),g=(0,t.computed)(()=>i.modelValue!==null&&i.modelValue>=i.max),_=e=>{a(`update:modelValue`,e),a(`change`,e),l()},v=()=>i.modelValue??(i.min===-1/0?0:i.min),y=()=>{s.value||_(p(v()+i.step))},b=()=>{s.value||_(p(v()-i.step))},x=e=>{let t=e.target.value;if(t===``||t===`-`){a(`update:modelValue`,null);return}let n=Number(t);Number.isNaN(n)||a(`update:modelValue`,n)},S=e=>{let t=p(i.modelValue??null);t!==i.modelValue&&_(t),a(`blur`,e),c()};return n({focus:()=>o.value?.focus()}),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-input-number`,[`fou-input-number--${(0,t.unref)(u)}`,{"is-disabled":(0,t.unref)(s),"is-controls-right":e.controlsPosition===`right`,"is-without-controls":!e.controls}]])},[e.controls&&e.controlsPosition!==`right`?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:0,type:`button`,class:`fou-input-number__decrease`,disabled:(0,t.unref)(s)||(0,t.unref)(h),tabindex:`-1`,onMousedown:r[0]||=(0,t.withModifiers)(()=>{},[`prevent`]),onClick:b},` − `,40,pi)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`input`,{ref_key:`inputRef`,ref:o,class:`fou-input-number__inner`,type:`text`,value:(0,t.unref)(m),disabled:(0,t.unref)(s),readonly:e.readonly,onInput:x,onBlur:S,onKeydown:[(0,t.withKeys)((0,t.withModifiers)(y,[`prevent`]),[`up`]),(0,t.withKeys)((0,t.withModifiers)(b,[`prevent`]),[`down`])]},null,40,mi),e.controls?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:1,type:`button`,class:`fou-input-number__increase`,disabled:(0,t.unref)(s)||(0,t.unref)(g),tabindex:`-1`,onMousedown:r[1]||=(0,t.withModifiers)(()=>{},[`prevent`]),onClick:y},` + `,40,hi)):(0,t.createCommentVNode)(``,!0),e.controls&&e.controlsPosition===`right`?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:2,type:`button`,class:`fou-input-number__decrease fou-input-number__decrease--right`,disabled:(0,t.unref)(s)||(0,t.unref)(h),tabindex:`-1`,onMousedown:r[2]||=(0,t.withModifiers)(()=>{},[`prevent`]),onClick:b},` − `,40,gi)):(0,t.createCommentVNode)(``,!0)],2))}}),vi=v({default:()=>yi}),yi=S(_i,[[`__scopeId`,`data-v-78464b98`]]),bi=(0,t.defineComponent)({name:`FouForm`,__name:`index`,props:{model:{},rules:{},labelWidth:{default:``},labelPosition:{default:`right`},inline:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},hideRequiredAsterisk:{type:Boolean,default:!1},requireAsteriskPosition:{default:`left`},validateOnRuleChange:{type:Boolean,default:!0}},emits:[`validate`],setup(e,{expose:n,emit:r}){let i=e,a=r,o=(0,t.computed)(()=>!i.labelWidth&&i.labelWidth!==0?``:typeof i.labelWidth==`number`?`${i.labelWidth}px`:i.labelWidth),s=(0,t.computed)(()=>{if(o.value)return{"--fou-form-label-width":o.value}}),c=(0,t.ref)([]),l=e=>{c.value.find(t=>t.uid===e.uid)||c.value.push(e)},u=e=>{c.value=c.value.filter(t=>t.uid!==e.uid)},d=e=>{let t=c.value.filter(e=>e.prop);return Promise.all(t.map(e=>e.validate(``))).then(t=>{let n=t.every(Boolean);return e?.(n),n}).catch(()=>(e?.(!1),!1))},f=async e=>{let t=Array.isArray(e)?e:[e],n=c.value.filter(e=>e.prop&&t.includes(e.prop));return(await Promise.all(n.map(e=>e.validate(``)))).every(Boolean)},p=()=>{c.value.forEach(e=>e.resetField())},m=e=>{let t=e?Array.isArray(e)?e:[e]:null;c.value.forEach(e=>{(!t||e.prop&&t.includes(e.prop))&&e.clearValidate()})},h={model:(0,t.computed)(()=>i.model),rules:(0,t.computed)(()=>i.rules),labelWidth:o,labelPosition:(0,t.computed)(()=>i.labelPosition),disabled:(0,t.computed)(()=>i.disabled),hideRequiredAsterisk:(0,t.computed)(()=>i.hideRequiredAsterisk),requireAsteriskPosition:(0,t.computed)(()=>i.requireAsteriskPosition),addField:l,removeField:u,emitValidate:(e,t,n)=>a(`validate`,e,t,n)};return(0,t.provide)(li,h),(0,t.provide)(`fouFormLabelWidth`,o),(0,t.provide)(`fouFormLabelPosition`,(0,t.computed)(()=>i.labelPosition)),(0,t.watch)(()=>i.rules,()=>{i.validateOnRuleChange&&d()},{deep:!0}),n({validate:d,validateField:f,resetFields:p,clearValidate:m}),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`form`,{class:(0,t.normalizeClass)([`fou-form`,[`fou-form--label-${e.labelPosition}`,{"fou-form--inline":e.inline}]]),style:(0,t.normalizeStyle)((0,t.unref)(s)),onSubmit:r[0]||=(0,t.withModifiers)(()=>{},[`prevent`])},[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)],38))}}),xi=v({default:()=>Si}),Si=S(bi,[[`__scopeId`,`data-v-8fb91f7d`]]),Ci=[`aria-checked`,`aria-disabled`,`onKeydown`],wi={key:0,class:`fou-switch__label`},Ti={key:0,class:`fou-switch__label--left`},Ei={key:1,class:`fou-switch__label--right`},Di=(0,t.defineComponent)({name:`FouSwitch`,__name:`index`,props:{modelValue:{type:[Boolean,String,Number],default:!1},disabled:{type:Boolean,default:!1},size:{default:`default`},activeText:{default:``},inactiveText:{default:``},activeValue:{type:[Boolean,String,Number],default:!0},inactiveValue:{type:[Boolean,String,Number],default:!1}},emits:[`update:modelValue`,`change`],setup(e,{emit:n}){let r=e,i=n,a=di(()=>r.disabled),{triggerChange:o}=fi(),s=(0,t.computed)(()=>r.modelValue===r.activeValue),c=()=>{if(a.value)return;let e=s.value?r.inactiveValue:r.activeValue;i(`update:modelValue`,e),i(`change`,e),o()};return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-switch`,[`fou-switch--${e.size}`,{"is-checked":(0,t.unref)(s),"is-disabled":(0,t.unref)(a)}]]),role:`switch`,tabindex:`0`,"aria-checked":(0,t.unref)(s),"aria-disabled":(0,t.unref)(a),onClick:c,onKeydown:[(0,t.withKeys)((0,t.withModifiers)(c,[`prevent`]),[`enter`]),(0,t.withKeys)((0,t.withModifiers)(c,[`prevent`]),[`space`])]},[r[0]||=(0,t.createElementVNode)(`span`,{class:`fou-switch__core`},[(0,t.createElementVNode)(`span`,{class:`fou-switch__action`})],-1),e.inactiveText||e.activeText?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,wi,[!(0,t.unref)(s)&&e.inactiveText?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Ti,(0,t.toDisplayString)(e.inactiveText),1)):(0,t.createCommentVNode)(``,!0),(0,t.unref)(s)&&e.activeText?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Ei,(0,t.toDisplayString)(e.activeText),1)):(0,t.createCommentVNode)(``,!0)])):(0,t.createCommentVNode)(``,!0)],42,Ci))}}),Oi=v({default:()=>ki}),ki=S(Di,[[`__scopeId`,`data-v-71a2df05`]]),Ai=(0,t.defineComponent)({name:`FouCheckboxGroup`,__name:`FouCheckboxGroup`,props:{modelValue:{default:()=>[]},disabled:{type:Boolean,default:!1},type:{default:`default`}},emits:[`update:modelValue`,`change`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.computed)(()=>r.modelValue),o=(0,t.computed)(()=>r.disabled);return(0,t.provide)(`fouCheckboxGroup`,{modelValue:a,disabled:o,type:(0,t.computed)(()=>r.type),toggleOption:(e,t)=>{let n=[...r.modelValue],a=n.indexOf(e);t&&a<0?n.push(e):!t&&a>=0&&n.splice(a,1),i(`update:modelValue`,n),i(`change`,n)}}),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-checkbox-group`,[{"is-disabled":e.disabled},`fou-checkbox-group--${e.type}`]]),role:`group`},[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)],2))}}),ji=v({default:()=>Mi}),Mi=S(Ai,[[`__scopeId`,`data-v-65eb18b5`]]),Ni={class:`fou-checkbox__input`},Pi=[`checked`,`disabled`,`value`],Fi={key:0,class:`fou-checkbox__label`},Ii=(0,t.defineComponent)({name:`FouCheckbox`,__name:`index`,props:{modelValue:{type:[Boolean,String,Number],default:!1},label:{},disabled:{type:Boolean,default:!1},indeterminate:{type:Boolean,default:!1},trueLabel:{},falseLabel:{},border:{type:Boolean,default:!1}},emits:[`update:modelValue`,`change`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.useSlots)(),o=(0,t.inject)(`fouCheckboxGroup`,null),s=di(()=>r.disabled),c=(0,t.computed)(()=>s.value||!!o?.disabled.value),l=(0,t.computed)(()=>o?.type?.value===`button`),u=(0,t.computed)(()=>a.default?!0:r.label===void 0||r.label===null?!1:String(r.label).length>0),d=(0,t.computed)(()=>o?o.modelValue.value.includes(r.label):r.trueLabel!==void 0||r.falseLabel!==void 0?r.modelValue===r.trueLabel:!!r.modelValue),f=e=>{if(c.value)return;let t=e.target.checked;if(o&&r.label!==void 0){o.toggleOption(r.label,t);return}let n=t;(r.trueLabel!==void 0||r.falseLabel!==void 0)&&(n=t?r.trueLabel??!0:r.falseLabel??!1),i(`update:modelValue`,n),i(`change`,n)};return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`label`,{class:(0,t.normalizeClass)([`fou-checkbox`,{"is-checked":(0,t.unref)(d),"is-disabled":(0,t.unref)(c),"is-indeterminate":e.indeterminate,"is-button":(0,t.unref)(l),"is-border":e.border}])},[(0,t.createElementVNode)(`span`,Ni,[(0,t.createElementVNode)(`input`,{type:`checkbox`,class:`fou-checkbox__original`,checked:(0,t.unref)(d),disabled:(0,t.unref)(c),value:e.label,onChange:f},null,40,Pi),r[0]||=(0,t.createElementVNode)(`span`,{class:`fou-checkbox__inner`},null,-1)]),(0,t.unref)(u)?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Fi,[(0,t.renderSlot)(n.$slots,`default`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.label),1)],!0)])):(0,t.createCommentVNode)(``,!0)],2))}}),Li=v({default:()=>Ri}),Ri=S(Ii,[[`__scopeId`,`data-v-326d0c28`]]),zi=(0,t.defineComponent)({name:`FouRadioGroup`,__name:`FouRadioGroup`,props:{modelValue:{type:[String,Number,Boolean]},disabled:{type:Boolean,default:!1},name:{default:``},type:{default:`default`}},emits:[`update:modelValue`,`change`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.computed)(()=>r.name||`fou-radio-group-${Math.random().toString(36).slice(2,9)}`),o=(0,t.computed)(()=>r.modelValue),s=(0,t.computed)(()=>r.disabled);return(0,t.provide)(`fouRadioGroup`,{modelValue:o,disabled:s,name:a,type:(0,t.computed)(()=>r.type),changeEvent:e=>{i(`update:modelValue`,e),i(`change`,e)}}),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-radio-group`,[{"is-disabled":e.disabled},`fou-radio-group--${e.type}`]]),role:`radiogroup`},[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)],2))}}),Bi=v({default:()=>Vi}),Vi=S(zi,[[`__scopeId`,`data-v-4b84739e`]]),Hi={class:`fou-radio__input`},Ui=[`checked`,`disabled`,`name`,`value`],Wi={key:0,class:`fou-radio__label`},Gi=(0,t.defineComponent)({name:`FouRadio`,__name:`index`,props:{modelValue:{type:[String,Number,Boolean]},label:{type:[String,Number,Boolean]},disabled:{type:Boolean,default:!1},border:{type:Boolean,default:!1}},emits:[`update:modelValue`,`change`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.inject)(`fouRadioGroup`,null),o=`fou-radio-${Math.random().toString(36).slice(2,9)}`,s=di(()=>r.disabled),c=(0,t.computed)(()=>s.value||!!a?.disabled.value),l=(0,t.computed)(()=>a?.type?.value===`button`),u=(0,t.computed)(()=>(a?a.modelValue.value:r.modelValue)===r.label),d=(0,t.computed)(()=>a?.name.value||o),f=()=>{c.value||r.label===void 0||(a?a.changeEvent(r.label):(i(`update:modelValue`,r.label),i(`change`,r.label)))};return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`label`,{class:(0,t.normalizeClass)([`fou-radio`,{"is-checked":(0,t.unref)(u),"is-disabled":(0,t.unref)(c),"is-button":(0,t.unref)(l),"is-border":e.border}])},[(0,t.createElementVNode)(`span`,Hi,[(0,t.createElementVNode)(`input`,{type:`radio`,class:`fou-radio__original`,checked:(0,t.unref)(u),disabled:(0,t.unref)(c),name:(0,t.unref)(d),value:e.label,onChange:f},null,40,Ui),r[0]||=(0,t.createElementVNode)(`span`,{class:`fou-radio__inner`},null,-1)]),n.$slots.default||e.label!==void 0?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Wi,[(0,t.renderSlot)(n.$slots,`default`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.label),1)],!0)])):(0,t.createCommentVNode)(``,!0)],2))}}),Ki=v({default:()=>qi}),qi=S(Gi,[[`__scopeId`,`data-v-4525a092`]]),Ji=[`aria-expanded`,`aria-disabled`],Yi={key:0,class:`fou-select__tags`},Xi=[`onClick`],Zi={class:`fou-select__suffix`},Qi={key:0,class:`fou-select__slot-register`,"aria-hidden":`true`},$i=[`onMouseenter`,`onClick`],ea=[`onMouseenter`,`onClick`],ta={key:2,class:`fou-select__empty`},na=(0,t.defineComponent)({name:`FouSelect`,inheritAttrs:!1,__name:`index`,props:{modelValue:{type:[String,Number,Boolean,Array,null],default:null},options:{default:void 0},placeholder:{default:`请选择`},clearable:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},size:{default:`default`},fit:{type:Boolean,default:!1}},emits:[`update:modelValue`,`change`,`clear`,`visibleChange`],setup(e,{emit:n}){let r=(0,t.defineComponent)({name:`FouSelectOptionContent`,props:{render:{type:Function,required:!0}},setup(e){return()=>e.render()}}),i=e,a=n,o=di(()=>i.disabled),{triggerBlur:s,triggerChange:c}=fi(),l=(0,t.useAttrs)(),u=(0,t.useSlots)(),d=(0,t.ref)(null),f=(0,t.ref)(null),p=(0,t.ref)(!1),m=(0,t.ref)([]),h=(0,t.ref)(new Map),g=(0,t.ref)({position:`fixed`,top:`-9999px`,left:`-9999px`,zIndex:le(2e3),minWidth:`120px`}),_=(0,t.ref)(null),v=(0,t.computed)(()=>i.size||`default`),y=(0,t.computed)(()=>l.style||void 0),b=(0,t.computed)(()=>i.multiple?Array.isArray(i.modelValue)?i.modelValue:[]:i.modelValue===null||i.modelValue===void 0||i.modelValue===``?[]:[i.modelValue]),x=(0,t.computed)(()=>b.value.length>0),S=e=>b.value.includes(e),C=(0,t.computed)(()=>!!u.default),w=(0,t.computed)(()=>i.options?.length?i.options:m.value),T=e=>{let t=w.value.find(t=>t.value===e);return t?t.label:h.value.get(e)??String(e)},E=(0,t.computed)(()=>x.value?i.multiple?b.value.map(T).join(`、`):T(b.value[0]):``),D=(0,t.computed)(()=>i.modelValue),O=e=>{a(`update:modelValue`,e),a(`change`,e),c()},A=(e,t)=>{if(h.value=new Map(h.value).set(e,t),i.multiple){let t=[...b.value],n=t.indexOf(e);n>=0?t.splice(n,1):t.push(e),O(t);return}O(e),ee()},j=e=>{O(b.value.filter(t=>t!==e))},M=e=>{_.value=e};(0,t.provide)(`fouSelect`,{modelValue:D,multiple:(0,t.toRef)(i,`multiple`),selectOption:A,setHoverOption:M,registerOption:e=>{let t=m.value.findIndex(t=>t.value===e.value);t>=0?m.value[t]=e:m.value.push(e),h.value.set(e.value,e.label)},unregisterOption:e=>{m.value=m.value.filter(t=>t.value!==e)}});let N=()=>{let e=d.value,t=f.value;if(!e||!t)return;let n=e.getBoundingClientRect(),r=t.getBoundingClientRect(),i=window.innerWidth,a=window.innerHeight,o=n.bottom+4,s=n.left,c=Math.max(n.width,120);o+r.height>a-4&&(o=n.top-r.height-4),o<4&&(o=4),s+c>i-4&&(s=i-c-4),s<4&&(s=4),g.value={position:`fixed`,top:`${Math.round(o)}px`,left:`${Math.round(s)}px`,zIndex:le(2e3),minWidth:`${Math.round(c)}px`}},P=(0,t.computed)(()=>w.value.filter(e=>!e.disabled)),F=e=>{let t=P.value;if(!t.length)return;let n=t[(t.findIndex(e=>e.value===_.value)+e+t.length)%t.length];_.value=n.value},I=()=>{let e=P.value.find(e=>e.value===_.value)||P.value[0];e&&A(e.value,e.label)},L=e=>{o.value||(e.key===`ArrowDown`?(e.preventDefault(),p.value?F(1):R()):e.key===`ArrowUp`?(e.preventDefault(),p.value?F(-1):R()):e.key===`Enter`||e.key===` `?(e.preventDefault(),p.value?I():R()):e.key===`Escape`?ee():e.key===`Backspace`&&i.multiple&&b.value.length&&!p.value&&j(b.value[b.value.length-1]))},R=async()=>{o.value||(p.value=!0,a(`visibleChange`,!0),_.value=b.value[0]??P.value[0]?.value??null,await(0,t.nextTick)(),N(),requestAnimationFrame(()=>N()))},ee=()=>{p.value&&(p.value=!1,a(`visibleChange`,!1),s())},z=()=>{o.value||(p.value?ee():R())},B=()=>{O(i.multiple?[]:null),a(`clear`)},V=e=>{if(!p.value)return;let t=e.target;d.value?.contains(t)||f.value?.contains(t)||ee()},H=()=>{p.value&&N()};return(0,t.watch)(p,e=>{e?(document.addEventListener(`mousedown`,V,!0),window.addEventListener(`scroll`,H,!0),window.addEventListener(`resize`,H)):(document.removeEventListener(`mousedown`,V,!0),window.removeEventListener(`scroll`,H,!0),window.removeEventListener(`resize`,H))}),(0,t.onBeforeUnmount)(()=>{document.removeEventListener(`mousedown`,V,!0),window.removeEventListener(`scroll`,H,!0),window.removeEventListener(`resize`,H)}),(n,a)=>{let s=k;return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,{ref_key:`rootRef`,ref:d,class:(0,t.normalizeClass)([`fou-select`,[`fou-select--${(0,t.unref)(v)}`,(0,t.unref)(l).class,{"is-disabled":(0,t.unref)(o),"is-focused":(0,t.unref)(p),"is-clearable":e.clearable,"is-fit":e.fit,"is-multiple":e.multiple}]]),style:(0,t.normalizeStyle)((0,t.unref)(y))},[(0,t.createElementVNode)(`div`,{class:`fou-select__wrapper`,role:`combobox`,"aria-expanded":(0,t.unref)(p),"aria-disabled":(0,t.unref)(o),tabindex:`0`,onClick:z,onKeydown:L},[e.multiple&&(0,t.unref)(b).length?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Yi,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(b),e=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:String(e),class:`fou-select__tag`},[(0,t.createTextVNode)((0,t.toDisplayString)(T(e))+` `,1),(0,t.unref)(o)?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:0,type:`button`,class:`fou-select__tag-close`,tabindex:`-1`,onMousedown:a[0]||=(0,t.withModifiers)(()=>{},[`prevent`]),onClick:(0,t.withModifiers)(t=>j(e),[`stop`])},` × `,40,Xi))]))),128))])):((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:1,class:(0,t.normalizeClass)([`fou-select__selected`,{"is-placeholder":!(0,t.unref)(E)}])},(0,t.toDisplayString)((0,t.unref)(E)||e.placeholder),3)),(0,t.createElementVNode)(`span`,Zi,[e.clearable&&(0,t.unref)(x)&&!(0,t.unref)(o)?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:0,type:`button`,class:`fou-select__clear`,tabindex:`-1`,onMousedown:a[1]||=(0,t.withModifiers)(()=>{},[`prevent`]),onClick:(0,t.withModifiers)(B,[`stop`])},` × `,32)):(0,t.createCommentVNode)(``,!0),(0,t.createVNode)(s,{class:(0,t.normalizeClass)([`fou-select__caret`,{"is-open":(0,t.unref)(p)}]),icon:`arrow-down-s-line`},null,8,[`class`])])],40,Ji),!i.options?.length&&(0,t.unref)(C)?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Qi,[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)])):(0,t.createCommentVNode)(``,!0),((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:`body`},[(0,t.createVNode)(t.Transition,{name:`fou-select-fade`},{default:(0,t.withCtx)(()=>[(0,t.unref)(p)?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,ref_key:`dropdownRef`,ref:f,class:`fou-select__dropdown`,style:(0,t.normalizeStyle)((0,t.unref)(g)),onClick:a[2]||=(0,t.withModifiers)(()=>{},[`stop`])},[i.options?.length?((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,{key:0},(0,t.renderList)(i.options,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:String(e.value),class:(0,t.normalizeClass)([`fou-option fou-select__option`,{"is-selected":S(e.value),"is-disabled":e.disabled,"is-hover":(0,t.unref)(_)===e.value}]),onMouseenter:t=>M(e.value),onClick:t=>!e.disabled&&A(e.value,e.label)},[e.render?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(r),{key:0,render:e.render},null,8,[`render`])):((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:1},[(0,t.createTextVNode)((0,t.toDisplayString)(e.label),1)],64))],42,$i))),128)):(0,t.unref)(m).length?((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,{key:1},(0,t.renderList)((0,t.unref)(m),e=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:String(e.value),class:(0,t.normalizeClass)([`fou-option fou-select__option`,{"is-selected":S(e.value),"is-disabled":e.disabled,"is-hover":(0,t.unref)(_)===e.value}]),onMouseenter:t=>M(e.value),onClick:t=>!e.disabled&&A(e.value,e.label)},[e.render?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(r),{key:0,render:e.render},null,8,[`render`])):((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:1},[(0,t.createTextVNode)((0,t.toDisplayString)(e.label),1)],64))],42,ea))),128)):(0,t.createCommentVNode)(``,!0),!i.options?.length&&!(0,t.unref)(m).length?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ta,` 无数据 `)):(0,t.createCommentVNode)(``,!0)],4)):(0,t.createCommentVNode)(``,!0)]),_:1})]))],6)}}}),ra=v({default:()=>ia}),ia=S(na,[[`__scopeId`,`data-v-7f0dce83`]]),aa={class:`fou-form-item__content`},oa={key:0,class:`fou-form-item__error`},sa=(0,t.defineComponent)({name:`FouFormItem`,__name:`index`,props:{label:{},labelWidth:{},required:{type:Boolean,default:void 0},prop:{},error:{},rules:{}},setup(e,{expose:n}){let r=e,i=(0,t.inject)(li,null),a=(0,t.inject)(`fouFormLabelWidth`,(0,t.ref)(``)),o=(0,t.inject)(`fouFormLabelPosition`,(0,t.ref)(`right`)),s=(0,t.getCurrentInstance)()?.uid??Math.random(),c=(0,t.ref)(``),l=(0,t.ref)(``),u=(0,t.ref)(void 0),d=(0,t.ref)(!1),f=e=>{if(typeof e!=`object`||!e)return e;try{return JSON.parse(JSON.stringify(e))}catch{return e}},p=(0,t.computed)(()=>r.labelWidth!==void 0&&r.labelWidth!==``?typeof r.labelWidth==`number`?`${r.labelWidth}px`:r.labelWidth:i?.labelWidth.value||a.value),m=(0,t.computed)(()=>{if((i?.labelPosition.value||o.value)!==`top`&&p.value)return{width:p.value}}),h=(e,t)=>{if(!(!e||!t))return t.split(`.`).reduce((e,t)=>e?.[t],e)},g=(e,t,n)=>{if(!e||!t)return;let r=t.split(`.`),i=r.pop(),a=e;for(let e of r)(a[e]==null||typeof a[e]!=`object`)&&(a[e]={}),a=a[e];a[i]=n},_=(0,t.computed)(()=>{if(!(!r.prop||!i?.model.value))return h(i.model.value,r.prop)}),v=(0,t.computed)(()=>{let e=[];if(r.rules&&e.push(...Array.isArray(r.rules)?r.rules:[r.rules]),r.prop&&i?.rules.value?.[r.prop]){let t=i.rules.value[r.prop];e.push(...Array.isArray(t)?t:[t])}return e}),y=(0,t.computed)(()=>i?.hideRequiredAsterisk.value?!1:r.required===!0||r.required!==!1&&v.value.some(e=>e.required)),b=(e,t)=>new Promise(n=>{if(e.required&&(t==null||t===``||Array.isArray(t)&&!t.length)){n(e.message||`必填项`);return}if(e.min!=null||e.max!=null){let r=typeof t==`number`?t:String(t??``).length;if(e.min!=null&&r<e.min){n(e.message||`长度不能少于 ${e.min}`);return}if(e.max!=null&&r>e.max){n(e.message||`长度不能超过 ${e.max}`);return}}if(e.type&&t!=null&&t!==``){let r={email:[/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(String(t)),`请输入正确的邮箱`],url:[/^https?:\/\/\S+$/i.test(String(t)),`请输入正确的网址`],number:[!Number.isNaN(Number(t)),`请输入数字`],integer:[/^-?\d+$/.test(String(t)),`请输入整数`]}[e.type];if(r&&!r[0]){n(e.message||r[1]);return}}if(e.pattern&&t!=null&&t!==``&&!e.pattern.test(String(t))){n(e.message||`格式不正确`);return}if(e.validator){let r=!1,i=e=>{r||(r=!0,n(e?typeof e==`string`?e:e.message||`校验失败`:``))};try{let n=e.validator(e,t,i);n&&typeof n.then==`function`?Promise.resolve(n).then(t=>{t===!1?i(e.message||`校验失败`):t instanceof Error||typeof t==`string`?i(t):i()}).catch(e=>i(e instanceof Error?e:String(e))):!r&&n!==void 0?n===!1?i(e.message||`校验失败`):n instanceof Error||typeof n==`string`?i(n):i():!r&&n===void 0&&queueMicrotask(()=>{r||i(Error(`validator must call callback`))})}catch(e){i(e instanceof Error?e:String(e))}return}n(``)}),x=async e=>{if(r.error)return c.value=`error`,l.value=r.error,!1;let t=v.value.filter(t=>{if(!e)return!0;let n=t.trigger;return!n||(Array.isArray(n)?n:[n]).includes(e)});t.length;let n=e?t:v.value;if(!n.length)return c.value=``,l.value=``,!0;c.value=`validating`;for(let e of n){let t=await b(e,_.value);if(t)return c.value=`error`,l.value=t,r.prop&&i?.emitValidate(r.prop,!1,t),!1}return c.value=`success`,l.value=``,r.prop&&i?.emitValidate(r.prop,!0,``),!0},S=()=>{r.prop&&i?.model.value&&g(i.model.value,r.prop,f(u.value)),d.value=!1,C()},C=()=>{c.value=``,l.value=``},w={uid:s,prop:r.prop,validate:x,resetField:S,clearValidate:C};return(0,t.provide)(ui,{validate:x,onFieldBlur:()=>{d.value=!0,x(`blur`)},onFieldChange:()=>{d.value=!0,x(`change`)},prop:(0,t.computed)(()=>r.prop)}),(0,t.onMounted)(()=>{u.value=f(_.value),i?.addField(w)}),(0,t.onBeforeUnmount)(()=>{i?.removeField(w)}),(0,t.watch)(()=>r.error,e=>{e&&(c.value=`error`,l.value=e)}),(0,t.watch)(_,e=>{d.value||(u.value=f(e)),(c.value===`error`||v.value.some(e=>{let t=e.trigger;return!t||(Array.isArray(t)?t:[t]).includes(`change`)}))&&x(`change`)}),n({validate:x,resetField:S,clearValidate:C,validateState:c,validateMessage:l}),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-form-item`,{"is-required":(0,t.unref)(y),"is-error":(0,t.unref)(c)===`error`,"is-asterisk-right":(0,t.unref)(i)?.requireAsteriskPosition?.value===`right`}])},[e.label||n.$slots.label?((0,t.openBlock)(),(0,t.createElementBlock)(`label`,{key:0,class:`fou-form-item__label`,style:(0,t.normalizeStyle)((0,t.unref)(m))},[(0,t.renderSlot)(n.$slots,`label`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.label),1)],!0)],4)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,aa,[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0),(0,t.unref)(l)&&(0,t.unref)(c)===`error`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,oa,(0,t.toDisplayString)((0,t.unref)(l)),1)):(0,t.createCommentVNode)(``,!0)])],2))}}),ca=v({default:()=>la}),la=S(sa,[[`__scopeId`,`data-v-7c8fb246`]]),ua={key:0,class:`fou-input__prepend`},da={class:`fou-input__wrapper`},fa={key:0,class:`fou-input__prefix`},pa=[`value`,`placeholder`,`disabled`,`readonly`,`rows`,`maxlength`],ma=[`type`,`value`,`placeholder`,`disabled`,`readonly`,`maxlength`],$={key:3,class:`fou-input__suffix`},ha={key:1,class:`fou-input__append`},ga=(0,t.defineComponent)({name:`FouInput`,inheritAttrs:!1,__name:`index`,props:{modelValue:{default:``},type:{default:`text`},placeholder:{default:``},clearable:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},size:{default:`default`},showPassword:{type:Boolean,default:!1},prefixIcon:{},suffixIcon:{},rows:{default:3},maxlength:{}},emits:[`update:modelValue`,`input`,`change`,`focus`,`blur`,`clear`,`keyup`],setup(e,{expose:n,emit:r}){let i=e,a=(0,t.useAttrs)(),o=(0,t.computed)(()=>{let{class:e,style:t,...n}=a;return n}),s=r,c=(0,t.ref)(null),l=(0,t.ref)(null),u=(0,t.ref)(!1),d=(0,t.ref)(!1),f=di(()=>i.disabled),{triggerBlur:p,triggerChange:m}=fi(),h=(0,t.computed)(()=>i.size||`default`),g=(0,t.computed)(()=>i.type===`textarea`),_=(0,t.computed)(()=>i.showPassword?d.value?`text`:`password`:i.type||`text`),v=(0,t.computed)(()=>{let e=i.modelValue;return e!==``&&e!=null}),y=e=>{let t=e.target.value;s(`update:modelValue`,t),s(`input`,t)},b=e=>{u.value=!0,s(`focus`,e)},x=e=>{u.value=!1,s(`blur`,e),p()},S=e=>{s(`change`,e),m()},C=()=>{s(`update:modelValue`,``),s(`input`,``),s(`clear`),s(`change`,``),m()};return n({focus:()=>{(c.value||l.value)?.focus()},blur:()=>{(c.value||l.value)?.blur()},inputRef:c,textareaRef:l}),(n,r)=>{let i=k;return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-input`,[`fou-input--${(0,t.unref)(h)}`,(0,t.unref)(a).class,{"is-disabled":(0,t.unref)(f),"is-focused":(0,t.unref)(u),"is-clearable":e.clearable,"has-value":(0,t.unref)(v),"has-prefix":n.$slots.prefix||e.prefixIcon,"has-suffix":n.$slots.suffix||e.suffixIcon||e.clearable||e.showPassword,"is-textarea":(0,t.unref)(g)}]]),style:(0,t.normalizeStyle)((0,t.unref)(a).style)},[n.$slots.prepend?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ua,[(0,t.renderSlot)(n.$slots,`prepend`,{},void 0,!0)])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,da,[n.$slots.prefix||e.prefixIcon?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,fa,[(0,t.renderSlot)(n.$slots,`prefix`,{},()=>[e.prefixIcon?((0,t.openBlock)(),(0,t.createBlock)(i,{key:0,icon:e.prefixIcon},null,8,[`icon`])):(0,t.createCommentVNode)(``,!0)],!0)])):(0,t.createCommentVNode)(``,!0),(0,t.unref)(g)?((0,t.openBlock)(),(0,t.createElementBlock)(`textarea`,(0,t.mergeProps)({key:1,ref_key:`textareaRef`,ref:l,class:`fou-input__inner fou-input__textarea`,value:e.modelValue??``,placeholder:e.placeholder,disabled:(0,t.unref)(f),readonly:e.readonly,rows:e.rows,maxlength:e.maxlength},(0,t.unref)(o),{onInput:y,onFocus:b,onBlur:x,onChange:r[0]||=e=>S(e.target.value)}),null,16,pa)):((0,t.openBlock)(),(0,t.createElementBlock)(`input`,(0,t.mergeProps)({key:2,ref_key:`inputRef`,ref:c,class:`fou-input__inner`,type:(0,t.unref)(_),value:e.modelValue??``,placeholder:e.placeholder,disabled:(0,t.unref)(f),readonly:e.readonly,maxlength:e.maxlength},(0,t.unref)(o),{onInput:y,onFocus:b,onBlur:x,onChange:r[1]||=e=>S(e.target.value),onKeyup:r[2]||=(0,t.withKeys)(e=>s(`keyup`,e),[`enter`])}),null,16,ma)),n.$slots.suffix||e.suffixIcon||e.clearable&&(0,t.unref)(v)||e.showPassword?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,$,[e.clearable&&(0,t.unref)(v)&&!(0,t.unref)(f)?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:0,type:`button`,class:`fou-input__clear`,tabindex:`-1`,onMousedown:r[3]||=(0,t.withModifiers)(()=>{},[`prevent`]),onClick:C},` × `,32)):(0,t.createCommentVNode)(``,!0),e.showPassword?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:1,type:`button`,class:`fou-input__password`,tabindex:`-1`,onMousedown:r[4]||=(0,t.withModifiers)(()=>{},[`prevent`]),onClick:r[5]||=e=>d.value=!(0,t.unref)(d)},[(0,t.createVNode)(i,{icon:(0,t.unref)(d)?`eye-line`:`eye-off-line`},null,8,[`icon`])],32)):(0,t.createCommentVNode)(``,!0),(0,t.renderSlot)(n.$slots,`suffix`,{},()=>[e.suffixIcon?((0,t.openBlock)(),(0,t.createBlock)(i,{key:0,icon:e.suffixIcon},null,8,[`icon`])):(0,t.createCommentVNode)(``,!0)],!0)])):(0,t.createCommentVNode)(``,!0)]),n.$slots.append?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ha,[(0,t.renderSlot)(n.$slots,`append`,{},void 0,!0)])):(0,t.createCommentVNode)(``,!0)],6)}}}),_a=v({default:()=>va}),va=S(ga,[[`__scopeId`,`data-v-3ad96571`]]),ya={class:`fou-loading__content`},ba={key:0,class:`fou-loading__spinner`},xa={key:1,class:`fou-loading__dual-ring`,"aria-hidden":`true`},Sa={key:2,class:`fou-loading__crescent`,"aria-hidden":`true`},Ca={key:3,class:`fou-loading__gradient`,"aria-hidden":`true`},wa={key:4,class:`fou-loading__dash`,"aria-hidden":`true`},Ta={key:5,class:`fou-loading__dots`,"aria-hidden":`true`},Ea={key:6,class:`fou-loading__wave`,"aria-hidden":`true`},Da={key:7,class:`fou-loading__bounce`,"aria-hidden":`true`},Oa={key:8,class:`fou-loading__bars`,"aria-hidden":`true`},ka={key:9,class:`fou-loading__bricks`,"aria-hidden":`true`},Aa={key:10,class:`fou-loading__square`,"aria-hidden":`true`},ja={key:11,class:`fou-loading__flip`,"aria-hidden":`true`},Ma={key:12,class:`fou-loading__pulse`,"aria-hidden":`true`},Na={key:13,class:`fou-loading__ripple`,"aria-hidden":`true`},Pa={key:14,class:`fou-loading__orbit`,"aria-hidden":`true`},Fa={key:15,class:`fou-loading__radar`,"aria-hidden":`true`},Ia={key:16,class:`fou-loading__spiral`,"aria-hidden":`true`},La={key:17,class:`fou-loading__infinity`,"aria-hidden":`true`},Ra={key:18,class:`fou-loading__hourglass`,"aria-hidden":`true`},za={key:19,class:`fou-loading__skeleton`,"aria-hidden":`true`},Ba={key:20,class:`fou-loading__spinner`},Va={key:21,class:`fou-loading__text`},Ha=(0,t.defineComponent)({name:`FouLoading`,__name:`spinner`,props:{text:{default:``},fullscreen:{type:Boolean,default:!1},transparent:{type:Boolean,default:!1},effect:{default:`spinner`}},setup(e){return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-loading`,[`fou-loading--${e.effect}`,{"is-fullscreen":e.fullscreen,"is-transparent":e.transparent}]])},[r[13]||=(0,t.createElementVNode)(`div`,{class:`fou-loading__mask`},null,-1),(0,t.createElementVNode)(`div`,ya,[e.effect===`spinner`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,ba)):e.effect===`dual-ring`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,xa)):e.effect===`crescent`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Sa)):e.effect===`gradient`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Ca)):e.effect===`dash`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,wa)):e.effect===`dots`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Ta,[...r[0]||=[(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1)]])):e.effect===`wave`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Ea,[...r[1]||=[(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1)]])):e.effect===`bounce`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Da,[...r[2]||=[(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1)]])):e.effect===`bars`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Oa,[...r[3]||=[(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1)]])):e.effect===`bricks`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,ka,[...r[4]||=[(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1)]])):e.effect===`square`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Aa)):e.effect===`flip`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,ja,[...r[5]||=[(0,t.createElementVNode)(`i`,null,null,-1)]])):e.effect===`pulse`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Ma,[...r[6]||=[(0,t.createElementVNode)(`i`,null,null,-1)]])):e.effect===`ripple`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Na,[...r[7]||=[(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1)]])):e.effect===`orbit`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Pa,[...r[8]||=[(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1)]])):e.effect===`radar`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Fa,[...r[9]||=[(0,t.createElementVNode)(`i`,null,null,-1)]])):e.effect===`spiral`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Ia,[...r[10]||=[(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1)]])):e.effect===`infinity`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,La,[...r[11]||=[(0,t.createElementVNode)(`i`,null,null,-1)]])):e.effect===`hourglass`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Ra)):e.effect===`skeleton`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,za,[...r[12]||=[(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1)]])):((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Ba)),e.text?((0,t.openBlock)(),(0,t.createElementBlock)(`p`,Va,(0,t.toDisplayString)(e.text),1)):(0,t.createCommentVNode)(``,!0)])],2))}}),Ua=v({default:()=>Wa}),Wa=Ha,Ga=[`onKeydown`],Ka={class:`fou-time-panel__body`},qa={class:`fou-time-panel__spinner`},Ja=[`onClick`],Ya={class:`fou-time-panel__spinner`},Xa=[`onClick`],Za={key:0,class:`fou-time-panel__spinner`},Qa=[`onClick`],$a=(0,t.defineComponent)({name:`FouTime`,inheritAttrs:!1,__name:`index`,props:{modelValue:{default:null},format:{default:`HH:mm:ss`},placeholder:{default:`选择时间`},clearable:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},size:{default:`default`},fit:{type:Boolean,default:!1},hourStep:{default:1},minuteStep:{default:1},secondStep:{default:1}},emits:[`update:modelValue`,`change`,`clear`,`visible-change`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.useAttrs)(),o=(0,t.ref)(null),s=(0,t.ref)(null),c=(0,t.ref)(null),l=(0,t.ref)(null),u=(0,t.ref)(null),d=(0,t.ref)(!1),f=(0,t.ref)({position:`fixed`,top:`-9999px`,left:`-9999px`,zIndex:le(2e3)}),p=(0,t.reactive)({hour:0,minute:0,second:0}),m=(0,t.computed)(()=>r.size||`default`),h=(0,t.computed)(()=>r.format!==`HH:mm`),g=(0,t.computed)(()=>r.modelValue!=null&&r.modelValue!==``),_=e=>String(e).padStart(2,`0`),v=(e,t)=>{let n=Math.max(1,Math.floor(t||1)),r=[];for(let t=0;t<=e;t+=n)r.push(t);return r[r.length-1]!==e&&e%n,r},y=(0,t.computed)(()=>v(23,r.hourStep)),b=(0,t.computed)(()=>v(59,r.minuteStep)),x=(0,t.computed)(()=>v(59,r.secondStep)),S=e=>{if(!e)return null;let t=String(e).trim().match(/^(\d{1,2}):(\d{1,2})(?::(\d{1,2}))?$/);return t?{hour:Math.min(23,Math.max(0,Number(t[1]))),minute:Math.min(59,Math.max(0,Number(t[2]))),second:Math.min(59,Math.max(0,Number(t[3]??0)))}:null},C=e=>h.value?`${_(e.hour)}:${_(e.minute)}:${_(e.second)}`:`${_(e.hour)}:${_(e.minute)}`,w=(0,t.computed)(()=>{let e=S(r.modelValue);return e?C(e):``}),T=()=>{let e=S(r.modelValue)||{hour:0,minute:0,second:0};p.hour=e.hour,p.minute=e.minute,p.second=e.second},E=async()=>{await(0,t.nextTick)();let e=(e,t)=>{if(!e)return;let n=e.querySelector(`.fou-time-panel__item.is-active`);if(n){e.scrollTop=Math.max(0,n.offsetTop-e.clientHeight/2+n.clientHeight/2);return}let r=Array.from(e.children).findIndex(e=>Number(e.textContent)===t);if(r>=0){let t=e.children[r];e.scrollTop=Math.max(0,t.offsetTop-e.clientHeight/2+t.clientHeight/2)}};e(c.value,p.hour),e(l.value,p.minute),h.value&&e(u.value,p.second)},D=()=>{let e=o.value,t=s.value;if(!e||!t)return;let n=e.getBoundingClientRect(),r=t.getBoundingClientRect(),i=window.innerWidth,a=window.innerHeight,c=n.bottom+4,l=n.left;c+r.height>a-4&&(c=n.top-r.height-4),c<4&&(c=4),l+r.width>i-4&&(l=i-r.width-4),l<4&&(l=4),f.value={position:`fixed`,top:`${Math.round(c)}px`,left:`${Math.round(l)}px`,zIndex:le(2e3)}},O=async()=>{r.disabled||(T(),d.value=!0,i(`visible-change`,!0),await(0,t.nextTick)(),D(),await E(),requestAnimationFrame(()=>D()))},A=()=>{d.value&&(d.value=!1,i(`visible-change`,!1))},j=()=>{r.disabled||(d.value?A():O())},M=(e,t)=>{p[e]=t},N=e=>{i(`update:modelValue`,e),i(`change`,e)},P=()=>{N(C({...p})),A()},F=()=>{A()},I=()=>{let e=new Date;p.hour=e.getHours(),p.minute=e.getMinutes(),p.second=e.getSeconds(),N(C({...p})),A()},L=()=>{N(null),i(`clear`)},R=e=>{if(!d.value)return;let t=e.target;o.value?.contains(t)||s.value?.contains(t)||A()},ee=()=>{d.value&&D()};return(0,t.watch)(d,e=>{e?(document.addEventListener(`mousedown`,R,!0),window.addEventListener(`scroll`,ee,!0),window.addEventListener(`resize`,ee)):(document.removeEventListener(`mousedown`,R,!0),window.removeEventListener(`scroll`,ee,!0),window.removeEventListener(`resize`,ee))}),(0,t.onBeforeUnmount)(()=>{document.removeEventListener(`mousedown`,R,!0),window.removeEventListener(`scroll`,ee,!0),window.removeEventListener(`resize`,ee)}),(n,r)=>{let i=k;return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,{ref_key:`rootRef`,ref:o,class:(0,t.normalizeClass)([`fou-time`,[`fou-time--${(0,t.unref)(m)}`,(0,t.unref)(a).class,{"is-disabled":e.disabled,"is-focused":(0,t.unref)(d),"is-fit":e.fit}]]),style:(0,t.normalizeStyle)((0,t.unref)(a).style)},[(0,t.createElementVNode)(`div`,{class:`fou-time__editor`,tabindex:`0`,onClick:j,onKeydown:(0,t.withKeys)((0,t.withModifiers)(j,[`prevent`]),[`enter`])},[(0,t.createElementVNode)(`span`,{class:(0,t.normalizeClass)([`fou-time__value`,{"is-placeholder":!(0,t.unref)(w)}])},(0,t.toDisplayString)((0,t.unref)(w)||e.placeholder),3),e.clearable&&(0,t.unref)(g)&&!e.disabled?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:0,type:`button`,class:`fou-time__clear`,tabindex:`-1`,onMousedown:r[0]||=(0,t.withModifiers)(()=>{},[`prevent`]),onClick:(0,t.withModifiers)(L,[`stop`])},` × `,32)):(0,t.createCommentVNode)(``,!0),(0,t.createVNode)(i,{icon:`time-line`,class:`fou-time__icon`})],40,Ga),((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:`body`},[(0,t.createVNode)(t.Transition,{name:`fou-time-fade`},{default:(0,t.withCtx)(()=>[(0,t.unref)(d)?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,ref_key:`panelRef`,ref:s,class:`fou-time-panel`,style:(0,t.normalizeStyle)((0,t.unref)(f)),onMousedown:r[1]||=(0,t.withModifiers)(()=>{},[`prevent`])},[(0,t.createElementVNode)(`div`,Ka,[(0,t.createElementVNode)(`div`,qa,[(0,t.createElementVNode)(`ul`,{ref_key:`hourListRef`,ref:c,class:`fou-time-panel__list`},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(y),e=>((0,t.openBlock)(),(0,t.createElementBlock)(`li`,{key:`h-${e}`,class:(0,t.normalizeClass)([`fou-time-panel__item`,{"is-active":(0,t.unref)(p).hour===e}]),onClick:t=>M(`hour`,e)},(0,t.toDisplayString)(_(e)),11,Ja))),128))],512)]),(0,t.createElementVNode)(`div`,Ya,[(0,t.createElementVNode)(`ul`,{ref_key:`minuteListRef`,ref:l,class:`fou-time-panel__list`},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(b),e=>((0,t.openBlock)(),(0,t.createElementBlock)(`li`,{key:`m-${e}`,class:(0,t.normalizeClass)([`fou-time-panel__item`,{"is-active":(0,t.unref)(p).minute===e}]),onClick:t=>M(`minute`,e)},(0,t.toDisplayString)(_(e)),11,Xa))),128))],512)]),(0,t.unref)(h)?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Za,[(0,t.createElementVNode)(`ul`,{ref_key:`secondListRef`,ref:u,class:`fou-time-panel__list`},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(x),e=>((0,t.openBlock)(),(0,t.createElementBlock)(`li`,{key:`s-${e}`,class:(0,t.normalizeClass)([`fou-time-panel__item`,{"is-active":(0,t.unref)(p).second===e}]),onClick:t=>M(`second`,e)},(0,t.toDisplayString)(_(e)),11,Qa))),128))],512)])):(0,t.createCommentVNode)(``,!0)]),(0,t.createElementVNode)(`div`,{class:`fou-time-panel__footer`},[(0,t.createElementVNode)(`button`,{type:`button`,class:`fou-time-panel__btn is-text`,onClick:I},`此刻`),(0,t.createElementVNode)(`div`,{class:`fou-time-panel__actions`},[(0,t.createElementVNode)(`button`,{type:`button`,class:`fou-time-panel__btn`,onClick:F},`取消`),(0,t.createElementVNode)(`button`,{type:`button`,class:`fou-time-panel__btn is-primary`,onClick:P},` 确定 `)])])],36)):(0,t.createCommentVNode)(``,!0)]),_:1})]))],6)}}}),eo=v({default:()=>to}),to=S($a,[[`__scopeId`,`data-v-03b2af6d`]]),no={class:`fou-tooltip__content`},ro=(0,t.defineComponent)({name:`FouTooltip`,inheritAttrs:!1,__name:`index`,props:{content:{default:``},placement:{default:`top`},showAfter:{default:0},hideAfter:{default:100},disabled:{type:Boolean,default:!1}},setup(e){let n=(0,t.useAttrs)(),r=e,i=(0,t.ref)(null),a=(0,t.ref)(null),o=(0,t.ref)(!1),s=(0,t.ref)({}),c,l,u=!1,d=()=>{let e=i.value,t=a.value;if(!e||!t)return;let n=e.getBoundingClientRect(),o=t.getBoundingClientRect(),c=0,l=0;switch(r.placement){case`bottom`:c=n.bottom+8,l=n.left+n.width/2-o.width/2;break;case`left`:c=n.top+n.height/2-o.height/2,l=n.left-o.width-8;break;case`right`:c=n.top+n.height/2-o.height/2,l=n.right+8;break;default:c=n.top-o.height-8,l=n.left+n.width/2-o.width/2}let u=window.innerWidth,d=window.innerHeight;l=Math.min(Math.max(4,l),u-o.width-4),c=Math.min(Math.max(4,c),d-o.height-4),s.value={position:`fixed`,top:`${c}px`,left:`${l}px`,zIndex:`3000`}},f=()=>{c&&clearTimeout(c),l&&clearTimeout(l),c=void 0,l=void 0},p=async()=>{r.disabled||(f(),c=setTimeout(async()=>{o.value=!0,await(0,t.nextTick)(),d()},r.showAfter))},m=()=>{f(),l=setTimeout(()=>{u||(o.value=!1)},r.hideAfter)},h=()=>{r.disabled||(u=!1,p())};(0,t.watch)(()=>r.disabled,e=>{e&&(f(),o.value=!1)});let g=()=>m(),_=()=>{u=!0,f()},v=()=>{o.value&&d()};return(0,t.watch)(o,e=>{e?(window.addEventListener(`scroll`,v,!0),window.addEventListener(`resize`,v)):(window.removeEventListener(`scroll`,v,!0),window.removeEventListener(`resize`,v))}),(0,t.onBeforeUnmount)(()=>{f(),window.removeEventListener(`scroll`,v,!0),window.removeEventListener(`resize`,v)}),(r,c)=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,(0,t.mergeProps)({class:`fou-tooltip-host`},(0,t.unref)(n)),[(0,t.createElementVNode)(`span`,{ref_key:`triggerRef`,ref:i,class:`fou-tooltip__trigger`,onMouseenter:h,onMouseleave:g},[(0,t.renderSlot)(r.$slots,`default`,{},void 0,!0)],544),((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:`body`},[(0,t.createVNode)(t.Transition,{name:`fou-tooltip-fade`},{default:(0,t.withCtx)(()=>[(0,t.withDirectives)((0,t.createElementVNode)(`div`,{ref_key:`popperRef`,ref:a,class:(0,t.normalizeClass)([`fou-tooltip`,[`fou-tooltip--${e.placement}`]]),style:(0,t.normalizeStyle)((0,t.unref)(s)),role:`tooltip`,onMouseenter:_,onMouseleave:g},[(0,t.createElementVNode)(`div`,no,[(0,t.renderSlot)(r.$slots,`content`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.content),1)],!0)]),c[0]||=(0,t.createElementVNode)(`span`,{class:`fou-tooltip__arrow`},null,-1)],38),[[t.vShow,(0,t.unref)(o)]])]),_:3})]))],16))}}),io=v({default:()=>ao}),ao=S(ro,[[`__scopeId`,`data-v-2d374fdc`]]),oo=new Map,so=new Map,co=new Map,lo={add(e,t){oo.set(e,t)},get(e){return oo.get(e)},has(e){return oo.has(e)}},uo={add(e,t){so.set(e,t)},get(e){return so.get(e)},has(e){return so.has(e)}},fo={add(e,t){co.set(e,t)},get(e){return co.get(e)},has(e){return co.has(e)}};lo.add(`money`,({cellValue:e})=>{let t=Number(e);return Number.isNaN(t)?String(e??``):`¥ ${t.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2})}`}),lo.add(`yesno`,({cellValue:e})=>e?`是`:`否`);function po(e){return e?e.isHover===void 0?e.highlightHoverRow===void 0||!!e.highlightHoverRow:e.isHover!==!1:!0}function mo(e){return e?e.isCurrent===void 0?e.highlightCurrentRow===void 0||!!e.highlightCurrentRow:e.isCurrent!==!1:!0}function ho(e){if(e.editRender)return typeof e.editRender==`string`?{name:e.editRender,props:e.editorProps,options:e.options}:{...e.editRender,props:{...e.editorProps||{},...e.editRender.props||{}},options:e.editRender.options||e.options};let t=e.editor||(e.type&&_o.has(e.type)?e.type:void 0);if(t)return{name:t,props:e.editorProps,options:e.options}}var go=Symbol(`fouTableRegister`),_o=new Set([`switch`,`select`,`input`,`number`,`date`,`datetime`,`time`,`text`]),vo=new Set([`selection`,`checkbox`,`index`,`seq`,`radio`,`expand`]);function yo(e){let t=ho(e);if(t?.enabled!==!1&&t?.name)return _o.has(t.name),t.name}function bo(e){return e.prop||e.field}var xo=Symbol(`FouDropdown`),So=(0,t.defineComponent)({name:`FouDropdown`,__name:`index`,props:{disabled:{type:Boolean,default:!1},trigger:{default:`click`},placement:{default:`bottom-start`},popperClass:{default:``}},emits:[`command`,`visibleChange`],setup(e,{expose:n,emit:r}){let i=e,a=r,o=(0,t.ref)(null),s=(0,t.ref)(null),c=(0,t.ref)(!1),l=(0,t.ref)(null),u=null,d=(0,t.ref)({position:`fixed`,top:`-9999px`,left:`-9999px`,zIndex:String(le(2e3))}),f=()=>{c.value&&(c.value=!1,l.value=null,a(`visibleChange`,!1))},p=async()=>{i.disabled||(c.value=!0,a(`visibleChange`,!0),await(0,t.nextTick)(),S(),requestAnimationFrame(()=>S()))},m=async(e,t)=>{l.value={x:e,y:t},await p()},h=()=>{i.disabled||(c.value?f():p())},g=()=>{i.trigger===`click`&&h()},_=e=>{i.trigger===`contextmenu`&&m(e.clientX,e.clientY)},v=()=>{i.trigger===`hover`&&(u&&clearTimeout(u),p())},y=()=>{i.trigger===`hover`&&(u=setTimeout(()=>f(),120))},b=()=>{i.trigger===`hover`&&u&&clearTimeout(u)},x=()=>{i.trigger===`hover`&&(u=setTimeout(()=>f(),120))};(0,t.provide)(xo,{visible:c,close:f,emitCommand:e=>{a(`command`,e),f()}});let S=()=>{let e=s.value;if(!e)return;let t=e.getBoundingClientRect(),n=window.innerWidth,r=window.innerHeight,a=0,c=0;if(l.value&&i.trigger===`contextmenu`)a=l.value.y+2,c=l.value.x+2;else{let e=o.value;if(!e)return;let n=e.getBoundingClientRect(),r=i.placement;a=r.startsWith(`top`)?n.top-t.height-4:n.bottom+4,c=n.left,r.endsWith(`end`)?c=n.right-t.width:(r===`bottom`||r===`top`)&&(c=n.left+(n.width-t.width)/2)}c+t.width>n-4&&(c=n-t.width-4),c<4&&(c=4),a+t.height>r-4&&(a=Math.max(4,r-t.height-4)),a<4&&(a=4),d.value={position:`fixed`,top:`${Math.round(a)}px`,left:`${Math.round(c)}px`,zIndex:String(le(2e3))}},C=e=>{if(!c.value)return;let t=e.target;o.value?.contains(t)||s.value?.contains(t)||f()},w=()=>{c.value&&i.trigger!==`contextmenu`&&S()};return(0,t.watch)(c,e=>{e?(document.addEventListener(`mousedown`,C,!0),window.addEventListener(`scroll`,w,!0),window.addEventListener(`resize`,w)):(document.removeEventListener(`mousedown`,C,!0),window.removeEventListener(`scroll`,w,!0),window.removeEventListener(`resize`,w))}),(0,t.onBeforeUnmount)(()=>{u&&clearTimeout(u),document.removeEventListener(`mousedown`,C,!0),window.removeEventListener(`scroll`,w,!0),window.removeEventListener(`resize`,w)}),n({open:p,close:f,toggle:h,openAt:m}),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{ref_key:`triggerRef`,ref:o,class:`fou-dropdown`},[(0,t.createElementVNode)(`span`,{class:`fou-dropdown__trigger`,onClick:(0,t.withModifiers)(g,[`stop`]),onContextmenu:(0,t.withModifiers)(_,[`prevent`,`stop`]),onMouseenter:v,onMouseleave:y},[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)],32),((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:`body`},[(0,t.createVNode)(t.Transition,{name:`fou-dropdown-fade`},{default:(0,t.withCtx)(()=>[(0,t.unref)(c)?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,ref_key:`menuHostRef`,ref:s,class:(0,t.normalizeClass)([`fou-dropdown__popper`,e.popperClass]),style:(0,t.normalizeStyle)((0,t.unref)(d)),onClick:r[0]||=(0,t.withModifiers)(()=>{},[`stop`]),onMouseenter:b,onMouseleave:x},[(0,t.renderSlot)(n.$slots,`dropdown`,{},void 0,!0)],38)):(0,t.createCommentVNode)(``,!0)]),_:3})]))],512))}}),Co=v({default:()=>wo}),wo=S(So,[[`__scopeId`,`data-v-a9e659f2`]]),To={class:`fou-dropdown-menu`,role:`menu`},Eo=(0,t.defineComponent)({name:`FouDropdownMenu`,__name:`FouDropdownMenu`,setup(e){return(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`ul`,To,[(0,t.renderSlot)(e.$slots,`default`,{},void 0,!0)]))}}),Do=v({default:()=>Oo}),Oo=S(Eo,[[`__scopeId`,`data-v-ad6aa4e0`]]),ko=(0,t.defineComponent)({name:`FouDropdownItem`,__name:`FouDropdownItem`,props:{command:{default:``},disabled:{type:Boolean,default:!1},divided:{type:Boolean,default:!1}},emits:[`click`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.inject)(xo,null),o=e=>{r.disabled||(i(`click`,e),a?.emitCommand(r.command))};return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`li`,{class:(0,t.normalizeClass)([`fou-dropdown-item`,{"is-disabled":e.disabled,"is-divided":e.divided}]),role:`menuitem`,onClick:o},[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)],2))}}),Ao=v({default:()=>jo}),jo=S(ko,[[`__scopeId`,`data-v-fa9e199d`]]);function Mo(e,t=0){if(e==null||e===``)return 0;if(typeof e==`number`)return Number.isFinite(e)?e:0;let n=String(e).trim();if(!n||n===`auto`)return 0;if(n.endsWith(`%`)){let e=parseFloat(n);return!Number.isFinite(e)||t<=0?0:t*e/100}return parseFloat(n)||0}function No(e,t=0,n){let r=n?.minWidth??80,i=n?.maxWidth??1/0,a=Mo(e.width,t),o=Math.max(Mo(e.minWidth,t)||(a?0:r),48),s=Mo(e.maxWidth,t);return{fixedWidth:a,minWidth:a?Math.min(o||a,a)||48:o,maxWidth:Math.max(s>0?s:i,o||48),isFlex:a<=0}}function Po(e,t){let{containerWidth:n,showSelection:r,showIndex:i,showRadio:a,showExpand:o,fit:s=!0,resized:c={},defaults:l}=t,u=0;o&&(u+=48),a&&(u+=48),r&&(u+=48),i&&(u+=55);let d={},f=[],p=0;for(let t of e){let e=c[t._key];if(e!=null&&e>0){d[t._key]=e,p+=e;continue}let r=No(t,n,l);if(r.isFlex)f.push(t._key),d[t._key]=r.minWidth,p+=r.minWidth;else{let e=Math.min(Math.max(r.fixedWidth,r.minWidth),r.maxWidth);d[t._key]=e,p+=e}}if(s&&f.length&&n>0){let t=n-u-p;if(t>0){let r=f.map(t=>No(e.find(e=>e._key===t),n,l).minWidth),i=r.reduce((e,t)=>e+t,0)||f.length,a=0;f.forEach((o,s)=>{let c=No(e.find(e=>e._key===o),n,l),u=s===f.length-1?t-a:Math.floor(t*r[s]/i);a+=u;let p=Math.min(Math.max(c.minWidth+u,c.minWidth),c.maxWidth);p-c.minWidth,d[o]=p})}}return d}function Fo(e,t,n,r){let i=0;t.showExpand&&(i+=48),t.showRadio&&(i+=48),t.showSelection&&(i+=48),t.showIndex&&(i+=55);for(let t of e){let e=n?.(t);if(e!=null&&e>0){i+=e;continue}let a=No(t,0,r);i+=a.isFlex?a.minWidth:a.fixedWidth||a.minWidth||100}return i}function Io(e,t,n,r){let i=0;n.showExpand&&(i+=48),n.showRadio&&(i+=48),n.showSelection&&(i+=48),n.showIndex&&(i+=55);for(let n of e){if(n._key===t)break;(n.fixed===`left`||n.fixed===!0)&&(i+=r?.(n)||Mo(n.width)||Mo(n.minWidth)||120)}return i}function Lo(e,t,n){let r=0;for(let i=e.length-1;i>=0;i--){let a=e[i];if(a._key===t)break;a.fixed===`right`&&(r+=n?.(a)||Mo(a.width)||Mo(a.minWidth)||120)}return r}function Ro(e,t){let n=e.filter(e=>e.fixed===`left`||e.fixed===!0);return n.length>0&&n[n.length-1]._key===t}function zo(e,t){let n=e.filter(e=>e.fixed===`right`);return n.length>0&&n[0]._key===t}function Bo(e,t,n=``){let r=e.prop||e.field||e.slot||e.type||`col`;return n?`${n}.${r}#${t}`:`${r}#${t}`}function Vo(e,t=``){let n=[];return e.forEach((e,r)=>{let i=Bo(e,r,t);if(e.children?.length){n.push(...Vo(e.children,i));return}e.type&&vo.has(e.type)&&!e.prop&&!e.field&&e.editor,n.push({...e,_key:i})}),n}function Ho(e){return e.children?.length?1+Math.max(...e.children.map(Ho)):1}function Uo(e){return e.children?.length?e.children.reduce((e,t)=>e+Uo(t),0):1}function Wo(e,t=``){if(!e.length)return[[]];let n=Math.max(...e.map(Ho),1),r=Array.from({length:n},()=>[]),i=(e,t,a,o)=>{let s=a;return e.forEach((e,a)=>{let c=Bo(e,a,o),l=Uo(e),u=!e.children?.length,d=u?n-t:1;r[t].push({column:{...e,_key:c},label:e.label||e.title||``,colspan:l,rowspan:d,isLeaf:u,colIndex:s}),!u&&e.children&&i(e.children,t+1,s,c),s+=l}),s};return i(e,0,0,t),r}function Go(e){let n=(0,t.ref)(null),r=(0,t.ref)(null),i=()=>e.getColumns().map(e=>bo(e)).filter(Boolean),a=(t,n)=>{let r=e.getRows(),a=i(),o=r.findIndex(n=>e.getRowId(n)===t),s=a.indexOf(n);return o<0||s<0?null:{rowId:t,prop:n,rowIndex:o,colIndex:s}},o=(t,i,o=!1)=>{let s=bo(i);if(!s)return;let c=a(e.getRowId(t),s);c&&(o&&n.value?r.value=c:(n.value=c,r.value=null))},s=()=>{n.value=null,r.value=null},c=(0,t.computed)(()=>{let e=n.value;if(!e)return null;let t=r.value||e;return{r0:Math.min(e.rowIndex,t.rowIndex),r1:Math.max(e.rowIndex,t.rowIndex),c0:Math.min(e.colIndex,t.colIndex),c1:Math.max(e.colIndex,t.colIndex)}});return{activeCell:n,areaEnd:r,areaBounds:c,setActive:o,clearArea:s,isCellInArea:(t,r)=>{let a=c.value;if(!a){let i=n.value;return i?e.getRowId(t)===i.rowId&&bo(r)===i.prop:!1}let o=e.getRows(),s=i(),l=o.findIndex(n=>e.getRowId(n)===e.getRowId(t)),u=s.indexOf(bo(r)||``);return l<0||u<0?!1:l>=a.r0&&l<=a.r1&&u>=a.c0&&u<=a.c1},isActiveCell:(t,r)=>{let i=n.value;return i?e.getRowId(t)===i.rowId&&bo(r)===i.prop:!1},moveActive:(t,a,o=!1)=>{let s=e.getRows(),c=i();if(!s.length||!c.length)return null;let l=(o?r.value:null)||n.value,u=l?.rowIndex??0,d=l?.colIndex??0;l?(u=Math.max(0,Math.min(s.length-1,u+t)),d=Math.max(0,Math.min(c.length-1,d+a))):(u=t<0?s.length-1:0,d=a<0?c.length-1:0);let f=s[u],p=c[d],m={rowId:e.getRowId(f),prop:p,rowIndex:u,colIndex:d};return o&&n.value?r.value=m:(n.value=m,r.value=null),{row:f,prop:p,pos:m}},buildTsv:t=>{let r=c.value,a=e.getRows(),o=i();if(!r){let e=n.value;return e?t(a[e.rowIndex],e.prop):``}let s=[];for(let e=r.r0;e<=r.r1;e++){let n=[];for(let i=r.c0;i<=r.c1;i++){let r=t(a[e],o[i]);n.push(String(r??``).replace(/\t/g,` `).replace(/\r?\n/g,` `))}s.push(n.join(` `))}return s.join(`
1
+ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("vue"),require("@iconify/vue"),require("@vueuse/core"),require("sortablejs"),require("lunar-javascript"),require("vue-router"),require("html2canvas"),require("jspdf"),require("lodash-es")):typeof define==`function`&&define.amd?define([`exports`,`vue`,`@iconify/vue`,`@vueuse/core`,`sortablejs`,`lunar-javascript`,`vue-router`,`html2canvas`,`jspdf`,`lodash-es`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.Foucui={},e.Vue,e.IconifyVue,e.VueUse,e.Sortable,e.lunarJavascript,e.VueRouter,e.html2canvas,e.jspdf,e.lodashEs))})(this,function(e,t,n,r,i,a,o,s,c,l){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var u=Object.create,d=Object.defineProperty,f=Object.getOwnPropertyDescriptor,p=Object.getOwnPropertyNames,m=Object.getPrototypeOf,h=Object.prototype.hasOwnProperty,g=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(e){throw n=[e],e}},_=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),v=(e,t)=>{let n={};for(var r in e)d(n,r,{get:e[r],enumerable:!0});return t||d(n,Symbol.toStringTag,{value:`Module`}),n},y=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=p(t),a=0,o=i.length,s;a<o;a++)s=i[a],!h.call(e,s)&&s!==n&&d(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=f(t,s))||r.enumerable});return e},b=(e,t,n)=>(n=e==null?{}:u(m(e)),y(t||!e||!e.__esModule||!h.call(e,`default`)?d(n,`default`,{value:e,enumerable:!0}):n,e));i=b(i,1),s=b(s,1);var x=(0,t.defineComponent)({name:`FouAffix`,__name:`index`,props:{offset:{default:0},position:{default:`top`},zIndex:{default:100},target:{default:``}},emits:[`change`,`scroll`],setup(e,{expose:n,emit:r}){let i=e,a=r,o=(0,t.ref)(null),s=(0,t.ref)(null),c=(0,t.ref)(!1),l=(0,t.ref)(0),u=(0,t.ref)(0),d=(0,t.ref)(),f=new WeakSet,p=()=>{if(!i.target)return window;let e=o.value;if(e){let t=e.closest(i.target);if(t instanceof HTMLElement)return t}let t=document.querySelector(i.target);return t instanceof HTMLElement?t:window},m=e=>{f.has(e)||(getComputedStyle(e).position===`static`&&(e.style.position=`relative`,e.dataset.fouAffixRel=`1`),f.add(e))},h=()=>{let e=o.value,t=s.value;if(!e||!t)return;let n=p();l.value=t.offsetHeight,u.value=t.offsetWidth;let r=((c.value?e.querySelector(`.fou-affix__placeholder`):null)??e).getBoundingClientRect(),f=!1;if(i.position===`top`){if(n===window)f=r.top<=i.offset;else{let e=n.getBoundingClientRect().top;f=r.top<=e+i.offset}}else if(n===window)f=r.bottom>=window.innerHeight-i.offset;else{let e=n.getBoundingClientRect().bottom;f=r.bottom>=e-i.offset}if(f!==c.value&&(c.value=f,a(`change`,f)),f){let e={zIndex:String(i.zIndex),width:`${u.value}px`};if(n===window)e.position=`fixed`,e.left=`${r.left}px`,i.position===`top`?e.top=`${i.offset}px`:e.bottom=`${i.offset}px`;else{let t=n;m(t);let a=t.getBoundingClientRect();e.position=`absolute`,e.left=`${r.left-a.left+t.scrollLeft}px`,e.top=i.position===`top`?`${t.scrollTop+i.offset}px`:`${t.scrollTop+t.clientHeight-l.value-i.offset}px`}d.value=e}else d.value=void 0;let h=n===window?window.scrollY||document.documentElement.scrollTop:n.scrollTop;a(`scroll`,{scrollTop:h,fixed:c.value})},g=window,_=()=>h(),v=()=>h(),y=()=>{g!==window&&g.removeEventListener(`scroll`,_),window.removeEventListener(`scroll`,_),window.removeEventListener(`resize`,v)},b=()=>{y(),g=p(),g!==window&&g.addEventListener(`scroll`,_,{passive:!0}),window.addEventListener(`scroll`,_,{passive:!0}),window.addEventListener(`resize`,v,{passive:!0}),h()};return(0,t.onMounted)(()=>{(0,t.nextTick)(b)}),(0,t.onBeforeUnmount)(y),(0,t.watch)(()=>[i.target,i.offset,i.position,i.zIndex],()=>(0,t.nextTick)(b)),n({update:h}),(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{ref_key:`rootRef`,ref:o,class:`fou-affix`},[(0,t.unref)(c)?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:`fou-affix__placeholder`,style:(0,t.normalizeStyle)({width:`${(0,t.unref)(u)}px`,height:`${(0,t.unref)(l)}px`})},null,4)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,{ref_key:`affixRef`,ref:s,class:(0,t.normalizeClass)([`fou-affix__content`,{"is-fixed":(0,t.unref)(c)}]),style:(0,t.normalizeStyle)((0,t.unref)(d))},[(0,t.renderSlot)(e.$slots,`default`,{},void 0,!0)],6)],512))}}),S=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},C=v({default:()=>w}),w=S(x,[[`__scopeId`,`data-v-a9405949`]]),T=[`viewBox`],E=[`href`,`xlink:href`],D=(0,t.defineComponent)({name:`FouIcon`,__name:`index`,props:{icon:{default:``},isCustomSvg:{type:Boolean,default:!1},keepColor:{type:Boolean,default:!1},viewBox:{default:``}},emits:[`click`],setup(e,{emit:r}){let i=e,a=r,o=(0,t.computed)(()=>String(i.icon||``).trim()),s=(0,t.computed)(()=>{let e=o.value;return!!e&&e.includes(`:`)&&!e.startsWith(`http`)&&!i.isCustomSvg}),c=(0,t.computed)(()=>o.value),l=(0,t.computed)(()=>{let e=o.value;return e?e.startsWith(`ri-`)?e:`ri-${e}`:``}),u=(0,t.computed)(()=>`#fou-icon-${o.value}`),d=e=>a(`click`,e);return(r,i)=>(0,t.unref)(s)?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:0,"aria-hidden":`true`,class:`fou-icon fou-icon--iconify`,onClick:d},[(0,t.createVNode)((0,t.unref)(n.Icon),{icon:(0,t.unref)(c),width:`1em`,height:`1em`},null,8,[`icon`])])):e.isCustomSvg?((0,t.openBlock)(),(0,t.createElementBlock)(`svg`,{key:1,"aria-hidden":`true`,class:(0,t.normalizeClass)([`fou-icon fou-icon--svg`,{"is-keep-color":e.keepColor}]),viewBox:e.viewBox||void 0,onClick:d},[(0,t.createElementVNode)(`use`,{href:(0,t.unref)(u),"xlink:href":(0,t.unref)(u)},null,8,E)],10,T)):((0,t.openBlock)(),(0,t.createElementBlock)(`i`,{key:2,"aria-hidden":`true`,class:(0,t.normalizeClass)([`fou-icon`,(0,t.unref)(l)]),onClick:d},null,2))}}),O=v({default:()=>k}),k=S(D,[[`__scopeId`,`data-v-6e9a21f1`]]),A={class:`fou-alert__content`},j={key:0,class:`fou-alert__title`},M={key:1,class:`fou-alert__description`},N=[`aria-label`],P={key:0},F=(0,t.defineComponent)({name:`FouAlert`,__name:`index`,props:{title:{type:String,default:``},description:{type:String,default:``},type:{type:String,default:`info`},closable:{type:Boolean,default:!1},closeText:{type:String,default:``},showIcon:{type:Boolean,default:!1},center:{type:Boolean,default:!1},effect:{type:String,default:`light`}},emits:[`close`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.ref)(!0),o=(0,t.computed)(()=>r.type===`danger`?`error`:r.type),s=(0,t.computed)(()=>{let e={success:`checkbox-circle-line`,warning:`error-warning-line`,info:`information-line`,error:`close-circle-line`};return e[o.value]||e.info}),c=()=>{a.value=!1,i(`close`)};return(n,r)=>{let i=k;return(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createElementBlock)(`div`,(0,t.mergeProps)({class:[`fou-alert`,[`fou-alert--${(0,t.unref)(o)}`,`fou-alert--${e.effect}`,{"is-center":e.center}]],role:`alert`},n.$attrs),[e.showIcon?((0,t.openBlock)(),(0,t.createBlock)(i,{key:0,class:`fou-alert__icon`,icon:(0,t.unref)(s)},null,8,[`icon`])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,A,[e.title||n.$slots.title?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,j,[(0,t.renderSlot)(n.$slots,`title`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.title),1)],!0)])):(0,t.createCommentVNode)(``,!0),n.$slots.default||e.description?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,M,[(0,t.renderSlot)(n.$slots,`default`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.description),1)],!0)])):(0,t.createCommentVNode)(``,!0)]),e.closable?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:1,type:`button`,class:`fou-alert__close`,"aria-label":e.closeText||`Close`,onClick:c},[e.closeText?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,P,(0,t.toDisplayString)(e.closeText),1)):((0,t.openBlock)(),(0,t.createBlock)(i,{key:1,icon:`close-line`}))],8,N)):(0,t.createCommentVNode)(``,!0)],16)),[[t.vShow,(0,t.unref)(a)]])}}}),I=v({default:()=>L}),L=S(F,[[`__scopeId`,`data-v-d361a653`]]),R=Symbol(`FouAnchor`),ee={class:`fou-anchor`},z=(0,t.defineComponent)({name:`FouAnchor`,__name:`index`,props:{offset:{default:0},bound:{default:``}},setup(e){let n=e,r=(0,t.ref)([]),i=(0,t.ref)(``),a=e=>{let t=window.getComputedStyle(e);return/(auto|scroll)/.test(t.overflow+t.overflowY+t.overflowX)},o=e=>{let t=e.parentElement;for(;t;){if(a(t))return t;t=t.parentElement}return window},s=e=>{if(n.bound){let e=document.querySelector(n.bound);if(e)return e}return e?o(e):window},c=e=>e===window?window.scrollY||document.documentElement.scrollTop:e.scrollTop,l=e=>{let t=e.replace(/^#/,``),r=document.getElementById(t)||document.querySelector(e);if(!r){console.warn(`[FouAnchor] 未找到目标锚点: ${e}`);return}let a=s(r);if(a===window){let e=r.getBoundingClientRect().top+c(window)-n.offset;window.scrollTo({top:e,behavior:`smooth`})}else{let e=a,t=e.getBoundingClientRect(),i=r.getBoundingClientRect().top-t.top+e.scrollTop-n.offset;e.scrollTo({top:i,behavior:`smooth`})}i.value=e;try{e.startsWith(`#`)&&history.replaceState(null,``,e)}catch{}},u=e=>{let t=r.value.findIndex(t=>t.href===e.href);t>=0?r.value[t]=e:r.value.push(e),r.value.sort((e,t)=>{let n=document.querySelector(e.href),r=document.querySelector(t.href);return!n||!r?0:n.getBoundingClientRect().top-r.getBoundingClientRect().top})},d=e=>{r.value=r.value.filter(t=>t.href!==e)},f=()=>{if(n.bound)return document.querySelector(n.bound)||window;for(let e of r.value){let t=document.querySelector(e.href);if(t)return o(t)}return window},p=()=>{let e=f(),t=c(e),a=e===window?0:e.getBoundingClientRect().top,o=``;for(let i of r.value){let r=i.href.replace(/^#/,``),s=document.getElementById(r);s&&(e===window?s.getBoundingClientRect().top+t:s.getBoundingClientRect().top-a+t)-n.offset<=t+1&&(o=i.href)}o&&(i.value=o)};(0,t.provide)(R,{offset:(0,t.toRef)(n,`offset`),bound:(0,t.toRef)(n,`bound`),activeLink:i,registerLink:u,unregisterLink:d,scrollToLink:l});let m=window,h=()=>p(),g=()=>{let e=f();e!==m&&(m.removeEventListener(`scroll`,h),m=e,m.addEventListener(`scroll`,h,{passive:!0}))};return(0,t.onMounted)(()=>{m=f(),m.addEventListener(`scroll`,h,{passive:!0}),p()}),(0,t.onBeforeUnmount)(()=>{m.removeEventListener(`scroll`,h)}),(0,t.watch)(()=>n.bound,()=>{g(),p()}),(0,t.watch)(()=>r.value.map(e=>e.href).join(`,`),()=>{g(),p()},{flush:`post`}),(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ee,[(0,t.renderSlot)(e.$slots,`default`,{},void 0,!0)]))}}),B=v({default:()=>V}),V=S(z,[[`__scopeId`,`data-v-2d49b1d6`]]),H=[`href`],te=(0,t.defineComponent)({name:`FouAnchorLink`,__name:`index`,props:{href:{},title:{default:``}},setup(e){let n=e,r=(0,t.inject)(R,null),i=(0,t.ref)(null),a=(0,t.computed)(()=>r?.activeLink.value===n.href),o=()=>{r?.scrollToLink(n.href)};return(0,t.onMounted)(()=>{r?.registerLink({href:n.href,title:n.title,el:i.value})}),(0,t.onBeforeUnmount)(()=>{r?.unregisterLink(n.href)}),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`a`,{class:(0,t.normalizeClass)([`fou-anchor-link`,{"is-active":(0,t.unref)(a)}]),href:e.href,onClick:(0,t.withModifiers)(o,[`prevent`])},[(0,t.renderSlot)(n.$slots,`default`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.title),1)],!0)],10,H))}}),ne=v({default:()=>re}),re=S(te,[[`__scopeId`,`data-v-803a01fc`]]),U=(0,t.defineComponent)({name:`FouApp`,__name:`index`,setup(e){return(e,n)=>{let r=(0,t.resolveComponent)(`router-view`);return(0,t.openBlock)(),(0,t.createBlock)(r)}}}),ie=v({default:()=>ae}),ae=U;function W(e,t){return e[t.value??`value`]}function oe(e,t){return String(e[t.label??`label`]??``)}function se(e,t){let n=e[t.children??`children`];return Array.isArray(n)?n:void 0}function ce(e,t){return!!e[t.disabled??`disabled`]}var G=2e3;function le(e=2e3){return G=Math.max(G,e)+1,G}var ue=[`onKeydown`],K={key:0,class:`fou-cascader__tags`},de={class:`fou-cascader__tag-text`},fe=[`onClick`],q={key:0,class:`fou-cascader__tag is-collapse`},pe={class:`fou-cascader__suffix`},me={key:0,class:`fou-cascader__filter`},he=[`placeholder`],ge={key:1,class:`fou-cascader__suggestions`},_e=[`onClick`],ve={key:0,class:`fou-cascader__empty`},ye={key:2,class:`fou-cascader__menus`},be=[`onClick`,`onMouseenter`],xe=[`checked`,`disabled`,`onChange`],Se={class:`fou-cascader__label`},Ce={key:1,class:`fou-cascader__arrow`},we={key:0,class:`fou-cascader__empty-item`},Te=(0,t.defineComponent)({name:`FouCascader`,__name:`index`,props:{modelValue:{default:null},options:{default:()=>[]},props:{default:()=>({})},placeholder:{default:`请选择`},clearable:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},filterable:{type:Boolean,default:!1},filterPlaceholder:{default:`输入关键字搜索`},showAllLevels:{type:Boolean,default:!0},separator:{default:` / `},collapseTags:{type:Boolean,default:!1},maxCollapseTags:{default:1},size:{default:`default`}},emits:[`update:modelValue`,`change`,`clear`,`visibleChange`,`expand-change`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.ref)(null),o=(0,t.ref)(null),s=(0,t.ref)(!1),c=(0,t.ref)(``),l=(0,t.ref)([]),u=(0,t.ref)({}),d=(0,t.computed)(()=>({value:`value`,label:`label`,children:`children`,disabled:`disabled`,multiple:!1,checkStrictly:!1,emitPath:!0,expandTrigger:`click`,...r.props})),f=(0,t.computed)(()=>!!d.value.multiple),p=(0,t.computed)(()=>!!d.value.checkStrictly),m=(0,t.computed)(()=>d.value.emitPath!==!1),h=(0,t.computed)(()=>d.value.expandTrigger||`click`),g=(0,t.computed)(()=>r.size||`default`),_=e=>!!se(e,d.value)?.length,v=(0,t.computed)(()=>{let e=[r.options||[]];for(let t of l.value){let n=se(t,d.value);if(n?.length)e.push(n);else break}return e}),y=(e,t=[])=>{let n=[];for(let r of e){let e=[...t,r],i=e.map(e=>W(e,d.value)),a=e.map(e=>oe(e,d.value)),o=e.some(e=>ce(e,d.value)),s=se(r,d.value);(!s?.length||p.value)&&n.push({option:r,path:e,pathValues:i,pathLabels:a,pathKey:i.join(`/`),disabled:o}),s?.length&&n.push(...y(s,e))}return n},b=(0,t.computed)(()=>y(r.options||[])),x=(0,t.computed)(()=>{let e=c.value.trim().toLowerCase();return e?b.value.filter(t=>t.pathLabels.some(t=>t.toLowerCase().includes(e))):[]}),S=e=>e==null||e===``?[]:Array.isArray(e)?!e.length||Array.isArray(e[0])?[]:e:[e],C=e=>e==null||e===``?[]:Array.isArray(e)?e.length?Array.isArray(e[0])?e:e.map(e=>[e]):[]:[[e]],w=(0,t.computed)(()=>{if(f.value)return C(r.modelValue??null);let e=S(r.modelValue??null);return e.length?[e]:[]}),T=e=>{if(!e.length)return null;if(!m.value&&e.length===1)return b.value.find(t=>W(t.option,d.value)===e[0])?.path||null;let t=r.options||[],n=[];for(let r of e){let e=t.find(e=>W(e,d.value)===r);if(!e)return null;n.push(e),t=se(e,d.value)||[]}return n},E=e=>{let t=e.map(e=>W(e,d.value));return m.value?t:t[t.length-1]},D=e=>{let t=e.join(`/`),n=e[e.length-1];return w.value.some(e=>m.value?e.join(`/`)===t:e[e.length-1]===n)},O=e=>{let t=W(e,d.value);return w.value.some(e=>m.value?e[e.length-1]===t:e.includes(t)||e[e.length-1]===t)},k=(e,t)=>{let n=l.value[e];return n?W(n,d.value)===W(t,d.value):!1},A=(e,t)=>{let n=W(e,d.value);return w.value.some(e=>e[t]===n||!m.value&&e[e.length-1]===n)},j=(0,t.computed)(()=>w.value.map(e=>{let t=T(e);if(!t?.length)return{value:e[e.length-1],label:String(e[e.length-1]??``),pathValues:e};let n=t.map(e=>oe(e,d.value));return{value:W(t[t.length-1],d.value),label:r.showAllLevels?n.join(r.separator):n[n.length-1],pathValues:e}}).filter(Boolean)),M=(0,t.computed)(()=>r.collapseTags?j.value.slice(0,r.maxCollapseTags):j.value),N=(0,t.computed)(()=>r.collapseTags?Math.max(0,j.value.length-r.maxCollapseTags):0),P=(0,t.computed)(()=>{if(f.value)return``;let e=w.value;if(!e.length)return``;let t=T(e[0]);if(!t?.length)return String(e[0][e[0].length-1]??``);let n=t.map(e=>oe(e,d.value));return r.showAllLevels?n.join(r.separator):n[n.length-1]}),F=(0,t.computed)(()=>w.value.length>0),I=()=>{let e=w.value;if(!e.length){l.value=[];return}let t=T(e[0]);t?.length&&(l.value=t.slice(0,-1))},L=()=>{let e=a.value;if(!e)return;let t=e.getBoundingClientRect(),n=window.innerHeight-t.bottom,r=n<240&&t.top>n;u.value={position:`fixed`,left:`${t.left}px`,top:r?`auto`:`${t.bottom+4}px`,bottom:r?`${window.innerHeight-t.top+4}px`:`auto`,minWidth:`${Math.max(t.width,180)}px`,zIndex:String(le(2e3))}},R=()=>{r.disabled||(I(),c.value=``,L(),s.value=!0,i(`visibleChange`,!0))},ee=()=>{s.value&&(s.value=!1,c.value=``,i(`visibleChange`,!1))},z=()=>{r.disabled||(s.value?ee():R())},B=e=>{i(`update:modelValue`,e),i(`change`,e)},V=(e,t)=>{let n=l.value.slice(0,t);n[t]=e,l.value=n.slice(0,t+1),i(`expand-change`,l.value.map(e=>W(e,d.value)))},H=e=>{if(e.length){if(f.value){let t=e.map(e=>W(e,d.value)),n=t.join(`/`),r=t[t.length-1],i=w.value.some(e=>m.value?e.join(`/`)===n:e[e.length-1]===r),a=[...w.value];i?a=a.filter(e=>m.value?e.join(`/`)!==n:e[e.length-1]!==r):a.push(m.value?t:[r]);let o=m.value?a:a.map(e=>e[e.length-1]);B(o)}else B(E(e)),ee()}},te=(e,t)=>{if(ce(e,d.value))return;if(se(e,d.value)?.length){V(e,t),p.value&&!f.value&&H([...l.value.slice(0,t),e]);return}let n=[...l.value.slice(0,t),e];H(n)},ne=(e,t)=>{h.value===`hover`&&(ce(e,d.value)||_(e)&&V(e,t))},re=(e,t)=>{if(ce(e,d.value))return;let n=[...l.value.slice(0,t),e];!p.value&&_(e)||(H(n),f.value||ee())},U=e=>{H(e.path)},ie=e=>{let t=w.value.filter(t=>t[t.length-1]!==e),n=m.value?t:t.map(e=>e[e.length-1]);B(t.length?n:null)},ae=()=>{B(null),i(`clear`),l.value=[]},G=e=>{let t=e.target;a.value?.contains(t)||o.value?.contains(t)||ee()},Te=()=>{s.value&&L()};return(0,t.onMounted)(()=>{document.addEventListener(`mousedown`,G),window.addEventListener(`resize`,Te),window.addEventListener(`scroll`,Te,!0)}),(0,t.onUnmounted)(()=>{document.removeEventListener(`mousedown`,G),window.removeEventListener(`resize`,Te),window.removeEventListener(`scroll`,Te,!0)}),(0,t.watch)(()=>r.modelValue,()=>{s.value||I()}),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{ref_key:`rootRef`,ref:a,class:(0,t.normalizeClass)([`fou-cascader`,[`fou-cascader--${(0,t.unref)(g)}`,{"is-disabled":e.disabled,"is-focused":(0,t.unref)(s),"is-multiple":(0,t.unref)(f)}]])},[(0,t.createElementVNode)(`div`,{class:`fou-cascader__wrapper`,tabindex:`0`,onClick:z,onKeydown:[(0,t.withKeys)((0,t.withModifiers)(z,[`prevent`]),[`enter`]),(0,t.withKeys)((0,t.withModifiers)(z,[`prevent`]),[`space`]),(0,t.withKeys)(ee,[`esc`]),(0,t.withKeys)((0,t.withModifiers)(R,[`prevent`]),[`down`])]},[(0,t.unref)(f)&&(0,t.unref)(j).length?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,K,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(M),e=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:String(e.value),class:`fou-cascader__tag`},[(0,t.createElementVNode)(`span`,de,(0,t.toDisplayString)(e.label),1),(0,t.createElementVNode)(`button`,{type:`button`,class:`fou-cascader__tag-close`,tabindex:`-1`,onMousedown:r[0]||=(0,t.withModifiers)(()=>{},[`prevent`]),onClick:(0,t.withModifiers)(t=>ie(e.value),[`stop`])},` × `,40,fe)]))),128)),(0,t.unref)(N)>0?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,q,` +`+(0,t.toDisplayString)((0,t.unref)(N)),1)):(0,t.createCommentVNode)(``,!0)])):((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:1,class:(0,t.normalizeClass)([`fou-cascader__selected`,{"is-placeholder":!(0,t.unref)(P)}])},(0,t.toDisplayString)((0,t.unref)(P)||e.placeholder),3)),(0,t.createElementVNode)(`span`,pe,[e.clearable&&(0,t.unref)(F)&&!e.disabled?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:0,type:`button`,class:`fou-cascader__clear`,tabindex:`-1`,onMousedown:r[1]||=(0,t.withModifiers)(()=>{},[`prevent`]),onClick:(0,t.withModifiers)(ae,[`stop`])},` × `,32)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`span`,{class:(0,t.normalizeClass)([`fou-cascader__caret`,{"is-open":(0,t.unref)(s)}])},`▾`,2)])],40,ue),((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:`body`},[(0,t.createVNode)(t.Transition,{name:`fou-cascader-fade`},{default:(0,t.withCtx)(()=>[(0,t.withDirectives)((0,t.createElementVNode)(`div`,{ref_key:`panelRef`,ref:o,class:`fou-cascader__dropdown`,style:(0,t.normalizeStyle)((0,t.unref)(u)),onMousedown:r[5]||=(0,t.withModifiers)(()=>{},[`prevent`])},[e.filterable?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,me,[(0,t.withDirectives)((0,t.createElementVNode)(`input`,{"onUpdate:modelValue":r[2]||=e=>(0,t.isRef)(c)?c.value=e:null,class:`fou-cascader__filter-input`,placeholder:e.filterPlaceholder,onClick:r[3]||=(0,t.withModifiers)(()=>{},[`stop`])},null,8,he),[[t.vModelText,(0,t.unref)(c)]])])):(0,t.createCommentVNode)(``,!0),(0,t.unref)(c).trim()?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ge,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(x),n=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:n.pathKey,class:(0,t.normalizeClass)([`fou-cascader__suggestion`,{"is-selected":D(n.pathValues),"is-disabled":n.disabled}]),onClick:e=>!n.disabled&&U(n)},(0,t.toDisplayString)(n.pathLabels.join(e.separator)),11,_e))),128)),(0,t.unref)(x).length?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ve,`无匹配数据`))])):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ye,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(v),(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`ul`,{key:n,class:`fou-cascader__menu`},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`li`,{key:String((0,t.unref)(W)(e,(0,t.unref)(d))),class:(0,t.normalizeClass)([`fou-cascader__node`,{"is-active":k(n,e),"is-selected":A(e,n),"is-disabled":(0,t.unref)(ce)(e,(0,t.unref)(d))}]),onClick:t=>te(e,n),onMouseenter:t=>ne(e,n)},[(0,t.unref)(f)||(0,t.unref)(p)?((0,t.openBlock)(),(0,t.createElementBlock)(`label`,{key:0,class:`fou-cascader__check`,onClick:r[4]||=(0,t.withModifiers)(()=>{},[`stop`])},[(0,t.createElementVNode)(`input`,{type:`checkbox`,checked:O(e),disabled:(0,t.unref)(ce)(e,(0,t.unref)(d))||!(0,t.unref)(p)&&_(e),onChange:t=>re(e,n)},null,40,xe)])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`span`,Se,(0,t.toDisplayString)((0,t.unref)(oe)(e,(0,t.unref)(d))),1),_(e)?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Ce,`›`)):(0,t.createCommentVNode)(``,!0)],42,be))),128)),e.length?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createElementBlock)(`li`,we,`无数据`))]))),128))]))],36),[[t.vShow,(0,t.unref)(s)]])]),_:1})]))],2))}}),Ee=v({default:()=>De}),De=S(Te,[[`__scopeId`,`data-v-cfa5853b`]]),Oe=JSON.parse(`[{"code":"11","name":"北京市","children":[{"code":"1101","name":"市辖区","children":[{"code":"110101","name":"东城区"},{"code":"110102","name":"西城区"},{"code":"110105","name":"朝阳区"},{"code":"110106","name":"丰台区"},{"code":"110107","name":"石景山区"},{"code":"110108","name":"海淀区"},{"code":"110109","name":"门头沟区"},{"code":"110111","name":"房山区"},{"code":"110112","name":"通州区"},{"code":"110113","name":"顺义区"},{"code":"110114","name":"昌平区"},{"code":"110115","name":"大兴区"},{"code":"110116","name":"怀柔区"},{"code":"110117","name":"平谷区"},{"code":"110118","name":"密云区"},{"code":"110119","name":"延庆区"}]}]},{"code":"12","name":"天津市","children":[{"code":"1201","name":"市辖区","children":[{"code":"120101","name":"和平区"},{"code":"120102","name":"河东区"},{"code":"120103","name":"河西区"},{"code":"120104","name":"南开区"},{"code":"120105","name":"河北区"},{"code":"120106","name":"红桥区"},{"code":"120110","name":"东丽区"},{"code":"120111","name":"西青区"},{"code":"120112","name":"津南区"},{"code":"120113","name":"北辰区"},{"code":"120114","name":"武清区"},{"code":"120115","name":"宝坻区"},{"code":"120116","name":"滨海新区"},{"code":"120117","name":"宁河区"},{"code":"120118","name":"静海区"},{"code":"120119","name":"蓟州区"}]}]},{"code":"13","name":"河北省","children":[{"code":"1301","name":"石家庄市","children":[{"code":"130102","name":"长安区"},{"code":"130104","name":"桥西区"},{"code":"130105","name":"新华区"},{"code":"130107","name":"井陉矿区"},{"code":"130108","name":"裕华区"},{"code":"130109","name":"藁城区"},{"code":"130110","name":"鹿泉区"},{"code":"130111","name":"栾城区"},{"code":"130121","name":"井陉县"},{"code":"130123","name":"正定县"},{"code":"130125","name":"行唐县"},{"code":"130126","name":"灵寿县"},{"code":"130127","name":"高邑县"},{"code":"130128","name":"深泽县"},{"code":"130129","name":"赞皇县"},{"code":"130130","name":"无极县"},{"code":"130131","name":"平山县"},{"code":"130132","name":"元氏县"},{"code":"130133","name":"赵县"},{"code":"130171","name":"石家庄高新技术产业开发区"},{"code":"130172","name":"石家庄循环化工园区"},{"code":"130181","name":"辛集市"},{"code":"130183","name":"晋州市"},{"code":"130184","name":"新乐市"}]},{"code":"1302","name":"唐山市","children":[{"code":"130202","name":"路南区"},{"code":"130203","name":"路北区"},{"code":"130204","name":"古冶区"},{"code":"130205","name":"开平区"},{"code":"130207","name":"丰南区"},{"code":"130208","name":"丰润区"},{"code":"130209","name":"曹妃甸区"},{"code":"130224","name":"滦南县"},{"code":"130225","name":"乐亭县"},{"code":"130227","name":"迁西县"},{"code":"130229","name":"玉田县"},{"code":"130271","name":"河北唐山芦台经济开发区"},{"code":"130272","name":"唐山市汉沽管理区"},{"code":"130273","name":"唐山高新技术产业开发区"},{"code":"130274","name":"河北唐山海港经济开发区"},{"code":"130281","name":"遵化市"},{"code":"130283","name":"迁安市"},{"code":"130284","name":"滦州市"}]},{"code":"1303","name":"秦皇岛市","children":[{"code":"130302","name":"海港区"},{"code":"130303","name":"山海关区"},{"code":"130304","name":"北戴河区"},{"code":"130306","name":"抚宁区"},{"code":"130321","name":"青龙满族自治县"},{"code":"130322","name":"昌黎县"},{"code":"130324","name":"卢龙县"},{"code":"130371","name":"秦皇岛市经济技术开发区"},{"code":"130372","name":"北戴河新区"}]},{"code":"1304","name":"邯郸市","children":[{"code":"130402","name":"邯山区"},{"code":"130403","name":"丛台区"},{"code":"130404","name":"复兴区"},{"code":"130406","name":"峰峰矿区"},{"code":"130407","name":"肥乡区"},{"code":"130408","name":"永年区"},{"code":"130423","name":"临漳县"},{"code":"130424","name":"成安县"},{"code":"130425","name":"大名县"},{"code":"130426","name":"涉县"},{"code":"130427","name":"磁县"},{"code":"130430","name":"邱县"},{"code":"130431","name":"鸡泽县"},{"code":"130432","name":"广平县"},{"code":"130433","name":"馆陶县"},{"code":"130434","name":"魏县"},{"code":"130435","name":"曲周县"},{"code":"130471","name":"邯郸经济技术开发区"},{"code":"130473","name":"邯郸冀南新区"},{"code":"130481","name":"武安市"}]},{"code":"1305","name":"邢台市","children":[{"code":"130502","name":"襄都区"},{"code":"130503","name":"信都区"},{"code":"130505","name":"任泽区"},{"code":"130506","name":"南和区"},{"code":"130522","name":"临城县"},{"code":"130523","name":"内丘县"},{"code":"130524","name":"柏乡县"},{"code":"130525","name":"隆尧县"},{"code":"130528","name":"宁晋县"},{"code":"130529","name":"巨鹿县"},{"code":"130530","name":"新河县"},{"code":"130531","name":"广宗县"},{"code":"130532","name":"平乡县"},{"code":"130533","name":"威县"},{"code":"130534","name":"清河县"},{"code":"130535","name":"临西县"},{"code":"130571","name":"河北邢台经济开发区"},{"code":"130581","name":"南宫市"},{"code":"130582","name":"沙河市"}]},{"code":"1306","name":"保定市","children":[{"code":"130602","name":"竞秀区"},{"code":"130606","name":"莲池区"},{"code":"130607","name":"满城区"},{"code":"130608","name":"清苑区"},{"code":"130609","name":"徐水区"},{"code":"130623","name":"涞水县"},{"code":"130624","name":"阜平县"},{"code":"130626","name":"定兴县"},{"code":"130627","name":"唐县"},{"code":"130628","name":"高阳县"},{"code":"130629","name":"容城县"},{"code":"130630","name":"涞源县"},{"code":"130631","name":"望都县"},{"code":"130632","name":"安新县"},{"code":"130633","name":"易县"},{"code":"130634","name":"曲阳县"},{"code":"130635","name":"蠡县"},{"code":"130636","name":"顺平县"},{"code":"130637","name":"博野县"},{"code":"130638","name":"雄县"},{"code":"130671","name":"保定高新技术产业开发区"},{"code":"130672","name":"保定白沟新城"},{"code":"130681","name":"涿州市"},{"code":"130682","name":"定州市"},{"code":"130683","name":"安国市"},{"code":"130684","name":"高碑店市"}]},{"code":"1307","name":"张家口市","children":[{"code":"130702","name":"桥东区"},{"code":"130703","name":"桥西区"},{"code":"130705","name":"宣化区"},{"code":"130706","name":"下花园区"},{"code":"130708","name":"万全区"},{"code":"130709","name":"崇礼区"},{"code":"130722","name":"张北县"},{"code":"130723","name":"康保县"},{"code":"130724","name":"沽源县"},{"code":"130725","name":"尚义县"},{"code":"130726","name":"蔚县"},{"code":"130727","name":"阳原县"},{"code":"130728","name":"怀安县"},{"code":"130730","name":"怀来县"},{"code":"130731","name":"涿鹿县"},{"code":"130732","name":"赤城县"},{"code":"130771","name":"张家口经济开发区"},{"code":"130772","name":"张家口市察北管理区"},{"code":"130773","name":"张家口市塞北管理区"}]},{"code":"1308","name":"承德市","children":[{"code":"130802","name":"双桥区"},{"code":"130803","name":"双滦区"},{"code":"130804","name":"鹰手营子矿区"},{"code":"130821","name":"承德县"},{"code":"130822","name":"兴隆县"},{"code":"130824","name":"滦平县"},{"code":"130825","name":"隆化县"},{"code":"130826","name":"丰宁满族自治县"},{"code":"130827","name":"宽城满族自治县"},{"code":"130828","name":"围场满族蒙古族自治县"},{"code":"130871","name":"承德高新技术产业开发区"},{"code":"130881","name":"平泉市"}]},{"code":"1309","name":"沧州市","children":[{"code":"130902","name":"新华区"},{"code":"130903","name":"运河区"},{"code":"130921","name":"沧县"},{"code":"130922","name":"青县"},{"code":"130923","name":"东光县"},{"code":"130924","name":"海兴县"},{"code":"130925","name":"盐山县"},{"code":"130926","name":"肃宁县"},{"code":"130927","name":"南皮县"},{"code":"130928","name":"吴桥县"},{"code":"130929","name":"献县"},{"code":"130930","name":"孟村回族自治县"},{"code":"130971","name":"河北沧州经济开发区"},{"code":"130972","name":"沧州高新技术产业开发区"},{"code":"130973","name":"沧州渤海新区"},{"code":"130981","name":"泊头市"},{"code":"130982","name":"任丘市"},{"code":"130983","name":"黄骅市"},{"code":"130984","name":"河间市"}]},{"code":"1310","name":"廊坊市","children":[{"code":"131002","name":"安次区"},{"code":"131003","name":"广阳区"},{"code":"131022","name":"固安县"},{"code":"131023","name":"永清县"},{"code":"131024","name":"香河县"},{"code":"131025","name":"大城县"},{"code":"131026","name":"文安县"},{"code":"131028","name":"大厂回族自治县"},{"code":"131071","name":"廊坊经济技术开发区"},{"code":"131081","name":"霸州市"},{"code":"131082","name":"三河市"}]},{"code":"1311","name":"衡水市","children":[{"code":"131102","name":"桃城区"},{"code":"131103","name":"冀州区"},{"code":"131121","name":"枣强县"},{"code":"131122","name":"武邑县"},{"code":"131123","name":"武强县"},{"code":"131124","name":"饶阳县"},{"code":"131125","name":"安平县"},{"code":"131126","name":"故城县"},{"code":"131127","name":"景县"},{"code":"131128","name":"阜城县"},{"code":"131171","name":"河北衡水高新技术产业开发区"},{"code":"131172","name":"衡水滨湖新区"},{"code":"131182","name":"深州市"}]}]},{"code":"14","name":"山西省","children":[{"code":"1401","name":"太原市","children":[{"code":"140105","name":"小店区"},{"code":"140106","name":"迎泽区"},{"code":"140107","name":"杏花岭区"},{"code":"140108","name":"尖草坪区"},{"code":"140109","name":"万柏林区"},{"code":"140110","name":"晋源区"},{"code":"140121","name":"清徐县"},{"code":"140122","name":"阳曲县"},{"code":"140123","name":"娄烦县"},{"code":"140171","name":"山西转型综合改革示范区"},{"code":"140181","name":"古交市"}]},{"code":"1402","name":"大同市","children":[{"code":"140212","name":"新荣区"},{"code":"140213","name":"平城区"},{"code":"140214","name":"云冈区"},{"code":"140215","name":"云州区"},{"code":"140221","name":"阳高县"},{"code":"140222","name":"天镇县"},{"code":"140223","name":"广灵县"},{"code":"140224","name":"灵丘县"},{"code":"140225","name":"浑源县"},{"code":"140226","name":"左云县"},{"code":"140271","name":"山西大同经济开发区"}]},{"code":"1403","name":"阳泉市","children":[{"code":"140302","name":"城区"},{"code":"140303","name":"矿区"},{"code":"140311","name":"郊区"},{"code":"140321","name":"平定县"},{"code":"140322","name":"盂县"}]},{"code":"1404","name":"长治市","children":[{"code":"140403","name":"潞州区"},{"code":"140404","name":"上党区"},{"code":"140405","name":"屯留区"},{"code":"140406","name":"潞城区"},{"code":"140423","name":"襄垣县"},{"code":"140425","name":"平顺县"},{"code":"140426","name":"黎城县"},{"code":"140427","name":"壶关县"},{"code":"140428","name":"长子县"},{"code":"140429","name":"武乡县"},{"code":"140430","name":"沁县"},{"code":"140431","name":"沁源县"}]},{"code":"1405","name":"晋城市","children":[{"code":"140502","name":"城区"},{"code":"140521","name":"沁水县"},{"code":"140522","name":"阳城县"},{"code":"140524","name":"陵川县"},{"code":"140525","name":"泽州县"},{"code":"140581","name":"高平市"}]},{"code":"1406","name":"朔州市","children":[{"code":"140602","name":"朔城区"},{"code":"140603","name":"平鲁区"},{"code":"140621","name":"山阴县"},{"code":"140622","name":"应县"},{"code":"140623","name":"右玉县"},{"code":"140671","name":"山西朔州经济开发区"},{"code":"140681","name":"怀仁市"}]},{"code":"1407","name":"晋中市","children":[{"code":"140702","name":"榆次区"},{"code":"140703","name":"太谷区"},{"code":"140721","name":"榆社县"},{"code":"140722","name":"左权县"},{"code":"140723","name":"和顺县"},{"code":"140724","name":"昔阳县"},{"code":"140725","name":"寿阳县"},{"code":"140727","name":"祁县"},{"code":"140728","name":"平遥县"},{"code":"140729","name":"灵石县"},{"code":"140781","name":"介休市"}]},{"code":"1408","name":"运城市","children":[{"code":"140802","name":"盐湖区"},{"code":"140821","name":"临猗县"},{"code":"140822","name":"万荣县"},{"code":"140823","name":"闻喜县"},{"code":"140824","name":"稷山县"},{"code":"140825","name":"新绛县"},{"code":"140826","name":"绛县"},{"code":"140827","name":"垣曲县"},{"code":"140828","name":"夏县"},{"code":"140829","name":"平陆县"},{"code":"140830","name":"芮城县"},{"code":"140881","name":"永济市"},{"code":"140882","name":"河津市"}]},{"code":"1409","name":"忻州市","children":[{"code":"140902","name":"忻府区"},{"code":"140921","name":"定襄县"},{"code":"140922","name":"五台县"},{"code":"140923","name":"代县"},{"code":"140924","name":"繁峙县"},{"code":"140925","name":"宁武县"},{"code":"140926","name":"静乐县"},{"code":"140927","name":"神池县"},{"code":"140928","name":"五寨县"},{"code":"140929","name":"岢岚县"},{"code":"140930","name":"河曲县"},{"code":"140931","name":"保德县"},{"code":"140932","name":"偏关县"},{"code":"140971","name":"五台山风景名胜区"},{"code":"140981","name":"原平市"}]},{"code":"1410","name":"临汾市","children":[{"code":"141002","name":"尧都区"},{"code":"141021","name":"曲沃县"},{"code":"141022","name":"翼城县"},{"code":"141023","name":"襄汾县"},{"code":"141024","name":"洪洞县"},{"code":"141025","name":"古县"},{"code":"141026","name":"安泽县"},{"code":"141027","name":"浮山县"},{"code":"141028","name":"吉县"},{"code":"141029","name":"乡宁县"},{"code":"141030","name":"大宁县"},{"code":"141031","name":"隰县"},{"code":"141032","name":"永和县"},{"code":"141033","name":"蒲县"},{"code":"141034","name":"汾西县"},{"code":"141081","name":"侯马市"},{"code":"141082","name":"霍州市"}]},{"code":"1411","name":"吕梁市","children":[{"code":"141102","name":"离石区"},{"code":"141121","name":"文水县"},{"code":"141122","name":"交城县"},{"code":"141123","name":"兴县"},{"code":"141124","name":"临县"},{"code":"141125","name":"柳林县"},{"code":"141126","name":"石楼县"},{"code":"141127","name":"岚县"},{"code":"141128","name":"方山县"},{"code":"141129","name":"中阳县"},{"code":"141130","name":"交口县"},{"code":"141181","name":"孝义市"},{"code":"141182","name":"汾阳市"}]}]},{"code":"15","name":"内蒙古自治区","children":[{"code":"1501","name":"呼和浩特市","children":[{"code":"150102","name":"新城区"},{"code":"150103","name":"回民区"},{"code":"150104","name":"玉泉区"},{"code":"150105","name":"赛罕区"},{"code":"150121","name":"土默特左旗"},{"code":"150122","name":"托克托县"},{"code":"150123","name":"和林格尔县"},{"code":"150124","name":"清水河县"},{"code":"150125","name":"武川县"},{"code":"150172","name":"呼和浩特经济技术开发区"}]},{"code":"1502","name":"包头市","children":[{"code":"150202","name":"东河区"},{"code":"150203","name":"昆都仑区"},{"code":"150204","name":"青山区"},{"code":"150205","name":"石拐区"},{"code":"150206","name":"白云鄂博矿区"},{"code":"150207","name":"九原区"},{"code":"150221","name":"土默特右旗"},{"code":"150222","name":"固阳县"},{"code":"150223","name":"达尔罕茂明安联合旗"},{"code":"150271","name":"包头稀土高新技术产业开发区"}]},{"code":"1503","name":"乌海市","children":[{"code":"150302","name":"海勃湾区"},{"code":"150303","name":"海南区"},{"code":"150304","name":"乌达区"}]},{"code":"1504","name":"赤峰市","children":[{"code":"150402","name":"红山区"},{"code":"150403","name":"元宝山区"},{"code":"150404","name":"松山区"},{"code":"150421","name":"阿鲁科尔沁旗"},{"code":"150422","name":"巴林左旗"},{"code":"150423","name":"巴林右旗"},{"code":"150424","name":"林西县"},{"code":"150425","name":"克什克腾旗"},{"code":"150426","name":"翁牛特旗"},{"code":"150428","name":"喀喇沁旗"},{"code":"150429","name":"宁城县"},{"code":"150430","name":"敖汉旗"}]},{"code":"1505","name":"通辽市","children":[{"code":"150502","name":"科尔沁区"},{"code":"150521","name":"科尔沁左翼中旗"},{"code":"150522","name":"科尔沁左翼后旗"},{"code":"150523","name":"开鲁县"},{"code":"150524","name":"库伦旗"},{"code":"150525","name":"奈曼旗"},{"code":"150526","name":"扎鲁特旗"},{"code":"150571","name":"通辽经济技术开发区"},{"code":"150581","name":"霍林郭勒市"}]},{"code":"1506","name":"鄂尔多斯市","children":[{"code":"150602","name":"东胜区"},{"code":"150603","name":"康巴什区"},{"code":"150621","name":"达拉特旗"},{"code":"150622","name":"准格尔旗"},{"code":"150623","name":"鄂托克前旗"},{"code":"150624","name":"鄂托克旗"},{"code":"150625","name":"杭锦旗"},{"code":"150626","name":"乌审旗"},{"code":"150627","name":"伊金霍洛旗"}]},{"code":"1507","name":"呼伦贝尔市","children":[{"code":"150702","name":"海拉尔区"},{"code":"150703","name":"扎赉诺尔区"},{"code":"150721","name":"阿荣旗"},{"code":"150722","name":"莫力达瓦达斡尔族自治旗"},{"code":"150723","name":"鄂伦春自治旗"},{"code":"150724","name":"鄂温克族自治旗"},{"code":"150725","name":"陈巴尔虎旗"},{"code":"150726","name":"新巴尔虎左旗"},{"code":"150727","name":"新巴尔虎右旗"},{"code":"150781","name":"满洲里市"},{"code":"150782","name":"牙克石市"},{"code":"150783","name":"扎兰屯市"},{"code":"150784","name":"额尔古纳市"},{"code":"150785","name":"根河市"}]},{"code":"1508","name":"巴彦淖尔市","children":[{"code":"150802","name":"临河区"},{"code":"150821","name":"五原县"},{"code":"150822","name":"磴口县"},{"code":"150823","name":"乌拉特前旗"},{"code":"150824","name":"乌拉特中旗"},{"code":"150825","name":"乌拉特后旗"},{"code":"150826","name":"杭锦后旗"}]},{"code":"1509","name":"乌兰察布市","children":[{"code":"150902","name":"集宁区"},{"code":"150921","name":"卓资县"},{"code":"150922","name":"化德县"},{"code":"150923","name":"商都县"},{"code":"150924","name":"兴和县"},{"code":"150925","name":"凉城县"},{"code":"150926","name":"察哈尔右翼前旗"},{"code":"150927","name":"察哈尔右翼中旗"},{"code":"150928","name":"察哈尔右翼后旗"},{"code":"150929","name":"四子王旗"},{"code":"150981","name":"丰镇市"}]},{"code":"1522","name":"兴安盟","children":[{"code":"152201","name":"乌兰浩特市"},{"code":"152202","name":"阿尔山市"},{"code":"152221","name":"科尔沁右翼前旗"},{"code":"152222","name":"科尔沁右翼中旗"},{"code":"152223","name":"扎赉特旗"},{"code":"152224","name":"突泉县"}]},{"code":"1525","name":"锡林郭勒盟","children":[{"code":"152501","name":"二连浩特市"},{"code":"152502","name":"锡林浩特市"},{"code":"152522","name":"阿巴嘎旗"},{"code":"152523","name":"苏尼特左旗"},{"code":"152524","name":"苏尼特右旗"},{"code":"152525","name":"东乌珠穆沁旗"},{"code":"152526","name":"西乌珠穆沁旗"},{"code":"152527","name":"太仆寺旗"},{"code":"152528","name":"镶黄旗"},{"code":"152529","name":"正镶白旗"},{"code":"152530","name":"正蓝旗"},{"code":"152531","name":"多伦县"},{"code":"152571","name":"乌拉盖管理区管委会"}]},{"code":"1529","name":"阿拉善盟","children":[{"code":"152921","name":"阿拉善左旗"},{"code":"152922","name":"阿拉善右旗"},{"code":"152923","name":"额济纳旗"},{"code":"152971","name":"内蒙古阿拉善高新技术产业开发区"}]}]},{"code":"21","name":"辽宁省","children":[{"code":"2101","name":"沈阳市","children":[{"code":"210102","name":"和平区"},{"code":"210103","name":"沈河区"},{"code":"210104","name":"大东区"},{"code":"210105","name":"皇姑区"},{"code":"210106","name":"铁西区"},{"code":"210111","name":"苏家屯区"},{"code":"210112","name":"浑南区"},{"code":"210113","name":"沈北新区"},{"code":"210114","name":"于洪区"},{"code":"210115","name":"辽中区"},{"code":"210123","name":"康平县"},{"code":"210124","name":"法库县"},{"code":"210181","name":"新民市"}]},{"code":"2102","name":"大连市","children":[{"code":"210202","name":"中山区"},{"code":"210203","name":"西岗区"},{"code":"210204","name":"沙河口区"},{"code":"210211","name":"甘井子区"},{"code":"210212","name":"旅顺口区"},{"code":"210213","name":"金州区"},{"code":"210214","name":"普兰店区"},{"code":"210224","name":"长海县"},{"code":"210281","name":"瓦房店市"},{"code":"210283","name":"庄河市"}]},{"code":"2103","name":"鞍山市","children":[{"code":"210302","name":"铁东区"},{"code":"210303","name":"铁西区"},{"code":"210304","name":"立山区"},{"code":"210311","name":"千山区"},{"code":"210321","name":"台安县"},{"code":"210323","name":"岫岩满族自治县"},{"code":"210381","name":"海城市"}]},{"code":"2104","name":"抚顺市","children":[{"code":"210402","name":"新抚区"},{"code":"210403","name":"东洲区"},{"code":"210404","name":"望花区"},{"code":"210411","name":"顺城区"},{"code":"210421","name":"抚顺县"},{"code":"210422","name":"新宾满族自治县"},{"code":"210423","name":"清原满族自治县"}]},{"code":"2105","name":"本溪市","children":[{"code":"210502","name":"平山区"},{"code":"210503","name":"溪湖区"},{"code":"210504","name":"明山区"},{"code":"210505","name":"南芬区"},{"code":"210521","name":"本溪满族自治县"},{"code":"210522","name":"桓仁满族自治县"}]},{"code":"2106","name":"丹东市","children":[{"code":"210602","name":"元宝区"},{"code":"210603","name":"振兴区"},{"code":"210604","name":"振安区"},{"code":"210624","name":"宽甸满族自治县"},{"code":"210681","name":"东港市"},{"code":"210682","name":"凤城市"}]},{"code":"2107","name":"锦州市","children":[{"code":"210702","name":"古塔区"},{"code":"210703","name":"凌河区"},{"code":"210711","name":"太和区"},{"code":"210726","name":"黑山县"},{"code":"210727","name":"义县"},{"code":"210781","name":"凌海市"},{"code":"210782","name":"北镇市"}]},{"code":"2108","name":"营口市","children":[{"code":"210802","name":"站前区"},{"code":"210803","name":"西市区"},{"code":"210804","name":"鲅鱼圈区"},{"code":"210811","name":"老边区"},{"code":"210881","name":"盖州市"},{"code":"210882","name":"大石桥市"}]},{"code":"2109","name":"阜新市","children":[{"code":"210902","name":"海州区"},{"code":"210903","name":"新邱区"},{"code":"210904","name":"太平区"},{"code":"210905","name":"清河门区"},{"code":"210911","name":"细河区"},{"code":"210921","name":"阜新蒙古族自治县"},{"code":"210922","name":"彰武县"}]},{"code":"2110","name":"辽阳市","children":[{"code":"211002","name":"白塔区"},{"code":"211003","name":"文圣区"},{"code":"211004","name":"宏伟区"},{"code":"211005","name":"弓长岭区"},{"code":"211011","name":"太子河区"},{"code":"211021","name":"辽阳县"},{"code":"211081","name":"灯塔市"}]},{"code":"2111","name":"盘锦市","children":[{"code":"211102","name":"双台子区"},{"code":"211103","name":"兴隆台区"},{"code":"211104","name":"大洼区"},{"code":"211122","name":"盘山县"}]},{"code":"2112","name":"铁岭市","children":[{"code":"211202","name":"银州区"},{"code":"211204","name":"清河区"},{"code":"211221","name":"铁岭县"},{"code":"211223","name":"西丰县"},{"code":"211224","name":"昌图县"},{"code":"211281","name":"调兵山市"},{"code":"211282","name":"开原市"}]},{"code":"2113","name":"朝阳市","children":[{"code":"211302","name":"双塔区"},{"code":"211303","name":"龙城区"},{"code":"211321","name":"朝阳县"},{"code":"211322","name":"建平县"},{"code":"211324","name":"喀喇沁左翼蒙古族自治县"},{"code":"211381","name":"北票市"},{"code":"211382","name":"凌源市"}]},{"code":"2114","name":"葫芦岛市","children":[{"code":"211402","name":"连山区"},{"code":"211403","name":"龙港区"},{"code":"211404","name":"南票区"},{"code":"211421","name":"绥中县"},{"code":"211422","name":"建昌县"},{"code":"211481","name":"兴城市"}]}]},{"code":"22","name":"吉林省","children":[{"code":"2201","name":"长春市","children":[{"code":"220102","name":"南关区"},{"code":"220103","name":"宽城区"},{"code":"220104","name":"朝阳区"},{"code":"220105","name":"二道区"},{"code":"220106","name":"绿园区"},{"code":"220112","name":"双阳区"},{"code":"220113","name":"九台区"},{"code":"220122","name":"农安县"},{"code":"220171","name":"长春经济技术开发区"},{"code":"220172","name":"长春净月高新技术产业开发区"},{"code":"220173","name":"长春高新技术产业开发区"},{"code":"220174","name":"长春汽车经济技术开发区"},{"code":"220182","name":"榆树市"},{"code":"220183","name":"德惠市"},{"code":"220184","name":"公主岭市"}]},{"code":"2202","name":"吉林市","children":[{"code":"220202","name":"昌邑区"},{"code":"220203","name":"龙潭区"},{"code":"220204","name":"船营区"},{"code":"220211","name":"丰满区"},{"code":"220221","name":"永吉县"},{"code":"220271","name":"吉林经济开发区"},{"code":"220272","name":"吉林高新技术产业开发区"},{"code":"220273","name":"吉林中国新加坡食品区"},{"code":"220281","name":"蛟河市"},{"code":"220282","name":"桦甸市"},{"code":"220283","name":"舒兰市"},{"code":"220284","name":"磐石市"}]},{"code":"2203","name":"四平市","children":[{"code":"220302","name":"铁西区"},{"code":"220303","name":"铁东区"},{"code":"220322","name":"梨树县"},{"code":"220323","name":"伊通满族自治县"},{"code":"220382","name":"双辽市"}]},{"code":"2204","name":"辽源市","children":[{"code":"220402","name":"龙山区"},{"code":"220403","name":"西安区"},{"code":"220421","name":"东丰县"},{"code":"220422","name":"东辽县"}]},{"code":"2205","name":"通化市","children":[{"code":"220502","name":"东昌区"},{"code":"220503","name":"二道江区"},{"code":"220521","name":"通化县"},{"code":"220523","name":"辉南县"},{"code":"220524","name":"柳河县"},{"code":"220581","name":"梅河口市"},{"code":"220582","name":"集安市"}]},{"code":"2206","name":"白山市","children":[{"code":"220602","name":"浑江区"},{"code":"220605","name":"江源区"},{"code":"220621","name":"抚松县"},{"code":"220622","name":"靖宇县"},{"code":"220623","name":"长白朝鲜族自治县"},{"code":"220681","name":"临江市"}]},{"code":"2207","name":"松原市","children":[{"code":"220702","name":"宁江区"},{"code":"220721","name":"前郭尔罗斯蒙古族自治县"},{"code":"220722","name":"长岭县"},{"code":"220723","name":"乾安县"},{"code":"220771","name":"吉林松原经济开发区"},{"code":"220781","name":"扶余市"}]},{"code":"2208","name":"白城市","children":[{"code":"220802","name":"洮北区"},{"code":"220821","name":"镇赉县"},{"code":"220822","name":"通榆县"},{"code":"220871","name":"吉林白城经济开发区"},{"code":"220881","name":"洮南市"},{"code":"220882","name":"大安市"}]},{"code":"2224","name":"延边朝鲜族自治州","children":[{"code":"222401","name":"延吉市"},{"code":"222402","name":"图们市"},{"code":"222403","name":"敦化市"},{"code":"222404","name":"珲春市"},{"code":"222405","name":"龙井市"},{"code":"222406","name":"和龙市"},{"code":"222424","name":"汪清县"},{"code":"222426","name":"安图县"}]}]},{"code":"23","name":"黑龙江省","children":[{"code":"2301","name":"哈尔滨市","children":[{"code":"230102","name":"道里区"},{"code":"230103","name":"南岗区"},{"code":"230104","name":"道外区"},{"code":"230108","name":"平房区"},{"code":"230109","name":"松北区"},{"code":"230110","name":"香坊区"},{"code":"230111","name":"呼兰区"},{"code":"230112","name":"阿城区"},{"code":"230113","name":"双城区"},{"code":"230123","name":"依兰县"},{"code":"230124","name":"方正县"},{"code":"230125","name":"宾县"},{"code":"230126","name":"巴彦县"},{"code":"230127","name":"木兰县"},{"code":"230128","name":"通河县"},{"code":"230129","name":"延寿县"},{"code":"230183","name":"尚志市"},{"code":"230184","name":"五常市"}]},{"code":"2302","name":"齐齐哈尔市","children":[{"code":"230202","name":"龙沙区"},{"code":"230203","name":"建华区"},{"code":"230204","name":"铁锋区"},{"code":"230205","name":"昂昂溪区"},{"code":"230206","name":"富拉尔基区"},{"code":"230207","name":"碾子山区"},{"code":"230208","name":"梅里斯达斡尔族区"},{"code":"230221","name":"龙江县"},{"code":"230223","name":"依安县"},{"code":"230224","name":"泰来县"},{"code":"230225","name":"甘南县"},{"code":"230227","name":"富裕县"},{"code":"230229","name":"克山县"},{"code":"230230","name":"克东县"},{"code":"230231","name":"拜泉县"},{"code":"230281","name":"讷河市"}]},{"code":"2303","name":"鸡西市","children":[{"code":"230302","name":"鸡冠区"},{"code":"230303","name":"恒山区"},{"code":"230304","name":"滴道区"},{"code":"230305","name":"梨树区"},{"code":"230306","name":"城子河区"},{"code":"230307","name":"麻山区"},{"code":"230321","name":"鸡东县"},{"code":"230381","name":"虎林市"},{"code":"230382","name":"密山市"}]},{"code":"2304","name":"鹤岗市","children":[{"code":"230402","name":"向阳区"},{"code":"230403","name":"工农区"},{"code":"230404","name":"南山区"},{"code":"230405","name":"兴安区"},{"code":"230406","name":"东山区"},{"code":"230407","name":"兴山区"},{"code":"230421","name":"萝北县"},{"code":"230422","name":"绥滨县"}]},{"code":"2305","name":"双鸭山市","children":[{"code":"230502","name":"尖山区"},{"code":"230503","name":"岭东区"},{"code":"230505","name":"四方台区"},{"code":"230506","name":"宝山区"},{"code":"230521","name":"集贤县"},{"code":"230522","name":"友谊县"},{"code":"230523","name":"宝清县"},{"code":"230524","name":"饶河县"}]},{"code":"2306","name":"大庆市","children":[{"code":"230602","name":"萨尔图区"},{"code":"230603","name":"龙凤区"},{"code":"230604","name":"让胡路区"},{"code":"230605","name":"红岗区"},{"code":"230606","name":"大同区"},{"code":"230621","name":"肇州县"},{"code":"230622","name":"肇源县"},{"code":"230623","name":"林甸县"},{"code":"230624","name":"杜尔伯特蒙古族自治县"},{"code":"230671","name":"大庆高新技术产业开发区"}]},{"code":"2307","name":"伊春市","children":[{"code":"230717","name":"伊美区"},{"code":"230718","name":"乌翠区"},{"code":"230719","name":"友好区"},{"code":"230722","name":"嘉荫县"},{"code":"230723","name":"汤旺县"},{"code":"230724","name":"丰林县"},{"code":"230725","name":"大箐山县"},{"code":"230726","name":"南岔县"},{"code":"230751","name":"金林区"},{"code":"230781","name":"铁力市"}]},{"code":"2308","name":"佳木斯市","children":[{"code":"230803","name":"向阳区"},{"code":"230804","name":"前进区"},{"code":"230805","name":"东风区"},{"code":"230811","name":"郊区"},{"code":"230822","name":"桦南县"},{"code":"230826","name":"桦川县"},{"code":"230828","name":"汤原县"},{"code":"230881","name":"同江市"},{"code":"230882","name":"富锦市"},{"code":"230883","name":"抚远市"}]},{"code":"2309","name":"七台河市","children":[{"code":"230902","name":"新兴区"},{"code":"230903","name":"桃山区"},{"code":"230904","name":"茄子河区"},{"code":"230921","name":"勃利县"}]},{"code":"2310","name":"牡丹江市","children":[{"code":"231002","name":"东安区"},{"code":"231003","name":"阳明区"},{"code":"231004","name":"爱民区"},{"code":"231005","name":"西安区"},{"code":"231025","name":"林口县"},{"code":"231081","name":"绥芬河市"},{"code":"231083","name":"海林市"},{"code":"231084","name":"宁安市"},{"code":"231085","name":"穆棱市"},{"code":"231086","name":"东宁市"}]},{"code":"2311","name":"黑河市","children":[{"code":"231102","name":"爱辉区"},{"code":"231123","name":"逊克县"},{"code":"231124","name":"孙吴县"},{"code":"231181","name":"北安市"},{"code":"231182","name":"五大连池市"},{"code":"231183","name":"嫩江市"}]},{"code":"2312","name":"绥化市","children":[{"code":"231202","name":"北林区"},{"code":"231221","name":"望奎县"},{"code":"231222","name":"兰西县"},{"code":"231223","name":"青冈县"},{"code":"231224","name":"庆安县"},{"code":"231225","name":"明水县"},{"code":"231226","name":"绥棱县"},{"code":"231281","name":"安达市"},{"code":"231282","name":"肇东市"},{"code":"231283","name":"海伦市"}]},{"code":"2327","name":"大兴安岭地区","children":[{"code":"232701","name":"漠河市"},{"code":"232721","name":"呼玛县"},{"code":"232722","name":"塔河县"},{"code":"232761","name":"加格达奇区"},{"code":"232762","name":"松岭区"},{"code":"232763","name":"新林区"},{"code":"232764","name":"呼中区"}]}]},{"code":"31","name":"上海市","children":[{"code":"3101","name":"市辖区","children":[{"code":"310101","name":"黄浦区"},{"code":"310104","name":"徐汇区"},{"code":"310105","name":"长宁区"},{"code":"310106","name":"静安区"},{"code":"310107","name":"普陀区"},{"code":"310109","name":"虹口区"},{"code":"310110","name":"杨浦区"},{"code":"310112","name":"闵行区"},{"code":"310113","name":"宝山区"},{"code":"310114","name":"嘉定区"},{"code":"310115","name":"浦东新区"},{"code":"310116","name":"金山区"},{"code":"310117","name":"松江区"},{"code":"310118","name":"青浦区"},{"code":"310120","name":"奉贤区"},{"code":"310151","name":"崇明区"}]}]},{"code":"32","name":"江苏省","children":[{"code":"3201","name":"南京市","children":[{"code":"320102","name":"玄武区"},{"code":"320104","name":"秦淮区"},{"code":"320105","name":"建邺区"},{"code":"320106","name":"鼓楼区"},{"code":"320111","name":"浦口区"},{"code":"320113","name":"栖霞区"},{"code":"320114","name":"雨花台区"},{"code":"320115","name":"江宁区"},{"code":"320116","name":"六合区"},{"code":"320117","name":"溧水区"},{"code":"320118","name":"高淳区"}]},{"code":"3202","name":"无锡市","children":[{"code":"320205","name":"锡山区"},{"code":"320206","name":"惠山区"},{"code":"320211","name":"滨湖区"},{"code":"320213","name":"梁溪区"},{"code":"320214","name":"新吴区"},{"code":"320281","name":"江阴市"},{"code":"320282","name":"宜兴市"}]},{"code":"3203","name":"徐州市","children":[{"code":"320302","name":"鼓楼区"},{"code":"320303","name":"云龙区"},{"code":"320305","name":"贾汪区"},{"code":"320311","name":"泉山区"},{"code":"320312","name":"铜山区"},{"code":"320321","name":"丰县"},{"code":"320322","name":"沛县"},{"code":"320324","name":"睢宁县"},{"code":"320371","name":"徐州经济技术开发区"},{"code":"320381","name":"新沂市"},{"code":"320382","name":"邳州市"}]},{"code":"3204","name":"常州市","children":[{"code":"320402","name":"天宁区"},{"code":"320404","name":"钟楼区"},{"code":"320411","name":"新北区"},{"code":"320412","name":"武进区"},{"code":"320413","name":"金坛区"},{"code":"320481","name":"溧阳市"}]},{"code":"3205","name":"苏州市","children":[{"code":"320505","name":"虎丘区"},{"code":"320506","name":"吴中区"},{"code":"320507","name":"相城区"},{"code":"320508","name":"姑苏区"},{"code":"320509","name":"吴江区"},{"code":"320576","name":"苏州工业园区"},{"code":"320581","name":"常熟市"},{"code":"320582","name":"张家港市"},{"code":"320583","name":"昆山市"},{"code":"320585","name":"太仓市"}]},{"code":"3206","name":"南通市","children":[{"code":"320612","name":"通州区"},{"code":"320613","name":"崇川区"},{"code":"320614","name":"海门区"},{"code":"320623","name":"如东县"},{"code":"320671","name":"南通经济技术开发区"},{"code":"320681","name":"启东市"},{"code":"320682","name":"如皋市"},{"code":"320685","name":"海安市"}]},{"code":"3207","name":"连云港市","children":[{"code":"320703","name":"连云区"},{"code":"320706","name":"海州区"},{"code":"320707","name":"赣榆区"},{"code":"320722","name":"东海县"},{"code":"320723","name":"灌云县"},{"code":"320724","name":"灌南县"},{"code":"320771","name":"连云港经济技术开发区"}]},{"code":"3208","name":"淮安市","children":[{"code":"320803","name":"淮安区"},{"code":"320804","name":"淮阴区"},{"code":"320812","name":"清江浦区"},{"code":"320813","name":"洪泽区"},{"code":"320826","name":"涟水县"},{"code":"320830","name":"盱眙县"},{"code":"320831","name":"金湖县"},{"code":"320871","name":"淮安经济技术开发区"}]},{"code":"3209","name":"盐城市","children":[{"code":"320902","name":"亭湖区"},{"code":"320903","name":"盐都区"},{"code":"320904","name":"大丰区"},{"code":"320921","name":"响水县"},{"code":"320922","name":"滨海县"},{"code":"320923","name":"阜宁县"},{"code":"320924","name":"射阳县"},{"code":"320925","name":"建湖县"},{"code":"320971","name":"盐城经济技术开发区"},{"code":"320981","name":"东台市"}]},{"code":"3210","name":"扬州市","children":[{"code":"321002","name":"广陵区"},{"code":"321003","name":"邗江区"},{"code":"321012","name":"江都区"},{"code":"321023","name":"宝应县"},{"code":"321071","name":"扬州经济技术开发区"},{"code":"321081","name":"仪征市"},{"code":"321084","name":"高邮市"}]},{"code":"3211","name":"镇江市","children":[{"code":"321102","name":"京口区"},{"code":"321111","name":"润州区"},{"code":"321112","name":"丹徒区"},{"code":"321171","name":"镇江新区"},{"code":"321181","name":"丹阳市"},{"code":"321182","name":"扬中市"},{"code":"321183","name":"句容市"}]},{"code":"3212","name":"泰州市","children":[{"code":"321202","name":"海陵区"},{"code":"321203","name":"高港区"},{"code":"321204","name":"姜堰区"},{"code":"321281","name":"兴化市"},{"code":"321282","name":"靖江市"},{"code":"321283","name":"泰兴市"}]},{"code":"3213","name":"宿迁市","children":[{"code":"321302","name":"宿城区"},{"code":"321311","name":"宿豫区"},{"code":"321322","name":"沭阳县"},{"code":"321323","name":"泗阳县"},{"code":"321324","name":"泗洪县"},{"code":"321371","name":"宿迁经济技术开发区"}]}]},{"code":"33","name":"浙江省","children":[{"code":"3301","name":"杭州市","children":[{"code":"330102","name":"上城区"},{"code":"330105","name":"拱墅区"},{"code":"330106","name":"西湖区"},{"code":"330108","name":"滨江区"},{"code":"330109","name":"萧山区"},{"code":"330110","name":"余杭区"},{"code":"330111","name":"富阳区"},{"code":"330112","name":"临安区"},{"code":"330113","name":"临平区"},{"code":"330114","name":"钱塘区"},{"code":"330122","name":"桐庐县"},{"code":"330127","name":"淳安县"},{"code":"330182","name":"建德市"}]},{"code":"3302","name":"宁波市","children":[{"code":"330203","name":"海曙区"},{"code":"330205","name":"江北区"},{"code":"330206","name":"北仑区"},{"code":"330211","name":"镇海区"},{"code":"330212","name":"鄞州区"},{"code":"330213","name":"奉化区"},{"code":"330225","name":"象山县"},{"code":"330226","name":"宁海县"},{"code":"330281","name":"余姚市"},{"code":"330282","name":"慈溪市"}]},{"code":"3303","name":"温州市","children":[{"code":"330302","name":"鹿城区"},{"code":"330303","name":"龙湾区"},{"code":"330304","name":"瓯海区"},{"code":"330305","name":"洞头区"},{"code":"330324","name":"永嘉县"},{"code":"330326","name":"平阳县"},{"code":"330327","name":"苍南县"},{"code":"330328","name":"文成县"},{"code":"330329","name":"泰顺县"},{"code":"330381","name":"瑞安市"},{"code":"330382","name":"乐清市"},{"code":"330383","name":"龙港市"}]},{"code":"3304","name":"嘉兴市","children":[{"code":"330402","name":"南湖区"},{"code":"330411","name":"秀洲区"},{"code":"330421","name":"嘉善县"},{"code":"330424","name":"海盐县"},{"code":"330481","name":"海宁市"},{"code":"330482","name":"平湖市"},{"code":"330483","name":"桐乡市"}]},{"code":"3305","name":"湖州市","children":[{"code":"330502","name":"吴兴区"},{"code":"330503","name":"南浔区"},{"code":"330521","name":"德清县"},{"code":"330522","name":"长兴县"},{"code":"330523","name":"安吉县"}]},{"code":"3306","name":"绍兴市","children":[{"code":"330602","name":"越城区"},{"code":"330603","name":"柯桥区"},{"code":"330604","name":"上虞区"},{"code":"330624","name":"新昌县"},{"code":"330681","name":"诸暨市"},{"code":"330683","name":"嵊州市"}]},{"code":"3307","name":"金华市","children":[{"code":"330702","name":"婺城区"},{"code":"330703","name":"金东区"},{"code":"330723","name":"武义县"},{"code":"330726","name":"浦江县"},{"code":"330727","name":"磐安县"},{"code":"330781","name":"兰溪市"},{"code":"330782","name":"义乌市"},{"code":"330783","name":"东阳市"},{"code":"330784","name":"永康市"}]},{"code":"3308","name":"衢州市","children":[{"code":"330802","name":"柯城区"},{"code":"330803","name":"衢江区"},{"code":"330822","name":"常山县"},{"code":"330824","name":"开化县"},{"code":"330825","name":"龙游县"},{"code":"330881","name":"江山市"}]},{"code":"3309","name":"舟山市","children":[{"code":"330902","name":"定海区"},{"code":"330903","name":"普陀区"},{"code":"330921","name":"岱山县"},{"code":"330922","name":"嵊泗县"}]},{"code":"3310","name":"台州市","children":[{"code":"331002","name":"椒江区"},{"code":"331003","name":"黄岩区"},{"code":"331004","name":"路桥区"},{"code":"331022","name":"三门县"},{"code":"331023","name":"天台县"},{"code":"331024","name":"仙居县"},{"code":"331081","name":"温岭市"},{"code":"331082","name":"临海市"},{"code":"331083","name":"玉环市"}]},{"code":"3311","name":"丽水市","children":[{"code":"331102","name":"莲都区"},{"code":"331121","name":"青田县"},{"code":"331122","name":"缙云县"},{"code":"331123","name":"遂昌县"},{"code":"331124","name":"松阳县"},{"code":"331125","name":"云和县"},{"code":"331126","name":"庆元县"},{"code":"331127","name":"景宁畲族自治县"},{"code":"331181","name":"龙泉市"}]}]},{"code":"34","name":"安徽省","children":[{"code":"3401","name":"合肥市","children":[{"code":"340102","name":"瑶海区"},{"code":"340103","name":"庐阳区"},{"code":"340104","name":"蜀山区"},{"code":"340111","name":"包河区"},{"code":"340121","name":"长丰县"},{"code":"340122","name":"肥东县"},{"code":"340123","name":"肥西县"},{"code":"340124","name":"庐江县"},{"code":"340176","name":"合肥高新技术产业开发区"},{"code":"340177","name":"合肥经济技术开发区"},{"code":"340178","name":"合肥新站高新技术产业开发区"},{"code":"340181","name":"巢湖市"}]},{"code":"3402","name":"芜湖市","children":[{"code":"340202","name":"镜湖区"},{"code":"340207","name":"鸠江区"},{"code":"340209","name":"弋江区"},{"code":"340210","name":"湾沚区"},{"code":"340212","name":"繁昌区"},{"code":"340223","name":"南陵县"},{"code":"340271","name":"芜湖经济技术开发区"},{"code":"340272","name":"安徽芜湖三山经济开发区"},{"code":"340281","name":"无为市"}]},{"code":"3403","name":"蚌埠市","children":[{"code":"340302","name":"龙子湖区"},{"code":"340303","name":"蚌山区"},{"code":"340304","name":"禹会区"},{"code":"340311","name":"淮上区"},{"code":"340321","name":"怀远县"},{"code":"340322","name":"五河县"},{"code":"340323","name":"固镇县"},{"code":"340371","name":"蚌埠市高新技术开发区"},{"code":"340372","name":"蚌埠市经济开发区"}]},{"code":"3404","name":"淮南市","children":[{"code":"340402","name":"大通区"},{"code":"340403","name":"田家庵区"},{"code":"340404","name":"谢家集区"},{"code":"340405","name":"八公山区"},{"code":"340406","name":"潘集区"},{"code":"340421","name":"凤台县"},{"code":"340422","name":"寿县"}]},{"code":"3405","name":"马鞍山市","children":[{"code":"340503","name":"花山区"},{"code":"340504","name":"雨山区"},{"code":"340506","name":"博望区"},{"code":"340521","name":"当涂县"},{"code":"340522","name":"含山县"},{"code":"340523","name":"和县"}]},{"code":"3406","name":"淮北市","children":[{"code":"340602","name":"杜集区"},{"code":"340603","name":"相山区"},{"code":"340604","name":"烈山区"},{"code":"340621","name":"濉溪县"}]},{"code":"3407","name":"铜陵市","children":[{"code":"340705","name":"铜官区"},{"code":"340706","name":"义安区"},{"code":"340711","name":"郊区"},{"code":"340722","name":"枞阳县"}]},{"code":"3408","name":"安庆市","children":[{"code":"340802","name":"迎江区"},{"code":"340803","name":"大观区"},{"code":"340811","name":"宜秀区"},{"code":"340822","name":"怀宁县"},{"code":"340825","name":"太湖县"},{"code":"340826","name":"宿松县"},{"code":"340827","name":"望江县"},{"code":"340828","name":"岳西县"},{"code":"340871","name":"安徽安庆经济开发区"},{"code":"340881","name":"桐城市"},{"code":"340882","name":"潜山市"}]},{"code":"3410","name":"黄山市","children":[{"code":"341002","name":"屯溪区"},{"code":"341003","name":"黄山区"},{"code":"341004","name":"徽州区"},{"code":"341021","name":"歙县"},{"code":"341022","name":"休宁县"},{"code":"341023","name":"黟县"},{"code":"341024","name":"祁门县"}]},{"code":"3411","name":"滁州市","children":[{"code":"341102","name":"琅琊区"},{"code":"341103","name":"南谯区"},{"code":"341122","name":"来安县"},{"code":"341124","name":"全椒县"},{"code":"341125","name":"定远县"},{"code":"341126","name":"凤阳县"},{"code":"341171","name":"中新苏滁高新技术产业开发区"},{"code":"341172","name":"滁州经济技术开发区"},{"code":"341181","name":"天长市"},{"code":"341182","name":"明光市"}]},{"code":"3412","name":"阜阳市","children":[{"code":"341202","name":"颍州区"},{"code":"341203","name":"颍东区"},{"code":"341204","name":"颍泉区"},{"code":"341221","name":"临泉县"},{"code":"341222","name":"太和县"},{"code":"341225","name":"阜南县"},{"code":"341226","name":"颍上县"},{"code":"341271","name":"阜阳合肥现代产业园区"},{"code":"341272","name":"阜阳经济技术开发区"},{"code":"341282","name":"界首市"}]},{"code":"3413","name":"宿州市","children":[{"code":"341302","name":"埇桥区"},{"code":"341321","name":"砀山县"},{"code":"341322","name":"萧县"},{"code":"341323","name":"灵璧县"},{"code":"341324","name":"泗县"},{"code":"341371","name":"宿州马鞍山现代产业园区"},{"code":"341372","name":"宿州经济技术开发区"}]},{"code":"3415","name":"六安市","children":[{"code":"341502","name":"金安区"},{"code":"341503","name":"裕安区"},{"code":"341504","name":"叶集区"},{"code":"341522","name":"霍邱县"},{"code":"341523","name":"舒城县"},{"code":"341524","name":"金寨县"},{"code":"341525","name":"霍山县"}]},{"code":"3416","name":"亳州市","children":[{"code":"341602","name":"谯城区"},{"code":"341621","name":"涡阳县"},{"code":"341622","name":"蒙城县"},{"code":"341623","name":"利辛县"}]},{"code":"3417","name":"池州市","children":[{"code":"341702","name":"贵池区"},{"code":"341721","name":"东至县"},{"code":"341722","name":"石台县"},{"code":"341723","name":"青阳县"}]},{"code":"3418","name":"宣城市","children":[{"code":"341802","name":"宣州区"},{"code":"341821","name":"郎溪县"},{"code":"341823","name":"泾县"},{"code":"341824","name":"绩溪县"},{"code":"341825","name":"旌德县"},{"code":"341871","name":"宣城市经济开发区"},{"code":"341881","name":"宁国市"},{"code":"341882","name":"广德市"}]}]},{"code":"35","name":"福建省","children":[{"code":"3501","name":"福州市","children":[{"code":"350102","name":"鼓楼区"},{"code":"350103","name":"台江区"},{"code":"350104","name":"仓山区"},{"code":"350105","name":"马尾区"},{"code":"350111","name":"晋安区"},{"code":"350112","name":"长乐区"},{"code":"350121","name":"闽侯县"},{"code":"350122","name":"连江县"},{"code":"350123","name":"罗源县"},{"code":"350124","name":"闽清县"},{"code":"350125","name":"永泰县"},{"code":"350128","name":"平潭县"},{"code":"350181","name":"福清市"}]},{"code":"3502","name":"厦门市","children":[{"code":"350203","name":"思明区"},{"code":"350205","name":"海沧区"},{"code":"350206","name":"湖里区"},{"code":"350211","name":"集美区"},{"code":"350212","name":"同安区"},{"code":"350213","name":"翔安区"}]},{"code":"3503","name":"莆田市","children":[{"code":"350302","name":"城厢区"},{"code":"350303","name":"涵江区"},{"code":"350304","name":"荔城区"},{"code":"350305","name":"秀屿区"},{"code":"350322","name":"仙游县"}]},{"code":"3504","name":"三明市","children":[{"code":"350404","name":"三元区"},{"code":"350405","name":"沙县区"},{"code":"350421","name":"明溪县"},{"code":"350423","name":"清流县"},{"code":"350424","name":"宁化县"},{"code":"350425","name":"大田县"},{"code":"350426","name":"尤溪县"},{"code":"350428","name":"将乐县"},{"code":"350429","name":"泰宁县"},{"code":"350430","name":"建宁县"},{"code":"350481","name":"永安市"}]},{"code":"3505","name":"泉州市","children":[{"code":"350502","name":"鲤城区"},{"code":"350503","name":"丰泽区"},{"code":"350504","name":"洛江区"},{"code":"350505","name":"泉港区"},{"code":"350521","name":"惠安县"},{"code":"350524","name":"安溪县"},{"code":"350525","name":"永春县"},{"code":"350526","name":"德化县"},{"code":"350527","name":"金门县"},{"code":"350581","name":"石狮市"},{"code":"350582","name":"晋江市"},{"code":"350583","name":"南安市"}]},{"code":"3506","name":"漳州市","children":[{"code":"350602","name":"芗城区"},{"code":"350603","name":"龙文区"},{"code":"350604","name":"龙海区"},{"code":"350605","name":"长泰区"},{"code":"350622","name":"云霄县"},{"code":"350623","name":"漳浦县"},{"code":"350624","name":"诏安县"},{"code":"350626","name":"东山县"},{"code":"350627","name":"南靖县"},{"code":"350628","name":"平和县"},{"code":"350629","name":"华安县"}]},{"code":"3507","name":"南平市","children":[{"code":"350702","name":"延平区"},{"code":"350703","name":"建阳区"},{"code":"350721","name":"顺昌县"},{"code":"350722","name":"浦城县"},{"code":"350723","name":"光泽县"},{"code":"350724","name":"松溪县"},{"code":"350725","name":"政和县"},{"code":"350781","name":"邵武市"},{"code":"350782","name":"武夷山市"},{"code":"350783","name":"建瓯市"}]},{"code":"3508","name":"龙岩市","children":[{"code":"350802","name":"新罗区"},{"code":"350803","name":"永定区"},{"code":"350821","name":"长汀县"},{"code":"350823","name":"上杭县"},{"code":"350824","name":"武平县"},{"code":"350825","name":"连城县"},{"code":"350881","name":"漳平市"}]},{"code":"3509","name":"宁德市","children":[{"code":"350902","name":"蕉城区"},{"code":"350921","name":"霞浦县"},{"code":"350922","name":"古田县"},{"code":"350923","name":"屏南县"},{"code":"350924","name":"寿宁县"},{"code":"350925","name":"周宁县"},{"code":"350926","name":"柘荣县"},{"code":"350981","name":"福安市"},{"code":"350982","name":"福鼎市"}]}]},{"code":"36","name":"江西省","children":[{"code":"3601","name":"南昌市","children":[{"code":"360102","name":"东湖区"},{"code":"360103","name":"西湖区"},{"code":"360104","name":"青云谱区"},{"code":"360111","name":"青山湖区"},{"code":"360112","name":"新建区"},{"code":"360113","name":"红谷滩区"},{"code":"360121","name":"南昌县"},{"code":"360123","name":"安义县"},{"code":"360124","name":"进贤县"}]},{"code":"3602","name":"景德镇市","children":[{"code":"360202","name":"昌江区"},{"code":"360203","name":"珠山区"},{"code":"360222","name":"浮梁县"},{"code":"360281","name":"乐平市"}]},{"code":"3603","name":"萍乡市","children":[{"code":"360302","name":"安源区"},{"code":"360313","name":"湘东区"},{"code":"360321","name":"莲花县"},{"code":"360322","name":"上栗县"},{"code":"360323","name":"芦溪县"}]},{"code":"3604","name":"九江市","children":[{"code":"360402","name":"濂溪区"},{"code":"360403","name":"浔阳区"},{"code":"360404","name":"柴桑区"},{"code":"360423","name":"武宁县"},{"code":"360424","name":"修水县"},{"code":"360425","name":"永修县"},{"code":"360426","name":"德安县"},{"code":"360428","name":"都昌县"},{"code":"360429","name":"湖口县"},{"code":"360430","name":"彭泽县"},{"code":"360481","name":"瑞昌市"},{"code":"360482","name":"共青城市"},{"code":"360483","name":"庐山市"}]},{"code":"3605","name":"新余市","children":[{"code":"360502","name":"渝水区"},{"code":"360521","name":"分宜县"}]},{"code":"3606","name":"鹰潭市","children":[{"code":"360602","name":"月湖区"},{"code":"360603","name":"余江区"},{"code":"360681","name":"贵溪市"}]},{"code":"3607","name":"赣州市","children":[{"code":"360702","name":"章贡区"},{"code":"360703","name":"南康区"},{"code":"360704","name":"赣县区"},{"code":"360722","name":"信丰县"},{"code":"360723","name":"大余县"},{"code":"360724","name":"上犹县"},{"code":"360725","name":"崇义县"},{"code":"360726","name":"安远县"},{"code":"360728","name":"定南县"},{"code":"360729","name":"全南县"},{"code":"360730","name":"宁都县"},{"code":"360731","name":"于都县"},{"code":"360732","name":"兴国县"},{"code":"360733","name":"会昌县"},{"code":"360734","name":"寻乌县"},{"code":"360735","name":"石城县"},{"code":"360781","name":"瑞金市"},{"code":"360783","name":"龙南市"}]},{"code":"3608","name":"吉安市","children":[{"code":"360802","name":"吉州区"},{"code":"360803","name":"青原区"},{"code":"360821","name":"吉安县"},{"code":"360822","name":"吉水县"},{"code":"360823","name":"峡江县"},{"code":"360824","name":"新干县"},{"code":"360825","name":"永丰县"},{"code":"360826","name":"泰和县"},{"code":"360827","name":"遂川县"},{"code":"360828","name":"万安县"},{"code":"360829","name":"安福县"},{"code":"360830","name":"永新县"},{"code":"360881","name":"井冈山市"}]},{"code":"3609","name":"宜春市","children":[{"code":"360902","name":"袁州区"},{"code":"360921","name":"奉新县"},{"code":"360922","name":"万载县"},{"code":"360923","name":"上高县"},{"code":"360924","name":"宜丰县"},{"code":"360925","name":"靖安县"},{"code":"360926","name":"铜鼓县"},{"code":"360981","name":"丰城市"},{"code":"360982","name":"樟树市"},{"code":"360983","name":"高安市"}]},{"code":"3610","name":"抚州市","children":[{"code":"361002","name":"临川区"},{"code":"361003","name":"东乡区"},{"code":"361021","name":"南城县"},{"code":"361022","name":"黎川县"},{"code":"361023","name":"南丰县"},{"code":"361024","name":"崇仁县"},{"code":"361025","name":"乐安县"},{"code":"361026","name":"宜黄县"},{"code":"361027","name":"金溪县"},{"code":"361028","name":"资溪县"},{"code":"361030","name":"广昌县"}]},{"code":"3611","name":"上饶市","children":[{"code":"361102","name":"信州区"},{"code":"361103","name":"广丰区"},{"code":"361104","name":"广信区"},{"code":"361123","name":"玉山县"},{"code":"361124","name":"铅山县"},{"code":"361125","name":"横峰县"},{"code":"361126","name":"弋阳县"},{"code":"361127","name":"余干县"},{"code":"361128","name":"鄱阳县"},{"code":"361129","name":"万年县"},{"code":"361130","name":"婺源县"},{"code":"361181","name":"德兴市"}]}]},{"code":"37","name":"山东省","children":[{"code":"3701","name":"济南市","children":[{"code":"370102","name":"历下区"},{"code":"370103","name":"市中区"},{"code":"370104","name":"槐荫区"},{"code":"370105","name":"天桥区"},{"code":"370112","name":"历城区"},{"code":"370113","name":"长清区"},{"code":"370114","name":"章丘区"},{"code":"370115","name":"济阳区"},{"code":"370116","name":"莱芜区"},{"code":"370117","name":"钢城区"},{"code":"370124","name":"平阴县"},{"code":"370126","name":"商河县"},{"code":"370176","name":"济南高新技术产业开发区"}]},{"code":"3702","name":"青岛市","children":[{"code":"370202","name":"市南区"},{"code":"370203","name":"市北区"},{"code":"370211","name":"黄岛区"},{"code":"370212","name":"崂山区"},{"code":"370213","name":"李沧区"},{"code":"370214","name":"城阳区"},{"code":"370215","name":"即墨区"},{"code":"370281","name":"胶州市"},{"code":"370283","name":"平度市"},{"code":"370285","name":"莱西市"}]},{"code":"3703","name":"淄博市","children":[{"code":"370302","name":"淄川区"},{"code":"370303","name":"张店区"},{"code":"370304","name":"博山区"},{"code":"370305","name":"临淄区"},{"code":"370306","name":"周村区"},{"code":"370321","name":"桓台县"},{"code":"370322","name":"高青县"},{"code":"370323","name":"沂源县"}]},{"code":"3704","name":"枣庄市","children":[{"code":"370402","name":"市中区"},{"code":"370403","name":"薛城区"},{"code":"370404","name":"峄城区"},{"code":"370405","name":"台儿庄区"},{"code":"370406","name":"山亭区"},{"code":"370481","name":"滕州市"}]},{"code":"3705","name":"东营市","children":[{"code":"370502","name":"东营区"},{"code":"370503","name":"河口区"},{"code":"370505","name":"垦利区"},{"code":"370522","name":"利津县"},{"code":"370523","name":"广饶县"},{"code":"370571","name":"东营经济技术开发区"},{"code":"370572","name":"东营港经济开发区"}]},{"code":"3706","name":"烟台市","children":[{"code":"370602","name":"芝罘区"},{"code":"370611","name":"福山区"},{"code":"370612","name":"牟平区"},{"code":"370613","name":"莱山区"},{"code":"370614","name":"蓬莱区"},{"code":"370671","name":"烟台高新技术产业开发区"},{"code":"370676","name":"烟台经济技术开发区"},{"code":"370681","name":"龙口市"},{"code":"370682","name":"莱阳市"},{"code":"370683","name":"莱州市"},{"code":"370685","name":"招远市"},{"code":"370686","name":"栖霞市"},{"code":"370687","name":"海阳市"}]},{"code":"3707","name":"潍坊市","children":[{"code":"370702","name":"潍城区"},{"code":"370703","name":"寒亭区"},{"code":"370704","name":"坊子区"},{"code":"370705","name":"奎文区"},{"code":"370724","name":"临朐县"},{"code":"370725","name":"昌乐县"},{"code":"370772","name":"潍坊滨海经济技术开发区"},{"code":"370781","name":"青州市"},{"code":"370782","name":"诸城市"},{"code":"370783","name":"寿光市"},{"code":"370784","name":"安丘市"},{"code":"370785","name":"高密市"},{"code":"370786","name":"昌邑市"}]},{"code":"3708","name":"济宁市","children":[{"code":"370811","name":"任城区"},{"code":"370812","name":"兖州区"},{"code":"370826","name":"微山县"},{"code":"370827","name":"鱼台县"},{"code":"370828","name":"金乡县"},{"code":"370829","name":"嘉祥县"},{"code":"370830","name":"汶上县"},{"code":"370831","name":"泗水县"},{"code":"370832","name":"梁山县"},{"code":"370871","name":"济宁高新技术产业开发区"},{"code":"370881","name":"曲阜市"},{"code":"370883","name":"邹城市"}]},{"code":"3709","name":"泰安市","children":[{"code":"370902","name":"泰山区"},{"code":"370911","name":"岱岳区"},{"code":"370921","name":"宁阳县"},{"code":"370923","name":"东平县"},{"code":"370982","name":"新泰市"},{"code":"370983","name":"肥城市"}]},{"code":"3710","name":"威海市","children":[{"code":"371002","name":"环翠区"},{"code":"371003","name":"文登区"},{"code":"371071","name":"威海火炬高技术产业开发区"},{"code":"371072","name":"威海经济技术开发区"},{"code":"371073","name":"威海临港经济技术开发区"},{"code":"371082","name":"荣成市"},{"code":"371083","name":"乳山市"}]},{"code":"3711","name":"日照市","children":[{"code":"371102","name":"东港区"},{"code":"371103","name":"岚山区"},{"code":"371121","name":"五莲县"},{"code":"371122","name":"莒县"},{"code":"371171","name":"日照经济技术开发区"}]},{"code":"3713","name":"临沂市","children":[{"code":"371302","name":"兰山区"},{"code":"371311","name":"罗庄区"},{"code":"371312","name":"河东区"},{"code":"371321","name":"沂南县"},{"code":"371322","name":"郯城县"},{"code":"371323","name":"沂水县"},{"code":"371324","name":"兰陵县"},{"code":"371325","name":"费县"},{"code":"371326","name":"平邑县"},{"code":"371327","name":"莒南县"},{"code":"371328","name":"蒙阴县"},{"code":"371329","name":"临沭县"},{"code":"371371","name":"临沂高新技术产业开发区"}]},{"code":"3714","name":"德州市","children":[{"code":"371402","name":"德城区"},{"code":"371403","name":"陵城区"},{"code":"371422","name":"宁津县"},{"code":"371423","name":"庆云县"},{"code":"371424","name":"临邑县"},{"code":"371425","name":"齐河县"},{"code":"371426","name":"平原县"},{"code":"371427","name":"夏津县"},{"code":"371428","name":"武城县"},{"code":"371471","name":"德州天衢新区"},{"code":"371481","name":"乐陵市"},{"code":"371482","name":"禹城市"}]},{"code":"3715","name":"聊城市","children":[{"code":"371502","name":"东昌府区"},{"code":"371503","name":"茌平区"},{"code":"371521","name":"阳谷县"},{"code":"371522","name":"莘县"},{"code":"371524","name":"东阿县"},{"code":"371525","name":"冠县"},{"code":"371526","name":"高唐县"},{"code":"371581","name":"临清市"}]},{"code":"3716","name":"滨州市","children":[{"code":"371602","name":"滨城区"},{"code":"371603","name":"沾化区"},{"code":"371621","name":"惠民县"},{"code":"371622","name":"阳信县"},{"code":"371623","name":"无棣县"},{"code":"371625","name":"博兴县"},{"code":"371681","name":"邹平市"}]},{"code":"3717","name":"菏泽市","children":[{"code":"371702","name":"牡丹区"},{"code":"371703","name":"定陶区"},{"code":"371721","name":"曹县"},{"code":"371722","name":"单县"},{"code":"371723","name":"成武县"},{"code":"371724","name":"巨野县"},{"code":"371725","name":"郓城县"},{"code":"371726","name":"鄄城县"},{"code":"371728","name":"东明县"},{"code":"371771","name":"菏泽经济技术开发区"},{"code":"371772","name":"菏泽高新技术开发区"}]}]},{"code":"41","name":"河南省","children":[{"code":"4101","name":"郑州市","children":[{"code":"410102","name":"中原区"},{"code":"410103","name":"二七区"},{"code":"410104","name":"管城回族区"},{"code":"410105","name":"金水区"},{"code":"410106","name":"上街区"},{"code":"410108","name":"惠济区"},{"code":"410122","name":"中牟县"},{"code":"410171","name":"郑州经济技术开发区"},{"code":"410172","name":"郑州高新技术产业开发区"},{"code":"410173","name":"郑州航空港经济综合实验区"},{"code":"410181","name":"巩义市"},{"code":"410182","name":"荥阳市"},{"code":"410183","name":"新密市"},{"code":"410184","name":"新郑市"},{"code":"410185","name":"登封市"}]},{"code":"4102","name":"开封市","children":[{"code":"410202","name":"龙亭区"},{"code":"410203","name":"顺河回族区"},{"code":"410204","name":"鼓楼区"},{"code":"410205","name":"禹王台区"},{"code":"410212","name":"祥符区"},{"code":"410221","name":"杞县"},{"code":"410222","name":"通许县"},{"code":"410223","name":"尉氏县"},{"code":"410225","name":"兰考县"}]},{"code":"4103","name":"洛阳市","children":[{"code":"410302","name":"老城区"},{"code":"410303","name":"西工区"},{"code":"410304","name":"瀍河回族区"},{"code":"410305","name":"涧西区"},{"code":"410307","name":"偃师区"},{"code":"410308","name":"孟津区"},{"code":"410311","name":"洛龙区"},{"code":"410323","name":"新安县"},{"code":"410324","name":"栾川县"},{"code":"410325","name":"嵩县"},{"code":"410326","name":"汝阳县"},{"code":"410327","name":"宜阳县"},{"code":"410328","name":"洛宁县"},{"code":"410329","name":"伊川县"},{"code":"410371","name":"洛阳高新技术产业开发区"}]},{"code":"4104","name":"平顶山市","children":[{"code":"410402","name":"新华区"},{"code":"410403","name":"卫东区"},{"code":"410404","name":"石龙区"},{"code":"410411","name":"湛河区"},{"code":"410421","name":"宝丰县"},{"code":"410422","name":"叶县"},{"code":"410423","name":"鲁山县"},{"code":"410425","name":"郏县"},{"code":"410471","name":"平顶山高新技术产业开发区"},{"code":"410472","name":"平顶山市城乡一体化示范区"},{"code":"410481","name":"舞钢市"},{"code":"410482","name":"汝州市"}]},{"code":"4105","name":"安阳市","children":[{"code":"410502","name":"文峰区"},{"code":"410503","name":"北关区"},{"code":"410505","name":"殷都区"},{"code":"410506","name":"龙安区"},{"code":"410522","name":"安阳县"},{"code":"410523","name":"汤阴县"},{"code":"410526","name":"滑县"},{"code":"410527","name":"内黄县"},{"code":"410571","name":"安阳高新技术产业开发区"},{"code":"410581","name":"林州市"}]},{"code":"4106","name":"鹤壁市","children":[{"code":"410602","name":"鹤山区"},{"code":"410603","name":"山城区"},{"code":"410611","name":"淇滨区"},{"code":"410621","name":"浚县"},{"code":"410622","name":"淇县"},{"code":"410671","name":"鹤壁经济技术开发区"}]},{"code":"4107","name":"新乡市","children":[{"code":"410702","name":"红旗区"},{"code":"410703","name":"卫滨区"},{"code":"410704","name":"凤泉区"},{"code":"410711","name":"牧野区"},{"code":"410721","name":"新乡县"},{"code":"410724","name":"获嘉县"},{"code":"410725","name":"原阳县"},{"code":"410726","name":"延津县"},{"code":"410727","name":"封丘县"},{"code":"410771","name":"新乡高新技术产业开发区"},{"code":"410772","name":"新乡经济技术开发区"},{"code":"410773","name":"新乡市平原城乡一体化示范区"},{"code":"410781","name":"卫辉市"},{"code":"410782","name":"辉县市"},{"code":"410783","name":"长垣市"}]},{"code":"4108","name":"焦作市","children":[{"code":"410802","name":"解放区"},{"code":"410803","name":"中站区"},{"code":"410804","name":"马村区"},{"code":"410811","name":"山阳区"},{"code":"410821","name":"修武县"},{"code":"410822","name":"博爱县"},{"code":"410823","name":"武陟县"},{"code":"410825","name":"温县"},{"code":"410871","name":"焦作城乡一体化示范区"},{"code":"410882","name":"沁阳市"},{"code":"410883","name":"孟州市"}]},{"code":"4109","name":"濮阳市","children":[{"code":"410902","name":"华龙区"},{"code":"410922","name":"清丰县"},{"code":"410923","name":"南乐县"},{"code":"410926","name":"范县"},{"code":"410927","name":"台前县"},{"code":"410928","name":"濮阳县"},{"code":"410971","name":"河南濮阳工业园区"},{"code":"410972","name":"濮阳经济技术开发区"}]},{"code":"4110","name":"许昌市","children":[{"code":"411002","name":"魏都区"},{"code":"411003","name":"建安区"},{"code":"411024","name":"鄢陵县"},{"code":"411025","name":"襄城县"},{"code":"411071","name":"许昌经济技术开发区"},{"code":"411081","name":"禹州市"},{"code":"411082","name":"长葛市"}]},{"code":"4111","name":"漯河市","children":[{"code":"411102","name":"源汇区"},{"code":"411103","name":"郾城区"},{"code":"411104","name":"召陵区"},{"code":"411121","name":"舞阳县"},{"code":"411122","name":"临颍县"},{"code":"411171","name":"漯河经济技术开发区"}]},{"code":"4112","name":"三门峡市","children":[{"code":"411202","name":"湖滨区"},{"code":"411203","name":"陕州区"},{"code":"411221","name":"渑池县"},{"code":"411224","name":"卢氏县"},{"code":"411271","name":"河南三门峡经济开发区"},{"code":"411281","name":"义马市"},{"code":"411282","name":"灵宝市"}]},{"code":"4113","name":"南阳市","children":[{"code":"411302","name":"宛城区"},{"code":"411303","name":"卧龙区"},{"code":"411321","name":"南召县"},{"code":"411322","name":"方城县"},{"code":"411323","name":"西峡县"},{"code":"411324","name":"镇平县"},{"code":"411325","name":"内乡县"},{"code":"411326","name":"淅川县"},{"code":"411327","name":"社旗县"},{"code":"411328","name":"唐河县"},{"code":"411329","name":"新野县"},{"code":"411330","name":"桐柏县"},{"code":"411371","name":"南阳高新技术产业开发区"},{"code":"411372","name":"南阳市城乡一体化示范区"},{"code":"411381","name":"邓州市"}]},{"code":"4114","name":"商丘市","children":[{"code":"411402","name":"梁园区"},{"code":"411403","name":"睢阳区"},{"code":"411421","name":"民权县"},{"code":"411422","name":"睢县"},{"code":"411423","name":"宁陵县"},{"code":"411424","name":"柘城县"},{"code":"411425","name":"虞城县"},{"code":"411426","name":"夏邑县"},{"code":"411471","name":"豫东综合物流产业聚集区"},{"code":"411472","name":"河南商丘经济开发区"},{"code":"411481","name":"永城市"}]},{"code":"4115","name":"信阳市","children":[{"code":"411502","name":"浉河区"},{"code":"411503","name":"平桥区"},{"code":"411521","name":"罗山县"},{"code":"411522","name":"光山县"},{"code":"411523","name":"新县"},{"code":"411524","name":"商城县"},{"code":"411525","name":"固始县"},{"code":"411526","name":"潢川县"},{"code":"411527","name":"淮滨县"},{"code":"411528","name":"息县"},{"code":"411571","name":"信阳高新技术产业开发区"}]},{"code":"4116","name":"周口市","children":[{"code":"411602","name":"川汇区"},{"code":"411603","name":"淮阳区"},{"code":"411621","name":"扶沟县"},{"code":"411622","name":"西华县"},{"code":"411623","name":"商水县"},{"code":"411624","name":"沈丘县"},{"code":"411625","name":"郸城县"},{"code":"411627","name":"太康县"},{"code":"411628","name":"鹿邑县"},{"code":"411671","name":"周口临港开发区"},{"code":"411681","name":"项城市"}]},{"code":"4117","name":"驻马店市","children":[{"code":"411702","name":"驿城区"},{"code":"411721","name":"西平县"},{"code":"411722","name":"上蔡县"},{"code":"411723","name":"平舆县"},{"code":"411724","name":"正阳县"},{"code":"411725","name":"确山县"},{"code":"411726","name":"泌阳县"},{"code":"411727","name":"汝南县"},{"code":"411728","name":"遂平县"},{"code":"411729","name":"新蔡县"},{"code":"411771","name":"河南驻马店经济开发区"}]},{"code":"4190","name":"省直辖县级行政区划","children":[{"code":"419001","name":"济源市"}]}]},{"code":"42","name":"湖北省","children":[{"code":"4201","name":"武汉市","children":[{"code":"420102","name":"江岸区"},{"code":"420103","name":"江汉区"},{"code":"420104","name":"硚口区"},{"code":"420105","name":"汉阳区"},{"code":"420106","name":"武昌区"},{"code":"420107","name":"青山区"},{"code":"420111","name":"洪山区"},{"code":"420112","name":"东西湖区"},{"code":"420113","name":"汉南区"},{"code":"420114","name":"蔡甸区"},{"code":"420115","name":"江夏区"},{"code":"420116","name":"黄陂区"},{"code":"420117","name":"新洲区"}]},{"code":"4202","name":"黄石市","children":[{"code":"420202","name":"黄石港区"},{"code":"420203","name":"西塞山区"},{"code":"420204","name":"下陆区"},{"code":"420205","name":"铁山区"},{"code":"420222","name":"阳新县"},{"code":"420281","name":"大冶市"}]},{"code":"4203","name":"十堰市","children":[{"code":"420302","name":"茅箭区"},{"code":"420303","name":"张湾区"},{"code":"420304","name":"郧阳区"},{"code":"420322","name":"郧西县"},{"code":"420323","name":"竹山县"},{"code":"420324","name":"竹溪县"},{"code":"420325","name":"房县"},{"code":"420381","name":"丹江口市"}]},{"code":"4205","name":"宜昌市","children":[{"code":"420502","name":"西陵区"},{"code":"420503","name":"伍家岗区"},{"code":"420504","name":"点军区"},{"code":"420505","name":"猇亭区"},{"code":"420506","name":"夷陵区"},{"code":"420525","name":"远安县"},{"code":"420526","name":"兴山县"},{"code":"420527","name":"秭归县"},{"code":"420528","name":"长阳土家族自治县"},{"code":"420529","name":"五峰土家族自治县"},{"code":"420581","name":"宜都市"},{"code":"420582","name":"当阳市"},{"code":"420583","name":"枝江市"}]},{"code":"4206","name":"襄阳市","children":[{"code":"420602","name":"襄城区"},{"code":"420606","name":"樊城区"},{"code":"420607","name":"襄州区"},{"code":"420624","name":"南漳县"},{"code":"420625","name":"谷城县"},{"code":"420626","name":"保康县"},{"code":"420682","name":"老河口市"},{"code":"420683","name":"枣阳市"},{"code":"420684","name":"宜城市"}]},{"code":"4207","name":"鄂州市","children":[{"code":"420702","name":"梁子湖区"},{"code":"420703","name":"华容区"},{"code":"420704","name":"鄂城区"}]},{"code":"4208","name":"荆门市","children":[{"code":"420802","name":"东宝区"},{"code":"420804","name":"掇刀区"},{"code":"420822","name":"沙洋县"},{"code":"420881","name":"钟祥市"},{"code":"420882","name":"京山市"}]},{"code":"4209","name":"孝感市","children":[{"code":"420902","name":"孝南区"},{"code":"420921","name":"孝昌县"},{"code":"420922","name":"大悟县"},{"code":"420923","name":"云梦县"},{"code":"420981","name":"应城市"},{"code":"420982","name":"安陆市"},{"code":"420984","name":"汉川市"}]},{"code":"4210","name":"荆州市","children":[{"code":"421002","name":"沙市区"},{"code":"421003","name":"荆州区"},{"code":"421022","name":"公安县"},{"code":"421024","name":"江陵县"},{"code":"421071","name":"荆州经济技术开发区"},{"code":"421081","name":"石首市"},{"code":"421083","name":"洪湖市"},{"code":"421087","name":"松滋市"},{"code":"421088","name":"监利市"}]},{"code":"4211","name":"黄冈市","children":[{"code":"421102","name":"黄州区"},{"code":"421121","name":"团风县"},{"code":"421122","name":"红安县"},{"code":"421123","name":"罗田县"},{"code":"421124","name":"英山县"},{"code":"421125","name":"浠水县"},{"code":"421126","name":"蕲春县"},{"code":"421127","name":"黄梅县"},{"code":"421171","name":"龙感湖管理区"},{"code":"421181","name":"麻城市"},{"code":"421182","name":"武穴市"}]},{"code":"4212","name":"咸宁市","children":[{"code":"421202","name":"咸安区"},{"code":"421221","name":"嘉鱼县"},{"code":"421222","name":"通城县"},{"code":"421223","name":"崇阳县"},{"code":"421224","name":"通山县"},{"code":"421281","name":"赤壁市"}]},{"code":"4213","name":"随州市","children":[{"code":"421303","name":"曾都区"},{"code":"421321","name":"随县"},{"code":"421381","name":"广水市"}]},{"code":"4228","name":"恩施土家族苗族自治州","children":[{"code":"422801","name":"恩施市"},{"code":"422802","name":"利川市"},{"code":"422822","name":"建始县"},{"code":"422823","name":"巴东县"},{"code":"422825","name":"宣恩县"},{"code":"422826","name":"咸丰县"},{"code":"422827","name":"来凤县"},{"code":"422828","name":"鹤峰县"}]},{"code":"4290","name":"省直辖县级行政区划","children":[{"code":"429004","name":"仙桃市"},{"code":"429005","name":"潜江市"},{"code":"429006","name":"天门市"},{"code":"429021","name":"神农架林区"}]}]},{"code":"43","name":"湖南省","children":[{"code":"4301","name":"长沙市","children":[{"code":"430102","name":"芙蓉区"},{"code":"430103","name":"天心区"},{"code":"430104","name":"岳麓区"},{"code":"430105","name":"开福区"},{"code":"430111","name":"雨花区"},{"code":"430112","name":"望城区"},{"code":"430121","name":"长沙县"},{"code":"430181","name":"浏阳市"},{"code":"430182","name":"宁乡市"}]},{"code":"4302","name":"株洲市","children":[{"code":"430202","name":"荷塘区"},{"code":"430203","name":"芦淞区"},{"code":"430204","name":"石峰区"},{"code":"430211","name":"天元区"},{"code":"430212","name":"渌口区"},{"code":"430223","name":"攸县"},{"code":"430224","name":"茶陵县"},{"code":"430225","name":"炎陵县"},{"code":"430281","name":"醴陵市"}]},{"code":"4303","name":"湘潭市","children":[{"code":"430302","name":"雨湖区"},{"code":"430304","name":"岳塘区"},{"code":"430321","name":"湘潭县"},{"code":"430371","name":"湖南湘潭高新技术产业园区"},{"code":"430372","name":"湘潭昭山示范区"},{"code":"430373","name":"湘潭九华示范区"},{"code":"430381","name":"湘乡市"},{"code":"430382","name":"韶山市"}]},{"code":"4304","name":"衡阳市","children":[{"code":"430405","name":"珠晖区"},{"code":"430406","name":"雁峰区"},{"code":"430407","name":"石鼓区"},{"code":"430408","name":"蒸湘区"},{"code":"430412","name":"南岳区"},{"code":"430421","name":"衡阳县"},{"code":"430422","name":"衡南县"},{"code":"430423","name":"衡山县"},{"code":"430424","name":"衡东县"},{"code":"430426","name":"祁东县"},{"code":"430473","name":"湖南衡阳松木经济开发区"},{"code":"430476","name":"湖南衡阳高新技术产业园区"},{"code":"430481","name":"耒阳市"},{"code":"430482","name":"常宁市"}]},{"code":"4305","name":"邵阳市","children":[{"code":"430502","name":"双清区"},{"code":"430503","name":"大祥区"},{"code":"430511","name":"北塔区"},{"code":"430522","name":"新邵县"},{"code":"430523","name":"邵阳县"},{"code":"430524","name":"隆回县"},{"code":"430525","name":"洞口县"},{"code":"430527","name":"绥宁县"},{"code":"430528","name":"新宁县"},{"code":"430529","name":"城步苗族自治县"},{"code":"430581","name":"武冈市"},{"code":"430582","name":"邵东市"}]},{"code":"4306","name":"岳阳市","children":[{"code":"430602","name":"岳阳楼区"},{"code":"430603","name":"云溪区"},{"code":"430611","name":"君山区"},{"code":"430621","name":"岳阳县"},{"code":"430623","name":"华容县"},{"code":"430624","name":"湘阴县"},{"code":"430626","name":"平江县"},{"code":"430671","name":"岳阳市屈原管理区"},{"code":"430681","name":"汨罗市"},{"code":"430682","name":"临湘市"}]},{"code":"4307","name":"常德市","children":[{"code":"430702","name":"武陵区"},{"code":"430703","name":"鼎城区"},{"code":"430721","name":"安乡县"},{"code":"430722","name":"汉寿县"},{"code":"430723","name":"澧县"},{"code":"430724","name":"临澧县"},{"code":"430725","name":"桃源县"},{"code":"430726","name":"石门县"},{"code":"430771","name":"常德市西洞庭管理区"},{"code":"430781","name":"津市市"}]},{"code":"4308","name":"张家界市","children":[{"code":"430802","name":"永定区"},{"code":"430811","name":"武陵源区"},{"code":"430821","name":"慈利县"},{"code":"430822","name":"桑植县"}]},{"code":"4309","name":"益阳市","children":[{"code":"430902","name":"资阳区"},{"code":"430903","name":"赫山区"},{"code":"430921","name":"南县"},{"code":"430922","name":"桃江县"},{"code":"430923","name":"安化县"},{"code":"430971","name":"益阳市大通湖管理区"},{"code":"430972","name":"湖南益阳高新技术产业园区"},{"code":"430981","name":"沅江市"}]},{"code":"4310","name":"郴州市","children":[{"code":"431002","name":"北湖区"},{"code":"431003","name":"苏仙区"},{"code":"431021","name":"桂阳县"},{"code":"431022","name":"宜章县"},{"code":"431023","name":"永兴县"},{"code":"431024","name":"嘉禾县"},{"code":"431025","name":"临武县"},{"code":"431026","name":"汝城县"},{"code":"431027","name":"桂东县"},{"code":"431028","name":"安仁县"},{"code":"431081","name":"资兴市"}]},{"code":"4311","name":"永州市","children":[{"code":"431102","name":"零陵区"},{"code":"431103","name":"冷水滩区"},{"code":"431122","name":"东安县"},{"code":"431123","name":"双牌县"},{"code":"431124","name":"道县"},{"code":"431125","name":"江永县"},{"code":"431126","name":"宁远县"},{"code":"431127","name":"蓝山县"},{"code":"431128","name":"新田县"},{"code":"431129","name":"江华瑶族自治县"},{"code":"431171","name":"永州经济技术开发区"},{"code":"431173","name":"永州市回龙圩管理区"},{"code":"431181","name":"祁阳市"}]},{"code":"4312","name":"怀化市","children":[{"code":"431202","name":"鹤城区"},{"code":"431221","name":"中方县"},{"code":"431222","name":"沅陵县"},{"code":"431223","name":"辰溪县"},{"code":"431224","name":"溆浦县"},{"code":"431225","name":"会同县"},{"code":"431226","name":"麻阳苗族自治县"},{"code":"431227","name":"新晃侗族自治县"},{"code":"431228","name":"芷江侗族自治县"},{"code":"431229","name":"靖州苗族侗族自治县"},{"code":"431230","name":"通道侗族自治县"},{"code":"431271","name":"怀化市洪江管理区"},{"code":"431281","name":"洪江市"}]},{"code":"4313","name":"娄底市","children":[{"code":"431302","name":"娄星区"},{"code":"431321","name":"双峰县"},{"code":"431322","name":"新化县"},{"code":"431381","name":"冷水江市"},{"code":"431382","name":"涟源市"}]},{"code":"4331","name":"湘西土家族苗族自治州","children":[{"code":"433101","name":"吉首市"},{"code":"433122","name":"泸溪县"},{"code":"433123","name":"凤凰县"},{"code":"433124","name":"花垣县"},{"code":"433125","name":"保靖县"},{"code":"433126","name":"古丈县"},{"code":"433127","name":"永顺县"},{"code":"433130","name":"龙山县"}]}]},{"code":"44","name":"广东省","children":[{"code":"4401","name":"广州市","children":[{"code":"440103","name":"荔湾区"},{"code":"440104","name":"越秀区"},{"code":"440105","name":"海珠区"},{"code":"440106","name":"天河区"},{"code":"440111","name":"白云区"},{"code":"440112","name":"黄埔区"},{"code":"440113","name":"番禺区"},{"code":"440114","name":"花都区"},{"code":"440115","name":"南沙区"},{"code":"440117","name":"从化区"},{"code":"440118","name":"增城区"}]},{"code":"4402","name":"韶关市","children":[{"code":"440203","name":"武江区"},{"code":"440204","name":"浈江区"},{"code":"440205","name":"曲江区"},{"code":"440222","name":"始兴县"},{"code":"440224","name":"仁化县"},{"code":"440229","name":"翁源县"},{"code":"440232","name":"乳源瑶族自治县"},{"code":"440233","name":"新丰县"},{"code":"440281","name":"乐昌市"},{"code":"440282","name":"南雄市"}]},{"code":"4403","name":"深圳市","children":[{"code":"440303","name":"罗湖区"},{"code":"440304","name":"福田区"},{"code":"440305","name":"南山区"},{"code":"440306","name":"宝安区"},{"code":"440307","name":"龙岗区"},{"code":"440308","name":"盐田区"},{"code":"440309","name":"龙华区"},{"code":"440310","name":"坪山区"},{"code":"440311","name":"光明区"}]},{"code":"4404","name":"珠海市","children":[{"code":"440402","name":"香洲区"},{"code":"440403","name":"斗门区"},{"code":"440404","name":"金湾区"}]},{"code":"4405","name":"汕头市","children":[{"code":"440507","name":"龙湖区"},{"code":"440511","name":"金平区"},{"code":"440512","name":"濠江区"},{"code":"440513","name":"潮阳区"},{"code":"440514","name":"潮南区"},{"code":"440515","name":"澄海区"},{"code":"440523","name":"南澳县"}]},{"code":"4406","name":"佛山市","children":[{"code":"440604","name":"禅城区"},{"code":"440605","name":"南海区"},{"code":"440606","name":"顺德区"},{"code":"440607","name":"三水区"},{"code":"440608","name":"高明区"}]},{"code":"4407","name":"江门市","children":[{"code":"440703","name":"蓬江区"},{"code":"440704","name":"江海区"},{"code":"440705","name":"新会区"},{"code":"440781","name":"台山市"},{"code":"440783","name":"开平市"},{"code":"440784","name":"鹤山市"},{"code":"440785","name":"恩平市"}]},{"code":"4408","name":"湛江市","children":[{"code":"440802","name":"赤坎区"},{"code":"440803","name":"霞山区"},{"code":"440804","name":"坡头区"},{"code":"440811","name":"麻章区"},{"code":"440823","name":"遂溪县"},{"code":"440825","name":"徐闻县"},{"code":"440881","name":"廉江市"},{"code":"440882","name":"雷州市"},{"code":"440883","name":"吴川市"}]},{"code":"4409","name":"茂名市","children":[{"code":"440902","name":"茂南区"},{"code":"440904","name":"电白区"},{"code":"440981","name":"高州市"},{"code":"440982","name":"化州市"},{"code":"440983","name":"信宜市"}]},{"code":"4412","name":"肇庆市","children":[{"code":"441202","name":"端州区"},{"code":"441203","name":"鼎湖区"},{"code":"441204","name":"高要区"},{"code":"441223","name":"广宁县"},{"code":"441224","name":"怀集县"},{"code":"441225","name":"封开县"},{"code":"441226","name":"德庆县"},{"code":"441284","name":"四会市"}]},{"code":"4413","name":"惠州市","children":[{"code":"441302","name":"惠城区"},{"code":"441303","name":"惠阳区"},{"code":"441322","name":"博罗县"},{"code":"441323","name":"惠东县"},{"code":"441324","name":"龙门县"}]},{"code":"4414","name":"梅州市","children":[{"code":"441402","name":"梅江区"},{"code":"441403","name":"梅县区"},{"code":"441422","name":"大埔县"},{"code":"441423","name":"丰顺县"},{"code":"441424","name":"五华县"},{"code":"441426","name":"平远县"},{"code":"441427","name":"蕉岭县"},{"code":"441481","name":"兴宁市"}]},{"code":"4415","name":"汕尾市","children":[{"code":"441502","name":"城区"},{"code":"441521","name":"海丰县"},{"code":"441523","name":"陆河县"},{"code":"441581","name":"陆丰市"}]},{"code":"4416","name":"河源市","children":[{"code":"441602","name":"源城区"},{"code":"441621","name":"紫金县"},{"code":"441622","name":"龙川县"},{"code":"441623","name":"连平县"},{"code":"441624","name":"和平县"},{"code":"441625","name":"东源县"}]},{"code":"4417","name":"阳江市","children":[{"code":"441702","name":"江城区"},{"code":"441704","name":"阳东区"},{"code":"441721","name":"阳西县"},{"code":"441781","name":"阳春市"}]},{"code":"4418","name":"清远市","children":[{"code":"441802","name":"清城区"},{"code":"441803","name":"清新区"},{"code":"441821","name":"佛冈县"},{"code":"441823","name":"阳山县"},{"code":"441825","name":"连山壮族瑶族自治县"},{"code":"441826","name":"连南瑶族自治县"},{"code":"441881","name":"英德市"},{"code":"441882","name":"连州市"}]},{"code":"4419","name":"东莞市","children":[{"code":"441900003","name":"东城街道"},{"code":"441900004","name":"南城街道"},{"code":"441900005","name":"万江街道"},{"code":"441900006","name":"莞城街道"},{"code":"441900101","name":"石碣镇"},{"code":"441900102","name":"石龙镇"},{"code":"441900103","name":"茶山镇"},{"code":"441900104","name":"石排镇"},{"code":"441900105","name":"企石镇"},{"code":"441900106","name":"横沥镇"},{"code":"441900107","name":"桥头镇"},{"code":"441900108","name":"谢岗镇"},{"code":"441900109","name":"东坑镇"},{"code":"441900110","name":"常平镇"},{"code":"441900111","name":"寮步镇"},{"code":"441900112","name":"樟木头镇"},{"code":"441900113","name":"大朗镇"},{"code":"441900114","name":"黄江镇"},{"code":"441900115","name":"清溪镇"},{"code":"441900116","name":"塘厦镇"},{"code":"441900117","name":"凤岗镇"},{"code":"441900118","name":"大岭山镇"},{"code":"441900119","name":"长安镇"},{"code":"441900121","name":"虎门镇"},{"code":"441900122","name":"厚街镇"},{"code":"441900123","name":"沙田镇"},{"code":"441900124","name":"道滘镇"},{"code":"441900125","name":"洪梅镇"},{"code":"441900126","name":"麻涌镇"},{"code":"441900127","name":"望牛墩镇"},{"code":"441900128","name":"中堂镇"},{"code":"441900129","name":"高埗镇"},{"code":"441900401","name":"松山湖"},{"code":"441900402","name":"东莞港"},{"code":"441900403","name":"东莞生态园"},{"code":"441900404","name":"东莞滨海湾新区"}]},{"code":"4420","name":"中山市","children":[{"code":"442000001","name":"石岐街道"},{"code":"442000002","name":"东区街道"},{"code":"442000003","name":"中山港街道"},{"code":"442000004","name":"西区街道"},{"code":"442000005","name":"南区街道"},{"code":"442000006","name":"五桂山街道"},{"code":"442000007","name":"民众街道"},{"code":"442000008","name":"南朗街道"},{"code":"442000101","name":"黄圃镇"},{"code":"442000103","name":"东凤镇"},{"code":"442000105","name":"古镇镇"},{"code":"442000106","name":"沙溪镇"},{"code":"442000107","name":"坦洲镇"},{"code":"442000108","name":"港口镇"},{"code":"442000109","name":"三角镇"},{"code":"442000110","name":"横栏镇"},{"code":"442000111","name":"南头镇"},{"code":"442000112","name":"阜沙镇"},{"code":"442000114","name":"三乡镇"},{"code":"442000115","name":"板芙镇"},{"code":"442000116","name":"大涌镇"},{"code":"442000117","name":"神湾镇"},{"code":"442000118","name":"小榄镇"}]},{"code":"4451","name":"潮州市","children":[{"code":"445102","name":"湘桥区"},{"code":"445103","name":"潮安区"},{"code":"445122","name":"饶平县"}]},{"code":"4452","name":"揭阳市","children":[{"code":"445202","name":"榕城区"},{"code":"445203","name":"揭东区"},{"code":"445222","name":"揭西县"},{"code":"445224","name":"惠来县"},{"code":"445281","name":"普宁市"}]},{"code":"4453","name":"云浮市","children":[{"code":"445302","name":"云城区"},{"code":"445303","name":"云安区"},{"code":"445321","name":"新兴县"},{"code":"445322","name":"郁南县"},{"code":"445381","name":"罗定市"}]}]},{"code":"45","name":"广西壮族自治区","children":[{"code":"4501","name":"南宁市","children":[{"code":"450102","name":"兴宁区"},{"code":"450103","name":"青秀区"},{"code":"450105","name":"江南区"},{"code":"450107","name":"西乡塘区"},{"code":"450108","name":"良庆区"},{"code":"450109","name":"邕宁区"},{"code":"450110","name":"武鸣区"},{"code":"450123","name":"隆安县"},{"code":"450124","name":"马山县"},{"code":"450125","name":"上林县"},{"code":"450126","name":"宾阳县"},{"code":"450181","name":"横州市"}]},{"code":"4502","name":"柳州市","children":[{"code":"450202","name":"城中区"},{"code":"450203","name":"鱼峰区"},{"code":"450204","name":"柳南区"},{"code":"450205","name":"柳北区"},{"code":"450206","name":"柳江区"},{"code":"450222","name":"柳城县"},{"code":"450223","name":"鹿寨县"},{"code":"450224","name":"融安县"},{"code":"450225","name":"融水苗族自治县"},{"code":"450226","name":"三江侗族自治县"}]},{"code":"4503","name":"桂林市","children":[{"code":"450302","name":"秀峰区"},{"code":"450303","name":"叠彩区"},{"code":"450304","name":"象山区"},{"code":"450305","name":"七星区"},{"code":"450311","name":"雁山区"},{"code":"450312","name":"临桂区"},{"code":"450321","name":"阳朔县"},{"code":"450323","name":"灵川县"},{"code":"450324","name":"全州县"},{"code":"450325","name":"兴安县"},{"code":"450326","name":"永福县"},{"code":"450327","name":"灌阳县"},{"code":"450328","name":"龙胜各族自治县"},{"code":"450329","name":"资源县"},{"code":"450330","name":"平乐县"},{"code":"450332","name":"恭城瑶族自治县"},{"code":"450381","name":"荔浦市"}]},{"code":"4504","name":"梧州市","children":[{"code":"450403","name":"万秀区"},{"code":"450405","name":"长洲区"},{"code":"450406","name":"龙圩区"},{"code":"450421","name":"苍梧县"},{"code":"450422","name":"藤县"},{"code":"450423","name":"蒙山县"},{"code":"450481","name":"岑溪市"}]},{"code":"4505","name":"北海市","children":[{"code":"450502","name":"海城区"},{"code":"450503","name":"银海区"},{"code":"450512","name":"铁山港区"},{"code":"450521","name":"合浦县"}]},{"code":"4506","name":"防城港市","children":[{"code":"450602","name":"港口区"},{"code":"450603","name":"防城区"},{"code":"450621","name":"上思县"},{"code":"450681","name":"东兴市"}]},{"code":"4507","name":"钦州市","children":[{"code":"450702","name":"钦南区"},{"code":"450703","name":"钦北区"},{"code":"450721","name":"灵山县"},{"code":"450722","name":"浦北县"}]},{"code":"4508","name":"贵港市","children":[{"code":"450802","name":"港北区"},{"code":"450803","name":"港南区"},{"code":"450804","name":"覃塘区"},{"code":"450821","name":"平南县"},{"code":"450881","name":"桂平市"}]},{"code":"4509","name":"玉林市","children":[{"code":"450902","name":"玉州区"},{"code":"450903","name":"福绵区"},{"code":"450921","name":"容县"},{"code":"450922","name":"陆川县"},{"code":"450923","name":"博白县"},{"code":"450924","name":"兴业县"},{"code":"450981","name":"北流市"}]},{"code":"4510","name":"百色市","children":[{"code":"451002","name":"右江区"},{"code":"451003","name":"田阳区"},{"code":"451022","name":"田东县"},{"code":"451024","name":"德保县"},{"code":"451026","name":"那坡县"},{"code":"451027","name":"凌云县"},{"code":"451028","name":"乐业县"},{"code":"451029","name":"田林县"},{"code":"451030","name":"西林县"},{"code":"451031","name":"隆林各族自治县"},{"code":"451081","name":"靖西市"},{"code":"451082","name":"平果市"}]},{"code":"4511","name":"贺州市","children":[{"code":"451102","name":"八步区"},{"code":"451103","name":"平桂区"},{"code":"451121","name":"昭平县"},{"code":"451122","name":"钟山县"},{"code":"451123","name":"富川瑶族自治县"}]},{"code":"4512","name":"河池市","children":[{"code":"451202","name":"金城江区"},{"code":"451203","name":"宜州区"},{"code":"451221","name":"南丹县"},{"code":"451222","name":"天峨县"},{"code":"451223","name":"凤山县"},{"code":"451224","name":"东兰县"},{"code":"451225","name":"罗城仫佬族自治县"},{"code":"451226","name":"环江毛南族自治县"},{"code":"451227","name":"巴马瑶族自治县"},{"code":"451228","name":"都安瑶族自治县"},{"code":"451229","name":"大化瑶族自治县"}]},{"code":"4513","name":"来宾市","children":[{"code":"451302","name":"兴宾区"},{"code":"451321","name":"忻城县"},{"code":"451322","name":"象州县"},{"code":"451323","name":"武宣县"},{"code":"451324","name":"金秀瑶族自治县"},{"code":"451381","name":"合山市"}]},{"code":"4514","name":"崇左市","children":[{"code":"451402","name":"江州区"},{"code":"451421","name":"扶绥县"},{"code":"451422","name":"宁明县"},{"code":"451423","name":"龙州县"},{"code":"451424","name":"大新县"},{"code":"451425","name":"天等县"},{"code":"451481","name":"凭祥市"}]}]},{"code":"46","name":"海南省","children":[{"code":"4601","name":"海口市","children":[{"code":"460105","name":"秀英区"},{"code":"460106","name":"龙华区"},{"code":"460107","name":"琼山区"},{"code":"460108","name":"美兰区"}]},{"code":"4602","name":"三亚市","children":[{"code":"460202","name":"海棠区"},{"code":"460203","name":"吉阳区"},{"code":"460204","name":"天涯区"},{"code":"460205","name":"崖州区"}]},{"code":"4603","name":"三沙市","children":[{"code":"460321","name":"西沙群岛"},{"code":"460322","name":"南沙群岛"},{"code":"460323","name":"中沙群岛的岛礁及其海域"}]},{"code":"4604","name":"儋州市","children":[{"code":"460400100","name":"那大镇"},{"code":"460400101","name":"和庆镇"},{"code":"460400102","name":"南丰镇"},{"code":"460400103","name":"大成镇"},{"code":"460400104","name":"雅星镇"},{"code":"460400105","name":"兰洋镇"},{"code":"460400106","name":"光村镇"},{"code":"460400107","name":"木棠镇"},{"code":"460400108","name":"海头镇"},{"code":"460400109","name":"峨蔓镇"},{"code":"460400111","name":"王五镇"},{"code":"460400112","name":"白马井镇"},{"code":"460400113","name":"中和镇"},{"code":"460400114","name":"排浦镇"},{"code":"460400115","name":"东成镇"},{"code":"460400116","name":"新州镇"},{"code":"460400499","name":"洋浦经济开发区"},{"code":"460400500","name":"华南热作学院"}]},{"code":"4690","name":"省直辖县级行政区划","children":[{"code":"469001","name":"五指山市"},{"code":"469002","name":"琼海市"},{"code":"469005","name":"文昌市"},{"code":"469006","name":"万宁市"},{"code":"469007","name":"东方市"},{"code":"469021","name":"定安县"},{"code":"469022","name":"屯昌县"},{"code":"469023","name":"澄迈县"},{"code":"469024","name":"临高县"},{"code":"469025","name":"白沙黎族自治县"},{"code":"469026","name":"昌江黎族自治县"},{"code":"469027","name":"乐东黎族自治县"},{"code":"469028","name":"陵水黎族自治县"},{"code":"469029","name":"保亭黎族苗族自治县"},{"code":"469030","name":"琼中黎族苗族自治县"}]}]},{"code":"50","name":"重庆市","children":[{"code":"5001","name":"市辖区","children":[{"code":"500101","name":"万州区"},{"code":"500102","name":"涪陵区"},{"code":"500103","name":"渝中区"},{"code":"500104","name":"大渡口区"},{"code":"500105","name":"江北区"},{"code":"500106","name":"沙坪坝区"},{"code":"500107","name":"九龙坡区"},{"code":"500108","name":"南岸区"},{"code":"500109","name":"北碚区"},{"code":"500110","name":"綦江区"},{"code":"500111","name":"大足区"},{"code":"500112","name":"渝北区"},{"code":"500113","name":"巴南区"},{"code":"500114","name":"黔江区"},{"code":"500115","name":"长寿区"},{"code":"500116","name":"江津区"},{"code":"500117","name":"合川区"},{"code":"500118","name":"永川区"},{"code":"500119","name":"南川区"},{"code":"500120","name":"璧山区"},{"code":"500151","name":"铜梁区"},{"code":"500152","name":"潼南区"},{"code":"500153","name":"荣昌区"},{"code":"500154","name":"开州区"},{"code":"500155","name":"梁平区"},{"code":"500156","name":"武隆区"}]},{"code":"5002","name":"县","children":[{"code":"500229","name":"城口县"},{"code":"500230","name":"丰都县"},{"code":"500231","name":"垫江县"},{"code":"500233","name":"忠县"},{"code":"500235","name":"云阳县"},{"code":"500236","name":"奉节县"},{"code":"500237","name":"巫山县"},{"code":"500238","name":"巫溪县"},{"code":"500240","name":"石柱土家族自治县"},{"code":"500241","name":"秀山土家族苗族自治县"},{"code":"500242","name":"酉阳土家族苗族自治县"},{"code":"500243","name":"彭水苗族土家族自治县"}]}]},{"code":"51","name":"四川省","children":[{"code":"5101","name":"成都市","children":[{"code":"510104","name":"锦江区"},{"code":"510105","name":"青羊区"},{"code":"510106","name":"金牛区"},{"code":"510107","name":"武侯区"},{"code":"510108","name":"成华区"},{"code":"510112","name":"龙泉驿区"},{"code":"510113","name":"青白江区"},{"code":"510114","name":"新都区"},{"code":"510115","name":"温江区"},{"code":"510116","name":"双流区"},{"code":"510117","name":"郫都区"},{"code":"510118","name":"新津区"},{"code":"510121","name":"金堂县"},{"code":"510129","name":"大邑县"},{"code":"510131","name":"蒲江县"},{"code":"510181","name":"都江堰市"},{"code":"510182","name":"彭州市"},{"code":"510183","name":"邛崃市"},{"code":"510184","name":"崇州市"},{"code":"510185","name":"简阳市"}]},{"code":"5103","name":"自贡市","children":[{"code":"510302","name":"自流井区"},{"code":"510303","name":"贡井区"},{"code":"510304","name":"大安区"},{"code":"510311","name":"沿滩区"},{"code":"510321","name":"荣县"},{"code":"510322","name":"富顺县"}]},{"code":"5104","name":"攀枝花市","children":[{"code":"510402","name":"东区"},{"code":"510403","name":"西区"},{"code":"510411","name":"仁和区"},{"code":"510421","name":"米易县"},{"code":"510422","name":"盐边县"}]},{"code":"5105","name":"泸州市","children":[{"code":"510502","name":"江阳区"},{"code":"510503","name":"纳溪区"},{"code":"510504","name":"龙马潭区"},{"code":"510521","name":"泸县"},{"code":"510522","name":"合江县"},{"code":"510524","name":"叙永县"},{"code":"510525","name":"古蔺县"}]},{"code":"5106","name":"德阳市","children":[{"code":"510603","name":"旌阳区"},{"code":"510604","name":"罗江区"},{"code":"510623","name":"中江县"},{"code":"510681","name":"广汉市"},{"code":"510682","name":"什邡市"},{"code":"510683","name":"绵竹市"}]},{"code":"5107","name":"绵阳市","children":[{"code":"510703","name":"涪城区"},{"code":"510704","name":"游仙区"},{"code":"510705","name":"安州区"},{"code":"510722","name":"三台县"},{"code":"510723","name":"盐亭县"},{"code":"510725","name":"梓潼县"},{"code":"510726","name":"北川羌族自治县"},{"code":"510727","name":"平武县"},{"code":"510781","name":"江油市"}]},{"code":"5108","name":"广元市","children":[{"code":"510802","name":"利州区"},{"code":"510811","name":"昭化区"},{"code":"510812","name":"朝天区"},{"code":"510821","name":"旺苍县"},{"code":"510822","name":"青川县"},{"code":"510823","name":"剑阁县"},{"code":"510824","name":"苍溪县"}]},{"code":"5109","name":"遂宁市","children":[{"code":"510903","name":"船山区"},{"code":"510904","name":"安居区"},{"code":"510921","name":"蓬溪县"},{"code":"510923","name":"大英县"},{"code":"510981","name":"射洪市"}]},{"code":"5110","name":"内江市","children":[{"code":"511002","name":"市中区"},{"code":"511011","name":"东兴区"},{"code":"511024","name":"威远县"},{"code":"511025","name":"资中县"},{"code":"511083","name":"隆昌市"}]},{"code":"5111","name":"乐山市","children":[{"code":"511102","name":"市中区"},{"code":"511111","name":"沙湾区"},{"code":"511112","name":"五通桥区"},{"code":"511113","name":"金口河区"},{"code":"511123","name":"犍为县"},{"code":"511124","name":"井研县"},{"code":"511126","name":"夹江县"},{"code":"511129","name":"沐川县"},{"code":"511132","name":"峨边彝族自治县"},{"code":"511133","name":"马边彝族自治县"},{"code":"511181","name":"峨眉山市"}]},{"code":"5113","name":"南充市","children":[{"code":"511302","name":"顺庆区"},{"code":"511303","name":"高坪区"},{"code":"511304","name":"嘉陵区"},{"code":"511321","name":"南部县"},{"code":"511322","name":"营山县"},{"code":"511323","name":"蓬安县"},{"code":"511324","name":"仪陇县"},{"code":"511325","name":"西充县"},{"code":"511381","name":"阆中市"}]},{"code":"5114","name":"眉山市","children":[{"code":"511402","name":"东坡区"},{"code":"511403","name":"彭山区"},{"code":"511421","name":"仁寿县"},{"code":"511423","name":"洪雅县"},{"code":"511424","name":"丹棱县"},{"code":"511425","name":"青神县"}]},{"code":"5115","name":"宜宾市","children":[{"code":"511502","name":"翠屏区"},{"code":"511503","name":"南溪区"},{"code":"511504","name":"叙州区"},{"code":"511523","name":"江安县"},{"code":"511524","name":"长宁县"},{"code":"511525","name":"高县"},{"code":"511526","name":"珙县"},{"code":"511527","name":"筠连县"},{"code":"511528","name":"兴文县"},{"code":"511529","name":"屏山县"}]},{"code":"5116","name":"广安市","children":[{"code":"511602","name":"广安区"},{"code":"511603","name":"前锋区"},{"code":"511621","name":"岳池县"},{"code":"511622","name":"武胜县"},{"code":"511623","name":"邻水县"},{"code":"511681","name":"华蓥市"}]},{"code":"5117","name":"达州市","children":[{"code":"511702","name":"通川区"},{"code":"511703","name":"达川区"},{"code":"511722","name":"宣汉县"},{"code":"511723","name":"开江县"},{"code":"511724","name":"大竹县"},{"code":"511725","name":"渠县"},{"code":"511781","name":"万源市"}]},{"code":"5118","name":"雅安市","children":[{"code":"511802","name":"雨城区"},{"code":"511803","name":"名山区"},{"code":"511822","name":"荥经县"},{"code":"511823","name":"汉源县"},{"code":"511824","name":"石棉县"},{"code":"511825","name":"天全县"},{"code":"511826","name":"芦山县"},{"code":"511827","name":"宝兴县"}]},{"code":"5119","name":"巴中市","children":[{"code":"511902","name":"巴州区"},{"code":"511903","name":"恩阳区"},{"code":"511921","name":"通江县"},{"code":"511922","name":"南江县"},{"code":"511923","name":"平昌县"}]},{"code":"5120","name":"资阳市","children":[{"code":"512002","name":"雁江区"},{"code":"512021","name":"安岳县"},{"code":"512022","name":"乐至县"}]},{"code":"5132","name":"阿坝藏族羌族自治州","children":[{"code":"513201","name":"马尔康市"},{"code":"513221","name":"汶川县"},{"code":"513222","name":"理县"},{"code":"513223","name":"茂县"},{"code":"513224","name":"松潘县"},{"code":"513225","name":"九寨沟县"},{"code":"513226","name":"金川县"},{"code":"513227","name":"小金县"},{"code":"513228","name":"黑水县"},{"code":"513230","name":"壤塘县"},{"code":"513231","name":"阿坝县"},{"code":"513232","name":"若尔盖县"},{"code":"513233","name":"红原县"}]},{"code":"5133","name":"甘孜藏族自治州","children":[{"code":"513301","name":"康定市"},{"code":"513322","name":"泸定县"},{"code":"513323","name":"丹巴县"},{"code":"513324","name":"九龙县"},{"code":"513325","name":"雅江县"},{"code":"513326","name":"道孚县"},{"code":"513327","name":"炉霍县"},{"code":"513328","name":"甘孜县"},{"code":"513329","name":"新龙县"},{"code":"513330","name":"德格县"},{"code":"513331","name":"白玉县"},{"code":"513332","name":"石渠县"},{"code":"513333","name":"色达县"},{"code":"513334","name":"理塘县"},{"code":"513335","name":"巴塘县"},{"code":"513336","name":"乡城县"},{"code":"513337","name":"稻城县"},{"code":"513338","name":"得荣县"}]},{"code":"5134","name":"凉山彝族自治州","children":[{"code":"513401","name":"西昌市"},{"code":"513402","name":"会理市"},{"code":"513422","name":"木里藏族自治县"},{"code":"513423","name":"盐源县"},{"code":"513424","name":"德昌县"},{"code":"513426","name":"会东县"},{"code":"513427","name":"宁南县"},{"code":"513428","name":"普格县"},{"code":"513429","name":"布拖县"},{"code":"513430","name":"金阳县"},{"code":"513431","name":"昭觉县"},{"code":"513432","name":"喜德县"},{"code":"513433","name":"冕宁县"},{"code":"513434","name":"越西县"},{"code":"513435","name":"甘洛县"},{"code":"513436","name":"美姑县"},{"code":"513437","name":"雷波县"}]}]},{"code":"52","name":"贵州省","children":[{"code":"5201","name":"贵阳市","children":[{"code":"520102","name":"南明区"},{"code":"520103","name":"云岩区"},{"code":"520111","name":"花溪区"},{"code":"520112","name":"乌当区"},{"code":"520113","name":"白云区"},{"code":"520115","name":"观山湖区"},{"code":"520121","name":"开阳县"},{"code":"520122","name":"息烽县"},{"code":"520123","name":"修文县"},{"code":"520181","name":"清镇市"}]},{"code":"5202","name":"六盘水市","children":[{"code":"520201","name":"钟山区"},{"code":"520203","name":"六枝特区"},{"code":"520204","name":"水城区"},{"code":"520281","name":"盘州市"}]},{"code":"5203","name":"遵义市","children":[{"code":"520302","name":"红花岗区"},{"code":"520303","name":"汇川区"},{"code":"520304","name":"播州区"},{"code":"520322","name":"桐梓县"},{"code":"520323","name":"绥阳县"},{"code":"520324","name":"正安县"},{"code":"520325","name":"道真仡佬族苗族自治县"},{"code":"520326","name":"务川仡佬族苗族自治县"},{"code":"520327","name":"凤冈县"},{"code":"520328","name":"湄潭县"},{"code":"520329","name":"余庆县"},{"code":"520330","name":"习水县"},{"code":"520381","name":"赤水市"},{"code":"520382","name":"仁怀市"}]},{"code":"5204","name":"安顺市","children":[{"code":"520402","name":"西秀区"},{"code":"520403","name":"平坝区"},{"code":"520422","name":"普定县"},{"code":"520423","name":"镇宁布依族苗族自治县"},{"code":"520424","name":"关岭布依族苗族自治县"},{"code":"520425","name":"紫云苗族布依族自治县"}]},{"code":"5205","name":"毕节市","children":[{"code":"520502","name":"七星关区"},{"code":"520521","name":"大方县"},{"code":"520523","name":"金沙县"},{"code":"520524","name":"织金县"},{"code":"520525","name":"纳雍县"},{"code":"520526","name":"威宁彝族回族苗族自治县"},{"code":"520527","name":"赫章县"},{"code":"520581","name":"黔西市"}]},{"code":"5206","name":"铜仁市","children":[{"code":"520602","name":"碧江区"},{"code":"520603","name":"万山区"},{"code":"520621","name":"江口县"},{"code":"520622","name":"玉屏侗族自治县"},{"code":"520623","name":"石阡县"},{"code":"520624","name":"思南县"},{"code":"520625","name":"印江土家族苗族自治县"},{"code":"520626","name":"德江县"},{"code":"520627","name":"沿河土家族自治县"},{"code":"520628","name":"松桃苗族自治县"}]},{"code":"5223","name":"黔西南布依族苗族自治州","children":[{"code":"522301","name":"兴义市"},{"code":"522302","name":"兴仁市"},{"code":"522323","name":"普安县"},{"code":"522324","name":"晴隆县"},{"code":"522325","name":"贞丰县"},{"code":"522326","name":"望谟县"},{"code":"522327","name":"册亨县"},{"code":"522328","name":"安龙县"}]},{"code":"5226","name":"黔东南苗族侗族自治州","children":[{"code":"522601","name":"凯里市"},{"code":"522622","name":"黄平县"},{"code":"522623","name":"施秉县"},{"code":"522624","name":"三穗县"},{"code":"522625","name":"镇远县"},{"code":"522626","name":"岑巩县"},{"code":"522627","name":"天柱县"},{"code":"522628","name":"锦屏县"},{"code":"522629","name":"剑河县"},{"code":"522630","name":"台江县"},{"code":"522631","name":"黎平县"},{"code":"522632","name":"榕江县"},{"code":"522633","name":"从江县"},{"code":"522634","name":"雷山县"},{"code":"522635","name":"麻江县"},{"code":"522636","name":"丹寨县"}]},{"code":"5227","name":"黔南布依族苗族自治州","children":[{"code":"522701","name":"都匀市"},{"code":"522702","name":"福泉市"},{"code":"522722","name":"荔波县"},{"code":"522723","name":"贵定县"},{"code":"522725","name":"瓮安县"},{"code":"522726","name":"独山县"},{"code":"522727","name":"平塘县"},{"code":"522728","name":"罗甸县"},{"code":"522729","name":"长顺县"},{"code":"522730","name":"龙里县"},{"code":"522731","name":"惠水县"},{"code":"522732","name":"三都水族自治县"}]}]},{"code":"53","name":"云南省","children":[{"code":"5301","name":"昆明市","children":[{"code":"530102","name":"五华区"},{"code":"530103","name":"盘龙区"},{"code":"530111","name":"官渡区"},{"code":"530112","name":"西山区"},{"code":"530113","name":"东川区"},{"code":"530114","name":"呈贡区"},{"code":"530115","name":"晋宁区"},{"code":"530124","name":"富民县"},{"code":"530125","name":"宜良县"},{"code":"530126","name":"石林彝族自治县"},{"code":"530127","name":"嵩明县"},{"code":"530128","name":"禄劝彝族苗族自治县"},{"code":"530129","name":"寻甸回族彝族自治县"},{"code":"530181","name":"安宁市"}]},{"code":"5303","name":"曲靖市","children":[{"code":"530302","name":"麒麟区"},{"code":"530303","name":"沾益区"},{"code":"530304","name":"马龙区"},{"code":"530322","name":"陆良县"},{"code":"530323","name":"师宗县"},{"code":"530324","name":"罗平县"},{"code":"530325","name":"富源县"},{"code":"530326","name":"会泽县"},{"code":"530381","name":"宣威市"}]},{"code":"5304","name":"玉溪市","children":[{"code":"530402","name":"红塔区"},{"code":"530403","name":"江川区"},{"code":"530423","name":"通海县"},{"code":"530424","name":"华宁县"},{"code":"530425","name":"易门县"},{"code":"530426","name":"峨山彝族自治县"},{"code":"530427","name":"新平彝族傣族自治县"},{"code":"530428","name":"元江哈尼族彝族傣族自治县"},{"code":"530481","name":"澄江市"}]},{"code":"5305","name":"保山市","children":[{"code":"530502","name":"隆阳区"},{"code":"530521","name":"施甸县"},{"code":"530523","name":"龙陵县"},{"code":"530524","name":"昌宁县"},{"code":"530581","name":"腾冲市"}]},{"code":"5306","name":"昭通市","children":[{"code":"530602","name":"昭阳区"},{"code":"530621","name":"鲁甸县"},{"code":"530622","name":"巧家县"},{"code":"530623","name":"盐津县"},{"code":"530624","name":"大关县"},{"code":"530625","name":"永善县"},{"code":"530626","name":"绥江县"},{"code":"530627","name":"镇雄县"},{"code":"530628","name":"彝良县"},{"code":"530629","name":"威信县"},{"code":"530681","name":"水富市"}]},{"code":"5307","name":"丽江市","children":[{"code":"530702","name":"古城区"},{"code":"530721","name":"玉龙纳西族自治县"},{"code":"530722","name":"永胜县"},{"code":"530723","name":"华坪县"},{"code":"530724","name":"宁蒗彝族自治县"}]},{"code":"5308","name":"普洱市","children":[{"code":"530802","name":"思茅区"},{"code":"530821","name":"宁洱哈尼族彝族自治县"},{"code":"530822","name":"墨江哈尼族自治县"},{"code":"530823","name":"景东彝族自治县"},{"code":"530824","name":"景谷傣族彝族自治县"},{"code":"530825","name":"镇沅彝族哈尼族拉祜族自治县"},{"code":"530826","name":"江城哈尼族彝族自治县"},{"code":"530827","name":"孟连傣族拉祜族佤族自治县"},{"code":"530828","name":"澜沧拉祜族自治县"},{"code":"530829","name":"西盟佤族自治县"}]},{"code":"5309","name":"临沧市","children":[{"code":"530902","name":"临翔区"},{"code":"530921","name":"凤庆县"},{"code":"530922","name":"云县"},{"code":"530923","name":"永德县"},{"code":"530924","name":"镇康县"},{"code":"530925","name":"双江拉祜族佤族布朗族傣族自治县"},{"code":"530926","name":"耿马傣族佤族自治县"},{"code":"530927","name":"沧源佤族自治县"}]},{"code":"5323","name":"楚雄彝族自治州","children":[{"code":"532301","name":"楚雄市"},{"code":"532302","name":"禄丰市"},{"code":"532322","name":"双柏县"},{"code":"532323","name":"牟定县"},{"code":"532324","name":"南华县"},{"code":"532325","name":"姚安县"},{"code":"532326","name":"大姚县"},{"code":"532327","name":"永仁县"},{"code":"532328","name":"元谋县"},{"code":"532329","name":"武定县"}]},{"code":"5325","name":"红河哈尼族彝族自治州","children":[{"code":"532501","name":"个旧市"},{"code":"532502","name":"开远市"},{"code":"532503","name":"蒙自市"},{"code":"532504","name":"弥勒市"},{"code":"532523","name":"屏边苗族自治县"},{"code":"532524","name":"建水县"},{"code":"532525","name":"石屏县"},{"code":"532527","name":"泸西县"},{"code":"532528","name":"元阳县"},{"code":"532529","name":"红河县"},{"code":"532530","name":"金平苗族瑶族傣族自治县"},{"code":"532531","name":"绿春县"},{"code":"532532","name":"河口瑶族自治县"}]},{"code":"5326","name":"文山壮族苗族自治州","children":[{"code":"532601","name":"文山市"},{"code":"532622","name":"砚山县"},{"code":"532623","name":"西畴县"},{"code":"532624","name":"麻栗坡县"},{"code":"532625","name":"马关县"},{"code":"532626","name":"丘北县"},{"code":"532627","name":"广南县"},{"code":"532628","name":"富宁县"}]},{"code":"5328","name":"西双版纳傣族自治州","children":[{"code":"532801","name":"景洪市"},{"code":"532822","name":"勐海县"},{"code":"532823","name":"勐腊县"}]},{"code":"5329","name":"大理白族自治州","children":[{"code":"532901","name":"大理市"},{"code":"532922","name":"漾濞彝族自治县"},{"code":"532923","name":"祥云县"},{"code":"532924","name":"宾川县"},{"code":"532925","name":"弥渡县"},{"code":"532926","name":"南涧彝族自治县"},{"code":"532927","name":"巍山彝族回族自治县"},{"code":"532928","name":"永平县"},{"code":"532929","name":"云龙县"},{"code":"532930","name":"洱源县"},{"code":"532931","name":"剑川县"},{"code":"532932","name":"鹤庆县"}]},{"code":"5331","name":"德宏傣族景颇族自治州","children":[{"code":"533102","name":"瑞丽市"},{"code":"533103","name":"芒市"},{"code":"533122","name":"梁河县"},{"code":"533123","name":"盈江县"},{"code":"533124","name":"陇川县"}]},{"code":"5333","name":"怒江傈僳族自治州","children":[{"code":"533301","name":"泸水市"},{"code":"533323","name":"福贡县"},{"code":"533324","name":"贡山独龙族怒族自治县"},{"code":"533325","name":"兰坪白族普米族自治县"}]},{"code":"5334","name":"迪庆藏族自治州","children":[{"code":"533401","name":"香格里拉市"},{"code":"533422","name":"德钦县"},{"code":"533423","name":"维西傈僳族自治县"}]}]},{"code":"54","name":"西藏自治区","children":[{"code":"5401","name":"拉萨市","children":[{"code":"540102","name":"城关区"},{"code":"540103","name":"堆龙德庆区"},{"code":"540104","name":"达孜区"},{"code":"540121","name":"林周县"},{"code":"540122","name":"当雄县"},{"code":"540123","name":"尼木县"},{"code":"540124","name":"曲水县"},{"code":"540127","name":"墨竹工卡县"},{"code":"540171","name":"格尔木藏青工业园区"},{"code":"540172","name":"拉萨经济技术开发区"},{"code":"540173","name":"西藏文化旅游创意园区"},{"code":"540174","name":"达孜工业园区"}]},{"code":"5402","name":"日喀则市","children":[{"code":"540202","name":"桑珠孜区"},{"code":"540221","name":"南木林县"},{"code":"540222","name":"江孜县"},{"code":"540223","name":"定日县"},{"code":"540224","name":"萨迦县"},{"code":"540225","name":"拉孜县"},{"code":"540226","name":"昂仁县"},{"code":"540227","name":"谢通门县"},{"code":"540228","name":"白朗县"},{"code":"540229","name":"仁布县"},{"code":"540230","name":"康马县"},{"code":"540231","name":"定结县"},{"code":"540232","name":"仲巴县"},{"code":"540233","name":"亚东县"},{"code":"540234","name":"吉隆县"},{"code":"540235","name":"聂拉木县"},{"code":"540236","name":"萨嘎县"},{"code":"540237","name":"岗巴县"}]},{"code":"5403","name":"昌都市","children":[{"code":"540302","name":"卡若区"},{"code":"540321","name":"江达县"},{"code":"540322","name":"贡觉县"},{"code":"540323","name":"类乌齐县"},{"code":"540324","name":"丁青县"},{"code":"540325","name":"察雅县"},{"code":"540326","name":"八宿县"},{"code":"540327","name":"左贡县"},{"code":"540328","name":"芒康县"},{"code":"540329","name":"洛隆县"},{"code":"540330","name":"边坝县"}]},{"code":"5404","name":"林芝市","children":[{"code":"540402","name":"巴宜区"},{"code":"540421","name":"工布江达县"},{"code":"540423","name":"墨脱县"},{"code":"540424","name":"波密县"},{"code":"540425","name":"察隅县"},{"code":"540426","name":"朗县"},{"code":"540481","name":"米林市"}]},{"code":"5405","name":"山南市","children":[{"code":"540502","name":"乃东区"},{"code":"540521","name":"扎囊县"},{"code":"540522","name":"贡嘎县"},{"code":"540523","name":"桑日县"},{"code":"540524","name":"琼结县"},{"code":"540525","name":"曲松县"},{"code":"540526","name":"措美县"},{"code":"540527","name":"洛扎县"},{"code":"540528","name":"加查县"},{"code":"540529","name":"隆子县"},{"code":"540531","name":"浪卡子县"},{"code":"540581","name":"错那市"}]},{"code":"5406","name":"那曲市","children":[{"code":"540602","name":"色尼区"},{"code":"540621","name":"嘉黎县"},{"code":"540622","name":"比如县"},{"code":"540623","name":"聂荣县"},{"code":"540624","name":"安多县"},{"code":"540625","name":"申扎县"},{"code":"540626","name":"索县"},{"code":"540627","name":"班戈县"},{"code":"540628","name":"巴青县"},{"code":"540629","name":"尼玛县"},{"code":"540630","name":"双湖县"}]},{"code":"5425","name":"阿里地区","children":[{"code":"542521","name":"普兰县"},{"code":"542522","name":"札达县"},{"code":"542523","name":"噶尔县"},{"code":"542524","name":"日土县"},{"code":"542525","name":"革吉县"},{"code":"542526","name":"改则县"},{"code":"542527","name":"措勤县"}]}]},{"code":"61","name":"陕西省","children":[{"code":"6101","name":"西安市","children":[{"code":"610102","name":"新城区"},{"code":"610103","name":"碑林区"},{"code":"610104","name":"莲湖区"},{"code":"610111","name":"灞桥区"},{"code":"610112","name":"未央区"},{"code":"610113","name":"雁塔区"},{"code":"610114","name":"阎良区"},{"code":"610115","name":"临潼区"},{"code":"610116","name":"长安区"},{"code":"610117","name":"高陵区"},{"code":"610118","name":"鄠邑区"},{"code":"610122","name":"蓝田县"},{"code":"610124","name":"周至县"}]},{"code":"6102","name":"铜川市","children":[{"code":"610202","name":"王益区"},{"code":"610203","name":"印台区"},{"code":"610204","name":"耀州区"},{"code":"610222","name":"宜君县"}]},{"code":"6103","name":"宝鸡市","children":[{"code":"610302","name":"渭滨区"},{"code":"610303","name":"金台区"},{"code":"610304","name":"陈仓区"},{"code":"610305","name":"凤翔区"},{"code":"610323","name":"岐山县"},{"code":"610324","name":"扶风县"},{"code":"610326","name":"眉县"},{"code":"610327","name":"陇县"},{"code":"610328","name":"千阳县"},{"code":"610329","name":"麟游县"},{"code":"610330","name":"凤县"},{"code":"610331","name":"太白县"}]},{"code":"6104","name":"咸阳市","children":[{"code":"610402","name":"秦都区"},{"code":"610403","name":"杨陵区"},{"code":"610404","name":"渭城区"},{"code":"610422","name":"三原县"},{"code":"610423","name":"泾阳县"},{"code":"610424","name":"乾县"},{"code":"610425","name":"礼泉县"},{"code":"610426","name":"永寿县"},{"code":"610428","name":"长武县"},{"code":"610429","name":"旬邑县"},{"code":"610430","name":"淳化县"},{"code":"610431","name":"武功县"},{"code":"610481","name":"兴平市"},{"code":"610482","name":"彬州市"}]},{"code":"6105","name":"渭南市","children":[{"code":"610502","name":"临渭区"},{"code":"610503","name":"华州区"},{"code":"610522","name":"潼关县"},{"code":"610523","name":"大荔县"},{"code":"610524","name":"合阳县"},{"code":"610525","name":"澄城县"},{"code":"610526","name":"蒲城县"},{"code":"610527","name":"白水县"},{"code":"610528","name":"富平县"},{"code":"610581","name":"韩城市"},{"code":"610582","name":"华阴市"}]},{"code":"6106","name":"延安市","children":[{"code":"610602","name":"宝塔区"},{"code":"610603","name":"安塞区"},{"code":"610621","name":"延长县"},{"code":"610622","name":"延川县"},{"code":"610625","name":"志丹县"},{"code":"610626","name":"吴起县"},{"code":"610627","name":"甘泉县"},{"code":"610628","name":"富县"},{"code":"610629","name":"洛川县"},{"code":"610630","name":"宜川县"},{"code":"610631","name":"黄龙县"},{"code":"610632","name":"黄陵县"},{"code":"610681","name":"子长市"}]},{"code":"6107","name":"汉中市","children":[{"code":"610702","name":"汉台区"},{"code":"610703","name":"南郑区"},{"code":"610722","name":"城固县"},{"code":"610723","name":"洋县"},{"code":"610724","name":"西乡县"},{"code":"610725","name":"勉县"},{"code":"610726","name":"宁强县"},{"code":"610727","name":"略阳县"},{"code":"610728","name":"镇巴县"},{"code":"610729","name":"留坝县"},{"code":"610730","name":"佛坪县"}]},{"code":"6108","name":"榆林市","children":[{"code":"610802","name":"榆阳区"},{"code":"610803","name":"横山区"},{"code":"610822","name":"府谷县"},{"code":"610824","name":"靖边县"},{"code":"610825","name":"定边县"},{"code":"610826","name":"绥德县"},{"code":"610827","name":"米脂县"},{"code":"610828","name":"佳县"},{"code":"610829","name":"吴堡县"},{"code":"610830","name":"清涧县"},{"code":"610831","name":"子洲县"},{"code":"610881","name":"神木市"}]},{"code":"6109","name":"安康市","children":[{"code":"610902","name":"汉滨区"},{"code":"610921","name":"汉阴县"},{"code":"610922","name":"石泉县"},{"code":"610923","name":"宁陕县"},{"code":"610924","name":"紫阳县"},{"code":"610925","name":"岚皋县"},{"code":"610926","name":"平利县"},{"code":"610927","name":"镇坪县"},{"code":"610929","name":"白河县"},{"code":"610981","name":"旬阳市"}]},{"code":"6110","name":"商洛市","children":[{"code":"611002","name":"商州区"},{"code":"611021","name":"洛南县"},{"code":"611022","name":"丹凤县"},{"code":"611023","name":"商南县"},{"code":"611024","name":"山阳县"},{"code":"611025","name":"镇安县"},{"code":"611026","name":"柞水县"}]}]},{"code":"62","name":"甘肃省","children":[{"code":"6201","name":"兰州市","children":[{"code":"620102","name":"城关区"},{"code":"620103","name":"七里河区"},{"code":"620104","name":"西固区"},{"code":"620105","name":"安宁区"},{"code":"620111","name":"红古区"},{"code":"620121","name":"永登县"},{"code":"620122","name":"皋兰县"},{"code":"620123","name":"榆中县"},{"code":"620171","name":"兰州新区"}]},{"code":"6202","name":"嘉峪关市","children":[{"code":"620201001","name":"雄关街道"},{"code":"620201002","name":"钢城街道"},{"code":"620201100","name":"新城镇"},{"code":"620201101","name":"峪泉镇"},{"code":"620201102","name":"文殊镇"}]},{"code":"6203","name":"金昌市","children":[{"code":"620302","name":"金川区"},{"code":"620321","name":"永昌县"}]},{"code":"6204","name":"白银市","children":[{"code":"620402","name":"白银区"},{"code":"620403","name":"平川区"},{"code":"620421","name":"靖远县"},{"code":"620422","name":"会宁县"},{"code":"620423","name":"景泰县"}]},{"code":"6205","name":"天水市","children":[{"code":"620502","name":"秦州区"},{"code":"620503","name":"麦积区"},{"code":"620521","name":"清水县"},{"code":"620522","name":"秦安县"},{"code":"620523","name":"甘谷县"},{"code":"620524","name":"武山县"},{"code":"620525","name":"张家川回族自治县"}]},{"code":"6206","name":"武威市","children":[{"code":"620602","name":"凉州区"},{"code":"620621","name":"民勤县"},{"code":"620622","name":"古浪县"},{"code":"620623","name":"天祝藏族自治县"}]},{"code":"6207","name":"张掖市","children":[{"code":"620702","name":"甘州区"},{"code":"620721","name":"肃南裕固族自治县"},{"code":"620722","name":"民乐县"},{"code":"620723","name":"临泽县"},{"code":"620724","name":"高台县"},{"code":"620725","name":"山丹县"}]},{"code":"6208","name":"平凉市","children":[{"code":"620802","name":"崆峒区"},{"code":"620821","name":"泾川县"},{"code":"620822","name":"灵台县"},{"code":"620823","name":"崇信县"},{"code":"620825","name":"庄浪县"},{"code":"620826","name":"静宁县"},{"code":"620881","name":"华亭市"}]},{"code":"6209","name":"酒泉市","children":[{"code":"620902","name":"肃州区"},{"code":"620921","name":"金塔县"},{"code":"620922","name":"瓜州县"},{"code":"620923","name":"肃北蒙古族自治县"},{"code":"620924","name":"阿克塞哈萨克族自治县"},{"code":"620981","name":"玉门市"},{"code":"620982","name":"敦煌市"}]},{"code":"6210","name":"庆阳市","children":[{"code":"621002","name":"西峰区"},{"code":"621021","name":"庆城县"},{"code":"621022","name":"环县"},{"code":"621023","name":"华池县"},{"code":"621024","name":"合水县"},{"code":"621025","name":"正宁县"},{"code":"621026","name":"宁县"},{"code":"621027","name":"镇原县"}]},{"code":"6211","name":"定西市","children":[{"code":"621102","name":"安定区"},{"code":"621121","name":"通渭县"},{"code":"621122","name":"陇西县"},{"code":"621123","name":"渭源县"},{"code":"621124","name":"临洮县"},{"code":"621125","name":"漳县"},{"code":"621126","name":"岷县"}]},{"code":"6212","name":"陇南市","children":[{"code":"621202","name":"武都区"},{"code":"621221","name":"成县"},{"code":"621222","name":"文县"},{"code":"621223","name":"宕昌县"},{"code":"621224","name":"康县"},{"code":"621225","name":"西和县"},{"code":"621226","name":"礼县"},{"code":"621227","name":"徽县"},{"code":"621228","name":"两当县"}]},{"code":"6229","name":"临夏回族自治州","children":[{"code":"622901","name":"临夏市"},{"code":"622921","name":"临夏县"},{"code":"622922","name":"康乐县"},{"code":"622923","name":"永靖县"},{"code":"622924","name":"广河县"},{"code":"622925","name":"和政县"},{"code":"622926","name":"东乡族自治县"},{"code":"622927","name":"积石山保安族东乡族撒拉族自治县"}]},{"code":"6230","name":"甘南藏族自治州","children":[{"code":"623001","name":"合作市"},{"code":"623021","name":"临潭县"},{"code":"623022","name":"卓尼县"},{"code":"623023","name":"舟曲县"},{"code":"623024","name":"迭部县"},{"code":"623025","name":"玛曲县"},{"code":"623026","name":"碌曲县"},{"code":"623027","name":"夏河县"}]}]},{"code":"63","name":"青海省","children":[{"code":"6301","name":"西宁市","children":[{"code":"630102","name":"城东区"},{"code":"630103","name":"城中区"},{"code":"630104","name":"城西区"},{"code":"630105","name":"城北区"},{"code":"630106","name":"湟中区"},{"code":"630121","name":"大通回族土族自治县"},{"code":"630123","name":"湟源县"}]},{"code":"6302","name":"海东市","children":[{"code":"630202","name":"乐都区"},{"code":"630203","name":"平安区"},{"code":"630222","name":"民和回族土族自治县"},{"code":"630223","name":"互助土族自治县"},{"code":"630224","name":"化隆回族自治县"},{"code":"630225","name":"循化撒拉族自治县"}]},{"code":"6322","name":"海北藏族自治州","children":[{"code":"632221","name":"门源回族自治县"},{"code":"632222","name":"祁连县"},{"code":"632223","name":"海晏县"},{"code":"632224","name":"刚察县"}]},{"code":"6323","name":"黄南藏族自治州","children":[{"code":"632301","name":"同仁市"},{"code":"632322","name":"尖扎县"},{"code":"632323","name":"泽库县"},{"code":"632324","name":"河南蒙古族自治县"}]},{"code":"6325","name":"海南藏族自治州","children":[{"code":"632521","name":"共和县"},{"code":"632522","name":"同德县"},{"code":"632523","name":"贵德县"},{"code":"632524","name":"兴海县"},{"code":"632525","name":"贵南县"}]},{"code":"6326","name":"果洛藏族自治州","children":[{"code":"632621","name":"玛沁县"},{"code":"632622","name":"班玛县"},{"code":"632623","name":"甘德县"},{"code":"632624","name":"达日县"},{"code":"632625","name":"久治县"},{"code":"632626","name":"玛多县"}]},{"code":"6327","name":"玉树藏族自治州","children":[{"code":"632701","name":"玉树市"},{"code":"632722","name":"杂多县"},{"code":"632723","name":"称多县"},{"code":"632724","name":"治多县"},{"code":"632725","name":"囊谦县"},{"code":"632726","name":"曲麻莱县"}]},{"code":"6328","name":"海西蒙古族藏族自治州","children":[{"code":"632801","name":"格尔木市"},{"code":"632802","name":"德令哈市"},{"code":"632803","name":"茫崖市"},{"code":"632821","name":"乌兰县"},{"code":"632822","name":"都兰县"},{"code":"632823","name":"天峻县"},{"code":"632857","name":"大柴旦行政委员会"}]}]},{"code":"64","name":"宁夏回族自治区","children":[{"code":"6401","name":"银川市","children":[{"code":"640104","name":"兴庆区"},{"code":"640105","name":"西夏区"},{"code":"640106","name":"金凤区"},{"code":"640121","name":"永宁县"},{"code":"640122","name":"贺兰县"},{"code":"640181","name":"灵武市"}]},{"code":"6402","name":"石嘴山市","children":[{"code":"640202","name":"大武口区"},{"code":"640205","name":"惠农区"},{"code":"640221","name":"平罗县"}]},{"code":"6403","name":"吴忠市","children":[{"code":"640302","name":"利通区"},{"code":"640303","name":"红寺堡区"},{"code":"640323","name":"盐池县"},{"code":"640324","name":"同心县"},{"code":"640381","name":"青铜峡市"}]},{"code":"6404","name":"固原市","children":[{"code":"640402","name":"原州区"},{"code":"640422","name":"西吉县"},{"code":"640423","name":"隆德县"},{"code":"640424","name":"泾源县"},{"code":"640425","name":"彭阳县"}]},{"code":"6405","name":"中卫市","children":[{"code":"640502","name":"沙坡头区"},{"code":"640521","name":"中宁县"},{"code":"640522","name":"海原县"}]}]},{"code":"65","name":"新疆维吾尔自治区","children":[{"code":"6501","name":"乌鲁木齐市","children":[{"code":"650102","name":"天山区"},{"code":"650103","name":"沙依巴克区"},{"code":"650104","name":"新市区"},{"code":"650105","name":"水磨沟区"},{"code":"650106","name":"头屯河区"},{"code":"650107","name":"达坂城区"},{"code":"650109","name":"米东区"},{"code":"650121","name":"乌鲁木齐县"}]},{"code":"6502","name":"克拉玛依市","children":[{"code":"650202","name":"独山子区"},{"code":"650203","name":"克拉玛依区"},{"code":"650204","name":"白碱滩区"},{"code":"650205","name":"乌尔禾区"}]},{"code":"6504","name":"吐鲁番市","children":[{"code":"650402","name":"高昌区"},{"code":"650421","name":"鄯善县"},{"code":"650422","name":"托克逊县"}]},{"code":"6505","name":"哈密市","children":[{"code":"650502","name":"伊州区"},{"code":"650521","name":"巴里坤哈萨克自治县"},{"code":"650522","name":"伊吾县"}]},{"code":"6523","name":"昌吉回族自治州","children":[{"code":"652301","name":"昌吉市"},{"code":"652302","name":"阜康市"},{"code":"652323","name":"呼图壁县"},{"code":"652324","name":"玛纳斯县"},{"code":"652325","name":"奇台县"},{"code":"652327","name":"吉木萨尔县"},{"code":"652328","name":"木垒哈萨克自治县"}]},{"code":"6527","name":"博尔塔拉蒙古自治州","children":[{"code":"652701","name":"博乐市"},{"code":"652702","name":"阿拉山口市"},{"code":"652722","name":"精河县"},{"code":"652723","name":"温泉县"}]},{"code":"6528","name":"巴音郭楞蒙古自治州","children":[{"code":"652801","name":"库尔勒市"},{"code":"652822","name":"轮台县"},{"code":"652823","name":"尉犁县"},{"code":"652824","name":"若羌县"},{"code":"652825","name":"且末县"},{"code":"652826","name":"焉耆回族自治县"},{"code":"652827","name":"和静县"},{"code":"652828","name":"和硕县"},{"code":"652829","name":"博湖县"}]},{"code":"6529","name":"阿克苏地区","children":[{"code":"652901","name":"阿克苏市"},{"code":"652902","name":"库车市"},{"code":"652922","name":"温宿县"},{"code":"652924","name":"沙雅县"},{"code":"652925","name":"新和县"},{"code":"652926","name":"拜城县"},{"code":"652927","name":"乌什县"},{"code":"652928","name":"阿瓦提县"},{"code":"652929","name":"柯坪县"}]},{"code":"6530","name":"克孜勒苏柯尔克孜自治州","children":[{"code":"653001","name":"阿图什市"},{"code":"653022","name":"阿克陶县"},{"code":"653023","name":"阿合奇县"},{"code":"653024","name":"乌恰县"}]},{"code":"6531","name":"喀什地区","children":[{"code":"653101","name":"喀什市"},{"code":"653121","name":"疏附县"},{"code":"653122","name":"疏勒县"},{"code":"653123","name":"英吉沙县"},{"code":"653124","name":"泽普县"},{"code":"653125","name":"莎车县"},{"code":"653126","name":"叶城县"},{"code":"653127","name":"麦盖提县"},{"code":"653128","name":"岳普湖县"},{"code":"653129","name":"伽师县"},{"code":"653130","name":"巴楚县"},{"code":"653131","name":"塔什库尔干塔吉克自治县"}]},{"code":"6532","name":"和田地区","children":[{"code":"653201","name":"和田市"},{"code":"653221","name":"和田县"},{"code":"653222","name":"墨玉县"},{"code":"653223","name":"皮山县"},{"code":"653224","name":"洛浦县"},{"code":"653225","name":"策勒县"},{"code":"653226","name":"于田县"},{"code":"653227","name":"民丰县"}]},{"code":"6540","name":"伊犁哈萨克自治州","children":[{"code":"654002","name":"伊宁市"},{"code":"654003","name":"奎屯市"},{"code":"654004","name":"霍尔果斯市"},{"code":"654021","name":"伊宁县"},{"code":"654022","name":"察布查尔锡伯自治县"},{"code":"654023","name":"霍城县"},{"code":"654024","name":"巩留县"},{"code":"654025","name":"新源县"},{"code":"654026","name":"昭苏县"},{"code":"654027","name":"特克斯县"},{"code":"654028","name":"尼勒克县"}]},{"code":"6542","name":"塔城地区","children":[{"code":"654201","name":"塔城市"},{"code":"654202","name":"乌苏市"},{"code":"654203","name":"沙湾市"},{"code":"654221","name":"额敏县"},{"code":"654224","name":"托里县"},{"code":"654225","name":"裕民县"},{"code":"654226","name":"和布克赛尔蒙古自治县"}]},{"code":"6543","name":"阿勒泰地区","children":[{"code":"654301","name":"阿勒泰市"},{"code":"654321","name":"布尔津县"},{"code":"654322","name":"富蕴县"},{"code":"654323","name":"福海县"},{"code":"654324","name":"哈巴河县"},{"code":"654325","name":"青河县"},{"code":"654326","name":"吉木乃县"}]},{"code":"6590","name":"自治区直辖县级行政区划","children":[{"code":"659001","name":"石河子市"},{"code":"659002","name":"阿拉尔市"},{"code":"659003","name":"图木舒克市"},{"code":"659004","name":"五家渠市"},{"code":"659005","name":"北屯市"},{"code":"659006","name":"铁门关市"},{"code":"659007","name":"双河市"},{"code":"659008","name":"可克达拉市"},{"code":"659009","name":"昆玉市"},{"code":"659010","name":"胡杨河市"},{"code":"659011","name":"新星市"},{"code":"659012","name":"白杨市"}]}]}]`);function ke(e){return{value:String(e.code),label:String(e.name||``),children:e.children?.length?e.children.map(ke):void 0}}var Ae=Oe.map(ke),je={};function Me(e){for(let t of e)je[t.value]=t.label,t.children?.length&&Me(t.children)}Me(Ae);var Ne=(0,t.defineComponent)({name:`FouAreaPicker`,__name:`index`,props:{modelValue:{default:null},placeholder:{default:`请选择省 / 市 / 区`},clearable:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},filterable:{type:Boolean,default:!0},showAllLevels:{type:Boolean,default:!0},separator:{default:` / `},collapseTags:{type:Boolean,default:!1},maxCollapseTags:{default:1},size:{default:`default`},multiple:{type:Boolean,default:!1},checkStrictly:{type:Boolean,default:!1},emitPath:{type:Boolean,default:!0}},emits:[`update:modelValue`,`change`,`clear`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.computed)(()=>({multiple:r.multiple,checkStrictly:r.checkStrictly,emitPath:r.emitPath})),o=e=>e==null?[]:Array.isArray(e)?e.length&&Array.isArray(e[0])?e.flat().map(String):e.map(String):[String(e)],s=e=>o(e).map(e=>je[e]||``).filter(Boolean),c=e=>i(`update:modelValue`,e),l=e=>i(`change`,e,s(e));return(n,r)=>((0,t.openBlock)(),(0,t.createBlock)(De,{class:`fou-area-picker`,"model-value":e.modelValue,options:(0,t.unref)(Ae),props:(0,t.unref)(a),placeholder:e.placeholder,clearable:e.clearable,disabled:e.disabled,filterable:e.filterable,"show-all-levels":e.showAllLevels,separator:e.separator,"collapse-tags":e.collapseTags,"max-collapse-tags":e.maxCollapseTags,size:e.size,"onUpdate:modelValue":c,onChange:l,onClear:r[0]||=e=>i(`clear`)},null,8,[`model-value`,`options`,`props`,`placeholder`,`clearable`,`disabled`,`filterable`,`show-all-levels`,`separator`,`collapse-tags`,`max-collapse-tags`,`size`]))}}),Pe=v({default:()=>Fe}),Fe=Ne,Ie=[`autofocus`,`disabled`,`placeholder`,`readonly`,`required`,`type`,`value`,`onKeydown`],Le={class:`fou-autocomplete-suffix`},Re={key:0,class:`fou-autocomplete-list`},ze=[`title`,`onClick`,`onMouseenter`],Be={class:`fou-ellipsis`},Ve={key:0,class:`fou-autocomplete-empty`},He=(0,t.defineComponent)({name:`FouAutocomplete`,__name:`index`,props:{value:{default:``},modelValue:{type:[String,Boolean],default:``},placeholder:{default:``},disabled:{type:Boolean,default:!1},clearable:{type:Boolean,default:!1},autofocus:{type:Boolean,default:!1},required:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},type:{default:`text`},maxlength:{default:0},minlength:{default:1},width:{default:`100%`},height:{default:`32px`},list:{default:()=>[]},searchekey:{default:()=>[`value`]},showkey:{default:()=>[`value`]},showline:{default:` - `},valueKey:{default:`value`}},emits:[`update:modelValue`,`change`,`itemclick`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.ref)(!1),o=(0,t.ref)(!1),s=(0,t.ref)(null),c=(0,t.ref)([...r.list]),l=(0,t.ref)(-1),u=(0,t.computed)(()=>r.modelValue!==``&&r.modelValue!==void 0&&r.modelValue!==null?String(r.modelValue):r.value||``),d=(0,t.computed)(()=>u.value.length>0);(0,t.watch)(()=>r.list,e=>{c.value=[...e]},{deep:!0});let f=e=>r.showkey.map(t=>Reflect.has(e,t)?String(e[t]??``):``).filter(Boolean).join(r.showline),p=(e,t,n)=>{let r=[];if(!Array.isArray(e)||typeof t!=`string`)return c.value=r,r;let i=Array.isArray(n)?n:[`value`],a=t.toLowerCase();for(let t of e)for(let e of i)if(Reflect.has(t,e)&&String(t[e]).toLowerCase().includes(a)){r.push(t);break}return c.value=r,l.value=r.length?0:-1,r},m=e=>{let n=e.target;(0,t.nextTick)(()=>{s.value&&(n.value.length>0?(a.value=!0,p(r.list,n.value,r.searchekey)):(a.value=!1,c.value=[...r.list]))}),i(`update:modelValue`,n.value),i(`change`,n.value)},h=e=>{let t=String(e[r.valueKey]??e.value??``);s.value&&(s.value.value=t),i(`change`,t),i(`update:modelValue`,t),i(`itemclick`,e),a.value=!1},g=()=>{if(!(r.disabled||r.readonly)&&(a.value=!a.value,a.value)){s.value?.focus();let e=s.value?.value||``;e?p(r.list,e,r.searchekey):c.value=[...r.list]}},_=()=>{if(o.value=!0,!r.disabled&&!r.readonly){a.value=!0;let e=s.value?.value||``;e?p(r.list,e,r.searchekey):c.value=[...r.list]}},v=()=>{s.value&&(s.value.value=``),a.value=!1,c.value=[...r.list],i(`change`,``),i(`update:modelValue`,``),s.value?.focus()},y=e=>{if(!a.value||!c.value.length)return;let t=c.value.length;l.value=(l.value+e+t)%t},b=()=>{l.value>=0&&c.value[l.value]&&h(c.value[l.value])},x=e=>{let t=e.target?.closest?.(`.fou-autocomplete`),n=s.value?.closest(`.fou-autocomplete`);n&&t!==n&&(a.value=!1)};return(0,t.onMounted)(()=>document.addEventListener(`mousedown`,x)),(0,t.onUnmounted)(()=>document.removeEventListener(`mousedown`,x)),(e,n)=>{let i=k;return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-autocomplete`,{"is-disabled":r.disabled,"is-focused":(0,t.unref)(o),"is-clearable":r.clearable,"has-value":(0,t.unref)(d)}]),style:(0,t.normalizeStyle)({width:r.width})},[(0,t.createElementVNode)(`input`,{ref_key:`inputRef`,ref:s,autofocus:r.autofocus,class:`fou-autocomplete-input`,disabled:r.disabled,placeholder:r.placeholder,readonly:r.readonly,required:r.required,style:(0,t.normalizeStyle)({height:r.height}),type:r.type,value:(0,t.unref)(u),onChange:m,onInput:m,onFocus:_,onBlur:n[0]||=e=>o.value=!1,onKeydown:[n[1]||=(0,t.withKeys)((0,t.withModifiers)(e=>y(1),[`prevent`]),[`down`]),n[2]||=(0,t.withKeys)((0,t.withModifiers)(e=>y(-1),[`prevent`]),[`up`]),(0,t.withKeys)((0,t.withModifiers)(b,[`prevent`]),[`enter`]),n[3]||=(0,t.withKeys)(e=>a.value=!1,[`esc`])]},null,44,Ie),(0,t.createElementVNode)(`div`,Le,[(0,t.withDirectives)((0,t.createElementVNode)(`button`,{type:`button`,class:`fou-autocomplete-clear`,tabindex:`-1`,title:`清空`,onMousedown:n[4]||=(0,t.withModifiers)(()=>{},[`prevent`]),onClick:v},[(0,t.createVNode)(i,{icon:`close-circle-fill`})],544),[[t.vShow,r.clearable&&(0,t.unref)(d)]]),(0,t.createElementVNode)(`button`,{type:`button`,class:(0,t.normalizeClass)([`fou-autocomplete-caret`,{"is-open":(0,t.unref)(a)}]),tabindex:`-1`,onMousedown:n[5]||=(0,t.withModifiers)(()=>{},[`prevent`]),onClick:g},[(0,t.createVNode)(i,{icon:`arrow-down-s-line`})],34)]),(0,t.unref)(a)?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Re,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(c),(e,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:r,class:(0,t.normalizeClass)([`fou-autocomplete-list-item`,{"is-active":r===(0,t.unref)(l)}]),title:f(e),onMousedown:n[6]||=(0,t.withModifiers)(()=>{},[`prevent`]),onClick:t=>h(e),onMouseenter:e=>l.value=r},[(0,t.createElementVNode)(`span`,Be,(0,t.toDisplayString)(f(e)),1)],42,ze))),128)),(0,t.unref)(c).length?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Ve,`无匹配数据`))])):(0,t.createCommentVNode)(``,!0)],6)}}}),Ue=v({default:()=>We}),We=S(He,[[`__scopeId`,`data-v-0f14f0a8`]]),Ge=[`src`,`alt`],Ke={key:1,class:`fou-avatar__slot`},qe={key:2,class:`fou-avatar__text`},Je=(0,t.defineComponent)({name:`FouAvatar`,__name:`index`,props:{src:{},alt:{default:``},size:{default:`default`},shape:{default:`circle`},fit:{default:`cover`},text:{default:``},icon:{}},emits:[`error`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.ref)(!1);(0,t.watch)(()=>r.src,()=>{a.value=!1});let o=(0,t.computed)(()=>typeof r.size==`number`?`custom`:r.size),s=(0,t.computed)(()=>{if(typeof r.size!=`number`)return;let e=`${r.size}px`;return{width:e,height:e,fontSize:`${Math.max(12,r.size*.4)}px`}}),c=(0,t.computed)(()=>r.text?r.text.slice(0,2):`?`),l=e=>{a.value=!0,i(`error`,e)};return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{class:(0,t.normalizeClass)([`fou-avatar`,[`fou-avatar--${e.shape}`,`fou-avatar--${(0,t.unref)(o)}`,{"is-image":!!e.src&&!(0,t.unref)(a)}]]),style:(0,t.normalizeStyle)((0,t.unref)(s))},[e.src&&!(0,t.unref)(a)?((0,t.openBlock)(),(0,t.createElementBlock)(`img`,{key:0,class:`fou-avatar__img`,src:e.src,alt:e.alt,style:(0,t.normalizeStyle)({objectFit:e.fit}),onError:l},null,44,Ge)):n.$slots.default?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Ke,[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)])):((0,t.openBlock)(),(0,t.createElementBlock)(`span`,qe,(0,t.toDisplayString)((0,t.unref)(c)),1))],6))}}),Ye=v({default:()=>Xe}),Xe=S(Je,[[`__scopeId`,`data-v-3be043fa`]]),Ze=(0,t.defineComponent)({name:`FouBacktop`,__name:`index`,props:{scrollVisibilityHeight:{default:void 0},visibilityHeight:{default:void 0},right:{default:40},bottom:{default:40},zIndex:{default:100},target:{default:``}},setup(e){let n=e,r=(0,t.computed)(()=>n.visibilityHeight??n.scrollVisibilityHeight??200),i=(0,t.ref)(!1),a=()=>n.target&&document.querySelector(n.target)||window,o=e=>e===window?window.scrollY||document.documentElement.scrollTop:e.scrollTop,s=(0,t.computed)(()=>({right:`${n.right}px`,bottom:`${n.bottom}px`,zIndex:String(n.zIndex)})),c=()=>{let e=a();i.value=o(e)>=r.value},l=()=>{let e=a();e===window?window.scrollTo({top:0,behavior:`smooth`}):e.scrollTo({top:0,behavior:`smooth`})},u=window,d=()=>{u.removeEventListener(`scroll`,c),u=a(),u.addEventListener(`scroll`,c,{passive:!0}),c()};return(0,t.onMounted)(()=>{d()}),(0,t.watch)(()=>n.target,()=>d()),(0,t.onBeforeUnmount)(()=>{u.removeEventListener(`scroll`,c)}),(e,n)=>{let r=k;return(0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:`body`},[(0,t.createVNode)(t.Transition,{name:`fou-backtop-fade`},{default:(0,t.withCtx)(()=>[(0,t.withDirectives)((0,t.createElementVNode)(`button`,{type:`button`,class:`fou-backtop`,style:(0,t.normalizeStyle)((0,t.unref)(s)),"aria-label":`回到顶部`,onClick:l},[(0,t.renderSlot)(e.$slots,`default`,{},()=>[(0,t.createVNode)(r,{icon:`arrow-up-line`})],!0)],4),[[t.vShow,(0,t.unref)(i)]])]),_:3})])}}}),J=v({default:()=>Qe}),Qe=S(Ze,[[`__scopeId`,`data-v-6f249df3`]]),$e=e=>e,Y=(e,...t)=>$e(e,...t),et=0,tt=``;function nt(){return{lock:()=>{et===0&&(tt=document.body.style.overflow,document.body.style.overflow=`hidden`),et+=1},unlock:()=>{et!==0&&(--et,et===0&&(document.body.style.overflow=tt,tt=``))}}}var rt={class:`fou-dialog__title`},it=[`title`],at=[`title`],ot=[`title`],st={key:0,class:`fou-dialog__loading`},ct={key:0,class:`fou-dialog__loading-text`},lt={key:0,class:`fou-dialog__footer`},ut=[`onMousedown`],dt=(0,t.defineComponent)({name:`FouDialog`,inheritAttrs:!1,__name:`index`,props:{modelValue:{type:Boolean,default:!1},title:{default:``},width:{default:`520px`},top:{default:`15vh`},alignCenter:{type:Boolean,default:!0},modal:{type:Boolean,default:!0},modalClass:{default:``},appendToBody:{type:Boolean,default:!0},appendTo:{},lockScroll:{type:Boolean,default:!0},closeOnClickModal:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!0},destroyOnClose:{type:Boolean,default:!1},beforeClose:{},showFullscreen:{type:Boolean,default:!0},showMinimize:{type:Boolean,default:!0},maximizable:{type:Boolean,default:void 0},minimizable:{type:Boolean,default:void 0},showClose:{type:Boolean,default:!0},fullscreen:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},loadingText:{},animated:{type:Boolean,default:!0},theme:{default:`default`},draggable:{type:Boolean,default:!0},dragBound:{type:[Boolean,String],default:`viewport`},resizable:{type:Boolean,default:!0},openInTab:{type:Boolean,default:!1},minWidth:{default:320},minHeight:{default:180},zIndex:{default:0}},emits:[`update:modelValue`,`open`,`opened`,`close`,`closed`,`minimize`,`maximize`,`restore`],setup(e,{emit:n}){let i=e,a=n,o=(0,t.useAttrs)(),s=(0,t.computed)(()=>{let{class:e,style:t,...n}=o;return n}),c=(0,t.computed)(()=>o.style),l=(0,r.useVModel)(i,`modelValue`,a),u=(0,t.ref)(null),d=(0,t.ref)(!1),f=(0,t.ref)(!1),p=(0,t.ref)(null),m=(0,t.ref)(null),h=(0,t.ref)(!1),g=(0,t.ref)(!1),_=(0,t.ref)(!1),v=(0,t.ref)(0),y=(0,t.ref)(!i.destroyOnClose),b=(0,t.ref)(i.zIndex||le(4e3)),x=[`n`,`s`,`e`,`w`,`ne`,`nw`,`se`,`sw`],S=(0,t.computed)(()=>typeof i.appendTo==`string`||i.appendTo instanceof HTMLElement?i.appendTo:`body`),C=(0,t.computed)(()=>i.appendToBody!==!1),w=(0,t.computed)(()=>i.maximizable??i.showFullscreen),T=(0,t.computed)(()=>i.minimizable??i.showMinimize),E=(0,t.computed)(()=>i.draggable&&!d.value&&!f.value),D=(0,t.computed)(()=>!!p.value),O=(0,t.computed)(()=>{let e=i.dragBound;return e===!0||e===`viewport`||e===void 0}),A=(0,t.computed)(()=>({"is-open-in-tab":i.openInTab,"is-minimized-root":f.value})),j=(0,t.computed)(()=>({[`fou-dialog--${i.theme}`]:!0,"fou-dialog--minimized":f.value,"fou-dialog--fullscreen":d.value,"fou-dialog--centered":!D.value&&!d.value&&!f.value&&i.alignCenter,"fou-dialog--topped":!D.value&&!d.value&&!f.value&&!i.alignCenter,"fou-dialog--fixed-box":D.value&&!d.value&&!f.value,"fou-dialog--unbounded":!O.value&&D.value&&!d.value&&!f.value,"fou-dialog--dragging":h.value,"fou-dialog--resizing":g.value,"fou-dialog--animated":i.animated&&!h.value&&!g.value&&!_.value})),M=(0,t.computed)(()=>{let e={zIndex:String(b.value+v.value+(f.value?100:0))};return f.value?(Object.assign(e,{left:`16px`,bottom:`16px`,top:`auto`,width:`240px`,height:`48px`,transform:`none`}),e):d.value?(Object.assign(e,{left:`0`,top:`0`,width:`100vw`,height:`100vh`,transform:`none`,borderRadius:`0`}),e):p.value?(Object.assign(e,{left:`${p.value.left}px`,top:`${p.value.top}px`,width:`${p.value.width}px`,height:`${p.value.height}px`,transform:`none`}),e):(e.width=typeof i.width==`number`?`${i.width}px`:String(i.width||`520px`),i.alignCenter||(e.top=i.top||`15vh`,e.left=`50%`,e.transform=`translateX(-50%)`),e)}),N=(e,t=`resize`)=>{let n=window.innerWidth,r=window.innerHeight,a=Math.max(i.minWidth,e.width),o=Math.max(i.minHeight,e.height);if(!O.value)return{left:e.left,top:e.top,width:t===`resize`?a:Math.max(i.minWidth,e.width),height:t===`resize`?o:Math.max(i.minHeight,e.height)};let s=Math.max(i.minWidth,n-8),c=Math.max(i.minHeight,r-8),l=Math.min(a,s),u=Math.min(o,c);return{left:Math.min(Math.max(0,e.left),Math.max(0,n-l)),top:Math.min(Math.max(0,e.top),Math.max(0,r-u)),width:l,height:u}},P=()=>{let e=u.value;if(!e)return null;let t=e.getBoundingClientRect(),n=N({left:t.left,top:t.top,width:t.width,height:Math.max(t.height,i.minHeight)});return p.value=n,n},F=()=>p.value||P(),{lock:I,unlock:L}=nt(),R=e=>{i.lockScroll&&(e?I():L())},ee=()=>{_.value=!0,a(`close`),l.value=!1},z=()=>{if(i.beforeClose){i.beforeClose(()=>ee());return}ee()},B=()=>{i.closeOnClickModal&&z()},V=()=>{v.value+=1},H=()=>{if(f.value){ne();return}d.value?(d.value=!1,m.value&&(p.value={...m.value}),a(`restore`)):(F(),p.value&&(m.value={...p.value}),d.value=!0,a(`maximize`))},te=()=>{d.value&&=!1,F(),p.value&&(m.value={...p.value}),f.value=!0,a(`minimize`)},ne=()=>{f.value=!1,m.value&&(p.value={...m.value}),a(`restore`)},re=()=>{f.value&&ne()},U=()=>{f.value?ne():H()},ie=null,ae=()=>{ie?.(),ie=null,h.value=!1,g.value=!1},W=e=>{if(!E.value||e.target.closest(`.fou-dialog__actions`))return;e.preventDefault();let t=F();if(!t)return;ae(),h.value=!0;let n=e.clientX,r=e.clientY,i=e=>{p.value=N({...t,left:t.left+e.clientX-n,top:t.top+e.clientY-r},`drag`)},a=()=>ae();document.addEventListener(`mousemove`,i),document.addEventListener(`mouseup`,a),ie=()=>{document.removeEventListener(`mousemove`,i),document.removeEventListener(`mouseup`,a),h.value=!1}},oe=(e,t)=>{let n=F();if(!n)return;ae(),g.value=!0;let r=e.clientX,a=e.clientY,o=e=>{let o=e.clientX-r,s=e.clientY-a,{left:c,top:l,width:u,height:d}=n;t.includes(`e`)&&(u=n.width+o),t.includes(`s`)&&(d=n.height+s),t.includes(`w`)&&(u=n.width-o,c=n.left+o,u<i.minWidth&&(u=i.minWidth,c=n.left+n.width-i.minWidth)),t.includes(`n`)&&(d=n.height-s,l=n.top+s,d<i.minHeight&&(d=i.minHeight,l=n.top+n.height-i.minHeight)),p.value=N({left:c,top:l,width:u,height:d},`resize`)},s=()=>ae();document.addEventListener(`mousemove`,o),document.addEventListener(`mouseup`,s),ie=()=>{document.removeEventListener(`mousemove`,o),document.removeEventListener(`mouseup`,s),g.value=!1}},se=e=>{!l.value||f.value||i.closeOnPressEscape&&e.key===`Escape`&&z()},ce=()=>{f.value=!1,d.value=!!i.fullscreen,p.value=null,m.value=null,_.value=!1,h.value=!1,g.value=!1};return(0,t.watch)(()=>i.fullscreen,e=>{d.value=!!e},{immediate:!0}),(0,t.watch)(l,async e=>{e?(_.value=!1,b.value=i.zIndex||le(4e3),i.destroyOnClose&&(y.value=!0),R(!0),a(`open`),await(0,t.nextTick)(),!i.alignCenter&&!p.value&&u.value,a(`opened`)):(R(!1),a(`closed`),ce(),i.destroyOnClose&&(y.value=!1))}),(0,t.onMounted)(()=>{document.addEventListener(`keydown`,se),l.value&&R(!0)}),(0,t.onBeforeUnmount)(()=>{ae(),document.removeEventListener(`keydown`,se),R(!1)}),(n,r)=>{let a=k;return(0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:(0,t.unref)(S),disabled:!(0,t.unref)(C)},[!i.destroyOnClose||(0,t.unref)(y)||(0,t.unref)(l)?(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createElementBlock)(`div`,(0,t.mergeProps)({key:0,class:[`fou-dialog-root`,[(0,t.unref)(A),(0,t.unref)(o).class]]},(0,t.unref)(s),{style:{zIndex:(0,t.unref)(b)}}),[e.modal&&!(0,t.unref)(f)?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:(0,t.normalizeClass)([`fou-dialog__mask`,e.modalClass]),onMousedown:(0,t.withModifiers)(B,[`self`])},null,34)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,{ref_key:`panelRef`,ref:u,class:(0,t.normalizeClass)([`fou-dialog`,(0,t.unref)(j)]),style:(0,t.normalizeStyle)([(0,t.unref)(M),(0,t.unref)(c)]),role:`dialog`,"aria-modal":`true`,onMousedown:V},[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`fou-dialog__header`,{"is-movable":(0,t.unref)(E),"is-minimized-bar":(0,t.unref)(f)}]),onMousedown:W,onDblclick:U,onClick:re},[(0,t.createElementVNode)(`div`,rt,(0,t.toDisplayString)(e.title),1),(0,t.createElementVNode)(`div`,{class:`fou-dialog__actions`,onMousedown:r[1]||=(0,t.withModifiers)(()=>{},[`stop`]),onClick:r[2]||=(0,t.withModifiers)(()=>{},[`stop`])},[(0,t.unref)(T)&&!(0,t.unref)(f)?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:0,type:`button`,class:`fou-dialog__btn`,title:(0,t.unref)(Y)(`最小化`),onClick:(0,t.withModifiers)(te,[`stop`])},[(0,t.createVNode)(a,{icon:`subtract-line`})],8,it)):(0,t.createCommentVNode)(``,!0),(0,t.unref)(w)?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:1,type:`button`,class:`fou-dialog__btn`,title:(0,t.unref)(Y)((0,t.unref)(f)||(0,t.unref)(d)?`还原`:`最大化`),onClick:r[0]||=(0,t.withModifiers)(e=>(0,t.unref)(f)?ne():H(),[`stop`])},[(0,t.createVNode)(a,{icon:(0,t.unref)(f)?`picture-in-picture-2-line`:(0,t.unref)(d)?`fullscreen-exit-line`:`fullscreen-line`},null,8,[`icon`])],8,at)):(0,t.createCommentVNode)(``,!0),e.showClose?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:2,type:`button`,class:`fou-dialog__btn`,title:(0,t.unref)(Y)(`关闭`),onClick:(0,t.withModifiers)(z,[`stop`])},[(0,t.createVNode)(a,{icon:`close-line`})],8,ot)):(0,t.createCommentVNode)(``,!0)],32)],34),(0,t.withDirectives)((0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`fou-dialog__body`,{"is-loading":e.loading}])},[e.loading?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,st,[r[3]||=(0,t.createElementVNode)(`span`,{class:`fou-dialog__spinner`},null,-1),e.loadingText?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,ct,(0,t.toDisplayString)(e.loadingText),1)):(0,t.createCommentVNode)(``,!0)])):(0,t.createCommentVNode)(``,!0),(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)],2),[[t.vShow,!(0,t.unref)(f)]]),!(0,t.unref)(f)&&n.$slots.footer?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,lt,[(0,t.renderSlot)(n.$slots,`footer`,{},void 0,!0)])):(0,t.createCommentVNode)(``,!0),e.resizable&&!(0,t.unref)(d)&&!(0,t.unref)(f)?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:1},(0,t.renderList)(x,e=>(0,t.createElementVNode)(`div`,{key:e,class:(0,t.normalizeClass)([`fou-dialog__resize`,`fou-dialog__resize--${e}`]),onMousedown:(0,t.withModifiers)(t=>oe(t,e),[`prevent`,`stop`])},null,42,ut)),64)):(0,t.createCommentVNode)(``,!0)],38)],16)),[[t.vShow,(0,t.unref)(l)]]):(0,t.createCommentVNode)(``,!0)],8,[`to`,`disabled`])}}}),ft=v({default:()=>pt}),pt=S(dt,[[`__scopeId`,`data-v-20117090`]]),mt=Symbol(`FouTabBar`),ht={key:0,class:`fou-tab-bar__content`},gt=[`disabled`],_t=[`aria-selected`,`aria-disabled`,`tabindex`,`disabled`,`onClick`],vt=[`onClick`],X=[`disabled`],yt={key:3,class:`fou-tab-bar__extra`},bt={key:1,class:`fou-tab-bar__content`},xt=(0,t.defineComponent)({name:`FouTabBar`,__name:`index`,props:{modelValue:{},type:{default:`default`},tabPosition:{default:`top`},stretch:{type:Boolean,default:!1},closable:{type:Boolean,default:!1},addable:{type:Boolean,default:!1},editable:{type:Boolean,default:!1},beforeLeave:{}},emits:[`update:modelValue`,`tabClick`,`tabChange`,`tab-remove`,`tab-add`,`edit`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.ref)([]),o=(0,t.ref)([]),s=(0,t.ref)(null),c=(0,t.ref)(null),l=new Map,u=(0,t.ref)({}),d=(0,t.ref)(!1),f=(0,t.ref)(!1),p=(0,t.ref)(!1),m=(0,t.computed)(()=>r.tabPosition===`left`||r.tabPosition===`right`),h=(0,t.computed)(()=>r.addable||r.editable),g=(0,t.computed)(()=>r.type==="default"),_=(0,t.computed)(()=>a.value.filter(e=>!o.value.includes(e.name))),v=(0,t.computed)({get(){return r.modelValue!==void 0&&r.modelValue!==null?r.modelValue:_.value[0]?.name},set(e){i(`update:modelValue`,e)}}),y=e=>e.closable===void 0?r.closable||r.editable:e.closable,b=(e,t)=>{t instanceof HTMLElement?l.set(e,t):l.delete(e)};(0,t.provide)(mt,{activeName:(0,t.computed)(()=>v.value),registerPane:e=>{let t=a.value.findIndex(t=>t.uid===e.uid);t>=0?a.value[t]=e:a.value.push(e),r.modelValue===void 0&&a.value.length===1&&(v.value=e.name)},unregisterPane:e=>{a.value=a.value.filter(t=>t.uid!==e)},updatePane:(e,t)=>{let n=a.value.findIndex(t=>t.uid===e);n>=0&&(a.value[n]={...a.value[n],...t})}});let x=()=>{let e=v.value===void 0?void 0:l.get(v.value),t=c.value;if(!e||!t||!g.value){u.value={display:`none`};return}m.value?u.value={display:`block`,top:`${e.offsetTop}px`,height:`${e.offsetHeight}px`,width:`2px`,left:r.tabPosition===`left`?`auto`:`0`,right:r.tabPosition===`left`?`0`:`auto`}:u.value={display:`block`,left:`${e.offsetLeft}px`,width:`${e.offsetWidth}px`,height:`2px`,bottom:`0`}},S=()=>{let e=s.value;if(!e){d.value=!1;return}m.value?(d.value=e.scrollHeight>e.clientHeight+2,f.value=e.scrollTop>2,p.value=e.scrollTop+e.clientHeight<e.scrollHeight-2):(d.value=e.scrollWidth>e.clientWidth+2,f.value=e.scrollLeft>2,p.value=e.scrollLeft+e.clientWidth<e.scrollWidth-2)},C=()=>{let e=s.value,t=v.value===void 0?void 0:l.get(v.value);if(!e||!t)return;let n=e.getBoundingClientRect(),r=t.getBoundingClientRect();m.value?r.top<n.top?e.scrollTop+=r.top-n.top:r.bottom>n.bottom&&(e.scrollTop+=r.bottom-n.bottom):r.left<n.left?e.scrollLeft+=r.left-n.left:r.right>n.right&&(e.scrollLeft+=r.right-n.right)},w=async()=>{await(0,t.nextTick)(),x(),S(),C()},T=e=>{let t=s.value;if(!t)return;let n=m.value?t.clientHeight*.8:t.clientWidth*.8;m.value?t.scrollTop+=e*n:t.scrollLeft+=e*n,S()},E=()=>_.value.filter(e=>!e.disabled),D=async e=>{let t=v.value;if(t!==e){if(r.beforeLeave&&t!==void 0)try{if(await r.beforeLeave(e,t)===!1)return}catch{return}v.value=e,i(`tabChange`,e),w()}},O=(e,t)=>{e.disabled||(t?i(`tabClick`,e,t):i(`tabClick`,e,new MouseEvent(`click`)),D(e.name))},A=e=>{if(!(!y(e)||e.disabled)){if(i(`tab-remove`,e.name),i(`edit`,e.name,`remove`),o.value=[...o.value,e.name],v.value===e.name){let e=E()[0];e&&D(e.name)}w()}},j=()=>{i(`tab-add`),i(`edit`,null,`add`)},M=e=>{let t=E();if(!t.length)return;let n=t.findIndex(e=>e.name===v.value),r=m.value?`ArrowUp`:`ArrowLeft`,i=m.value?`ArrowDown`:`ArrowRight`;if(e.key===r){e.preventDefault();let r=t[n<=0?t.length-1:n-1];D(r.name)}else if(e.key===i){e.preventDefault();let r=t[n>=t.length-1?0:n+1];D(r.name)}else if(e.key===`Home`)e.preventDefault(),D(t[0].name);else if(e.key===`End`)e.preventDefault(),D(t[t.length-1].name);else if((e.key===`Delete`||e.key===`Backspace`)&&n>=0){let r=t[n];y(r)&&(e.preventDefault(),A(r))}},N=null;return(0,t.onMounted)(()=>{w();let e=s.value;e&&(e.addEventListener(`scroll`,S,{passive:!0}),typeof ResizeObserver<`u`&&(N=new ResizeObserver(()=>w()),N.observe(e))),window.addEventListener(`resize`,w)}),(0,t.onUnmounted)(()=>{s.value?.removeEventListener(`scroll`,S),N?.disconnect(),window.removeEventListener(`resize`,w)}),(0,t.watch)(()=>[v.value,_.value.length,r.tabPosition,r.type],()=>w()),(n,r)=>{let i=k;return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-tab-bar`,[`fou-tab-bar--${e.type}`,`fou-tab-bar--${e.tabPosition}`,{"is-stretch":e.stretch,"is-vertical":(0,t.unref)(m)}]])},[e.tabPosition===`bottom`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ht,[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`fou-tab-bar__nav-wrap`,{"is-scrollable":(0,t.unref)(d)}])},[(0,t.unref)(d)?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:0,type:`button`,class:`fou-tab-bar__scroll-btn is-prev`,disabled:!(0,t.unref)(f),"aria-label":`上一页`,onClick:r[0]||=e=>T(-1)},[(0,t.createVNode)(i,{icon:(0,t.unref)(m)?`arrow-up-s-line`:`arrow-left-s-line`},null,8,[`icon`])],8,gt)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,{ref_key:`navScrollRef`,ref:s,class:`fou-tab-bar__nav-scroll`,role:`tablist`,tabindex:0,onKeydown:M},[(0,t.createElementVNode)(`div`,{ref_key:`navRef`,ref:c,class:`fou-tab-bar__header`},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(_),e=>((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:String(e.name),ref_for:!0,ref:t=>b(e.name,t),type:`button`,class:(0,t.normalizeClass)([`fou-tab-bar__item`,{"is-active":e.name===(0,t.unref)(v),"is-disabled":e.disabled,"is-closable":y(e)}]),role:`tab`,"aria-selected":e.name===(0,t.unref)(v),"aria-disabled":e.disabled||void 0,tabindex:e.name===(0,t.unref)(v)?0:-1,disabled:e.disabled,onClick:t=>O(e,t)},[e.icon?((0,t.openBlock)(),(0,t.createBlock)(i,{key:0,icon:e.icon,class:`fou-tab-bar__icon`},null,8,[`icon`])):(0,t.createCommentVNode)(``,!0),(0,t.renderSlot)(n.$slots,`label-${e.name}`,{},()=>[e.renderLabel?.()?.length?((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(()=>e.renderLabel?.()),{key:0})):((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:1},[(0,t.createTextVNode)((0,t.toDisplayString)(e.label),1)],64))],!0),y(e)?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:1,class:`fou-tab-bar__close`,role:`button`,"aria-label":`关闭`,onClick:(0,t.withModifiers)(t=>A(e),[`stop`])},` × `,8,vt)):(0,t.createCommentVNode)(``,!0)],10,_t))),128)),(0,t.unref)(g)?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:0,class:`fou-tab-bar__ink`,style:(0,t.normalizeStyle)((0,t.unref)(u))},null,4)):(0,t.createCommentVNode)(``,!0)],512)],544),(0,t.unref)(d)?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:1,type:`button`,class:`fou-tab-bar__scroll-btn is-next`,disabled:!(0,t.unref)(p),"aria-label":`下一页`,onClick:r[1]||=e=>T(1)},[(0,t.createVNode)(i,{icon:(0,t.unref)(m)?`arrow-down-s-line`:`arrow-right-s-line`},null,8,[`icon`])],8,X)):(0,t.createCommentVNode)(``,!0),(0,t.unref)(h)?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:2,type:`button`,class:`fou-tab-bar__add`,"aria-label":`新增`,onClick:j},` + `)):(0,t.createCommentVNode)(``,!0),n.$slots.extra?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,yt,[(0,t.renderSlot)(n.$slots,`extra`,{},void 0,!0)])):(0,t.createCommentVNode)(``,!0)],2),e.tabPosition===`bottom`?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,bt,[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)]))],2)}}}),St=v({default:()=>Ct}),Ct=S(xt,[[`__scopeId`,`data-v-9d53a5a9`]]),wt=[`aria-hidden`],Tt=(0,t.defineComponent)({name:`FouTabPane`,__name:`index`,props:{name:{},label:{default:``},lazy:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},closable:{type:Boolean},icon:{}},setup(e){let n=e,r=(0,t.useSlots)(),i=(0,t.inject)(mt,null),a=(0,t.getCurrentInstance)()?.uid??Math.random(),o=(0,t.ref)(!n.lazy),s=(0,t.computed)(()=>i?.activeName.value===n.name),c=(0,t.computed)(()=>!n.lazy||o.value||s.value);(0,t.watch)(s,e=>{e&&n.lazy&&(o.value=!0)});let l=()=>n.label||String(n.name),u=()=>{i?.updatePane(a,{name:n.name,label:l(),lazy:n.lazy,loaded:o.value,disabled:n.disabled,closable:n.closable,icon:n.icon,render:()=>r.default?.()??[],renderLabel:()=>r.label?.()??[]})};return(0,t.onMounted)(()=>{i?.registerPane({uid:a,name:n.name,label:l(),lazy:n.lazy,loaded:o.value,disabled:n.disabled,closable:n.closable,icon:n.icon,render:()=>r.default?.()??[],renderLabel:()=>r.label?.()??[]})}),(0,t.onUnmounted)(()=>{i?.unregisterPane(a)}),(0,t.watch)(()=>[n.name,n.label,n.lazy,n.disabled,n.closable,n.icon],()=>u()),(e,n)=>(0,t.unref)(c)?(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:`fou-tab-pane`,role:`tabpanel`,"aria-hidden":!(0,t.unref)(s)},[(0,t.renderSlot)(e.$slots,`default`,{},void 0,!0)],8,wt)),[[t.vShow,(0,t.unref)(s)]]):(0,t.createCommentVNode)(``,!0)}}),Et=v({default:()=>Dt}),Dt=S(Tt,[[`__scopeId`,`data-v-58911a66`]]),Ot={class:`fou-empty`},kt={class:`fou-empty__image`},At={key:0,class:`fou-empty__description`},jt={key:1,class:`fou-empty__actions`},Mt=(0,t.defineComponent)({name:`FouEmpty`,__name:`index`,props:{description:{default:`暂无数据`}},setup(e){return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Ot,[(0,t.createElementVNode)(`div`,kt,[(0,t.renderSlot)(n.$slots,`image`,{},()=>[r[0]||=(0,t.createStaticVNode)(`<svg class="fou-empty__svg" viewBox="0 0 120 80" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" data-v-b743bb49><rect x="10" y="20" width="100" height="50" rx="4" fill="var(--fou-fill-color, var(--fou-fill-color, #f0f2f5))" data-v-b743bb49></rect><rect x="20" y="30" width="40" height="6" rx="2" fill="var(--fou-border-color, var(--fou-border-color, #dcdfe6))" data-v-b743bb49></rect><rect x="20" y="42" width="60" height="6" rx="2" fill="var(--fou-border-color-lighter, var(--fou-border-color-lighter, #ebeef5))" data-v-b743bb49></rect><rect x="20" y="54" width="30" height="6" rx="2" fill="var(--fou-border-color-lighter, var(--fou-border-color-lighter, #ebeef5))" data-v-b743bb49></rect></svg>`,1)],!0)]),e.description||n.$slots.description?((0,t.openBlock)(),(0,t.createElementBlock)(`p`,At,[(0,t.renderSlot)(n.$slots,`description`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.description),1)],!0)])):(0,t.createCommentVNode)(``,!0),n.$slots.default?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,jt,[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)])):(0,t.createCommentVNode)(``,!0)]))}}),Nt=v({default:()=>Pt}),Pt=S(Mt,[[`__scopeId`,`data-v-b743bb49`]]),Ft={key:0,class:`fou-button__loading`,"aria-hidden":`true`},It={key:1,class:`fou-button__icon`},Lt={key:2,class:`fou-button__label`},Rt={key:3,class:`fou-button__icon-right`},zt=(0,t.defineComponent)({name:`FouButton`,inheritAttrs:!1,__name:`index`,props:{type:{default:`default`},color:{},size:{},plain:{type:Boolean,default:!1},text:{type:Boolean,default:!1},link:{type:Boolean,default:!1},round:{type:Boolean,default:!1},circle:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},nativeType:{default:`button`},tag:{default:`button`},icon:{},iconRight:{}},emits:[`click`],setup(e,{emit:n}){let r={primary:`var(--fou-color-primary, var(--fou-color-primary, #0f766e))`,success:`var(--fou-color-success, var(--fou-color-success, #67c23a))`,warning:`var(--fou-color-warning, var(--fou-color-warning, #e6a23c))`,danger:`var(--fou-color-danger, var(--fou-color-danger, #f56c6c))`,info:`var(--fou-color-info, var(--fou-color-info, #909399))`,cyan:`#0ea5e9`,orange:`#f97316`,pink:`#ec4899`,teal:`#14b8a6`,gray:`#64748b`,magenta:`#d946ef`,lime:`#84cc16`,brown:`#a16207`},i=e,a=n,o=(0,t.inject)(`fouButtonGroupSize`,null),s=(0,t.computed)(()=>i.size||o?.value||`default`),c=(0,t.computed)(()=>i.color?i.color:i.type&&i.type!=="default"&&r[i.type]?r[i.type]:``),l=(0,t.computed)(()=>{if(c.value)return{"--fou-btn-color":c.value}}),u=(0,t.computed)(()=>[`fou-button--${s.value}`,{"fou-button--default":i.type==="default"&&!i.color,"fou-button--colored":!!c.value,"fou-button--plain":i.plain,"fou-button--text":i.text,"fou-button--link":i.link,"fou-button--round":i.round,"fou-button--circle":i.circle,"is-disabled":i.disabled||i.loading,"is-loading":i.loading}]),d=e=>{if(i.disabled||i.loading){e.preventDefault();return}a(`click`,e)};return(n,r)=>{let i=k;return(0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.tag),(0,t.mergeProps)({class:[`fou-button`,(0,t.unref)(u)],type:e.tag===`button`?e.nativeType:void 0,disabled:e.disabled||e.loading,style:(0,t.unref)(l)},n.$attrs,{onClick:d}),{default:(0,t.withCtx)(()=>[e.loading?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Ft)):(0,t.createCommentVNode)(``,!0),!e.loading&&(e.icon||n.$slots.icon)?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,It,[(0,t.renderSlot)(n.$slots,`icon`,{},()=>[e.icon?((0,t.openBlock)(),(0,t.createBlock)(i,{key:0,icon:e.icon},null,8,[`icon`])):(0,t.createCommentVNode)(``,!0)],!0)])):(0,t.createCommentVNode)(``,!0),n.$slots.default?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Lt,[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)])):(0,t.createCommentVNode)(``,!0),e.iconRight||n.$slots.iconRight?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Rt,[(0,t.renderSlot)(n.$slots,`iconRight`,{},()=>[e.iconRight?((0,t.openBlock)(),(0,t.createBlock)(i,{key:0,icon:e.iconRight},null,8,[`icon`])):(0,t.createCommentVNode)(``,!0)],!0)])):(0,t.createCommentVNode)(``,!0)]),_:3},16,[`class`,`type`,`disabled`,`style`])}}}),Bt=v({default:()=>Vt}),Vt=S(zt,[[`__scopeId`,`data-v-45258dc5`]]),Ht={class:`fou-msg__content`},Ut={key:0},Wt=(0,t.defineComponent)({name:`FouMsgItem`,__name:`FouMsgItem`,props:{id:{},type:{},position:{},message:{},showClose:{type:Boolean},visible:{type:Boolean}},emits:[`close`],setup(e){let n=e,r=(0,t.computed)(()=>({success:`ri-checkbox-circle-line`,warning:`ri-alert-line`,info:`ri-information-line`,error:`ri-close-circle-line`})[n.type]);return(n,i)=>((0,t.openBlock)(),(0,t.createBlock)(t.Transition,{name:`fou-msg-fade`},{default:(0,t.withCtx)(()=>[(0,t.withDirectives)((0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`fou-msg`,[`fou-msg--${e.type}`,`fou-msg--${e.position}`]])},[(0,t.createElementVNode)(`i`,{class:(0,t.normalizeClass)([`fou-msg__icon`,r.value])},null,2),(0,t.createElementVNode)(`div`,Ht,[typeof e.message==`string`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Ut,(0,t.toDisplayString)(e.message),1)):((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.message),{key:1}))]),e.showClose?((0,t.openBlock)(),(0,t.createElementBlock)(`i`,{key:0,class:`fou-msg__close ri-close-line`,onClick:i[0]||=e=>n.$emit(`close`)})):(0,t.createCommentVNode)(``,!0)],2),[[t.vShow,e.visible]])]),_:1}))}}),Gt=v({default:()=>Kt}),Kt=Wt,qt={center:[],"left-top":[],"left-center":[],"left-bottom":[],"top-center":[],"bottom-center":[],"right-top":[],"right-center":[],"right-bottom":[]},Z=0,Jt=(e,t=20)=>{let n=`fou-msg-host-${e}`,r=document.getElementById(n);return r||(r=document.createElement(`div`),r.id=n,r.className=`fou-msg-host fou-msg-host--${e}`,document.body.appendChild(r)),r.style.setProperty(`--fou-msg-offset`,`${t}px`),r},Yt=e=>{qt[e].forEach((e,t)=>{e.el.style.setProperty(`--fou-msg-index`,String(t))})},Xt=e=>{Object.keys(qt).forEach(t=>{let n=qt[t].findIndex(t=>t.id===e);if(n>=0){let[e]=qt[t].splice(n,1);e.timer&&clearTimeout(e.timer),e.app.unmount(),e.el.remove(),Yt(t)}})},Zt=e=>{(e?[e]:Object.keys(qt)).forEach(e=>{[...qt[e]].forEach(e=>Xt(e.id))})};function Qt(e){return e?{"bottom-right":`right-bottom`,"top-right":`right-top`,"bottom-left":`left-bottom`,"top-left":`left-top`}[e]||e:`center`}var Q=Object.assign(e=>{let n=typeof e==`string`?{message:e}:{...e},r=Qt(n.position),i=n.type||`info`,a=n.duration??3e3,o=n.id||`fou-msg-${++Z}`,s=n.offset??20;Xt(o);let c=Jt(r,s),l=document.createElement(`div`);l.className=`fou-msg-wrap`,c.appendChild(l);let u=(0,t.ref)(!0),d={id:o,app:null,el:l,position:r},f=()=>{d.timer&&=(clearTimeout(d.timer),void 0),u.value=!1,setTimeout(()=>{Xt(o),n.onClose?.()},200)},p=(0,t.createApp)({setup(){return()=>(0,t.h)(Kt,{id:o,type:i,position:r,message:n.message,showClose:n.showClose??!0,visible:u.value,onClose:f})}});return a>0&&(d.timer=setTimeout(f,a)),p.mount(l),d.app=p,qt[r].push(d),Yt(r),{close:()=>Xt(o),id:o}},{success(e,t){return Q(typeof e==`string`?{message:e,type:`success`,position:t}:{...e,type:`success`})},warning(e,t){return Q(typeof e==`string`?{message:e,type:`warning`,position:t}:{...e,type:`warning`})},info(e,t){return Q(typeof e==`string`?{message:e,type:`info`,position:t}:{...e,type:`info`})},error(e,t){return Q(typeof e==`string`?{message:e,type:`error`,position:t}:{...e,type:`error`})},closeAll:Zt}),$t={install(e){e.config.globalProperties.$fouMsg=Q,e.provide(`$fouMsg`,Q)}},en=`fou-badge-templates`,tn=`fou-badge-desk-templates`,nn=`fou-badge-library`,rn=`fou-badge-competitions`,an=e=>({code:0,data:e}),on=(e,t)=>{try{let n=localStorage.getItem(e);return n?JSON.parse(n):t}catch{return t}},sn=(e,t)=>{localStorage.setItem(e,JSON.stringify(t))},cn=()=>{let e=new Date,t=e=>String(e).padStart(2,`0`);return`${e.getFullYear()}-${t(e.getMonth()+1)}-${t(e.getDate())} ${t(e.getHours())}:${t(e.getMinutes())}:${t(e.getSeconds())}`},ln=()=>{let e=on(rn,[]);return e.length||(e=[{id:1,name:`演示比赛 A`,area_code:`A01`,host_region:`110000`,start_date:`2026-08-01`,status:1},{id:2,name:`演示比赛 B`,area_code:`B02`,host_region:`310000`,start_date:`2026-09-01`,status:2}],sn(rn,e)),e},un=e=>on(e===`badge`?en:tn,[]),dn=(e,t)=>sn(e===`badge`?en:tn,t),fn=e=>e.reduce((e,t)=>Math.max(e,Number(t.id)||0),0)+1,pn=(e,t=90,n=54)=>({version:1,canvas:{widthMm:t,heightMm:n,background:`#ffffff`},elements:[],guides:[],regions:[]}),mn=async e=>{let t=ln(),n=Number(e?.page||1),r=Number(e?.page_size||e?.pageSize||20),i=String(e?.keyword||e?.q||``).trim(),a=t;i&&(a=a.filter(e=>`${e.name}${e.area_code}`.includes(i)));let o=(n-1)*r;return an({list:a.slice(o,o+r),total:a.length,page:n,page_size:r})},hn=async e=>an(ln().find(t=>t.id===Number(e))||{id:e,name:`比赛 ${e}`,status:1}),gn=async e=>an({list:un(`badge`).filter(t=>t.competition_id===Number(e))}),_n=async(e,t)=>{let n=un(`badge`),r={id:fn(n),competition_id:Number(e),name:t.name||`未命名模板`,width_mm:90,height_mm:54,is_default:n.filter(t=>t.competition_id===Number(e)).length===0,update_time:cn(),doc:pn(t.name||`未命名模板`),kind:`badge`};return n.push(r),dn(`badge`,n),an(r)},vn=async(e,t)=>{let n=un(`badge`).find(n=>n.id===Number(t)&&n.competition_id===Number(e));return an(n?{...n,template_json:n.doc||pn(n.name,n.width_mm,n.height_mm),doc:n.doc||pn(n.name,n.width_mm,n.height_mm),default_test_json:n.default_test_json||{}}:null)},yn=async e=>{let t=un(`badge`).filter(t=>t.competition_id===Number(e)),n=t.find(e=>e.is_default)||t[0];return n?vn(e,n.id):an(null)},bn=async(e,t,n)=>{let r=un(`badge`),i=r.findIndex(n=>n.id===Number(t)&&n.competition_id===Number(e));if(i<0)return an(null);let a=n.doc||n.template_json||n.template||r[i].doc,o=String(n.name||r[i].name),s=Number(a?.canvas?.widthMm||n.width_mm||r[i].width_mm),c=Number(a?.canvas?.heightMm||n.height_mm||r[i].height_mm);return r[i]={...r[i],name:o,width_mm:s,height_mm:c,doc:a,default_test_json:n.default_test_json??r[i].default_test_json??{},update_time:cn()},dn(`badge`,r),an(r[i])},xn=async(e,t)=>(dn(`badge`,un(`badge`).filter(n=>n.id!==Number(t)||n.competition_id!==Number(e))),an(!0)),Sn=async(e,t)=>(dn(`badge`,un(`badge`).map(n=>n.competition_id===Number(e)?{...n,is_default:n.id===Number(t)}:n)),an(!0)),Cn=async e=>an({list:un(`desk`).filter(t=>t.competition_id===Number(e))}),wn=async(e,t)=>{let n=un(`desk`),r={id:fn(n),competition_id:Number(e),name:t.name||`未命名桌签`,width_mm:150,height_mm:50,is_default:n.filter(t=>t.competition_id===Number(e)).length===0,update_time:cn(),doc:pn(t.name||`未命名桌签`,150,50),kind:`desk`};return n.push(r),dn(`desk`,n),an(r)},Tn=async(e,t)=>{let n=un(`desk`).find(n=>n.id===Number(t)&&n.competition_id===Number(e));return an(n?{...n,template_json:n.doc||pn(n.name,n.width_mm,n.height_mm),doc:n.doc||pn(n.name,n.width_mm,n.height_mm),default_test_json:n.default_test_json||{}}:null)},En=async e=>{let t=un(`desk`).filter(t=>t.competition_id===Number(e)),n=t.find(e=>e.is_default)||t[0];return n?Tn(e,n.id):an(null)},Dn=async(e,t,n)=>{let r=un(`desk`),i=r.findIndex(n=>n.id===Number(t)&&n.competition_id===Number(e));if(i<0)return an(null);let a=n.doc||n.template_json||n.template||r[i].doc,o=String(n.name||r[i].name),s=Number(a?.canvas?.widthMm||n.width_mm||r[i].width_mm),c=Number(a?.canvas?.heightMm||n.height_mm||r[i].height_mm);return r[i]={...r[i],name:o,width_mm:s,height_mm:c,doc:a,default_test_json:n.default_test_json??r[i].default_test_json??{},update_time:cn()},dn(`desk`,r),an(r[i])},On=async(e,t)=>(dn(`desk`,un(`desk`).filter(n=>n.id!==Number(t)||n.competition_id!==Number(e))),an(!0)),kn=async(e,t)=>(dn(`desk`,un(`desk`).map(n=>n.competition_id===Number(e)?{...n,is_default:n.id===Number(t)}:n)),an(!0)),An=async e=>{let t=on(nn,[]),n=Number(e?.page||1),r=Number(e?.page_size||40),i=(n-1)*r;return an({list:t.slice(i,i+r),total:t.length,page:n,page_size:r})},jn=async e=>{let t=await new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(String(r.result||``)),r.onerror=()=>n(Error(`read failed`)),r.readAsDataURL(e)}),n=on(nn,[]),r={id:n.reduce((e,t)=>Math.max(e,t.id),0)+1,url:t,name:e.name,create_time:cn()};return n.unshift(r),sn(nn,n),an(r)},Mn=async e=>(sn(nn,on(nn,[]).filter(t=>t.id!==Number(e))),an(!0)),Nn=async e=>an([{id:1,name:`演示学校一`,short_name:`校一`},{id:2,name:`演示学校二`,short_name:`校二`}]),Pn=async(e,t)=>an({list:[{id:1,student_name:`张三`,competition_no:`A001`,school_name:`演示学校一`,age_group:`小学组`,competition_room:`101`,seat_no:`01`},{id:2,student_name:`李四`,competition_no:`A002`,school_name:`演示学校一`,age_group:`小学组`,competition_room:`101`,seat_no:`02`}],total:2}),Fn=async(e,t)=>an({list:[],total:0}),In=async(e,t)=>an(!0),Ln=async e=>an([{id:1,competition_room:`101`,seat_no:`01`,student_name:`张三`,school_name:`演示学校一`}]);function Rn(e){let t=String(e||``).trim();if(!t)return``;if(/^data:/i.test(t)||/^blob:/i.test(t))return t;if(/^(https?:)?\/\//i.test(t)){try{let e=new URL(t,window.location.origin);if(e.pathname.startsWith(`/uploads/`))return`${e.pathname}${e.search}${e.hash}`}catch{}return t}return t.startsWith(`/uploads/`)||t.startsWith(`/`)?t:`/${t}`}var zn={class:`lib-grid`},Bn=[`onDblclick`],Vn=[`src`],Hn=[`title`],Un=8,Wn=(0,t.defineComponent)({__name:`BadgeImagePickerDialog`,props:{modelValue:{type:Boolean},defaultTab:{default:`lib`}},emits:[`update:modelValue`,`pick`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.computed)({get:()=>r.modelValue,set:e=>i(`update:modelValue`,e)}),o=(0,t.ref)(`lib`),s=(0,t.ref)(!1),c=(0,t.ref)([]),l=(0,t.ref)(null),u=(0,t.ref)(!1),d=(0,t.ref)(null);function f(e){return Rn(e)}async function p(){s.value=!0;try{let e=await An({page:1,page_size:120});c.value=e.data?.list??[]}catch{c.value=[]}finally{s.value=!1}}(0,t.watch)(()=>r.modelValue,e=>{e&&(o.value=r.defaultTab)});function m(e){e?.url&&(i(`pick`,Rn(e.url)),a.value=!1)}function h(e){d.value=e,u.value=!0}async function g(){let e=d.value;if(e){u.value=!1;try{await Mn(Number(e.id)),Q.success(`已删除`),await p()}catch{}}}async function _(e){for(let t of Array.from(e)){if(t.size/1048576>Un){Q.error(`「${t.name}」超过 ${Un}MB,已跳过`);continue}try{let e=(await jn(t))?.data?.url;if(!e){Q.error(`「${t.name}」上传失败`);continue}i(`pick`,Rn(e)),await p()}catch{}}}function v(e){let t=e.target;t.files?.length&&_(t.files),t.value=``}function y(e){e.dataTransfer?.files?.length&&_(e.dataTransfer.files)}return(e,n)=>{let r=Vt,i=Pt,_=Dt,b=k,x=Ct,S=pt,C=(0,t.resolveDirective)(`fou-loading`);return(0,t.openBlock)(),(0,t.createBlock)(S,{modelValue:a.value,"onUpdate:modelValue":n[5]||=e=>a.value=e,title:`添加图片`,width:`720px`,"destroy-on-close":``,class:`badge-img-picker-dlg`,onOpened:p},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(x,{modelValue:o.value,"onUpdate:modelValue":n[2]||=e=>o.value=e},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(_,{label:`图片库`,name:`lib`},{default:(0,t.withCtx)(()=>[n[7]||=(0,t.createElementVNode)(`p`,{class:`dlg-hint`},`双击缩略图插入到画布;删除后模板里若仍引用该地址将无法显示。`,-1),(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createElementBlock)(`div`,zn,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(c.value,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:e.id,class:`lib-cell`,onDblclick:t=>m(e)},[(0,t.createElementVNode)(`img`,{src:f(e.url),alt:``,class:`thumb`,loading:`lazy`},null,8,Vn),(0,t.createElementVNode)(`div`,{class:`meta`,title:e.orig_name},(0,t.toDisplayString)(e.orig_name||`未命名`),9,Hn),(0,t.createVNode)(r,{type:`danger`,link:``,size:`small`,class:`del`,onClick:(0,t.withModifiers)(t=>h(e),[`stop`])},{default:(0,t.withCtx)(()=>[...n[6]||=[(0,t.createTextVNode)(`删除`,-1)]]),_:1},8,[`onClick`])],40,Bn))),128))])),[[C,s.value]]),!s.value&&!c.value.length?((0,t.openBlock)(),(0,t.createBlock)(i,{key:0,description:`暂无图片,可到「上传本地文件」添加`})):(0,t.createCommentVNode)(``,!0)]),_:1}),(0,t.createVNode)(_,{label:`上传本地文件`,name:`up`},{default:(0,t.withCtx)(()=>[n[10]||=(0,t.createElementVNode)(`p`,{class:`dlg-hint`},`上传后会写入图片库,并自动插入当前画布;可多选文件或一次拖拽多张。`,-1),(0,t.createElementVNode)(`div`,{class:`upload-drop`,onDragover:n[0]||=(0,t.withModifiers)(()=>{},[`prevent`]),onDrop:(0,t.withModifiers)(y,[`prevent`]),onClick:n[1]||=e=>l.value?.click()},[(0,t.createVNode)(b,{icon:`upload-cloud-2-line`,class:`upload-ico`}),n[8]||=(0,t.createElementVNode)(`div`,{class:`upload-text`},[(0,t.createTextVNode)(`拖到此处,或 `),(0,t.createElementVNode)(`em`,null,`点击选择多个文件`)],-1),n[9]||=(0,t.createElementVNode)(`div`,{class:`upload-sub`},`支持 JPG / PNG / GIF / WebP / BMP,单文件不超过 8MB`,-1),(0,t.createElementVNode)(`input`,{ref_key:`fileInputRef`,ref:l,type:`file`,multiple:``,accept:`image/jpeg,image/png,image/gif,image/webp,image/bmp`,class:`upload-input`,onChange:v},null,544)],32)]),_:1})]),_:1},8,[`modelValue`]),(0,t.createVNode)(S,{modelValue:u.value,"onUpdate:modelValue":n[4]||=e=>u.value=e,title:`删除确认`,width:`400px`,"append-to-body":``},{footer:(0,t.withCtx)(()=>[(0,t.createVNode)(r,{onClick:n[3]||=e=>u.value=!1},{default:(0,t.withCtx)(()=>[...n[11]||=[(0,t.createTextVNode)(`取消`,-1)]]),_:1}),(0,t.createVNode)(r,{type:`danger`,onClick:g},{default:(0,t.withCtx)(()=>[...n[12]||=[(0,t.createTextVNode)(`删除`,-1)]]),_:1})]),default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`p`,null,`确定删除「`+(0,t.toDisplayString)(d.value?.orig_name||`该图片`)+`」?`,1)]),_:1},8,[`modelValue`])]),_:1},8,[`modelValue`])}}}),Gn=v({default:()=>Kn}),Kn=S(Wn,[[`__scopeId`,`data-v-ef328213`]]),qn={key:0,class:`fou-pagination__total`},Jn={key:1,class:`fou-pagination__sizes`},Yn=[`disabled`,`value`],Xn=[`value`],Zn=[`disabled`],Qn={key:3,class:`fou-pagination__pager`},$n=[`disabled`,`onClick`],er={key:1,class:`fou-pagination__ellipsis`},tr=[`disabled`],nr={key:5,class:`fou-pagination__jumper`},rr=[`disabled`],ir=(0,t.defineComponent)({name:`FouPagination`,__name:`index`,props:{total:{default:0},currentPage:{default:1},pageSize:{default:10},pageSizes:{default:()=>[10,20,50,100]},layout:{default:`total, sizes, prev, pager, next, jumper`},background:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},hideOnSinglePage:{type:Boolean,default:!1},small:{type:Boolean,default:!1},pagerCount:{default:7},type:{default:`primary`},color:{},variant:{default:`default`}},emits:[`update:current-page`,`update:page-size`,`current-change`,`size-change`],setup(e,{emit:n}){let r={primary:`var(--fou-color-primary, #0f766e)`,success:`var(--fou-color-success, #67c23a)`,warning:`var(--fou-color-warning, #e6a23c)`,danger:`var(--fou-color-danger, #f56c6c)`,info:`var(--fou-color-info, #909399)`,cyan:`#0ea5e9`,orange:`#f97316`,pink:`#ec4899`,teal:`#14b8a6`},i=e,a=n,o=(0,t.ref)(``),s=(0,t.computed)(()=>({"--fou-page-color":i.color||r[i.type]||r.primary})),c=(0,t.computed)(()=>i.layout.split(`,`).map(e=>e.trim()).filter(Boolean)),l=(0,t.computed)(()=>c.value.includes(`total`)),u=(0,t.computed)(()=>c.value.includes(`sizes`)),d=(0,t.computed)(()=>c.value.includes(`prev`)),f=(0,t.computed)(()=>c.value.includes(`pager`)),p=(0,t.computed)(()=>c.value.includes(`next`)),m=(0,t.computed)(()=>c.value.includes(`jumper`)),h=(0,t.computed)(()=>Math.max(1,Math.ceil(i.total/i.pageSize))),g=(0,t.computed)(()=>{let e=h.value,t=i.currentPage,n=i.pagerCount,r=Math.floor(n/2);if(e<=n)return Array.from({length:e},(e,t)=>({key:`p-${t+1}`,number:t+1}));let a=[];a.push({key:`p-1`,number:1});let o=Math.max(2,t-r),s=Math.min(e-1,t+r);t<=r+1?s=n-2:t>=e-r&&(o=e-n+2),o>2&&a.push({key:`e-start`,ellipsis:!0});for(let e=o;e<=s;e++)a.push({key:`p-${e}`,number:e});return s<e-1&&a.push({key:`e-end`,ellipsis:!0}),a.push({key:`p-${e}`,number:e}),a}),_=e=>{let t=Math.min(Math.max(1,e),h.value);t!==i.currentPage&&(a(`update:current-page`,t),a(`current-change`,t))},v=e=>{if(e===i.pageSize)return;a(`update:page-size`,e),a(`size-change`,e);let t=Math.max(1,Math.ceil(i.total/e));i.currentPage>t&&_(t)},y=()=>_(i.currentPage-1),b=()=>_(i.currentPage+1),x=e=>_(e),S=e=>{let t=Number(e.target.value);Number.isNaN(t)||v(t)},C=()=>{let e=parseInt(o.value,10);Number.isNaN(e)||(_(e),o.value=``)};return(n,r)=>!e.hideOnSinglePage||(0,t.unref)(h)>1?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:(0,t.normalizeClass)([`fou-pagination`,[`fou-pagination--${e.type}`,`fou-pagination--${e.variant}`,{"is-background":e.background,"is-small":e.small,"is-disabled":e.disabled}]]),style:(0,t.normalizeStyle)((0,t.unref)(s))},[(0,t.unref)(l)?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,qn,` 共 `+(0,t.toDisplayString)(e.total)+` 条 `,1)):(0,t.createCommentVNode)(``,!0),(0,t.unref)(u)?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Jn,[(0,t.createElementVNode)(`select`,{class:`fou-pagination__select`,disabled:e.disabled,value:e.pageSize,onChange:S},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.pageSizes,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`option`,{key:e,value:e},(0,t.toDisplayString)(e)+` 条/页 `,9,Xn))),128))],40,Yn)])):(0,t.createCommentVNode)(``,!0),(0,t.unref)(d)?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:2,type:`button`,class:`fou-pagination__btn fou-pagination__prev`,disabled:e.disabled||e.currentPage<=1,onClick:y},` ‹ `,8,Zn)):(0,t.createCommentVNode)(``,!0),(0,t.unref)(f)?((0,t.openBlock)(),(0,t.createElementBlock)(`ul`,Qn,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(g),n=>((0,t.openBlock)(),(0,t.createElementBlock)(`li`,{key:n.key,class:(0,t.normalizeClass)([`fou-pagination__page`,{"is-active":n.number===e.currentPage,"is-ellipsis":n.ellipsis}])},[n.ellipsis?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,er,`…`)):((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:0,type:`button`,class:`fou-pagination__page-btn`,disabled:e.disabled,onClick:e=>x(n.number)},(0,t.toDisplayString)(n.number),9,$n))],2))),128))])):(0,t.createCommentVNode)(``,!0),(0,t.unref)(p)?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:4,type:`button`,class:`fou-pagination__btn fou-pagination__next`,disabled:e.disabled||e.currentPage>=(0,t.unref)(h),onClick:b},` › `,8,tr)):(0,t.createCommentVNode)(``,!0),(0,t.unref)(m)?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,nr,[r[1]||=(0,t.createElementVNode)(`span`,null,`前往`,-1),(0,t.withDirectives)((0,t.createElementVNode)(`input`,{"onUpdate:modelValue":r[0]||=e=>(0,t.isRef)(o)?o.value=e:null,class:`fou-pagination__jumper-input`,type:`text`,disabled:e.disabled,onKeydown:(0,t.withKeys)(C,[`enter`])},null,40,rr),[[t.vModelText,(0,t.unref)(o)]]),r[2]||=(0,t.createElementVNode)(`span`,null,`页`,-1)])):(0,t.createCommentVNode)(``,!0)],6)):(0,t.createCommentVNode)(``,!0)}}),ar=v({default:()=>or}),or=S(ir,[[`__scopeId`,`data-v-1ed90219`]]),sr=(0,t.defineComponent)({name:`FouSkeleton`,__name:`index`,props:{rows:{default:3},animated:{type:Boolean,default:!0},loading:{type:Boolean,default:!0},lastRowWidth:{default:60}},setup(e){let n=e,r=e=>e===n.rows?{width:`${n.lastRowWidth}%`}:{};return(n,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-skeleton`,{"is-loading":e.loading}])},[e.loading?((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,{key:0},(0,t.renderList)(e.rows,n=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:n,class:(0,t.normalizeClass)([`fou-skeleton__row`,{"is-animated":e.animated}]),style:(0,t.normalizeStyle)(r(n))},null,6))),128)):(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0,1)],2))}}),cr=v({default:()=>lr}),lr=S(sr,[[`__scopeId`,`data-v-909546e6`]]),ur={key:0,class:`fou-card__header`},dr={key:1,class:`fou-card__footer`},fr=(0,t.defineComponent)({name:`FouCard`,__name:`index`,props:{bodyClass:{type:String,default:``},bodyStyle:{type:[Object,String],default:()=>({})},shadow:{type:String,default:`never`},skeleton:{type:Boolean,default:!1},skeletonRows:{type:Number,default:5},title:{type:String,default:``}},setup(e){let n=(0,t.ref)(!0),r=setTimeout(()=>{n.value=!1},500);return(0,t.onBeforeUnmount)(()=>{clearTimeout(r)}),(r,i)=>{let a=lr;return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-card`,[`fou-card--shadow-${e.shadow}`]])},[r.$slots.header||e.title?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ur,[r.$slots.header?(0,t.renderSlot)(r.$slots,`header`,{},void 0,!0,0):((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:1},[(0,t.createTextVNode)((0,t.toDisplayString)(e.title),1)],64))])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`fou-card__body`,e.bodyClass]),style:(0,t.normalizeStyle)(e.bodyStyle)},[e.skeleton?((0,t.openBlock)(),(0,t.createBlock)(a,{key:0,animated:``,loading:(0,t.unref)(n),rows:e.skeletonRows},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(r.$slots,`default`,{},void 0,!0)]),_:3},8,[`loading`,`rows`])):(0,t.renderSlot)(r.$slots,`default`,{},void 0,!0,1)],6),r.$slots.footer?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,dr,[(0,t.renderSlot)(r.$slots,`footer`,{},void 0,!0)])):(0,t.createCommentVNode)(``,!0)],2)}}}),pr=v({default:()=>mr}),mr=S(fr,[[`__scopeId`,`data-v-b19ab3ea`]]),hr={class:`badge-library-panel`},gr={class:`upload-btn`},_r={class:`lib-grid`},vr=[`src`],yr=[`title`],br={class:`sub`},xr={key:1,class:`pager`},Sr=(0,t.defineComponent)({__name:`BadgeLibraryPanel`,setup(e,{expose:n}){let r=(0,t.ref)(!1),i=(0,t.ref)([]),a=(0,t.ref)(0),o=(0,t.ref)(1),s=(0,t.ref)(40),c=(0,t.ref)(!1),l=(0,t.ref)(null);function u(e){return Rn(e)}function d(e){let t=Number(e)||0;return t<1024?`${t} B`:t<1048576?`${(t/1024).toFixed(1)} KB`:`${(t/1024/1024).toFixed(2)} MB`}async function f(){r.value=!0;try{let e=await An({page:o.value,page_size:s.value});i.value=e.data?.list??[],a.value=Number(e.data?.total??0)}catch{i.value=[],a.value=0}finally{r.value=!1}}async function p(e){let t=e.target,n=t.files?.[0];if(t.value=``,n)try{await jn(n),Q.success(`已上传`),o.value=1,await f()}catch{}}function m(e){l.value=e,c.value=!0}async function h(){let e=l.value;if(e){c.value=!1;try{await Mn(Number(e.id)),Q.success(`已删除`),await f()}catch{}}}return(0,t.onMounted)(()=>f()),n({load:f}),(e,n)=>{let g=Vt,_=mr,v=Pt,y=or,b=pt,x=(0,t.resolveDirective)(`fou-loading`);return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,hr,[(0,t.createVNode)(_,{shadow:`never`,class:`toolbar-card`},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`label`,gr,[(0,t.createElementVNode)(`input`,{type:`file`,accept:`image/jpeg,image/png,image/gif,image/webp,image/bmp`,class:`upload-input`,onChange:p},null,32),(0,t.createVNode)(g,{type:`primary`,tag:`span`},{default:(0,t.withCtx)(()=>[...n[3]||=[(0,t.createTextVNode)(`上传图片`,-1)]]),_:1})]),n[4]||=(0,t.createElementVNode)(`span`,{class:`hint`},`上传后可在模板编辑器的「图片库」中选用。`,-1)]),_:1}),(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createBlock)(_,{shadow:`never`},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,_r,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(i.value,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:e.id,class:`lib-cell`},[(0,t.createElementVNode)(`img`,{src:u(e.url),alt:``,class:`thumb`,loading:`lazy`},null,8,vr),(0,t.createElementVNode)(`div`,{class:`meta`,title:e.orig_name},(0,t.toDisplayString)(e.orig_name||`未命名`),9,yr),(0,t.createElementVNode)(`div`,br,(0,t.toDisplayString)(d(e.size))+` · `+(0,t.toDisplayString)(e.create_time),1),(0,t.createVNode)(g,{type:`danger`,link:``,size:`small`,onClick:t=>m(e)},{default:(0,t.withCtx)(()=>[...n[5]||=[(0,t.createTextVNode)(`删除`,-1)]]),_:1},8,[`onClick`])]))),128))]),!r.value&&!i.value.length?((0,t.openBlock)(),(0,t.createBlock)(v,{key:0,description:`暂无图片`})):(0,t.createCommentVNode)(``,!0),a.value>s.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,xr,[(0,t.createVNode)(y,{"current-page":o.value,"onUpdate:currentPage":n[0]||=e=>o.value=e,"page-size":s.value,layout:`total, prev, pager, next`,total:a.value,onCurrentChange:f},null,8,[`current-page`,`page-size`,`total`])])):(0,t.createCommentVNode)(``,!0)]),_:1})),[[x,r.value]]),(0,t.createVNode)(b,{modelValue:c.value,"onUpdate:modelValue":n[2]||=e=>c.value=e,title:`删除确认`,width:`400px`},{footer:(0,t.withCtx)(()=>[(0,t.createVNode)(g,{onClick:n[1]||=e=>c.value=!1},{default:(0,t.withCtx)(()=>[...n[6]||=[(0,t.createTextVNode)(`取消`,-1)]]),_:1}),(0,t.createVNode)(g,{type:`danger`,onClick:h},{default:(0,t.withCtx)(()=>[...n[7]||=[(0,t.createTextVNode)(`删除`,-1)]]),_:1})]),default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`p`,null,`确定删除「`+(0,t.toDisplayString)(l.value?.orig_name||`该图片`)+`」?`,1)]),_:1},8,[`modelValue`])])}}}),Cr=v({default:()=>wr}),wr=S(Sr,[[`__scopeId`,`data-v-4ed86f1c`]]),Tr=(0,t.defineComponent)({__name:`BadgeLibraryManagerDialog`,props:{modelValue:{type:Boolean}},emits:[`update:modelValue`],setup(e){return(n,r)=>{let i=pt;return(0,t.openBlock)(),(0,t.createBlock)(i,{"model-value":e.modelValue,title:`证件图片库`,width:`min(920px, 94vw)`,class:`badge-library-manager-dialog`,"append-to-body":``,"destroy-on-close":``,"onUpdate:modelValue":r[0]||=e=>n.$emit(`update:modelValue`,e)},{default:(0,t.withCtx)(()=>[r[1]||=(0,t.createElementVNode)(`p`,{class:`dlg-tip`},`管理模板编辑中上传的图片;删除后已保存模板里若仍引用该地址将无法显示。`,-1),e.modelValue?((0,t.openBlock)(),(0,t.createBlock)(wr,{key:0})):(0,t.createCommentVNode)(``,!0)]),_:1},8,[`model-value`])}}}),Er=v({default:()=>Dr}),Dr=S(Tr,[[`__scopeId`,`data-v-2b73e005`]]);function Or(){return Ir.map(e=>({...e,fields:e.fields.map(e=>({...e})),sample:e.sample?{...e.sample}:void 0}))}function kr(e,t){let n=new Map;for(let e of Or())n.set(e.id,e);for(let t of e||[]){let e=n.get(t.id);n.set(t.id,e?{...e,...t,fields:t.fields?.length?t.fields:e.fields}:{...t})}for(let e of t||[]){let t=n.get(e.id);n.set(e.id,t?{...t,...e,fields:e.fields?.length?e.fields:t.fields}:{...e})}return[...n.values()].filter(e=>e.enabled!==!1)}function Ar(e,t){return`{{${e}.${t}}}`}function jr(e){let t=[];for(let n of e)for(let e of n.fields)t.push({moduleId:n.id,moduleLabel:n.label,key:e.key,label:e.label,token:Ar(n.id,e.key)});return t}function Mr(e){let t={};for(let n of e)t[n.id]={...n.sample||{}};return t}function Nr(e,t){let n={};for(let[t,r]of Object.entries(e))r!=null&&(n[t]=String(r));!n.competition_name&&t&&(n.competition_name=t);let r={...n};for(let[e,t]of Object.entries(Fr)){let[i,a]=t.split(`.`),o=n[e]??``;(!r[i]||typeof r[i]==`string`)&&(r[i]={}),r[i][a]=o}return r}function Pr(e,t){return{id:`custom_${Date.now().toString(36)}`,label:e||`自定义模块`,builtin:!1,enabled:!0,fields:t?.length?t:[{key:`name`,label:`名称`},{key:`value`,label:`值`}],sample:{name:`示例`,value:`123`}}}var Fr,Ir,Lr=g((()=>{Fr={competition_name:`competition.name`,student_name:`student.name`,competition_no:`student.competition_no`,school_name:`school.name`,school_short_name:`school.short_name`,age_group:`student.age_group`,competition_room:`classroom.name`,seat_no:`classroom.seat_no`,floor:`classroom.floor`,teacher_name:`teacher.name`,date:`competition.date`,session:`competition.session`,enroll_teacher_name:`teacher.enroll_name`,teacher_phone:`teacher.phone`,signup_teacher_name:`teacher.signup_name`,signup_teacher_phone:`teacher.signup_phone`,signup_teacher_department:`teacher.signup_department`,signup_teacher_position:`teacher.signup_position`,signup_teacher_id_card:`teacher.signup_id_card`,signup_teacher_email:`teacher.signup_email`,signup_teacher_username:`teacher.signup_username`,venue_name:`classroom.venue_name`,venue_address:`classroom.venue_address`,competition_daily_start:`competition.daily_start`,competition_daily_end:`competition.daily_end`},Ir=[{id:`student`,label:`学生`,builtin:!0,enabled:!0,fields:[{key:`name`,label:`姓名`},{key:`competition_no`,label:`参赛编号`},{key:`age_group`,label:`年龄段`}],sample:{name:`张三`,competition_no:`A001`,age_group:`中班`}},{id:`teacher`,label:`教师`,builtin:!0,enabled:!0,fields:[{key:`name`,label:`监考教师`},{key:`phone`,label:`手机`},{key:`enroll_name`,label:`带队教师`},{key:`signup_name`,label:`报名教师`},{key:`signup_phone`,label:`报名教师手机`},{key:`signup_department`,label:`报名教师部门`},{key:`signup_position`,label:`报名教师职务`},{key:`signup_id_card`,label:`报名教师身份证`},{key:`signup_email`,label:`报名教师邮箱`},{key:`signup_username`,label:`报名教师账号`}],sample:{name:`李老师`,phone:`13800000000`,signup_name:`王老师`}},{id:`classroom`,label:`教室`,builtin:!0,enabled:!0,fields:[{key:`name`,label:`考场/教室`},{key:`seat_no`,label:`座位号`},{key:`floor`,label:`楼层`},{key:`venue_name`,label:`场地名称`},{key:`venue_address`,label:`场地地址`}],sample:{name:`301 教室`,seat_no:`12`,floor:`3F`}},{id:`school`,label:`学校`,builtin:!0,enabled:!0,fields:[{key:`name`,label:`学校全称`},{key:`short_name`,label:`学校简称`}],sample:{name:`示范幼儿园`,short_name:`示范园`}},{id:`competition`,label:`比赛`,builtin:!0,enabled:!0,fields:[{key:`name`,label:`比赛名称`},{key:`date`,label:`比赛日期`},{key:`session`,label:`场次`},{key:`daily_start`,label:`当天开始`},{key:`daily_end`,label:`当天结束`}],sample:{name:`示例比赛`,date:`2026-08-16`,session:`上午场`}}]}));Lr();function Rr(e,t){let n=t.split(`.`).filter(Boolean);if(n.length===1){let t=e[n[0]];return t==null?``:typeof t==`string`?t:``}if(n.length>=2){let t=e[n[0]];if(t&&typeof t==`object`){let e=t[n[1]];return e!=null&&e!==``?String(e):``}}return``}function zr(e,t){let n=String(t||``).trim();if(!n)return``;if(n.includes(`.`)){let t=Rr(e,n);if(t)return t}let r=e[n];if(typeof r==`string`&&r!==``)return r;let i=Fr[n];if(i){let t=Rr(e,i);if(t)return t}return``}function Br(e,t){if(!e)return``;let n=t;return e.replace(/\{\{\s*([a-zA-Z0-9_.]+)\s*\}\}/g,(e,t)=>zr(n,t))}function Vr(e,t){return Br(e,t)}function Hr(e){return[...e].sort((e,t)=>(e.zIndex??0)-(t.zIndex??0))}function Ur(e){return e?(/^(https?:|data:|blob:|\/\/)/i.test(e),e):``}var Wr=[`src`],Gr=[`src`],Kr={class:`fou-canvas-shape-svg`,viewBox:`0 0 100 100`,preserveAspectRatio:`none`},qr=[`stroke`,`stroke-width`],Jr=[`fill`,`stroke`,`stroke-width`],Yr=[`fill`,`stroke`,`stroke-width`],Xr=[`fill`,`stroke`,`stroke-width`],Zr=[`points`,`fill`,`stroke`,`stroke-width`],Qr=96/25.4,$r=(0,t.defineComponent)({name:`FouCanvasRenderer`,__name:`FouCanvasRenderer`,props:{doc:{},mergeData:{default:()=>({})},screenScale:{default:1},enableLinks:{type:Boolean,default:!0}},setup(e){let n=e,r=(0,t.computed)(()=>n.doc?.elements?.length?Hr(n.doc.elements):[]),i=(0,t.computed)(()=>{let e=n.doc;if(!e?.canvas)return{};let t=e.canvas.showBorder!==!1&&e.mode!==`banner`,r=e.canvas.borderColor||`#334155`,i=Number(e.canvas.borderWidthMm),a=Number.isFinite(i)&&i>0?i:.35,o=e.canvas.unit===`px`||e.mode===`banner`&&!!e.canvas.widthPx;return{width:o?`${e.canvas.widthPx??Math.round(e.canvas.widthMm*Qr)}px`:`${e.canvas.widthMm}mm`,height:o?`${e.canvas.heightPx??Math.round(e.canvas.heightMm*Qr)}px`:`${e.canvas.heightMm}mm`,position:`relative`,boxSizing:`border-box`,overflow:`hidden`,backgroundColor:e.canvas.background||`transparent`,border:t?`${a}mm solid ${r}`:`0 solid transparent`}}),a=(0,t.computed)(()=>{let e=n.doc?.canvas?.backgroundImage;return e?Ur(e):``}),o=(0,t.computed)(()=>({transform:`scale(${n.screenScale})`,transformOrigin:`top left`})),s=(0,t.computed)(()=>{let e=n.doc?.canvas;if(!e)return{};let t=e.unit===`px`||n.doc?.mode===`banner`&&!!e.widthPx,r=t?(e.widthPx??e.widthMm*Qr)*n.screenScale:e.widthMm*Qr*n.screenScale,i=t?(e.heightPx??e.heightMm*Qr)*n.screenScale:e.heightMm*Qr*n.screenScale;return{width:`${r}px`,height:`${i}px`,overflow:`hidden`,lineHeight:0,display:`inline-block`,verticalAlign:`top`}});function c(e){return Br(e.text,n.mergeData||{})}function l(e){return e.link?.href?Br(e.link.href,n.mergeData||{}):``}function u(e){switch(e){case`center`:return{justifyContent:`center`,alignItems:`center`,textAlign:`center`};case`top-center`:return{justifyContent:`center`,alignItems:`flex-start`,textAlign:`center`};case`bottom-center`:return{justifyContent:`center`,alignItems:`flex-end`,textAlign:`center`};case`middle-left`:return{justifyContent:`flex-start`,alignItems:`center`,textAlign:`left`};case`middle-right`:return{justifyContent:`flex-end`,alignItems:`center`,textAlign:`right`};default:return{justifyContent:`flex-start`,alignItems:`flex-start`,textAlign:`left`}}}function d(e){let t=[];return e.rotation&&t.push(`rotate(${e.rotation}deg)`),e.flipX&&t.push(`scaleX(-1)`),e.flipY&&t.push(`scaleY(-1)`),{position:`absolute`,left:`${e.xMm}mm`,top:`${e.yMm}mm`,width:`${e.wMm}mm`,height:`${e.hMm}mm`,zIndex:e.zIndex??1,transform:t.join(` `)||void 0,transformOrigin:`center center`,pointerEvents:n.enableLinks&&e.link?.href?`auto`:`none`,textDecoration:`none`,color:void 0}}function f(e){let t=u(e.align),n=e.textDirection===`vertical`;return{...d(e),display:`flex`,...t,fontSize:`${e.fontSize}pt`,fontFamily:e.fontFamily,color:e.color,lineHeight:1.25,whiteSpace:`pre-wrap`,wordBreak:`break-word`,overflow:`hidden`,writingMode:n?`vertical-rl`:`horizontal-tb`,textOrientation:n?`upright`:`mixed`}}function p(e){return e.type!==`image`&&e.type!==`seal`?{}:{...d(e),display:`flex`,justifyContent:`center`,alignItems:`center`,padding:`0.5mm`,boxSizing:`border-box`}}function m(e){return{...d(e),boxSizing:`border-box`,opacity:e.opacity==null?void 0:String(e.opacity)}}function h(e){return e.showStroke===!1?`none`:e.strokeColor||`#606266`}function g(e){return Math.max(0,Number(e.strokeWidthMm??.6))}function _(e){return e.background||`transparent`}function v(e){let t=Math.max(3,Math.min(12,Math.round(Number(e.polygonSides??5)))),n=[];for(let e=0;e<t;e++){let r=-Math.PI/2+Math.PI*2*e/t;n.push(`${50+Math.cos(r)*44},${50+Math.sin(r)*44}`)}return n.join(` `)}return(n,u)=>e.doc?.canvas?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:`qck-layout-clip`,style:(0,t.normalizeStyle)(s.value)},[(0,t.createElementVNode)(`div`,{class:`qck-screen-wrap`,style:(0,t.normalizeStyle)(o.value)},[(0,t.createElementVNode)(`div`,{class:`fou-canvas-root qck-print-root`,style:(0,t.normalizeStyle)(i.value)},[a.value?((0,t.openBlock)(),(0,t.createElementBlock)(`img`,{key:0,class:`fou-canvas-bg`,src:a.value,alt:``,crossorigin:`anonymous`},null,8,Wr)):(0,t.createCommentVNode)(``,!0),((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.doc.regions||[],e=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:e.id,class:`fou-canvas-region`,style:(0,t.normalizeStyle)({left:`${e.xMm}mm`,top:`${e.yMm}mm`,width:`${e.wMm}mm`,height:`${e.hMm}mm`,backgroundColor:e.background||`transparent`,backgroundImage:e.backgroundImage?`url(${(0,t.unref)(Ur)(e.backgroundImage)})`:void 0,backgroundSize:e.backgroundImage?`cover`:void 0,backgroundPosition:e.backgroundImage?`center`:void 0})},null,4))),128)),((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(r.value,n=>((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:n.id},[n.type===`text`?((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.enableLinks&&l(n)?`a`:`div`),{key:0,href:e.enableLinks&&l(n)?l(n):void 0,target:n.link?.target||`_blank`,rel:n.link?.target===`_self`?void 0:`noopener noreferrer`,style:(0,t.normalizeStyle)(f(n))},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(c(n)),1)]),_:2},1032,[`href`,`target`,`rel`,`style`])):n.type===`image`||n.type===`seal`?((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.enableLinks&&l(n)?`a`:`div`),{key:1,href:e.enableLinks&&l(n)?l(n):void 0,target:n.link?.target||`_blank`,rel:n.link?.target===`_self`?void 0:`noopener noreferrer`,style:(0,t.normalizeStyle)(p(n))},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`img`,{src:(0,t.unref)(Ur)(n.src),alt:``,style:{"max-width":`100%`,"max-height":`100%`,"object-fit":`contain`}},null,8,Gr)]),_:2},1032,[`href`,`target`,`rel`,`style`])):n.type===`shape`?((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(e.enableLinks&&l(n)?`a`:`div`),{key:2,href:e.enableLinks&&l(n)?l(n):void 0,target:n.link?.target||`_blank`,rel:n.link?.target===`_self`?void 0:`noopener noreferrer`,style:(0,t.normalizeStyle)(m(n))},{default:(0,t.withCtx)(()=>[((0,t.openBlock)(),(0,t.createElementBlock)(`svg`,Kr,[n.shape===`line`?((0,t.openBlock)(),(0,t.createElementBlock)(`line`,{key:0,x1:`4`,y1:`50`,x2:`96`,y2:`50`,stroke:h(n),"stroke-width":Math.max(g(n)*3.2,1),"stroke-linecap":`round`},null,8,qr)):n.shape===`rect`?((0,t.openBlock)(),(0,t.createElementBlock)(`rect`,{key:1,x:`4`,y:`4`,width:`92`,height:`92`,fill:_(n),stroke:h(n),"stroke-width":g(n)*3.2},null,8,Jr)):n.shape===`circle`?((0,t.openBlock)(),(0,t.createElementBlock)(`ellipse`,{key:2,cx:`50`,cy:`50`,rx:`46`,ry:`46`,fill:_(n),stroke:h(n),"stroke-width":g(n)*3.2},null,8,Yr)):n.shape===`triangle`?((0,t.openBlock)(),(0,t.createElementBlock)(`polygon`,{key:3,points:`50,4 96,96 4,96`,fill:_(n),stroke:h(n),"stroke-width":g(n)*3.2,"stroke-linejoin":`round`},null,8,Xr)):((0,t.openBlock)(),(0,t.createElementBlock)(`polygon`,{key:4,points:v(n),fill:_(n),stroke:h(n),"stroke-width":g(n)*3.2,"stroke-linejoin":`round`},null,8,Zr))]))]),_:2},1032,[`href`,`target`,`rel`,`style`])):(0,t.createCommentVNode)(``,!0)],64))),128))],4)],4)],4)):(0,t.createCommentVNode)(``,!0)}}),ei=v({default:()=>ti}),ti=S($r,[[`__scopeId`,`data-v-739c164e`]]),ni=(0,t.defineComponent)({name:`FouBadgeTemplateRenderer`,__name:`BadgeTemplateRenderer`,props:{doc:{},mergeData:{default:()=>({})},screenScale:{default:1},enableLinks:{type:Boolean,default:!1}},setup(e){return(n,r)=>((0,t.openBlock)(),(0,t.createBlock)(ti,{doc:e.doc,"merge-data":e.mergeData,"screen-scale":e.screenScale,"enable-links":e.enableLinks},null,8,[`doc`,`merge-data`,`screen-scale`,`enable-links`]))}}),ri=v({default:()=>ii}),ii=ni,ai={class:`page-container badge-library-page`},oi=(0,t.defineComponent)({__name:`BadgeLibraryView`,setup(e){return(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ai,[n[0]||=(0,t.createElementVNode)(`div`,{class:`page-head`},[(0,t.createElementVNode)(`h2`,{class:`page-h2`},`证件图片库`),(0,t.createElementVNode)(`p`,{class:`page-desc`},`管理模板编辑中上传的图片,可删除不再使用的文件;删除后已保存模板里若仍引用该地址将无法显示。`)],-1),(0,t.createVNode)(wr)]))}}),si=v({default:()=>ci}),ci=S(oi,[[`__scopeId`,`data-v-7433605f`]]),li=Symbol(`fouForm`),ui=Symbol(`fouFormItem`);function di(e){let n=(0,t.inject)(li,null);return(0,t.computed)(()=>!!((0,t.toValue)(e)||n?.disabled.value))}function fi(){let e=(0,t.inject)(ui,null);return{triggerBlur:()=>e?.onFieldBlur?.(),triggerChange:()=>e?.onFieldChange?.()}}var pi=[`disabled`],mi=[`value`,`disabled`,`readonly`,`onKeydown`],hi=[`disabled`],gi=[`disabled`],_i=(0,t.defineComponent)({name:`FouInputNumber`,__name:`index`,props:{modelValue:{default:null},min:{default:-1/0},max:{default:1/0},step:{default:1},stepStrictly:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},controls:{type:Boolean,default:!0},controlsPosition:{default:``},size:{default:`default`},precision:{}},emits:[`update:modelValue`,`change`,`blur`],setup(e,{expose:n,emit:r}){let i=e,a=r,o=(0,t.ref)(null),s=di(()=>i.disabled),{triggerBlur:c,triggerChange:l}=fi(),u=(0,t.computed)(()=>i.size||`default`),d=e=>Math.min(i.max,Math.max(i.min,e)),f=e=>{if(!i.stepStrictly)return e;let t=Math.round((e-i.min)/i.step);return d(i.min+t*i.step)},p=e=>{if(e==null||Number.isNaN(e))return null;let t=f(e);return t=d(t),i.precision!==void 0&&(t=Number(t.toFixed(i.precision))),t},m=(0,t.computed)(()=>i.modelValue===null||i.modelValue===void 0?``:String(i.modelValue)),h=(0,t.computed)(()=>i.modelValue!==null&&i.modelValue<=i.min),g=(0,t.computed)(()=>i.modelValue!==null&&i.modelValue>=i.max),_=e=>{a(`update:modelValue`,e),a(`change`,e),l()},v=()=>i.modelValue??(i.min===-1/0?0:i.min),y=()=>{s.value||_(p(v()+i.step))},b=()=>{s.value||_(p(v()-i.step))},x=e=>{let t=e.target.value;if(t===``||t===`-`){a(`update:modelValue`,null);return}let n=Number(t);Number.isNaN(n)||a(`update:modelValue`,n)},S=e=>{let t=p(i.modelValue??null);t!==i.modelValue&&_(t),a(`blur`,e),c()};return n({focus:()=>o.value?.focus()}),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-input-number`,[`fou-input-number--${(0,t.unref)(u)}`,{"is-disabled":(0,t.unref)(s),"is-controls-right":e.controlsPosition===`right`,"is-without-controls":!e.controls}]])},[e.controls&&e.controlsPosition!==`right`?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:0,type:`button`,class:`fou-input-number__decrease`,disabled:(0,t.unref)(s)||(0,t.unref)(h),tabindex:`-1`,onMousedown:r[0]||=(0,t.withModifiers)(()=>{},[`prevent`]),onClick:b},` − `,40,pi)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`input`,{ref_key:`inputRef`,ref:o,class:`fou-input-number__inner`,type:`text`,value:(0,t.unref)(m),disabled:(0,t.unref)(s),readonly:e.readonly,onInput:x,onBlur:S,onKeydown:[(0,t.withKeys)((0,t.withModifiers)(y,[`prevent`]),[`up`]),(0,t.withKeys)((0,t.withModifiers)(b,[`prevent`]),[`down`])]},null,40,mi),e.controls?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:1,type:`button`,class:`fou-input-number__increase`,disabled:(0,t.unref)(s)||(0,t.unref)(g),tabindex:`-1`,onMousedown:r[1]||=(0,t.withModifiers)(()=>{},[`prevent`]),onClick:y},` + `,40,hi)):(0,t.createCommentVNode)(``,!0),e.controls&&e.controlsPosition===`right`?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:2,type:`button`,class:`fou-input-number__decrease fou-input-number__decrease--right`,disabled:(0,t.unref)(s)||(0,t.unref)(h),tabindex:`-1`,onMousedown:r[2]||=(0,t.withModifiers)(()=>{},[`prevent`]),onClick:b},` − `,40,gi)):(0,t.createCommentVNode)(``,!0)],2))}}),vi=v({default:()=>yi}),yi=S(_i,[[`__scopeId`,`data-v-78464b98`]]),bi=(0,t.defineComponent)({name:`FouForm`,__name:`index`,props:{model:{},rules:{},labelWidth:{default:``},labelPosition:{default:`right`},inline:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},hideRequiredAsterisk:{type:Boolean,default:!1},requireAsteriskPosition:{default:`left`},validateOnRuleChange:{type:Boolean,default:!0}},emits:[`validate`],setup(e,{expose:n,emit:r}){let i=e,a=r,o=(0,t.computed)(()=>!i.labelWidth&&i.labelWidth!==0?``:typeof i.labelWidth==`number`?`${i.labelWidth}px`:i.labelWidth),s=(0,t.computed)(()=>{if(o.value)return{"--fou-form-label-width":o.value}}),c=(0,t.ref)([]),l=e=>{c.value.find(t=>t.uid===e.uid)||c.value.push(e)},u=e=>{c.value=c.value.filter(t=>t.uid!==e.uid)},d=e=>{let t=c.value.filter(e=>e.prop);return Promise.all(t.map(e=>e.validate(``))).then(t=>{let n=t.every(Boolean);return e?.(n),n}).catch(()=>(e?.(!1),!1))},f=async e=>{let t=Array.isArray(e)?e:[e],n=c.value.filter(e=>e.prop&&t.includes(e.prop));return(await Promise.all(n.map(e=>e.validate(``)))).every(Boolean)},p=()=>{c.value.forEach(e=>e.resetField())},m=e=>{let t=e?Array.isArray(e)?e:[e]:null;c.value.forEach(e=>{(!t||e.prop&&t.includes(e.prop))&&e.clearValidate()})},h={model:(0,t.computed)(()=>i.model),rules:(0,t.computed)(()=>i.rules),labelWidth:o,labelPosition:(0,t.computed)(()=>i.labelPosition),disabled:(0,t.computed)(()=>i.disabled),hideRequiredAsterisk:(0,t.computed)(()=>i.hideRequiredAsterisk),requireAsteriskPosition:(0,t.computed)(()=>i.requireAsteriskPosition),addField:l,removeField:u,emitValidate:(e,t,n)=>a(`validate`,e,t,n)};return(0,t.provide)(li,h),(0,t.provide)(`fouFormLabelWidth`,o),(0,t.provide)(`fouFormLabelPosition`,(0,t.computed)(()=>i.labelPosition)),(0,t.watch)(()=>i.rules,()=>{i.validateOnRuleChange&&d()},{deep:!0}),n({validate:d,validateField:f,resetFields:p,clearValidate:m}),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`form`,{class:(0,t.normalizeClass)([`fou-form`,[`fou-form--label-${e.labelPosition}`,{"fou-form--inline":e.inline}]]),style:(0,t.normalizeStyle)((0,t.unref)(s)),onSubmit:r[0]||=(0,t.withModifiers)(()=>{},[`prevent`])},[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)],38))}}),xi=v({default:()=>Si}),Si=S(bi,[[`__scopeId`,`data-v-8fb91f7d`]]),Ci=[`aria-checked`,`aria-disabled`,`onKeydown`],wi={key:0,class:`fou-switch__label`},Ti={key:0,class:`fou-switch__label--left`},Ei={key:1,class:`fou-switch__label--right`},Di=(0,t.defineComponent)({name:`FouSwitch`,__name:`index`,props:{modelValue:{type:[Boolean,String,Number],default:!1},disabled:{type:Boolean,default:!1},size:{default:`default`},activeText:{default:``},inactiveText:{default:``},activeValue:{type:[Boolean,String,Number],default:!0},inactiveValue:{type:[Boolean,String,Number],default:!1}},emits:[`update:modelValue`,`change`],setup(e,{emit:n}){let r=e,i=n,a=di(()=>r.disabled),{triggerChange:o}=fi(),s=(0,t.computed)(()=>r.modelValue===r.activeValue),c=()=>{if(a.value)return;let e=s.value?r.inactiveValue:r.activeValue;i(`update:modelValue`,e),i(`change`,e),o()};return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-switch`,[`fou-switch--${e.size}`,{"is-checked":(0,t.unref)(s),"is-disabled":(0,t.unref)(a)}]]),role:`switch`,tabindex:`0`,"aria-checked":(0,t.unref)(s),"aria-disabled":(0,t.unref)(a),onClick:c,onKeydown:[(0,t.withKeys)((0,t.withModifiers)(c,[`prevent`]),[`enter`]),(0,t.withKeys)((0,t.withModifiers)(c,[`prevent`]),[`space`])]},[r[0]||=(0,t.createElementVNode)(`span`,{class:`fou-switch__core`},[(0,t.createElementVNode)(`span`,{class:`fou-switch__action`})],-1),e.inactiveText||e.activeText?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,wi,[!(0,t.unref)(s)&&e.inactiveText?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Ti,(0,t.toDisplayString)(e.inactiveText),1)):(0,t.createCommentVNode)(``,!0),(0,t.unref)(s)&&e.activeText?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Ei,(0,t.toDisplayString)(e.activeText),1)):(0,t.createCommentVNode)(``,!0)])):(0,t.createCommentVNode)(``,!0)],42,Ci))}}),Oi=v({default:()=>ki}),ki=S(Di,[[`__scopeId`,`data-v-71a2df05`]]),Ai=(0,t.defineComponent)({name:`FouCheckboxGroup`,__name:`FouCheckboxGroup`,props:{modelValue:{default:()=>[]},disabled:{type:Boolean,default:!1},type:{default:`default`}},emits:[`update:modelValue`,`change`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.computed)(()=>r.modelValue),o=(0,t.computed)(()=>r.disabled);return(0,t.provide)(`fouCheckboxGroup`,{modelValue:a,disabled:o,type:(0,t.computed)(()=>r.type),toggleOption:(e,t)=>{let n=[...r.modelValue],a=n.indexOf(e);t&&a<0?n.push(e):!t&&a>=0&&n.splice(a,1),i(`update:modelValue`,n),i(`change`,n)}}),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-checkbox-group`,[{"is-disabled":e.disabled},`fou-checkbox-group--${e.type}`]]),role:`group`},[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)],2))}}),ji=v({default:()=>Mi}),Mi=S(Ai,[[`__scopeId`,`data-v-65eb18b5`]]),Ni={class:`fou-checkbox__input`},Pi=[`checked`,`disabled`,`value`],Fi={key:0,class:`fou-checkbox__label`},Ii=(0,t.defineComponent)({name:`FouCheckbox`,__name:`index`,props:{modelValue:{type:[Boolean,String,Number],default:!1},label:{},disabled:{type:Boolean,default:!1},indeterminate:{type:Boolean,default:!1},trueLabel:{},falseLabel:{},border:{type:Boolean,default:!1}},emits:[`update:modelValue`,`change`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.useSlots)(),o=(0,t.inject)(`fouCheckboxGroup`,null),s=di(()=>r.disabled),c=(0,t.computed)(()=>s.value||!!o?.disabled.value),l=(0,t.computed)(()=>o?.type?.value===`button`),u=(0,t.computed)(()=>a.default?!0:r.label===void 0||r.label===null?!1:String(r.label).length>0),d=(0,t.computed)(()=>o?o.modelValue.value.includes(r.label):r.trueLabel!==void 0||r.falseLabel!==void 0?r.modelValue===r.trueLabel:!!r.modelValue),f=e=>{if(c.value)return;let t=e.target.checked;if(o&&r.label!==void 0){o.toggleOption(r.label,t);return}let n=t;(r.trueLabel!==void 0||r.falseLabel!==void 0)&&(n=t?r.trueLabel??!0:r.falseLabel??!1),i(`update:modelValue`,n),i(`change`,n)};return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`label`,{class:(0,t.normalizeClass)([`fou-checkbox`,{"is-checked":(0,t.unref)(d),"is-disabled":(0,t.unref)(c),"is-indeterminate":e.indeterminate,"is-button":(0,t.unref)(l),"is-border":e.border}])},[(0,t.createElementVNode)(`span`,Ni,[(0,t.createElementVNode)(`input`,{type:`checkbox`,class:`fou-checkbox__original`,checked:(0,t.unref)(d),disabled:(0,t.unref)(c),value:e.label,onChange:f},null,40,Pi),r[0]||=(0,t.createElementVNode)(`span`,{class:`fou-checkbox__inner`},null,-1)]),(0,t.unref)(u)?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Fi,[(0,t.renderSlot)(n.$slots,`default`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.label),1)],!0)])):(0,t.createCommentVNode)(``,!0)],2))}}),Li=v({default:()=>Ri}),Ri=S(Ii,[[`__scopeId`,`data-v-326d0c28`]]),zi=(0,t.defineComponent)({name:`FouRadioGroup`,__name:`FouRadioGroup`,props:{modelValue:{type:[String,Number,Boolean]},disabled:{type:Boolean,default:!1},name:{default:``},type:{default:`default`}},emits:[`update:modelValue`,`change`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.computed)(()=>r.name||`fou-radio-group-${Math.random().toString(36).slice(2,9)}`),o=(0,t.computed)(()=>r.modelValue),s=(0,t.computed)(()=>r.disabled);return(0,t.provide)(`fouRadioGroup`,{modelValue:o,disabled:s,name:a,type:(0,t.computed)(()=>r.type),changeEvent:e=>{i(`update:modelValue`,e),i(`change`,e)}}),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-radio-group`,[{"is-disabled":e.disabled},`fou-radio-group--${e.type}`]]),role:`radiogroup`},[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)],2))}}),Bi=v({default:()=>Vi}),Vi=S(zi,[[`__scopeId`,`data-v-4b84739e`]]),Hi={class:`fou-radio__input`},Ui=[`checked`,`disabled`,`name`,`value`],Wi={key:0,class:`fou-radio__label`},Gi=(0,t.defineComponent)({name:`FouRadio`,__name:`index`,props:{modelValue:{type:[String,Number,Boolean]},label:{type:[String,Number,Boolean]},disabled:{type:Boolean,default:!1},border:{type:Boolean,default:!1}},emits:[`update:modelValue`,`change`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.inject)(`fouRadioGroup`,null),o=`fou-radio-${Math.random().toString(36).slice(2,9)}`,s=di(()=>r.disabled),c=(0,t.computed)(()=>s.value||!!a?.disabled.value),l=(0,t.computed)(()=>a?.type?.value===`button`),u=(0,t.computed)(()=>(a?a.modelValue.value:r.modelValue)===r.label),d=(0,t.computed)(()=>a?.name.value||o),f=()=>{c.value||r.label===void 0||(a?a.changeEvent(r.label):(i(`update:modelValue`,r.label),i(`change`,r.label)))};return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`label`,{class:(0,t.normalizeClass)([`fou-radio`,{"is-checked":(0,t.unref)(u),"is-disabled":(0,t.unref)(c),"is-button":(0,t.unref)(l),"is-border":e.border}])},[(0,t.createElementVNode)(`span`,Hi,[(0,t.createElementVNode)(`input`,{type:`radio`,class:`fou-radio__original`,checked:(0,t.unref)(u),disabled:(0,t.unref)(c),name:(0,t.unref)(d),value:e.label,onChange:f},null,40,Ui),r[0]||=(0,t.createElementVNode)(`span`,{class:`fou-radio__inner`},null,-1)]),n.$slots.default||e.label!==void 0?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Wi,[(0,t.renderSlot)(n.$slots,`default`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.label),1)],!0)])):(0,t.createCommentVNode)(``,!0)],2))}}),Ki=v({default:()=>qi}),qi=S(Gi,[[`__scopeId`,`data-v-4525a092`]]),Ji=[`aria-expanded`,`aria-disabled`],Yi={key:0,class:`fou-select__tags`},Xi=[`onClick`],Zi={class:`fou-select__suffix`},Qi={key:0,class:`fou-select__slot-register`,"aria-hidden":`true`},$i=[`onMouseenter`,`onClick`],ea=[`onMouseenter`,`onClick`],ta={key:2,class:`fou-select__empty`},na=(0,t.defineComponent)({name:`FouSelect`,inheritAttrs:!1,__name:`index`,props:{modelValue:{type:[String,Number,Boolean,Array,null],default:null},options:{default:void 0},placeholder:{default:`请选择`},clearable:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},size:{default:`default`},fit:{type:Boolean,default:!1}},emits:[`update:modelValue`,`change`,`clear`,`visibleChange`],setup(e,{emit:n}){let r=(0,t.defineComponent)({name:`FouSelectOptionContent`,props:{render:{type:Function,required:!0}},setup(e){return()=>e.render()}}),i=e,a=n,o=di(()=>i.disabled),{triggerBlur:s,triggerChange:c}=fi(),l=(0,t.useAttrs)(),u=(0,t.useSlots)(),d=(0,t.ref)(null),f=(0,t.ref)(null),p=(0,t.ref)(!1),m=(0,t.ref)([]),h=(0,t.ref)(new Map),g=(0,t.ref)({position:`fixed`,top:`-9999px`,left:`-9999px`,zIndex:le(2e3),minWidth:`120px`}),_=(0,t.ref)(null),v=(0,t.computed)(()=>i.size||`default`),y=(0,t.computed)(()=>l.style||void 0),b=(0,t.computed)(()=>i.multiple?Array.isArray(i.modelValue)?i.modelValue:[]:i.modelValue===null||i.modelValue===void 0||i.modelValue===``?[]:[i.modelValue]),x=(0,t.computed)(()=>b.value.length>0),S=e=>b.value.includes(e),C=(0,t.computed)(()=>!!u.default),w=(0,t.computed)(()=>i.options?.length?i.options:m.value),T=e=>{let t=w.value.find(t=>t.value===e);return t?t.label:h.value.get(e)??String(e)},E=(0,t.computed)(()=>x.value?i.multiple?b.value.map(T).join(`、`):T(b.value[0]):``),D=(0,t.computed)(()=>i.modelValue),O=e=>{a(`update:modelValue`,e),a(`change`,e),c()},A=(e,t)=>{if(h.value=new Map(h.value).set(e,t),i.multiple){let t=[...b.value],n=t.indexOf(e);n>=0?t.splice(n,1):t.push(e),O(t);return}O(e),ee()},j=e=>{O(b.value.filter(t=>t!==e))},M=e=>{_.value=e};(0,t.provide)(`fouSelect`,{modelValue:D,multiple:(0,t.toRef)(i,`multiple`),selectOption:A,setHoverOption:M,registerOption:e=>{let t=m.value.findIndex(t=>t.value===e.value);t>=0?m.value[t]=e:m.value.push(e),h.value.set(e.value,e.label)},unregisterOption:e=>{m.value=m.value.filter(t=>t.value!==e)}});let N=()=>{let e=d.value,t=f.value;if(!e||!t)return;let n=e.getBoundingClientRect(),r=t.getBoundingClientRect(),i=window.innerWidth,a=window.innerHeight,o=n.bottom+4,s=n.left,c=Math.max(n.width,120);o+r.height>a-4&&(o=n.top-r.height-4),o<4&&(o=4),s+c>i-4&&(s=i-c-4),s<4&&(s=4),g.value={position:`fixed`,top:`${Math.round(o)}px`,left:`${Math.round(s)}px`,zIndex:le(2e3),minWidth:`${Math.round(c)}px`}},P=(0,t.computed)(()=>w.value.filter(e=>!e.disabled)),F=e=>{let t=P.value;if(!t.length)return;let n=t[(t.findIndex(e=>e.value===_.value)+e+t.length)%t.length];_.value=n.value},I=()=>{let e=P.value.find(e=>e.value===_.value)||P.value[0];e&&A(e.value,e.label)},L=e=>{o.value||(e.key===`ArrowDown`?(e.preventDefault(),p.value?F(1):R()):e.key===`ArrowUp`?(e.preventDefault(),p.value?F(-1):R()):e.key===`Enter`||e.key===` `?(e.preventDefault(),p.value?I():R()):e.key===`Escape`?ee():e.key===`Backspace`&&i.multiple&&b.value.length&&!p.value&&j(b.value[b.value.length-1]))},R=async()=>{o.value||(p.value=!0,a(`visibleChange`,!0),_.value=b.value[0]??P.value[0]?.value??null,await(0,t.nextTick)(),N(),requestAnimationFrame(()=>N()))},ee=()=>{p.value&&(p.value=!1,a(`visibleChange`,!1),s())},z=()=>{o.value||(p.value?ee():R())},B=()=>{O(i.multiple?[]:null),a(`clear`)},V=e=>{if(!p.value)return;let t=e.target;d.value?.contains(t)||f.value?.contains(t)||ee()},H=()=>{p.value&&N()};return(0,t.watch)(p,e=>{e?(document.addEventListener(`mousedown`,V,!0),window.addEventListener(`scroll`,H,!0),window.addEventListener(`resize`,H)):(document.removeEventListener(`mousedown`,V,!0),window.removeEventListener(`scroll`,H,!0),window.removeEventListener(`resize`,H))}),(0,t.onBeforeUnmount)(()=>{document.removeEventListener(`mousedown`,V,!0),window.removeEventListener(`scroll`,H,!0),window.removeEventListener(`resize`,H)}),(n,a)=>{let s=k;return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,{ref_key:`rootRef`,ref:d,class:(0,t.normalizeClass)([`fou-select`,[`fou-select--${(0,t.unref)(v)}`,(0,t.unref)(l).class,{"is-disabled":(0,t.unref)(o),"is-focused":(0,t.unref)(p),"is-clearable":e.clearable,"is-fit":e.fit,"is-multiple":e.multiple}]]),style:(0,t.normalizeStyle)((0,t.unref)(y))},[(0,t.createElementVNode)(`div`,{class:`fou-select__wrapper`,role:`combobox`,"aria-expanded":(0,t.unref)(p),"aria-disabled":(0,t.unref)(o),tabindex:`0`,onClick:z,onKeydown:L},[e.multiple&&(0,t.unref)(b).length?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Yi,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(b),e=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:String(e),class:`fou-select__tag`},[(0,t.createTextVNode)((0,t.toDisplayString)(T(e))+` `,1),(0,t.unref)(o)?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:0,type:`button`,class:`fou-select__tag-close`,tabindex:`-1`,onMousedown:a[0]||=(0,t.withModifiers)(()=>{},[`prevent`]),onClick:(0,t.withModifiers)(t=>j(e),[`stop`])},` × `,40,Xi))]))),128))])):((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:1,class:(0,t.normalizeClass)([`fou-select__selected`,{"is-placeholder":!(0,t.unref)(E)}])},(0,t.toDisplayString)((0,t.unref)(E)||e.placeholder),3)),(0,t.createElementVNode)(`span`,Zi,[e.clearable&&(0,t.unref)(x)&&!(0,t.unref)(o)?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:0,type:`button`,class:`fou-select__clear`,tabindex:`-1`,onMousedown:a[1]||=(0,t.withModifiers)(()=>{},[`prevent`]),onClick:(0,t.withModifiers)(B,[`stop`])},` × `,32)):(0,t.createCommentVNode)(``,!0),(0,t.createVNode)(s,{class:(0,t.normalizeClass)([`fou-select__caret`,{"is-open":(0,t.unref)(p)}]),icon:`arrow-down-s-line`},null,8,[`class`])])],40,Ji),!i.options?.length&&(0,t.unref)(C)?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Qi,[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)])):(0,t.createCommentVNode)(``,!0),((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:`body`},[(0,t.createVNode)(t.Transition,{name:`fou-select-fade`},{default:(0,t.withCtx)(()=>[(0,t.unref)(p)?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,ref_key:`dropdownRef`,ref:f,class:`fou-select__dropdown`,style:(0,t.normalizeStyle)((0,t.unref)(g)),onClick:a[2]||=(0,t.withModifiers)(()=>{},[`stop`])},[i.options?.length?((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,{key:0},(0,t.renderList)(i.options,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:String(e.value),class:(0,t.normalizeClass)([`fou-option fou-select__option`,{"is-selected":S(e.value),"is-disabled":e.disabled,"is-hover":(0,t.unref)(_)===e.value}]),onMouseenter:t=>M(e.value),onClick:t=>!e.disabled&&A(e.value,e.label)},[e.render?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(r),{key:0,render:e.render},null,8,[`render`])):((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:1},[(0,t.createTextVNode)((0,t.toDisplayString)(e.label),1)],64))],42,$i))),128)):(0,t.unref)(m).length?((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,{key:1},(0,t.renderList)((0,t.unref)(m),e=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:String(e.value),class:(0,t.normalizeClass)([`fou-option fou-select__option`,{"is-selected":S(e.value),"is-disabled":e.disabled,"is-hover":(0,t.unref)(_)===e.value}]),onMouseenter:t=>M(e.value),onClick:t=>!e.disabled&&A(e.value,e.label)},[e.render?((0,t.openBlock)(),(0,t.createBlock)((0,t.unref)(r),{key:0,render:e.render},null,8,[`render`])):((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:1},[(0,t.createTextVNode)((0,t.toDisplayString)(e.label),1)],64))],42,ea))),128)):(0,t.createCommentVNode)(``,!0),!i.options?.length&&!(0,t.unref)(m).length?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ta,` 无数据 `)):(0,t.createCommentVNode)(``,!0)],4)):(0,t.createCommentVNode)(``,!0)]),_:1})]))],6)}}}),ra=v({default:()=>ia}),ia=S(na,[[`__scopeId`,`data-v-7f0dce83`]]),aa={class:`fou-form-item__content`},oa={key:0,class:`fou-form-item__error`},sa=(0,t.defineComponent)({name:`FouFormItem`,__name:`index`,props:{label:{},labelWidth:{},required:{type:Boolean,default:void 0},prop:{},error:{},rules:{}},setup(e,{expose:n}){let r=e,i=(0,t.inject)(li,null),a=(0,t.inject)(`fouFormLabelWidth`,(0,t.ref)(``)),o=(0,t.inject)(`fouFormLabelPosition`,(0,t.ref)(`right`)),s=(0,t.getCurrentInstance)()?.uid??Math.random(),c=(0,t.ref)(``),l=(0,t.ref)(``),u=(0,t.ref)(void 0),d=(0,t.ref)(!1),f=e=>{if(typeof e!=`object`||!e)return e;try{return JSON.parse(JSON.stringify(e))}catch{return e}},p=(0,t.computed)(()=>r.labelWidth!==void 0&&r.labelWidth!==``?typeof r.labelWidth==`number`?`${r.labelWidth}px`:r.labelWidth:i?.labelWidth.value||a.value),m=(0,t.computed)(()=>{if((i?.labelPosition.value||o.value)!==`top`&&p.value)return{width:p.value}}),h=(e,t)=>{if(!(!e||!t))return t.split(`.`).reduce((e,t)=>e?.[t],e)},g=(e,t,n)=>{if(!e||!t)return;let r=t.split(`.`),i=r.pop(),a=e;for(let e of r)(a[e]==null||typeof a[e]!=`object`)&&(a[e]={}),a=a[e];a[i]=n},_=(0,t.computed)(()=>{if(!(!r.prop||!i?.model.value))return h(i.model.value,r.prop)}),v=(0,t.computed)(()=>{let e=[];if(r.rules&&e.push(...Array.isArray(r.rules)?r.rules:[r.rules]),r.prop&&i?.rules.value?.[r.prop]){let t=i.rules.value[r.prop];e.push(...Array.isArray(t)?t:[t])}return e}),y=(0,t.computed)(()=>i?.hideRequiredAsterisk.value?!1:r.required===!0||r.required!==!1&&v.value.some(e=>e.required)),b=(e,t)=>new Promise(n=>{if(e.required&&(t==null||t===``||Array.isArray(t)&&!t.length)){n(e.message||`必填项`);return}if(e.min!=null||e.max!=null){let r=typeof t==`number`?t:String(t??``).length;if(e.min!=null&&r<e.min){n(e.message||`长度不能少于 ${e.min}`);return}if(e.max!=null&&r>e.max){n(e.message||`长度不能超过 ${e.max}`);return}}if(e.type&&t!=null&&t!==``){let r={email:[/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(String(t)),`请输入正确的邮箱`],url:[/^https?:\/\/\S+$/i.test(String(t)),`请输入正确的网址`],number:[!Number.isNaN(Number(t)),`请输入数字`],integer:[/^-?\d+$/.test(String(t)),`请输入整数`]}[e.type];if(r&&!r[0]){n(e.message||r[1]);return}}if(e.pattern&&t!=null&&t!==``&&!e.pattern.test(String(t))){n(e.message||`格式不正确`);return}if(e.validator){let r=!1,i=e=>{r||(r=!0,n(e?typeof e==`string`?e:e.message||`校验失败`:``))};try{let n=e.validator(e,t,i);n&&typeof n.then==`function`?Promise.resolve(n).then(t=>{t===!1?i(e.message||`校验失败`):t instanceof Error||typeof t==`string`?i(t):i()}).catch(e=>i(e instanceof Error?e:String(e))):!r&&n!==void 0?n===!1?i(e.message||`校验失败`):n instanceof Error||typeof n==`string`?i(n):i():!r&&n===void 0&&queueMicrotask(()=>{r||i(Error(`validator must call callback`))})}catch(e){i(e instanceof Error?e:String(e))}return}n(``)}),x=async e=>{if(r.error)return c.value=`error`,l.value=r.error,!1;let t=v.value.filter(t=>{if(!e)return!0;let n=t.trigger;return!n||(Array.isArray(n)?n:[n]).includes(e)});t.length;let n=e?t:v.value;if(!n.length)return c.value=``,l.value=``,!0;c.value=`validating`;for(let e of n){let t=await b(e,_.value);if(t)return c.value=`error`,l.value=t,r.prop&&i?.emitValidate(r.prop,!1,t),!1}return c.value=`success`,l.value=``,r.prop&&i?.emitValidate(r.prop,!0,``),!0},S=()=>{r.prop&&i?.model.value&&g(i.model.value,r.prop,f(u.value)),d.value=!1,C()},C=()=>{c.value=``,l.value=``},w={uid:s,prop:r.prop,validate:x,resetField:S,clearValidate:C};return(0,t.provide)(ui,{validate:x,onFieldBlur:()=>{d.value=!0,x(`blur`)},onFieldChange:()=>{d.value=!0,x(`change`)},prop:(0,t.computed)(()=>r.prop)}),(0,t.onMounted)(()=>{u.value=f(_.value),i?.addField(w)}),(0,t.onBeforeUnmount)(()=>{i?.removeField(w)}),(0,t.watch)(()=>r.error,e=>{e&&(c.value=`error`,l.value=e)}),(0,t.watch)(_,e=>{d.value||(u.value=f(e)),(c.value===`error`||v.value.some(e=>{let t=e.trigger;return!t||(Array.isArray(t)?t:[t]).includes(`change`)}))&&x(`change`)}),n({validate:x,resetField:S,clearValidate:C,validateState:c,validateMessage:l}),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-form-item`,{"is-required":(0,t.unref)(y),"is-error":(0,t.unref)(c)===`error`,"is-asterisk-right":(0,t.unref)(i)?.requireAsteriskPosition?.value===`right`}])},[e.label||n.$slots.label?((0,t.openBlock)(),(0,t.createElementBlock)(`label`,{key:0,class:`fou-form-item__label`,style:(0,t.normalizeStyle)((0,t.unref)(m))},[(0,t.renderSlot)(n.$slots,`label`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.label),1)],!0)],4)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,aa,[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0),(0,t.unref)(l)&&(0,t.unref)(c)===`error`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,oa,(0,t.toDisplayString)((0,t.unref)(l)),1)):(0,t.createCommentVNode)(``,!0)])],2))}}),ca=v({default:()=>la}),la=S(sa,[[`__scopeId`,`data-v-7c8fb246`]]),ua={key:0,class:`fou-input__prepend`},da={class:`fou-input__wrapper`},fa={key:0,class:`fou-input__prefix`},pa=[`value`,`placeholder`,`disabled`,`readonly`,`rows`,`maxlength`],ma=[`type`,`value`,`placeholder`,`disabled`,`readonly`,`maxlength`],$={key:3,class:`fou-input__suffix`},ha={key:1,class:`fou-input__append`},ga=(0,t.defineComponent)({name:`FouInput`,inheritAttrs:!1,__name:`index`,props:{modelValue:{default:``},type:{default:`text`},placeholder:{default:``},clearable:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},size:{default:`default`},showPassword:{type:Boolean,default:!1},prefixIcon:{},suffixIcon:{},rows:{default:3},maxlength:{}},emits:[`update:modelValue`,`input`,`change`,`focus`,`blur`,`clear`,`keyup`],setup(e,{expose:n,emit:r}){let i=e,a=(0,t.useAttrs)(),o=(0,t.computed)(()=>{let{class:e,style:t,...n}=a;return n}),s=r,c=(0,t.ref)(null),l=(0,t.ref)(null),u=(0,t.ref)(!1),d=(0,t.ref)(!1),f=di(()=>i.disabled),{triggerBlur:p,triggerChange:m}=fi(),h=(0,t.computed)(()=>i.size||`default`),g=(0,t.computed)(()=>i.type===`textarea`),_=(0,t.computed)(()=>i.showPassword?d.value?`text`:`password`:i.type||`text`),v=(0,t.computed)(()=>{let e=i.modelValue;return e!==``&&e!=null}),y=e=>{let t=e.target.value;s(`update:modelValue`,t),s(`input`,t)},b=e=>{u.value=!0,s(`focus`,e)},x=e=>{u.value=!1,s(`blur`,e),p()},S=e=>{s(`change`,e),m()},C=()=>{s(`update:modelValue`,``),s(`input`,``),s(`clear`),s(`change`,``),m()};return n({focus:()=>{(c.value||l.value)?.focus()},blur:()=>{(c.value||l.value)?.blur()},inputRef:c,textareaRef:l}),(n,r)=>{let i=k;return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-input`,[`fou-input--${(0,t.unref)(h)}`,(0,t.unref)(a).class,{"is-disabled":(0,t.unref)(f),"is-focused":(0,t.unref)(u),"is-clearable":e.clearable,"has-value":(0,t.unref)(v),"has-prefix":n.$slots.prefix||e.prefixIcon,"has-suffix":n.$slots.suffix||e.suffixIcon||e.clearable||e.showPassword,"is-textarea":(0,t.unref)(g)}]]),style:(0,t.normalizeStyle)((0,t.unref)(a).style)},[n.$slots.prepend?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ua,[(0,t.renderSlot)(n.$slots,`prepend`,{},void 0,!0)])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,da,[n.$slots.prefix||e.prefixIcon?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,fa,[(0,t.renderSlot)(n.$slots,`prefix`,{},()=>[e.prefixIcon?((0,t.openBlock)(),(0,t.createBlock)(i,{key:0,icon:e.prefixIcon},null,8,[`icon`])):(0,t.createCommentVNode)(``,!0)],!0)])):(0,t.createCommentVNode)(``,!0),(0,t.unref)(g)?((0,t.openBlock)(),(0,t.createElementBlock)(`textarea`,(0,t.mergeProps)({key:1,ref_key:`textareaRef`,ref:l,class:`fou-input__inner fou-input__textarea`,value:e.modelValue??``,placeholder:e.placeholder,disabled:(0,t.unref)(f),readonly:e.readonly,rows:e.rows,maxlength:e.maxlength},(0,t.unref)(o),{onInput:y,onFocus:b,onBlur:x,onChange:r[0]||=e=>S(e.target.value)}),null,16,pa)):((0,t.openBlock)(),(0,t.createElementBlock)(`input`,(0,t.mergeProps)({key:2,ref_key:`inputRef`,ref:c,class:`fou-input__inner`,type:(0,t.unref)(_),value:e.modelValue??``,placeholder:e.placeholder,disabled:(0,t.unref)(f),readonly:e.readonly,maxlength:e.maxlength},(0,t.unref)(o),{onInput:y,onFocus:b,onBlur:x,onChange:r[1]||=e=>S(e.target.value),onKeyup:r[2]||=(0,t.withKeys)(e=>s(`keyup`,e),[`enter`])}),null,16,ma)),n.$slots.suffix||e.suffixIcon||e.clearable&&(0,t.unref)(v)||e.showPassword?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,$,[e.clearable&&(0,t.unref)(v)&&!(0,t.unref)(f)?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:0,type:`button`,class:`fou-input__clear`,tabindex:`-1`,onMousedown:r[3]||=(0,t.withModifiers)(()=>{},[`prevent`]),onClick:C},` × `,32)):(0,t.createCommentVNode)(``,!0),e.showPassword?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:1,type:`button`,class:`fou-input__password`,tabindex:`-1`,onMousedown:r[4]||=(0,t.withModifiers)(()=>{},[`prevent`]),onClick:r[5]||=e=>d.value=!(0,t.unref)(d)},[(0,t.createVNode)(i,{icon:(0,t.unref)(d)?`eye-line`:`eye-off-line`},null,8,[`icon`])],32)):(0,t.createCommentVNode)(``,!0),(0,t.renderSlot)(n.$slots,`suffix`,{},()=>[e.suffixIcon?((0,t.openBlock)(),(0,t.createBlock)(i,{key:0,icon:e.suffixIcon},null,8,[`icon`])):(0,t.createCommentVNode)(``,!0)],!0)])):(0,t.createCommentVNode)(``,!0)]),n.$slots.append?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ha,[(0,t.renderSlot)(n.$slots,`append`,{},void 0,!0)])):(0,t.createCommentVNode)(``,!0)],6)}}}),_a=v({default:()=>va}),va=S(ga,[[`__scopeId`,`data-v-3ad96571`]]),ya={class:`fou-loading__content`},ba={key:0,class:`fou-loading__spinner`},xa={key:1,class:`fou-loading__dual-ring`,"aria-hidden":`true`},Sa={key:2,class:`fou-loading__crescent`,"aria-hidden":`true`},Ca={key:3,class:`fou-loading__gradient`,"aria-hidden":`true`},wa={key:4,class:`fou-loading__dash`,"aria-hidden":`true`},Ta={key:5,class:`fou-loading__dots`,"aria-hidden":`true`},Ea={key:6,class:`fou-loading__wave`,"aria-hidden":`true`},Da={key:7,class:`fou-loading__bounce`,"aria-hidden":`true`},Oa={key:8,class:`fou-loading__bars`,"aria-hidden":`true`},ka={key:9,class:`fou-loading__bricks`,"aria-hidden":`true`},Aa={key:10,class:`fou-loading__square`,"aria-hidden":`true`},ja={key:11,class:`fou-loading__flip`,"aria-hidden":`true`},Ma={key:12,class:`fou-loading__pulse`,"aria-hidden":`true`},Na={key:13,class:`fou-loading__ripple`,"aria-hidden":`true`},Pa={key:14,class:`fou-loading__orbit`,"aria-hidden":`true`},Fa={key:15,class:`fou-loading__radar`,"aria-hidden":`true`},Ia={key:16,class:`fou-loading__spiral`,"aria-hidden":`true`},La={key:17,class:`fou-loading__infinity`,"aria-hidden":`true`},Ra={key:18,class:`fou-loading__hourglass`,"aria-hidden":`true`},za={key:19,class:`fou-loading__skeleton`,"aria-hidden":`true`},Ba={key:20,class:`fou-loading__spinner`},Va={key:21,class:`fou-loading__text`},Ha=(0,t.defineComponent)({name:`FouLoading`,__name:`spinner`,props:{text:{default:``},fullscreen:{type:Boolean,default:!1},transparent:{type:Boolean,default:!1},effect:{default:`spinner`}},setup(e){return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-loading`,[`fou-loading--${e.effect}`,{"is-fullscreen":e.fullscreen,"is-transparent":e.transparent}]])},[r[13]||=(0,t.createElementVNode)(`div`,{class:`fou-loading__mask`},null,-1),(0,t.createElementVNode)(`div`,ya,[e.effect===`spinner`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,ba)):e.effect===`dual-ring`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,xa)):e.effect===`crescent`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Sa)):e.effect===`gradient`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Ca)):e.effect===`dash`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,wa)):e.effect===`dots`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Ta,[...r[0]||=[(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1)]])):e.effect===`wave`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Ea,[...r[1]||=[(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1)]])):e.effect===`bounce`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Da,[...r[2]||=[(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1)]])):e.effect===`bars`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Oa,[...r[3]||=[(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1)]])):e.effect===`bricks`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,ka,[...r[4]||=[(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1)]])):e.effect===`square`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Aa)):e.effect===`flip`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,ja,[...r[5]||=[(0,t.createElementVNode)(`i`,null,null,-1)]])):e.effect===`pulse`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Ma,[...r[6]||=[(0,t.createElementVNode)(`i`,null,null,-1)]])):e.effect===`ripple`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Na,[...r[7]||=[(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1)]])):e.effect===`orbit`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Pa,[...r[8]||=[(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1)]])):e.effect===`radar`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Fa,[...r[9]||=[(0,t.createElementVNode)(`i`,null,null,-1)]])):e.effect===`spiral`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Ia,[...r[10]||=[(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1)]])):e.effect===`infinity`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,La,[...r[11]||=[(0,t.createElementVNode)(`i`,null,null,-1)]])):e.effect===`hourglass`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Ra)):e.effect===`skeleton`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,za,[...r[12]||=[(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1),(0,t.createElementVNode)(`i`,null,null,-1)]])):((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Ba)),e.text?((0,t.openBlock)(),(0,t.createElementBlock)(`p`,Va,(0,t.toDisplayString)(e.text),1)):(0,t.createCommentVNode)(``,!0)])],2))}}),Ua=v({default:()=>Wa}),Wa=Ha,Ga=[`onKeydown`],Ka={class:`fou-time-panel__body`},qa={class:`fou-time-panel__spinner`},Ja=[`onClick`],Ya={class:`fou-time-panel__spinner`},Xa=[`onClick`],Za={key:0,class:`fou-time-panel__spinner`},Qa=[`onClick`],$a=(0,t.defineComponent)({name:`FouTime`,inheritAttrs:!1,__name:`index`,props:{modelValue:{default:null},format:{default:`HH:mm:ss`},placeholder:{default:`选择时间`},clearable:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},size:{default:`default`},fit:{type:Boolean,default:!1},hourStep:{default:1},minuteStep:{default:1},secondStep:{default:1}},emits:[`update:modelValue`,`change`,`clear`,`visible-change`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.useAttrs)(),o=(0,t.ref)(null),s=(0,t.ref)(null),c=(0,t.ref)(null),l=(0,t.ref)(null),u=(0,t.ref)(null),d=(0,t.ref)(!1),f=(0,t.ref)({position:`fixed`,top:`-9999px`,left:`-9999px`,zIndex:le(2e3)}),p=(0,t.reactive)({hour:0,minute:0,second:0}),m=(0,t.computed)(()=>r.size||`default`),h=(0,t.computed)(()=>r.format!==`HH:mm`),g=(0,t.computed)(()=>r.modelValue!=null&&r.modelValue!==``),_=e=>String(e).padStart(2,`0`),v=(e,t)=>{let n=Math.max(1,Math.floor(t||1)),r=[];for(let t=0;t<=e;t+=n)r.push(t);return r[r.length-1]!==e&&e%n,r},y=(0,t.computed)(()=>v(23,r.hourStep)),b=(0,t.computed)(()=>v(59,r.minuteStep)),x=(0,t.computed)(()=>v(59,r.secondStep)),S=e=>{if(!e)return null;let t=String(e).trim().match(/^(\d{1,2}):(\d{1,2})(?::(\d{1,2}))?$/);return t?{hour:Math.min(23,Math.max(0,Number(t[1]))),minute:Math.min(59,Math.max(0,Number(t[2]))),second:Math.min(59,Math.max(0,Number(t[3]??0)))}:null},C=e=>h.value?`${_(e.hour)}:${_(e.minute)}:${_(e.second)}`:`${_(e.hour)}:${_(e.minute)}`,w=(0,t.computed)(()=>{let e=S(r.modelValue);return e?C(e):``}),T=()=>{let e=S(r.modelValue)||{hour:0,minute:0,second:0};p.hour=e.hour,p.minute=e.minute,p.second=e.second},E=async()=>{await(0,t.nextTick)();let e=(e,t)=>{if(!e)return;let n=e.querySelector(`.fou-time-panel__item.is-active`);if(n){e.scrollTop=Math.max(0,n.offsetTop-e.clientHeight/2+n.clientHeight/2);return}let r=Array.from(e.children).findIndex(e=>Number(e.textContent)===t);if(r>=0){let t=e.children[r];e.scrollTop=Math.max(0,t.offsetTop-e.clientHeight/2+t.clientHeight/2)}};e(c.value,p.hour),e(l.value,p.minute),h.value&&e(u.value,p.second)},D=()=>{let e=o.value,t=s.value;if(!e||!t)return;let n=e.getBoundingClientRect(),r=t.getBoundingClientRect(),i=window.innerWidth,a=window.innerHeight,c=n.bottom+4,l=n.left;c+r.height>a-4&&(c=n.top-r.height-4),c<4&&(c=4),l+r.width>i-4&&(l=i-r.width-4),l<4&&(l=4),f.value={position:`fixed`,top:`${Math.round(c)}px`,left:`${Math.round(l)}px`,zIndex:le(2e3)}},O=async()=>{r.disabled||(T(),d.value=!0,i(`visible-change`,!0),await(0,t.nextTick)(),D(),await E(),requestAnimationFrame(()=>D()))},A=()=>{d.value&&(d.value=!1,i(`visible-change`,!1))},j=()=>{r.disabled||(d.value?A():O())},M=(e,t)=>{p[e]=t},N=e=>{i(`update:modelValue`,e),i(`change`,e)},P=()=>{N(C({...p})),A()},F=()=>{A()},I=()=>{let e=new Date;p.hour=e.getHours(),p.minute=e.getMinutes(),p.second=e.getSeconds(),N(C({...p})),A()},L=()=>{N(null),i(`clear`)},R=e=>{if(!d.value)return;let t=e.target;o.value?.contains(t)||s.value?.contains(t)||A()},ee=()=>{d.value&&D()};return(0,t.watch)(d,e=>{e?(document.addEventListener(`mousedown`,R,!0),window.addEventListener(`scroll`,ee,!0),window.addEventListener(`resize`,ee)):(document.removeEventListener(`mousedown`,R,!0),window.removeEventListener(`scroll`,ee,!0),window.removeEventListener(`resize`,ee))}),(0,t.onBeforeUnmount)(()=>{document.removeEventListener(`mousedown`,R,!0),window.removeEventListener(`scroll`,ee,!0),window.removeEventListener(`resize`,ee)}),(n,r)=>{let i=k;return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,{ref_key:`rootRef`,ref:o,class:(0,t.normalizeClass)([`fou-time`,[`fou-time--${(0,t.unref)(m)}`,(0,t.unref)(a).class,{"is-disabled":e.disabled,"is-focused":(0,t.unref)(d),"is-fit":e.fit}]]),style:(0,t.normalizeStyle)((0,t.unref)(a).style)},[(0,t.createElementVNode)(`div`,{class:`fou-time__editor`,tabindex:`0`,onClick:j,onKeydown:(0,t.withKeys)((0,t.withModifiers)(j,[`prevent`]),[`enter`])},[(0,t.createElementVNode)(`span`,{class:(0,t.normalizeClass)([`fou-time__value`,{"is-placeholder":!(0,t.unref)(w)}])},(0,t.toDisplayString)((0,t.unref)(w)||e.placeholder),3),e.clearable&&(0,t.unref)(g)&&!e.disabled?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:0,type:`button`,class:`fou-time__clear`,tabindex:`-1`,onMousedown:r[0]||=(0,t.withModifiers)(()=>{},[`prevent`]),onClick:(0,t.withModifiers)(L,[`stop`])},` × `,32)):(0,t.createCommentVNode)(``,!0),(0,t.createVNode)(i,{icon:`time-line`,class:`fou-time__icon`})],40,Ga),((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:`body`},[(0,t.createVNode)(t.Transition,{name:`fou-time-fade`},{default:(0,t.withCtx)(()=>[(0,t.unref)(d)?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,ref_key:`panelRef`,ref:s,class:`fou-time-panel`,style:(0,t.normalizeStyle)((0,t.unref)(f)),onMousedown:r[1]||=(0,t.withModifiers)(()=>{},[`prevent`])},[(0,t.createElementVNode)(`div`,Ka,[(0,t.createElementVNode)(`div`,qa,[(0,t.createElementVNode)(`ul`,{ref_key:`hourListRef`,ref:c,class:`fou-time-panel__list`},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(y),e=>((0,t.openBlock)(),(0,t.createElementBlock)(`li`,{key:`h-${e}`,class:(0,t.normalizeClass)([`fou-time-panel__item`,{"is-active":(0,t.unref)(p).hour===e}]),onClick:t=>M(`hour`,e)},(0,t.toDisplayString)(_(e)),11,Ja))),128))],512)]),(0,t.createElementVNode)(`div`,Ya,[(0,t.createElementVNode)(`ul`,{ref_key:`minuteListRef`,ref:l,class:`fou-time-panel__list`},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(b),e=>((0,t.openBlock)(),(0,t.createElementBlock)(`li`,{key:`m-${e}`,class:(0,t.normalizeClass)([`fou-time-panel__item`,{"is-active":(0,t.unref)(p).minute===e}]),onClick:t=>M(`minute`,e)},(0,t.toDisplayString)(_(e)),11,Xa))),128))],512)]),(0,t.unref)(h)?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Za,[(0,t.createElementVNode)(`ul`,{ref_key:`secondListRef`,ref:u,class:`fou-time-panel__list`},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(x),e=>((0,t.openBlock)(),(0,t.createElementBlock)(`li`,{key:`s-${e}`,class:(0,t.normalizeClass)([`fou-time-panel__item`,{"is-active":(0,t.unref)(p).second===e}]),onClick:t=>M(`second`,e)},(0,t.toDisplayString)(_(e)),11,Qa))),128))],512)])):(0,t.createCommentVNode)(``,!0)]),(0,t.createElementVNode)(`div`,{class:`fou-time-panel__footer`},[(0,t.createElementVNode)(`button`,{type:`button`,class:`fou-time-panel__btn is-text`,onClick:I},`此刻`),(0,t.createElementVNode)(`div`,{class:`fou-time-panel__actions`},[(0,t.createElementVNode)(`button`,{type:`button`,class:`fou-time-panel__btn`,onClick:F},`取消`),(0,t.createElementVNode)(`button`,{type:`button`,class:`fou-time-panel__btn is-primary`,onClick:P},` 确定 `)])])],36)):(0,t.createCommentVNode)(``,!0)]),_:1})]))],6)}}}),eo=v({default:()=>to}),to=S($a,[[`__scopeId`,`data-v-03b2af6d`]]),no={class:`fou-tooltip__content`},ro=(0,t.defineComponent)({name:`FouTooltip`,inheritAttrs:!1,__name:`index`,props:{content:{default:``},placement:{default:`top`},showAfter:{default:0},hideAfter:{default:100},disabled:{type:Boolean,default:!1}},setup(e){let n=(0,t.useAttrs)(),r=e,i=(0,t.ref)(null),a=(0,t.ref)(null),o=(0,t.ref)(!1),s=(0,t.ref)({}),c,l,u=!1,d=()=>{let e=i.value,t=a.value;if(!e||!t)return;let n=e.getBoundingClientRect(),o=t.getBoundingClientRect(),c=0,l=0;switch(r.placement){case`bottom`:c=n.bottom+8,l=n.left+n.width/2-o.width/2;break;case`left`:c=n.top+n.height/2-o.height/2,l=n.left-o.width-8;break;case`right`:c=n.top+n.height/2-o.height/2,l=n.right+8;break;default:c=n.top-o.height-8,l=n.left+n.width/2-o.width/2}let u=window.innerWidth,d=window.innerHeight;l=Math.min(Math.max(4,l),u-o.width-4),c=Math.min(Math.max(4,c),d-o.height-4),s.value={position:`fixed`,top:`${c}px`,left:`${l}px`,zIndex:`3000`}},f=()=>{c&&clearTimeout(c),l&&clearTimeout(l),c=void 0,l=void 0},p=async()=>{r.disabled||(f(),c=setTimeout(async()=>{o.value=!0,await(0,t.nextTick)(),d()},r.showAfter))},m=()=>{f(),l=setTimeout(()=>{u||(o.value=!1)},r.hideAfter)},h=()=>{r.disabled||(u=!1,p())};(0,t.watch)(()=>r.disabled,e=>{e&&(f(),o.value=!1)});let g=()=>m(),_=()=>{u=!0,f()},v=()=>{o.value&&d()};return(0,t.watch)(o,e=>{e?(window.addEventListener(`scroll`,v,!0),window.addEventListener(`resize`,v)):(window.removeEventListener(`scroll`,v,!0),window.removeEventListener(`resize`,v))}),(0,t.onBeforeUnmount)(()=>{f(),window.removeEventListener(`scroll`,v,!0),window.removeEventListener(`resize`,v)}),(r,c)=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,(0,t.mergeProps)({class:`fou-tooltip-host`},(0,t.unref)(n)),[(0,t.createElementVNode)(`span`,{ref_key:`triggerRef`,ref:i,class:`fou-tooltip__trigger`,onMouseenter:h,onMouseleave:g},[(0,t.renderSlot)(r.$slots,`default`,{},void 0,!0)],544),((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:`body`},[(0,t.createVNode)(t.Transition,{name:`fou-tooltip-fade`},{default:(0,t.withCtx)(()=>[(0,t.withDirectives)((0,t.createElementVNode)(`div`,{ref_key:`popperRef`,ref:a,class:(0,t.normalizeClass)([`fou-tooltip`,[`fou-tooltip--${e.placement}`]]),style:(0,t.normalizeStyle)((0,t.unref)(s)),role:`tooltip`,onMouseenter:_,onMouseleave:g},[(0,t.createElementVNode)(`div`,no,[(0,t.renderSlot)(r.$slots,`content`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.content),1)],!0)]),c[0]||=(0,t.createElementVNode)(`span`,{class:`fou-tooltip__arrow`},null,-1)],38),[[t.vShow,(0,t.unref)(o)]])]),_:3})]))],16))}}),io=v({default:()=>ao}),ao=S(ro,[[`__scopeId`,`data-v-2d374fdc`]]),oo=new Map,so=new Map,co=new Map,lo={add(e,t){oo.set(e,t)},get(e){return oo.get(e)},has(e){return oo.has(e)}},uo={add(e,t){so.set(e,t)},get(e){return so.get(e)},has(e){return so.has(e)}},fo={add(e,t){co.set(e,t)},get(e){return co.get(e)},has(e){return co.has(e)}};lo.add(`money`,({cellValue:e})=>{let t=Number(e);return Number.isNaN(t)?String(e??``):`¥ ${t.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2})}`}),lo.add(`yesno`,({cellValue:e})=>e?`是`:`否`);function po(e){return e?e.isHover===void 0?e.highlightHoverRow===void 0||!!e.highlightHoverRow:e.isHover!==!1:!0}function mo(e){return e?e.isCurrent===void 0?e.highlightCurrentRow===void 0||!!e.highlightCurrentRow:e.isCurrent!==!1:!0}function ho(e){if(e.editRender)return typeof e.editRender==`string`?{name:e.editRender,props:e.editorProps,options:e.options}:{...e.editRender,props:{...e.editorProps||{},...e.editRender.props||{}},options:e.editRender.options||e.options};let t=e.editor||(e.type&&_o.has(e.type)?e.type:void 0);if(t)return{name:t,props:e.editorProps,options:e.options}}var go=Symbol(`fouTableRegister`),_o=new Set([`switch`,`select`,`input`,`number`,`date`,`datetime`,`time`,`text`]),vo=new Set([`selection`,`checkbox`,`index`,`seq`,`radio`,`expand`]);function yo(e){let t=ho(e);if(t?.enabled!==!1&&t?.name)return _o.has(t.name),t.name}function bo(e){return e.prop||e.field}var xo=Symbol(`FouDropdown`),So=(0,t.defineComponent)({name:`FouDropdown`,__name:`index`,props:{disabled:{type:Boolean,default:!1},trigger:{default:`click`},placement:{default:`bottom-start`},popperClass:{default:``}},emits:[`command`,`visibleChange`],setup(e,{expose:n,emit:r}){let i=e,a=r,o=(0,t.ref)(null),s=(0,t.ref)(null),c=(0,t.ref)(!1),l=(0,t.ref)(null),u=null,d=(0,t.ref)({position:`fixed`,top:`-9999px`,left:`-9999px`,zIndex:String(le(2e3))}),f=()=>{c.value&&(c.value=!1,l.value=null,a(`visibleChange`,!1))},p=async()=>{i.disabled||(c.value=!0,a(`visibleChange`,!0),await(0,t.nextTick)(),S(),requestAnimationFrame(()=>S()))},m=async(e,t)=>{l.value={x:e,y:t},await p()},h=()=>{i.disabled||(c.value?f():p())},g=()=>{i.trigger===`click`&&h()},_=e=>{i.trigger===`contextmenu`&&m(e.clientX,e.clientY)},v=()=>{i.trigger===`hover`&&(u&&clearTimeout(u),p())},y=()=>{i.trigger===`hover`&&(u=setTimeout(()=>f(),120))},b=()=>{i.trigger===`hover`&&u&&clearTimeout(u)},x=()=>{i.trigger===`hover`&&(u=setTimeout(()=>f(),120))};(0,t.provide)(xo,{visible:c,close:f,emitCommand:e=>{a(`command`,e),f()}});let S=()=>{let e=s.value;if(!e)return;let t=e.getBoundingClientRect(),n=window.innerWidth,r=window.innerHeight,a=0,c=0;if(l.value&&i.trigger===`contextmenu`)a=l.value.y+2,c=l.value.x+2;else{let e=o.value;if(!e)return;let n=e.getBoundingClientRect(),r=i.placement;a=r.startsWith(`top`)?n.top-t.height-4:n.bottom+4,c=n.left,r.endsWith(`end`)?c=n.right-t.width:(r===`bottom`||r===`top`)&&(c=n.left+(n.width-t.width)/2)}c+t.width>n-4&&(c=n-t.width-4),c<4&&(c=4),a+t.height>r-4&&(a=Math.max(4,r-t.height-4)),a<4&&(a=4),d.value={position:`fixed`,top:`${Math.round(a)}px`,left:`${Math.round(c)}px`,zIndex:String(le(2e3))}},C=e=>{if(!c.value)return;let t=e.target;o.value?.contains(t)||s.value?.contains(t)||f()},w=()=>{c.value&&i.trigger!==`contextmenu`&&S()};return(0,t.watch)(c,e=>{e?(document.addEventListener(`mousedown`,C,!0),window.addEventListener(`scroll`,w,!0),window.addEventListener(`resize`,w)):(document.removeEventListener(`mousedown`,C,!0),window.removeEventListener(`scroll`,w,!0),window.removeEventListener(`resize`,w))}),(0,t.onBeforeUnmount)(()=>{u&&clearTimeout(u),document.removeEventListener(`mousedown`,C,!0),window.removeEventListener(`scroll`,w,!0),window.removeEventListener(`resize`,w)}),n({open:p,close:f,toggle:h,openAt:m}),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{ref_key:`triggerRef`,ref:o,class:`fou-dropdown`},[(0,t.createElementVNode)(`span`,{class:`fou-dropdown__trigger`,onClick:(0,t.withModifiers)(g,[`stop`]),onContextmenu:(0,t.withModifiers)(_,[`prevent`,`stop`]),onMouseenter:v,onMouseleave:y},[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)],32),((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:`body`},[(0,t.createVNode)(t.Transition,{name:`fou-dropdown-fade`},{default:(0,t.withCtx)(()=>[(0,t.unref)(c)?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,ref_key:`menuHostRef`,ref:s,class:(0,t.normalizeClass)([`fou-dropdown__popper`,e.popperClass]),style:(0,t.normalizeStyle)((0,t.unref)(d)),onClick:r[0]||=(0,t.withModifiers)(()=>{},[`stop`]),onMouseenter:b,onMouseleave:x},[(0,t.renderSlot)(n.$slots,`dropdown`,{},void 0,!0)],38)):(0,t.createCommentVNode)(``,!0)]),_:3})]))],512))}}),Co=v({default:()=>wo}),wo=S(So,[[`__scopeId`,`data-v-a9e659f2`]]),To={class:`fou-dropdown-menu`,role:`menu`},Eo=(0,t.defineComponent)({name:`FouDropdownMenu`,__name:`FouDropdownMenu`,setup(e){return(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`ul`,To,[(0,t.renderSlot)(e.$slots,`default`,{},void 0,!0)]))}}),Do=v({default:()=>Oo}),Oo=S(Eo,[[`__scopeId`,`data-v-ad6aa4e0`]]),ko=(0,t.defineComponent)({name:`FouDropdownItem`,__name:`FouDropdownItem`,props:{command:{default:``},disabled:{type:Boolean,default:!1},divided:{type:Boolean,default:!1}},emits:[`click`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.inject)(xo,null),o=e=>{r.disabled||(i(`click`,e),a?.emitCommand(r.command))};return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`li`,{class:(0,t.normalizeClass)([`fou-dropdown-item`,{"is-disabled":e.disabled,"is-divided":e.divided}]),role:`menuitem`,onClick:o},[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)],2))}}),Ao=v({default:()=>jo}),jo=S(ko,[[`__scopeId`,`data-v-fa9e199d`]]);function Mo(e,t=0){if(e==null||e===``)return 0;if(typeof e==`number`)return Number.isFinite(e)?e:0;let n=String(e).trim();if(!n||n===`auto`)return 0;if(n.endsWith(`%`)){let e=parseFloat(n);return!Number.isFinite(e)||t<=0?0:t*e/100}return parseFloat(n)||0}function No(e,t=0,n){let r=n?.minWidth??80,i=n?.maxWidth??1/0,a=Mo(e.width,t),o=Math.max(Mo(e.minWidth,t)||(a?0:r),48),s=Mo(e.maxWidth,t);return{fixedWidth:a,minWidth:a?Math.min(o||a,a)||48:o,maxWidth:Math.max(s>0?s:i,o||48),isFlex:a<=0}}function Po(e,t){let{containerWidth:n,showSelection:r,showIndex:i,showRadio:a,showExpand:o,fit:s=!0,resized:c={},defaults:l}=t,u=0;o&&(u+=48),a&&(u+=48),r&&(u+=48),i&&(u+=55);let d={},f=[],p=0;for(let t of e){let e=c[t._key];if(e!=null&&e>0){d[t._key]=e,p+=e;continue}let r=No(t,n,l);if(r.isFlex)f.push(t._key),d[t._key]=r.minWidth,p+=r.minWidth;else{let e=Math.min(Math.max(r.fixedWidth,r.minWidth),r.maxWidth);d[t._key]=e,p+=e}}if(s&&f.length&&n>0){let t=n-u-p;if(t>0){let r=f.map(t=>No(e.find(e=>e._key===t),n,l).minWidth),i=r.reduce((e,t)=>e+t,0)||f.length,a=0;f.forEach((o,s)=>{let c=No(e.find(e=>e._key===o),n,l),u=s===f.length-1?t-a:Math.floor(t*r[s]/i);a+=u;let p=Math.min(Math.max(c.minWidth+u,c.minWidth),c.maxWidth);p-c.minWidth,d[o]=p})}}return d}function Fo(e,t,n,r){let i=0;t.showExpand&&(i+=48),t.showRadio&&(i+=48),t.showSelection&&(i+=48),t.showIndex&&(i+=55);for(let t of e){let e=n?.(t);if(e!=null&&e>0){i+=e;continue}let a=No(t,0,r);i+=a.isFlex?a.minWidth:a.fixedWidth||a.minWidth||100}return i}function Io(e,t,n,r){let i=0;n.showExpand&&(i+=48),n.showRadio&&(i+=48),n.showSelection&&(i+=48),n.showIndex&&(i+=55);for(let n of e){if(n._key===t)break;(n.fixed===`left`||n.fixed===!0)&&(i+=r?.(n)||Mo(n.width)||Mo(n.minWidth)||120)}return i}function Lo(e,t,n){let r=0;for(let i=e.length-1;i>=0;i--){let a=e[i];if(a._key===t)break;a.fixed===`right`&&(r+=n?.(a)||Mo(a.width)||Mo(a.minWidth)||120)}return r}function Ro(e,t){let n=e.filter(e=>e.fixed===`left`||e.fixed===!0);return n.length>0&&n[n.length-1]._key===t}function zo(e,t){let n=e.filter(e=>e.fixed===`right`);return n.length>0&&n[0]._key===t}function Bo(e,t,n=``){let r=e.prop||e.field||e.slot||e.type||`col`;return n?`${n}.${r}#${t}`:`${r}#${t}`}function Vo(e,t=``){let n=[];return e.forEach((e,r)=>{let i=Bo(e,r,t);if(e.children?.length){n.push(...Vo(e.children,i));return}e.type&&vo.has(e.type)&&!e.prop&&!e.field&&e.editor,n.push({...e,_key:i})}),n}function Ho(e){return e.children?.length?1+Math.max(...e.children.map(Ho)):1}function Uo(e){return e.children?.length?e.children.reduce((e,t)=>e+Uo(t),0):1}function Wo(e,t=``){if(!e.length)return[[]];let n=Math.max(...e.map(Ho),1),r=Array.from({length:n},()=>[]),i=(e,t,a,o)=>{let s=a;return e.forEach((e,a)=>{let c=Bo(e,a,o),l=Uo(e),u=!e.children?.length,d=u?n-t:1;r[t].push({column:{...e,_key:c},label:e.label||e.title||``,colspan:l,rowspan:d,isLeaf:u,colIndex:s}),!u&&e.children&&i(e.children,t+1,s,c),s+=l}),s};return i(e,0,0,t),r}function Go(e){let n=(0,t.ref)(null),r=(0,t.ref)(null),i=()=>e.getColumns().map(e=>bo(e)).filter(Boolean),a=(t,n)=>{let r=e.getRows(),a=i(),o=r.findIndex(n=>e.getRowId(n)===t),s=a.indexOf(n);return o<0||s<0?null:{rowId:t,prop:n,rowIndex:o,colIndex:s}},o=(t,i,o=!1)=>{let s=bo(i);if(!s)return;let c=a(e.getRowId(t),s);c&&(o&&n.value?r.value=c:(n.value=c,r.value=null))},s=()=>{n.value=null,r.value=null},c=(0,t.computed)(()=>{let e=n.value;if(!e)return null;let t=r.value||e;return{r0:Math.min(e.rowIndex,t.rowIndex),r1:Math.max(e.rowIndex,t.rowIndex),c0:Math.min(e.colIndex,t.colIndex),c1:Math.max(e.colIndex,t.colIndex)}});return{activeCell:n,areaEnd:r,areaBounds:c,setActive:o,clearArea:s,isCellInArea:(t,r)=>{let a=c.value;if(!a){let i=n.value;return i?e.getRowId(t)===i.rowId&&bo(r)===i.prop:!1}let o=e.getRows(),s=i(),l=o.findIndex(n=>e.getRowId(n)===e.getRowId(t)),u=s.indexOf(bo(r)||``);return l<0||u<0?!1:l>=a.r0&&l<=a.r1&&u>=a.c0&&u<=a.c1},isActiveCell:(t,r)=>{let i=n.value;return i?e.getRowId(t)===i.rowId&&bo(r)===i.prop:!1},moveActive:(t,a,o=!1)=>{let s=e.getRows(),c=i();if(!s.length||!c.length)return null;let l=(o?r.value:null)||n.value,u=l?.rowIndex??0,d=l?.colIndex??0;l?(u=Math.max(0,Math.min(s.length-1,u+t)),d=Math.max(0,Math.min(c.length-1,d+a))):(u=t<0?s.length-1:0,d=a<0?c.length-1:0);let f=s[u],p=c[d],m={rowId:e.getRowId(f),prop:p,rowIndex:u,colIndex:d};return o&&n.value?r.value=m:(n.value=m,r.value=null),{row:f,prop:p,pos:m}},buildTsv:t=>{let r=c.value,a=e.getRows(),o=i();if(!r){let e=n.value;return e?t(a[e.rowIndex],e.prop):``}let s=[];for(let e=r.r0;e<=r.r1;e++){let n=[];for(let i=r.c0;i<=r.c1;i++){let r=t(a[e],o[i]);n.push(String(r??``).replace(/\t/g,` `).replace(/\r?\n/g,` `))}s.push(n.join(` `))}return s.join(`
2
2
  `)},pasteTsv:(t,r)=>{let a=n.value;if(!a)return;let o=e.getRows(),s=i(),c=t.replace(/\r\n/g,`
3
3
  `).replace(/\r/g,`
4
4
  `).split(`
@@ -120,7 +120,7 @@ ${s}
120
120
  </div>
121
121
  </body>
122
122
  </html>`}function cp(e,t={}){let n=sp(e,t),r=new Blob([n],{type:`text/html;charset=utf-8`});return $f(r,t.fileName||`banner-${Date.now()}.html`),r}async function lp(e,t={}){let n=await dp(await Qf(e,{scale:t.scale??2})),r=t.widthMm??210,i=t.heightMm??297,a=new c.jsPDF({orientation:r>i?`landscape`:`portrait`,unit:`mm`,format:[r,i]});return a.addImage(n,`PNG`,0,0,r,i),a.output(`blob`)}async function up(e,t={}){let n=await lp(e,t);return $f(n,t.fileName||`canvas-${Date.now()}.pdf`),n}function dp(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(String(r.result||``)),r.onerror=()=>n(r.error),r.readAsDataURL(e)})}var fp=v({BANNER_DEFAULT_MODULES:()=>hp,createBadgeDoc:()=>mp,createBannerDoc:()=>pp});function pp(e){return{version:1,mode:`banner`,canvas:{widthMm:320,heightMm:90,widthPx:1200,heightPx:340,unit:`px`,background:`#0f766e`,showBorder:!1},elements:[{id:`banner-title`,type:`text`,zIndex:2,xMm:20,yMm:25,wMm:200,hMm:20,text:`{{school.name}}`,fontSize:28,fontFamily:`Microsoft YaHei, sans-serif`,color:`#ffffff`,link:{href:`https://example.com`,target:`_blank`}},{id:`banner-sub`,type:`text`,zIndex:2,xMm:20,yMm:50,wMm:240,hMm:14,text:`{{competition.name}}`,fontSize:14,fontFamily:`Microsoft YaHei, sans-serif`,color:`#ccfbf1`}],dataModules:hp,...e}}function mp(e){return{version:1,mode:`badge`,canvas:{widthMm:90,heightMm:130,unit:`mm`,background:`#ffffff`,showBorder:!0,borderColor:`#334155`,borderWidthMm:.35},elements:[],dataModules:Or(),...e}}var hp,gp=g((()=>{Lr(),hp=Or().map(e=>({...e,enabled:[`school`,`competition`].includes(e.id)}))}));Lr();var _p={class:`badge-editor-header page-header`},vp={class:`badge-editor-header__extra`},yp={class:`tools-card-inner`},bp={class:`tools-scroll`},xp={class:`tools-accordion`},Sp=[`hidden`],Cp={class:`tool-row`},wp={class:`tool-row`},Tp={class:`tool-row`},Ep={class:`divider-title-with-help`},Dp={class:`tool-row`},Op={class:`tool-row`},kp={class:`canvas-bg-color-row`},Ap={class:`tool-row`},jp={class:`divider-title-with-help`},Mp={class:`tool-row`},Np={key:1,class:`tool-row`},Pp={class:`canvas-bg-color-row`},Fp={class:`tool-row tool-row-actions tool-action-grid tool-action-grid--canvas-bg`},Ip={class:`tools-tip tools-tip--compact`},Lp={class:`divider-title-with-help`},Rp={class:`tool-row tool-row-actions`},zp={key:3,class:`guide-list`},Bp=[`onClick`,`onContextmenu`],Vp=[`hidden`],Hp={class:`divider-title-with-help`},Up={class:`tool-row tool-row-actions`},Wp={class:`tool-row tool-row-actions`},Gp={class:`divider-title-with-help`},Kp={class:`tool-row tool-row-actions tool-action-grid tool-action-grid--actions`},qp={class:`tool-row`},Jp={class:`tool-row`},Yp={class:`tool-row tool-row-actions tool-action-grid tool-action-grid--regions`},Xp={key:0,class:`guide-list`},Zp=[`onClick`],Qp={class:`guide-mm`},$p={class:`tool-row`},em=[`hidden`],tm={class:`tool-row align-row`},nm={class:`tool-row align-row`},rm={key:0,class:`layer-list`},im=[`onClick`],am={class:`layer-label`},om={class:`layer-z`},sm={key:1,class:`muted-text`},cm={class:`tools-footer`},lm={class:`tool-row save-row`},um={key:0,class:`hint`},dm={class:`canvas-card-header`},fm={class:`canvas-card-header__actions`},pm={key:0,class:`ruler-corner`},mm={key:1,class:`ruler ruler-x`},hm={key:0,class:`ruler-label`},gm={key:2,class:`ruler ruler-y`},_m={key:0,class:`ruler-label`},vm=[`onPointerdown`,`onContextmenu`],ym=[`onPointerdown`,`onContextmenu`],bm={class:`canvas-region__label`},xm=[`onPointerdown`],Sm=[`onPointerdown`],Cm=[`onPointerdown`],wm=[`stroke`,`stroke-width`],Tm=[`fill`,`stroke`,`stroke-width`],Em=[`fill`,`stroke`,`stroke-width`],Dm=[`fill`,`stroke`,`stroke-width`],Om=[`points`,`fill`,`stroke`,`stroke-width`],km=[`points`,`fill`,`stroke`,`stroke-width`],Am=[`onPointerdown`],jm=[`onPointerdown`],Mm=[`src`],Nm={key:0,class:`clipboard-image-badge`},Pm=[`onPointerdown`],Fm=[`disabled`],Im=[`disabled`],Lm=[`disabled`],Rm=[`disabled`],zm=[`disabled`],Bm=[`disabled`],Vm=[`disabled`],Hm=[`disabled`],Um=[`disabled`],Wm=[`disabled`],Gm=[`disabled`],Km=[`disabled`],qm={class:`side-inner`},Jm={class:`side-props-scroll`},Ym={key:0,class:`props`},Xm={class:`form-lbl-ico`},Zm={class:`form-lbl-ico`},Qm={class:`pair-inputs`},$m={class:`flip-actions`},eh={key:1,class:`props`},th={class:`pair-inputs`},nh={class:`flip-actions`},rh={key:2,class:`props`},ih={class:`pair-inputs`},ah={key:3,class:`props`},oh={class:`canvas-bg-color-row`},sh={class:`region-bg-actions`},ch={class:`pair-inputs pair-inputs--wrap`},lh={class:`divider-title-with-help`},uh={class:`tool-row tool-row-actions tool-action-grid tool-action-grid--region-ops`},dh={key:4,class:`props multi-props`},fh={class:`multi-props-summary`},ph={class:`tool-row tool-row-actions tool-action-grid tool-action-grid--actions`},mh={class:`divider-title-with-help`},hh={class:`form-lbl-ico`},gh={class:`multi-style-inputs`},_h={class:`form-lbl-ico`},vh={class:`multi-style-inputs multi-style-inputs--color`},yh={class:`divider-title-with-help`},bh={class:`tool-row align-row side-align-row`},xh={class:`tool-row align-row side-align-row`},Sh={class:`divider-title-with-help`},Ch={class:`tool-row align-row side-align-row`},wh={class:`side-preview-block`},Th={class:`preview-wrap`},Eh={class:`dlg-preview-scroll`},Dh={style:{display:`flex`,"flex-direction":`column`,gap:`12px`}},Oh=`fou-badge-editor-panel-widths`,kh=220,Ah=480,jh=200,Mh=420,Nh=360,Ph=96/25.4,Fh=24,Ih=320,Lh=240,Rh=20,zh=50,Bh=(0,t.defineComponent)({name:`FouCanvasEditor`,__name:`FouCanvasEditor`,props:{mode:{default:void 0},embedded:{type:Boolean,default:!1},extraModules:{}},emits:[`save`,`update:modelValue`],setup(e,{emit:n}){let r=e,i,a;try{i=(0,o.useRoute)(),a=(0,o.useRouter)()}catch{i={params:{},name:``,path:``},a={push:()=>Promise.resolve()}}let s=Number(i.params.id),c=Number(i.params.tid),l=(0,t.computed)(()=>r.mode===`desk`||i.name===`DeskLabelTemplateEditor`||i.name===`FouDeskLabelEditor`||String(i.path).includes(`desk-label-template`));(0,t.computed)(()=>r.mode===`banner`);let u=(0,t.computed)(()=>l.value?[...Wu]:[...Ru]);(0,t.computed)(()=>u.value.map(e=>({label:en(e),value:e})));let d=[{label:`矩形`,value:`rect`},{label:`圆形`,value:`circle`},{label:`三角形`,value:`triangle`},{label:`线条`,value:`line`},{label:`多边形`,value:`polygon`},{label:`梯形`,value:`trapezoid`}],f=(0,t.ref)(!1),p=(0,t.ref)(!1),m=(0,t.ref)(``),h=(0,t.ref)(`_blank`),g=(0,t.ref)(null),_=(0,t.ref)(0),v=null;function y(e){f.value=!1,v?.(e),v=null}let b=(0,t.ref)(``);(0,t.ref)(!0);let x=(0,t.ref)(`insert`),S=(0,t.ref)([]),C=(0,t.ref)({}),w=(0,t.ref)(`rect`);function T(e){C.value=e}function E(e){S.value=e,I.value&&(I.value.dataModules=e),C.value=Mr(kr(r.extraModules,e))}function D(e){if(!I.value)return;let t=ha().filter(e=>e.type===`text`),n=t.length?t[t.length-1]:null;n?n.text=String(n.text||``)+e:O(e)}function O(e){if(!I.value)return;let t=`t_${Date.now().toString(36)}`,n={id:t,type:`text`,zIndex:(I.value.elements.length||0)+1,xMm:10,yMm:10,wMm:40,hMm:12,text:e,fontSize:14,fontFamily:`Microsoft YaHei, sans-serif`,color:`#111827`};I.value.elements.push(n),z.value=[t]}async function A(){let e=document.querySelector(`.badge-editor .editor-scale-inner .badge-canvas, .badge-editor .host-inner`),t=document.querySelector(`.badge-editor .editor-clip`)||e;if(!t){Q.warning(`未找到画布节点`);return}await ep(t,{fileName:`canvas-${Date.now()}.png`}),Q.success(`已导出 PNG`)}async function j(){let e=document.querySelector(`.badge-editor .editor-clip`);!e||!I.value||(await up(e,{fileName:`canvas-${Date.now()}.pdf`,widthMm:I.value.canvas.widthMm,heightMm:I.value.canvas.heightMm}),Q.success(`已导出 PDF`))}function M(){I.value&&(cp(I.value,{fileName:`banner-${Date.now()}.html`,context:C.value,title:b.value||`Banner`}),Q.success(`已导出网页`))}let N=(0,t.ref)(!0),P=(0,t.ref)(!1),F=(0,t.ref)(``),I=(0,t.ref)(null),L=(0,t.ref)(90),R=(0,t.ref)(130),ee=(0,t.ref)({}),z=(0,t.ref)([]),B=(0,t.ref)(null),V=(0,t.ref)(null);(0,t.ref)(),(0,t.watch)(()=>I.value,e=>{if(!e)return;let t=kr(r.extraModules,e.dataModules);S.value=t,C.value=Mr(t)},{immediate:!0});let H=(0,t.ref)(null),te=(0,t.ref)(null),ne=(0,t.ref)(null),re=(0,t.ref)(null),U=(0,t.ref)(!1),ie=(0,t.ref)(!1),ae=(()=>{try{let e=localStorage.getItem(Oh);if(!e)return null;let t=JSON.parse(e);return{left:Number(t.left),right:Number(t.right)}}catch{return null}})(),W=(0,t.ref)(Number.isFinite(ae?.left)?Math.min(Ah,Math.max(kh,ae.left)):292),oe=(0,t.ref)(Number.isFinite(ae?.right)?Math.min(Mh,Math.max(jh,ae.right)):260),se=(0,t.ref)(null),ce=(0,t.computed)(()=>({gridTemplateColumns:`${W.value}px 8px minmax(${Nh}px, 1fr) 8px ${oe.value}px`})),G=()=>{try{localStorage.setItem(Oh,JSON.stringify({left:W.value,right:oe.value}))}catch{}},le=0,ue=0,K=0,de=e=>{if(!se.value)return;let t=e.clientX-le,n=ne.value?.clientWidth||0;if(se.value===`left`){let e=ue+t,r=n-oe.value-8-8-Nh;e=Math.min(Ah,Math.max(kh,e),r),W.value=Math.round(e)}else{let e=K-t,r=n-W.value-8-8-Nh;e=Math.min(Mh,Math.max(jh,e),r),oe.value=Math.round(e)}},fe=()=>{se.value&&(se.value=null,window.removeEventListener(`pointermove`,de),window.removeEventListener(`pointerup`,fe),document.body.style.cursor=``,document.body.style.userSelect=``,G(),(0,t.nextTick)(()=>{Pa(),Ae.value??Ba(!1)}))},q=(e,t)=>{t.preventDefault(),t.stopPropagation(),se.value=e,le=t.clientX,ue=W.value,K=oe.value,document.body.style.cursor=`col-resize`,document.body.style.userSelect=`none`,window.addEventListener(`pointermove`,de),window.addEventListener(`pointerup`,fe)},pe=(0,t.ref)(null),me=(0,t.ref)(null),he=(0,t.ref)(null),ge=!1,_e=(0,t.ref)(420),ve=(0,t.ref)(420),ye=(0,t.ref)(!1),be=(0,t.ref)(!1),xe=(0,t.ref)(`lib`),Se=(0,t.ref)(!1),Ce=(0,t.ref)(`lib`),we=(0,t.ref)(!1),Te=(0,t.ref)(!1),Ee=(0,t.ref)(!0),De=(0,t.ref)(!1),Oe=(0,t.ref)(!1),ke=(0,t.ref)(!1),Ae=(0,t.ref)(null),je=(0,t.ref)([]),Me=(0,t.ref)(null),Ne=(0,t.ref)(null),Pe=(0,t.ref)({visible:!1,x:0,y:0,clientX:0,clientY:0,anchorMm:null,target:`blank`,regionId:null,guideId:null}),Fe=(0,t.ref)(!1),Ie=new Map,Le=0,Re=(0,t.ref)(2),ze=(0,t.ref)(2),Be=(0,t.ref)(`color`);(0,t.ref)(`center`);let Ve=(0,t.ref)(2),He=()=>{we.value=!0};function Ue(){l.value?a.push(`/fouui/badge/competition/${s}/desk-label-templates`):a.push(`/fouui/badge/competition/${s}/badge-templates`)}let We=(0,t.computed)(()=>I.value?Uu(I.value.elements):[]),Ge=(0,t.computed)(()=>I.value?.regions??[]),Ke=(0,t.computed)(()=>I.value?.elements?[...I.value.elements].sort((e,t)=>(t.zIndex??0)-(e.zIndex??0)):[]),qe=(0,t.computed)(()=>z.value.length===1?z.value[0]:null);function Je(e){return z.value.includes(e)}let Ye=(0,t.computed)(()=>{let e=qe.value,t=I.value;if(!e||!t?.elements?.length)return null;let n=t.elements.find(t=>t.id===e);return!n||n.type!==`text`?null:n}),Xe=(0,t.computed)(()=>{let e=qe.value,t=I.value;if(!e||!t?.elements?.length)return null;let n=t.elements.find(t=>t.id===e);return!n||n.type!==`image`&&n.type!==`seal`?null:n}),Ze=(0,t.computed)(()=>{let e=qe.value,t=I.value;if(!e||!t?.elements?.length)return null;let n=t.elements.find(t=>t.id===e);return!n||n.type!==`shape`?null:n}),J=(0,t.computed)(()=>Ge.value.find(e=>e.id===B.value)||null),Qe=(0,t.computed)(()=>Ye.value||Xe.value||Ze.value),$e=(0,t.computed)({get(){return Math.round((Ze.value?.opacity??1)*100)},set(e){let t=Ze.value;t&&(t.opacity=Math.max(0,Math.min(1,e/100)))}}),Y=(0,t.computed)({get(){return Ze.value?.showStroke!==!1},set(e){let t=Ze.value;t&&(t.showStroke=e)}}),et=(0,t.computed)({get(){return!!Ze.value?.lockAspectRatio},set(e){let t=Ze.value;t&&(t.lockAspectRatio=e)}}),tt=(0,t.computed)({get(){let e=Xe.value?.rotation;return e!=null&&Number.isFinite(e)?Number(e):0},set(e){let t=Xe.value;if(!t)return;let n=e==null?0:Number(e);!Number.isFinite(n)||n===0?delete t.rotation:t.rotation=Math.round(n*100)/100}}),nt=(0,t.computed)({get(){let e=Ye.value?.rotation;return e!=null&&Number.isFinite(e)?Number(e):0},set(e){let t=Ye.value;if(!t)return;let n=e==null?0:Number(e);!Number.isFinite(n)||n===0?delete t.rotation:t.rotation=Math.round(n*100)/100}}),rt=(0,t.computed)({get(){return!!Qe.value?.flipX},set(e){let t=Qe.value;t&&(e?t.flipX=!0:delete t.flipX)}}),it=(0,t.computed)({get(){return!!Qe.value?.flipY},set(e){let t=Qe.value;t&&(e?t.flipY=!0:delete t.flipY)}}),at=(0,t.computed)(()=>I.value?.guides??[]),ot=(0,t.computed)(()=>je.value.length>0),st=(0,t.computed)(()=>!!Me.value?.regions?.length),ct=(0,t.computed)(()=>ot.value||st.value),lt=(0,t.computed)(()=>ha().some(e=>!!e.groupId)),ut=(0,t.computed)(()=>Ge.value.find(e=>e.id===Pe.value.regionId)||null),dt=(0,t.computed)(()=>at.value.find(e=>e.id===Pe.value.guideId)||null),ft=(0,t.computed)(()=>({left:`${Pe.value.x}px`,top:`${Pe.value.y}px`})),mt=(0,t.computed)(()=>{let e=he.value;if(!e)return{};let t=Math.min(e.x0,e.x1),n=Math.min(e.y0,e.y1),r=Math.abs(e.x1-e.x0),i=Math.abs(e.y1-e.y0);return{position:`absolute`,left:`${t}px`,top:`${n}px`,width:`${r}px`,height:`${i}px`,zIndex:9999,pointerEvents:`none`,border:`1px dashed #409eff`,background:`rgba(64, 158, 255, 0.12)`,boxSizing:`border-box`}}),ht=(0,t.computed)({get(){return Ye.value?.text??``},set(e){let t=Ye.value;t&&(t.text=e)}}),gt=(0,t.computed)({get(){return Ye.value?.textDirection===`vertical`?`vertical`:`horizontal`},set(e){let t=Ye.value;t&&(e===`vertical`?t.textDirection=`vertical`:delete t.textDirection)}});(0,t.watch)(Ye,e=>{e&&(e.color||=`#303133`,e.align||=`top-left`)}),(0,t.watch)(Ze,e=>{e&&(e.showStroke??=!0,e.lockAspectRatio??=Er(e.shape),e.shape===`polygon`&&(!Number.isFinite(e.polygonSides)||Number(e.polygonSides)<3)&&(e.polygonSides=5))}),(0,t.watch)(()=>[I.value?.canvas?.background??``,I.value?.canvas?.backgroundImage??``],()=>{nn()},{immediate:!0}),(0,t.watch)(be,e=>{!e&&Be.value===`image`&&!I.value?.canvas?.backgroundImage&&nn()});let _t=[{value:`top-left`,label:`左上`},{value:`top-center`,label:`上中`},{value:`top-right`,label:`右上`},{value:`middle-left`,label:`左中`},{value:`center`,label:`居中`},{value:`middle-right`,label:`右中`},{value:`bottom-left`,label:`左下`},{value:`bottom-center`,label:`下中`},{value:`bottom-right`,label:`右下`}],vt=(0,t.computed)({get(){return I.value?.canvas?.background||`rgba(255, 255, 255, 1)`},set(e){I.value?.canvas&&(I.value.canvas.background=String(e||``).trim(),I.value.canvas.background&&(Be.value=`color`))}}),X=(0,t.computed)({get(){return I.value?.canvas?.showBorder!==!1},set(e){I.value?.canvas&&(I.value.canvas.showBorder=!!e)}}),yt=(0,t.computed)({get(){return I.value?.canvas?.borderColor||`#334155`},set(e){I.value?.canvas&&(I.value.canvas.borderColor=String(e||``).trim()||`#334155`,I.value.canvas.showBorder??(I.value.canvas.showBorder=!0))}}),bt=(0,t.computed)({get(){let e=Number(I.value?.canvas?.borderWidthMm);return Number.isFinite(e)&&e>0?e:.35},set(e){if(!I.value?.canvas)return;let t=Number(e);I.value.canvas.borderWidthMm=Number.isFinite(t)?Math.max(.1,Math.min(8,t)):.35,I.value.canvas.showBorder??(I.value.canvas.showBorder=!0)}}),xt=(0,t.computed)({get(){return J.value?.backgroundImage?`image`:(J.value?.background||``).trim()?`color`:`transparent`},set(e){let t=J.value;if(t){if(e===`transparent`){delete t.backgroundImage,t.background=``;return}if(e===`color`){delete t.backgroundImage,String(t.background||``).trim()||(t.background=`#ffffff`);return}t.backgroundImage||cn(`lib`)}}}),St=(0,t.computed)({get(){return J.value?.background||`rgba(255, 255, 255, 1)`},set(e){let t=J.value;t&&(t.background=String(e||``).trim(),t.background&&delete t.backgroundImage)}}),Ct=(0,t.computed)(()=>C.value&&Object.keys(C.value).length?C.value:Vu({})),wt=(0,t.computed)(()=>I.value?.canvas?.widthMm?I.value.canvas.widthMm*Ph:0),Tt=(0,t.computed)(()=>I.value?.canvas?.heightMm?I.value.canvas.heightMm*Ph:0),Et=(0,t.computed)(()=>wt.value*Z.value),Dt=(0,t.computed)(()=>Tt.value*Z.value),Ot=(0,t.computed)(()=>Ph*Z.value),kt=(0,t.computed)(()=>Math.max(_e.value-(Ee.value?Fh:0),120)),At=(0,t.computed)(()=>Math.max(ve.value-(Ee.value?Fh:0),120)),jt=(0,t.computed)(()=>Math.max(Ih,kt.value)),Mt=(0,t.computed)(()=>Math.max(Lh,At.value)),Nt=(0,t.computed)(()=>Math.max(0,Et.value+jt.value*2)),Ft=(0,t.computed)(()=>Math.max(0,Dt.value+Mt.value*2)),It=(0,t.computed)(()=>Math.max(0,Math.round((Nt.value-Et.value)/2))),Lt=(0,t.computed)(()=>Math.max(0,Math.round((Ft.value-Dt.value)/2))),Rt=(0,t.computed)(()=>(Ee.value?Fh:0)+It.value),zt=(0,t.computed)(()=>(Ee.value?Fh:0)+Lt.value),Bt=(0,t.computed)(()=>{let e=Ee.value?Fh:0;return{"--ruler-size":`${e}px`,width:`${Nt.value+e}px`,height:`${Ft.value+e}px`}}),Ht=(0,t.computed)(()=>({width:`${Nt.value}px`,height:`${Ft.value}px`})),Ut=(0,t.computed)(()=>({width:`${Nt.value}px`})),Wt=(0,t.computed)(()=>({height:`${Ft.value}px`})),Gt=(0,t.computed)(()=>fn(It.value,Nt.value,Ot.value)),Kt=(0,t.computed)(()=>fn(Lt.value,Ft.value,Ot.value)),qt=(0,t.computed)(()=>{let e=wt.value,t=Tt.value;if(e<=0||t<=0)return 1;let n=Math.max(kt.value-40,60),r=Math.max(At.value-40,60),i=Math.min(n/e,r/t);return Math.max(.06,Math.min(3,i))}),Z=(0,t.computed)(()=>{let e=Ae.value;return e!=null&&Number.isFinite(e)?Math.max(.06,Math.min(3,e)):qt.value}),Jt=(0,t.computed)(()=>`${Math.round(Z.value*100)}%`),Yt=(0,t.computed)(()=>({width:`${Et.value}px`,height:`${Dt.value}px`,overflow:`hidden`,left:`${It.value}px`,top:`${Lt.value}px`,position:`absolute`,flexShrink:0})),Xt=(0,t.computed)(()=>({width:`${wt.value}px`,height:`${Tt.value}px`,transform:`scale(${Z.value})`,transformOrigin:`top left`})),Zt=(0,t.computed)(()=>{if(!I.value)return{};let e=10*Ph,t=`linear-gradient(rgba(15, 23, 42, 0.06) 1px, transparent 1px),
123
- linear-gradient(90deg, rgba(15, 23, 42, 0.06) 1px, transparent 1px)`.replace(/\s+/g,` `),n=I.value.canvas.backgroundImage?`, url(${dn(I.value.canvas.backgroundImage)})`:``,r=I.value.canvas.backgroundImage?`${e}px ${e}px, ${e}px ${e}px, cover`:`${e}px ${e}px`,i=I.value.canvas.backgroundImage?`0 0, 0 0, center`:`0 0`,a=I.value.canvas.showBorder!==!1,o=I.value.canvas.borderColor||`#334155`,s=Number(I.value.canvas.borderWidthMm),c=Number.isFinite(s)&&s>0?s:.35;return{width:`100%`,height:`100%`,position:`relative`,boxSizing:`border-box`,backgroundColor:I.value.canvas.backgroundImage?void 0:I.value.canvas.background||`transparent`,backgroundImage:I.value.canvas.backgroundImage?`${t}${n}`:t,backgroundSize:r,backgroundPosition:i,border:a?`${c}mm solid ${o}`:`0 solid transparent`,borderRadius:`2px`,boxShadow:a?`0 1px 4px rgba(0,0,0,0.1)`:`inset 0 0 0 1px rgba(148, 163, 184, 0.35), 0 1px 3px rgba(0,0,0,0.06)`}}),Qt=(0,t.computed)(()=>{if(!I.value?.canvas?.widthMm)return .35;let e=I.value.canvas.widthMm*Ph;return Math.min(220/e,.65)}),$t=(0,t.computed)(()=>{if(!I.value?.canvas?.widthMm)return .55;let e=I.value.canvas.widthMm*Ph;return Math.min(520/e,1)});function en(e){return(l.value?Gu:zu)[e]||e}function tn(){I.value?.canvas&&(I.value.canvas.widthMm=L.value,I.value.canvas.heightMm=R.value)}function nn(){I.value?.canvas?.backgroundImage?Be.value=`image`:(I.value?.canvas?.background||``).trim()?Be.value=`color`:Be.value=`transparent`}function rn(e){if(I.value?.canvas){if(e===`transparent`){delete I.value.canvas.backgroundImage,I.value.canvas.background=``;return}if(e===`color`){delete I.value.canvas.backgroundImage,String(I.value.canvas.background||``).trim()||(I.value.canvas.background=`#ffffff`);return}I.value.canvas.backgroundImage||an(`lib`)}}function an(e){xe.value=e,be.value=!0}function on(e){!I.value?.canvas||!e||(I.value.canvas.backgroundImage=e,I.value.canvas.background=``,Be.value=`image`)}function sn(){I.value?.canvas?.backgroundImage&&(delete I.value.canvas.backgroundImage,nn())}function cn(e){Ce.value=e,Se.value=!0}function ln(e){!J.value||!e||(J.value.backgroundImage=e,J.value.background=``)}function un(){J.value?.backgroundImage&&delete J.value.backgroundImage}function dn(e){return Rn(e)}function fn(e,t,n){if(!(t>0)||!(n>0)||!Number.isFinite(n)||!Number.isFinite(t))return[];let r=[1,2,5,10,20,25,50,100,200,250,500,1e3,2e3,5e3],i=r[r.length-1];for(let e of r)if(e*n>=10){i=e;break}let a=i;for(let e of r)if(!(e<i||e%i!==0)&&(a=e,e*n>=52))break;let o=a/2,s=Math.floor(-e/n/i)*i,c=Math.ceil((t-e)/n/i)*i;if(!Number.isFinite(s)||!Number.isFinite(c)||c<s)return[];let l=[];for(let t=s;t<=c;t+=i){let r=(t%a+a)%a===0,s=!r&&o>=i&&(t%o+o)%o===0;l.push({mm:t,major:r,mid:s,label:r?`${t}`:``,offsetPx:Math.round((e+t*n)*100)/100})}return l}function pn(e){return JSON.parse(JSON.stringify(e))}function mn(e){return JSON.parse(JSON.stringify(e))}function hn(){Le+=1;let e=4*Le;return{dx:e,dy:e}}function gn(e,t){let n=e.xMm+e.wMm,r=e.yMm+e.hMm;return n>t.xMm&&e.xMm<t.xMm+t.wMm&&r>t.yMm&&e.yMm<t.yMm+t.hMm}function _n(e){let t=Math.min(...e.map(e=>e.xMm)),n=Math.min(...e.map(e=>e.yMm)),r=Math.max(...e.map(e=>e.xMm+e.wMm)),i=Math.max(...e.map(e=>e.yMm+e.hMm));return{minX:t,minY:n,maxR:r,maxB:i,width:$(r-t),height:$(i-n)}}function yn(e){let t=Math.min(...e.map(e=>e.xMm)),n=Math.min(...e.map(e=>e.yMm)),r=Math.max(...e.map(e=>e.xMm+e.wMm)),i=Math.max(...e.map(e=>e.yMm+e.hMm));return{minX:t,minY:n,maxR:r,maxB:i,width:$(r-t),height:$(i-n)}}function xn(e){return{xMm:$(e.xMm+2),yMm:$(e.yMm+2)}}function Sn(e,t,n){let r=Math.max(0,Number(Ve.value)||0),i=Math.max(0,e.wMm-t.width),a=Math.max(0,e.hMm-t.height),o=n.endsWith(`left`)?0:n.endsWith(`right`)?1:.5,s=n.startsWith(`top`)?0:n.startsWith(`bottom`)?1:.5,c=Math.min(r,i),l=Math.min(r,a),u=Math.max(0,i-c*2),d=Math.max(0,a-l*2);return{xMm:$(e.xMm+c+u*o),yMm:$(e.yMm+l+d*s)}}function Cn(e,t,n){let r=e.xMm,i=e.yMm,a=!!e.flipX,o=!!e.flipY;return n===`x`?(r=$(t.minX+t.maxR-(e.xMm+e.wMm)),a=!a):n===`y`&&(i=$(t.minY+t.maxB-(e.yMm+e.hMm)),o=!o),{xMm:r,yMm:i,flipX:a||void 0,flipY:o||void 0}}function wn(e){if(!I.value||!e.length)return;let t=e.map(e=>I.value.elements.find(t=>t.id===e)).filter(e=>e!=null);t.length&&(je.value=t.map(e=>pn(e)),Ne.value=`elements`,Le=0,Q.success(t.length>1?`已复制 ${t.length} 个元素`:`已复制元素`))}function En(e){return I.value?.elements?.length?I.value.elements.filter(t=>t.regionId===e.id||gn(t,e)):[]}function On(e,t,n){if(!e.length){Q.info(`请先选中要复制的分块`);return}Me.value={regions:e.map(e=>mn(e)),elements:t.map(e=>pn(e))},Ne.value=`regions`,Le=0,Q.success(n)}function kn(){if(!J.value){Q.info(`请先选中一个分块`);return}On([J.value],[],`已复制分块「${J.value.name}」`)}function An(){if(!J.value||!I.value)return;let e=En(J.value);if(!e.length){Q.info(`当前分区内没有可复制的元素`);return}wn(e.map(e=>e.id))}function Nn(){if(!J.value){Q.info(`请先选中一个分块`);return}let e=En(J.value);On([J.value],e,e.length?`已复制分块和 ${e.length} 个元素`:`已复制分块「${J.value.name}」`)}function Pn(){if(!J.value){Q.info(`请先选中一个分块`);return}let e=ha();On([J.value],e,e.length?`已复制分块和 ${e.length} 个选中元素`:`已复制分块「${J.value.name}」`)}function Fn(e){let t=z.value.length?[...z.value]:e?[e]:[];if(!t.length){Q.info(`请先选中要复制的元素`);return}wn(t)}function In(e,t){if(!I.value||!je.value.length){Q.info(`剪贴板里还没有可粘贴的元素`);return}let n=je.value.map(e=>pn(e)),r=new Map,i=_n(n),a=hn(),o=t?.targetRegion??null,s=o?t?.align?Sn(o,i,t.align):xn(o):e,c=s?s.xMm-i.minX:a.dx,l=s?s.yMm-i.minY:a.dy,u=I.value.elements.reduce((e,t)=>Math.max(e,t.zIndex??0),0),d=n.map((e,n)=>{let a=Cn(e,i,t?.flipAxis);return{...e,id:Lr(),groupId:e.groupId?r.get(e.groupId)||(r.set(e.groupId,Rr()),r.get(e.groupId)):void 0,regionId:o?.id||e.regionId,xMm:$(a.xMm+c),yMm:$(a.yMm+l),flipX:a.flipX,flipY:a.flipY,zIndex:u+n+1}});ta(),I.value.elements.push(...d),o&&(B.value=o.id),z.value=d.map(e=>e.id),Q.success(d.length>1?`已粘贴 ${d.length} 个元素`:`已粘贴元素`)}function Ln(e){return{x:e.xMm+e.wMm/2,y:e.yMm+e.hMm/2}}function zn(e,t,n,r){return Math.max(0,Math.min(t,r)-Math.max(e,n))}function Bn(e,t){if(!I.value?.regions?.length)return null;let n=Ln(e),r=L.value-n.x,i=R.value-n.y,a=I.value.regions.filter(t=>t.id!==e.id);if(!a.length)return null;let o=null;for(let s of a){let a=Ln(s),c=t===`x`?zn(e.yMm,e.yMm+e.hMm,s.yMm,s.yMm+s.hMm):zn(e.xMm,e.xMm+e.wMm,s.xMm,s.xMm+s.wMm),l=t===`x`?Math.abs(a.x-r)*4+Math.abs(a.y-n.y)-c*.25:Math.abs(a.y-i)*4+Math.abs(a.x-n.x)-c*.25;(!o||l<o.score)&&(o={region:s,score:l})}return o?.region||null}function Vn(e){let t=ha().filter(t=>t.regionId===e.id||gn(t,e));return t.length?t:En(e)}function Hn(e){if(!J.value){Q.info(`请先选中一个分区`);return}cr(e,J.value)}function Un(e){if(!I.value||!J.value){Q.info(`请先选中一个分区`);return}let t=J.value,n=Bn(t,e);if(!n){Q.warning(e===`x`?`未找到左右对侧分区`:`未找到上下对侧分区`);return}let r=Vn(t).map(e=>pn(e));if(!r.length){Q.info(`当前分区内没有可镜像的内容`);return}let i=Math.max(.001,n.wMm/Math.max(t.wMm,.001)),a=Math.max(.001,n.hMm/Math.max(t.hMm,.001)),o=new Map,s=I.value.elements.reduce((e,t)=>Math.max(e,t.zIndex??0),0),c=r.map((r,c)=>{let l=r.xMm-t.xMm,u=r.yMm-t.yMm,d=$(r.wMm*i),f=$(r.hMm*a),p=$(e===`x`?(t.wMm-(l+r.wMm))*i:l*i),m=$(e===`y`?(t.hMm-(u+r.hMm))*a:u*a);return{...r,id:Lr(),groupId:r.groupId?o.get(r.groupId)||(o.set(r.groupId,Rr()),o.get(r.groupId)):void 0,regionId:n.id,xMm:$(n.xMm+p),yMm:$(n.yMm+m),wMm:d,hMm:f,flipX:e===`x`?!r.flipX||void 0:r.flipX,flipY:e===`y`?!r.flipY||void 0:r.flipY,zIndex:s+c+1}});ta(),I.value.elements.push(...c),B.value=n.id,z.value=c.map(e=>e.id),Q.success(e===`x`?`已镜像复制到横向对侧分区「${n.name}」`:`已镜像复制到纵向对侧分区「${n.name}」`)}function Wn(e){if(!I.value||!Me.value?.regions?.length){Q.info(`剪贴板里还没有可粘贴的分块`);return}let t=Me.value.regions.map(e=>mn(e)),n=Me.value.elements.map(e=>pn(e)),r=yn(t),i=hn(),a=e?e.xMm-r.minX:i.dx,o=e?e.yMm-r.minY:i.dy,s=new Map,c=new Map,l=t.map((e,n)=>{let r=zr();return s.set(e.id,r),{...e,id:r,name:t.length>1?`${e.name} ${n+1}`:`${e.name} 副本`,xMm:$(e.xMm+a),yMm:$(e.yMm+o)}}),u=I.value.elements.reduce((e,t)=>Math.max(e,t.zIndex??0),0),d=n.map((e,n)=>{let r=e.regionId&&s.get(e.regionId)||void 0;if(!r){let n=t.find(t=>gn(e,t));n&&(r=s.get(n.id)||void 0)}return{...e,id:Lr(),groupId:e.groupId?c.get(e.groupId)||(c.set(e.groupId,Rr()),c.get(e.groupId)):void 0,regionId:r,xMm:$(e.xMm+a),yMm:$(e.yMm+o),zIndex:u+n+1}});ta(),I.value.regions||=[],I.value.regions.push(...l),I.value.elements.push(...d),B.value=l[0]?.id||null,z.value=d.map(e=>e.id),Q.success(d.length?`已粘贴 ${l.length} 个分块和 ${d.length} 个元素`:`已粘贴 ${l.length} 个分块`)}function Gn(){return`clip_${Date.now()}_${Math.random().toString(36).slice(2,8)}`}function qn(e){return!!e&&(e.type===`image`||e.type===`seal`)&&e.clipboardSource===`clipboard`}function Jn(e){return qn(e)?e.clipboardUploadState===`pending`?`粘贴待上传`:`粘贴图片`:``}function Yn(e){let t=e?.length?e:Array.from(Ie.keys());for(let e of t){let t=Ie.get(e);t?.objectUrl&&URL.revokeObjectURL(t.objectUrl),Ie.delete(e)}}function Xn(e){let t=e?.target;t instanceof HTMLElement&&t.closest(`.canvas-context-menu`)||(Pe.value.visible=!1,Pe.value.anchorMm=null,Pe.value.target=`blank`,Pe.value.regionId=null,Pe.value.guideId=null)}function Zn(e,t){return{x:Math.max(8,Math.min(e,window.innerWidth-144-8)),y:Math.max(8,Math.min(t,window.innerHeight-320-8))}}function Qn(e,t,n,r=`blank`,i=null,a=null){let o=Zn(e,t);Pe.value={visible:!0,x:o.x,y:o.y,clientX:e,clientY:t,anchorMm:n??null,target:r,regionId:i,guideId:a}}function $n(e){Qn(e.clientX,e.clientY,null)}function er(e){if(!pe.value){Qn(e.clientX,e.clientY,null);return}let t=pe.value.getBoundingClientRect(),n=Z.value,r=$((e.clientX-t.left)/n/Ph),i=$((e.clientY-t.top)/n/Ph);Qn(e.clientX,e.clientY,{xMm:r,yMm:i})}function tr(e,t){V.value=null,B.value=t.id,Qn(e.clientX,e.clientY,{xMm:t.xMm,yMm:t.yMm},`region`,t.id)}function nr(e){V.value=e,e&&(z.value=[],B.value=null)}function rr(e,t){nr(t.id),Qn(e.clientX,e.clientY,t.axis===`horizontal`?{xMm:0,yMm:t.offsetMm}:{xMm:t.offsetMm,yMm:0},`guide`,null,t.id)}function ir(e){e===`delete`&&dt.value&&ji(dt.value.id),Xn()}function ar(){let e=H.value;if(!e||!I.value)return null;let t=(e.scrollLeft-Rt.value)/Z.value,n=(e.scrollTop-zt.value)/Z.value,r=kt.value/Z.value,i=At.value/Z.value,a=Math.min(Math.max(t+r/2,0),wt.value),o=Math.min(Math.max(n+i/2,0),Tt.value);return{xMm:$(a/Ph),yMm:$(o/Ph)}}function or(e,t){if(!I.value)return;let n=Gn(),r=URL.createObjectURL(e);Ie.set(n,{file:e,objectUrl:r,origName:e.name||`粘贴图片`}),mi(r,t??ar()??void 0,{clipboardSource:`clipboard`,clipboardUploadState:`pending`,clipboardUploadKey:n,clipboardOrigName:e.name||`粘贴图片`}),Q.success(`已粘贴图片,保存模板时才上传`)}function sr(e){e===`paste`&&ot.value?In(Pe.value.anchorMm??void 0):e===`paste_region`&&st.value?Wn(Pe.value.anchorMm??void 0):e===`delete`&&z.value.length?Xr([...z.value]):e===`zoom_in`?dr(Z.value+.1,{clientX:Pe.value.clientX,clientY:Pe.value.clientY}):e===`zoom_out`?dr(Z.value-.1,{clientX:Pe.value.clientX,clientY:Pe.value.clientY}):e===`fit`&&fr(),Xn()}function cr(e,t){if(!I.value)return;let n=En(t);if(!n.length){Q.info(`当前分块内没有可翻转的内容`);return}ta();let r={minX:t.xMm,minY:t.yMm,maxR:$(t.xMm+t.wMm),maxB:$(t.yMm+t.hMm)};for(let t of n){let n=Cn(t,r,e);t.xMm=n.xMm,t.yMm=n.yMm,t.flipX=n.flipX,t.flipY=n.flipY}z.value=n.map(e=>e.id),B.value=t.id,Q.success(e===`x`?`已左右翻转当前分块内容`:`已上下翻转当前分块内容`)}function lr(e){if(!ut.value){Xn();return}B.value=ut.value.id,e===`copy_region`?kn():e===`copy_region_contents`?Nn():e===`copy_region_selection`?Pn():e===`paste_region`?Wn({xMm:ut.value.xMm+4,yMm:ut.value.yMm+4}):e===`paste_elements`?In(void 0,{targetRegion:ut.value}):e===`paste_elements_flip_x`?In(void 0,{targetRegion:ut.value,flipAxis:`x`}):e===`paste_elements_flip_y`?In(void 0,{targetRegion:ut.value,flipAxis:`y`}):e===`flip_contents_x`?cr(`x`,ut.value):e===`flip_contents_y`?cr(`y`,ut.value):e===`delete_region`&&bi(ut.value.id),Xn()}function ur(e){return Math.max(.06,Math.min(3,Math.round(e*100)/100))}async function dr(e,n){let r=H.value,i=me.value;if(!r||!i){Ae.value=ur(e);return}let a=Z.value,o=ur(e);if(Math.abs(o-a)<.001)return;let s=r.getBoundingClientRect(),c=n?n.clientX-s.left:r.clientWidth/2,l=n?n.clientY-s.top:r.clientHeight/2,u=Rt.value,d=zt.value,f=(r.scrollLeft+c-u)/a,p=(r.scrollTop+l-d)/a;Ae.value=o,await(0,t.nextTick)();let m=me.value,h=H.value;if(!m||!h)return;let g=Rt.value,_=zt.value;h.scrollLeft=Math.max(0,g+f*o-c),h.scrollTop=Math.max(0,_+p*o-l)}function fr(){Ae.value=null,(0,t.nextTick)(()=>Ba(!0))}function pr(e){let t=Z.value;dr(t+e*.1)}function hr(e){if(!I.value||wt.value<=0)return;let t=e.deltaY>0?-.1:.1;dr(Z.value+t,{clientX:e.clientX,clientY:e.clientY})}function gr(e){let t=[];return e.rotation&&t.push(`rotate(${e.rotation}deg)`),e.flipX&&t.push(`scaleX(-1)`),e.flipY&&t.push(`scaleY(-1)`),t.join(` `)}function _r(e){return Bu(e.text,Ct.value)}function vr(e){let t=Ph,n=gr(e);return{position:`absolute`,left:`${e.xMm*t}px`,top:`${e.yMm*t}px`,width:`${e.wMm*t}px`,height:`${e.hMm*t}px`,zIndex:e.zIndex??1,...n?{transform:n}:{},transformOrigin:`center center`}}function yr(e){let t=Ph,n=e.offsetMm*t;return e.axis===`horizontal`?{top:`${n}px`,left:`0`,width:`${wt.value}px`,height:`0`}:{left:`${n}px`,top:`0`,width:`0`,height:`${Tt.value}px`}}function br(e){let t=Ph,n=e.offsetMm*t;return e.axis===`horizontal`?{left:`6px`,top:`${n}px`}:{top:`6px`,left:`${n}px`}}function xr(e){let t;switch(e.align){case`center`:t={justifyContent:`center`,alignItems:`center`,textAlign:`center`};break;case`top-center`:t={justifyContent:`center`,alignItems:`flex-start`,textAlign:`center`};break;case`bottom-center`:t={justifyContent:`center`,alignItems:`flex-end`,textAlign:`center`};break;case`middle-left`:t={justifyContent:`flex-start`,alignItems:`center`,textAlign:`left`};break;case`middle-right`:t={justifyContent:`flex-end`,alignItems:`center`,textAlign:`right`};break;case`top-right`:t={justifyContent:`flex-end`,alignItems:`flex-start`,textAlign:`right`};break;case`bottom-left`:t={justifyContent:`flex-start`,alignItems:`flex-end`,textAlign:`left`};break;case`bottom-right`:t={justifyContent:`flex-end`,alignItems:`flex-end`,textAlign:`right`};break;default:t={justifyContent:`flex-start`,alignItems:`flex-start`,textAlign:`left`}}let n=e.textDirection===`vertical`;return{width:`100%`,height:`100%`,display:`flex`,...t,fontFamily:e.fontFamily,fontSize:`${e.fontSize}pt`,color:e.color,lineHeight:1.25,whiteSpace:`pre-wrap`,wordBreak:`break-word`,overflow:`hidden`,writingMode:n?`vertical-rl`:`horizontal-tb`,textOrientation:n?`upright`:`mixed`}}function Sr(e){return{width:`100%`,height:`100%`,display:`block`,opacity:String(e.opacity??1)}}function Cr(e){return e.showStroke===!1?`none`:e.strokeColor||`#409eff`}function wr(e){return e.background||`transparent`}function Tr(e){return Math.max(0,Number(e.strokeWidthMm??.6))*3.2}function Er(e){return e===`circle`||e===`triangle`||e===`polygon`||e===`trapezoid`}function Or(e){let t=Math.max(.01,Number(e.hMm)||.01);return Math.max(.01,Number(e.wMm)||.01)/t}function Ar(e,t,n){let r=Math.max(1,Number(n)||1);if(!e.lockAspectRatio){t===`width`?e.wMm=$(r):e.hMm=$(r);return}let i=Or(e);t===`width`?(e.wMm=$(r),e.hMm=$(Math.max(1,r/i))):(e.hMm=$(r),e.wMm=$(Math.max(1,r*i)))}function jr(e){let t=Ze.value;t&&Ar(t,`width`,e)}function Nr(e){let t=Ze.value;t&&Ar(t,`height`,e)}function Pr(e){let t=Math.max(3,Math.min(12,Math.round(Number(e.polygonSides??5)))),n=[];for(let e=0;e<t;e++){let r=-Math.PI/2+Math.PI*2*e/t;n.push(`${50+Math.cos(r)*44},${50+Math.sin(r)*44}`)}return n.join(` `)}function Fr(){return`18,6 82,6 96,94 4,94`}function Ir(e){return{left:`${e.xMm*Ph}px`,top:`${e.yMm*Ph}px`,width:`${e.wMm*Ph}px`,height:`${e.hMm*Ph}px`,backgroundColor:e.background||`rgba(64, 158, 255, 0.06)`,backgroundImage:e.backgroundImage?`url(${dn(e.backgroundImage)})`:void 0,backgroundSize:e.backgroundImage?`cover`:void 0,backgroundPosition:e.backgroundImage?`center`:void 0,backgroundRepeat:e.backgroundImage?`no-repeat`:void 0}}function Lr(){return`el_${Date.now()}_${Math.random().toString(36).slice(2,8)}`}function Rr(){return`grp_${Date.now()}_${Math.random().toString(36).slice(2,8)}`}function zr(){return`region_${Date.now()}_${Math.random().toString(36).slice(2,8)}`}function Br(e,t,n){let r={id:Lr(),type:`text`,fontFamily:`Microsoft YaHei,sans-serif`},i=[{xMm:6,yMm:8,wMm:t-12,hMm:10,align:`top-center`,text:`{{competition_name}}`,fontSize:11,color:`#606266`},{xMm:6,yMm:n*.34,wMm:t-12,hMm:20,align:`center`,text:`{{student_name}}`,fontSize:22,color:`#303133`},{xMm:6,yMm:n*.56,wMm:t-12,hMm:10,align:`top-left`,text:`编号 {{competition_no}}`,fontSize:12,color:`#409eff`},{xMm:6,yMm:n*.68,wMm:(t-18)/2,hMm:9,align:`top-left`,text:`{{school_name}}`,fontSize:10,color:`#606266`},{xMm:6+(t-18)/2+6,yMm:n*.68,wMm:(t-18)/2,hMm:9,align:`top-right`,text:`{{age_group}}`,fontSize:10,color:`#606266`},{xMm:6,yMm:n*.78,wMm:t-12,hMm:12,align:`top-left`,text:`{{competition_room}} {{seat_no}}号`,fontSize:11,color:`#303133`}];if(e<i.length)return{...r,zIndex:1,...i[e]};let a=(t-12-5)/2,o=e-i.length,s=Math.floor(o/2),c=o%2,l=Math.min(n*.88+s*15,n-6-11);return{...r,zIndex:1,xMm:6+c*(a+5),yMm:l,wMm:a,hMm:11,align:`top-left`,text:`{{session}}`,fontSize:10,color:`#909399`}}function Vr(e){if(e.type===`text`){let t=e.text.replace(/\s+/g,` `).trim();return`${(t.length>16?`${t.slice(0,16)}…`:t)||`文字`}${e.groupId?` [组]`:``}`}return e.type===`shape`?`${e.shape===`rect`?`矩形`:e.shape===`circle`?`圆形`:e.shape===`triangle`?`三角形`:e.shape===`polygon`?`${Math.max(3,Math.round(Number(e.polygonSides??5)))}边形`:e.shape===`trapezoid`?`梯形`:`线条`}${e.groupId?` [组]`:``}`:`图片${e.groupId?` [组]`:``}`}function Hr(e,t){if(!I.value)return;let n=[...I.value.elements].sort((e,t)=>(e.zIndex??0)-(t.zIndex??0)),r=n.findIndex(t=>t.id===e.id),i=t===1?r+1:r-1;if(i<0||i>=n.length)return;let a=n[r],o=n[i],s=a.zIndex??1;a.zIndex=o.zIndex??1,o.zIndex=s}function Ur(){I.value?.elements?.length&&[...I.value.elements].sort((e,t)=>(e.zIndex??0)-(t.zIndex??0)).forEach((e,t)=>{e.zIndex=t+1})}function Wr(e){I.value&&(e.zIndex=I.value.elements.reduce((e,t)=>Math.max(e,t.zIndex??0),0)+1)}function Gr(e){if(!I.value)return;let t=I.value.elements.reduce((e,t)=>Math.min(e,t.zIndex??0),1/0);e.zIndex=(Number.isFinite(t)?t:1)-1,Ur()}function Kr(e,t){switch(ta(),e){case`forward`:Hr(t,1);break;case`backward`:Hr(t,-1);break;case`front`:Wr(t);break;case`back`:Gr(t)}}function qr(e){z.value=[e.id],g.value=e.id,m.value=e.link?.href||``,h.value=e.link?.target||`_blank`,p.value=!0}function Jr(){if(!I.value||!g.value)return;let e=I.value.elements.find(e=>e.id===g.value);if(!e)return;let t=m.value.trim();t?e.link={href:t,target:h.value||`_blank`}:delete e.link,p.value=!1,Q.success(t?`已设置链接`:`已清除链接`)}function Yr(e,t){if(Xn(),e===`copy`){wn(z.value.includes(t.id)?[...z.value]:Ci(t));return}if(e===`paste`){In({xMm:t.xMm+2,yMm:t.yMm+2});return}if(e===`set-link`){qr(t);return}if(e===`clear-link`){z.value=[t.id],t.link&&delete t.link,Q.success(`已清除链接`);return}e===`delete`&&Xr(z.value.includes(t.id)?[...z.value]:Ci(t))}async function Xr(e){if(!I.value||!e.length)return;let t=new Set(e),n=new Map;for(let r of e){let e=I.value.elements.find(e=>e.id===r);!qn(e)||e.clipboardUploadState!==`uploaded`||!e.clipboardImageId||I.value.elements.some(n=>!t.has(n.id)&&qn(n)&&n.clipboardImageId===e.clipboardImageId)||n.set(e.clipboardImageId,e.clipboardOrigName||`图片${e.clipboardImageId}`)}let r=!1;if(n.size){let e=await new Promise(e=>{_.value=n.size,v=e,f.value=!0});if(e===null)return;r=e}ta();let i=new Set(e);if(I.value.elements=I.value.elements.filter(e=>!i.has(e.id)),z.value=z.value.filter(e=>!i.has(e)),r){let e=(await Promise.allSettled(Array.from(n.keys()).map(e=>Mn(e)))).filter(e=>e.status===`rejected`).length;e?Q.warning(`已删除画布元素,但有 ${e} 张服务器图片删除失败`):Q.success(`已删除画布元素和服务器图片`)}}function Zr(e){if(e.button!==0||!pe.value||!I.value)return;e.preventDefault(),V.value=null,ge=e.shiftKey;let t=pe.value.getBoundingClientRect(),n=Z.value,r=(e.clientX-t.left)/n,i=(e.clientY-t.top)/n;he.value={x0:r,y0:i,x1:r,y1:i},window.addEventListener(`pointermove`,Qr),window.addEventListener(`pointerup`,$r,{once:!0})}function Qr(e){if(!he.value||!pe.value)return;let t=pe.value.getBoundingClientRect(),n=Z.value;he.value.x1=(e.clientX-t.left)/n,he.value.y1=(e.clientY-t.top)/n}function $r(e){window.removeEventListener(`pointermove`,Qr);let t=he.value;if(he.value=null,!t||!I.value||!pe.value||Math.abs(t.x1-t.x0)<4&&Math.abs(t.y1-t.y0)<4)return;let n=Ph,r=Math.min(t.x0,t.x1)/n,i=Math.min(t.y0,t.y1)/n,a=Math.max(t.x0,t.x1)/n,o=Math.max(t.y0,t.y1)/n,s=[];for(let e of I.value.elements){let t=e.xMm+e.wMm,n=e.yMm+e.hMm;t>r&&e.xMm<a&&n>i&&e.yMm<o&&s.push(e.id)}let c=e.shiftKey||ge;ge=!1,c?z.value=Array.from(new Set([...z.value,...s])):z.value=s}let ei=null;function ti(e){e.button!==0&&e.button!==1||!H.value||(e.preventDefault(),Xn(),De.value=!0,ei={startX:e.clientX,startY:e.clientY,startScrollLeft:H.value.scrollLeft,startScrollTop:H.value.scrollTop},(e.currentTarget||H.value).setPointerCapture?.(e.pointerId),window.addEventListener(`pointermove`,ni),window.addEventListener(`pointerup`,ri,{once:!0}))}function ni(e){if(!ei||!H.value)return;let t=H.value,n=ei.startScrollLeft-(e.clientX-ei.startX),r=ei.startScrollTop-(e.clientY-ei.startY),i=Math.max(0,t.scrollWidth-t.clientWidth),a=Math.max(0,t.scrollHeight-t.clientHeight);t.scrollLeft=Math.min(i,Math.max(0,n)),t.scrollTop=Math.min(a,Math.max(0,r))}function ri(){ei=null,De.value=!1,window.removeEventListener(`pointermove`,ni)}function ai(){ke.value=!0}function oi(){ke.value=!1,De.value||(Oe.value=!1)}function si(e){ke.value=!0,H.value?.focus(),e.button===1&&ti(e)}function ci(e){if(V.value=null,B.value=null,e.button===1||Oe.value){ti(e);return}Zr(e)}function li(e){if(e.button===0||e.button===1||Oe.value){V.value=null,B.value=null,e.button===0&&!e.shiftKey&&(z.value=[]),ti(e);return}}function ui(){if(!I.value)return;ta();let e=I.value.canvas.widthMm,t=I.value.canvas.heightMm,n=I.value.elements.filter(e=>e.type===`text`).length,r=Br(n,e,t);J.value&&(r.xMm=$(J.value.xMm+4),r.yMm=$(J.value.yMm+4),r.wMm=$(Math.max(10,J.value.wMm-8)),r.regionId=J.value.id),r.zIndex=(I.value.elements?.length??0)+1,I.value.elements.push(r),z.value=[r.id]}function di(e){if(!I.value)return;ta();let t=J.value,n=e===`line`?36:24,r=e===`line`?4:18,i=$(t?t.xMm+Math.max(2,(t.wMm-n)/2):Math.max(4,L.value*.2)),a=$(t?t.yMm+Math.max(2,(t.hMm-r)/2):Math.max(4,R.value*.2)),o={id:Lr(),type:`shape`,shape:e,zIndex:(I.value.elements?.length??0)+1,xMm:i,yMm:a,wMm:n,hMm:r,background:e===`line`?`transparent`:`rgba(64, 158, 255, 0.18)`,lockAspectRatio:Er(e),showStroke:!0,strokeColor:`#409eff`,strokeWidthMm:.6,opacity:1,polygonSides:e===`polygon`?5:void 0,regionId:t?.id};I.value.elements.push(o),z.value=[o.id]}let fi=null,pi=0;function mi(e,t,n){if(!I.value||!e)return;ta();let r=I.value.canvas.widthMm,i=I.value.canvas.heightMm,a=I.value.elements.filter(e=>e.type===`image`||e.type===`seal`).length,o=8+a%2*34,s=Math.max(8,i-28-Math.floor(a/2)*16),c=t?Math.min(Math.max($(t.xMm-16),0),Math.max(0,r-32)):J.value?Math.min(Math.max($(J.value.xMm+(J.value.wMm-32)/2),0),Math.max(0,r-32)):o,l=t?Math.min(Math.max($(t.yMm-10),0),Math.max(0,i-20)):J.value?Math.min(Math.max($(J.value.yMm+(J.value.hMm-20)/2),0),Math.max(0,i-20)):s,u={id:Lr(),type:`image`,zIndex:(I.value.elements?.length??0)+1,xMm:c,yMm:l,wMm:32,hMm:20,src:e,regionId:J.value?.id,...n};I.value.elements.push(u),z.value=[u.id],pi+=1,fi&&clearTimeout(fi),fi=setTimeout(()=>{fi=null;let e=pi;pi=0,Q.success(e>1?`已插入 ${e} 张图片`:`已插入图片`)},350)}function hi(e){e.canvas||={widthMm:L.value,heightMm:R.value,background:`#ffffff`},e.canvas.showBorder??(e.canvas.showBorder=!0),e.canvas.borderColor||(e.canvas.borderColor=`#334155`);let t=Number(e.canvas.borderWidthMm);e.canvas.borderWidthMm=Number.isFinite(t)&&t>0?Math.min(8,t):.35,e.guides||=[],e.guides=e.guides.filter(e=>e&&(e.axis===`horizontal`||e.axis===`vertical`)).map((e,t)=>({id:e.id||`guide_${t+1}`,axis:e.axis,offsetMm:Math.max(0,Number(e.offsetMm)||0)})),e.regions||=[],e.regions=e.regions.filter(e=>e&&Number(e.wMm)>0&&Number(e.hMm)>0).map((e,t)=>({id:e.id||`region_${t+1}`,name:String(e.name||`画布${t+1}`),xMm:Math.max(0,Number(e.xMm)||0),yMm:Math.max(0,Number(e.yMm)||0),wMm:Math.max(1,Number(e.wMm)||1),hMm:Math.max(1,Number(e.hMm)||1),background:String(e.background||``),backgroundImage:String(e.backgroundImage||``)})),e.elements=(e.elements||[]).map(e=>{let t={...e,id:String(e?.id||Lr()),zIndex:Number(e?.zIndex)||1,xMm:Number(e?.xMm)||0,yMm:Number(e?.yMm)||0,wMm:Math.max(1,Number(e?.wMm)||1),hMm:Math.max(1,Number(e?.hMm)||1)};return t.type===`shape`&&(t.shape=[`rect`,`circle`,`triangle`,`line`,`polygon`,`trapezoid`].includes(t.shape)?t.shape:`rect`,t.background||=`rgba(64, 158, 255, 0.2)`,t.lockAspectRatio=t.lockAspectRatio==null?Er(t.shape):!!t.lockAspectRatio,t.showStroke=t.showStroke!==!1,t.strokeColor||=`#409eff`,t.strokeWidthMm=Math.max(0,Number(t.strokeWidthMm??.6)),t.opacity=Math.max(0,Math.min(1,Number(t.opacity??1))),t.polygonSides=Math.max(3,Math.min(12,Math.round(Number(t.polygonSides??5))))),t})}function gi(e,t,n,r,i,a){return{id:zr(),name:e||`画布${a+1}`,xMm:$(t),yMm:$(n),wMm:$(r),hMm:$(i),background:``,backgroundImage:``}}function _i(e){if(!I.value)return;let t=Math.max(1,Math.round(ze.value||1)),n=Math.max(1,Math.round(Re.value||1)),r=L.value,i=R.value,a=[];if(e===`horizontal`){let e=r/n;for(let t=0;t<n;t++)a.push(gi(`画布${t+1}`,t*e,0,e,i,t))}else if(e===`vertical`){let e=i/t;for(let n=0;n<t;n++)a.push(gi(`画布${n+1}`,0,n*e,r,e,n))}else{let e=r/n,o=i/t;for(let r=0;r<t;r++)for(let t=0;t<n;t++){let i=r*n+t;a.push(gi(`画布${i+1}`,t*e,r*o,e,o,i))}}ta(),I.value.regions=a,B.value=a[0]?.id||null}function vi(){I.value?.regions?.length&&(ta(),I.value.regions=[],B.value=null)}function bi(e){if(I.value?.regions?.length){ta(),I.value.regions=I.value.regions.filter(t=>t.id!==e);for(let t of I.value.elements)t.regionId===e&&delete t.regionId;B.value===e&&(B.value=I.value.regions[0]?.id||null)}}function xi(e,t){if(e.button!==0||(e.preventDefault(),V.value=null,B.value=t.id,e.shiftKey||(z.value=[]),!I.value))return;let n=En(t);ta(),Ni={regions:[t],els:n,startX:e.clientX,startY:e.clientY,regionOrigins:[{id:t.id,x:t.xMm,y:t.yMm}],origins:n.map(e=>({id:e.id,x:e.xMm,y:e.yMm}))},e.currentTarget?.setPointerCapture?.(e.pointerId),window.addEventListener(`pointermove`,Ii),window.addEventListener(`pointerup`,Li,{once:!0})}function Ci(e){return!I.value||!e.groupId?[e.id]:I.value.elements.filter(t=>t.groupId===e.groupId).map(e=>e.id)}function wi(e){B.value=null,z.value=Ci(e)}function Ti(){if(!I.value||z.value.length<2){Q.info(`至少选中两个元素才能组合`);return}ta();let e=Rr();for(let t of ha())t.groupId=e;Q.success(`已组合选中元素`)}function Ei(){let e=ha();if(!(!I.value||!e.length)){ta();for(let t of e)delete t.groupId;Q.success(`已打散组合`)}}function Di(e){let t=ha();if(t.length<2){Q.info(`至少选中两个元素才能整体翻转`);return}ta();let n=Math.min(...t.map(e=>e.xMm)),r=Math.max(...t.map(e=>e.xMm+e.wMm)),i=Math.min(...t.map(e=>e.yMm)),a=Math.max(...t.map(e=>e.yMm+e.hMm));for(let o of t)e===`x`?(o.xMm=$(n+r-(o.xMm+o.wMm)),o.flipX=!o.flipX):(o.yMm=$(i+a-(o.yMm+o.hMm)),o.flipY=!o.flipY);Q.success(e===`x`?`已左右翻转选中元素`:`已上下翻转选中元素`)}function Oi(){if(!(!J.value||!I.value||!z.value.length)){ta();for(let e of ha())e.regionId=J.value.id;Q.success(`已归入 ${J.value.name}`)}}function Ai(e){if(!I.value)return;ta();let t=Number(e===`horizontal`?(R.value/2).toFixed(2):(L.value/2).toFixed(2));I.value.guides||=[],I.value.guides.push({id:Lr(),axis:e,offsetMm:t})}function ji(e){I.value?.guides?.length&&(ta(),I.value.guides=I.value.guides.filter(t=>t.id!==e),V.value===e&&(V.value=null))}function Mi(){I.value?.guides?.length&&(ta(),I.value.guides=[],V.value=null)}let Ni=null,Pi=null;function Fi(e,t){V.value=null,B.value=null;let n=Ci(t);if(e.shiftKey){n.every(e=>z.value.includes(e))?z.value=z.value.filter(e=>!n.includes(e)):z.value=Array.from(new Set([...z.value,...n]));return}if(n.every(e=>z.value.includes(e))||(z.value=[...n]),!I.value)return;let r=I.value.elements.filter(e=>z.value.includes(e.id));r.length&&(ta(),Ni={regions:[],els:r,startX:e.clientX,startY:e.clientY,regionOrigins:[],origins:r.map(e=>({id:e.id,x:e.xMm,y:e.yMm}))},e.target.setPointerCapture?.(e.pointerId),window.addEventListener(`pointermove`,Ii),window.addEventListener(`pointerup`,Li,{once:!0}))}function Ii(e){if(!Ni||!I.value)return;let t=e.clientX-Ni.startX,n=e.clientY-Ni.startY,r=Z.value,i=Ph;for(let e of Ni.regions){let a=Ni.regionOrigins.find(t=>t.id===e.id);a&&(e.xMm=Math.round((a.x+t/r/i)*100)/100,e.yMm=Math.round((a.y+n/r/i)*100)/100)}for(let e of Ni.els){let a=Ni.origins.find(t=>t.id===e.id);a&&(e.xMm=Math.round((a.x+t/r/i)*100)/100,e.yMm=Math.round((a.y+n/r/i)*100)/100)}}function Li(){Ni=null,window.removeEventListener(`pointermove`,Ii)}function Ri(e,t){e.preventDefault(),nr(t.id),ta(),Pi={guide:t,startClient:t.axis===`horizontal`?e.clientY:e.clientX,startOffsetMm:t.offsetMm},e.currentTarget.setPointerCapture?.(e.pointerId),window.addEventListener(`pointermove`,zi),window.addEventListener(`pointerup`,Bi,{once:!0})}function zi(e){if(!Pi||!I.value)return;let t=(Pi.guide.axis===`horizontal`?e.clientY:e.clientX)-Pi.startClient,n=Z.value,r=Ph,i=Pi.guide.axis===`horizontal`?R.value:L.value,a=Pi.startOffsetMm+t/n/r;Pi.guide.offsetMm=Math.max(0,Math.min(i,Math.round(a*100)/100))}function Bi(){Pi=null,window.removeEventListener(`pointermove`,zi)}let Hi=null;function Ui(e,t){e.preventDefault(),z.value=[t.id],ta(),Hi={el:t,startX:e.clientX,startY:e.clientY,startWMm:t.wMm,startHMm:t.hMm,aspectRatio:Math.max(.01,Number(t.wMm)||.01)/Math.max(.01,Number(t.hMm)||.01),lockAspectRatio:t.type===`shape`&&!!t.lockAspectRatio},e.currentTarget.setPointerCapture?.(e.pointerId),window.addEventListener(`pointermove`,Wi),window.addEventListener(`pointerup`,Gi,{once:!0})}function Wi(e){if(!Hi)return;let t=e.clientX-Hi.startX,n=e.clientY-Hi.startY,r=Z.value,i=Ph,a=Math.max(1,Math.round((Hi.startWMm+t/r/i)*100)/100),o=Math.max(1,Math.round((Hi.startHMm+n/r/i)*100)/100);if(Hi.lockAspectRatio||e.shiftKey){let e=Math.max(.01,Hi.aspectRatio||1);Math.abs(t)>=Math.abs(n)?(Hi.el.wMm=a,Hi.el.hMm=Math.max(1,Math.round(a/e*100)/100)):(Hi.el.hMm=o,Hi.el.wMm=Math.max(1,Math.round(o*e*100)/100));return}Hi.el.wMm=a,Hi.el.hMm=o}function Gi(){Hi=null,window.removeEventListener(`pointermove`,Wi)}let Ki=(0,t.ref)([]),Ji=(0,t.ref)([]),Yi=!1;function Xi(e){return JSON.parse(JSON.stringify(e))}function Zi(){Ki.value=[],Ji.value=[]}let Qi=(0,t.computed)(()=>Ki.value.length>0&&!!I.value),$i=(0,t.computed)(()=>Ji.value.length>0&&!!I.value);function ea(){Ni=null,Hi=null,Pi=null,ei=null,De.value=!1,window.removeEventListener(`pointermove`,Ii),window.removeEventListener(`pointerup`,Li),window.removeEventListener(`pointermove`,zi),window.removeEventListener(`pointerup`,Bi),window.removeEventListener(`pointermove`,Wi),window.removeEventListener(`pointerup`,Gi),window.removeEventListener(`pointermove`,ni),window.removeEventListener(`pointerup`,ri)}function ta(){Yi||!I.value||(Ki.value.push(Xi(I.value)),Ki.value.length>zh&&Ki.value.shift(),Ji.value=[])}function na(e){Yi=!0;try{ea(),I.value=Xi(e);let t=new Set((I.value.elements??[]).map(e=>e.id));z.value=z.value.filter(e=>t.has(e));let n=new Set((I.value.regions??[]).map(e=>e.id));(!B.value||!n.has(B.value))&&(B.value=null);let r=new Set((I.value.guides??[]).map(e=>e.id));(!V.value||!r.has(V.value))&&(V.value=null)}finally{(0,t.nextTick)(()=>{Yi=!1})}}function ra(){if(!I.value||Ki.value.length===0||Yi)return;Ji.value.unshift(Xi(I.value));let e=Ki.value.pop();e&&na(e)}function aa(){if(!I.value||Ji.value.length===0||Yi)return;Ki.value.push(Xi(I.value));let e=Ji.value.shift();e&&na(e)}function oa(){ta(),tn()}function sa(){let e=document.activeElement;if(!e)return!1;let t=e.tagName;return!!(t===`INPUT`||t===`TEXTAREA`||t===`SELECT`||e instanceof HTMLElement&&e.isContentEditable)}function ca(e){return!e||!(e instanceof HTMLElement)?!1:!!e.closest(`.fou-input, .fou-input-number, input, textarea, select, [contenteditable="true"]`)}function ua(e){if(ca(e.target)||sa())return;if(e.code===`Space`){let t=H.value,n=document.activeElement;if(!(t&&(ke.value||t===n||n&&t.contains(n)||Pe.value.visible)))return;e.preventDefault(),e.stopPropagation(),Oe.value=!0;return}let t=e.ctrlKey||e.metaKey,n=e.key.toLowerCase();if(e.key===`Escape`&&Xn(),t&&n===`c`){e.preventDefault(),e.stopPropagation(),J.value&&z.value.length?Pn():J.value?Nn():z.value.length?Fn():Q.info(`请先选中元素或分块`);return}if(t&&n===`z`&&!e.shiftKey){e.preventDefault(),e.stopPropagation(),ra();return}if(t&&(n===`y`||n===`z`&&e.shiftKey)){e.preventDefault(),e.stopPropagation(),aa();return}if(e.key===`Delete`||e.key===`Backspace`){if(V.value){e.preventDefault(),e.stopPropagation(),ji(V.value),Xn();return}if(!z.value.length)return;e.preventDefault(),e.stopPropagation(),Xr([...z.value]);return}if(![`ArrowUp`,`ArrowDown`,`ArrowLeft`,`ArrowRight`].includes(e.key)||!z.value.length||!I.value)return;e.preventDefault(),e.stopPropagation(),ta();let r=Ph,i=e.key===`ArrowLeft`?-1:+(e.key===`ArrowRight`),a=e.key===`ArrowUp`?-1:+(e.key===`ArrowDown`);for(let e of z.value){let t=I.value.elements.find(t=>t.id===e);t&&(t.xMm=Math.round((t.xMm+i/r)*100)/100,t.yMm=Math.round((t.yMm+a/r)*100)/100)}}function da(e){e.code===`Space`&&(Oe.value=!1)}function fa(){Oe.value=!1,ke.value=!1}async function pa(e){if(!I.value||Fe.value||ca(e.target)||sa())return;let t=H.value,n=document.activeElement,r=e.target;if(!(t&&(t===n||n&&t.contains(n)||r&&t.contains(r)||Pe.value.visible)))return;let i=Array.from(e.clipboardData?.items??[]).find(e=>e.kind===`file`&&e.type.startsWith(`image/`));if(i){let t=i.getAsFile();if(!t)return;e.preventDefault(),e.stopPropagation(),Xn(),or(t,Pe.value.anchorMm??ar());return}if(!ct.value)return;e.preventDefault(),e.stopPropagation();let a=Pe.value.target===`region`?ut.value:J.value;Ne.value===`regions`&&st.value?Wn(Pe.value.anchorMm??void 0):ot.value?In(a?void 0:Pe.value.anchorMm??void 0,a?{targetRegion:a}:void 0):st.value&&Wn(Pe.value.anchorMm??void 0),Xn()}async function ma(){if(!I.value)return{uploadedIds:[],cleanupKeys:[]};let e=new Map;for(let t of I.value.elements){if(!qn(t)||t.clipboardUploadState!==`pending`||!t.clipboardUploadKey)continue;let n=e.get(t.clipboardUploadKey)||[];n.push(t),e.set(t.clipboardUploadKey,n)}let t=new Map,n=[],r=[];try{for(let[i,a]of e.entries()){let e=Ie.get(i);if(!e)throw Error(`存在未上传的粘贴图片,请重新粘贴后再保存`);let o=await jn(e.file),s=Number(o?.data?.id??0),c=String(o?.data?.url??``).trim();if(!s||!c)throw Error(`图片「${e.origName||`未命名`}」上传失败`);let l=Rn(c);n.push(s),r.push(i);for(let n of a)t.set(n.id,{src:n.src,clipboardUploadState:n.clipboardUploadState,clipboardImageId:n.clipboardImageId}),n.src=l,n.clipboardUploadState=`uploaded`,n.clipboardImageId=s,n.clipboardOrigName=e.origName||n.clipboardOrigName}return{uploadedIds:n,cleanupKeys:r}}catch(e){for(let e of I.value.elements){let n=t.get(e.id);!n||!qn(e)||(e.src=n.src,e.clipboardUploadState=n.clipboardUploadState,e.clipboardImageId=n.clipboardImageId)}throw e}}function $(e){return Math.round(e*100)/100}function ha(){let e=I.value;return e?.elements?.length?z.value.map(t=>e.elements.find(e=>e.id===t)).filter(e=>e!=null):[]}function ga(){let e=I.value;if(!e?.elements?.length)return[];let t=[];for(let n of z.value){let r=e.elements.find(e=>e.id===n);r?.type===`text`&&t.push(r)}return t}let _a=(0,t.computed)(()=>ga().length),ya=(0,t.computed)(()=>{let e=ga();if(!e.length)return;let t=e[0].fontSize;return e.every(e=>e.fontSize===t)?t:void 0}),ba=(0,t.computed)(()=>ga()[0]?.color||`#303133`),xa=(0,t.ref)(void 0),Sa=(0,t.ref)(`#303133`);(0,t.watch)(ya,e=>{xa.value=e},{immediate:!0}),(0,t.watch)(ba,e=>{Sa.value=e||`#303133`},{immediate:!0});function Ca(e){if(e==null||!Number.isFinite(e)||!I.value)return;let t=ga();if(t.length){ta();for(let n of t)n.fontSize=e}}function wa(){Ca(xa.value)}function Ta(e){xa.value=e,Ca(e)}function Ea(e){if(e==null||e===``||!I.value)return;let t=ga();if(t.length){ta();for(let n of t)n.color=e}}function Da(){Ea((Sa.value||``).trim())}function Oa(e){e!=null&&(Sa.value=e),Ea(e)}function ka(e){if(!I.value?.canvas)return;let t=z.value;if(!t.length){Q.info(`请先选中元素`);return}ta();let n=I.value.canvas.widthMm,r=I.value.canvas.heightMm;for(let i of t){let t=I.value.elements.find(e=>e.id===i);if(t)switch(e){case`left`:t.xMm=0;break;case`right`:t.xMm=Math.max(0,n-t.wMm);break;case`h-center`:t.xMm=Math.max(0,(n-t.wMm)/2);break;case`top`:t.yMm=0;break;case`bottom`:t.yMm=Math.max(0,r-t.hMm);break;case`v-center`:t.yMm=Math.max(0,(r-t.hMm)/2)}}}function Aa(e){let t=ha();if(!t.length){Q.info(`请先选中元素`);return}if(t.length===1)return;ta();let n=Math.min(...t.map(e=>e.xMm)),r=Math.max(...t.map(e=>e.xMm+e.wMm)),i=Math.min(...t.map(e=>e.yMm)),a=Math.max(...t.map(e=>e.yMm+e.hMm)),o=(n+r)/2,s=(i+a)/2;for(let c of t)switch(e){case`sel-left`:c.xMm=$(n);break;case`sel-right`:c.xMm=$(r-c.wMm);break;case`sel-top`:c.yMm=$(i);break;case`sel-bottom`:c.yMm=$(a-c.hMm);break;case`sel-h-center`:c.xMm=$(o-c.wMm/2);break;case`sel-v-center`:c.yMm=$(s-c.hMm/2)}}function ja(e){let t=ha();if(t.length<2){Q.info(`分布需要至少选中两个元素`);return}if(ta(),e===`h`){let e=[...t].sort((e,t)=>e.xMm-t.xMm||e.id.localeCompare(t.id)),n=e[0].xMm,r=e[e.length-1],i=r.xMm+r.wMm,a=e.reduce((e,t)=>e+t.wMm,0),o=(i-n-a)/(e.length-1),s=n;for(let t of e)t.xMm=$(s),s+=t.wMm+o}else{let e=[...t].sort((e,t)=>e.yMm-t.yMm||e.id.localeCompare(t.id)),n=e[0].yMm,r=e[e.length-1],i=r.yMm+r.hMm,a=e.reduce((e,t)=>e+t.hMm,0),o=(i-n-a)/(e.length-1),s=n;for(let t of e)t.yMm=$(s),s+=t.hMm+o}}async function Ma(){N.value=!0,z.value=[],Ae.value=null,Yn();try{let e=(l.value?await Tn(s,c):await vn(s,c)).data;b.value=String(e.name||``).trim()||`未命名`,L.value=Number(e.width_mm)||90,R.value=Number(e.height_mm)||130;let n=e.template_json;n&&typeof n==`object`&&Array.isArray(n.elements)?(I.value=n,I.value.canvas=I.value.canvas||{widthMm:L.value,heightMm:R.value,background:`#ffffff`},I.value.canvas.widthMm=L.value,I.value.canvas.heightMm=R.value,hi(I.value)):I.value={version:1,canvas:{widthMm:L.value,heightMm:R.value,background:`#ffffff`,showBorder:!0,borderColor:`#334155`,borderWidthMm:.35},elements:[],guides:[],regions:[]};let r=e.default_test_json;ee.value=r&&typeof r==`object`?{...r}:{},Zi(),await(0,t.nextTick)(),Ba(!0)}catch{I.value=null,Zi(),Q.error(`加载模板失败`)}finally{N.value=!1}}async function Na(){if(!I.value)return;tn(),P.value=!0,F.value=``;let e=[],t=[];try{let n=await ma();e=n.uploadedIds,t=n.cleanupKeys;let r={name:b.value.trim()||`未命名`,width_mm:L.value,height_mm:R.value,template_json:I.value,default_test_json:ee.value};l.value?await Dn(s,c,r):await bn(s,c,r),Yn(t),F.value=`已保存`,Q.success(`保存成功`),await Ma()}catch(n){if(e.length){await Promise.allSettled(e.map(e=>Mn(e)));for(let e of I.value.elements){if(!qn(e)||e.clipboardUploadState!==`uploaded`||!e.clipboardUploadKey||!t.includes(e.clipboardUploadKey))continue;let n=Ie.get(e.clipboardUploadKey);n&&(e.src=n.objectUrl,e.clipboardUploadState=`pending`,delete e.clipboardImageId)}}Q.error(n?.response?.data?.message||`保存失败`)}finally{P.value=!1}}function Pa(){let e=te.value||H.value;if(!e)return;let t=Math.max(e.clientWidth||420,280),n=Math.max(e.clientHeight||420,240);Math.abs(t-_e.value)>8&&(_e.value=t),Math.abs(n-ve.value)>8&&(ve.value=n)}async function Fa(){await(0,t.nextTick)(),Pa(),Ae.value??Ba(!0)}async function Ia(){U.value=!U.value,document.body.classList.toggle(`badge-editor-window-fill-lock`,U.value),await Fa()}async function La(){let e=re.value;if(e)try{if(document.fullscreenElement)await document.exitFullscreen();else{let t=e.requestFullscreen?.bind(e)||e.webkitRequestFullscreen?.bind(e);if(!t){Q.warning(`当前浏览器不支持全屏`);return}await t()}}catch{Q.warning(`无法进入全屏,请检查浏览器权限`)}}function Ra(){let e=re.value;ie.value=!!e&&document.fullscreenElement===e,Fa()}function za(e){e.key===`Escape`&&(!U.value||document.fullscreenElement||(U.value=!1,document.body.classList.remove(`badge-editor-window-fill-lock`),Fa()))}function Ba(e=!1){let t=H.value,n=me.value;if(!t||!n)return;let r=Et.value,i=Dt.value,a=Math.max(kt.value,120),o=Math.max(At.value,120),s=Math.max(Rh,Math.round((a-r)/2)),c=Math.max(Rh,Math.round((o-i)/2)),l=Math.max(0,Rt.value-(Ee.value?Fh:0)-s),u=Math.max(0,zt.value-(Ee.value?Fh:0)-c);(e||t.scrollLeft===0&&t.scrollTop===0||Math.abs(t.scrollLeft-l)>8||Math.abs(t.scrollTop-u)>8)&&(t.scrollLeft=l,t.scrollTop=u)}let Va=null,Ha=0;return(0,t.onMounted)(async()=>{if(r.embedded||r.mode===`banner`||!Number.isFinite(s)||s<=0||!Number.isFinite(c)||c<=0){if(!I.value){let{createBannerDoc:e,createBadgeDoc:t}=await Promise.resolve().then(()=>(gp(),fp));I.value=r.mode===`banner`?e():t({mode:r.mode||(l.value?`desk`:`badge`)}),b.value=b.value||(r.mode===`banner`?`Banner 草稿`:`模板草稿`),L.value=I.value.canvas.widthMm,R.value=I.value.canvas.heightMm,N.value=!1}}else await Ma();await(0,t.nextTick)(),Pa(),Ba(!0),Va=new ResizeObserver(()=>{cancelAnimationFrame(Ha),Ha=requestAnimationFrame(()=>{let e=_e.value,t=ve.value;Pa(),Ae.value==null&&(Math.abs(e-_e.value)>8||Math.abs(t-ve.value)>8)&&Ba(!0)})}),te.value?Va.observe(te.value):H.value&&Va.observe(H.value),window.addEventListener(`keydown`,ua,!0),window.addEventListener(`keyup`,da,!0),window.addEventListener(`blur`,fa),window.addEventListener(`paste`,pa,!0),window.addEventListener(`pointerdown`,Xn,!0),window.addEventListener(`scroll`,Xn,!0),document.addEventListener(`fullscreenchange`,Ra),window.addEventListener(`keydown`,za,!0)}),(0,t.onUnmounted)(()=>{Va?.disconnect(),cancelAnimationFrame(Ha),Yn(),document.body.classList.remove(`badge-editor-window-fill-lock`),document.fullscreenElement===re.value&&document.exitFullscreen?.(),window.removeEventListener(`pointermove`,de),window.removeEventListener(`pointerup`,fe),document.body.style.cursor=``,document.body.style.userSelect=``,window.removeEventListener(`keydown`,ua,!0),window.removeEventListener(`keyup`,da,!0),window.removeEventListener(`blur`,fa),window.removeEventListener(`paste`,pa,!0),window.removeEventListener(`pointerdown`,Xn,!0),window.removeEventListener(`scroll`,Xn,!0),document.removeEventListener(`fullscreenchange`,Ra),window.removeEventListener(`keydown`,za,!0),window.removeEventListener(`pointermove`,Ii),window.removeEventListener(`pointermove`,zi),window.removeEventListener(`pointermove`,Wi),window.removeEventListener(`pointermove`,Qr),window.removeEventListener(`pointermove`,ni)}),(e,n)=>{let i=k,a=Vt,o=Tf,s=va,c=yi,u=ki,g=ao,v=Sf,C=_f,O=qi,ee=Vi,ae=fl,W=ia,oe=mr,G=jo,le=Oo,ue=wo,K=la,de=Si,fe=cf,ge=Pt,_e=pt,ve=(0,t.resolveDirective)(`fou-loading`);return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,{ref_key:`editorRootRef`,ref:re,class:(0,t.normalizeClass)([`page-container badge-editor`,{"is-window-fill":U.value,"is-native-fullscreen":ie.value}])},[(0,t.createElementVNode)(`div`,_p,[(0,t.createVNode)(a,{link:``,onClick:Ue},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`arrow-left-line`}),(0,t.createTextVNode)(` `+(0,t.toDisplayString)(`${l.value?`桌面贴模板`:`证件模板`}:${b.value||`未命名`}`),1)]),_:1}),(0,t.createElementVNode)(`div`,vp,[(0,t.createVNode)(o,{size:`small`,class:`header-undo-group`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(a,{disabled:!Qi.value,title:`撤销 (Ctrl+Z)`,onClick:ra},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`arrow-go-back-line`}),n[121]||=(0,t.createTextVNode)(` 撤销 `,-1)]),_:1},8,[`disabled`]),(0,t.createVNode)(a,{disabled:!$i.value,title:`重做 (Ctrl+Y / Ctrl+Shift+Z)`,onClick:aa},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`arrow-go-forward-line`}),n[122]||=(0,t.createTextVNode)(` 重做 `,-1)]),_:1},8,[`disabled`])]),_:1}),(0,t.createVNode)(a,{size:`small`,type:U.value?`primary`:`default`,plain:``,title:`撑满当前浏览器可视区域`,onClick:Ia},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:U.value?`fullscreen-exit-line`:`aspect-ratio-line`},null,8,[`icon`]),(0,t.createTextVNode)(` `+(0,t.toDisplayString)(U.value?`退出满屏`:`满屏`),1)]),_:1},8,[`type`]),(0,t.createVNode)(a,{size:`small`,type:ie.value?`primary`:`default`,plain:``,title:`撑满整个电脑屏幕`,onClick:La},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:ie.value?`fullscreen-exit-line`:`fullscreen-line`},null,8,[`icon`]),(0,t.createTextVNode)(` `+(0,t.toDisplayString)(ie.value?`退出全屏`:`全屏`),1)]),_:1},8,[`type`]),(0,t.createVNode)(a,{type:`primary`,plain:``,disabled:!I.value,onClick:n[0]||=e=>Te.value=!0},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`eye-line`}),n[123]||=(0,t.createTextVNode)(` 预览 `,-1)]),_:1},8,[`disabled`]),(0,t.createVNode)(a,{size:`small`,disabled:!I.value,onClick:A},{default:(0,t.withCtx)(()=>[...n[124]||=[(0,t.createTextVNode)(`导出图片`,-1)]]),_:1},8,[`disabled`]),(0,t.createVNode)(a,{size:`small`,disabled:!I.value,onClick:j},{default:(0,t.withCtx)(()=>[...n[125]||=[(0,t.createTextVNode)(`导出 PDF`,-1)]]),_:1},8,[`disabled`]),(0,t.createVNode)(a,{size:`small`,type:`primary`,plain:``,disabled:!I.value,onClick:M},{default:(0,t.withCtx)(()=>[...n[126]||=[(0,t.createTextVNode)(`导出网页`,-1)]]),_:1},8,[`disabled`])])]),(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{ref_key:`layoutRef`,ref:ne,class:(0,t.normalizeClass)([`layout`,{"is-resizing":!!se.value}]),style:(0,t.normalizeStyle)(ce.value)},[(0,t.createVNode)(oe,{class:`tools`,shadow:`never`},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,yp,[(0,t.createElementVNode)(`div`,bp,[(0,t.createElementVNode)(`div`,xp,[(0,t.createElementVNode)(`button`,{type:`button`,class:(0,t.normalizeClass)([`tools-accordion__btn`,{"is-active":x.value===`canvas`}]),onClick:n[1]||=e=>x.value=`canvas`},`画布`,2),(0,t.createElementVNode)(`button`,{type:`button`,class:(0,t.normalizeClass)([`tools-accordion__btn`,{"is-active":x.value===`insert`}]),onClick:n[2]||=e=>x.value=`insert`},`插入`,2),(0,t.createElementVNode)(`button`,{type:`button`,class:(0,t.normalizeClass)([`tools-accordion__btn`,{"is-active":x.value===`arrange`}]),onClick:n[3]||=e=>x.value=`arrange`},`编排`,2)]),(0,t.createElementVNode)(`div`,{class:`tools-pane`,hidden:x.value!==`canvas`},[n[153]||=(0,t.createElementVNode)(`div`,{class:`tools-section-title`},`模板名称`,-1),(0,t.createElementVNode)(`div`,Cp,[(0,t.createVNode)(s,{modelValue:b.value,"onUpdate:modelValue":n[4]||=e=>b.value=e,maxlength:`120`,"show-word-limit":``,placeholder:`模板名称`,size:`small`},null,8,[`modelValue`])]),n[154]||=(0,t.createElementVNode)(`div`,{class:`tools-section-title`},`画布`,-1),(0,t.createElementVNode)(`div`,wp,[(0,t.createElementVNode)(`div`,null,[n[127]||=(0,t.createElementVNode)(`span`,{class:`label`},`宽:`,-1),(0,t.createVNode)(c,{modelValue:L.value,"onUpdate:modelValue":n[5]||=e=>L.value=e,min:40,max:300,size:`small`,"controls-position":`right`,onChange:oa},null,8,[`modelValue`]),n[128]||=(0,t.createTextVNode)(`mm `,-1)]),(0,t.createElementVNode)(`div`,null,[n[129]||=(0,t.createElementVNode)(`span`,{class:`label`},`高:`,-1),(0,t.createVNode)(c,{modelValue:R.value,"onUpdate:modelValue":n[6]||=e=>R.value=e,min:40,max:400,size:`small`,"controls-position":`right`,onChange:oa},null,8,[`modelValue`]),n[130]||=(0,t.createTextVNode)(`mm `,-1)])]),(0,t.createElementVNode)(`div`,Tp,[n[131]||=(0,t.createElementVNode)(`span`,{class:`label`},`显示标尺`,-1),(0,t.createVNode)(u,{modelValue:Ee.value,"onUpdate:modelValue":n[7]||=e=>Ee.value=e,size:`small`},null,8,[`modelValue`])]),(0,t.createVNode)(v,{"content-position":`left`},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`span`,Ep,[n[133]||=(0,t.createElementVNode)(`span`,null,`画布边框`,-1),(0,t.createVNode)(g,{placement:`top`,"show-after":120},{content:(0,t.withCtx)(()=>[...n[132]||=[(0,t.createElementVNode)(`div`,{class:`help-popover`},`控制白纸边缘描边;预览与打印会同步生效。滚轮缩放仅改变视图,不改模板毫米尺寸。`,-1)]]),default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`question-line`,class:`help-icon`})]),_:1})])]),_:1}),(0,t.createElementVNode)(`div`,Dp,[n[134]||=(0,t.createElementVNode)(`span`,{class:`label`},`显示边框`,-1),(0,t.createVNode)(u,{modelValue:X.value,"onUpdate:modelValue":n[8]||=e=>X.value=e,size:`small`},null,8,[`modelValue`])]),X.value?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:0},[(0,t.createElementVNode)(`div`,Op,[n[135]||=(0,t.createElementVNode)(`span`,{class:`label`},`边框色`,-1),(0,t.createElementVNode)(`div`,kp,[(0,t.createVNode)(C,{modelValue:yt.value,"onUpdate:modelValue":n[9]||=e=>yt.value=e},null,8,[`modelValue`]),(0,t.createVNode)(s,{modelValue:yt.value,"onUpdate:modelValue":n[10]||=e=>yt.value=e,size:`small`,placeholder:`#94a3b8`},null,8,[`modelValue`])])]),(0,t.createElementVNode)(`div`,Ap,[n[136]||=(0,t.createElementVNode)(`span`,{class:`label`},`边框 mm`,-1),(0,t.createVNode)(c,{modelValue:bt.value,"onUpdate:modelValue":n[11]||=e=>bt.value=e,min:.1,max:8,step:.1,precision:1,size:`small`,"controls-position":`right`,style:{width:`120px`}},null,8,[`modelValue`])])],64)):(0,t.createCommentVNode)(``,!0),(0,t.createVNode)(v,{"content-position":`left`},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`span`,jp,[n[138]||=(0,t.createElementVNode)(`span`,null,`画布背景`,-1),(0,t.createVNode)(g,{placement:`top`,"show-after":120},{content:(0,t.withCtx)(()=>[...n[137]||=[(0,t.createElementVNode)(`div`,{class:`help-popover`},`支持透明、纯色和背景图。背景图可从图片库选择,也可直接上传。`,-1)]]),default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`question-line`,class:`help-icon`})]),_:1})])]),_:1}),(0,t.createElementVNode)(`div`,Mp,[(0,t.createVNode)(ee,{modelValue:Be.value,"onUpdate:modelValue":n[12]||=e=>Be.value=e,size:`small`,onChange:rn},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(O,{label:`transparent`},{default:(0,t.withCtx)(()=>[...n[139]||=[(0,t.createTextVNode)(`透明`,-1)]]),_:1}),(0,t.createVNode)(O,{label:`color`},{default:(0,t.withCtx)(()=>[...n[140]||=[(0,t.createTextVNode)(`色块`,-1)]]),_:1}),(0,t.createVNode)(O,{label:`image`},{default:(0,t.withCtx)(()=>[...n[141]||=[(0,t.createTextVNode)(`图片`,-1)]]),_:1})]),_:1},8,[`modelValue`])]),Be.value===`color`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Np,[n[142]||=(0,t.createElementVNode)(`span`,{class:`label`},`背景色`,-1),(0,t.createElementVNode)(`div`,Pp,[(0,t.createVNode)(C,{modelValue:vt.value,"onUpdate:modelValue":n[13]||=e=>vt.value=e,"show-alpha":``},null,8,[`modelValue`]),(0,t.createVNode)(s,{modelValue:vt.value,"onUpdate:modelValue":n[14]||=e=>vt.value=e,size:`small`,placeholder:`#ffffff / rgba(...)`},null,8,[`modelValue`])])])):Be.value===`image`?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:2},[(0,t.createElementVNode)(`div`,Fp,[(0,t.createVNode)(a,{size:`small`,onClick:n[15]||=e=>an(`lib`)},{default:(0,t.withCtx)(()=>[...n[143]||=[(0,t.createTextVNode)(`选择图片`,-1)]]),_:1}),(0,t.createVNode)(a,{size:`small`,onClick:n[16]||=e=>an(`up`)},{default:(0,t.withCtx)(()=>[...n[144]||=[(0,t.createTextVNode)(`上传图片`,-1)]]),_:1}),(0,t.createVNode)(a,{size:`small`,link:``,type:`danger`,disabled:!I.value?.canvas?.backgroundImage,onClick:sn},{default:(0,t.withCtx)(()=>[...n[145]||=[(0,t.createTextVNode)(` 清除背景图 `,-1)]]),_:1},8,[`disabled`])]),(0,t.createElementVNode)(`p`,Ip,(0,t.toDisplayString)(I.value?.canvas?.backgroundImage?`当前已设置背景图,预览与打印会一起生效。`:`尚未选择背景图,可从图片库选择或直接上传。`),1)],64)):(0,t.createCommentVNode)(``,!0),(0,t.createVNode)(v,{"content-position":`left`},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`span`,Lp,[n[147]||=(0,t.createElementVNode)(`span`,null,`标尺与参考线`,-1),(0,t.createVNode)(g,{placement:`top`,"show-after":120},{content:(0,t.withCtx)(()=>[...n[146]||=[(0,t.createElementVNode)(`div`,{class:`help-popover`},`支持像 Photoshop 一样显示标尺,并为模板保存水平/垂直参考线。参考线可拖动、手输位置,也会随模板一起生效。`,-1)]]),default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`question-line`,class:`help-icon`})]),_:1})])]),_:1}),(0,t.createElementVNode)(`div`,Rp,[(0,t.createVNode)(a,{size:`small`,onClick:n[17]||=e=>Ai(`horizontal`)},{default:(0,t.withCtx)(()=>[...n[148]||=[(0,t.createTextVNode)(`添加横线`,-1)]]),_:1}),(0,t.createVNode)(a,{size:`small`,onClick:n[18]||=e=>Ai(`vertical`)},{default:(0,t.withCtx)(()=>[...n[149]||=[(0,t.createTextVNode)(`添加竖线`,-1)]]),_:1}),(0,t.createVNode)(a,{size:`small`,link:``,type:`danger`,disabled:!at.value.length,onClick:Mi},{default:(0,t.withCtx)(()=>[...n[150]||=[(0,t.createTextVNode)(`清空参考线`,-1)]]),_:1},8,[`disabled`])]),at.value.length?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,zp,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(at.value,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:e.id,class:(0,t.normalizeClass)([`guide-row`,{active:V.value===e.id}]),onClick:t=>nr(e.id),onContextmenu:(0,t.withModifiers)(t=>rr(t,e),[`prevent`,`stop`])},[(0,t.createVNode)(ae,{size:`small`,type:e.axis===`horizontal`?`success`:`primary`},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.axis===`horizontal`?`横线`:`竖线`),1)]),_:2},1032,[`type`]),(0,t.createVNode)(c,{modelValue:e.offsetMm,"onUpdate:modelValue":t=>e.offsetMm=t,min:0,max:e.axis===`horizontal`?R.value:L.value,step:.5,"controls-position":`right`,size:`small`},null,8,[`modelValue`,`onUpdate:modelValue`,`max`]),n[152]||=(0,t.createElementVNode)(`span`,{class:`guide-mm`},`mm`,-1),(0,t.createVNode)(a,{link:``,type:`danger`,onClick:t=>ji(e.id)},{default:(0,t.withCtx)(()=>[...n[151]||=[(0,t.createTextVNode)(`删除`,-1)]]),_:1},8,[`onClick`])],42,Bp))),128))])):(0,t.createCommentVNode)(``,!0)],8,Sp),(0,t.createElementVNode)(`div`,{class:`tools-pane`,hidden:x.value!==`insert`},[(0,t.createVNode)(v,{"content-position":`left`},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`span`,Hp,[n[156]||=(0,t.createElementVNode)(`span`,null,`元素`,-1),(0,t.createVNode)(g,{placement:`top`,"show-after":120},{content:(0,t.withCtx)(()=>[...n[155]||=[(0,t.createElementVNode)(`div`,{class:`help-popover`},`新文字会按版心自动排位。图片可从图片库选用或本地上传,便于后续复用。`,-1)]]),default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`question-line`,class:`help-icon`})]),_:1})])]),_:1}),(0,t.createElementVNode)(`div`,Up,[(0,t.createVNode)(a,{size:`small`,type:`primary`,onClick:ui},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`edit-line`}),n[157]||=(0,t.createTextVNode)(` 文字 `,-1)]),_:1}),(0,t.createVNode)(a,{size:`small`,type:`primary`,plain:``,onClick:n[19]||=e=>ye.value=!0},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`image-line`}),n[158]||=(0,t.createTextVNode)(` 图片 `,-1)]),_:1}),(0,t.createVNode)(a,{size:`small`,link:``,type:`primary`,onClick:He},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`folder-open-line`}),n[159]||=(0,t.createTextVNode)(` 图片库管理 `,-1)]),_:1})]),(0,t.createElementVNode)(`div`,Wp,[(0,t.createVNode)(W,{modelValue:w.value,"onUpdate:modelValue":n[20]||=e=>w.value=e,size:`small`,style:{width:`120px`},options:d},null,8,[`modelValue`]),(0,t.createVNode)(a,{size:`small`,type:`primary`,plain:``,onClick:n[21]||=e=>di(w.value)},{default:(0,t.withCtx)(()=>[...n[160]||=[(0,t.createTextVNode)(`添加形状`,-1)]]),_:1})]),(0,t.createVNode)(v,{"content-position":`left`},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`span`,Gp,[n[162]||=(0,t.createElementVNode)(`span`,null,`组合与分区`,-1),(0,t.createVNode)(g,{placement:`top`,"show-after":120},{content:(0,t.withCtx)(()=>[...n[161]||=[(0,t.createElementVNode)(`div`,{class:`help-popover`},`支持把多个元素组合/打散,也可把画布拆成多个分区,用于复制分区内容、给分区设置背景色和归类元素。`,-1)]]),default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`question-line`,class:`help-icon`})]),_:1})])]),_:1}),(0,t.createElementVNode)(`div`,Kp,[(0,t.createVNode)(a,{size:`small`,disabled:z.value.length<2,onClick:Ti},{default:(0,t.withCtx)(()=>[...n[163]||=[(0,t.createTextVNode)(`组合`,-1)]]),_:1},8,[`disabled`]),(0,t.createVNode)(a,{size:`small`,disabled:!lt.value,onClick:Ei},{default:(0,t.withCtx)(()=>[...n[164]||=[(0,t.createTextVNode)(`打散`,-1)]]),_:1},8,[`disabled`]),(0,t.createVNode)(a,{size:`small`,disabled:!J.value,onClick:An},{default:(0,t.withCtx)(()=>[...n[165]||=[(0,t.createTextVNode)(`复制分区内容`,-1)]]),_:1},8,[`disabled`]),(0,t.createVNode)(a,{size:`small`,disabled:!z.value.length||!J.value,onClick:Oi},{default:(0,t.withCtx)(()=>[...n[166]||=[(0,t.createTextVNode)(`归入当前分区`,-1)]]),_:1},8,[`disabled`])]),(0,t.createElementVNode)(`div`,qp,[n[167]||=(0,t.createElementVNode)(`span`,{class:`label`},`横向分块`,-1),(0,t.createVNode)(c,{modelValue:Re.value,"onUpdate:modelValue":n[22]||=e=>Re.value=e,min:1,max:12,size:`small`,"controls-position":`right`},null,8,[`modelValue`])]),(0,t.createElementVNode)(`div`,Jp,[n[168]||=(0,t.createElementVNode)(`span`,{class:`label`},`纵向分块`,-1),(0,t.createVNode)(c,{modelValue:ze.value,"onUpdate:modelValue":n[23]||=e=>ze.value=e,min:1,max:12,size:`small`,"controls-position":`right`},null,8,[`modelValue`])]),(0,t.createElementVNode)(`div`,Yp,[(0,t.createVNode)(a,{size:`small`,onClick:n[24]||=e=>_i(`horizontal`)},{default:(0,t.withCtx)(()=>[...n[169]||=[(0,t.createTextVNode)(`横向分块`,-1)]]),_:1}),(0,t.createVNode)(a,{size:`small`,onClick:n[25]||=e=>_i(`vertical`)},{default:(0,t.withCtx)(()=>[...n[170]||=[(0,t.createTextVNode)(`纵向分块`,-1)]]),_:1}),(0,t.createVNode)(a,{size:`small`,onClick:n[26]||=e=>_i(`grid`)},{default:(0,t.withCtx)(()=>[...n[171]||=[(0,t.createTextVNode)(`田字格/网格`,-1)]]),_:1}),(0,t.createVNode)(a,{size:`small`,link:``,type:`danger`,disabled:!Ge.value.length,onClick:vi},{default:(0,t.withCtx)(()=>[...n[172]||=[(0,t.createTextVNode)(`清空分区`,-1)]]),_:1},8,[`disabled`])]),Ge.value.length?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Xp,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(Ge.value,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:e.id,class:(0,t.normalizeClass)([`guide-row`,{active:B.value===e.id}]),onClick:t=>B.value=e.id},[(0,t.createVNode)(ae,{size:`small`,type:B.value===e.id?`success`:`info`},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.name),1)]),_:2},1032,[`type`]),(0,t.createElementVNode)(`span`,Qp,(0,t.toDisplayString)(e.wMm.toFixed(1))+` x `+(0,t.toDisplayString)(e.hMm.toFixed(1))+` mm`,1)],10,Zp))),128))])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,$p,[(0,t.createVNode)(Zf,{"model-value":S.value,"extra-modules":r.extraModules,"onUpdate:modelValue":E,onInsert:D,onPreviewContext:T},null,8,[`model-value`,`extra-modules`])])],8,Vp),(0,t.createElementVNode)(`div`,{class:`tools-pane`,hidden:x.value!==`arrange`},[(0,t.createVNode)(v,{"content-position":`left`},{default:(0,t.withCtx)(()=>[...n[173]||=[(0,t.createTextVNode)(`对齐到画布`,-1)]]),_:1}),(0,t.createElementVNode)(`div`,tm,[(0,t.createVNode)(o,{size:`small`,class:`btn-group-icons`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(a,{title:`左对齐到画布`,onClick:n[27]||=e=>ka(`left`)},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`arrow-left-line`})]),_:1}),(0,t.createVNode)(a,{title:`水平居中对画布`,onClick:n[28]||=e=>ka(`h-center`)},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`expand-left-right-line`})]),_:1}),(0,t.createVNode)(a,{title:`右对齐到画布`,onClick:n[29]||=e=>ka(`right`)},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`arrow-right-line`})]),_:1})]),_:1})]),(0,t.createElementVNode)(`div`,nm,[(0,t.createVNode)(o,{size:`small`,class:`btn-group-icons`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(a,{title:`顶对齐到画布`,onClick:n[30]||=e=>ka(`top`)},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`arrow-up-line`})]),_:1}),(0,t.createVNode)(a,{title:`垂直居中对画布`,onClick:n[31]||=e=>ka(`v-center`)},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`drag-move-line`})]),_:1}),(0,t.createVNode)(a,{title:`底对齐到画布`,onClick:n[32]||=e=>ka(`bottom`)},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`arrow-down-line`})]),_:1})]),_:1})]),(0,t.createVNode)(v,{"content-position":`left`},{default:(0,t.withCtx)(()=>[...n[174]||=[(0,t.createTextVNode)(`图层`,-1)]]),_:1}),I.value?.elements?.length?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,rm,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(Ke.value,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:e.id,class:(0,t.normalizeClass)([`layer-row`,{active:Je(e.id)}]),onClick:t=>wi(e)},[(0,t.createElementVNode)(`span`,am,(0,t.toDisplayString)(Vr(e)),1),(0,t.createElementVNode)(`span`,om,`z`+(0,t.toDisplayString)(e.zIndex),1),(0,t.createVNode)(o,{size:`small`,class:`btn-group-icons`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(a,{title:`上移一层`,onClick:(0,t.withModifiers)(t=>Hr(e,1),[`stop`])},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`arrow-up-s-line`})]),_:1},8,[`onClick`]),(0,t.createVNode)(a,{title:`下移一层`,onClick:(0,t.withModifiers)(t=>Hr(e,-1),[`stop`])},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`arrow-down-s-line`})]),_:1},8,[`onClick`])]),_:2},1024)],10,im))),128))])):((0,t.openBlock)(),(0,t.createElementBlock)(`span`,sm,`暂无元素`))],8,em)]),(0,t.createElementVNode)(`div`,cm,[(0,t.createVNode)(v),(0,t.createElementVNode)(`div`,lm,[(0,t.createVNode)(a,{type:`success`,loading:P.value,onClick:Na},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`checkbox-circle-line`}),n[175]||=(0,t.createTextVNode)(` 保存模板 `,-1)]),_:1},8,[`loading`]),F.value?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,um,(0,t.toDisplayString)(F.value),1)):(0,t.createCommentVNode)(``,!0)])])])]),_:1}),(0,t.createElementVNode)(`div`,{class:`layout-splitter`,title:`拖拽调整左侧宽度`,onPointerdown:n[33]||=e=>q(`left`,e)},null,32),(0,t.createVNode)(oe,{class:`canvas-card`,shadow:`never`},{header:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,dm,[n[179]||=(0,t.createElementVNode)(`span`,null,`编辑区(滚轮缩放;灰底拖拽/空格/中键平移;纸面空白框选)`,-1),(0,t.createElementVNode)(`div`,fm,[(0,t.createVNode)(ae,{size:`small`,type:`info`},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(Jt.value),1)]),_:1}),(0,t.createVNode)(o,{size:`small`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(a,{onClick:n[34]||=e=>pr(-1)},{default:(0,t.withCtx)(()=>[...n[176]||=[(0,t.createTextVNode)(`缩小`,-1)]]),_:1}),(0,t.createVNode)(a,{onClick:fr},{default:(0,t.withCtx)(()=>[...n[177]||=[(0,t.createTextVNode)(`适配`,-1)]]),_:1}),(0,t.createVNode)(a,{onClick:n[35]||=e=>pr(1)},{default:(0,t.withCtx)(()=>[...n[178]||=[(0,t.createTextVNode)(`放大`,-1)]]),_:1})]),_:1})])])]),default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,{ref_key:`viewportRef`,ref:te,class:`canvas-card-body`},[(0,t.createElementVNode)(`div`,{ref_key:`hostRef`,ref:H,class:(0,t.normalizeClass)([`canvas-host`,{"is-panning":De.value,"is-pan-ready":Oe.value&&!De.value}]),tabindex:`0`,onPointerenter:ai,onPointerleave:oi,onPointerdown:si,onAuxclick:n[36]||=(0,t.withModifiers)(()=>{},[`prevent`]),onClick:n[37]||=(0,t.withModifiers)(e=>{z.value=[],Xn()},[`self`]),onWheel:(0,t.withModifiers)(hr,[`prevent`])},[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`editor-workspace`,{"no-rulers":!Ee.value}]),style:(0,t.normalizeStyle)(Bt.value)},[Ee.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,pm)):(0,t.createCommentVNode)(``,!0),Ee.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,mm,[(0,t.createElementVNode)(`div`,{class:`ruler-axis ruler-axis-x`,style:(0,t.normalizeStyle)(Ut.value)},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(Gt.value,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:`x-${e.mm}`,class:(0,t.normalizeClass)([`ruler-tick ruler-tick-x`,{major:e.major,mid:e.mid}]),style:(0,t.normalizeStyle)({left:`${e.offsetPx}px`})},[e.label?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,hm,(0,t.toDisplayString)(e.label),1)):(0,t.createCommentVNode)(``,!0)],6))),128))],4)])):(0,t.createCommentVNode)(``,!0),Ee.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,gm,[(0,t.createElementVNode)(`div`,{class:`ruler-axis ruler-axis-y`,style:(0,t.normalizeStyle)(Wt.value)},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(Kt.value,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:`y-${e.mm}`,class:(0,t.normalizeClass)([`ruler-tick ruler-tick-y`,{major:e.major,mid:e.mid}]),style:(0,t.normalizeStyle)({top:`${e.offsetPx}px`})},[e.label?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,_m,(0,t.toDisplayString)(e.label),1)):(0,t.createCommentVNode)(``,!0)],6))),128))],4)])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,{class:`workspace-surface`,style:(0,t.normalizeStyle)(Ht.value),onPointerdown:(0,t.withModifiers)(li,[`self`]),onContextmenu:(0,t.withModifiers)($n,[`prevent`,`stop`,`self`])},[I.value&&wt.value>0?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,ref_key:`canvasClipRef`,ref:me,class:`canvas-scale-clip`,style:(0,t.normalizeStyle)(Yt.value)},[(0,t.createElementVNode)(`div`,{class:`canvas-scale-inner`,style:(0,t.normalizeStyle)(Xt.value)},[(0,t.createElementVNode)(`div`,{ref_key:`canvasInnerRef`,ref:pe,class:`canvas-inner canvas-inner--paper`,style:(0,t.normalizeStyle)(Zt.value),onPointerdown:(0,t.withModifiers)(ci,[`self`]),onContextmenu:(0,t.withModifiers)(er,[`prevent`,`stop`,`self`])},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(at.value,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:e.id,class:(0,t.normalizeClass)([`guide-line`,[e.axis===`horizontal`?`guide-line--h`:`guide-line--v`,{active:V.value===e.id}]]),style:(0,t.normalizeStyle)(yr(e)),onPointerdown:(0,t.withModifiers)(t=>Ri(t,e),[`stop`,`prevent`]),onContextmenu:(0,t.withModifiers)(t=>rr(t,e),[`prevent`,`stop`])},[(0,t.createElementVNode)(`span`,{class:`guide-badge`,style:(0,t.normalizeStyle)(br(e))},(0,t.toDisplayString)(e.axis===`horizontal`?`Y ${e.offsetMm.toFixed(1)}mm`:`X ${e.offsetMm.toFixed(1)}mm`),5)],46,vm))),128)),((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(Ge.value,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:e.id,class:(0,t.normalizeClass)([`canvas-region`,{active:B.value===e.id}]),style:(0,t.normalizeStyle)(Ir(e)),onPointerdown:(0,t.withModifiers)(t=>xi(t,e),[`stop`]),onContextmenu:(0,t.withModifiers)(t=>tr(t,e),[`prevent`,`stop`])},[(0,t.createElementVNode)(`span`,bm,(0,t.toDisplayString)(e.name),1)],46,ym))),128)),((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(We.value,e=>((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:e.id},[e.type===`text`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,style:(0,t.normalizeStyle)(vr(e)),class:`layer-drop`},[(0,t.createVNode)(ue,{trigger:`contextmenu`,onCommand:t=>Yr(t,e)},{dropdown:(0,t.withCtx)(()=>[(0,t.createVNode)(le,null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)(G,{command:`copy`},{default:(0,t.withCtx)(()=>[...n[180]||=[(0,t.createTextVNode)(`复制元素`,-1)]]),_:1}),(0,t.createVNode)(G,{command:`paste`,disabled:!ot.value},{default:(0,t.withCtx)(()=>[...n[181]||=[(0,t.createTextVNode)(`粘贴元素`,-1)]]),_:1},8,[`disabled`]),(0,t.createVNode)(G,{command:`delete`},{default:(0,t.withCtx)(()=>[...n[182]||=[(0,t.createTextVNode)(`删除元素`,-1)]]),_:1}),(0,t.createVNode)(G,{command:`set-link`},{default:(0,t.withCtx)(()=>[...n[183]||=[(0,t.createTextVNode)(`设置链接`,-1)]]),_:1}),(0,t.createVNode)(G,{command:`clear-link`},{default:(0,t.withCtx)(()=>[...n[184]||=[(0,t.createTextVNode)(`清除链接`,-1)]]),_:1}),(0,t.createVNode)(G,{divided:``,class:`ctx-submenu-item`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(ue,{trigger:`hover`,placement:`right-start`,onCommand:t=>Kr(t,e)},{dropdown:(0,t.withCtx)(()=>[(0,t.createVNode)(le,null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)(G,{command:`forward`},{default:(0,t.withCtx)(()=>[...n[185]||=[(0,t.createTextVNode)(`上一层`,-1)]]),_:1}),(0,t.createVNode)(G,{command:`backward`},{default:(0,t.withCtx)(()=>[...n[186]||=[(0,t.createTextVNode)(`下一层`,-1)]]),_:1}),(0,t.createVNode)(G,{command:`front`,divided:``},{default:(0,t.withCtx)(()=>[...n[187]||=[(0,t.createTextVNode)(`最顶层`,-1)]]),_:1}),(0,t.createVNode)(G,{command:`back`},{default:(0,t.withCtx)(()=>[...n[188]||=[(0,t.createTextVNode)(`最底层`,-1)]]),_:1})]),_:1})]),default:(0,t.withCtx)(()=>[n[189]||=(0,t.createElementVNode)(`span`,{class:`ctx-submenu-trigger`},`层级 ›`,-1)]),_:1},8,[`onCommand`])]),_:2},1024)]),_:2},1024)]),default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`hit`,{sel:Je(e.id)}]),onPointerdown:(0,t.withModifiers)(t=>Fi(t,e),[`prevent`,`stop`])},[(0,t.createElementVNode)(`div`,{class:`hit-inner`,style:(0,t.normalizeStyle)(xr(e))},(0,t.toDisplayString)(_r(e)),5),(0,t.withDirectives)((0,t.createElementVNode)(`div`,{class:`resize-handle-br`,title:`拖拽缩放区域`,onPointerdown:(0,t.withModifiers)(t=>Ui(t,e),[`stop`])},null,40,Sm),[[t.vShow,z.value.length===1&&z.value[0]===e.id]])],42,xm)]),_:2},1032,[`onCommand`])],4)):e.type===`shape`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:1,style:(0,t.normalizeStyle)(vr(e)),class:`layer-drop`},[(0,t.createVNode)(ue,{trigger:`contextmenu`,onCommand:t=>Yr(t,e)},{dropdown:(0,t.withCtx)(()=>[(0,t.createVNode)(le,null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)(G,{command:`copy`},{default:(0,t.withCtx)(()=>[...n[190]||=[(0,t.createTextVNode)(`复制元素`,-1)]]),_:1}),(0,t.createVNode)(G,{command:`paste`,disabled:!ot.value},{default:(0,t.withCtx)(()=>[...n[191]||=[(0,t.createTextVNode)(`粘贴元素`,-1)]]),_:1},8,[`disabled`]),(0,t.createVNode)(G,{command:`delete`},{default:(0,t.withCtx)(()=>[...n[192]||=[(0,t.createTextVNode)(`删除元素`,-1)]]),_:1}),(0,t.createVNode)(G,{command:`set-link`},{default:(0,t.withCtx)(()=>[...n[193]||=[(0,t.createTextVNode)(`设置链接`,-1)]]),_:1}),(0,t.createVNode)(G,{command:`clear-link`},{default:(0,t.withCtx)(()=>[...n[194]||=[(0,t.createTextVNode)(`清除链接`,-1)]]),_:1})]),_:1})]),default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`hit shape-hit`,{sel:Je(e.id)}]),onPointerdown:(0,t.withModifiers)(t=>Fi(t,e),[`prevent`,`stop`])},[((0,t.openBlock)(),(0,t.createElementBlock)(`svg`,{class:`shape-inner`,style:(0,t.normalizeStyle)(Sr(e)),viewBox:`0 0 100 100`,preserveAspectRatio:`none`},[e.shape===`line`?((0,t.openBlock)(),(0,t.createElementBlock)(`line`,{key:0,x1:`4`,y1:`50`,x2:`96`,y2:`50`,stroke:Cr(e),"stroke-width":Math.max(Tr(e),1),"stroke-linecap":`round`},null,8,wm)):e.shape===`rect`?((0,t.openBlock)(),(0,t.createElementBlock)(`rect`,{key:1,x:`4`,y:`4`,width:`92`,height:`92`,fill:wr(e),stroke:Cr(e),"stroke-width":Tr(e)},null,8,Tm)):e.shape===`circle`?((0,t.openBlock)(),(0,t.createElementBlock)(`ellipse`,{key:2,cx:`50`,cy:`50`,rx:`46`,ry:`46`,fill:wr(e),stroke:Cr(e),"stroke-width":Tr(e)},null,8,Em)):e.shape===`triangle`?((0,t.openBlock)(),(0,t.createElementBlock)(`polygon`,{key:3,points:`50,4 96,96 4,96`,fill:wr(e),stroke:Cr(e),"stroke-width":Tr(e),"stroke-linejoin":`round`},null,8,Dm)):e.shape===`trapezoid`?((0,t.openBlock)(),(0,t.createElementBlock)(`polygon`,{key:4,points:Fr(),fill:wr(e),stroke:Cr(e),"stroke-width":Tr(e),"stroke-linejoin":`round`},null,8,Om)):((0,t.openBlock)(),(0,t.createElementBlock)(`polygon`,{key:5,points:Pr(e),fill:wr(e),stroke:Cr(e),"stroke-width":Tr(e),"stroke-linejoin":`round`},null,8,km))],4)),(0,t.withDirectives)((0,t.createElementVNode)(`div`,{class:`resize-handle-br`,title:`拖拽缩放`,onPointerdown:(0,t.withModifiers)(t=>Ui(t,e),[`stop`])},null,40,Am),[[t.vShow,z.value.length===1&&z.value[0]===e.id]])],42,Cm)]),_:2},1032,[`onCommand`])],4)):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:2,style:(0,t.normalizeStyle)(vr(e)),class:`layer-drop`},[(0,t.createVNode)(ue,{trigger:`contextmenu`,onCommand:t=>Yr(t,e)},{dropdown:(0,t.withCtx)(()=>[(0,t.createVNode)(le,null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)(G,{command:`copy`},{default:(0,t.withCtx)(()=>[...n[195]||=[(0,t.createTextVNode)(`复制元素`,-1)]]),_:1}),(0,t.createVNode)(G,{command:`paste`,disabled:!ot.value},{default:(0,t.withCtx)(()=>[...n[196]||=[(0,t.createTextVNode)(`粘贴元素`,-1)]]),_:1},8,[`disabled`]),(0,t.createVNode)(G,{command:`delete`},{default:(0,t.withCtx)(()=>[...n[197]||=[(0,t.createTextVNode)(`删除元素`,-1)]]),_:1}),(0,t.createVNode)(G,{command:`set-link`},{default:(0,t.withCtx)(()=>[...n[198]||=[(0,t.createTextVNode)(`设置链接`,-1)]]),_:1}),(0,t.createVNode)(G,{command:`clear-link`},{default:(0,t.withCtx)(()=>[...n[199]||=[(0,t.createTextVNode)(`清除链接`,-1)]]),_:1}),(0,t.createVNode)(G,{divided:``,class:`ctx-submenu-item`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(ue,{trigger:`hover`,placement:`right-start`,onCommand:t=>Kr(t,e)},{dropdown:(0,t.withCtx)(()=>[(0,t.createVNode)(le,null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)(G,{command:`forward`},{default:(0,t.withCtx)(()=>[...n[200]||=[(0,t.createTextVNode)(`上一层`,-1)]]),_:1}),(0,t.createVNode)(G,{command:`backward`},{default:(0,t.withCtx)(()=>[...n[201]||=[(0,t.createTextVNode)(`下一层`,-1)]]),_:1}),(0,t.createVNode)(G,{command:`front`,divided:``},{default:(0,t.withCtx)(()=>[...n[202]||=[(0,t.createTextVNode)(`最顶层`,-1)]]),_:1}),(0,t.createVNode)(G,{command:`back`},{default:(0,t.withCtx)(()=>[...n[203]||=[(0,t.createTextVNode)(`最底层`,-1)]]),_:1})]),_:1})]),default:(0,t.withCtx)(()=>[n[204]||=(0,t.createElementVNode)(`span`,{class:`ctx-submenu-trigger`},`层级 ›`,-1)]),_:1},8,[`onCommand`])]),_:2},1024)]),_:2},1024)]),default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`hit img-hit`,{sel:Je(e.id)}]),onPointerdown:(0,t.withModifiers)(t=>Fi(t,e),[`prevent`,`stop`])},[(0,t.createElementVNode)(`img`,{src:dn(e.src),alt:``,draggable:`false`},null,8,Mm),Jn(e)?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Nm,(0,t.toDisplayString)(Jn(e)),1)):(0,t.createCommentVNode)(``,!0),(0,t.withDirectives)((0,t.createElementVNode)(`div`,{class:`resize-handle-br`,title:`拖拽缩放`,onPointerdown:(0,t.withModifiers)(t=>Ui(t,e),[`stop`])},null,40,Pm),[[t.vShow,z.value.length===1&&z.value[0]===e.id]])],42,jm)]),_:2},1032,[`onCommand`])],4))],64))),128)),he.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:`marquee-rect`,style:(0,t.normalizeStyle)(mt.value)},null,4)):(0,t.createCommentVNode)(``,!0)],36)],4)],4)):(0,t.createCommentVNode)(``,!0)],36)],6)],34)],512)]),_:1}),((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:`body`},[Pe.value.visible?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:`canvas-context-menu`,style:(0,t.normalizeStyle)(ft.value),onPointerdown:n[55]||=(0,t.withModifiers)(()=>{},[`stop`])},[Pe.value.target===`guide`?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:0,type:`button`,class:`canvas-context-menu__item danger`,disabled:!dt.value,onClick:n[38]||=e=>ir(`delete`)},` 删除参考线 `,8,Fm)):Pe.value.target===`region`?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:1},[(0,t.createElementVNode)(`button`,{type:`button`,class:`canvas-context-menu__item`,onClick:n[39]||=e=>lr(`copy_region`)},` 复制分块 `),(0,t.createElementVNode)(`button`,{type:`button`,class:`canvas-context-menu__item`,onClick:n[40]||=e=>lr(`copy_region_contents`)},` 复制分块及内容 `),(0,t.createElementVNode)(`button`,{type:`button`,class:`canvas-context-menu__item`,disabled:!z.value.length,onClick:n[41]||=e=>lr(`copy_region_selection`)},` 复制分块+选中元素 `,8,Im),(0,t.createElementVNode)(`button`,{type:`button`,class:`canvas-context-menu__item`,disabled:!st.value,onClick:n[42]||=e=>lr(`paste_region`)},` 粘贴分块 `,8,Lm),(0,t.createElementVNode)(`button`,{type:`button`,class:`canvas-context-menu__item`,disabled:!ot.value,onClick:n[43]||=e=>lr(`paste_elements`)},` 粘贴元素 `,8,Rm),(0,t.createElementVNode)(`button`,{type:`button`,class:`canvas-context-menu__item`,disabled:!ot.value,onClick:n[44]||=e=>lr(`paste_elements_flip_x`)},` 粘贴并左右翻转 `,8,zm),(0,t.createElementVNode)(`button`,{type:`button`,class:`canvas-context-menu__item`,disabled:!ot.value,onClick:n[45]||=e=>lr(`paste_elements_flip_y`)},` 粘贴并上下翻转 `,8,Bm),(0,t.createElementVNode)(`button`,{type:`button`,class:`canvas-context-menu__item`,disabled:!ut.value,onClick:n[46]||=e=>lr(`flip_contents_x`)},` 当前分块内容左右翻转 `,8,Vm),(0,t.createElementVNode)(`button`,{type:`button`,class:`canvas-context-menu__item`,disabled:!ut.value,onClick:n[47]||=e=>lr(`flip_contents_y`)},` 当前分块内容上下翻转 `,8,Hm),(0,t.createElementVNode)(`button`,{type:`button`,class:`canvas-context-menu__item danger`,disabled:!ut.value,onClick:n[48]||=e=>lr(`delete_region`)},` 删除当前分块 `,8,Um)],64)):((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:2},[(0,t.createElementVNode)(`button`,{type:`button`,class:`canvas-context-menu__item`,onClick:n[49]||=e=>sr(`zoom_in`)},` 放大 `),(0,t.createElementVNode)(`button`,{type:`button`,class:`canvas-context-menu__item`,onClick:n[50]||=e=>sr(`zoom_out`)},` 缩小 `),(0,t.createElementVNode)(`button`,{type:`button`,class:`canvas-context-menu__item`,onClick:n[51]||=e=>sr(`fit`)},` 适配 `),(0,t.createElementVNode)(`button`,{type:`button`,class:`canvas-context-menu__item`,disabled:!z.value.length,onClick:n[52]||=e=>sr(`delete`)},` 删除选中元素 `,8,Wm),(0,t.createElementVNode)(`button`,{type:`button`,class:`canvas-context-menu__item`,disabled:!ot.value,onClick:n[53]||=e=>sr(`paste`)},` 粘贴元素 `,8,Gm),(0,t.createElementVNode)(`button`,{type:`button`,class:`canvas-context-menu__item`,disabled:!st.value,onClick:n[54]||=e=>sr(`paste_region`)},` 粘贴分块 `,8,Km)],64))],36)):(0,t.createCommentVNode)(``,!0)])),(0,t.createElementVNode)(`div`,{class:`layout-splitter`,title:`拖拽调整右侧宽度`,onPointerdown:n[56]||=e=>q(`right`,e)},null,32),(0,t.createVNode)(oe,{class:`side`,shadow:`never`},{header:(0,t.withCtx)(()=>[...n[205]||=[(0,t.createTextVNode)(`属性`,-1)]]),default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,qm,[(0,t.createElementVNode)(`div`,Jm,[Ye.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Ym,[(0,t.createVNode)(de,{"label-width":`88px`,size:`small`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(K,{label:`文字内容`},{default:(0,t.withCtx)(()=>[((0,t.openBlock)(),(0,t.createBlock)(s,{key:z.value.length===1?z.value[0]:`multi`,modelValue:ht.value,"onUpdate:modelValue":n[57]||=e=>ht.value=e,type:`textarea`,rows:8,placeholder:`可直接编辑;占位符用双花括号,如 student_name 写成模板里的字段名`},null,8,[`modelValue`]))]),_:1}),(0,t.createVNode)(K,null,{label:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`span`,Xm,[(0,t.createVNode)(i,{icon:`expand-left-right-line`}),n[206]||=(0,t.createTextVNode)(`字号(pt)`,-1)])]),default:(0,t.withCtx)(()=>[(0,t.createVNode)(c,{modelValue:Ye.value.fontSize,"onUpdate:modelValue":n[58]||=e=>Ye.value.fontSize=e,min:6,max:72,"controls-position":`right`,style:{width:`100%`}},null,8,[`modelValue`])]),_:1}),(0,t.createVNode)(K,null,{label:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`span`,Zm,[(0,t.createVNode)(i,{icon:`brush-line`}),n[207]||=(0,t.createTextVNode)(`颜色`,-1)])]),default:(0,t.withCtx)(()=>[(0,t.createVNode)(C,{modelValue:Ye.value.color,"onUpdate:modelValue":n[59]||=e=>Ye.value.color=e,"show-alpha":``},null,8,[`modelValue`])]),_:1}),(0,t.createVNode)(K,{label:`区域 mm`},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,Qm,[n[208]||=(0,t.createElementVNode)(`span`,{class:`pair-label`},`宽`,-1),(0,t.createVNode)(c,{modelValue:Ye.value.wMm,"onUpdate:modelValue":n[60]||=e=>Ye.value.wMm=e,min:5,max:500,step:.5,"controls-position":`right`},null,8,[`modelValue`]),n[209]||=(0,t.createElementVNode)(`span`,{class:`pair-label`},`高`,-1),(0,t.createVNode)(c,{modelValue:Ye.value.hMm,"onUpdate:modelValue":n[61]||=e=>Ye.value.hMm=e,min:4,max:500,step:.5,"controls-position":`right`},null,8,[`modelValue`])])]),_:1}),(0,t.createVNode)(K,{label:`对齐`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(W,{modelValue:Ye.value.align,"onUpdate:modelValue":n[62]||=e=>Ye.value.align=e,placeholder:`对齐`,style:{width:`100%`},options:_t},null,8,[`modelValue`])]),_:1}),(0,t.createVNode)(K,{label:`文字方向`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(ee,{modelValue:gt.value,"onUpdate:modelValue":n[63]||=e=>gt.value=e},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(O,{label:`horizontal`},{default:(0,t.withCtx)(()=>[...n[210]||=[(0,t.createTextVNode)(`横向`,-1)]]),_:1}),(0,t.createVNode)(O,{label:`vertical`},{default:(0,t.withCtx)(()=>[...n[211]||=[(0,t.createTextVNode)(`纵向`,-1)]]),_:1})]),_:1},8,[`modelValue`])]),_:1}),(0,t.createVNode)(K,{label:`旋转 (°)`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(c,{modelValue:nt.value,"onUpdate:modelValue":n[64]||=e=>nt.value=e,min:-180,max:180,step:1,"controls-position":`right`,style:{width:`100%`}},null,8,[`modelValue`])]),_:1}),(0,t.createVNode)(K,{label:`翻转`},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,$m,[(0,t.createVNode)(u,{modelValue:rt.value,"onUpdate:modelValue":n[65]||=e=>rt.value=e,"inline-prompt":``,"active-text":`左右`,"inactive-text":`左右`},null,8,[`modelValue`]),(0,t.createVNode)(u,{modelValue:it.value,"onUpdate:modelValue":n[66]||=e=>it.value=e,"inline-prompt":``,"active-text":`上下`,"inactive-text":`上下`},null,8,[`modelValue`])])]),_:1})]),_:1})])):Xe.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,eh,[(0,t.createVNode)(de,{"label-width":`88px`,size:`small`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(K,{label:`尺寸 mm`},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,th,[n[212]||=(0,t.createElementVNode)(`span`,{class:`pair-label`},`宽`,-1),(0,t.createVNode)(c,{modelValue:Xe.value.wMm,"onUpdate:modelValue":n[67]||=e=>Xe.value.wMm=e,min:5,max:500,step:.5,"controls-position":`right`},null,8,[`modelValue`]),n[213]||=(0,t.createElementVNode)(`span`,{class:`pair-label`},`高`,-1),(0,t.createVNode)(c,{modelValue:Xe.value.hMm,"onUpdate:modelValue":n[68]||=e=>Xe.value.hMm=e,min:5,max:500,step:.5,"controls-position":`right`},null,8,[`modelValue`])])]),_:1}),(0,t.createVNode)(K,{label:`旋转 (°)`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(c,{modelValue:tt.value,"onUpdate:modelValue":n[69]||=e=>tt.value=e,min:-180,max:180,step:1,"controls-position":`right`,style:{width:`100%`}},null,8,[`modelValue`])]),_:1}),(0,t.createVNode)(K,{label:`翻转`},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,nh,[(0,t.createVNode)(u,{modelValue:rt.value,"onUpdate:modelValue":n[70]||=e=>rt.value=e,"inline-prompt":``,"active-text":`左右`,"inactive-text":`左右`},null,8,[`modelValue`]),(0,t.createVNode)(u,{modelValue:it.value,"onUpdate:modelValue":n[71]||=e=>it.value=e,"inline-prompt":``,"active-text":`上下`,"inactive-text":`上下`},null,8,[`modelValue`])])]),_:1}),(0,t.createVNode)(K,null,{default:(0,t.withCtx)(()=>[...n[214]||=[(0,t.createElementVNode)(`span`,{class:`muted-text`},`画布上拖右下角蓝点可拉伸;文字和图片都支持角度旋转、左右翻转、上下翻转。`,-1)]]),_:1})]),_:1})])):Ze.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,rh,[(0,t.createVNode)(de,{"label-width":`88px`,size:`small`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(K,{label:`图形`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(W,{modelValue:Ze.value.shape,"onUpdate:modelValue":n[72]||=e=>Ze.value.shape=e,style:{width:`100%`},options:d},null,8,[`modelValue`])]),_:1}),Ze.value.shape===`polygon`?((0,t.openBlock)(),(0,t.createBlock)(K,{key:0,label:`边数`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(c,{modelValue:Ze.value.polygonSides,"onUpdate:modelValue":n[73]||=e=>Ze.value.polygonSides=e,min:3,max:12,step:1,"controls-position":`right`,style:{width:`100%`}},null,8,[`modelValue`])]),_:1})):(0,t.createCommentVNode)(``,!0),(0,t.createVNode)(K,{label:`背景色`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(C,{modelValue:Ze.value.background,"onUpdate:modelValue":n[74]||=e=>Ze.value.background=e,"show-alpha":``},null,8,[`modelValue`])]),_:1}),(0,t.createVNode)(K,{label:`显示边框`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(u,{modelValue:Y.value,"onUpdate:modelValue":n[75]||=e=>Y.value=e},null,8,[`modelValue`])]),_:1}),(0,t.createVNode)(K,{label:`边框色`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(C,{modelValue:Ze.value.strokeColor,"onUpdate:modelValue":n[76]||=e=>Ze.value.strokeColor=e,"show-alpha":``,disabled:!Y.value},null,8,[`modelValue`,`disabled`])]),_:1}),(0,t.createVNode)(K,{label:`边框 mm`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(c,{modelValue:Ze.value.strokeWidthMm,"onUpdate:modelValue":n[77]||=e=>Ze.value.strokeWidthMm=e,min:0,max:20,step:.2,"controls-position":`right`,style:{width:`100%`},disabled:!Y.value},null,8,[`modelValue`,`disabled`])]),_:1}),(0,t.createVNode)(K,{label:`透明度`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(fe,{modelValue:$e.value,"onUpdate:modelValue":n[78]||=e=>$e.value=e,min:0,max:100},null,8,[`modelValue`])]),_:1}),(0,t.createVNode)(K,{label:`锁定比例`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(u,{modelValue:et.value,"onUpdate:modelValue":n[79]||=e=>et.value=e},null,8,[`modelValue`])]),_:1}),(0,t.createVNode)(K,{label:`尺寸 mm`},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,ih,[n[215]||=(0,t.createElementVNode)(`span`,{class:`pair-label`},`宽`,-1),(0,t.createVNode)(c,{modelValue:Ze.value.wMm,"onUpdate:modelValue":n[80]||=e=>Ze.value.wMm=e,min:1,max:500,step:.5,"controls-position":`right`,onChange:jr},null,8,[`modelValue`]),n[216]||=(0,t.createElementVNode)(`span`,{class:`pair-label`},`高`,-1),(0,t.createVNode)(c,{modelValue:Ze.value.hMm,"onUpdate:modelValue":n[81]||=e=>Ze.value.hMm=e,min:1,max:500,step:.5,"controls-position":`right`,onChange:Nr},null,8,[`modelValue`])])]),_:1}),(0,t.createVNode)(K,null,{default:(0,t.withCtx)(()=>[...n[217]||=[(0,t.createElementVNode)(`span`,{class:`muted-text`},`开启后,拖拽右下角或手动修改宽高都会按当前比例同步缩放。`,-1)]]),_:1})]),_:1})])):J.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ah,[(0,t.createVNode)(de,{"label-width":`88px`,size:`small`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(K,{label:`分区名称`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(s,{modelValue:J.value.name,"onUpdate:modelValue":n[82]||=e=>J.value.name=e},null,8,[`modelValue`])]),_:1}),(0,t.createVNode)(K,{label:`背景模式`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(ee,{modelValue:xt.value,"onUpdate:modelValue":n[83]||=e=>xt.value=e,size:`small`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(O,{label:`transparent`},{default:(0,t.withCtx)(()=>[...n[218]||=[(0,t.createTextVNode)(`透明`,-1)]]),_:1}),(0,t.createVNode)(O,{label:`color`},{default:(0,t.withCtx)(()=>[...n[219]||=[(0,t.createTextVNode)(`色块`,-1)]]),_:1}),(0,t.createVNode)(O,{label:`image`},{default:(0,t.withCtx)(()=>[...n[220]||=[(0,t.createTextVNode)(`图片`,-1)]]),_:1})]),_:1},8,[`modelValue`])]),_:1}),xt.value===`color`?((0,t.openBlock)(),(0,t.createBlock)(K,{key:0,label:`背景色`},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,oh,[(0,t.createVNode)(C,{modelValue:St.value,"onUpdate:modelValue":n[84]||=e=>St.value=e,"show-alpha":``},null,8,[`modelValue`]),(0,t.createVNode)(s,{modelValue:St.value,"onUpdate:modelValue":n[85]||=e=>St.value=e,size:`small`,placeholder:`#ffffff / rgba(...)`},null,8,[`modelValue`])])]),_:1})):xt.value===`image`?((0,t.openBlock)(),(0,t.createBlock)(K,{key:1,label:`背景图`},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,sh,[(0,t.createVNode)(a,{size:`small`,onClick:n[86]||=e=>cn(`lib`)},{default:(0,t.withCtx)(()=>[...n[221]||=[(0,t.createTextVNode)(`选择图片`,-1)]]),_:1}),(0,t.createVNode)(a,{size:`small`,onClick:n[87]||=e=>cn(`up`)},{default:(0,t.withCtx)(()=>[...n[222]||=[(0,t.createTextVNode)(`上传图片`,-1)]]),_:1}),(0,t.createVNode)(a,{size:`small`,link:``,type:`danger`,disabled:!J.value.backgroundImage,onClick:un},{default:(0,t.withCtx)(()=>[...n[223]||=[(0,t.createTextVNode)(` 清除图片 `,-1)]]),_:1},8,[`disabled`])])]),_:1})):(0,t.createCommentVNode)(``,!0),(0,t.createVNode)(K,{label:`区域 mm`},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,ch,[n[224]||=(0,t.createElementVNode)(`span`,{class:`pair-label`},`X`,-1),(0,t.createVNode)(c,{modelValue:J.value.xMm,"onUpdate:modelValue":n[88]||=e=>J.value.xMm=e,min:0,max:500,step:.5,"controls-position":`right`},null,8,[`modelValue`]),n[225]||=(0,t.createElementVNode)(`span`,{class:`pair-label`},`Y`,-1),(0,t.createVNode)(c,{modelValue:J.value.yMm,"onUpdate:modelValue":n[89]||=e=>J.value.yMm=e,min:0,max:500,step:.5,"controls-position":`right`},null,8,[`modelValue`]),n[226]||=(0,t.createElementVNode)(`span`,{class:`pair-label`},`宽`,-1),(0,t.createVNode)(c,{modelValue:J.value.wMm,"onUpdate:modelValue":n[90]||=e=>J.value.wMm=e,min:1,max:500,step:.5,"controls-position":`right`},null,8,[`modelValue`]),n[227]||=(0,t.createElementVNode)(`span`,{class:`pair-label`},`高`,-1),(0,t.createVNode)(c,{modelValue:J.value.hMm,"onUpdate:modelValue":n[91]||=e=>J.value.hMm=e,min:1,max:500,step:.5,"controls-position":`right`},null,8,[`modelValue`])])]),_:1}),(0,t.createVNode)(K,null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)(a,{type:`danger`,plain:``,onClick:n[92]||=e=>bi(J.value.id)},{default:(0,t.withCtx)(()=>[...n[228]||=[(0,t.createTextVNode)(`删除当前分区`,-1)]]),_:1})]),_:1})]),_:1}),(0,t.createVNode)(v,{"content-position":`left`},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`span`,lh,[n[230]||=(0,t.createElementVNode)(`span`,null,`当前分区操作`,-1),(0,t.createVNode)(g,{placement:`top`,"show-after":120},{content:(0,t.withCtx)(()=>[...n[229]||=[(0,t.createElementVNode)(`div`,{class:`help-popover`},`这里直接处理当前分区内容。可先在分区里选中部分元素再操作;未选中时默认作用于整个分区内容。`,-1)]]),default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`question-line`,class:`help-icon`})]),_:1})])]),_:1}),(0,t.createElementVNode)(`div`,uh,[(0,t.createVNode)(a,{size:`small`,disabled:!J.value,onClick:n[93]||=e=>Hn(`x`)},{default:(0,t.withCtx)(()=>[...n[231]||=[(0,t.createTextVNode)(` 当前分区左右翻转 `,-1)]]),_:1},8,[`disabled`]),(0,t.createVNode)(a,{size:`small`,disabled:!J.value,onClick:n[94]||=e=>Hn(`y`)},{default:(0,t.withCtx)(()=>[...n[232]||=[(0,t.createTextVNode)(` 当前分区上下翻转 `,-1)]]),_:1},8,[`disabled`]),(0,t.createVNode)(a,{size:`small`,type:`primary`,plain:``,disabled:!J.value,onClick:n[95]||=e=>Un(`x`)},{default:(0,t.withCtx)(()=>[...n[233]||=[(0,t.createTextVNode)(` 左右镜像到对侧 `,-1)]]),_:1},8,[`disabled`]),(0,t.createVNode)(a,{size:`small`,type:`primary`,plain:``,disabled:!J.value,onClick:n[96]||=e=>Un(`y`)},{default:(0,t.withCtx)(()=>[...n[234]||=[(0,t.createTextVNode)(` 上下镜像到对侧 `,-1)]]),_:1},8,[`disabled`])])])):z.value.length>1?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,dh,[(0,t.createElementVNode)(`p`,fh,` 已选中 `+(0,t.toDisplayString)(z.value.length)+` 个元素:可整体拖拽、方向键微移、Delete 删除;下方可批量改选中文字的字号与颜色。单选一个文字块后可编辑全文与对齐。 `,1),(0,t.createElementVNode)(`div`,ph,[(0,t.createVNode)(a,{size:`small`,disabled:z.value.length<2,onClick:Ti},{default:(0,t.withCtx)(()=>[...n[235]||=[(0,t.createTextVNode)(`组合`,-1)]]),_:1},8,[`disabled`]),(0,t.createVNode)(a,{size:`small`,disabled:!lt.value,onClick:Ei},{default:(0,t.withCtx)(()=>[...n[236]||=[(0,t.createTextVNode)(`打散`,-1)]]),_:1},8,[`disabled`]),(0,t.createVNode)(a,{size:`small`,disabled:z.value.length<2,onClick:n[97]||=e=>Di(`x`)},{default:(0,t.withCtx)(()=>[...n[237]||=[(0,t.createTextVNode)(`左右翻转`,-1)]]),_:1},8,[`disabled`]),(0,t.createVNode)(a,{size:`small`,disabled:z.value.length<2,onClick:n[98]||=e=>Di(`y`)},{default:(0,t.withCtx)(()=>[...n[238]||=[(0,t.createTextVNode)(`上下翻转`,-1)]]),_:1},8,[`disabled`])]),_a.value>0?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:0},[(0,t.createVNode)(v,{"content-position":`left`},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`span`,mh,[n[240]||=(0,t.createElementVNode)(`span`,null,`多选:文字样式`,-1),(0,t.createVNode)(g,{placement:`top`,"show-after":120},{content:(0,t.withCtx)(()=>[...n[239]||=[(0,t.createElementVNode)(`div`,{class:`help-popover`},`仅作用于选中范围内的文字块。颜色不一致时以当前色块为参考,确认后会统一覆盖。`,-1)]]),default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`question-line`,class:`help-icon`})]),_:1})])]),_:1}),(0,t.createVNode)(de,{"label-width":`88px`,size:`small`,class:`multi-text-form`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(K,null,{label:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`span`,hh,[(0,t.createVNode)(i,{icon:`expand-left-right-line`}),n[241]||=(0,t.createTextVNode)(`字号(pt)`,-1)])]),default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,gh,[(0,t.createVNode)(c,{modelValue:xa.value,"onUpdate:modelValue":n[99]||=e=>xa.value=e,min:6,max:72,"controls-position":`right`,style:{width:`100%`},placeholder:`不一致`,onChange:Ta,onKeydown:(0,t.withKeys)((0,t.withModifiers)(wa,[`prevent`,`stop`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])])]),_:1}),(0,t.createVNode)(K,null,{label:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`span`,_h,[(0,t.createVNode)(i,{icon:`brush-line`}),n[242]||=(0,t.createTextVNode)(`颜色`,-1)])]),default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,vh,[(0,t.createVNode)(C,{"model-value":Sa.value,"show-alpha":``,onChange:Oa},null,8,[`model-value`]),(0,t.createVNode)(s,{modelValue:Sa.value,"onUpdate:modelValue":n[100]||=e=>Sa.value=e,size:`small`,placeholder:`#409EFF / rgba(...)`,onKeydown:(0,t.withKeys)((0,t.withModifiers)(Da,[`prevent`,`stop`]),[`enter`]),onBlur:Da},null,8,[`modelValue`,`onKeydown`])])]),_:1})]),_:1})],64)):(0,t.createCommentVNode)(``,!0),(0,t.createVNode)(v,{"content-position":`left`},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`span`,yh,[n[244]||=(0,t.createElementVNode)(`span`,null,`多选:相对选区对齐`,-1),(0,t.createVNode)(g,{placement:`top`,"show-after":120},{content:(0,t.withCtx)(()=>[...n[243]||=[(0,t.createElementVNode)(`div`,{class:`help-popover`},`以当前选中元素的包围盒为基准对齐彼此。至少选中 2 个元素时生效,单选无变化。`,-1)]]),default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`question-line`,class:`help-icon`})]),_:1})])]),_:1}),(0,t.createElementVNode)(`div`,bh,[(0,t.createVNode)(o,{size:`small`,class:`btn-group-icons`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(a,{title:`左边缘对齐`,onClick:n[101]||=e=>Aa(`sel-left`)},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`arrow-left-line`})]),_:1}),(0,t.createVNode)(a,{title:`右边缘对齐`,onClick:n[102]||=e=>Aa(`sel-right`)},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`arrow-right-line`})]),_:1}),(0,t.createVNode)(a,{title:`顶边对齐`,onClick:n[103]||=e=>Aa(`sel-top`)},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`arrow-up-line`})]),_:1}),(0,t.createVNode)(a,{title:`底边对齐`,onClick:n[104]||=e=>Aa(`sel-bottom`)},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`arrow-down-line`})]),_:1})]),_:1})]),(0,t.createElementVNode)(`div`,xh,[(0,t.createVNode)(o,{size:`small`,class:`btn-group-icons`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(a,{title:`水平居中对齐`,onClick:n[105]||=e=>Aa(`sel-h-center`)},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`expand-left-right-line`})]),_:1}),(0,t.createVNode)(a,{title:`垂直居中对齐`,onClick:n[106]||=e=>Aa(`sel-v-center`)},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`drag-move-line`})]),_:1})]),_:1})]),(0,t.createVNode)(v,{"content-position":`left`},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`span`,Sh,[n[246]||=(0,t.createElementVNode)(`span`,null,`多选:分布`,-1),(0,t.createVNode)(g,{placement:`top`,"show-after":120},{content:(0,t.withCtx)(()=>[...n[245]||=[(0,t.createElementVNode)(`div`,{class:`help-popover`},`在沿轴最前与最后元素之间均分间距,至少选中 2 个元素。`,-1)]]),default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`question-line`,class:`help-icon`})]),_:1})])]),_:1}),(0,t.createElementVNode)(`div`,Ch,[(0,t.createVNode)(o,{size:`small`,class:`btn-group-icons`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(a,{title:`按左右顺序均分水平间距`,disabled:z.value.length<2,onClick:n[107]||=e=>ja(`h`)},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`settings-3-line`})]),_:1},8,[`disabled`]),(0,t.createVNode)(a,{title:`按上下顺序均分垂直间距`,disabled:z.value.length<2,onClick:n[108]||=e=>ja(`v`)},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`sort-desc`})]),_:1},8,[`disabled`])]),_:1})])])):((0,t.openBlock)(),(0,t.createBlock)(ge,{key:5,description:`点击画布中的元素以编辑;空白处拖拽框选;Shift+点击多选`}))]),(0,t.createElementVNode)(`div`,wh,[(0,t.createVNode)(v),n[247]||=(0,t.createElementVNode)(`div`,{class:`subhead`},`保存后预览`,-1),(0,t.createElementVNode)(`div`,Th,[I.value?((0,t.openBlock)(),(0,t.createBlock)(ii,{key:0,doc:I.value,"merge-data":Ct.value,"screen-scale":Qt.value},null,8,[`doc`,`merge-data`,`screen-scale`])):(0,t.createCommentVNode)(``,!0)])])])]),_:1})],6)),[[ve,N.value]]),(0,t.createVNode)(_e,{modelValue:Te.value,"onUpdate:modelValue":n[109]||=e=>Te.value=e,title:`模板预览`,width:`640px`,draggable:``,"align-center":``,"destroy-on-close":``,class:`badge-preview-dialog`},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,Eh,[I.value?((0,t.openBlock)(),(0,t.createBlock)(ii,{key:0,doc:I.value,"merge-data":Ct.value,"screen-scale":$t.value},null,8,[`doc`,`merge-data`,`screen-scale`])):(0,t.createCommentVNode)(``,!0)])]),_:1},8,[`modelValue`]),(0,t.createVNode)(Kn,{modelValue:ye.value,"onUpdate:modelValue":n[110]||=e=>ye.value=e,onPick:mi},null,8,[`modelValue`]),(0,t.createVNode)(Kn,{modelValue:be.value,"onUpdate:modelValue":n[111]||=e=>be.value=e,"default-tab":xe.value,onPick:on},null,8,[`modelValue`,`default-tab`]),(0,t.createVNode)(Kn,{modelValue:Se.value,"onUpdate:modelValue":n[112]||=e=>Se.value=e,"default-tab":Ce.value,onPick:ln},null,8,[`modelValue`,`default-tab`]),(0,t.createVNode)(Dr,{modelValue:we.value,"onUpdate:modelValue":n[113]||=e=>we.value=e},null,8,[`modelValue`]),(0,t.createVNode)(_e,{modelValue:p.value,"onUpdate:modelValue":n[117]||=e=>p.value=e,title:`设置链接`,width:`440px`},{footer:(0,t.withCtx)(()=>[(0,t.createVNode)(a,{onClick:n[116]||=e=>p.value=!1},{default:(0,t.withCtx)(()=>[...n[250]||=[(0,t.createTextVNode)(`取消`,-1)]]),_:1}),(0,t.createVNode)(a,{type:`primary`,onClick:Jr},{default:(0,t.withCtx)(()=>[...n[251]||=[(0,t.createTextVNode)(`确定`,-1)]]),_:1})]),default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,Dh,[(0,t.createVNode)(s,{modelValue:m.value,"onUpdate:modelValue":n[114]||=e=>m.value=e,placeholder:`URL,可含 {{module.key}} 或旧 {{student_name}}`},null,8,[`modelValue`]),(0,t.createVNode)(ee,{modelValue:h.value,"onUpdate:modelValue":n[115]||=e=>h.value=e,size:`small`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(O,{label:`_blank`},{default:(0,t.withCtx)(()=>[...n[248]||=[(0,t.createTextVNode)(`新窗口`,-1)]]),_:1}),(0,t.createVNode)(O,{label:`_self`},{default:(0,t.withCtx)(()=>[...n[249]||=[(0,t.createTextVNode)(`当前页`,-1)]]),_:1})]),_:1},8,[`modelValue`])])]),_:1},8,[`modelValue`]),(0,t.createVNode)(_e,{modelValue:f.value,"onUpdate:modelValue":n[120]||=e=>f.value=e,title:`删除粘贴图片`,width:`440px`},{footer:(0,t.withCtx)(()=>[(0,t.createVNode)(a,{onClick:n[118]||=e=>y(!1)},{default:(0,t.withCtx)(()=>[...n[252]||=[(0,t.createTextVNode)(`只删画布元素`,-1)]]),_:1}),(0,t.createVNode)(a,{type:`danger`,onClick:n[119]||=e=>y(!0)},{default:(0,t.withCtx)(()=>[...n[253]||=[(0,t.createTextVNode)(`同时删除服务器图片`,-1)]]),_:1})]),default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`p`,null,`当前删除中包含 `+(0,t.toDisplayString)(_.value)+` 张已上传的粘贴图片,是否同时删除服务器图片?`,1)]),_:1},8,[`modelValue`])],2)}}}),Vh=v({default:()=>Hh}),Hh=S(Bh,[[`__scopeId`,`data-v-7d06f17b`]]),Uh=Hh,Wh=v({default:()=>Gh}),Gh=Uh,Kh={class:`page-container badge-tpl-list`},qh={class:`badge-tpl-header page-header`},Jh={class:`card-hdr`},Yh={key:0,class:`card-sub`},Xh={key:1,class:`muted`},Zh=(0,t.defineComponent)({__name:`BadgeTemplateListView`,setup(e){let{hostRef:n,tableHeight:r,recalcTableHeight:i}=hd(200),a=(0,o.useRoute)(),s=(0,o.useRouter)(),c=Number(a.params.id),l=(0,t.ref)(!1),u=(0,t.ref)(!1),d=(0,t.ref)([]),f=(0,t.ref)(``),p=(0,t.ref)(!1),m=(0,t.ref)(``),h=(0,t.ref)(!1),g=(0,t.ref)(null);async function _(){try{let e=await hn(c);f.value=e.data?.name||e.data?.title||``}catch{f.value=``}}async function v(){l.value=!0;try{let e=await gn(c);d.value=e.data?.list||[]}catch{d.value=[],Q.error(`加载模板列表失败`)}finally{l.value=!1,(0,t.nextTick)(()=>i())}}function y(){m.value=``,p.value=!0}async function b(){let e=m.value.trim();if(!e){Q.warning(`请填写模板名称`);return}u.value=!0;try{let t=(await _n(c,{name:e})).data?.id;p.value=!1,Q.success(`已创建`),t?s.push(`/fouui/badge/competition/${c}/badge-template/${t}`):await v()}catch(e){Q.error(e?.response?.data?.message||`创建失败`)}finally{u.value=!1}}function x(e){s.push(`/fouui/badge/competition/${c}/badge-template/${e}`)}async function S(e){try{await Sn(c,e),Q.success(`已设为默认套打模板`),await v()}catch(e){Q.error(e?.response?.data?.message||`操作失败`)}}function C(e){g.value=e,h.value=!0}async function w(){let e=g.value;if(e){h.value=!1;try{await xn(c,e.id),Q.success(`已删除`),await v()}catch(e){Q.error(e?.response?.data?.message||`删除失败`)}}}return(0,t.onMounted)(async()=>{if(!Number.isFinite(c)||c<=0){Q.error(`无效的比赛 ID`);return}await _(),await v(),(0,t.nextTick)(()=>i())}),(0,t.onActivated)(()=>(0,t.nextTick)(()=>i())),(e,i)=>{let a=k,o=Vt,s=cl,c=fl,_=al,v=mr,T=va,E=la,D=Si,O=pt,A=(0,t.resolveDirective)(`fou-loading`);return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,Kh,[(0,t.createElementVNode)(`div`,qh,[(0,t.createVNode)(o,{link:``,onClick:i[0]||=t=>e.$router.back()},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(a,{icon:`arrow-left-line`}),i[7]||=(0,t.createTextVNode)(` 证件模板 `,-1)]),_:1})]),(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createBlock)(v,{class:`main-card table-card table-fill-card`,shadow:`never`},{header:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,Jh,[(0,t.createElementVNode)(`div`,null,[i[8]||=(0,t.createElementVNode)(`div`,{class:`card-title`},`模板列表`,-1),f.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Yh,(0,t.toDisplayString)(f.value),1)):(0,t.createCommentVNode)(``,!0)]),(0,t.createVNode)(o,{type:`primary`,onClick:y},{default:(0,t.withCtx)(()=>[...i[9]||=[(0,t.createTextVNode)(`新建模板`,-1)]]),_:1})])]),default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,{ref_key:`hostRef`,ref:n,class:`table-host`},[(0,t.createVNode)(_,{data:d.value,border:``,stripe:``,height:(0,t.unref)(r)},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(s,{prop:`name`,label:`名称`,"min-width":`160`,"show-overflow-tooltip":``}),(0,t.createVNode)(s,{label:`默认套打`,width:`100`,align:`center`},{default:(0,t.withCtx)(({row:e})=>[e.is_default?((0,t.openBlock)(),(0,t.createBlock)(c,{key:0,type:`success`,size:`small`},{default:(0,t.withCtx)(()=>[...i[10]||=[(0,t.createTextVNode)(`默认`,-1)]]),_:1})):((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Xh,`—`))]),_:1}),(0,t.createVNode)(s,{prop:`width_mm`,label:`宽 mm`,width:`90`}),(0,t.createVNode)(s,{prop:`height_mm`,label:`高 mm`,width:`90`}),(0,t.createVNode)(s,{prop:`update_time`,label:`更新时间`,width:`180`}),(0,t.createVNode)(s,{label:`操作`,width:`280`,fixed:`right`},{default:(0,t.withCtx)(({row:e})=>[(0,t.createVNode)(o,{link:``,type:`primary`,onClick:t=>x(e.id)},{default:(0,t.withCtx)(()=>[...i[11]||=[(0,t.createTextVNode)(`编辑`,-1)]]),_:1},8,[`onClick`]),e.is_default?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createBlock)(o,{key:0,link:``,type:`primary`,onClick:t=>S(e.id)},{default:(0,t.withCtx)(()=>[...i[12]||=[(0,t.createTextVNode)(`设为默认`,-1)]]),_:1},8,[`onClick`])),(0,t.createVNode)(o,{link:``,type:`danger`,onClick:t=>C(e)},{default:(0,t.withCtx)(()=>[...i[13]||=[(0,t.createTextVNode)(`删除`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1},8,[`data`,`height`])],512)]),_:1})),[[A,l.value]]),(0,t.createVNode)(O,{modelValue:p.value,"onUpdate:modelValue":i[3]||=e=>p.value=e,title:`新建证件模板`,width:`440px`,"destroy-on-close":``,onClosed:i[4]||=e=>m.value=``},{footer:(0,t.withCtx)(()=>[(0,t.createVNode)(o,{onClick:i[2]||=e=>p.value=!1},{default:(0,t.withCtx)(()=>[...i[14]||=[(0,t.createTextVNode)(`取消`,-1)]]),_:1}),(0,t.createVNode)(o,{type:`primary`,loading:u.value,onClick:b},{default:(0,t.withCtx)(()=>[...i[15]||=[(0,t.createTextVNode)(`保存并制作`,-1)]]),_:1},8,[`loading`])]),default:(0,t.withCtx)(()=>[(0,t.createVNode)(D,{"label-width":`88px`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(E,{label:`模板名称`,required:``},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(T,{modelValue:m.value,"onUpdate:modelValue":i[1]||=e=>m.value=e,placeholder:`保存后将进入空白画布开始编排`,maxlength:`120`,"show-word-limit":``,onKeyup:(0,t.withKeys)(b,[`enter`])},null,8,[`modelValue`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),(0,t.createVNode)(O,{modelValue:h.value,"onUpdate:modelValue":i[6]||=e=>h.value=e,title:`删除确认`,width:`400px`},{footer:(0,t.withCtx)(()=>[(0,t.createVNode)(o,{onClick:i[5]||=e=>h.value=!1},{default:(0,t.withCtx)(()=>[...i[16]||=[(0,t.createTextVNode)(`取消`,-1)]]),_:1}),(0,t.createVNode)(o,{type:`danger`,onClick:w},{default:(0,t.withCtx)(()=>[...i[17]||=[(0,t.createTextVNode)(`删除`,-1)]]),_:1})]),default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`p`,null,`确定删除模板「`+(0,t.toDisplayString)(g.value?.name||`未命名`)+`」吗?`,1)]),_:1},8,[`modelValue`])])}}}),Qh=v({default:()=>$h}),$h=S(Zh,[[`__scopeId`,`data-v-2c5490c9`]]),eg={class:`page-container desk-tpl-list`},tg={class:`desk-tpl-header page-header`},ng={class:`card-hdr`},rg={key:0,class:`card-sub`},ig={key:1,class:`muted`},ag=(0,t.defineComponent)({__name:`DeskLabelTemplateListView`,setup(e){let{hostRef:n,tableHeight:r,recalcTableHeight:i}=hd(200),a=(0,o.useRoute)(),s=(0,o.useRouter)(),c=Number(a.params.id),l=(0,t.ref)(!1),u=(0,t.ref)(!1),d=(0,t.ref)([]),f=(0,t.ref)(``),p=(0,t.ref)(!1),m=(0,t.ref)(``),h=(0,t.ref)(!1),g=(0,t.ref)(null);async function _(){try{let e=await hn(c);f.value=e.data?.name||e.data?.title||``}catch{f.value=``}}async function v(){l.value=!0;try{let e=await Cn(c);d.value=e.data?.list||[]}catch{d.value=[],Q.error(`加载模板列表失败`)}finally{l.value=!1,(0,t.nextTick)(()=>i())}}function y(){m.value=``,p.value=!0}async function b(){let e=m.value.trim();if(!e){Q.warning(`请填写模板名称`);return}u.value=!0;try{let t=(await wn(c,{name:e})).data?.id;p.value=!1,Q.success(`已创建`),t?s.push(`/fouui/badge/competition/${c}/desk-label-template/${t}`):await v()}catch(e){Q.error(e?.response?.data?.msg||e?.response?.data?.message||`创建失败`)}finally{u.value=!1}}function x(e){s.push(`/fouui/badge/competition/${c}/desk-label-template/${e}`)}async function S(e){try{await kn(c,e),Q.success(`已设为默认模板`),await v()}catch(e){Q.error(e?.response?.data?.msg||e?.response?.data?.message||`操作失败`)}}function C(e){g.value=e,h.value=!0}async function w(){let e=g.value;if(e){h.value=!1;try{await On(c,e.id),Q.success(`已删除`),await v()}catch(e){Q.error(e?.response?.data?.msg||e?.response?.data?.message||`删除失败`)}}}return(0,t.onMounted)(async()=>{if(!Number.isFinite(c)||c<=0){Q.error(`无效的比赛 ID`);return}await _(),await v(),(0,t.nextTick)(()=>i())}),(0,t.onActivated)(()=>(0,t.nextTick)(()=>i())),(e,i)=>{let a=k,o=Vt,s=cl,c=fl,_=al,v=mr,T=va,E=la,D=Si,O=pt,A=(0,t.resolveDirective)(`fou-loading`);return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,eg,[(0,t.createElementVNode)(`div`,tg,[(0,t.createVNode)(o,{link:``,onClick:i[0]||=t=>e.$router.back()},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(a,{icon:`arrow-left-line`}),i[7]||=(0,t.createTextVNode)(` 桌面贴模板 `,-1)]),_:1})]),(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createBlock)(v,{class:`main-card table-card table-fill-card`,shadow:`never`},{header:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,ng,[(0,t.createElementVNode)(`div`,null,[i[8]||=(0,t.createElementVNode)(`div`,{class:`card-title`},`模板列表`,-1),f.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,rg,(0,t.toDisplayString)(f.value),1)):(0,t.createCommentVNode)(``,!0)]),(0,t.createVNode)(o,{type:`primary`,onClick:y},{default:(0,t.withCtx)(()=>[...i[9]||=[(0,t.createTextVNode)(`新建模板`,-1)]]),_:1})])]),default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,{ref_key:`hostRef`,ref:n,class:`table-host`},[(0,t.createVNode)(_,{data:d.value,border:``,stripe:``,height:(0,t.unref)(r)},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(s,{prop:`name`,label:`名称`,"min-width":`160`,"show-overflow-tooltip":``}),(0,t.createVNode)(s,{label:`默认`,width:`100`,align:`center`},{default:(0,t.withCtx)(({row:e})=>[e.is_default?((0,t.openBlock)(),(0,t.createBlock)(c,{key:0,type:`success`,size:`small`},{default:(0,t.withCtx)(()=>[...i[10]||=[(0,t.createTextVNode)(`默认`,-1)]]),_:1})):((0,t.openBlock)(),(0,t.createElementBlock)(`span`,ig,`—`))]),_:1}),(0,t.createVNode)(s,{prop:`width_mm`,label:`宽 mm`,width:`90`}),(0,t.createVNode)(s,{prop:`height_mm`,label:`高 mm`,width:`90`}),(0,t.createVNode)(s,{prop:`update_time`,label:`更新时间`,width:`180`}),(0,t.createVNode)(s,{label:`操作`,width:`280`,fixed:`right`},{default:(0,t.withCtx)(({row:e})=>[(0,t.createVNode)(o,{link:``,type:`primary`,onClick:t=>x(e.id)},{default:(0,t.withCtx)(()=>[...i[11]||=[(0,t.createTextVNode)(`编辑`,-1)]]),_:1},8,[`onClick`]),e.is_default?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createBlock)(o,{key:0,link:``,type:`primary`,onClick:t=>S(e.id)},{default:(0,t.withCtx)(()=>[...i[12]||=[(0,t.createTextVNode)(`设为默认`,-1)]]),_:1},8,[`onClick`])),(0,t.createVNode)(o,{link:``,type:`danger`,onClick:t=>C(e)},{default:(0,t.withCtx)(()=>[...i[13]||=[(0,t.createTextVNode)(`删除`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1},8,[`data`,`height`])],512)]),_:1})),[[A,l.value]]),(0,t.createVNode)(O,{modelValue:p.value,"onUpdate:modelValue":i[3]||=e=>p.value=e,title:`新建桌面贴模板`,width:`440px`,"destroy-on-close":``,onClosed:i[4]||=e=>m.value=``},{footer:(0,t.withCtx)(()=>[(0,t.createVNode)(o,{onClick:i[2]||=e=>p.value=!1},{default:(0,t.withCtx)(()=>[...i[14]||=[(0,t.createTextVNode)(`取消`,-1)]]),_:1}),(0,t.createVNode)(o,{type:`primary`,loading:u.value,onClick:b},{default:(0,t.withCtx)(()=>[...i[15]||=[(0,t.createTextVNode)(`保存并制作`,-1)]]),_:1},8,[`loading`])]),default:(0,t.withCtx)(()=>[(0,t.createVNode)(D,{"label-width":`88px`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(E,{label:`模板名称`,required:``},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(T,{modelValue:m.value,"onUpdate:modelValue":i[1]||=e=>m.value=e,placeholder:`保存后将进入空白画布开始编排`,maxlength:`120`,"show-word-limit":``,onKeyup:(0,t.withKeys)(b,[`enter`])},null,8,[`modelValue`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),(0,t.createVNode)(O,{modelValue:h.value,"onUpdate:modelValue":i[6]||=e=>h.value=e,title:`删除确认`,width:`400px`},{footer:(0,t.withCtx)(()=>[(0,t.createVNode)(o,{onClick:i[5]||=e=>h.value=!1},{default:(0,t.withCtx)(()=>[...i[16]||=[(0,t.createTextVNode)(`取消`,-1)]]),_:1}),(0,t.createVNode)(o,{type:`danger`,onClick:w},{default:(0,t.withCtx)(()=>[...i[17]||=[(0,t.createTextVNode)(`删除`,-1)]]),_:1})]),default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`p`,null,`确定删除模板「`+(0,t.toDisplayString)(g.value?.name||`未命名`)+`」吗?`,1)]),_:1},8,[`modelValue`])])}}}),og=v({default:()=>sg}),sg=S(ag,[[`__scopeId`,`data-v-726e851f`]]),cg={class:`page-container desk-label-page`},lg={class:`label-grid`},ug={class:`label-seat`},dg={class:`label-name`},fg={class:`label-school`},pg={class:`toolbar-pdf`},mg={class:`paper-config`},hg={class:`paper-config-block`},gg={class:`paper-config-block`},_g={key:0,class:`paper-config-desc`},vg={class:`paper-config-block`},yg={class:`paper-inline-row`},bg={class:`paper-config-desc`},xg={class:`pdf-dialog-body`},Sg={class:`simple-seat`},Cg={class:`simple-name`},wg={class:`simple-school`},Tg={class:`simple-no`},Eg=0,Dg=2,Og=(0,t.defineComponent)({__name:`DeskLabelView`,setup(e){let n=(0,o.useRouter)(),r=(0,t.ref)(0),i=(0,t.ref)([]),a=(0,t.ref)({}),s=(0,t.ref)(``),c=(0,t.ref)(!1),l=(0,t.ref)([]),u=(0,t.computed)(()=>i.value.map(e=>({label:e.name,value:e.id}))),d=(0,t.computed)(()=>l.value.map(e=>({label:e.is_default?`${e.name}(默认)`:e.name,value:e.id}))),f=(0,t.ref)(),p=(0,t.ref)(null),m=(0,t.ref)(!1),h=(0,t.ref)(`a4`),g=(0,t.ref)(`portrait`),_=(0,t.ref)(2),v=(0,t.ref)(2),y=(0,t.ref)(!1),b=(0,t.ref)(!1),x=(0,t.ref)(!1),S=(0,t.ref)(null),C=(0,t.ref)(null),w=(0,t.ref)([]),T=(0,t.computed)(()=>{let e=p.value,t=Number(e?.canvas?.widthMm||90),n=Number(e?.canvas?.heightMm||50),r=t*96/25.4,i=n*96/25.4;return Math.min(1,180/r,120/i)});async function E(){if(!r.value){l.value=[],f.value=void 0,p.value=null;return}c.value=!0;try{let e=(await Cn(r.value)).data?.list||[];l.value=e;let t=Number(f.value||0),n=t>0?e.find(e=>Number(e.id)===t):null,i=e.find(e=>!!e.is_default);f.value=n?t:i?.id?Number(i.id):e[0]?.id?Number(e[0].id):void 0,await D()}catch{l.value=[],f.value=void 0,p.value=null,Q.error(`加载桌面贴模板失败`)}finally{c.value=!1}}async function D(){if(!r.value){p.value=null;return}try{let e=(f.value?await Tn(r.value,Number(f.value)):await En(r.value)).data?.template_json;if(e&&typeof e==`object`&&Array.isArray(e.elements)){p.value=e;return}}catch{}p.value=null}let O=async()=>{if(r.value)try{await D();let e=await Ln(r.value);a.value=e.data||{}}catch{a.value={}}},k=async()=>{a.value={},C.value=null,w.value=[];let e=i.value.find(e=>e.id===r.value);s.value=e?.name||``,await E()},A=async()=>{await D()},j=()=>{r.value&&n.push(`/fouui/badge/competition/${r.value}/desk-label-templates`)};function M(){let e=[],t=Object.keys(a.value).sort((e,t)=>String(e).localeCompare(String(t),`zh-CN`));for(let n of t){let t=[...a.value[n]||[]].sort((e,t)=>{let n=Number(String(e?.seat_no??``).replace(/\D/g,``))||0,r=Number(String(t?.seat_no??``).replace(/\D/g,``))||0;return n===r?String(e?.student_name??``).localeCompare(String(t?.student_name??``),`zh-CN`):n-r});for(let n of t)e.push({...n})}return e}let N={a4:{w:210,h:297},a3:{w:297,h:420}},P=(0,t.computed)(()=>h.value===`custom`),F=(0,t.computed)(()=>{if(P.value)return{w:Number(C.value?.canvas?.widthMm??p.value?.canvas?.widthMm??90),h:Number(C.value?.canvas?.heightMm??p.value?.canvas?.heightMm??50)};let e=N[h.value===`a3`?`a3`:`a4`];return g.value===`landscape`?{w:e.h,h:e.w}:e}),I=(0,t.computed)(()=>({w:Number(C.value?.canvas?.widthMm??p.value?.canvas?.widthMm??90),h:Number(C.value?.canvas?.heightMm??p.value?.canvas?.heightMm??50)})),L=(0,t.computed)(()=>{let e=F.value,t=I.value;if(P.value)return{page:e,requestedCols:1,maxCols:1,cols:1,rowsPerPage:1,perPage:1,usableW:e.w,usableH:e.h,fitsWidth:!0,fitsHeight:!0,labelW:t.w,labelH:t.h,blockW:t.w};let n=Math.max(1,Number(v.value||1)),r=Math.max(1,e.w-0),i=Math.max(1,e.h-0),a=t.w<=r,o=t.h<=i,s=Math.max(1,Math.floor((r+Dg)/(t.w+Dg))),c=Math.min(n,s),l=Math.max(1,Math.floor((i+Dg)/(t.h+Dg)));return{page:e,requestedCols:n,maxCols:s,cols:c,rowsPerPage:l,perPage:c*l,usableW:r,usableH:i,fitsWidth:a,fitsHeight:o,labelW:t.w,labelH:t.h,blockW:c*t.w+Math.max(0,c-1)*Dg}}),R=(0,t.computed)(()=>1),ee=(0,t.computed)(()=>{let e=L.value.perPage,t=w.value,n=[];for(let r=0;r<t.length;r+=e)n.push(t.slice(r,r+e));return n}),z=(0,t.computed)(()=>({width:`${L.value.page.w}mm`})),B=(0,t.computed)(()=>({width:`${L.value.page.w}mm`,height:`${L.value.page.h}mm`,padding:`${Eg}mm`,boxSizing:`border-box`}));function V(e){let{cols:t,labelW:n,labelH:r}=L.value,i=Math.max(1,Math.ceil(Math.max(1,e||1)/t)),a=t*n+(t-1)*Dg,o=i*r+(i-1)*Dg;return{display:`grid`,gridTemplateColumns:`repeat(${t}, ${n}mm)`,gridAutoRows:`${r}mm`,gap:`${Dg}mm`,width:`${a}mm`,height:`${o}mm`,boxSizing:`border-box`}}let H=(0,t.computed)(()=>{let{labelW:e,labelH:t}=L.value;return{width:`${e}mm`,height:`${t}mm`,boxSizing:`border-box`,overflow:`hidden`}}),te=()=>{if(!r.value||!Object.keys(a.value).length){Q.warning(`请先加载桌面贴数据`);return}h.value=`a4`,g.value=`portrait`,_.value=2,v.value=2,m.value=!0},ne=async()=>{if(r.value){m.value=!1,b.value=!0,y.value=!0,C.value=null,w.value=[];try{let e=M(),n=(f.value?await Tn(r.value,Number(f.value)):await En(r.value)).data?.template_json;if(n&&typeof n==`object`&&Array.isArray(n.elements)&&n.elements.length&&(C.value=n),w.value=e.map(e=>Ku(e,s.value)),await(0,t.nextTick)(),!L.value.fitsWidth||!L.value.fitsHeight){y.value=!1,Q.warning(`当前桌面贴尺寸 ${I.value.w} x ${I.value.h} mm 已超出 ${h.value.toUpperCase()}${g.value===`landscape`?`横向`:`纵向`} 纸张尺寸,请调整模板尺寸或改用更大纸张`);return}if(L.value.requestedCols>L.value.maxCols){y.value=!1,Q.warning(`${h.value.toUpperCase()}${g.value===`landscape`?`横向`:`纵向`} 最多每行显示 ${L.value.maxCols} 个桌面贴,请调整后重试`);return}}catch{w.value=M().map(e=>Ku(e,s.value))}finally{b.value=!1}}},re=async()=>{await(0,t.nextTick)()},U=async()=>{let e=S.value;if(!(!e||!w.value.length)){x.value=!0;try{await(0,t.nextTick)(),await new Promise(e=>setTimeout(e,200));let n=`桌面贴_${s.value||r.value}.pdf`;await cd(Array.from(e.querySelectorAll(`.pdf-page`)),n,{size:h.value,orientation:g.value,widthMm:F.value.w,heightMm:F.value.h})}finally{x.value=!1}}},ie=async()=>{let e=S.value;if(!(!e||!w.value.length))try{await(0,t.nextTick)(),await new Promise(e=>setTimeout(e,200)),await ld(Array.from(e.querySelectorAll(`.pdf-page`)),`桌面贴_${s.value||r.value}`,{size:h.value,orientation:g.value,widthMm:F.value.w,heightMm:F.value.h})}catch(e){Q.error(e instanceof Error?e.message:`打印失败`)}};return(0,t.onMounted)(async()=>{try{let e=await mn({page_size:200});i.value=e.data?.data||[]}catch{i.value=[]}}),(0,t.watch)(_,e=>{P.value||e>0&&(v.value=e)}),(0,t.watch)(v,e=>{if(P.value){v.value!==1&&(v.value=1),_.value!==1&&(_.value=1);return}let t=Math.max(1,Number(e||1));if(t!==e){v.value=t;return}_.value=[1,2,3].includes(t)?t:0}),(0,t.watch)(h,e=>{e===`custom`&&(g.value=`portrait`,_.value=1,v.value=1)}),(e,n)=>{let i=ia,o=la,l=Vt,E=Si,D=mr,M=Pt,N=qi,F=Vi,I=yi,L=pt,ae=(0,t.resolveDirective)(`fou-loading`);return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,cg,[(0,t.createVNode)(D,{class:`filter-card`,shadow:`never`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(E,{inline:!0},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(o,{label:`选择比赛`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{modelValue:r.value,"onUpdate:modelValue":n[0]||=e=>r.value=e,placeholder:`选择比赛`,style:{width:`320px`},options:u.value,onChange:k},null,8,[`modelValue`,`options`])]),_:1}),(0,t.createVNode)(o,{label:`桌面贴模板`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{modelValue:f.value,"onUpdate:modelValue":n[1]||=e=>f.value=e,clearable:``,placeholder:`默认模板`,style:{width:`260px`},disabled:!r.value||c.value,options:d.value,onChange:A},null,8,[`modelValue`,`disabled`,`options`])]),_:1}),(0,t.createVNode)(o,null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)(l,{type:`primary`,disabled:!r.value,onClick:O},{default:(0,t.withCtx)(()=>[...n[10]||=[(0,t.createTextVNode)(`加载桌面贴数据`,-1)]]),_:1},8,[`disabled`])]),_:1}),r.value?((0,t.openBlock)(),(0,t.createBlock)(o,{key:0},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(l,{onClick:j},{default:(0,t.withCtx)(()=>[...n[11]||=[(0,t.createTextVNode)(`桌面贴模板`,-1)]]),_:1})]),_:1})):(0,t.createCommentVNode)(``,!0)]),_:1})]),_:1}),Object.keys(a.value).length?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:0},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(a.value,(e,n)=>((0,t.openBlock)(),(0,t.createBlock)(D,{key:String(n),style:{"margin-bottom":`16px`}},{header:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(n),1)]),default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,lg,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:`label-card`,key:`${n}-${e.seat_no}`},[p.value?.elements?.length?((0,t.openBlock)(),(0,t.createBlock)(ii,{key:0,doc:p.value,"merge-data":(0,t.unref)(Ku)(e,s.value),"screen-scale":T.value},null,8,[`doc`,`merge-data`,`screen-scale`])):((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:1},[(0,t.createElementVNode)(`div`,ug,(0,t.toDisplayString)(e.seat_no)+`号`,1),(0,t.createElementVNode)(`div`,dg,(0,t.toDisplayString)(e.student_name),1),(0,t.createElementVNode)(`div`,fg,(0,t.toDisplayString)(e.school_name),1)],64))]))),128))])]),_:2},1024))),128)),(0,t.createElementVNode)(`div`,pg,[(0,t.createVNode)(l,{type:`primary`,disabled:!r.value,onClick:te},{default:(0,t.withCtx)(()=>[...n[12]||=[(0,t.createTextVNode)(`生成预览与 PDF`,-1)]]),_:1},8,[`disabled`])])],64)):((0,t.openBlock)(),(0,t.createBlock)(M,{key:1,description:`请选择比赛并加载桌面贴`})),(0,t.createVNode)(L,{modelValue:m.value,"onUpdate:modelValue":n[7]||=e=>m.value=e,title:`预览排版设置`,width:`520px`,"destroy-on-close":``,"align-center":``},{footer:(0,t.withCtx)(()=>[(0,t.createVNode)(l,{onClick:n[6]||=e=>m.value=!1},{default:(0,t.withCtx)(()=>[...n[25]||=[(0,t.createTextVNode)(`取消`,-1)]]),_:1}),(0,t.createVNode)(l,{type:`primary`,onClick:ne},{default:(0,t.withCtx)(()=>[...n[26]||=[(0,t.createTextVNode)(`下一步:整版预览`,-1)]]),_:1})]),default:(0,t.withCtx)(()=>[n[27]||=(0,t.createElementVNode)(`p`,{class:`paper-tip`},`导出整版 PDF 前请选择纸张模式。可按 A4/A3 排版,也可直接按模板实际尺寸生成。预览、下载 PDF、打印都会使用这套排版设置。`,-1),(0,t.createElementVNode)(`div`,mg,[(0,t.createElementVNode)(`div`,hg,[n[16]||=(0,t.createElementVNode)(`div`,{class:`paper-config-title`},`纸张尺寸`,-1),(0,t.createVNode)(F,{modelValue:h.value,"onUpdate:modelValue":n[2]||=e=>h.value=e},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(N,{label:`a4`},{default:(0,t.withCtx)(()=>[...n[13]||=[(0,t.createTextVNode)(`A4`,-1)]]),_:1}),(0,t.createVNode)(N,{label:`a3`},{default:(0,t.withCtx)(()=>[...n[14]||=[(0,t.createTextVNode)(`A3`,-1)]]),_:1}),(0,t.createVNode)(N,{label:`custom`},{default:(0,t.withCtx)(()=>[...n[15]||=[(0,t.createTextVNode)(`按模板尺寸`,-1)]]),_:1})]),_:1},8,[`modelValue`])]),(0,t.createElementVNode)(`div`,gg,[n[19]||=(0,t.createElementVNode)(`div`,{class:`paper-config-title`},`打印方向`,-1),(0,t.createVNode)(F,{modelValue:g.value,"onUpdate:modelValue":n[3]||=e=>g.value=e,disabled:P.value},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(N,{label:`portrait`},{default:(0,t.withCtx)(()=>[...n[17]||=[(0,t.createTextVNode)(`纵向`,-1)]]),_:1}),(0,t.createVNode)(N,{label:`landscape`},{default:(0,t.withCtx)(()=>[...n[18]||=[(0,t.createTextVNode)(`横向`,-1)]]),_:1})]),_:1},8,[`modelValue`,`disabled`]),P.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,_g,`按模板尺寸生成时,页面宽高直接取模板设置,方向无需单独选择。`)):(0,t.createCommentVNode)(``,!0)]),(0,t.createElementVNode)(`div`,vg,[n[24]||=(0,t.createElementVNode)(`div`,{class:`paper-config-title`},`每行显示`,-1),(0,t.createElementVNode)(`div`,yg,[(0,t.createVNode)(F,{modelValue:_.value,"onUpdate:modelValue":n[4]||=e=>_.value=e,disabled:P.value},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(N,{label:1},{default:(0,t.withCtx)(()=>[...n[20]||=[(0,t.createTextVNode)(`1个`,-1)]]),_:1}),(0,t.createVNode)(N,{label:2},{default:(0,t.withCtx)(()=>[...n[21]||=[(0,t.createTextVNode)(`2个`,-1)]]),_:1}),(0,t.createVNode)(N,{label:3},{default:(0,t.withCtx)(()=>[...n[22]||=[(0,t.createTextVNode)(`3个`,-1)]]),_:1}),(0,t.createVNode)(N,{label:0},{default:(0,t.withCtx)(()=>[...n[23]||=[(0,t.createTextVNode)(`自定义`,-1)]]),_:1})]),_:1},8,[`modelValue`,`disabled`]),(0,t.createVNode)(I,{modelValue:v.value,"onUpdate:modelValue":n[5]||=e=>v.value=e,min:1,max:12,"controls-position":`right`,style:{width:`120px`},disabled:P.value},null,8,[`modelValue`,`disabled`])]),(0,t.createElementVNode)(`div`,bg,(0,t.toDisplayString)(P.value?`按模板尺寸生成时固定为每页 1 个桌面贴。`:`只控制每行显示几个桌面贴;每页行数会按纸张高度自动计算。`),1)])])]),_:1},8,[`modelValue`]),(0,t.createVNode)(L,{modelValue:y.value,"onUpdate:modelValue":n[9]||=e=>y.value=e,title:`桌面贴整版预览 — ${s.value||``}`,width:`96%`,top:`2vh`,"destroy-on-close":``,class:`pdf-preview-dialog`,onOpened:re},{footer:(0,t.withCtx)(()=>[(0,t.createVNode)(l,{disabled:!w.value.length,onClick:ie},{default:(0,t.withCtx)(()=>[...n[28]||=[(0,t.createTextVNode)(`打印整版`,-1)]]),_:1},8,[`disabled`]),(0,t.createVNode)(l,{onClick:n[8]||=e=>y.value=!1},{default:(0,t.withCtx)(()=>[...n[29]||=[(0,t.createTextVNode)(`关闭`,-1)]]),_:1}),(0,t.createVNode)(l,{type:`primary`,loading:x.value,disabled:!w.value.length,onClick:U},{default:(0,t.withCtx)(()=>[...n[30]||=[(0,t.createTextVNode)(` 下载 PDF `,-1)]]),_:1},8,[`loading`,`disabled`])]),default:(0,t.withCtx)(()=>[(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createElementBlock)(`div`,xg,[(0,t.createElementVNode)(`div`,{ref_key:`pdfExportRoot`,ref:S,class:`pdf-export-root`,style:(0,t.normalizeStyle)(z.value)},[C.value?.elements?.length&&w.value.length?((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,{key:0},(0,t.renderList)(ee.value,(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:n,class:`pdf-page`,style:(0,t.normalizeStyle)(B.value)},[(0,t.createElementVNode)(`div`,{class:`pdf-page-grid`,style:(0,t.normalizeStyle)(V(e.length))},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e,(e,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:`${n}-${r}`,class:`pdf-cell`,style:(0,t.normalizeStyle)(H.value)},[(0,t.createVNode)(ii,{doc:C.value,"merge-data":e,"screen-scale":R.value},null,8,[`doc`,`merge-data`,`screen-scale`])],4))),128))],4)],4))),128)):w.value.length?((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,{key:1},(0,t.renderList)(ee.value,(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:n,class:`pdf-page`,style:(0,t.normalizeStyle)(B.value)},[(0,t.createElementVNode)(`div`,{class:`pdf-page-grid`,style:(0,t.normalizeStyle)(V(e.length))},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e,(e,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:`${n}-${r}`,class:`pdf-cell simple`,style:(0,t.normalizeStyle)(H.value)},[(0,t.createElementVNode)(`div`,Sg,(0,t.toDisplayString)(e.seat_no)+`号`,1),(0,t.createElementVNode)(`div`,Cg,(0,t.toDisplayString)(e.student_name),1),(0,t.createElementVNode)(`div`,wg,(0,t.toDisplayString)(e.school_name),1),(0,t.createElementVNode)(`div`,Tg,(0,t.toDisplayString)(e.competition_no),1)],4))),128))],4)],4))),128)):(0,t.createCommentVNode)(``,!0)],4)])),[[ae,b.value]])]),_:1},8,[`modelValue`,`title`])])}}}),kg=v({default:()=>Ag}),Ag=S(Og,[[`__scopeId`,`data-v-6ad7759b`]]),jg=(0,t.defineComponent)({name:`FouBadgeDot`,__name:`index`,props:{value:{default:``},max:{default:99},isDot:{type:Boolean,default:!1},hidden:{type:Boolean,default:!1}},setup(e){let n=e,r=(0,t.computed)(()=>{if(n.isDot)return null;let e=n.value;if(e===``||e==null)return null;let t=Number(e);return!Number.isNaN(t)&&t>n.max?`${n.max}+`:String(e)});return(n,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{class:(0,t.normalizeClass)([`fou-badge-dot`,{"is-dot":e.isDot}])},[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0),!e.hidden&&(e.isDot||(0,t.unref)(r)!==null)?((0,t.openBlock)(),(0,t.createElementBlock)(`sup`,{key:0,class:(0,t.normalizeClass)([`fou-badge-dot__content`,{"is-dot":e.isDot,"is-fixed":!!n.$slots.default}])},[e.isDot?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:0},[(0,t.createTextVNode)((0,t.toDisplayString)((0,t.unref)(r)),1)],64))],2)):(0,t.createCommentVNode)(``,!0)],2))}}),Mg=v({default:()=>Ng}),Ng=S(jg,[[`__scopeId`,`data-v-e4bd07d4`]]),Pg={class:`fou-banner__track`},Fg=[`onClick`],Ig=[`src`,`title`],Lg=[`innerHTML`],Rg=[`src`,`alt`],zg={key:1,class:`fou-banner__content`},Bg=[`innerHTML`],Vg={key:1,class:`fou-banner__desc`},Hg={key:2,class:`fou-banner__actions`},Ug=[`onClick`],Wg={key:0,class:`fou-banner__indicators`},Gg=[`onClick`],Kg=(0,t.defineComponent)({name:`FouBanner`,__name:`index`,props:{items:{default:()=>[]},modelValue:{default:0},height:{default:`420px`},autoplay:{type:Boolean,default:!0},interval:{default:5e3},arrow:{default:`hover`},loop:{type:Boolean,default:!0}},emits:[`update:modelValue`,`change`,`action`,`click`],setup(e,{expose:n,emit:r}){let i=e,a=r,o=(0,t.computed)(()=>i.items||[]),s=(0,t.computed)({get:()=>{let e=o.value.length;return e?((i.modelValue??0)%e+e)%e:0},set:e=>{a(`update:modelValue`,e),a(`change`,e)}}),c=(0,t.computed)(()=>({height:typeof i.height==`number`?`${i.height}px`:i.height})),l=e=>!!(e.title?.trim()||e.description?.trim()||e.actions?.length),u=null,d=e=>{o.value.length&&(s.value=e,g())},f=()=>{let e=o.value.length;e&&(s.value>=e-1?s.value=i.loop?0:e-1:s.value+=1,g())},p=()=>{let e=o.value.length;e&&(s.value<=0?s.value=i.loop?e-1:0:--s.value,g())},m=()=>{h(),!(!i.autoplay||o.value.length<=1)&&(u=setInterval(()=>f(),i.interval))},h=()=>{u&&=(clearInterval(u),null)},g=()=>{i.autoplay&&m()},_=()=>h(),v=()=>m(),y=(e,t)=>{a(`action`,e,t);let n=e.href||e.url||e.route;n&&typeof window<`u`&&(/^https?:\/\//i.test(n)?window.open(n,`_blank`):window.location.assign(n))},b=(e,t)=>{t.target?.closest(`button,a`)||(a(`click`,e),e.link&&(/^https?:\/\//i.test(e.link)?window.open(e.link,`_blank`):window.location.assign(e.link)))};return(0,t.watch)(()=>[i.autoplay,i.interval,o.value.length],()=>m(),{immediate:!0}),(0,t.onBeforeUnmount)(h),n({next:f,prev:p,go:d}),(n,r)=>{let i=k;return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:`fou-banner`,style:(0,t.normalizeStyle)((0,t.unref)(c)),onMouseenter:_,onMouseleave:v},[(0,t.createElementVNode)(`div`,Pg,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(o),(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:n,class:(0,t.normalizeClass)([`fou-banner__slide`,{"is-active":n===(0,t.unref)(s),"is-linked":!!e.link}]),onClick:t=>b(e,t)},[e.type===`iframe`||e.src?((0,t.openBlock)(),(0,t.createElementBlock)(`iframe`,{key:0,class:`fou-banner__iframe`,src:e.src||e.html,title:e.title||`banner-${n}`,frameborder:`0`,allowfullscreen:``},null,8,Ig)):e.type===`html`||e.html?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:1,class:`fou-banner__html`,innerHTML:e.html},null,8,Lg)):((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:2},[e.image?((0,t.openBlock)(),(0,t.createElementBlock)(`img`,{key:0,class:`fou-banner__image`,src:e.image,alt:e.title||``},null,8,Rg)):(0,t.createCommentVNode)(``,!0),r[0]||=(0,t.createElementVNode)(`div`,{class:`fou-banner__mask`},null,-1),l(e)?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,zg,[e.title?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:`fou-banner__title`,innerHTML:e.title},null,8,Bg)):(0,t.createCommentVNode)(``,!0),e.description?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Vg,(0,t.toDisplayString)(e.description),1)):(0,t.createCommentVNode)(``,!0),e.actions?.length?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Hg,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.actions,(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:r,type:`button`,class:(0,t.normalizeClass)([`fou-banner__btn`,n.type||`primary`]),onClick:(0,t.withModifiers)(t=>y(n,e),[`stop`])},(0,t.toDisplayString)(n.text),11,Ug))),128))])):(0,t.createCommentVNode)(``,!0)])):(0,t.createCommentVNode)(``,!0)],64))],10,Fg))),128))]),(0,t.unref)(o).length>1?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Wg,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(o),(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:n,type:`button`,class:(0,t.normalizeClass)([`fou-banner__dot`,{"is-active":n===(0,t.unref)(s)}]),onClick:(0,t.withModifiers)(e=>d(n),[`stop`])},null,10,Gg))),128))])):(0,t.createCommentVNode)(``,!0),(0,t.unref)(o).length>1&&e.arrow!==`never`?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:1,type:`button`,class:`fou-banner__nav fou-banner__nav--prev`,"aria-label":`prev`,onClick:(0,t.withModifiers)(p,[`stop`])},[(0,t.createVNode)(i,{icon:`arrow-left-s-line`})])):(0,t.createCommentVNode)(``,!0),(0,t.unref)(o).length>1&&e.arrow!==`never`?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:2,type:`button`,class:`fou-banner__nav fou-banner__nav--next`,"aria-label":`next`,onClick:(0,t.withModifiers)(f,[`stop`])},[(0,t.createVNode)(i,{icon:`arrow-right-s-line`})])):(0,t.createCommentVNode)(``,!0)],36)}}}),qg=v({default:()=>Jg}),Jg=S(Kg,[[`__scopeId`,`data-v-d725c76c`]]),Yg=Symbol(`FouBreadcrumb`),Xg=[`href`],Zg=[`aria-current`],Qg={key:2,class:`fou-breadcrumb-item__separator`,"aria-hidden":`true`},$g=(0,t.defineComponent)({name:`FouBreadcrumbItem`,__name:`FouBreadcrumbItem`,props:{to:{},replace:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},setup(e){let n=e,r=(0,t.inject)(Yg,null),i=(0,t.computed)(()=>!!r&&!n.disabled),a=(()=>{try{return(0,o.useRouter)()}catch{return null}})(),s=(0,t.computed)(()=>n.to!==void 0&&n.to!==null&&n.to!==``),c=(0,t.computed)(()=>{if(s.value)try{return a?.resolve(n.to).href}catch{return typeof n.to==`string`?n.to:void 0}}),l=()=>{if(!(n.disabled||!s.value)){if(!a){typeof n.to==`string`&&window.location.assign(n.to);return}(n.replace?a.replace(n.to):a.push(n.to)).catch(()=>{})}};return(n,a)=>{let o=k;return(0,t.openBlock)(),(0,t.createElementBlock)(`span`,{class:(0,t.normalizeClass)([`fou-breadcrumb-item`,{"is-link":(0,t.unref)(s),"is-disabled":e.disabled}])},[(0,t.unref)(s)&&!e.disabled?((0,t.openBlock)(),(0,t.createElementBlock)(`a`,{key:0,class:`fou-breadcrumb-item__inner`,href:(0,t.unref)(c),onClick:(0,t.withModifiers)(l,[`prevent`])},[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)],8,Xg)):((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:1,class:`fou-breadcrumb-item__inner`,"aria-current":e.disabled?`page`:void 0},[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)],8,Zg)),(0,t.unref)(i)?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Qg,[(0,t.unref)(r)?.separatorIcon.value?((0,t.openBlock)(),(0,t.createBlock)(o,{key:0,icon:(0,t.unref)(r).separatorIcon.value},null,8,[`icon`])):((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:1},[(0,t.createTextVNode)((0,t.toDisplayString)((0,t.unref)(r)?.separator.value),1)],64))])):(0,t.createCommentVNode)(``,!0)],2)}}}),e_=v({default:()=>t_}),t_=S($g,[[`__scopeId`,`data-v-2ba3ecee`]]),n_=[`aria-label`],r_={class:`fou-breadcrumb__list`},i_=(0,t.defineComponent)({name:`FouBreadcrumb`,__name:`index`,props:{separator:{default:`/`},separatorIcon:{default:``},items:{default:()=>[]},auto:{type:Boolean,default:!1},ariaLabel:{default:`面包屑`}},setup(e){let n=e;(0,t.provide)(Yg,{separator:(0,t.computed)(()=>n.separator),separatorIcon:(0,t.computed)(()=>n.separatorIcon)});let r=(()=>{try{return(0,o.useRoute)()}catch{return null}})(),i=(0,t.computed)(()=>n.items?.length?n.items:!n.auto||!r?[]:r.matched.filter(e=>e.meta?.title||e.meta?.breadcrumb||e.name).map(e=>({label:String(e.meta?.breadcrumb||e.meta?.title||e.name||``),to:e.name?{name:e.name,params:r.params,query:r.query}:void 0})).filter(e=>e.label));return(n,r)=>{let a=k;return(0,t.openBlock)(),(0,t.createElementBlock)(`nav`,{class:`fou-breadcrumb`,"aria-label":e.ariaLabel},[(0,t.createElementVNode)(`ol`,r_,[(0,t.unref)(i).length?((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,{key:0},(0,t.renderList)((0,t.unref)(i),(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`li`,{key:`${e.label}-${n}`,class:`fou-breadcrumb__item`},[(0,t.createVNode)(t_,{to:e.to,replace:e.replace,disabled:e.disabled||n===(0,t.unref)(i).length-1},{default:(0,t.withCtx)(()=>[e.icon?((0,t.openBlock)(),(0,t.createBlock)(a,{key:0,icon:e.icon,class:`fou-breadcrumb__icon`},null,8,[`icon`])):(0,t.createCommentVNode)(``,!0),(0,t.createTextVNode)(` `+(0,t.toDisplayString)(e.label),1)]),_:2},1032,[`to`,`replace`,`disabled`])]))),128)):(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0,1)])],8,n_)}}}),a_=v({default:()=>o_}),o_=S(i_,[[`__scopeId`,`data-v-bd048de6`]]),s_={class:`fou-calendar__header`},c_={class:`fou-calendar__title`},l_={class:`fou-calendar__actions`},u_={key:0,class:`fou-calendar__week`},d_={key:1,class:`fou-calendar__grid fou-calendar__grid--day`},f_=[`disabled`,`onClick`],p_={class:`fou-calendar__solar`},m_={key:1,class:`fou-calendar__marks`},h_={key:2,class:`fou-calendar__grid fou-calendar__grid--month`},g_=[`onClick`],__=(0,t.defineComponent)({name:`FouCalendar`,__name:`index`,props:{modelValue:{},showLunar:{type:Boolean,default:!0},firstDayOfWeek:{default:0},disabledDate:{},marks:{default:()=>[]},range:{}},emits:[`update:modelValue`,`input`,`change`,`panel-change`],setup(e,{emit:n}){let r=e,i=n,o=[`日`,`一`,`二`,`三`,`四`,`五`,`六`],s=[`一月`,`二月`,`三月`,`四月`,`五月`,`六月`,`七月`,`八月`,`九月`,`十月`,`十一月`,`十二月`],c=new Date,l=(0,t.ref)(`month`),u=(0,t.ref)(c.getFullYear()),d=(0,t.ref)(c.getMonth()),f=e=>{if(e==null||e===``)return null;if(e instanceof Date)return Number.isNaN(e.getTime())?null:e;let t=new Date(e);return Number.isNaN(t.getTime())?null:t},p=(0,t.computed)(()=>f(r.modelValue)||c),m=(0,t.computed)(()=>new Date(u.value,d.value,1)),h=(0,t.computed)(()=>{let e=(r.firstDayOfWeek%7+7)%7;return[...o.slice(e),...o.slice(0,e)]}),g=(0,t.computed)(()=>l.value===`year`?`${u.value} 年`:`${u.value} 年 ${d.value+1} 月`),_=(e,t)=>!e||!t?!1:e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate(),v=(e,t)=>!e||!t?!1:e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth(),y=e=>`${e.getFullYear()}-${e.getMonth()+1}-${e.getDate()}`,b=new Map,x=e=>{try{let t=y(e);if(b.has(t))return b.get(t);let n=a.Solar.fromYmd(e.getFullYear(),e.getMonth()+1,e.getDate()),r=n.getLunar(),i=[...r.getFestivals(),...n.getFestivals()],o=r.getJieQi(),s=r.getDayInChinese(),c=``;i.length?(c=i[0],s=c):o?(c=o,s=o):r.getDay()===1&&(s=`${r.getMonthInChinese()}月`);let l={label:s,festival:c||void 0};return b.set(t,l),l}catch{return{label:``}}},S=(0,t.computed)(()=>{if(!r.range?.length)return null;let e=f(r.range[0]),t=f(r.range[1]);return!e||!t?null:e.getTime()<=t.getTime()?[e,t]:[t,e]}),C=(0,t.computed)(()=>{let e=new Map;return r.marks.forEach(t=>{let n=f(t.date);if(!n)return;let r=y(n),i=e.get(r)||[];i.push(t),e.set(r,i)}),e}),w=(0,t.computed)(()=>{let e=u.value,t=d.value,n=(new Date(e,t,1).getDay()-(r.firstDayOfWeek%7+7)%7+7)%7,i=new Date(e,t+1,0).getDate(),a=[],o=S.value,s=o?new Date(o[0].getFullYear(),o[0].getMonth(),o[0].getDate()).getTime():0,l=o?new Date(o[1].getFullYear(),o[1].getMonth(),o[1].getDate(),23,59,59,999).getTime():0,f=(e,t)=>{let n=e.getTime();a.push({key:y(e),date:e,day:e.getDate(),inMonth:t,disabled:r.disabledDate?.(e)??!1,selected:_(e,p.value),isToday:_(e,c),inRange:o?n>=s&&n<=l:!1,lunar:x(e),marks:C.value.get(y(e))||[]})};for(let r=0;r<n;r++)f(new Date(e,t,-n+r+1),!1);for(let n=1;n<=i;n++)f(new Date(e,t,n),!0);for(;a.length%7!=0;){let e=a[a.length-1].date;f(new Date(e.getFullYear(),e.getMonth(),e.getDate()+1),!1)}return a}),T=e=>({"is-other-month":!e.inMonth,"is-disabled":e.disabled,"is-selected":e.selected,"is-today":e.isToday,"is-in-range":e.inRange}),E=e=>{r.disabledDate?.(e)||(u.value=e.getFullYear(),d.value=e.getMonth(),i(`update:modelValue`,e),i(`input`,e),i(`change`,e))},D=e=>{d.value=e,l.value=`month`,i(`panel-change`,m.value,`month`)},O=e=>{if(l.value===`year`)u.value+=e;else{let t=new Date(u.value,d.value+e,1);u.value=t.getFullYear(),d.value=t.getMonth()}i(`panel-change`,m.value,l.value)},k=()=>{u.value=c.getFullYear(),d.value=c.getMonth(),E(new Date(c.getFullYear(),c.getMonth(),c.getDate()))};return(0,t.watch)(()=>r.modelValue,e=>{let t=f(e);t&&(u.value=t.getFullYear(),d.value=t.getMonth())},{immediate:!0}),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-calendar`,{"is-lunar":e.showLunar}])},[(0,t.createElementVNode)(`div`,s_,[(0,t.renderSlot)(n.$slots,`header`,{date:(0,t.unref)(m),view:(0,t.unref)(l)},()=>[(0,t.createElementVNode)(`div`,c_,(0,t.toDisplayString)((0,t.unref)(g)),1),(0,t.createElementVNode)(`div`,l_,[(0,t.createElementVNode)(`button`,{type:`button`,class:`fou-calendar__btn`,onClick:r[0]||=e=>O(-1)},`上一`+(0,t.toDisplayString)((0,t.unref)(l)===`year`?`年`:`月`),1),(0,t.createElementVNode)(`button`,{type:`button`,class:`fou-calendar__btn`,onClick:k},`今天`),(0,t.createElementVNode)(`button`,{type:`button`,class:`fou-calendar__btn`,onClick:r[1]||=e=>O(1)},`下一`+(0,t.toDisplayString)((0,t.unref)(l)===`year`?`年`:`月`),1),(0,t.createElementVNode)(`button`,{type:`button`,class:`fou-calendar__btn fou-calendar__btn--ghost`,onClick:r[2]||=e=>l.value=(0,t.unref)(l)===`month`?`year`:`month`},(0,t.toDisplayString)((0,t.unref)(l)===`month`?`年视图`:`月视图`),1)])],!0)]),(0,t.unref)(l)===`month`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,u_,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(h),e=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:e,class:`fou-calendar__week-cell`},(0,t.toDisplayString)(e),1))),128))])):(0,t.createCommentVNode)(``,!0),(0,t.unref)(l)===`month`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,d_,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(w),r=>((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:r.key,type:`button`,class:(0,t.normalizeClass)([`fou-calendar__cell`,T(r)]),disabled:r.disabled,onClick:e=>E(r.date)},[(0,t.renderSlot)(n.$slots,`date-cell`,{date:r.date,data:r},()=>[(0,t.createElementVNode)(`span`,p_,(0,t.toDisplayString)(r.day),1),e.showLunar?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:0,class:(0,t.normalizeClass)([`fou-calendar__lunar`,{"is-festival":r.lunar.festival}])},(0,t.toDisplayString)(r.lunar.label),3)):(0,t.createCommentVNode)(``,!0),r.marks.length?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,m_,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(r.marks.slice(0,3),(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`i`,{key:n,class:(0,t.normalizeClass)([`fou-calendar__dot`,`is-${e.type||`primary`}`])},null,2))),128))])):(0,t.createCommentVNode)(``,!0)],!0)],10,f_))),128))])):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,h_,[((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(s,(e,n)=>(0,t.createElementVNode)(`button`,{key:e,type:`button`,class:(0,t.normalizeClass)([`fou-calendar__cell fou-calendar__cell--month`,{"is-selected":(0,t.unref)(m).getFullYear()===(0,t.unref)(u)&&(0,t.unref)(m).getMonth()===n&&v((0,t.unref)(p),new Date((0,t.unref)(u),n,1)),"is-today":(0,t.unref)(c).getFullYear()===(0,t.unref)(u)&&(0,t.unref)(c).getMonth()===n}]),onClick:e=>D(n)},(0,t.toDisplayString)(e),11,g_)),64))]))],2))}}),v_=v({default:()=>y_}),y_=S(__,[[`__scopeId`,`data-v-0faedd2d`]]),b_=Symbol(`FouCarousel`),x_={class:`fou-carousel__viewport`},S_=[`aria-hidden`],C_=[`aria-label`,`onClick`],w_={class:`fou-carousel__registry`,"aria-hidden":`true`},T_=(0,t.defineComponent)({name:`FouCarousel`,__name:`index`,props:{modelValue:{default:0},autoplay:{type:Boolean,default:!0},interval:{default:3e3},height:{default:``},indicatorPosition:{default:`inside`},arrow:{default:`hover`},loop:{type:Boolean,default:!0}},emits:[`update:modelValue`,`change`],setup(e,{expose:n,emit:r}){let i=e,a=r,o=(0,t.ref)([]),s=(0,t.ref)(new Map),c=null,l=(0,t.computed)(()=>o.value.length),u=(0,t.computed)({get(){return l.value?((i.modelValue??0)%l.value+l.value)%l.value:0},set(e){a(`update:modelValue`,e),a(`change`,e)}}),d=(0,t.computed)(()=>{if(i.height!==``&&i.height!=null)return{height:typeof i.height==`number`?`${i.height}px`:i.height}}),f=(0,t.computed)(()=>({transform:`translateX(-${u.value*100}%)`})),p=e=>{let n=s.value.get(e);return n?(0,t.defineComponent)({name:`FouCarouselSlideHost`,setup:()=>()=>{let e=n();return Array.isArray(e)?e:e??null}}):null};(0,t.provide)(b_,{activeIndex:u,itemCount:l,registerItem:e=>{let t=o.value.findIndex(t=>t.uid===e.uid);return t>=0?o.value[t]=e:o.value.push(e),o.value.findIndex(t=>t.uid===e.uid)},unregisterItem:e=>{o.value=o.value.filter(t=>t.uid!==e),s.value.delete(e)},loop:(0,t.toRef)(i,`loop`)}),(0,t.provide)(`fouCarouselRegisterRender`,(e,t)=>{s.value.set(e,t)});let m=e=>{l.value&&(u.value=(e%l.value+l.value)%l.value)},h=()=>{l.value&&(u.value>=l.value-1?u.value=i.loop?0:l.value-1:u.value+=1)},g=()=>{l.value&&(u.value<=0?u.value=i.loop?l.value-1:0:--u.value)},_=()=>{v(),!(!i.autoplay||l.value<=1)&&(c=setInterval(()=>h(),i.interval))},v=()=>{c&&=(clearInterval(c),null)},y=()=>v(),b=()=>_();return(0,t.watch)(()=>[i.autoplay,i.interval,l.value],()=>_(),{immediate:!0}),(0,t.onBeforeUnmount)(v),n({next:h,prev:g,goTo:m}),(n,r)=>{let i=k;return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-carousel`,[`fou-carousel--arrow-${e.arrow}`]]),style:(0,t.normalizeStyle)((0,t.unref)(d)),onMouseenter:y,onMouseleave:b},[(0,t.createElementVNode)(`div`,x_,[(0,t.createElementVNode)(`div`,{class:`fou-carousel__track`,style:(0,t.normalizeStyle)((0,t.unref)(f))},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(o),(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:e.uid,class:(0,t.normalizeClass)([`fou-carousel__slide`,{"is-active":n===(0,t.unref)(u)}]),"aria-hidden":n!==(0,t.unref)(u)},[p(e.uid)?((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(p(e.uid)),{key:0})):(0,t.createCommentVNode)(``,!0)],10,S_))),128))],4),e.arrow!==`never`&&(0,t.unref)(l)>1?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:0,type:`button`,class:`fou-carousel__arrow fou-carousel__arrow--left`,"aria-label":`previous`,onClick:(0,t.withModifiers)(g,[`stop`])},[(0,t.createVNode)(i,{icon:`arrow-left-s-line`})])):(0,t.createCommentVNode)(``,!0),e.arrow!==`never`&&(0,t.unref)(l)>1?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:1,type:`button`,class:`fou-carousel__arrow fou-carousel__arrow--right`,"aria-label":`next`,onClick:(0,t.withModifiers)(h,[`stop`])},[(0,t.createVNode)(i,{icon:`arrow-right-s-line`})])):(0,t.createCommentVNode)(``,!0)]),e.indicatorPosition!==`none`&&(0,t.unref)(l)>1?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:(0,t.normalizeClass)([`fou-carousel__indicators`,`fou-carousel__indicators--${e.indicatorPosition}`])},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(l),(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:n,type:`button`,class:(0,t.normalizeClass)([`fou-carousel__indicator`,{"is-active":n===(0,t.unref)(u)}]),"aria-label":`slide ${n+1}`,onClick:(0,t.withModifiers)(e=>m(n),[`stop`])},null,10,C_))),128))],2)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,w_,[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)])],38)}}}),E_=v({default:()=>D_}),D_=S(T_,[[`__scopeId`,`data-v-5b42731e`]]),O_=[`data-uid`],k_=(0,t.defineComponent)({name:`FouCarouselItem`,__name:`index`,props:{name:{}},setup(e){let n=e,r=(0,t.useSlots)(),i=(0,t.inject)(b_,null),a=(0,t.inject)(`fouCarouselRegisterRender`,()=>{}),o=(0,t.getCurrentInstance)()?.uid??Math.random();return(0,t.onMounted)(()=>{i?.registerItem({uid:o,name:n.name}),a(o,()=>r.default?.())}),(0,t.onUpdated)(()=>{a(o,()=>r.default?.())}),(0,t.onUnmounted)(()=>{i?.unregisterItem(o)}),(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:`fou-carousel-item`,"data-uid":(0,t.unref)(o)},[(0,t.renderSlot)(e.$slots,`default`,{},void 0,!0)],8,O_))}}),A_=v({default:()=>j_}),j_=S(k_,[[`__scopeId`,`data-v-7b4c1bf2`]]),M_=[`disabled`,`aria-checked`],N_=(0,t.defineComponent)({name:`FouCheckTag`,__name:`index`,props:{modelValue:{type:Boolean,default:!1},type:{default:`primary`},size:{default:`default`},disabled:{type:Boolean,default:!1}},emits:[`update:modelValue`,`change`],setup(e,{emit:n}){let r=e,i=n,a=()=>{if(r.disabled)return;let e=!r.modelValue;i(`update:modelValue`,e),i(`change`,e)};return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{type:`button`,class:(0,t.normalizeClass)([`fou-check-tag`,[`fou-check-tag--${e.type}`,`fou-check-tag--${e.size}`,{"is-checked":e.modelValue,"is-disabled":e.disabled}]]),disabled:e.disabled,role:`checkbox`,"aria-checked":e.modelValue,onClick:a},[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)],10,M_))}}),P_=v({default:()=>F_}),F_=S(N_,[[`__scopeId`,`data-v-09c8f803`]]),I_=(0,t.defineComponent)({name:`FouCode`,__name:`index`,props:{code:{default:``},language:{default:`text`},wrap:{type:Boolean,default:!1},theme:{default:`light`}},setup(e){let n=e,r=(0,t.computed)(()=>String(n.code??``).replace(/\n$/,``));return(n,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`pre`,{class:(0,t.normalizeClass)([`fou-code`,[`fou-code--${e.theme}`,{"is-wrap":e.wrap}]])},[(0,t.createElementVNode)(`code`,null,(0,t.toDisplayString)(r.value),1)],2))}}),L_=v({default:()=>R_}),R_=S(I_,[[`__scopeId`,`data-v-9dfa1c9c`]]),z_=Symbol(`fouRow`),B_=(0,t.defineComponent)({name:`FouCol`,__name:`index`,props:{span:{default:24},offset:{default:0},push:{default:0},pull:{default:0},xs:{},sm:{},md:{},lg:{},xl:{}},setup(e){let n=e,r=(0,t.inject)(z_,null),i=e=>e==null?null:typeof e==`number`?{span:e,offset:0}:{span:e.span??24,offset:e.offset??0},a=(0,t.computed)(()=>{let e=[`fou-col-${n.span}`];return n.offset&&e.push(`fou-col-offset-${n.offset}`),n.push&&e.push(`fou-col-push-${n.push}`),n.pull&&e.push(`fou-col-pull-${n.pull}`),[`xs`,`sm`,`md`,`lg`,`xl`].forEach(t=>{let r=i(n[t]);r&&(e.push(`fou-col-${t}-${r.span}`),r.offset&&e.push(`fou-col-${t}-offset-${r.offset}`))}),e}),o=(0,t.computed)(()=>{let e=r?.gutter.value||0;if(e)return{paddingLeft:`${e/2}px`,paddingRight:`${e/2}px`}});return(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-col`,(0,t.unref)(a)]),style:(0,t.normalizeStyle)((0,t.unref)(o))},[(0,t.renderSlot)(e.$slots,`default`)],6))}}),V_=v({default:()=>H_}),H_=B_,U_=Symbol(`FouCollapse`),W_={class:`fou-collapse`,role:`presentation`},G_=(0,t.defineComponent)({name:`FouCollapse`,__name:`index`,props:{modelValue:{},accordion:{type:Boolean,default:!1}},emits:[`update:modelValue`,`change`],setup(e,{emit:n}){let r=e,i=n,a=e=>e==null?[]:Array.isArray(e)?[...e]:[e],o=(0,t.computed)({get(){return a(r.modelValue)},set(e){let t=r.accordion?e[0]??``:e;i(`update:modelValue`,t),i(`change`,t)}}),s=e=>o.value.includes(e);return(0,t.provide)(U_,{activeNames:o,accordion:(0,t.toRef)(r,`accordion`),toggleItem:e=>{if(r.accordion){o.value=s(e)?[]:[e];return}let t=new Set(o.value);t.has(e)?t.delete(e):t.add(e),o.value=[...t]},isActive:s}),(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,W_,[(0,t.renderSlot)(e.$slots,`default`,{},void 0,!0)]))}}),K_=v({default:()=>q_}),q_=S(G_,[[`__scopeId`,`data-v-7a74db58`]]),J_=[`disabled`,`aria-expanded`],Y_={class:`fou-collapse-item__title`},X_={class:`fou-collapse-item__content-inner`},Z_=(0,t.defineComponent)({name:`FouCollapseItem`,__name:`index`,props:{name:{},title:{default:``},disabled:{type:Boolean,default:!1}},setup(e){let n=e,r=(0,t.inject)(U_,null),i=(0,t.ref)(null),a=(0,t.ref)(0),o=(0,t.computed)(()=>r?.isActive(n.name)??!1),s=()=>{n.disabled||!r||r.toggleItem(n.name)},c=()=>{i.value&&(a.value=i.value.scrollHeight)};(0,t.watch)(o,async e=>{e&&(await(0,t.nextTick)(),c())});let l=null;return(0,t.onMounted)(()=>{c(),typeof ResizeObserver<`u`&&i.value&&(l=new ResizeObserver(c),l.observe(i.value))}),(0,t.onBeforeUnmount)(()=>{l?.disconnect()}),(n,r)=>{let a=k;return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-collapse-item`,{"is-active":(0,t.unref)(o),"is-disabled":e.disabled}])},[(0,t.createElementVNode)(`button`,{type:`button`,class:`fou-collapse-item__header`,disabled:e.disabled,"aria-expanded":(0,t.unref)(o),onClick:s},[(0,t.createElementVNode)(`span`,Y_,[(0,t.renderSlot)(n.$slots,`title`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.title),1)],!0)]),(0,t.createVNode)(a,{class:(0,t.normalizeClass)([`fou-collapse-item__arrow`,{"is-active":(0,t.unref)(o)}]),icon:`arrow-down-s-line`},null,8,[`class`])],8,J_),(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`fou-collapse-item__wrap`,{"is-active":(0,t.unref)(o)}])},[(0,t.createElementVNode)(`div`,{ref_key:`contentRef`,ref:i,class:`fou-collapse-item__content`},[(0,t.createElementVNode)(`div`,X_,[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)])],512)],2)],2)}}}),Q_=v({default:()=>$_}),$_=S(Z_,[[`__scopeId`,`data-v-61260f89`]]),ev=(0,t.defineComponent)({name:`FouColorPicker`,__name:`index`,props:{modelValue:{default:``},presets:{default:()=>[`#1675fe`,`#409eff`,`#67c23a`,`#e6a23c`,`#f56c6c`,`#909399`,`#00bcd4`,`#9c27b0`,`#ff5722`,`#795548`]},placeholder:{default:`#1675fe`},clearable:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},emits:[`update:modelValue`,`change`],setup(e,{emit:n}){let r=n;return(n,i)=>((0,t.openBlock)(),(0,t.createBlock)(_f,(0,t.mergeProps)({class:`fou-color-picker`},n.$attrs,{"model-value":e.modelValue,presets:e.presets,placeholder:e.placeholder,clearable:e.clearable,disabled:e.disabled,"onUpdate:modelValue":i[0]||=e=>r(`update:modelValue`,e),onChange:i[1]||=e=>r(`change`,e)}),null,16,[`model-value`,`presets`,`placeholder`,`clearable`,`disabled`]))}}),tv=v({default:()=>nv}),nv=S(ev,[[`__scopeId`,`data-v-b28d5132`]]),rv={key:0,class:`fou-colorful-card__header`},iv={key:1,class:`fou-colorful-card__title`},av=`#0f766e`,ov=`#2dd4bf`,sv=(0,t.defineComponent)({name:`FouColorfulCard`,__name:`index`,props:{bodyStyle:{type:[Object,String],default:()=>({})},shadow:{type:String,default:`never`},colorFrom:{type:String,default:``},colorTo:{type:String,default:``},title:{type:String,default:``},icon:{type:String,default:``},style:{type:Object,default:()=>({})}},setup(e){let n=e,r=(0,t.computed)(()=>{let e=n.colorFrom||av,t=n.colorTo||ov,r=n.style&&Object.keys(n.style).length>0?n.style:{};return{background:`linear-gradient(120deg, ${e} 10%, ${t})`,...r}});return(n,i)=>{let a=k;return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-colorful-card`,[`fou-colorful-card--shadow-${e.shadow}`]]),style:(0,t.normalizeStyle)((0,t.unref)(r))},[n.$slots.header?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,rv,[(0,t.renderSlot)(n.$slots,`header`,{},void 0,!0)])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,{class:`fou-colorful-card__body`,style:(0,t.normalizeStyle)(e.bodyStyle)},[e.icon?((0,t.openBlock)(),(0,t.createBlock)(a,{key:0,class:`fou-colorful-card__icon`,icon:e.icon},null,8,[`icon`])):(0,t.createCommentVNode)(``,!0),e.title?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,iv,(0,t.toDisplayString)(e.title),1)):(0,t.createCommentVNode)(``,!0),(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)],4)],6)}}}),cv=v({default:()=>lv}),lv=S(sv,[[`__scopeId`,`data-v-23113c4c`]]),uv=[`value`,`placeholder`,`disabled`,`onKeydown`],dv={key:0,class:`fou-combobox__list`},fv=[`onMouseenter`,`onClick`],pv={key:1,class:`fou-combobox__empty`},mv=(0,t.defineComponent)({name:`FouCombobox`,__name:`index`,props:{modelValue:{default:``},options:{default:()=>[]},placeholder:{default:`请选择`},size:{default:`default`},disabled:{type:Boolean,default:!1},allowFree:{type:Boolean,default:!1},filterable:{type:Boolean,default:!0}},emits:[`update:modelValue`,`change`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.ref)(null),o=(0,t.ref)(null),s=(0,t.ref)(!1),c=(0,t.ref)(``),l=(0,t.ref)(0),u=(0,t.ref)({}),d=(0,t.computed)(()=>{let e=r.options.find(e=>e.value===r.modelValue);return e?e.label:``}),f=(0,t.computed)(()=>{if(!r.filterable||!c.value)return r.options;let e=c.value.toLowerCase();return r.options.filter(t=>t.label.toLowerCase().includes(e))});(0,t.watch)(()=>r.modelValue,()=>{c.value=d.value},{immediate:!0});let p=()=>{let e=a.value,t=o.value;if(!e||!t)return;let n=e.getBoundingClientRect(),r=t.getBoundingClientRect(),i=n.bottom+4;i+r.height>window.innerHeight-4&&(i=n.top-r.height-4);let s=Math.min(Math.max(4,n.left),window.innerWidth-r.width-4);u.value={position:`fixed`,top:`${Math.max(4,i)}px`,left:`${s}px`,width:`${n.width}px`,zIndex:`2100`}},m=async()=>{r.disabled||(s.value=!0,l.value=0,await(0,t.nextTick)(),p())},h=()=>{s.value&&(s.value=!1,c.value=d.value)},g=()=>s.value?h():m(),_=e=>{c.value=e.target.value,s.value||m()},v=()=>{if(!s.value)return m();l.value<f.value.length-1&&l.value++},y=()=>{l.value>0&&l.value--},b=()=>{let e=f.value[l.value];e&&x(e)},x=e=>{i(`update:modelValue`,e.value),i(`change`,e),c.value=e.label,s.value=!1},S=e=>{if(!s.value)return;let t=e.target;a.value?.contains(t)||o.value?.contains(t)||h()};return(0,t.watch)(s,e=>{e?document.addEventListener(`mousedown`,S,!0):document.removeEventListener(`mousedown`,S,!0)}),(0,t.onBeforeUnmount)(()=>document.removeEventListener(`mousedown`,S,!0)),(n,r)=>{let i=k;return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,{ref_key:`rootRef`,ref:a,class:(0,t.normalizeClass)([`fou-combobox`,[`fou-combobox--${e.size}`,{"is-open":s.value,"is-disabled":e.disabled}]])},[(0,t.createElementVNode)(`div`,{class:`fou-combobox__control`,onClick:g},[(0,t.createElementVNode)(`input`,{class:`fou-combobox__input`,value:c.value,placeholder:e.placeholder,disabled:e.disabled,onInput:_,onKeydown:[(0,t.withKeys)((0,t.withModifiers)(v,[`prevent`]),[`down`]),(0,t.withKeys)((0,t.withModifiers)(y,[`prevent`]),[`up`]),(0,t.withKeys)((0,t.withModifiers)(b,[`prevent`]),[`enter`]),(0,t.withKeys)(h,[`esc`])]},null,40,uv),(0,t.createVNode)(i,{icon:`arrow-down-s-line`,class:(0,t.normalizeClass)([`fou-combobox__arrow`,{"is-open":s.value}])},null,8,[`class`])]),((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:`body`},[(0,t.withDirectives)((0,t.createElementVNode)(`div`,{ref_key:`panelRef`,ref:o,class:`fou-combobox__panel`,style:(0,t.normalizeStyle)(u.value)},[f.value.length?((0,t.openBlock)(),(0,t.createElementBlock)(`ul`,dv,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(f.value,(r,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`li`,{key:r.value,class:(0,t.normalizeClass)([`fou-combobox__option`,{"is-active":i===l.value,"is-selected":r.value===e.modelValue}]),onMouseenter:e=>l.value=i,onClick:e=>x(r)},[(0,t.renderSlot)(n.$slots,`option`,{option:r},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(r.label),1)],!0)],42,fv))),128))])):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,pv,`无匹配项`))],4),[[t.vShow,s.value]])]))],2)}}}),hv=v({default:()=>gv}),gv=S(mv,[[`__scopeId`,`data-v-092b1fc6`]]),_v=(0,t.defineComponent)({name:`FouConfigProvider`,__name:`index`,props:{size:{default:`default`},locale:{},zIndex:{default:2e3}},setup(e){let n=e;return(0,t.provide)(`fouConfigProvider`,{size:(0,t.toRef)(n,`size`),locale:(0,t.toRef)(n,`locale`),zIndex:(0,t.toRef)(n,`zIndex`)}),(e,n)=>(0,t.renderSlot)(e.$slots,`default`)}}),vv=v({default:()=>yv}),yv=_v,bv={class:`fou-context-menu__list`},xv={key:0,class:`fou-context-menu__divider`,role:`separator`},Sv=[`onClick`],Cv={class:`fou-context-menu__label`},wv={key:1,class:`fou-context-menu__shortcut`},Tv=(0,t.defineComponent)({name:`FouContextMenu`,__name:`index`,props:{items:{default:()=>[]}},emits:[`select`,`command`,`visibleChange`],setup(e,{emit:n}){let r=n,i=(0,t.ref)(null),a=(0,t.ref)(null),o=(0,t.ref)(!1),s=(0,t.ref)({}),c=async e=>{e.preventDefault(),o.value=!0,r(`visibleChange`,!0),await(0,t.nextTick)(),l(e.clientX,e.clientY)},l=(e,t)=>{let n=a.value;if(!n)return;let r=n.getBoundingClientRect(),i=window.innerWidth,o=window.innerHeight,c=Math.min(e,i-r.width-4),l=Math.min(t,o-r.height-4);c=Math.max(4,c),l=Math.max(4,l),s.value={position:`fixed`,top:`${l}px`,left:`${c}px`,zIndex:`3000`}},u=()=>{o.value&&(o.value=!1,r(`visibleChange`,!1))},d=e=>{e.disabled||(r(`select`,e),e.command!==void 0&&r(`command`,e.command),u())},f=e=>{a.value?.contains(e.target)||u()},p=()=>u();return(0,t.watch)(o,e=>{e?(document.addEventListener(`mousedown`,f,!0),window.addEventListener(`scroll`,p,!0),window.addEventListener(`resize`,p)):(document.removeEventListener(`mousedown`,f,!0),window.removeEventListener(`scroll`,p,!0),window.removeEventListener(`resize`,p))}),(0,t.onBeforeUnmount)(()=>{document.removeEventListener(`mousedown`,f,!0),window.removeEventListener(`scroll`,p,!0),window.removeEventListener(`resize`,p)}),(n,r)=>{let l=k;return(0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,null,[(0,t.createElementVNode)(`span`,{ref_key:`triggerRef`,ref:i,class:`fou-context-menu`,onContextmenu:(0,t.withModifiers)(c,[`prevent`])},[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)],544),((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:`body`},[(0,t.createVNode)(t.Transition,{name:`fou-context-menu-fade`},{default:(0,t.withCtx)(()=>[o.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,ref_key:`menuRef`,ref:a,class:`fou-context-menu__panel`,style:(0,t.normalizeStyle)(s.value),onContextmenu:r[0]||=(0,t.withModifiers)(()=>{},[`prevent`]),onClick:r[1]||=(0,t.withModifiers)(()=>{},[`stop`])},[(0,t.createElementVNode)(`ul`,bv,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.items,(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:n},[e.divider?((0,t.openBlock)(),(0,t.createElementBlock)(`li`,xv)):((0,t.openBlock)(),(0,t.createElementBlock)(`li`,{key:1,class:(0,t.normalizeClass)([`fou-context-menu__item`,{"is-disabled":e.disabled}]),onClick:t=>d(e)},[e.icon?((0,t.openBlock)(),(0,t.createBlock)(l,{key:0,icon:e.icon,class:`fou-context-menu__icon`},null,8,[`icon`])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`span`,Cv,(0,t.toDisplayString)(e.label),1),e.shortcut?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,wv,(0,t.toDisplayString)(e.shortcut),1)):(0,t.createCommentVNode)(``,!0)],10,Sv))],64))),128)),(0,t.renderSlot)(n.$slots,`items`,{},void 0,!0)])],36)):(0,t.createCommentVNode)(``,!0)]),_:3})]))],64)}}}),Ev=v({default:()=>Dv}),Dv=S(Tv,[[`__scopeId`,`data-v-b83b6df9`]]),Ov=[`disabled`],kv={key:0},Av=(0,t.defineComponent)({name:`FouCopy`,__name:`index`,props:{text:{default:``},copyText:{default:`复制`},copiedText:{default:`已复制`},showText:{type:Boolean,default:!1},successMessage:{default:`已复制到剪贴板`},silent:{type:Boolean,default:!1}},emits:[`copy`,`error`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.ref)(!1),o=null,s=async e=>{if(navigator.clipboard?.writeText){await navigator.clipboard.writeText(e);return}let t=document.createElement(`textarea`);t.value=e,t.setAttribute(`readonly`,``),t.style.position=`fixed`,t.style.left=`-9999px`,document.body.appendChild(t),t.select(),document.execCommand(`copy`),document.body.removeChild(t)},c=async()=>{if(r.text)try{await s(r.text),a.value=!0,o&&clearTimeout(o),o=setTimeout(()=>{a.value=!1},1600),i(`copy`,r.text),r.silent||Q.success(r.successMessage)}catch(e){i(`error`,e),r.silent||Q.error(`复制失败`)}};return(0,t.onBeforeUnmount)(()=>{o&&clearTimeout(o)}),(n,r)=>{let i=k;return(0,t.openBlock)(),(0,t.createElementBlock)(`span`,{class:`fou-copy`,onClick:c},[(0,t.renderSlot)(n.$slots,`default`,{copied:(0,t.unref)(a),copy:c},()=>[(0,t.createElementVNode)(`button`,{type:`button`,class:`fou-copy__btn`,disabled:!e.text},[(0,t.createVNode)(i,{icon:(0,t.unref)(a)?`check-line`:`file-copy-line`},null,8,[`icon`]),e.showText?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,kv,(0,t.toDisplayString)((0,t.unref)(a)?e.copiedText:e.copyText),1)):(0,t.createCommentVNode)(``,!0)],8,Ov)],!0)])}}}),jv=v({default:()=>Mv}),Mv=S(Av,[[`__scopeId`,`data-v-65e9eb99`]]),Nv={class:`fou-countdown`},Pv={key:0,class:`fou-countdown__title`},Fv={key:0,class:`fou-countdown__prefix`},Iv={class:`fou-countdown__value`},Lv={key:1,class:`fou-countdown__suffix`},Rv=(0,t.defineComponent)({name:`FouCountdown`,__name:`index`,props:{value:{default:0},title:{default:``},prefix:{default:``},suffix:{default:``},valueStyle:{default:()=>({})},format:{default:`HH:mm:ss`}},emits:[`finish`,`change`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.ref)(Date.now()),o=(0,t.ref)(!1),s=null,c=(0,t.computed)(()=>{let e=r.value;if(e instanceof Date)return e.getTime();if(typeof e==`number`)return e;let t=Date.parse(String(e));return Number.isNaN(t)?Date.now():t}),l=(0,t.computed)(()=>Math.max(0,c.value-a.value)),u=(e,t)=>String(e).padStart(t,`0`),d=(0,t.computed)(()=>{let e=Math.floor(l.value/1e3),t=Math.floor(e/86400),n=Math.floor(e%86400/3600),i=Math.floor(e%3600/60),a=e%60,o={DD:u(t,2),D:String(t),HH:u(n,2),H:String(n),mm:u(i,2),m:String(i),ss:u(a,2),s:String(a)};return r.format.replace(/DD|HH|mm|ss|D|H|m|s/g,e=>o[e]??e)}),f=()=>{a.value=Date.now(),i(`change`,l.value),!o.value&&l.value<=0&&(o.value=!0,i(`finish`))};return(0,t.watch)(()=>r.value,()=>{s&&clearInterval(s),o.value=l.value<=0,a.value=Date.now(),s=setInterval(f,1e3),f()},{immediate:!0}),(0,t.onBeforeUnmount)(()=>{s&&clearInterval(s)}),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Nv,[e.title||n.$slots.title?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Pv,[(0,t.renderSlot)(n.$slots,`title`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.title),1)],!0)])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,{class:`fou-countdown__content`,style:(0,t.normalizeStyle)(e.valueStyle)},[e.prefix||n.$slots.prefix?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Fv,[(0,t.renderSlot)(n.$slots,`prefix`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.prefix),1)],!0)])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`span`,Iv,[(0,t.renderSlot)(n.$slots,`default`,{value:(0,t.unref)(l),formatted:(0,t.unref)(d)},()=>[(0,t.createTextVNode)((0,t.toDisplayString)((0,t.unref)(d)),1)],!0)]),e.suffix||n.$slots.suffix?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Lv,[(0,t.renderSlot)(n.$slots,`suffix`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.suffix),1)],!0)])):(0,t.createCommentVNode)(``,!0)],4)]))}}),zv=v({default:()=>Bv}),Bv=S(Rv,[[`__scopeId`,`data-v-94497669`]]),Vv=Symbol(`FouDescriptions`),Hv={key:0,class:`fou-descriptions__header`},Uv={class:`fou-descriptions__body`},Wv=(0,t.defineComponent)({name:`FouDescriptions`,__name:`index`,props:{title:{default:``},column:{default:3},border:{type:Boolean,default:!1},direction:{default:`horizontal`},size:{default:`default`}},setup(e){let n=e,r=(0,t.ref)([]);(0,t.provide)(Vv,{column:(0,t.toRef)(n,`column`),border:(0,t.toRef)(n,`border`),direction:(0,t.toRef)(n,`direction`),size:(0,t.toRef)(n,`size`),registerItem:e=>{let t=r.value.findIndex(t=>t.uid===e.uid);t>=0?r.value[t]=e:r.value.push(e)},unregisterItem:e=>{r.value=r.value.filter(t=>t.uid!==e)}});let i=(0,t.computed)(()=>({"--fou-descriptions-columns":String(Math.max(1,n.column))}));return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-descriptions`,[`fou-descriptions--${e.size}`,`fou-descriptions--${e.direction}`,{"is-bordered":e.border}]]),style:(0,t.normalizeStyle)((0,t.unref)(i))},[e.title||n.$slots.title?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Hv,[(0,t.renderSlot)(n.$slots,`title`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.title),1)],!0)])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,Uv,[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)])],6))}}),Gv=v({default:()=>Kv}),Kv=S(Wv,[[`__scopeId`,`data-v-4f65a8e7`]]),qv={class:`fou-descriptions-item__label`},Jv={class:`fou-descriptions-item__content`},Yv=(0,t.defineComponent)({name:`FouDescriptionsItem`,__name:`index`,props:{label:{default:``},span:{default:1}},setup(e){let n=e,r=(0,t.useSlots)(),i=(0,t.inject)(Vv,null),a=(0,t.getCurrentInstance)()?.uid??Math.random(),o=(0,t.computed)(()=>i?.border.value??!1),s=(0,t.computed)(()=>({gridColumn:`span ${Math.max(1,n.span)}`}));return(0,t.onMounted)(()=>{i?.registerItem({uid:a,label:n.label,span:n.span,render:()=>r.default?.()})}),(0,t.onUnmounted)(()=>{i?.unregisterItem(a)}),(0,t.watch)(()=>[n.label,n.span],()=>{i?.registerItem({uid:a,label:n.label,span:n.span,render:()=>r.default?.()})}),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-descriptions-item`,{"is-bordered":(0,t.unref)(o)}]),style:(0,t.normalizeStyle)((0,t.unref)(s))},[(0,t.createElementVNode)(`div`,qv,[(0,t.renderSlot)(n.$slots,`label`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.label),1)],!0)]),(0,t.createElementVNode)(`div`,Jv,[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)])],6))}}),Xv=v({default:()=>Zv}),Zv=S(Yv,[[`__scopeId`,`data-v-8b3da2ff`]]),Qv={key:0,class:`fou-digital-card__icon`},$v={class:`fou-digital-card__content`},ey={class:`fou-digital-card__value`},ty={key:0,class:`fou-digital-card__affix`},ny={class:`fou-digital-card__num`},ry={key:1,class:`fou-digital-card__affix`},iy={key:0,class:`fou-digital-card__title`},ay={key:1,class:`fou-digital-card__footer`},oy=(0,t.defineComponent)({name:`FouDigitalCard`,__name:`index`,props:{value:{default:0},title:{default:``},prefix:{default:``},suffix:{default:``},icon:{default:``},precision:{default:0},groupSeparator:{type:Boolean,default:!0},animated:{type:Boolean,default:!0},duration:{default:800},theme:{default:`light`}},setup(e){let n=e,r=(0,t.ref)(0),i=(0,t.computed)(()=>{let e=Number(r.value.toFixed(n.precision)).toFixed(n.precision);if(!n.groupSeparator)return e;let[t,i]=e.split(`.`),a=t.replace(/\B(?=(\d{3})+(?!\d))/g,`,`);return i?`${a}.${i}`:a}),a=e=>{if(!n.animated){r.value=e;return}let t=r.value,i=performance.now(),a=o=>{let s=Math.min(1,(o-i)/n.duration),c=1-(1-s)**3;r.value=t+(e-t)*c,s<1?requestAnimationFrame(a):r.value=e};requestAnimationFrame(a)};return(0,t.watch)(()=>n.value,e=>a(Number(e)||0),{immediate:!0}),(n,r)=>{let a=k;return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-digital-card`,[`fou-digital-card--${e.theme}`]])},[e.icon||n.$slots.icon?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Qv,[(0,t.renderSlot)(n.$slots,`icon`,{},()=>[(0,t.createVNode)(a,{icon:e.icon},null,8,[`icon`])],!0)])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,$v,[(0,t.createElementVNode)(`div`,ey,[e.prefix?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,ty,(0,t.toDisplayString)(e.prefix),1)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`span`,ny,(0,t.toDisplayString)(i.value),1),e.suffix?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,ry,(0,t.toDisplayString)(e.suffix),1)):(0,t.createCommentVNode)(``,!0)]),e.title||n.$slots.title?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,iy,[(0,t.renderSlot)(n.$slots,`title`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.title),1)],!0)])):(0,t.createCommentVNode)(``,!0),n.$slots.footer?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ay,[(0,t.renderSlot)(n.$slots,`footer`,{},void 0,!0)])):(0,t.createCommentVNode)(``,!0)])],2)}}}),sy=v({default:()=>cy}),cy=S(oy,[[`__scopeId`,`data-v-e3169d9d`]]),ly=(0,t.defineComponent)({name:`FouDot`,__name:`index`,props:{type:{values:[`primary`,`success`,`warning`,`danger`],type:String,default:`primary`}},setup(e){return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{class:(0,t.normalizeClass)(`fou-dot fou-dot-`+e.type)},null,2))}}),uy=v({default:()=>dy}),dy=S(ly,[[`__scopeId`,`data-v-626b67bc`]]),fy={key:0,class:`fou-drawer__header`},py={class:`fou-drawer__title`},my={class:`fou-drawer__body`},hy={key:1,class:`fou-drawer__footer`},gy=(0,t.defineComponent)({name:`FouDrawer`,inheritAttrs:!1,__name:`index`,props:{modelValue:{type:Boolean,default:!1},title:{default:``},direction:{default:`rtl`},size:{default:`30%`},modal:{type:Boolean,default:!0},closeOnClickModal:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!0},showClose:{type:Boolean,default:!0},animated:{type:Boolean,default:!0},zIndex:{default:0},appendToBody:{type:Boolean,default:!0},beforeClose:{}},emits:[`update:modelValue`,`open`,`opened`,`close`,`closed`],setup(e,{emit:n}){let i=(0,t.useAttrs)(),a=(0,t.computed)(()=>{let{class:e,style:t,...n}=i;return n}),o=(0,t.computed)(()=>i.style),s=e,c=(0,t.computed)(()=>s.appendToBody!==!1),l=(0,t.ref)(s.zIndex||le(4e3)),u=n,d=(0,r.useVModel)(s,`modelValue`,u),f=(0,t.computed)(()=>typeof s.size==`number`?`${s.size}px`:String(s.size)),p=(0,t.computed)(()=>{let e=f.value;switch(s.direction){case`ltr`:return{width:e,height:`100%`};case`ttb`:return{width:`100%`,height:e};case`btt`:return{width:`100%`,height:e};default:return{width:e,height:`100%`}}}),m=(0,t.computed)(()=>{switch(s.direction){case`ltr`:return`fou-drawer-slide-left`;case`ttb`:return`fou-drawer-slide-top`;case`btt`:return`fou-drawer-slide-bottom`;default:return`fou-drawer-slide-right`}}),{lock:h,unlock:g}=nt(),_=()=>{u(`close`),d.value=!1},v=()=>{if(s.beforeClose){s.beforeClose(()=>_());return}_()},y=()=>{s.closeOnClickModal&&v()},b=(0,t.computed)(()=>s.modal&&d.value);(0,t.watch)(b,e=>{e?h():g()}),(0,t.watch)(d,async e=>{e?(l.value=s.zIndex||le(4e3),window.addEventListener(`keydown`,x),u(`open`),await(0,t.nextTick)(),u(`opened`)):(window.removeEventListener(`keydown`,x),u(`closed`))});let x=e=>{s.closeOnPressEscape&&e.key===`Escape`&&v()};return(0,t.onMounted)(()=>{b.value&&h(),d.value&&window.addEventListener(`keydown`,x)}),(0,t.onBeforeUnmount)(()=>{g(),window.removeEventListener(`keydown`,x)}),(n,r)=>((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:`body`,disabled:!(0,t.unref)(c)},[(0,t.createVNode)(t.Transition,{name:(0,t.unref)(m)},{default:(0,t.withCtx)(()=>[(0,t.unref)(d)?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:(0,t.normalizeClass)([`fou-drawer-root`,[`fou-drawer-root--${e.direction}`]]),style:(0,t.normalizeStyle)({zIndex:String((0,t.unref)(l))})},[e.modal?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:`fou-drawer__mask`,onClick:y})):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,(0,t.mergeProps)({class:[`fou-drawer`,[`fou-drawer--${e.direction}`,{"fou-drawer--animated":e.animated},(0,t.unref)(i).class]]},(0,t.unref)(a),{style:[(0,t.unref)(p),(0,t.unref)(o)],role:`dialog`,"aria-modal":`true`}),[e.showClose||e.title||n.$slots.header?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,fy,[(0,t.createElementVNode)(`div`,py,[(0,t.renderSlot)(n.$slots,`header`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.title),1)],!0)]),e.showClose?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:0,type:`button`,class:`fou-drawer__close`,"aria-label":`close`,onClick:v},` × `)):(0,t.createCommentVNode)(``,!0)])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,my,[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)]),n.$slots.footer?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,hy,[(0,t.renderSlot)(n.$slots,`footer`,{},void 0,!0)])):(0,t.createCommentVNode)(``,!0)],16)],6)):(0,t.createCommentVNode)(``,!0)]),_:3},8,[`name`])],8,[`disabled`]))}}),_y=v({default:()=>vy}),vy=S(gy,[[`__scopeId`,`data-v-e3058753`]]),yy={class:`fou-ellipsis-wrap`},by=(0,t.defineComponent)({name:`FouEllipsis`,__name:`index`,props:{content:{default:``},lines:{default:1},tooltip:{type:Boolean,default:!0}},setup(e){let n=e,r=(0,t.ref)(null),i=(0,t.ref)(!1),a=(0,t.computed)(()=>n.content||r.value?.textContent?.trim()||``),o=(0,t.computed)(()=>n.tooltip&&i.value&&!!a.value),s=()=>{let e=r.value;e&&(i.value=e.scrollHeight>e.clientHeight+1||e.scrollWidth>e.clientWidth+1)},c=null;return(0,t.onMounted)(()=>{s(),c=new ResizeObserver(s),r.value&&c.observe(r.value)}),(0,t.watch)(()=>[n.content,n.lines],()=>(0,t.nextTick)(s)),(0,t.onBeforeUnmount)(()=>c?.disconnect()),(n,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,yy,[(0,t.createVNode)(ao,{content:(0,t.unref)(a),disabled:!(0,t.unref)(o)},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`span`,{ref_key:`rootRef`,ref:r,class:(0,t.normalizeClass)([`fou-ellipsis`,{"is-line-clamp":e.lines>1}]),style:(0,t.normalizeStyle)(e.lines>1?{WebkitLineClamp:String(e.lines)}:void 0)},[(0,t.renderSlot)(n.$slots,`default`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.content),1)],!0)],6)]),_:3},8,[`content`,`disabled`])]))}}),xy=v({default:()=>Sy}),Sy=S(by,[[`__scopeId`,`data-v-98b80dc2`]]);function Cy(e,t){return e.replace(/\{\{\s*([^}]+?)\s*\}\}/g,(e,n)=>{let r=t[n.trim()];return r==null?``:String(r)})}async function wy(e){if(e instanceof ArrayBuffer)return e;if(ArrayBuffer.isView(e)){let t=e;return t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}return e.arrayBuffer()}function Ty(e,t){let n=document.createElement(`a`);n.href=URL.createObjectURL(e),n.download=t,n.click(),URL.revokeObjectURL(n.href)}function Ey(e,t){let n=t.endsWith(`.xlsx`)?t:`${t}.xlsx`,r=Uint8Array.from(e);Ty(new Blob([r],{type:`application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`}),n)}function Dy(e,t){let n=typeof t==`number`?e.SheetNames[t]:t&&e.SheetNames.includes(t)?t:e.SheetNames[0],r=n?e.Sheets[n]:void 0;if(!r)throw Error(`Excel 模板没有可用的工作表`);return{name:n,ws:r}}function Oy(e){return e instanceof Date||typeof e==`number`||typeof e==`boolean`?e:e==null?``:String(e)}async function ky(e){let t=await import(`xlsx`),n=await wy(e.template),r=t.read(n,{type:`array`,cellDates:!0}),i=e.data||{};if(Object.keys(i).length&&r.SheetNames.forEach(e=>{let n=r.Sheets[e],a=n[`!ref`];if(!a)return;let o=t.utils.decode_range(a);for(let e=o.s.r;e<=o.e.r;e++)for(let r=o.s.c;r<=o.e.c;r++){let a=n[t.utils.encode_cell({r:e,c:r})];!a||typeof a.v!=`string`||!a.v.includes(`{{`)||(a.v=Cy(a.v,i),a.t=`s`,delete a.w)}}),e.cells){let{ws:t}=Dy(r);Object.entries(e.cells).forEach(([e,n])=>{t[e]={t:typeof n==`number`?`n`:`s`,v:Oy(n)}})}return e.tables?.forEach(e=>{let{ws:n}=Dy(r,e.sheet),i=e.rows.map(t=>e.columns.map(e=>Oy(t[e]))),a=e.writeHeader?[e.headers||e.columns,...i]:i;t.utils.sheet_add_aoa(n,a,{origin:e.start})}),t.write(r,{type:`array`,bookType:`xlsx`})}async function Ay(e){Ey(await ky(e),e.filename||`filled.xlsx`)}async function jy(e={}){let t=await import(`xlsx`),n=e.headers?.length?e.headers:[`名称`,`状态`,`数量`],r=t.utils.aoa_to_sheet([[e.title||`月度报表`],[`标题:{{title}}`],[`日期:{{date}}`,``,`部门:{{dept}}`],[],n]);r[`!cols`]=n.map(()=>({wch:18})),r[`!merges`]=[{s:{r:0,c:0},e:{r:0,c:Math.max(n.length-1,2)}}];let i=t.utils.book_new();return t.utils.book_append_sheet(i,r,e.sheetName||`报表`),t.write(i,{type:`array`,bookType:`xlsx`})}async function My(e={}){Ey(await jy(e),e.filename||`报表模板.xlsx`)}function Ny(e,t){let n=e[t];return!n||n.v==null?``:n.w==null?String(n.v):String(n.w)}function Py(e){return e.every(e=>!String(e??``).trim())}async function Fy(e){let t=await import(`xlsx`),n=await wy(e.file),r=t.read(n,{type:`array`,cellDates:!0}),i={};if(e.fields){let{ws:t}=Dy(r);Object.entries(e.fields).forEach(([e,n])=>{i[e]=Ny(t,n)})}let a=[];for(let n of e.tables||[]){let{ws:e}=Dy(r,n.sheet),i=t.utils.decode_cell(n.start),o=i.r+ +!!n.headerRow,s=n.maxRows??5e3,c=[],l=0;for(let r=0;r<s;r++){let a=o+r,s=n.columns.map((n,r)=>Ny(e,t.utils.encode_cell({r:a,c:i.c+r})));if(Py(s)){if(l++,l>=2)break;continue}l=0;let u={};n.columns.forEach((e,t)=>{u[e]=s[t]??``}),c.push(u)}a.push(c)}return{data:i,rows:a[0]||[],tables:a}}var Iy={class:`fou-excel-ie__actions`},Ly={key:0,class:`fou-excel-ie__status`},Ry=(0,t.defineComponent)({name:`FouExcelImportExport`,__name:`index`,props:{template:{default:null},rows:{default:()=>[]},columns:{default:()=>[`name`,`status`,`count`]},headers:{default:()=>[`名称`,`状态`,`数量`]},data:{default:()=>({})},cells:{default:void 0},tableStart:{default:`A6`},sheet:{default:void 0},writeHeader:{type:Boolean,default:!1},importFields:{default:()=>({})},importTables:{default:void 0},exportFilename:{default:`导出.xlsx`},sampleFilename:{default:`自定义报表模板.xlsx`},sampleTitle:{default:`报表模板`},size:{default:`default`},disabled:{type:Boolean,default:!1},showDownloadSample:{type:Boolean,default:!0},showStatus:{type:Boolean,default:!0},sampleText:{default:`下载示例模板`},templateText:{default:`上传自定义模板`},exportText:{default:`按模板导出`},importText:{default:`导入填好的 Excel`},requireTemplateForImport:{type:Boolean,default:!1}},emits:[`update:template`,`template-change`,`export`,`import`,`error`],setup(e,{expose:n,emit:r}){let i=e,a=r,o=(0,t.ref)(null),s=(0,t.ref)(null),c=(0,t.ref)(null),l=(0,t.ref)(!1),u=(0,t.ref)(!1),d=(0,t.computed)(()=>i.template??c.value),f=(0,t.computed)(()=>!!d.value),p=(0,t.computed)(()=>!i.requireTemplateForImport||f.value),m=(0,t.computed)(()=>{let e=d.value;return e?typeof File<`u`&&e instanceof File?e.name:`已设置模板`:``}),h=e=>{c.value=e,a(`update:template`,e),a(`template-change`,e)},g=()=>{i.disabled||o.value?.click()},_=()=>{i.disabled||!p.value||s.value?.click()},v=e=>{let t=e.target,n=t.files?.[0]||null;t.value=``,n&&h(n)},y=async()=>{if(!i.disabled)try{await My({title:i.sampleTitle,headers:i.headers,filename:i.sampleFilename})}catch(e){a(`error`,e,`sample`)}},b=async()=>d.value||jy({title:i.sampleTitle,headers:i.headers}),x=async()=>{if(!i.disabled){if(!f.value){a(`error`,Error(`请先上传自定义模板`),`export`);return}l.value=!0;try{await Ay({template:await b(),filename:i.exportFilename,data:i.data,cells:i.cells,tables:[{sheet:i.sheet,start:i.tableStart,columns:i.columns,rows:i.rows,writeHeader:i.writeHeader,headers:i.headers}]}),a(`export`,{filename:i.exportFilename,rowCount:i.rows.length})}catch(e){a(`error`,e,`export`)}finally{l.value=!1}}},S=async e=>{let t=e.target,n=t.files?.[0];if(t.value=``,!(!n||i.disabled)){u.value=!0;try{let e=i.importTables?.length?i.importTables:[{sheet:i.sheet,start:i.tableStart,columns:i.columns,headerRow:i.writeHeader}],t=await Fy({file:n,fields:i.importFields,tables:e});a(`import`,{...t,file:n})}catch(e){a(`error`,e,`import`)}finally{u.value=!1}}};return n({setTemplate:h,getTemplate:()=>d.value,pickTemplate:g,pickImport:_,exportByTemplate:x,downloadSample:y}),(n,r)=>{let i=Vt;return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-excel-ie`,{"is-disabled":e.disabled}])},[(0,t.createElementVNode)(`div`,Iy,[e.showDownloadSample?((0,t.openBlock)(),(0,t.createBlock)(i,{key:0,size:e.size,disabled:e.disabled,icon:`download-2-line`,onClick:y},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.sampleText),1)]),_:1},8,[`size`,`disabled`])):(0,t.createCommentVNode)(``,!0),(0,t.createVNode)(i,{size:e.size,disabled:e.disabled,icon:`file-upload-line`,onClick:g},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.templateText),1)]),_:1},8,[`size`,`disabled`]),(0,t.createVNode)(i,{size:e.size,disabled:e.disabled||!(0,t.unref)(f),type:`primary`,icon:`file-excel-2-line`,loading:(0,t.unref)(l),onClick:x},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.exportText),1)]),_:1},8,[`size`,`disabled`,`loading`]),(0,t.createVNode)(i,{size:e.size,disabled:e.disabled||!(0,t.unref)(p),icon:`upload-2-line`,loading:(0,t.unref)(u),onClick:_},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.importText),1)]),_:1},8,[`size`,`disabled`,`loading`]),(0,t.renderSlot)(n.$slots,`extra`,{},void 0,!0)]),e.showStatus?((0,t.openBlock)(),(0,t.createElementBlock)(`p`,Ly,[(0,t.unref)(m)?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:0},[(0,t.createTextVNode)(`当前模板:`+(0,t.toDisplayString)((0,t.unref)(m)),1)],64)):((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:1},[(0,t.createTextVNode)(`尚未上传自定义模板(可先下载示例模板再改成自己的版式)`)],64))])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`input`,{ref_key:`tplInputRef`,ref:o,class:`fou-excel-ie__file`,type:`file`,accept:`.xlsx,.xls`,onChange:v},null,544),(0,t.createElementVNode)(`input`,{ref_key:`importInputRef`,ref:s,class:`fou-excel-ie__file`,type:`file`,accept:`.xlsx,.xls`,onChange:S},null,544)],2)}}}),zy=v({default:()=>By}),By=S(Ry,[[`__scopeId`,`data-v-454c162a`]]),Vy={class:`fou-result__icon`},Hy={key:0,class:`fou-result__title`},Uy={key:1,class:`fou-result__subtitle`},Wy={key:2,class:`fou-result__extra`},Gy={key:3,class:`fou-result__content`},Ky=(0,t.defineComponent)({name:`FouResult`,__name:`index`,props:{icon:{default:``},title:{default:``},subTitle:{default:``}},setup(e){let n=e,r={success:`checkbox-circle-line`,warning:`error-warning-line`,info:`information-line`,error:`close-circle-line`},i=(0,t.computed)(()=>n.icon&&r[n.icon]||``);return(n,r)=>{let a=k;return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-result`,e.icon?`fou-result--${e.icon}`:``])},[(0,t.createElementVNode)(`div`,Vy,[(0,t.renderSlot)(n.$slots,`icon`,{},()=>[(0,t.unref)(i)?((0,t.openBlock)(),(0,t.createBlock)(a,{key:0,icon:(0,t.unref)(i)},null,8,[`icon`])):(0,t.createCommentVNode)(``,!0)],!0)]),e.title||n.$slots.title?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Hy,[(0,t.renderSlot)(n.$slots,`title`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.title),1)],!0)])):(0,t.createCommentVNode)(``,!0),e.subTitle||n.$slots[`sub-title`]?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Uy,[(0,t.renderSlot)(n.$slots,`sub-title`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.subTitle),1)],!0)])):(0,t.createCommentVNode)(``,!0),n.$slots.extra?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Wy,[(0,t.renderSlot)(n.$slots,`extra`,{},void 0,!0)])):(0,t.createCommentVNode)(``,!0),n.$slots.default?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Gy,[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)])):(0,t.createCommentVNode)(``,!0)],2)}}}),qy=v({default:()=>Jy}),Jy=S(Ky,[[`__scopeId`,`data-v-9728c3ac`]]),Yy=(0,t.defineComponent)({name:`FouException`,__name:`index`,props:{status:{default:404},title:{default:``},subTitle:{default:``},showBack:{type:Boolean,default:!0},backText:{default:`返回首页`}},emits:[`back`],setup(e,{emit:n}){let r={403:{icon:`warning`,title:`403`,subTitle:`抱歉,你没有权限访问该页面`},404:{icon:`info`,title:`404`,subTitle:`抱歉,你访问的页面不存在`},500:{icon:`error`,title:`500`,subTitle:`抱歉,服务器出了点问题`}},i=e,a=n,o=(0,t.computed)(()=>r[String(i.status)]||r[404]),s=()=>a(`back`);return(n,r)=>((0,t.openBlock)(),(0,t.createBlock)(Jy,{class:`fou-exception`,icon:(0,t.unref)(o).icon,title:e.title||(0,t.unref)(o).title,"sub-title":e.subTitle||(0,t.unref)(o).subTitle},(0,t.createSlots)({extra:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`extra`,{},()=>[e.showBack?((0,t.openBlock)(),(0,t.createBlock)(Vt,{key:0,type:`primary`,onClick:s},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.backText),1)]),_:1})):(0,t.createCommentVNode)(``,!0)])]),default:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`default`)]),_:2},[n.$slots.icon?{name:`icon`,fn:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`icon`)]),key:`0`}:void 0,n.$slots.title?{name:`title`,fn:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`title`)]),key:`1`}:void 0,n.$slots[`sub-title`]?{name:`sub-title`,fn:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`sub-title`)]),key:`2`}:void 0]),1032,[`icon`,`title`,`sub-title`]))}}),Xy=v({default:()=>Zy}),Zy=Yy,Qy=Symbol(`FouFloatButtonGroup`),$y=[`aria-label`],eb={class:`fou-float-button__icon`},tb={key:0,class:`fou-float-button__desc`},nb=(0,t.defineComponent)({name:`FouFloatButton`,__name:`index`,props:{type:{default:`default`},shape:{default:`circle`},icon:{default:``},description:{default:``},href:{default:``},target:{default:``},right:{default:40},bottom:{default:40},zIndex:{default:100}},emits:[`click`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.inject)(Qy,!1),o=(0,t.computed)(()=>a?void 0:{position:`fixed`,right:`${r.right}px`,bottom:`${r.bottom}px`,zIndex:String(r.zIndex)}),s=e=>{i(`click`,e),r.href&&window.open(r.href,r.target||`_self`)};return(n,r)=>{let i=k;return(0,t.openBlock)(),(0,t.createElementBlock)(`button`,{type:`button`,class:(0,t.normalizeClass)([`fou-float-button`,[`fou-float-button--${e.shape}`,`fou-float-button--${e.type}`,{"is-in-group":(0,t.unref)(a)}]]),style:(0,t.normalizeStyle)((0,t.unref)(o)),"aria-label":e.description||`悬浮按钮`,onClick:s},[(0,t.createElementVNode)(`span`,eb,[(0,t.renderSlot)(n.$slots,`default`,{},()=>[e.icon?((0,t.openBlock)(),(0,t.createBlock)(i,{key:0,icon:e.icon},null,8,[`icon`])):((0,t.openBlock)(),(0,t.createBlock)(i,{key:1,icon:`add-line`}))],!0)]),e.description&&e.shape===`square`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,tb,(0,t.toDisplayString)(e.description),1)):(0,t.createCommentVNode)(``,!0)],14,$y)}}}),rb=v({default:()=>ib}),ib=S(nb,[[`__scopeId`,`data-v-d71d62ad`]]),ab={class:`fou-float-button-group__items`},ob=(0,t.defineComponent)({name:`FouFloatButtonGroup`,__name:`index`,props:{type:{default:`primary`},shape:{default:`circle`},icon:{default:`apps-line`},description:{default:``},trigger:{default:`click`},right:{default:40},bottom:{default:40},zIndex:{default:100}},setup(e){let n=e;(0,t.provide)(Qy,!0);let r=(0,t.ref)(n.trigger===`hover`),i=(0,t.computed)(()=>({right:`${n.right}px`,bottom:`${n.bottom}px`,zIndex:String(n.zIndex)})),a=()=>{n.trigger!==`hover`&&(r.value=!r.value)},o=()=>{n.trigger===`hover`&&(r.value=!0)},s=()=>{n.trigger===`hover`&&(r.value=!1)};return(n,c)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:`fou-float-button-group`,style:(0,t.normalizeStyle)((0,t.unref)(i)),onMouseenter:o,onMouseleave:s},[(0,t.withDirectives)((0,t.createElementVNode)(`div`,ab,[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)],512),[[t.vShow,(0,t.unref)(r)]]),(0,t.createVNode)(ib,{type:e.type,shape:e.shape,icon:(0,t.unref)(r)?`close-line`:e.icon,description:e.description,onClick:a},null,8,[`type`,`shape`,`icon`,`description`])],36))}}),sb=v({default:()=>cb}),cb=S(ob,[[`__scopeId`,`data-v-299feda2`]]),lb=(0,t.defineComponent)({name:`FouFullscreen`,__name:`index`,setup(e){let{isFullscreen:n,toggle:i}=(0,r.useFullscreen)();return(e,r)=>{let a=k;return(0,t.openBlock)(),(0,t.createBlock)(a,{class:`fou-fullscreen`,icon:(0,t.unref)(n)?`fullscreen-exit-fill`:`fullscreen-fill`,onClick:(0,t.unref)(i)},null,8,[`icon`,`onClick`])}}}),ub=v({default:()=>db}),db=lb,fb={key:0,class:`fou-grid__form`},pb={key:0,class:`fou-grid__form-inner`},mb=[`onUpdate:modelValue`,`placeholder`],hb=(0,t.defineComponent)({name:`FouGrid`,__name:`index`,props:{columns:{default:()=>[]},data:{default:()=>[]},loading:{type:Boolean,default:!1},height:{},maxHeight:{},border:{type:[Boolean,String],default:!0},stripe:{type:Boolean},round:{type:Boolean},editable:{type:Boolean},editTrigger:{},editConfig:{},rowKey:{},showIndex:{type:Boolean},showSelection:{type:Boolean},showFooter:{type:Boolean},tree:{type:Boolean},pagerConfig:{type:[Object,Boolean]},toolbarConfig:{type:[Object,Boolean]},formConfig:{type:[Object,Boolean]},proxyConfig:{default:void 0},sortConfig:{},filterConfig:{},columnConfig:{},rowConfig:{},customConfig:{},menuConfig:{},editRules:{},virtualYConfig:{type:[Object,Boolean]},spanMethod:{},mergeCells:{}},emits:[`proxy-query`,`proxy-delete`],setup(e,{expose:n,emit:r}){let i=e,a=r,o=(0,t.ref)(null),s=(0,t.ref)(!1),c=(0,t.ref)(null),l=(0,t.ref)(null),u=(0,t.ref)(1),d=(0,t.ref)(10),f=(0,t.ref)(null),p=(0,t.ref)({}),m=(0,t.reactive)({}),h=(0,t.computed)(()=>i.toolbarConfig===!1?{enabled:!1}:i.toolbarConfig===!0||i.toolbarConfig==null?{enabled:!0,refresh:!0,export:!0,zoom:!0,custom:!0}:{enabled:!0,...i.toolbarConfig}),g=(0,t.computed)(()=>h.value.enabled!==!1),_=(0,t.computed)(()=>{let e=h.value;return{enabled:e.enabled,refresh:e.refresh,export:e.export,import:e.import,print:e.print,custom:e.custom,zoom:e.zoom,copy:e.copy,toolsPlacement:e.toolsPlacement,customTools:e.customTools}}),v=(0,t.useSlots)(),y=(0,t.computed)(()=>i.formConfig===!1?!1:i.formConfig===!0?!0:i.formConfig&&typeof i.formConfig==`object`?i.formConfig.enabled!==!1:!!v.form),b=(0,t.computed)(()=>i.formConfig&&typeof i.formConfig==`object`&&i.formConfig.items||[]);(0,t.watch)(b,e=>{e.forEach(e=>{e.field in m||(m[e.field]=``)})},{immediate:!0});let x=(0,t.computed)(()=>i.proxyConfig?.enabled!==!1&&!!i.proxyConfig?.ajax?.query),S=(0,t.computed)(()=>x.value&&c.value?c.value:i.data||[]),C=(0,t.computed)(()=>{let e=i.pagerConfig===!0?{enabled:!0}:i.pagerConfig&&typeof i.pagerConfig==`object`?{...i.pagerConfig}:x.value?{enabled:!0}:!1;return!e||e===!1?!1:{...e,currentPage:u.value,pageSize:d.value,total:l.value??e.total??S.value.length}}),w=(0,t.computed)(()=>{let{data:e,loading:t,pagerConfig:n,toolbarConfig:r,formConfig:a,proxyConfig:o,...s}=i;return{...s,toolbarConfig:_.value,showExport:h.value.export!==!1,customConfig:i.customConfig||(h.value.custom===!1?void 0:{enabled:!0}),showPrint:h.value.print===!0,showImport:h.value.import===!0,showCopy:h.value.copy===!0}}),T=(0,t.computed)(()=>({loading:s.value,data:S.value,total:l.value,form:m})),E=(e,t)=>t?t.split(`.`).reduce((e,t)=>e==null?e:e[t],e):e,D=async()=>{if(!x.value||!i.proxyConfig?.ajax?.query){a(`proxy-query`,{form:{...m}});return}s.value=!0;try{let e=await i.proxyConfig.ajax.query({page:{currentPage:u.value,pageSize:d.value},form:{...m},sorts:f.value?[f.value]:[],filters:p.value}),t=i.proxyConfig.props?.result||`result`,n=i.proxyConfig.props?.total||`page.total`;if(Array.isArray(e))c.value=e,l.value=e.length;else{let r=E(e,t)??e.data??[];c.value=Array.isArray(r)?r:[];let i=E(e,n)??e.total??e.page?.total??c.value.length;l.value=Number(i)||0}a(`proxy-query`,{form:{...m},result:c.value})}finally{s.value=!1}},O=()=>{Object.keys(m).forEach(e=>{m[e]=``}),u.value=1,D()},k=D,A=e=>{u.value=e.currentPage,d.value=e.pageSize,x.value&&D()},j=e=>{f.value=e,i.sortConfig?.remote&&x.value&&D()},M=e=>{p.value=e,i.filterConfig?.remote&&x.value&&D()};return(0,t.onMounted)(()=>{x.value&&i.proxyConfig?.autoLoad!==!1&&D()}),n({reload:D,getTable:()=>o.value,commitProxy:D,formModel:m}),(n,r)=>{let i=al;return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-grid`,{"fou-grid--loading":(0,t.unref)(s)}])},[(0,t.unref)(y)&&(n.$slots.form||e.formConfig)?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,fb,[(0,t.renderSlot)(n.$slots,`form`,{query:(0,t.unref)(k),form:(0,t.unref)(m),reload:D},()=>[(0,t.unref)(b).length?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,pb,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(b),e=>((0,t.openBlock)(),(0,t.createElementBlock)(`label`,{key:e.field,class:`fou-grid__form-item`},[(0,t.createElementVNode)(`span`,null,(0,t.toDisplayString)(e.title||e.field),1),(0,t.withDirectives)((0,t.createElementVNode)(`input`,{"onUpdate:modelValue":n=>(0,t.unref)(m)[e.field]=n,class:`fou-grid__form-input`,placeholder:e.title||e.field,onKeydown:r[0]||=(0,t.withKeys)(e=>D(),[`enter`])},null,40,mb),[[t.vModelText,(0,t.unref)(m)[e.field]]])]))),128)),(0,t.createElementVNode)(`button`,{type:`button`,class:`fou-grid__form-btn`,onClick:r[1]||=e=>D()},`查询`),(0,t.createElementVNode)(`button`,{type:`button`,class:`fou-grid__form-btn is-plain`,onClick:O},`重置`)])):(0,t.createCommentVNode)(``,!0)],!0)])):(0,t.createCommentVNode)(``,!0),(0,t.createVNode)(i,(0,t.mergeProps)({ref_key:`tableRef`,ref:o},(0,t.unref)(w),{data:(0,t.unref)(S),loading:(0,t.unref)(s)||e.loading,"pager-config":(0,t.unref)(C),"show-toolbar":(0,t.unref)(g),"show-export":(0,t.unref)(h)?.export!==!1,onPageChange:A,onRefresh:D,onSortChange:j,onFilterChange:M}),(0,t.createSlots)({default:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)]),_:2},[n.$slots.toolbar?{name:`toolbar`,fn:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`toolbar`,{reload:D,proxy:(0,t.unref)(T)},void 0,!0)]),key:`0`}:void 0,n.$slots[`toolbar-left`]?{name:`toolbar-left`,fn:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`toolbar-left`,{reload:D,proxy:(0,t.unref)(T)},void 0,!0)]),key:`1`}:void 0,n.$slots[`toolbar-center`]?{name:`toolbar-center`,fn:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`toolbar-center`,{reload:D,proxy:(0,t.unref)(T)},void 0,!0)]),key:`2`}:void 0,n.$slots[`toolbar-right`]?{name:`toolbar-right`,fn:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`toolbar-right`,{reload:D,proxy:(0,t.unref)(T)},void 0,!0)]),key:`3`}:void 0,n.$slots[`toolbar-tools`]?{name:`toolbar-tools`,fn:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`toolbar-tools`,{},void 0,!0)]),key:`4`}:void 0]),1040,[`data`,`loading`,`pager-config`,`show-toolbar`,`show-export`])],2)}}}),gb=v({default:()=>_b}),_b=S(hb,[[`__scopeId`,`data-v-09298a7d`]]),vb={class:`fou-highlight`},yb=(0,t.defineComponent)({name:`FouHighlight`,__name:`index`,props:{text:{default:``},keywords:{default:()=>[]},caseSensitive:{type:Boolean,default:!1},color:{default:``}},setup(e){let n=e,r=(0,t.computed)(()=>n.color?{background:n.color,color:`#fff`}:void 0),i=(0,t.computed)(()=>{let e=n.text||``,t=(Array.isArray(n.keywords)?n.keywords:[n.keywords]).map(e=>String(e||``).trim()).filter(Boolean);if(!e||!t.length)return[{text:e,hit:!1}];let r=t.map(e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)),i=n.caseSensitive?`g`:`gi`,a=RegExp(`(${r.join(`|`)})`,i);return e.split(a).filter(e=>e!==``).map(e=>({text:e,hit:t.some(t=>n.caseSensitive?e===t:e.toLowerCase()===t.toLowerCase())}))});return(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,vb,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(i),(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:n},[e.hit?((0,t.openBlock)(),(0,t.createElementBlock)(`mark`,{key:0,class:`fou-highlight__mark`,style:(0,t.normalizeStyle)((0,t.unref)(r))},(0,t.toDisplayString)(e.text),5)):((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:1},[(0,t.createTextVNode)((0,t.toDisplayString)(e.text),1)],64))],64))),128))]))}}),bb=v({default:()=>xb}),xb=S(yb,[[`__scopeId`,`data-v-7331076e`]]),Sb={key:0,class:`fou-hover-card__title`},Cb={class:`fou-hover-card__body`},wb=(0,t.defineComponent)({name:`FouHoverCard`,__name:`index`,props:{title:{default:``},placement:{default:`top`},width:{default:280},openDelay:{default:80},closeDelay:{default:120}},emits:[`visibleChange`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.ref)(null),o=(0,t.ref)(null),s=(0,t.ref)(!1),c=(0,t.ref)({}),l,u,d=!1,f=()=>{l&&clearTimeout(l),u&&clearTimeout(u)},p=async()=>{f(),l=setTimeout(async()=>{s.value=!0,i(`visibleChange`,!0),await(0,t.nextTick)(),y()},r.openDelay)},m=()=>{f(),u=setTimeout(()=>{d||(s.value=!1,i(`visibleChange`,!1))},r.closeDelay)},h=()=>p(),g=()=>m(),_=()=>{d=!0,f()},v=()=>{d=!1,m()},y=()=>{let e=a.value,t=o.value;if(!e||!t)return;let n=e.getBoundingClientRect(),i=t.getBoundingClientRect(),s=0,l=0;switch(r.placement){case`top`:s=n.top-i.height-10,l=n.left+n.width/2-i.width/2;break;case`left`:s=n.top+n.height/2-i.height/2,l=n.left-i.width-10;break;case`right`:s=n.top+n.height/2-i.height/2,l=n.right+10;break;default:s=n.bottom+10,l=n.left+n.width/2-i.width/2}l=Math.min(Math.max(4,l),window.innerWidth-i.width-4),s=Math.min(Math.max(4,s),window.innerHeight-i.height-4),c.value={position:`fixed`,top:`${s}px`,left:`${l}px`,width:`${r.width}px`,zIndex:`2100`}},b=()=>s.value&&y();return(0,t.watch)(s,e=>{e?(window.addEventListener(`scroll`,b,!0),window.addEventListener(`resize`,b)):(window.removeEventListener(`scroll`,b,!0),window.removeEventListener(`resize`,b))}),(0,t.onBeforeUnmount)(()=>{f(),window.removeEventListener(`scroll`,b,!0),window.removeEventListener(`resize`,b)}),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,null,[(0,t.createElementVNode)(`span`,{ref_key:`triggerRef`,ref:a,class:`fou-hover-card`,onMouseenter:h,onMouseleave:g},[(0,t.renderSlot)(n.$slots,`trigger`,{},void 0,!0)],544),((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:`body`},[(0,t.createVNode)(t.Transition,{name:`fou-hover-card-fade`},{default:(0,t.withCtx)(()=>[s.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,ref_key:`cardRef`,ref:o,class:(0,t.normalizeClass)([`fou-hover-card__panel`,[`fou-hover-card--${e.placement}`]]),style:(0,t.normalizeStyle)(c.value),onMouseenter:_,onMouseleave:v},[e.title||n.$slots.title?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Sb,[(0,t.renderSlot)(n.$slots,`title`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.title),1)],!0)])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,Cb,[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)])],38)):(0,t.createCommentVNode)(``,!0)]),_:3})]))],64))}}),Tb=v({default:()=>Eb}),Eb=S(wb,[[`__scopeId`,`data-v-158ede3a`]]),Db=`24-hours-fill.24-hours-line.4k-fill.4k-line.a-b.accessibility-fill.accessibility-line.account-box-2-fill.account-box-2-line.account-box-fill.account-box-line.account-circle-2-fill.account-circle-2-line.account-circle-fill.account-circle-line.account-pin-box-fill.account-pin-box-line.account-pin-circle-fill.account-pin-circle-line.add-box-fill.add-box-line.add-circle-fill.add-circle-line.add-fill.add-large-fill.add-large-line.add-line.admin-fill.admin-line.advertisement-fill.advertisement-line.aed-electrodes-fill.aed-electrodes-line.aed-fill.aed-line.ai-generate.ai-generate-2.ai-generate-text.airplay-fill.airplay-line.alarm-add-fill.alarm-add-line.alarm-fill.alarm-line.alarm-snooze-fill.alarm-snooze-line.alarm-warning-fill.alarm-warning-line.album-fill.album-line.alert-fill.alert-line.alibaba-cloud-fill.alibaba-cloud-line.aliens-fill.aliens-line.align-bottom.align-center.align-item-bottom-fill.align-item-bottom-line.align-item-horizontal-center-fill.align-item-horizontal-center-line.align-item-left-fill.align-item-left-line.align-item-right-fill.align-item-right-line.align-item-top-fill.align-item-top-line.align-item-vertical-center-fill.align-item-vertical-center-line.align-justify.align-left.align-right.align-top.align-vertically.alipay-fill.alipay-line.amazon-fill.amazon-line.anchor-fill.anchor-line.ancient-gate-fill.ancient-gate-line.ancient-pavilion-fill.ancient-pavilion-line.android-fill.android-line.angularjs-fill.angularjs-line.anthropic-fill.anthropic-line.anticlockwise-2-fill.anticlockwise-2-line.anticlockwise-fill.anticlockwise-line.app-store-fill.app-store-line.apple-fill.apple-line.apps-2-add-fill.apps-2-add-line.apps-2-ai-fill.apps-2-ai-line.apps-2-fill.apps-2-line.apps-fill.apps-line.archive-2-fill.archive-2-line.archive-drawer-fill.archive-drawer-line.archive-fill.archive-line.archive-stack-fill.archive-stack-line.armchair-fill.armchair-line.arrow-down-box-fill.arrow-down-box-line.arrow-down-circle-fill.arrow-down-circle-line.arrow-down-double-fill.arrow-down-double-line.arrow-down-fill.arrow-down-line.arrow-down-long-fill.arrow-down-long-line.arrow-down-s-fill.arrow-down-s-line.arrow-down-wide-fill.arrow-down-wide-line.arrow-drop-down-fill.arrow-drop-down-line.arrow-drop-left-fill.arrow-drop-left-line.arrow-drop-right-fill.arrow-drop-right-line.arrow-drop-up-fill.arrow-drop-up-line.arrow-go-back-fill.arrow-go-back-line.arrow-go-forward-fill.arrow-go-forward-line.arrow-left-box-fill.arrow-left-box-line.arrow-left-circle-fill.arrow-left-circle-line.arrow-left-double-fill.arrow-left-double-line.arrow-left-down-box-fill.arrow-left-down-box-line.arrow-left-down-fill.arrow-left-down-line.arrow-left-down-long-fill.arrow-left-down-long-line.arrow-left-fill.arrow-left-line.arrow-left-long-fill.arrow-left-long-line.arrow-left-right-fill.arrow-left-right-line.arrow-left-s-fill.arrow-left-s-line.arrow-left-up-box-fill.arrow-left-up-box-line.arrow-left-up-fill.arrow-left-up-line.arrow-left-up-long-fill.arrow-left-up-long-line.arrow-left-wide-fill.arrow-left-wide-line.arrow-right-box-fill.arrow-right-box-line.arrow-right-circle-fill.arrow-right-circle-line.arrow-right-double-fill.arrow-right-double-line.arrow-right-down-box-fill.arrow-right-down-box-line.arrow-right-down-fill.arrow-right-down-line.arrow-right-down-long-fill.arrow-right-down-long-line.arrow-right-fill.arrow-right-line.arrow-right-long-fill.arrow-right-long-line.arrow-right-s-fill.arrow-right-s-line.arrow-right-up-box-fill.arrow-right-up-box-line.arrow-right-up-fill.arrow-right-up-line.arrow-right-up-long-fill.arrow-right-up-long-line.arrow-right-wide-fill.arrow-right-wide-line.arrow-turn-back-fill.arrow-turn-back-line.arrow-turn-forward-fill.arrow-turn-forward-line.arrow-up-box-fill.arrow-up-box-line.arrow-up-circle-fill.arrow-up-circle-line.arrow-up-double-fill.arrow-up-double-line.arrow-up-down-fill.arrow-up-down-line.arrow-up-fill.arrow-up-line.arrow-up-long-fill.arrow-up-long-line.arrow-up-s-fill.arrow-up-s-line.arrow-up-wide-fill.arrow-up-wide-line.artboard-2-fill.artboard-2-line.artboard-fill.artboard-line.article-fill.article-line.aspect-ratio-fill.aspect-ratio-line.asterisk.at-fill.at-line.attachment-2.attachment-fill.attachment-line.auction-fill.auction-line.award-fill.award-line.baidu-fill.baidu-line.ball-pen-fill.ball-pen-line.bank-card-2-fill.bank-card-2-line.bank-card-fill.bank-card-line.bank-fill.bank-line.bar-chart-2-fill.bar-chart-2-line.bar-chart-box-ai-fill.bar-chart-box-ai-line.bar-chart-box-fill.bar-chart-box-line.bar-chart-fill.bar-chart-grouped-fill.bar-chart-grouped-line.bar-chart-horizontal-fill.bar-chart-horizontal-line.bar-chart-line.barcode-box-fill.barcode-box-line.barcode-fill.barcode-line.bard-fill.bard-line.barricade-fill.barricade-line.base-station-fill.base-station-line.basketball-fill.basketball-line.battery-2-charge-fill.battery-2-charge-line.battery-2-fill.battery-2-line.battery-charge-fill.battery-charge-line.battery-fill.battery-line.battery-low-fill.battery-low-line.battery-saver-fill.battery-saver-line.battery-share-fill.battery-share-line.bear-smile-fill.bear-smile-line.beer-fill.beer-line.behance-fill.behance-line.bell-fill.bell-line.bike-fill.bike-line.bilibili-fill.bilibili-line.bill-fill.bill-line.billiards-fill.billiards-line.bit-coin-fill.bit-coin-line.blaze-fill.blaze-line.blender-fill.blender-line.blogger-fill.blogger-line.bluesky-fill.bluesky-line.bluetooth-connect-fill.bluetooth-connect-line.bluetooth-fill.bluetooth-line.blur-off-fill.blur-off-line.bnb-fill.bnb-line.body-scan-fill.body-scan-line.bold.book-2-fill.book-2-line.book-3-fill.book-3-line.book-fill.book-line.book-marked-fill.book-marked-line.book-open-fill.book-open-line.book-read-fill.book-read-line.book-shelf-fill.book-shelf-line.booklet-fill.booklet-line.bookmark-2-fill.bookmark-2-line.bookmark-3-fill.bookmark-3-line.bookmark-fill.bookmark-line.bootstrap-fill.bootstrap-line.bowl-fill.bowl-line.box-1-fill.box-1-line.box-2-fill.box-2-line.box-3-fill.box-3-line.boxing-fill.boxing-line.braces-fill.braces-line.brackets-fill.brackets-line.brain-2-fill.brain-2-line.brain-fill.brain-line.bread-fill.bread-line.briefcase-2-fill.briefcase-2-line.briefcase-3-fill.briefcase-3-line.briefcase-4-fill.briefcase-4-line.briefcase-5-fill.briefcase-5-line.briefcase-fill.briefcase-line.bring-forward.bring-to-front.broadcast-fill.broadcast-line.brush-2-fill.brush-2-line.brush-3-fill.brush-3-line.brush-4-fill.brush-4-line.brush-ai-fill.brush-ai-line.brush-fill.brush-line.btc-fill.btc-line.bubble-chart-fill.bubble-chart-line.bug-2-fill.bug-2-line.bug-fill.bug-line.building-2-fill.building-2-line.building-3-fill.building-3-line.building-4-fill.building-4-line.building-fill.building-line.bus-2-fill.bus-2-line.bus-fill.bus-line.bus-wifi-fill.bus-wifi-line.cactus-fill.cactus-line.cake-2-fill.cake-2-line.cake-3-fill.cake-3-line.cake-fill.cake-line.calculator-fill.calculator-line.calendar-2-fill.calendar-2-line.calendar-check-fill.calendar-check-line.calendar-close-fill.calendar-close-line.calendar-event-fill.calendar-event-line.calendar-fill.calendar-line.calendar-schedule-fill.calendar-schedule-line.calendar-todo-fill.calendar-todo-line.calendar-view.camera-2-fill.camera-2-line.camera-3-fill.camera-3-line.camera-ai-fill.camera-ai-line.camera-fill.camera-lens-ai-fill.camera-lens-ai-line.camera-lens-fill.camera-lens-line.camera-line.camera-off-fill.camera-off-line.camera-switch-fill.camera-switch-line.candle-fill.candle-line.capsule-fill.capsule-line.car-fill.car-line.car-washing-fill.car-washing-line.caravan-fill.caravan-line.carousel-view.cash-fill.cash-line.cast-fill.cast-line.cellphone-fill.cellphone-line.celsius-fill.celsius-line.centos-fill.centos-line.character-recognition-fill.character-recognition-line.charging-pile-2-fill.charging-pile-2-line.charging-pile-fill.charging-pile-line.chat-1-fill.chat-1-line.chat-2-fill.chat-2-line.chat-3-fill.chat-3-line.chat-4-fill.chat-4-line.chat-ai-fill.chat-ai-line.chat-check-fill.chat-check-line.chat-delete-fill.chat-delete-line.chat-download-fill.chat-download-line.chat-follow-up-fill.chat-follow-up-line.chat-forward-fill.chat-forward-line.chat-heart-fill.chat-heart-line.chat-history-fill.chat-history-line.chat-new-fill.chat-new-line.chat-off-fill.chat-off-line.chat-poll-fill.chat-poll-line.chat-private-fill.chat-private-line.chat-quote-fill.chat-quote-line.chat-search-fill.chat-search-line.chat-settings-fill.chat-settings-line.chat-smile-2-fill.chat-smile-2-line.chat-smile-3-fill.chat-smile-3-line.chat-smile-ai-fill.chat-smile-ai-line.chat-smile-fill.chat-smile-line.chat-thread-fill.chat-thread-line.chat-unread-fill.chat-unread-line.chat-upload-fill.chat-upload-line.chat-voice-ai-fill.chat-voice-ai-line.chat-voice-fill.chat-voice-line.check-double-fill.check-double-line.check-fill.check-line.checkbox-blank-circle-fill.checkbox-blank-circle-line.checkbox-blank-fill.checkbox-blank-line.checkbox-circle-fill.checkbox-circle-line.checkbox-fill.checkbox-indeterminate-fill.checkbox-indeterminate-line.checkbox-line.checkbox-multiple-blank-fill.checkbox-multiple-blank-line.checkbox-multiple-fill.checkbox-multiple-line.chess-fill.chess-line.china-railway-fill.china-railway-line.chrome-fill.chrome-line.circle-fill.circle-line.clapperboard-ai-fill.clapperboard-ai-line.clapperboard-fill.clapperboard-line.claude-fill.claude-line.clipboard-fill.clipboard-line.clockwise-2-fill.clockwise-2-line.clockwise-fill.clockwise-line.close-circle-fill.close-circle-line.close-fill.close-large-fill.close-large-line.close-line.closed-captioning-ai-fill.closed-captioning-ai-line.closed-captioning-fill.closed-captioning-line.cloud-fill.cloud-line.cloud-off-fill.cloud-off-line.cloud-windy-fill.cloud-windy-line.cloudy-2-fill.cloudy-2-line.cloudy-fill.cloudy-line.code-ai-fill.code-ai-line.code-block.code-box-fill.code-box-line.code-fill.code-line.code-s-fill.code-s-line.code-s-slash-fill.code-s-slash-line.code-view.codepen-fill.codepen-line.coin-fill.coin-line.coins-fill.coins-line.collage-fill.collage-line.collapse-diagonal-2-fill.collapse-diagonal-2-line.collapse-diagonal-fill.collapse-diagonal-line.collapse-horizontal-fill.collapse-horizontal-line.collapse-vertical-fill.collapse-vertical-line.color-filter-ai-fill.color-filter-ai-line.color-filter-fill.color-filter-line.command-fill.command-line.community-fill.community-line.compass-2-fill.compass-2-line.compass-3-fill.compass-3-line.compass-4-fill.compass-4-line.compass-discover-fill.compass-discover-line.compass-fill.compass-line.compasses-2-fill.compasses-2-line.compasses-fill.compasses-line.computer-fill.computer-line.contacts-book-2-fill.contacts-book-2-line.contacts-book-3-fill.contacts-book-3-line.contacts-book-fill.contacts-book-line.contacts-book-upload-fill.contacts-book-upload-line.contacts-fill.contacts-line.contract-fill.contract-left-fill.contract-left-line.contract-left-right-fill.contract-left-right-line.contract-line.contract-right-fill.contract-right-line.contract-up-down-fill.contract-up-down-line.contrast-2-fill.contrast-2-line.contrast-drop-2-fill.contrast-drop-2-line.contrast-drop-fill.contrast-drop-line.contrast-fill.contrast-line.copilot-fill.copilot-line.copper-coin-fill.copper-coin-line.copper-diamond-fill.copper-diamond-line.copyleft-fill.copyleft-line.copyright-fill.copyright-line.coreos-fill.coreos-line.corner-down-left-fill.corner-down-left-line.corner-down-right-fill.corner-down-right-line.corner-left-down-fill.corner-left-down-line.corner-left-up-fill.corner-left-up-line.corner-right-down-fill.corner-right-down-line.corner-right-up-fill.corner-right-up-line.corner-up-left-double-fill.corner-up-left-double-line.corner-up-left-fill.corner-up-left-line.corner-up-right-double-fill.corner-up-right-double-line.corner-up-right-fill.corner-up-right-line.coupon-2-fill.coupon-2-line.coupon-3-fill.coupon-3-line.coupon-4-fill.coupon-4-line.coupon-5-fill.coupon-5-line.coupon-fill.coupon-line.cpu-fill.cpu-line.creative-commons-by-fill.creative-commons-by-line.creative-commons-fill.creative-commons-line.creative-commons-nc-fill.creative-commons-nc-line.creative-commons-nd-fill.creative-commons-nd-line.creative-commons-sa-fill.creative-commons-sa-line.creative-commons-zero-fill.creative-commons-zero-line.criminal-fill.criminal-line.crop-2-fill.crop-2-line.crop-fill.crop-line.cross-fill.cross-line.crosshair-2-fill.crosshair-2-line.crosshair-fill.crosshair-line.css3-fill.css3-line.cup-fill.cup-line.currency-fill.currency-line.cursor-fill.cursor-line.custom-size.customer-service-2-fill.customer-service-2-line.customer-service-fill.customer-service-line.dashboard-2-fill.dashboard-2-line.dashboard-3-fill.dashboard-3-line.dashboard-fill.dashboard-horizontal-fill.dashboard-horizontal-line.dashboard-line.database-2-fill.database-2-line.database-fill.database-line.delete-back-2-fill.delete-back-2-line.delete-back-fill.delete-back-line.delete-bin-2-fill.delete-bin-2-line.delete-bin-3-fill.delete-bin-3-line.delete-bin-4-fill.delete-bin-4-line.delete-bin-5-fill.delete-bin-5-line.delete-bin-6-fill.delete-bin-6-line.delete-bin-7-fill.delete-bin-7-line.delete-bin-fill.delete-bin-line.delete-column.delete-row.device-fill.device-line.device-recover-fill.device-recover-line.diamond-fill.diamond-line.diamond-ring-fill.diamond-ring-line.dice-1-fill.dice-1-line.dice-2-fill.dice-2-line.dice-3-fill.dice-3-line.dice-4-fill.dice-4-line.dice-5-fill.dice-5-line.dice-6-fill.dice-6-line.dice-fill.dice-line.dingding-fill.dingding-line.direction-fill.direction-line.disc-fill.disc-line.discord-fill.discord-line.discount-percent-fill.discount-percent-line.discuss-fill.discuss-line.dislike-fill.dislike-line.disqus-fill.disqus-line.divide-fill.divide-line.dna-fill.dna-line.donut-chart-fill.donut-chart-line.door-closed-fill.door-closed-line.door-fill.door-line.door-lock-box-fill.door-lock-box-line.door-lock-fill.door-lock-line.door-open-fill.door-open-line.dossier-fill.dossier-line.douban-fill.douban-line.double-quotes-l.double-quotes-r.download-2-fill.download-2-line.download-cloud-2-fill.download-cloud-2-line.download-cloud-fill.download-cloud-line.download-fill.download-line.draft-fill.draft-line.drag-drop-fill.drag-drop-line.drag-move-2-fill.drag-move-2-line.drag-move-fill.drag-move-line.draggable.dribbble-fill.dribbble-line.drinks-2-fill.drinks-2-line.drinks-fill.drinks-line.drive-fill.drive-line.drizzle-fill.drizzle-line.drop-fill.drop-line.dropbox-fill.dropbox-line.dropdown-list.dropper-fill.dropper-line.dual-sim-1-fill.dual-sim-1-line.dual-sim-2-fill.dual-sim-2-line.dv-fill.dv-line.dvd-ai-fill.dvd-ai-line.dvd-fill.dvd-line.e-bike-2-fill.e-bike-2-line.e-bike-fill.e-bike-line.earth-fill.earth-line.earthquake-fill.earthquake-line.edge-fill.edge-line.edge-new-fill.edge-new-line.edit-2-fill.edit-2-line.edit-box-fill.edit-box-line.edit-circle-fill.edit-circle-line.edit-fill.edit-line.eject-fill.eject-line.emoji-sticker-fill.emoji-sticker-line.emotion-2-fill.emotion-2-line.emotion-fill.emotion-happy-fill.emotion-happy-line.emotion-laugh-fill.emotion-laugh-line.emotion-line.emotion-normal-fill.emotion-normal-line.emotion-sad-fill.emotion-sad-line.emotion-unhappy-fill.emotion-unhappy-line.empathize-fill.empathize-line.emphasis.emphasis-cn.english-input.equal-fill.equal-line.equalizer-2-fill.equalizer-2-line.equalizer-3-fill.equalizer-3-line.equalizer-fill.equalizer-line.eraser-fill.eraser-line.error-warning-fill.error-warning-line.eth-fill.eth-line.evernote-fill.evernote-line.exchange-2-fill.exchange-2-line.exchange-box-fill.exchange-box-line.exchange-cny-fill.exchange-cny-line.exchange-dollar-fill.exchange-dollar-line.exchange-fill.exchange-funds-fill.exchange-funds-line.exchange-line.expand-diagonal-2-fill.expand-diagonal-2-line.expand-diagonal-fill.expand-diagonal-line.expand-diagonal-s-2-fill.expand-diagonal-s-2-line.expand-diagonal-s-fill.expand-diagonal-s-line.expand-height-fill.expand-height-line.expand-horizontal-fill.expand-horizontal-line.expand-horizontal-s-fill.expand-horizontal-s-line.expand-left-fill.expand-left-line.expand-left-right-fill.expand-left-right-line.expand-right-fill.expand-right-line.expand-up-down-fill.expand-up-down-line.expand-vertical-fill.expand-vertical-line.expand-vertical-s-fill.expand-vertical-s-line.expand-width-fill.expand-width-line.export-fill.export-line.external-link-fill.external-link-line.eye-2-fill.eye-2-line.eye-close-fill.eye-close-line.eye-fill.eye-line.eye-off-fill.eye-off-line.facebook-box-fill.facebook-box-line.facebook-circle-fill.facebook-circle-line.facebook-fill.facebook-line.fahrenheit-fill.fahrenheit-line.fediverse-fill.fediverse-line.feedback-fill.feedback-line.figma-fill.figma-line.file-2-fill.file-2-line.file-3-fill.file-3-line.file-4-fill.file-4-line.file-add-fill.file-add-line.file-chart-2-fill.file-chart-2-line.file-chart-fill.file-chart-line.file-check-fill.file-check-line.file-close-fill.file-close-line.file-cloud-fill.file-cloud-line.file-code-fill.file-code-line.file-copy-2-fill.file-copy-2-line.file-copy-fill.file-copy-line.file-damage-fill.file-damage-line.file-download-fill.file-download-line.file-edit-fill.file-edit-line.file-excel-2-fill.file-excel-2-line.file-excel-fill.file-excel-line.file-fill.file-forbid-fill.file-forbid-line.file-gif-fill.file-gif-line.file-history-fill.file-history-line.file-hwp-fill.file-hwp-line.file-image-fill.file-image-line.file-info-fill.file-info-line.file-line.file-list-2-fill.file-list-2-line.file-list-3-fill.file-list-3-line.file-list-fill.file-list-line.file-lock-fill.file-lock-line.file-marked-fill.file-marked-line.file-music-fill.file-music-line.file-paper-2-fill.file-paper-2-line.file-paper-fill.file-paper-line.file-pdf-2-fill.file-pdf-2-line.file-pdf-fill.file-pdf-line.file-ppt-2-fill.file-ppt-2-line.file-ppt-fill.file-ppt-line.file-reduce-fill.file-reduce-line.file-search-fill.file-search-line.file-settings-fill.file-settings-line.file-shield-2-fill.file-shield-2-line.file-shield-fill.file-shield-line.file-shred-fill.file-shred-line.file-text-fill.file-text-line.file-transfer-fill.file-transfer-line.file-unknow-fill.file-unknow-line.file-upload-fill.file-upload-line.file-user-fill.file-user-line.file-video-fill.file-video-line.file-warning-fill.file-warning-line.file-word-2-fill.file-word-2-line.file-word-fill.file-word-line.file-zip-fill.file-zip-line.film-ai-fill.film-ai-line.film-fill.film-line.filter-2-fill.filter-2-line.filter-3-fill.filter-3-line.filter-fill.filter-line.filter-off-fill.filter-off-line.find-replace-fill.find-replace-line.finder-fill.finder-line.fingerprint-2-fill.fingerprint-2-line.fingerprint-fill.fingerprint-line.fire-fill.fire-line.firebase-fill.firebase-line.firefox-browser-fill.firefox-browser-line.firefox-fill.firefox-line.first-aid-kit-fill.first-aid-kit-line.flag-2-fill.flag-2-line.flag-fill.flag-line.flag-off-fill.flag-off-line.flashlight-fill.flashlight-line.flask-fill.flask-line.flickr-fill.flickr-line.flight-land-fill.flight-land-line.flight-takeoff-fill.flight-takeoff-line.flip-horizontal-2-fill.flip-horizontal-2-line.flip-horizontal-fill.flip-horizontal-line.flip-vertical-2-fill.flip-vertical-2-line.flip-vertical-fill.flip-vertical-line.flood-fill.flood-line.flow-chart.flower-fill.flower-line.flutter-fill.flutter-line.focus-2-fill.focus-2-line.focus-3-fill.focus-3-line.focus-fill.focus-line.focus-mode.foggy-fill.foggy-line.folder-2-fill.folder-2-line.folder-3-fill.folder-3-line.folder-4-fill.folder-4-line.folder-5-fill.folder-5-line.folder-6-fill.folder-6-line.folder-add-fill.folder-add-line.folder-chart-2-fill.folder-chart-2-line.folder-chart-fill.folder-chart-line.folder-check-fill.folder-check-line.folder-close-fill.folder-close-line.folder-cloud-fill.folder-cloud-line.folder-download-fill.folder-download-line.folder-fill.folder-forbid-fill.folder-forbid-line.folder-history-fill.folder-history-line.folder-image-fill.folder-image-line.folder-info-fill.folder-info-line.folder-keyhole-fill.folder-keyhole-line.folder-line.folder-lock-fill.folder-lock-line.folder-music-fill.folder-music-line.folder-open-fill.folder-open-line.folder-received-fill.folder-received-line.folder-reduce-fill.folder-reduce-line.folder-settings-fill.folder-settings-line.folder-shared-fill.folder-shared-line.folder-shield-2-fill.folder-shield-2-line.folder-shield-fill.folder-shield-line.folder-transfer-fill.folder-transfer-line.folder-unknow-fill.folder-unknow-line.folder-upload-fill.folder-upload-line.folder-user-fill.folder-user-line.folder-video-fill.folder-video-line.folder-warning-fill.folder-warning-line.folder-zip-fill.folder-zip-line.folders-fill.folders-line.font-color.font-family.font-mono.font-sans.font-sans-serif.font-size.font-size-2.font-size-ai.football-fill.football-line.footprint-fill.footprint-line.forbid-2-fill.forbid-2-line.forbid-fill.forbid-line.format-clear.formula.forward-10-fill.forward-10-line.forward-15-fill.forward-15-line.forward-30-fill.forward-30-line.forward-5-fill.forward-5-line.forward-end-fill.forward-end-line.forward-end-mini-fill.forward-end-mini-line.fridge-fill.fridge-line.friendica-fill.friendica-line.fullscreen-exit-fill.fullscreen-exit-line.fullscreen-fill.fullscreen-line.function-add-fill.function-add-line.function-fill.function-line.functions.funds-box-fill.funds-box-line.funds-fill.funds-line.gallery-fill.gallery-line.gallery-upload-fill.gallery-upload-line.gallery-view.gallery-view-2.game-fill.game-line.gamepad-fill.gamepad-line.gas-station-fill.gas-station-line.gatsby-fill.gatsby-line.gemini-fill.gemini-line.genderless-fill.genderless-line.ghost-2-fill.ghost-2-line.ghost-fill.ghost-line.ghost-smile-fill.ghost-smile-line.gift-2-fill.gift-2-line.gift-fill.gift-line.git-branch-fill.git-branch-line.git-close-pull-request-fill.git-close-pull-request-line.git-commit-fill.git-commit-line.git-fork-fill.git-fork-line.git-merge-fill.git-merge-line.git-pr-draft-fill.git-pr-draft-line.git-pull-request-fill.git-pull-request-line.git-repository-commits-fill.git-repository-commits-line.git-repository-fill.git-repository-line.git-repository-private-fill.git-repository-private-line.github-fill.github-line.gitlab-fill.gitlab-line.glasses-2-fill.glasses-2-line.glasses-fill.glasses-line.global-fill.global-line.globe-fill.globe-line.goblet-2-fill.goblet-2-line.goblet-fill.goblet-line.goggles-fill.goggles-line.golf-ball-fill.golf-ball-line.google-fill.google-line.google-play-fill.google-play-line.government-fill.government-line.gps-fill.gps-line.gradienter-fill.gradienter-line.graduation-cap-fill.graduation-cap-line.grid-fill.grid-line.group-2-fill.group-2-line.group-3-fill.group-3-line.group-fill.group-line.guide-fill.guide-line.h-1.h-2.h-3.h-4.h-5.h-6.hail-fill.hail-line.hammer-fill.hammer-line.hand.hand-coin-fill.hand-coin-line.hand-heart-fill.hand-heart-line.hand-sanitizer-fill.hand-sanitizer-line.handbag-fill.handbag-line.hard-drive-2-fill.hard-drive-2-line.hard-drive-3-fill.hard-drive-3-line.hard-drive-fill.hard-drive-line.hashtag.haze-2-fill.haze-2-line.haze-fill.haze-line.hd-fill.hd-line.heading.headphone-fill.headphone-line.health-book-fill.health-book-line.heart-2-fill.heart-2-line.heart-3-fill.heart-3-line.heart-add-2-fill.heart-add-2-line.heart-add-fill.heart-add-line.heart-fill.heart-line.heart-pulse-fill.heart-pulse-line.hearts-fill.hearts-line.heavy-showers-fill.heavy-showers-line.hexagon-fill.hexagon-line.history-fill.history-line.home-2-fill.home-2-line.home-3-fill.home-3-line.home-4-fill.home-4-line.home-5-fill.home-5-line.home-6-fill.home-6-line.home-7-fill.home-7-line.home-8-fill.home-8-line.home-9-fill.home-9-line.home-fill.home-gear-fill.home-gear-line.home-heart-fill.home-heart-line.home-line.home-office-fill.home-office-line.home-smile-2-fill.home-smile-2-line.home-smile-fill.home-smile-line.home-wifi-fill.home-wifi-line.honor-of-kings-fill.honor-of-kings-line.honour-fill.honour-line.hospital-fill.hospital-line.hotel-bed-fill.hotel-bed-line.hotel-fill.hotel-line.hotspot-fill.hotspot-line.hourglass-2-fill.hourglass-2-line.hourglass-fill.hourglass-line.hq-fill.hq-line.html5-fill.html5-line.id-card-fill.id-card-line.ie-fill.ie-line.image-2-fill.image-2-line.image-add-fill.image-add-line.image-ai-fill.image-ai-line.image-circle-ai-fill.image-circle-ai-line.image-circle-fill.image-circle-line.image-edit-fill.image-edit-line.image-fill.image-line.import-fill.import-line.inbox-2-fill.inbox-2-line.inbox-archive-fill.inbox-archive-line.inbox-fill.inbox-line.inbox-unarchive-fill.inbox-unarchive-line.increase-decrease-fill.increase-decrease-line.indent-decrease.indent-increase.indeterminate-circle-fill.indeterminate-circle-line.infinity-fill.infinity-line.info-card-fill.info-card-line.info-i.information-2-fill.information-2-line.information-fill.information-line.information-off-fill.information-off-line.infrared-thermometer-fill.infrared-thermometer-line.ink-bottle-fill.ink-bottle-line.input-cursor-move.input-field.input-method-fill.input-method-line.insert-column-left.insert-column-right.insert-row-bottom.insert-row-top.instagram-fill.instagram-line.install-fill.install-line.instance-fill.instance-line.invision-fill.invision-line.italic.java-fill.java-line.javascript-fill.javascript-line.jewelry-fill.jewelry-line.kakao-talk-fill.kakao-talk-line.kanban-view.kanban-view-2.key-2-fill.key-2-line.key-fill.key-line.keyboard-box-fill.keyboard-box-line.keyboard-fill.keyboard-line.keynote-fill.keynote-line.kick-fill.kick-line.knife-blood-fill.knife-blood-line.knife-fill.knife-line.landscape-ai-fill.landscape-ai-line.landscape-fill.landscape-line.layout-2-fill.layout-2-line.layout-3-fill.layout-3-line.layout-4-fill.layout-4-line.layout-5-fill.layout-5-line.layout-6-fill.layout-6-line.layout-bottom-2-fill.layout-bottom-2-line.layout-bottom-fill.layout-bottom-line.layout-column-fill.layout-column-line.layout-fill.layout-grid-2-fill.layout-grid-2-line.layout-grid-fill.layout-grid-line.layout-horizontal-fill.layout-horizontal-line.layout-left-2-fill.layout-left-2-line.layout-left-fill.layout-left-line.layout-line.layout-masonry-fill.layout-masonry-line.layout-right-2-fill.layout-right-2-line.layout-right-fill.layout-right-line.layout-row-fill.layout-row-line.layout-top-2-fill.layout-top-2-line.layout-top-fill.layout-top-line.layout-vertical-fill.layout-vertical-line.leaf-fill.leaf-line.letter-spacing-2.lifebuoy-fill.lifebuoy-line.lightbulb-fill.lightbulb-flash-fill.lightbulb-flash-line.lightbulb-line.line-chart-fill.line-chart-line.line-fill.line-height.line-height-2.line-line.link.link-m.link-unlink.link-unlink-m.linkedin-box-fill.linkedin-box-line.linkedin-fill.linkedin-line.links-fill.links-line.list-check.list-check-2.list-check-3.list-indefinite.list-ordered.list-ordered-2.list-radio.list-settings-fill.list-settings-line.list-unordered.list-view.live-fill.live-line.loader-2-fill.loader-2-line.loader-3-fill.loader-3-line.loader-4-fill.loader-4-line.loader-5-fill.loader-5-line.loader-fill.loader-line.lock-2-fill.lock-2-line.lock-fill.lock-line.lock-password-fill.lock-password-line.lock-star-fill.lock-star-line.lock-unlock-fill.lock-unlock-line.login-box-fill.login-box-line.login-circle-fill.login-circle-line.logout-box-fill.logout-box-line.logout-box-r-fill.logout-box-r-line.logout-circle-fill.logout-circle-line.logout-circle-r-fill.logout-circle-r-line.loop-left-fill.loop-left-line.loop-right-fill.loop-right-line.luggage-cart-fill.luggage-cart-line.luggage-deposit-fill.luggage-deposit-line.lungs-fill.lungs-line.mac-fill.mac-line.macbook-fill.macbook-line.magic-fill.magic-line.mail-add-fill.mail-add-line.mail-ai-fill.mail-ai-line.mail-check-fill.mail-check-line.mail-close-fill.mail-close-line.mail-download-fill.mail-download-line.mail-fill.mail-forbid-fill.mail-forbid-line.mail-line.mail-lock-fill.mail-lock-line.mail-open-fill.mail-open-line.mail-send-fill.mail-send-line.mail-settings-fill.mail-settings-line.mail-star-fill.mail-star-line.mail-unread-fill.mail-unread-line.mail-volume-fill.mail-volume-line.map-2-fill.map-2-line.map-fill.map-line.map-pin-2-fill.map-pin-2-line.map-pin-3-fill.map-pin-3-line.map-pin-4-fill.map-pin-4-line.map-pin-5-fill.map-pin-5-line.map-pin-add-fill.map-pin-add-line.map-pin-fill.map-pin-line.map-pin-range-fill.map-pin-range-line.map-pin-time-fill.map-pin-time-line.map-pin-user-fill.map-pin-user-line.mark-pen-fill.mark-pen-line.markdown-fill.markdown-line.markup-fill.markup-line.mastercard-fill.mastercard-line.mastodon-fill.mastodon-line.medal-2-fill.medal-2-line.medal-fill.medal-line.medicine-bottle-fill.medicine-bottle-line.medium-fill.medium-line.megaphone-fill.megaphone-line.memories-fill.memories-line.men-fill.men-line.mental-health-fill.mental-health-line.menu-2-fill.menu-2-line.menu-3-fill.menu-3-line.menu-4-fill.menu-4-line.menu-5-fill.menu-5-line.menu-add-fill.menu-add-line.menu-fill.menu-fold-2-fill.menu-fold-2-line.menu-fold-3-fill.menu-fold-3-line.menu-fold-4-fill.menu-fold-4-line.menu-fold-fill.menu-fold-line.menu-line.menu-search-fill.menu-search-line.menu-unfold-2-fill.menu-unfold-2-line.menu-unfold-3-fill.menu-unfold-3-line.menu-unfold-4-fill.menu-unfold-4-line.menu-unfold-fill.menu-unfold-line.merge-cells-horizontal.merge-cells-vertical.message-2-fill.message-2-line.message-3-fill.message-3-line.message-fill.message-line.messenger-fill.messenger-line.meta-fill.meta-line.meteor-fill.meteor-line.mic-2-ai-fill.mic-2-ai-line.mic-2-fill.mic-2-line.mic-ai-fill.mic-ai-line.mic-fill.mic-line.mic-off-fill.mic-off-line.mickey-fill.mickey-line.microscope-fill.microscope-line.microsoft-fill.microsoft-line.microsoft-loop-fill.microsoft-loop-line.mind-map.mini-program-fill.mini-program-line.mist-fill.mist-line.mixtral-fill.mixtral-line.mobile-download-fill.mobile-download-line.money-cny-box-fill.money-cny-box-line.money-cny-circle-fill.money-cny-circle-line.money-dollar-box-fill.money-dollar-box-line.money-dollar-circle-fill.money-dollar-circle-line.money-euro-box-fill.money-euro-box-line.money-euro-circle-fill.money-euro-circle-line.money-pound-box-fill.money-pound-box-line.money-pound-circle-fill.money-pound-circle-line.money-rupee-circle-fill.money-rupee-circle-line.moon-clear-fill.moon-clear-line.moon-cloudy-fill.moon-cloudy-line.moon-fill.moon-foggy-fill.moon-foggy-line.moon-line.more-2-fill.more-2-line.more-fill.more-line.motorbike-fill.motorbike-line.mouse-fill.mouse-line.movie-2-ai-fill.movie-2-ai-line.movie-2-fill.movie-2-line.movie-ai-fill.movie-ai-line.movie-fill.movie-line.multi-image-fill.multi-image-line.music-2-fill.music-2-line.music-ai-fill.music-ai-line.music-fill.music-line.mv-ai-fill.mv-ai-line.mv-fill.mv-line.navigation-fill.navigation-line.netease-cloud-music-fill.netease-cloud-music-line.netflix-fill.netflix-line.news-fill.news-line.newspaper-fill.newspaper-line.nextjs-fill.nextjs-line.nft-fill.nft-line.no-credit-card-fill.no-credit-card-line.node-tree.nodejs-fill.nodejs-line.notification-2-fill.notification-2-line.notification-3-fill.notification-3-line.notification-4-fill.notification-4-line.notification-badge-fill.notification-badge-line.notification-fill.notification-line.notification-off-fill.notification-off-line.notification-snooze-fill.notification-snooze-line.notion-fill.notion-line.npmjs-fill.npmjs-line.number-0.number-1.number-2.number-3.number-4.number-5.number-6.number-7.number-8.number-9.numbers-fill.numbers-line.nurse-fill.nurse-line.octagon-fill.octagon-line.oil-fill.oil-line.omega.open-arm-fill.open-arm-line.open-source-fill.open-source-line.openai-fill.openai-line.openbase-fill.openbase-line.opera-fill.opera-line.order-play-fill.order-play-line.organization-chart.outlet-2-fill.outlet-2-line.outlet-fill.outlet-line.overline.p2p-fill.p2p-line.page-separator.pages-fill.pages-line.paint-brush-fill.paint-brush-line.paint-fill.paint-line.palette-fill.palette-line.pantone-fill.pantone-line.paragraph.parent-fill.parent-line.parentheses-fill.parentheses-line.parking-box-fill.parking-box-line.parking-fill.parking-line.pass-expired-fill.pass-expired-line.pass-pending-fill.pass-pending-line.pass-valid-fill.pass-valid-line.passport-fill.passport-line.patreon-fill.patreon-line.pause-circle-fill.pause-circle-line.pause-fill.pause-large-fill.pause-large-line.pause-line.pause-mini-fill.pause-mini-line.paypal-fill.paypal-line.pen-nib-fill.pen-nib-line.pencil-fill.pencil-line.pencil-ruler-2-fill.pencil-ruler-2-line.pencil-ruler-fill.pencil-ruler-line.pentagon-fill.pentagon-line.percent-fill.percent-line.perplexity-fill.perplexity-line.phone-camera-fill.phone-camera-line.phone-fill.phone-find-fill.phone-find-line.phone-line.phone-lock-fill.phone-lock-line.php-fill.php-line.picture-in-picture-2-fill.picture-in-picture-2-line.picture-in-picture-exit-fill.picture-in-picture-exit-line.picture-in-picture-fill.picture-in-picture-line.pie-chart-2-fill.pie-chart-2-line.pie-chart-box-fill.pie-chart-box-line.pie-chart-fill.pie-chart-line.pin-distance-fill.pin-distance-line.ping-pong-fill.ping-pong-line.pinterest-fill.pinterest-line.pinyin-input.pix-fill.pix-line.pixelfed-fill.pixelfed-line.plane-fill.plane-line.planet-fill.planet-line.plant-fill.plant-line.play-circle-fill.play-circle-line.play-fill.play-large-fill.play-large-line.play-line.play-list-2-fill.play-list-2-line.play-list-add-fill.play-list-add-line.play-list-fill.play-list-line.play-mini-fill.play-mini-line.play-reverse-fill.play-reverse-large-fill.play-reverse-large-line.play-reverse-line.play-reverse-mini-fill.play-reverse-mini-line.playstation-fill.playstation-line.plug-2-fill.plug-2-line.plug-fill.plug-line.poker-clubs-fill.poker-clubs-line.poker-diamonds-fill.poker-diamonds-line.poker-hearts-fill.poker-hearts-line.poker-spades-fill.poker-spades-line.polaroid-2-fill.polaroid-2-line.polaroid-fill.polaroid-line.police-badge-fill.police-badge-line.police-car-fill.police-car-line.presentation-fill.presentation-line.price-tag-2-fill.price-tag-2-line.price-tag-3-fill.price-tag-3-line.price-tag-fill.price-tag-line.printer-cloud-fill.printer-cloud-line.printer-fill.printer-line.product-hunt-fill.product-hunt-line.profile-fill.profile-line.progress-1-fill.progress-1-line.progress-2-fill.progress-2-line.progress-3-fill.progress-3-line.progress-4-fill.progress-4-line.progress-5-fill.progress-5-line.progress-6-fill.progress-6-line.progress-7-fill.progress-7-line.progress-8-fill.progress-8-line.prohibited-2-fill.prohibited-2-line.prohibited-fill.prohibited-line.projector-2-fill.projector-2-line.projector-fill.projector-line.psychotherapy-fill.psychotherapy-line.pulse-ai-fill.pulse-ai-line.pulse-fill.pulse-line.pushpin-2-fill.pushpin-2-line.pushpin-fill.pushpin-line.puzzle-2-fill.puzzle-2-line.puzzle-fill.puzzle-line.qq-fill.qq-line.qr-code-fill.qr-code-line.qr-scan-2-fill.qr-scan-2-line.qr-scan-fill.qr-scan-line.question-answer-fill.question-answer-line.question-fill.question-line.question-mark.questionnaire-fill.questionnaire-line.quill-pen-ai-fill.quill-pen-ai-line.quill-pen-fill.quill-pen-line.quote-text.radar-fill.radar-line.radio-2-fill.radio-2-line.radio-button-fill.radio-button-line.radio-fill.radio-line.rainbow-fill.rainbow-line.rainy-fill.rainy-line.ram-2-fill.ram-2-line.ram-fill.ram-line.reactjs-fill.reactjs-line.receipt-fill.receipt-line.record-circle-fill.record-circle-line.record-mail-fill.record-mail-line.rectangle-fill.rectangle-line.recycle-fill.recycle-line.red-packet-fill.red-packet-line.reddit-fill.reddit-line.refresh-fill.refresh-line.refund-2-fill.refund-2-line.refund-fill.refund-line.registered-fill.registered-line.remix-run-fill.remix-run-line.remixicon-fill.remixicon-line.remote-control-2-fill.remote-control-2-line.remote-control-fill.remote-control-line.repeat-2-fill.repeat-2-line.repeat-fill.repeat-line.repeat-one-fill.repeat-one-line.replay-10-fill.replay-10-line.replay-15-fill.replay-15-line.replay-30-fill.replay-30-line.replay-5-fill.replay-5-line.reply-all-fill.reply-all-line.reply-fill.reply-line.reserved-fill.reserved-line.reset-left-fill.reset-left-line.reset-right-fill.reset-right-line.rest-time-fill.rest-time-line.restart-fill.restart-line.restaurant-2-fill.restaurant-2-line.restaurant-fill.restaurant-line.rewind-fill.rewind-line.rewind-mini-fill.rewind-mini-line.rewind-start-fill.rewind-start-line.rewind-start-mini-fill.rewind-start-mini-line.rfid-fill.rfid-line.rhythm-fill.rhythm-line.riding-fill.riding-line.road-map-fill.road-map-line.roadster-fill.roadster-line.robot-2-fill.robot-2-line.robot-3-fill.robot-3-line.robot-fill.robot-line.rocket-2-fill.rocket-2-line.rocket-fill.rocket-line.rotate-lock-fill.rotate-lock-line.rounded-corner.route-fill.route-line.router-fill.router-line.rss-fill.rss-line.ruler-2-fill.ruler-2-line.ruler-fill.ruler-line.run-fill.run-line.safari-fill.safari-line.safe-2-fill.safe-2-line.safe-3-fill.safe-3-line.safe-fill.safe-line.sailboat-fill.sailboat-line.save-2-fill.save-2-line.save-3-fill.save-3-line.save-fill.save-line.scales-2-fill.scales-2-line.scales-3-fill.scales-3-line.scales-fill.scales-line.scan-2-fill.scan-2-line.scan-fill.scan-line.school-fill.school-line.scissors-2-fill.scissors-2-line.scissors-cut-fill.scissors-cut-line.scissors-fill.scissors-line.screenshot-2-fill.screenshot-2-line.screenshot-fill.screenshot-line.scroll-to-bottom-fill.scroll-to-bottom-line.sd-card-fill.sd-card-line.sd-card-mini-fill.sd-card-mini-line.search-2-fill.search-2-line.search-eye-fill.search-eye-line.search-fill.search-line.secure-payment-fill.secure-payment-line.seedling-fill.seedling-line.send-backward.send-plane-2-fill.send-plane-2-line.send-plane-fill.send-plane-line.send-to-back.sensor-fill.sensor-line.seo-fill.seo-line.separator.server-fill.server-line.service-bell-fill.service-bell-line.service-fill.service-line.settings-2-fill.settings-2-line.settings-3-fill.settings-3-line.settings-4-fill.settings-4-line.settings-5-fill.settings-5-line.settings-6-fill.settings-6-line.settings-fill.settings-line.shadow-fill.shadow-line.shake-hands-fill.shake-hands-line.shape-2-fill.shape-2-line.shape-fill.shape-line.shapes-fill.shapes-line.share-2-fill.share-2-line.share-box-fill.share-box-line.share-circle-fill.share-circle-line.share-fill.share-forward-2-fill.share-forward-2-line.share-forward-box-fill.share-forward-box-line.share-forward-fill.share-forward-line.share-line.shield-check-fill.shield-check-line.shield-cross-fill.shield-cross-line.shield-fill.shield-flash-fill.shield-flash-line.shield-keyhole-fill.shield-keyhole-line.shield-line.shield-star-fill.shield-star-line.shield-user-fill.shield-user-line.shining-2-fill.shining-2-line.shining-fill.shining-line.ship-2-fill.ship-2-line.ship-fill.ship-line.shirt-fill.shirt-line.shopping-bag-2-fill.shopping-bag-2-line.shopping-bag-3-fill.shopping-bag-3-line.shopping-bag-4-fill.shopping-bag-4-line.shopping-bag-fill.shopping-bag-line.shopping-basket-2-fill.shopping-basket-2-line.shopping-basket-fill.shopping-basket-line.shopping-cart-2-fill.shopping-cart-2-line.shopping-cart-fill.shopping-cart-line.showers-fill.showers-line.shuffle-fill.shuffle-line.shut-down-fill.shut-down-line.side-bar-fill.side-bar-line.sidebar-fold-fill.sidebar-fold-line.sidebar-unfold-fill.sidebar-unfold-line.signal-tower-fill.signal-tower-line.signal-wifi-1-fill.signal-wifi-1-line.signal-wifi-2-fill.signal-wifi-2-line.signal-wifi-3-fill.signal-wifi-3-line.signal-wifi-error-fill.signal-wifi-error-line.signal-wifi-fill.signal-wifi-line.signal-wifi-off-fill.signal-wifi-off-line.signpost-fill.signpost-line.sim-card-2-fill.sim-card-2-line.sim-card-fill.sim-card-line.single-quotes-l.single-quotes-r.sip-fill.sip-line.sketching.skip-back-fill.skip-back-line.skip-back-mini-fill.skip-back-mini-line.skip-down-fill.skip-down-line.skip-forward-fill.skip-forward-line.skip-forward-mini-fill.skip-forward-mini-line.skip-left-fill.skip-left-line.skip-right-fill.skip-right-line.skip-up-fill.skip-up-line.skull-2-fill.skull-2-line.skull-fill.skull-line.skype-fill.skype-line.slack-fill.slack-line.slash-commands.slash-commands-2.slice-fill.slice-line.slideshow-2-fill.slideshow-2-line.slideshow-3-fill.slideshow-3-line.slideshow-4-fill.slideshow-4-line.slideshow-fill.slideshow-line.slideshow-view.slow-down-fill.slow-down-line.smartphone-fill.smartphone-line.snapchat-fill.snapchat-line.snowflake-fill.snowflake-line.snowy-fill.snowy-line.sofa-fill.sofa-line.sort-alphabet-asc.sort-alphabet-desc.sort-asc.sort-desc.sort-number-asc.sort-number-desc.sound-module-fill.sound-module-line.soundcloud-fill.soundcloud-line.space.space-ship-fill.space-ship-line.spam-2-fill.spam-2-line.spam-3-fill.spam-3-line.spam-fill.spam-line.sparkling-2-fill.sparkling-2-line.sparkling-fill.sparkling-line.speak-ai-fill.speak-ai-line.speak-fill.speak-line.speaker-2-fill.speaker-2-line.speaker-3-fill.speaker-3-line.speaker-fill.speaker-line.spectrum-fill.spectrum-line.speed-fill.speed-line.speed-mini-fill.speed-mini-line.speed-up-fill.speed-up-line.split-cells-horizontal.split-cells-vertical.spotify-fill.spotify-line.spy-fill.spy-line.square-fill.square-line.square-root.stack-fill.stack-line.stack-overflow-fill.stack-overflow-line.stacked-view.stackshare-fill.stackshare-line.stairs-fill.stairs-line.star-fill.star-half-fill.star-half-line.star-half-s-fill.star-half-s-line.star-line.star-off-fill.star-off-line.star-s-fill.star-s-line.star-smile-fill.star-smile-line.steam-fill.steam-line.steering-2-fill.steering-2-line.steering-fill.steering-line.stethoscope-fill.stethoscope-line.sticky-note-2-fill.sticky-note-2-line.sticky-note-add-fill.sticky-note-add-line.sticky-note-fill.sticky-note-line.stock-fill.stock-line.stop-circle-fill.stop-circle-line.stop-fill.stop-large-fill.stop-large-line.stop-line.stop-mini-fill.stop-mini-line.store-2-fill.store-2-line.store-3-fill.store-3-line.store-fill.store-line.strikethrough.strikethrough-2.subscript.subscript-2.subtract-fill.subtract-line.subway-fill.subway-line.subway-wifi-fill.subway-wifi-line.suitcase-2-fill.suitcase-2-line.suitcase-3-fill.suitcase-3-line.suitcase-fill.suitcase-line.sun-cloudy-fill.sun-cloudy-line.sun-fill.sun-foggy-fill.sun-foggy-line.sun-line.supabase-fill.supabase-line.superscript.superscript-2.surgical-mask-fill.surgical-mask-line.surround-sound-fill.surround-sound-line.survey-fill.survey-line.svelte-fill.svelte-line.swap-2-fill.swap-2-line.swap-3-fill.swap-3-line.swap-box-fill.swap-box-line.swap-fill.swap-line.switch-fill.switch-line.sword-fill.sword-line.syringe-fill.syringe-line.t-box-fill.t-box-line.t-shirt-2-fill.t-shirt-2-line.t-shirt-air-fill.t-shirt-air-line.t-shirt-fill.t-shirt-line.table-2.table-3.table-alt-fill.table-alt-line.table-fill.table-line.table-view.tablet-fill.tablet-line.tailwind-css-fill.tailwind-css-line.takeaway-fill.takeaway-line.taobao-fill.taobao-line.tape-fill.tape-line.task-fill.task-line.taxi-fill.taxi-line.taxi-wifi-fill.taxi-wifi-line.team-fill.team-line.telegram-2-fill.telegram-2-line.telegram-fill.telegram-line.temp-cold-fill.temp-cold-line.temp-hot-fill.temp-hot-line.tent-fill.tent-line.terminal-box-fill.terminal-box-line.terminal-fill.terminal-line.terminal-window-fill.terminal-window-line.test-tube-fill.test-tube-line.text.text-block.text-direction-l.text-direction-r.text-snippet.text-spacing.text-wrap.thermometer-fill.thermometer-line.threads-fill.threads-line.thumb-down-fill.thumb-down-line.thumb-up-fill.thumb-up-line.thunderstorms-fill.thunderstorms-line.ticket-2-fill.ticket-2-line.ticket-fill.ticket-line.tiktok-fill.tiktok-line.time-fill.time-line.time-zone-fill.time-zone-line.timeline-view.timer-2-fill.timer-2-line.timer-fill.timer-flash-fill.timer-flash-line.timer-line.todo-fill.todo-line.toggle-fill.toggle-line.token-swap-fill.token-swap-line.tools-fill.tools-line.tooth-fill.tooth-line.tornado-fill.tornado-line.trademark-fill.trademark-line.traffic-light-fill.traffic-light-line.train-fill.train-line.train-wifi-fill.train-wifi-line.translate.translate-2.translate-ai.translate-ai-2.travesti-fill.travesti-line.treasure-map-fill.treasure-map-line.tree-fill.tree-line.trello-fill.trello-line.triangle-fill.triangle-line.triangular-flag-fill.triangular-flag-line.trophy-fill.trophy-line.truck-fill.truck-line.tumblr-fill.tumblr-line.tv-2-fill.tv-2-line.tv-fill.tv-line.twitch-fill.twitch-line.twitter-fill.twitter-line.twitter-x-fill.twitter-x-line.typhoon-fill.typhoon-line.u-disk-fill.u-disk-line.ubuntu-fill.ubuntu-line.umbrella-fill.umbrella-line.underline.uninstall-fill.uninstall-line.unpin-fill.unpin-line.unsplash-fill.unsplash-line.upload-2-fill.upload-2-line.upload-cloud-2-fill.upload-cloud-2-line.upload-cloud-fill.upload-cloud-line.upload-fill.upload-line.usb-fill.usb-line.user-2-fill.user-2-line.user-3-fill.user-3-line.user-4-fill.user-4-line.user-5-fill.user-5-line.user-6-fill.user-6-line.user-add-fill.user-add-line.user-community-fill.user-community-line.user-fill.user-follow-fill.user-follow-line.user-forbid-fill.user-forbid-line.user-heart-fill.user-heart-line.user-line.user-location-fill.user-location-line.user-minus-fill.user-minus-line.user-received-2-fill.user-received-2-line.user-received-fill.user-received-line.user-search-fill.user-search-line.user-settings-fill.user-settings-line.user-shared-2-fill.user-shared-2-line.user-shared-fill.user-shared-line.user-smile-fill.user-smile-line.user-star-fill.user-star-line.user-unfollow-fill.user-unfollow-line.user-voice-fill.user-voice-line.vercel-fill.vercel-line.verified-badge-fill.verified-badge-line.video-add-fill.video-add-line.video-ai-fill.video-ai-line.video-chat-fill.video-chat-line.video-download-fill.video-download-line.video-fill.video-line.video-off-fill.video-off-line.video-on-ai-fill.video-on-ai-line.video-on-fill.video-on-line.video-upload-fill.video-upload-line.vidicon-2-fill.vidicon-2-line.vidicon-fill.vidicon-line.vimeo-fill.vimeo-line.vip-crown-2-fill.vip-crown-2-line.vip-crown-fill.vip-crown-line.vip-diamond-fill.vip-diamond-line.vip-fill.vip-line.virus-fill.virus-line.visa-fill.visa-line.vk-fill.vk-line.voice-ai-fill.voice-ai-line.voice-recognition-fill.voice-recognition-line.voiceprint-fill.voiceprint-line.volume-down-fill.volume-down-line.volume-mute-fill.volume-mute-line.volume-off-vibrate-fill.volume-off-vibrate-line.volume-up-fill.volume-up-line.volume-vibrate-fill.volume-vibrate-line.vuejs-fill.vuejs-line.walk-fill.walk-line.wallet-2-fill.wallet-2-line.wallet-3-fill.wallet-3-line.wallet-fill.wallet-line.water-flash-fill.water-flash-line.water-percent-fill.water-percent-line.webcam-fill.webcam-line.webhook-fill.webhook-line.wechat-2-fill.wechat-2-line.wechat-channels-fill.wechat-channels-line.wechat-fill.wechat-line.wechat-pay-fill.wechat-pay-line.weibo-fill.weibo-line.weight-fill.weight-line.whatsapp-fill.whatsapp-line.wheelchair-fill.wheelchair-line.wifi-fill.wifi-line.wifi-off-fill.wifi-off-line.window-2-fill.window-2-line.window-fill.window-line.windows-fill.windows-line.windy-fill.windy-line.wireless-charging-fill.wireless-charging-line.women-fill.women-line.wordpress-fill.wordpress-line.wubi-input.xbox-fill.xbox-line.xing-fill.xing-line.xrp-fill.xrp-line.xtz-fill.xtz-line.youtube-fill.youtube-line.yuque-fill.yuque-line.zcool-fill.zcool-line.zhihu-fill.zhihu-line.zoom-in-fill.zoom-in-line.zoom-out-fill.zoom-out-line.zzz-fill.zzz-line`.split(`.`),Ob=[{id:`remix`,prefix:``,name:`Remix Icon`,license:`Apache-2.0`,valueMode:`bare`,localRemix:!0},{id:`ant-design`,prefix:`ant-design`,name:`Ant Design Icons`,license:`MIT`,valueMode:`prefixed`,loader:()=>import(`@iconify-json/ant-design/icons.json`)},{id:`ep`,prefix:`ep`,name:`EP 图标`,license:`MIT`,valueMode:`prefixed`,loader:()=>import(`@iconify-json/ep/icons.json`)},{id:`flagpack`,prefix:`flagpack`,name:`Flagpack`,license:`MIT`,valueMode:`prefixed`,loader:()=>import(`@iconify-json/flagpack/icons.json`)},{id:`icon-park`,prefix:`icon-park`,name:`IconPark`,license:`Apache-2.0`,valueMode:`prefixed`,loader:()=>import(`@iconify-json/icon-park/icons.json`)},{id:`icon-park-outline`,prefix:`icon-park-outline`,name:`IconPark Outline`,license:`Apache-2.0`,valueMode:`prefixed`,loader:()=>import(`@iconify-json/icon-park-outline/icons.json`)},{id:`mdi`,prefix:`mdi`,name:`Material Design Icons`,license:`Apache-2.0`,valueMode:`prefixed`,loader:()=>import(`@iconify-json/mdi/icons.json`)},{id:`ri`,prefix:`ri`,name:`Remix (Iconify)`,license:`Apache-2.0`,valueMode:`prefixed`,loader:()=>import(`@iconify-json/ri/icons.json`)},{id:`logos`,prefix:`logos`,name:`SVG Logos`,license:`CC0`,valueMode:`prefixed`,loader:()=>import(`@iconify-json/logos/icons.json`)},{id:`carbon`,prefix:`carbon`,name:`Carbon`,license:`Apache-2.0`,valueMode:`prefixed`,loader:()=>import(`@iconify-json/carbon/icons.json`)},{id:`tabler`,prefix:`tabler`,name:`Tabler Icons`,license:`MIT`,valueMode:`prefixed`,loader:()=>import(`@iconify-json/tabler/icons.json`)},{id:`lucide`,prefix:`lucide`,name:`Lucide`,license:`ISC`,valueMode:`prefixed`,loader:()=>import(`@iconify-json/lucide/icons.json`)},{id:`ph`,prefix:`ph`,name:`Phosphor`,license:`MIT`,valueMode:`prefixed`,loader:()=>import(`@iconify-json/ph/icons.json`)},{id:`bi`,prefix:`bi`,name:`Bootstrap Icons`,license:`MIT`,valueMode:`prefixed`,loader:()=>import(`@iconify-json/bi/icons.json`)}],kb=new Set,Ab=new Map,jb=e=>e.default||e;async function Mb(e){if(e.localRemix)return[];if(Ab.has(e.id))return Ab.get(e.id);if(!e.loader)return[];let t=jb(await e.loader());kb.has(e.id)||((0,n.addCollection)(t),kb.add(e.id));let r=Object.keys(t.icons||{}).sort();return Ab.set(e.id,r),r}var Nb=(e,t)=>e.valueMode===`bare`?t:`${e.prefix}:${t}`,Pb=e=>{let t=String(e||``).trim();if(!t.includes(`:`))return`remix`;let n=t.split(`:`)[0];return Ob.find(e=>e.prefix===n)?.id||`remix`},Fb={class:`fou-icon-picker`},Ib={key:1,class:`fou-icon-picker__placeholder`},Lb={class:`fou-icon-picker__body`},Rb={class:`fou-icon-picker__libs`},zb=[`onClick`],Bb={class:`fou-icon-picker__license-tip`},Vb={class:`fou-icon-picker__main`},Hb={class:`fou-icon-picker__meta`},Ub={key:0,class:`fou-icon-picker__current`},Wb={class:`fou-icon-picker__current-icon`},Gb={class:`fou-icon-picker__grid`},Kb=[`title`],qb=[`title`,`onClick`],Jb={key:1,class:`fou-icon-picker__pager`},Yb=60,Xb=(0,t.defineComponent)({name:`FouIconPicker`,__name:`index`,props:{modelValue:{default:``},placeholder:{default:`home-2-line / mdi:home`}},emits:[`update:modelValue`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.ref)(!1),o=(0,t.ref)(``),s=(0,t.ref)(1),c=(0,t.ref)(`remix`),l=(0,t.ref)(!1),u=(0,t.reactive)({remix:Db}),d=(0,t.reactive)({remix:Db.length}),f=(0,t.computed)(()=>Ob.find(e=>e.id===c.value)||Ob[0]),p=(0,t.computed)(()=>Ob.map(e=>({...e,count:d[e.id]||(e.localRemix?Db.length:`…`)}))),m=(0,t.computed)(()=>u[c.value]||[]),h=(0,t.computed)(()=>{let e=o.value.trim().toLowerCase();return e?m.value.filter(t=>t.toLowerCase().includes(e)):m.value}),g=(0,t.computed)(()=>Math.max(1,Math.ceil(h.value.length/Yb))),_=(0,t.computed)(()=>{let e=(s.value-1)*Yb;return h.value.slice(e,e+Yb)}),v=e=>Nb(f.value,e),y=async e=>{if(e.localRemix){u.remix=Db,d.remix=Db.length;return}if(!u[e.id]?.length){l.value=!0;try{let t=await Mb(e);u[e.id]=t,d[e.id]=t.length}finally{l.value=!1}}},b=async e=>{c.value=e,s.value=1,o.value=``;let t=Ob.find(t=>t.id===e);t&&await y(t)},x=()=>{a.value=!0},S=async()=>{c.value=Pb(r.modelValue),await y(f.value)},C=e=>{i(`update:modelValue`,v(e)),a.value=!1},w=()=>{i(`update:modelValue`,``)},T=e=>{i(`update:modelValue`,e||``),o.value=e?.includes(`:`)?e.split(`:`)[1]||``:e||``,s.value=1,a.value=!0};return(n,r)=>{let i=k,u=va,d=Vt,f=Pt,y=or,E=pt;return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,Fb,[(0,t.createElementVNode)(`div`,{class:`fou-icon-picker__trigger`,onClick:x},[(0,t.createElementVNode)(`span`,{class:(0,t.normalizeClass)([`fou-icon-picker__preview-wrap`,{"is-on":!!e.modelValue}])},[e.modelValue?((0,t.openBlock)(),(0,t.createBlock)(i,{key:0,icon:e.modelValue,class:`fou-icon-picker__preview`},null,8,[`icon`])):((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Ib,(0,t.toDisplayString)((0,t.unref)(Y)(`选择图标`)),1))],2),(0,t.createVNode)(u,{"model-value":e.modelValue,class:`fou-icon-picker__input`,placeholder:e.placeholder,clearable:``,"onUpdate:modelValue":T,onFocus:x,onClick:(0,t.withModifiers)(x,[`stop`])},null,8,[`model-value`,`placeholder`]),(0,t.createVNode)(d,{size:`small`,onClick:(0,t.withModifiers)(x,[`stop`])},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`apps-2-line`})]),_:1})]),(0,t.createVNode)(E,{modelValue:(0,t.unref)(a),"onUpdate:modelValue":r[3]||=e=>(0,t.isRef)(a)?a.value=e:null,title:(0,t.unref)(Y)(`选择图标`),width:`920px`,"z-index":5300,"show-minimize":!1,"show-fullscreen":!1,"destroy-on-close":``,onOpened:S},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,Lb,[(0,t.unref)(l)?((0,t.openBlock)(),(0,t.createBlock)(Wa,{key:0,class:`fou-icon-picker__loading`})):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`aside`,Rb,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(p),e=>((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:e.id,type:`button`,class:(0,t.normalizeClass)([`fou-icon-picker__lib`,{"is-active":(0,t.unref)(c)===e.id}]),onClick:t=>b(e.id)},[(0,t.createElementVNode)(`strong`,null,(0,t.toDisplayString)(e.name),1),(0,t.createElementVNode)(`span`,null,(0,t.toDisplayString)(e.count)+` icons`,1),(0,t.createElementVNode)(`em`,null,(0,t.toDisplayString)(e.license),1)],10,zb))),128)),(0,t.createElementVNode)(`p`,Bb,(0,t.toDisplayString)((0,t.unref)(Y)(`均为免费开源图标,可商用(按需懒加载)`)),1)]),(0,t.createElementVNode)(`div`,Vb,[(0,t.createVNode)(u,{modelValue:(0,t.unref)(o),"onUpdate:modelValue":r[0]||=e=>(0,t.isRef)(o)?o.value=e:null,clearable:``,placeholder:(0,t.unref)(Y)(`搜索图标名`),class:`fou-icon-picker__search`,onInput:r[1]||=e=>s.value=1},{prefix:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`search-line`})]),_:1},8,[`modelValue`,`placeholder`]),(0,t.createElementVNode)(`div`,Hb,[(0,t.createElementVNode)(`span`,null,(0,t.toDisplayString)((0,t.unref)(h).length)+` / `+(0,t.toDisplayString)((0,t.unref)(m).length),1),e.modelValue?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Ub,[(0,t.createTextVNode)((0,t.toDisplayString)((0,t.unref)(Y)(`当前`))+`: `,1),(0,t.createElementVNode)(`span`,Wb,[(0,t.createVNode)(i,{icon:e.modelValue},null,8,[`icon`])]),(0,t.createElementVNode)(`code`,null,(0,t.toDisplayString)(e.modelValue),1)])):(0,t.createCommentVNode)(``,!0),e.modelValue?((0,t.openBlock)(),(0,t.createBlock)(d,{key:1,link:``,type:`danger`,size:`small`,onClick:w},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)((0,t.unref)(Y)(`清除`)),1)]),_:1})):(0,t.createCommentVNode)(``,!0)]),(0,t.createElementVNode)(`div`,Gb,[(0,t.createElementVNode)(`button`,{type:`button`,class:`fou-icon-picker__item is-clear`,title:(0,t.unref)(Y)(`清除图标`),onClick:w},[(0,t.createVNode)(i,{icon:`delete-bin-line`}),(0,t.createElementVNode)(`span`,null,(0,t.toDisplayString)((0,t.unref)(Y)(`清除`)),1)],8,Kb),((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(_),n=>((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:n,type:`button`,class:(0,t.normalizeClass)([`fou-icon-picker__item`,{"is-active":e.modelValue===v(n)}]),title:v(n),onClick:e=>C(n)},[(0,t.createVNode)(i,{icon:v(n)},null,8,[`icon`]),(0,t.createElementVNode)(`span`,null,(0,t.toDisplayString)(n),1)],10,qb))),128))]),!(0,t.unref)(l)&&!(0,t.unref)(h).length?((0,t.openBlock)(),(0,t.createBlock)(f,{key:0,description:(0,t.unref)(Y)(`无匹配图标`)},null,8,[`description`])):(0,t.createCommentVNode)(``,!0),(0,t.unref)(g)>1?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Jb,[(0,t.createVNode)(y,{"current-page":(0,t.unref)(s),"onUpdate:currentPage":r[2]||=e=>(0,t.isRef)(s)?s.value=e:null,background:``,layout:`prev, pager, next, jumper`,"page-size":Yb,total:(0,t.unref)(h).length,small:``},null,8,[`current-page`,`total`])])):(0,t.createCommentVNode)(``,!0)])])]),_:1},8,[`modelValue`,`title`])])}}}),Zb=v({default:()=>Qb}),Qb=S(Xb,[[`__scopeId`,`data-v-cac005a6`]]),$b=[`src`],ex={class:`fou-image-viewer__toolbar`},tx={key:2,class:`fou-image-viewer__index`},nx=(0,t.defineComponent)({name:`FouImageViewer`,__name:`index`,props:{modelValue:{type:Boolean,default:!1},urlList:{default:()=>[]},initialIndex:{default:0},hideOnClickModal:{type:Boolean,default:!0},zIndex:{}},emits:[`update:modelValue`,`close`,`switch`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.ref)(0),o=(0,t.ref)(3e3),s=(0,t.ref)(1),c=(0,t.computed)(()=>(r.urlList||[]).filter(Boolean));(0,t.watch)(()=>[r.modelValue,r.initialIndex],([e,t])=>{e&&(a.value=Math.min(Math.max(0,t),Math.max(0,c.value.length-1)),s.value=1,o.value=r.zIndex||le(3e3))},{immediate:!0});let l=()=>{i(`update:modelValue`,!1),i(`close`)},u=()=>{r.hideOnClickModal&&l()},d=e=>{c.value.length&&(a.value=(a.value+e+c.value.length)%c.value.length,s.value=1,i(`switch`,a.value))},f=e=>{s.value=Math.min(4,Math.max(.4,Number((s.value+e).toFixed(2))))},p=e=>{f(e.deltaY>0?-.15:.15)},m=e=>{r.modelValue&&(e.key===`Escape`&&l(),e.key===`ArrowLeft`&&d(-1),e.key===`ArrowRight`&&d(1))};return(0,t.onMounted)(()=>document.addEventListener(`keydown`,m)),(0,t.onBeforeUnmount)(()=>document.removeEventListener(`keydown`,m)),(n,r)=>{let i=k;return(0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:`body`},[(0,t.createVNode)(t.Transition,{name:`fou-image-viewer-fade`},{default:(0,t.withCtx)(()=>[e.modelValue?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:`fou-image-viewer`,style:(0,t.normalizeStyle)({zIndex:(0,t.unref)(o)}),role:`dialog`,"aria-modal":`true`,"aria-label":`图片预览`,onClick:(0,t.withModifiers)(u,[`self`])},[(0,t.createElementVNode)(`button`,{type:`button`,class:`fou-image-viewer__btn is-close`,"aria-label":`关闭`,onClick:l},[(0,t.createVNode)(i,{icon:`close-line`})]),(0,t.unref)(c).length>1?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:0,type:`button`,class:`fou-image-viewer__btn is-prev`,"aria-label":`上一张`,onClick:r[0]||=(0,t.withModifiers)(e=>d(-1),[`stop`])},[(0,t.createVNode)(i,{icon:`arrow-left-s-line`})])):(0,t.createCommentVNode)(``,!0),(0,t.unref)(c).length>1?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:1,type:`button`,class:`fou-image-viewer__btn is-next`,"aria-label":`下一张`,onClick:r[1]||=(0,t.withModifiers)(e=>d(1),[`stop`])},[(0,t.createVNode)(i,{icon:`arrow-right-s-line`})])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`img`,{class:`fou-image-viewer__img`,src:(0,t.unref)(c)[(0,t.unref)(a)]||``,alt:``,style:(0,t.normalizeStyle)({transform:`scale(${(0,t.unref)(s)})`}),onClick:r[2]||=(0,t.withModifiers)(()=>{},[`stop`]),onWheel:(0,t.withModifiers)(p,[`prevent`])},null,44,$b),(0,t.createElementVNode)(`div`,ex,[(0,t.createElementVNode)(`button`,{type:`button`,"aria-label":`缩小`,onClick:r[3]||=(0,t.withModifiers)(e=>f(-.2),[`stop`])},[(0,t.createVNode)(i,{icon:`zoom-out-line`})]),(0,t.createElementVNode)(`button`,{type:`button`,"aria-label":`重置`,onClick:r[4]||=(0,t.withModifiers)(e=>s.value=1,[`stop`])},[(0,t.createVNode)(i,{icon:`aspect-ratio-line`})]),(0,t.createElementVNode)(`button`,{type:`button`,"aria-label":`放大`,onClick:r[5]||=(0,t.withModifiers)(e=>f(.2),[`stop`])},[(0,t.createVNode)(i,{icon:`zoom-in-line`})])]),(0,t.unref)(c).length>1?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,tx,(0,t.toDisplayString)((0,t.unref)(a)+1)+` / `+(0,t.toDisplayString)((0,t.unref)(c).length),1)):(0,t.createCommentVNode)(``,!0)],4)):(0,t.createCommentVNode)(``,!0)]),_:1})])}}}),rx=v({default:()=>ix}),ix=S(nx,[[`__scopeId`,`data-v-98059a31`]]),ax=Symbol(`FouImagePreviewGroup`),ox=[`src`,`alt`,`loading`],sx={key:0,class:`fou-image__mask`},cx=(0,t.defineComponent)({name:`FouImage`,__name:`index`,props:{src:{default:``},fit:{default:`cover`},alt:{default:``},lazy:{type:Boolean,default:!1},preview:{type:Boolean,default:!0},previewSrcList:{default:()=>[]},initialIndex:{default:0},hideOnClickModal:{type:Boolean,default:!0}},setup(e){let n=e,r=(0,t.inject)(ax,null),i=(0,t.ref)(!1),a=(0,t.computed)(()=>n.previewSrcList.length?n.previewSrcList:n.src?[n.src]:[]),o=(0,t.computed)(()=>{if(!n.previewSrcList.length)return 0;let e=n.previewSrcList.indexOf(n.src||``);return e>=0?e:n.initialIndex}),s=(0,t.computed)(()=>n.preview&&(!!n.src||n.previewSrcList.length>0));(0,t.watch)(()=>n.src,(e,t)=>{r&&(t&&r.unregister(t),e&&r.register(e))},{immediate:!0}),(0,t.onUnmounted)(()=>{n.src&&r?.unregister(n.src)});let c=()=>{if(s.value){if(r&&n.src){r.open(n.src);return}i.value=!0}};return(n,l)=>{let u=k;return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-image`,{"is-preview":(0,t.unref)(s)}]),onClick:c},[(0,t.createElementVNode)(`img`,{class:`fou-image__inner`,src:e.src,alt:e.alt,loading:e.lazy?`lazy`:void 0,style:(0,t.normalizeStyle)({objectFit:e.fit})},null,12,ox),(0,t.unref)(s)?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,sx,[(0,t.createVNode)(u,{icon:`zoom-in-line`})])):(0,t.createCommentVNode)(``,!0),(0,t.unref)(r)?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createBlock)(ix,{key:1,modelValue:(0,t.unref)(i),"onUpdate:modelValue":l[0]||=e=>(0,t.isRef)(i)?i.value=e:null,"url-list":(0,t.unref)(a),"initial-index":(0,t.unref)(o),"hide-on-click-modal":e.hideOnClickModal},null,8,[`modelValue`,`url-list`,`initial-index`,`hide-on-click-modal`]))],2)}}}),lx=v({default:()=>ux}),ux=S(cx,[[`__scopeId`,`data-v-7a1a7c78`]]),dx={class:`fou-image-preview-group`},fx=(0,t.defineComponent)({name:`FouImagePreviewGroup`,__name:`index`,setup(e){let n=(0,t.ref)([]),r=(0,t.ref)(!1),i=(0,t.ref)(0);return(0,t.provide)(ax,{register:e=>{e&&!n.value.includes(e)&&(n.value=[...n.value,e])},unregister:e=>{n.value=n.value.filter(t=>t!==e)},open:e=>{let t=n.value.indexOf(e);i.value=t>=0?t:0,r.value=!0}}),(e,a)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,dx,[(0,t.renderSlot)(e.$slots,`default`),(0,t.createVNode)(ix,{modelValue:(0,t.unref)(r),"onUpdate:modelValue":a[0]||=e=>(0,t.isRef)(r)?r.value=e:null,"url-list":(0,t.unref)(n),"initial-index":(0,t.unref)(i),onSwitch:a[1]||=e=>i.value=e},null,8,[`modelValue`,`url-list`,`initial-index`])]))}}),px=v({default:()=>mx}),mx=fx,hx=[`value`,`disabled`,`type`,`aria-label`,`onInput`,`onKeydown`,`onFocus`],gx=(0,t.defineComponent)({name:`FouInputOtp`,__name:`index`,props:{modelValue:{default:``},length:{default:6},size:{default:`default`},disabled:{type:Boolean,default:!1},mask:{type:Boolean,default:!1},numeric:{type:Boolean,default:!0}},emits:[`update:modelValue`,`change`,`complete`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.ref)(null),o=(0,t.ref)([]),s=(0,t.computed)(()=>{let e=String(r.modelValue||``).slice(0,r.length).split(``),t=[];for(let n=0;n<r.length;n++)t.push(e[n]??``);return t}),c=(e,t)=>{o.value[t]=e},l=e=>{let t=e.join(``);i(`update:modelValue`,t),i(`change`,t),t.length===r.length&&!e.includes(``)&&i(`complete`,t)},u=e=>{(0,t.nextTick)(()=>o.value[e]?.focus())},d=(e,t)=>{let n=e.target.value;r.numeric&&(n=n.replace(/\D/g,``)),n=n.slice(-1);let i=[...s.value];i[t]=n,n&&t<r.length-1&&u(t+1),l(i)},f=(e,t)=>{if(e.key===`Backspace`){let n=[...s.value];n[t]?(n[t]=``,l(n)):t>0&&(n[t-1]=``,l(n),u(t-1)),e.preventDefault()}else e.key===`ArrowLeft`&&t>0?u(t-1):e.key===`ArrowRight`&&t<r.length-1&&u(t+1)},p=(e,t)=>{e.target.select()},m=e=>{e.preventDefault();let t=e.clipboardData?.getData(`text`)??``;r.numeric&&(t=t.replace(/\D/g,``));let n=t.slice(0,r.length).split(``),i=[...s.value];n.forEach((e,t)=>i[t]=e),l(i),u(Math.min(n.length,r.length-1))};return(0,t.watch)(()=>r.length,()=>o.value=[]),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{ref_key:`rootRef`,ref:a,class:(0,t.normalizeClass)([`fou-otp`,[`fou-otp--${e.size}`,{"is-disabled":e.disabled}]]),onPaste:m},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(s.value,(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`input`,{key:r,ref_for:!0,ref:e=>c(e,r),class:(0,t.normalizeClass)([`fou-otp__input`,{"is-filled":!!n}]),value:n,disabled:e.disabled,type:e.mask?`password`:`text`,inputmode:`numeric`,maxlength:`1`,"aria-label":`验证码第 ${r+1} 位`,onInput:e=>d(e,r),onKeydown:e=>f(e,r),onFocus:e=>p(e,r)},null,42,hx))),128))],34))}}),_x=v({default:()=>vx}),vx=S(gx,[[`__scopeId`,`data-v-f3046b65`]]),yx={class:`fou-input-tag__text`},bx=[`onClick`],xx={key:0,class:`fou-input-tag__more`},Sx=[`value`,`placeholder`,`disabled`],Cx=(0,t.defineComponent)({name:`FouInputTag`,__name:`index`,props:{modelValue:{default:()=>[]},placeholder:{default:`请输入后回车`},disabled:{type:Boolean,default:!1},max:{default:0},collapseTags:{type:Boolean,default:!1},collapseTagsTooltip:{type:Boolean},closable:{type:Boolean,default:!0},size:{default:`default`},delimiter:{default:`,`},trigger:{default:`Enter`}},emits:[`update:modelValue`,`change`,`add`,`remove`],setup(e,{emit:n}){let r=e,i=n,a=di(()=>r.disabled),{triggerBlur:o,triggerChange:s}=fi(),c=(0,t.ref)(null),l=(0,t.ref)(``),u=(0,t.ref)(!1),d=(0,t.computed)(()=>Array.isArray(r.modelValue)?r.modelValue:[]),f=(0,t.computed)(()=>r.max>0&&d.value.length>=r.max),p=(0,t.computed)(()=>r.collapseTags&&d.value.length>1?d.value.slice(0,1):d.value),m=(0,t.computed)(()=>r.collapseTags&&d.value.length>1?d.value.length-1:0),h=(0,t.computed)(()=>{let e=r.delimiter;return Array.isArray(e)?e:[e]}),g=e=>{let t=e.trim();if(!t||a.value||f.value){l.value=``;return}if(d.value.includes(t)){l.value=``;return}let n=[...d.value,t];i(`update:modelValue`,n),i(`change`,n),i(`add`,t),s(),l.value=``},_=e=>{if(a.value)return;let t=d.value[e],n=d.value.filter((t,n)=>n!==e);i(`update:modelValue`,n),i(`change`,n),i(`remove`,t),s()},v=e=>{let t=e.target.value,n=h.value.find(e=>e&&t.includes(e));if(n){g(t.split(n)[0]||``);return}l.value=t},y=e=>{let t=e.key===`Enter`,n=e.key===` `;if(r.trigger===`Enter`&&t||r.trigger===`Space`&&n||r.trigger===`Both`&&(t||n)){e.preventDefault(),g(l.value);return}e.key===`Backspace`&&!l.value&&d.value.length&&_(d.value.length-1)},b=()=>{u.value=!1,l.value&&g(l.value),o()},x=()=>{a.value||c.value?.focus()};return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-input-tag`,[`fou-input-tag--${e.size}`,{"is-disabled":(0,t.unref)(a),"is-focused":(0,t.unref)(u),"is-collapse":e.collapseTags}]]),onClick:x},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(p),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:`${n}-${r}`,class:`fou-input-tag__tag`},[(0,t.createElementVNode)(`span`,yx,(0,t.toDisplayString)(n),1),!(0,t.unref)(a)&&e.closable?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:0,type:`button`,class:`fou-input-tag__close`,"aria-label":`删除`,onClick:(0,t.withModifiers)(e=>_(r),[`stop`])},` × `,8,bx)):(0,t.createCommentVNode)(``,!0)]))),128)),(0,t.unref)(m)?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,xx,`+`+(0,t.toDisplayString)((0,t.unref)(m)),1)):(0,t.createCommentVNode)(``,!0),!(0,t.unref)(a)&&!(0,t.unref)(f)?((0,t.openBlock)(),(0,t.createElementBlock)(`input`,{key:1,ref_key:`inputRef`,ref:c,class:`fou-input-tag__inner`,value:(0,t.unref)(l),placeholder:(0,t.unref)(d).length?``:e.placeholder,disabled:(0,t.unref)(a),onInput:v,onKeydown:y,onFocus:r[0]||=e=>u.value=!0,onBlur:b},null,40,Sx)):(0,t.createCommentVNode)(``,!0)],2))}}),wx=v({default:()=>Tx}),Tx=S(Cx,[[`__scopeId`,`data-v-d22da89a`]]),Ex=(0,t.defineComponent)({name:`FouKbd`,__name:`index`,props:{size:{default:`default`}},setup(e){return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`kbd`,{class:(0,t.normalizeClass)([`fou-kbd`,[`fou-kbd--${e.size}`]])},[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)],2))}}),Dx=v({default:()=>Ox}),Ox=S(Ex,[[`__scopeId`,`data-v-7af3b298`]]),kx=(0,t.defineComponent)({name:`FouLayoutContainer`,__name:`index`,props:{direction:{default:`horizontal`},fit:{type:Boolean,default:!1},gap:{default:12}},setup(e){return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-layout`,[`fou-layout--${e.direction}`]])},[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)],2))}}),Ax=v({default:()=>jx}),jx=S(kx,[[`__scopeId`,`data-v-8f7fef83`]]),Mx=[`href`,`target`,`rel`],Nx={key:1,class:`fou-link__text`},Px=(0,t.defineComponent)({name:`FouLink`,__name:`index`,props:{type:{default:`default`},href:{},target:{},underline:{type:[Boolean,String],default:`hover`},disabled:{type:Boolean,default:!1},icon:{},iconRight:{}},emits:[`click`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.computed)(()=>r.target===`_blank`?`noopener noreferrer`:void 0),o=e=>{if(r.disabled){e.preventDefault(),e.stopPropagation();return}i(`click`,e)};return(n,r)=>{let i=k;return(0,t.openBlock)(),(0,t.createElementBlock)(`a`,{class:(0,t.normalizeClass)([`fou-link`,[`fou-link--${e.type}`,{"is-underline":e.underline===!0||e.underline===`always`,"is-hover-underline":e.underline===`hover`||e.underline===!0,"is-disabled":e.disabled}]]),href:e.disabled?void 0:e.href,target:e.target,rel:(0,t.unref)(a),onClick:o},[e.icon?((0,t.openBlock)(),(0,t.createBlock)(i,{key:0,icon:e.icon,class:`fou-link__icon`},null,8,[`icon`])):(0,t.createCommentVNode)(``,!0),n.$slots.default?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Nx,[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)])):(0,t.createCommentVNode)(``,!0),e.iconRight?((0,t.openBlock)(),(0,t.createBlock)(i,{key:2,icon:e.iconRight,class:`fou-link__icon`},null,8,[`icon`])):(0,t.createCommentVNode)(``,!0)],10,Mx)}}}),Fx=v({default:()=>Ix}),Ix=S(Px,[[`__scopeId`,`data-v-c2be34b7`]]),Lx=[`href`,`target`],Rx={class:`fou-link-preview__content`},zx={class:`fou-link-preview__host`},Bx={key:0,class:`fou-link-preview__title`},Vx={key:1,class:`fou-link-preview__desc`},Hx=(0,t.defineComponent)({name:`FouLinkPreview`,__name:`index`,props:{href:{},title:{default:``},description:{default:``},image:{default:``},target:{default:`_blank`},openDelay:{default:200},closeDelay:{default:150}},emits:[`visibleChange`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.ref)(null),o=(0,t.ref)(null),s=(0,t.ref)(!1),c=(0,t.ref)({}),l,u,d=!1,f=(0,t.computed)(()=>{try{return new URL(r.href).hostname}catch{return r.href}}),p=()=>{l&&clearTimeout(l),u&&clearTimeout(u)},m=async()=>{p(),l=setTimeout(async()=>{s.value=!0,i(`visibleChange`,!0),await(0,t.nextTick)(),b()},r.openDelay)},h=()=>{p(),u=setTimeout(()=>{d||(s.value=!1,i(`visibleChange`,!1))},r.closeDelay)},g=()=>m(),_=()=>h(),v=()=>{d=!0,p()},y=()=>{d=!1,h()},b=()=>{let e=a.value,t=o.value;if(!e||!t)return;let n=e.getBoundingClientRect(),r=t.getBoundingClientRect(),i=n.bottom+10;i+r.height>window.innerHeight-4&&(i=n.top-r.height-10);let s=n.left;s=Math.min(Math.max(4,s),window.innerWidth-r.width-4),i=Math.max(4,i),c.value={position:`fixed`,top:`${i}px`,left:`${s}px`,width:`${Math.min(320,window.innerWidth-8)}px`,zIndex:`2100`}},x=()=>s.value&&b();return(0,t.watch)(s,e=>{e?(window.addEventListener(`scroll`,x,!0),window.addEventListener(`resize`,x)):(window.removeEventListener(`scroll`,x,!0),window.removeEventListener(`resize`,x))}),(0,t.onBeforeUnmount)(()=>{p(),window.removeEventListener(`scroll`,x,!0),window.removeEventListener(`resize`,x)}),(n,r)=>{let i=k;return(0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,null,[(0,t.createElementVNode)(`a`,{ref_key:`triggerRef`,ref:a,class:`fou-link-preview`,href:e.href,target:e.target,rel:`noopener noreferrer`,onMouseenter:g,onMouseleave:_},[(0,t.renderSlot)(n.$slots,`default`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.href),1)],!0)],40,Lx),((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:`body`},[(0,t.createVNode)(t.Transition,{name:`fou-link-preview-fade`},{default:(0,t.withCtx)(()=>[s.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,ref_key:`cardRef`,ref:o,class:`fou-link-preview__panel`,style:(0,t.normalizeStyle)(c.value),onMouseenter:v,onMouseleave:y},[e.image?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:`fou-link-preview__image`,style:(0,t.normalizeStyle)({backgroundImage:`url(${e.image})`})},null,4)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,Rx,[(0,t.createElementVNode)(`div`,zx,[(0,t.createVNode)(i,{icon:`links-line`}),(0,t.createElementVNode)(`span`,null,(0,t.toDisplayString)(f.value),1)]),e.title?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Bx,(0,t.toDisplayString)(e.title),1)):(0,t.createCommentVNode)(``,!0),e.description?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Vx,(0,t.toDisplayString)(e.description),1)):(0,t.createCommentVNode)(``,!0)])],36)):(0,t.createCommentVNode)(``,!0)]),_:1})]))],64)}}}),Ux=v({default:()=>Wx}),Wx=S(Hx,[[`__scopeId`,`data-v-3733dca3`]]),Gx=[`value`,`rows`,`placeholder`,`disabled`],Kx=[`value`,`placeholder`,`disabled`],qx={class:`fou-mention__list`},Jx=[`onMousedown`,`onMouseenter`],Yx={key:0,class:`fou-mention__avatar`},Xx={class:`fou-mention__label`},Zx=(0,t.defineComponent)({name:`FouMention`,__name:`index`,props:{modelValue:{default:``},options:{default:()=>[]},triggerChar:{default:`@`},placeholder:{default:`输入 @ 提及他人`},size:{default:`default`},disabled:{type:Boolean,default:!1},type:{default:`text`},rows:{default:3}},emits:[`update:modelValue`,`select`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.ref)(null),o=(0,t.ref)(null),s=(0,t.ref)(!1),c=(0,t.ref)(0),l=(0,t.ref)(``),u=(0,t.ref)({}),d=(0,t.computed)(()=>{let e=l.value.toLowerCase();return r.options.filter(t=>t.label.toLowerCase().includes(e))}),f=e=>{let t=e.target.value;i(`update:modelValue`,t),p(t,e.target.selectionStart??t.length)},p=(e,t)=>{let n=e.slice(0,t),i=n.lastIndexOf(r.triggerChar);if(i===-1){s.value=!1;return}let a=n.slice(i+1);if(/\s/.test(a)){s.value=!1;return}l.value=a,c.value=0,m()},m=async()=>{s.value=!0,await(0,t.nextTick)(),h()},h=()=>{let e=a.value,t=o.value;if(!e||!t)return;let n=e.getBoundingClientRect(),r=t.getBoundingClientRect(),i=n.bottom+4;i+r.height>window.innerHeight-4&&(i=n.top-r.height-4);let s=Math.min(Math.max(4,n.left),window.innerWidth-r.width-4);i=Math.max(4,i),u.value={position:`fixed`,top:`${i}px`,left:`${s}px`,width:`${Math.max(n.width,180)}px`,zIndex:`2100`}},g=e=>{let n=a.value;if(!n)return;let o=r.modelValue,c=n.selectionStart??o.length,l=o.slice(0,c).lastIndexOf(r.triggerChar),u=o.slice(0,l),d=o.slice(c),f=`${r.triggerChar}${e.label} `,p=u+f+d;i(`update:modelValue`,p),i(`select`,e),s.value=!1,(0,t.nextTick)(()=>{let e=(u+f).length;n.focus(),n.setSelectionRange(e,e)})},_=e=>g(e),v=e=>{if(s.value){if(e.key===`ArrowDown`)e.preventDefault(),c.value<d.value.length-1&&c.value++;else if(e.key===`ArrowUp`)e.preventDefault(),c.value>0&&c.value--;else if(e.key===`Enter`){e.preventDefault();let t=d.value[c.value];t&&g(t)}else e.key===`Escape`&&(s.value=!1)}},y=e=>{if([`ArrowLeft`,`ArrowRight`,`Home`,`End`].includes(e.key)){let t=e.target;p(t.value,t.selectionStart??0)}},b=e=>{s.value&&(o.value?.contains(e.target)||(s.value=!1))};return(0,t.watch)(s,e=>{e?document.addEventListener(`mousedown`,b,!0):document.removeEventListener(`mousedown`,b,!0)}),(0,t.onBeforeUnmount)(()=>document.removeEventListener(`mousedown`,b,!0)),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-mention`,[`fou-mention--${e.size}`,{"is-disabled":e.disabled}]])},[e.type===`textarea`?((0,t.openBlock)(),(0,t.createElementBlock)(`textarea`,{key:0,ref_key:`inputRef`,ref:a,class:`fou-mention__input`,value:e.modelValue,rows:e.rows,placeholder:e.placeholder,disabled:e.disabled,onInput:f,onKeydown:v,onKeyup:y},null,40,Gx)):((0,t.openBlock)(),(0,t.createElementBlock)(`input`,{key:1,ref_key:`inputRef`,ref:a,class:`fou-mention__input`,value:e.modelValue,placeholder:e.placeholder,disabled:e.disabled,onInput:f,onKeydown:v,onKeyup:y},null,40,Kx)),((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:`body`},[s.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,ref_key:`panelRef`,ref:o,class:`fou-mention__panel`,style:(0,t.normalizeStyle)(u.value)},[(0,t.createElementVNode)(`ul`,qx,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(d.value,(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`li`,{key:e.value,class:(0,t.normalizeClass)([`fou-mention__option`,{"is-active":n===c.value}]),onMousedown:(0,t.withModifiers)(t=>_(e),[`prevent`]),onMouseenter:e=>c.value=n},[e.avatar?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Yx,(0,t.toDisplayString)(e.avatar),1)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`span`,Xx,(0,t.toDisplayString)(e.label),1)],42,Jx))),128))])],4)):(0,t.createCommentVNode)(``,!0)]))],2))}}),Qx=v({default:()=>$x}),$x=S(Zx,[[`__scopeId`,`data-v-f948204c`]]),eS=Symbol(`FouRouteMenu`),tS={class:`fou-route-menu__list`},nS=(0,t.defineComponent)({name:`FouMenuRoot`,__name:`FouMenuRoot`,props:{mode:{default:`vertical`},defaultActive:{default:``},collapse:{type:Boolean,default:!1},uniqueOpened:{type:Boolean,default:!1},defaultOpeneds:{default:()=>[]},menuTrigger:{default:`click`}},setup(e,{expose:n}){let r=e,i=(0,t.ref)(r.defaultActive),a=(0,t.ref)(new Set);(0,t.watch)(()=>r.defaultActive,e=>{e&&(i.value=e)}),(0,t.watch)(()=>[...r.defaultOpeneds],e=>{e.forEach(e=>f(e))},{immediate:!0});let o=(0,t.computed)(()=>r.mode),s=(0,t.computed)(()=>r.collapse),c=(0,t.computed)(()=>r.uniqueOpened),l=(0,t.computed)(()=>r.menuTrigger),u=(0,t.computed)(()=>i.value),d=e=>a.value.has(e),f=e=>{if(r.collapse||r.mode===`horizontal`){let t=new Set;for(let n of a.value)(e===n||e.startsWith(`${n}/`))&&t.add(n);t.add(e),a.value=t;return}let t=new Set;if(r.uniqueOpened&&r.mode===`vertical`)for(let n of a.value)(e===n||e.startsWith(`${n}/`))&&t.add(n);else for(let e of a.value)t.add(e);t.add(e),a.value=t},p=e=>{let t=new Set;for(let n of a.value)n===e||n.startsWith(`${e}/`)||t.add(n);a.value=t},m=()=>{a.value=new Set},h=null,g=()=>!!(document.querySelector(`.fou-menu-flyout-panel:hover`)||document.querySelector(`.fou-route-menu-sub.is-popup > .fou-route-menu-sub__title:hover`)||document.querySelector(`.fou-route-menu.is-collapse .fou-route-menu-sub__title:hover`)||document.querySelector(`.fou-route-menu--horizontal .fou-route-menu-sub__title:hover`)||document.querySelector(`.fou-route-menu-item__tip:hover`));return(0,t.onBeforeUnmount)(()=>{h&&clearTimeout(h)}),(0,t.provide)(eS,{mode:o,collapse:s,activeIndex:u,uniqueOpened:c,menuTrigger:l,isSubOpen:d,toggleSub:e=>{d(e)?p(e):f(e)},openSub:f,closeSub:p,enterFlyout:e=>{h&&=(clearTimeout(h),null),f(e)},leaveFlyout:()=>{h&&clearTimeout(h);let e=r.mode===`horizontal`?280:160;h=setTimeout(()=>{if(g()){h=null;return}(r.collapse||r.mode===`horizontal`)&&m(),h=null},e)},selectItem:e=>{i.value=e},isActive:e=>{let t=i.value;return t===e||t.startsWith(`${e}/`)}}),n({open:f,close:p,closeAll:m}),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`nav`,{class:(0,t.normalizeClass)([`fou-route-menu`,[`fou-route-menu--${e.mode}`,{"is-collapse":e.collapse}]]),role:`menu`},[(0,t.createElementVNode)(`ul`,tS,[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)])],2))}}),rS=v({default:()=>iS}),iS=S(nS,[[`__scopeId`,`data-v-2586617d`]]),aS=`加载中...`,oS=3e3;function sS(e,...t){return e}var cS=(0,t.reactive)({lock:!1,device:`desktop`,theme:{layout:`vertical`,autoHideColumnMenu:!1}}),lS=()=>({lock:(0,t.computed)(()=>cS.lock),device:(0,t.computed)(()=>cS.device),theme:(0,t.computed)(()=>cS.theme),foldSideBar:()=>{}});function uS(e){return/^(https?:|mailto:|tel:|http)/.test(e||``)}var dS={class:`fou-route-menu-item__inner`},fS={class:`fou-route-menu-item__icon-wrap`},pS=[`title`],mS={class:`fou-route-menu-item__tip-title`},hS=(0,t.defineComponent)({name:`FouMenuItem`,__name:`FouMenuItem`,props:{itemOrMenu:{type:Object,default:()=>({})}},setup(e){let n=e,i=(0,t.inject)(eS,null),a=null,s=null;try{a=(0,o.useRoute)(),s=(0,o.useRouter)()}catch{a=null,s=null}let c=lS(),l=(0,t.computed)(()=>{try{return c.device?.value??c.device??`desktop`}catch{return`desktop`}}),u=(0,t.computed)(()=>{try{return c.theme?.value??c.theme??{layout:`vertical`}}catch{return{layout:`vertical`}}}),d=()=>{try{c.foldSideBar?.()}catch{}},{enter:f,exit:p}=(0,r.useFullscreen)(),m=()=>{u.value.layout===`column`&&u.value.autoHideColumnMenu&&l.value!==`mobile`&&d()},h=(0,t.ref)(null),g=(0,t.ref)(!1),_=(0,t.ref)({}),v=null,y=(0,t.computed)(()=>n.itemOrMenu.path),b=(0,t.computed)(()=>i?.activeIndex.value===y.value),x=(0,t.computed)(()=>i?.collapse.value??!1),S=(0,t.computed)(()=>sS(n.itemOrMenu.meta?.title||``)),C=(0,t.computed)(()=>n.itemOrMenu.meta?.badgeType||`info`),w=(0,t.computed)(()=>n.itemOrMenu.meta?.badgeEffect||`dark`),T=(0,t.computed)(()=>{let e=n.itemOrMenu.meta?.dot;return e===!0?`danger`:typeof e==`string`?e:`danger`}),E=()=>{let e=h.value;if(!e)return;let t=e.getBoundingClientRect();_.value={position:`fixed`,top:`${Math.round(t.top+t.height/2)}px`,left:`${Math.round(t.right+10)}px`,transform:`translateY(-50%)`,zIndex:`4100`}},D=()=>{v&&=(clearTimeout(v),null),x.value&&(h.value?.closest(`.fou-route-menu-sub__list.is-flyout`)||(E(),g.value=!0))},O=()=>{v&&clearTimeout(v),v=setTimeout(()=>{g.value=!1,v=null},80)};(0,t.onBeforeUnmount)(()=>{v&&clearTimeout(v)});let A=()=>{i?.selectItem(y.value),m(),(0,t.nextTick)(()=>{let e=n.itemOrMenu.path,t=n.itemOrMenu.meta.target,r=n.itemOrMenu.meta.fullscreen;t===`_blank`?((uS(e)||a?.path!==e)&&window.open(e),s?.push(`/redirect`).catch(()=>{})):uS(e)?globalThis.location.href=e:(!a||a.path!==e)&&(l.value===`mobile`&&d(),s?.push(n.itemOrMenu.path).catch(()=>{})),setTimeout(()=>{r?f():p()},1e3)})};return(n,r)=>{let i=k,a=dy,o=fl;return(0,t.openBlock)(),(0,t.createElementBlock)(`li`,{ref_key:`itemRef`,ref:h,class:(0,t.normalizeClass)([`fou-route-menu-item`,{"is-active":(0,t.unref)(b),"is-collapse-tip":(0,t.unref)(x)}]),role:`menuitem`,onClick:A,onMouseenter:D,onMouseleave:O},[(0,t.createElementVNode)(`div`,dS,[(0,t.createElementVNode)(`span`,fS,[(0,t.createVNode)(i,{icon:e.itemOrMenu.meta?.icon||`menu-line`,"is-custom-svg":e.itemOrMenu.meta?.isCustomSvg,title:(0,t.unref)(S)},null,8,[`icon`,`is-custom-svg`,`title`]),e.itemOrMenu.meta?.dot?((0,t.openBlock)(),(0,t.createBlock)(a,{key:0,class:`fou-route-menu-item__dot`,type:(0,t.unref)(T)},null,8,[`type`])):(0,t.createCommentVNode)(``,!0)]),(0,t.createElementVNode)(`span`,{class:`fou-route-menu-item__text`,title:(0,t.unref)(S)},(0,t.toDisplayString)((0,t.unref)(S)),9,pS),e.itemOrMenu.meta?.badge?((0,t.openBlock)(),(0,t.createBlock)(o,{key:0,class:(0,t.normalizeClass)([`fou-route-menu-item__badge`,[`fou-menu-tag--${(0,t.unref)(w)}`]]),size:`small`,type:(0,t.unref)(C),effect:(0,t.unref)(w)},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)((0,t.unref)(sS)(e.itemOrMenu.meta.badge)),1)]),_:1},8,[`class`,`type`,`effect`])):(0,t.createCommentVNode)(``,!0)]),((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:`body`},[(0,t.withDirectives)((0,t.createElementVNode)(`div`,{class:`fou-route-menu-item__tip`,role:`tooltip`,style:(0,t.normalizeStyle)((0,t.unref)(_)),onMouseenter:D,onMouseleave:O},[r[0]||=(0,t.createElementVNode)(`i`,{class:`fou-route-menu-item__tip-arrow`,"aria-hidden":`true`},null,-1),(0,t.createElementVNode)(`span`,mS,(0,t.toDisplayString)((0,t.unref)(S)),1),e.itemOrMenu.meta?.badge?((0,t.openBlock)(),(0,t.createBlock)(o,{key:0,size:`small`,type:(0,t.unref)(C),effect:(0,t.unref)(w)},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)((0,t.unref)(sS)(e.itemOrMenu.meta.badge)),1)]),_:1},8,[`type`,`effect`])):(0,t.createCommentVNode)(``,!0)],36),[[t.vShow,(0,t.unref)(x)&&(0,t.unref)(g)]])]))],34)}}}),gS=v({default:()=>_S}),_S=S(hS,[[`__scopeId`,`data-v-81230a6b`]]),vS=(0,t.defineComponent)({name:`FouMenu`,__name:`index`,props:{item:{type:Object,required:!0},layout:{type:String,default:``}},setup(e){let n=Object.assign({"./components/FouMenuItem.vue":gS,"./components/FouSubMenu.vue":DS}),r={};Object.getOwnPropertyNames(n).forEach(e=>{r[e.replaceAll(/(\/|components|\.|vue)/g,``)]=n[e].default});let i=e,a=(0,t.computed)(()=>i.item.children&&i.item.children.some(e=>e.meta&&e.meta.hidden!==!0)?r.FouSubMenu:r.FouMenuItem);return(n,r)=>{let i=(0,t.resolveComponent)(`fou-menu`);return(0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)((0,t.unref)(a)),{"item-or-menu":e.item,layout:e.layout},{default:(0,t.withCtx)(()=>[e.item.children&&e.item.children.length>0?((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,{key:0},(0,t.renderList)(e.item.children,n=>((0,t.openBlock)(),(0,t.createBlock)(i,{key:n.path,item:n,layout:e.layout},null,8,[`item`,`layout`]))),128)):(0,t.createCommentVNode)(``,!0)]),_:1},8,[`item-or-menu`,`layout`])}}}),yS=v({default:()=>bS}),bS=vS,xS={class:`fou-route-menu-sub__icon-wrap`},SS=[`title`],CS={key:2,class:`fou-route-menu-sub__more`},wS={key:0,class:`fou-menu-flyout-panel__arrow`,"aria-hidden":`true`},TS={key:1,class:`fou-menu-flyout-panel__head`},ES=(0,t.defineComponent)({name:`FouSubMenu`,__name:`FouSubMenu`,props:{itemOrMenu:{type:Object,default:()=>({})},layout:{type:String,default:``}},setup(e){let n=e,r=(0,t.inject)(eS,null),i=(0,t.ref)(null),a=(0,t.ref)(null),o=(0,t.ref)(null),s=(0,t.ref)({}),c=(0,t.ref)(`right`),l=null,u=(0,t.computed)(()=>n.itemOrMenu.path),d=(0,t.computed)(()=>Y(n.itemOrMenu.meta?.title||``)),f=(0,t.computed)(()=>r?.mode.value===`horizontal`),p=(0,t.computed)(()=>r?.collapse.value??!1),m=(0,t.computed)(()=>f.value||p.value),h=(0,t.computed)(()=>m.value),g=(0,t.computed)(()=>r?.isSubOpen(u.value)??!1),_=(0,t.computed)(()=>r?.isActive(u.value)??!1),v=(0,t.computed)(()=>n.itemOrMenu.meta?.badgeType||`info`),y=(0,t.computed)(()=>n.itemOrMenu.meta?.badgeEffect||`dark`),b=(0,t.computed)(()=>{let e=n.itemOrMenu.meta?.dot;return e===!0?`danger`:typeof e==`string`?e:`danger`}),x=(0,t.computed)(()=>g.value),S=()=>{let e=a.value;if(!e||!h.value)return;let t=e.getBoundingClientRect(),n=u.value.split(`/`).filter(Boolean).length,r=!!e.closest(`.fou-menu-flyout-panel`),i=0,o=0,l=`right`,d=t.left+t.width/2,p=t.top+t.height/2;f.value&&!r?(l=`bottom`,i=Math.round(d-100),o=Math.round(t.bottom+6),i=Math.min(Math.max(8,i),window.innerWidth-200-8)):(i=Math.round(t.right+10),o=Math.round(t.top),i+200>window.innerWidth-8?(i=Math.round(t.left-200-10),l=`left`):l=`right`);let m=window.innerHeight-16;o>m-80&&(o=Math.max(8,m-240)),o<8&&(o=8);let g=Math.round(d-i-5),_=Math.round(p-o-5);g=Math.min(Math.max(12,g),178),_=Math.min(Math.max(12,_),220),c.value=l,s.value={position:`fixed`,top:`${o}px`,left:`${i}px`,zIndex:String(5200+n),"--fou-flyout-arrow-x":`${g}px`,"--fou-flyout-arrow-y":`${_}px`}},C=()=>{m.value?r?.enterFlyout(u.value):r?.openSub(u.value),(0,t.nextTick)(()=>{S(),requestAnimationFrame(()=>S())})},w=()=>{if(r){if(m.value){g.value?r.leaveFlyout():C();return}r.toggleSub(u.value)}},T=()=>{l&&=(clearTimeout(l),null),r&&(r.menuTrigger.value===`hover`||m.value)&&C()},E=e=>{let t=e.relatedTarget;if(!(t&&(i.value?.contains(t)||o.value?.contains(t)))){if(!m.value){if(r?.menuTrigger.value!==`hover`)return;l&&clearTimeout(l),l=setTimeout(()=>{r?.closeSub(u.value),l=null},120);return}r?.leaveFlyout()}};return(0,t.watch)(g,e=>{e&&h.value&&(0,t.nextTick)(()=>S())}),(0,t.onBeforeUnmount)(()=>{l&&clearTimeout(l)}),(n,r)=>{let l=bS,u=k,f=dy,p=fl;return e.itemOrMenu.meta&&e.itemOrMenu.meta.levelHidden?((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,{key:0},(0,t.renderList)(e.itemOrMenu.children,n=>((0,t.openBlock)(),(0,t.createBlock)(l,{key:n.path,item:n,layout:e.layout},null,8,[`item`,`layout`]))),128)):((0,t.openBlock)(),(0,t.createElementBlock)(`li`,{key:1,ref_key:`subRef`,ref:i,class:(0,t.normalizeClass)([`fou-route-menu-sub`,{"is-open":(0,t.unref)(g),"is-active":(0,t.unref)(_),"is-popup":(0,t.unref)(m)}]),role:`none`,onMouseenter:T,onMouseleave:E},[(0,t.createElementVNode)(`div`,{ref_key:`titleRef`,ref:a,class:`fou-route-menu-sub__title`,onClick:w},[(0,t.createElementVNode)(`span`,xS,[(0,t.createVNode)(u,{icon:e.itemOrMenu.meta?.icon||`folder-line`,"is-custom-svg":e.itemOrMenu.meta?.isCustomSvg,title:(0,t.unref)(d)},null,8,[`icon`,`is-custom-svg`,`title`]),e.itemOrMenu.meta?.dot?((0,t.openBlock)(),(0,t.createBlock)(f,{key:0,class:`fou-route-menu-sub__dot`,type:(0,t.unref)(b)},null,8,[`type`])):(0,t.createCommentVNode)(``,!0)]),(0,t.createElementVNode)(`span`,{class:`fou-route-menu-sub__text`,title:(0,t.unref)(d)},(0,t.toDisplayString)((0,t.unref)(d)),9,SS),e.itemOrMenu.meta?.badge?((0,t.openBlock)(),(0,t.createBlock)(p,{key:0,class:(0,t.normalizeClass)([`fou-route-menu-sub__badge`,[`fou-menu-tag--${(0,t.unref)(y)}`]]),size:`small`,type:(0,t.unref)(v),effect:(0,t.unref)(y)},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)((0,t.unref)(Y)(e.itemOrMenu.meta.badge)),1)]),_:1},8,[`class`,`type`,`effect`])):(0,t.createCommentVNode)(``,!0),(0,t.unref)(m)?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,CS,[(0,t.createVNode)(u,{icon:`arrow-right-s-line`})])):((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:1,class:(0,t.normalizeClass)([`fou-route-menu-sub__arrow`,{"is-open":(0,t.unref)(g)}])},[(0,t.createVNode)(u,{icon:`arrow-down-s-line`})],2))],512),((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:`body`,disabled:!(0,t.unref)(h)},[(0,t.withDirectives)((0,t.createElementVNode)(`ul`,{ref_key:`listRef`,ref:o,class:(0,t.normalizeClass)([`fou-route-menu-sub__list`,{"is-flyout":(0,t.unref)(h),"fou-menu-flyout-panel":(0,t.unref)(h),[`is-placement-${(0,t.unref)(c)}`]:(0,t.unref)(h)}]),style:(0,t.normalizeStyle)((0,t.unref)(h)?(0,t.unref)(s):void 0),onMouseenter:T,onMouseleave:E},[(0,t.unref)(h)?((0,t.openBlock)(),(0,t.createElementBlock)(`i`,wS)):(0,t.createCommentVNode)(``,!0),(0,t.unref)(h)?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,TS,(0,t.toDisplayString)((0,t.unref)(d)),1)):(0,t.createCommentVNode)(``,!0),(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)],38),[[t.vShow,(0,t.unref)(x)]])],8,[`disabled`]))],34))}}}),DS=v({default:()=>OS}),OS=S(ES,[[`__scopeId`,`data-v-3f0479e1`]]),kS=Symbol(`FouMenuNav`),AS={class:`fou-menu-nav-item__inner`},jS={class:`fou-menu-nav-item__title`},MS=(0,t.defineComponent)({name:`FouMenuNavItem`,__name:`FouMenuNavItem`,props:{index:{},title:{default:``},disabled:{type:Boolean,default:!1}},setup(e){let n=e,r=(0,t.inject)(kS,null),i=null;try{i=(0,o.useRouter)()}catch{i=null}let a=(0,t.computed)(()=>r?.activeIndex.value===n.index),s=()=>{n.disabled||!r||(r.selectItem(n.index),r.router.value&&i&&i.push(n.index).catch(()=>{}))};return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`li`,{class:(0,t.normalizeClass)([`fou-menu-nav-item`,{"is-active":(0,t.unref)(a),"is-disabled":e.disabled}]),role:`menuitem`,onClick:s},[(0,t.createElementVNode)(`div`,AS,[(0,t.renderSlot)(n.$slots,`icon`,{},void 0,!0),(0,t.createElementVNode)(`span`,jS,[(0,t.renderSlot)(n.$slots,`default`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.title),1)],!0)])])],2))}}),NS=v({default:()=>PS}),PS=S(MS,[[`__scopeId`,`data-v-7d03eb13`]]),FS={class:`fou-menu-nav-sub__text`},IS={class:`fou-menu-nav-sub__list`},LS=(0,t.defineComponent)({name:`FouMenuNavSub`,__name:`FouMenuNavSub`,props:{index:{},title:{default:``}},setup(e){let n=e,r=(0,t.inject)(kS,null),i=(0,t.computed)(()=>r?.isSubOpen(n.index)??!1),a=(0,t.computed)(()=>{let e=r?.activeIndex.value??``;return e===n.index||e.startsWith(`${n.index}/`)}),o=()=>{r?.toggleSub(n.index)};return(n,s)=>((0,t.openBlock)(),(0,t.createElementBlock)(`li`,{class:(0,t.normalizeClass)([`fou-menu-nav-sub`,{"is-open":(0,t.unref)(i),"is-active":(0,t.unref)(a)}]),role:`none`},[(0,t.createElementVNode)(`div`,{class:`fou-menu-nav-sub__title`,onClick:o},[(0,t.renderSlot)(n.$slots,`icon`,{},void 0,!0),(0,t.createElementVNode)(`span`,FS,[(0,t.renderSlot)(n.$slots,`title`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.title),1)],!0)]),(0,t.createElementVNode)(`span`,{class:(0,t.normalizeClass)([`fou-menu-nav-sub__arrow`,{"is-open":(0,t.unref)(i)}])},`▾`,2)]),(0,t.withDirectives)((0,t.createElementVNode)(`ul`,IS,[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)],512),[[t.vShow,(0,t.unref)(i)&&!(0,t.unref)(r)?.collapse.value]])],2))}}),RS=v({default:()=>zS}),zS=S(LS,[[`__scopeId`,`data-v-d43bbb7b`]]),BS={class:`fou-menu-nav__list`},VS=(0,t.defineComponent)({name:`FouMenuNav`,__name:`index`,props:{mode:{default:`vertical`},defaultActive:{default:``},defaultOpeneds:{default:()=>[]},collapse:{type:Boolean,default:!1},router:{type:Boolean,default:!1}},emits:[`select`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.ref)(r.defaultActive),o=(0,t.ref)(new Set(r.defaultOpeneds));(0,t.watch)(()=>r.defaultActive,e=>{e&&(a.value=e)}),(0,t.watch)(()=>r.defaultOpeneds,e=>{o.value=new Set(e||[])});let s=(0,t.computed)(()=>r.mode),c=(0,t.computed)(()=>r.collapse),l=(0,t.computed)(()=>r.defaultActive),u=(0,t.computed)(()=>a.value),d=(0,t.computed)(()=>r.router);return(0,t.provide)(kS,{mode:s,collapse:c,defaultActive:l,activeIndex:u,router:d,selectItem:e=>{a.value=e,i(`select`,e)},isSubOpen:e=>o.value.has(e),toggleSub:e=>{let t=new Set(o.value);t.has(e)?t.delete(e):t.add(e),o.value=t}}),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`nav`,{class:(0,t.normalizeClass)([`fou-menu-nav`,[`fou-menu-nav--${e.mode}`,{"is-collapse":e.collapse,"is-horizontal":e.mode===`horizontal`}]]),role:`menu`},[(0,t.createElementVNode)(`ul`,BS,[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)])],2))}}),HS=v({default:()=>US}),US=S(VS,[[`__scopeId`,`data-v-6d01fd65`]]),WS={class:`fou-notify__content`},GS={key:0,class:`fou-notify__title`},KS={key:1,class:`fou-notify__message`},qS=(0,t.defineComponent)({name:`FouNotificationItem`,__name:`FouNotificationItem`,props:{id:{},type:{},position:{},title:{},message:{},showClose:{type:Boolean},visible:{type:Boolean}},emits:[`close`],setup(e){let n=e,r=(0,t.computed)(()=>({success:`ri-checkbox-circle-line`,warning:`ri-alert-line`,info:`ri-information-line`,error:`ri-close-circle-line`})[n.type]);return(n,i)=>((0,t.openBlock)(),(0,t.createBlock)(t.Transition,{name:`fou-notify-fade`},{default:(0,t.withCtx)(()=>[(0,t.withDirectives)((0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`fou-notify`,[`fou-notify--${e.type}`,`fou-notify--${e.position}`]])},[(0,t.createElementVNode)(`i`,{class:(0,t.normalizeClass)([`fou-notify__icon`,(0,t.unref)(r)])},null,2),(0,t.createElementVNode)(`div`,WS,[e.title?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,GS,(0,t.toDisplayString)(e.title),1)):(0,t.createCommentVNode)(``,!0),e.message?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,KS,(0,t.toDisplayString)(e.message),1)):(0,t.createCommentVNode)(``,!0)]),e.showClose?((0,t.openBlock)(),(0,t.createElementBlock)(`i`,{key:0,class:`fou-notify__close ri-close-line`,onClick:i[0]||=e=>n.$emit(`close`)})):(0,t.createCommentVNode)(``,!0)],2),[[t.vShow,e.visible]])]),_:1}))}}),JS=v({default:()=>YS}),YS=qS,XS=(0,t.defineComponent)({name:`FouPage`,inheritAttrs:!1,__name:`index`,setup(e){return(e,n)=>{let r=or;return(0,t.openBlock)(),(0,t.createBlock)(r,(0,t.normalizeProps)((0,t.guardReactiveProps)(e.$attrs)),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16)}}}),ZS=v({default:()=>QS}),QS=XS,$S={class:`fou-page-header`},eC={key:0,class:`fou-page-header__breadcrumb`},tC={class:`fou-page-header__main`},nC={class:`fou-page-header__left`},rC={class:`fou-page-header__heading`},iC={key:0,class:`fou-page-header__title`},aC={key:1,class:`fou-page-header__content`},oC={key:0,class:`fou-page-header__extra`},sC=(0,t.defineComponent)({name:`FouPageHeader`,__name:`index`,props:{title:{default:``},content:{default:``},icon:{default:``}},emits:[`back`],setup(e,{emit:n}){let r=n;return(n,i)=>{let a=k;return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,$S,[n.$slots.breadcrumb?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,eC,[(0,t.renderSlot)(n.$slots,`breadcrumb`,{},void 0,!0)])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,tC,[(0,t.createElementVNode)(`div`,nC,[(0,t.createElementVNode)(`button`,{type:`button`,class:`fou-page-header__back`,"aria-label":`返回`,onClick:i[0]||=e=>r(`back`)},[(0,t.renderSlot)(n.$slots,`icon`,{},()=>[(0,t.createVNode)(a,{icon:e.icon||`arrow-left-line`},null,8,[`icon`])],!0)]),(0,t.createElementVNode)(`div`,rC,[e.title||n.$slots.title?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,iC,[(0,t.renderSlot)(n.$slots,`title`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.title),1)],!0)])):(0,t.createCommentVNode)(``,!0),e.content||n.$slots.content?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,aC,[(0,t.renderSlot)(n.$slots,`content`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.content),1)],!0)])):(0,t.createCommentVNode)(``,!0)])]),n.$slots.extra?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,oC,[(0,t.renderSlot)(n.$slots,`extra`,{},void 0,!0)])):(0,t.createCommentVNode)(``,!0)])])}}}),cC=v({default:()=>lC}),lC=S(sC,[[`__scopeId`,`data-v-405076b1`]]),uC={class:`fou-page-main`},dC={key:0,class:`fou-page-main__header`},fC={class:`fou-page-main__heading`},pC={key:0,class:`fou-page-main__title`},mC={key:0,class:`fou-page-main__desc`},hC={key:0,class:`fou-page-main__extra`},gC={class:`fou-page-main__body`},_C=(0,t.defineComponent)({name:`FouPageMain`,__name:`index`,props:{title:{default:``},description:{default:``}},setup(e){return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`section`,uC,[e.title||n.$slots.title||n.$slots.extra?((0,t.openBlock)(),(0,t.createElementBlock)(`header`,dC,[(0,t.createElementVNode)(`div`,fC,[(0,t.renderSlot)(n.$slots,`title`,{},()=>[e.title?((0,t.openBlock)(),(0,t.createElementBlock)(`h2`,pC,(0,t.toDisplayString)(e.title),1)):(0,t.createCommentVNode)(``,!0)],!0),e.description||n.$slots.description?((0,t.openBlock)(),(0,t.createElementBlock)(`p`,mC,[(0,t.renderSlot)(n.$slots,`description`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.description),1)],!0)])):(0,t.createCommentVNode)(``,!0)]),n.$slots.extra?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,hC,[(0,t.renderSlot)(n.$slots,`extra`,{},void 0,!0)])):(0,t.createCommentVNode)(``,!0)])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,gC,[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)])]))}}),vC=v({default:()=>yC}),yC=S(_C,[[`__scopeId`,`data-v-bc32527c`]]),bC=(0,t.defineComponent)({name:`FouParagraph`,__name:`index`,props:{type:{default:``},indent:{type:Boolean,default:!1},lineClamp:{default:0}},setup(e){return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`p`,{class:(0,t.normalizeClass)([`fou-paragraph`,[e.type?`fou-paragraph--${e.type}`:``,{"is-indent":e.indent,"is-line-clamp":e.lineClamp>0}]]),style:(0,t.normalizeStyle)(e.lineClamp>0?{WebkitLineClamp:String(e.lineClamp)}:void 0)},[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)],6))}}),xC=v({default:()=>SC}),SC=S(bC,[[`__scopeId`,`data-v-a4c339e8`]]),CC={class:`fou-pwd-strength__bars`},wC={key:0,class:`fou-pwd-strength__label`},TC=(0,t.defineComponent)({name:`FouPasswordStrength`,__name:`index`,props:{password:{default:``},showLabel:{type:Boolean,default:!0}},setup(e){let n=e,r=(0,t.computed)(()=>{let e=String(n.password||``);if(!e)return{score:0,label:`weak`,text:``};let t=0;return e.length>=8&&t++,/[A-Z]/.test(e)&&/[a-z]/.test(e)&&t++,/\d/.test(e)&&t++,/[^A-Za-z0-9]/.test(e)&&t++,e.length<6&&(t=Math.min(t,1)),[{score:0,label:`weak`,text:``},{score:1,label:`weak`,text:`弱`},{score:2,label:`fair`,text:`中`},{score:3,label:`good`,text:`强`},{score:4,label:`strong`,text:`极强`}][t]});return(n,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-pwd-strength`,[`fou-pwd-strength--${r.value.label}`]])},[(0,t.createElementVNode)(`div`,CC,[((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(4,e=>(0,t.createElementVNode)(`span`,{key:e,class:(0,t.normalizeClass)([`fou-pwd-strength__bar`,{"is-on":e<=r.value.score}])},null,2)),64))]),e.showLabel?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,wC,(0,t.toDisplayString)(r.value.text),1)):(0,t.createCommentVNode)(``,!0)],2))}}),EC=v({default:()=>DC}),DC=S(TC,[[`__scopeId`,`data-v-7cd9df04`]]),OC={class:`fou-popconfirm-host`},kC={class:`fou-popconfirm__body`},AC={class:`fou-popconfirm__title`},jC={class:`fou-popconfirm__actions`},MC=(0,t.defineComponent)({name:`FouPopconfirm`,inheritAttrs:!1,__name:`index`,props:{title:{default:`确定执行此操作?`},confirmButtonText:{default:`确定`},cancelButtonText:{default:`取消`},confirmButtonType:{default:`primary`},width:{default:240},zIndex:{default:5200}},emits:[`confirm`,`cancel`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.ref)(null),o=(0,t.ref)(null),s=(0,t.ref)(!1),c=(0,t.ref)(`bottom`),l=(0,t.ref)({}),u=(0,t.computed)(()=>typeof r.width==`number`?`${r.width}px`:String(r.width)),d=()=>{let e=a.value,t=o.value;if(!e||!t)return;let n=e.getBoundingClientRect(),i=typeof r.width==`number`?r.width:Number.parseFloat(String(r.width))||240,s=n.left+n.width/2-i/2,d=window.innerWidth,f=window.innerHeight;s=Math.min(Math.max(8,s),d-i-8);let p=t.offsetHeight||96,m=`bottom`,h=n.bottom+10;h+p>f-8&&n.top-10-p>8&&(m=`top`,h=n.top-10-p),c.value=m;let g=n.left+n.width/2,_=Math.round(g-s-6);_=Math.min(Math.max(14,_),i-20),l.value={position:`fixed`,top:`${Math.round(h)}px`,left:`${Math.round(s)}px`,width:u.value,"--fou-popconfirm-arrow-x":`${_}px`}},f=async()=>{s.value=!0,await(0,t.nextTick)(),d(),requestAnimationFrame(()=>d())},p=()=>{s.value=!1},m=()=>{i(`confirm`),p()},h=()=>{i(`cancel`),p()},g=()=>{s.value&&d()};return(0,t.watch)(s,e=>{e?(window.addEventListener(`scroll`,g,!0),window.addEventListener(`resize`,g)):(window.removeEventListener(`scroll`,g,!0),window.removeEventListener(`resize`,g))}),(0,t.onBeforeUnmount)(()=>{window.removeEventListener(`scroll`,g,!0),window.removeEventListener(`resize`,g)}),(n,r)=>{let i=k,u=Vt;return(0,t.openBlock)(),(0,t.createElementBlock)(`span`,OC,[(0,t.createElementVNode)(`span`,{ref_key:`triggerRef`,ref:a,class:`fou-popconfirm__trigger`,onClick:f},[(0,t.renderSlot)(n.$slots,`reference`,{},void 0,!0)],512),((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:`body`},[(0,t.createVNode)(t.Transition,{name:`fou-popconfirm-fade`},{default:(0,t.withCtx)(()=>[(0,t.withDirectives)((0,t.createElementVNode)(`div`,{class:`fou-popconfirm-root`,style:(0,t.normalizeStyle)({zIndex:String(e.zIndex)})},[(0,t.createElementVNode)(`div`,{class:`fou-popconfirm__mask`,onClick:h}),(0,t.createElementVNode)(`div`,{ref_key:`popperRef`,ref:o,class:(0,t.normalizeClass)([`fou-popconfirm`,`is-placement-${(0,t.unref)(c)}`]),style:(0,t.normalizeStyle)((0,t.unref)(l)),onClick:r[0]||=(0,t.withModifiers)(()=>{},[`stop`])},[r[1]||=(0,t.createElementVNode)(`i`,{class:`fou-popconfirm__arrow`,"aria-hidden":`true`},null,-1),(0,t.createElementVNode)(`div`,kC,[(0,t.createVNode)(i,{class:`fou-popconfirm__icon`,icon:`error-warning-line`}),(0,t.createElementVNode)(`div`,AC,(0,t.toDisplayString)(e.title),1)]),(0,t.createElementVNode)(`div`,jC,[(0,t.renderSlot)(n.$slots,`actions`,{},()=>[(0,t.createVNode)(u,{size:`small`,onClick:h},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.cancelButtonText),1)]),_:1}),(0,t.createVNode)(u,{size:`small`,type:e.confirmButtonType,onClick:m},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.confirmButtonText),1)]),_:1},8,[`type`])],!0)])],6)],4),[[t.vShow,(0,t.unref)(s)]])]),_:3})]))])}}}),NC=v({default:()=>PC}),PC=S(MC,[[`__scopeId`,`data-v-c0375827`]]),FC={key:0,class:`fou-popover__title`},IC={class:`fou-popover__body`},LC=(0,t.defineComponent)({name:`FouPopover`,inheritAttrs:!1,__name:`index`,props:{visible:{type:Boolean},title:{default:``},width:{default:240},placement:{default:`bottom`},trigger:{default:`click`},closeOnClickOutside:{type:Boolean,default:!0},zIndex:{default:2e3}},emits:[`update:visible`,`show`,`hide`],setup(e,{emit:n}){let r=(0,t.useAttrs)(),i=e,a=n,o=(0,t.ref)(null),s=(0,t.ref)(null),c=(0,t.ref)(!1),l=(0,t.ref)({}),u=(0,t.ref)(!1),d=(0,t.computed)(()=>i.visible!==void 0),f=(0,t.computed)({get:()=>d.value?!!i.visible:c.value,set:e=>{d.value?a(`update:visible`,e):c.value=e}}),p=(0,t.computed)(()=>typeof i.width==`number`?`${i.width}px`:String(i.width)),m=()=>{let e=o.value,t=s.value;if(!e||!t)return;let n=e.getBoundingClientRect(),r=t.getBoundingClientRect(),a=0,c=0;switch(i.placement){case`top`:a=n.top-r.height-10,c=n.left+n.width/2-r.width/2;break;case`left`:a=n.top+n.height/2-r.height/2,c=n.left-r.width-10;break;case`right`:a=n.top+n.height/2-r.height/2,c=n.right+10;break;default:a=n.bottom+10,c=n.left+n.width/2-r.width/2}let u=window.innerWidth,d=window.innerHeight;c=Math.min(Math.max(4,c),u-r.width-4),a=Math.min(Math.max(4,a),d-r.height-4),l.value={position:`fixed`,top:`${a}px`,left:`${c}px`,width:p.value}},h=async()=>{f.value||(f.value=!0,a(`show`),await(0,t.nextTick)(),m())},g=()=>{f.value&&(f.value=!1,a(`hide`))},_=()=>{i.trigger===`click`&&(f.value?g():h())},v,y=()=>{i.trigger===`hover`&&(v&&clearTimeout(v),h())},b=()=>{i.trigger===`hover`&&(v=setTimeout(()=>{u.value||g()},120))},x=()=>{u.value=!0,v&&clearTimeout(v)},S=()=>{u.value=!1,i.trigger===`hover`&&b()},C=()=>{i.trigger===`click`&&i.closeOnClickOutside&&g()},w=e=>{if(i.trigger!==`click`||!f.value)return;let t=e.target;o.value?.contains(t)||s.value?.contains(t)||i.closeOnClickOutside&&g()},T=()=>{f.value&&m()};return(0,t.watch)(f,e=>{e?(document.addEventListener(`click`,w,!0),window.addEventListener(`scroll`,T,!0),window.addEventListener(`resize`,T)):(document.removeEventListener(`click`,w,!0),window.removeEventListener(`scroll`,T,!0),window.removeEventListener(`resize`,T))}),(0,t.onBeforeUnmount)(()=>{v&&clearTimeout(v),document.removeEventListener(`click`,w,!0),window.removeEventListener(`scroll`,T,!0),window.removeEventListener(`resize`,T)}),(n,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,(0,t.mergeProps)({class:`fou-popover-host`},(0,t.unref)(r)),[(0,t.createElementVNode)(`span`,{ref_key:`triggerRef`,ref:o,class:`fou-popover__trigger`,onClick:_,onMouseenter:y,onMouseleave:b},[(0,t.renderSlot)(n.$slots,`reference`,{},void 0,!0)],544),((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:`body`},[(0,t.createVNode)(t.Transition,{name:`fou-popover-fade`},{default:(0,t.withCtx)(()=>[(0,t.withDirectives)((0,t.createElementVNode)(`div`,{class:`fou-popover-root`,style:(0,t.normalizeStyle)({zIndex:String(e.zIndex)})},[e.trigger===`click`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:`fou-popover__mask`,onClick:C})):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,{ref_key:`popperRef`,ref:s,class:(0,t.normalizeClass)([`fou-popover`,[`fou-popover--${e.placement}`]]),style:(0,t.normalizeStyle)((0,t.unref)(l)),role:`dialog`,onMouseenter:x,onMouseleave:S,onClick:i[0]||=(0,t.withModifiers)(()=>{},[`stop`])},[e.title||n.$slots.title?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,FC,[(0,t.renderSlot)(n.$slots,`title`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.title),1)],!0)])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,IC,[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)])],38)],4),[[t.vShow,(0,t.unref)(f)]])]),_:3})]))],16))}}),RC=v({default:()=>zC}),zC=S(LC,[[`__scopeId`,`data-v-0d5add06`]]),BC=[`aria-valuenow`],VC={key:0,class:`fou-progress__text fou-progress__text--inside`},HC={key:0,class:`fou-progress__text`},UC=[`viewBox`],WC=[`cx`,`cy`,`r`,`stroke-width`],GC=[`cx`,`cy`,`r`,`stroke`,`stroke-width`,`stroke-dasharray`,`stroke-dashoffset`,`stroke-linecap`,`transform`],KC={key:0,class:`fou-progress__circle-text`},qC=(0,t.defineComponent)({name:`FouProgress`,__name:`index`,props:{percentage:{default:0},type:{default:`line`},status:{default:``},strokeWidth:{default:6},textInside:{type:Boolean,default:!1},color:{},showText:{type:Boolean,default:!0},width:{default:126}},setup(e){let n=e,r=(0,t.computed)(()=>Math.min(100,Math.max(0,n.percentage))),i=(0,t.computed)(()=>n.status?n.status:r.value>=100?`success`:``),a=(0,t.computed)(()=>({success:`var(--fou-color-success, var(--fou-color-success, #67c23a))`,exception:`var(--fou-color-danger, var(--fou-color-danger, #f56c6c))`,warning:`var(--fou-color-warning, var(--fou-color-warning, #e6a23c))`})[i.value]||`var(--fou-color-primary, var(--fou-color-primary, #0f766e))`),o=(0,t.computed)(()=>typeof n.color==`string`?n.color:typeof n.color==`function`?n.color(r.value):a.value),s=(0,t.computed)(()=>({width:`${r.value}%`,backgroundColor:o.value})),c=(0,t.computed)(()=>i.value===`success`?`✓`:i.value===`exception`?`✕`:i.value===`warning`?`!`:`${r.value}%`),l=(0,t.computed)(()=>n.width/2),u=(0,t.computed)(()=>(n.width-n.strokeWidth)/2),d=(0,t.computed)(()=>2*Math.PI*u.value),f=(0,t.computed)(()=>n.type===`dashboard`?.75:1),p=(0,t.computed)(()=>{let e=r.value/100;return d.value*(1-e*f.value)}),m=(0,t.computed)(()=>n.type===`dashboard`?`rotate(135 ${l.value} ${l.value})`:`rotate(-90 ${l.value} ${l.value})`);return(n,a)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-progress`,[`fou-progress--${e.type}`,{"is-success":(0,t.unref)(i)===`success`,"is-exception":(0,t.unref)(i)===`exception`,"is-warning":(0,t.unref)(i)===`warning`}]]),role:`progressbar`,"aria-valuenow":(0,t.unref)(r),"aria-valuemin":`0`,"aria-valuemax":`100`},[e.type===`line`?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:0},[(0,t.createElementVNode)(`div`,{class:`fou-progress__outer`,style:(0,t.normalizeStyle)({height:`${e.strokeWidth}px`})},[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`fou-progress__inner`,{"is-text-inside":e.textInside}]),style:(0,t.normalizeStyle)((0,t.unref)(s))},[e.textInside&&e.showText?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,VC,[(0,t.renderSlot)(n.$slots,`default`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)((0,t.unref)(c)),1)],!0)])):(0,t.createCommentVNode)(``,!0)],6)],4),!e.textInside&&e.showText?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,HC,[(0,t.renderSlot)(n.$slots,`default`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)((0,t.unref)(c)),1)],!0)])):(0,t.createCommentVNode)(``,!0)],64)):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:1,class:`fou-progress__circle`,style:(0,t.normalizeStyle)({width:`${e.width}px`,height:`${e.width}px`})},[((0,t.openBlock)(),(0,t.createElementBlock)(`svg`,{viewBox:`0 0 ${e.width} ${e.width}`},[(0,t.createElementVNode)(`circle`,{class:`fou-progress__track`,cx:(0,t.unref)(l),cy:(0,t.unref)(l),r:(0,t.unref)(u),fill:`none`,"stroke-width":e.strokeWidth},null,8,WC),(0,t.createElementVNode)(`circle`,{class:`fou-progress__path`,cx:(0,t.unref)(l),cy:(0,t.unref)(l),r:(0,t.unref)(u),fill:`none`,stroke:(0,t.unref)(o),"stroke-width":e.strokeWidth,"stroke-dasharray":(0,t.unref)(d),"stroke-dashoffset":(0,t.unref)(p),"stroke-linecap":e.type===`dashboard`?`round`:`butt`,transform:(0,t.unref)(m)},null,8,GC)],8,UC)),e.showText?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,KC,[(0,t.renderSlot)(n.$slots,`default`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)((0,t.unref)(c)),1)],!0)])):(0,t.createCommentVNode)(``,!0)],4))],10,BC))}}),JC=v({default:()=>YC}),YC=S(qC,[[`__scopeId`,`data-v-146433c6`]]),XC=_(((e,t)=>{t.exports=function(){return typeof Promise==`function`&&Promise.prototype&&Promise.prototype.then}})),ZC=_((e=>{var t,n=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];e.getSymbolSize=function(e){if(!e)throw Error(`"version" cannot be null or undefined`);if(e<1||e>40)throw Error(`"version" should be in range from 1 to 40`);return e*4+17},e.getSymbolTotalCodewords=function(e){return n[e]},e.getBCHDigit=function(e){let t=0;for(;e!==0;)t++,e>>>=1;return t},e.setToSJISFunction=function(e){if(typeof e!=`function`)throw Error(`"toSJISFunc" is not a valid function.`);t=e},e.isKanjiModeEnabled=function(){return t!==void 0},e.toSJIS=function(e){return t(e)}})),QC=_((e=>{e.L={bit:1},e.M={bit:0},e.Q={bit:3},e.H={bit:2};function t(t){if(typeof t!=`string`)throw Error(`Param is not a string`);switch(t.toLowerCase()){case`l`:case`low`:return e.L;case`m`:case`medium`:return e.M;case`q`:case`quartile`:return e.Q;case`h`:case`high`:return e.H;default:throw Error(`Unknown EC Level: `+t)}}e.isValid=function(e){return e&&e.bit!==void 0&&e.bit>=0&&e.bit<4},e.from=function(n,r){if(e.isValid(n))return n;try{return t(n)}catch{return r}}})),$C=_(((e,t)=>{function n(){this.buffer=[],this.length=0}n.prototype={get:function(e){let t=Math.floor(e/8);return(this.buffer[t]>>>7-e%8&1)==1},put:function(e,t){for(let n=0;n<t;n++)this.putBit((e>>>t-n-1&1)==1)},getLengthInBits:function(){return this.length},putBit:function(e){let t=Math.floor(this.length/8);this.buffer.length<=t&&this.buffer.push(0),e&&(this.buffer[t]|=128>>>this.length%8),this.length++}},t.exports=n})),ew=_(((e,t)=>{function n(e){if(!e||e<1)throw Error(`BitMatrix size must be defined and greater than 0`);this.size=e,this.data=new Uint8Array(e*e),this.reservedBit=new Uint8Array(e*e)}n.prototype.set=function(e,t,n,r){let i=e*this.size+t;this.data[i]=n,r&&(this.reservedBit[i]=!0)},n.prototype.get=function(e,t){return this.data[e*this.size+t]},n.prototype.xor=function(e,t,n){this.data[e*this.size+t]^=n},n.prototype.isReserved=function(e,t){return this.reservedBit[e*this.size+t]},t.exports=n})),tw=_((e=>{var t=ZC().getSymbolSize;e.getRowColCoords=function(e){if(e===1)return[];let n=Math.floor(e/7)+2,r=t(e),i=r===145?26:Math.ceil((r-13)/(2*n-2))*2,a=[r-7];for(let e=1;e<n-1;e++)a[e]=a[e-1]-i;return a.push(6),a.reverse()},e.getPositions=function(t){let n=[],r=e.getRowColCoords(t),i=r.length;for(let e=0;e<i;e++)for(let t=0;t<i;t++)e===0&&t===0||e===0&&t===i-1||e===i-1&&t===0||n.push([r[e],r[t]]);return n}})),nw=_((e=>{var t=ZC().getSymbolSize,n=7;e.getPositions=function(e){let r=t(e);return[[0,0],[r-n,0],[0,r-n]]}})),rw=_((e=>{e.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};var t={N1:3,N2:3,N3:40,N4:10};e.isValid=function(e){return e!=null&&e!==``&&!isNaN(e)&&e>=0&&e<=7},e.from=function(t){return e.isValid(t)?parseInt(t,10):void 0},e.getPenaltyN1=function(e){let n=e.size,r=0,i=0,a=0,o=null,s=null;for(let c=0;c<n;c++){i=a=0,o=s=null;for(let l=0;l<n;l++){let n=e.get(c,l);n===o?i++:(i>=5&&(r+=t.N1+(i-5)),o=n,i=1),n=e.get(l,c),n===s?a++:(a>=5&&(r+=t.N1+(a-5)),s=n,a=1)}i>=5&&(r+=t.N1+(i-5)),a>=5&&(r+=t.N1+(a-5))}return r},e.getPenaltyN2=function(e){let n=e.size,r=0;for(let t=0;t<n-1;t++)for(let i=0;i<n-1;i++){let n=e.get(t,i)+e.get(t,i+1)+e.get(t+1,i)+e.get(t+1,i+1);(n===4||n===0)&&r++}return r*t.N2},e.getPenaltyN3=function(e){let n=e.size,r=0,i=0,a=0;for(let t=0;t<n;t++){i=a=0;for(let o=0;o<n;o++)i=i<<1&2047|e.get(t,o),o>=10&&(i===1488||i===93)&&r++,a=a<<1&2047|e.get(o,t),o>=10&&(a===1488||a===93)&&r++}return r*t.N3},e.getPenaltyN4=function(e){let n=0,r=e.data.length;for(let t=0;t<r;t++)n+=e.data[t];return Math.abs(Math.ceil(n*100/r/5)-10)*t.N4};function n(t,n,r){switch(t){case e.Patterns.PATTERN000:return(n+r)%2==0;case e.Patterns.PATTERN001:return n%2==0;case e.Patterns.PATTERN010:return r%3==0;case e.Patterns.PATTERN011:return(n+r)%3==0;case e.Patterns.PATTERN100:return(Math.floor(n/2)+Math.floor(r/3))%2==0;case e.Patterns.PATTERN101:return n*r%2+n*r%3==0;case e.Patterns.PATTERN110:return(n*r%2+n*r%3)%2==0;case e.Patterns.PATTERN111:return(n*r%3+(n+r)%2)%2==0;default:throw Error(`bad maskPattern:`+t)}}e.applyMask=function(e,t){let r=t.size;for(let i=0;i<r;i++)for(let a=0;a<r;a++)t.isReserved(a,i)||t.xor(a,i,n(e,a,i))},e.getBestMask=function(t,n){let r=Object.keys(e.Patterns).length,i=0,a=1/0;for(let o=0;o<r;o++){n(o),e.applyMask(o,t);let r=e.getPenaltyN1(t)+e.getPenaltyN2(t)+e.getPenaltyN3(t)+e.getPenaltyN4(t);e.applyMask(o,t),r<a&&(a=r,i=o)}return i}})),iw=_((e=>{var t=QC(),n=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],r=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];e.getBlocksCount=function(e,r){switch(r){case t.L:return n[(e-1)*4+0];case t.M:return n[(e-1)*4+1];case t.Q:return n[(e-1)*4+2];case t.H:return n[(e-1)*4+3];default:return}},e.getTotalCodewordsCount=function(e,n){switch(n){case t.L:return r[(e-1)*4+0];case t.M:return r[(e-1)*4+1];case t.Q:return r[(e-1)*4+2];case t.H:return r[(e-1)*4+3];default:return}}})),aw=_((e=>{var t=new Uint8Array(512),n=new Uint8Array(256);(function(){let e=1;for(let r=0;r<255;r++)t[r]=e,n[e]=r,e<<=1,e&256&&(e^=285);for(let e=255;e<512;e++)t[e]=t[e-255]})(),e.log=function(e){if(e<1)throw Error(`log(`+e+`)`);return n[e]},e.exp=function(e){return t[e]},e.mul=function(e,r){return e===0||r===0?0:t[n[e]+n[r]]}})),ow=_((e=>{var t=aw();e.mul=function(e,n){let r=new Uint8Array(e.length+n.length-1);for(let i=0;i<e.length;i++)for(let a=0;a<n.length;a++)r[i+a]^=t.mul(e[i],n[a]);return r},e.mod=function(e,n){let r=new Uint8Array(e);for(;r.length-n.length>=0;){let e=r[0];for(let i=0;i<n.length;i++)r[i]^=t.mul(n[i],e);let i=0;for(;i<r.length&&r[i]===0;)i++;r=r.slice(i)}return r},e.generateECPolynomial=function(n){let r=new Uint8Array([1]);for(let i=0;i<n;i++)r=e.mul(r,new Uint8Array([1,t.exp(i)]));return r}})),sw=_(((e,t)=>{var n=ow();function r(e){this.genPoly=void 0,this.degree=e,this.degree&&this.initialize(this.degree)}r.prototype.initialize=function(e){this.degree=e,this.genPoly=n.generateECPolynomial(this.degree)},r.prototype.encode=function(e){if(!this.genPoly)throw Error(`Encoder not initialized`);let t=new Uint8Array(e.length+this.degree);t.set(e);let r=n.mod(t,this.genPoly),i=this.degree-r.length;if(i>0){let e=new Uint8Array(this.degree);return e.set(r,i),e}return r},t.exports=r})),cw=_((e=>{e.isValid=function(e){return!isNaN(e)&&e>=1&&e<=40}})),lw=_((e=>{var t=`[0-9]+`,n=`[A-Z $%*+\\-./:]+`,r=`(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+`;r=r.replace(/u/g,`\\u`);var i=`(?:(?![A-Z0-9 $%*+\\-./:]|`+r+`)(?:.|[\r
123
+ linear-gradient(90deg, rgba(15, 23, 42, 0.06) 1px, transparent 1px)`.replace(/\s+/g,` `),n=I.value.canvas.backgroundImage?`, url(${dn(I.value.canvas.backgroundImage)})`:``,r=I.value.canvas.backgroundImage?`${e}px ${e}px, ${e}px ${e}px, cover`:`${e}px ${e}px`,i=I.value.canvas.backgroundImage?`0 0, 0 0, center`:`0 0`,a=I.value.canvas.showBorder!==!1,o=I.value.canvas.borderColor||`#334155`,s=Number(I.value.canvas.borderWidthMm),c=Number.isFinite(s)&&s>0?s:.35;return{width:`100%`,height:`100%`,position:`relative`,boxSizing:`border-box`,backgroundColor:I.value.canvas.backgroundImage?void 0:I.value.canvas.background||`transparent`,backgroundImage:I.value.canvas.backgroundImage?`${t}${n}`:t,backgroundSize:r,backgroundPosition:i,border:a?`${c}mm solid ${o}`:`0 solid transparent`,borderRadius:`2px`,boxShadow:a?`0 1px 4px rgba(0,0,0,0.1)`:`inset 0 0 0 1px rgba(148, 163, 184, 0.35), 0 1px 3px rgba(0,0,0,0.06)`}}),Qt=(0,t.computed)(()=>{if(!I.value?.canvas?.widthMm)return .35;let e=I.value.canvas.widthMm*Ph;return Math.min(220/e,.65)}),$t=(0,t.computed)(()=>{if(!I.value?.canvas?.widthMm)return .55;let e=I.value.canvas.widthMm*Ph;return Math.min(520/e,1)});function en(e){return(l.value?Gu:zu)[e]||e}function tn(){I.value?.canvas&&(I.value.canvas.widthMm=L.value,I.value.canvas.heightMm=R.value)}function nn(){I.value?.canvas?.backgroundImage?Be.value=`image`:(I.value?.canvas?.background||``).trim()?Be.value=`color`:Be.value=`transparent`}function rn(e){if(I.value?.canvas){if(e===`transparent`){delete I.value.canvas.backgroundImage,I.value.canvas.background=``;return}if(e===`color`){delete I.value.canvas.backgroundImage,String(I.value.canvas.background||``).trim()||(I.value.canvas.background=`#ffffff`);return}I.value.canvas.backgroundImage||an(`lib`)}}function an(e){xe.value=e,be.value=!0}function on(e){!I.value?.canvas||!e||(I.value.canvas.backgroundImage=e,I.value.canvas.background=``,Be.value=`image`)}function sn(){I.value?.canvas?.backgroundImage&&(delete I.value.canvas.backgroundImage,nn())}function cn(e){Ce.value=e,Se.value=!0}function ln(e){!J.value||!e||(J.value.backgroundImage=e,J.value.background=``)}function un(){J.value?.backgroundImage&&delete J.value.backgroundImage}function dn(e){return Rn(e)}function fn(e,t,n){if(!(t>0)||!(n>0)||!Number.isFinite(n)||!Number.isFinite(t))return[];let r=[1,2,5,10,20,25,50,100,200,250,500,1e3,2e3,5e3],i=r[r.length-1];for(let e of r)if(e*n>=10){i=e;break}let a=i;for(let e of r)if(!(e<i||e%i!==0)&&(a=e,e*n>=52))break;let o=a/2,s=Math.floor(-e/n/i)*i,c=Math.ceil((t-e)/n/i)*i;if(!Number.isFinite(s)||!Number.isFinite(c)||c<s)return[];let l=[];for(let t=s;t<=c;t+=i){let r=(t%a+a)%a===0,s=!r&&o>=i&&(t%o+o)%o===0;l.push({mm:t,major:r,mid:s,label:r?`${t}`:``,offsetPx:Math.round((e+t*n)*100)/100})}return l}function pn(e){return JSON.parse(JSON.stringify(e))}function mn(e){return JSON.parse(JSON.stringify(e))}function hn(){Le+=1;let e=4*Le;return{dx:e,dy:e}}function gn(e,t){let n=e.xMm+e.wMm,r=e.yMm+e.hMm;return n>t.xMm&&e.xMm<t.xMm+t.wMm&&r>t.yMm&&e.yMm<t.yMm+t.hMm}function _n(e){let t=Math.min(...e.map(e=>e.xMm)),n=Math.min(...e.map(e=>e.yMm)),r=Math.max(...e.map(e=>e.xMm+e.wMm)),i=Math.max(...e.map(e=>e.yMm+e.hMm));return{minX:t,minY:n,maxR:r,maxB:i,width:$(r-t),height:$(i-n)}}function yn(e){let t=Math.min(...e.map(e=>e.xMm)),n=Math.min(...e.map(e=>e.yMm)),r=Math.max(...e.map(e=>e.xMm+e.wMm)),i=Math.max(...e.map(e=>e.yMm+e.hMm));return{minX:t,minY:n,maxR:r,maxB:i,width:$(r-t),height:$(i-n)}}function xn(e){return{xMm:$(e.xMm+2),yMm:$(e.yMm+2)}}function Sn(e,t,n){let r=Math.max(0,Number(Ve.value)||0),i=Math.max(0,e.wMm-t.width),a=Math.max(0,e.hMm-t.height),o=n.endsWith(`left`)?0:n.endsWith(`right`)?1:.5,s=n.startsWith(`top`)?0:n.startsWith(`bottom`)?1:.5,c=Math.min(r,i),l=Math.min(r,a),u=Math.max(0,i-c*2),d=Math.max(0,a-l*2);return{xMm:$(e.xMm+c+u*o),yMm:$(e.yMm+l+d*s)}}function Cn(e,t,n){let r=e.xMm,i=e.yMm,a=!!e.flipX,o=!!e.flipY;return n===`x`?(r=$(t.minX+t.maxR-(e.xMm+e.wMm)),a=!a):n===`y`&&(i=$(t.minY+t.maxB-(e.yMm+e.hMm)),o=!o),{xMm:r,yMm:i,flipX:a||void 0,flipY:o||void 0}}function wn(e){if(!I.value||!e.length)return;let t=e.map(e=>I.value.elements.find(t=>t.id===e)).filter(e=>e!=null);t.length&&(je.value=t.map(e=>pn(e)),Ne.value=`elements`,Le=0,Q.success(t.length>1?`已复制 ${t.length} 个元素`:`已复制元素`))}function En(e){return I.value?.elements?.length?I.value.elements.filter(t=>t.regionId===e.id||gn(t,e)):[]}function On(e,t,n){if(!e.length){Q.info(`请先选中要复制的分块`);return}Me.value={regions:e.map(e=>mn(e)),elements:t.map(e=>pn(e))},Ne.value=`regions`,Le=0,Q.success(n)}function kn(){if(!J.value){Q.info(`请先选中一个分块`);return}On([J.value],[],`已复制分块「${J.value.name}」`)}function An(){if(!J.value||!I.value)return;let e=En(J.value);if(!e.length){Q.info(`当前分区内没有可复制的元素`);return}wn(e.map(e=>e.id))}function Nn(){if(!J.value){Q.info(`请先选中一个分块`);return}let e=En(J.value);On([J.value],e,e.length?`已复制分块和 ${e.length} 个元素`:`已复制分块「${J.value.name}」`)}function Pn(){if(!J.value){Q.info(`请先选中一个分块`);return}let e=ha();On([J.value],e,e.length?`已复制分块和 ${e.length} 个选中元素`:`已复制分块「${J.value.name}」`)}function Fn(e){let t=z.value.length?[...z.value]:e?[e]:[];if(!t.length){Q.info(`请先选中要复制的元素`);return}wn(t)}function In(e,t){if(!I.value||!je.value.length){Q.info(`剪贴板里还没有可粘贴的元素`);return}let n=je.value.map(e=>pn(e)),r=new Map,i=_n(n),a=hn(),o=t?.targetRegion??null,s=o?t?.align?Sn(o,i,t.align):xn(o):e,c=s?s.xMm-i.minX:a.dx,l=s?s.yMm-i.minY:a.dy,u=I.value.elements.reduce((e,t)=>Math.max(e,t.zIndex??0),0),d=n.map((e,n)=>{let a=Cn(e,i,t?.flipAxis);return{...e,id:Lr(),groupId:e.groupId?r.get(e.groupId)||(r.set(e.groupId,Rr()),r.get(e.groupId)):void 0,regionId:o?.id||e.regionId,xMm:$(a.xMm+c),yMm:$(a.yMm+l),flipX:a.flipX,flipY:a.flipY,zIndex:u+n+1}});ta(),I.value.elements.push(...d),o&&(B.value=o.id),z.value=d.map(e=>e.id),Q.success(d.length>1?`已粘贴 ${d.length} 个元素`:`已粘贴元素`)}function Ln(e){return{x:e.xMm+e.wMm/2,y:e.yMm+e.hMm/2}}function zn(e,t,n,r){return Math.max(0,Math.min(t,r)-Math.max(e,n))}function Bn(e,t){if(!I.value?.regions?.length)return null;let n=Ln(e),r=L.value-n.x,i=R.value-n.y,a=I.value.regions.filter(t=>t.id!==e.id);if(!a.length)return null;let o=null;for(let s of a){let a=Ln(s),c=t===`x`?zn(e.yMm,e.yMm+e.hMm,s.yMm,s.yMm+s.hMm):zn(e.xMm,e.xMm+e.wMm,s.xMm,s.xMm+s.wMm),l=t===`x`?Math.abs(a.x-r)*4+Math.abs(a.y-n.y)-c*.25:Math.abs(a.y-i)*4+Math.abs(a.x-n.x)-c*.25;(!o||l<o.score)&&(o={region:s,score:l})}return o?.region||null}function Vn(e){let t=ha().filter(t=>t.regionId===e.id||gn(t,e));return t.length?t:En(e)}function Hn(e){if(!J.value){Q.info(`请先选中一个分区`);return}cr(e,J.value)}function Un(e){if(!I.value||!J.value){Q.info(`请先选中一个分区`);return}let t=J.value,n=Bn(t,e);if(!n){Q.warning(e===`x`?`未找到左右对侧分区`:`未找到上下对侧分区`);return}let r=Vn(t).map(e=>pn(e));if(!r.length){Q.info(`当前分区内没有可镜像的内容`);return}let i=Math.max(.001,n.wMm/Math.max(t.wMm,.001)),a=Math.max(.001,n.hMm/Math.max(t.hMm,.001)),o=new Map,s=I.value.elements.reduce((e,t)=>Math.max(e,t.zIndex??0),0),c=r.map((r,c)=>{let l=r.xMm-t.xMm,u=r.yMm-t.yMm,d=$(r.wMm*i),f=$(r.hMm*a),p=$(e===`x`?(t.wMm-(l+r.wMm))*i:l*i),m=$(e===`y`?(t.hMm-(u+r.hMm))*a:u*a);return{...r,id:Lr(),groupId:r.groupId?o.get(r.groupId)||(o.set(r.groupId,Rr()),o.get(r.groupId)):void 0,regionId:n.id,xMm:$(n.xMm+p),yMm:$(n.yMm+m),wMm:d,hMm:f,flipX:e===`x`?!r.flipX||void 0:r.flipX,flipY:e===`y`?!r.flipY||void 0:r.flipY,zIndex:s+c+1}});ta(),I.value.elements.push(...c),B.value=n.id,z.value=c.map(e=>e.id),Q.success(e===`x`?`已镜像复制到横向对侧分区「${n.name}」`:`已镜像复制到纵向对侧分区「${n.name}」`)}function Wn(e){if(!I.value||!Me.value?.regions?.length){Q.info(`剪贴板里还没有可粘贴的分块`);return}let t=Me.value.regions.map(e=>mn(e)),n=Me.value.elements.map(e=>pn(e)),r=yn(t),i=hn(),a=e?e.xMm-r.minX:i.dx,o=e?e.yMm-r.minY:i.dy,s=new Map,c=new Map,l=t.map((e,n)=>{let r=zr();return s.set(e.id,r),{...e,id:r,name:t.length>1?`${e.name} ${n+1}`:`${e.name} 副本`,xMm:$(e.xMm+a),yMm:$(e.yMm+o)}}),u=I.value.elements.reduce((e,t)=>Math.max(e,t.zIndex??0),0),d=n.map((e,n)=>{let r=e.regionId&&s.get(e.regionId)||void 0;if(!r){let n=t.find(t=>gn(e,t));n&&(r=s.get(n.id)||void 0)}return{...e,id:Lr(),groupId:e.groupId?c.get(e.groupId)||(c.set(e.groupId,Rr()),c.get(e.groupId)):void 0,regionId:r,xMm:$(e.xMm+a),yMm:$(e.yMm+o),zIndex:u+n+1}});ta(),I.value.regions||=[],I.value.regions.push(...l),I.value.elements.push(...d),B.value=l[0]?.id||null,z.value=d.map(e=>e.id),Q.success(d.length?`已粘贴 ${l.length} 个分块和 ${d.length} 个元素`:`已粘贴 ${l.length} 个分块`)}function Gn(){return`clip_${Date.now()}_${Math.random().toString(36).slice(2,8)}`}function qn(e){return!!e&&(e.type===`image`||e.type===`seal`)&&e.clipboardSource===`clipboard`}function Jn(e){return qn(e)?e.clipboardUploadState===`pending`?`粘贴待上传`:`粘贴图片`:``}function Yn(e){let t=e?.length?e:Array.from(Ie.keys());for(let e of t){let t=Ie.get(e);t?.objectUrl&&URL.revokeObjectURL(t.objectUrl),Ie.delete(e)}}function Xn(e){let t=e?.target;t instanceof HTMLElement&&t.closest(`.canvas-context-menu`)||(Pe.value.visible=!1,Pe.value.anchorMm=null,Pe.value.target=`blank`,Pe.value.regionId=null,Pe.value.guideId=null)}function Zn(e,t){return{x:Math.max(8,Math.min(e,window.innerWidth-144-8)),y:Math.max(8,Math.min(t,window.innerHeight-320-8))}}function Qn(e,t,n,r=`blank`,i=null,a=null){let o=Zn(e,t);Pe.value={visible:!0,x:o.x,y:o.y,clientX:e,clientY:t,anchorMm:n??null,target:r,regionId:i,guideId:a}}function $n(e){Qn(e.clientX,e.clientY,null)}function er(e){if(!pe.value){Qn(e.clientX,e.clientY,null);return}let t=pe.value.getBoundingClientRect(),n=Z.value,r=$((e.clientX-t.left)/n/Ph),i=$((e.clientY-t.top)/n/Ph);Qn(e.clientX,e.clientY,{xMm:r,yMm:i})}function tr(e,t){V.value=null,B.value=t.id,Qn(e.clientX,e.clientY,{xMm:t.xMm,yMm:t.yMm},`region`,t.id)}function nr(e){V.value=e,e&&(z.value=[],B.value=null)}function rr(e,t){nr(t.id),Qn(e.clientX,e.clientY,t.axis===`horizontal`?{xMm:0,yMm:t.offsetMm}:{xMm:t.offsetMm,yMm:0},`guide`,null,t.id)}function ir(e){e===`delete`&&dt.value&&ji(dt.value.id),Xn()}function ar(){let e=H.value;if(!e||!I.value)return null;let t=(e.scrollLeft-Rt.value)/Z.value,n=(e.scrollTop-zt.value)/Z.value,r=kt.value/Z.value,i=At.value/Z.value,a=Math.min(Math.max(t+r/2,0),wt.value),o=Math.min(Math.max(n+i/2,0),Tt.value);return{xMm:$(a/Ph),yMm:$(o/Ph)}}function or(e,t){if(!I.value)return;let n=Gn(),r=URL.createObjectURL(e);Ie.set(n,{file:e,objectUrl:r,origName:e.name||`粘贴图片`}),mi(r,t??ar()??void 0,{clipboardSource:`clipboard`,clipboardUploadState:`pending`,clipboardUploadKey:n,clipboardOrigName:e.name||`粘贴图片`}),Q.success(`已粘贴图片,保存模板时才上传`)}function sr(e){e===`paste`&&ot.value?In(Pe.value.anchorMm??void 0):e===`paste_region`&&st.value?Wn(Pe.value.anchorMm??void 0):e===`delete`&&z.value.length?Xr([...z.value]):e===`zoom_in`?dr(Z.value+.1,{clientX:Pe.value.clientX,clientY:Pe.value.clientY}):e===`zoom_out`?dr(Z.value-.1,{clientX:Pe.value.clientX,clientY:Pe.value.clientY}):e===`fit`&&fr(),Xn()}function cr(e,t){if(!I.value)return;let n=En(t);if(!n.length){Q.info(`当前分块内没有可翻转的内容`);return}ta();let r={minX:t.xMm,minY:t.yMm,maxR:$(t.xMm+t.wMm),maxB:$(t.yMm+t.hMm)};for(let t of n){let n=Cn(t,r,e);t.xMm=n.xMm,t.yMm=n.yMm,t.flipX=n.flipX,t.flipY=n.flipY}z.value=n.map(e=>e.id),B.value=t.id,Q.success(e===`x`?`已左右翻转当前分块内容`:`已上下翻转当前分块内容`)}function lr(e){if(!ut.value){Xn();return}B.value=ut.value.id,e===`copy_region`?kn():e===`copy_region_contents`?Nn():e===`copy_region_selection`?Pn():e===`paste_region`?Wn({xMm:ut.value.xMm+4,yMm:ut.value.yMm+4}):e===`paste_elements`?In(void 0,{targetRegion:ut.value}):e===`paste_elements_flip_x`?In(void 0,{targetRegion:ut.value,flipAxis:`x`}):e===`paste_elements_flip_y`?In(void 0,{targetRegion:ut.value,flipAxis:`y`}):e===`flip_contents_x`?cr(`x`,ut.value):e===`flip_contents_y`?cr(`y`,ut.value):e===`delete_region`&&bi(ut.value.id),Xn()}function ur(e){return Math.max(.06,Math.min(3,Math.round(e*100)/100))}async function dr(e,n){let r=H.value,i=me.value;if(!r||!i){Ae.value=ur(e);return}let a=Z.value,o=ur(e);if(Math.abs(o-a)<.001)return;let s=r.getBoundingClientRect(),c=n?n.clientX-s.left:r.clientWidth/2,l=n?n.clientY-s.top:r.clientHeight/2,u=Rt.value,d=zt.value,f=(r.scrollLeft+c-u)/a,p=(r.scrollTop+l-d)/a;Ae.value=o,await(0,t.nextTick)();let m=me.value,h=H.value;if(!m||!h)return;let g=Rt.value,_=zt.value;h.scrollLeft=Math.max(0,g+f*o-c),h.scrollTop=Math.max(0,_+p*o-l)}function fr(){Ae.value=null,(0,t.nextTick)(()=>Ba(!0))}function pr(e){let t=Z.value;dr(t+e*.1)}function hr(e){if(!I.value||wt.value<=0)return;let t=e.deltaY>0?-.1:.1;dr(Z.value+t,{clientX:e.clientX,clientY:e.clientY})}function gr(e){let t=[];return e.rotation&&t.push(`rotate(${e.rotation}deg)`),e.flipX&&t.push(`scaleX(-1)`),e.flipY&&t.push(`scaleY(-1)`),t.join(` `)}function _r(e){return Bu(e.text,Ct.value)}function vr(e){let t=Ph,n=gr(e);return{position:`absolute`,left:`${e.xMm*t}px`,top:`${e.yMm*t}px`,width:`${e.wMm*t}px`,height:`${e.hMm*t}px`,zIndex:e.zIndex??1,...n?{transform:n}:{},transformOrigin:`center center`}}function yr(e){let t=Ph,n=e.offsetMm*t;return e.axis===`horizontal`?{top:`${n}px`,left:`0`,width:`${wt.value}px`,height:`0`}:{left:`${n}px`,top:`0`,width:`0`,height:`${Tt.value}px`}}function br(e){let t=Ph,n=e.offsetMm*t;return e.axis===`horizontal`?{left:`6px`,top:`${n}px`}:{top:`6px`,left:`${n}px`}}function xr(e){let t;switch(e.align){case`center`:t={justifyContent:`center`,alignItems:`center`,textAlign:`center`};break;case`top-center`:t={justifyContent:`center`,alignItems:`flex-start`,textAlign:`center`};break;case`bottom-center`:t={justifyContent:`center`,alignItems:`flex-end`,textAlign:`center`};break;case`middle-left`:t={justifyContent:`flex-start`,alignItems:`center`,textAlign:`left`};break;case`middle-right`:t={justifyContent:`flex-end`,alignItems:`center`,textAlign:`right`};break;case`top-right`:t={justifyContent:`flex-end`,alignItems:`flex-start`,textAlign:`right`};break;case`bottom-left`:t={justifyContent:`flex-start`,alignItems:`flex-end`,textAlign:`left`};break;case`bottom-right`:t={justifyContent:`flex-end`,alignItems:`flex-end`,textAlign:`right`};break;default:t={justifyContent:`flex-start`,alignItems:`flex-start`,textAlign:`left`}}let n=e.textDirection===`vertical`;return{width:`100%`,height:`100%`,display:`flex`,...t,fontFamily:e.fontFamily,fontSize:`${e.fontSize}pt`,color:e.color,lineHeight:1.25,whiteSpace:`pre-wrap`,wordBreak:`break-word`,overflow:`hidden`,writingMode:n?`vertical-rl`:`horizontal-tb`,textOrientation:n?`upright`:`mixed`}}function Sr(e){return{width:`100%`,height:`100%`,display:`block`,opacity:String(e.opacity??1)}}function Cr(e){return e.showStroke===!1?`none`:e.strokeColor||`#409eff`}function wr(e){return e.background||`transparent`}function Tr(e){return Math.max(0,Number(e.strokeWidthMm??.6))*3.2}function Er(e){return e===`circle`||e===`triangle`||e===`polygon`||e===`trapezoid`}function Or(e){let t=Math.max(.01,Number(e.hMm)||.01);return Math.max(.01,Number(e.wMm)||.01)/t}function Ar(e,t,n){let r=Math.max(1,Number(n)||1);if(!e.lockAspectRatio){t===`width`?e.wMm=$(r):e.hMm=$(r);return}let i=Or(e);t===`width`?(e.wMm=$(r),e.hMm=$(Math.max(1,r/i))):(e.hMm=$(r),e.wMm=$(Math.max(1,r*i)))}function jr(e){let t=Ze.value;t&&Ar(t,`width`,e)}function Nr(e){let t=Ze.value;t&&Ar(t,`height`,e)}function Pr(e){let t=Math.max(3,Math.min(12,Math.round(Number(e.polygonSides??5)))),n=[];for(let e=0;e<t;e++){let r=-Math.PI/2+Math.PI*2*e/t;n.push(`${50+Math.cos(r)*44},${50+Math.sin(r)*44}`)}return n.join(` `)}function Fr(){return`18,6 82,6 96,94 4,94`}function Ir(e){return{left:`${e.xMm*Ph}px`,top:`${e.yMm*Ph}px`,width:`${e.wMm*Ph}px`,height:`${e.hMm*Ph}px`,backgroundColor:e.background||`rgba(64, 158, 255, 0.06)`,backgroundImage:e.backgroundImage?`url(${dn(e.backgroundImage)})`:void 0,backgroundSize:e.backgroundImage?`cover`:void 0,backgroundPosition:e.backgroundImage?`center`:void 0,backgroundRepeat:e.backgroundImage?`no-repeat`:void 0}}function Lr(){return`el_${Date.now()}_${Math.random().toString(36).slice(2,8)}`}function Rr(){return`grp_${Date.now()}_${Math.random().toString(36).slice(2,8)}`}function zr(){return`region_${Date.now()}_${Math.random().toString(36).slice(2,8)}`}function Br(e,t,n){let r={id:Lr(),type:`text`,fontFamily:`Microsoft YaHei,sans-serif`},i=[{xMm:6,yMm:8,wMm:t-12,hMm:10,align:`top-center`,text:`{{competition_name}}`,fontSize:11,color:`#606266`},{xMm:6,yMm:n*.34,wMm:t-12,hMm:20,align:`center`,text:`{{student_name}}`,fontSize:22,color:`#303133`},{xMm:6,yMm:n*.56,wMm:t-12,hMm:10,align:`top-left`,text:`编号 {{competition_no}}`,fontSize:12,color:`#409eff`},{xMm:6,yMm:n*.68,wMm:(t-18)/2,hMm:9,align:`top-left`,text:`{{school_name}}`,fontSize:10,color:`#606266`},{xMm:6+(t-18)/2+6,yMm:n*.68,wMm:(t-18)/2,hMm:9,align:`top-right`,text:`{{age_group}}`,fontSize:10,color:`#606266`},{xMm:6,yMm:n*.78,wMm:t-12,hMm:12,align:`top-left`,text:`{{competition_room}} {{seat_no}}号`,fontSize:11,color:`#303133`}];if(e<i.length)return{...r,zIndex:1,...i[e]};let a=(t-12-5)/2,o=e-i.length,s=Math.floor(o/2),c=o%2,l=Math.min(n*.88+s*15,n-6-11);return{...r,zIndex:1,xMm:6+c*(a+5),yMm:l,wMm:a,hMm:11,align:`top-left`,text:`{{session}}`,fontSize:10,color:`#909399`}}function Vr(e){if(e.type===`text`){let t=e.text.replace(/\s+/g,` `).trim();return`${(t.length>16?`${t.slice(0,16)}…`:t)||`文字`}${e.groupId?` [组]`:``}`}return e.type===`shape`?`${e.shape===`rect`?`矩形`:e.shape===`circle`?`圆形`:e.shape===`triangle`?`三角形`:e.shape===`polygon`?`${Math.max(3,Math.round(Number(e.polygonSides??5)))}边形`:e.shape===`trapezoid`?`梯形`:`线条`}${e.groupId?` [组]`:``}`:`图片${e.groupId?` [组]`:``}`}function Hr(e,t){if(!I.value)return;let n=[...I.value.elements].sort((e,t)=>(e.zIndex??0)-(t.zIndex??0)),r=n.findIndex(t=>t.id===e.id),i=t===1?r+1:r-1;if(i<0||i>=n.length)return;let a=n[r],o=n[i],s=a.zIndex??1;a.zIndex=o.zIndex??1,o.zIndex=s}function Ur(){I.value?.elements?.length&&[...I.value.elements].sort((e,t)=>(e.zIndex??0)-(t.zIndex??0)).forEach((e,t)=>{e.zIndex=t+1})}function Wr(e){I.value&&(e.zIndex=I.value.elements.reduce((e,t)=>Math.max(e,t.zIndex??0),0)+1)}function Gr(e){if(!I.value)return;let t=I.value.elements.reduce((e,t)=>Math.min(e,t.zIndex??0),1/0);e.zIndex=(Number.isFinite(t)?t:1)-1,Ur()}function Kr(e,t){switch(ta(),e){case`forward`:Hr(t,1);break;case`backward`:Hr(t,-1);break;case`front`:Wr(t);break;case`back`:Gr(t)}}function qr(e){z.value=[e.id],g.value=e.id,m.value=e.link?.href||``,h.value=e.link?.target||`_blank`,p.value=!0}function Jr(){if(!I.value||!g.value)return;let e=I.value.elements.find(e=>e.id===g.value);if(!e)return;let t=m.value.trim();t?e.link={href:t,target:h.value||`_blank`}:delete e.link,p.value=!1,Q.success(t?`已设置链接`:`已清除链接`)}function Yr(e,t){if(Xn(),e===`copy`){wn(z.value.includes(t.id)?[...z.value]:Ci(t));return}if(e===`paste`){In({xMm:t.xMm+2,yMm:t.yMm+2});return}if(e===`set-link`){qr(t);return}if(e===`clear-link`){z.value=[t.id],t.link&&delete t.link,Q.success(`已清除链接`);return}e===`delete`&&Xr(z.value.includes(t.id)?[...z.value]:Ci(t))}async function Xr(e){if(!I.value||!e.length)return;let t=new Set(e),n=new Map;for(let r of e){let e=I.value.elements.find(e=>e.id===r);!qn(e)||e.clipboardUploadState!==`uploaded`||!e.clipboardImageId||I.value.elements.some(n=>!t.has(n.id)&&qn(n)&&n.clipboardImageId===e.clipboardImageId)||n.set(e.clipboardImageId,e.clipboardOrigName||`图片${e.clipboardImageId}`)}let r=!1;if(n.size){let e=await new Promise(e=>{_.value=n.size,v=e,f.value=!0});if(e===null)return;r=e}ta();let i=new Set(e);if(I.value.elements=I.value.elements.filter(e=>!i.has(e.id)),z.value=z.value.filter(e=>!i.has(e)),r){let e=(await Promise.allSettled(Array.from(n.keys()).map(e=>Mn(e)))).filter(e=>e.status===`rejected`).length;e?Q.warning(`已删除画布元素,但有 ${e} 张服务器图片删除失败`):Q.success(`已删除画布元素和服务器图片`)}}function Zr(e){if(e.button!==0||!pe.value||!I.value)return;e.preventDefault(),V.value=null,ge=e.shiftKey;let t=pe.value.getBoundingClientRect(),n=Z.value,r=(e.clientX-t.left)/n,i=(e.clientY-t.top)/n;he.value={x0:r,y0:i,x1:r,y1:i},window.addEventListener(`pointermove`,Qr),window.addEventListener(`pointerup`,$r,{once:!0})}function Qr(e){if(!he.value||!pe.value)return;let t=pe.value.getBoundingClientRect(),n=Z.value;he.value.x1=(e.clientX-t.left)/n,he.value.y1=(e.clientY-t.top)/n}function $r(e){window.removeEventListener(`pointermove`,Qr);let t=he.value;if(he.value=null,!t||!I.value||!pe.value||Math.abs(t.x1-t.x0)<4&&Math.abs(t.y1-t.y0)<4)return;let n=Ph,r=Math.min(t.x0,t.x1)/n,i=Math.min(t.y0,t.y1)/n,a=Math.max(t.x0,t.x1)/n,o=Math.max(t.y0,t.y1)/n,s=[];for(let e of I.value.elements){let t=e.xMm+e.wMm,n=e.yMm+e.hMm;t>r&&e.xMm<a&&n>i&&e.yMm<o&&s.push(e.id)}let c=e.shiftKey||ge;ge=!1,c?z.value=Array.from(new Set([...z.value,...s])):z.value=s}let ei=null;function ti(e){e.button!==0&&e.button!==1||!H.value||(e.preventDefault(),Xn(),De.value=!0,ei={startX:e.clientX,startY:e.clientY,startScrollLeft:H.value.scrollLeft,startScrollTop:H.value.scrollTop},(e.currentTarget||H.value).setPointerCapture?.(e.pointerId),window.addEventListener(`pointermove`,ni),window.addEventListener(`pointerup`,ri,{once:!0}))}function ni(e){if(!ei||!H.value)return;let t=H.value,n=ei.startScrollLeft-(e.clientX-ei.startX),r=ei.startScrollTop-(e.clientY-ei.startY),i=Math.max(0,t.scrollWidth-t.clientWidth),a=Math.max(0,t.scrollHeight-t.clientHeight);t.scrollLeft=Math.min(i,Math.max(0,n)),t.scrollTop=Math.min(a,Math.max(0,r))}function ri(){ei=null,De.value=!1,window.removeEventListener(`pointermove`,ni)}function ai(){ke.value=!0}function oi(){ke.value=!1,De.value||(Oe.value=!1)}function si(e){ke.value=!0,H.value?.focus(),e.button===1&&ti(e)}function ci(e){if(V.value=null,B.value=null,e.button===1||Oe.value){ti(e);return}Zr(e)}function li(e){if(e.button===0||e.button===1||Oe.value){V.value=null,B.value=null,e.button===0&&!e.shiftKey&&(z.value=[]),ti(e);return}}function ui(){if(!I.value)return;ta();let e=I.value.canvas.widthMm,t=I.value.canvas.heightMm,n=I.value.elements.filter(e=>e.type===`text`).length,r=Br(n,e,t);J.value&&(r.xMm=$(J.value.xMm+4),r.yMm=$(J.value.yMm+4),r.wMm=$(Math.max(10,J.value.wMm-8)),r.regionId=J.value.id),r.zIndex=(I.value.elements?.length??0)+1,I.value.elements.push(r),z.value=[r.id]}function di(e){if(!I.value)return;ta();let t=J.value,n=e===`line`?36:24,r=e===`line`?4:18,i=$(t?t.xMm+Math.max(2,(t.wMm-n)/2):Math.max(4,L.value*.2)),a=$(t?t.yMm+Math.max(2,(t.hMm-r)/2):Math.max(4,R.value*.2)),o={id:Lr(),type:`shape`,shape:e,zIndex:(I.value.elements?.length??0)+1,xMm:i,yMm:a,wMm:n,hMm:r,background:e===`line`?`transparent`:`rgba(64, 158, 255, 0.18)`,lockAspectRatio:Er(e),showStroke:!0,strokeColor:`#409eff`,strokeWidthMm:.6,opacity:1,polygonSides:e===`polygon`?5:void 0,regionId:t?.id};I.value.elements.push(o),z.value=[o.id]}let fi=null,pi=0;function mi(e,t,n){if(!I.value||!e)return;ta();let r=I.value.canvas.widthMm,i=I.value.canvas.heightMm,a=I.value.elements.filter(e=>e.type===`image`||e.type===`seal`).length,o=8+a%2*34,s=Math.max(8,i-28-Math.floor(a/2)*16),c=t?Math.min(Math.max($(t.xMm-16),0),Math.max(0,r-32)):J.value?Math.min(Math.max($(J.value.xMm+(J.value.wMm-32)/2),0),Math.max(0,r-32)):o,l=t?Math.min(Math.max($(t.yMm-10),0),Math.max(0,i-20)):J.value?Math.min(Math.max($(J.value.yMm+(J.value.hMm-20)/2),0),Math.max(0,i-20)):s,u={id:Lr(),type:`image`,zIndex:(I.value.elements?.length??0)+1,xMm:c,yMm:l,wMm:32,hMm:20,src:e,regionId:J.value?.id,...n};I.value.elements.push(u),z.value=[u.id],pi+=1,fi&&clearTimeout(fi),fi=setTimeout(()=>{fi=null;let e=pi;pi=0,Q.success(e>1?`已插入 ${e} 张图片`:`已插入图片`)},350)}function hi(e){e.canvas||={widthMm:L.value,heightMm:R.value,background:`#ffffff`},e.canvas.showBorder??(e.canvas.showBorder=!0),e.canvas.borderColor||(e.canvas.borderColor=`#334155`);let t=Number(e.canvas.borderWidthMm);e.canvas.borderWidthMm=Number.isFinite(t)&&t>0?Math.min(8,t):.35,e.guides||=[],e.guides=e.guides.filter(e=>e&&(e.axis===`horizontal`||e.axis===`vertical`)).map((e,t)=>({id:e.id||`guide_${t+1}`,axis:e.axis,offsetMm:Math.max(0,Number(e.offsetMm)||0)})),e.regions||=[],e.regions=e.regions.filter(e=>e&&Number(e.wMm)>0&&Number(e.hMm)>0).map((e,t)=>({id:e.id||`region_${t+1}`,name:String(e.name||`画布${t+1}`),xMm:Math.max(0,Number(e.xMm)||0),yMm:Math.max(0,Number(e.yMm)||0),wMm:Math.max(1,Number(e.wMm)||1),hMm:Math.max(1,Number(e.hMm)||1),background:String(e.background||``),backgroundImage:String(e.backgroundImage||``)})),e.elements=(e.elements||[]).map(e=>{let t={...e,id:String(e?.id||Lr()),zIndex:Number(e?.zIndex)||1,xMm:Number(e?.xMm)||0,yMm:Number(e?.yMm)||0,wMm:Math.max(1,Number(e?.wMm)||1),hMm:Math.max(1,Number(e?.hMm)||1)};return t.type===`shape`&&(t.shape=[`rect`,`circle`,`triangle`,`line`,`polygon`,`trapezoid`].includes(t.shape)?t.shape:`rect`,t.background||=`rgba(64, 158, 255, 0.2)`,t.lockAspectRatio=t.lockAspectRatio==null?Er(t.shape):!!t.lockAspectRatio,t.showStroke=t.showStroke!==!1,t.strokeColor||=`#409eff`,t.strokeWidthMm=Math.max(0,Number(t.strokeWidthMm??.6)),t.opacity=Math.max(0,Math.min(1,Number(t.opacity??1))),t.polygonSides=Math.max(3,Math.min(12,Math.round(Number(t.polygonSides??5))))),t})}function gi(e,t,n,r,i,a){return{id:zr(),name:e||`画布${a+1}`,xMm:$(t),yMm:$(n),wMm:$(r),hMm:$(i),background:``,backgroundImage:``}}function _i(e){if(!I.value)return;let t=Math.max(1,Math.round(ze.value||1)),n=Math.max(1,Math.round(Re.value||1)),r=L.value,i=R.value,a=[];if(e===`horizontal`){let e=r/n;for(let t=0;t<n;t++)a.push(gi(`画布${t+1}`,t*e,0,e,i,t))}else if(e===`vertical`){let e=i/t;for(let n=0;n<t;n++)a.push(gi(`画布${n+1}`,0,n*e,r,e,n))}else{let e=r/n,o=i/t;for(let r=0;r<t;r++)for(let t=0;t<n;t++){let i=r*n+t;a.push(gi(`画布${i+1}`,t*e,r*o,e,o,i))}}ta(),I.value.regions=a,B.value=a[0]?.id||null}function vi(){I.value?.regions?.length&&(ta(),I.value.regions=[],B.value=null)}function bi(e){if(I.value?.regions?.length){ta(),I.value.regions=I.value.regions.filter(t=>t.id!==e);for(let t of I.value.elements)t.regionId===e&&delete t.regionId;B.value===e&&(B.value=I.value.regions[0]?.id||null)}}function xi(e,t){if(e.button!==0||(e.preventDefault(),V.value=null,B.value=t.id,e.shiftKey||(z.value=[]),!I.value))return;let n=En(t);ta(),Ni={regions:[t],els:n,startX:e.clientX,startY:e.clientY,regionOrigins:[{id:t.id,x:t.xMm,y:t.yMm}],origins:n.map(e=>({id:e.id,x:e.xMm,y:e.yMm}))},e.currentTarget?.setPointerCapture?.(e.pointerId),window.addEventListener(`pointermove`,Ii),window.addEventListener(`pointerup`,Li,{once:!0})}function Ci(e){return!I.value||!e.groupId?[e.id]:I.value.elements.filter(t=>t.groupId===e.groupId).map(e=>e.id)}function wi(e){B.value=null,z.value=Ci(e)}function Ti(){if(!I.value||z.value.length<2){Q.info(`至少选中两个元素才能组合`);return}ta();let e=Rr();for(let t of ha())t.groupId=e;Q.success(`已组合选中元素`)}function Ei(){let e=ha();if(!(!I.value||!e.length)){ta();for(let t of e)delete t.groupId;Q.success(`已打散组合`)}}function Di(e){let t=ha();if(t.length<2){Q.info(`至少选中两个元素才能整体翻转`);return}ta();let n=Math.min(...t.map(e=>e.xMm)),r=Math.max(...t.map(e=>e.xMm+e.wMm)),i=Math.min(...t.map(e=>e.yMm)),a=Math.max(...t.map(e=>e.yMm+e.hMm));for(let o of t)e===`x`?(o.xMm=$(n+r-(o.xMm+o.wMm)),o.flipX=!o.flipX):(o.yMm=$(i+a-(o.yMm+o.hMm)),o.flipY=!o.flipY);Q.success(e===`x`?`已左右翻转选中元素`:`已上下翻转选中元素`)}function Oi(){if(!(!J.value||!I.value||!z.value.length)){ta();for(let e of ha())e.regionId=J.value.id;Q.success(`已归入 ${J.value.name}`)}}function Ai(e){if(!I.value)return;ta();let t=Number(e===`horizontal`?(R.value/2).toFixed(2):(L.value/2).toFixed(2));I.value.guides||=[],I.value.guides.push({id:Lr(),axis:e,offsetMm:t})}function ji(e){I.value?.guides?.length&&(ta(),I.value.guides=I.value.guides.filter(t=>t.id!==e),V.value===e&&(V.value=null))}function Mi(){I.value?.guides?.length&&(ta(),I.value.guides=[],V.value=null)}let Ni=null,Pi=null;function Fi(e,t){V.value=null,B.value=null;let n=Ci(t);if(e.shiftKey){n.every(e=>z.value.includes(e))?z.value=z.value.filter(e=>!n.includes(e)):z.value=Array.from(new Set([...z.value,...n]));return}if(n.every(e=>z.value.includes(e))||(z.value=[...n]),!I.value)return;let r=I.value.elements.filter(e=>z.value.includes(e.id));r.length&&(ta(),Ni={regions:[],els:r,startX:e.clientX,startY:e.clientY,regionOrigins:[],origins:r.map(e=>({id:e.id,x:e.xMm,y:e.yMm}))},e.target.setPointerCapture?.(e.pointerId),window.addEventListener(`pointermove`,Ii),window.addEventListener(`pointerup`,Li,{once:!0}))}function Ii(e){if(!Ni||!I.value)return;let t=e.clientX-Ni.startX,n=e.clientY-Ni.startY,r=Z.value,i=Ph;for(let e of Ni.regions){let a=Ni.regionOrigins.find(t=>t.id===e.id);a&&(e.xMm=Math.round((a.x+t/r/i)*100)/100,e.yMm=Math.round((a.y+n/r/i)*100)/100)}for(let e of Ni.els){let a=Ni.origins.find(t=>t.id===e.id);a&&(e.xMm=Math.round((a.x+t/r/i)*100)/100,e.yMm=Math.round((a.y+n/r/i)*100)/100)}}function Li(){Ni=null,window.removeEventListener(`pointermove`,Ii)}function Ri(e,t){e.preventDefault(),nr(t.id),ta(),Pi={guide:t,startClient:t.axis===`horizontal`?e.clientY:e.clientX,startOffsetMm:t.offsetMm},e.currentTarget.setPointerCapture?.(e.pointerId),window.addEventListener(`pointermove`,zi),window.addEventListener(`pointerup`,Bi,{once:!0})}function zi(e){if(!Pi||!I.value)return;let t=(Pi.guide.axis===`horizontal`?e.clientY:e.clientX)-Pi.startClient,n=Z.value,r=Ph,i=Pi.guide.axis===`horizontal`?R.value:L.value,a=Pi.startOffsetMm+t/n/r;Pi.guide.offsetMm=Math.max(0,Math.min(i,Math.round(a*100)/100))}function Bi(){Pi=null,window.removeEventListener(`pointermove`,zi)}let Hi=null;function Ui(e,t){e.preventDefault(),z.value=[t.id],ta(),Hi={el:t,startX:e.clientX,startY:e.clientY,startWMm:t.wMm,startHMm:t.hMm,aspectRatio:Math.max(.01,Number(t.wMm)||.01)/Math.max(.01,Number(t.hMm)||.01),lockAspectRatio:t.type===`shape`&&!!t.lockAspectRatio},e.currentTarget.setPointerCapture?.(e.pointerId),window.addEventListener(`pointermove`,Wi),window.addEventListener(`pointerup`,Gi,{once:!0})}function Wi(e){if(!Hi)return;let t=e.clientX-Hi.startX,n=e.clientY-Hi.startY,r=Z.value,i=Ph,a=Math.max(1,Math.round((Hi.startWMm+t/r/i)*100)/100),o=Math.max(1,Math.round((Hi.startHMm+n/r/i)*100)/100);if(Hi.lockAspectRatio||e.shiftKey){let e=Math.max(.01,Hi.aspectRatio||1);Math.abs(t)>=Math.abs(n)?(Hi.el.wMm=a,Hi.el.hMm=Math.max(1,Math.round(a/e*100)/100)):(Hi.el.hMm=o,Hi.el.wMm=Math.max(1,Math.round(o*e*100)/100));return}Hi.el.wMm=a,Hi.el.hMm=o}function Gi(){Hi=null,window.removeEventListener(`pointermove`,Wi)}let Ki=(0,t.ref)([]),Ji=(0,t.ref)([]),Yi=!1;function Xi(e){return JSON.parse(JSON.stringify(e))}function Zi(){Ki.value=[],Ji.value=[]}let Qi=(0,t.computed)(()=>Ki.value.length>0&&!!I.value),$i=(0,t.computed)(()=>Ji.value.length>0&&!!I.value);function ea(){Ni=null,Hi=null,Pi=null,ei=null,De.value=!1,window.removeEventListener(`pointermove`,Ii),window.removeEventListener(`pointerup`,Li),window.removeEventListener(`pointermove`,zi),window.removeEventListener(`pointerup`,Bi),window.removeEventListener(`pointermove`,Wi),window.removeEventListener(`pointerup`,Gi),window.removeEventListener(`pointermove`,ni),window.removeEventListener(`pointerup`,ri)}function ta(){Yi||!I.value||(Ki.value.push(Xi(I.value)),Ki.value.length>zh&&Ki.value.shift(),Ji.value=[])}function na(e){Yi=!0;try{ea(),I.value=Xi(e);let t=new Set((I.value.elements??[]).map(e=>e.id));z.value=z.value.filter(e=>t.has(e));let n=new Set((I.value.regions??[]).map(e=>e.id));(!B.value||!n.has(B.value))&&(B.value=null);let r=new Set((I.value.guides??[]).map(e=>e.id));(!V.value||!r.has(V.value))&&(V.value=null)}finally{(0,t.nextTick)(()=>{Yi=!1})}}function ra(){if(!I.value||Ki.value.length===0||Yi)return;Ji.value.unshift(Xi(I.value));let e=Ki.value.pop();e&&na(e)}function aa(){if(!I.value||Ji.value.length===0||Yi)return;Ki.value.push(Xi(I.value));let e=Ji.value.shift();e&&na(e)}function oa(){ta(),tn()}function sa(){let e=document.activeElement;if(!e)return!1;let t=e.tagName;return!!(t===`INPUT`||t===`TEXTAREA`||t===`SELECT`||e instanceof HTMLElement&&e.isContentEditable)}function ca(e){return!e||!(e instanceof HTMLElement)?!1:!!e.closest(`.fou-input, .fou-input-number, input, textarea, select, [contenteditable="true"]`)}function ua(e){if(ca(e.target)||sa())return;if(e.code===`Space`){let t=H.value,n=document.activeElement;if(!(t&&(ke.value||t===n||n&&t.contains(n)||Pe.value.visible)))return;e.preventDefault(),e.stopPropagation(),Oe.value=!0;return}let t=e.ctrlKey||e.metaKey,n=e.key.toLowerCase();if(e.key===`Escape`&&Xn(),t&&n===`c`){e.preventDefault(),e.stopPropagation(),J.value&&z.value.length?Pn():J.value?Nn():z.value.length?Fn():Q.info(`请先选中元素或分块`);return}if(t&&n===`z`&&!e.shiftKey){e.preventDefault(),e.stopPropagation(),ra();return}if(t&&(n===`y`||n===`z`&&e.shiftKey)){e.preventDefault(),e.stopPropagation(),aa();return}if(e.key===`Delete`||e.key===`Backspace`){if(V.value){e.preventDefault(),e.stopPropagation(),ji(V.value),Xn();return}if(!z.value.length)return;e.preventDefault(),e.stopPropagation(),Xr([...z.value]);return}if(![`ArrowUp`,`ArrowDown`,`ArrowLeft`,`ArrowRight`].includes(e.key)||!z.value.length||!I.value)return;e.preventDefault(),e.stopPropagation(),ta();let r=Ph,i=e.key===`ArrowLeft`?-1:+(e.key===`ArrowRight`),a=e.key===`ArrowUp`?-1:+(e.key===`ArrowDown`);for(let e of z.value){let t=I.value.elements.find(t=>t.id===e);t&&(t.xMm=Math.round((t.xMm+i/r)*100)/100,t.yMm=Math.round((t.yMm+a/r)*100)/100)}}function da(e){e.code===`Space`&&(Oe.value=!1)}function fa(){Oe.value=!1,ke.value=!1}async function pa(e){if(!I.value||Fe.value||ca(e.target)||sa())return;let t=H.value,n=document.activeElement,r=e.target;if(!(t&&(t===n||n&&t.contains(n)||r&&t.contains(r)||Pe.value.visible)))return;let i=Array.from(e.clipboardData?.items??[]).find(e=>e.kind===`file`&&e.type.startsWith(`image/`));if(i){let t=i.getAsFile();if(!t)return;e.preventDefault(),e.stopPropagation(),Xn(),or(t,Pe.value.anchorMm??ar());return}if(!ct.value)return;e.preventDefault(),e.stopPropagation();let a=Pe.value.target===`region`?ut.value:J.value;Ne.value===`regions`&&st.value?Wn(Pe.value.anchorMm??void 0):ot.value?In(a?void 0:Pe.value.anchorMm??void 0,a?{targetRegion:a}:void 0):st.value&&Wn(Pe.value.anchorMm??void 0),Xn()}async function ma(){if(!I.value)return{uploadedIds:[],cleanupKeys:[]};let e=new Map;for(let t of I.value.elements){if(!qn(t)||t.clipboardUploadState!==`pending`||!t.clipboardUploadKey)continue;let n=e.get(t.clipboardUploadKey)||[];n.push(t),e.set(t.clipboardUploadKey,n)}let t=new Map,n=[],r=[];try{for(let[i,a]of e.entries()){let e=Ie.get(i);if(!e)throw Error(`存在未上传的粘贴图片,请重新粘贴后再保存`);let o=await jn(e.file),s=Number(o?.data?.id??0),c=String(o?.data?.url??``).trim();if(!s||!c)throw Error(`图片「${e.origName||`未命名`}」上传失败`);let l=Rn(c);n.push(s),r.push(i);for(let n of a)t.set(n.id,{src:n.src,clipboardUploadState:n.clipboardUploadState,clipboardImageId:n.clipboardImageId}),n.src=l,n.clipboardUploadState=`uploaded`,n.clipboardImageId=s,n.clipboardOrigName=e.origName||n.clipboardOrigName}return{uploadedIds:n,cleanupKeys:r}}catch(e){for(let e of I.value.elements){let n=t.get(e.id);!n||!qn(e)||(e.src=n.src,e.clipboardUploadState=n.clipboardUploadState,e.clipboardImageId=n.clipboardImageId)}throw e}}function $(e){return Math.round(e*100)/100}function ha(){let e=I.value;return e?.elements?.length?z.value.map(t=>e.elements.find(e=>e.id===t)).filter(e=>e!=null):[]}function ga(){let e=I.value;if(!e?.elements?.length)return[];let t=[];for(let n of z.value){let r=e.elements.find(e=>e.id===n);r?.type===`text`&&t.push(r)}return t}let _a=(0,t.computed)(()=>ga().length),ya=(0,t.computed)(()=>{let e=ga();if(!e.length)return;let t=e[0].fontSize;return e.every(e=>e.fontSize===t)?t:void 0}),ba=(0,t.computed)(()=>ga()[0]?.color||`#303133`),xa=(0,t.ref)(void 0),Sa=(0,t.ref)(`#303133`);(0,t.watch)(ya,e=>{xa.value=e},{immediate:!0}),(0,t.watch)(ba,e=>{Sa.value=e||`#303133`},{immediate:!0});function Ca(e){if(e==null||!Number.isFinite(e)||!I.value)return;let t=ga();if(t.length){ta();for(let n of t)n.fontSize=e}}function wa(){Ca(xa.value)}function Ta(e){xa.value=e,Ca(e)}function Ea(e){if(e==null||e===``||!I.value)return;let t=ga();if(t.length){ta();for(let n of t)n.color=e}}function Da(){Ea((Sa.value||``).trim())}function Oa(e){e!=null&&(Sa.value=e),Ea(e)}function ka(e){if(!I.value?.canvas)return;let t=z.value;if(!t.length){Q.info(`请先选中元素`);return}ta();let n=I.value.canvas.widthMm,r=I.value.canvas.heightMm;for(let i of t){let t=I.value.elements.find(e=>e.id===i);if(t)switch(e){case`left`:t.xMm=0;break;case`right`:t.xMm=Math.max(0,n-t.wMm);break;case`h-center`:t.xMm=Math.max(0,(n-t.wMm)/2);break;case`top`:t.yMm=0;break;case`bottom`:t.yMm=Math.max(0,r-t.hMm);break;case`v-center`:t.yMm=Math.max(0,(r-t.hMm)/2)}}}function Aa(e){let t=ha();if(!t.length){Q.info(`请先选中元素`);return}if(t.length===1)return;ta();let n=Math.min(...t.map(e=>e.xMm)),r=Math.max(...t.map(e=>e.xMm+e.wMm)),i=Math.min(...t.map(e=>e.yMm)),a=Math.max(...t.map(e=>e.yMm+e.hMm)),o=(n+r)/2,s=(i+a)/2;for(let c of t)switch(e){case`sel-left`:c.xMm=$(n);break;case`sel-right`:c.xMm=$(r-c.wMm);break;case`sel-top`:c.yMm=$(i);break;case`sel-bottom`:c.yMm=$(a-c.hMm);break;case`sel-h-center`:c.xMm=$(o-c.wMm/2);break;case`sel-v-center`:c.yMm=$(s-c.hMm/2)}}function ja(e){let t=ha();if(t.length<2){Q.info(`分布需要至少选中两个元素`);return}if(ta(),e===`h`){let e=[...t].sort((e,t)=>e.xMm-t.xMm||e.id.localeCompare(t.id)),n=e[0].xMm,r=e[e.length-1],i=r.xMm+r.wMm,a=e.reduce((e,t)=>e+t.wMm,0),o=(i-n-a)/(e.length-1),s=n;for(let t of e)t.xMm=$(s),s+=t.wMm+o}else{let e=[...t].sort((e,t)=>e.yMm-t.yMm||e.id.localeCompare(t.id)),n=e[0].yMm,r=e[e.length-1],i=r.yMm+r.hMm,a=e.reduce((e,t)=>e+t.hMm,0),o=(i-n-a)/(e.length-1),s=n;for(let t of e)t.yMm=$(s),s+=t.hMm+o}}async function Ma(){N.value=!0,z.value=[],Ae.value=null,Yn();try{let e=(l.value?await Tn(s,c):await vn(s,c)).data;b.value=String(e.name||``).trim()||`未命名`,L.value=Number(e.width_mm)||90,R.value=Number(e.height_mm)||130;let n=e.template_json;n&&typeof n==`object`&&Array.isArray(n.elements)?(I.value=n,I.value.canvas=I.value.canvas||{widthMm:L.value,heightMm:R.value,background:`#ffffff`},I.value.canvas.widthMm=L.value,I.value.canvas.heightMm=R.value,hi(I.value)):I.value={version:1,canvas:{widthMm:L.value,heightMm:R.value,background:`#ffffff`,showBorder:!0,borderColor:`#334155`,borderWidthMm:.35},elements:[],guides:[],regions:[]};let r=e.default_test_json;ee.value=r&&typeof r==`object`?{...r}:{},Zi(),await(0,t.nextTick)(),Ba(!0)}catch{I.value=null,Zi(),Q.error(`加载模板失败`)}finally{N.value=!1}}async function Na(){if(!I.value)return;tn(),P.value=!0,F.value=``;let e=[],t=[];try{let n=await ma();e=n.uploadedIds,t=n.cleanupKeys;let r={name:b.value.trim()||`未命名`,width_mm:L.value,height_mm:R.value,template_json:I.value,default_test_json:ee.value};l.value?await Dn(s,c,r):await bn(s,c,r),Yn(t),F.value=`已保存`,Q.success(`保存成功`),await Ma()}catch(n){if(e.length){await Promise.allSettled(e.map(e=>Mn(e)));for(let e of I.value.elements){if(!qn(e)||e.clipboardUploadState!==`uploaded`||!e.clipboardUploadKey||!t.includes(e.clipboardUploadKey))continue;let n=Ie.get(e.clipboardUploadKey);n&&(e.src=n.objectUrl,e.clipboardUploadState=`pending`,delete e.clipboardImageId)}}Q.error(n?.response?.data?.message||`保存失败`)}finally{P.value=!1}}function Pa(){let e=te.value||H.value;if(!e)return;let t=Math.max(e.clientWidth||420,280),n=Math.max(e.clientHeight||420,240);Math.abs(t-_e.value)>8&&(_e.value=t),Math.abs(n-ve.value)>8&&(ve.value=n)}async function Fa(){await(0,t.nextTick)(),Pa(),Ae.value??Ba(!0)}async function Ia(){U.value=!U.value,document.body.classList.toggle(`badge-editor-window-fill-lock`,U.value),await Fa()}async function La(){let e=re.value;if(e)try{if(document.fullscreenElement)await document.exitFullscreen();else{let t=e.requestFullscreen?.bind(e)||e.webkitRequestFullscreen?.bind(e);if(!t){Q.warning(`当前浏览器不支持全屏`);return}await t()}}catch{Q.warning(`无法进入全屏,请检查浏览器权限`)}}function Ra(){let e=re.value;ie.value=!!e&&document.fullscreenElement===e,Fa()}function za(e){e.key===`Escape`&&(!U.value||document.fullscreenElement||(U.value=!1,document.body.classList.remove(`badge-editor-window-fill-lock`),Fa()))}function Ba(e=!1){let t=H.value,n=me.value;if(!t||!n)return;let r=Et.value,i=Dt.value,a=Math.max(kt.value,120),o=Math.max(At.value,120),s=Math.max(Rh,Math.round((a-r)/2)),c=Math.max(Rh,Math.round((o-i)/2)),l=Math.max(0,Rt.value-(Ee.value?Fh:0)-s),u=Math.max(0,zt.value-(Ee.value?Fh:0)-c);(e||t.scrollLeft===0&&t.scrollTop===0||Math.abs(t.scrollLeft-l)>8||Math.abs(t.scrollTop-u)>8)&&(t.scrollLeft=l,t.scrollTop=u)}let Va=null,Ha=0;return(0,t.onMounted)(async()=>{if(r.embedded||r.mode===`banner`||!Number.isFinite(s)||s<=0||!Number.isFinite(c)||c<=0){if(!I.value){let{createBannerDoc:e,createBadgeDoc:t}=await Promise.resolve().then(()=>(gp(),fp));I.value=r.mode===`banner`?e():t({mode:r.mode||(l.value?`desk`:`badge`)}),b.value=b.value||(r.mode===`banner`?`Banner 草稿`:`模板草稿`),L.value=I.value.canvas.widthMm,R.value=I.value.canvas.heightMm,N.value=!1}}else await Ma();await(0,t.nextTick)(),Pa(),Ba(!0),Va=new ResizeObserver(()=>{cancelAnimationFrame(Ha),Ha=requestAnimationFrame(()=>{let e=_e.value,t=ve.value;Pa(),Ae.value==null&&(Math.abs(e-_e.value)>8||Math.abs(t-ve.value)>8)&&Ba(!0)})}),te.value?Va.observe(te.value):H.value&&Va.observe(H.value),window.addEventListener(`keydown`,ua,!0),window.addEventListener(`keyup`,da,!0),window.addEventListener(`blur`,fa),window.addEventListener(`paste`,pa,!0),window.addEventListener(`pointerdown`,Xn,!0),window.addEventListener(`scroll`,Xn,!0),document.addEventListener(`fullscreenchange`,Ra),window.addEventListener(`keydown`,za,!0)}),(0,t.onUnmounted)(()=>{Va?.disconnect(),cancelAnimationFrame(Ha),Yn(),document.body.classList.remove(`badge-editor-window-fill-lock`),document.fullscreenElement===re.value&&document.exitFullscreen?.(),window.removeEventListener(`pointermove`,de),window.removeEventListener(`pointerup`,fe),document.body.style.cursor=``,document.body.style.userSelect=``,window.removeEventListener(`keydown`,ua,!0),window.removeEventListener(`keyup`,da,!0),window.removeEventListener(`blur`,fa),window.removeEventListener(`paste`,pa,!0),window.removeEventListener(`pointerdown`,Xn,!0),window.removeEventListener(`scroll`,Xn,!0),document.removeEventListener(`fullscreenchange`,Ra),window.removeEventListener(`keydown`,za,!0),window.removeEventListener(`pointermove`,Ii),window.removeEventListener(`pointermove`,zi),window.removeEventListener(`pointermove`,Wi),window.removeEventListener(`pointermove`,Qr),window.removeEventListener(`pointermove`,ni)}),(e,n)=>{let i=k,a=Vt,o=Tf,s=va,c=yi,u=ki,g=ao,v=Sf,C=_f,O=qi,ee=Vi,ae=fl,W=ia,oe=mr,G=jo,le=Oo,ue=wo,K=la,de=Si,fe=cf,ge=Pt,_e=pt,ve=(0,t.resolveDirective)(`fou-loading`);return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,{ref_key:`editorRootRef`,ref:re,class:(0,t.normalizeClass)([`page-container badge-editor`,{"is-window-fill":U.value,"is-native-fullscreen":ie.value}])},[(0,t.createElementVNode)(`div`,_p,[(0,t.createVNode)(a,{link:``,onClick:Ue},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`arrow-left-line`}),(0,t.createTextVNode)(` `+(0,t.toDisplayString)(`${l.value?`桌面贴模板`:`证件模板`}:${b.value||`未命名`}`),1)]),_:1}),(0,t.createElementVNode)(`div`,vp,[(0,t.createVNode)(o,{size:`small`,class:`header-undo-group`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(a,{disabled:!Qi.value,title:`撤销 (Ctrl+Z)`,onClick:ra},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`arrow-go-back-line`}),n[121]||=(0,t.createTextVNode)(` 撤销 `,-1)]),_:1},8,[`disabled`]),(0,t.createVNode)(a,{disabled:!$i.value,title:`重做 (Ctrl+Y / Ctrl+Shift+Z)`,onClick:aa},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`arrow-go-forward-line`}),n[122]||=(0,t.createTextVNode)(` 重做 `,-1)]),_:1},8,[`disabled`])]),_:1}),(0,t.createVNode)(a,{size:`small`,type:U.value?`primary`:`default`,plain:``,title:`撑满当前浏览器可视区域`,onClick:Ia},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:U.value?`fullscreen-exit-line`:`aspect-ratio-line`},null,8,[`icon`]),(0,t.createTextVNode)(` `+(0,t.toDisplayString)(U.value?`退出满屏`:`满屏`),1)]),_:1},8,[`type`]),(0,t.createVNode)(a,{size:`small`,type:ie.value?`primary`:`default`,plain:``,title:`撑满整个电脑屏幕`,onClick:La},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:ie.value?`fullscreen-exit-line`:`fullscreen-line`},null,8,[`icon`]),(0,t.createTextVNode)(` `+(0,t.toDisplayString)(ie.value?`退出全屏`:`全屏`),1)]),_:1},8,[`type`]),(0,t.createVNode)(a,{type:`primary`,plain:``,disabled:!I.value,onClick:n[0]||=e=>Te.value=!0},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`eye-line`}),n[123]||=(0,t.createTextVNode)(` 预览 `,-1)]),_:1},8,[`disabled`]),(0,t.createVNode)(a,{size:`small`,disabled:!I.value,onClick:A},{default:(0,t.withCtx)(()=>[...n[124]||=[(0,t.createTextVNode)(`导出图片`,-1)]]),_:1},8,[`disabled`]),(0,t.createVNode)(a,{size:`small`,disabled:!I.value,onClick:j},{default:(0,t.withCtx)(()=>[...n[125]||=[(0,t.createTextVNode)(`导出 PDF`,-1)]]),_:1},8,[`disabled`]),(0,t.createVNode)(a,{size:`small`,type:`primary`,plain:``,disabled:!I.value,onClick:M},{default:(0,t.withCtx)(()=>[...n[126]||=[(0,t.createTextVNode)(`导出网页`,-1)]]),_:1},8,[`disabled`])])]),(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{ref_key:`layoutRef`,ref:ne,class:(0,t.normalizeClass)([`layout`,{"is-resizing":!!se.value}]),style:(0,t.normalizeStyle)(ce.value)},[(0,t.createVNode)(oe,{class:`tools`,shadow:`never`},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,yp,[(0,t.createElementVNode)(`div`,bp,[(0,t.createElementVNode)(`div`,xp,[(0,t.createElementVNode)(`button`,{type:`button`,class:(0,t.normalizeClass)([`tools-accordion__btn`,{"is-active":x.value===`canvas`}]),onClick:n[1]||=e=>x.value=`canvas`},`画布`,2),(0,t.createElementVNode)(`button`,{type:`button`,class:(0,t.normalizeClass)([`tools-accordion__btn`,{"is-active":x.value===`insert`}]),onClick:n[2]||=e=>x.value=`insert`},`插入`,2),(0,t.createElementVNode)(`button`,{type:`button`,class:(0,t.normalizeClass)([`tools-accordion__btn`,{"is-active":x.value===`arrange`}]),onClick:n[3]||=e=>x.value=`arrange`},`编排`,2)]),(0,t.createElementVNode)(`div`,{class:`tools-pane`,hidden:x.value!==`canvas`},[n[153]||=(0,t.createElementVNode)(`div`,{class:`tools-section-title`},`模板名称`,-1),(0,t.createElementVNode)(`div`,Cp,[(0,t.createVNode)(s,{modelValue:b.value,"onUpdate:modelValue":n[4]||=e=>b.value=e,maxlength:`120`,"show-word-limit":``,placeholder:`模板名称`,size:`small`},null,8,[`modelValue`])]),n[154]||=(0,t.createElementVNode)(`div`,{class:`tools-section-title`},`画布`,-1),(0,t.createElementVNode)(`div`,wp,[(0,t.createElementVNode)(`div`,null,[n[127]||=(0,t.createElementVNode)(`span`,{class:`label`},`宽:`,-1),(0,t.createVNode)(c,{modelValue:L.value,"onUpdate:modelValue":n[5]||=e=>L.value=e,min:40,max:300,size:`small`,"controls-position":`right`,onChange:oa},null,8,[`modelValue`]),n[128]||=(0,t.createTextVNode)(`mm `,-1)]),(0,t.createElementVNode)(`div`,null,[n[129]||=(0,t.createElementVNode)(`span`,{class:`label`},`高:`,-1),(0,t.createVNode)(c,{modelValue:R.value,"onUpdate:modelValue":n[6]||=e=>R.value=e,min:40,max:400,size:`small`,"controls-position":`right`,onChange:oa},null,8,[`modelValue`]),n[130]||=(0,t.createTextVNode)(`mm `,-1)])]),(0,t.createElementVNode)(`div`,Tp,[n[131]||=(0,t.createElementVNode)(`span`,{class:`label`},`显示标尺`,-1),(0,t.createVNode)(u,{modelValue:Ee.value,"onUpdate:modelValue":n[7]||=e=>Ee.value=e,size:`small`},null,8,[`modelValue`])]),(0,t.createVNode)(v,{"content-position":`left`},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`span`,Ep,[n[133]||=(0,t.createElementVNode)(`span`,null,`画布边框`,-1),(0,t.createVNode)(g,{placement:`top`,"show-after":120},{content:(0,t.withCtx)(()=>[...n[132]||=[(0,t.createElementVNode)(`div`,{class:`help-popover`},`控制白纸边缘描边;预览与打印会同步生效。滚轮缩放仅改变视图,不改模板毫米尺寸。`,-1)]]),default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`question-line`,class:`help-icon`})]),_:1})])]),_:1}),(0,t.createElementVNode)(`div`,Dp,[n[134]||=(0,t.createElementVNode)(`span`,{class:`label`},`显示边框`,-1),(0,t.createVNode)(u,{modelValue:X.value,"onUpdate:modelValue":n[8]||=e=>X.value=e,size:`small`},null,8,[`modelValue`])]),X.value?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:0},[(0,t.createElementVNode)(`div`,Op,[n[135]||=(0,t.createElementVNode)(`span`,{class:`label`},`边框色`,-1),(0,t.createElementVNode)(`div`,kp,[(0,t.createVNode)(C,{modelValue:yt.value,"onUpdate:modelValue":n[9]||=e=>yt.value=e},null,8,[`modelValue`]),(0,t.createVNode)(s,{modelValue:yt.value,"onUpdate:modelValue":n[10]||=e=>yt.value=e,size:`small`,placeholder:`#94a3b8`},null,8,[`modelValue`])])]),(0,t.createElementVNode)(`div`,Ap,[n[136]||=(0,t.createElementVNode)(`span`,{class:`label`},`边框 mm`,-1),(0,t.createVNode)(c,{modelValue:bt.value,"onUpdate:modelValue":n[11]||=e=>bt.value=e,min:.1,max:8,step:.1,precision:1,size:`small`,"controls-position":`right`,style:{width:`120px`}},null,8,[`modelValue`])])],64)):(0,t.createCommentVNode)(``,!0),(0,t.createVNode)(v,{"content-position":`left`},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`span`,jp,[n[138]||=(0,t.createElementVNode)(`span`,null,`画布背景`,-1),(0,t.createVNode)(g,{placement:`top`,"show-after":120},{content:(0,t.withCtx)(()=>[...n[137]||=[(0,t.createElementVNode)(`div`,{class:`help-popover`},`支持透明、纯色和背景图。背景图可从图片库选择,也可直接上传。`,-1)]]),default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`question-line`,class:`help-icon`})]),_:1})])]),_:1}),(0,t.createElementVNode)(`div`,Mp,[(0,t.createVNode)(ee,{modelValue:Be.value,"onUpdate:modelValue":n[12]||=e=>Be.value=e,size:`small`,onChange:rn},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(O,{label:`transparent`},{default:(0,t.withCtx)(()=>[...n[139]||=[(0,t.createTextVNode)(`透明`,-1)]]),_:1}),(0,t.createVNode)(O,{label:`color`},{default:(0,t.withCtx)(()=>[...n[140]||=[(0,t.createTextVNode)(`色块`,-1)]]),_:1}),(0,t.createVNode)(O,{label:`image`},{default:(0,t.withCtx)(()=>[...n[141]||=[(0,t.createTextVNode)(`图片`,-1)]]),_:1})]),_:1},8,[`modelValue`])]),Be.value===`color`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Np,[n[142]||=(0,t.createElementVNode)(`span`,{class:`label`},`背景色`,-1),(0,t.createElementVNode)(`div`,Pp,[(0,t.createVNode)(C,{modelValue:vt.value,"onUpdate:modelValue":n[13]||=e=>vt.value=e,"show-alpha":``},null,8,[`modelValue`]),(0,t.createVNode)(s,{modelValue:vt.value,"onUpdate:modelValue":n[14]||=e=>vt.value=e,size:`small`,placeholder:`#ffffff / rgba(...)`},null,8,[`modelValue`])])])):Be.value===`image`?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:2},[(0,t.createElementVNode)(`div`,Fp,[(0,t.createVNode)(a,{size:`small`,onClick:n[15]||=e=>an(`lib`)},{default:(0,t.withCtx)(()=>[...n[143]||=[(0,t.createTextVNode)(`选择图片`,-1)]]),_:1}),(0,t.createVNode)(a,{size:`small`,onClick:n[16]||=e=>an(`up`)},{default:(0,t.withCtx)(()=>[...n[144]||=[(0,t.createTextVNode)(`上传图片`,-1)]]),_:1}),(0,t.createVNode)(a,{size:`small`,link:``,type:`danger`,disabled:!I.value?.canvas?.backgroundImage,onClick:sn},{default:(0,t.withCtx)(()=>[...n[145]||=[(0,t.createTextVNode)(` 清除背景图 `,-1)]]),_:1},8,[`disabled`])]),(0,t.createElementVNode)(`p`,Ip,(0,t.toDisplayString)(I.value?.canvas?.backgroundImage?`当前已设置背景图,预览与打印会一起生效。`:`尚未选择背景图,可从图片库选择或直接上传。`),1)],64)):(0,t.createCommentVNode)(``,!0),(0,t.createVNode)(v,{"content-position":`left`},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`span`,Lp,[n[147]||=(0,t.createElementVNode)(`span`,null,`标尺与参考线`,-1),(0,t.createVNode)(g,{placement:`top`,"show-after":120},{content:(0,t.withCtx)(()=>[...n[146]||=[(0,t.createElementVNode)(`div`,{class:`help-popover`},`支持像 Photoshop 一样显示标尺,并为模板保存水平/垂直参考线。参考线可拖动、手输位置,也会随模板一起生效。`,-1)]]),default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`question-line`,class:`help-icon`})]),_:1})])]),_:1}),(0,t.createElementVNode)(`div`,Rp,[(0,t.createVNode)(a,{size:`small`,onClick:n[17]||=e=>Ai(`horizontal`)},{default:(0,t.withCtx)(()=>[...n[148]||=[(0,t.createTextVNode)(`添加横线`,-1)]]),_:1}),(0,t.createVNode)(a,{size:`small`,onClick:n[18]||=e=>Ai(`vertical`)},{default:(0,t.withCtx)(()=>[...n[149]||=[(0,t.createTextVNode)(`添加竖线`,-1)]]),_:1}),(0,t.createVNode)(a,{size:`small`,link:``,type:`danger`,disabled:!at.value.length,onClick:Mi},{default:(0,t.withCtx)(()=>[...n[150]||=[(0,t.createTextVNode)(`清空参考线`,-1)]]),_:1},8,[`disabled`])]),at.value.length?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,zp,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(at.value,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:e.id,class:(0,t.normalizeClass)([`guide-row`,{active:V.value===e.id}]),onClick:t=>nr(e.id),onContextmenu:(0,t.withModifiers)(t=>rr(t,e),[`prevent`,`stop`])},[(0,t.createVNode)(ae,{size:`small`,type:e.axis===`horizontal`?`success`:`primary`},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.axis===`horizontal`?`横线`:`竖线`),1)]),_:2},1032,[`type`]),(0,t.createVNode)(c,{modelValue:e.offsetMm,"onUpdate:modelValue":t=>e.offsetMm=t,min:0,max:e.axis===`horizontal`?R.value:L.value,step:.5,"controls-position":`right`,size:`small`},null,8,[`modelValue`,`onUpdate:modelValue`,`max`]),n[152]||=(0,t.createElementVNode)(`span`,{class:`guide-mm`},`mm`,-1),(0,t.createVNode)(a,{link:``,type:`danger`,onClick:t=>ji(e.id)},{default:(0,t.withCtx)(()=>[...n[151]||=[(0,t.createTextVNode)(`删除`,-1)]]),_:1},8,[`onClick`])],42,Bp))),128))])):(0,t.createCommentVNode)(``,!0)],8,Sp),(0,t.createElementVNode)(`div`,{class:`tools-pane`,hidden:x.value!==`insert`},[(0,t.createVNode)(v,{"content-position":`left`},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`span`,Hp,[n[156]||=(0,t.createElementVNode)(`span`,null,`元素`,-1),(0,t.createVNode)(g,{placement:`top`,"show-after":120},{content:(0,t.withCtx)(()=>[...n[155]||=[(0,t.createElementVNode)(`div`,{class:`help-popover`},`新文字会按版心自动排位。图片可从图片库选用或本地上传,便于后续复用。`,-1)]]),default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`question-line`,class:`help-icon`})]),_:1})])]),_:1}),(0,t.createElementVNode)(`div`,Up,[(0,t.createVNode)(a,{size:`small`,type:`primary`,onClick:ui},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`edit-line`}),n[157]||=(0,t.createTextVNode)(` 文字 `,-1)]),_:1}),(0,t.createVNode)(a,{size:`small`,type:`primary`,plain:``,onClick:n[19]||=e=>ye.value=!0},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`image-line`}),n[158]||=(0,t.createTextVNode)(` 图片 `,-1)]),_:1}),(0,t.createVNode)(a,{size:`small`,link:``,type:`primary`,onClick:He},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`folder-open-line`}),n[159]||=(0,t.createTextVNode)(` 图片库管理 `,-1)]),_:1})]),(0,t.createElementVNode)(`div`,Wp,[(0,t.createVNode)(W,{modelValue:w.value,"onUpdate:modelValue":n[20]||=e=>w.value=e,size:`small`,style:{width:`120px`},options:d},null,8,[`modelValue`]),(0,t.createVNode)(a,{size:`small`,type:`primary`,plain:``,onClick:n[21]||=e=>di(w.value)},{default:(0,t.withCtx)(()=>[...n[160]||=[(0,t.createTextVNode)(`添加形状`,-1)]]),_:1})]),(0,t.createVNode)(v,{"content-position":`left`},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`span`,Gp,[n[162]||=(0,t.createElementVNode)(`span`,null,`组合与分区`,-1),(0,t.createVNode)(g,{placement:`top`,"show-after":120},{content:(0,t.withCtx)(()=>[...n[161]||=[(0,t.createElementVNode)(`div`,{class:`help-popover`},`支持把多个元素组合/打散,也可把画布拆成多个分区,用于复制分区内容、给分区设置背景色和归类元素。`,-1)]]),default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`question-line`,class:`help-icon`})]),_:1})])]),_:1}),(0,t.createElementVNode)(`div`,Kp,[(0,t.createVNode)(a,{size:`small`,disabled:z.value.length<2,onClick:Ti},{default:(0,t.withCtx)(()=>[...n[163]||=[(0,t.createTextVNode)(`组合`,-1)]]),_:1},8,[`disabled`]),(0,t.createVNode)(a,{size:`small`,disabled:!lt.value,onClick:Ei},{default:(0,t.withCtx)(()=>[...n[164]||=[(0,t.createTextVNode)(`打散`,-1)]]),_:1},8,[`disabled`]),(0,t.createVNode)(a,{size:`small`,disabled:!J.value,onClick:An},{default:(0,t.withCtx)(()=>[...n[165]||=[(0,t.createTextVNode)(`复制分区内容`,-1)]]),_:1},8,[`disabled`]),(0,t.createVNode)(a,{size:`small`,disabled:!z.value.length||!J.value,onClick:Oi},{default:(0,t.withCtx)(()=>[...n[166]||=[(0,t.createTextVNode)(`归入当前分区`,-1)]]),_:1},8,[`disabled`])]),(0,t.createElementVNode)(`div`,qp,[n[167]||=(0,t.createElementVNode)(`span`,{class:`label`},`横向分块`,-1),(0,t.createVNode)(c,{modelValue:Re.value,"onUpdate:modelValue":n[22]||=e=>Re.value=e,min:1,max:12,size:`small`,"controls-position":`right`},null,8,[`modelValue`])]),(0,t.createElementVNode)(`div`,Jp,[n[168]||=(0,t.createElementVNode)(`span`,{class:`label`},`纵向分块`,-1),(0,t.createVNode)(c,{modelValue:ze.value,"onUpdate:modelValue":n[23]||=e=>ze.value=e,min:1,max:12,size:`small`,"controls-position":`right`},null,8,[`modelValue`])]),(0,t.createElementVNode)(`div`,Yp,[(0,t.createVNode)(a,{size:`small`,onClick:n[24]||=e=>_i(`horizontal`)},{default:(0,t.withCtx)(()=>[...n[169]||=[(0,t.createTextVNode)(`横向分块`,-1)]]),_:1}),(0,t.createVNode)(a,{size:`small`,onClick:n[25]||=e=>_i(`vertical`)},{default:(0,t.withCtx)(()=>[...n[170]||=[(0,t.createTextVNode)(`纵向分块`,-1)]]),_:1}),(0,t.createVNode)(a,{size:`small`,onClick:n[26]||=e=>_i(`grid`)},{default:(0,t.withCtx)(()=>[...n[171]||=[(0,t.createTextVNode)(`田字格/网格`,-1)]]),_:1}),(0,t.createVNode)(a,{size:`small`,link:``,type:`danger`,disabled:!Ge.value.length,onClick:vi},{default:(0,t.withCtx)(()=>[...n[172]||=[(0,t.createTextVNode)(`清空分区`,-1)]]),_:1},8,[`disabled`])]),Ge.value.length?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Xp,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(Ge.value,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:e.id,class:(0,t.normalizeClass)([`guide-row`,{active:B.value===e.id}]),onClick:t=>B.value=e.id},[(0,t.createVNode)(ae,{size:`small`,type:B.value===e.id?`success`:`info`},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.name),1)]),_:2},1032,[`type`]),(0,t.createElementVNode)(`span`,Qp,(0,t.toDisplayString)(e.wMm.toFixed(1))+` x `+(0,t.toDisplayString)(e.hMm.toFixed(1))+` mm`,1)],10,Zp))),128))])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,$p,[(0,t.createVNode)(Zf,{"model-value":S.value,"extra-modules":r.extraModules,"onUpdate:modelValue":E,onInsert:D,onPreviewContext:T},null,8,[`model-value`,`extra-modules`])])],8,Vp),(0,t.createElementVNode)(`div`,{class:`tools-pane`,hidden:x.value!==`arrange`},[(0,t.createVNode)(v,{"content-position":`left`},{default:(0,t.withCtx)(()=>[...n[173]||=[(0,t.createTextVNode)(`对齐到画布`,-1)]]),_:1}),(0,t.createElementVNode)(`div`,tm,[(0,t.createVNode)(o,{size:`small`,class:`btn-group-icons`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(a,{title:`左对齐到画布`,onClick:n[27]||=e=>ka(`left`)},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`arrow-left-line`})]),_:1}),(0,t.createVNode)(a,{title:`水平居中对画布`,onClick:n[28]||=e=>ka(`h-center`)},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`expand-left-right-line`})]),_:1}),(0,t.createVNode)(a,{title:`右对齐到画布`,onClick:n[29]||=e=>ka(`right`)},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`arrow-right-line`})]),_:1})]),_:1})]),(0,t.createElementVNode)(`div`,nm,[(0,t.createVNode)(o,{size:`small`,class:`btn-group-icons`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(a,{title:`顶对齐到画布`,onClick:n[30]||=e=>ka(`top`)},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`arrow-up-line`})]),_:1}),(0,t.createVNode)(a,{title:`垂直居中对画布`,onClick:n[31]||=e=>ka(`v-center`)},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`drag-move-line`})]),_:1}),(0,t.createVNode)(a,{title:`底对齐到画布`,onClick:n[32]||=e=>ka(`bottom`)},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`arrow-down-line`})]),_:1})]),_:1})]),(0,t.createVNode)(v,{"content-position":`left`},{default:(0,t.withCtx)(()=>[...n[174]||=[(0,t.createTextVNode)(`图层`,-1)]]),_:1}),I.value?.elements?.length?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,rm,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(Ke.value,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:e.id,class:(0,t.normalizeClass)([`layer-row`,{active:Je(e.id)}]),onClick:t=>wi(e)},[(0,t.createElementVNode)(`span`,am,(0,t.toDisplayString)(Vr(e)),1),(0,t.createElementVNode)(`span`,om,`z`+(0,t.toDisplayString)(e.zIndex),1),(0,t.createVNode)(o,{size:`small`,class:`btn-group-icons`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(a,{title:`上移一层`,onClick:(0,t.withModifiers)(t=>Hr(e,1),[`stop`])},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`arrow-up-s-line`})]),_:1},8,[`onClick`]),(0,t.createVNode)(a,{title:`下移一层`,onClick:(0,t.withModifiers)(t=>Hr(e,-1),[`stop`])},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`arrow-down-s-line`})]),_:1},8,[`onClick`])]),_:2},1024)],10,im))),128))])):((0,t.openBlock)(),(0,t.createElementBlock)(`span`,sm,`暂无元素`))],8,em)]),(0,t.createElementVNode)(`div`,cm,[(0,t.createVNode)(v),(0,t.createElementVNode)(`div`,lm,[(0,t.createVNode)(a,{type:`success`,loading:P.value,onClick:Na},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`checkbox-circle-line`}),n[175]||=(0,t.createTextVNode)(` 保存模板 `,-1)]),_:1},8,[`loading`]),F.value?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,um,(0,t.toDisplayString)(F.value),1)):(0,t.createCommentVNode)(``,!0)])])])]),_:1}),(0,t.createElementVNode)(`div`,{class:`layout-splitter`,title:`拖拽调整左侧宽度`,onPointerdown:n[33]||=e=>q(`left`,e)},null,32),(0,t.createVNode)(oe,{class:`canvas-card`,shadow:`never`},{header:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,dm,[n[179]||=(0,t.createElementVNode)(`span`,null,`编辑区(滚轮缩放;灰底拖拽/空格/中键平移;纸面空白框选)`,-1),(0,t.createElementVNode)(`div`,fm,[(0,t.createVNode)(ae,{size:`small`,type:`info`},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(Jt.value),1)]),_:1}),(0,t.createVNode)(o,{size:`small`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(a,{onClick:n[34]||=e=>pr(-1)},{default:(0,t.withCtx)(()=>[...n[176]||=[(0,t.createTextVNode)(`缩小`,-1)]]),_:1}),(0,t.createVNode)(a,{onClick:fr},{default:(0,t.withCtx)(()=>[...n[177]||=[(0,t.createTextVNode)(`适配`,-1)]]),_:1}),(0,t.createVNode)(a,{onClick:n[35]||=e=>pr(1)},{default:(0,t.withCtx)(()=>[...n[178]||=[(0,t.createTextVNode)(`放大`,-1)]]),_:1})]),_:1})])])]),default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,{ref_key:`viewportRef`,ref:te,class:`canvas-card-body`},[(0,t.createElementVNode)(`div`,{ref_key:`hostRef`,ref:H,class:(0,t.normalizeClass)([`canvas-host`,{"is-panning":De.value,"is-pan-ready":Oe.value&&!De.value}]),tabindex:`0`,onPointerenter:ai,onPointerleave:oi,onPointerdown:si,onAuxclick:n[36]||=(0,t.withModifiers)(()=>{},[`prevent`]),onClick:n[37]||=(0,t.withModifiers)(e=>{z.value=[],Xn()},[`self`]),onWheel:(0,t.withModifiers)(hr,[`prevent`])},[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`editor-workspace`,{"no-rulers":!Ee.value}]),style:(0,t.normalizeStyle)(Bt.value)},[Ee.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,pm)):(0,t.createCommentVNode)(``,!0),Ee.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,mm,[(0,t.createElementVNode)(`div`,{class:`ruler-axis ruler-axis-x`,style:(0,t.normalizeStyle)(Ut.value)},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(Gt.value,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:`x-${e.mm}`,class:(0,t.normalizeClass)([`ruler-tick ruler-tick-x`,{major:e.major,mid:e.mid}]),style:(0,t.normalizeStyle)({left:`${e.offsetPx}px`})},[e.label?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,hm,(0,t.toDisplayString)(e.label),1)):(0,t.createCommentVNode)(``,!0)],6))),128))],4)])):(0,t.createCommentVNode)(``,!0),Ee.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,gm,[(0,t.createElementVNode)(`div`,{class:`ruler-axis ruler-axis-y`,style:(0,t.normalizeStyle)(Wt.value)},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(Kt.value,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:`y-${e.mm}`,class:(0,t.normalizeClass)([`ruler-tick ruler-tick-y`,{major:e.major,mid:e.mid}]),style:(0,t.normalizeStyle)({top:`${e.offsetPx}px`})},[e.label?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,_m,(0,t.toDisplayString)(e.label),1)):(0,t.createCommentVNode)(``,!0)],6))),128))],4)])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,{class:`workspace-surface`,style:(0,t.normalizeStyle)(Ht.value),onPointerdown:(0,t.withModifiers)(li,[`self`]),onContextmenu:(0,t.withModifiers)($n,[`prevent`,`stop`,`self`])},[I.value&&wt.value>0?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,ref_key:`canvasClipRef`,ref:me,class:`canvas-scale-clip`,style:(0,t.normalizeStyle)(Yt.value)},[(0,t.createElementVNode)(`div`,{class:`canvas-scale-inner`,style:(0,t.normalizeStyle)(Xt.value)},[(0,t.createElementVNode)(`div`,{ref_key:`canvasInnerRef`,ref:pe,class:`canvas-inner canvas-inner--paper`,style:(0,t.normalizeStyle)(Zt.value),onPointerdown:(0,t.withModifiers)(ci,[`self`]),onContextmenu:(0,t.withModifiers)(er,[`prevent`,`stop`,`self`])},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(at.value,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:e.id,class:(0,t.normalizeClass)([`guide-line`,[e.axis===`horizontal`?`guide-line--h`:`guide-line--v`,{active:V.value===e.id}]]),style:(0,t.normalizeStyle)(yr(e)),onPointerdown:(0,t.withModifiers)(t=>Ri(t,e),[`stop`,`prevent`]),onContextmenu:(0,t.withModifiers)(t=>rr(t,e),[`prevent`,`stop`])},[(0,t.createElementVNode)(`span`,{class:`guide-badge`,style:(0,t.normalizeStyle)(br(e))},(0,t.toDisplayString)(e.axis===`horizontal`?`Y ${e.offsetMm.toFixed(1)}mm`:`X ${e.offsetMm.toFixed(1)}mm`),5)],46,vm))),128)),((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(Ge.value,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:e.id,class:(0,t.normalizeClass)([`canvas-region`,{active:B.value===e.id}]),style:(0,t.normalizeStyle)(Ir(e)),onPointerdown:(0,t.withModifiers)(t=>xi(t,e),[`stop`]),onContextmenu:(0,t.withModifiers)(t=>tr(t,e),[`prevent`,`stop`])},[(0,t.createElementVNode)(`span`,bm,(0,t.toDisplayString)(e.name),1)],46,ym))),128)),((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(We.value,e=>((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:e.id},[e.type===`text`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,style:(0,t.normalizeStyle)(vr(e)),class:`layer-drop`},[(0,t.createVNode)(ue,{trigger:`contextmenu`,onCommand:t=>Yr(t,e)},{dropdown:(0,t.withCtx)(()=>[(0,t.createVNode)(le,null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)(G,{command:`copy`},{default:(0,t.withCtx)(()=>[...n[180]||=[(0,t.createTextVNode)(`复制元素`,-1)]]),_:1}),(0,t.createVNode)(G,{command:`paste`,disabled:!ot.value},{default:(0,t.withCtx)(()=>[...n[181]||=[(0,t.createTextVNode)(`粘贴元素`,-1)]]),_:1},8,[`disabled`]),(0,t.createVNode)(G,{command:`delete`},{default:(0,t.withCtx)(()=>[...n[182]||=[(0,t.createTextVNode)(`删除元素`,-1)]]),_:1}),(0,t.createVNode)(G,{command:`set-link`},{default:(0,t.withCtx)(()=>[...n[183]||=[(0,t.createTextVNode)(`设置链接`,-1)]]),_:1}),(0,t.createVNode)(G,{command:`clear-link`},{default:(0,t.withCtx)(()=>[...n[184]||=[(0,t.createTextVNode)(`清除链接`,-1)]]),_:1}),(0,t.createVNode)(G,{divided:``,class:`ctx-submenu-item`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(ue,{trigger:`hover`,placement:`right-start`,onCommand:t=>Kr(t,e)},{dropdown:(0,t.withCtx)(()=>[(0,t.createVNode)(le,null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)(G,{command:`forward`},{default:(0,t.withCtx)(()=>[...n[185]||=[(0,t.createTextVNode)(`上一层`,-1)]]),_:1}),(0,t.createVNode)(G,{command:`backward`},{default:(0,t.withCtx)(()=>[...n[186]||=[(0,t.createTextVNode)(`下一层`,-1)]]),_:1}),(0,t.createVNode)(G,{command:`front`,divided:``},{default:(0,t.withCtx)(()=>[...n[187]||=[(0,t.createTextVNode)(`最顶层`,-1)]]),_:1}),(0,t.createVNode)(G,{command:`back`},{default:(0,t.withCtx)(()=>[...n[188]||=[(0,t.createTextVNode)(`最底层`,-1)]]),_:1})]),_:1})]),default:(0,t.withCtx)(()=>[n[189]||=(0,t.createElementVNode)(`span`,{class:`ctx-submenu-trigger`},`层级 ›`,-1)]),_:1},8,[`onCommand`])]),_:2},1024)]),_:2},1024)]),default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`hit`,{sel:Je(e.id)}]),onPointerdown:(0,t.withModifiers)(t=>Fi(t,e),[`prevent`,`stop`])},[(0,t.createElementVNode)(`div`,{class:`hit-inner`,style:(0,t.normalizeStyle)(xr(e))},(0,t.toDisplayString)(_r(e)),5),(0,t.withDirectives)((0,t.createElementVNode)(`div`,{class:`resize-handle-br`,title:`拖拽缩放区域`,onPointerdown:(0,t.withModifiers)(t=>Ui(t,e),[`stop`])},null,40,Sm),[[t.vShow,z.value.length===1&&z.value[0]===e.id]])],42,xm)]),_:2},1032,[`onCommand`])],4)):e.type===`shape`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:1,style:(0,t.normalizeStyle)(vr(e)),class:`layer-drop`},[(0,t.createVNode)(ue,{trigger:`contextmenu`,onCommand:t=>Yr(t,e)},{dropdown:(0,t.withCtx)(()=>[(0,t.createVNode)(le,null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)(G,{command:`copy`},{default:(0,t.withCtx)(()=>[...n[190]||=[(0,t.createTextVNode)(`复制元素`,-1)]]),_:1}),(0,t.createVNode)(G,{command:`paste`,disabled:!ot.value},{default:(0,t.withCtx)(()=>[...n[191]||=[(0,t.createTextVNode)(`粘贴元素`,-1)]]),_:1},8,[`disabled`]),(0,t.createVNode)(G,{command:`delete`},{default:(0,t.withCtx)(()=>[...n[192]||=[(0,t.createTextVNode)(`删除元素`,-1)]]),_:1}),(0,t.createVNode)(G,{command:`set-link`},{default:(0,t.withCtx)(()=>[...n[193]||=[(0,t.createTextVNode)(`设置链接`,-1)]]),_:1}),(0,t.createVNode)(G,{command:`clear-link`},{default:(0,t.withCtx)(()=>[...n[194]||=[(0,t.createTextVNode)(`清除链接`,-1)]]),_:1})]),_:1})]),default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`hit shape-hit`,{sel:Je(e.id)}]),onPointerdown:(0,t.withModifiers)(t=>Fi(t,e),[`prevent`,`stop`])},[((0,t.openBlock)(),(0,t.createElementBlock)(`svg`,{class:`shape-inner`,style:(0,t.normalizeStyle)(Sr(e)),viewBox:`0 0 100 100`,preserveAspectRatio:`none`},[e.shape===`line`?((0,t.openBlock)(),(0,t.createElementBlock)(`line`,{key:0,x1:`4`,y1:`50`,x2:`96`,y2:`50`,stroke:Cr(e),"stroke-width":Math.max(Tr(e),1),"stroke-linecap":`round`},null,8,wm)):e.shape===`rect`?((0,t.openBlock)(),(0,t.createElementBlock)(`rect`,{key:1,x:`4`,y:`4`,width:`92`,height:`92`,fill:wr(e),stroke:Cr(e),"stroke-width":Tr(e)},null,8,Tm)):e.shape===`circle`?((0,t.openBlock)(),(0,t.createElementBlock)(`ellipse`,{key:2,cx:`50`,cy:`50`,rx:`46`,ry:`46`,fill:wr(e),stroke:Cr(e),"stroke-width":Tr(e)},null,8,Em)):e.shape===`triangle`?((0,t.openBlock)(),(0,t.createElementBlock)(`polygon`,{key:3,points:`50,4 96,96 4,96`,fill:wr(e),stroke:Cr(e),"stroke-width":Tr(e),"stroke-linejoin":`round`},null,8,Dm)):e.shape===`trapezoid`?((0,t.openBlock)(),(0,t.createElementBlock)(`polygon`,{key:4,points:Fr(),fill:wr(e),stroke:Cr(e),"stroke-width":Tr(e),"stroke-linejoin":`round`},null,8,Om)):((0,t.openBlock)(),(0,t.createElementBlock)(`polygon`,{key:5,points:Pr(e),fill:wr(e),stroke:Cr(e),"stroke-width":Tr(e),"stroke-linejoin":`round`},null,8,km))],4)),(0,t.withDirectives)((0,t.createElementVNode)(`div`,{class:`resize-handle-br`,title:`拖拽缩放`,onPointerdown:(0,t.withModifiers)(t=>Ui(t,e),[`stop`])},null,40,Am),[[t.vShow,z.value.length===1&&z.value[0]===e.id]])],42,Cm)]),_:2},1032,[`onCommand`])],4)):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:2,style:(0,t.normalizeStyle)(vr(e)),class:`layer-drop`},[(0,t.createVNode)(ue,{trigger:`contextmenu`,onCommand:t=>Yr(t,e)},{dropdown:(0,t.withCtx)(()=>[(0,t.createVNode)(le,null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)(G,{command:`copy`},{default:(0,t.withCtx)(()=>[...n[195]||=[(0,t.createTextVNode)(`复制元素`,-1)]]),_:1}),(0,t.createVNode)(G,{command:`paste`,disabled:!ot.value},{default:(0,t.withCtx)(()=>[...n[196]||=[(0,t.createTextVNode)(`粘贴元素`,-1)]]),_:1},8,[`disabled`]),(0,t.createVNode)(G,{command:`delete`},{default:(0,t.withCtx)(()=>[...n[197]||=[(0,t.createTextVNode)(`删除元素`,-1)]]),_:1}),(0,t.createVNode)(G,{command:`set-link`},{default:(0,t.withCtx)(()=>[...n[198]||=[(0,t.createTextVNode)(`设置链接`,-1)]]),_:1}),(0,t.createVNode)(G,{command:`clear-link`},{default:(0,t.withCtx)(()=>[...n[199]||=[(0,t.createTextVNode)(`清除链接`,-1)]]),_:1}),(0,t.createVNode)(G,{divided:``,class:`ctx-submenu-item`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(ue,{trigger:`hover`,placement:`right-start`,onCommand:t=>Kr(t,e)},{dropdown:(0,t.withCtx)(()=>[(0,t.createVNode)(le,null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)(G,{command:`forward`},{default:(0,t.withCtx)(()=>[...n[200]||=[(0,t.createTextVNode)(`上一层`,-1)]]),_:1}),(0,t.createVNode)(G,{command:`backward`},{default:(0,t.withCtx)(()=>[...n[201]||=[(0,t.createTextVNode)(`下一层`,-1)]]),_:1}),(0,t.createVNode)(G,{command:`front`,divided:``},{default:(0,t.withCtx)(()=>[...n[202]||=[(0,t.createTextVNode)(`最顶层`,-1)]]),_:1}),(0,t.createVNode)(G,{command:`back`},{default:(0,t.withCtx)(()=>[...n[203]||=[(0,t.createTextVNode)(`最底层`,-1)]]),_:1})]),_:1})]),default:(0,t.withCtx)(()=>[n[204]||=(0,t.createElementVNode)(`span`,{class:`ctx-submenu-trigger`},`层级 ›`,-1)]),_:1},8,[`onCommand`])]),_:2},1024)]),_:2},1024)]),default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`hit img-hit`,{sel:Je(e.id)}]),onPointerdown:(0,t.withModifiers)(t=>Fi(t,e),[`prevent`,`stop`])},[(0,t.createElementVNode)(`img`,{src:dn(e.src),alt:``,draggable:`false`},null,8,Mm),Jn(e)?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Nm,(0,t.toDisplayString)(Jn(e)),1)):(0,t.createCommentVNode)(``,!0),(0,t.withDirectives)((0,t.createElementVNode)(`div`,{class:`resize-handle-br`,title:`拖拽缩放`,onPointerdown:(0,t.withModifiers)(t=>Ui(t,e),[`stop`])},null,40,Pm),[[t.vShow,z.value.length===1&&z.value[0]===e.id]])],42,jm)]),_:2},1032,[`onCommand`])],4))],64))),128)),he.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:`marquee-rect`,style:(0,t.normalizeStyle)(mt.value)},null,4)):(0,t.createCommentVNode)(``,!0)],36)],4)],4)):(0,t.createCommentVNode)(``,!0)],36)],6)],34)],512)]),_:1}),((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:`body`},[Pe.value.visible?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:`canvas-context-menu`,style:(0,t.normalizeStyle)(ft.value),onPointerdown:n[55]||=(0,t.withModifiers)(()=>{},[`stop`])},[Pe.value.target===`guide`?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:0,type:`button`,class:`canvas-context-menu__item danger`,disabled:!dt.value,onClick:n[38]||=e=>ir(`delete`)},` 删除参考线 `,8,Fm)):Pe.value.target===`region`?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:1},[(0,t.createElementVNode)(`button`,{type:`button`,class:`canvas-context-menu__item`,onClick:n[39]||=e=>lr(`copy_region`)},` 复制分块 `),(0,t.createElementVNode)(`button`,{type:`button`,class:`canvas-context-menu__item`,onClick:n[40]||=e=>lr(`copy_region_contents`)},` 复制分块及内容 `),(0,t.createElementVNode)(`button`,{type:`button`,class:`canvas-context-menu__item`,disabled:!z.value.length,onClick:n[41]||=e=>lr(`copy_region_selection`)},` 复制分块+选中元素 `,8,Im),(0,t.createElementVNode)(`button`,{type:`button`,class:`canvas-context-menu__item`,disabled:!st.value,onClick:n[42]||=e=>lr(`paste_region`)},` 粘贴分块 `,8,Lm),(0,t.createElementVNode)(`button`,{type:`button`,class:`canvas-context-menu__item`,disabled:!ot.value,onClick:n[43]||=e=>lr(`paste_elements`)},` 粘贴元素 `,8,Rm),(0,t.createElementVNode)(`button`,{type:`button`,class:`canvas-context-menu__item`,disabled:!ot.value,onClick:n[44]||=e=>lr(`paste_elements_flip_x`)},` 粘贴并左右翻转 `,8,zm),(0,t.createElementVNode)(`button`,{type:`button`,class:`canvas-context-menu__item`,disabled:!ot.value,onClick:n[45]||=e=>lr(`paste_elements_flip_y`)},` 粘贴并上下翻转 `,8,Bm),(0,t.createElementVNode)(`button`,{type:`button`,class:`canvas-context-menu__item`,disabled:!ut.value,onClick:n[46]||=e=>lr(`flip_contents_x`)},` 当前分块内容左右翻转 `,8,Vm),(0,t.createElementVNode)(`button`,{type:`button`,class:`canvas-context-menu__item`,disabled:!ut.value,onClick:n[47]||=e=>lr(`flip_contents_y`)},` 当前分块内容上下翻转 `,8,Hm),(0,t.createElementVNode)(`button`,{type:`button`,class:`canvas-context-menu__item danger`,disabled:!ut.value,onClick:n[48]||=e=>lr(`delete_region`)},` 删除当前分块 `,8,Um)],64)):((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:2},[(0,t.createElementVNode)(`button`,{type:`button`,class:`canvas-context-menu__item`,onClick:n[49]||=e=>sr(`zoom_in`)},` 放大 `),(0,t.createElementVNode)(`button`,{type:`button`,class:`canvas-context-menu__item`,onClick:n[50]||=e=>sr(`zoom_out`)},` 缩小 `),(0,t.createElementVNode)(`button`,{type:`button`,class:`canvas-context-menu__item`,onClick:n[51]||=e=>sr(`fit`)},` 适配 `),(0,t.createElementVNode)(`button`,{type:`button`,class:`canvas-context-menu__item`,disabled:!z.value.length,onClick:n[52]||=e=>sr(`delete`)},` 删除选中元素 `,8,Wm),(0,t.createElementVNode)(`button`,{type:`button`,class:`canvas-context-menu__item`,disabled:!ot.value,onClick:n[53]||=e=>sr(`paste`)},` 粘贴元素 `,8,Gm),(0,t.createElementVNode)(`button`,{type:`button`,class:`canvas-context-menu__item`,disabled:!st.value,onClick:n[54]||=e=>sr(`paste_region`)},` 粘贴分块 `,8,Km)],64))],36)):(0,t.createCommentVNode)(``,!0)])),(0,t.createElementVNode)(`div`,{class:`layout-splitter`,title:`拖拽调整右侧宽度`,onPointerdown:n[56]||=e=>q(`right`,e)},null,32),(0,t.createVNode)(oe,{class:`side`,shadow:`never`},{header:(0,t.withCtx)(()=>[...n[205]||=[(0,t.createTextVNode)(`属性`,-1)]]),default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,qm,[(0,t.createElementVNode)(`div`,Jm,[Ye.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Ym,[(0,t.createVNode)(de,{"label-width":`88px`,size:`small`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(K,{label:`文字内容`},{default:(0,t.withCtx)(()=>[((0,t.openBlock)(),(0,t.createBlock)(s,{key:z.value.length===1?z.value[0]:`multi`,modelValue:ht.value,"onUpdate:modelValue":n[57]||=e=>ht.value=e,type:`textarea`,rows:8,placeholder:`可直接编辑;占位符用双花括号,如 student_name 写成模板里的字段名`},null,8,[`modelValue`]))]),_:1}),(0,t.createVNode)(K,null,{label:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`span`,Xm,[(0,t.createVNode)(i,{icon:`expand-left-right-line`}),n[206]||=(0,t.createTextVNode)(`字号(pt)`,-1)])]),default:(0,t.withCtx)(()=>[(0,t.createVNode)(c,{modelValue:Ye.value.fontSize,"onUpdate:modelValue":n[58]||=e=>Ye.value.fontSize=e,min:6,max:72,"controls-position":`right`,style:{width:`100%`}},null,8,[`modelValue`])]),_:1}),(0,t.createVNode)(K,null,{label:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`span`,Zm,[(0,t.createVNode)(i,{icon:`brush-line`}),n[207]||=(0,t.createTextVNode)(`颜色`,-1)])]),default:(0,t.withCtx)(()=>[(0,t.createVNode)(C,{modelValue:Ye.value.color,"onUpdate:modelValue":n[59]||=e=>Ye.value.color=e,"show-alpha":``},null,8,[`modelValue`])]),_:1}),(0,t.createVNode)(K,{label:`区域 mm`},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,Qm,[n[208]||=(0,t.createElementVNode)(`span`,{class:`pair-label`},`宽`,-1),(0,t.createVNode)(c,{modelValue:Ye.value.wMm,"onUpdate:modelValue":n[60]||=e=>Ye.value.wMm=e,min:5,max:500,step:.5,"controls-position":`right`},null,8,[`modelValue`]),n[209]||=(0,t.createElementVNode)(`span`,{class:`pair-label`},`高`,-1),(0,t.createVNode)(c,{modelValue:Ye.value.hMm,"onUpdate:modelValue":n[61]||=e=>Ye.value.hMm=e,min:4,max:500,step:.5,"controls-position":`right`},null,8,[`modelValue`])])]),_:1}),(0,t.createVNode)(K,{label:`对齐`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(W,{modelValue:Ye.value.align,"onUpdate:modelValue":n[62]||=e=>Ye.value.align=e,placeholder:`对齐`,style:{width:`100%`},options:_t},null,8,[`modelValue`])]),_:1}),(0,t.createVNode)(K,{label:`文字方向`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(ee,{modelValue:gt.value,"onUpdate:modelValue":n[63]||=e=>gt.value=e},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(O,{label:`horizontal`},{default:(0,t.withCtx)(()=>[...n[210]||=[(0,t.createTextVNode)(`横向`,-1)]]),_:1}),(0,t.createVNode)(O,{label:`vertical`},{default:(0,t.withCtx)(()=>[...n[211]||=[(0,t.createTextVNode)(`纵向`,-1)]]),_:1})]),_:1},8,[`modelValue`])]),_:1}),(0,t.createVNode)(K,{label:`旋转 (°)`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(c,{modelValue:nt.value,"onUpdate:modelValue":n[64]||=e=>nt.value=e,min:-180,max:180,step:1,"controls-position":`right`,style:{width:`100%`}},null,8,[`modelValue`])]),_:1}),(0,t.createVNode)(K,{label:`翻转`},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,$m,[(0,t.createVNode)(u,{modelValue:rt.value,"onUpdate:modelValue":n[65]||=e=>rt.value=e,"inline-prompt":``,"active-text":`左右`,"inactive-text":`左右`},null,8,[`modelValue`]),(0,t.createVNode)(u,{modelValue:it.value,"onUpdate:modelValue":n[66]||=e=>it.value=e,"inline-prompt":``,"active-text":`上下`,"inactive-text":`上下`},null,8,[`modelValue`])])]),_:1})]),_:1})])):Xe.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,eh,[(0,t.createVNode)(de,{"label-width":`88px`,size:`small`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(K,{label:`尺寸 mm`},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,th,[n[212]||=(0,t.createElementVNode)(`span`,{class:`pair-label`},`宽`,-1),(0,t.createVNode)(c,{modelValue:Xe.value.wMm,"onUpdate:modelValue":n[67]||=e=>Xe.value.wMm=e,min:5,max:500,step:.5,"controls-position":`right`},null,8,[`modelValue`]),n[213]||=(0,t.createElementVNode)(`span`,{class:`pair-label`},`高`,-1),(0,t.createVNode)(c,{modelValue:Xe.value.hMm,"onUpdate:modelValue":n[68]||=e=>Xe.value.hMm=e,min:5,max:500,step:.5,"controls-position":`right`},null,8,[`modelValue`])])]),_:1}),(0,t.createVNode)(K,{label:`旋转 (°)`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(c,{modelValue:tt.value,"onUpdate:modelValue":n[69]||=e=>tt.value=e,min:-180,max:180,step:1,"controls-position":`right`,style:{width:`100%`}},null,8,[`modelValue`])]),_:1}),(0,t.createVNode)(K,{label:`翻转`},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,nh,[(0,t.createVNode)(u,{modelValue:rt.value,"onUpdate:modelValue":n[70]||=e=>rt.value=e,"inline-prompt":``,"active-text":`左右`,"inactive-text":`左右`},null,8,[`modelValue`]),(0,t.createVNode)(u,{modelValue:it.value,"onUpdate:modelValue":n[71]||=e=>it.value=e,"inline-prompt":``,"active-text":`上下`,"inactive-text":`上下`},null,8,[`modelValue`])])]),_:1}),(0,t.createVNode)(K,null,{default:(0,t.withCtx)(()=>[...n[214]||=[(0,t.createElementVNode)(`span`,{class:`muted-text`},`画布上拖右下角蓝点可拉伸;文字和图片都支持角度旋转、左右翻转、上下翻转。`,-1)]]),_:1})]),_:1})])):Ze.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,rh,[(0,t.createVNode)(de,{"label-width":`88px`,size:`small`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(K,{label:`图形`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(W,{modelValue:Ze.value.shape,"onUpdate:modelValue":n[72]||=e=>Ze.value.shape=e,style:{width:`100%`},options:d},null,8,[`modelValue`])]),_:1}),Ze.value.shape===`polygon`?((0,t.openBlock)(),(0,t.createBlock)(K,{key:0,label:`边数`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(c,{modelValue:Ze.value.polygonSides,"onUpdate:modelValue":n[73]||=e=>Ze.value.polygonSides=e,min:3,max:12,step:1,"controls-position":`right`,style:{width:`100%`}},null,8,[`modelValue`])]),_:1})):(0,t.createCommentVNode)(``,!0),(0,t.createVNode)(K,{label:`背景色`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(C,{modelValue:Ze.value.background,"onUpdate:modelValue":n[74]||=e=>Ze.value.background=e,"show-alpha":``},null,8,[`modelValue`])]),_:1}),(0,t.createVNode)(K,{label:`显示边框`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(u,{modelValue:Y.value,"onUpdate:modelValue":n[75]||=e=>Y.value=e},null,8,[`modelValue`])]),_:1}),(0,t.createVNode)(K,{label:`边框色`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(C,{modelValue:Ze.value.strokeColor,"onUpdate:modelValue":n[76]||=e=>Ze.value.strokeColor=e,"show-alpha":``,disabled:!Y.value},null,8,[`modelValue`,`disabled`])]),_:1}),(0,t.createVNode)(K,{label:`边框 mm`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(c,{modelValue:Ze.value.strokeWidthMm,"onUpdate:modelValue":n[77]||=e=>Ze.value.strokeWidthMm=e,min:0,max:20,step:.2,"controls-position":`right`,style:{width:`100%`},disabled:!Y.value},null,8,[`modelValue`,`disabled`])]),_:1}),(0,t.createVNode)(K,{label:`透明度`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(fe,{modelValue:$e.value,"onUpdate:modelValue":n[78]||=e=>$e.value=e,min:0,max:100},null,8,[`modelValue`])]),_:1}),(0,t.createVNode)(K,{label:`锁定比例`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(u,{modelValue:et.value,"onUpdate:modelValue":n[79]||=e=>et.value=e},null,8,[`modelValue`])]),_:1}),(0,t.createVNode)(K,{label:`尺寸 mm`},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,ih,[n[215]||=(0,t.createElementVNode)(`span`,{class:`pair-label`},`宽`,-1),(0,t.createVNode)(c,{modelValue:Ze.value.wMm,"onUpdate:modelValue":n[80]||=e=>Ze.value.wMm=e,min:1,max:500,step:.5,"controls-position":`right`,onChange:jr},null,8,[`modelValue`]),n[216]||=(0,t.createElementVNode)(`span`,{class:`pair-label`},`高`,-1),(0,t.createVNode)(c,{modelValue:Ze.value.hMm,"onUpdate:modelValue":n[81]||=e=>Ze.value.hMm=e,min:1,max:500,step:.5,"controls-position":`right`,onChange:Nr},null,8,[`modelValue`])])]),_:1}),(0,t.createVNode)(K,null,{default:(0,t.withCtx)(()=>[...n[217]||=[(0,t.createElementVNode)(`span`,{class:`muted-text`},`开启后,拖拽右下角或手动修改宽高都会按当前比例同步缩放。`,-1)]]),_:1})]),_:1})])):J.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ah,[(0,t.createVNode)(de,{"label-width":`88px`,size:`small`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(K,{label:`分区名称`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(s,{modelValue:J.value.name,"onUpdate:modelValue":n[82]||=e=>J.value.name=e},null,8,[`modelValue`])]),_:1}),(0,t.createVNode)(K,{label:`背景模式`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(ee,{modelValue:xt.value,"onUpdate:modelValue":n[83]||=e=>xt.value=e,size:`small`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(O,{label:`transparent`},{default:(0,t.withCtx)(()=>[...n[218]||=[(0,t.createTextVNode)(`透明`,-1)]]),_:1}),(0,t.createVNode)(O,{label:`color`},{default:(0,t.withCtx)(()=>[...n[219]||=[(0,t.createTextVNode)(`色块`,-1)]]),_:1}),(0,t.createVNode)(O,{label:`image`},{default:(0,t.withCtx)(()=>[...n[220]||=[(0,t.createTextVNode)(`图片`,-1)]]),_:1})]),_:1},8,[`modelValue`])]),_:1}),xt.value===`color`?((0,t.openBlock)(),(0,t.createBlock)(K,{key:0,label:`背景色`},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,oh,[(0,t.createVNode)(C,{modelValue:St.value,"onUpdate:modelValue":n[84]||=e=>St.value=e,"show-alpha":``},null,8,[`modelValue`]),(0,t.createVNode)(s,{modelValue:St.value,"onUpdate:modelValue":n[85]||=e=>St.value=e,size:`small`,placeholder:`#ffffff / rgba(...)`},null,8,[`modelValue`])])]),_:1})):xt.value===`image`?((0,t.openBlock)(),(0,t.createBlock)(K,{key:1,label:`背景图`},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,sh,[(0,t.createVNode)(a,{size:`small`,onClick:n[86]||=e=>cn(`lib`)},{default:(0,t.withCtx)(()=>[...n[221]||=[(0,t.createTextVNode)(`选择图片`,-1)]]),_:1}),(0,t.createVNode)(a,{size:`small`,onClick:n[87]||=e=>cn(`up`)},{default:(0,t.withCtx)(()=>[...n[222]||=[(0,t.createTextVNode)(`上传图片`,-1)]]),_:1}),(0,t.createVNode)(a,{size:`small`,link:``,type:`danger`,disabled:!J.value.backgroundImage,onClick:un},{default:(0,t.withCtx)(()=>[...n[223]||=[(0,t.createTextVNode)(` 清除图片 `,-1)]]),_:1},8,[`disabled`])])]),_:1})):(0,t.createCommentVNode)(``,!0),(0,t.createVNode)(K,{label:`区域 mm`},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,ch,[n[224]||=(0,t.createElementVNode)(`span`,{class:`pair-label`},`X`,-1),(0,t.createVNode)(c,{modelValue:J.value.xMm,"onUpdate:modelValue":n[88]||=e=>J.value.xMm=e,min:0,max:500,step:.5,"controls-position":`right`},null,8,[`modelValue`]),n[225]||=(0,t.createElementVNode)(`span`,{class:`pair-label`},`Y`,-1),(0,t.createVNode)(c,{modelValue:J.value.yMm,"onUpdate:modelValue":n[89]||=e=>J.value.yMm=e,min:0,max:500,step:.5,"controls-position":`right`},null,8,[`modelValue`]),n[226]||=(0,t.createElementVNode)(`span`,{class:`pair-label`},`宽`,-1),(0,t.createVNode)(c,{modelValue:J.value.wMm,"onUpdate:modelValue":n[90]||=e=>J.value.wMm=e,min:1,max:500,step:.5,"controls-position":`right`},null,8,[`modelValue`]),n[227]||=(0,t.createElementVNode)(`span`,{class:`pair-label`},`高`,-1),(0,t.createVNode)(c,{modelValue:J.value.hMm,"onUpdate:modelValue":n[91]||=e=>J.value.hMm=e,min:1,max:500,step:.5,"controls-position":`right`},null,8,[`modelValue`])])]),_:1}),(0,t.createVNode)(K,null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)(a,{type:`danger`,plain:``,onClick:n[92]||=e=>bi(J.value.id)},{default:(0,t.withCtx)(()=>[...n[228]||=[(0,t.createTextVNode)(`删除当前分区`,-1)]]),_:1})]),_:1})]),_:1}),(0,t.createVNode)(v,{"content-position":`left`},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`span`,lh,[n[230]||=(0,t.createElementVNode)(`span`,null,`当前分区操作`,-1),(0,t.createVNode)(g,{placement:`top`,"show-after":120},{content:(0,t.withCtx)(()=>[...n[229]||=[(0,t.createElementVNode)(`div`,{class:`help-popover`},`这里直接处理当前分区内容。可先在分区里选中部分元素再操作;未选中时默认作用于整个分区内容。`,-1)]]),default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`question-line`,class:`help-icon`})]),_:1})])]),_:1}),(0,t.createElementVNode)(`div`,uh,[(0,t.createVNode)(a,{size:`small`,disabled:!J.value,onClick:n[93]||=e=>Hn(`x`)},{default:(0,t.withCtx)(()=>[...n[231]||=[(0,t.createTextVNode)(` 当前分区左右翻转 `,-1)]]),_:1},8,[`disabled`]),(0,t.createVNode)(a,{size:`small`,disabled:!J.value,onClick:n[94]||=e=>Hn(`y`)},{default:(0,t.withCtx)(()=>[...n[232]||=[(0,t.createTextVNode)(` 当前分区上下翻转 `,-1)]]),_:1},8,[`disabled`]),(0,t.createVNode)(a,{size:`small`,type:`primary`,plain:``,disabled:!J.value,onClick:n[95]||=e=>Un(`x`)},{default:(0,t.withCtx)(()=>[...n[233]||=[(0,t.createTextVNode)(` 左右镜像到对侧 `,-1)]]),_:1},8,[`disabled`]),(0,t.createVNode)(a,{size:`small`,type:`primary`,plain:``,disabled:!J.value,onClick:n[96]||=e=>Un(`y`)},{default:(0,t.withCtx)(()=>[...n[234]||=[(0,t.createTextVNode)(` 上下镜像到对侧 `,-1)]]),_:1},8,[`disabled`])])])):z.value.length>1?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,dh,[(0,t.createElementVNode)(`p`,fh,` 已选中 `+(0,t.toDisplayString)(z.value.length)+` 个元素:可整体拖拽、方向键微移、Delete 删除;下方可批量改选中文字的字号与颜色。单选一个文字块后可编辑全文与对齐。 `,1),(0,t.createElementVNode)(`div`,ph,[(0,t.createVNode)(a,{size:`small`,disabled:z.value.length<2,onClick:Ti},{default:(0,t.withCtx)(()=>[...n[235]||=[(0,t.createTextVNode)(`组合`,-1)]]),_:1},8,[`disabled`]),(0,t.createVNode)(a,{size:`small`,disabled:!lt.value,onClick:Ei},{default:(0,t.withCtx)(()=>[...n[236]||=[(0,t.createTextVNode)(`打散`,-1)]]),_:1},8,[`disabled`]),(0,t.createVNode)(a,{size:`small`,disabled:z.value.length<2,onClick:n[97]||=e=>Di(`x`)},{default:(0,t.withCtx)(()=>[...n[237]||=[(0,t.createTextVNode)(`左右翻转`,-1)]]),_:1},8,[`disabled`]),(0,t.createVNode)(a,{size:`small`,disabled:z.value.length<2,onClick:n[98]||=e=>Di(`y`)},{default:(0,t.withCtx)(()=>[...n[238]||=[(0,t.createTextVNode)(`上下翻转`,-1)]]),_:1},8,[`disabled`])]),_a.value>0?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:0},[(0,t.createVNode)(v,{"content-position":`left`},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`span`,mh,[n[240]||=(0,t.createElementVNode)(`span`,null,`多选:文字样式`,-1),(0,t.createVNode)(g,{placement:`top`,"show-after":120},{content:(0,t.withCtx)(()=>[...n[239]||=[(0,t.createElementVNode)(`div`,{class:`help-popover`},`仅作用于选中范围内的文字块。颜色不一致时以当前色块为参考,确认后会统一覆盖。`,-1)]]),default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`question-line`,class:`help-icon`})]),_:1})])]),_:1}),(0,t.createVNode)(de,{"label-width":`88px`,size:`small`,class:`multi-text-form`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(K,null,{label:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`span`,hh,[(0,t.createVNode)(i,{icon:`expand-left-right-line`}),n[241]||=(0,t.createTextVNode)(`字号(pt)`,-1)])]),default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,gh,[(0,t.createVNode)(c,{modelValue:xa.value,"onUpdate:modelValue":n[99]||=e=>xa.value=e,min:6,max:72,"controls-position":`right`,style:{width:`100%`},placeholder:`不一致`,onChange:Ta,onKeydown:(0,t.withKeys)((0,t.withModifiers)(wa,[`prevent`,`stop`]),[`enter`])},null,8,[`modelValue`,`onKeydown`])])]),_:1}),(0,t.createVNode)(K,null,{label:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`span`,_h,[(0,t.createVNode)(i,{icon:`brush-line`}),n[242]||=(0,t.createTextVNode)(`颜色`,-1)])]),default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,vh,[(0,t.createVNode)(C,{"model-value":Sa.value,"show-alpha":``,onChange:Oa},null,8,[`model-value`]),(0,t.createVNode)(s,{modelValue:Sa.value,"onUpdate:modelValue":n[100]||=e=>Sa.value=e,size:`small`,placeholder:`#409EFF / rgba(...)`,onKeydown:(0,t.withKeys)((0,t.withModifiers)(Da,[`prevent`,`stop`]),[`enter`]),onBlur:Da},null,8,[`modelValue`,`onKeydown`])])]),_:1})]),_:1})],64)):(0,t.createCommentVNode)(``,!0),(0,t.createVNode)(v,{"content-position":`left`},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`span`,yh,[n[244]||=(0,t.createElementVNode)(`span`,null,`多选:相对选区对齐`,-1),(0,t.createVNode)(g,{placement:`top`,"show-after":120},{content:(0,t.withCtx)(()=>[...n[243]||=[(0,t.createElementVNode)(`div`,{class:`help-popover`},`以当前选中元素的包围盒为基准对齐彼此。至少选中 2 个元素时生效,单选无变化。`,-1)]]),default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`question-line`,class:`help-icon`})]),_:1})])]),_:1}),(0,t.createElementVNode)(`div`,bh,[(0,t.createVNode)(o,{size:`small`,class:`btn-group-icons`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(a,{title:`左边缘对齐`,onClick:n[101]||=e=>Aa(`sel-left`)},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`arrow-left-line`})]),_:1}),(0,t.createVNode)(a,{title:`右边缘对齐`,onClick:n[102]||=e=>Aa(`sel-right`)},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`arrow-right-line`})]),_:1}),(0,t.createVNode)(a,{title:`顶边对齐`,onClick:n[103]||=e=>Aa(`sel-top`)},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`arrow-up-line`})]),_:1}),(0,t.createVNode)(a,{title:`底边对齐`,onClick:n[104]||=e=>Aa(`sel-bottom`)},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`arrow-down-line`})]),_:1})]),_:1})]),(0,t.createElementVNode)(`div`,xh,[(0,t.createVNode)(o,{size:`small`,class:`btn-group-icons`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(a,{title:`水平居中对齐`,onClick:n[105]||=e=>Aa(`sel-h-center`)},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`expand-left-right-line`})]),_:1}),(0,t.createVNode)(a,{title:`垂直居中对齐`,onClick:n[106]||=e=>Aa(`sel-v-center`)},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`drag-move-line`})]),_:1})]),_:1})]),(0,t.createVNode)(v,{"content-position":`left`},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`span`,Sh,[n[246]||=(0,t.createElementVNode)(`span`,null,`多选:分布`,-1),(0,t.createVNode)(g,{placement:`top`,"show-after":120},{content:(0,t.withCtx)(()=>[...n[245]||=[(0,t.createElementVNode)(`div`,{class:`help-popover`},`在沿轴最前与最后元素之间均分间距,至少选中 2 个元素。`,-1)]]),default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`question-line`,class:`help-icon`})]),_:1})])]),_:1}),(0,t.createElementVNode)(`div`,Ch,[(0,t.createVNode)(o,{size:`small`,class:`btn-group-icons`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(a,{title:`按左右顺序均分水平间距`,disabled:z.value.length<2,onClick:n[107]||=e=>ja(`h`)},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`settings-3-line`})]),_:1},8,[`disabled`]),(0,t.createVNode)(a,{title:`按上下顺序均分垂直间距`,disabled:z.value.length<2,onClick:n[108]||=e=>ja(`v`)},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`sort-desc`})]),_:1},8,[`disabled`])]),_:1})])])):((0,t.openBlock)(),(0,t.createBlock)(ge,{key:5,description:`点击画布中的元素以编辑;空白处拖拽框选;Shift+点击多选`}))]),(0,t.createElementVNode)(`div`,wh,[(0,t.createVNode)(v),n[247]||=(0,t.createElementVNode)(`div`,{class:`subhead`},`保存后预览`,-1),(0,t.createElementVNode)(`div`,Th,[I.value?((0,t.openBlock)(),(0,t.createBlock)(ii,{key:0,doc:I.value,"merge-data":Ct.value,"screen-scale":Qt.value},null,8,[`doc`,`merge-data`,`screen-scale`])):(0,t.createCommentVNode)(``,!0)])])])]),_:1})],6)),[[ve,N.value]]),(0,t.createVNode)(_e,{modelValue:Te.value,"onUpdate:modelValue":n[109]||=e=>Te.value=e,title:`模板预览`,width:`640px`,draggable:``,"align-center":``,"destroy-on-close":``,class:`badge-preview-dialog`},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,Eh,[I.value?((0,t.openBlock)(),(0,t.createBlock)(ii,{key:0,doc:I.value,"merge-data":Ct.value,"screen-scale":$t.value},null,8,[`doc`,`merge-data`,`screen-scale`])):(0,t.createCommentVNode)(``,!0)])]),_:1},8,[`modelValue`]),(0,t.createVNode)(Kn,{modelValue:ye.value,"onUpdate:modelValue":n[110]||=e=>ye.value=e,onPick:mi},null,8,[`modelValue`]),(0,t.createVNode)(Kn,{modelValue:be.value,"onUpdate:modelValue":n[111]||=e=>be.value=e,"default-tab":xe.value,onPick:on},null,8,[`modelValue`,`default-tab`]),(0,t.createVNode)(Kn,{modelValue:Se.value,"onUpdate:modelValue":n[112]||=e=>Se.value=e,"default-tab":Ce.value,onPick:ln},null,8,[`modelValue`,`default-tab`]),(0,t.createVNode)(Dr,{modelValue:we.value,"onUpdate:modelValue":n[113]||=e=>we.value=e},null,8,[`modelValue`]),(0,t.createVNode)(_e,{modelValue:p.value,"onUpdate:modelValue":n[117]||=e=>p.value=e,title:`设置链接`,width:`440px`},{footer:(0,t.withCtx)(()=>[(0,t.createVNode)(a,{onClick:n[116]||=e=>p.value=!1},{default:(0,t.withCtx)(()=>[...n[250]||=[(0,t.createTextVNode)(`取消`,-1)]]),_:1}),(0,t.createVNode)(a,{type:`primary`,onClick:Jr},{default:(0,t.withCtx)(()=>[...n[251]||=[(0,t.createTextVNode)(`确定`,-1)]]),_:1})]),default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,Dh,[(0,t.createVNode)(s,{modelValue:m.value,"onUpdate:modelValue":n[114]||=e=>m.value=e,placeholder:`URL,可含 {{module.key}} 或旧 {{student_name}}`},null,8,[`modelValue`]),(0,t.createVNode)(ee,{modelValue:h.value,"onUpdate:modelValue":n[115]||=e=>h.value=e,size:`small`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(O,{label:`_blank`},{default:(0,t.withCtx)(()=>[...n[248]||=[(0,t.createTextVNode)(`新窗口`,-1)]]),_:1}),(0,t.createVNode)(O,{label:`_self`},{default:(0,t.withCtx)(()=>[...n[249]||=[(0,t.createTextVNode)(`当前页`,-1)]]),_:1})]),_:1},8,[`modelValue`])])]),_:1},8,[`modelValue`]),(0,t.createVNode)(_e,{modelValue:f.value,"onUpdate:modelValue":n[120]||=e=>f.value=e,title:`删除粘贴图片`,width:`440px`},{footer:(0,t.withCtx)(()=>[(0,t.createVNode)(a,{onClick:n[118]||=e=>y(!1)},{default:(0,t.withCtx)(()=>[...n[252]||=[(0,t.createTextVNode)(`只删画布元素`,-1)]]),_:1}),(0,t.createVNode)(a,{type:`danger`,onClick:n[119]||=e=>y(!0)},{default:(0,t.withCtx)(()=>[...n[253]||=[(0,t.createTextVNode)(`同时删除服务器图片`,-1)]]),_:1})]),default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`p`,null,`当前删除中包含 `+(0,t.toDisplayString)(_.value)+` 张已上传的粘贴图片,是否同时删除服务器图片?`,1)]),_:1},8,[`modelValue`])],2)}}}),Vh=v({default:()=>Hh}),Hh=S(Bh,[[`__scopeId`,`data-v-7d06f17b`]]),Uh=Hh,Wh=v({default:()=>Gh}),Gh=Uh,Kh={class:`page-container badge-tpl-list`},qh={class:`badge-tpl-header page-header`},Jh={class:`card-hdr`},Yh={key:0,class:`card-sub`},Xh={key:1,class:`muted`},Zh=(0,t.defineComponent)({__name:`BadgeTemplateListView`,setup(e){let{hostRef:n,tableHeight:r,recalcTableHeight:i}=hd(200),a=(0,o.useRoute)(),s=(0,o.useRouter)(),c=Number(a.params.id),l=(0,t.ref)(!1),u=(0,t.ref)(!1),d=(0,t.ref)([]),f=(0,t.ref)(``),p=(0,t.ref)(!1),m=(0,t.ref)(``),h=(0,t.ref)(!1),g=(0,t.ref)(null);async function _(){try{let e=await hn(c);f.value=e.data?.name||e.data?.title||``}catch{f.value=``}}async function v(){l.value=!0;try{let e=await gn(c);d.value=e.data?.list||[]}catch{d.value=[],Q.error(`加载模板列表失败`)}finally{l.value=!1,(0,t.nextTick)(()=>i())}}function y(){m.value=``,p.value=!0}async function b(){let e=m.value.trim();if(!e){Q.warning(`请填写模板名称`);return}u.value=!0;try{let t=(await _n(c,{name:e})).data?.id;p.value=!1,Q.success(`已创建`),t?s.push(`/fouui/badge/competition/${c}/badge-template/${t}`):await v()}catch(e){Q.error(e?.response?.data?.message||`创建失败`)}finally{u.value=!1}}function x(e){s.push(`/fouui/badge/competition/${c}/badge-template/${e}`)}async function S(e){try{await Sn(c,e),Q.success(`已设为默认套打模板`),await v()}catch(e){Q.error(e?.response?.data?.message||`操作失败`)}}function C(e){g.value=e,h.value=!0}async function w(){let e=g.value;if(e){h.value=!1;try{await xn(c,e.id),Q.success(`已删除`),await v()}catch(e){Q.error(e?.response?.data?.message||`删除失败`)}}}return(0,t.onMounted)(async()=>{if(!Number.isFinite(c)||c<=0){Q.error(`无效的比赛 ID`);return}await _(),await v(),(0,t.nextTick)(()=>i())}),(0,t.onActivated)(()=>(0,t.nextTick)(()=>i())),(e,i)=>{let a=k,o=Vt,s=cl,c=fl,_=al,v=mr,T=va,E=la,D=Si,O=pt,A=(0,t.resolveDirective)(`fou-loading`);return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,Kh,[(0,t.createElementVNode)(`div`,qh,[(0,t.createVNode)(o,{link:``,onClick:i[0]||=t=>e.$router.back()},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(a,{icon:`arrow-left-line`}),i[7]||=(0,t.createTextVNode)(` 证件模板 `,-1)]),_:1})]),(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createBlock)(v,{class:`main-card table-card table-fill-card`,shadow:`never`},{header:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,Jh,[(0,t.createElementVNode)(`div`,null,[i[8]||=(0,t.createElementVNode)(`div`,{class:`card-title`},`模板列表`,-1),f.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Yh,(0,t.toDisplayString)(f.value),1)):(0,t.createCommentVNode)(``,!0)]),(0,t.createVNode)(o,{type:`primary`,onClick:y},{default:(0,t.withCtx)(()=>[...i[9]||=[(0,t.createTextVNode)(`新建模板`,-1)]]),_:1})])]),default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,{ref_key:`hostRef`,ref:n,class:`table-host`},[(0,t.createVNode)(_,{data:d.value,border:``,stripe:``,height:(0,t.unref)(r)},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(s,{prop:`name`,label:`名称`,"min-width":`160`,"show-overflow-tooltip":``}),(0,t.createVNode)(s,{label:`默认套打`,width:`100`,align:`center`},{default:(0,t.withCtx)(({row:e})=>[e.is_default?((0,t.openBlock)(),(0,t.createBlock)(c,{key:0,type:`success`,size:`small`},{default:(0,t.withCtx)(()=>[...i[10]||=[(0,t.createTextVNode)(`默认`,-1)]]),_:1})):((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Xh,`—`))]),_:1}),(0,t.createVNode)(s,{prop:`width_mm`,label:`宽 mm`,width:`90`}),(0,t.createVNode)(s,{prop:`height_mm`,label:`高 mm`,width:`90`}),(0,t.createVNode)(s,{prop:`update_time`,label:`更新时间`,width:`180`}),(0,t.createVNode)(s,{label:`操作`,width:`280`,fixed:`right`},{default:(0,t.withCtx)(({row:e})=>[(0,t.createVNode)(o,{link:``,type:`primary`,onClick:t=>x(e.id)},{default:(0,t.withCtx)(()=>[...i[11]||=[(0,t.createTextVNode)(`编辑`,-1)]]),_:1},8,[`onClick`]),e.is_default?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createBlock)(o,{key:0,link:``,type:`primary`,onClick:t=>S(e.id)},{default:(0,t.withCtx)(()=>[...i[12]||=[(0,t.createTextVNode)(`设为默认`,-1)]]),_:1},8,[`onClick`])),(0,t.createVNode)(o,{link:``,type:`danger`,onClick:t=>C(e)},{default:(0,t.withCtx)(()=>[...i[13]||=[(0,t.createTextVNode)(`删除`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1},8,[`data`,`height`])],512)]),_:1})),[[A,l.value]]),(0,t.createVNode)(O,{modelValue:p.value,"onUpdate:modelValue":i[3]||=e=>p.value=e,title:`新建证件模板`,width:`440px`,"destroy-on-close":``,onClosed:i[4]||=e=>m.value=``},{footer:(0,t.withCtx)(()=>[(0,t.createVNode)(o,{onClick:i[2]||=e=>p.value=!1},{default:(0,t.withCtx)(()=>[...i[14]||=[(0,t.createTextVNode)(`取消`,-1)]]),_:1}),(0,t.createVNode)(o,{type:`primary`,loading:u.value,onClick:b},{default:(0,t.withCtx)(()=>[...i[15]||=[(0,t.createTextVNode)(`保存并制作`,-1)]]),_:1},8,[`loading`])]),default:(0,t.withCtx)(()=>[(0,t.createVNode)(D,{"label-width":`88px`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(E,{label:`模板名称`,required:``},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(T,{modelValue:m.value,"onUpdate:modelValue":i[1]||=e=>m.value=e,placeholder:`保存后将进入空白画布开始编排`,maxlength:`120`,"show-word-limit":``,onKeyup:(0,t.withKeys)(b,[`enter`])},null,8,[`modelValue`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),(0,t.createVNode)(O,{modelValue:h.value,"onUpdate:modelValue":i[6]||=e=>h.value=e,title:`删除确认`,width:`400px`},{footer:(0,t.withCtx)(()=>[(0,t.createVNode)(o,{onClick:i[5]||=e=>h.value=!1},{default:(0,t.withCtx)(()=>[...i[16]||=[(0,t.createTextVNode)(`取消`,-1)]]),_:1}),(0,t.createVNode)(o,{type:`danger`,onClick:w},{default:(0,t.withCtx)(()=>[...i[17]||=[(0,t.createTextVNode)(`删除`,-1)]]),_:1})]),default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`p`,null,`确定删除模板「`+(0,t.toDisplayString)(g.value?.name||`未命名`)+`」吗?`,1)]),_:1},8,[`modelValue`])])}}}),Qh=v({default:()=>$h}),$h=S(Zh,[[`__scopeId`,`data-v-2c5490c9`]]),eg={class:`page-container desk-tpl-list`},tg={class:`desk-tpl-header page-header`},ng={class:`card-hdr`},rg={key:0,class:`card-sub`},ig={key:1,class:`muted`},ag=(0,t.defineComponent)({__name:`DeskLabelTemplateListView`,setup(e){let{hostRef:n,tableHeight:r,recalcTableHeight:i}=hd(200),a=(0,o.useRoute)(),s=(0,o.useRouter)(),c=Number(a.params.id),l=(0,t.ref)(!1),u=(0,t.ref)(!1),d=(0,t.ref)([]),f=(0,t.ref)(``),p=(0,t.ref)(!1),m=(0,t.ref)(``),h=(0,t.ref)(!1),g=(0,t.ref)(null);async function _(){try{let e=await hn(c);f.value=e.data?.name||e.data?.title||``}catch{f.value=``}}async function v(){l.value=!0;try{let e=await Cn(c);d.value=e.data?.list||[]}catch{d.value=[],Q.error(`加载模板列表失败`)}finally{l.value=!1,(0,t.nextTick)(()=>i())}}function y(){m.value=``,p.value=!0}async function b(){let e=m.value.trim();if(!e){Q.warning(`请填写模板名称`);return}u.value=!0;try{let t=(await wn(c,{name:e})).data?.id;p.value=!1,Q.success(`已创建`),t?s.push(`/fouui/badge/competition/${c}/desk-label-template/${t}`):await v()}catch(e){Q.error(e?.response?.data?.msg||e?.response?.data?.message||`创建失败`)}finally{u.value=!1}}function x(e){s.push(`/fouui/badge/competition/${c}/desk-label-template/${e}`)}async function S(e){try{await kn(c,e),Q.success(`已设为默认模板`),await v()}catch(e){Q.error(e?.response?.data?.msg||e?.response?.data?.message||`操作失败`)}}function C(e){g.value=e,h.value=!0}async function w(){let e=g.value;if(e){h.value=!1;try{await On(c,e.id),Q.success(`已删除`),await v()}catch(e){Q.error(e?.response?.data?.msg||e?.response?.data?.message||`删除失败`)}}}return(0,t.onMounted)(async()=>{if(!Number.isFinite(c)||c<=0){Q.error(`无效的比赛 ID`);return}await _(),await v(),(0,t.nextTick)(()=>i())}),(0,t.onActivated)(()=>(0,t.nextTick)(()=>i())),(e,i)=>{let a=k,o=Vt,s=cl,c=fl,_=al,v=mr,T=va,E=la,D=Si,O=pt,A=(0,t.resolveDirective)(`fou-loading`);return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,eg,[(0,t.createElementVNode)(`div`,tg,[(0,t.createVNode)(o,{link:``,onClick:i[0]||=t=>e.$router.back()},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(a,{icon:`arrow-left-line`}),i[7]||=(0,t.createTextVNode)(` 桌面贴模板 `,-1)]),_:1})]),(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createBlock)(v,{class:`main-card table-card table-fill-card`,shadow:`never`},{header:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,ng,[(0,t.createElementVNode)(`div`,null,[i[8]||=(0,t.createElementVNode)(`div`,{class:`card-title`},`模板列表`,-1),f.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,rg,(0,t.toDisplayString)(f.value),1)):(0,t.createCommentVNode)(``,!0)]),(0,t.createVNode)(o,{type:`primary`,onClick:y},{default:(0,t.withCtx)(()=>[...i[9]||=[(0,t.createTextVNode)(`新建模板`,-1)]]),_:1})])]),default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,{ref_key:`hostRef`,ref:n,class:`table-host`},[(0,t.createVNode)(_,{data:d.value,border:``,stripe:``,height:(0,t.unref)(r)},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(s,{prop:`name`,label:`名称`,"min-width":`160`,"show-overflow-tooltip":``}),(0,t.createVNode)(s,{label:`默认`,width:`100`,align:`center`},{default:(0,t.withCtx)(({row:e})=>[e.is_default?((0,t.openBlock)(),(0,t.createBlock)(c,{key:0,type:`success`,size:`small`},{default:(0,t.withCtx)(()=>[...i[10]||=[(0,t.createTextVNode)(`默认`,-1)]]),_:1})):((0,t.openBlock)(),(0,t.createElementBlock)(`span`,ig,`—`))]),_:1}),(0,t.createVNode)(s,{prop:`width_mm`,label:`宽 mm`,width:`90`}),(0,t.createVNode)(s,{prop:`height_mm`,label:`高 mm`,width:`90`}),(0,t.createVNode)(s,{prop:`update_time`,label:`更新时间`,width:`180`}),(0,t.createVNode)(s,{label:`操作`,width:`280`,fixed:`right`},{default:(0,t.withCtx)(({row:e})=>[(0,t.createVNode)(o,{link:``,type:`primary`,onClick:t=>x(e.id)},{default:(0,t.withCtx)(()=>[...i[11]||=[(0,t.createTextVNode)(`编辑`,-1)]]),_:1},8,[`onClick`]),e.is_default?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createBlock)(o,{key:0,link:``,type:`primary`,onClick:t=>S(e.id)},{default:(0,t.withCtx)(()=>[...i[12]||=[(0,t.createTextVNode)(`设为默认`,-1)]]),_:1},8,[`onClick`])),(0,t.createVNode)(o,{link:``,type:`danger`,onClick:t=>C(e)},{default:(0,t.withCtx)(()=>[...i[13]||=[(0,t.createTextVNode)(`删除`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1},8,[`data`,`height`])],512)]),_:1})),[[A,l.value]]),(0,t.createVNode)(O,{modelValue:p.value,"onUpdate:modelValue":i[3]||=e=>p.value=e,title:`新建桌面贴模板`,width:`440px`,"destroy-on-close":``,onClosed:i[4]||=e=>m.value=``},{footer:(0,t.withCtx)(()=>[(0,t.createVNode)(o,{onClick:i[2]||=e=>p.value=!1},{default:(0,t.withCtx)(()=>[...i[14]||=[(0,t.createTextVNode)(`取消`,-1)]]),_:1}),(0,t.createVNode)(o,{type:`primary`,loading:u.value,onClick:b},{default:(0,t.withCtx)(()=>[...i[15]||=[(0,t.createTextVNode)(`保存并制作`,-1)]]),_:1},8,[`loading`])]),default:(0,t.withCtx)(()=>[(0,t.createVNode)(D,{"label-width":`88px`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(E,{label:`模板名称`,required:``},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(T,{modelValue:m.value,"onUpdate:modelValue":i[1]||=e=>m.value=e,placeholder:`保存后将进入空白画布开始编排`,maxlength:`120`,"show-word-limit":``,onKeyup:(0,t.withKeys)(b,[`enter`])},null,8,[`modelValue`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),(0,t.createVNode)(O,{modelValue:h.value,"onUpdate:modelValue":i[6]||=e=>h.value=e,title:`删除确认`,width:`400px`},{footer:(0,t.withCtx)(()=>[(0,t.createVNode)(o,{onClick:i[5]||=e=>h.value=!1},{default:(0,t.withCtx)(()=>[...i[16]||=[(0,t.createTextVNode)(`取消`,-1)]]),_:1}),(0,t.createVNode)(o,{type:`danger`,onClick:w},{default:(0,t.withCtx)(()=>[...i[17]||=[(0,t.createTextVNode)(`删除`,-1)]]),_:1})]),default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`p`,null,`确定删除模板「`+(0,t.toDisplayString)(g.value?.name||`未命名`)+`」吗?`,1)]),_:1},8,[`modelValue`])])}}}),og=v({default:()=>sg}),sg=S(ag,[[`__scopeId`,`data-v-726e851f`]]),cg={class:`page-container desk-label-page`},lg={class:`label-grid`},ug={class:`label-seat`},dg={class:`label-name`},fg={class:`label-school`},pg={class:`toolbar-pdf`},mg={class:`paper-config`},hg={class:`paper-config-block`},gg={class:`paper-config-block`},_g={key:0,class:`paper-config-desc`},vg={class:`paper-config-block`},yg={class:`paper-inline-row`},bg={class:`paper-config-desc`},xg={class:`pdf-dialog-body`},Sg={class:`simple-seat`},Cg={class:`simple-name`},wg={class:`simple-school`},Tg={class:`simple-no`},Eg=0,Dg=2,Og=(0,t.defineComponent)({__name:`DeskLabelView`,setup(e){let n=(0,o.useRouter)(),r=(0,t.ref)(0),i=(0,t.ref)([]),a=(0,t.ref)({}),s=(0,t.ref)(``),c=(0,t.ref)(!1),l=(0,t.ref)([]),u=(0,t.computed)(()=>i.value.map(e=>({label:e.name,value:e.id}))),d=(0,t.computed)(()=>l.value.map(e=>({label:e.is_default?`${e.name}(默认)`:e.name,value:e.id}))),f=(0,t.ref)(),p=(0,t.ref)(null),m=(0,t.ref)(!1),h=(0,t.ref)(`a4`),g=(0,t.ref)(`portrait`),_=(0,t.ref)(2),v=(0,t.ref)(2),y=(0,t.ref)(!1),b=(0,t.ref)(!1),x=(0,t.ref)(!1),S=(0,t.ref)(null),C=(0,t.ref)(null),w=(0,t.ref)([]),T=(0,t.computed)(()=>{let e=p.value,t=Number(e?.canvas?.widthMm||90),n=Number(e?.canvas?.heightMm||50),r=t*96/25.4,i=n*96/25.4;return Math.min(1,180/r,120/i)});async function E(){if(!r.value){l.value=[],f.value=void 0,p.value=null;return}c.value=!0;try{let e=(await Cn(r.value)).data?.list||[];l.value=e;let t=Number(f.value||0),n=t>0?e.find(e=>Number(e.id)===t):null,i=e.find(e=>!!e.is_default);f.value=n?t:i?.id?Number(i.id):e[0]?.id?Number(e[0].id):void 0,await D()}catch{l.value=[],f.value=void 0,p.value=null,Q.error(`加载桌面贴模板失败`)}finally{c.value=!1}}async function D(){if(!r.value){p.value=null;return}try{let e=(f.value?await Tn(r.value,Number(f.value)):await En(r.value)).data?.template_json;if(e&&typeof e==`object`&&Array.isArray(e.elements)){p.value=e;return}}catch{}p.value=null}let O=async()=>{if(r.value)try{await D();let e=await Ln(r.value);a.value=e.data||{}}catch{a.value={}}},k=async()=>{a.value={},C.value=null,w.value=[];let e=i.value.find(e=>e.id===r.value);s.value=e?.name||``,await E()},A=async()=>{await D()},j=()=>{r.value&&n.push(`/fouui/badge/competition/${r.value}/desk-label-templates`)};function M(){let e=[],t=Object.keys(a.value).sort((e,t)=>String(e).localeCompare(String(t),`zh-CN`));for(let n of t){let t=[...a.value[n]||[]].sort((e,t)=>{let n=Number(String(e?.seat_no??``).replace(/\D/g,``))||0,r=Number(String(t?.seat_no??``).replace(/\D/g,``))||0;return n===r?String(e?.student_name??``).localeCompare(String(t?.student_name??``),`zh-CN`):n-r});for(let n of t)e.push({...n})}return e}let N={a4:{w:210,h:297},a3:{w:297,h:420}},P=(0,t.computed)(()=>h.value===`custom`),F=(0,t.computed)(()=>{if(P.value)return{w:Number(C.value?.canvas?.widthMm??p.value?.canvas?.widthMm??90),h:Number(C.value?.canvas?.heightMm??p.value?.canvas?.heightMm??50)};let e=N[h.value===`a3`?`a3`:`a4`];return g.value===`landscape`?{w:e.h,h:e.w}:e}),I=(0,t.computed)(()=>({w:Number(C.value?.canvas?.widthMm??p.value?.canvas?.widthMm??90),h:Number(C.value?.canvas?.heightMm??p.value?.canvas?.heightMm??50)})),L=(0,t.computed)(()=>{let e=F.value,t=I.value;if(P.value)return{page:e,requestedCols:1,maxCols:1,cols:1,rowsPerPage:1,perPage:1,usableW:e.w,usableH:e.h,fitsWidth:!0,fitsHeight:!0,labelW:t.w,labelH:t.h,blockW:t.w};let n=Math.max(1,Number(v.value||1)),r=Math.max(1,e.w-0),i=Math.max(1,e.h-0),a=t.w<=r,o=t.h<=i,s=Math.max(1,Math.floor((r+Dg)/(t.w+Dg))),c=Math.min(n,s),l=Math.max(1,Math.floor((i+Dg)/(t.h+Dg)));return{page:e,requestedCols:n,maxCols:s,cols:c,rowsPerPage:l,perPage:c*l,usableW:r,usableH:i,fitsWidth:a,fitsHeight:o,labelW:t.w,labelH:t.h,blockW:c*t.w+Math.max(0,c-1)*Dg}}),R=(0,t.computed)(()=>1),ee=(0,t.computed)(()=>{let e=L.value.perPage,t=w.value,n=[];for(let r=0;r<t.length;r+=e)n.push(t.slice(r,r+e));return n}),z=(0,t.computed)(()=>({width:`${L.value.page.w}mm`})),B=(0,t.computed)(()=>({width:`${L.value.page.w}mm`,height:`${L.value.page.h}mm`,padding:`${Eg}mm`,boxSizing:`border-box`}));function V(e){let{cols:t,labelW:n,labelH:r}=L.value,i=Math.max(1,Math.ceil(Math.max(1,e||1)/t)),a=t*n+(t-1)*Dg,o=i*r+(i-1)*Dg;return{display:`grid`,gridTemplateColumns:`repeat(${t}, ${n}mm)`,gridAutoRows:`${r}mm`,gap:`${Dg}mm`,width:`${a}mm`,height:`${o}mm`,boxSizing:`border-box`}}let H=(0,t.computed)(()=>{let{labelW:e,labelH:t}=L.value;return{width:`${e}mm`,height:`${t}mm`,boxSizing:`border-box`,overflow:`hidden`}}),te=()=>{if(!r.value||!Object.keys(a.value).length){Q.warning(`请先加载桌面贴数据`);return}h.value=`a4`,g.value=`portrait`,_.value=2,v.value=2,m.value=!0},ne=async()=>{if(r.value){m.value=!1,b.value=!0,y.value=!0,C.value=null,w.value=[];try{let e=M(),n=(f.value?await Tn(r.value,Number(f.value)):await En(r.value)).data?.template_json;if(n&&typeof n==`object`&&Array.isArray(n.elements)&&n.elements.length&&(C.value=n),w.value=e.map(e=>Ku(e,s.value)),await(0,t.nextTick)(),!L.value.fitsWidth||!L.value.fitsHeight){y.value=!1,Q.warning(`当前桌面贴尺寸 ${I.value.w} x ${I.value.h} mm 已超出 ${h.value.toUpperCase()}${g.value===`landscape`?`横向`:`纵向`} 纸张尺寸,请调整模板尺寸或改用更大纸张`);return}if(L.value.requestedCols>L.value.maxCols){y.value=!1,Q.warning(`${h.value.toUpperCase()}${g.value===`landscape`?`横向`:`纵向`} 最多每行显示 ${L.value.maxCols} 个桌面贴,请调整后重试`);return}}catch{w.value=M().map(e=>Ku(e,s.value))}finally{b.value=!1}}},re=async()=>{await(0,t.nextTick)()},U=async()=>{let e=S.value;if(!(!e||!w.value.length)){x.value=!0;try{await(0,t.nextTick)(),await new Promise(e=>setTimeout(e,200));let n=`桌面贴_${s.value||r.value}.pdf`;await cd(Array.from(e.querySelectorAll(`.pdf-page`)),n,{size:h.value,orientation:g.value,widthMm:F.value.w,heightMm:F.value.h})}finally{x.value=!1}}},ie=async()=>{let e=S.value;if(!(!e||!w.value.length))try{await(0,t.nextTick)(),await new Promise(e=>setTimeout(e,200)),await ld(Array.from(e.querySelectorAll(`.pdf-page`)),`桌面贴_${s.value||r.value}`,{size:h.value,orientation:g.value,widthMm:F.value.w,heightMm:F.value.h})}catch(e){Q.error(e instanceof Error?e.message:`打印失败`)}};return(0,t.onMounted)(async()=>{try{let e=await mn({page_size:200});i.value=e.data?.data||[]}catch{i.value=[]}}),(0,t.watch)(_,e=>{P.value||e>0&&(v.value=e)}),(0,t.watch)(v,e=>{if(P.value){v.value!==1&&(v.value=1),_.value!==1&&(_.value=1);return}let t=Math.max(1,Number(e||1));if(t!==e){v.value=t;return}_.value=[1,2,3].includes(t)?t:0}),(0,t.watch)(h,e=>{e===`custom`&&(g.value=`portrait`,_.value=1,v.value=1)}),(e,n)=>{let i=ia,o=la,l=Vt,E=Si,D=mr,M=Pt,N=qi,F=Vi,I=yi,L=pt,ae=(0,t.resolveDirective)(`fou-loading`);return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,cg,[(0,t.createVNode)(D,{class:`filter-card`,shadow:`never`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(E,{inline:!0},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(o,{label:`选择比赛`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{modelValue:r.value,"onUpdate:modelValue":n[0]||=e=>r.value=e,placeholder:`选择比赛`,style:{width:`320px`},options:u.value,onChange:k},null,8,[`modelValue`,`options`])]),_:1}),(0,t.createVNode)(o,{label:`桌面贴模板`},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{modelValue:f.value,"onUpdate:modelValue":n[1]||=e=>f.value=e,clearable:``,placeholder:`默认模板`,style:{width:`260px`},disabled:!r.value||c.value,options:d.value,onChange:A},null,8,[`modelValue`,`disabled`,`options`])]),_:1}),(0,t.createVNode)(o,null,{default:(0,t.withCtx)(()=>[(0,t.createVNode)(l,{type:`primary`,disabled:!r.value,onClick:O},{default:(0,t.withCtx)(()=>[...n[10]||=[(0,t.createTextVNode)(`加载桌面贴数据`,-1)]]),_:1},8,[`disabled`])]),_:1}),r.value?((0,t.openBlock)(),(0,t.createBlock)(o,{key:0},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(l,{onClick:j},{default:(0,t.withCtx)(()=>[...n[11]||=[(0,t.createTextVNode)(`桌面贴模板`,-1)]]),_:1})]),_:1})):(0,t.createCommentVNode)(``,!0)]),_:1})]),_:1}),Object.keys(a.value).length?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:0},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(a.value,(e,n)=>((0,t.openBlock)(),(0,t.createBlock)(D,{key:String(n),style:{"margin-bottom":`16px`}},{header:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(n),1)]),default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,lg,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e,e=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:`label-card`,key:`${n}-${e.seat_no}`},[p.value?.elements?.length?((0,t.openBlock)(),(0,t.createBlock)(ii,{key:0,doc:p.value,"merge-data":(0,t.unref)(Ku)(e,s.value),"screen-scale":T.value},null,8,[`doc`,`merge-data`,`screen-scale`])):((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:1},[(0,t.createElementVNode)(`div`,ug,(0,t.toDisplayString)(e.seat_no)+`号`,1),(0,t.createElementVNode)(`div`,dg,(0,t.toDisplayString)(e.student_name),1),(0,t.createElementVNode)(`div`,fg,(0,t.toDisplayString)(e.school_name),1)],64))]))),128))])]),_:2},1024))),128)),(0,t.createElementVNode)(`div`,pg,[(0,t.createVNode)(l,{type:`primary`,disabled:!r.value,onClick:te},{default:(0,t.withCtx)(()=>[...n[12]||=[(0,t.createTextVNode)(`生成预览与 PDF`,-1)]]),_:1},8,[`disabled`])])],64)):((0,t.openBlock)(),(0,t.createBlock)(M,{key:1,description:`请选择比赛并加载桌面贴`})),(0,t.createVNode)(L,{modelValue:m.value,"onUpdate:modelValue":n[7]||=e=>m.value=e,title:`预览排版设置`,width:`520px`,"destroy-on-close":``,"align-center":``},{footer:(0,t.withCtx)(()=>[(0,t.createVNode)(l,{onClick:n[6]||=e=>m.value=!1},{default:(0,t.withCtx)(()=>[...n[25]||=[(0,t.createTextVNode)(`取消`,-1)]]),_:1}),(0,t.createVNode)(l,{type:`primary`,onClick:ne},{default:(0,t.withCtx)(()=>[...n[26]||=[(0,t.createTextVNode)(`下一步:整版预览`,-1)]]),_:1})]),default:(0,t.withCtx)(()=>[n[27]||=(0,t.createElementVNode)(`p`,{class:`paper-tip`},`导出整版 PDF 前请选择纸张模式。可按 A4/A3 排版,也可直接按模板实际尺寸生成。预览、下载 PDF、打印都会使用这套排版设置。`,-1),(0,t.createElementVNode)(`div`,mg,[(0,t.createElementVNode)(`div`,hg,[n[16]||=(0,t.createElementVNode)(`div`,{class:`paper-config-title`},`纸张尺寸`,-1),(0,t.createVNode)(F,{modelValue:h.value,"onUpdate:modelValue":n[2]||=e=>h.value=e},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(N,{label:`a4`},{default:(0,t.withCtx)(()=>[...n[13]||=[(0,t.createTextVNode)(`A4`,-1)]]),_:1}),(0,t.createVNode)(N,{label:`a3`},{default:(0,t.withCtx)(()=>[...n[14]||=[(0,t.createTextVNode)(`A3`,-1)]]),_:1}),(0,t.createVNode)(N,{label:`custom`},{default:(0,t.withCtx)(()=>[...n[15]||=[(0,t.createTextVNode)(`按模板尺寸`,-1)]]),_:1})]),_:1},8,[`modelValue`])]),(0,t.createElementVNode)(`div`,gg,[n[19]||=(0,t.createElementVNode)(`div`,{class:`paper-config-title`},`打印方向`,-1),(0,t.createVNode)(F,{modelValue:g.value,"onUpdate:modelValue":n[3]||=e=>g.value=e,disabled:P.value},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(N,{label:`portrait`},{default:(0,t.withCtx)(()=>[...n[17]||=[(0,t.createTextVNode)(`纵向`,-1)]]),_:1}),(0,t.createVNode)(N,{label:`landscape`},{default:(0,t.withCtx)(()=>[...n[18]||=[(0,t.createTextVNode)(`横向`,-1)]]),_:1})]),_:1},8,[`modelValue`,`disabled`]),P.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,_g,`按模板尺寸生成时,页面宽高直接取模板设置,方向无需单独选择。`)):(0,t.createCommentVNode)(``,!0)]),(0,t.createElementVNode)(`div`,vg,[n[24]||=(0,t.createElementVNode)(`div`,{class:`paper-config-title`},`每行显示`,-1),(0,t.createElementVNode)(`div`,yg,[(0,t.createVNode)(F,{modelValue:_.value,"onUpdate:modelValue":n[4]||=e=>_.value=e,disabled:P.value},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(N,{label:1},{default:(0,t.withCtx)(()=>[...n[20]||=[(0,t.createTextVNode)(`1个`,-1)]]),_:1}),(0,t.createVNode)(N,{label:2},{default:(0,t.withCtx)(()=>[...n[21]||=[(0,t.createTextVNode)(`2个`,-1)]]),_:1}),(0,t.createVNode)(N,{label:3},{default:(0,t.withCtx)(()=>[...n[22]||=[(0,t.createTextVNode)(`3个`,-1)]]),_:1}),(0,t.createVNode)(N,{label:0},{default:(0,t.withCtx)(()=>[...n[23]||=[(0,t.createTextVNode)(`自定义`,-1)]]),_:1})]),_:1},8,[`modelValue`,`disabled`]),(0,t.createVNode)(I,{modelValue:v.value,"onUpdate:modelValue":n[5]||=e=>v.value=e,min:1,max:12,"controls-position":`right`,style:{width:`120px`},disabled:P.value},null,8,[`modelValue`,`disabled`])]),(0,t.createElementVNode)(`div`,bg,(0,t.toDisplayString)(P.value?`按模板尺寸生成时固定为每页 1 个桌面贴。`:`只控制每行显示几个桌面贴;每页行数会按纸张高度自动计算。`),1)])])]),_:1},8,[`modelValue`]),(0,t.createVNode)(L,{modelValue:y.value,"onUpdate:modelValue":n[9]||=e=>y.value=e,title:`桌面贴整版预览 — ${s.value||``}`,width:`96%`,top:`2vh`,"destroy-on-close":``,class:`pdf-preview-dialog`,onOpened:re},{footer:(0,t.withCtx)(()=>[(0,t.createVNode)(l,{disabled:!w.value.length,onClick:ie},{default:(0,t.withCtx)(()=>[...n[28]||=[(0,t.createTextVNode)(`打印整版`,-1)]]),_:1},8,[`disabled`]),(0,t.createVNode)(l,{onClick:n[8]||=e=>y.value=!1},{default:(0,t.withCtx)(()=>[...n[29]||=[(0,t.createTextVNode)(`关闭`,-1)]]),_:1}),(0,t.createVNode)(l,{type:`primary`,loading:x.value,disabled:!w.value.length,onClick:U},{default:(0,t.withCtx)(()=>[...n[30]||=[(0,t.createTextVNode)(` 下载 PDF `,-1)]]),_:1},8,[`loading`,`disabled`])]),default:(0,t.withCtx)(()=>[(0,t.withDirectives)(((0,t.openBlock)(),(0,t.createElementBlock)(`div`,xg,[(0,t.createElementVNode)(`div`,{ref_key:`pdfExportRoot`,ref:S,class:`pdf-export-root`,style:(0,t.normalizeStyle)(z.value)},[C.value?.elements?.length&&w.value.length?((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,{key:0},(0,t.renderList)(ee.value,(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:n,class:`pdf-page`,style:(0,t.normalizeStyle)(B.value)},[(0,t.createElementVNode)(`div`,{class:`pdf-page-grid`,style:(0,t.normalizeStyle)(V(e.length))},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e,(e,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:`${n}-${r}`,class:`pdf-cell`,style:(0,t.normalizeStyle)(H.value)},[(0,t.createVNode)(ii,{doc:C.value,"merge-data":e,"screen-scale":R.value},null,8,[`doc`,`merge-data`,`screen-scale`])],4))),128))],4)],4))),128)):w.value.length?((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,{key:1},(0,t.renderList)(ee.value,(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:n,class:`pdf-page`,style:(0,t.normalizeStyle)(B.value)},[(0,t.createElementVNode)(`div`,{class:`pdf-page-grid`,style:(0,t.normalizeStyle)(V(e.length))},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e,(e,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:`${n}-${r}`,class:`pdf-cell simple`,style:(0,t.normalizeStyle)(H.value)},[(0,t.createElementVNode)(`div`,Sg,(0,t.toDisplayString)(e.seat_no)+`号`,1),(0,t.createElementVNode)(`div`,Cg,(0,t.toDisplayString)(e.student_name),1),(0,t.createElementVNode)(`div`,wg,(0,t.toDisplayString)(e.school_name),1),(0,t.createElementVNode)(`div`,Tg,(0,t.toDisplayString)(e.competition_no),1)],4))),128))],4)],4))),128)):(0,t.createCommentVNode)(``,!0)],4)])),[[ae,b.value]])]),_:1},8,[`modelValue`,`title`])])}}}),kg=v({default:()=>Ag}),Ag=S(Og,[[`__scopeId`,`data-v-6ad7759b`]]),jg=(0,t.defineComponent)({name:`FouBadgeDot`,__name:`index`,props:{value:{default:``},max:{default:99},isDot:{type:Boolean,default:!1},hidden:{type:Boolean,default:!1}},setup(e){let n=e,r=(0,t.computed)(()=>{if(n.isDot)return null;let e=n.value;if(e===``||e==null)return null;let t=Number(e);return!Number.isNaN(t)&&t>n.max?`${n.max}+`:String(e)});return(n,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{class:(0,t.normalizeClass)([`fou-badge-dot`,{"is-dot":e.isDot}])},[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0),!e.hidden&&(e.isDot||(0,t.unref)(r)!==null)?((0,t.openBlock)(),(0,t.createElementBlock)(`sup`,{key:0,class:(0,t.normalizeClass)([`fou-badge-dot__content`,{"is-dot":e.isDot,"is-fixed":!!n.$slots.default}])},[e.isDot?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:0},[(0,t.createTextVNode)((0,t.toDisplayString)((0,t.unref)(r)),1)],64))],2)):(0,t.createCommentVNode)(``,!0)],2))}}),Mg=v({default:()=>Ng}),Ng=S(jg,[[`__scopeId`,`data-v-e4bd07d4`]]),Pg={class:`fou-banner__track`},Fg=[`onClick`],Ig=[`src`,`title`],Lg=[`innerHTML`],Rg=[`src`,`alt`],zg={key:1,class:`fou-banner__content`},Bg=[`innerHTML`],Vg={key:1,class:`fou-banner__desc`},Hg={key:2,class:`fou-banner__actions`},Ug=[`onClick`],Wg={key:0,class:`fou-banner__indicators`},Gg=[`onClick`],Kg=(0,t.defineComponent)({name:`FouBanner`,__name:`index`,props:{items:{default:()=>[]},modelValue:{default:0},height:{default:`420px`},autoplay:{type:Boolean,default:!0},interval:{default:5e3},arrow:{default:`hover`},loop:{type:Boolean,default:!0}},emits:[`update:modelValue`,`change`,`action`,`click`],setup(e,{expose:n,emit:r}){let i=e,a=r,o=(0,t.computed)(()=>i.items||[]),s=(0,t.computed)({get:()=>{let e=o.value.length;return e?((i.modelValue??0)%e+e)%e:0},set:e=>{a(`update:modelValue`,e),a(`change`,e)}}),c=(0,t.computed)(()=>({height:typeof i.height==`number`?`${i.height}px`:i.height})),l=e=>!!(e.title?.trim()||e.description?.trim()||e.actions?.length),u=null,d=e=>{o.value.length&&(s.value=e,g())},f=()=>{let e=o.value.length;e&&(s.value>=e-1?s.value=i.loop?0:e-1:s.value+=1,g())},p=()=>{let e=o.value.length;e&&(s.value<=0?s.value=i.loop?e-1:0:--s.value,g())},m=()=>{h(),!(!i.autoplay||o.value.length<=1)&&(u=setInterval(()=>f(),i.interval))},h=()=>{u&&=(clearInterval(u),null)},g=()=>{i.autoplay&&m()},_=()=>h(),v=()=>m(),y=(e,t)=>{a(`action`,e,t);let n=e.href||e.url||e.route;n&&typeof window<`u`&&(/^https?:\/\//i.test(n)?window.open(n,`_blank`):window.location.assign(n))},b=(e,t)=>{t.target?.closest(`button,a`)||(a(`click`,e),e.link&&(/^https?:\/\//i.test(e.link)?window.open(e.link,`_blank`):window.location.assign(e.link)))};return(0,t.watch)(()=>[i.autoplay,i.interval,o.value.length],()=>m(),{immediate:!0}),(0,t.onBeforeUnmount)(h),n({next:f,prev:p,go:d}),(n,r)=>{let i=k;return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:`fou-banner`,style:(0,t.normalizeStyle)((0,t.unref)(c)),onMouseenter:_,onMouseleave:v},[(0,t.createElementVNode)(`div`,Pg,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(o),(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:n,class:(0,t.normalizeClass)([`fou-banner__slide`,{"is-active":n===(0,t.unref)(s),"is-linked":!!e.link}]),onClick:t=>b(e,t)},[e.type===`iframe`||e.src?((0,t.openBlock)(),(0,t.createElementBlock)(`iframe`,{key:0,class:`fou-banner__iframe`,src:e.src||e.html,title:e.title||`banner-${n}`,frameborder:`0`,allowfullscreen:``},null,8,Ig)):e.type===`html`||e.html?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:1,class:`fou-banner__html`,innerHTML:e.html},null,8,Lg)):((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:2},[e.image?((0,t.openBlock)(),(0,t.createElementBlock)(`img`,{key:0,class:`fou-banner__image`,src:e.image,alt:e.title||``},null,8,Rg)):(0,t.createCommentVNode)(``,!0),r[0]||=(0,t.createElementVNode)(`div`,{class:`fou-banner__mask`},null,-1),l(e)?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,zg,[e.title?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:`fou-banner__title`,innerHTML:e.title},null,8,Bg)):(0,t.createCommentVNode)(``,!0),e.description?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Vg,(0,t.toDisplayString)(e.description),1)):(0,t.createCommentVNode)(``,!0),e.actions?.length?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Hg,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.actions,(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:r,type:`button`,class:(0,t.normalizeClass)([`fou-banner__btn`,n.type||`primary`]),onClick:(0,t.withModifiers)(t=>y(n,e),[`stop`])},(0,t.toDisplayString)(n.text),11,Ug))),128))])):(0,t.createCommentVNode)(``,!0)])):(0,t.createCommentVNode)(``,!0)],64))],10,Fg))),128))]),(0,t.unref)(o).length>1?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Wg,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(o),(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:n,type:`button`,class:(0,t.normalizeClass)([`fou-banner__dot`,{"is-active":n===(0,t.unref)(s)}]),onClick:(0,t.withModifiers)(e=>d(n),[`stop`])},null,10,Gg))),128))])):(0,t.createCommentVNode)(``,!0),(0,t.unref)(o).length>1&&e.arrow!==`never`?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:1,type:`button`,class:`fou-banner__nav fou-banner__nav--prev`,"aria-label":`prev`,onClick:(0,t.withModifiers)(p,[`stop`])},[(0,t.createVNode)(i,{icon:`arrow-left-s-line`})])):(0,t.createCommentVNode)(``,!0),(0,t.unref)(o).length>1&&e.arrow!==`never`?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:2,type:`button`,class:`fou-banner__nav fou-banner__nav--next`,"aria-label":`next`,onClick:(0,t.withModifiers)(f,[`stop`])},[(0,t.createVNode)(i,{icon:`arrow-right-s-line`})])):(0,t.createCommentVNode)(``,!0)],36)}}}),qg=v({default:()=>Jg}),Jg=S(Kg,[[`__scopeId`,`data-v-d725c76c`]]),Yg=Symbol(`FouBreadcrumb`),Xg=[`href`],Zg=[`aria-current`],Qg={key:2,class:`fou-breadcrumb-item__separator`,"aria-hidden":`true`},$g=(0,t.defineComponent)({name:`FouBreadcrumbItem`,__name:`FouBreadcrumbItem`,props:{to:{},replace:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},setup(e){let n=e,r=(0,t.inject)(Yg,null),i=(0,t.computed)(()=>!!r&&!n.disabled),a=(()=>{try{return(0,o.useRouter)()}catch{return null}})(),s=(0,t.computed)(()=>n.to!==void 0&&n.to!==null&&n.to!==``),c=(0,t.computed)(()=>{if(s.value)try{return a?.resolve(n.to).href}catch{return typeof n.to==`string`?n.to:void 0}}),l=()=>{if(!(n.disabled||!s.value)){if(!a){typeof n.to==`string`&&window.location.assign(n.to);return}(n.replace?a.replace(n.to):a.push(n.to)).catch(()=>{})}};return(n,a)=>{let o=k;return(0,t.openBlock)(),(0,t.createElementBlock)(`span`,{class:(0,t.normalizeClass)([`fou-breadcrumb-item`,{"is-link":(0,t.unref)(s),"is-disabled":e.disabled}])},[(0,t.unref)(s)&&!e.disabled?((0,t.openBlock)(),(0,t.createElementBlock)(`a`,{key:0,class:`fou-breadcrumb-item__inner`,href:(0,t.unref)(c),onClick:(0,t.withModifiers)(l,[`prevent`])},[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)],8,Xg)):((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:1,class:`fou-breadcrumb-item__inner`,"aria-current":e.disabled?`page`:void 0},[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)],8,Zg)),(0,t.unref)(i)?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Qg,[(0,t.unref)(r)?.separatorIcon.value?((0,t.openBlock)(),(0,t.createBlock)(o,{key:0,icon:(0,t.unref)(r).separatorIcon.value},null,8,[`icon`])):((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:1},[(0,t.createTextVNode)((0,t.toDisplayString)((0,t.unref)(r)?.separator.value),1)],64))])):(0,t.createCommentVNode)(``,!0)],2)}}}),e_=v({default:()=>t_}),t_=S($g,[[`__scopeId`,`data-v-2ba3ecee`]]),n_=[`aria-label`],r_={class:`fou-breadcrumb__list`},i_=(0,t.defineComponent)({name:`FouBreadcrumb`,__name:`index`,props:{separator:{default:`/`},separatorIcon:{default:``},items:{default:()=>[]},auto:{type:Boolean,default:!1},ariaLabel:{default:`面包屑`}},setup(e){let n=e;(0,t.provide)(Yg,{separator:(0,t.computed)(()=>n.separator),separatorIcon:(0,t.computed)(()=>n.separatorIcon)});let r=(()=>{try{return(0,o.useRoute)()}catch{return null}})(),i=(0,t.computed)(()=>n.items?.length?n.items:!n.auto||!r?[]:r.matched.filter(e=>e.meta?.title||e.meta?.breadcrumb||e.name).map(e=>({label:String(e.meta?.breadcrumb||e.meta?.title||e.name||``),to:e.name?{name:e.name,params:r.params,query:r.query}:void 0})).filter(e=>e.label));return(n,r)=>{let a=k;return(0,t.openBlock)(),(0,t.createElementBlock)(`nav`,{class:`fou-breadcrumb`,"aria-label":e.ariaLabel},[(0,t.createElementVNode)(`ol`,r_,[(0,t.unref)(i).length?((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,{key:0},(0,t.renderList)((0,t.unref)(i),(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`li`,{key:`${e.label}-${n}`,class:`fou-breadcrumb__item`},[(0,t.createVNode)(t_,{to:e.to,replace:e.replace,disabled:e.disabled||n===(0,t.unref)(i).length-1},{default:(0,t.withCtx)(()=>[e.icon?((0,t.openBlock)(),(0,t.createBlock)(a,{key:0,icon:e.icon,class:`fou-breadcrumb__icon`},null,8,[`icon`])):(0,t.createCommentVNode)(``,!0),(0,t.createTextVNode)(` `+(0,t.toDisplayString)(e.label),1)]),_:2},1032,[`to`,`replace`,`disabled`])]))),128)):(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0,1)])],8,n_)}}}),a_=v({default:()=>o_}),o_=S(i_,[[`__scopeId`,`data-v-bd048de6`]]),s_={class:`fou-calendar__header`},c_={class:`fou-calendar__title`},l_={class:`fou-calendar__actions`},u_={key:0,class:`fou-calendar__week`},d_={key:1,class:`fou-calendar__grid fou-calendar__grid--day`},f_=[`disabled`,`onClick`],p_={class:`fou-calendar__solar`},m_={key:1,class:`fou-calendar__marks`},h_={key:2,class:`fou-calendar__grid fou-calendar__grid--month`},g_=[`onClick`],__=(0,t.defineComponent)({name:`FouCalendar`,__name:`index`,props:{modelValue:{},showLunar:{type:Boolean,default:!0},firstDayOfWeek:{default:0},disabledDate:{},marks:{default:()=>[]},range:{}},emits:[`update:modelValue`,`input`,`change`,`panel-change`],setup(e,{emit:n}){let r=e,i=n,o=[`日`,`一`,`二`,`三`,`四`,`五`,`六`],s=[`一月`,`二月`,`三月`,`四月`,`五月`,`六月`,`七月`,`八月`,`九月`,`十月`,`十一月`,`十二月`],c=new Date,l=(0,t.ref)(`month`),u=(0,t.ref)(c.getFullYear()),d=(0,t.ref)(c.getMonth()),f=e=>{if(e==null||e===``)return null;if(e instanceof Date)return Number.isNaN(e.getTime())?null:e;let t=new Date(e);return Number.isNaN(t.getTime())?null:t},p=(0,t.computed)(()=>f(r.modelValue)||c),m=(0,t.computed)(()=>new Date(u.value,d.value,1)),h=(0,t.computed)(()=>{let e=(r.firstDayOfWeek%7+7)%7;return[...o.slice(e),...o.slice(0,e)]}),g=(0,t.computed)(()=>l.value===`year`?`${u.value} 年`:`${u.value} 年 ${d.value+1} 月`),_=(e,t)=>!e||!t?!1:e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate(),v=(e,t)=>!e||!t?!1:e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth(),y=e=>`${e.getFullYear()}-${e.getMonth()+1}-${e.getDate()}`,b=new Map,x=e=>{try{let t=y(e);if(b.has(t))return b.get(t);let n=a.Solar.fromYmd(e.getFullYear(),e.getMonth()+1,e.getDate()),r=n.getLunar(),i=[...r.getFestivals(),...n.getFestivals()],o=r.getJieQi(),s=r.getDayInChinese(),c=``;i.length?(c=i[0],s=c):o?(c=o,s=o):r.getDay()===1&&(s=`${r.getMonthInChinese()}月`);let l={label:s,festival:c||void 0};return b.set(t,l),l}catch{return{label:``}}},S=(0,t.computed)(()=>{if(!r.range?.length)return null;let e=f(r.range[0]),t=f(r.range[1]);return!e||!t?null:e.getTime()<=t.getTime()?[e,t]:[t,e]}),C=(0,t.computed)(()=>{let e=new Map;return r.marks.forEach(t=>{let n=f(t.date);if(!n)return;let r=y(n),i=e.get(r)||[];i.push(t),e.set(r,i)}),e}),w=(0,t.computed)(()=>{let e=u.value,t=d.value,n=(new Date(e,t,1).getDay()-(r.firstDayOfWeek%7+7)%7+7)%7,i=new Date(e,t+1,0).getDate(),a=[],o=S.value,s=o?new Date(o[0].getFullYear(),o[0].getMonth(),o[0].getDate()).getTime():0,l=o?new Date(o[1].getFullYear(),o[1].getMonth(),o[1].getDate(),23,59,59,999).getTime():0,f=(e,t)=>{let n=e.getTime();a.push({key:y(e),date:e,day:e.getDate(),inMonth:t,disabled:r.disabledDate?.(e)??!1,selected:_(e,p.value),isToday:_(e,c),inRange:o?n>=s&&n<=l:!1,lunar:x(e),marks:C.value.get(y(e))||[]})};for(let r=0;r<n;r++)f(new Date(e,t,-n+r+1),!1);for(let n=1;n<=i;n++)f(new Date(e,t,n),!0);for(;a.length%7!=0;){let e=a[a.length-1].date;f(new Date(e.getFullYear(),e.getMonth(),e.getDate()+1),!1)}return a}),T=e=>({"is-other-month":!e.inMonth,"is-disabled":e.disabled,"is-selected":e.selected,"is-today":e.isToday,"is-in-range":e.inRange}),E=e=>{r.disabledDate?.(e)||(u.value=e.getFullYear(),d.value=e.getMonth(),i(`update:modelValue`,e),i(`input`,e),i(`change`,e))},D=e=>{d.value=e,l.value=`month`,i(`panel-change`,m.value,`month`)},O=e=>{if(l.value===`year`)u.value+=e;else{let t=new Date(u.value,d.value+e,1);u.value=t.getFullYear(),d.value=t.getMonth()}i(`panel-change`,m.value,l.value)},k=()=>{u.value=c.getFullYear(),d.value=c.getMonth(),E(new Date(c.getFullYear(),c.getMonth(),c.getDate()))};return(0,t.watch)(()=>r.modelValue,e=>{let t=f(e);t&&(u.value=t.getFullYear(),d.value=t.getMonth())},{immediate:!0}),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-calendar`,{"is-lunar":e.showLunar}])},[(0,t.createElementVNode)(`div`,s_,[(0,t.renderSlot)(n.$slots,`header`,{date:(0,t.unref)(m),view:(0,t.unref)(l)},()=>[(0,t.createElementVNode)(`div`,c_,(0,t.toDisplayString)((0,t.unref)(g)),1),(0,t.createElementVNode)(`div`,l_,[(0,t.createElementVNode)(`button`,{type:`button`,class:`fou-calendar__btn`,onClick:r[0]||=e=>O(-1)},`上一`+(0,t.toDisplayString)((0,t.unref)(l)===`year`?`年`:`月`),1),(0,t.createElementVNode)(`button`,{type:`button`,class:`fou-calendar__btn`,onClick:k},`今天`),(0,t.createElementVNode)(`button`,{type:`button`,class:`fou-calendar__btn`,onClick:r[1]||=e=>O(1)},`下一`+(0,t.toDisplayString)((0,t.unref)(l)===`year`?`年`:`月`),1),(0,t.createElementVNode)(`button`,{type:`button`,class:`fou-calendar__btn fou-calendar__btn--ghost`,onClick:r[2]||=e=>l.value=(0,t.unref)(l)===`month`?`year`:`month`},(0,t.toDisplayString)((0,t.unref)(l)===`month`?`年视图`:`月视图`),1)])],!0)]),(0,t.unref)(l)===`month`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,u_,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(h),e=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:e,class:`fou-calendar__week-cell`},(0,t.toDisplayString)(e),1))),128))])):(0,t.createCommentVNode)(``,!0),(0,t.unref)(l)===`month`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,d_,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(w),r=>((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:r.key,type:`button`,class:(0,t.normalizeClass)([`fou-calendar__cell`,T(r)]),disabled:r.disabled,onClick:e=>E(r.date)},[(0,t.renderSlot)(n.$slots,`date-cell`,{date:r.date,data:r},()=>[(0,t.createElementVNode)(`span`,p_,(0,t.toDisplayString)(r.day),1),e.showLunar?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:0,class:(0,t.normalizeClass)([`fou-calendar__lunar`,{"is-festival":r.lunar.festival}])},(0,t.toDisplayString)(r.lunar.label),3)):(0,t.createCommentVNode)(``,!0),r.marks.length?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,m_,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(r.marks.slice(0,3),(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`i`,{key:n,class:(0,t.normalizeClass)([`fou-calendar__dot`,`is-${e.type||`primary`}`])},null,2))),128))])):(0,t.createCommentVNode)(``,!0)],!0)],10,f_))),128))])):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,h_,[((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(s,(e,n)=>(0,t.createElementVNode)(`button`,{key:e,type:`button`,class:(0,t.normalizeClass)([`fou-calendar__cell fou-calendar__cell--month`,{"is-selected":(0,t.unref)(m).getFullYear()===(0,t.unref)(u)&&(0,t.unref)(m).getMonth()===n&&v((0,t.unref)(p),new Date((0,t.unref)(u),n,1)),"is-today":(0,t.unref)(c).getFullYear()===(0,t.unref)(u)&&(0,t.unref)(c).getMonth()===n}]),onClick:e=>D(n)},(0,t.toDisplayString)(e),11,g_)),64))]))],2))}}),v_=v({default:()=>y_}),y_=S(__,[[`__scopeId`,`data-v-0faedd2d`]]),b_=Symbol(`FouCarousel`),x_={class:`fou-carousel__viewport`},S_=[`aria-hidden`],C_=[`aria-label`,`onClick`],w_={class:`fou-carousel__registry`,"aria-hidden":`true`},T_=(0,t.defineComponent)({name:`FouCarousel`,__name:`index`,props:{modelValue:{default:0},autoplay:{type:Boolean,default:!0},interval:{default:3e3},height:{default:``},indicatorPosition:{default:`inside`},arrow:{default:`hover`},loop:{type:Boolean,default:!0}},emits:[`update:modelValue`,`change`],setup(e,{expose:n,emit:r}){let i=e,a=r,o=(0,t.ref)([]),s=(0,t.ref)(new Map),c=(0,t.ref)(i.modelValue??0),l=null,u=(0,t.computed)(()=>o.value.length),d=e=>u.value?(e%u.value+u.value)%u.value:0,f=(0,t.computed)(()=>d(c.value)),p=e=>{let t=d(e);c.value!==t&&(c.value=t,a(`update:modelValue`,t),a(`change`,t))};(0,t.watch)(()=>i.modelValue,e=>{if(e==null)return;let t=d(e);c.value!==t&&(c.value=t)});let m=(0,t.computed)(()=>{if(i.height!==``&&i.height!=null)return{height:typeof i.height==`number`?`${i.height}px`:i.height}}),h=(0,t.computed)(()=>({transform:`translateX(-${f.value*100}%)`})),g=e=>{let n=s.value.get(e);return n?(0,t.defineComponent)({name:`FouCarouselSlideHost`,setup:()=>()=>{let e=n();return Array.isArray(e)?e:e??null}}):null};(0,t.provide)(b_,{activeIndex:f,itemCount:u,registerItem:e=>{let t=o.value.findIndex(t=>t.uid===e.uid);return t>=0?o.value[t]=e:o.value.push(e),o.value.findIndex(t=>t.uid===e.uid)},unregisterItem:e=>{o.value=o.value.filter(t=>t.uid!==e),s.value.delete(e)},loop:(0,t.toRef)(i,`loop`)}),(0,t.provide)(`fouCarouselRegisterRender`,(e,t)=>{s.value.set(e,t)});let _=e=>{u.value&&p(e)},v=()=>{u.value&&(f.value>=u.value-1?p(i.loop?0:u.value-1):p(f.value+1))},y=()=>{u.value&&(f.value<=0?p(i.loop?u.value-1:0):p(f.value-1))},b=()=>{x(),!(!i.autoplay||u.value<=1)&&(l=setInterval(()=>v(),i.interval))},x=()=>{l&&=(clearInterval(l),null)},S=()=>x(),C=()=>b();return(0,t.watch)(()=>[i.autoplay,i.interval,u.value],()=>b(),{immediate:!0}),(0,t.onBeforeUnmount)(x),n({next:v,prev:y,goTo:_}),(n,r)=>{let i=k;return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-carousel`,[`fou-carousel--arrow-${e.arrow}`]]),style:(0,t.normalizeStyle)((0,t.unref)(m)),onMouseenter:S,onMouseleave:C},[(0,t.createElementVNode)(`div`,x_,[(0,t.createElementVNode)(`div`,{class:`fou-carousel__track`,style:(0,t.normalizeStyle)((0,t.unref)(h))},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(o),(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:e.uid,class:(0,t.normalizeClass)([`fou-carousel__slide`,{"is-active":n===(0,t.unref)(f)}]),"aria-hidden":n!==(0,t.unref)(f)},[g(e.uid)?((0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)(g(e.uid)),{key:0})):(0,t.createCommentVNode)(``,!0)],10,S_))),128))],4),e.arrow!==`never`&&(0,t.unref)(u)>1?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:0,type:`button`,class:`fou-carousel__arrow fou-carousel__arrow--left`,"aria-label":`previous`,onClick:(0,t.withModifiers)(y,[`stop`])},[(0,t.createVNode)(i,{icon:`arrow-left-s-line`})])):(0,t.createCommentVNode)(``,!0),e.arrow!==`never`&&(0,t.unref)(u)>1?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:1,type:`button`,class:`fou-carousel__arrow fou-carousel__arrow--right`,"aria-label":`next`,onClick:(0,t.withModifiers)(v,[`stop`])},[(0,t.createVNode)(i,{icon:`arrow-right-s-line`})])):(0,t.createCommentVNode)(``,!0)]),e.indicatorPosition!==`none`&&(0,t.unref)(u)>1?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:(0,t.normalizeClass)([`fou-carousel__indicators`,`fou-carousel__indicators--${e.indicatorPosition}`])},[((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)(`button`,{key:n,type:`button`,class:(0,t.normalizeClass)([`fou-carousel__indicator`,{"is-active":n===(0,t.unref)(f)}]),"aria-label":`slide ${n+1}`,onClick:(0,t.withModifiers)(e=>_(n),[`stop`])},null,10,C_))),128))],2)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,w_,[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)])],38)}}}),E_=v({default:()=>D_}),D_=S(T_,[[`__scopeId`,`data-v-6d39c1aa`]]),O_=[`data-uid`],k_=(0,t.defineComponent)({name:`FouCarouselItem`,__name:`index`,props:{name:{}},setup(e){let n=e,r=(0,t.useSlots)(),i=(0,t.inject)(b_,null),a=(0,t.inject)(`fouCarouselRegisterRender`,()=>{}),o=(0,t.getCurrentInstance)()?.uid??Math.random();return(0,t.onMounted)(()=>{i?.registerItem({uid:o,name:n.name}),a(o,()=>r.default?.())}),(0,t.onUpdated)(()=>{a(o,()=>r.default?.())}),(0,t.onUnmounted)(()=>{i?.unregisterItem(o)}),(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:`fou-carousel-item`,"data-uid":(0,t.unref)(o)},[(0,t.renderSlot)(e.$slots,`default`,{},void 0,!0)],8,O_))}}),A_=v({default:()=>j_}),j_=S(k_,[[`__scopeId`,`data-v-7b4c1bf2`]]),M_=[`disabled`,`aria-checked`],N_=(0,t.defineComponent)({name:`FouCheckTag`,__name:`index`,props:{modelValue:{type:Boolean,default:!1},type:{default:`primary`},size:{default:`default`},disabled:{type:Boolean,default:!1}},emits:[`update:modelValue`,`change`],setup(e,{emit:n}){let r=e,i=n,a=()=>{if(r.disabled)return;let e=!r.modelValue;i(`update:modelValue`,e),i(`change`,e)};return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{type:`button`,class:(0,t.normalizeClass)([`fou-check-tag`,[`fou-check-tag--${e.type}`,`fou-check-tag--${e.size}`,{"is-checked":e.modelValue,"is-disabled":e.disabled}]]),disabled:e.disabled,role:`checkbox`,"aria-checked":e.modelValue,onClick:a},[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)],10,M_))}}),P_=v({default:()=>F_}),F_=S(N_,[[`__scopeId`,`data-v-09c8f803`]]),I_=(0,t.defineComponent)({name:`FouCode`,__name:`index`,props:{code:{default:``},language:{default:`text`},wrap:{type:Boolean,default:!1},theme:{default:`light`}},setup(e){let n=e,r=(0,t.computed)(()=>String(n.code??``).replace(/\n$/,``));return(n,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`pre`,{class:(0,t.normalizeClass)([`fou-code`,[`fou-code--${e.theme}`,{"is-wrap":e.wrap}]])},[(0,t.createElementVNode)(`code`,null,(0,t.toDisplayString)(r.value),1)],2))}}),L_=v({default:()=>R_}),R_=S(I_,[[`__scopeId`,`data-v-9dfa1c9c`]]),z_=Symbol(`fouRow`),B_=(0,t.defineComponent)({name:`FouCol`,__name:`index`,props:{span:{default:24},offset:{default:0},push:{default:0},pull:{default:0},xs:{},sm:{},md:{},lg:{},xl:{}},setup(e){let n=e,r=(0,t.inject)(z_,null),i=e=>e==null?null:typeof e==`number`?{span:e,offset:0}:{span:e.span??24,offset:e.offset??0},a=(0,t.computed)(()=>{let e=[`fou-col-${n.span}`];return n.offset&&e.push(`fou-col-offset-${n.offset}`),n.push&&e.push(`fou-col-push-${n.push}`),n.pull&&e.push(`fou-col-pull-${n.pull}`),[`xs`,`sm`,`md`,`lg`,`xl`].forEach(t=>{let r=i(n[t]);r&&(e.push(`fou-col-${t}-${r.span}`),r.offset&&e.push(`fou-col-${t}-offset-${r.offset}`))}),e}),o=(0,t.computed)(()=>{let e=r?.gutter.value||0;if(e)return{paddingLeft:`${e/2}px`,paddingRight:`${e/2}px`}});return(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-col`,(0,t.unref)(a)]),style:(0,t.normalizeStyle)((0,t.unref)(o))},[(0,t.renderSlot)(e.$slots,`default`)],6))}}),V_=v({default:()=>H_}),H_=B_,U_=Symbol(`FouCollapse`),W_={class:`fou-collapse`,role:`presentation`},G_=(0,t.defineComponent)({name:`FouCollapse`,__name:`index`,props:{modelValue:{},accordion:{type:Boolean,default:!1}},emits:[`update:modelValue`,`change`],setup(e,{emit:n}){let r=e,i=n,a=e=>e==null?[]:Array.isArray(e)?[...e]:[e],o=(0,t.computed)({get(){return a(r.modelValue)},set(e){let t=r.accordion?e[0]??``:e;i(`update:modelValue`,t),i(`change`,t)}}),s=e=>o.value.includes(e);return(0,t.provide)(U_,{activeNames:o,accordion:(0,t.toRef)(r,`accordion`),toggleItem:e=>{if(r.accordion){o.value=s(e)?[]:[e];return}let t=new Set(o.value);t.has(e)?t.delete(e):t.add(e),o.value=[...t]},isActive:s}),(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,W_,[(0,t.renderSlot)(e.$slots,`default`,{},void 0,!0)]))}}),K_=v({default:()=>q_}),q_=S(G_,[[`__scopeId`,`data-v-7a74db58`]]),J_=[`disabled`,`aria-expanded`],Y_={class:`fou-collapse-item__title`},X_={class:`fou-collapse-item__content-inner`},Z_=(0,t.defineComponent)({name:`FouCollapseItem`,__name:`index`,props:{name:{},title:{default:``},disabled:{type:Boolean,default:!1}},setup(e){let n=e,r=(0,t.inject)(U_,null),i=(0,t.ref)(null),a=(0,t.ref)(0),o=(0,t.computed)(()=>r?.isActive(n.name)??!1),s=()=>{n.disabled||!r||r.toggleItem(n.name)},c=()=>{i.value&&(a.value=i.value.scrollHeight)};(0,t.watch)(o,async e=>{e&&(await(0,t.nextTick)(),c())});let l=null;return(0,t.onMounted)(()=>{c(),typeof ResizeObserver<`u`&&i.value&&(l=new ResizeObserver(c),l.observe(i.value))}),(0,t.onBeforeUnmount)(()=>{l?.disconnect()}),(n,r)=>{let a=k;return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-collapse-item`,{"is-active":(0,t.unref)(o),"is-disabled":e.disabled}])},[(0,t.createElementVNode)(`button`,{type:`button`,class:`fou-collapse-item__header`,disabled:e.disabled,"aria-expanded":(0,t.unref)(o),onClick:s},[(0,t.createElementVNode)(`span`,Y_,[(0,t.renderSlot)(n.$slots,`title`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.title),1)],!0)]),(0,t.createVNode)(a,{class:(0,t.normalizeClass)([`fou-collapse-item__arrow`,{"is-active":(0,t.unref)(o)}]),icon:`arrow-down-s-line`},null,8,[`class`])],8,J_),(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`fou-collapse-item__wrap`,{"is-active":(0,t.unref)(o)}])},[(0,t.createElementVNode)(`div`,{ref_key:`contentRef`,ref:i,class:`fou-collapse-item__content`},[(0,t.createElementVNode)(`div`,X_,[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)])],512)],2)],2)}}}),Q_=v({default:()=>$_}),$_=S(Z_,[[`__scopeId`,`data-v-61260f89`]]),ev=(0,t.defineComponent)({name:`FouColorPicker`,__name:`index`,props:{modelValue:{default:``},presets:{default:()=>[`#1675fe`,`#409eff`,`#67c23a`,`#e6a23c`,`#f56c6c`,`#909399`,`#00bcd4`,`#9c27b0`,`#ff5722`,`#795548`]},placeholder:{default:`#1675fe`},clearable:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},emits:[`update:modelValue`,`change`],setup(e,{emit:n}){let r=n;return(n,i)=>((0,t.openBlock)(),(0,t.createBlock)(_f,(0,t.mergeProps)({class:`fou-color-picker`},n.$attrs,{"model-value":e.modelValue,presets:e.presets,placeholder:e.placeholder,clearable:e.clearable,disabled:e.disabled,"onUpdate:modelValue":i[0]||=e=>r(`update:modelValue`,e),onChange:i[1]||=e=>r(`change`,e)}),null,16,[`model-value`,`presets`,`placeholder`,`clearable`,`disabled`]))}}),tv=v({default:()=>nv}),nv=S(ev,[[`__scopeId`,`data-v-b28d5132`]]),rv={key:0,class:`fou-colorful-card__header`},iv={key:1,class:`fou-colorful-card__title`},av=`#0f766e`,ov=`#2dd4bf`,sv=(0,t.defineComponent)({name:`FouColorfulCard`,__name:`index`,props:{bodyStyle:{type:[Object,String],default:()=>({})},shadow:{type:String,default:`never`},colorFrom:{type:String,default:``},colorTo:{type:String,default:``},title:{type:String,default:``},icon:{type:String,default:``},style:{type:Object,default:()=>({})}},setup(e){let n=e,r=(0,t.computed)(()=>{let e=n.colorFrom||av,t=n.colorTo||ov,r=n.style&&Object.keys(n.style).length>0?n.style:{};return{background:`linear-gradient(120deg, ${e} 10%, ${t})`,...r}});return(n,i)=>{let a=k;return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-colorful-card`,[`fou-colorful-card--shadow-${e.shadow}`]]),style:(0,t.normalizeStyle)((0,t.unref)(r))},[n.$slots.header?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,rv,[(0,t.renderSlot)(n.$slots,`header`,{},void 0,!0)])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,{class:`fou-colorful-card__body`,style:(0,t.normalizeStyle)(e.bodyStyle)},[e.icon?((0,t.openBlock)(),(0,t.createBlock)(a,{key:0,class:`fou-colorful-card__icon`,icon:e.icon},null,8,[`icon`])):(0,t.createCommentVNode)(``,!0),e.title?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,iv,(0,t.toDisplayString)(e.title),1)):(0,t.createCommentVNode)(``,!0),(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)],4)],6)}}}),cv=v({default:()=>lv}),lv=S(sv,[[`__scopeId`,`data-v-23113c4c`]]),uv=[`value`,`placeholder`,`disabled`,`onKeydown`],dv={key:0,class:`fou-combobox__list`},fv=[`onMouseenter`,`onClick`],pv={key:1,class:`fou-combobox__empty`},mv=(0,t.defineComponent)({name:`FouCombobox`,__name:`index`,props:{modelValue:{default:``},options:{default:()=>[]},placeholder:{default:`请选择`},size:{default:`default`},disabled:{type:Boolean,default:!1},allowFree:{type:Boolean,default:!1},filterable:{type:Boolean,default:!0}},emits:[`update:modelValue`,`change`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.ref)(null),o=(0,t.ref)(null),s=(0,t.ref)(!1),c=(0,t.ref)(``),l=(0,t.ref)(0),u=(0,t.ref)({}),d=(0,t.computed)(()=>{let e=r.options.find(e=>e.value===r.modelValue);return e?e.label:``}),f=(0,t.computed)(()=>{if(!r.filterable||!c.value)return r.options;let e=c.value.toLowerCase();return r.options.filter(t=>t.label.toLowerCase().includes(e))});(0,t.watch)(()=>r.modelValue,()=>{c.value=d.value},{immediate:!0});let p=()=>{let e=a.value,t=o.value;if(!e||!t)return;let n=e.getBoundingClientRect(),r=t.getBoundingClientRect(),i=n.bottom+4;i+r.height>window.innerHeight-4&&(i=n.top-r.height-4);let s=Math.min(Math.max(4,n.left),window.innerWidth-r.width-4);u.value={position:`fixed`,top:`${Math.max(4,i)}px`,left:`${s}px`,width:`${n.width}px`,zIndex:`2100`}},m=async()=>{r.disabled||(s.value=!0,l.value=0,await(0,t.nextTick)(),p())},h=()=>{s.value&&(s.value=!1,c.value=d.value)},g=()=>s.value?h():m(),_=e=>{c.value=e.target.value,s.value||m()},v=()=>{if(!s.value)return m();l.value<f.value.length-1&&l.value++},y=()=>{l.value>0&&l.value--},b=()=>{let e=f.value[l.value];e&&x(e)},x=e=>{i(`update:modelValue`,e.value),i(`change`,e),c.value=e.label,s.value=!1},S=e=>{if(!s.value)return;let t=e.target;a.value?.contains(t)||o.value?.contains(t)||h()};return(0,t.watch)(s,e=>{e?document.addEventListener(`mousedown`,S,!0):document.removeEventListener(`mousedown`,S,!0)}),(0,t.onBeforeUnmount)(()=>document.removeEventListener(`mousedown`,S,!0)),(n,r)=>{let i=k;return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,{ref_key:`rootRef`,ref:a,class:(0,t.normalizeClass)([`fou-combobox`,[`fou-combobox--${e.size}`,{"is-open":s.value,"is-disabled":e.disabled}]])},[(0,t.createElementVNode)(`div`,{class:`fou-combobox__control`,onClick:g},[(0,t.createElementVNode)(`input`,{class:`fou-combobox__input`,value:c.value,placeholder:e.placeholder,disabled:e.disabled,onInput:_,onKeydown:[(0,t.withKeys)((0,t.withModifiers)(v,[`prevent`]),[`down`]),(0,t.withKeys)((0,t.withModifiers)(y,[`prevent`]),[`up`]),(0,t.withKeys)((0,t.withModifiers)(b,[`prevent`]),[`enter`]),(0,t.withKeys)(h,[`esc`])]},null,40,uv),(0,t.createVNode)(i,{icon:`arrow-down-s-line`,class:(0,t.normalizeClass)([`fou-combobox__arrow`,{"is-open":s.value}])},null,8,[`class`])]),((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:`body`},[(0,t.withDirectives)((0,t.createElementVNode)(`div`,{ref_key:`panelRef`,ref:o,class:`fou-combobox__panel`,style:(0,t.normalizeStyle)(u.value)},[f.value.length?((0,t.openBlock)(),(0,t.createElementBlock)(`ul`,dv,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(f.value,(r,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`li`,{key:r.value,class:(0,t.normalizeClass)([`fou-combobox__option`,{"is-active":i===l.value,"is-selected":r.value===e.modelValue}]),onMouseenter:e=>l.value=i,onClick:e=>x(r)},[(0,t.renderSlot)(n.$slots,`option`,{option:r},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(r.label),1)],!0)],42,fv))),128))])):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,pv,`无匹配项`))],4),[[t.vShow,s.value]])]))],2)}}}),hv=v({default:()=>gv}),gv=S(mv,[[`__scopeId`,`data-v-092b1fc6`]]),_v=(0,t.defineComponent)({name:`FouConfigProvider`,__name:`index`,props:{size:{default:`default`},locale:{},zIndex:{default:2e3}},setup(e){let n=e;return(0,t.provide)(`fouConfigProvider`,{size:(0,t.toRef)(n,`size`),locale:(0,t.toRef)(n,`locale`),zIndex:(0,t.toRef)(n,`zIndex`)}),(e,n)=>(0,t.renderSlot)(e.$slots,`default`)}}),vv=v({default:()=>yv}),yv=_v,bv={class:`fou-context-menu__list`},xv={key:0,class:`fou-context-menu__divider`,role:`separator`},Sv=[`onClick`],Cv={class:`fou-context-menu__label`},wv={key:1,class:`fou-context-menu__shortcut`},Tv=(0,t.defineComponent)({name:`FouContextMenu`,__name:`index`,props:{items:{default:()=>[]}},emits:[`select`,`command`,`visibleChange`],setup(e,{emit:n}){let r=n,i=(0,t.ref)(null),a=(0,t.ref)(null),o=(0,t.ref)(!1),s=(0,t.ref)({}),c=async e=>{e.preventDefault(),o.value=!0,r(`visibleChange`,!0),await(0,t.nextTick)(),l(e.clientX,e.clientY)},l=(e,t)=>{let n=a.value;if(!n)return;let r=n.getBoundingClientRect(),i=window.innerWidth,o=window.innerHeight,c=Math.min(e,i-r.width-4),l=Math.min(t,o-r.height-4);c=Math.max(4,c),l=Math.max(4,l),s.value={position:`fixed`,top:`${l}px`,left:`${c}px`,zIndex:`3000`}},u=()=>{o.value&&(o.value=!1,r(`visibleChange`,!1))},d=e=>{e.disabled||(r(`select`,e),e.command!==void 0&&r(`command`,e.command),u())},f=e=>{a.value?.contains(e.target)||u()},p=()=>u();return(0,t.watch)(o,e=>{e?(document.addEventListener(`mousedown`,f,!0),window.addEventListener(`scroll`,p,!0),window.addEventListener(`resize`,p)):(document.removeEventListener(`mousedown`,f,!0),window.removeEventListener(`scroll`,p,!0),window.removeEventListener(`resize`,p))}),(0,t.onBeforeUnmount)(()=>{document.removeEventListener(`mousedown`,f,!0),window.removeEventListener(`scroll`,p,!0),window.removeEventListener(`resize`,p)}),(n,r)=>{let l=k;return(0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,null,[(0,t.createElementVNode)(`span`,{ref_key:`triggerRef`,ref:i,class:`fou-context-menu`,onContextmenu:(0,t.withModifiers)(c,[`prevent`])},[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)],544),((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:`body`},[(0,t.createVNode)(t.Transition,{name:`fou-context-menu-fade`},{default:(0,t.withCtx)(()=>[o.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,ref_key:`menuRef`,ref:a,class:`fou-context-menu__panel`,style:(0,t.normalizeStyle)(s.value),onContextmenu:r[0]||=(0,t.withModifiers)(()=>{},[`prevent`]),onClick:r[1]||=(0,t.withModifiers)(()=>{},[`stop`])},[(0,t.createElementVNode)(`ul`,bv,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(e.items,(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:n},[e.divider?((0,t.openBlock)(),(0,t.createElementBlock)(`li`,xv)):((0,t.openBlock)(),(0,t.createElementBlock)(`li`,{key:1,class:(0,t.normalizeClass)([`fou-context-menu__item`,{"is-disabled":e.disabled}]),onClick:t=>d(e)},[e.icon?((0,t.openBlock)(),(0,t.createBlock)(l,{key:0,icon:e.icon,class:`fou-context-menu__icon`},null,8,[`icon`])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`span`,Cv,(0,t.toDisplayString)(e.label),1),e.shortcut?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,wv,(0,t.toDisplayString)(e.shortcut),1)):(0,t.createCommentVNode)(``,!0)],10,Sv))],64))),128)),(0,t.renderSlot)(n.$slots,`items`,{},void 0,!0)])],36)):(0,t.createCommentVNode)(``,!0)]),_:3})]))],64)}}}),Ev=v({default:()=>Dv}),Dv=S(Tv,[[`__scopeId`,`data-v-b83b6df9`]]),Ov=[`disabled`],kv={key:0},Av=(0,t.defineComponent)({name:`FouCopy`,__name:`index`,props:{text:{default:``},copyText:{default:`复制`},copiedText:{default:`已复制`},showText:{type:Boolean,default:!1},successMessage:{default:`已复制到剪贴板`},silent:{type:Boolean,default:!1}},emits:[`copy`,`error`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.ref)(!1),o=null,s=async e=>{if(navigator.clipboard?.writeText){await navigator.clipboard.writeText(e);return}let t=document.createElement(`textarea`);t.value=e,t.setAttribute(`readonly`,``),t.style.position=`fixed`,t.style.left=`-9999px`,document.body.appendChild(t),t.select(),document.execCommand(`copy`),document.body.removeChild(t)},c=async()=>{if(r.text)try{await s(r.text),a.value=!0,o&&clearTimeout(o),o=setTimeout(()=>{a.value=!1},1600),i(`copy`,r.text),r.silent||Q.success(r.successMessage)}catch(e){i(`error`,e),r.silent||Q.error(`复制失败`)}};return(0,t.onBeforeUnmount)(()=>{o&&clearTimeout(o)}),(n,r)=>{let i=k;return(0,t.openBlock)(),(0,t.createElementBlock)(`span`,{class:`fou-copy`,onClick:c},[(0,t.renderSlot)(n.$slots,`default`,{copied:(0,t.unref)(a),copy:c},()=>[(0,t.createElementVNode)(`button`,{type:`button`,class:`fou-copy__btn`,disabled:!e.text},[(0,t.createVNode)(i,{icon:(0,t.unref)(a)?`check-line`:`file-copy-line`},null,8,[`icon`]),e.showText?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,kv,(0,t.toDisplayString)((0,t.unref)(a)?e.copiedText:e.copyText),1)):(0,t.createCommentVNode)(``,!0)],8,Ov)],!0)])}}}),jv=v({default:()=>Mv}),Mv=S(Av,[[`__scopeId`,`data-v-65e9eb99`]]),Nv={class:`fou-countdown`},Pv={key:0,class:`fou-countdown__title`},Fv={key:0,class:`fou-countdown__prefix`},Iv={class:`fou-countdown__value`},Lv={key:1,class:`fou-countdown__suffix`},Rv=(0,t.defineComponent)({name:`FouCountdown`,__name:`index`,props:{value:{default:0},title:{default:``},prefix:{default:``},suffix:{default:``},valueStyle:{default:()=>({})},format:{default:`HH:mm:ss`}},emits:[`finish`,`change`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.ref)(Date.now()),o=(0,t.ref)(!1),s=null,c=(0,t.computed)(()=>{let e=r.value;if(e instanceof Date)return e.getTime();if(typeof e==`number`)return e;let t=Date.parse(String(e));return Number.isNaN(t)?Date.now():t}),l=(0,t.computed)(()=>Math.max(0,c.value-a.value)),u=(e,t)=>String(e).padStart(t,`0`),d=(0,t.computed)(()=>{let e=Math.floor(l.value/1e3),t=Math.floor(e/86400),n=Math.floor(e%86400/3600),i=Math.floor(e%3600/60),a=e%60,o={DD:u(t,2),D:String(t),HH:u(n,2),H:String(n),mm:u(i,2),m:String(i),ss:u(a,2),s:String(a)};return r.format.replace(/DD|HH|mm|ss|D|H|m|s/g,e=>o[e]??e)}),f=()=>{a.value=Date.now(),i(`change`,l.value),!o.value&&l.value<=0&&(o.value=!0,i(`finish`))};return(0,t.watch)(()=>r.value,()=>{s&&clearInterval(s),o.value=l.value<=0,a.value=Date.now(),s=setInterval(f,1e3),f()},{immediate:!0}),(0,t.onBeforeUnmount)(()=>{s&&clearInterval(s)}),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Nv,[e.title||n.$slots.title?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Pv,[(0,t.renderSlot)(n.$slots,`title`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.title),1)],!0)])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,{class:`fou-countdown__content`,style:(0,t.normalizeStyle)(e.valueStyle)},[e.prefix||n.$slots.prefix?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Fv,[(0,t.renderSlot)(n.$slots,`prefix`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.prefix),1)],!0)])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`span`,Iv,[(0,t.renderSlot)(n.$slots,`default`,{value:(0,t.unref)(l),formatted:(0,t.unref)(d)},()=>[(0,t.createTextVNode)((0,t.toDisplayString)((0,t.unref)(d)),1)],!0)]),e.suffix||n.$slots.suffix?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Lv,[(0,t.renderSlot)(n.$slots,`suffix`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.suffix),1)],!0)])):(0,t.createCommentVNode)(``,!0)],4)]))}}),zv=v({default:()=>Bv}),Bv=S(Rv,[[`__scopeId`,`data-v-94497669`]]),Vv=Symbol(`FouDescriptions`),Hv={key:0,class:`fou-descriptions__header`},Uv={class:`fou-descriptions__body`},Wv=(0,t.defineComponent)({name:`FouDescriptions`,__name:`index`,props:{title:{default:``},column:{default:3},border:{type:Boolean,default:!1},direction:{default:`horizontal`},size:{default:`default`}},setup(e){let n=e,r=(0,t.ref)([]);(0,t.provide)(Vv,{column:(0,t.toRef)(n,`column`),border:(0,t.toRef)(n,`border`),direction:(0,t.toRef)(n,`direction`),size:(0,t.toRef)(n,`size`),registerItem:e=>{let t=r.value.findIndex(t=>t.uid===e.uid);t>=0?r.value[t]=e:r.value.push(e)},unregisterItem:e=>{r.value=r.value.filter(t=>t.uid!==e)}});let i=(0,t.computed)(()=>({"--fou-descriptions-columns":String(Math.max(1,n.column))}));return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-descriptions`,[`fou-descriptions--${e.size}`,`fou-descriptions--${e.direction}`,{"is-bordered":e.border}]]),style:(0,t.normalizeStyle)((0,t.unref)(i))},[e.title||n.$slots.title?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Hv,[(0,t.renderSlot)(n.$slots,`title`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.title),1)],!0)])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,Uv,[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)])],6))}}),Gv=v({default:()=>Kv}),Kv=S(Wv,[[`__scopeId`,`data-v-4f65a8e7`]]),qv={class:`fou-descriptions-item__label`},Jv={class:`fou-descriptions-item__content`},Yv=(0,t.defineComponent)({name:`FouDescriptionsItem`,__name:`index`,props:{label:{default:``},span:{default:1}},setup(e){let n=e,r=(0,t.useSlots)(),i=(0,t.inject)(Vv,null),a=(0,t.getCurrentInstance)()?.uid??Math.random(),o=(0,t.computed)(()=>i?.border.value??!1),s=(0,t.computed)(()=>({gridColumn:`span ${Math.max(1,n.span)}`}));return(0,t.onMounted)(()=>{i?.registerItem({uid:a,label:n.label,span:n.span,render:()=>r.default?.()})}),(0,t.onUnmounted)(()=>{i?.unregisterItem(a)}),(0,t.watch)(()=>[n.label,n.span],()=>{i?.registerItem({uid:a,label:n.label,span:n.span,render:()=>r.default?.()})}),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-descriptions-item`,{"is-bordered":(0,t.unref)(o)}]),style:(0,t.normalizeStyle)((0,t.unref)(s))},[(0,t.createElementVNode)(`div`,qv,[(0,t.renderSlot)(n.$slots,`label`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.label),1)],!0)]),(0,t.createElementVNode)(`div`,Jv,[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)])],6))}}),Xv=v({default:()=>Zv}),Zv=S(Yv,[[`__scopeId`,`data-v-8b3da2ff`]]),Qv={key:0,class:`fou-digital-card__icon`},$v={class:`fou-digital-card__content`},ey={class:`fou-digital-card__value`},ty={key:0,class:`fou-digital-card__affix`},ny={class:`fou-digital-card__num`},ry={key:1,class:`fou-digital-card__affix`},iy={key:0,class:`fou-digital-card__title`},ay={key:1,class:`fou-digital-card__footer`},oy=(0,t.defineComponent)({name:`FouDigitalCard`,__name:`index`,props:{value:{default:0},title:{default:``},prefix:{default:``},suffix:{default:``},icon:{default:``},precision:{default:0},groupSeparator:{type:Boolean,default:!0},animated:{type:Boolean,default:!0},duration:{default:800},theme:{default:`light`}},setup(e){let n=e,r=(0,t.ref)(0),i=(0,t.computed)(()=>{let e=Number(r.value.toFixed(n.precision)).toFixed(n.precision);if(!n.groupSeparator)return e;let[t,i]=e.split(`.`),a=t.replace(/\B(?=(\d{3})+(?!\d))/g,`,`);return i?`${a}.${i}`:a}),a=e=>{if(!n.animated){r.value=e;return}let t=r.value,i=performance.now(),a=o=>{let s=Math.min(1,(o-i)/n.duration),c=1-(1-s)**3;r.value=t+(e-t)*c,s<1?requestAnimationFrame(a):r.value=e};requestAnimationFrame(a)};return(0,t.watch)(()=>n.value,e=>a(Number(e)||0),{immediate:!0}),(n,r)=>{let a=k;return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-digital-card`,[`fou-digital-card--${e.theme}`]])},[e.icon||n.$slots.icon?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Qv,[(0,t.renderSlot)(n.$slots,`icon`,{},()=>[(0,t.createVNode)(a,{icon:e.icon},null,8,[`icon`])],!0)])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,$v,[(0,t.createElementVNode)(`div`,ey,[e.prefix?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,ty,(0,t.toDisplayString)(e.prefix),1)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`span`,ny,(0,t.toDisplayString)(i.value),1),e.suffix?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,ry,(0,t.toDisplayString)(e.suffix),1)):(0,t.createCommentVNode)(``,!0)]),e.title||n.$slots.title?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,iy,[(0,t.renderSlot)(n.$slots,`title`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.title),1)],!0)])):(0,t.createCommentVNode)(``,!0),n.$slots.footer?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,ay,[(0,t.renderSlot)(n.$slots,`footer`,{},void 0,!0)])):(0,t.createCommentVNode)(``,!0)])],2)}}}),sy=v({default:()=>cy}),cy=S(oy,[[`__scopeId`,`data-v-e3169d9d`]]),ly=(0,t.defineComponent)({name:`FouDot`,__name:`index`,props:{type:{values:[`primary`,`success`,`warning`,`danger`],type:String,default:`primary`}},setup(e){return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{class:(0,t.normalizeClass)(`fou-dot fou-dot-`+e.type)},null,2))}}),uy=v({default:()=>dy}),dy=S(ly,[[`__scopeId`,`data-v-626b67bc`]]),fy={key:0,class:`fou-drawer__header`},py={class:`fou-drawer__title`},my={class:`fou-drawer__body`},hy={key:1,class:`fou-drawer__footer`},gy=(0,t.defineComponent)({name:`FouDrawer`,inheritAttrs:!1,__name:`index`,props:{modelValue:{type:Boolean,default:!1},title:{default:``},direction:{default:`rtl`},size:{default:`30%`},modal:{type:Boolean,default:!0},closeOnClickModal:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!0},showClose:{type:Boolean,default:!0},animated:{type:Boolean,default:!0},zIndex:{default:0},appendToBody:{type:Boolean,default:!0},beforeClose:{}},emits:[`update:modelValue`,`open`,`opened`,`close`,`closed`],setup(e,{emit:n}){let i=(0,t.useAttrs)(),a=(0,t.computed)(()=>{let{class:e,style:t,...n}=i;return n}),o=(0,t.computed)(()=>i.style),s=e,c=(0,t.computed)(()=>s.appendToBody!==!1),l=(0,t.ref)(s.zIndex||le(4e3)),u=n,d=(0,r.useVModel)(s,`modelValue`,u),f=(0,t.computed)(()=>typeof s.size==`number`?`${s.size}px`:String(s.size)),p=(0,t.computed)(()=>{let e=f.value;switch(s.direction){case`ltr`:return{width:e,height:`100%`};case`ttb`:return{width:`100%`,height:e};case`btt`:return{width:`100%`,height:e};default:return{width:e,height:`100%`}}}),m=(0,t.computed)(()=>{switch(s.direction){case`ltr`:return`fou-drawer-slide-left`;case`ttb`:return`fou-drawer-slide-top`;case`btt`:return`fou-drawer-slide-bottom`;default:return`fou-drawer-slide-right`}}),{lock:h,unlock:g}=nt(),_=()=>{u(`close`),d.value=!1},v=()=>{if(s.beforeClose){s.beforeClose(()=>_());return}_()},y=()=>{s.closeOnClickModal&&v()},b=(0,t.computed)(()=>s.modal&&d.value);(0,t.watch)(b,e=>{e?h():g()}),(0,t.watch)(d,async e=>{e?(l.value=s.zIndex||le(4e3),window.addEventListener(`keydown`,x),u(`open`),await(0,t.nextTick)(),u(`opened`)):(window.removeEventListener(`keydown`,x),u(`closed`))});let x=e=>{s.closeOnPressEscape&&e.key===`Escape`&&v()};return(0,t.onMounted)(()=>{b.value&&h(),d.value&&window.addEventListener(`keydown`,x)}),(0,t.onBeforeUnmount)(()=>{g(),window.removeEventListener(`keydown`,x)}),(n,r)=>((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:`body`,disabled:!(0,t.unref)(c)},[(0,t.createVNode)(t.Transition,{name:(0,t.unref)(m)},{default:(0,t.withCtx)(()=>[(0,t.unref)(d)?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:(0,t.normalizeClass)([`fou-drawer-root`,[`fou-drawer-root--${e.direction}`]]),style:(0,t.normalizeStyle)({zIndex:String((0,t.unref)(l))})},[e.modal?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:`fou-drawer__mask`,onClick:y})):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,(0,t.mergeProps)({class:[`fou-drawer`,[`fou-drawer--${e.direction}`,{"fou-drawer--animated":e.animated},(0,t.unref)(i).class]]},(0,t.unref)(a),{style:[(0,t.unref)(p),(0,t.unref)(o)],role:`dialog`,"aria-modal":`true`}),[e.showClose||e.title||n.$slots.header?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,fy,[(0,t.createElementVNode)(`div`,py,[(0,t.renderSlot)(n.$slots,`header`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.title),1)],!0)]),e.showClose?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:0,type:`button`,class:`fou-drawer__close`,"aria-label":`close`,onClick:v},` × `)):(0,t.createCommentVNode)(``,!0)])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,my,[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)]),n.$slots.footer?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,hy,[(0,t.renderSlot)(n.$slots,`footer`,{},void 0,!0)])):(0,t.createCommentVNode)(``,!0)],16)],6)):(0,t.createCommentVNode)(``,!0)]),_:3},8,[`name`])],8,[`disabled`]))}}),_y=v({default:()=>vy}),vy=S(gy,[[`__scopeId`,`data-v-e3058753`]]),yy={class:`fou-ellipsis-wrap`},by=(0,t.defineComponent)({name:`FouEllipsis`,__name:`index`,props:{content:{default:``},lines:{default:1},tooltip:{type:Boolean,default:!0}},setup(e){let n=e,r=(0,t.ref)(null),i=(0,t.ref)(!1),a=(0,t.computed)(()=>n.content||r.value?.textContent?.trim()||``),o=(0,t.computed)(()=>n.tooltip&&i.value&&!!a.value),s=()=>{let e=r.value;e&&(i.value=e.scrollHeight>e.clientHeight+1||e.scrollWidth>e.clientWidth+1)},c=null;return(0,t.onMounted)(()=>{s(),c=new ResizeObserver(s),r.value&&c.observe(r.value)}),(0,t.watch)(()=>[n.content,n.lines],()=>(0,t.nextTick)(s)),(0,t.onBeforeUnmount)(()=>c?.disconnect()),(n,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,yy,[(0,t.createVNode)(ao,{content:(0,t.unref)(a),disabled:!(0,t.unref)(o)},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`span`,{ref_key:`rootRef`,ref:r,class:(0,t.normalizeClass)([`fou-ellipsis`,{"is-line-clamp":e.lines>1}]),style:(0,t.normalizeStyle)(e.lines>1?{WebkitLineClamp:String(e.lines)}:void 0)},[(0,t.renderSlot)(n.$slots,`default`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.content),1)],!0)],6)]),_:3},8,[`content`,`disabled`])]))}}),xy=v({default:()=>Sy}),Sy=S(by,[[`__scopeId`,`data-v-98b80dc2`]]);function Cy(e,t){return e.replace(/\{\{\s*([^}]+?)\s*\}\}/g,(e,n)=>{let r=t[n.trim()];return r==null?``:String(r)})}async function wy(e){if(e instanceof ArrayBuffer)return e;if(ArrayBuffer.isView(e)){let t=e;return t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}return e.arrayBuffer()}function Ty(e,t){let n=document.createElement(`a`);n.href=URL.createObjectURL(e),n.download=t,n.click(),URL.revokeObjectURL(n.href)}function Ey(e,t){let n=t.endsWith(`.xlsx`)?t:`${t}.xlsx`,r=Uint8Array.from(e);Ty(new Blob([r],{type:`application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`}),n)}function Dy(e,t){let n=typeof t==`number`?e.SheetNames[t]:t&&e.SheetNames.includes(t)?t:e.SheetNames[0],r=n?e.Sheets[n]:void 0;if(!r)throw Error(`Excel 模板没有可用的工作表`);return{name:n,ws:r}}function Oy(e){return e instanceof Date||typeof e==`number`||typeof e==`boolean`?e:e==null?``:String(e)}async function ky(e){let t=await import(`xlsx`),n=await wy(e.template),r=t.read(n,{type:`array`,cellDates:!0}),i=e.data||{};if(Object.keys(i).length&&r.SheetNames.forEach(e=>{let n=r.Sheets[e],a=n[`!ref`];if(!a)return;let o=t.utils.decode_range(a);for(let e=o.s.r;e<=o.e.r;e++)for(let r=o.s.c;r<=o.e.c;r++){let a=n[t.utils.encode_cell({r:e,c:r})];!a||typeof a.v!=`string`||!a.v.includes(`{{`)||(a.v=Cy(a.v,i),a.t=`s`,delete a.w)}}),e.cells){let{ws:t}=Dy(r);Object.entries(e.cells).forEach(([e,n])=>{t[e]={t:typeof n==`number`?`n`:`s`,v:Oy(n)}})}return e.tables?.forEach(e=>{let{ws:n}=Dy(r,e.sheet),i=e.rows.map(t=>e.columns.map(e=>Oy(t[e]))),a=e.writeHeader?[e.headers||e.columns,...i]:i;t.utils.sheet_add_aoa(n,a,{origin:e.start})}),t.write(r,{type:`array`,bookType:`xlsx`})}async function Ay(e){Ey(await ky(e),e.filename||`filled.xlsx`)}async function jy(e={}){let t=await import(`xlsx`),n=e.headers?.length?e.headers:[`名称`,`状态`,`数量`],r=t.utils.aoa_to_sheet([[e.title||`月度报表`],[`标题:{{title}}`],[`日期:{{date}}`,``,`部门:{{dept}}`],[],n]);r[`!cols`]=n.map(()=>({wch:18})),r[`!merges`]=[{s:{r:0,c:0},e:{r:0,c:Math.max(n.length-1,2)}}];let i=t.utils.book_new();return t.utils.book_append_sheet(i,r,e.sheetName||`报表`),t.write(i,{type:`array`,bookType:`xlsx`})}async function My(e={}){Ey(await jy(e),e.filename||`报表模板.xlsx`)}function Ny(e,t){let n=e[t];return!n||n.v==null?``:n.w==null?String(n.v):String(n.w)}function Py(e){return e.every(e=>!String(e??``).trim())}async function Fy(e){let t=await import(`xlsx`),n=await wy(e.file),r=t.read(n,{type:`array`,cellDates:!0}),i={};if(e.fields){let{ws:t}=Dy(r);Object.entries(e.fields).forEach(([e,n])=>{i[e]=Ny(t,n)})}let a=[];for(let n of e.tables||[]){let{ws:e}=Dy(r,n.sheet),i=t.utils.decode_cell(n.start),o=i.r+ +!!n.headerRow,s=n.maxRows??5e3,c=[],l=0;for(let r=0;r<s;r++){let a=o+r,s=n.columns.map((n,r)=>Ny(e,t.utils.encode_cell({r:a,c:i.c+r})));if(Py(s)){if(l++,l>=2)break;continue}l=0;let u={};n.columns.forEach((e,t)=>{u[e]=s[t]??``}),c.push(u)}a.push(c)}return{data:i,rows:a[0]||[],tables:a}}var Iy={class:`fou-excel-ie__actions`},Ly={key:0,class:`fou-excel-ie__status`},Ry=(0,t.defineComponent)({name:`FouExcelImportExport`,__name:`index`,props:{template:{default:null},rows:{default:()=>[]},columns:{default:()=>[`name`,`status`,`count`]},headers:{default:()=>[`名称`,`状态`,`数量`]},data:{default:()=>({})},cells:{default:void 0},tableStart:{default:`A6`},sheet:{default:void 0},writeHeader:{type:Boolean,default:!1},importFields:{default:()=>({})},importTables:{default:void 0},exportFilename:{default:`导出.xlsx`},sampleFilename:{default:`自定义报表模板.xlsx`},sampleTitle:{default:`报表模板`},size:{default:`default`},disabled:{type:Boolean,default:!1},showDownloadSample:{type:Boolean,default:!0},showStatus:{type:Boolean,default:!0},sampleText:{default:`下载示例模板`},templateText:{default:`上传自定义模板`},exportText:{default:`按模板导出`},importText:{default:`导入填好的 Excel`},requireTemplateForImport:{type:Boolean,default:!1}},emits:[`update:template`,`template-change`,`export`,`import`,`error`],setup(e,{expose:n,emit:r}){let i=e,a=r,o=(0,t.ref)(null),s=(0,t.ref)(null),c=(0,t.ref)(null),l=(0,t.ref)(!1),u=(0,t.ref)(!1),d=(0,t.computed)(()=>i.template??c.value),f=(0,t.computed)(()=>!!d.value),p=(0,t.computed)(()=>!i.requireTemplateForImport||f.value),m=(0,t.computed)(()=>{let e=d.value;return e?typeof File<`u`&&e instanceof File?e.name:`已设置模板`:``}),h=e=>{c.value=e,a(`update:template`,e),a(`template-change`,e)},g=()=>{i.disabled||o.value?.click()},_=()=>{i.disabled||!p.value||s.value?.click()},v=e=>{let t=e.target,n=t.files?.[0]||null;t.value=``,n&&h(n)},y=async()=>{if(!i.disabled)try{await My({title:i.sampleTitle,headers:i.headers,filename:i.sampleFilename})}catch(e){a(`error`,e,`sample`)}},b=async()=>d.value||jy({title:i.sampleTitle,headers:i.headers}),x=async()=>{if(!i.disabled){if(!f.value){a(`error`,Error(`请先上传自定义模板`),`export`);return}l.value=!0;try{await Ay({template:await b(),filename:i.exportFilename,data:i.data,cells:i.cells,tables:[{sheet:i.sheet,start:i.tableStart,columns:i.columns,rows:i.rows,writeHeader:i.writeHeader,headers:i.headers}]}),a(`export`,{filename:i.exportFilename,rowCount:i.rows.length})}catch(e){a(`error`,e,`export`)}finally{l.value=!1}}},S=async e=>{let t=e.target,n=t.files?.[0];if(t.value=``,!(!n||i.disabled)){u.value=!0;try{let e=i.importTables?.length?i.importTables:[{sheet:i.sheet,start:i.tableStart,columns:i.columns,headerRow:i.writeHeader}],t=await Fy({file:n,fields:i.importFields,tables:e});a(`import`,{...t,file:n})}catch(e){a(`error`,e,`import`)}finally{u.value=!1}}};return n({setTemplate:h,getTemplate:()=>d.value,pickTemplate:g,pickImport:_,exportByTemplate:x,downloadSample:y}),(n,r)=>{let i=Vt;return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-excel-ie`,{"is-disabled":e.disabled}])},[(0,t.createElementVNode)(`div`,Iy,[e.showDownloadSample?((0,t.openBlock)(),(0,t.createBlock)(i,{key:0,size:e.size,disabled:e.disabled,icon:`download-2-line`,onClick:y},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.sampleText),1)]),_:1},8,[`size`,`disabled`])):(0,t.createCommentVNode)(``,!0),(0,t.createVNode)(i,{size:e.size,disabled:e.disabled,icon:`file-upload-line`,onClick:g},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.templateText),1)]),_:1},8,[`size`,`disabled`]),(0,t.createVNode)(i,{size:e.size,disabled:e.disabled||!(0,t.unref)(f),type:`primary`,icon:`file-excel-2-line`,loading:(0,t.unref)(l),onClick:x},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.exportText),1)]),_:1},8,[`size`,`disabled`,`loading`]),(0,t.createVNode)(i,{size:e.size,disabled:e.disabled||!(0,t.unref)(p),icon:`upload-2-line`,loading:(0,t.unref)(u),onClick:_},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.importText),1)]),_:1},8,[`size`,`disabled`,`loading`]),(0,t.renderSlot)(n.$slots,`extra`,{},void 0,!0)]),e.showStatus?((0,t.openBlock)(),(0,t.createElementBlock)(`p`,Ly,[(0,t.unref)(m)?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:0},[(0,t.createTextVNode)(`当前模板:`+(0,t.toDisplayString)((0,t.unref)(m)),1)],64)):((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:1},[(0,t.createTextVNode)(`尚未上传自定义模板(可先下载示例模板再改成自己的版式)`)],64))])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`input`,{ref_key:`tplInputRef`,ref:o,class:`fou-excel-ie__file`,type:`file`,accept:`.xlsx,.xls`,onChange:v},null,544),(0,t.createElementVNode)(`input`,{ref_key:`importInputRef`,ref:s,class:`fou-excel-ie__file`,type:`file`,accept:`.xlsx,.xls`,onChange:S},null,544)],2)}}}),zy=v({default:()=>By}),By=S(Ry,[[`__scopeId`,`data-v-454c162a`]]),Vy={class:`fou-result__icon`},Hy={key:0,class:`fou-result__title`},Uy={key:1,class:`fou-result__subtitle`},Wy={key:2,class:`fou-result__extra`},Gy={key:3,class:`fou-result__content`},Ky=(0,t.defineComponent)({name:`FouResult`,__name:`index`,props:{icon:{default:``},title:{default:``},subTitle:{default:``}},setup(e){let n=e,r={success:`checkbox-circle-line`,warning:`error-warning-line`,info:`information-line`,error:`close-circle-line`},i=(0,t.computed)(()=>n.icon&&r[n.icon]||``);return(n,r)=>{let a=k;return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-result`,e.icon?`fou-result--${e.icon}`:``])},[(0,t.createElementVNode)(`div`,Vy,[(0,t.renderSlot)(n.$slots,`icon`,{},()=>[(0,t.unref)(i)?((0,t.openBlock)(),(0,t.createBlock)(a,{key:0,icon:(0,t.unref)(i)},null,8,[`icon`])):(0,t.createCommentVNode)(``,!0)],!0)]),e.title||n.$slots.title?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Hy,[(0,t.renderSlot)(n.$slots,`title`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.title),1)],!0)])):(0,t.createCommentVNode)(``,!0),e.subTitle||n.$slots[`sub-title`]?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Uy,[(0,t.renderSlot)(n.$slots,`sub-title`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.subTitle),1)],!0)])):(0,t.createCommentVNode)(``,!0),n.$slots.extra?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Wy,[(0,t.renderSlot)(n.$slots,`extra`,{},void 0,!0)])):(0,t.createCommentVNode)(``,!0),n.$slots.default?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Gy,[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)])):(0,t.createCommentVNode)(``,!0)],2)}}}),qy=v({default:()=>Jy}),Jy=S(Ky,[[`__scopeId`,`data-v-9728c3ac`]]),Yy=(0,t.defineComponent)({name:`FouException`,__name:`index`,props:{status:{default:404},title:{default:``},subTitle:{default:``},showBack:{type:Boolean,default:!0},backText:{default:`返回首页`}},emits:[`back`],setup(e,{emit:n}){let r={403:{icon:`warning`,title:`403`,subTitle:`抱歉,你没有权限访问该页面`},404:{icon:`info`,title:`404`,subTitle:`抱歉,你访问的页面不存在`},500:{icon:`error`,title:`500`,subTitle:`抱歉,服务器出了点问题`}},i=e,a=n,o=(0,t.computed)(()=>r[String(i.status)]||r[404]),s=()=>a(`back`);return(n,r)=>((0,t.openBlock)(),(0,t.createBlock)(Jy,{class:`fou-exception`,icon:(0,t.unref)(o).icon,title:e.title||(0,t.unref)(o).title,"sub-title":e.subTitle||(0,t.unref)(o).subTitle},(0,t.createSlots)({extra:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`extra`,{},()=>[e.showBack?((0,t.openBlock)(),(0,t.createBlock)(Vt,{key:0,type:`primary`,onClick:s},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.backText),1)]),_:1})):(0,t.createCommentVNode)(``,!0)])]),default:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`default`)]),_:2},[n.$slots.icon?{name:`icon`,fn:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`icon`)]),key:`0`}:void 0,n.$slots.title?{name:`title`,fn:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`title`)]),key:`1`}:void 0,n.$slots[`sub-title`]?{name:`sub-title`,fn:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`sub-title`)]),key:`2`}:void 0]),1032,[`icon`,`title`,`sub-title`]))}}),Xy=v({default:()=>Zy}),Zy=Yy,Qy=Symbol(`FouFloatButtonGroup`),$y=[`aria-label`],eb={class:`fou-float-button__icon`},tb={key:0,class:`fou-float-button__desc`},nb=(0,t.defineComponent)({name:`FouFloatButton`,__name:`index`,props:{type:{default:`default`},shape:{default:`circle`},icon:{default:``},description:{default:``},href:{default:``},target:{default:``},right:{default:40},bottom:{default:40},zIndex:{default:100}},emits:[`click`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.inject)(Qy,!1),o=(0,t.computed)(()=>a?void 0:{position:`fixed`,right:`${r.right}px`,bottom:`${r.bottom}px`,zIndex:String(r.zIndex)}),s=e=>{i(`click`,e),r.href&&window.open(r.href,r.target||`_self`)};return(n,r)=>{let i=k;return(0,t.openBlock)(),(0,t.createElementBlock)(`button`,{type:`button`,class:(0,t.normalizeClass)([`fou-float-button`,[`fou-float-button--${e.shape}`,`fou-float-button--${e.type}`,{"is-in-group":(0,t.unref)(a)}]]),style:(0,t.normalizeStyle)((0,t.unref)(o)),"aria-label":e.description||`悬浮按钮`,onClick:s},[(0,t.createElementVNode)(`span`,eb,[(0,t.renderSlot)(n.$slots,`default`,{},()=>[e.icon?((0,t.openBlock)(),(0,t.createBlock)(i,{key:0,icon:e.icon},null,8,[`icon`])):((0,t.openBlock)(),(0,t.createBlock)(i,{key:1,icon:`add-line`}))],!0)]),e.description&&e.shape===`square`?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,tb,(0,t.toDisplayString)(e.description),1)):(0,t.createCommentVNode)(``,!0)],14,$y)}}}),rb=v({default:()=>ib}),ib=S(nb,[[`__scopeId`,`data-v-d71d62ad`]]),ab={class:`fou-float-button-group__items`},ob=(0,t.defineComponent)({name:`FouFloatButtonGroup`,__name:`index`,props:{type:{default:`primary`},shape:{default:`circle`},icon:{default:`apps-line`},description:{default:``},trigger:{default:`click`},right:{default:40},bottom:{default:40},zIndex:{default:100}},setup(e){let n=e;(0,t.provide)(Qy,!0);let r=(0,t.ref)(n.trigger===`hover`),i=(0,t.computed)(()=>({right:`${n.right}px`,bottom:`${n.bottom}px`,zIndex:String(n.zIndex)})),a=()=>{n.trigger!==`hover`&&(r.value=!r.value)},o=()=>{n.trigger===`hover`&&(r.value=!0)},s=()=>{n.trigger===`hover`&&(r.value=!1)};return(n,c)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:`fou-float-button-group`,style:(0,t.normalizeStyle)((0,t.unref)(i)),onMouseenter:o,onMouseleave:s},[(0,t.withDirectives)((0,t.createElementVNode)(`div`,ab,[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)],512),[[t.vShow,(0,t.unref)(r)]]),(0,t.createVNode)(ib,{type:e.type,shape:e.shape,icon:(0,t.unref)(r)?`close-line`:e.icon,description:e.description,onClick:a},null,8,[`type`,`shape`,`icon`,`description`])],36))}}),sb=v({default:()=>cb}),cb=S(ob,[[`__scopeId`,`data-v-299feda2`]]),lb=(0,t.defineComponent)({name:`FouFullscreen`,__name:`index`,setup(e){let{isFullscreen:n,toggle:i}=(0,r.useFullscreen)();return(e,r)=>{let a=k;return(0,t.openBlock)(),(0,t.createBlock)(a,{class:`fou-fullscreen`,icon:(0,t.unref)(n)?`fullscreen-exit-fill`:`fullscreen-fill`,onClick:(0,t.unref)(i)},null,8,[`icon`,`onClick`])}}}),ub=v({default:()=>db}),db=lb,fb={key:0,class:`fou-grid__form`},pb={key:0,class:`fou-grid__form-inner`},mb=[`onUpdate:modelValue`,`placeholder`],hb=(0,t.defineComponent)({name:`FouGrid`,__name:`index`,props:{columns:{default:()=>[]},data:{default:()=>[]},loading:{type:Boolean,default:!1},height:{},maxHeight:{},border:{type:[Boolean,String],default:!0},stripe:{type:Boolean},round:{type:Boolean},editable:{type:Boolean},editTrigger:{},editConfig:{},rowKey:{},showIndex:{type:Boolean},showSelection:{type:Boolean},showFooter:{type:Boolean},tree:{type:Boolean},pagerConfig:{type:[Object,Boolean]},toolbarConfig:{type:[Object,Boolean]},formConfig:{type:[Object,Boolean]},proxyConfig:{default:void 0},sortConfig:{},filterConfig:{},columnConfig:{},rowConfig:{},customConfig:{},menuConfig:{},editRules:{},virtualYConfig:{type:[Object,Boolean]},spanMethod:{},mergeCells:{}},emits:[`proxy-query`,`proxy-delete`],setup(e,{expose:n,emit:r}){let i=e,a=r,o=(0,t.ref)(null),s=(0,t.ref)(!1),c=(0,t.ref)(null),l=(0,t.ref)(null),u=(0,t.ref)(1),d=(0,t.ref)(10),f=(0,t.ref)(null),p=(0,t.ref)({}),m=(0,t.reactive)({}),h=(0,t.computed)(()=>i.toolbarConfig===!1?{enabled:!1}:i.toolbarConfig===!0||i.toolbarConfig==null?{enabled:!0,refresh:!0,export:!0,zoom:!0,custom:!0}:{enabled:!0,...i.toolbarConfig}),g=(0,t.computed)(()=>h.value.enabled!==!1),_=(0,t.computed)(()=>{let e=h.value;return{enabled:e.enabled,refresh:e.refresh,export:e.export,import:e.import,print:e.print,custom:e.custom,zoom:e.zoom,copy:e.copy,toolsPlacement:e.toolsPlacement,customTools:e.customTools}}),v=(0,t.useSlots)(),y=(0,t.computed)(()=>i.formConfig===!1?!1:i.formConfig===!0?!0:i.formConfig&&typeof i.formConfig==`object`?i.formConfig.enabled!==!1:!!v.form),b=(0,t.computed)(()=>i.formConfig&&typeof i.formConfig==`object`&&i.formConfig.items||[]);(0,t.watch)(b,e=>{e.forEach(e=>{e.field in m||(m[e.field]=``)})},{immediate:!0});let x=(0,t.computed)(()=>i.proxyConfig?.enabled!==!1&&!!i.proxyConfig?.ajax?.query),S=(0,t.computed)(()=>x.value&&c.value?c.value:i.data||[]),C=(0,t.computed)(()=>{let e=i.pagerConfig===!0?{enabled:!0}:i.pagerConfig&&typeof i.pagerConfig==`object`?{...i.pagerConfig}:x.value?{enabled:!0}:!1;return!e||e===!1?!1:{...e,currentPage:u.value,pageSize:d.value,total:l.value??e.total??S.value.length}}),w=(0,t.computed)(()=>{let{data:e,loading:t,pagerConfig:n,toolbarConfig:r,formConfig:a,proxyConfig:o,...s}=i;return{...s,toolbarConfig:_.value,showExport:h.value.export!==!1,customConfig:i.customConfig||(h.value.custom===!1?void 0:{enabled:!0}),showPrint:h.value.print===!0,showImport:h.value.import===!0,showCopy:h.value.copy===!0}}),T=(0,t.computed)(()=>({loading:s.value,data:S.value,total:l.value,form:m})),E=(e,t)=>t?t.split(`.`).reduce((e,t)=>e==null?e:e[t],e):e,D=async()=>{if(!x.value||!i.proxyConfig?.ajax?.query){a(`proxy-query`,{form:{...m}});return}s.value=!0;try{let e=await i.proxyConfig.ajax.query({page:{currentPage:u.value,pageSize:d.value},form:{...m},sorts:f.value?[f.value]:[],filters:p.value}),t=i.proxyConfig.props?.result||`result`,n=i.proxyConfig.props?.total||`page.total`;if(Array.isArray(e))c.value=e,l.value=e.length;else{let r=E(e,t)??e.data??[];c.value=Array.isArray(r)?r:[];let i=E(e,n)??e.total??e.page?.total??c.value.length;l.value=Number(i)||0}a(`proxy-query`,{form:{...m},result:c.value})}finally{s.value=!1}},O=()=>{Object.keys(m).forEach(e=>{m[e]=``}),u.value=1,D()},k=D,A=e=>{u.value=e.currentPage,d.value=e.pageSize,x.value&&D()},j=e=>{f.value=e,i.sortConfig?.remote&&x.value&&D()},M=e=>{p.value=e,i.filterConfig?.remote&&x.value&&D()};return(0,t.onMounted)(()=>{x.value&&i.proxyConfig?.autoLoad!==!1&&D()}),n({reload:D,getTable:()=>o.value,commitProxy:D,formModel:m}),(n,r)=>{let i=al;return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-grid`,{"fou-grid--loading":(0,t.unref)(s)}])},[(0,t.unref)(y)&&(n.$slots.form||e.formConfig)?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,fb,[(0,t.renderSlot)(n.$slots,`form`,{query:(0,t.unref)(k),form:(0,t.unref)(m),reload:D},()=>[(0,t.unref)(b).length?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,pb,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(b),e=>((0,t.openBlock)(),(0,t.createElementBlock)(`label`,{key:e.field,class:`fou-grid__form-item`},[(0,t.createElementVNode)(`span`,null,(0,t.toDisplayString)(e.title||e.field),1),(0,t.withDirectives)((0,t.createElementVNode)(`input`,{"onUpdate:modelValue":n=>(0,t.unref)(m)[e.field]=n,class:`fou-grid__form-input`,placeholder:e.title||e.field,onKeydown:r[0]||=(0,t.withKeys)(e=>D(),[`enter`])},null,40,mb),[[t.vModelText,(0,t.unref)(m)[e.field]]])]))),128)),(0,t.createElementVNode)(`button`,{type:`button`,class:`fou-grid__form-btn`,onClick:r[1]||=e=>D()},`查询`),(0,t.createElementVNode)(`button`,{type:`button`,class:`fou-grid__form-btn is-plain`,onClick:O},`重置`)])):(0,t.createCommentVNode)(``,!0)],!0)])):(0,t.createCommentVNode)(``,!0),(0,t.createVNode)(i,(0,t.mergeProps)({ref_key:`tableRef`,ref:o},(0,t.unref)(w),{data:(0,t.unref)(S),loading:(0,t.unref)(s)||e.loading,"pager-config":(0,t.unref)(C),"show-toolbar":(0,t.unref)(g),"show-export":(0,t.unref)(h)?.export!==!1,onPageChange:A,onRefresh:D,onSortChange:j,onFilterChange:M}),(0,t.createSlots)({default:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)]),_:2},[n.$slots.toolbar?{name:`toolbar`,fn:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`toolbar`,{reload:D,proxy:(0,t.unref)(T)},void 0,!0)]),key:`0`}:void 0,n.$slots[`toolbar-left`]?{name:`toolbar-left`,fn:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`toolbar-left`,{reload:D,proxy:(0,t.unref)(T)},void 0,!0)]),key:`1`}:void 0,n.$slots[`toolbar-center`]?{name:`toolbar-center`,fn:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`toolbar-center`,{reload:D,proxy:(0,t.unref)(T)},void 0,!0)]),key:`2`}:void 0,n.$slots[`toolbar-right`]?{name:`toolbar-right`,fn:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`toolbar-right`,{reload:D,proxy:(0,t.unref)(T)},void 0,!0)]),key:`3`}:void 0,n.$slots[`toolbar-tools`]?{name:`toolbar-tools`,fn:(0,t.withCtx)(()=>[(0,t.renderSlot)(n.$slots,`toolbar-tools`,{},void 0,!0)]),key:`4`}:void 0]),1040,[`data`,`loading`,`pager-config`,`show-toolbar`,`show-export`])],2)}}}),gb=v({default:()=>_b}),_b=S(hb,[[`__scopeId`,`data-v-09298a7d`]]),vb={class:`fou-highlight`},yb=(0,t.defineComponent)({name:`FouHighlight`,__name:`index`,props:{text:{default:``},keywords:{default:()=>[]},caseSensitive:{type:Boolean,default:!1},color:{default:``}},setup(e){let n=e,r=(0,t.computed)(()=>n.color?{background:n.color,color:`#fff`}:void 0),i=(0,t.computed)(()=>{let e=n.text||``,t=(Array.isArray(n.keywords)?n.keywords:[n.keywords]).map(e=>String(e||``).trim()).filter(Boolean);if(!e||!t.length)return[{text:e,hit:!1}];let r=t.map(e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)),i=n.caseSensitive?`g`:`gi`,a=RegExp(`(${r.join(`|`)})`,i);return e.split(a).filter(e=>e!==``).map(e=>({text:e,hit:t.some(t=>n.caseSensitive?e===t:e.toLowerCase()===t.toLowerCase())}))});return(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,vb,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(i),(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:n},[e.hit?((0,t.openBlock)(),(0,t.createElementBlock)(`mark`,{key:0,class:`fou-highlight__mark`,style:(0,t.normalizeStyle)((0,t.unref)(r))},(0,t.toDisplayString)(e.text),5)):((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:1},[(0,t.createTextVNode)((0,t.toDisplayString)(e.text),1)],64))],64))),128))]))}}),bb=v({default:()=>xb}),xb=S(yb,[[`__scopeId`,`data-v-7331076e`]]),Sb={key:0,class:`fou-hover-card__title`},Cb={class:`fou-hover-card__body`},wb=(0,t.defineComponent)({name:`FouHoverCard`,__name:`index`,props:{title:{default:``},placement:{default:`top`},width:{default:280},openDelay:{default:80},closeDelay:{default:120}},emits:[`visibleChange`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.ref)(null),o=(0,t.ref)(null),s=(0,t.ref)(!1),c=(0,t.ref)({}),l,u,d=!1,f=()=>{l&&clearTimeout(l),u&&clearTimeout(u)},p=async()=>{f(),l=setTimeout(async()=>{s.value=!0,i(`visibleChange`,!0),await(0,t.nextTick)(),y()},r.openDelay)},m=()=>{f(),u=setTimeout(()=>{d||(s.value=!1,i(`visibleChange`,!1))},r.closeDelay)},h=()=>p(),g=()=>m(),_=()=>{d=!0,f()},v=()=>{d=!1,m()},y=()=>{let e=a.value,t=o.value;if(!e||!t)return;let n=e.getBoundingClientRect(),i=t.getBoundingClientRect(),s=0,l=0;switch(r.placement){case`top`:s=n.top-i.height-10,l=n.left+n.width/2-i.width/2;break;case`left`:s=n.top+n.height/2-i.height/2,l=n.left-i.width-10;break;case`right`:s=n.top+n.height/2-i.height/2,l=n.right+10;break;default:s=n.bottom+10,l=n.left+n.width/2-i.width/2}l=Math.min(Math.max(4,l),window.innerWidth-i.width-4),s=Math.min(Math.max(4,s),window.innerHeight-i.height-4),c.value={position:`fixed`,top:`${s}px`,left:`${l}px`,width:`${r.width}px`,zIndex:`2100`}},b=()=>s.value&&y();return(0,t.watch)(s,e=>{e?(window.addEventListener(`scroll`,b,!0),window.addEventListener(`resize`,b)):(window.removeEventListener(`scroll`,b,!0),window.removeEventListener(`resize`,b))}),(0,t.onBeforeUnmount)(()=>{f(),window.removeEventListener(`scroll`,b,!0),window.removeEventListener(`resize`,b)}),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,null,[(0,t.createElementVNode)(`span`,{ref_key:`triggerRef`,ref:a,class:`fou-hover-card`,onMouseenter:h,onMouseleave:g},[(0,t.renderSlot)(n.$slots,`trigger`,{},void 0,!0)],544),((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:`body`},[(0,t.createVNode)(t.Transition,{name:`fou-hover-card-fade`},{default:(0,t.withCtx)(()=>[s.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,ref_key:`cardRef`,ref:o,class:(0,t.normalizeClass)([`fou-hover-card__panel`,[`fou-hover-card--${e.placement}`]]),style:(0,t.normalizeStyle)(c.value),onMouseenter:_,onMouseleave:v},[e.title||n.$slots.title?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Sb,[(0,t.renderSlot)(n.$slots,`title`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.title),1)],!0)])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,Cb,[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)])],38)):(0,t.createCommentVNode)(``,!0)]),_:3})]))],64))}}),Tb=v({default:()=>Eb}),Eb=S(wb,[[`__scopeId`,`data-v-158ede3a`]]),Db=`24-hours-fill.24-hours-line.4k-fill.4k-line.a-b.accessibility-fill.accessibility-line.account-box-2-fill.account-box-2-line.account-box-fill.account-box-line.account-circle-2-fill.account-circle-2-line.account-circle-fill.account-circle-line.account-pin-box-fill.account-pin-box-line.account-pin-circle-fill.account-pin-circle-line.add-box-fill.add-box-line.add-circle-fill.add-circle-line.add-fill.add-large-fill.add-large-line.add-line.admin-fill.admin-line.advertisement-fill.advertisement-line.aed-electrodes-fill.aed-electrodes-line.aed-fill.aed-line.ai-generate.ai-generate-2.ai-generate-text.airplay-fill.airplay-line.alarm-add-fill.alarm-add-line.alarm-fill.alarm-line.alarm-snooze-fill.alarm-snooze-line.alarm-warning-fill.alarm-warning-line.album-fill.album-line.alert-fill.alert-line.alibaba-cloud-fill.alibaba-cloud-line.aliens-fill.aliens-line.align-bottom.align-center.align-item-bottom-fill.align-item-bottom-line.align-item-horizontal-center-fill.align-item-horizontal-center-line.align-item-left-fill.align-item-left-line.align-item-right-fill.align-item-right-line.align-item-top-fill.align-item-top-line.align-item-vertical-center-fill.align-item-vertical-center-line.align-justify.align-left.align-right.align-top.align-vertically.alipay-fill.alipay-line.amazon-fill.amazon-line.anchor-fill.anchor-line.ancient-gate-fill.ancient-gate-line.ancient-pavilion-fill.ancient-pavilion-line.android-fill.android-line.angularjs-fill.angularjs-line.anthropic-fill.anthropic-line.anticlockwise-2-fill.anticlockwise-2-line.anticlockwise-fill.anticlockwise-line.app-store-fill.app-store-line.apple-fill.apple-line.apps-2-add-fill.apps-2-add-line.apps-2-ai-fill.apps-2-ai-line.apps-2-fill.apps-2-line.apps-fill.apps-line.archive-2-fill.archive-2-line.archive-drawer-fill.archive-drawer-line.archive-fill.archive-line.archive-stack-fill.archive-stack-line.armchair-fill.armchair-line.arrow-down-box-fill.arrow-down-box-line.arrow-down-circle-fill.arrow-down-circle-line.arrow-down-double-fill.arrow-down-double-line.arrow-down-fill.arrow-down-line.arrow-down-long-fill.arrow-down-long-line.arrow-down-s-fill.arrow-down-s-line.arrow-down-wide-fill.arrow-down-wide-line.arrow-drop-down-fill.arrow-drop-down-line.arrow-drop-left-fill.arrow-drop-left-line.arrow-drop-right-fill.arrow-drop-right-line.arrow-drop-up-fill.arrow-drop-up-line.arrow-go-back-fill.arrow-go-back-line.arrow-go-forward-fill.arrow-go-forward-line.arrow-left-box-fill.arrow-left-box-line.arrow-left-circle-fill.arrow-left-circle-line.arrow-left-double-fill.arrow-left-double-line.arrow-left-down-box-fill.arrow-left-down-box-line.arrow-left-down-fill.arrow-left-down-line.arrow-left-down-long-fill.arrow-left-down-long-line.arrow-left-fill.arrow-left-line.arrow-left-long-fill.arrow-left-long-line.arrow-left-right-fill.arrow-left-right-line.arrow-left-s-fill.arrow-left-s-line.arrow-left-up-box-fill.arrow-left-up-box-line.arrow-left-up-fill.arrow-left-up-line.arrow-left-up-long-fill.arrow-left-up-long-line.arrow-left-wide-fill.arrow-left-wide-line.arrow-right-box-fill.arrow-right-box-line.arrow-right-circle-fill.arrow-right-circle-line.arrow-right-double-fill.arrow-right-double-line.arrow-right-down-box-fill.arrow-right-down-box-line.arrow-right-down-fill.arrow-right-down-line.arrow-right-down-long-fill.arrow-right-down-long-line.arrow-right-fill.arrow-right-line.arrow-right-long-fill.arrow-right-long-line.arrow-right-s-fill.arrow-right-s-line.arrow-right-up-box-fill.arrow-right-up-box-line.arrow-right-up-fill.arrow-right-up-line.arrow-right-up-long-fill.arrow-right-up-long-line.arrow-right-wide-fill.arrow-right-wide-line.arrow-turn-back-fill.arrow-turn-back-line.arrow-turn-forward-fill.arrow-turn-forward-line.arrow-up-box-fill.arrow-up-box-line.arrow-up-circle-fill.arrow-up-circle-line.arrow-up-double-fill.arrow-up-double-line.arrow-up-down-fill.arrow-up-down-line.arrow-up-fill.arrow-up-line.arrow-up-long-fill.arrow-up-long-line.arrow-up-s-fill.arrow-up-s-line.arrow-up-wide-fill.arrow-up-wide-line.artboard-2-fill.artboard-2-line.artboard-fill.artboard-line.article-fill.article-line.aspect-ratio-fill.aspect-ratio-line.asterisk.at-fill.at-line.attachment-2.attachment-fill.attachment-line.auction-fill.auction-line.award-fill.award-line.baidu-fill.baidu-line.ball-pen-fill.ball-pen-line.bank-card-2-fill.bank-card-2-line.bank-card-fill.bank-card-line.bank-fill.bank-line.bar-chart-2-fill.bar-chart-2-line.bar-chart-box-ai-fill.bar-chart-box-ai-line.bar-chart-box-fill.bar-chart-box-line.bar-chart-fill.bar-chart-grouped-fill.bar-chart-grouped-line.bar-chart-horizontal-fill.bar-chart-horizontal-line.bar-chart-line.barcode-box-fill.barcode-box-line.barcode-fill.barcode-line.bard-fill.bard-line.barricade-fill.barricade-line.base-station-fill.base-station-line.basketball-fill.basketball-line.battery-2-charge-fill.battery-2-charge-line.battery-2-fill.battery-2-line.battery-charge-fill.battery-charge-line.battery-fill.battery-line.battery-low-fill.battery-low-line.battery-saver-fill.battery-saver-line.battery-share-fill.battery-share-line.bear-smile-fill.bear-smile-line.beer-fill.beer-line.behance-fill.behance-line.bell-fill.bell-line.bike-fill.bike-line.bilibili-fill.bilibili-line.bill-fill.bill-line.billiards-fill.billiards-line.bit-coin-fill.bit-coin-line.blaze-fill.blaze-line.blender-fill.blender-line.blogger-fill.blogger-line.bluesky-fill.bluesky-line.bluetooth-connect-fill.bluetooth-connect-line.bluetooth-fill.bluetooth-line.blur-off-fill.blur-off-line.bnb-fill.bnb-line.body-scan-fill.body-scan-line.bold.book-2-fill.book-2-line.book-3-fill.book-3-line.book-fill.book-line.book-marked-fill.book-marked-line.book-open-fill.book-open-line.book-read-fill.book-read-line.book-shelf-fill.book-shelf-line.booklet-fill.booklet-line.bookmark-2-fill.bookmark-2-line.bookmark-3-fill.bookmark-3-line.bookmark-fill.bookmark-line.bootstrap-fill.bootstrap-line.bowl-fill.bowl-line.box-1-fill.box-1-line.box-2-fill.box-2-line.box-3-fill.box-3-line.boxing-fill.boxing-line.braces-fill.braces-line.brackets-fill.brackets-line.brain-2-fill.brain-2-line.brain-fill.brain-line.bread-fill.bread-line.briefcase-2-fill.briefcase-2-line.briefcase-3-fill.briefcase-3-line.briefcase-4-fill.briefcase-4-line.briefcase-5-fill.briefcase-5-line.briefcase-fill.briefcase-line.bring-forward.bring-to-front.broadcast-fill.broadcast-line.brush-2-fill.brush-2-line.brush-3-fill.brush-3-line.brush-4-fill.brush-4-line.brush-ai-fill.brush-ai-line.brush-fill.brush-line.btc-fill.btc-line.bubble-chart-fill.bubble-chart-line.bug-2-fill.bug-2-line.bug-fill.bug-line.building-2-fill.building-2-line.building-3-fill.building-3-line.building-4-fill.building-4-line.building-fill.building-line.bus-2-fill.bus-2-line.bus-fill.bus-line.bus-wifi-fill.bus-wifi-line.cactus-fill.cactus-line.cake-2-fill.cake-2-line.cake-3-fill.cake-3-line.cake-fill.cake-line.calculator-fill.calculator-line.calendar-2-fill.calendar-2-line.calendar-check-fill.calendar-check-line.calendar-close-fill.calendar-close-line.calendar-event-fill.calendar-event-line.calendar-fill.calendar-line.calendar-schedule-fill.calendar-schedule-line.calendar-todo-fill.calendar-todo-line.calendar-view.camera-2-fill.camera-2-line.camera-3-fill.camera-3-line.camera-ai-fill.camera-ai-line.camera-fill.camera-lens-ai-fill.camera-lens-ai-line.camera-lens-fill.camera-lens-line.camera-line.camera-off-fill.camera-off-line.camera-switch-fill.camera-switch-line.candle-fill.candle-line.capsule-fill.capsule-line.car-fill.car-line.car-washing-fill.car-washing-line.caravan-fill.caravan-line.carousel-view.cash-fill.cash-line.cast-fill.cast-line.cellphone-fill.cellphone-line.celsius-fill.celsius-line.centos-fill.centos-line.character-recognition-fill.character-recognition-line.charging-pile-2-fill.charging-pile-2-line.charging-pile-fill.charging-pile-line.chat-1-fill.chat-1-line.chat-2-fill.chat-2-line.chat-3-fill.chat-3-line.chat-4-fill.chat-4-line.chat-ai-fill.chat-ai-line.chat-check-fill.chat-check-line.chat-delete-fill.chat-delete-line.chat-download-fill.chat-download-line.chat-follow-up-fill.chat-follow-up-line.chat-forward-fill.chat-forward-line.chat-heart-fill.chat-heart-line.chat-history-fill.chat-history-line.chat-new-fill.chat-new-line.chat-off-fill.chat-off-line.chat-poll-fill.chat-poll-line.chat-private-fill.chat-private-line.chat-quote-fill.chat-quote-line.chat-search-fill.chat-search-line.chat-settings-fill.chat-settings-line.chat-smile-2-fill.chat-smile-2-line.chat-smile-3-fill.chat-smile-3-line.chat-smile-ai-fill.chat-smile-ai-line.chat-smile-fill.chat-smile-line.chat-thread-fill.chat-thread-line.chat-unread-fill.chat-unread-line.chat-upload-fill.chat-upload-line.chat-voice-ai-fill.chat-voice-ai-line.chat-voice-fill.chat-voice-line.check-double-fill.check-double-line.check-fill.check-line.checkbox-blank-circle-fill.checkbox-blank-circle-line.checkbox-blank-fill.checkbox-blank-line.checkbox-circle-fill.checkbox-circle-line.checkbox-fill.checkbox-indeterminate-fill.checkbox-indeterminate-line.checkbox-line.checkbox-multiple-blank-fill.checkbox-multiple-blank-line.checkbox-multiple-fill.checkbox-multiple-line.chess-fill.chess-line.china-railway-fill.china-railway-line.chrome-fill.chrome-line.circle-fill.circle-line.clapperboard-ai-fill.clapperboard-ai-line.clapperboard-fill.clapperboard-line.claude-fill.claude-line.clipboard-fill.clipboard-line.clockwise-2-fill.clockwise-2-line.clockwise-fill.clockwise-line.close-circle-fill.close-circle-line.close-fill.close-large-fill.close-large-line.close-line.closed-captioning-ai-fill.closed-captioning-ai-line.closed-captioning-fill.closed-captioning-line.cloud-fill.cloud-line.cloud-off-fill.cloud-off-line.cloud-windy-fill.cloud-windy-line.cloudy-2-fill.cloudy-2-line.cloudy-fill.cloudy-line.code-ai-fill.code-ai-line.code-block.code-box-fill.code-box-line.code-fill.code-line.code-s-fill.code-s-line.code-s-slash-fill.code-s-slash-line.code-view.codepen-fill.codepen-line.coin-fill.coin-line.coins-fill.coins-line.collage-fill.collage-line.collapse-diagonal-2-fill.collapse-diagonal-2-line.collapse-diagonal-fill.collapse-diagonal-line.collapse-horizontal-fill.collapse-horizontal-line.collapse-vertical-fill.collapse-vertical-line.color-filter-ai-fill.color-filter-ai-line.color-filter-fill.color-filter-line.command-fill.command-line.community-fill.community-line.compass-2-fill.compass-2-line.compass-3-fill.compass-3-line.compass-4-fill.compass-4-line.compass-discover-fill.compass-discover-line.compass-fill.compass-line.compasses-2-fill.compasses-2-line.compasses-fill.compasses-line.computer-fill.computer-line.contacts-book-2-fill.contacts-book-2-line.contacts-book-3-fill.contacts-book-3-line.contacts-book-fill.contacts-book-line.contacts-book-upload-fill.contacts-book-upload-line.contacts-fill.contacts-line.contract-fill.contract-left-fill.contract-left-line.contract-left-right-fill.contract-left-right-line.contract-line.contract-right-fill.contract-right-line.contract-up-down-fill.contract-up-down-line.contrast-2-fill.contrast-2-line.contrast-drop-2-fill.contrast-drop-2-line.contrast-drop-fill.contrast-drop-line.contrast-fill.contrast-line.copilot-fill.copilot-line.copper-coin-fill.copper-coin-line.copper-diamond-fill.copper-diamond-line.copyleft-fill.copyleft-line.copyright-fill.copyright-line.coreos-fill.coreos-line.corner-down-left-fill.corner-down-left-line.corner-down-right-fill.corner-down-right-line.corner-left-down-fill.corner-left-down-line.corner-left-up-fill.corner-left-up-line.corner-right-down-fill.corner-right-down-line.corner-right-up-fill.corner-right-up-line.corner-up-left-double-fill.corner-up-left-double-line.corner-up-left-fill.corner-up-left-line.corner-up-right-double-fill.corner-up-right-double-line.corner-up-right-fill.corner-up-right-line.coupon-2-fill.coupon-2-line.coupon-3-fill.coupon-3-line.coupon-4-fill.coupon-4-line.coupon-5-fill.coupon-5-line.coupon-fill.coupon-line.cpu-fill.cpu-line.creative-commons-by-fill.creative-commons-by-line.creative-commons-fill.creative-commons-line.creative-commons-nc-fill.creative-commons-nc-line.creative-commons-nd-fill.creative-commons-nd-line.creative-commons-sa-fill.creative-commons-sa-line.creative-commons-zero-fill.creative-commons-zero-line.criminal-fill.criminal-line.crop-2-fill.crop-2-line.crop-fill.crop-line.cross-fill.cross-line.crosshair-2-fill.crosshair-2-line.crosshair-fill.crosshair-line.css3-fill.css3-line.cup-fill.cup-line.currency-fill.currency-line.cursor-fill.cursor-line.custom-size.customer-service-2-fill.customer-service-2-line.customer-service-fill.customer-service-line.dashboard-2-fill.dashboard-2-line.dashboard-3-fill.dashboard-3-line.dashboard-fill.dashboard-horizontal-fill.dashboard-horizontal-line.dashboard-line.database-2-fill.database-2-line.database-fill.database-line.delete-back-2-fill.delete-back-2-line.delete-back-fill.delete-back-line.delete-bin-2-fill.delete-bin-2-line.delete-bin-3-fill.delete-bin-3-line.delete-bin-4-fill.delete-bin-4-line.delete-bin-5-fill.delete-bin-5-line.delete-bin-6-fill.delete-bin-6-line.delete-bin-7-fill.delete-bin-7-line.delete-bin-fill.delete-bin-line.delete-column.delete-row.device-fill.device-line.device-recover-fill.device-recover-line.diamond-fill.diamond-line.diamond-ring-fill.diamond-ring-line.dice-1-fill.dice-1-line.dice-2-fill.dice-2-line.dice-3-fill.dice-3-line.dice-4-fill.dice-4-line.dice-5-fill.dice-5-line.dice-6-fill.dice-6-line.dice-fill.dice-line.dingding-fill.dingding-line.direction-fill.direction-line.disc-fill.disc-line.discord-fill.discord-line.discount-percent-fill.discount-percent-line.discuss-fill.discuss-line.dislike-fill.dislike-line.disqus-fill.disqus-line.divide-fill.divide-line.dna-fill.dna-line.donut-chart-fill.donut-chart-line.door-closed-fill.door-closed-line.door-fill.door-line.door-lock-box-fill.door-lock-box-line.door-lock-fill.door-lock-line.door-open-fill.door-open-line.dossier-fill.dossier-line.douban-fill.douban-line.double-quotes-l.double-quotes-r.download-2-fill.download-2-line.download-cloud-2-fill.download-cloud-2-line.download-cloud-fill.download-cloud-line.download-fill.download-line.draft-fill.draft-line.drag-drop-fill.drag-drop-line.drag-move-2-fill.drag-move-2-line.drag-move-fill.drag-move-line.draggable.dribbble-fill.dribbble-line.drinks-2-fill.drinks-2-line.drinks-fill.drinks-line.drive-fill.drive-line.drizzle-fill.drizzle-line.drop-fill.drop-line.dropbox-fill.dropbox-line.dropdown-list.dropper-fill.dropper-line.dual-sim-1-fill.dual-sim-1-line.dual-sim-2-fill.dual-sim-2-line.dv-fill.dv-line.dvd-ai-fill.dvd-ai-line.dvd-fill.dvd-line.e-bike-2-fill.e-bike-2-line.e-bike-fill.e-bike-line.earth-fill.earth-line.earthquake-fill.earthquake-line.edge-fill.edge-line.edge-new-fill.edge-new-line.edit-2-fill.edit-2-line.edit-box-fill.edit-box-line.edit-circle-fill.edit-circle-line.edit-fill.edit-line.eject-fill.eject-line.emoji-sticker-fill.emoji-sticker-line.emotion-2-fill.emotion-2-line.emotion-fill.emotion-happy-fill.emotion-happy-line.emotion-laugh-fill.emotion-laugh-line.emotion-line.emotion-normal-fill.emotion-normal-line.emotion-sad-fill.emotion-sad-line.emotion-unhappy-fill.emotion-unhappy-line.empathize-fill.empathize-line.emphasis.emphasis-cn.english-input.equal-fill.equal-line.equalizer-2-fill.equalizer-2-line.equalizer-3-fill.equalizer-3-line.equalizer-fill.equalizer-line.eraser-fill.eraser-line.error-warning-fill.error-warning-line.eth-fill.eth-line.evernote-fill.evernote-line.exchange-2-fill.exchange-2-line.exchange-box-fill.exchange-box-line.exchange-cny-fill.exchange-cny-line.exchange-dollar-fill.exchange-dollar-line.exchange-fill.exchange-funds-fill.exchange-funds-line.exchange-line.expand-diagonal-2-fill.expand-diagonal-2-line.expand-diagonal-fill.expand-diagonal-line.expand-diagonal-s-2-fill.expand-diagonal-s-2-line.expand-diagonal-s-fill.expand-diagonal-s-line.expand-height-fill.expand-height-line.expand-horizontal-fill.expand-horizontal-line.expand-horizontal-s-fill.expand-horizontal-s-line.expand-left-fill.expand-left-line.expand-left-right-fill.expand-left-right-line.expand-right-fill.expand-right-line.expand-up-down-fill.expand-up-down-line.expand-vertical-fill.expand-vertical-line.expand-vertical-s-fill.expand-vertical-s-line.expand-width-fill.expand-width-line.export-fill.export-line.external-link-fill.external-link-line.eye-2-fill.eye-2-line.eye-close-fill.eye-close-line.eye-fill.eye-line.eye-off-fill.eye-off-line.facebook-box-fill.facebook-box-line.facebook-circle-fill.facebook-circle-line.facebook-fill.facebook-line.fahrenheit-fill.fahrenheit-line.fediverse-fill.fediverse-line.feedback-fill.feedback-line.figma-fill.figma-line.file-2-fill.file-2-line.file-3-fill.file-3-line.file-4-fill.file-4-line.file-add-fill.file-add-line.file-chart-2-fill.file-chart-2-line.file-chart-fill.file-chart-line.file-check-fill.file-check-line.file-close-fill.file-close-line.file-cloud-fill.file-cloud-line.file-code-fill.file-code-line.file-copy-2-fill.file-copy-2-line.file-copy-fill.file-copy-line.file-damage-fill.file-damage-line.file-download-fill.file-download-line.file-edit-fill.file-edit-line.file-excel-2-fill.file-excel-2-line.file-excel-fill.file-excel-line.file-fill.file-forbid-fill.file-forbid-line.file-gif-fill.file-gif-line.file-history-fill.file-history-line.file-hwp-fill.file-hwp-line.file-image-fill.file-image-line.file-info-fill.file-info-line.file-line.file-list-2-fill.file-list-2-line.file-list-3-fill.file-list-3-line.file-list-fill.file-list-line.file-lock-fill.file-lock-line.file-marked-fill.file-marked-line.file-music-fill.file-music-line.file-paper-2-fill.file-paper-2-line.file-paper-fill.file-paper-line.file-pdf-2-fill.file-pdf-2-line.file-pdf-fill.file-pdf-line.file-ppt-2-fill.file-ppt-2-line.file-ppt-fill.file-ppt-line.file-reduce-fill.file-reduce-line.file-search-fill.file-search-line.file-settings-fill.file-settings-line.file-shield-2-fill.file-shield-2-line.file-shield-fill.file-shield-line.file-shred-fill.file-shred-line.file-text-fill.file-text-line.file-transfer-fill.file-transfer-line.file-unknow-fill.file-unknow-line.file-upload-fill.file-upload-line.file-user-fill.file-user-line.file-video-fill.file-video-line.file-warning-fill.file-warning-line.file-word-2-fill.file-word-2-line.file-word-fill.file-word-line.file-zip-fill.file-zip-line.film-ai-fill.film-ai-line.film-fill.film-line.filter-2-fill.filter-2-line.filter-3-fill.filter-3-line.filter-fill.filter-line.filter-off-fill.filter-off-line.find-replace-fill.find-replace-line.finder-fill.finder-line.fingerprint-2-fill.fingerprint-2-line.fingerprint-fill.fingerprint-line.fire-fill.fire-line.firebase-fill.firebase-line.firefox-browser-fill.firefox-browser-line.firefox-fill.firefox-line.first-aid-kit-fill.first-aid-kit-line.flag-2-fill.flag-2-line.flag-fill.flag-line.flag-off-fill.flag-off-line.flashlight-fill.flashlight-line.flask-fill.flask-line.flickr-fill.flickr-line.flight-land-fill.flight-land-line.flight-takeoff-fill.flight-takeoff-line.flip-horizontal-2-fill.flip-horizontal-2-line.flip-horizontal-fill.flip-horizontal-line.flip-vertical-2-fill.flip-vertical-2-line.flip-vertical-fill.flip-vertical-line.flood-fill.flood-line.flow-chart.flower-fill.flower-line.flutter-fill.flutter-line.focus-2-fill.focus-2-line.focus-3-fill.focus-3-line.focus-fill.focus-line.focus-mode.foggy-fill.foggy-line.folder-2-fill.folder-2-line.folder-3-fill.folder-3-line.folder-4-fill.folder-4-line.folder-5-fill.folder-5-line.folder-6-fill.folder-6-line.folder-add-fill.folder-add-line.folder-chart-2-fill.folder-chart-2-line.folder-chart-fill.folder-chart-line.folder-check-fill.folder-check-line.folder-close-fill.folder-close-line.folder-cloud-fill.folder-cloud-line.folder-download-fill.folder-download-line.folder-fill.folder-forbid-fill.folder-forbid-line.folder-history-fill.folder-history-line.folder-image-fill.folder-image-line.folder-info-fill.folder-info-line.folder-keyhole-fill.folder-keyhole-line.folder-line.folder-lock-fill.folder-lock-line.folder-music-fill.folder-music-line.folder-open-fill.folder-open-line.folder-received-fill.folder-received-line.folder-reduce-fill.folder-reduce-line.folder-settings-fill.folder-settings-line.folder-shared-fill.folder-shared-line.folder-shield-2-fill.folder-shield-2-line.folder-shield-fill.folder-shield-line.folder-transfer-fill.folder-transfer-line.folder-unknow-fill.folder-unknow-line.folder-upload-fill.folder-upload-line.folder-user-fill.folder-user-line.folder-video-fill.folder-video-line.folder-warning-fill.folder-warning-line.folder-zip-fill.folder-zip-line.folders-fill.folders-line.font-color.font-family.font-mono.font-sans.font-sans-serif.font-size.font-size-2.font-size-ai.football-fill.football-line.footprint-fill.footprint-line.forbid-2-fill.forbid-2-line.forbid-fill.forbid-line.format-clear.formula.forward-10-fill.forward-10-line.forward-15-fill.forward-15-line.forward-30-fill.forward-30-line.forward-5-fill.forward-5-line.forward-end-fill.forward-end-line.forward-end-mini-fill.forward-end-mini-line.fridge-fill.fridge-line.friendica-fill.friendica-line.fullscreen-exit-fill.fullscreen-exit-line.fullscreen-fill.fullscreen-line.function-add-fill.function-add-line.function-fill.function-line.functions.funds-box-fill.funds-box-line.funds-fill.funds-line.gallery-fill.gallery-line.gallery-upload-fill.gallery-upload-line.gallery-view.gallery-view-2.game-fill.game-line.gamepad-fill.gamepad-line.gas-station-fill.gas-station-line.gatsby-fill.gatsby-line.gemini-fill.gemini-line.genderless-fill.genderless-line.ghost-2-fill.ghost-2-line.ghost-fill.ghost-line.ghost-smile-fill.ghost-smile-line.gift-2-fill.gift-2-line.gift-fill.gift-line.git-branch-fill.git-branch-line.git-close-pull-request-fill.git-close-pull-request-line.git-commit-fill.git-commit-line.git-fork-fill.git-fork-line.git-merge-fill.git-merge-line.git-pr-draft-fill.git-pr-draft-line.git-pull-request-fill.git-pull-request-line.git-repository-commits-fill.git-repository-commits-line.git-repository-fill.git-repository-line.git-repository-private-fill.git-repository-private-line.github-fill.github-line.gitlab-fill.gitlab-line.glasses-2-fill.glasses-2-line.glasses-fill.glasses-line.global-fill.global-line.globe-fill.globe-line.goblet-2-fill.goblet-2-line.goblet-fill.goblet-line.goggles-fill.goggles-line.golf-ball-fill.golf-ball-line.google-fill.google-line.google-play-fill.google-play-line.government-fill.government-line.gps-fill.gps-line.gradienter-fill.gradienter-line.graduation-cap-fill.graduation-cap-line.grid-fill.grid-line.group-2-fill.group-2-line.group-3-fill.group-3-line.group-fill.group-line.guide-fill.guide-line.h-1.h-2.h-3.h-4.h-5.h-6.hail-fill.hail-line.hammer-fill.hammer-line.hand.hand-coin-fill.hand-coin-line.hand-heart-fill.hand-heart-line.hand-sanitizer-fill.hand-sanitizer-line.handbag-fill.handbag-line.hard-drive-2-fill.hard-drive-2-line.hard-drive-3-fill.hard-drive-3-line.hard-drive-fill.hard-drive-line.hashtag.haze-2-fill.haze-2-line.haze-fill.haze-line.hd-fill.hd-line.heading.headphone-fill.headphone-line.health-book-fill.health-book-line.heart-2-fill.heart-2-line.heart-3-fill.heart-3-line.heart-add-2-fill.heart-add-2-line.heart-add-fill.heart-add-line.heart-fill.heart-line.heart-pulse-fill.heart-pulse-line.hearts-fill.hearts-line.heavy-showers-fill.heavy-showers-line.hexagon-fill.hexagon-line.history-fill.history-line.home-2-fill.home-2-line.home-3-fill.home-3-line.home-4-fill.home-4-line.home-5-fill.home-5-line.home-6-fill.home-6-line.home-7-fill.home-7-line.home-8-fill.home-8-line.home-9-fill.home-9-line.home-fill.home-gear-fill.home-gear-line.home-heart-fill.home-heart-line.home-line.home-office-fill.home-office-line.home-smile-2-fill.home-smile-2-line.home-smile-fill.home-smile-line.home-wifi-fill.home-wifi-line.honor-of-kings-fill.honor-of-kings-line.honour-fill.honour-line.hospital-fill.hospital-line.hotel-bed-fill.hotel-bed-line.hotel-fill.hotel-line.hotspot-fill.hotspot-line.hourglass-2-fill.hourglass-2-line.hourglass-fill.hourglass-line.hq-fill.hq-line.html5-fill.html5-line.id-card-fill.id-card-line.ie-fill.ie-line.image-2-fill.image-2-line.image-add-fill.image-add-line.image-ai-fill.image-ai-line.image-circle-ai-fill.image-circle-ai-line.image-circle-fill.image-circle-line.image-edit-fill.image-edit-line.image-fill.image-line.import-fill.import-line.inbox-2-fill.inbox-2-line.inbox-archive-fill.inbox-archive-line.inbox-fill.inbox-line.inbox-unarchive-fill.inbox-unarchive-line.increase-decrease-fill.increase-decrease-line.indent-decrease.indent-increase.indeterminate-circle-fill.indeterminate-circle-line.infinity-fill.infinity-line.info-card-fill.info-card-line.info-i.information-2-fill.information-2-line.information-fill.information-line.information-off-fill.information-off-line.infrared-thermometer-fill.infrared-thermometer-line.ink-bottle-fill.ink-bottle-line.input-cursor-move.input-field.input-method-fill.input-method-line.insert-column-left.insert-column-right.insert-row-bottom.insert-row-top.instagram-fill.instagram-line.install-fill.install-line.instance-fill.instance-line.invision-fill.invision-line.italic.java-fill.java-line.javascript-fill.javascript-line.jewelry-fill.jewelry-line.kakao-talk-fill.kakao-talk-line.kanban-view.kanban-view-2.key-2-fill.key-2-line.key-fill.key-line.keyboard-box-fill.keyboard-box-line.keyboard-fill.keyboard-line.keynote-fill.keynote-line.kick-fill.kick-line.knife-blood-fill.knife-blood-line.knife-fill.knife-line.landscape-ai-fill.landscape-ai-line.landscape-fill.landscape-line.layout-2-fill.layout-2-line.layout-3-fill.layout-3-line.layout-4-fill.layout-4-line.layout-5-fill.layout-5-line.layout-6-fill.layout-6-line.layout-bottom-2-fill.layout-bottom-2-line.layout-bottom-fill.layout-bottom-line.layout-column-fill.layout-column-line.layout-fill.layout-grid-2-fill.layout-grid-2-line.layout-grid-fill.layout-grid-line.layout-horizontal-fill.layout-horizontal-line.layout-left-2-fill.layout-left-2-line.layout-left-fill.layout-left-line.layout-line.layout-masonry-fill.layout-masonry-line.layout-right-2-fill.layout-right-2-line.layout-right-fill.layout-right-line.layout-row-fill.layout-row-line.layout-top-2-fill.layout-top-2-line.layout-top-fill.layout-top-line.layout-vertical-fill.layout-vertical-line.leaf-fill.leaf-line.letter-spacing-2.lifebuoy-fill.lifebuoy-line.lightbulb-fill.lightbulb-flash-fill.lightbulb-flash-line.lightbulb-line.line-chart-fill.line-chart-line.line-fill.line-height.line-height-2.line-line.link.link-m.link-unlink.link-unlink-m.linkedin-box-fill.linkedin-box-line.linkedin-fill.linkedin-line.links-fill.links-line.list-check.list-check-2.list-check-3.list-indefinite.list-ordered.list-ordered-2.list-radio.list-settings-fill.list-settings-line.list-unordered.list-view.live-fill.live-line.loader-2-fill.loader-2-line.loader-3-fill.loader-3-line.loader-4-fill.loader-4-line.loader-5-fill.loader-5-line.loader-fill.loader-line.lock-2-fill.lock-2-line.lock-fill.lock-line.lock-password-fill.lock-password-line.lock-star-fill.lock-star-line.lock-unlock-fill.lock-unlock-line.login-box-fill.login-box-line.login-circle-fill.login-circle-line.logout-box-fill.logout-box-line.logout-box-r-fill.logout-box-r-line.logout-circle-fill.logout-circle-line.logout-circle-r-fill.logout-circle-r-line.loop-left-fill.loop-left-line.loop-right-fill.loop-right-line.luggage-cart-fill.luggage-cart-line.luggage-deposit-fill.luggage-deposit-line.lungs-fill.lungs-line.mac-fill.mac-line.macbook-fill.macbook-line.magic-fill.magic-line.mail-add-fill.mail-add-line.mail-ai-fill.mail-ai-line.mail-check-fill.mail-check-line.mail-close-fill.mail-close-line.mail-download-fill.mail-download-line.mail-fill.mail-forbid-fill.mail-forbid-line.mail-line.mail-lock-fill.mail-lock-line.mail-open-fill.mail-open-line.mail-send-fill.mail-send-line.mail-settings-fill.mail-settings-line.mail-star-fill.mail-star-line.mail-unread-fill.mail-unread-line.mail-volume-fill.mail-volume-line.map-2-fill.map-2-line.map-fill.map-line.map-pin-2-fill.map-pin-2-line.map-pin-3-fill.map-pin-3-line.map-pin-4-fill.map-pin-4-line.map-pin-5-fill.map-pin-5-line.map-pin-add-fill.map-pin-add-line.map-pin-fill.map-pin-line.map-pin-range-fill.map-pin-range-line.map-pin-time-fill.map-pin-time-line.map-pin-user-fill.map-pin-user-line.mark-pen-fill.mark-pen-line.markdown-fill.markdown-line.markup-fill.markup-line.mastercard-fill.mastercard-line.mastodon-fill.mastodon-line.medal-2-fill.medal-2-line.medal-fill.medal-line.medicine-bottle-fill.medicine-bottle-line.medium-fill.medium-line.megaphone-fill.megaphone-line.memories-fill.memories-line.men-fill.men-line.mental-health-fill.mental-health-line.menu-2-fill.menu-2-line.menu-3-fill.menu-3-line.menu-4-fill.menu-4-line.menu-5-fill.menu-5-line.menu-add-fill.menu-add-line.menu-fill.menu-fold-2-fill.menu-fold-2-line.menu-fold-3-fill.menu-fold-3-line.menu-fold-4-fill.menu-fold-4-line.menu-fold-fill.menu-fold-line.menu-line.menu-search-fill.menu-search-line.menu-unfold-2-fill.menu-unfold-2-line.menu-unfold-3-fill.menu-unfold-3-line.menu-unfold-4-fill.menu-unfold-4-line.menu-unfold-fill.menu-unfold-line.merge-cells-horizontal.merge-cells-vertical.message-2-fill.message-2-line.message-3-fill.message-3-line.message-fill.message-line.messenger-fill.messenger-line.meta-fill.meta-line.meteor-fill.meteor-line.mic-2-ai-fill.mic-2-ai-line.mic-2-fill.mic-2-line.mic-ai-fill.mic-ai-line.mic-fill.mic-line.mic-off-fill.mic-off-line.mickey-fill.mickey-line.microscope-fill.microscope-line.microsoft-fill.microsoft-line.microsoft-loop-fill.microsoft-loop-line.mind-map.mini-program-fill.mini-program-line.mist-fill.mist-line.mixtral-fill.mixtral-line.mobile-download-fill.mobile-download-line.money-cny-box-fill.money-cny-box-line.money-cny-circle-fill.money-cny-circle-line.money-dollar-box-fill.money-dollar-box-line.money-dollar-circle-fill.money-dollar-circle-line.money-euro-box-fill.money-euro-box-line.money-euro-circle-fill.money-euro-circle-line.money-pound-box-fill.money-pound-box-line.money-pound-circle-fill.money-pound-circle-line.money-rupee-circle-fill.money-rupee-circle-line.moon-clear-fill.moon-clear-line.moon-cloudy-fill.moon-cloudy-line.moon-fill.moon-foggy-fill.moon-foggy-line.moon-line.more-2-fill.more-2-line.more-fill.more-line.motorbike-fill.motorbike-line.mouse-fill.mouse-line.movie-2-ai-fill.movie-2-ai-line.movie-2-fill.movie-2-line.movie-ai-fill.movie-ai-line.movie-fill.movie-line.multi-image-fill.multi-image-line.music-2-fill.music-2-line.music-ai-fill.music-ai-line.music-fill.music-line.mv-ai-fill.mv-ai-line.mv-fill.mv-line.navigation-fill.navigation-line.netease-cloud-music-fill.netease-cloud-music-line.netflix-fill.netflix-line.news-fill.news-line.newspaper-fill.newspaper-line.nextjs-fill.nextjs-line.nft-fill.nft-line.no-credit-card-fill.no-credit-card-line.node-tree.nodejs-fill.nodejs-line.notification-2-fill.notification-2-line.notification-3-fill.notification-3-line.notification-4-fill.notification-4-line.notification-badge-fill.notification-badge-line.notification-fill.notification-line.notification-off-fill.notification-off-line.notification-snooze-fill.notification-snooze-line.notion-fill.notion-line.npmjs-fill.npmjs-line.number-0.number-1.number-2.number-3.number-4.number-5.number-6.number-7.number-8.number-9.numbers-fill.numbers-line.nurse-fill.nurse-line.octagon-fill.octagon-line.oil-fill.oil-line.omega.open-arm-fill.open-arm-line.open-source-fill.open-source-line.openai-fill.openai-line.openbase-fill.openbase-line.opera-fill.opera-line.order-play-fill.order-play-line.organization-chart.outlet-2-fill.outlet-2-line.outlet-fill.outlet-line.overline.p2p-fill.p2p-line.page-separator.pages-fill.pages-line.paint-brush-fill.paint-brush-line.paint-fill.paint-line.palette-fill.palette-line.pantone-fill.pantone-line.paragraph.parent-fill.parent-line.parentheses-fill.parentheses-line.parking-box-fill.parking-box-line.parking-fill.parking-line.pass-expired-fill.pass-expired-line.pass-pending-fill.pass-pending-line.pass-valid-fill.pass-valid-line.passport-fill.passport-line.patreon-fill.patreon-line.pause-circle-fill.pause-circle-line.pause-fill.pause-large-fill.pause-large-line.pause-line.pause-mini-fill.pause-mini-line.paypal-fill.paypal-line.pen-nib-fill.pen-nib-line.pencil-fill.pencil-line.pencil-ruler-2-fill.pencil-ruler-2-line.pencil-ruler-fill.pencil-ruler-line.pentagon-fill.pentagon-line.percent-fill.percent-line.perplexity-fill.perplexity-line.phone-camera-fill.phone-camera-line.phone-fill.phone-find-fill.phone-find-line.phone-line.phone-lock-fill.phone-lock-line.php-fill.php-line.picture-in-picture-2-fill.picture-in-picture-2-line.picture-in-picture-exit-fill.picture-in-picture-exit-line.picture-in-picture-fill.picture-in-picture-line.pie-chart-2-fill.pie-chart-2-line.pie-chart-box-fill.pie-chart-box-line.pie-chart-fill.pie-chart-line.pin-distance-fill.pin-distance-line.ping-pong-fill.ping-pong-line.pinterest-fill.pinterest-line.pinyin-input.pix-fill.pix-line.pixelfed-fill.pixelfed-line.plane-fill.plane-line.planet-fill.planet-line.plant-fill.plant-line.play-circle-fill.play-circle-line.play-fill.play-large-fill.play-large-line.play-line.play-list-2-fill.play-list-2-line.play-list-add-fill.play-list-add-line.play-list-fill.play-list-line.play-mini-fill.play-mini-line.play-reverse-fill.play-reverse-large-fill.play-reverse-large-line.play-reverse-line.play-reverse-mini-fill.play-reverse-mini-line.playstation-fill.playstation-line.plug-2-fill.plug-2-line.plug-fill.plug-line.poker-clubs-fill.poker-clubs-line.poker-diamonds-fill.poker-diamonds-line.poker-hearts-fill.poker-hearts-line.poker-spades-fill.poker-spades-line.polaroid-2-fill.polaroid-2-line.polaroid-fill.polaroid-line.police-badge-fill.police-badge-line.police-car-fill.police-car-line.presentation-fill.presentation-line.price-tag-2-fill.price-tag-2-line.price-tag-3-fill.price-tag-3-line.price-tag-fill.price-tag-line.printer-cloud-fill.printer-cloud-line.printer-fill.printer-line.product-hunt-fill.product-hunt-line.profile-fill.profile-line.progress-1-fill.progress-1-line.progress-2-fill.progress-2-line.progress-3-fill.progress-3-line.progress-4-fill.progress-4-line.progress-5-fill.progress-5-line.progress-6-fill.progress-6-line.progress-7-fill.progress-7-line.progress-8-fill.progress-8-line.prohibited-2-fill.prohibited-2-line.prohibited-fill.prohibited-line.projector-2-fill.projector-2-line.projector-fill.projector-line.psychotherapy-fill.psychotherapy-line.pulse-ai-fill.pulse-ai-line.pulse-fill.pulse-line.pushpin-2-fill.pushpin-2-line.pushpin-fill.pushpin-line.puzzle-2-fill.puzzle-2-line.puzzle-fill.puzzle-line.qq-fill.qq-line.qr-code-fill.qr-code-line.qr-scan-2-fill.qr-scan-2-line.qr-scan-fill.qr-scan-line.question-answer-fill.question-answer-line.question-fill.question-line.question-mark.questionnaire-fill.questionnaire-line.quill-pen-ai-fill.quill-pen-ai-line.quill-pen-fill.quill-pen-line.quote-text.radar-fill.radar-line.radio-2-fill.radio-2-line.radio-button-fill.radio-button-line.radio-fill.radio-line.rainbow-fill.rainbow-line.rainy-fill.rainy-line.ram-2-fill.ram-2-line.ram-fill.ram-line.reactjs-fill.reactjs-line.receipt-fill.receipt-line.record-circle-fill.record-circle-line.record-mail-fill.record-mail-line.rectangle-fill.rectangle-line.recycle-fill.recycle-line.red-packet-fill.red-packet-line.reddit-fill.reddit-line.refresh-fill.refresh-line.refund-2-fill.refund-2-line.refund-fill.refund-line.registered-fill.registered-line.remix-run-fill.remix-run-line.remixicon-fill.remixicon-line.remote-control-2-fill.remote-control-2-line.remote-control-fill.remote-control-line.repeat-2-fill.repeat-2-line.repeat-fill.repeat-line.repeat-one-fill.repeat-one-line.replay-10-fill.replay-10-line.replay-15-fill.replay-15-line.replay-30-fill.replay-30-line.replay-5-fill.replay-5-line.reply-all-fill.reply-all-line.reply-fill.reply-line.reserved-fill.reserved-line.reset-left-fill.reset-left-line.reset-right-fill.reset-right-line.rest-time-fill.rest-time-line.restart-fill.restart-line.restaurant-2-fill.restaurant-2-line.restaurant-fill.restaurant-line.rewind-fill.rewind-line.rewind-mini-fill.rewind-mini-line.rewind-start-fill.rewind-start-line.rewind-start-mini-fill.rewind-start-mini-line.rfid-fill.rfid-line.rhythm-fill.rhythm-line.riding-fill.riding-line.road-map-fill.road-map-line.roadster-fill.roadster-line.robot-2-fill.robot-2-line.robot-3-fill.robot-3-line.robot-fill.robot-line.rocket-2-fill.rocket-2-line.rocket-fill.rocket-line.rotate-lock-fill.rotate-lock-line.rounded-corner.route-fill.route-line.router-fill.router-line.rss-fill.rss-line.ruler-2-fill.ruler-2-line.ruler-fill.ruler-line.run-fill.run-line.safari-fill.safari-line.safe-2-fill.safe-2-line.safe-3-fill.safe-3-line.safe-fill.safe-line.sailboat-fill.sailboat-line.save-2-fill.save-2-line.save-3-fill.save-3-line.save-fill.save-line.scales-2-fill.scales-2-line.scales-3-fill.scales-3-line.scales-fill.scales-line.scan-2-fill.scan-2-line.scan-fill.scan-line.school-fill.school-line.scissors-2-fill.scissors-2-line.scissors-cut-fill.scissors-cut-line.scissors-fill.scissors-line.screenshot-2-fill.screenshot-2-line.screenshot-fill.screenshot-line.scroll-to-bottom-fill.scroll-to-bottom-line.sd-card-fill.sd-card-line.sd-card-mini-fill.sd-card-mini-line.search-2-fill.search-2-line.search-eye-fill.search-eye-line.search-fill.search-line.secure-payment-fill.secure-payment-line.seedling-fill.seedling-line.send-backward.send-plane-2-fill.send-plane-2-line.send-plane-fill.send-plane-line.send-to-back.sensor-fill.sensor-line.seo-fill.seo-line.separator.server-fill.server-line.service-bell-fill.service-bell-line.service-fill.service-line.settings-2-fill.settings-2-line.settings-3-fill.settings-3-line.settings-4-fill.settings-4-line.settings-5-fill.settings-5-line.settings-6-fill.settings-6-line.settings-fill.settings-line.shadow-fill.shadow-line.shake-hands-fill.shake-hands-line.shape-2-fill.shape-2-line.shape-fill.shape-line.shapes-fill.shapes-line.share-2-fill.share-2-line.share-box-fill.share-box-line.share-circle-fill.share-circle-line.share-fill.share-forward-2-fill.share-forward-2-line.share-forward-box-fill.share-forward-box-line.share-forward-fill.share-forward-line.share-line.shield-check-fill.shield-check-line.shield-cross-fill.shield-cross-line.shield-fill.shield-flash-fill.shield-flash-line.shield-keyhole-fill.shield-keyhole-line.shield-line.shield-star-fill.shield-star-line.shield-user-fill.shield-user-line.shining-2-fill.shining-2-line.shining-fill.shining-line.ship-2-fill.ship-2-line.ship-fill.ship-line.shirt-fill.shirt-line.shopping-bag-2-fill.shopping-bag-2-line.shopping-bag-3-fill.shopping-bag-3-line.shopping-bag-4-fill.shopping-bag-4-line.shopping-bag-fill.shopping-bag-line.shopping-basket-2-fill.shopping-basket-2-line.shopping-basket-fill.shopping-basket-line.shopping-cart-2-fill.shopping-cart-2-line.shopping-cart-fill.shopping-cart-line.showers-fill.showers-line.shuffle-fill.shuffle-line.shut-down-fill.shut-down-line.side-bar-fill.side-bar-line.sidebar-fold-fill.sidebar-fold-line.sidebar-unfold-fill.sidebar-unfold-line.signal-tower-fill.signal-tower-line.signal-wifi-1-fill.signal-wifi-1-line.signal-wifi-2-fill.signal-wifi-2-line.signal-wifi-3-fill.signal-wifi-3-line.signal-wifi-error-fill.signal-wifi-error-line.signal-wifi-fill.signal-wifi-line.signal-wifi-off-fill.signal-wifi-off-line.signpost-fill.signpost-line.sim-card-2-fill.sim-card-2-line.sim-card-fill.sim-card-line.single-quotes-l.single-quotes-r.sip-fill.sip-line.sketching.skip-back-fill.skip-back-line.skip-back-mini-fill.skip-back-mini-line.skip-down-fill.skip-down-line.skip-forward-fill.skip-forward-line.skip-forward-mini-fill.skip-forward-mini-line.skip-left-fill.skip-left-line.skip-right-fill.skip-right-line.skip-up-fill.skip-up-line.skull-2-fill.skull-2-line.skull-fill.skull-line.skype-fill.skype-line.slack-fill.slack-line.slash-commands.slash-commands-2.slice-fill.slice-line.slideshow-2-fill.slideshow-2-line.slideshow-3-fill.slideshow-3-line.slideshow-4-fill.slideshow-4-line.slideshow-fill.slideshow-line.slideshow-view.slow-down-fill.slow-down-line.smartphone-fill.smartphone-line.snapchat-fill.snapchat-line.snowflake-fill.snowflake-line.snowy-fill.snowy-line.sofa-fill.sofa-line.sort-alphabet-asc.sort-alphabet-desc.sort-asc.sort-desc.sort-number-asc.sort-number-desc.sound-module-fill.sound-module-line.soundcloud-fill.soundcloud-line.space.space-ship-fill.space-ship-line.spam-2-fill.spam-2-line.spam-3-fill.spam-3-line.spam-fill.spam-line.sparkling-2-fill.sparkling-2-line.sparkling-fill.sparkling-line.speak-ai-fill.speak-ai-line.speak-fill.speak-line.speaker-2-fill.speaker-2-line.speaker-3-fill.speaker-3-line.speaker-fill.speaker-line.spectrum-fill.spectrum-line.speed-fill.speed-line.speed-mini-fill.speed-mini-line.speed-up-fill.speed-up-line.split-cells-horizontal.split-cells-vertical.spotify-fill.spotify-line.spy-fill.spy-line.square-fill.square-line.square-root.stack-fill.stack-line.stack-overflow-fill.stack-overflow-line.stacked-view.stackshare-fill.stackshare-line.stairs-fill.stairs-line.star-fill.star-half-fill.star-half-line.star-half-s-fill.star-half-s-line.star-line.star-off-fill.star-off-line.star-s-fill.star-s-line.star-smile-fill.star-smile-line.steam-fill.steam-line.steering-2-fill.steering-2-line.steering-fill.steering-line.stethoscope-fill.stethoscope-line.sticky-note-2-fill.sticky-note-2-line.sticky-note-add-fill.sticky-note-add-line.sticky-note-fill.sticky-note-line.stock-fill.stock-line.stop-circle-fill.stop-circle-line.stop-fill.stop-large-fill.stop-large-line.stop-line.stop-mini-fill.stop-mini-line.store-2-fill.store-2-line.store-3-fill.store-3-line.store-fill.store-line.strikethrough.strikethrough-2.subscript.subscript-2.subtract-fill.subtract-line.subway-fill.subway-line.subway-wifi-fill.subway-wifi-line.suitcase-2-fill.suitcase-2-line.suitcase-3-fill.suitcase-3-line.suitcase-fill.suitcase-line.sun-cloudy-fill.sun-cloudy-line.sun-fill.sun-foggy-fill.sun-foggy-line.sun-line.supabase-fill.supabase-line.superscript.superscript-2.surgical-mask-fill.surgical-mask-line.surround-sound-fill.surround-sound-line.survey-fill.survey-line.svelte-fill.svelte-line.swap-2-fill.swap-2-line.swap-3-fill.swap-3-line.swap-box-fill.swap-box-line.swap-fill.swap-line.switch-fill.switch-line.sword-fill.sword-line.syringe-fill.syringe-line.t-box-fill.t-box-line.t-shirt-2-fill.t-shirt-2-line.t-shirt-air-fill.t-shirt-air-line.t-shirt-fill.t-shirt-line.table-2.table-3.table-alt-fill.table-alt-line.table-fill.table-line.table-view.tablet-fill.tablet-line.tailwind-css-fill.tailwind-css-line.takeaway-fill.takeaway-line.taobao-fill.taobao-line.tape-fill.tape-line.task-fill.task-line.taxi-fill.taxi-line.taxi-wifi-fill.taxi-wifi-line.team-fill.team-line.telegram-2-fill.telegram-2-line.telegram-fill.telegram-line.temp-cold-fill.temp-cold-line.temp-hot-fill.temp-hot-line.tent-fill.tent-line.terminal-box-fill.terminal-box-line.terminal-fill.terminal-line.terminal-window-fill.terminal-window-line.test-tube-fill.test-tube-line.text.text-block.text-direction-l.text-direction-r.text-snippet.text-spacing.text-wrap.thermometer-fill.thermometer-line.threads-fill.threads-line.thumb-down-fill.thumb-down-line.thumb-up-fill.thumb-up-line.thunderstorms-fill.thunderstorms-line.ticket-2-fill.ticket-2-line.ticket-fill.ticket-line.tiktok-fill.tiktok-line.time-fill.time-line.time-zone-fill.time-zone-line.timeline-view.timer-2-fill.timer-2-line.timer-fill.timer-flash-fill.timer-flash-line.timer-line.todo-fill.todo-line.toggle-fill.toggle-line.token-swap-fill.token-swap-line.tools-fill.tools-line.tooth-fill.tooth-line.tornado-fill.tornado-line.trademark-fill.trademark-line.traffic-light-fill.traffic-light-line.train-fill.train-line.train-wifi-fill.train-wifi-line.translate.translate-2.translate-ai.translate-ai-2.travesti-fill.travesti-line.treasure-map-fill.treasure-map-line.tree-fill.tree-line.trello-fill.trello-line.triangle-fill.triangle-line.triangular-flag-fill.triangular-flag-line.trophy-fill.trophy-line.truck-fill.truck-line.tumblr-fill.tumblr-line.tv-2-fill.tv-2-line.tv-fill.tv-line.twitch-fill.twitch-line.twitter-fill.twitter-line.twitter-x-fill.twitter-x-line.typhoon-fill.typhoon-line.u-disk-fill.u-disk-line.ubuntu-fill.ubuntu-line.umbrella-fill.umbrella-line.underline.uninstall-fill.uninstall-line.unpin-fill.unpin-line.unsplash-fill.unsplash-line.upload-2-fill.upload-2-line.upload-cloud-2-fill.upload-cloud-2-line.upload-cloud-fill.upload-cloud-line.upload-fill.upload-line.usb-fill.usb-line.user-2-fill.user-2-line.user-3-fill.user-3-line.user-4-fill.user-4-line.user-5-fill.user-5-line.user-6-fill.user-6-line.user-add-fill.user-add-line.user-community-fill.user-community-line.user-fill.user-follow-fill.user-follow-line.user-forbid-fill.user-forbid-line.user-heart-fill.user-heart-line.user-line.user-location-fill.user-location-line.user-minus-fill.user-minus-line.user-received-2-fill.user-received-2-line.user-received-fill.user-received-line.user-search-fill.user-search-line.user-settings-fill.user-settings-line.user-shared-2-fill.user-shared-2-line.user-shared-fill.user-shared-line.user-smile-fill.user-smile-line.user-star-fill.user-star-line.user-unfollow-fill.user-unfollow-line.user-voice-fill.user-voice-line.vercel-fill.vercel-line.verified-badge-fill.verified-badge-line.video-add-fill.video-add-line.video-ai-fill.video-ai-line.video-chat-fill.video-chat-line.video-download-fill.video-download-line.video-fill.video-line.video-off-fill.video-off-line.video-on-ai-fill.video-on-ai-line.video-on-fill.video-on-line.video-upload-fill.video-upload-line.vidicon-2-fill.vidicon-2-line.vidicon-fill.vidicon-line.vimeo-fill.vimeo-line.vip-crown-2-fill.vip-crown-2-line.vip-crown-fill.vip-crown-line.vip-diamond-fill.vip-diamond-line.vip-fill.vip-line.virus-fill.virus-line.visa-fill.visa-line.vk-fill.vk-line.voice-ai-fill.voice-ai-line.voice-recognition-fill.voice-recognition-line.voiceprint-fill.voiceprint-line.volume-down-fill.volume-down-line.volume-mute-fill.volume-mute-line.volume-off-vibrate-fill.volume-off-vibrate-line.volume-up-fill.volume-up-line.volume-vibrate-fill.volume-vibrate-line.vuejs-fill.vuejs-line.walk-fill.walk-line.wallet-2-fill.wallet-2-line.wallet-3-fill.wallet-3-line.wallet-fill.wallet-line.water-flash-fill.water-flash-line.water-percent-fill.water-percent-line.webcam-fill.webcam-line.webhook-fill.webhook-line.wechat-2-fill.wechat-2-line.wechat-channels-fill.wechat-channels-line.wechat-fill.wechat-line.wechat-pay-fill.wechat-pay-line.weibo-fill.weibo-line.weight-fill.weight-line.whatsapp-fill.whatsapp-line.wheelchair-fill.wheelchair-line.wifi-fill.wifi-line.wifi-off-fill.wifi-off-line.window-2-fill.window-2-line.window-fill.window-line.windows-fill.windows-line.windy-fill.windy-line.wireless-charging-fill.wireless-charging-line.women-fill.women-line.wordpress-fill.wordpress-line.wubi-input.xbox-fill.xbox-line.xing-fill.xing-line.xrp-fill.xrp-line.xtz-fill.xtz-line.youtube-fill.youtube-line.yuque-fill.yuque-line.zcool-fill.zcool-line.zhihu-fill.zhihu-line.zoom-in-fill.zoom-in-line.zoom-out-fill.zoom-out-line.zzz-fill.zzz-line`.split(`.`),Ob=[{id:`remix`,prefix:``,name:`Remix Icon`,license:`Apache-2.0`,valueMode:`bare`,localRemix:!0},{id:`ant-design`,prefix:`ant-design`,name:`Ant Design Icons`,license:`MIT`,valueMode:`prefixed`,loader:()=>import(`@iconify-json/ant-design/icons.json`)},{id:`ep`,prefix:`ep`,name:`EP 图标`,license:`MIT`,valueMode:`prefixed`,loader:()=>import(`@iconify-json/ep/icons.json`)},{id:`flagpack`,prefix:`flagpack`,name:`Flagpack`,license:`MIT`,valueMode:`prefixed`,loader:()=>import(`@iconify-json/flagpack/icons.json`)},{id:`icon-park`,prefix:`icon-park`,name:`IconPark`,license:`Apache-2.0`,valueMode:`prefixed`,loader:()=>import(`@iconify-json/icon-park/icons.json`)},{id:`icon-park-outline`,prefix:`icon-park-outline`,name:`IconPark Outline`,license:`Apache-2.0`,valueMode:`prefixed`,loader:()=>import(`@iconify-json/icon-park-outline/icons.json`)},{id:`mdi`,prefix:`mdi`,name:`Material Design Icons`,license:`Apache-2.0`,valueMode:`prefixed`,loader:()=>import(`@iconify-json/mdi/icons.json`)},{id:`ri`,prefix:`ri`,name:`Remix (Iconify)`,license:`Apache-2.0`,valueMode:`prefixed`,loader:()=>import(`@iconify-json/ri/icons.json`)},{id:`logos`,prefix:`logos`,name:`SVG Logos`,license:`CC0`,valueMode:`prefixed`,loader:()=>import(`@iconify-json/logos/icons.json`)},{id:`carbon`,prefix:`carbon`,name:`Carbon`,license:`Apache-2.0`,valueMode:`prefixed`,loader:()=>import(`@iconify-json/carbon/icons.json`)},{id:`tabler`,prefix:`tabler`,name:`Tabler Icons`,license:`MIT`,valueMode:`prefixed`,loader:()=>import(`@iconify-json/tabler/icons.json`)},{id:`lucide`,prefix:`lucide`,name:`Lucide`,license:`ISC`,valueMode:`prefixed`,loader:()=>import(`@iconify-json/lucide/icons.json`)},{id:`ph`,prefix:`ph`,name:`Phosphor`,license:`MIT`,valueMode:`prefixed`,loader:()=>import(`@iconify-json/ph/icons.json`)},{id:`bi`,prefix:`bi`,name:`Bootstrap Icons`,license:`MIT`,valueMode:`prefixed`,loader:()=>import(`@iconify-json/bi/icons.json`)}],kb=new Set,Ab=new Map,jb=e=>e.default||e;async function Mb(e){if(e.localRemix)return[];if(Ab.has(e.id))return Ab.get(e.id);if(!e.loader)return[];let t=jb(await e.loader());kb.has(e.id)||((0,n.addCollection)(t),kb.add(e.id));let r=Object.keys(t.icons||{}).sort();return Ab.set(e.id,r),r}var Nb=(e,t)=>e.valueMode===`bare`?t:`${e.prefix}:${t}`,Pb=e=>{let t=String(e||``).trim();if(!t.includes(`:`))return`remix`;let n=t.split(`:`)[0];return Ob.find(e=>e.prefix===n)?.id||`remix`},Fb={class:`fou-icon-picker`},Ib={key:1,class:`fou-icon-picker__placeholder`},Lb={class:`fou-icon-picker__body`},Rb={class:`fou-icon-picker__libs`},zb=[`onClick`],Bb={class:`fou-icon-picker__license-tip`},Vb={class:`fou-icon-picker__main`},Hb={class:`fou-icon-picker__meta`},Ub={key:0,class:`fou-icon-picker__current`},Wb={class:`fou-icon-picker__current-icon`},Gb={class:`fou-icon-picker__grid`},Kb=[`title`],qb=[`title`,`onClick`],Jb={key:1,class:`fou-icon-picker__pager`},Yb=60,Xb=(0,t.defineComponent)({name:`FouIconPicker`,__name:`index`,props:{modelValue:{default:``},placeholder:{default:`home-2-line / mdi:home`}},emits:[`update:modelValue`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.ref)(!1),o=(0,t.ref)(``),s=(0,t.ref)(1),c=(0,t.ref)(`remix`),l=(0,t.ref)(!1),u=(0,t.reactive)({remix:Db}),d=(0,t.reactive)({remix:Db.length}),f=(0,t.computed)(()=>Ob.find(e=>e.id===c.value)||Ob[0]),p=(0,t.computed)(()=>Ob.map(e=>({...e,count:d[e.id]||(e.localRemix?Db.length:`…`)}))),m=(0,t.computed)(()=>u[c.value]||[]),h=(0,t.computed)(()=>{let e=o.value.trim().toLowerCase();return e?m.value.filter(t=>t.toLowerCase().includes(e)):m.value}),g=(0,t.computed)(()=>Math.max(1,Math.ceil(h.value.length/Yb))),_=(0,t.computed)(()=>{let e=(s.value-1)*Yb;return h.value.slice(e,e+Yb)}),v=e=>Nb(f.value,e),y=async e=>{if(e.localRemix){u.remix=Db,d.remix=Db.length;return}if(!u[e.id]?.length){l.value=!0;try{let t=await Mb(e);u[e.id]=t,d[e.id]=t.length}finally{l.value=!1}}},b=async e=>{c.value=e,s.value=1,o.value=``;let t=Ob.find(t=>t.id===e);t&&await y(t)},x=()=>{a.value=!0},S=async()=>{c.value=Pb(r.modelValue),await y(f.value)},C=e=>{i(`update:modelValue`,v(e)),a.value=!1},w=()=>{i(`update:modelValue`,``)},T=e=>{i(`update:modelValue`,e||``),o.value=e?.includes(`:`)?e.split(`:`)[1]||``:e||``,s.value=1,a.value=!0};return(n,r)=>{let i=k,u=va,d=Vt,f=Pt,y=or,E=pt;return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,Fb,[(0,t.createElementVNode)(`div`,{class:`fou-icon-picker__trigger`,onClick:x},[(0,t.createElementVNode)(`span`,{class:(0,t.normalizeClass)([`fou-icon-picker__preview-wrap`,{"is-on":!!e.modelValue}])},[e.modelValue?((0,t.openBlock)(),(0,t.createBlock)(i,{key:0,icon:e.modelValue,class:`fou-icon-picker__preview`},null,8,[`icon`])):((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Ib,(0,t.toDisplayString)((0,t.unref)(Y)(`选择图标`)),1))],2),(0,t.createVNode)(u,{"model-value":e.modelValue,class:`fou-icon-picker__input`,placeholder:e.placeholder,clearable:``,"onUpdate:modelValue":T,onFocus:x,onClick:(0,t.withModifiers)(x,[`stop`])},null,8,[`model-value`,`placeholder`]),(0,t.createVNode)(d,{size:`small`,onClick:(0,t.withModifiers)(x,[`stop`])},{default:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`apps-2-line`})]),_:1})]),(0,t.createVNode)(E,{modelValue:(0,t.unref)(a),"onUpdate:modelValue":r[3]||=e=>(0,t.isRef)(a)?a.value=e:null,title:(0,t.unref)(Y)(`选择图标`),width:`920px`,"z-index":5300,"show-minimize":!1,"show-fullscreen":!1,"destroy-on-close":``,onOpened:S},{default:(0,t.withCtx)(()=>[(0,t.createElementVNode)(`div`,Lb,[(0,t.unref)(l)?((0,t.openBlock)(),(0,t.createBlock)(Wa,{key:0,class:`fou-icon-picker__loading`})):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`aside`,Rb,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(p),e=>((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:e.id,type:`button`,class:(0,t.normalizeClass)([`fou-icon-picker__lib`,{"is-active":(0,t.unref)(c)===e.id}]),onClick:t=>b(e.id)},[(0,t.createElementVNode)(`strong`,null,(0,t.toDisplayString)(e.name),1),(0,t.createElementVNode)(`span`,null,(0,t.toDisplayString)(e.count)+` icons`,1),(0,t.createElementVNode)(`em`,null,(0,t.toDisplayString)(e.license),1)],10,zb))),128)),(0,t.createElementVNode)(`p`,Bb,(0,t.toDisplayString)((0,t.unref)(Y)(`均为免费开源图标,可商用(按需懒加载)`)),1)]),(0,t.createElementVNode)(`div`,Vb,[(0,t.createVNode)(u,{modelValue:(0,t.unref)(o),"onUpdate:modelValue":r[0]||=e=>(0,t.isRef)(o)?o.value=e:null,clearable:``,placeholder:(0,t.unref)(Y)(`搜索图标名`),class:`fou-icon-picker__search`,onInput:r[1]||=e=>s.value=1},{prefix:(0,t.withCtx)(()=>[(0,t.createVNode)(i,{icon:`search-line`})]),_:1},8,[`modelValue`,`placeholder`]),(0,t.createElementVNode)(`div`,Hb,[(0,t.createElementVNode)(`span`,null,(0,t.toDisplayString)((0,t.unref)(h).length)+` / `+(0,t.toDisplayString)((0,t.unref)(m).length),1),e.modelValue?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Ub,[(0,t.createTextVNode)((0,t.toDisplayString)((0,t.unref)(Y)(`当前`))+`: `,1),(0,t.createElementVNode)(`span`,Wb,[(0,t.createVNode)(i,{icon:e.modelValue},null,8,[`icon`])]),(0,t.createElementVNode)(`code`,null,(0,t.toDisplayString)(e.modelValue),1)])):(0,t.createCommentVNode)(``,!0),e.modelValue?((0,t.openBlock)(),(0,t.createBlock)(d,{key:1,link:``,type:`danger`,size:`small`,onClick:w},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)((0,t.unref)(Y)(`清除`)),1)]),_:1})):(0,t.createCommentVNode)(``,!0)]),(0,t.createElementVNode)(`div`,Gb,[(0,t.createElementVNode)(`button`,{type:`button`,class:`fou-icon-picker__item is-clear`,title:(0,t.unref)(Y)(`清除图标`),onClick:w},[(0,t.createVNode)(i,{icon:`delete-bin-line`}),(0,t.createElementVNode)(`span`,null,(0,t.toDisplayString)((0,t.unref)(Y)(`清除`)),1)],8,Kb),((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(_),n=>((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:n,type:`button`,class:(0,t.normalizeClass)([`fou-icon-picker__item`,{"is-active":e.modelValue===v(n)}]),title:v(n),onClick:e=>C(n)},[(0,t.createVNode)(i,{icon:v(n)},null,8,[`icon`]),(0,t.createElementVNode)(`span`,null,(0,t.toDisplayString)(n),1)],10,qb))),128))]),!(0,t.unref)(l)&&!(0,t.unref)(h).length?((0,t.openBlock)(),(0,t.createBlock)(f,{key:0,description:(0,t.unref)(Y)(`无匹配图标`)},null,8,[`description`])):(0,t.createCommentVNode)(``,!0),(0,t.unref)(g)>1?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Jb,[(0,t.createVNode)(y,{"current-page":(0,t.unref)(s),"onUpdate:currentPage":r[2]||=e=>(0,t.isRef)(s)?s.value=e:null,background:``,layout:`prev, pager, next, jumper`,"page-size":Yb,total:(0,t.unref)(h).length,small:``},null,8,[`current-page`,`total`])])):(0,t.createCommentVNode)(``,!0)])])]),_:1},8,[`modelValue`,`title`])])}}}),Zb=v({default:()=>Qb}),Qb=S(Xb,[[`__scopeId`,`data-v-cac005a6`]]),$b=[`src`],ex={class:`fou-image-viewer__toolbar`},tx={key:2,class:`fou-image-viewer__index`},nx=(0,t.defineComponent)({name:`FouImageViewer`,__name:`index`,props:{modelValue:{type:Boolean,default:!1},urlList:{default:()=>[]},initialIndex:{default:0},hideOnClickModal:{type:Boolean,default:!0},zIndex:{}},emits:[`update:modelValue`,`close`,`switch`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.ref)(0),o=(0,t.ref)(3e3),s=(0,t.ref)(1),c=(0,t.computed)(()=>(r.urlList||[]).filter(Boolean));(0,t.watch)(()=>[r.modelValue,r.initialIndex],([e,t])=>{e&&(a.value=Math.min(Math.max(0,t),Math.max(0,c.value.length-1)),s.value=1,o.value=r.zIndex||le(3e3))},{immediate:!0});let l=()=>{i(`update:modelValue`,!1),i(`close`)},u=()=>{r.hideOnClickModal&&l()},d=e=>{c.value.length&&(a.value=(a.value+e+c.value.length)%c.value.length,s.value=1,i(`switch`,a.value))},f=e=>{s.value=Math.min(4,Math.max(.4,Number((s.value+e).toFixed(2))))},p=e=>{f(e.deltaY>0?-.15:.15)},m=e=>{r.modelValue&&(e.key===`Escape`&&l(),e.key===`ArrowLeft`&&d(-1),e.key===`ArrowRight`&&d(1))};return(0,t.onMounted)(()=>document.addEventListener(`keydown`,m)),(0,t.onBeforeUnmount)(()=>document.removeEventListener(`keydown`,m)),(n,r)=>{let i=k;return(0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:`body`},[(0,t.createVNode)(t.Transition,{name:`fou-image-viewer-fade`},{default:(0,t.withCtx)(()=>[e.modelValue?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:`fou-image-viewer`,style:(0,t.normalizeStyle)({zIndex:(0,t.unref)(o)}),role:`dialog`,"aria-modal":`true`,"aria-label":`图片预览`,onClick:(0,t.withModifiers)(u,[`self`])},[(0,t.createElementVNode)(`button`,{type:`button`,class:`fou-image-viewer__btn is-close`,"aria-label":`关闭`,onClick:l},[(0,t.createVNode)(i,{icon:`close-line`})]),(0,t.unref)(c).length>1?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:0,type:`button`,class:`fou-image-viewer__btn is-prev`,"aria-label":`上一张`,onClick:r[0]||=(0,t.withModifiers)(e=>d(-1),[`stop`])},[(0,t.createVNode)(i,{icon:`arrow-left-s-line`})])):(0,t.createCommentVNode)(``,!0),(0,t.unref)(c).length>1?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:1,type:`button`,class:`fou-image-viewer__btn is-next`,"aria-label":`下一张`,onClick:r[1]||=(0,t.withModifiers)(e=>d(1),[`stop`])},[(0,t.createVNode)(i,{icon:`arrow-right-s-line`})])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`img`,{class:`fou-image-viewer__img`,src:(0,t.unref)(c)[(0,t.unref)(a)]||``,alt:``,style:(0,t.normalizeStyle)({transform:`scale(${(0,t.unref)(s)})`}),onClick:r[2]||=(0,t.withModifiers)(()=>{},[`stop`]),onWheel:(0,t.withModifiers)(p,[`prevent`])},null,44,$b),(0,t.createElementVNode)(`div`,ex,[(0,t.createElementVNode)(`button`,{type:`button`,"aria-label":`缩小`,onClick:r[3]||=(0,t.withModifiers)(e=>f(-.2),[`stop`])},[(0,t.createVNode)(i,{icon:`zoom-out-line`})]),(0,t.createElementVNode)(`button`,{type:`button`,"aria-label":`重置`,onClick:r[4]||=(0,t.withModifiers)(e=>s.value=1,[`stop`])},[(0,t.createVNode)(i,{icon:`aspect-ratio-line`})]),(0,t.createElementVNode)(`button`,{type:`button`,"aria-label":`放大`,onClick:r[5]||=(0,t.withModifiers)(e=>f(.2),[`stop`])},[(0,t.createVNode)(i,{icon:`zoom-in-line`})])]),(0,t.unref)(c).length>1?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,tx,(0,t.toDisplayString)((0,t.unref)(a)+1)+` / `+(0,t.toDisplayString)((0,t.unref)(c).length),1)):(0,t.createCommentVNode)(``,!0)],4)):(0,t.createCommentVNode)(``,!0)]),_:1})])}}}),rx=v({default:()=>ix}),ix=S(nx,[[`__scopeId`,`data-v-98059a31`]]),ax=Symbol(`FouImagePreviewGroup`),ox=[`src`,`alt`,`loading`],sx={key:0,class:`fou-image__mask`},cx=(0,t.defineComponent)({name:`FouImage`,__name:`index`,props:{src:{default:``},fit:{default:`cover`},alt:{default:``},lazy:{type:Boolean,default:!1},preview:{type:Boolean,default:!0},previewSrcList:{default:()=>[]},initialIndex:{default:0},hideOnClickModal:{type:Boolean,default:!0}},setup(e){let n=e,r=(0,t.inject)(ax,null),i=(0,t.ref)(!1),a=(0,t.computed)(()=>n.previewSrcList.length?n.previewSrcList:n.src?[n.src]:[]),o=(0,t.computed)(()=>{if(!n.previewSrcList.length)return 0;let e=n.previewSrcList.indexOf(n.src||``);return e>=0?e:n.initialIndex}),s=(0,t.computed)(()=>n.preview&&(!!n.src||n.previewSrcList.length>0));(0,t.watch)(()=>n.src,(e,t)=>{r&&(t&&r.unregister(t),e&&r.register(e))},{immediate:!0}),(0,t.onUnmounted)(()=>{n.src&&r?.unregister(n.src)});let c=()=>{if(s.value){if(r&&n.src){r.open(n.src);return}i.value=!0}};return(n,l)=>{let u=k;return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-image`,{"is-preview":(0,t.unref)(s)}]),onClick:c},[(0,t.createElementVNode)(`img`,{class:`fou-image__inner`,src:e.src,alt:e.alt,loading:e.lazy?`lazy`:void 0,style:(0,t.normalizeStyle)({objectFit:e.fit})},null,12,ox),(0,t.unref)(s)?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,sx,[(0,t.createVNode)(u,{icon:`zoom-in-line`})])):(0,t.createCommentVNode)(``,!0),(0,t.unref)(r)?(0,t.createCommentVNode)(``,!0):((0,t.openBlock)(),(0,t.createBlock)(ix,{key:1,modelValue:(0,t.unref)(i),"onUpdate:modelValue":l[0]||=e=>(0,t.isRef)(i)?i.value=e:null,"url-list":(0,t.unref)(a),"initial-index":(0,t.unref)(o),"hide-on-click-modal":e.hideOnClickModal},null,8,[`modelValue`,`url-list`,`initial-index`,`hide-on-click-modal`]))],2)}}}),lx=v({default:()=>ux}),ux=S(cx,[[`__scopeId`,`data-v-7a1a7c78`]]),dx={class:`fou-image-preview-group`},fx=(0,t.defineComponent)({name:`FouImagePreviewGroup`,__name:`index`,setup(e){let n=(0,t.ref)([]),r=(0,t.ref)(!1),i=(0,t.ref)(0);return(0,t.provide)(ax,{register:e=>{e&&!n.value.includes(e)&&(n.value=[...n.value,e])},unregister:e=>{n.value=n.value.filter(t=>t!==e)},open:e=>{let t=n.value.indexOf(e);i.value=t>=0?t:0,r.value=!0}}),(e,a)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,dx,[(0,t.renderSlot)(e.$slots,`default`),(0,t.createVNode)(ix,{modelValue:(0,t.unref)(r),"onUpdate:modelValue":a[0]||=e=>(0,t.isRef)(r)?r.value=e:null,"url-list":(0,t.unref)(n),"initial-index":(0,t.unref)(i),onSwitch:a[1]||=e=>i.value=e},null,8,[`modelValue`,`url-list`,`initial-index`])]))}}),px=v({default:()=>mx}),mx=fx,hx=[`value`,`disabled`,`type`,`aria-label`,`onInput`,`onKeydown`,`onFocus`],gx=(0,t.defineComponent)({name:`FouInputOtp`,__name:`index`,props:{modelValue:{default:``},length:{default:6},size:{default:`default`},disabled:{type:Boolean,default:!1},mask:{type:Boolean,default:!1},numeric:{type:Boolean,default:!0}},emits:[`update:modelValue`,`change`,`complete`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.ref)(null),o=(0,t.ref)([]),s=(0,t.computed)(()=>{let e=String(r.modelValue||``).slice(0,r.length).split(``),t=[];for(let n=0;n<r.length;n++)t.push(e[n]??``);return t}),c=(e,t)=>{o.value[t]=e},l=e=>{let t=e.join(``);i(`update:modelValue`,t),i(`change`,t),t.length===r.length&&!e.includes(``)&&i(`complete`,t)},u=e=>{(0,t.nextTick)(()=>o.value[e]?.focus())},d=(e,t)=>{let n=e.target.value;r.numeric&&(n=n.replace(/\D/g,``)),n=n.slice(-1);let i=[...s.value];i[t]=n,n&&t<r.length-1&&u(t+1),l(i)},f=(e,t)=>{if(e.key===`Backspace`){let n=[...s.value];n[t]?(n[t]=``,l(n)):t>0&&(n[t-1]=``,l(n),u(t-1)),e.preventDefault()}else e.key===`ArrowLeft`&&t>0?u(t-1):e.key===`ArrowRight`&&t<r.length-1&&u(t+1)},p=(e,t)=>{e.target.select()},m=e=>{e.preventDefault();let t=e.clipboardData?.getData(`text`)??``;r.numeric&&(t=t.replace(/\D/g,``));let n=t.slice(0,r.length).split(``),i=[...s.value];n.forEach((e,t)=>i[t]=e),l(i),u(Math.min(n.length,r.length-1))};return(0,t.watch)(()=>r.length,()=>o.value=[]),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{ref_key:`rootRef`,ref:a,class:(0,t.normalizeClass)([`fou-otp`,[`fou-otp--${e.size}`,{"is-disabled":e.disabled}]]),onPaste:m},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(s.value,(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`input`,{key:r,ref_for:!0,ref:e=>c(e,r),class:(0,t.normalizeClass)([`fou-otp__input`,{"is-filled":!!n}]),value:n,disabled:e.disabled,type:e.mask?`password`:`text`,inputmode:`numeric`,maxlength:`1`,"aria-label":`验证码第 ${r+1} 位`,onInput:e=>d(e,r),onKeydown:e=>f(e,r),onFocus:e=>p(e,r)},null,42,hx))),128))],34))}}),_x=v({default:()=>vx}),vx=S(gx,[[`__scopeId`,`data-v-f3046b65`]]),yx={class:`fou-input-tag__text`},bx=[`onClick`],xx={key:0,class:`fou-input-tag__more`},Sx=[`value`,`placeholder`,`disabled`],Cx=(0,t.defineComponent)({name:`FouInputTag`,__name:`index`,props:{modelValue:{default:()=>[]},placeholder:{default:`请输入后回车`},disabled:{type:Boolean,default:!1},max:{default:0},collapseTags:{type:Boolean,default:!1},collapseTagsTooltip:{type:Boolean},closable:{type:Boolean,default:!0},size:{default:`default`},delimiter:{default:`,`},trigger:{default:`Enter`}},emits:[`update:modelValue`,`change`,`add`,`remove`],setup(e,{emit:n}){let r=e,i=n,a=di(()=>r.disabled),{triggerBlur:o,triggerChange:s}=fi(),c=(0,t.ref)(null),l=(0,t.ref)(``),u=(0,t.ref)(!1),d=(0,t.computed)(()=>Array.isArray(r.modelValue)?r.modelValue:[]),f=(0,t.computed)(()=>r.max>0&&d.value.length>=r.max),p=(0,t.computed)(()=>r.collapseTags&&d.value.length>1?d.value.slice(0,1):d.value),m=(0,t.computed)(()=>r.collapseTags&&d.value.length>1?d.value.length-1:0),h=(0,t.computed)(()=>{let e=r.delimiter;return Array.isArray(e)?e:[e]}),g=e=>{let t=e.trim();if(!t||a.value||f.value){l.value=``;return}if(d.value.includes(t)){l.value=``;return}let n=[...d.value,t];i(`update:modelValue`,n),i(`change`,n),i(`add`,t),s(),l.value=``},_=e=>{if(a.value)return;let t=d.value[e],n=d.value.filter((t,n)=>n!==e);i(`update:modelValue`,n),i(`change`,n),i(`remove`,t),s()},v=e=>{let t=e.target.value,n=h.value.find(e=>e&&t.includes(e));if(n){g(t.split(n)[0]||``);return}l.value=t},y=e=>{let t=e.key===`Enter`,n=e.key===` `;if(r.trigger===`Enter`&&t||r.trigger===`Space`&&n||r.trigger===`Both`&&(t||n)){e.preventDefault(),g(l.value);return}e.key===`Backspace`&&!l.value&&d.value.length&&_(d.value.length-1)},b=()=>{u.value=!1,l.value&&g(l.value),o()},x=()=>{a.value||c.value?.focus()};return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-input-tag`,[`fou-input-tag--${e.size}`,{"is-disabled":(0,t.unref)(a),"is-focused":(0,t.unref)(u),"is-collapse":e.collapseTags}]]),onClick:x},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(p),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:`${n}-${r}`,class:`fou-input-tag__tag`},[(0,t.createElementVNode)(`span`,yx,(0,t.toDisplayString)(n),1),!(0,t.unref)(a)&&e.closable?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:0,type:`button`,class:`fou-input-tag__close`,"aria-label":`删除`,onClick:(0,t.withModifiers)(e=>_(r),[`stop`])},` × `,8,bx)):(0,t.createCommentVNode)(``,!0)]))),128)),(0,t.unref)(m)?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,xx,`+`+(0,t.toDisplayString)((0,t.unref)(m)),1)):(0,t.createCommentVNode)(``,!0),!(0,t.unref)(a)&&!(0,t.unref)(f)?((0,t.openBlock)(),(0,t.createElementBlock)(`input`,{key:1,ref_key:`inputRef`,ref:c,class:`fou-input-tag__inner`,value:(0,t.unref)(l),placeholder:(0,t.unref)(d).length?``:e.placeholder,disabled:(0,t.unref)(a),onInput:v,onKeydown:y,onFocus:r[0]||=e=>u.value=!0,onBlur:b},null,40,Sx)):(0,t.createCommentVNode)(``,!0)],2))}}),wx=v({default:()=>Tx}),Tx=S(Cx,[[`__scopeId`,`data-v-d22da89a`]]),Ex=(0,t.defineComponent)({name:`FouKbd`,__name:`index`,props:{size:{default:`default`}},setup(e){return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`kbd`,{class:(0,t.normalizeClass)([`fou-kbd`,[`fou-kbd--${e.size}`]])},[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)],2))}}),Dx=v({default:()=>Ox}),Ox=S(Ex,[[`__scopeId`,`data-v-7af3b298`]]),kx=(0,t.defineComponent)({name:`FouLayoutContainer`,__name:`index`,props:{direction:{default:`horizontal`},fit:{type:Boolean,default:!1},gap:{default:12}},setup(e){return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-layout`,[`fou-layout--${e.direction}`]])},[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)],2))}}),Ax=v({default:()=>jx}),jx=S(kx,[[`__scopeId`,`data-v-8f7fef83`]]),Mx=[`href`,`target`,`rel`],Nx={key:1,class:`fou-link__text`},Px=(0,t.defineComponent)({name:`FouLink`,__name:`index`,props:{type:{default:`default`},href:{},target:{},underline:{type:[Boolean,String],default:`hover`},disabled:{type:Boolean,default:!1},icon:{},iconRight:{}},emits:[`click`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.computed)(()=>r.target===`_blank`?`noopener noreferrer`:void 0),o=e=>{if(r.disabled){e.preventDefault(),e.stopPropagation();return}i(`click`,e)};return(n,r)=>{let i=k;return(0,t.openBlock)(),(0,t.createElementBlock)(`a`,{class:(0,t.normalizeClass)([`fou-link`,[`fou-link--${e.type}`,{"is-underline":e.underline===!0||e.underline===`always`,"is-hover-underline":e.underline===`hover`||e.underline===!0,"is-disabled":e.disabled}]]),href:e.disabled?void 0:e.href,target:e.target,rel:(0,t.unref)(a),onClick:o},[e.icon?((0,t.openBlock)(),(0,t.createBlock)(i,{key:0,icon:e.icon,class:`fou-link__icon`},null,8,[`icon`])):(0,t.createCommentVNode)(``,!0),n.$slots.default?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Nx,[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)])):(0,t.createCommentVNode)(``,!0),e.iconRight?((0,t.openBlock)(),(0,t.createBlock)(i,{key:2,icon:e.iconRight,class:`fou-link__icon`},null,8,[`icon`])):(0,t.createCommentVNode)(``,!0)],10,Mx)}}}),Fx=v({default:()=>Ix}),Ix=S(Px,[[`__scopeId`,`data-v-c2be34b7`]]),Lx=[`href`,`target`],Rx={class:`fou-link-preview__content`},zx={class:`fou-link-preview__host`},Bx={key:0,class:`fou-link-preview__title`},Vx={key:1,class:`fou-link-preview__desc`},Hx=(0,t.defineComponent)({name:`FouLinkPreview`,__name:`index`,props:{href:{},title:{default:``},description:{default:``},image:{default:``},target:{default:`_blank`},openDelay:{default:200},closeDelay:{default:150}},emits:[`visibleChange`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.ref)(null),o=(0,t.ref)(null),s=(0,t.ref)(!1),c=(0,t.ref)({}),l,u,d=!1,f=(0,t.computed)(()=>{try{return new URL(r.href).hostname}catch{return r.href}}),p=()=>{l&&clearTimeout(l),u&&clearTimeout(u)},m=async()=>{p(),l=setTimeout(async()=>{s.value=!0,i(`visibleChange`,!0),await(0,t.nextTick)(),b()},r.openDelay)},h=()=>{p(),u=setTimeout(()=>{d||(s.value=!1,i(`visibleChange`,!1))},r.closeDelay)},g=()=>m(),_=()=>h(),v=()=>{d=!0,p()},y=()=>{d=!1,h()},b=()=>{let e=a.value,t=o.value;if(!e||!t)return;let n=e.getBoundingClientRect(),r=t.getBoundingClientRect(),i=n.bottom+10;i+r.height>window.innerHeight-4&&(i=n.top-r.height-10);let s=n.left;s=Math.min(Math.max(4,s),window.innerWidth-r.width-4),i=Math.max(4,i),c.value={position:`fixed`,top:`${i}px`,left:`${s}px`,width:`${Math.min(320,window.innerWidth-8)}px`,zIndex:`2100`}},x=()=>s.value&&b();return(0,t.watch)(s,e=>{e?(window.addEventListener(`scroll`,x,!0),window.addEventListener(`resize`,x)):(window.removeEventListener(`scroll`,x,!0),window.removeEventListener(`resize`,x))}),(0,t.onBeforeUnmount)(()=>{p(),window.removeEventListener(`scroll`,x,!0),window.removeEventListener(`resize`,x)}),(n,r)=>{let i=k;return(0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,null,[(0,t.createElementVNode)(`a`,{ref_key:`triggerRef`,ref:a,class:`fou-link-preview`,href:e.href,target:e.target,rel:`noopener noreferrer`,onMouseenter:g,onMouseleave:_},[(0,t.renderSlot)(n.$slots,`default`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.href),1)],!0)],40,Lx),((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:`body`},[(0,t.createVNode)(t.Transition,{name:`fou-link-preview-fade`},{default:(0,t.withCtx)(()=>[s.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,ref_key:`cardRef`,ref:o,class:`fou-link-preview__panel`,style:(0,t.normalizeStyle)(c.value),onMouseenter:v,onMouseleave:y},[e.image?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:`fou-link-preview__image`,style:(0,t.normalizeStyle)({backgroundImage:`url(${e.image})`})},null,4)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,Rx,[(0,t.createElementVNode)(`div`,zx,[(0,t.createVNode)(i,{icon:`links-line`}),(0,t.createElementVNode)(`span`,null,(0,t.toDisplayString)(f.value),1)]),e.title?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Bx,(0,t.toDisplayString)(e.title),1)):(0,t.createCommentVNode)(``,!0),e.description?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,Vx,(0,t.toDisplayString)(e.description),1)):(0,t.createCommentVNode)(``,!0)])],36)):(0,t.createCommentVNode)(``,!0)]),_:1})]))],64)}}}),Ux=v({default:()=>Wx}),Wx=S(Hx,[[`__scopeId`,`data-v-3733dca3`]]),Gx=[`value`,`rows`,`placeholder`,`disabled`],Kx=[`value`,`placeholder`,`disabled`],qx={class:`fou-mention__list`},Jx=[`onMousedown`,`onMouseenter`],Yx={key:0,class:`fou-mention__avatar`},Xx={class:`fou-mention__label`},Zx=(0,t.defineComponent)({name:`FouMention`,__name:`index`,props:{modelValue:{default:``},options:{default:()=>[]},triggerChar:{default:`@`},placeholder:{default:`输入 @ 提及他人`},size:{default:`default`},disabled:{type:Boolean,default:!1},type:{default:`text`},rows:{default:3}},emits:[`update:modelValue`,`select`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.ref)(null),o=(0,t.ref)(null),s=(0,t.ref)(!1),c=(0,t.ref)(0),l=(0,t.ref)(``),u=(0,t.ref)({}),d=(0,t.computed)(()=>{let e=l.value.toLowerCase();return r.options.filter(t=>t.label.toLowerCase().includes(e))}),f=e=>{let t=e.target.value;i(`update:modelValue`,t),p(t,e.target.selectionStart??t.length)},p=(e,t)=>{let n=e.slice(0,t),i=n.lastIndexOf(r.triggerChar);if(i===-1){s.value=!1;return}let a=n.slice(i+1);if(/\s/.test(a)){s.value=!1;return}l.value=a,c.value=0,m()},m=async()=>{s.value=!0,await(0,t.nextTick)(),h()},h=()=>{let e=a.value,t=o.value;if(!e||!t)return;let n=e.getBoundingClientRect(),r=t.getBoundingClientRect(),i=n.bottom+4;i+r.height>window.innerHeight-4&&(i=n.top-r.height-4);let s=Math.min(Math.max(4,n.left),window.innerWidth-r.width-4);i=Math.max(4,i),u.value={position:`fixed`,top:`${i}px`,left:`${s}px`,width:`${Math.max(n.width,180)}px`,zIndex:`2100`}},g=e=>{let n=a.value;if(!n)return;let o=r.modelValue,c=n.selectionStart??o.length,l=o.slice(0,c).lastIndexOf(r.triggerChar),u=o.slice(0,l),d=o.slice(c),f=`${r.triggerChar}${e.label} `,p=u+f+d;i(`update:modelValue`,p),i(`select`,e),s.value=!1,(0,t.nextTick)(()=>{let e=(u+f).length;n.focus(),n.setSelectionRange(e,e)})},_=e=>g(e),v=e=>{if(s.value){if(e.key===`ArrowDown`)e.preventDefault(),c.value<d.value.length-1&&c.value++;else if(e.key===`ArrowUp`)e.preventDefault(),c.value>0&&c.value--;else if(e.key===`Enter`){e.preventDefault();let t=d.value[c.value];t&&g(t)}else e.key===`Escape`&&(s.value=!1)}},y=e=>{if([`ArrowLeft`,`ArrowRight`,`Home`,`End`].includes(e.key)){let t=e.target;p(t.value,t.selectionStart??0)}},b=e=>{s.value&&(o.value?.contains(e.target)||(s.value=!1))};return(0,t.watch)(s,e=>{e?document.addEventListener(`mousedown`,b,!0):document.removeEventListener(`mousedown`,b,!0)}),(0,t.onBeforeUnmount)(()=>document.removeEventListener(`mousedown`,b,!0)),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-mention`,[`fou-mention--${e.size}`,{"is-disabled":e.disabled}]])},[e.type===`textarea`?((0,t.openBlock)(),(0,t.createElementBlock)(`textarea`,{key:0,ref_key:`inputRef`,ref:a,class:`fou-mention__input`,value:e.modelValue,rows:e.rows,placeholder:e.placeholder,disabled:e.disabled,onInput:f,onKeydown:v,onKeyup:y},null,40,Gx)):((0,t.openBlock)(),(0,t.createElementBlock)(`input`,{key:1,ref_key:`inputRef`,ref:a,class:`fou-mention__input`,value:e.modelValue,placeholder:e.placeholder,disabled:e.disabled,onInput:f,onKeydown:v,onKeyup:y},null,40,Kx)),((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:`body`},[s.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,ref_key:`panelRef`,ref:o,class:`fou-mention__panel`,style:(0,t.normalizeStyle)(u.value)},[(0,t.createElementVNode)(`ul`,qx,[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(d.value,(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`li`,{key:e.value,class:(0,t.normalizeClass)([`fou-mention__option`,{"is-active":n===c.value}]),onMousedown:(0,t.withModifiers)(t=>_(e),[`prevent`]),onMouseenter:e=>c.value=n},[e.avatar?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,Yx,(0,t.toDisplayString)(e.avatar),1)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`span`,Xx,(0,t.toDisplayString)(e.label),1)],42,Jx))),128))])],4)):(0,t.createCommentVNode)(``,!0)]))],2))}}),Qx=v({default:()=>$x}),$x=S(Zx,[[`__scopeId`,`data-v-f948204c`]]),eS=Symbol(`FouRouteMenu`),tS={class:`fou-route-menu__list`},nS=(0,t.defineComponent)({name:`FouMenuRoot`,__name:`FouMenuRoot`,props:{mode:{default:`vertical`},defaultActive:{default:``},collapse:{type:Boolean,default:!1},uniqueOpened:{type:Boolean,default:!1},defaultOpeneds:{default:()=>[]},menuTrigger:{default:`click`}},setup(e,{expose:n}){let r=e,i=(0,t.ref)(r.defaultActive),a=(0,t.ref)(new Set);(0,t.watch)(()=>r.defaultActive,e=>{e&&(i.value=e)}),(0,t.watch)(()=>[...r.defaultOpeneds],e=>{e.forEach(e=>f(e))},{immediate:!0});let o=(0,t.computed)(()=>r.mode),s=(0,t.computed)(()=>r.collapse),c=(0,t.computed)(()=>r.uniqueOpened),l=(0,t.computed)(()=>r.menuTrigger),u=(0,t.computed)(()=>i.value),d=e=>a.value.has(e),f=e=>{if(r.collapse||r.mode===`horizontal`){let t=new Set;for(let n of a.value)(e===n||e.startsWith(`${n}/`))&&t.add(n);t.add(e),a.value=t;return}let t=new Set;if(r.uniqueOpened&&r.mode===`vertical`)for(let n of a.value)(e===n||e.startsWith(`${n}/`))&&t.add(n);else for(let e of a.value)t.add(e);t.add(e),a.value=t},p=e=>{let t=new Set;for(let n of a.value)n===e||n.startsWith(`${e}/`)||t.add(n);a.value=t},m=()=>{a.value=new Set},h=null,g=()=>!!(document.querySelector(`.fou-menu-flyout-panel:hover`)||document.querySelector(`.fou-route-menu-sub.is-popup > .fou-route-menu-sub__title:hover`)||document.querySelector(`.fou-route-menu.is-collapse .fou-route-menu-sub__title:hover`)||document.querySelector(`.fou-route-menu--horizontal .fou-route-menu-sub__title:hover`)||document.querySelector(`.fou-route-menu-item__tip:hover`));return(0,t.onBeforeUnmount)(()=>{h&&clearTimeout(h)}),(0,t.provide)(eS,{mode:o,collapse:s,activeIndex:u,uniqueOpened:c,menuTrigger:l,isSubOpen:d,toggleSub:e=>{d(e)?p(e):f(e)},openSub:f,closeSub:p,enterFlyout:e=>{h&&=(clearTimeout(h),null),f(e)},leaveFlyout:()=>{h&&clearTimeout(h);let e=r.mode===`horizontal`?280:160;h=setTimeout(()=>{if(g()){h=null;return}(r.collapse||r.mode===`horizontal`)&&m(),h=null},e)},selectItem:e=>{i.value=e},isActive:e=>{let t=i.value;return t===e||t.startsWith(`${e}/`)}}),n({open:f,close:p,closeAll:m}),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`nav`,{class:(0,t.normalizeClass)([`fou-route-menu`,[`fou-route-menu--${e.mode}`,{"is-collapse":e.collapse}]]),role:`menu`},[(0,t.createElementVNode)(`ul`,tS,[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)])],2))}}),rS=v({default:()=>iS}),iS=S(nS,[[`__scopeId`,`data-v-2586617d`]]),aS=`加载中...`,oS=3e3;function sS(e,...t){return e}var cS=(0,t.reactive)({lock:!1,device:`desktop`,theme:{layout:`vertical`,autoHideColumnMenu:!1}}),lS=()=>({lock:(0,t.computed)(()=>cS.lock),device:(0,t.computed)(()=>cS.device),theme:(0,t.computed)(()=>cS.theme),foldSideBar:()=>{}});function uS(e){return/^(https?:|mailto:|tel:|http)/.test(e||``)}var dS={class:`fou-route-menu-item__inner`},fS={class:`fou-route-menu-item__icon-wrap`},pS=[`title`],mS={class:`fou-route-menu-item__tip-title`},hS=(0,t.defineComponent)({name:`FouMenuItem`,__name:`FouMenuItem`,props:{itemOrMenu:{type:Object,default:()=>({})}},setup(e){let n=e,i=(0,t.inject)(eS,null),a=null,s=null;try{a=(0,o.useRoute)(),s=(0,o.useRouter)()}catch{a=null,s=null}let c=lS(),l=(0,t.computed)(()=>{try{return c.device?.value??c.device??`desktop`}catch{return`desktop`}}),u=(0,t.computed)(()=>{try{return c.theme?.value??c.theme??{layout:`vertical`}}catch{return{layout:`vertical`}}}),d=()=>{try{c.foldSideBar?.()}catch{}},{enter:f,exit:p}=(0,r.useFullscreen)(),m=()=>{u.value.layout===`column`&&u.value.autoHideColumnMenu&&l.value!==`mobile`&&d()},h=(0,t.ref)(null),g=(0,t.ref)(!1),_=(0,t.ref)({}),v=null,y=(0,t.computed)(()=>n.itemOrMenu.path),b=(0,t.computed)(()=>i?.activeIndex.value===y.value),x=(0,t.computed)(()=>i?.collapse.value??!1),S=(0,t.computed)(()=>sS(n.itemOrMenu.meta?.title||``)),C=(0,t.computed)(()=>n.itemOrMenu.meta?.badgeType||`info`),w=(0,t.computed)(()=>n.itemOrMenu.meta?.badgeEffect||`dark`),T=(0,t.computed)(()=>{let e=n.itemOrMenu.meta?.dot;return e===!0?`danger`:typeof e==`string`?e:`danger`}),E=()=>{let e=h.value;if(!e)return;let t=e.getBoundingClientRect();_.value={position:`fixed`,top:`${Math.round(t.top+t.height/2)}px`,left:`${Math.round(t.right+10)}px`,transform:`translateY(-50%)`,zIndex:`4100`}},D=()=>{v&&=(clearTimeout(v),null),x.value&&(h.value?.closest(`.fou-route-menu-sub__list.is-flyout`)||(E(),g.value=!0))},O=()=>{v&&clearTimeout(v),v=setTimeout(()=>{g.value=!1,v=null},80)};(0,t.onBeforeUnmount)(()=>{v&&clearTimeout(v)});let A=()=>{i?.selectItem(y.value),m(),(0,t.nextTick)(()=>{let e=n.itemOrMenu.path,t=n.itemOrMenu.meta.target,r=n.itemOrMenu.meta.fullscreen;t===`_blank`?((uS(e)||a?.path!==e)&&window.open(e),s?.push(`/redirect`).catch(()=>{})):uS(e)?globalThis.location.href=e:(!a||a.path!==e)&&(l.value===`mobile`&&d(),s?.push(n.itemOrMenu.path).catch(()=>{})),setTimeout(()=>{r?f():p()},1e3)})};return(n,r)=>{let i=k,a=dy,o=fl;return(0,t.openBlock)(),(0,t.createElementBlock)(`li`,{ref_key:`itemRef`,ref:h,class:(0,t.normalizeClass)([`fou-route-menu-item`,{"is-active":(0,t.unref)(b),"is-collapse-tip":(0,t.unref)(x)}]),role:`menuitem`,onClick:A,onMouseenter:D,onMouseleave:O},[(0,t.createElementVNode)(`div`,dS,[(0,t.createElementVNode)(`span`,fS,[(0,t.createVNode)(i,{icon:e.itemOrMenu.meta?.icon||`menu-line`,"is-custom-svg":e.itemOrMenu.meta?.isCustomSvg,title:(0,t.unref)(S)},null,8,[`icon`,`is-custom-svg`,`title`]),e.itemOrMenu.meta?.dot?((0,t.openBlock)(),(0,t.createBlock)(a,{key:0,class:`fou-route-menu-item__dot`,type:(0,t.unref)(T)},null,8,[`type`])):(0,t.createCommentVNode)(``,!0)]),(0,t.createElementVNode)(`span`,{class:`fou-route-menu-item__text`,title:(0,t.unref)(S)},(0,t.toDisplayString)((0,t.unref)(S)),9,pS),e.itemOrMenu.meta?.badge?((0,t.openBlock)(),(0,t.createBlock)(o,{key:0,class:(0,t.normalizeClass)([`fou-route-menu-item__badge`,[`fou-menu-tag--${(0,t.unref)(w)}`]]),size:`small`,type:(0,t.unref)(C),effect:(0,t.unref)(w)},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)((0,t.unref)(sS)(e.itemOrMenu.meta.badge)),1)]),_:1},8,[`class`,`type`,`effect`])):(0,t.createCommentVNode)(``,!0)]),((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:`body`},[(0,t.withDirectives)((0,t.createElementVNode)(`div`,{class:`fou-route-menu-item__tip`,role:`tooltip`,style:(0,t.normalizeStyle)((0,t.unref)(_)),onMouseenter:D,onMouseleave:O},[r[0]||=(0,t.createElementVNode)(`i`,{class:`fou-route-menu-item__tip-arrow`,"aria-hidden":`true`},null,-1),(0,t.createElementVNode)(`span`,mS,(0,t.toDisplayString)((0,t.unref)(S)),1),e.itemOrMenu.meta?.badge?((0,t.openBlock)(),(0,t.createBlock)(o,{key:0,size:`small`,type:(0,t.unref)(C),effect:(0,t.unref)(w)},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)((0,t.unref)(sS)(e.itemOrMenu.meta.badge)),1)]),_:1},8,[`type`,`effect`])):(0,t.createCommentVNode)(``,!0)],36),[[t.vShow,(0,t.unref)(x)&&(0,t.unref)(g)]])]))],34)}}}),gS=v({default:()=>_S}),_S=S(hS,[[`__scopeId`,`data-v-81230a6b`]]),vS=(0,t.defineComponent)({name:`FouMenu`,__name:`index`,props:{item:{type:Object,required:!0},layout:{type:String,default:``}},setup(e){let n=Object.assign({"./components/FouMenuItem.vue":gS,"./components/FouSubMenu.vue":DS}),r={};Object.getOwnPropertyNames(n).forEach(e=>{r[e.replaceAll(/(\/|components|\.|vue)/g,``)]=n[e].default});let i=e,a=(0,t.computed)(()=>i.item.children&&i.item.children.some(e=>e.meta&&e.meta.hidden!==!0)?r.FouSubMenu:r.FouMenuItem);return(n,r)=>{let i=(0,t.resolveComponent)(`fou-menu`);return(0,t.openBlock)(),(0,t.createBlock)((0,t.resolveDynamicComponent)((0,t.unref)(a)),{"item-or-menu":e.item,layout:e.layout},{default:(0,t.withCtx)(()=>[e.item.children&&e.item.children.length>0?((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,{key:0},(0,t.renderList)(e.item.children,n=>((0,t.openBlock)(),(0,t.createBlock)(i,{key:n.path,item:n,layout:e.layout},null,8,[`item`,`layout`]))),128)):(0,t.createCommentVNode)(``,!0)]),_:1},8,[`item-or-menu`,`layout`])}}}),yS=v({default:()=>bS}),bS=vS,xS={class:`fou-route-menu-sub__icon-wrap`},SS=[`title`],CS={key:2,class:`fou-route-menu-sub__more`},wS={key:0,class:`fou-menu-flyout-panel__arrow`,"aria-hidden":`true`},TS={key:1,class:`fou-menu-flyout-panel__head`},ES=(0,t.defineComponent)({name:`FouSubMenu`,__name:`FouSubMenu`,props:{itemOrMenu:{type:Object,default:()=>({})},layout:{type:String,default:``}},setup(e){let n=e,r=(0,t.inject)(eS,null),i=(0,t.ref)(null),a=(0,t.ref)(null),o=(0,t.ref)(null),s=(0,t.ref)({}),c=(0,t.ref)(`right`),l=null,u=(0,t.computed)(()=>n.itemOrMenu.path),d=(0,t.computed)(()=>Y(n.itemOrMenu.meta?.title||``)),f=(0,t.computed)(()=>r?.mode.value===`horizontal`),p=(0,t.computed)(()=>r?.collapse.value??!1),m=(0,t.computed)(()=>f.value||p.value),h=(0,t.computed)(()=>m.value),g=(0,t.computed)(()=>r?.isSubOpen(u.value)??!1),_=(0,t.computed)(()=>r?.isActive(u.value)??!1),v=(0,t.computed)(()=>n.itemOrMenu.meta?.badgeType||`info`),y=(0,t.computed)(()=>n.itemOrMenu.meta?.badgeEffect||`dark`),b=(0,t.computed)(()=>{let e=n.itemOrMenu.meta?.dot;return e===!0?`danger`:typeof e==`string`?e:`danger`}),x=(0,t.computed)(()=>g.value),S=()=>{let e=a.value;if(!e||!h.value)return;let t=e.getBoundingClientRect(),n=u.value.split(`/`).filter(Boolean).length,r=!!e.closest(`.fou-menu-flyout-panel`),i=0,o=0,l=`right`,d=t.left+t.width/2,p=t.top+t.height/2;f.value&&!r?(l=`bottom`,i=Math.round(d-100),o=Math.round(t.bottom+6),i=Math.min(Math.max(8,i),window.innerWidth-200-8)):(i=Math.round(t.right+10),o=Math.round(t.top),i+200>window.innerWidth-8?(i=Math.round(t.left-200-10),l=`left`):l=`right`);let m=window.innerHeight-16;o>m-80&&(o=Math.max(8,m-240)),o<8&&(o=8);let g=Math.round(d-i-5),_=Math.round(p-o-5);g=Math.min(Math.max(12,g),178),_=Math.min(Math.max(12,_),220),c.value=l,s.value={position:`fixed`,top:`${o}px`,left:`${i}px`,zIndex:String(5200+n),"--fou-flyout-arrow-x":`${g}px`,"--fou-flyout-arrow-y":`${_}px`}},C=()=>{m.value?r?.enterFlyout(u.value):r?.openSub(u.value),(0,t.nextTick)(()=>{S(),requestAnimationFrame(()=>S())})},w=()=>{if(r){if(m.value){g.value?r.leaveFlyout():C();return}r.toggleSub(u.value)}},T=()=>{l&&=(clearTimeout(l),null),r&&(r.menuTrigger.value===`hover`||m.value)&&C()},E=e=>{let t=e.relatedTarget;if(!(t&&(i.value?.contains(t)||o.value?.contains(t)))){if(!m.value){if(r?.menuTrigger.value!==`hover`)return;l&&clearTimeout(l),l=setTimeout(()=>{r?.closeSub(u.value),l=null},120);return}r?.leaveFlyout()}};return(0,t.watch)(g,e=>{e&&h.value&&(0,t.nextTick)(()=>S())}),(0,t.onBeforeUnmount)(()=>{l&&clearTimeout(l)}),(n,r)=>{let l=bS,u=k,f=dy,p=fl;return e.itemOrMenu.meta&&e.itemOrMenu.meta.levelHidden?((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,{key:0},(0,t.renderList)(e.itemOrMenu.children,n=>((0,t.openBlock)(),(0,t.createBlock)(l,{key:n.path,item:n,layout:e.layout},null,8,[`item`,`layout`]))),128)):((0,t.openBlock)(),(0,t.createElementBlock)(`li`,{key:1,ref_key:`subRef`,ref:i,class:(0,t.normalizeClass)([`fou-route-menu-sub`,{"is-open":(0,t.unref)(g),"is-active":(0,t.unref)(_),"is-popup":(0,t.unref)(m)}]),role:`none`,onMouseenter:T,onMouseleave:E},[(0,t.createElementVNode)(`div`,{ref_key:`titleRef`,ref:a,class:`fou-route-menu-sub__title`,onClick:w},[(0,t.createElementVNode)(`span`,xS,[(0,t.createVNode)(u,{icon:e.itemOrMenu.meta?.icon||`folder-line`,"is-custom-svg":e.itemOrMenu.meta?.isCustomSvg,title:(0,t.unref)(d)},null,8,[`icon`,`is-custom-svg`,`title`]),e.itemOrMenu.meta?.dot?((0,t.openBlock)(),(0,t.createBlock)(f,{key:0,class:`fou-route-menu-sub__dot`,type:(0,t.unref)(b)},null,8,[`type`])):(0,t.createCommentVNode)(``,!0)]),(0,t.createElementVNode)(`span`,{class:`fou-route-menu-sub__text`,title:(0,t.unref)(d)},(0,t.toDisplayString)((0,t.unref)(d)),9,SS),e.itemOrMenu.meta?.badge?((0,t.openBlock)(),(0,t.createBlock)(p,{key:0,class:(0,t.normalizeClass)([`fou-route-menu-sub__badge`,[`fou-menu-tag--${(0,t.unref)(y)}`]]),size:`small`,type:(0,t.unref)(v),effect:(0,t.unref)(y)},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)((0,t.unref)(Y)(e.itemOrMenu.meta.badge)),1)]),_:1},8,[`class`,`type`,`effect`])):(0,t.createCommentVNode)(``,!0),(0,t.unref)(m)?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,CS,[(0,t.createVNode)(u,{icon:`arrow-right-s-line`})])):((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{key:1,class:(0,t.normalizeClass)([`fou-route-menu-sub__arrow`,{"is-open":(0,t.unref)(g)}])},[(0,t.createVNode)(u,{icon:`arrow-down-s-line`})],2))],512),((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:`body`,disabled:!(0,t.unref)(h)},[(0,t.withDirectives)((0,t.createElementVNode)(`ul`,{ref_key:`listRef`,ref:o,class:(0,t.normalizeClass)([`fou-route-menu-sub__list`,{"is-flyout":(0,t.unref)(h),"fou-menu-flyout-panel":(0,t.unref)(h),[`is-placement-${(0,t.unref)(c)}`]:(0,t.unref)(h)}]),style:(0,t.normalizeStyle)((0,t.unref)(h)?(0,t.unref)(s):void 0),onMouseenter:T,onMouseleave:E},[(0,t.unref)(h)?((0,t.openBlock)(),(0,t.createElementBlock)(`i`,wS)):(0,t.createCommentVNode)(``,!0),(0,t.unref)(h)?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,TS,(0,t.toDisplayString)((0,t.unref)(d)),1)):(0,t.createCommentVNode)(``,!0),(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)],38),[[t.vShow,(0,t.unref)(x)]])],8,[`disabled`]))],34))}}}),DS=v({default:()=>OS}),OS=S(ES,[[`__scopeId`,`data-v-3f0479e1`]]),kS=Symbol(`FouMenuNav`),AS={class:`fou-menu-nav-item__inner`},jS={class:`fou-menu-nav-item__title`},MS=(0,t.defineComponent)({name:`FouMenuNavItem`,__name:`FouMenuNavItem`,props:{index:{},title:{default:``},disabled:{type:Boolean,default:!1}},setup(e){let n=e,r=(0,t.inject)(kS,null),i=null;try{i=(0,o.useRouter)()}catch{i=null}let a=(0,t.computed)(()=>r?.activeIndex.value===n.index),s=()=>{n.disabled||!r||(r.selectItem(n.index),r.router.value&&i&&i.push(n.index).catch(()=>{}))};return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`li`,{class:(0,t.normalizeClass)([`fou-menu-nav-item`,{"is-active":(0,t.unref)(a),"is-disabled":e.disabled}]),role:`menuitem`,onClick:s},[(0,t.createElementVNode)(`div`,AS,[(0,t.renderSlot)(n.$slots,`icon`,{},void 0,!0),(0,t.createElementVNode)(`span`,jS,[(0,t.renderSlot)(n.$slots,`default`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.title),1)],!0)])])],2))}}),NS=v({default:()=>PS}),PS=S(MS,[[`__scopeId`,`data-v-7d03eb13`]]),FS={class:`fou-menu-nav-sub__text`},IS={class:`fou-menu-nav-sub__list`},LS=(0,t.defineComponent)({name:`FouMenuNavSub`,__name:`FouMenuNavSub`,props:{index:{},title:{default:``}},setup(e){let n=e,r=(0,t.inject)(kS,null),i=(0,t.computed)(()=>r?.isSubOpen(n.index)??!1),a=(0,t.computed)(()=>{let e=r?.activeIndex.value??``;return e===n.index||e.startsWith(`${n.index}/`)}),o=()=>{r?.toggleSub(n.index)};return(n,s)=>((0,t.openBlock)(),(0,t.createElementBlock)(`li`,{class:(0,t.normalizeClass)([`fou-menu-nav-sub`,{"is-open":(0,t.unref)(i),"is-active":(0,t.unref)(a)}]),role:`none`},[(0,t.createElementVNode)(`div`,{class:`fou-menu-nav-sub__title`,onClick:o},[(0,t.renderSlot)(n.$slots,`icon`,{},void 0,!0),(0,t.createElementVNode)(`span`,FS,[(0,t.renderSlot)(n.$slots,`title`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.title),1)],!0)]),(0,t.createElementVNode)(`span`,{class:(0,t.normalizeClass)([`fou-menu-nav-sub__arrow`,{"is-open":(0,t.unref)(i)}])},`▾`,2)]),(0,t.withDirectives)((0,t.createElementVNode)(`ul`,IS,[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)],512),[[t.vShow,(0,t.unref)(i)&&!(0,t.unref)(r)?.collapse.value]])],2))}}),RS=v({default:()=>zS}),zS=S(LS,[[`__scopeId`,`data-v-d43bbb7b`]]),BS={class:`fou-menu-nav__list`},VS=(0,t.defineComponent)({name:`FouMenuNav`,__name:`index`,props:{mode:{default:`vertical`},defaultActive:{default:``},defaultOpeneds:{default:()=>[]},collapse:{type:Boolean,default:!1},router:{type:Boolean,default:!1}},emits:[`select`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.ref)(r.defaultActive),o=(0,t.ref)(new Set(r.defaultOpeneds));(0,t.watch)(()=>r.defaultActive,e=>{e&&(a.value=e)}),(0,t.watch)(()=>r.defaultOpeneds,e=>{o.value=new Set(e||[])});let s=(0,t.computed)(()=>r.mode),c=(0,t.computed)(()=>r.collapse),l=(0,t.computed)(()=>r.defaultActive),u=(0,t.computed)(()=>a.value),d=(0,t.computed)(()=>r.router);return(0,t.provide)(kS,{mode:s,collapse:c,defaultActive:l,activeIndex:u,router:d,selectItem:e=>{a.value=e,i(`select`,e)},isSubOpen:e=>o.value.has(e),toggleSub:e=>{let t=new Set(o.value);t.has(e)?t.delete(e):t.add(e),o.value=t}}),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`nav`,{class:(0,t.normalizeClass)([`fou-menu-nav`,[`fou-menu-nav--${e.mode}`,{"is-collapse":e.collapse,"is-horizontal":e.mode===`horizontal`}]]),role:`menu`},[(0,t.createElementVNode)(`ul`,BS,[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)])],2))}}),HS=v({default:()=>US}),US=S(VS,[[`__scopeId`,`data-v-6d01fd65`]]),WS={class:`fou-notify__content`},GS={key:0,class:`fou-notify__title`},KS={key:1,class:`fou-notify__message`},qS=(0,t.defineComponent)({name:`FouNotificationItem`,__name:`FouNotificationItem`,props:{id:{},type:{},position:{},title:{},message:{},showClose:{type:Boolean},visible:{type:Boolean}},emits:[`close`],setup(e){let n=e,r=(0,t.computed)(()=>({success:`ri-checkbox-circle-line`,warning:`ri-alert-line`,info:`ri-information-line`,error:`ri-close-circle-line`})[n.type]);return(n,i)=>((0,t.openBlock)(),(0,t.createBlock)(t.Transition,{name:`fou-notify-fade`},{default:(0,t.withCtx)(()=>[(0,t.withDirectives)((0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`fou-notify`,[`fou-notify--${e.type}`,`fou-notify--${e.position}`]])},[(0,t.createElementVNode)(`i`,{class:(0,t.normalizeClass)([`fou-notify__icon`,(0,t.unref)(r)])},null,2),(0,t.createElementVNode)(`div`,WS,[e.title?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,GS,(0,t.toDisplayString)(e.title),1)):(0,t.createCommentVNode)(``,!0),e.message?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,KS,(0,t.toDisplayString)(e.message),1)):(0,t.createCommentVNode)(``,!0)]),e.showClose?((0,t.openBlock)(),(0,t.createElementBlock)(`i`,{key:0,class:`fou-notify__close ri-close-line`,onClick:i[0]||=e=>n.$emit(`close`)})):(0,t.createCommentVNode)(``,!0)],2),[[t.vShow,e.visible]])]),_:1}))}}),JS=v({default:()=>YS}),YS=qS,XS=(0,t.defineComponent)({name:`FouPage`,inheritAttrs:!1,__name:`index`,setup(e){return(e,n)=>{let r=or;return(0,t.openBlock)(),(0,t.createBlock)(r,(0,t.normalizeProps)((0,t.guardReactiveProps)(e.$attrs)),{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`default`)]),_:3},16)}}}),ZS=v({default:()=>QS}),QS=XS,$S={class:`fou-page-header`},eC={key:0,class:`fou-page-header__breadcrumb`},tC={class:`fou-page-header__main`},nC={class:`fou-page-header__left`},rC={class:`fou-page-header__heading`},iC={key:0,class:`fou-page-header__title`},aC={key:1,class:`fou-page-header__content`},oC={key:0,class:`fou-page-header__extra`},sC=(0,t.defineComponent)({name:`FouPageHeader`,__name:`index`,props:{title:{default:``},content:{default:``},icon:{default:``}},emits:[`back`],setup(e,{emit:n}){let r=n;return(n,i)=>{let a=k;return(0,t.openBlock)(),(0,t.createElementBlock)(`div`,$S,[n.$slots.breadcrumb?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,eC,[(0,t.renderSlot)(n.$slots,`breadcrumb`,{},void 0,!0)])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,tC,[(0,t.createElementVNode)(`div`,nC,[(0,t.createElementVNode)(`button`,{type:`button`,class:`fou-page-header__back`,"aria-label":`返回`,onClick:i[0]||=e=>r(`back`)},[(0,t.renderSlot)(n.$slots,`icon`,{},()=>[(0,t.createVNode)(a,{icon:e.icon||`arrow-left-line`},null,8,[`icon`])],!0)]),(0,t.createElementVNode)(`div`,rC,[e.title||n.$slots.title?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,iC,[(0,t.renderSlot)(n.$slots,`title`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.title),1)],!0)])):(0,t.createCommentVNode)(``,!0),e.content||n.$slots.content?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,aC,[(0,t.renderSlot)(n.$slots,`content`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.content),1)],!0)])):(0,t.createCommentVNode)(``,!0)])]),n.$slots.extra?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,oC,[(0,t.renderSlot)(n.$slots,`extra`,{},void 0,!0)])):(0,t.createCommentVNode)(``,!0)])])}}}),cC=v({default:()=>lC}),lC=S(sC,[[`__scopeId`,`data-v-405076b1`]]),uC={class:`fou-page-main`},dC={key:0,class:`fou-page-main__header`},fC={class:`fou-page-main__heading`},pC={key:0,class:`fou-page-main__title`},mC={key:0,class:`fou-page-main__desc`},hC={key:0,class:`fou-page-main__extra`},gC={class:`fou-page-main__body`},_C=(0,t.defineComponent)({name:`FouPageMain`,__name:`index`,props:{title:{default:``},description:{default:``}},setup(e){return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`section`,uC,[e.title||n.$slots.title||n.$slots.extra?((0,t.openBlock)(),(0,t.createElementBlock)(`header`,dC,[(0,t.createElementVNode)(`div`,fC,[(0,t.renderSlot)(n.$slots,`title`,{},()=>[e.title?((0,t.openBlock)(),(0,t.createElementBlock)(`h2`,pC,(0,t.toDisplayString)(e.title),1)):(0,t.createCommentVNode)(``,!0)],!0),e.description||n.$slots.description?((0,t.openBlock)(),(0,t.createElementBlock)(`p`,mC,[(0,t.renderSlot)(n.$slots,`description`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.description),1)],!0)])):(0,t.createCommentVNode)(``,!0)]),n.$slots.extra?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,hC,[(0,t.renderSlot)(n.$slots,`extra`,{},void 0,!0)])):(0,t.createCommentVNode)(``,!0)])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,gC,[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)])]))}}),vC=v({default:()=>yC}),yC=S(_C,[[`__scopeId`,`data-v-bc32527c`]]),bC=(0,t.defineComponent)({name:`FouParagraph`,__name:`index`,props:{type:{default:``},indent:{type:Boolean,default:!1},lineClamp:{default:0}},setup(e){return(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`p`,{class:(0,t.normalizeClass)([`fou-paragraph`,[e.type?`fou-paragraph--${e.type}`:``,{"is-indent":e.indent,"is-line-clamp":e.lineClamp>0}]]),style:(0,t.normalizeStyle)(e.lineClamp>0?{WebkitLineClamp:String(e.lineClamp)}:void 0)},[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)],6))}}),xC=v({default:()=>SC}),SC=S(bC,[[`__scopeId`,`data-v-a4c339e8`]]),CC={class:`fou-pwd-strength__bars`},wC={key:0,class:`fou-pwd-strength__label`},TC=(0,t.defineComponent)({name:`FouPasswordStrength`,__name:`index`,props:{password:{default:``},showLabel:{type:Boolean,default:!0}},setup(e){let n=e,r=(0,t.computed)(()=>{let e=String(n.password||``);if(!e)return{score:0,label:`weak`,text:``};let t=0;return e.length>=8&&t++,/[A-Z]/.test(e)&&/[a-z]/.test(e)&&t++,/\d/.test(e)&&t++,/[^A-Za-z0-9]/.test(e)&&t++,e.length<6&&(t=Math.min(t,1)),[{score:0,label:`weak`,text:``},{score:1,label:`weak`,text:`弱`},{score:2,label:`fair`,text:`中`},{score:3,label:`good`,text:`强`},{score:4,label:`strong`,text:`极强`}][t]});return(n,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-pwd-strength`,[`fou-pwd-strength--${r.value.label}`]])},[(0,t.createElementVNode)(`div`,CC,[((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(4,e=>(0,t.createElementVNode)(`span`,{key:e,class:(0,t.normalizeClass)([`fou-pwd-strength__bar`,{"is-on":e<=r.value.score}])},null,2)),64))]),e.showLabel?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,wC,(0,t.toDisplayString)(r.value.text),1)):(0,t.createCommentVNode)(``,!0)],2))}}),EC=v({default:()=>DC}),DC=S(TC,[[`__scopeId`,`data-v-7cd9df04`]]),OC={class:`fou-popconfirm-host`},kC={class:`fou-popconfirm__body`},AC={class:`fou-popconfirm__title`},jC={class:`fou-popconfirm__actions`},MC=(0,t.defineComponent)({name:`FouPopconfirm`,inheritAttrs:!1,__name:`index`,props:{title:{default:`确定执行此操作?`},confirmButtonText:{default:`确定`},cancelButtonText:{default:`取消`},confirmButtonType:{default:`primary`},width:{default:240},zIndex:{default:5200}},emits:[`confirm`,`cancel`],setup(e,{emit:n}){let r=e,i=n,a=(0,t.ref)(null),o=(0,t.ref)(null),s=(0,t.ref)(!1),c=(0,t.ref)(`bottom`),l=(0,t.ref)({}),u=(0,t.computed)(()=>typeof r.width==`number`?`${r.width}px`:String(r.width)),d=()=>{let e=a.value,t=o.value;if(!e||!t)return;let n=e.getBoundingClientRect(),i=typeof r.width==`number`?r.width:Number.parseFloat(String(r.width))||240,s=n.left+n.width/2-i/2,d=window.innerWidth,f=window.innerHeight;s=Math.min(Math.max(8,s),d-i-8);let p=t.offsetHeight||96,m=`bottom`,h=n.bottom+10;h+p>f-8&&n.top-10-p>8&&(m=`top`,h=n.top-10-p),c.value=m;let g=n.left+n.width/2,_=Math.round(g-s-6);_=Math.min(Math.max(14,_),i-20),l.value={position:`fixed`,top:`${Math.round(h)}px`,left:`${Math.round(s)}px`,width:u.value,"--fou-popconfirm-arrow-x":`${_}px`}},f=async()=>{s.value=!0,await(0,t.nextTick)(),d(),requestAnimationFrame(()=>d())},p=()=>{s.value=!1},m=()=>{i(`confirm`),p()},h=()=>{i(`cancel`),p()},g=()=>{s.value&&d()};return(0,t.watch)(s,e=>{e?(window.addEventListener(`scroll`,g,!0),window.addEventListener(`resize`,g)):(window.removeEventListener(`scroll`,g,!0),window.removeEventListener(`resize`,g))}),(0,t.onBeforeUnmount)(()=>{window.removeEventListener(`scroll`,g,!0),window.removeEventListener(`resize`,g)}),(n,r)=>{let i=k,u=Vt;return(0,t.openBlock)(),(0,t.createElementBlock)(`span`,OC,[(0,t.createElementVNode)(`span`,{ref_key:`triggerRef`,ref:a,class:`fou-popconfirm__trigger`,onClick:f},[(0,t.renderSlot)(n.$slots,`reference`,{},void 0,!0)],512),((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:`body`},[(0,t.createVNode)(t.Transition,{name:`fou-popconfirm-fade`},{default:(0,t.withCtx)(()=>[(0,t.withDirectives)((0,t.createElementVNode)(`div`,{class:`fou-popconfirm-root`,style:(0,t.normalizeStyle)({zIndex:String(e.zIndex)})},[(0,t.createElementVNode)(`div`,{class:`fou-popconfirm__mask`,onClick:h}),(0,t.createElementVNode)(`div`,{ref_key:`popperRef`,ref:o,class:(0,t.normalizeClass)([`fou-popconfirm`,`is-placement-${(0,t.unref)(c)}`]),style:(0,t.normalizeStyle)((0,t.unref)(l)),onClick:r[0]||=(0,t.withModifiers)(()=>{},[`stop`])},[r[1]||=(0,t.createElementVNode)(`i`,{class:`fou-popconfirm__arrow`,"aria-hidden":`true`},null,-1),(0,t.createElementVNode)(`div`,kC,[(0,t.createVNode)(i,{class:`fou-popconfirm__icon`,icon:`error-warning-line`}),(0,t.createElementVNode)(`div`,AC,(0,t.toDisplayString)(e.title),1)]),(0,t.createElementVNode)(`div`,jC,[(0,t.renderSlot)(n.$slots,`actions`,{},()=>[(0,t.createVNode)(u,{size:`small`,onClick:h},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.cancelButtonText),1)]),_:1}),(0,t.createVNode)(u,{size:`small`,type:e.confirmButtonType,onClick:m},{default:(0,t.withCtx)(()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.confirmButtonText),1)]),_:1},8,[`type`])],!0)])],6)],4),[[t.vShow,(0,t.unref)(s)]])]),_:3})]))])}}}),NC=v({default:()=>PC}),PC=S(MC,[[`__scopeId`,`data-v-c0375827`]]),FC={key:0,class:`fou-popover__title`},IC={class:`fou-popover__body`},LC=(0,t.defineComponent)({name:`FouPopover`,inheritAttrs:!1,__name:`index`,props:{visible:{type:Boolean},title:{default:``},width:{default:240},placement:{default:`bottom`},trigger:{default:`click`},closeOnClickOutside:{type:Boolean,default:!0},zIndex:{default:2e3}},emits:[`update:visible`,`show`,`hide`],setup(e,{emit:n}){let r=(0,t.useAttrs)(),i=e,a=n,o=(0,t.ref)(null),s=(0,t.ref)(null),c=(0,t.ref)(!1),l=(0,t.ref)({}),u=(0,t.ref)(!1),d=(0,t.computed)(()=>i.visible!==void 0),f=(0,t.computed)({get:()=>d.value?!!i.visible:c.value,set:e=>{d.value?a(`update:visible`,e):c.value=e}}),p=(0,t.computed)(()=>typeof i.width==`number`?`${i.width}px`:String(i.width)),m=()=>{let e=o.value,t=s.value;if(!e||!t)return;let n=e.getBoundingClientRect(),r=t.getBoundingClientRect(),a=0,c=0;switch(i.placement){case`top`:a=n.top-r.height-10,c=n.left+n.width/2-r.width/2;break;case`left`:a=n.top+n.height/2-r.height/2,c=n.left-r.width-10;break;case`right`:a=n.top+n.height/2-r.height/2,c=n.right+10;break;default:a=n.bottom+10,c=n.left+n.width/2-r.width/2}let u=window.innerWidth,d=window.innerHeight;c=Math.min(Math.max(4,c),u-r.width-4),a=Math.min(Math.max(4,a),d-r.height-4),l.value={position:`fixed`,top:`${a}px`,left:`${c}px`,width:p.value}},h=async()=>{f.value||(f.value=!0,a(`show`),await(0,t.nextTick)(),m())},g=()=>{f.value&&(f.value=!1,a(`hide`))},_=()=>{i.trigger===`click`&&(f.value?g():h())},v,y=()=>{i.trigger===`hover`&&(v&&clearTimeout(v),h())},b=()=>{i.trigger===`hover`&&(v=setTimeout(()=>{u.value||g()},120))},x=()=>{u.value=!0,v&&clearTimeout(v)},S=()=>{u.value=!1,i.trigger===`hover`&&b()},C=()=>{i.trigger===`click`&&i.closeOnClickOutside&&g()},w=e=>{if(i.trigger!==`click`||!f.value)return;let t=e.target;o.value?.contains(t)||s.value?.contains(t)||i.closeOnClickOutside&&g()},T=()=>{f.value&&m()};return(0,t.watch)(f,e=>{e?(document.addEventListener(`click`,w,!0),window.addEventListener(`scroll`,T,!0),window.addEventListener(`resize`,T)):(document.removeEventListener(`click`,w,!0),window.removeEventListener(`scroll`,T,!0),window.removeEventListener(`resize`,T))}),(0,t.onBeforeUnmount)(()=>{v&&clearTimeout(v),document.removeEventListener(`click`,w,!0),window.removeEventListener(`scroll`,T,!0),window.removeEventListener(`resize`,T)}),(n,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,(0,t.mergeProps)({class:`fou-popover-host`},(0,t.unref)(r)),[(0,t.createElementVNode)(`span`,{ref_key:`triggerRef`,ref:o,class:`fou-popover__trigger`,onClick:_,onMouseenter:y,onMouseleave:b},[(0,t.renderSlot)(n.$slots,`reference`,{},void 0,!0)],544),((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:`body`},[(0,t.createVNode)(t.Transition,{name:`fou-popover-fade`},{default:(0,t.withCtx)(()=>[(0,t.withDirectives)((0,t.createElementVNode)(`div`,{class:`fou-popover-root`,style:(0,t.normalizeStyle)({zIndex:String(e.zIndex)})},[e.trigger===`click`?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:`fou-popover__mask`,onClick:C})):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,{ref_key:`popperRef`,ref:s,class:(0,t.normalizeClass)([`fou-popover`,[`fou-popover--${e.placement}`]]),style:(0,t.normalizeStyle)((0,t.unref)(l)),role:`dialog`,onMouseenter:x,onMouseleave:S,onClick:i[0]||=(0,t.withModifiers)(()=>{},[`stop`])},[e.title||n.$slots.title?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,FC,[(0,t.renderSlot)(n.$slots,`title`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(e.title),1)],!0)])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,IC,[(0,t.renderSlot)(n.$slots,`default`,{},void 0,!0)])],38)],4),[[t.vShow,(0,t.unref)(f)]])]),_:3})]))],16))}}),RC=v({default:()=>zC}),zC=S(LC,[[`__scopeId`,`data-v-0d5add06`]]),BC=[`aria-valuenow`],VC={key:0,class:`fou-progress__text fou-progress__text--inside`},HC={key:0,class:`fou-progress__text`},UC=[`viewBox`],WC=[`cx`,`cy`,`r`,`stroke-width`],GC=[`cx`,`cy`,`r`,`stroke`,`stroke-width`,`stroke-dasharray`,`stroke-dashoffset`,`stroke-linecap`,`transform`],KC={key:0,class:`fou-progress__circle-text`},qC=(0,t.defineComponent)({name:`FouProgress`,__name:`index`,props:{percentage:{default:0},type:{default:`line`},status:{default:``},strokeWidth:{default:6},textInside:{type:Boolean,default:!1},color:{},showText:{type:Boolean,default:!0},width:{default:126}},setup(e){let n=e,r=(0,t.computed)(()=>Math.min(100,Math.max(0,n.percentage))),i=(0,t.computed)(()=>n.status?n.status:r.value>=100?`success`:``),a=(0,t.computed)(()=>({success:`var(--fou-color-success, var(--fou-color-success, #67c23a))`,exception:`var(--fou-color-danger, var(--fou-color-danger, #f56c6c))`,warning:`var(--fou-color-warning, var(--fou-color-warning, #e6a23c))`})[i.value]||`var(--fou-color-primary, var(--fou-color-primary, #0f766e))`),o=(0,t.computed)(()=>typeof n.color==`string`?n.color:typeof n.color==`function`?n.color(r.value):a.value),s=(0,t.computed)(()=>({width:`${r.value}%`,backgroundColor:o.value})),c=(0,t.computed)(()=>i.value===`success`?`✓`:i.value===`exception`?`✕`:i.value===`warning`?`!`:`${r.value}%`),l=(0,t.computed)(()=>n.width/2),u=(0,t.computed)(()=>(n.width-n.strokeWidth)/2),d=(0,t.computed)(()=>2*Math.PI*u.value),f=(0,t.computed)(()=>n.type===`dashboard`?.75:1),p=(0,t.computed)(()=>{let e=r.value/100;return d.value*(1-e*f.value)}),m=(0,t.computed)(()=>n.type===`dashboard`?`rotate(135 ${l.value} ${l.value})`:`rotate(-90 ${l.value} ${l.value})`);return(n,a)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)([`fou-progress`,[`fou-progress--${e.type}`,{"is-success":(0,t.unref)(i)===`success`,"is-exception":(0,t.unref)(i)===`exception`,"is-warning":(0,t.unref)(i)===`warning`}]]),role:`progressbar`,"aria-valuenow":(0,t.unref)(r),"aria-valuemin":`0`,"aria-valuemax":`100`},[e.type===`line`?((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,{key:0},[(0,t.createElementVNode)(`div`,{class:`fou-progress__outer`,style:(0,t.normalizeStyle)({height:`${e.strokeWidth}px`})},[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`fou-progress__inner`,{"is-text-inside":e.textInside}]),style:(0,t.normalizeStyle)((0,t.unref)(s))},[e.textInside&&e.showText?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,VC,[(0,t.renderSlot)(n.$slots,`default`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)((0,t.unref)(c)),1)],!0)])):(0,t.createCommentVNode)(``,!0)],6)],4),!e.textInside&&e.showText?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,HC,[(0,t.renderSlot)(n.$slots,`default`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)((0,t.unref)(c)),1)],!0)])):(0,t.createCommentVNode)(``,!0)],64)):((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:1,class:`fou-progress__circle`,style:(0,t.normalizeStyle)({width:`${e.width}px`,height:`${e.width}px`})},[((0,t.openBlock)(),(0,t.createElementBlock)(`svg`,{viewBox:`0 0 ${e.width} ${e.width}`},[(0,t.createElementVNode)(`circle`,{class:`fou-progress__track`,cx:(0,t.unref)(l),cy:(0,t.unref)(l),r:(0,t.unref)(u),fill:`none`,"stroke-width":e.strokeWidth},null,8,WC),(0,t.createElementVNode)(`circle`,{class:`fou-progress__path`,cx:(0,t.unref)(l),cy:(0,t.unref)(l),r:(0,t.unref)(u),fill:`none`,stroke:(0,t.unref)(o),"stroke-width":e.strokeWidth,"stroke-dasharray":(0,t.unref)(d),"stroke-dashoffset":(0,t.unref)(p),"stroke-linecap":e.type===`dashboard`?`round`:`butt`,transform:(0,t.unref)(m)},null,8,GC)],8,UC)),e.showText?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,KC,[(0,t.renderSlot)(n.$slots,`default`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)((0,t.unref)(c)),1)],!0)])):(0,t.createCommentVNode)(``,!0)],4))],10,BC))}}),JC=v({default:()=>YC}),YC=S(qC,[[`__scopeId`,`data-v-146433c6`]]),XC=_(((e,t)=>{t.exports=function(){return typeof Promise==`function`&&Promise.prototype&&Promise.prototype.then}})),ZC=_((e=>{var t,n=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];e.getSymbolSize=function(e){if(!e)throw Error(`"version" cannot be null or undefined`);if(e<1||e>40)throw Error(`"version" should be in range from 1 to 40`);return e*4+17},e.getSymbolTotalCodewords=function(e){return n[e]},e.getBCHDigit=function(e){let t=0;for(;e!==0;)t++,e>>>=1;return t},e.setToSJISFunction=function(e){if(typeof e!=`function`)throw Error(`"toSJISFunc" is not a valid function.`);t=e},e.isKanjiModeEnabled=function(){return t!==void 0},e.toSJIS=function(e){return t(e)}})),QC=_((e=>{e.L={bit:1},e.M={bit:0},e.Q={bit:3},e.H={bit:2};function t(t){if(typeof t!=`string`)throw Error(`Param is not a string`);switch(t.toLowerCase()){case`l`:case`low`:return e.L;case`m`:case`medium`:return e.M;case`q`:case`quartile`:return e.Q;case`h`:case`high`:return e.H;default:throw Error(`Unknown EC Level: `+t)}}e.isValid=function(e){return e&&e.bit!==void 0&&e.bit>=0&&e.bit<4},e.from=function(n,r){if(e.isValid(n))return n;try{return t(n)}catch{return r}}})),$C=_(((e,t)=>{function n(){this.buffer=[],this.length=0}n.prototype={get:function(e){let t=Math.floor(e/8);return(this.buffer[t]>>>7-e%8&1)==1},put:function(e,t){for(let n=0;n<t;n++)this.putBit((e>>>t-n-1&1)==1)},getLengthInBits:function(){return this.length},putBit:function(e){let t=Math.floor(this.length/8);this.buffer.length<=t&&this.buffer.push(0),e&&(this.buffer[t]|=128>>>this.length%8),this.length++}},t.exports=n})),ew=_(((e,t)=>{function n(e){if(!e||e<1)throw Error(`BitMatrix size must be defined and greater than 0`);this.size=e,this.data=new Uint8Array(e*e),this.reservedBit=new Uint8Array(e*e)}n.prototype.set=function(e,t,n,r){let i=e*this.size+t;this.data[i]=n,r&&(this.reservedBit[i]=!0)},n.prototype.get=function(e,t){return this.data[e*this.size+t]},n.prototype.xor=function(e,t,n){this.data[e*this.size+t]^=n},n.prototype.isReserved=function(e,t){return this.reservedBit[e*this.size+t]},t.exports=n})),tw=_((e=>{var t=ZC().getSymbolSize;e.getRowColCoords=function(e){if(e===1)return[];let n=Math.floor(e/7)+2,r=t(e),i=r===145?26:Math.ceil((r-13)/(2*n-2))*2,a=[r-7];for(let e=1;e<n-1;e++)a[e]=a[e-1]-i;return a.push(6),a.reverse()},e.getPositions=function(t){let n=[],r=e.getRowColCoords(t),i=r.length;for(let e=0;e<i;e++)for(let t=0;t<i;t++)e===0&&t===0||e===0&&t===i-1||e===i-1&&t===0||n.push([r[e],r[t]]);return n}})),nw=_((e=>{var t=ZC().getSymbolSize,n=7;e.getPositions=function(e){let r=t(e);return[[0,0],[r-n,0],[0,r-n]]}})),rw=_((e=>{e.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};var t={N1:3,N2:3,N3:40,N4:10};e.isValid=function(e){return e!=null&&e!==``&&!isNaN(e)&&e>=0&&e<=7},e.from=function(t){return e.isValid(t)?parseInt(t,10):void 0},e.getPenaltyN1=function(e){let n=e.size,r=0,i=0,a=0,o=null,s=null;for(let c=0;c<n;c++){i=a=0,o=s=null;for(let l=0;l<n;l++){let n=e.get(c,l);n===o?i++:(i>=5&&(r+=t.N1+(i-5)),o=n,i=1),n=e.get(l,c),n===s?a++:(a>=5&&(r+=t.N1+(a-5)),s=n,a=1)}i>=5&&(r+=t.N1+(i-5)),a>=5&&(r+=t.N1+(a-5))}return r},e.getPenaltyN2=function(e){let n=e.size,r=0;for(let t=0;t<n-1;t++)for(let i=0;i<n-1;i++){let n=e.get(t,i)+e.get(t,i+1)+e.get(t+1,i)+e.get(t+1,i+1);(n===4||n===0)&&r++}return r*t.N2},e.getPenaltyN3=function(e){let n=e.size,r=0,i=0,a=0;for(let t=0;t<n;t++){i=a=0;for(let o=0;o<n;o++)i=i<<1&2047|e.get(t,o),o>=10&&(i===1488||i===93)&&r++,a=a<<1&2047|e.get(o,t),o>=10&&(a===1488||a===93)&&r++}return r*t.N3},e.getPenaltyN4=function(e){let n=0,r=e.data.length;for(let t=0;t<r;t++)n+=e.data[t];return Math.abs(Math.ceil(n*100/r/5)-10)*t.N4};function n(t,n,r){switch(t){case e.Patterns.PATTERN000:return(n+r)%2==0;case e.Patterns.PATTERN001:return n%2==0;case e.Patterns.PATTERN010:return r%3==0;case e.Patterns.PATTERN011:return(n+r)%3==0;case e.Patterns.PATTERN100:return(Math.floor(n/2)+Math.floor(r/3))%2==0;case e.Patterns.PATTERN101:return n*r%2+n*r%3==0;case e.Patterns.PATTERN110:return(n*r%2+n*r%3)%2==0;case e.Patterns.PATTERN111:return(n*r%3+(n+r)%2)%2==0;default:throw Error(`bad maskPattern:`+t)}}e.applyMask=function(e,t){let r=t.size;for(let i=0;i<r;i++)for(let a=0;a<r;a++)t.isReserved(a,i)||t.xor(a,i,n(e,a,i))},e.getBestMask=function(t,n){let r=Object.keys(e.Patterns).length,i=0,a=1/0;for(let o=0;o<r;o++){n(o),e.applyMask(o,t);let r=e.getPenaltyN1(t)+e.getPenaltyN2(t)+e.getPenaltyN3(t)+e.getPenaltyN4(t);e.applyMask(o,t),r<a&&(a=r,i=o)}return i}})),iw=_((e=>{var t=QC(),n=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],r=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];e.getBlocksCount=function(e,r){switch(r){case t.L:return n[(e-1)*4+0];case t.M:return n[(e-1)*4+1];case t.Q:return n[(e-1)*4+2];case t.H:return n[(e-1)*4+3];default:return}},e.getTotalCodewordsCount=function(e,n){switch(n){case t.L:return r[(e-1)*4+0];case t.M:return r[(e-1)*4+1];case t.Q:return r[(e-1)*4+2];case t.H:return r[(e-1)*4+3];default:return}}})),aw=_((e=>{var t=new Uint8Array(512),n=new Uint8Array(256);(function(){let e=1;for(let r=0;r<255;r++)t[r]=e,n[e]=r,e<<=1,e&256&&(e^=285);for(let e=255;e<512;e++)t[e]=t[e-255]})(),e.log=function(e){if(e<1)throw Error(`log(`+e+`)`);return n[e]},e.exp=function(e){return t[e]},e.mul=function(e,r){return e===0||r===0?0:t[n[e]+n[r]]}})),ow=_((e=>{var t=aw();e.mul=function(e,n){let r=new Uint8Array(e.length+n.length-1);for(let i=0;i<e.length;i++)for(let a=0;a<n.length;a++)r[i+a]^=t.mul(e[i],n[a]);return r},e.mod=function(e,n){let r=new Uint8Array(e);for(;r.length-n.length>=0;){let e=r[0];for(let i=0;i<n.length;i++)r[i]^=t.mul(n[i],e);let i=0;for(;i<r.length&&r[i]===0;)i++;r=r.slice(i)}return r},e.generateECPolynomial=function(n){let r=new Uint8Array([1]);for(let i=0;i<n;i++)r=e.mul(r,new Uint8Array([1,t.exp(i)]));return r}})),sw=_(((e,t)=>{var n=ow();function r(e){this.genPoly=void 0,this.degree=e,this.degree&&this.initialize(this.degree)}r.prototype.initialize=function(e){this.degree=e,this.genPoly=n.generateECPolynomial(this.degree)},r.prototype.encode=function(e){if(!this.genPoly)throw Error(`Encoder not initialized`);let t=new Uint8Array(e.length+this.degree);t.set(e);let r=n.mod(t,this.genPoly),i=this.degree-r.length;if(i>0){let e=new Uint8Array(this.degree);return e.set(r,i),e}return r},t.exports=r})),cw=_((e=>{e.isValid=function(e){return!isNaN(e)&&e>=1&&e<=40}})),lw=_((e=>{var t=`[0-9]+`,n=`[A-Z $%*+\\-./:]+`,r=`(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+`;r=r.replace(/u/g,`\\u`);var i=`(?:(?![A-Z0-9 $%*+\\-./:]|`+r+`)(?:.|[\r
124
124
  ]))+`;e.KANJI=new RegExp(r,`g`),e.BYTE_KANJI=RegExp(`[^A-Z0-9 $%*+\\-./:]+`,`g`),e.BYTE=new RegExp(i,`g`),e.NUMERIC=new RegExp(t,`g`),e.ALPHANUMERIC=new RegExp(n,`g`);var a=RegExp(`^`+r+`$`),o=RegExp(`^[0-9]+$`),s=RegExp(`^[A-Z0-9 $%*+\\-./:]+$`);e.testKanji=function(e){return a.test(e)},e.testNumeric=function(e){return o.test(e)},e.testAlphanumeric=function(e){return s.test(e)}})),uw=_((e=>{var t=cw(),n=lw();e.NUMERIC={id:`Numeric`,bit:1,ccBits:[10,12,14]},e.ALPHANUMERIC={id:`Alphanumeric`,bit:2,ccBits:[9,11,13]},e.BYTE={id:`Byte`,bit:4,ccBits:[8,16,16]},e.KANJI={id:`Kanji`,bit:8,ccBits:[8,10,12]},e.MIXED={bit:-1},e.getCharCountIndicator=function(e,n){if(!e.ccBits)throw Error(`Invalid mode: `+e);if(!t.isValid(n))throw Error(`Invalid version: `+n);return n>=1&&n<10?e.ccBits[0]:n<27?e.ccBits[1]:e.ccBits[2]},e.getBestModeForData=function(t){return n.testNumeric(t)?e.NUMERIC:n.testAlphanumeric(t)?e.ALPHANUMERIC:n.testKanji(t)?e.KANJI:e.BYTE},e.toString=function(e){if(e&&e.id)return e.id;throw Error(`Invalid mode`)},e.isValid=function(e){return e&&e.bit&&e.ccBits};function r(t){if(typeof t!=`string`)throw Error(`Param is not a string`);switch(t.toLowerCase()){case`numeric`:return e.NUMERIC;case`alphanumeric`:return e.ALPHANUMERIC;case`kanji`:return e.KANJI;case`byte`:return e.BYTE;default:throw Error(`Unknown mode: `+t)}}e.from=function(t,n){if(e.isValid(t))return t;try{return r(t)}catch{return n}}})),dw=_((e=>{var t=ZC(),n=iw(),r=QC(),i=uw(),a=cw(),o=7973,s=t.getBCHDigit(o);function c(t,n,r){for(let i=1;i<=40;i++)if(n<=e.getCapacity(i,r,t))return i}function l(e,t){return i.getCharCountIndicator(e,t)+4}function u(e,t){let n=0;return e.forEach(function(e){let r=l(e.mode,t);n+=r+e.getBitsLength()}),n}function d(t,n){for(let r=1;r<=40;r++)if(u(t,r)<=e.getCapacity(r,n,i.MIXED))return r}e.from=function(e,t){return a.isValid(e)?parseInt(e,10):t},e.getCapacity=function(e,r,o){if(!a.isValid(e))throw Error(`Invalid QR Code version`);o===void 0&&(o=i.BYTE);let s=(t.getSymbolTotalCodewords(e)-n.getTotalCodewordsCount(e,r))*8;if(o===i.MIXED)return s;let c=s-l(o,e);switch(o){case i.NUMERIC:return Math.floor(c/10*3);case i.ALPHANUMERIC:return Math.floor(c/11*2);case i.KANJI:return Math.floor(c/13);case i.BYTE:default:return Math.floor(c/8)}},e.getBestVersionForData=function(e,t){let n,i=r.from(t,r.M);if(Array.isArray(e)){if(e.length>1)return d(e,i);if(e.length===0)return 1;n=e[0]}else n=e;return c(n.mode,n.getLength(),i)},e.getEncodedBits=function(e){if(!a.isValid(e)||e<7)throw Error(`Invalid QR Code version`);let n=e<<12;for(;t.getBCHDigit(n)-s>=0;)n^=o<<t.getBCHDigit(n)-s;return e<<12|n}})),fw=_((e=>{var t=ZC(),n=1335,r=21522,i=t.getBCHDigit(n);e.getEncodedBits=function(e,a){let o=e.bit<<3|a,s=o<<10;for(;t.getBCHDigit(s)-i>=0;)s^=n<<t.getBCHDigit(s)-i;return(o<<10|s)^r}})),pw=_(((e,t)=>{var n=uw();function r(e){this.mode=n.NUMERIC,this.data=e.toString()}r.getBitsLength=function(e){return 10*Math.floor(e/3)+(e%3?e%3*3+1:0)},r.prototype.getLength=function(){return this.data.length},r.prototype.getBitsLength=function(){return r.getBitsLength(this.data.length)},r.prototype.write=function(e){let t,n,r;for(t=0;t+3<=this.data.length;t+=3)n=this.data.substr(t,3),r=parseInt(n,10),e.put(r,10);let i=this.data.length-t;i>0&&(n=this.data.substr(t),r=parseInt(n,10),e.put(r,i*3+1))},t.exports=r})),mw=_(((e,t)=>{var n=uw(),r=`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:`.split(``);function i(e){this.mode=n.ALPHANUMERIC,this.data=e}i.getBitsLength=function(e){return 11*Math.floor(e/2)+e%2*6},i.prototype.getLength=function(){return this.data.length},i.prototype.getBitsLength=function(){return i.getBitsLength(this.data.length)},i.prototype.write=function(e){let t;for(t=0;t+2<=this.data.length;t+=2){let n=r.indexOf(this.data[t])*45;n+=r.indexOf(this.data[t+1]),e.put(n,11)}this.data.length%2&&e.put(r.indexOf(this.data[t]),6)},t.exports=i})),hw=_(((e,t)=>{var n=uw();function r(e){this.mode=n.BYTE,this.data=typeof e==`string`?new TextEncoder().encode(e):new Uint8Array(e)}r.getBitsLength=function(e){return e*8},r.prototype.getLength=function(){return this.data.length},r.prototype.getBitsLength=function(){return r.getBitsLength(this.data.length)},r.prototype.write=function(e){for(let t=0,n=this.data.length;t<n;t++)e.put(this.data[t],8)},t.exports=r})),gw=_(((e,t)=>{var n=uw(),r=ZC();function i(e){this.mode=n.KANJI,this.data=e}i.getBitsLength=function(e){return e*13},i.prototype.getLength=function(){return this.data.length},i.prototype.getBitsLength=function(){return i.getBitsLength(this.data.length)},i.prototype.write=function(e){let t;for(t=0;t<this.data.length;t++){let n=r.toSJIS(this.data[t]);if(n>=33088&&n<=40956)n-=33088;else if(n>=57408&&n<=60351)n-=49472;else throw Error(`Invalid SJIS character: `+this.data[t]+`
125
125
  Make sure your charset is UTF-8`);n=(n>>>8&255)*192+(n&255),e.put(n,13)}},t.exports=i})),_w=_(((e,t)=>{var n={single_source_shortest_paths:function(e,t,r){var i={},a={};a[t]=0;var o=n.PriorityQueue.make();o.push(t,0);for(var s,c,l,u,d,f,p,m,h;!o.empty();)for(l in s=o.pop(),c=s.value,u=s.cost,d=e[c]||{},d)d.hasOwnProperty(l)&&(f=d[l],p=u+f,m=a[l],h=a[l]===void 0,(h||m>p)&&(a[l]=p,o.push(l,p),i[l]=c));if(r!==void 0&&a[r]===void 0){var g=[`Could not find a path from `,t,` to `,r,`.`].join(``);throw Error(g)}return i},extract_shortest_path_from_predecessor_list:function(e,t){for(var n=[],r=t;r;)n.push(r),e[r],r=e[r];return n.reverse(),n},find_path:function(e,t,r){var i=n.single_source_shortest_paths(e,t,r);return n.extract_shortest_path_from_predecessor_list(i,r)},PriorityQueue:{make:function(e){var t=n.PriorityQueue,r={},i;for(i in e||={},t)t.hasOwnProperty(i)&&(r[i]=t[i]);return r.queue=[],r.sorter=e.sorter||t.default_sorter,r},default_sorter:function(e,t){return e.cost-t.cost},push:function(e,t){var n={value:e,cost:t};this.queue.push(n),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return this.queue.length===0}}};t!==void 0&&(t.exports=n)})),vw=_((e=>{var t=uw(),n=pw(),r=mw(),i=hw(),a=gw(),o=lw(),s=ZC(),c=_w();function l(e){return unescape(encodeURIComponent(e)).length}function u(e,t,n){let r=[],i;for(;(i=e.exec(n))!==null;)r.push({data:i[0],index:i.index,mode:t,length:i[0].length});return r}function d(e){let n=u(o.NUMERIC,t.NUMERIC,e),r=u(o.ALPHANUMERIC,t.ALPHANUMERIC,e),i,a;return s.isKanjiModeEnabled()?(i=u(o.BYTE,t.BYTE,e),a=u(o.KANJI,t.KANJI,e)):(i=u(o.BYTE_KANJI,t.BYTE,e),a=[]),n.concat(r,i,a).sort(function(e,t){return e.index-t.index}).map(function(e){return{data:e.data,mode:e.mode,length:e.length}})}function f(e,o){switch(o){case t.NUMERIC:return n.getBitsLength(e);case t.ALPHANUMERIC:return r.getBitsLength(e);case t.KANJI:return a.getBitsLength(e);case t.BYTE:return i.getBitsLength(e)}}function p(e){return e.reduce(function(e,t){let n=e.length-1>=0?e[e.length-1]:null;return n&&n.mode===t.mode?(e[e.length-1].data+=t.data,e):(e.push(t),e)},[])}function m(e){let n=[];for(let r=0;r<e.length;r++){let i=e[r];switch(i.mode){case t.NUMERIC:n.push([i,{data:i.data,mode:t.ALPHANUMERIC,length:i.length},{data:i.data,mode:t.BYTE,length:i.length}]);break;case t.ALPHANUMERIC:n.push([i,{data:i.data,mode:t.BYTE,length:i.length}]);break;case t.KANJI:n.push([i,{data:i.data,mode:t.BYTE,length:l(i.data)}]);break;case t.BYTE:n.push([{data:i.data,mode:t.BYTE,length:l(i.data)}])}}return n}function h(e,n){let r={},i={start:{}},a=[`start`];for(let o=0;o<e.length;o++){let s=e[o],c=[];for(let e=0;e<s.length;e++){let l=s[e],u=``+o+e;c.push(u),r[u]={node:l,lastCount:0},i[u]={};for(let e=0;e<a.length;e++){let o=a[e];r[o]&&r[o].node.mode===l.mode?(i[o][u]=f(r[o].lastCount+l.length,l.mode)-f(r[o].lastCount,l.mode),r[o].lastCount+=l.length):(r[o]&&(r[o].lastCount=l.length),i[o][u]=f(l.length,l.mode)+4+t.getCharCountIndicator(l.mode,n))}}a=c}for(let e=0;e<a.length;e++)i[a[e]].end=0;return{map:i,table:r}}function g(e,o){let c,l=t.getBestModeForData(e);if(c=t.from(o,l),c!==t.BYTE&&c.bit<l.bit)throw Error(`"`+e+`" cannot be encoded with mode `+t.toString(c)+`.
126
126
  Suggested mode is: `+t.toString(l));switch(c===t.KANJI&&!s.isKanjiModeEnabled()&&(c=t.BYTE),c){case t.NUMERIC:return new n(e);case t.ALPHANUMERIC:return new r(e);case t.KANJI:return new a(e);case t.BYTE:return new i(e)}}e.fromArray=function(e){return e.reduce(function(e,t){return typeof t==`string`?e.push(g(t,null)):t.data&&e.push(g(t.data,t.mode)),e},[])},e.fromString=function(t,n){let r=h(m(d(t,s.isKanjiModeEnabled())),n),i=c.find_path(r.map,`start`,`end`),a=[];for(let e=1;e<i.length-1;e++)a.push(r.table[i[e]].node);return e.fromArray(p(a))},e.rawSplit=function(t){return e.fromArray(d(t,s.isKanjiModeEnabled()))}})),yw=_((e=>{var t=ZC(),n=QC(),r=$C(),i=ew(),a=tw(),o=nw(),s=rw(),c=iw(),l=sw(),u=dw(),d=fw(),f=uw(),p=vw();function m(e,t){let n=e.size,r=o.getPositions(t);for(let t=0;t<r.length;t++){let i=r[t][0],a=r[t][1];for(let t=-1;t<=7;t++)if(!(i+t<=-1||n<=i+t))for(let r=-1;r<=7;r++)a+r<=-1||n<=a+r||(t>=0&&t<=6&&(r===0||r===6)||r>=0&&r<=6&&(t===0||t===6)||t>=2&&t<=4&&r>=2&&r<=4?e.set(i+t,a+r,!0,!0):e.set(i+t,a+r,!1,!0))}}function h(e){let t=e.size;for(let n=8;n<t-8;n++){let t=n%2==0;e.set(n,6,t,!0),e.set(6,n,t,!0)}}function g(e,t){let n=a.getPositions(t);for(let t=0;t<n.length;t++){let r=n[t][0],i=n[t][1];for(let t=-2;t<=2;t++)for(let n=-2;n<=2;n++)t===-2||t===2||n===-2||n===2||t===0&&n===0?e.set(r+t,i+n,!0,!0):e.set(r+t,i+n,!1,!0)}}function _(e,t){let n=e.size,r=u.getEncodedBits(t),i,a,o;for(let t=0;t<18;t++)i=Math.floor(t/3),a=t%3+n-8-3,o=(r>>t&1)==1,e.set(i,a,o,!0),e.set(a,i,o,!0)}function v(e,t,n){let r=e.size,i=d.getEncodedBits(t,n),a,o;for(a=0;a<15;a++)o=(i>>a&1)==1,a<6?e.set(a,8,o,!0):a<8?e.set(a+1,8,o,!0):e.set(r-15+a,8,o,!0),a<8?e.set(8,r-a-1,o,!0):a<9?e.set(8,15-a-1+1,o,!0):e.set(8,15-a-1,o,!0);e.set(r-8,8,1,!0)}function y(e,t){let n=e.size,r=-1,i=n-1,a=7,o=0;for(let s=n-1;s>0;s-=2)for(s===6&&s--;;){for(let n=0;n<2;n++)if(!e.isReserved(i,s-n)){let r=!1;o<t.length&&(r=(t[o]>>>a&1)==1),e.set(i,s-n,r),a--,a===-1&&(o++,a=7)}if(i+=r,i<0||n<=i){i-=r,r=-r;break}}}function b(e,n,i){let a=new r;i.forEach(function(t){a.put(t.mode.bit,4),a.put(t.getLength(),f.getCharCountIndicator(t.mode,e)),t.write(a)});let o=(t.getSymbolTotalCodewords(e)-c.getTotalCodewordsCount(e,n))*8;for(a.getLengthInBits()+4<=o&&a.put(0,4);a.getLengthInBits()%8!=0;)a.putBit(0);let s=(o-a.getLengthInBits())/8;for(let e=0;e<s;e++)a.put(e%2?17:236,8);return x(a,e,n)}function x(e,n,r){let i=t.getSymbolTotalCodewords(n),a=i-c.getTotalCodewordsCount(n,r),o=c.getBlocksCount(n,r),s=o-i%o,u=Math.floor(i/o),d=Math.floor(a/o),f=d+1,p=u-d,m=new l(p),h=0,g=Array(o),_=Array(o),v=0,y=new Uint8Array(e.buffer);for(let e=0;e<o;e++){let t=e<s?d:f;g[e]=y.slice(h,h+t),_[e]=m.encode(g[e]),h+=t,v=Math.max(v,t)}let b=new Uint8Array(i),x=0,S,C;for(S=0;S<v;S++)for(C=0;C<o;C++)S<g[C].length&&(b[x++]=g[C][S]);for(S=0;S<p;S++)for(C=0;C<o;C++)b[x++]=_[C][S];return b}function S(e,n,r,a){let o;if(Array.isArray(e))o=p.fromArray(e);else if(typeof e==`string`){let t=n;if(!t){let n=p.rawSplit(e);t=u.getBestVersionForData(n,r)}o=p.fromString(e,t||40)}else throw Error(`Invalid data`);let c=u.getBestVersionForData(o,r);if(!c)throw Error(`The amount of data is too big to be stored in a QR Code`);if(!n)n=c;else if(n<c)throw Error(`