torsdag, 6 august, 2026
  • Worldwide Shipping
  • Nyttige Links
  • Tilmeld firma eller organisation
  • Nyhedsbrev
  • Mit Polen in English
Din danske podcast, blog og guide til Polen
  • Podcasts og Artikler
    • Bo og Arbejde i Polen
    • Livet i Polen
    • Polens kultur og historie
    • Mad og Drikke i Polen
    • Rejseguide til Polen
      • Ferie i Polen – Den komplette rejseguide
      • Warszawa
      • Krakow
      • Gdansk
      • Poznan
      • Wroclaw
      • Ferie med børn
    • Samfund og Politik i Polen
    • Mit Polen På Tur
    • Virksomhed i Polen
    • Spørgsmål og Svar om Polen
  • Klub Mit Polen
    • Eksklusivt for medlemmer
    • Bliv medlem
    • Log Ind
    • Mit Polen – Medlemsside
    • FAQ
  • Bliv Partner
    • Mit Polens partnere
    • Mit Polen Netværket
    • Ekstra Eksponeringsmuligheder
  • Ydelser (English)
  • Webshop
  • Ressourcer
    • Nyttige Links
    • Tilmeld firma eller organisation
    • Nyhedsbrev
    • Polen i billeder
      • Warszawa i Billeder
      • Krakow i Billeder
      • Gdansk i Billeder
      • Poznan i Billeder
      • Wroclaw i Billeder
      • Szczecin i Billeder
      • Polens natur og landskaber
    • Vejret i Polen
  • Om Mit Polen
    • Bag om Mit Polen
    • Mit Polens temaer
    • Mit Polen i medierne
    • Presse
    • Mit Polen in English
  • Kontakt Mit Polen
  • Login

Ingen varer i kurven.

Ingen resultater
Se alle resultaterne
Din danske podcast, blog og guide til Polen
  • Podcasts og Artikler
    • Bo og Arbejde i Polen
    • Livet i Polen
    • Polens kultur og historie
    • Mad og Drikke i Polen
    • Rejseguide til Polen
      • Ferie i Polen – Den komplette rejseguide
      • Warszawa
      • Krakow
      • Gdansk
      • Poznan
      • Wroclaw
      • Ferie med børn
    • Samfund og Politik i Polen
    • Mit Polen På Tur
    • Virksomhed i Polen
    • Spørgsmål og Svar om Polen
  • Klub Mit Polen
    • Eksklusivt for medlemmer
    • Bliv medlem
    • Log Ind
    • Mit Polen – Medlemsside
    • FAQ
  • Bliv Partner
    • Mit Polens partnere
    • Mit Polen Netværket
    • Ekstra Eksponeringsmuligheder
  • Ydelser (English)
  • Webshop
  • Ressourcer
    • Nyttige Links
    • Tilmeld firma eller organisation
    • Nyhedsbrev
    • Polen i billeder
      • Warszawa i Billeder
      • Krakow i Billeder
      • Gdansk i Billeder
      • Poznan i Billeder
      • Wroclaw i Billeder
      • Szczecin i Billeder
      • Polens natur og landskaber
    • Vejret i Polen
  • Om Mit Polen
    • Bag om Mit Polen
    • Mit Polens temaer
    • Mit Polen i medierne
    • Presse
    • Mit Polen in English
  • Kontakt Mit Polen
Ingen resultater
Se alle resultaterne

Ingen varer i kurven.

Din danske podcast, blog og guide til Polen
Ingen resultater
Se alle resultaterne

Bolig i Polen som dansker: Sådan finder du den rigtige bolig

Søren Wilsted Christensen af Søren Wilsted Christensen
10. marts 2026
i Bo og Arbejde i Polen, Podcasts og Artikler
0
Del på FacebookDel på XDel på LinkedInDel på Threads

Det korte svar er, at det ofte er muligt, men ikke nødvendigvis så enkelt, som det først ser ud. Mange, der søger bolig i Polen som dansker, bliver positivt overraskede over, hvor mange lejligheder der faktisk er på markedet, især i de større byer. Samtidig er det almindeligt, at boliger udlejes møbleret eller delvist møbleret, hvilket gør det lettere at flytte ind uden at skulle starte helt fra bunden.

Men det betyder ikke, at processen er ligetil. Du kan godt finde mange annoncer online, men det er en ting at finde annoncer og noget helt andet at finde den rigtige bolig med de rigtige vilkår. Det er netop her, mange begår fejl. De ser på billeder, pris og beliggenhed, men får ikke spurgt nok ind til kontrakt, ekstraudgifter, lejeperiode eller de praktiske forhold omkring boligen.

Derfor er bolig i Polen som dansker sjældent svært i betydningen umuligt, men det kræver, at du er mere opmærksom og lidt mindre blåøjet, end nogle måske først regner med.

Hvorfor tænker mange forkert om bolig i Polen?

En af de mest almindelige misforståelser er, at bolig i Polen automatisk er billigt. Sådan var det måske lettere at sige for år tilbage, men i dag er billedet langt mere nuanceret. De største og mest populære byer i Polen er steget i pris, og efterspørgslen er mange steder høj. Derfor skal du som dansker ikke regne med, at alt bare er billigt, fordi det er Polen.

En anden fejl er, at mange sammenligner for direkte med Danmark. En lejlighed i Polen kan godt koste mindre end en tilsvarende bolig i Danmark, men det betyder ikke nødvendigvis, at den samlet set er et bedre køb eller en bedre lejeløsning. Standard, område, støj, isolering, ekstraudgifter og transportmuligheder spiller også ind.

Derudover er der mange, der stirrer sig blinde på billeder. En annonce kan se flot og moderne ud, men i virkeligheden være mindre attraktiv, end den fremstår. Omvendt kan en lidt mere kedelig annonce dække over en solid og praktisk bolig. Derfor bør bolig i Polen som dansker altid vurderes ud fra helheden og ikke kun det visuelle indtryk.

Hvilke typer boliger er mest relevante?

Når du ser på bolig i Polen som dansker, vil det især være 4 typer løsninger, der er mest relevante.

Lejlighed til langtidsleje

For de fleste vil en almindelig lejlighed være den bedste løsning. Det gælder især, hvis du flytter til Polen for arbejde, ønsker stabilitet, eller planlægger at blive i længere tid. En lejlighed giver dig en reel base og gør det lettere at få hverdagen til at hænge sammen.

Køb af hus eller lejlighed

Hvis du allerede ved at du vil bo i Polen i mange år, kan det være du gerne vil købe en bolig, enten lejlighed eller hus. Det kan også være en investering.  Såfremt det er tilfældet anbefaler jeg at du finder en god lokal ejendomsmægler, især hvis du er førstegangskøber i Polen eller ikke har boet her i mange år, som jeg selv. Uden er der en større risiko for at du tage en dårlig beslutning, ikke mindst set i et økonomisk perspektiv.

Værelse i delt bolig

Et værelse i en delt bolig kan være en mulighed, hvis budgettet er stramt, eller hvis du kun skal være i Polen i en kortere periode. Det er dog sjældent den mest attraktive løsning for danskere, der flytter permanent eller ønsker mere ro og privatliv.

Midlertidig bolig

Nogle vælger en midlertidig løsning i starten, for eksempel et serviced apartment eller et længere korttidsophold. Det kan faktisk være klogt, fordi det giver dig tid til at lære byen og områderne bedre at kende, før du binder dig til noget mere permanent. Det er ofte bedre at betale lidt mere i starten end at ende i en forkert bolig i flere måneder.

Er boliger i Polen møblerede?

Ja, mange boliger i Polen udlejes møbleret, og det er en stor fordel for mange udlændinge. Når man søger bolig i Polen som dansker, vil man ofte støde på lejligheder, hvor der allerede er seng, sofa, spisebord, garderobeskabe, vaskemaskine og et rimeligt funktionelt køkken.

Men du skal ikke tage ordet møbleret for gode varer. Nogle lejligheder er virkelig klar til indflytning og fungerer fint fra dag ét. Andre er mere teknisk set møblerede, men med slidte møbler, dårlig seng, manglende arbejdsplads eller meget lidt opbevaringsplads. Det er altså vigtigt at se konkret på, hvad der faktisk følger med, og om det passer til dit behov.

Hvis du arbejder hjemmefra, bør du også tænke på, om boligen realistisk giver plads til det. En bolig kan se hyggelig ud, men stadig være upraktisk som base i hverdagen.

Hvor finder man bolig i Polen som dansker?

De fleste starter online på otodom f.eks., og det giver god mening. Men bolig i Polen som dansker handler ikke kun om at finde annoncer. Det handler i lige så høj grad om at kunne sortere mellem dem og vurdere, hvilke der virker seriøse.

Boligportaler

De polske boligportaler er det mest oplagte sted at begynde. Her får du hurtigt et indtryk af prisniveau, boligtyper, bydele og standard. Det er også her, du bedst kan begynde at sammenligne og forstå markedet, f.eks. otodom, som jeg nævnte i sidste afsnit.

Facebook-grupper

Facebook-grupper kan være nyttige, især hvis du leder efter noget mere fleksibelt eller midlertidigt. Men kvaliteten svinger meget, og der er også større risiko for useriøse opslag. Hvis noget virker rodet, uklart eller for godt til at være sandt, så er det ofte netop det.

Ejendomsmægler eller relocation-hjælp

Hvis du ikke taler polsk eller bare gerne vil gøre processen mere sikker, kan det være en stor fordel at bruge en lokal mægler eller relocation-service. Det koster ekstra, men kan til gengæld spare dig for en del misforståelser og dårlige beslutninger.

Hvad koster bolig i Polen?

Prisen afhænger meget af by, område, størrelse og standard. Men når du søger bolig i Polen som dansker, er det afgørende, at du ikke kun ser på den pris, der står størst i annoncen. Det er meget ofte kun en del af det samlede billede.

Ud over selve huslejen kan der komme fællesudgifter, varme, el, vand, internet og andre poster oveni. Nogle gange står det tydeligt. Andre gange skal du aktivt spørge. Derfor bør du altid bede om den samlede månedlige pris og ikke kun se på den nominelle leje.

Husleje og fællesudgifter

Selve lejen er naturligvis udgangspunktet, men siger sjældent alt. Mange lejligheder i Polen har faste ekstraomkostninger til drift af bygningen, renovation, opvarmning eller administration.

Forbrug og depositum

El, varme, internet og vand er ikke nødvendigvis inkluderet. Det skal du have bekræftet. Depositum er normalt og svarer ofte til mindst én måneds leje. Nogle steder kan det være højere.

Hvad med kæledyr? Det står ofte ikke tydeligt

Et punkt, mange overser, når de leder efter bolig i Polen som dansker, er kæledyr. Har du hund eller kat, er det noget, du skal tage op tidligt i processen. Det er nemlig meget almindeligt, at det ikke fremgår tydeligt af opslaget, om dyr er tilladt eller ej.

På mange portaler står der slet ikke noget om kæledyr, og det betyder ikke automatisk, at det er tilladt. Det betyder bare, at du er nødt til at spørge direkte. Nogle udlejere accepterer dyr uden problemer. Andre vil ikke have dem overhovedet. Og nogle siger måske ja til kat, men nej til hund, især hvis den er stor.

Du bør derfor aldrig gå ud fra, at kæledyr er accepteret, bare fordi annoncen ikke nævner det. Få det bekræftet tydeligt, helst skriftligt, før du går videre. Ellers risikerer du at bruge tid på en bolig, som i praksis ikke er en mulighed for dig.

Hvis du har dyr, kan det også være en fordel at skrive lidt kort og ordentligt om dem, når du kontakter udlejeren. En rolig og velopdragen hund eller indekat bliver ofte modtaget bedre, hvis det præsenteres seriøst og åbent, end hvis det først dukker op sent i processen.

Men det kan være en rigtig tidsrøver, hvis du søger selv og i sådan en situation er en ejendomsmægler en rigtig god hjælp.

Pas på scammere og for gode tilbud

Når man leder efter bolig i Polen som dansker, skal man også være opmærksom på scam og tvivlsomme annoncer. Det gælder især, hvis du leder på afstand og endnu ikke er i Polen. Her er du mere sårbar, fordi du ikke lige kan tage ud og se boligen fysisk.

Et klassisk faresignal er en bolig, der ser meget flot ud, ligger godt og samtidig er mistænkeligt billig. Et andet faresignal er, hvis udlejeren presser på for hurtig betaling, især depositum eller reservation, før du har set boligen eller fået ordentlig dokumentation.

Du skal også være forsigtig, hvis kommunikationen er vag, hvis historien bag boligen ændrer sig, eller hvis personen bag annoncen virker usædvanligt interesseret i at få penge hurtigt, men mindre interesseret i at svare ordentligt på spørgsmål. Det er ikke altid scam, men det er præcis sådan scam ofte begynder.

Som tommelfingerregel bør du være meget forsigtig med at overføre penge, før du har set boligen eller fået verificeret, at både bolig og udlejer er reelle. Hvis du er i tvivl, så gå videre til den næste. Der kommer som regel andre muligheder. Bolig i Polen som dansker kræver lidt tålmodighed, men det er stadig bedre end at miste penge til en eller anden fantasifuld svindler med stjålne billeder og dårlig historiefortælling.

Der også helt konkrete måder, hvorpå du kan undgå scammere i Polen. Det og andre konkrete tips har jeg skrevet en artikel om eksklusivt for Klub Mit Polen medlemmer.

Hvad skal du være opmærksom på i lejekontrakten?

Kontrakten er noget af det vigtigste i hele processen. Mange fokuserer på pris og billeder, men kontrakten afgør i praksis, hvad du egentlig siger ja til.

Du skal vide, hvem du lejer af, hvad der er inkluderet i prisen, hvor lang lejeperioden er, hvordan opsigelse fungerer, og hvad reglerne er for depositum. Det skal være tydeligt, og det skal helst stå skriftligt.

Hvis kontrakten kun er på polsk, og du ikke forstår sproget godt nok, bør du ikke skrive under uden hjælp. Få en oversættelse, få nogen til at læse den igennem, eller brug professionel hjælp. Det er langt bedre end at stå med et dokument, du reelt ikke forstår. Det skal være på et sprog du forstår ellers er det ikke juridsk bindende i Polen og derfor er det tit nødvendigt med en autoriseret oversætter evt. få en notar indover.

Hvilke områder skal man vælge?

Område betyder ofte lige så meget som selve boligen. Når du vælger bolig i Polen som dansker, bør du ikke kun se på pris og kvadratmeter. Du bør også tænke på transport, sikkerhed, indkøbsmuligheder, støj, adgang til centrum og hvordan området passer til din hverdag.

En billig bolig langt væk kan hurtigt blive en dårlig løsning, hvis du bruger for meget tid på transport, eller hvis området bare ikke fungerer for dig i praksis. Omvendt er det heller ikke altid nødvendigt at bo helt centralt. For mange vil et område med god adgang til centrum, men lidt lavere priser, være det bedste kompromis.

Typiske fejl ved bolig i Polen som dansker

Der er nogle fejl, der går igen. Den første er, at man vælger for hurtigt, fordi man føler sig presset. Den anden er, at man ikke spørger nok ind til ekstraudgifter. Den tredje er, at man tror, billeder fortæller hele sandheden. Den fjerde er, at man overser området og kun fokuserer på selve lejligheden.

Og så er der de to fejl, som virkelig er værd at undgå, når man kigger efter bolig i Polen som dansker: at man ikke får afklaret regler om kæledyr, og at man bliver for ukritisk over for mistænkelige annoncer. Begge dele kan koste både tid, penge og unødvendigt bøvl.

Bolig og arbejde hænger tæt sammen

Hvis du flytter til Polen for at arbejde, bliver valget af bolig endnu vigtigere. Bolig i Polen som dansker handler her ikke kun om komfort og økonomi, men også om logistik og energi i hverdagen. En god bolig gør det lettere at falde til og få arbejdsdagen til at fungere. En dårlig bolig kan gøre det modsatte.

Det er derfor en god idé at tænke lidt længere end bare den aktuelle jobadresse. Hvis du arbejder hybrid, remote eller måske skifter job senere, kan fleksibilitet i område og boligtype være en stor fordel.

Min vurdering

Bolig i Polen som dansker er hverken noget, du skal frygte, eller noget, du skal tage for let på. Der er gode muligheder, og mange danskere vil kunne finde en bolig, der fungerer godt både økonomisk og praktisk. Men det kræver, at du tager processen seriøst, spørger grundigt ind, tænker over hverdagen og ikke lader dig forføre af flotte billeder eller for gode tilbud.

Mit råd er enkelt, når du leder efter bolig i Polen som dansker: Se på helheden. Få styr på pris, kontrakt, område, kæledyr og udlejerens troværdighed. Få det ned på skrift og helst brug en autoriseret oversætter og en notar og bedst at bruge en ejendomsmægler, især hvis du er ny i Polen Så er chancen langt større for, at du ender med en bolig, der faktisk passer til det liv, du gerne vil skabe i Polen.

Artiklen er ikke bragt i samarbejde med nogen, men din virksomhed og/eller organisation kan blive hovedpartner eller temapartner og blive nævnt her i lignende artikler og podcast-episoder.

Tags: BoligmarkedetBoligpriserGuide
DelTweetDelDel
Tidligere indlæg

Tog fra Polen til Tjekkiet: Snart kan du tage med polsk lyntog

Næste Indlæg

Jeg skriver igen som ekspertblogger på Danmarks største erhvervsforum

Søren Wilsted Christensen

Søren Wilsted Christensen

Jeg har boet i Polen siden foråret 2008 og i 3 forskellige byer samt regioner, dog primært i Warszawa, hvor jeg bor og driver Mit Polen fra. Er ejer og stifter af Mit Polen. Har tidligere drevet andre forretninger i Polen, blandt andet konsulentvirksomheden Biz i Polen, som nu er en del af Mit Polen. Er desuden repræsentant for Danes World Wide i Polen. Henvendelser mv.: info@mitpolen.dk

Næste Indlæg
Laptop, notesbog og mus som illustration til artikel om ekspertblogger og Mit Polen

Jeg skriver igen som ekspertblogger på Danmarks største erhvervsforum

NordicPoland logo
NORDICS POLAND
Nordic thinking. Polish reality.
Market Entry
Leads
Business Tools
In Poland since 2008 Book a call

Ferie i Polen Facebook-gruppen

Aftenstemning over Krakóws gamle by med julelys og marked på torvet, populær destination for ferie i Polen
Mit Polen Webshop krus og magneter med polske bymotiver

Bliv medlem nu

Bliv Klub Mit Polen medlem og støt Mit Polen og få en lang række fordele

Mest læste – seneste måned

  • Bilferie i Polen med elbil ved ladestander

    Bilferie i Polen med elbil – kan det lade sig gøre?

    0 delt
    Del 0 Tweet 0
  • Færge til Polen fra Danmark: Din store guide til ruter, priser og praktiske tips

    0 delt
    Del 0 Tweet 0
  • De bedste restauranter i Gdansk i 2026

    0 delt
    Del 0 Tweet 0
  • Ferie i Polen – Den komplette rejseguide til byer, priser og planlægning

    0 delt
    Del 0 Tweet 0
  • Apotek i Polen: Sådan fungerer det, og det skal du vide som dansker

    0 delt
    Del 0 Tweet 0

Seneste Indhold

  • Hvorfor er PiS splittet i 2026? Kaczyński vs. Morawiecki og hvilken betydning får det? 3. august 2026
  • Kampinoski Nationalpark i Warszawa: Vild natur kun 30 minutter fra centrum 30. juli 2026
  • Derfor er der stor uro i Polens største oppositionsparti 24. juli 2026
  • Grunwaldslaget genopføres hver sommer i Polen: sådan bliver du en del af historien 21. juli 2026
  • Seværdigheder i Katowice og omegn: fra forlystelsespark til natur og historie 17. juli 2026
Kort over Polen med mørkeblå baggrund og hvid markering af landet, tekst “Opret profil i Nyttige Links – Bliv en del af Mit Polens erhvervskatalog” og rød knap med teksten “Opret profil nu”

Kategorier

  • Bag om Mit Polen
  • Bo og Arbejde i Polen
  • Eksklusivt for medlemmer
  • Livet i Polen
  • Mad og Drikke i Polen
  • Mit Polen På Tur
  • Podcasts og Artikler
  • Polens kultur og historie
  • Rejseguide til Polen
  • Samfund og Politik i Polen
  • Spørgsmål og Svar om Polen
  • Virksomhed i Polen
Mit Polen logo – dansk podcast og guide til Polen
Mit Polen
Puławska 12/3, 02-566 Warszawa.
Tlf.: +48452910607, kl. 10-16 Man. til Fredag
Email: info@mitpolen.dk
NIP (polsk CVR): 7010178625
Bliv medlem

Følg Mit Polen

  • facebook
  • instagram
  • linkedin
  • gumroad
  • youtube
  • tiktok

– Din danske podcast, blog og guide til Polen.

  • Podcasts og Artikler
  • Klub Mit Polen
  • Bliv Partner
    • Ekstra Eksponeringsmuligheder
  • Mit Polen Netværket
  • Nyttige Links
    • Tilmeld firma eller organisation
  • Workshops
  • Webshop
  • Tilmeld nyhedsbrev
  • Kontakt Mit Polen
  • Om Mit Polen
  • Presse
    • Mit Polen i medierne
  • Abonnementsbetingelser
  • Handelsbetingelser
  • Privatliv og Cookies
  • Mit Polen in English

© Mit Polen. Alle rettigheder forbeholdes. Sikker og krypteret betaling via Stripe.

Ok

Retrieve your password

Please enter your username or email address to reset your password.

Log In

Request Refund

×
Ingen resultater
Se alle resultaterne
  • Podcasts og Artikler
    • Bo og Arbejde i Polen
    • Livet i Polen
    • Polens kultur og historie
    • Mad og Drikke i Polen
    • Rejseguide til Polen
      • Ferie i Polen – Den komplette rejseguide
      • Warszawa
      • Krakow
      • Gdansk
      • Poznan
      • Wroclaw
      • Ferie med børn
    • Samfund og Politik i Polen
    • Mit Polen På Tur
    • Virksomhed i Polen
    • Spørgsmål og Svar om Polen
  • Klub Mit Polen
    • Eksklusivt for medlemmer
    • Bliv medlem
    • Log Ind
    • Mit Polen – Medlemsside
    • FAQ
  • Bliv Partner
    • Mit Polens partnere
    • Mit Polen Netværket
    • Ekstra Eksponeringsmuligheder
  • Ydelser (English)
  • Webshop
  • Ressourcer
    • Nyttige Links
    • Tilmeld firma eller organisation
    • Nyhedsbrev
    • Polen i billeder
      • Warszawa i Billeder
      • Krakow i Billeder
      • Gdansk i Billeder
      • Poznan i Billeder
      • Wroclaw i Billeder
      • Szczecin i Billeder
      • Polens natur og landskaber
    • Vejret i Polen
  • Om Mit Polen
    • Bag om Mit Polen
    • Mit Polens temaer
    • Mit Polen i medierne
    • Presse
    • Mit Polen in English
  • Kontakt Mit Polen

© Mit Polen. Alle rettigheder forbeholdes. Sikker og krypteret betaling via Stripe.

Not enough quota to unlock this post
Oplåsninger tilbage : 0
Er du sikker på, at du vil opsige abonnementet?
-
00:00
00:00

Kø

Update Required Flash plugin
-
00:00
00:00

Fatal error: Uncaught JSMin_UnterminatedCommentException: JSMin: Unterminated comment at byte 2280781: /*`}">.`)}let G,s=$P();if(l){let c="string"==typeof l?sP(l):l;uP("/"===u||c.pathname?.startsWith(u),`When overriding the location using \`<Routes location>\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${u}" but pathname "${c.pathname}" was given in the \`location\` prop.`),G=c}else G=s;let g=G.pathname||"/",x=g;if("/"!==u){let c=u.replace(/^\//,"").split("/");x="/"+g.replace(/^\//,"").split("/").slice(c.length).join("/")}let m=gP(c,{pathname:x});XP(X||null!=m,`No routes matched location "${G.pathname}${G.search}${G.hash}" `),XP(null==m||void 0!==m[m.length-1].route.element||void 0!==m[m.length-1].route.Component||void 0!==m[m.length-1].route.lazy,`Matched leaf route at location "${G.pathname}${G.search}${G.hash}" does not have an element or Component. This means it will render an <Outlet /> with a null value by default resulting in an "empty" page.`);let r=function(c,l=[],e=null,t=null){if(null==c){if(!e)return null;if(e.errors)c=e.matches;else{if(0!==l.length||e.initialized||!(e.matches.length>0))return null;c=e.matches}}let d=c,b=e?.errors;if(null!=b){let c=d.findIndex(c=>c.route.id&&void 0!==b?.[c.route.id]);uP(c>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(b).join(",")}`),d=d.slice(0,Math.min(d.length,c+1))}let n=!1,a=-1;if(e)for(let c=0;c<d.length;c++){let l=d[c];if((l.route.HydrateFallback||l.route.hydrateFallbackElement)&&(a=c),l.route.id){let{loaderData:c,errors:t}=e,b=l.route.loader&&!c.hasOwnProperty(l.route.id)&&(!t||void 0===t[l.route.id]);if(l.route.lazy||b){n=!0,d=a>=0?d.slice(0,a+1):[d[0]];break}}}let o=e&&t?(c,l)=>{t(c,{location:e.location,params:e.matches?.[0]?.params??{},unstable_pattern:AP(e.matches),errorInfo:l})}:void 0;return d.reduceRight((c,t,u)=>{let X,G=!1,s=null,g=null;e&&(X=b&&t.route.id?b[t.route.id]:void 0,s=t.route.errorElement||dK,n&&(a<0&&0===u?(GK("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),G=!0,g=null):a===u&&(G=!0,g=t.route.hydrateFallbackElement||null)));let x=l.concat(d.slice(0,u+1)),m=()=>{let l;return l=X?s:G?g:t.route.Component?i.createElement(t.route.Component,null):t.route.element?t.route.element:c,i.createElement(aK,{match:t,routeContext:{outlet:c,matches:x,isDataRoute:null!=e},children:l})};return e&&(t.route.ErrorBoundary||t.route.errorElement||0===u)?i.createElement(bK,{location:e.location,revalidation:e.revalidation,component:s,error:X,children:m(),routeContext:{outlet:null,matches:x,isDataRoute:!0},onError:o}):m()},null)}(m&&m.map(c=>Object.assign({},c,{params:Object.assign({},a,c.params),pathname:fP([u,d.encodeLocation?d.encodeLocation(c.pathname.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:c.pathname]),pathnameBase:"/"===c.pathnameBase?u:fP([u,d.encodeLocation?d.encodeLocation(c.pathnameBase.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:c.pathnameBase])})),b,e,t);return l&&r?i.createElement(EP.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",...G},navigationType:"POP"}},r):r}(c,void 0,e,t)});var sK="get",gK="application/x-www-form-urlencoded";function xK(c){return typeof HTMLElement<"u"&&c instanceof HTMLElement}var mK=null,rK=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function HK(c){return null==c||rK.has(c)?c:(XP(!1,`"${c}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${gK}"`),null)}function ZK(c,l){if(!1===c||null===c||typeof c>"u")throw new Error(l)}function RK(c){return null!=c&&(null==c.href?"preload"===c.rel&&"string"==typeof c.imageSrcSet&&"string"==typeof c.imageSizes:"string"==typeof c.rel&&"string"==typeof c.href)}function IK(c,l,e,t,d,b){let n=(c,l)=>!e[l]||c.route.id!==e[l].route.id,i=(c,l)=>e[l].pathname!==c.pathname||e[l].route.path?.endsWith("*")&&e[l].params["*"]!==c.params["*"];return"assets"===b?l.filter((c,l)=>n(c,l)||i(c,l)):"data"===b?l.filter((l,b)=>{let a=t.routes[l.route.id];if(!a||!a.hasLoader)return!1;if(n(l,b)||i(l,b))return!0;if(l.route.shouldRevalidate){let t=l.route.shouldRevalidate({currentUrl:new URL(d.pathname+d.search+d.hash,window.origin),currentParams:e[0]?.params||{},nextUrl:new URL(c,window.origin),nextParams:l.params,defaultShouldRevalidate:!0});if("boolean"==typeof t)return t}return!0}):[]}function WK(){let c=i.useContext(LP);return ZK(c,"You must render this element inside a <DataRouterContext.Provider> element"),c}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var pK=i.createContext(void 0);function yK(){let c=i.useContext(pK);return ZK(c,"You must render this element inside a <HydratedRouter> element"),c}function BK(c,l){return e=>{c&&c(e),e.defaultPrevented||l(e)}}function hK({page:c,...l}){let{router:e}=WK(),t=i.useMemo(()=>gP(e.routes,c,e.basename),[e.routes,c,e.basename]);return t?i.createElement(VK,{page:c,matches:t,...l}):null}function VK({page:c,matches:l,...e}){let t=$P(),{future:d,manifest:b,routeModules:n}=yK(),{basename:a}=WK(),{loaderData:o,matches:u}=function(){let c=i.useContext(DP);return ZK(c,"You must render this element inside a <DataRouterStateContext.Provider> element"),c}(),X=i.useMemo(()=>IK(c,l,u,b,t,"data"),[c,l,u,b,t]),G=i.useMemo(()=>IK(c,l,u,b,t,"assets"),[c,l,u,b,t]),s=i.useMemo(()=>{if(c===t.pathname+t.search+t.hash)return[];let e=new Set,i=!1;if(l.forEach(c=>{let l=b.routes[c.route.id];!l||!l.hasLoader||(!X.some(l=>l.route.id===c.route.id)&&c.route.id in o&&n[c.route.id]?.shouldRevalidate||l.hasClientLoader?i=!0:e.add(c.route.id))}),0===e.size)return[];let u=function(c,l,e,t){let d="string"==typeof c?new URL(c,typeof window>"u"?"server://singlefetch/":window.location.origin):c;return e?d.pathname.endsWith("/")?d.pathname=`${d.pathname}_.${t}`:d.pathname=`${d.pathname}.${t}`:"/"===d.pathname?d.pathname=`_root.${t}`:l&&"/"===vP(d.pathname,l)?d.pathname=`${l.replace(/\/$/,"")}/_root.${t}`:d.pathname=`${d.pathname.replace(/\/$/,"")}.${t}`,d}(c,a,d.unstable_trailingSlashAwareDataRequests,"data");return i&&e.size>0&&u.searchParams.set("_routes",l.filter(c=>e.has(c.route.id)).map(c=>c.route.id).join(",")),[u.pathname+u.search]},[a,d.unstable_trailingSlashAwareDataRequests,o,t,b,X,l,c,n]),g=i.useMemo(()=>function(c,l,{includeHydrateFallback:e}={}){return function(c){return[...new Set(c)]}(c.map(c=>{let t=l.routes[c.route.id];if(!t)return[];let d=[t.module];return t.clientActionModule&&(d=d.concat(t.clientActionModule)),t.clientLoaderModule&&(d=d.concat(t.clientLoaderModule)),e&&t.hydrateFallbackModule&&(d=d.concat(t.hydrateFallbackModule)),t.imports&&(d=d.concat(t.imports)),d}).flat(1))}(G,b),[G,b]),x=function(c){let{manifest:l,routeModules:e}=yK(),[t,d]=i.useState([]);return i.useEffect(()=>{let t=!1;return async function(c,l,e){let t=await Promise.all(c.map(async c=>{let t=l.routes[c.route.id];if(t){let c=await async function(c,l){if(c.id in l)return l[c.id];try{let e=await import(c.module);return l[c.id]=e,e}catch(l){return console.error(`Error loading route module \`${c.module}\`, reloading page...`),console.error(l),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}(t,e);return c.links?c.links():[]}return[]}));return function(c){let l=new Set;return new Set(void 0),c.reduce((c,e)=>{let t=JSON.stringify(function(c){let l={},e=Object.keys(c).sort();for(let t of e)l[t]=c[t];return l}(e));return l.has(t)||(l.add(t),c.push({key:t,link:e})),c},[])}(t.flat(1).filter(RK).filter(c=>"stylesheet"===c.rel||"preload"===c.rel).map(c=>"stylesheet"===c.rel?{...c,rel:"prefetch",as:"style"}:{...c,rel:"prefetch"}))}(c,l,e).then(c=>{t||d(c)}),()=>{t=!0}},[c,l,e]),t}(G);return i.createElement(i.Fragment,null,s.map(c=>i.createElement("link",{key:c,rel:"prefetch",as:"fetch",href:c,...e})),g.map(c=>i.createElement("link",{key:c,rel:"modulepreload",href:c,...e})),x.map(({key:c,link:l})=>i.createElement("link",{key:c,nonce:e.nonce,...l,crossOrigin:l.crossOrigin??e.crossOrigin})))}function vK(...c){return l=>{c.forEach(c=>{"function"==typeof c?c(l):null!=c&&(c.current=l)})}}pK.displayName="FrameworkContext";var FK=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";try{FK&&(window.__reactRouterVersion="7.13.0")}catch{}var YK=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,JK=i.forwardRef(function({onClick:c,discover:l="render",prefetch:e="none",relative:t,reloadDocument:d,replace:b,state:n,target:a,to:o,preventScrollReset:u,viewTransition:X,unstable_defaultShouldRevalidate:G,...s},g){let{basename:x,unstable_useTransitions:m}=i.useContext(MP),r="string"==typeof o&&YK.test(o),H=OP(o,x),Z=function(c,{relative:l}={}){uP(qP(),"useHref() may be used only in the context of a <Router> component.");let{basename:e,navigator:t}=i.useContext(MP),{hash:d,pathname:b,search:n}=eK(c,{relative:l}),a=b;return"/"!==e&&(a="/"===b?e:fP([e,b])),t.createHref({pathname:a,search:n,hash:d})}(o=H.to,{relative:t}),[R,I,W]=function(c,l){let e=i.useContext(pK),[t,d]=i.useState(!1),[b,n]=i.useState(!1),{onFocus:a,onBlur:o,onMouseEnter:u,onMouseLeave:X,onTouchStart:G}=l,s=i.useRef(null);i.useEffect(()=>{if("render"===c&&n(!0),"viewport"===c){let c=c=>{c.forEach(c=>{n(c.isIntersecting)})},l=new IntersectionObserver(c,{threshold:.5});return s.current&&l.observe(s.current),()=>{l.disconnect()}}},[c]),i.useEffect(()=>{if(t){let c=setTimeout(()=>{n(!0)},100);return()=>{clearTimeout(c)}}},[t]);let g=()=>{d(!0)},x=()=>{d(!1),n(!1)};return e?"intent"!==c?[b,s,{}]:[b,s,{onFocus:BK(a,g),onBlur:BK(o,x),onMouseEnter:BK(u,g),onMouseLeave:BK(X,x),onTouchStart:BK(G,g)}]:[!1,s,{}]}(e,s),p=function(c,{target:l,replace:e,state:t,preventScrollReset:d,relative:b,viewTransition:n,unstable_defaultShouldRevalidate:a,unstable_useTransitions:o}={}){let u=function(){let{isDataRoute:c}=i.useContext(PP);return c?function(){let{router:c}=function(){let c=i.useContext(LP);return uP(c,oK("useNavigate")),c}(),l=uK("useNavigate"),e=i.useRef(!1);return lK(()=>{e.current=!0}),i.useCallback(async(t,d={})=>{XP(e.current,cK),e.current&&("number"==typeof t?await c.navigate(t):await c.navigate(t,{fromRouteId:l,...d}))},[c,l])}():function(){uP(qP(),"useNavigate() may be used only in the context of a <Router> component.");let c=i.useContext(LP),{basename:l,navigator:e}=i.useContext(MP),{matches:t}=i.useContext(PP),{pathname:d}=$P(),b=JSON.stringify(CP(t)),n=i.useRef(!1);return lK(()=>{n.current=!0}),i.useCallback((t,i={})=>{if(XP(n.current,cK),!n.current)return;if("number"==typeof t)return void e.go(t);let a=NP(t,JSON.parse(b),d,"path"===i.relative);null==c&&"/"!==l&&(a.pathname="/"===a.pathname?l:fP([l,a.pathname])),(i.replace?e.replace:e.push)(a,i.state,i)},[l,e,b,d,c])}()}(),X=$P(),G=eK(c,{relative:b});return i.useCallback(s=>{if(function(c,l){return!(0!==c.button||l&&"_self"!==l||function(c){return!!(c.metaKey||c.altKey||c.ctrlKey||c.shiftKey)}(c))}(s,l)){s.preventDefault();let l=void 0!==e?e:GP(X)===GP(G),g=()=>u(c,{replace:l,state:t,preventScrollReset:d,relative:b,viewTransition:n,unstable_defaultShouldRevalidate:a});o?i.startTransition(()=>g()):g()}},[X,u,G,e,t,l,c,d,b,n,a,o])}(o,{replace:b,state:n,target:a,preventScrollReset:u,relative:t,viewTransition:X,unstable_defaultShouldRevalidate:G,unstable_useTransitions:m}),y=i.createElement("a",{...s,...W,href:H.absoluteURL||Z,onClick:H.isExternal||d?c:function(l){c&&c(l),l.defaultPrevented||p(l)},ref:vK(g,I),target:a,"data-discover":r||"render"!==l?void 0:"true"});return R&&!r?i.createElement(i.Fragment,null,y,i.createElement(hK,{page:Z})):y});JK.displayName="Link";var CK=i.forwardRef(function({"aria-current":c="page",caseSensitive:l=!1,className:e="",end:t=!1,style:d,to:b,viewTransition:n,children:a,...o},u){let X=eK(b,{relative:o.relative}),G=$P(),s=i.useContext(DP),{navigator:g,basename:x}=i.useContext(MP),m=null!=s&&function(c,{relative:l}={}){let e=i.useContext(jP);uP(null!=e,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:t}=fK("useViewTransitionState"),d=eK(c,{relative:l});if(!e.isTransitioning)return!1;let b=vP(e.currentLocation.pathname,t)||e.currentLocation.pathname,n=vP(e.nextLocation.pathname,t)||e.nextLocation.pathname;return null!=hP(d.pathname,n)||null!=hP(d.pathname,b)}(X)&&!0===n,r=g.encodeLocation?g.encodeLocation(X).pathname:X.pathname,H=G.pathname,Z=s&&s.navigation&&s.navigation.location?s.navigation.location.pathname:null;l||(H=H.toLowerCase(),Z=Z?Z.toLowerCase():null,r=r.toLowerCase()),Z&&x&&(Z=vP(Z,x)||Z);const R="/"!==r&&r.endsWith("/")?r.length-1:r.length;let I,W=H===r||!t&&H.startsWith(r)&&"/"===H.charAt(R),p=null!=Z&&(Z===r||!t&&Z.startsWith(r)&&"/"===Z.charAt(r.length)),y={isActive:W,isPending:p,isTransitioning:m},B=W?c:void 0;I="function"==typeof e?e(y):[e,W?"active":null,p?"pending":null,m?"transitioning":null].filter(Boolean).join(" ");let h="function"==typeof d?d(y):d;return i.createElement(JK,{...o,"aria-current":B,className:I,ref:u,style:h,to:b,viewTransition:n},"function"==typeof a?a(y):a)});CK.displayName="NavLink";var NK=i.forwardRef(({discover:c="render",fetcherKey:l,navigate:e,reloadDocument:t,replace:d,state:b,method:n=sK,action:a,onSubmit:o,relative:u,preventScrollReset:X,viewTransition:G,unstable_defaultShouldRevalidate:s,...g},x)=>{let{unstable_useTransitions:m}=i.useContext(MP),r=function(){let{router:c}=fK("useSubmit"),{basename:l}=i.useContext(MP),e=uK("useRouteId"),t=c.fetch,d=c.navigate;return i.useCallback(async(c,b={})=>{let{action:n,method:i,encType:a,formData:o,body:u}=function(c,l){let e,t,d,b,n;if(function(c){return xK(c)&&"form"===c.tagName.toLowerCase()}(c)){let n=c.getAttribute("action");t=n?vP(n,l):null,e=c.getAttribute("method")||sK,d=HK(c.getAttribute("enctype"))||gK,b=new FormData(c)}else if(function(c){return xK(c)&&"button"===c.tagName.toLowerCase()}(c)||function(c){return xK(c)&&"input"===c.tagName.toLowerCase()}(c)&&("submit"===c.type||"image"===c.type)){let n=c.form;if(null==n)throw new Error('Cannot submit a <button> or <input type="submit"> without a <form>');let i=c.getAttribute("formaction")||n.getAttribute("action");if(t=i?vP(i,l):null,e=c.getAttribute("formmethod")||n.getAttribute("method")||sK,d=HK(c.getAttribute("formenctype"))||HK(n.getAttribute("enctype"))||gK,b=new FormData(n,c),!function(){if(null===mK)try{new FormData(document.createElement("form"),0),mK=!1}catch{mK=!0}return mK}()){let{name:l,type:e,value:t}=c;if("image"===e){let c=l?`${l}.`:"";b.append(`${c}x`,"0"),b.append(`${c}y`,"0")}else l&&b.append(l,t)}}else{if(xK(c))throw new Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');e=sK,t=null,d=gK,n=c}return b&&"text/plain"===d&&(n=b,b=void 0),{action:t,method:e.toLowerCase(),encType:d,formData:b,body:n}}(c,l);if(!1===b.navigate){let c=b.fetcherKey||wK();await t(c,e,b.action||n,{unstable_defaultShouldRevalidate:b.unstable_defaultShouldRevalidate,preventScrollReset:b.preventScrollReset,formData:o,body:u,formMethod:b.method||i,formEncType:b.encType||a,flushSync:b.flushSync})}else await d(b.action||n,{unstable_defaultShouldRevalidate:b.unstable_defaultShouldRevalidate,preventScrollReset:b.preventScrollReset,formData:o,body:u,formMethod:b.method||i,formEncType:b.encType||a,replace:b.replace,state:b.state,fromRouteId:e,flushSync:b.flushSync,viewTransition:b.viewTransition})},[t,d,l,e])}(),H=function(c,{relative:l}={}){let{basename:e}=i.useContext(MP),t=i.useContext(PP);uP(t,"useFormAction must be used inside a RouteContext");let[d]=t.matches.slice(-1),b={...eK(c||".",{relative:l})},n=$P();if(null==c){b.search=n.search;let c=new URLSearchParams(b.search),l=c.getAll("index");if(l.some(c=>""===c)){c.delete("index"),l.filter(c=>c).forEach(l=>c.append("index",l));let e=c.toString();b.search=e?`?${e}`:""}}return(!c||"."===c)&&d.route.index&&(b.search=b.search?b.search.replace(/^\?/,"?index&"):"?index"),"/"!==e&&(b.pathname="/"===b.pathname?e:fP([e,b.pathname])),GP(b)}(a,{relative:u}),Z="get"===n.toLowerCase()?"get":"post",R="string"==typeof a&&YK.test(a);return i.createElement("form",{ref:x,method:Z,action:H,onSubmit:t?o:c=>{if(o&&o(c),c.defaultPrevented)return;c.preventDefault();let t=c.nativeEvent.submitter,a=t?.getAttribute("formmethod")||n,g=()=>r(t||c.currentTarget,{fetcherKey:l,method:a,navigate:e,replace:d,state:b,relative:u,preventScrollReset:X,viewTransition:G,unstable_defaultShouldRevalidate:s});m&&!1!==e?i.startTransition(()=>g()):g()},...g,"data-discover":R||"render"!==c?void 0:"true"})});function fK(c){let l=i.useContext(LP);return uP(l,function(c){return`${c} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}(c)),l}NK.displayName="Form";var kK=0,wK=()=>`__${String(++kK)}__`;(function(c){for(var l=[],e=1;e<arguments.length;e++)l[e-1]=arguments[e];var t=et.apply(void 0,Zc([c],l,!1)),d="sc-global-".concat(Al(JSON.stringify(t))),b=new nt(t,d),n=new WeakMap,i=function(c){var l=Ae(),e=pl?void 0:o().useContext(_e),t=n.get(l.styleSheet);if(void 0===t&&(t=l.styleSheet.allocateGSInstance(d),n.set(l.styleSheet,t)),("undefined"==typeof window||!l.styleSheet.server)&&function(c,l,e,t,d){if(b.isStatic)b.renderStyles(c,Bl,e,d);else{var n=Hc(Hc({},l),{theme:vl(l,t,i.defaultProps)});b.renderStyles(c,n,e,d)}}(t,c,l.styleSheet,e,l.stylis),!pl){var a=o().useRef(!0);o().useLayoutEffect(function(){return a.current=!1,function(){a.current=!0,queueMicrotask(function(){a.current&&(b.removeStyles(t,l.styleSheet),"undefined"!=typeof document&&document.querySelectorAll('style[data-styled-global="'.concat(d,'"]')).forEach(function(c){return c.remove()}))})}},[t,l.styleSheet])}if(pl){var u=d+t,X="undefined"==typeof window?l.styleSheet.getTag().getGroup(ge(u)):"";if(X){var G="".concat(d,"-").concat(t);return o().createElement("style",{key:G,"data-styled-global":d,precedence:"styled-components",href:G,children:X})}}return null};return o().memo(i)})` :root { --text-primary: #1d2327; --text-secondary: #50575e; --bg-primary: #ffffff; --bg-secondary: #f0f0f1; --bg-tertiary: #F6FAFC; --border-color: #ccd0d4; --active-bg: #F6FAFC; --icon-color: #8d96a0; --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); --wpmvc-header-height: 70px; } #wpbody-content > .notice { display: none; } [role = "menu"]{ [data-active-item="true"]{ --wp-admin-theme-color: var(--wpmvc-primary-500); } } .components-popover{ --wp-admin-theme-color: var(--wpmvc-primary-500); --wp-components-color-gray-600: var(--wpmvc-gray-600); --wp-components-color-foreground: var(--wpmvc-background-dark); } .components-toggle-group-control::before { background: var( --wpmvc-primary-500, var( --wp-components-color-foreground, #1e1e1e ) ) !important; } `;const zK={top:"0px",left:"0px",hideHeader:!0};let SK,AK,QK,OK={data:""},UK=/(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g,TK=/\/\*[^]*?\*\/| +/g,LK=/\n+/g,DK=(c,l)=>{let e="",t="",d="";for(let b in c){let n=c[b];"@"==b[0]?"i"==b[1]?e=b+" "+n+";":t+="f"==b[1]?DK(n,b):b+"{"+DK(n,"k"==b[1]?"":l)+"}":"object"==typeof n?t+=DK(n,l?l.replace(/([^,])+/g,c=>b.replace(/([^,]*:\S+\([^)]*\))|([^,])+/g,l=>/&/.test(l)?l.replace(/&/g,c):c?c+" "+l:l)):b):null!=n&&(b=/^--/.test(b)?b:b.replace(/[A-Z]/g,"-$&").toLowerCase(),d+=DK.p?DK.p(b,n):b+":"+n+";")}return e+(l&&d?l+"{"+d+"}":d)+t},jK={},MK=c=>{if("object"==typeof c){let l="";for(let e in c)l+=e+MK(c[e]);return l}return c};function EK(c){let l=this||{},e=c.call?c(l.p):c;return((c,l,e,t,d)=>{let b=MK(c),n=jK[b]||(jK[b]=(c=>{let l=0,e=11;for(;l<c.length;)e=101*e+c.charCodeAt(l++)>>>0;return"go"+e})(b));if(!jK[n]){let l=b!==c?c:(c=>{let l,e,t=[{}];for(;l=UK.exec(c.replace(TK,""));)l[4]?t.shift():l[3]?(e=l[3].replace(LK," ").trim(),t.unshift(t[0][e]=t[0][e]||{})):t[0][l[1]]=l[2].replace(LK," ").trim();return t[0]})(c);jK[n]=DK(d?{["@keyframes "+n]:l}:l,e?"":"."+n)}let i=e&&jK.g?jK.g:null;return e&&(jK.g=jK[n]),((c,l,e,t)=>{t?l.data=l.data.replace(t,c):-1===l.data.indexOf(c)&&(l.data=e?c+l.data:l.data+c)})(jK[n],l,t,i),n})(e.unshift?e.raw?((c,l,e)=>c.reduce((c,t,d)=>{let b=l[d];if(b&&b.call){let c=b(e),l=c&&c.props&&c.props.className||/^go/.test(c)&&c;b=l?"."+l:c&&"object"==typeof c?c.props?"":DK(c,""):!1===c?"":c}return c+t+(b??"")},""))(e,[].slice.call(arguments,1),l.p):e.reduce((c,e)=>Object.assign(c,e&&e.call?e(l.p):e),{}):e,(c=>{if("object"==typeof window){let l=(c?c.querySelector("#_goober"):window._goober)||Object.assign(document.createElement("style"),{innerHTML:" ",id:"_goober"});return l.nonce=window.__nonce__,l.parentNode||(c||document.head).appendChild(l),l.firstChild}return c||OK})(l.target),l.g,l.o,l.k)}EK.bind({g:1});let PK=EK.bind({k:1});function KK(c,l){let e=this||{};return function(){let l=arguments;return function t(d,b){let n=Object.assign({},d),i=n.className||t.className;e.p=Object.assign({theme:AK&&AK()},n),e.o=/ *go\d+/.test(i),n.className=EK.apply(e,l)+(i?" "+i:"");let a=c;return c[0]&&(a=n.as||c,delete n.as),QK&&a[0]&&QK(n),SK(a,n)}}}var _K=(c,l)=>(c=>"function"==typeof c)(c)?c(l):c,qK=(()=>{let c=0;return()=>(++c).toString()})(),$K=(()=>{let c;return()=>{if(void 0===c&&typeof window<"u"){let l=matchMedia("(prefers-reduced-motion: reduce)");c=!l||l.matches}return c}})(),c_="default",l_=(c,l)=>{let{toastLimit:e}=c.settings;switch(l.type){case 0:return{...c,toasts:[l.toast,...c.toasts].slice(0,e)};case 1:return{...c,toasts:c.toasts.map(c=>c.id===l.toast.id?{...c,...l.toast}:c)};case 2:let{toast:t}=l;return l_(c,{type:c.toasts.find(c=>c.id===t.id)?1:0,toast:t});case 3:let{toastId:d}=l;return{...c,toasts:c.toasts.map(c=>c.id===d||void 0===d?{...c,dismissed:!0,visible:!1}:c)};case 4:return void 0===l.toastId?{...c,toasts:[]}:{...c,toasts:c.toasts.filter(c=>c.id!==l.toastId)};case 5:return{...c,pausedAt:l.time};case 6:let b=l.time-(c.pausedAt||0);return{...c,pausedAt:void 0,toasts:c.toasts.map(c=>({...c,pauseDuration:c.pauseDuration+b}))}}},e_=[],t_={toasts:[],pausedAt:void 0,settings:{toastLimit:20}},d_={},b_=(c,l=c_)=>{d_[l]=l_(d_[l]||t_,c),e_.forEach(([c,e])=>{c===l&&e(d_[l])})},n_=c=>Object.keys(d_).forEach(l=>b_(c,l)),i_=(c=c_)=>l=>{b_(l,c)},a_=c=>(l,e)=>{let t=((c,l="blank",e)=>({createdAt:Date.now(),visible:!0,dismissed:!1,type:l,ariaProps:{role:"status","aria-live":"polite"},message:c,pauseDuration:0,...e,id:e?.id||qK()}))(l,c,e);return i_(t.toasterId||(c=>Object.keys(d_).find(l=>d_[l].toasts.some(l=>l.id===c)))(t.id))({type:2,toast:t}),t.id},o_=(c,l)=>a_("blank")(c,l);o_.error=a_("error"),o_.success=a_("success"),o_.loading=a_("loading"),o_.custom=a_("custom"),o_.dismiss=(c,l)=>{let e={type:3,toastId:c};l?i_(l)(e):n_(e)},o_.dismissAll=c=>o_.dismiss(void 0,c),o_.remove=(c,l)=>{let e={type:4,toastId:c};l?i_(l)(e):n_(e)},o_.removeAll=c=>o_.remove(void 0,c),o_.promise=(c,l,e)=>{let t=o_.loading(l.loading,{...e,...e?.loading});return"function"==typeof c&&(c=c()),c.then(c=>{let d=l.success?_K(l.success,c):void 0;return d?o_.success(d,{id:t,...e,...e?.success}):o_.dismiss(t),c}).catch(c=>{let d=l.error?_K(l.error,c):void 0;d?o_.error(d,{id:t,...e,...e?.error}):o_.dismiss(t)}),c};var u_=PK` from { transform: scale(0) rotate(45deg); opacity: 0; } to { transform: scale(1) rotate(45deg); opacity: 1; }`,X_=PK` from { transform: scale(0); opacity: 0; } to { transform: scale(1); opacity: 1; }`,G_=PK` from { transform: scale(0) rotate(90deg); opacity: 0; } to { transform: scale(1) rotate(90deg); opacity: 1; }`,s_=KK("div")` width: 20px; opacity: 0; height: 20px; border-radius: 10px; background: ${c=>c.primary||"#ff4b4b"}; position: relative; transform: rotate(45deg); animation: ${u_} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards; animation-delay: 100ms; &:after, &:before { content: ''; animation: ${X_} 0.15s ease-out forwards; animation-delay: 150ms; position: absolute; border-radius: 3px; opacity: 0; background: ${c=>c.secondary||"#fff"}; bottom: 9px; left: 4px; height: 2px; width: 12px; } &:before { animation: ${G_} 0.15s ease-out forwards; animation-delay: 180ms; transform: rotate(90deg); } `,g_=PK` from { transform: rotate(0deg); } to { transform: rotate(360deg); } `,x_=KK("div")` width: 12px; height: 12px; box-sizing: border-box; border: 2px solid; border-radius: 100%; border-color: ${c=>c.secondary||"#e0e0e0"}; border-right-color: ${c=>c.primary||"#616161"}; animation: ${g_} 1s linear infinite; `,m_=PK` from { transform: scale(0) rotate(45deg); opacity: 0; } to { transform: scale(1) rotate(45deg); opacity: 1; }`,r_=PK` 0% { height: 0; width: 0; opacity: 0; } 40% { height: 0; width: 6px; opacity: 1; } 100% { opacity: 1; height: 10px; }`,H_=KK("div")` width: 20px; opacity: 0; height: 20px; border-radius: 10px; background: ${c=>c.primary||"#61d345"}; position: relative; transform: rotate(45deg); animation: ${m_} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards; animation-delay: 100ms; &:after { content: ''; box-sizing: border-box; animation: ${r_} 0.2s ease-out forwards; opacity: 0; animation-delay: 200ms; position: absolute; border-right: 2px solid; border-bottom: 2px solid; border-color: ${c=>c.secondary||"#fff"}; bottom: 6px; left: 6px; height: 10px; width: 6px; } `,Z_=KK("div")` position: absolute; `,R_=KK("div")` position: relative; display: flex; justify-content: center; align-items: center; min-width: 20px; min-height: 20px; `,I_=PK` from { transform: scale(0.6); opacity: 0.4; } to { transform: scale(1); opacity: 1; }`,W_=KK("div")` position: relative; transform: scale(0.6); opacity: 0.4; min-width: 20px; animation: ${I_} 0.3s 0.12s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards; `,p_=({toast:c})=>{let{icon:l,type:e,iconTheme:t}=c;return void 0!==l?"string"==typeof l?i.createElement(W_,null,l):l:"blank"===e?null:i.createElement(R_,null,i.createElement(x_,{...t}),"loading"!==e&&i.createElement(Z_,null,"error"===e?i.createElement(s_,{...t}):i.createElement(H_,{...t})))},y_=c=>`\n0% {transform: translate3d(0,${-200*c}%,0) scale(.6); opacity:.5;}\n100% {transform: translate3d(0,0,0) scale(1); opacity:1;}\n`,B_=c=>`\n0% {transform: translate3d(0,0,-1px) scale(1); opacity:1;}\n100% {transform: translate3d(0,${-150*c}%,-1px) scale(.6); opacity:0;}\n`,h_=KK("div")` display: flex; align-items: center; background: #fff; color: #363636; line-height: 1.3; will-change: transform; box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1), 0 3px 3px rgba(0, 0, 0, 0.05); max-width: 350px; pointer-events: auto; padding: 8px 10px; border-radius: 8px; `,V_=KK("div")` display: flex; justify-content: center; margin: 4px 10px; color: inherit; flex: 1 1 auto; white-space: pre-line; `;i.memo(({toast:c,position:l,style:e,children:t})=>{let d=c.height?((c,l)=>{let e=c.includes("top")?1:-1,[t,d]=$K()?["0%{opacity:0;} 100%{opacity:1;}","0%{opacity:1;} 100%{opacity:0;}"]:[y_(e),B_(e)];return{animation:l?`${PK(t)} 0.35s cubic-bezier(.21,1.02,.73,1) forwards`:`${PK(d)} 0.4s forwards cubic-bezier(.06,.71,.55,1)`}})(c.position||l||"top-center",c.visible):{opacity:0},b=i.createElement(p_,{toast:c}),n=i.createElement(V_,{...c.ariaProps},_K(c.message,c));return i.createElement(h_,{className:c.className,style:{...d,...e,...c.style}},"function"==typeof t?t({icon:b,message:n}):i.createElement(i.Fragment,null,b,n))}),function(c){DK.p=void 0,SK=c,AK=void 0,QK=void 0}(i.createElement),EK` z-index: 9999; > * { pointer-events: auto; } `;const v_=it` from { opacity: 0; transform: translateY(4px); filter: blur(3px); } to { opacity: 1; transform: translateY(0); filter: blur(0); } `;function F_({errors:c,clearErrors:l}){return Object.keys(c).length?(0,gc.jsx)("div",{style:{marginBottom:"16px"},children:(0,gc.jsx)(iL,{status:"error",isDismissible:!0,onRemove:l,children:(0,gc.jsx)("ul",{children:Object.entries(c).map(([c,l])=>(0,gc.jsx)("li",{children:l},c))})})}):null}bt.div` animation: ${v_} 0.45s ease; `,bt.header` position: fixed; min-height: var( --wpmvc-header-height ); top: ${c=>`${c.$top}px`}; left: ${c=>`${c.$left}px`}; right: 0; height: auto; background: white; display: flex; flex-direction: column; align-items: center; justify-content: center; z-index: 99; `,bt.div` display: flex; align-items: center; gap: 10px; font-size: 18px; font-weight: 600; color: var( --text-primary ); `,bt.div` display: flex; align-items: center; justify-content: space-between; width: 100%; `,bt.div` display: flex; align-items: center; gap: 40px; `,bt.div` @media ( max-width: 768px ) { display: none; } `,bt.div` display: none; @media ( max-width: 768px ) { display: flex; gap: 10px; align-items: center; } `,bt.nav` display: flex; gap: 4px; @media ( max-width: 768px ) { display: none; } `,bt.div` width: 100%; padding: 15px 24px; box-sizing: border-box; border-bottom: 1px solid rgba( 0, 0, 0, 0.13 ); `,bt.div` width: 100%; z-index: 99; background-color: #fff; box-shadow: 0 1px 2px 0 rgba( 0, 0, 0, 0.05 ); `,bt.div` display: ${({$open:c})=>c?"block":"none"}; background: var( --bg-primary ); padding: 20px 20px 100px 20px; position: fixed; overflow-y: auto; top: calc( var( --wpmvc-header-height ) + ${({$top:c})=>`${c}px`} ); left: 0; right: 0; bottom: 0; z-index: 9; .menu-section { display: flex; flex-direction: column; gap: 12px; margin-bottom: 10px; } .bottom-actions { position: sticky; bottom: 0; background: var( --bg-primary ); padding: 12px 0 52px; display: flex; justify-content: flex-start; gap: 12px; z-index: 1; border-top: 1px solid var( --border-color ); } @media ( min-width: 769px ) { display: none !important; } `,bt.div` position: fixed; top: ${c=>`${c.$top}px`}; left: ${c=>`${c.$left}px`}; bottom: 0; right: 0; z-index: 900; overflow-y: auto; background: #f4f7f9; `,bt.div` position: relative; ${({$isHeaderHidden:c})=>c?"":"padding-top: var( --wpmvc-header-height );"} `,function(){const c=(0,ut.createReduxStore)("my-dashboard/global",{reducer(c=zK,l){switch(l.type){case"SET_LOCATION":return{...c,location:l.payload};case"SET_NAVIGATE":return{...c,navigate:l.payload};case"SET_LEFT":return{...c,left:l.payload};case"SET_TOP":return{...c,top:l.payload};case"SET_HIDE_HEADER":return{...c,hideHeader:l.payload};default:return c}},actions:{setLocation:c=>({type:"SET_LOCATION",payload:c}),setNavigate:c=>({type:"SET_NAVIGATE",payload:c}),setTop:c=>({type:"SET_TOP",payload:c}),setLeft:c=>({type:"SET_LEFT",payload:c}),setRight:c=>({type:"SET_RIGHT",payload:c}),setHideHeader:c=>({type:"SET_HIDE_HEADER",payload:c})},selectors:{getLocation:(c=zK)=>c.location,getNavigate:(c=zK)=>c.navigate,getTop:(c=zK)=>c.top,getLeft:(c=zK)=>c.left,getHideHeader:(c=zK)=>c.hideHeader}});(0,ut.register)(c)}(),bt.nav` position: fixed; bottom: 0; left: ${({$left:c})=>`${c}px`}; height: ${({$top:c,$isHeaderHidden:l})=>l?`calc(100vh - ${c}px - 1px)`:`calc(100vh - (var(--wpmvc-header-height) + ${c}px) - 1px)`}; width: ${({$width:c})=>`${c}px`}; background: var( --wpmvc-background-light ); // box-shadow: 0 1px 3px rgba( 0, 0, 0, 0.1 ); z-index: 900; overflow-y: auto; border-right: 1px solid rgba( 0, 0, 0, 0.13 ); @media ( max-width: 768px ) { display: ${({$open:c})=>c?"block":"none"}; position: fixed; top: calc( var( --wpmvc-header-height ) + ${({$top:c})=>`${c}px`} + 1px ); width: 100%; background: var( --bg-primary ); } `,bt.div` margin: 16px 0; padding: 0 10px; `,bt.div` padding-left: ${({$width:c})=>`${c}px`}; @media ( max-width: 768px ) { padding-left: 0px; } `;const Y_=bt.div` display: flex; justify-content: flex-end; gap: 8px; `;function J_({isOpen:c,title:l,okLabel:e,cancelLabel:t,fields:d,onClose:b,onSubmit:i,onSuccess:a,isLoading:o=!1,attributes:u,setAttributes:X,resetAttributes:G}){const[s,g]=(0,n.useState)(!1),[x,m]=(0,n.useState)(!1),[r,H]=(0,n.useState)({}),Z=(0,n.useRef)(null),R=()=>{s||(b(),H({}),X({}),m(!1))};return(0,gc.jsxs)(bL,{isOpen:c,title:l,size:"large",isDismissible:!s,isFullScreen:x,onClose:R,footer:(0,gc.jsxs)(Y_,{children:[(0,gc.jsx)(UT,{variant:"secondary",onClick:R,disabled:s,children:t}),(0,gc.jsx)(UT,{variant:"primary",onClick:()=>{Z.current?.requestSubmit()},isBusy:s,disabled:s||o,children:e})]}),headerActions:(0,gc.jsx)(UT,{icon:tP,label:(0,Gc.__)("Fullscreen mode"),size:"compact",onClick:()=>m(!x)}),children:[(0,gc.jsx)(F_,{errors:r,clearErrors:()=>H({})}),o?(0,gc.jsx)(aP,{}):(0,gc.jsx)("form",{ref:Z,onSubmit:async c=>{c.preventDefault(),g(!0),H({});try{const c=await i(u);oP({message:c.message}),R(),G(),a?.(c)}catch(c){H(c?.messages||{error:c?.message||(0,Gc.__)("Something went wrong.")}),Z.current?.scrollIntoView({behavior:"smooth",block:"start"})||window.scrollTo({top:0,behavior:"smooth"})}finally{g(!1)}},children:(0,gc.jsx)(uE,{fields:d,attributes:u,setAttributes:X})})]})}function C_({isOpen:c,closeModal:l,fields:e,title:t,okLabel:d,cancelLabel:b,onSubmit:n,onSuccess:i}){const[a,o,u]=XE({});return(0,gc.jsx)(J_,{isOpen:c,title:t,okLabel:d,cancelLabel:b,fields:e,onClose:l,onSubmit:n,attributes:a,setAttributes:o,resetAttributes:u,onSuccess:i})}function N_({onSubmit:c,fields:l,addNewLabel:e,title:t,okLabel:d,cancelLabel:b,onSuccess:i,isDisabled:a}){const[o,u]=(0,n.useState)(!1);return(0,gc.jsxs)(gc.Fragment,{children:[(0,gc.jsx)(UT,{variant:"primary",onClick:()=>u(!0),disabled:a,children:e||(0,Gc.__)("Add New")}),(0,gc.jsx)(C_,{title:t,isOpen:o,closeModal:()=>u(!1),fields:l,onSubmit:c,okLabel:d,cancelLabel:b,onSuccess:i})]})}const f_=bt.div` display: flex; justify-content: flex-end; gap: 8px; `;function k_({id:c,title:l,setId:e,onSubmit:t,onSuccess:d,okLabel:b,cancelLabel:i,message:a=(0,Gc.__)("Are you sure you want to delete this item?")}){const[o,u]=(0,n.useState)(!1),[X,G]=(0,n.useState)(!1),[s,g]=(0,n.useState)({});(0,n.useEffect)(()=>{c&&u(!0)},[c]);const x=()=>{X||(u(!1),e(0),g({}))};return(0,gc.jsxs)(bL,{isOpen:o,title:l,size:"small",isDismissible:!X,onClose:x,footer:(0,gc.jsxs)(f_,{children:[(0,gc.jsx)(UT,{variant:"secondary",onClick:x,disabled:X,children:i}),(0,gc.jsx)(UT,{variant:"primary",onClick:async()=>{G(!0),g({});try{const l=await t(c);oP({message:l.message}),x(),d?.(l)}catch(c){console.error(c),g(c?.message?{delete:c.message}:c?.messages||{})}finally{G(!1)}},isBusy:X,disabled:X,children:b})]}),children:[(0,gc.jsx)(F_,{errors:s,clearErrors:()=>g({})}),a]})}function w_({path:c,editId:l,setEditId:e,onSubmit:t,fields:d,title:b,okLabel:i,cancelLabel:a,onSuccess:o}){const[u,X]=(0,n.useState)(!1),[G,s]=(0,n.useState)(!0),[g,x,m]=XE({});return(0,n.useEffect)(()=>{l&&(X(!0),(async()=>{s(!0);try{const e=await ac({path:`${c}/${l}`});x(e.data)}catch(c){console.error(c)}finally{s(!1)}})())},[l]),(0,gc.jsx)(J_,{isOpen:u,title:b,okLabel:i,cancelLabel:a,fields:d,onClose:()=>{X(!1),e(0),s(!0)},onSubmit:c=>t(l,c),initialAttributes:g,isLoading:G,attributes:g,setAttributes:x,resetAttributes:m,onSuccess:o})}const z_=bt.div` margin: 0 auto; .dataviews-view-table { thead { th { background-color: #f9f9f9; border-bottom: 1px solid #f0f0f0; } } } `;function S_({heading:c,path:l,columns:e,storeName:t,actions:d,create:b,destroy:i,edit:a,showTable:o=!0,beforeTable:u,cardFooter:X,headerRight:G,...s}){const g=(0,at.useInstanceId)(S_,"wpmvc-dashboard-table"),x=t||g,[m,r]=(0,n.useState)(0),[H,Z]=(0,n.useState)(0);!function(c){if((0,ut.select)(c.name))return;const l=function({path:c}){const l={path:c,item:null,items:[],queryParams:{search:"",page:1,perPage:10,sort:{}}};return{reducer:(c=l,e)=>lP(c,c=>{switch(e.type){case"SET_ITEM":c.item=e.item;break;case"SET_ITEMS":c.items=e.items;break;case"RESET":c.items=[],c.item=null;break;case"SET_QUERY_PARAMS":c.queryParams=e.params;break;case"UPDATE_ITEM":c.items.items=c.items.items.map(c=>(c?.id??c?.ID)===e.id?{...c,...e.item}:c)}}),actions:{setItem:c=>({type:"SET_ITEM",item:c}),setItems:c=>({type:"SET_ITEMS",items:c}),updateItem:(c,l)=>({type:"UPDATE_ITEM",id:c,item:l}),reset:()=>({type:"RESET"}),setQueryParams:c=>({type:"SET_QUERY_PARAMS",params:c}),create:l=>async({dispatch:e})=>{const t=await ac({path:c,method:"POST",data:l});return e.invalidateResolution("get"),t},update:(l,e)=>async({dispatch:t})=>{const d=await ac({path:`${c}/${l}`,method:"PATCH",data:e});return t.invalidateResolution("get"),d},destroy:l=>async({dispatch:e})=>{const t=await ac({path:`${c}/${l}`,method:"DELETE"});return e.invalidateResolution("get"),e.invalidateResolution("show"),t},refresh:c=>({dispatch:l})=>{c&&(l.reset(),l.setQueryParams(c)),l.invalidateResolution("get"),l.invalidateResolution("show")},resetQueryParamsAndRefresh:()=>({dispatch:c})=>{c.setQueryParams(l.queryParams),c.invalidateResolution("get"),c.invalidateResolution("show")}},selectors:{get:c=>c.items,getQueryParams:c=>c.queryParams,getItem:c=>c.item,show:c=>c.item,getPath:c=>c.path},resolvers:{get:()=>async({dispatch:l,select:e})=>{const t=await ac({path:(0,eP.addQueryArgs)(c,e.getQueryParams())});l.setItems(t)},show:({id:l})=>async({dispatch:e})=>{const t=`${c}/${l}`,d=await ac({path:t});e.setItem(d)}}}}(c),e=lP(l,c=>{}),t=(0,ut.createReduxStore)(c.name,e);(0,ut.register)(t)}({name:x,path:l});const{data:R,isResolved:I}=function({name:c,selector:l}){const{data:e,isResolved:t}=(0,ut.useSelect)(e=>{const{hasFinishedResolution:t,get:d,show:b}=e(c);return{data:"get"===l?d():b(),isResolved:t(l)}},[c]);return{data:e,isResolved:t}}({name:x,selector:"get"}),{refresh:W,resetQueryParamsAndRefresh:p,create:y,update:B,updateItem:h,destroy:V}=function({name:c}){const{refresh:l,resetQueryParamsAndRefresh:e,create:t,update:d,updateItem:b,setItem:n,destroy:i}=(0,ut.useDispatch)(c);return{refresh:l,resetQueryParamsAndRefresh:e,create:t,update:d,updateItem:b,setItem:n,destroy:i}}({name:x,path:l}),v=(0,Gt.isUndefined)(b?.status)||!0===b?.status,F=(0,Gt.isUndefined)(a?.status)||!0===a?.status,Y=(0,Gt.isUndefined)(i?.status)||!0===i?.status,J=(0,n.useMemo)(()=>{let c=[];return F&&c.push({id:"edit",label:a?.buttonLabel??(0,Gc.__)("Edit"),callback:c=>{const l=c[0];if(a?.onClick)a.onClick(l);else{const l=parseInt(c[0]?.id??c[0]?.ID);isNaN(l)||r(l)}}}),Y&&c.push({id:"delete",icon:RM,label:i?.buttonLabel??(0,Gc.__)("Delete"),isPrimary:!0,callback:c=>{const l=parseInt(c[0]?.id??c[0]?.ID);isNaN(l)||Z(l)}}),c},[F,Y]),C=(0,n.useMemo)(()=>[...d??[],...J],[d,J]),N=function({name:c}){return(0,ut.useSelect)(l=>{const{getQueryParams:e}=l(c);return e()},[c])}({name:x}),f=(0,n.useMemo)(()=>e.map(c=>{if(!c.isStatus)return c;const{render:e,path:t}=c;return{...c,render:({item:d})=>{const[b,i]=(0,n.useState)(!1);return e({item:d,onChange:async e=>{i(!0);try{await ac({path:`${t??l}/${d?.id??d?.ID}/${c.id}`,method:"POST",data:{value:e}}),h(d?.id??d?.ID,{...d,[c.id]:e})}catch(c){console.error("Failed to update status:",c)}finally{i(!1)}},isLoading:b})}}}),[e,h,l]);return(0,gc.jsx)(Xc.Card,{children:(0,gc.jsxs)(z_,{children:[(0,gc.jsx)(Xc.CardHeader,{children:(0,gc.jsxs)(bP,{heading:c,children:[G,v&&!b?.onClick&&(0,gc.jsx)(N_,{onSubmit:y,fields:b?.fields??{},addNewLabel:b?.buttonLabel??(0,Gc.__)("Add New"),title:b?.title??(0,Gc.__)("Add Item"),okLabel:b?.okLabel??(0,Gc.__)("Create"),cancelLabel:b?.cancelLabel??(0,Gc.__)("Cancel"),onSuccess:c=>{b?.onSuccess?.(c),p()},isDisabled:b?.isDisabled})]})}),F&&(0,gc.jsx)(w_,{path:l,onSubmit:B,fields:a?.fields??{},editId:m,setEditId:r,title:a?.title??(0,Gc.__)("Edit Item"),okLabel:a?.okLabel??(0,Gc.__)("Save"),cancelLabel:a?.cancelLabel??(0,Gc.__)("Cancel"),onSuccess:a?.onSuccess}),Y&&(0,gc.jsx)(k_,{id:H,setId:Z,onSubmit:V,title:i?.title??(0,Gc.__)("Delete Item"),okLabel:i?.okLabel??(0,Gc.__)("Delete"),cancelLabel:i?.cancelLabel??(0,Gc.__)("Cancel"),message:i?.message,onSuccess:i?.onSuccess}),(0,gc.jsxs)(Xc.CardBody,{children:[u,o&&(0,gc.jsx)(IL,{...s,items:R.items??[],total:R.total??0,isLoading:!I,fields:f,refresh:W,actions:C,queryParams:N})]}),X&&(0,gc.jsx)(Xc.CardFooter,{children:X})]})})}const A_=window.moment;var Q_=d.n(A_);const O_={active:"active",paid:"paid",pending:"pending",trialing:"trialing",cancelled:"cancelled",paused:"paused",past_due:"error",canceled_at_period_end:"error",expired:"expired"},U_=bt.div` padding: 24px; font-family: 'Inter', sans-serif; &.directorist-container--frontend { font-family: inherit; } .dataviews-view-table { th, td { vertical-align: middle; } } .components-card { border-radius: 8px; border: 1px solid #e7ecee; box-shadow: 0 1px 2px 0 rgba( 0, 0, 0, 0.05 ); } .components-card__header { padding: calc( 12px ) calc( 32px ); min-height: 60px; .components-heading { font-size: 18px; font-weight: 600; } } `,T_=(bt.div` .directorist-subscription-details-label { display: flex; align-items: center; margin: 0 0 6px; } .directorist-subscription-id { font-size: 24px; font-weight: 400; color: var( --wpmvc-gray-900 ); margin-right: 10px; } .directorist-subscription-details-meta { font-size: 12px; font-weight: 400; color: var( --wpmvc-gray-600 ); } `,bt.ul` &.directorist-has-border { li { border-top: 1px solid var( --wpmvc-gray-50 ); padding: 14px 0 7px; } } li { display: flex; justify-content: space-between; margin: 0; padding-bottom: 14px; &.directorist-list-highlight { span { font-size: 14px; font-weight: 500; color: var( --wpmvc-gray-900 ); } } &:last-child { border-bottom: none; padding-bottom: 0; } span { font-size: 12px; color: var( --wpmvc-gray-400 ); font-weight: 500; } .directorist-list-coupon { .directorist-badge { margin-right: 8px; } } } `,bt.ul` .directorist-infobox-item { display: flex; flex-direction: column; gap: 5px; &:not( :last-child ) { margin-bottom: 14px; } .directorist-infobox-item-label { font-size: 14px; font-weight: 500; color: var( --wpmvc-gray-900 ); } .directorist-infobox-item-text { font-size: 12px; font-weight: 400; color: var( --wpmvc-gray-500 ); } } `,(c,l)=>{const e=window.directorist_admin_order;if(!e)return`${c} ${l}`;const{symbol_position:t,symbol:d}=e;return"before"===t?`${d}${c}`:`${c}${d}`});bt.div` display: flex; flex-direction: column; gap: 4px; padding: 8px 0; .directorist-user-email { color: var( --color-gray-500 ); } `;const L_=bt.div` display: flex; flex-direction: column; gap: 4px; .directorist-billing-amount { color: var( --color-gray-500 ); } `,D_=(bt.a` color: #3a6fac; text-decoration: none; &:hover { text-decoration: underline; } `,bt.div` display: flex; justify-content: flex-end; gap: 8px; .components-button { border-radius: 4px; &.directorist-button-cancel { color: var( --directorist-color-danger ); border-color: var( --directorist-color-danger ); box-shadow: inset 0 0 0 1px var( --directorist-color-danger ), 0 0 0 currentColor; &:hover { color: var( --directorist-color-danger ); box-shadow: inset 0 0 0 1px var( --directorist-color-danger ), 0 0 0 currentColor; } } &.is-primary { background-color: var( --directorist-color-primary ); &:hover:not( :disabled ) { background-color: var( --directorist-color-dark ); } } } `),j_=bt.div` display: flex; justify-content: flex-end; white-space: nowrap; .components-dropdown-menu__toggle { min-width: 32px; height: 32px; padding: 0; } .components-button.has-icon { padding: 0; } svg { width: 18px; height: 18px; } `,M_=bt.div` display: flex; flex-direction: column; gap: 12px; `,E_=bt.h3` font-size: 16px; font-weight: 600; color: var( --directorist-color-dark ); margin: 0; padding: 0; line-height: 1.5; `,P_=bt.div` display: flex; flex-direction: column; gap: 8px; max-height: 420px; overflow: auto; padding-right: 4px; `,K_=bt.label` display: flex; gap: 10px; align-items: flex-start; padding: 12px; border: 1px solid var( --directorist-color-light, #eaecf0 ); border-radius: 5px; cursor: pointer; &:hover { border-color: var( --color-gray-300, #d0d5dd ); } `,q_=bt.input` margin-top: 3px; `,$_=bt.div` display: flex; flex-direction: column; gap: 6px; min-width: 0; margin-top: -2px; `,cq=bt.div` display: flex; align-items: center; gap: 20px; > span { display: flex; align-items: center; gap: 6px; } `,lq=bt.span` display: flex; align-items: center; gap: 10px; .directorist-pricing-plan-title { font-size: 16px; font-weight: 600; color: var( --directorist-color-dark ); } .directorist-pricing-plan-price { font-size: 18px; font-weight: 600; color: var( --directorist-color-dark ); } `,eq=(bt.span` color: var( --color-gray-600, #667085 ); font-size: 13px; line-height: 1.35; `,({size:c=14,color:l="currentColor",className:e})=>(0,gc.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:c,height:c,viewBox:"0 0 14 12",fill:"none",className:e,style:{color:l},children:[(0,gc.jsx)("path",{d:"M4.75 0.75H13.75",stroke:"currentColor",strokeWidth:"1.5"}),(0,gc.jsx)("path",{d:"M0.25 0.75H2.5",stroke:"currentColor",strokeWidth:"1.5"}),(0,gc.jsx)("path",{d:"M4.75 6H13.75",stroke:"currentColor",strokeWidth:"1.5"}),(0,gc.jsx)("path",{d:"M0.25 6H2.5",stroke:"currentColor",strokeWidth:"1.5"}),(0,gc.jsx)("path",{d:"M4.75 11.25H13.75",stroke:"currentColor",strokeWidth:"1.5"}),(0,gc.jsx)("path",{d:"M0.25 11.25H2.5",stroke:"currentColor",strokeWidth:"1.5"})]})),tq=({size:c=16,color:l="currentColor",className:e})=>(0,gc.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:c,height:c,viewBox:"0 0 16 16",fill:"none",className:e,style:{color:l},children:(0,gc.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M7.80949 0.72562C7.93596 0.707345 8.0644 0.707345 8.19086 0.72562C8.33662 0.746682 8.47225 0.797919 8.57994 0.838603C8.58979 0.842326 8.59942 0.845961 8.60879 0.849477L12.1833 2.18993C12.2126 2.2009 12.2416 2.21174 12.2704 2.22249C12.6823 2.37626 13.044 2.5113 13.3225 2.75678C13.5662 2.97152 13.7539 3.24239 13.8694 3.54595C14.0015 3.89296 14.0009 4.27904 14.0003 4.71866C14.0002 4.74939 14.0002 4.78039 14.0002 4.81165V7.99991C14.0002 9.88433 12.9753 11.4554 11.8675 12.6095C10.7522 13.7714 9.47618 14.592 8.80144 14.9857C8.79254 14.9909 8.78344 14.9962 8.77413 15.0017C8.651 15.074 8.49118 15.1678 8.27975 15.2132C8.10678 15.2503 7.89357 15.2503 7.7206 15.2132C7.50917 15.1678 7.34935 15.074 7.22622 15.0017C7.21691 14.9962 7.20781 14.9909 7.19891 14.9857C6.52417 14.592 5.24815 13.7714 4.13288 12.6095C3.02504 11.4554 2.00018 9.88433 2.00018 7.99991V4.81165C2.00018 4.78039 2.00013 4.7494 2.00009 4.71867C1.99945 4.27904 1.99889 3.89296 2.13094 3.54595C2.24645 3.24239 2.43416 2.97152 2.67783 2.75678C2.95638 2.5113 3.31808 2.37626 3.72994 2.22249C3.75873 2.21174 3.78776 2.2009 3.81703 2.18993L7.39156 0.849477C7.40094 0.845961 7.41056 0.842326 7.42042 0.838603C7.52811 0.797919 7.66373 0.746682 7.80949 0.72562ZM7.99816 2.04743C7.97093 2.05636 7.934 2.07006 7.85973 2.09792L4.2852 3.43837C3.73504 3.64468 3.62916 3.69561 3.5594 3.75709C3.47817 3.82867 3.4156 3.91896 3.3771 4.02015C3.34403 4.10706 3.33351 4.22408 3.33351 4.81165V7.99991C3.33351 9.38779 4.0933 10.6429 5.09479 11.6862C6.08885 12.7218 7.24683 13.47 7.87079 13.834C7.90893 13.8562 7.93644 13.8723 7.96035 13.8857C7.97912 13.8963 7.99161 13.903 8.00018 13.9073C8.00874 13.903 8.02123 13.8963 8.04 13.8857C8.06392 13.8723 8.09143 13.8562 8.12956 13.834C8.75353 13.47 9.91151 12.7218 10.9056 11.6862C11.9071 10.6429 12.6668 9.38779 12.6668 7.99991V4.81165C12.6668 4.22408 12.6563 4.10706 12.6233 4.02015C12.5848 3.91896 12.5222 3.82867 12.441 3.75709C12.3712 3.69561 12.2653 3.64468 11.7152 3.43837L8.14063 2.09792C8.06635 2.07006 8.02942 2.05636 8.00219 2.04743C8.00149 2.0472 8.00082 2.04698 8.00018 2.04677C7.99953 2.04698 7.99886 2.0472 7.99816 2.04743ZM10.8049 5.52851C11.0653 5.78886 11.0653 6.21097 10.8049 6.47132L7.80491 9.47132C7.54456 9.73167 7.12245 9.73167 6.8621 9.47132L5.52877 8.13798C5.26842 7.87764 5.26842 7.45553 5.52877 7.19518C5.78912 6.93483 6.21123 6.93483 6.47158 7.19518L7.33351 8.05711L9.86211 5.52851C10.1225 5.26816 10.5446 5.26816 10.8049 5.52851Z",fill:"currentColor"})}),dq=({size:c=18,color:l="currentColor",className:e})=>(0,gc.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:c,height:c,viewBox:"0 0 18 18",fill:"none",className:e,style:{color:l},children:(0,gc.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M6 0.75C6.41421 0.75 6.75 1.08579 6.75 1.5V2.25H11.25V1.5C11.25 1.08579 11.5858 0.75 12 0.75C12.4142 0.75 12.75 1.08579 12.75 1.5V2.25122C13.1066 2.25367 13.4183 2.26104 13.6889 2.28315C14.1104 2.31759 14.498 2.39151 14.862 2.57698C15.4265 2.8646 15.8854 3.32354 16.173 3.88803C16.3585 4.25203 16.4324 4.63956 16.4669 5.06113C16.5 5.46702 16.5 5.96529 16.5 6.56901V12.931C16.5 13.5347 16.5 14.033 16.4669 14.4389C16.4324 14.8604 16.3585 15.248 16.173 15.612C15.8854 16.1765 15.4265 16.6354 14.862 16.923C14.498 17.1085 14.1104 17.1824 13.6889 17.2169C13.283 17.25 12.7847 17.25 12.181 17.25H5.81901C5.21529 17.25 4.71702 17.25 4.31113 17.2169C3.88956 17.1824 3.50203 17.1085 3.13803 16.923C2.57354 16.6354 2.1146 16.1765 1.82698 15.612C1.64151 15.248 1.56759 14.8604 1.53315 14.4389C1.49998 14.033 1.49999 13.5347 1.5 12.931V6.56903C1.49999 5.9653 1.49998 5.46703 1.53315 5.06113C1.56759 4.63956 1.64151 4.25203 1.82698 3.88803C2.1146 3.32354 2.57354 2.8646 3.13803 2.57698C3.50203 2.39151 3.88956 2.31759 4.31113 2.28315C4.58174 2.26104 4.8934 2.25367 5.25 2.25122V1.5C5.25 1.08579 5.58579 0.75 6 0.75ZM5.25 3.75132C4.91585 3.75367 4.65347 3.76017 4.43328 3.77816C4.10447 3.80503 3.93631 3.85372 3.81902 3.91349C3.53677 4.0573 3.3073 4.28677 3.16349 4.56901C3.10372 4.68631 3.05503 4.85447 3.02816 5.18328C3.00058 5.52085 3 5.95757 3 6.6V6.75H15V6.6C15 5.95757 14.9994 5.52085 14.9718 5.18328C14.945 4.85447 14.8963 4.68631 14.8365 4.56901C14.6927 4.28677 14.4632 4.0573 14.181 3.91349C14.0637 3.85372 13.8955 3.80503 13.5667 3.77816C13.3465 3.76017 13.0841 3.75367 12.75 3.75132V4.5C12.75 4.91421 12.4142 5.25 12 5.25C11.5858 5.25 11.25 4.91421 11.25 4.5V3.75H6.75V4.5C6.75 4.91421 6.41421 5.25 6 5.25C5.58579 5.25 5.25 4.91421 5.25 4.5V3.75132ZM15 8.25H3V12.9C3 13.5424 3.00058 13.9792 3.02816 14.3167C3.05503 14.6455 3.10372 14.8137 3.16349 14.931C3.3073 15.2132 3.53677 15.4427 3.81902 15.5865C3.93631 15.6463 4.10447 15.695 4.43328 15.7218C4.77085 15.7494 5.20757 15.75 5.85 15.75H12.15C12.7924 15.75 13.2292 15.7494 13.5667 15.7218C13.8955 15.695 14.0637 15.6463 14.181 15.5865C14.4632 15.4427 14.6927 15.2132 14.8365 14.931C14.8963 14.8137 14.945 14.6455 14.9718 14.3167C14.9994 13.9792 15 13.5424 15 12.9V8.25Z",fill:"currentColor"})});function bq(){const c="directorist/packages-frontend",l="/directorist-pricing-plans/packages",e=directorist_admin_order.checkout_page_url,[t,d]=(0,n.useState)(!1),[b,i]=(0,n.useState)(!1),[a,o]=(0,n.useState)(!1),[u,X]=(0,n.useState)(!1),[G,s]=(0,n.useState)(0),[g,x]=(0,n.useState)(3),[m,r]=(0,n.useState)(0),[H,Z]=(0,n.useState)(""),[R,I]=(0,n.useState)(0),[W,p]=(0,n.useState)([]),[y,B]=(0,n.useState)(!1),[h,V]=(0,n.useState)("");!function(c){if((0,ut.select)(c.name))return;const l=function({path:c}){const l={path:c,item:null,items:[],queryParams:{search:"",page:1,perPage:10,sort:{}}};return{reducer:(c=l,e)=>lP(c,c=>{switch(e.type){case"SET_ITEM":c.item=e.item;break;case"SET_ITEMS":c.items=e.items;break;case"RESET":c.items=[],c.item=null;break;case"SET_QUERY_PARAMS":c.queryParams=e.params;break;case"UPDATE_ITEM":c.items.items=c.items.items.map(c=>(c?.id??c?.ID)===e.id?{...c,...e.item}:c)}}),actions:{setItem:c=>({type:"SET_ITEM",item:c}),setItems:c=>({type:"SET_ITEMS",items:c}),updateItem:(c,l)=>({type:"UPDATE_ITEM",id:c,item:l}),reset:()=>({type:"RESET"}),setQueryParams:c=>({type:"SET_QUERY_PARAMS",params:c}),create:l=>async({dispatch:e})=>{const t=await ac({path:c,method:"POST",data:l});return e.invalidateResolution("get"),t},update:(l,e)=>async({dispatch:t})=>{const d=await ac({path:`${c}/${l}`,method:"PATCH",data:e});return t.invalidateResolution("get"),d},destroy:l=>async({dispatch:e})=>{const t=await ac({path:`${c}/${l}`,method:"DELETE"});return e.invalidateResolution("get"),e.invalidateResolution("show"),t},refresh:c=>({dispatch:l})=>{c&&(l.reset(),l.setQueryParams(c)),l.invalidateResolution("get"),l.invalidateResolution("show")},resetQueryParamsAndRefresh:()=>({dispatch:c})=>{c.setQueryParams(l.queryParams),c.invalidateResolution("get"),c.invalidateResolution("show")}},selectors:{get:c=>c.items,getQueryParams:c=>c.queryParams,getItem:c=>c.item,show:c=>c.item,getPath:c=>c.path},resolvers:{get:()=>async({dispatch:l,select:e})=>{const t=await ac({path:(0,eP.addQueryArgs)(c,e.getQueryParams())});l.setItems(t)},show:({id:l})=>async({dispatch:e})=>{const t=`${c}/${l}`,d=await ac({path:t});e.setItem(d)}}}}(c),e=lP(l,c=>{}),t=(0,ut.createReduxStore)(c.name,e);(0,ut.register)(t)}({name:c,path:l});const{refresh:v}=function({name:c}){const{refresh:l,resetQueryParamsAndRefresh:e,create:t,update:d,updateItem:b,setItem:n,destroy:i}=(0,ut.useDispatch)(c);return{refresh:l,resetQueryParamsAndRefresh:e,create:t,update:d,updateItem:b,setItem:n,destroy:i}}({name:c,path:l});(0,n.useEffect)(()=>{(0,uc.addAction)("directorist-toast","directorist-pricing-plans/frontend-toast",c=>{"error"===c.type?ic.error(c.message):ic.success(c.message)})},[]);const F=()=>{u||(d(!1),s(0))},Y=()=>{u||(i(!1),s(0))},J=(0,n.useCallback)(c=>{const l=Number(c?.id??c?.ID??0);l&&(s(l),d(!0))},[]),C=(0,n.useCallback)(c=>{const l=Number(c?.id??c?.ID??0);l&&(s(l),i(!0))},[]),N=(0,n.useCallback)(c=>{const l=Number(c?.id??c?.ID??0);if(!l)return;s(l);const e=Number(c?.directory_type_id??3),t=Number(c?.plan_id??0);x(e||3),r(t),Z(String(c?.status??"")),I(t),o(!0)},[]),f=(0,n.useCallback)(async c=>{c.plan_id&&(window.location.href=`${e}?checkout_type=plan&plan_id=${c.plan_id}`)},[e]);(0,n.useEffect)(()=>{(async()=>{if(a&&g){V(""),B(!0),p([]);try{const c=await oc()({path:`/directorist-pricing-plans/plans/directory/${g}?mode=plan-switch`,method:"GET"}),l=(Array.isArray(c)?c:Array.isArray(c?.data)?c.data:Array.isArray(c?.items)?c.items:Array.isArray(c?.plans)?c.plans:[]).map(c=>{const l=Number(c?.id??c?.value??0),e=String(c?.title??c?.label??"").trim();return l&&e?{id:l,title:e,description:String(c?.description??c?.short_description??"").trim()||void 0,type:String(c?.type??"package"),price:Number(c?.price??0),regular_listing:Number(c?.allowed_listings??0),feature_listing:Number(c?.allowed_featured_listings??0),is_featured:Boolean("1"==`${c?.is_featured}`),is_allowed_unlimited_listings:Boolean("1"==`${c?.is_allowed_unlimited_listings}`),is_allowed_unlimited_featured_listings:Boolean("1"==`${c?.is_allowed_unlimited_featured_listings}`),interval_type:String(c?.interval_type??"day"),interval_count:Number(c?.interval_count??1),currency:String(c?.currency??""),exceeded_max_usage:Boolean(c?.exceeded_max_usage??!1)}:null}).filter(Boolean);p(l),m&&!l.some(c=>c.id===m)&&I(0)}catch(c){V((0,Gc.__)("Failed to load plans. Please try again.","directorist")),console.error(c)}finally{B(!1)}}})()},[m,g,a]),(0,n.useEffect)(()=>{const c=async c=>{const l=c.target;if(!l)return;const e=l.closest(".directorist-update_listing_status"),t=l.closest(".directorist-mark_feature_button, .directorist-mark-listing-as");if(!e&&!t)return;c.preventDefault();const d=e||t,b=Number(d?.getAttribute("data-post-id")||d?.dataset.postId||0);if(!b)return;const n=d?.getAttribute("data-task")||d?.dataset.task;try{e&&await oc()({path:`/directorist/v1/listings/${b}/update-status`,method:"POST",data:{status:n}}),t&&await oc()({path:"/directorist-pricing-plans/listings/mark-listing-as",method:"POST",data:{listing_id:b,mark_as:"mark-as-featured"===n?"featured":"regular"}}),window.location.reload()}catch(c){return console.error("Listing action failed:",c),void(0,uc.doAction)("directorist-toast",{message:c?.message,type:"error",removeDelay:1e7})}v()};return document.addEventListener("click",c,!0),()=>{document.removeEventListener("click",c,!0)}},[v]);const k=(0,n.useCallback)(async()=>{R&&(window.location.href=`${e}?checkout_type=plan&plan_id=${R}`)},[R]),w=(0,n.useMemo)(()=>[{id:"id",label:(0,Gc.__)("Id","directorist"),render:({item:c})=>(0,gc.jsxs)("span",{children:["#",c.id]})},{id:"directory_type",label:(0,Gc.__)("Directory Type","directorist"),render:({item:c})=>(0,gc.jsxs)(It,{variant:"info",className:"directorist-badge",children:[(0,gc.jsx)("span",{className:c?.directory_type_config?.icon}),(0,gc.jsx)("span",{children:c.directory_type})]})},{id:"plan_type",label:(0,Gc.__)("Plan Type","directorist-pricing-plans"),render:({item:c})=>{const l=c?.plan_type??"package";return(0,gc.jsx)(It,{variant:"pay_per_listing"===l?"warning":"info",className:"directorist-badge",children:"pay_per_listing"===l?(0,Gc.__)("Pay Per Listing","directorist-pricing-plans"):(0,Gc.__)("Package","directorist-pricing-plans")})}},{id:"status",label:(0,Gc.__)("Status","directorist"),render:({item:c})=>{return(0,gc.jsx)(It,{variant:(l=c.status,O_[l]??"default"),className:"directorist-badge",children:rc["1"===c.is_trial&&"active"===c.status?"trialing":c.status]});var l}},{id:"method",label:(0,Gc.__)("Billing Gateway","directorist"),render:({item:c})=>(0,gc.jsx)("span",{children:c.payment_method?c.payment_method.replace(/_/g," ").replace(/\b\w/g,c=>c.toUpperCase()):"---"})},{id:"billing_details",label:(0,Gc.__)("Billing Details","directorist"),render:({item:c})=>{const l="1"===c.is_trial,e=l?mc(c.trial_interval_type,c.trial_interval_count):mc(c.interval_type,c.interval_count);let t="";return t=l?`Trial / ${e}`:parseInt(c.price)>0?`${T_(c.price,c.currency)} / ${e}`:`Free / ${e}`,(0,gc.jsxs)(L_,{children:[c.plan_title,(0,gc.jsx)("div",{className:"directorist-billing-amount",children:t})]})}},{id:"package_usage",label:(0,Gc.__)("Package Usage","directorist-pricing-plans"),render:({item:c})=>function(c){const l=c?.status??"";if("active"!==l&&"canceled_at_period_end"!==l)return"---";const e=c?.plan_type??"package",t=c?.uses?.listings?.used??0,d=c?.uses?.featured_listings?.used??0;if("pay_per_listing"===e)return"1"==`${c.is_plan_featured}`?(0,gc.jsxs)("span",{children:["Featured: ",d]}):(0,gc.jsxs)("span",{children:["Total: ",t]});const b=c?.uses?.listings?.allowed??0,n=c?.uses?.featured_listings?.allowed??0,i=c=>-1===c?"∞":String(c);return(0,gc.jsxs)("div",{children:[(0,gc.jsxs)("div",{children:[(0,Gc.__)("Total:","directorist-pricing-plans")," ",t,"/",i(b)]}),(0,gc.jsxs)("div",{children:[(0,Gc.__)("Featured:","directorist-pricing-plans")," ",d,"/",i(n)]})]})}(c)},{id:"started_at",label:(0,Gc.__)("Initial Billing Date","directorist"),render:({item:c})=>c.started_at?(0,gc.jsx)("span",{className:"directorist-table-text-light",children:Q_()(c?.started_at).format("MMMM D, YYYY h:mm A")}):"---"},{id:"current_period_end",label:(0,Gc.__)("Next Payment","directorist"),render:({item:c})=>c.current_period_end?(0,gc.jsx)("span",{className:"directorist-table-text-light",children:Q_()(c?.current_period_end).format("MMMM D, YYYY h:mm A")}):"---"},{id:"cancelled_at",label:(0,Gc.__)("Cancelled Date","directorist"),render:({item:c})=>c.cancelled_at?(0,gc.jsx)("span",{children:Q_()(c?.cancelled_at).format("MMMM D, YYYY h:mm A")}):"---"},{id:"actions",label:(0,Gc.__)("Actions","directorist-pricing-plans"),render:({item:c})=>{const l=[];if("expired"===c?.status&&("free"===c?.fee_type&&"lifetime"!==c?.interval_type||l.push({title:"1"!=`${c?.is_trial}`?(0,Gc.__)("Renew","directorist"):(0,Gc.__)("Purchase","directorist"),onClick:()=>f(c)})),"cancelled"!==c?.status&&"pay_per_listing"!==c?.plan_type&&l.push({title:(0,Gc.__)("Switch Plan","directorist-pricing-plans"),onClick:()=>N(c)}),"active"===c?.status){const e="pay_per_listing"===c?.plan_type,t=c=>null!==c&&""!==c&&Number.isFinite(Number(c)),d="1"==`${c?.is_recurring}`&&"package"===c?.plan_type&&"lifetime"!==c?.interval_type&&t(c?.interval_count)&&parseInt(c?.interval_count)>0;e||"lifetime"===c?.interval_type?l.push({title:(0,Gc.__)("Cancel","directorist-pricing-plans"),onClick:()=>C(c)}):d&&l.push({title:(0,Gc.__)("Cancel at Period End","directorist-pricing-plans"),onClick:()=>J(c)})}return(0,gc.jsx)(j_,{children:(0,gc.jsx)(Xc.DropdownMenu,{icon:xc,label:(0,Gc.__)("Actions","directorist-pricing-plans"),controls:l,placement:"right-end",toggleProps:{"aria-label":(0,Gc.__)("Package actions","directorist-pricing-plans")}})})}}],[J,C,N,f]),z=!R||y||"active"===H&&!!m&&R===m;return(0,gc.jsxs)(U_,{className:"directorist-container--frontend",style:{padding:0},children:[(0,gc.jsx)(S_,{storeName:c,heading:(0,Gc.__)("All Packages","directorist"),path:l,columns:w,create:{status:!1},edit:{status:!1},destroy:{status:!1}}),(0,gc.jsx)(Ht,{isOpen:t,title:(0,Gc.__)("Cancel Package at Period End","directorist-pricing"),size:"small",isDismissible:!u,onClose:F,footer:(0,gc.jsxs)(D_,{children:[(0,gc.jsx)(gt,{variant:"secondary",onClick:F,disabled:u,children:(0,Gc.__)("No","directorist-pricing")}),(0,gc.jsx)(gt,{variant:"primary",onClick:()=>(async()=>{if(G){X(!0);try{await oc()({path:`/directorist-pricing-plans/packages/${G}/cancel-at-period-end`,method:"POST"}),F()}catch(c){console.error("Failed to cancel subscription:",c),(0,uc.doAction)("directorist-toast",{message:c?.message,type:"error",removeDelay:1e7})}finally{X(!1)}v()}})(),isBusy:u,disabled:u,children:(0,Gc.__)("Yes, Cancel at Period End","directorist-pricing")})]}),children:(0,Gc.__)("Are you sure you want to cancel this package at the end of the current billing period? Your package will remain active until the period ends.","directorist-pricing")}),(0,gc.jsx)(Ht,{isOpen:b,title:(0,Gc.__)("Cancel Package","directorist-pricing"),size:"small",isDismissible:!u,onClose:Y,footer:(0,gc.jsxs)(D_,{children:[(0,gc.jsx)(gt,{variant:"secondary",onClick:Y,disabled:u,children:(0,Gc.__)("No","directorist-pricing")}),(0,gc.jsx)(gt,{variant:"primary",onClick:()=>(async()=>{if(G){X(!0);try{await oc()({path:`/directorist-pricing-plans/packages/${G}/cancel`,method:"POST"}),Y()}catch(c){console.error("Failed to cancel subscription:",c),(0,uc.doAction)("directorist-toast",{message:c?.message,type:"error",removeDelay:1e7})}finally{X(!1)}v()}})(),isBusy:u,disabled:u,children:(0,Gc.__)("Yes, Cancel Now","directorist-pricing")})]}),children:(0,Gc.__)("Are you sure you want to cancel this package immediately? The package will be cancelled right away.","directorist-pricing")}),(0,gc.jsx)(Ht,{isOpen:a,title:(0,Gc.__)("Switch Plan","directorist-pricing"),size:"large",onClose:()=>o(!1),footer:(0,gc.jsxs)(D_,{children:[(0,gc.jsx)(gt,{className:"directorist-button-cancel",variant:"secondary",onClick:()=>o(!1),children:(0,Gc.__)("Cancel","directorist-pricing")}),(0,gc.jsx)(gt,{variant:"primary",onClick:k,disabled:z,children:(0,Gc.__)("Switch Plan","directorist-pricing")})]}),children:(0,gc.jsxs)(M_,{children:[(0,gc.jsx)(E_,{children:(0,Gc.__)("Select a plan to continue to checkout.","directorist-pricing")}),!!h&&(0,gc.jsx)(E_,{children:h}),y&&(0,gc.jsx)(E_,{children:(0,Gc.__)("Loading plans…","directorist-pricing")}),!y&&!W.length&&!h&&(0,gc.jsx)(E_,{children:(0,Gc.__)("No plans found for this directory type.","directorist-pricing")}),!y&&W.length>0&&(0,gc.jsx)(P_,{role:"radiogroup","aria-label":(0,Gc.__)("Plans","directorist-pricing"),children:W.map(c=>{return(0,gc.jsxs)(K_,{style:c.exceeded_max_usage?{opacity:.5,cursor:"not-allowed",pointerEvents:"none"}:void 0,children:[(0,gc.jsx)(q_,{type:"radio",name:"directorist-switch-plan",checked:R===c.id,onChange:()=>I(c.id),"aria-label":c.title,disabled:c.exceeded_max_usage}),(0,gc.jsxs)($_,{children:[(0,gc.jsxs)(lq,{children:[(0,gc.jsxs)("span",{className:"directorist-pricing-plan-title",children:[c.title,c.id===m?` (${(0,Gc.__)("Current","directorist-pricing")})`:""]}),(0,gc.jsx)("span",{className:"directorist-pricing-plan-price",children:T_(c.price,c.currency)})]}),(0,gc.jsxs)(cq,{children:[(0,gc.jsxs)("span",{className:"directorist-pricing-plan-duration",children:[(0,gc.jsx)(dq,{}),(0,gc.jsxs)("span",{children:[" ",(l=c.interval_type,e=c.interval_count,`${e} ${l}`)," "]})]}),"pay_per_listing"!==c.type&&(0,gc.jsxs)(gc.Fragment,{children:[(0,gc.jsxs)("span",{className:"directorist-pricing-plan-regular-listing",children:[(0,gc.jsx)(eq,{}),(0,gc.jsxs)("span",{children:[" ",c.is_allowed_unlimited_listings?(0,Gc.__)("Unlimited","directorist-pricing-plans"):c.regular_listing," ","Regular"]})]}),(0,gc.jsxs)("span",{className:"directorist-pricing-plan-featured-listing",children:[(0,gc.jsx)(tq,{}),(0,gc.jsxs)("span",{children:[" ",c.is_allowed_unlimited_featured_listings?(0,Gc.__)("Unlimited","directorist-pricing-plans"):c.feature_listing," ","Featured"]})]})]}),"pay_per_listing"===c.type&&c.is_featured&&(0,gc.jsxs)("span",{className:"directorist-pricing-plan-featured-listing",children:[(0,gc.jsx)(tq,{}),(0,gc.jsxs)("span",{children:[" ",(0,Gc.__)("Featured","directorist-pricing-plans")]})]})]})]})]},c.id);var l,e})})]})})]})}b()(function(){const c=document.querySelector(".directorist-user-dashboard-packages");if(!c)return;(0,n.createRoot)(c).render((0,gc.jsx)(bq,{}));const l=document.createElement("div");document.body.appendChild(l),(0,n.createRoot)(l).render((0,gc.jsx)(nc,{position:"bottom-right"}))})})()})(); in /var/www/mitpolen.dk/public_html/wp-content/plugins/autoptimize/classes/external/php/jsmin.php:423 Stack trace: #0 /var/www/mitpolen.dk/public_html/wp-content/plugins/autoptimize/classes/external/php/jsmin.php(445): JSMin->consumeMultipleLineComment() #1 /var/www/mitpolen.dk/public_html/wp-content/plugins/autoptimize/classes/external/php/jsmin.php(228): JSMin->next() #2 /var/www/mitpolen.dk/public_html/wp-content/plugins/autoptimize/classes/external/php/jsmin.php(150): JSMin->action(1) #3 /var/www/mitpolen.dk/public_html/wp-content/plugins/autoptimize/classes/external/php/jsmin.php(84): JSMin->min() #4 /var/www/mitpolen.dk/public_html/wp-content/plugins/autoptimize/classes/autoptimizeScripts.php(843): JSMin::minify('(()=>{var c,l,e...') #5 /var/www/mitpolen.dk/public_html/wp-content/plugins/autoptimize/classes/autoptimizeScripts.php(402): autoptimizeScripts->minify_single('/var/www/mitpol...') #6 /var/www/mitpolen.dk/public_html/wp-content/plugins/autoptimize/classes/autoptimizeMain.php(591): autoptimizeScripts->read(Array) #7 [internal function]: autoptimizeMain->end_buffering('<!doctype html>...', 9) #8 /var/www/mitpolen.dk/public_html/wp-includes/functions.php(5493): ob_end_flush() #9 /var/www/mitpolen.dk/public_html/wp-includes/class-wp-hook.php(341): wp_ob_end_flush_all('') #10 /var/www/mitpolen.dk/public_html/wp-includes/class-wp-hook.php(365): WP_Hook->apply_filters(NULL, Array) #11 /var/www/mitpolen.dk/public_html/wp-includes/plugin.php(522): WP_Hook->do_action(Array) #12 /var/www/mitpolen.dk/public_html/wp-includes/load.php(1308): do_action('shutdown') #13 [internal function]: shutdown_action_hook() #14 {main} thrown in /var/www/mitpolen.dk/public_html/wp-content/plugins/autoptimize/classes/external/php/jsmin.php on line 423