1import{f as G,h as J,i as Q,k as X,j as e,T as Y,u as ee,a as se,l as ne,r as o,m as ae,s as te,n as ie,S,b as re,H as oe,U as D,o as le,q as y,M as de,t as ce,B as z,d as ue}from"./index-CvXYjFvv.js";import{C as pe}from"./CategorySelector-4w8T6guX.js";import{E as me}from"./EditIcon-D5tHyh0A.js";import{T as ge}from"./TrashIcon-BqE_7csq.js";import{L as v}from"./button-B4OmS5Qu.js";import"./SelectField-gTpXyXxZ.js";import"./ListInputField-CGQkq8mq.js";async function ye(s){return new Promise((i,r)=>{G(`menu-display/${s}`,(d,u)=>{d!==null?i(d.result.links||[]):r(u)})})}async function he(s,i){const r=await J(`/menu-display/${s}`,i);if("result"in r)return r.result;throw r}async function xe(s,i,r){const d=await Q(`/menu-display/${s}/${i}`,r);if("result"in d)return d.result;throw d}async function fe(s,i){return X(`menu-display/${s}/${i}`)}const je=({color:s})=>e.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[e.jsx("path",{d:"M7 9V3H17V9",stroke:s,strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),e.jsx("path",{d:"M7 17H5C4.44772 17 4 16.5523 4 16V11C4 10.4477 4.44772 10 5 10H19C19.5523 10 20 10.4477 20 11V16C20 16.5523 19.5523 17 19 17H17",stroke:s,strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),e.jsx("path",{d:"M7 14H17V21H7V14Z",stroke:s,strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),e.jsx("path",{d:"M16 14V17H8V14",stroke:s,strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]}),Le=5,I=s=>{const i=(s.link||"").trim().replace(/\/+$/,"");return i?i.endsWith("/print")?i:`${i}/print`:""},P={primaryLanguageId:"",secondaryLanguageId:"",transitionSeconds:Le,gridSize:"3x2"},Ne=()=>{const s=Y(),i=ee(),{partnerId:r}=se(),d=ne(n=>n.bootstrap),u=d.taxonomies.languages||[],h=(d.partnerMeta?.supportedLanguages||[]).filter(n=>n.enabled).map(n=>n.langId),p=o.useMemo(()=>h.length===0?u:u.filter(n=>h.includes(n.id)),[u,h]),b=o.useMemo(()=>p.reduce((n,a)=>(n[a.id]=a,n),{}),[p]),[x,C]=o.useState(!0),[H,m]=o.useState(!1),[V,k]=o.useState(0),[N,M]=o.useState(!1),[g,w]=o.useState(null),[f,F]=o.useState([]),[T,B]=o.useState([]),[l,c]=o.useState(P),[U,$]=o.useState([]),[A,E]=o.useState(null),W=o.useMemo(()=>T.reduce((n,a)=>{const t=ae(a.info,"de");return n[a.id]=(t.description||"")+(a.internalDescription?` - ${a.internalDescription}`:""),n},{}),[T]);o.useEffect(()=>{i(te(s("page.menuDisplay.pageTitle"))),j()},[i]);const j=async()=>{C(!0);try{const[n,a]=await Promise.all([ye(r),ie(r)]);F(n),B(a)}catch(n){S(n)}finally{C(!1)}},q=()=>{const n=d.partnerMeta?.defaultLang?.id?.toString()||p[0]?.id?.toString()||"";c({...P,primaryLanguageId:n})},O=()=>{w(null),q(),$([]),k(n=>n+1),m(!0)},R=n=>{w(n),c({primaryLanguageId:`${n.primaryLanguageId}`,secondaryLanguageId:n.secondaryLanguageId?`${n.secondaryLanguageId}`:"",transitionSeconds:n.transitionSeconds,gridSize:n.gridSize==="2x2"?"2x2":"3x2"}),$(n.categoryIds),k(a=>a+1),m(!0)},_=async n=>{if(n.length===0){y(s("page.menuDisplay.validationCategoryRequired"));return}if(!l.primaryLanguageId){y(s("page.menuDisplay.validationPrimaryLanguageRequired"));return}if(l.transitionSeconds<=0){y(s("page.menuDisplay.validationTransitionPositive"));return}M(!0);try{const a={categoryIds:n,primaryLanguageId:+l.primaryLanguageId,secondaryLanguageId:l.secondaryLanguageId?+l.secondaryLanguageId:null,transitionSeconds:l.transitionSeconds,gridSize:l.gridSize};g?await xe(r,g.id,a):await he(r,a),m(!1),await j(),D(s(g?"page.menuDisplay.updateSuccess":"page.menuDisplay.createSuccess"))}catch(a){S(a)}finally{M(!1)}},K=(n,a)=>{const t=b[n]?.code||s("page.menuDisplay.unknown");if(!a)return t;const L=b[a]?.code||s("page.menuDisplay.unknown");return`${t} / ${L}`},Z=n=>{ue(s("common.questions.deleteConfirmationElement"),s("common.fields.yes"),s("common.fields.no")).then(async a=>{if(a){E(n.id);try{await fe(r,n.id),j(),D(s("page.menuDisplay.deleteSuccess"))}catch(t){S(t)}finally{E(null)}}})};return e.jsxs(e.Fragment,{children:[e.jsx(re,{pageName:s("page.menuDisplay.pageTitle"),secondaryAction:{label:s("page.menuDisplay.createNewLink"),onClick:O}}),e.jsxs("div",{className:"panel mt-4",children:[e.jsx(oe,{type:"subtitle",children:s("page.menuDisplay.menuTitle")}),x&&e.jsx("p",{children:s("page.menuDisplay.loading")}),!x&&f.length===0&&e.jsx("p",{children:s("page.menuDisplay.noLinks")}),!x&&f.length>0&&e.jsx("div",{className:"table-responsive mt-4",children:e.jsxs("table",{className:"table-striped",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:s("page.menuDisplay.linkUrl")}),e.jsx("th",{children:s("common.fields.categories")}),e.jsx("th",{children:s("page.menuDisplay.languages")}),e.jsx("th",{className:"text-center",children:s("page.menuDisplay.transitionSeconds")}),e.jsx("th",{children:s("page.menuDisplay.gridSize")}),e.jsx("th",{children:s("common.fields.action")})]})}),e.jsx("tbody",{children:f.map(n=>e.jsxs("tr",{children:[e.jsx("td",{children:e.jsxs("span",{className:"flex flex-row items-center gap-2",children:[e.jsx("a",{href:n.link,target:"_blank",rel:"noreferrer",className:"text-primary underline",children:s("page.menuDisplay.linkUrl")}),e.jsx(v,{type:"button",onClick:()=>{navigator.clipboard.writeText(n.link).then(()=>{D(s("common.messages.linkCopied"))})},className:"text-white font-bold py-1 px-2 rounded",title:s("common.actions.copyToClipboard"),
1children:e.jsx(le,{color:"#292929"})})]})}),e.jsx("td",{children:(()=>{const a=n.categoryIds.map(t=>W[t]||"").filter(t=>t.trim().length>0);return a.length===0?s("page.menuDisplay.unknown"):e.jsx("div",{className:"flex flex-col",children:a.map((t,L)=>e.jsx("span",{children:t},L))})})()}),e.jsx("td",{children:K(n.primaryLanguageId,n.secondaryLanguageId)}),e.jsx("td",{className:"align-middle text-center",children:n.transitionSeconds}),e.jsx("td",{children:n.gridSize==="2x2"?s("page.menuDisplay.gridSize2x2"):s("page.menuDisplay.gridSize3x2")}),e.jsx("td",{className:"align-middle",children:e.jsxs("div",{className:"flex flex-row items-center gap-2",children:[e.jsx("a",{href:I(n),target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center justify-center py-1 px-2 rounded cursor-pointer",title:`${s("page.menuDisplay.printAction")} â ${I(n)}`,onClick:a=>{if(!I(n)){a.preventDefault(),y(s("page.menuDisplay.printLinkMissing"));return}},children:e.jsx(je,{color:"#292929"})}),e.jsx(v,{type:"button",onClick:()=>R(n),className:"inline-flex items-center justify-center py-1 px-2 rounded",title:s("common.actions.change"),children:e.jsx(me,{color:"green"})}),e.jsx(v,{type:"button",onClick:()=>Z(n),disabled:A===n.id,className:"inline-flex items-center justify-center py-1 px-2 rounded",title:s("common.actions.delete"),children:e.jsx(ge,{color:"red"})})]})})]},n.id))})]})})]}),e.jsx(de,{show:H,set:m,modalTitle:s(g?"page.menuDisplay.editModalTitle":"page.menuDisplay.createModalTitle"),children:e.jsx(ce,{initialValues:{selectedCategories:{ids:U}},onSubmit:()=>{},children:n=>e.jsxs("div",{className:"space-y-5 p-4",children:[e.jsxs("div",{children:[e.jsx("div",{className:"font-semibold mb-2",children:s("common.fields.categories")}),e.jsx(pe,{name:"selectedCategories",partnerId:r,multiple:!0})]}),e.jsxs("div",{children:[e.jsx("div",{className:"font-semibold mb-2",children:s("page.menuDisplay.primaryLanguage")}),e.jsxs("select",{className:"form-select",value:l.primaryLanguageId,onChange:a=>{c(t=>({...t,primaryLanguageId:a.target.value}))},children:[e.jsx("option",{value:"",children:s("common.actions.select")}),p.map(a=>e.jsx("option",{value:a.id,children:a.code},a.id))]})]}),e.jsxs("div",{children:[e.jsx("div",{className:"font-semibold mb-2",children:s("page.menuDisplay.secondaryLanguage")}),e.jsxs("select",{className:"form-select",value:l.secondaryLanguageId,onChange:a=>{c(t=>({...t,secondaryLanguageId:a.target.value}))},children:[e.jsx("option",{value:"",children:s("page.menuDisplay.notSet")}),p.filter(a=>`${a.id}`!==l.primaryLanguageId).map(a=>e.jsx("option",{value:a.id,children:a.code},a.id))]})]}),e.jsxs("div",{children:[e.jsx("div",{className:"font-semibold mb-2",children:s("page.menuDisplay.transitionSeconds")}),e.jsx("input",{className:"form-input",type:"number",min:1,value:l.transitionSeconds,onChange:a=>{c(t=>({...t,transitionSeconds:Number(a.target.value||0)}))}})]}),e.jsxs("div",{children:[e.jsx("div",{className:"font-semibold mb-2",children:s("page.menuDisplay.gridSize")}),e.jsxs("select",{className:"form-select",value:l.gridSize,onChange:a=>{c(t=>({...t,gridSize:a.target.value}))},children:[e.jsx("option",{value:"2x2",children:s("page.menuDisplay.gridSize2x2")}),e.jsx("option",{value:"3x2",children:s("page.menuDisplay.gridSize3x2")})]})]}),e.jsxs("div",{className:"flex justify-end gap-2",children:[e.jsx(z,{type:"button",style:"outline-danger",onClick:()=>m(!1),children:s("common.actions.cancel")}),e.jsx(z,{type:"button",style:"success",onClick:()=>{_(n.values.selectedCategories.ids||[])},disabled:N,children:s(N?"common.actions.saving":"common.actions.save")})]})]})},V)})]})};export{Ne 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.