1import{d as le,u as oe,K as ne,c as m,a as l,f as o,w as N,e as V,a7 as U,n as g,r as c,q as se,j as u,m as f,F as S,a5 as T,b as s,t as v,x as H,y as ie,H as I,i as ue,o as n,_ as re}from"./index-DBAIXX39.js";import{V as P,a as R,b as M,c as j,d as K}from"./VDialog-BVJy90fW.js";import{V as x}from"./VTextField-DZnb8Qtf.js";import"./index-CvneU2GP.js";import"./VOverlay-BxLjFlP9.js";import"./index-Daolnky5.js";const de={class:"aq-muted aq-mono"},me={key:0,style:{padding:"18px"}},ve={key:2,class:"tax-groups"},pe={class:"tax-group__head"},ce={class:"aq-muted"},fe={class:"tax-tags"},ge={class:"tax-tag__body"},ye={class:"aq-mono aq-muted"},_e={key:0,class:"tax-tag__comment aq-muted"},ke={key:1,class:"tax-tag__use aq-muted"},Ve={key:0},xe={key:1},Ce={key:0,class:"tax-tag__act"},be={class:"tax-fields__body"},we={class:"aq-form-grid"},qe={class:"color-row"},Ee={class:"swatches"},De=["aria-label","onClick"],Ue=le({__name:"TaxonomyView",setup(Se){const y=se(),Q=oe(),C=I(()=>Q.can("catalog.write")),b=g([]),w=g(!0);async function q(){w.value=!0;try{const a=await U.tags.list();b.value=a.tags}catch(a){y.fromError(a)}finally{w.value=!1}}ne(q);const W=I(()=>{const a=new Map;for(const e of b.value){const d=a.get(e.type)??[];d.push(e),a.set(e.type,d)}return[...a.entries()].sort((e,d)=>e[0].localeCompare(d[0]))});function E(a){return(a.usageUnits||0)+(a.usageFiles||0)}const J=["#008DD2","#22d3ee","#34d399","#f5b14a","#f76d6d","#9b7bff","#9db0c5"],_=g(!1),$=g(!1),D=g(!1),r=g(z());function z(){return{type:"",name:"",title:"",color:"#008DD2",comment:""}}function B(a=""){D.value=!0,r.value={...z(),type:a},_.value=!0}function O(a){D.value=!1,r.value={type:a.type,name:a.name,title:a.title,color:a.color||"#008DD2",comment:a.comment,original:{type:a.type,name:a.name}},_.value=!0}async function X(){const a=r.value;if(!a.type.trim()||!a.name.trim()){y.error("Тип и Ð¸Ð¼Ñ Ð¾Ð±ÑзаÑелÑнÑ");return}$.value=!0;try{!D.value&&a.original&&(a.original.type!==a.type||a.original.name!==a.name)&&await U.tags.delete(a.original.type,a.original.name),await U.tags.upsert({type:a.type.trim(),name:a.name.trim(),title:a.title,color:a.color,comment:a.comment}),y.success("Тег ÑоÑ
ÑанÑн"),_.value=!1,await q()}catch(e){y.fromError(e)}finally{$.value=!1}}const p=g(null);async function Y(){const a=p.value;if(a)try{await U.tags.delete(a.type,a.name),y.success("Тег ÑдалÑн"),p.value=null,await q()}catch(e){y.fromError(e)}}return(a,e)=>{const d=c("GlassButton"),Z=c("PageHeader"),h=c("SkeletonBlock"),ee=c("EmptyState"),ae=c("GlassChip"),A=c("GlassCard"),F=c("AqIcon"),G=c("RouterLink"),L=ue("reveal");return n(),m("div",null,[l(Z,{title:"Теги и полÑ",desc:"ТакÑÐ¾Ð½Ð¾Ð¼Ð¸Ñ ÐºÐ°Ñалога: Ñеги обÑекÑов и поÑÑнение по EAV-полÑм."},{actions:o(()=>[l(d,{"icon-name":"refresh",loading:w.value,onClick:q},{default:o(()=>[...e[11]||(e[11]=[u("ÐбновиÑÑ",-1)])]),_:1},8,["loading"]),C.value?(n(),V(d,{key:0,variant:"primary","icon-name":"plus",onClick:e[0]||(e[0]=t=>B())},{default:o(()=>[...e[12]||(e[12]=[u("СоздаÑÑ Ñег",-1)])]),_:1})):f("",!0)]),_:1}),N((n(),V(A,{pad:!1},{head:o(()=>[e[13]||(e[13]=s("h3",null,"Теги обÑекÑов",-1)),s("span",de,v(b.value.length),1)]),default:o(()=>[w.value?(n(),m("div",me,[(n(),m(S,null,T(3,t=>l(h,{key:t,height:"40px",radius:"10px",style:{"margin-bottom":"10px"}})),64))])):b.value.length?(n(),m("div",ve,[(n(!0),m(S,null,T(W.value,([t,k])=>(n(),m("section",{key:t,class:"tax-group"},[s("div",pe,[l(ae,{variant:"brand"},{default:o(()=>[u(v(t),1)]),_:2},1024),s("span",ce,v(k.length),1),C.value?(n(),V(d,{key:0,size:"sm",variant:"ghost","icon-name":"plus","aria-label":"ÐобавиÑÑ Ð² гÑÑппÑ",onClick:i=>B(t)},null,8,["onClick"])):f("",!0)]),s("div",fe,[(n(!0),m(S,null,T(k,i=>(n(),m("div",{key:i.name,class:"tax-tag"},[s("span",{class:"tax-tag__dot",style:H({background:i.color||"var(--text-3)"})},null,4),s("div",ge,[s("b",null,v(i.title||i.name),1),s("span",ye,v(i.name),1),i.comment?(n(),m("span",_e,v(i.comment),1)):f("",!0),E(i)?(n(),m("span",ke,[i.usageUnits?(n(),m("span",Ve,"ÑниÑов: "+v(i.usageUnits),1)):f("",!0),i.usageFiles?(n(),m("span",xe,"Ñайлов: "+v(i.usageFiles),1)):f("",!0)])):f("",!0)]),C.value?(n(),m("div",Ce,[l
1(d,{size:"sm",variant:"ghost","icon-only":"","icon-name":"edit","aria-label":"ÐзмениÑÑ",onClick:te=>O(i)},null,8,["onClick"]),l(d,{size:"sm",variant:"ghost","icon-only":"","icon-name":"trash",disabled:E(i)>0,"aria-label":E(i)>0?"Тег иÑполÑзÑеÑÑÑ - Ñдаление недоÑÑÑпно":"УдалиÑÑ",title:E(i)>0?"Тег иÑполÑзÑеÑÑÑ (еÑÑÑ Ð¿ÑивÑзки) - ÑнаÑала оÑвÑжиÑе":"УдалиÑÑ",onClick:te=>p.value=i},null,8,["disabled","aria-label","title","onClick"])])):f("",!0)]))),128))])]))),128))])):(n(),V(ee,{key:1,icon:"tags",title:"Тегов пока неÑ",hint:"Теги гÑÑппиÑÑÑÑ Ð¾Ð±Ð¾ÑÑдование (Ñип + имÑ). СоздайÑе пеÑвÑй - напÑимеÑ, type=category, name=circulation."},{action:o(()=>[C.value?(n(),V(d,{key:0,variant:"primary","icon-name":"plus",onClick:e[1]||(e[1]=t=>B())},{default:o(()=>[...e[14]||(e[14]=[u("СоздаÑÑ Ñег",-1)])]),_:1})):f("",!0)]),_:1}))]),_:1})),[[L]]),N((n(),V(A,{class:"tax-fields"},{head:o(()=>[e[15]||(e[15]=s("h3",null,"ÐÐ¾Ð»Ñ Ð¾Ð±ÑекÑов (EAV)",-1)),l(F,{name:"fields",size:16,class:"aq-muted"})]),default:o(()=>[s("div",be,[l(F,{name:"info",size:22,class:"tax-fields__icon"}),s("div",null,[s("p",null,[e[18]||(e[18]=u(" ХаÑакÑеÑиÑÑики (напоÑ, подаÑа, кÑÐ¸Ð²Ð°Ñ H-Q и Ñ.д.) Ñ
ÑанÑÑÑÑ ÐºÐ°Ðº EAV и авÑоÑÑÑÑÑ Ñ ÑниÑа в Ñазделе ",-1)),l(G,{to:"/catalog",class:"tax-link"},{default:o(()=>[...e[16]||(e[16]=[u("«ÐбоÑÑдование»",-1)])]),_:1}),e[19]||(e[19]=u(". ÐÑ
опÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ (меÑаданнÑе: заголовок, ед. изм., иÑкомоÑÑÑ) и маÑÑовое ÑедакÑиÑование знаÑений â в Ñазделе ",-1)),l(G,{to:"/fields",class:"tax-link"},{default:o(()=>[...e[17]||(e[17]=[u("«ÐолÑ»",-1)])]),_:1}),e[20]||(e[20]=u(". ",-1))])])])]),_:1})),[[L,80]]),l(P,{modelValue:_.value,"onUpdate:modelValue":e[8]||(e[8]=t=>_.value=t),"max-width":"520"},{default:o(()=>[l(R,null,{default:o(()=>[l(M,{class:"aq-dialog-title"},{default:o(()=>[u(v(D.value?"ÐовÑй Ñег":"РедакÑиÑование Ñега"),1)]),_:1}),l(j,null,{default:o(()=>[s("div",we,[l(x,{modelValue:r.value.type,"onUpdate:modelValue":e[2]||(e[2]=t=>r.value.type=t),label:"Тип (гÑÑппа)",placeholder:"category"},null,8,["modelValue"]),l(x,{modelValue:r.value.name,"onUpdate:modelValue":e[3]||(e[3]=t=>r.value.name=t),label:"ÐÐ¼Ñ (клÑÑ)",placeholder:"circulation"},null,8,["modelValue"]),l(x,{modelValue:r.value.title,"onUpdate:modelValue":e[4]||(e[4]=t=>r.value.title=t),label:"Ðаголовок",class:"span-2"},null,8,["modelValue"]),l(x,{modelValue:r.value.comment,"onUpdate:modelValue":e[5]||(e[5]=t=>r.value.comment=t),label:"ÐомменÑаÑий",class:"span-2"},null,8,["modelValue"])]),s("div",qe,[e[21]||(e[21]=s("span",{class:"aq-muted"},"ЦвеÑ",-1)),s("div",Ee,[(n(),m(S,null,T(J,t=>s("button",{key:t,type:"button",class:ie(["swatch",{on:r.value.color.toLowerCase()===t.toLowerCase()}]),style:H({background:t}),"aria-label":t,onClick:k=>r.value.color=t},null,14,De)),64))]),l(x,{modelValue:r.value.color,"onUpdate:modelValue":e[6]||(e[6]=t=>r.value.color=t),"hide-details":"",density:"compact",style:{"max-width":"120px"}},null,8,["modelValue"])])]),_:1}),l(K,{class:"aq-dialog-actions"},{default:o(()=>[l(d,{variant:"ghost",onClick:e[7]||(e[7]=t=>_.value=!1)},{default:o(()=>[...e[22]||(e[22]=[u("ÐÑмена",-1)])]),_:1}),l(d,{variant:"primary","icon-name":"check",loading:$.value,onClick:X},{default:o(()=>[...e[23]||(e[23]=[u("СоÑ
ÑаниÑÑ",-1)])]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),l(P,{"model-value":!!p.value,"max-width":"420","onUpdate:modelValue":e[10]||(e[10]=t=>p.value=null)},{default:o(()=>[l(R,null,{default:o(()=>[l(M,{class:"aq-dialog-title"},{default:o(()=>[...e[24]||(e[24]=[u("УдалиÑÑ Ñег?",-1)])]),_:1}),l(j,null,{default:o(()=>{var t,k;return[e[25]||(e[25]=u(" Тег ",-1)),s("b",null,v((t=p.value)==null?void 0:t.type)+"/"+v((k=p.value)==null?void 0:k.name),1),e[26]||(e[26]=u(" бÑÐ´ÐµÑ Ð¿Ð¾Ð¼ÐµÑен ÑдалÑннÑм (мÑгкое Ñдаление). ",-1))]}),_:1}),l(K,{class:"aq-dialog-actions"},{default:o(()=>[l(d,{variant:"ghost",onClick:e[9]||(e[9]=t=>p.value=null)},{default:o(()=>[...e[27]||(e[27]=[u("ÐÑмена",-1)])]),_:1}),l(d,{variant:"danger","icon-name":"trash",onClick:Y},{default:o(()=>[...e[28]||(e[28]=[u("УдалиÑÑ",-1)])]),_:1})]),_:1})]),_:1})]),_:1},8,["model-value"])])}}}),Ge=re(Ue,[["__scopeId","data-v-22a386da"]]);export{Ge as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.