Files
wordpress-theme-aksrt/assets/admin/build/FaIconPicker.DuahAn6_.js
T
kate522 27d8a9ea71 build(admin): track the SPA build output so git deploys carry it
assets/admin/build was gitignored, so servers deployed by git pull kept
running a stale admin bundle — the icon picker integration in the tabbar
and floating-button settings pages never reached them. Track the build
directory (rebuild with: cd assets/admin && npm run build) and commit the
current bundle containing the universal icon picker.
2026-09-06 14:35:15 +08:00

2 lines
5.6 KiB
JavaScript

import{_ as x}from"./FaIcon.NZ6TDkNu.js";import{_ as H}from"./index.js";import{N as p,W as a,X as n,L as V,a5 as z,c as C,o as O,a1 as g,a4 as d,a3 as v,Y as k,F as S,R as $,a2 as A,f as I,Z as R,r as y}from"./vendor-vue.BxZIRU0_.js";import{a as U}from"./shared-api.DnsQ5cxS.js";function L(e){const i=String(e||"").trim();if(!i)return"";let c;try{c=new DOMParser().parseFromString(i,"image/svg+xml")}catch{return""}if(c.querySelector("parsererror"))return"";const o=c.querySelector("svg");if(!o||o.querySelector("script, foreignObject, animate"))return"";["class","id","style","t","version","p-id"].forEach(l=>o.removeAttribute(l)),Array.from(o.attributes).forEach(l=>{l.name.indexOf("data-")===0&&o.removeAttribute(l.name)});const u=new XMLSerializer().serializeToString(o);return/<path|<use|<g\b|<circle|<rect|<polygon|<ellipse|<line/i.test(u)?u:""}function Z(e){return/^fa[\s-]/.test(String(e||"").trim())}function D(e){return String(e||"").trim().startsWith("zibsvg-")}function G(e){return String(e||"").trim().startsWith("customsvg-")}function X(e){return String(e||"").trim().slice(7).replace(/[^a-zA-Z0-9_-]/g,"")}function F(e){const i=X(e);return i?`<svg class="icon" aria-hidden="true"><use xlink:href="#icon-${i}"></use></svg>`:""}function B(e,i){return e.type==="fa"?`fa ${e.id} fa-${i}`:e.type==="svg"?`zibsvg-${i}`:String(i||"")}const j=["innerHTML"],Y=["innerHTML"],J={__name:"IconValue",props:{value:{type:String,default:""}},setup(e){const i=e,c=C(()=>{const o=String(i.value||"").trim();return o.startsWith("fa-")?`fa fas ${o}`:o});return(o,u)=>p(Z)(e.value)?(a(),n("i",{key:0,class:V(c.value),"aria-hidden":"true"},null,2)):p(D)(e.value)?(a(),n("span",{key:1,class:"aksrt-icon-value__svg",innerHTML:p(F)(e.value)},null,8,j)):p(G)(e.value)?(a(),n("span",{key:2,class:"aksrt-icon-value__svg",innerHTML:p(L)(e.value.slice(10))},null,8,Y)):z("",!0)}},Q=H(J,[["__scopeId","data-v-127de8f8"]]),ee={class:"aksrt-fa-icon-picker"},te={class:"aksrt-icon-picker__panel"},se={class:"aksrt-icon-picker__search"},ae={class:"aksrt-icon-picker__tabs"},ne={key:0,class:"aksrt-icon-picker__custom"},ie={class:"aksrt-icon-picker__custom-actions"},re=["innerHTML"],oe={key:0,class:"aksrt-icon-picker__grid aksrt-icon-picker__grid--session"},le=["onClick","innerHTML"],ce={key:1,class:"aksrt-icon-picker__grid",ref:"gridRef"},ue=["title","onClick"],de=["innerHTML"],ve={key:0,class:"aksrt-icon-picker__empty"},pe={__name:"FaIconPicker",props:{modelValue:{type:String,default:""},placeholder:{type:String,default:"选择图标"}},emits:["update:modelValue"],setup(e,{emit:i}){const c=i,u=y([{id:"fas",title:"Solid",type:"fa",icons:[]},{id:"far",title:"Regular",type:"fa",icons:[]},{id:"fab",title:"Brands",type:"fa",icons:[]},{id:"zibsvg",title:"内置 SVG",type:"svg",icons:[]},{id:"custom",title:"自定义",type:"custom",icons:[]}]),l=y(""),m=y("fas"),f=y(""),h=y([]),b=C(()=>u.value.find(t=>t.id===m.value)||u.value[0]),T=C(()=>{const t=b.value;if(!t||t.type==="custom")return[];const r=l.value.toLowerCase().replace(/\s+/g,"");return r?t.icons.filter(_=>_.includes(r)):t.icons}),M=C(()=>L(f.value));function N(t){c("update:modelValue",B(b.value,t))}function q(){const t=L(f.value);t&&(h.value.includes(t)||h.value.push(t),c("update:modelValue",`customsvg-${t}`),f.value="")}return O(async()=>{try{const t=await U.getIconCatalog();t!=null&&t.success&&Array.isArray(t.groups)&&t.groups.length&&(u.value=t.groups)}catch{}}),(t,r)=>{const _=g("n-input"),P=g("n-radio-button"),W=g("n-radio-group"),E=g("n-button"),K=g("n-popover");return a(),n("div",ee,[d(K,{trigger:"click",placement:"bottom-start",width:460,style:{padding:0}},{trigger:v(()=>[d(_,{value:e.modelValue,placeholder:e.placeholder,readonly:"",clearable:"",onClear:r[0]||(r[0]=s=>t.$emit("update:modelValue",""))},{prefix:v(()=>[e.modelValue?(a(),A(Q,{key:0,value:e.modelValue},null,8,["value"])):(a(),n(S,{key:1},[],64))]),suffix:v(()=>[d(x,{icon:"fa fas fa-chevron-down",size:12})]),_:1},8,["value","placeholder"])]),default:v(()=>[k("div",te,[k("div",se,[d(_,{value:l.value,"onUpdate:value":r[1]||(r[1]=s=>l.value=s),placeholder:"搜索图标...",size:"small",clearable:""},{prefix:v(()=>[d(x,{icon:"fa fas fa-search",size:12})]),_:1},8,["value"])]),k("div",ae,[d(W,{value:m.value,"onUpdate:value":r[2]||(r[2]=s=>m.value=s),size:"small"},{default:v(()=>[(a(!0),n(S,null,$(u.value,s=>(a(),A(P,{key:s.id,value:s.id},{default:v(()=>[I(R(s.title),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),m.value==="custom"?(a(),n("div",ne,[d(_,{value:f.value,"onUpdate:value":r[3]||(r[3]=s=>f.value=s),type:"textarea",placeholder:'<svg viewBox="0 0 1024 1024"><path d="…"></path></svg>',rows:4},null,8,["value"]),k("div",ie,[k("span",{class:"aksrt-icon-picker__custom-preview",innerHTML:M.value},null,8,re),d(E,{size:"small",type:"primary",disabled:!M.value,onClick:q},{default:v(()=>[...r[4]||(r[4]=[I(" 确认插入 ",-1)])]),_:1},8,["disabled"])]),h.value.length?(a(),n("div",oe,[(a(!0),n(S,null,$(h.value,(s,w)=>(a(),n("div",{key:w,class:V(["aksrt-icon-picker__item",{"is-active":e.modelValue===`customsvg-${s}`}]),title:"customsvg",onClick:me=>t.$emit("update:modelValue",`customsvg-${s}`),innerHTML:p(L)(s)},null,10,le))),128))])):z("",!0)])):(a(),n("div",ce,[(a(!0),n(S,null,$(T.value,s=>(a(),n("div",{key:s,class:V(["aksrt-icon-picker__item",{"is-active":e.modelValue===p(B)(b.value,s)}]),title:s,onClick:w=>N(s)},[b.value.type==="fa"?(a(),n("i",{key:0,class:V([m.value,s])},null,2)):(a(),n("span",{key:1,class:"aksrt-icon-picker__preview-svg",innerHTML:p(F)(`zibsvg-${s}`)},null,8,de))],10,ue))),128)),T.value.length===0?(a(),n("div",ve," 未找到匹配图标 ")):z("",!0)],512))])]),_:1})])}}},ye=H(pe,[["__scopeId","data-v-b3172250"]]);export{ye as F,Q as I};