1import{f as Ne,u as be,r as n,j as e}from"./vendor-react-GnwsTJfO.js";import{f as b,V,N as se,B as p,Z as we,C as w,G as S,J as _,g as I,I as T,i as te,j as re,k as ae,l as ie,m as f,a1 as L,F as Se}from"./index-Bk3sb3g_.js";import{u as _e}from"./useAdminAuth-B8BfgGDM.js";import{e as ne}from"./AdminNavigation-DVMee0wC.js";import{S as Ce,a as ye}from"./StickyFormActions-DhE7qWCm.js";import{L as c}from"./label-CC4lcsSO.js";import{T as Ie}from"./textarea-DX8aEp-d.js";import{S as A}from"./switch-HlfwIZQ_.js";import{C as Le}from"./checkbox-CXoLB0wA.js";import{S as Ae}from"./slider-BlggZitC.js";import{R as Te}from"./RichTextEditor-CFLY8lWg.js";import{D as R,W as oe,a as Ee}from"./displayBoards-DQVuIMIZ.js";import{E as le}from"./external-link-BCPKGj30.js";import{S as Fe}from"./save-DqX4_s7f.js";import{A as We}from"./arrow-up-DiMErgkE.js";import{A as Me}from"./arrow-down-DZz-B7qG.js";import"./vendor-cjs-BcELrC9x.js";import"./vendor-supabase-BWPZKnGU.js";import"./vendor-ui-C1xCQL2z.js";import"./vendor-utils-B2rm_Apj.js";import"./vendor-query-Dp4tHR6-.js";import"./MasonicCross-CB_Vslf8.js";import"./image-CJtwgLmH.js";import"./users-Cq75-41X.js";import"./vendor-editor-D6dciLIt.js";import"./vendor-charts-nzC1RNlt.js";import"./MediaPicker-AY7BSKf3.js";import"./tabs-BNB3Udc8.js";import"./mediaLibrary-CxE8eUBE.js";import"./browser-image-compression-BzWLnoYn.js";import"./useProvincialMediaBanks-D1PHzV0C.js";import"./alert-1UpWSmue.js";import"./upload-BsTf4xyL.js";import"./trash-2-DOLSXo7O.js";import"./useStickyNavOffset-BgVuKoFO.js";import"./image-plus-Cy7-asr8.js";import"./align-left-DWOxStZg.js";const ks=()=>{const{id:m}=Ne(),v=be(),{user:k,expandedCategoryIds:x,role:C,loading:u}=_e(),[l,N]=n.useState(!0),[E,F]=n.useState(!1),[B,ce]=n.useState(""),[z,G]=n.useState(""),[O,$]=n.useState(!0),[q,P]=n.useState(""),[K,U]=n.useState("dark"),[W,H]=n.useState(15),[M,J]=n.useState([]),[Z,Q]=n.useState([]),[me,xe]=n.useState([]),[h,y]=n.useState(R),[X,he]=n.useState([]),[De,ge]=n.useState([]);n.useEffect(()=>{u||!k||!m||ue()},[u,k,m]);const ue=async()=>{var d;N(!0);const{data:s,error:t}=await b.from("display_boards").select("*").eq("id",m).maybeSingle();if(t||!s){V.error("Fant ikke skjermvisningen"),v("/admin/displays");return}G(s.name),ce(s.access_token),$(s.is_active),P(s.welcome_message||""),U(s.theme||"dark"),H(s.rotation_seconds),J(s.lodge_ids||[]),Q(s.extra_lodge_ids||[]),xe(s.category_ids||[]);const r=s.layout_config||{widgets:R};y((d=r.widgets)!=null&&d.length?r.widgets:R);const[a,o]=await Promise.all([b.from("lodges").select("id, name, lodge_number").order("lodge_number"),C==="webmaster"||C==="editor_dnfo"?b.from("categories").select("id, name").order("name"):b.from("categories").select("id, name").in("id",x.length>0?x:["00000000-0000-0000-0000-000000000000"]).order("name")]);he(a.data||[]),ge(o.data||[]),N(!1)},Y=(s,t)=>s.includes(t)?s.filter(r=>r!==t):[...s,t],je=s=>{y(t=>{if(t.find(o=>o.type===s))return t.filter(o=>o.type!==s);const a=(t.reduce((o,d)=>Math.max(o,d.order),0)||0)+1;return[...t,{id:`w-${s}-${Date.now()}`,type:s,size:2,order:a,options:{}}]})},j=(s,t)=>{y(r=>r.map(a=>a.id===s?{...a,...t,options:{...a.options,...t.options||{}}}:a))},ee=(s,t)=>{y(r=>{const a=[...r].sort((g,i)=>g.order-i.order),o=a.findIndex(g=>g.type===s);if(o===-1)return r;const d=o+t;return d<0||d>=a.length?r:([a[o],a[d]]=[a[d],a[o]],a.map((g,i)=>({...g,order:i+1})))})},pe=n.useMemo(()=>new Set(h.map(s=>s.type)),[h]),fe=["news","info_meetings","lodge_meetings","extra_lodge_meetings","global_slides","welcome","clock","coat_of_arms","free_text"],ve=n.useMemo(()=>{const s=[...h].sort((r,a)=>r.order-a.order).map(r=>r.type),t=fe.filter(r=>!s.includes(r));return[...s,...t]},[h]),D=async({closeAfter:s=!1}={})=>{if(!k||!m)return!1;F(!0);const{error:t}=await b.from("display_boards").update({name:z,is_active:O,welcome_message:q||null,theme:K,rotation_seconds:W,lodge_ids:M,extra_lodge_ids:Z,category_ids:me,layout_config:{widgets:h}}).eq("id",m);return t?(V.error("Kunne ikke lagre",{description:t.message}),F(!1),!1):(F(!1),V("Lagret",{description:"Endringene er lagret."}),s&&v("/admin/displays"),!0)};return u||l?e.jsxs("div",{className:"min-h-screen bg-background",children:[e.jsx(se,{}),e.jsx(ne,{}),e.jsx("div",{className:"container mx-auto px-4 py-8",children:e.jsx("p",{className:"text-muted-foreground",children:"Laster..."})})]}):e.jsxs("div",{className:"min-h-screen bg-background",children:[e.jsx(se,{}),e.jsx(ne,{}),e.jsxs("div",{className:"container mx-auto px-4 py-8 max-w-5xl",children:[e.jsxs("div",{className:"flex items-center justify-between mb-6 gap-4 flex-wrap",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsxs(p,{variant:"ghost",size:"sm",onClick:()=>v("/admin/displays"),children:[e.jsx(we,{className:"h-4 w-4 mr-1"})," Tilbake"]}),e.jsx("h1",{className:"text-2xl font-serif",children:"Rediger skjermvisning"})]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(p,{variant:"outline",asChild:!0,children:e.jsxs("a",{href:`/skjerm/${B}`,target:"_blank",rel:"noreferrer",children:[e.jsx(le,{className:"h-4 w-4 mr-1"})," Forhåndsvis"]})}),e.jsxs(p,{onClick:()=>D(),disabled:E,children:[e.jsx(Fe,{className:"h-4 w-4 mr-1"})," ",E?"Lagrer...":"Lagre"]})]})]}),e.jsxs("div",{className:"space-y-6",children:[e.jsxs(w,{children:[e.jsx(S,{children:e.jsx(_,{children:"Generelt"})}),e.jsxs(I,{className:"space-y-4",children:[e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(c,{children:"Navn"}),e.jsx(T,{value:z,onChange:s=>G(s.target.value)})]}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx(c,{children:"Aktiv"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Når deaktivert vises en informasjonsmelding på skjermen."})]}),e.jsx(A,{checked:O,onCheckedChange:$})]}),e.jsxs("div",{className:"grid md:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(c,{children:"Tema"}),e.jsxs(te,{value:K,onValueChange:s=>U(s),children:[e.jsx(re,{children:e.jsx(ae,{})}),e.jsxs(ie,{children:[e.jsx(f,{value:"dark",children:"Mørkt (anbefalt for TV)"}),e.jsx(f,{value:"light",children:"Lyst"})]})]})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsxs(c,{children:["Rotasjon (sekunder per slide): ",W,"s"]}),e.jsx(Ae,{value:[W],min:5,max:60,step:5,onValueChange:s=>H(s[0])})]})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(c,{children:"Velkomstmelding / motto"}),e.jsx(Ie,{value:q,onChange:s=>P(s.target.value),placeholder:"F.eks. Velkommen til St. Olaus T.D.B.G.",rows:2})]})]})]}),e.jsxs(w,{children:[e.jsxs(S,{children:[e.jsx(_,{children:"Loger på dette stedet"}),e.jsx(L,{children:"Velg logene som hører til lokalet hvor skjermen står. Møter for disse vises i widgets."})]}),e.jsx(I,{children:e.jsx(de,{lodges:X,selectedIds:M,onToggle:s=>J(t=>Y(t,s))})})]}),e.jsxs(w,{children:[e.jsxs(S,{children:[e.jsx(_,{children:"Andre loger (valgfritt)"}),e.jsx(L,{children:'Møter for disse logene vises i widgeten "Logemøter (andre loger)".'})]}),e.jsx(I,{children:e.jsx(de,{lodges:X.filter(s=>
1!M.includes(s.id)),selectedIds:Z,onToggle:s=>Q(t=>Y(t,s))})})]}),e.jsxs(w,{children:[e.jsxs(S,{children:[e.jsx(_,{children:"Innholdsmoduler (widgets)"}),e.jsx(L,{children:"Velg hva som skal vises på skjermen og hvor stort. Bruk pilene for å endre rekkefølgen modulene vises i."})]}),e.jsx(I,{className:"space-y-3",children:ve.map(s=>{const t=h.find(i=>i.type===s),r=!!t,a=[...h].sort((i,ke)=>i.order-ke.order),o=r?a.findIndex(i=>i.type===s):-1,d=o===0,g=o===a.length-1;return e.jsxs("div",{className:"border rounded-lg p-3 bg-muted/30",children:[e.jsxs("div",{className:"flex items-start justify-between gap-3",children:[r&&e.jsxs("div",{className:"flex flex-col gap-1 pt-0.5",children:[e.jsx(p,{variant:"ghost",size:"icon",className:"h-6 w-6",disabled:d,onClick:()=>ee(s,-1),"aria-label":"Flytt opp",children:e.jsx(We,{className:"h-3.5 w-3.5"})}),e.jsx(p,{variant:"ghost",size:"icon",className:"h-6 w-6",disabled:g,onClick:()=>ee(s,1),"aria-label":"Flytt ned",children:e.jsx(Me,{className:"h-3.5 w-3.5"})})]}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("div",{className:"font-medium",children:oe[s]}),e.jsx("p",{className:"text-sm text-muted-foreground",children:Ee[s]})]}),e.jsx(A,{checked:r,onCheckedChange:()=>je(s)})]}),r&&t&&e.jsxs("div",{className:"mt-3 pt-3 border-t space-y-3",children:[e.jsxs("div",{className:"grid sm:grid-cols-2 gap-3",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsx(c,{className:"text-xs",children:"Bredde"}),e.jsxs(te,{value:String(t.size),onValueChange:i=>j(t.id,{size:Number(i)}),children:[e.jsx(re,{children:e.jsx(ae,{})}),e.jsxs(ie,{children:[e.jsx(f,{value:"1",children:"1/4"}),e.jsx(f,{value:"2",children:"1/2"}),e.jsx(f,{value:"3",children:"3/4"}),e.jsx(f,{value:"4",children:"Full bredde"})]})]})]}),(s==="news"||s==="lodge_meetings"||s==="extra_lodge_meetings"||s==="info_meetings")&&e.jsxs("div",{className:"space-y-1",children:[e.jsx(c,{className:"text-xs",children:"Maks antall"}),e.jsx(T,{type:"number",min:1,max:50,value:t.options.limit??4,onChange:i=>j(t.id,{options:{limit:Math.max(1,Math.min(50,Number(i.target.value)||1))}})})]})]}),s!=="clock"&&s!=="welcome"&&e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(c,{className:"text-xs",children:"Vis tittel"}),e.jsx(A,{checked:t.options.show_title??!0,onCheckedChange:i=>j(t.id,{options:{show_title:i}})})]}),(t.options.show_title??!0)&&e.jsxs("div",{className:"space-y-1",children:[e.jsx(c,{className:"text-xs",children:"Alternativ tittel (valgfritt)"}),e.jsx(T,{value:t.options.title??"",onChange:i=>j(t.id,{options:{title:i.target.value}}),placeholder:`Standard: ${oe[s]}`,maxLength:120})]})]}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx(c,{className:"text-xs",children:"Vis ramme rundt modulen"}),e.jsx("p",{className:"text-[11px] text-muted-foreground",children:"Slå av for å vise innholdet rett på bakgrunnen."})]}),e.jsx(A,{checked:t.options.show_card??!0,onCheckedChange:i=>j(t.id,{options:{show_card:i}})})]})]}),r&&t&&s==="free_text"&&e.jsxs("div",{className:"mt-3 pt-3 border-t space-y-1",children:[e.jsx(c,{className:"text-xs",children:"Innhold"}),e.jsx(Te,{content:t.options.html??"",onChange:i=>j(t.id,{options:{html:i}}),placeholder:"Skriv innholdet som skal vises på skjermen..."})]})]},s)})})]}),pe.has("global_slides")&&e.jsx(w,{children:e.jsxs(S,{children:[e.jsx(_,{children:"Informasjon fra Ordenen"}),e.jsx(L,{children:"Alle publiserte artikler som er markert som «Informasjon fra Ordenen» i artikkel-editoren vises automatisk på denne skjermen. Kun Webmaster og Webredaktør DNFO kan opprette slike artikler."})]})})]}),e.jsxs(Ce,{children:[e.jsx(p,{variant:"outline",className:"w-full sm:w-auto",asChild:!0,children:e.jsxs("a",{href:`/skjerm/${B}`,target:"_blank",rel:"noreferrer",children:[e.jsx(le,{className:"h-4 w-4 mr-1"})," Forhåndsvis"]})}),e.jsx(ye,{onSave:()=>D(),onSaveAndClose:()=>D({closeAfter:!0}),saving:E})]})]}),e.jsx(Se,{})]})};function de({lodges:m,selectedIds:v,onToggle:k}){const[x,C]=n.useState(""),u=n.useMemo(()=>
1{if(!x)return m;const l=x.toLowerCase();return m.filter(N=>N.name.toLowerCase().includes(l)||N.lodge_number.includes(l))},[x,m]);return e.jsxs("div",{className:"space-y-2",children:[e.jsx(T,{placeholder:"Søk etter loge...",value:x,onChange:l=>C(l.target.value)}),e.jsx("div",{className:"max-h-64 overflow-y-auto border rounded-md p-2 space-y-1",children:u.length===0?e.jsx("p",{className:"text-sm text-muted-foreground p-2",children:"Ingen treff."}):u.map(l=>e.jsxs("label",{className:"flex items-center gap-2 cursor-pointer hover:bg-muted/50 p-1 rounded",children:[e.jsx(Le,{checked:v.includes(l.id),onCheckedChange:()=>k(l.id)}),e.jsxs("span",{className:"text-sm",children:[e.jsx("span",{className:"text-muted-foreground mr-1",children:l.lodge_number}),l.name]})]},l.id))})]})}export{ks 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.