1import{_ as U}from"./CBPBhA67.js";import{_ as A}from"./B6kSMQXm.js";import{J as H,z,K as M,r as b,_ as O,d as v,D as S,c as $,a as i,w as G,b as o,i as J,e as d,f,h as g,g as l,F as K,s as I,G as D,x as N,t as c}from"./Doh7wyz3.js";import"./CST-3RD9.js";import"./BTeyGgDR.js";const Q=H("popupSettings",()=>{const h=z(),e=M(),a=b(null),u=b(!1),r=b(!1),_=async()=>{u.value=!0;const n=await e.get("/popup-settings");u.value=!1,n.success?a.value=n.data:h.error((n==null?void 0:n.message)||"Failed to load popup settings")},m=async(n,k)=>{r.value=!0;const p=await e.put("/popup-settings",n);return r.value=!1,p.success?(a.value=p.data,h.success(k),null):(h.error((p==null?void 0:p.message)||"Failed to save"),(p==null?void 0:p.errors)||null)};return{settings:a,isLoading:u,isSaving:r,fetchSettings:_,updateCooldown:n=>m({cooldown_seconds:n},n===null?"Cooldown reset to the built-in default.":"Cooldown saved. It applies from each visitor's next page load."),updateSessionCap:n=>m({session_cap:n},n===null?"Session limit reset to the built-in default.":"Session limit saved. It applies from each visitor's next page load.")}}),R={class:"px-3 pb-4"},W={key:0,class:"text-muted py-4"},j={class:"d-flex flex-wrap align-items-center gap-2 fs-13"},X=["min","max"],Y={class:"text-muted"},Z={key:0,class:"badge bg-secondary"},ee={key:1,class:"badge bg-primary"},se=["disabled"],te=["disabled"],oe={key:0,class:"invalid-feedback d-block"},ne={key:1,class:"form-text text-danger fs-12"},ae={class:"d-flex flex-wrap align-items-center gap-2 fs-13"},ie=["min","max"],le={key:0,class:"badge bg-secondary"},de={key:1,class:"badge bg-primary"},ue=["disabled"],re=["disabled"],pe={key:2,class:"invalid-feedback d-block"},ce={key:3,class:"form-text text-danger fs-12"},me={key:4,class:"alert alert-warning fs-13 mt-4 mb-0"},ve={key:5,class:"text-muted fs-12 mt-4 mb-0"},ge={__name:"index",setup(h){const e=Q(),a=b({}),u=b(null),r=b(null),_=v(()=>{var t;return((t=e.settings)==null?void 0:t.cooldown_seconds_limits)||{min:0,max:3600}}),m=v(()=>{var t;return((t=e.settings)==null?void 0:t.session_cap_limits)||{min:0,max:50}}),x=(t,s)=>Number.isInteger(t)&&t>=s.min&&t<=s.max,w=v(()=>x(u.value,_.value)),n=v(()=>x(r.value,m.value)),k=v(()=>e.settings&&u.value!==e.settings.cooldown_seconds),p=v(()=>e.settings&&r.value!==e.settings.session_cap),V=v(()=>{const t=u.value;if(!Number.isInteger(t)||t<60)return"";const s=t/60,y=Number.isInteger(s)?s:s.toFixed(1);return` (${y} ${y===1?"minute":"minutes"})`}),q=v(()=>e.settings&&e.settings.cooldown_seconds===0&&e.settings.session_cap===0);S(()=>{var t;return(t=e.settings)==null?void 0:t.cooldown_seconds},t=>{t!==void 0&&(u.value=t,a.value={})},{immediate:!0}),S(()=>{var t;return(t=e.settings)==null?void 0:t.session_cap},t=>{t!==void 0&&(r.value=t,a.value={})},{immediate:!0});const B=async()=>{a.value=await e.updateCooldown(u.value)||{}},L=async()=>{a.value=await e.updateCooldown(null)||{}},T=async()=>{a.value=await e.updateSessionCap(r.value)||{}},F=async()=>{a.value=await e.updateSessionCap(null)||{}},P=t=>new Date(t).toLocaleString();return e.fetchSettings(),(t,s)=>{const y=U,E=A;return i(),$(E,{class:"rounded-3"},{default:G(()=>[s[10]||(s[10]=o("title",null,"Popup Pacing",-1)),J(y,{title:"Popup Pacing"}),o("div",R,[s[9]||(s[9]=o("p",{class:"fs-14 text-muted"},[g(" How hard the site pushes popups at one visitor. Each popup already has its own "),o("strong",null,"delay"),g(", but that is measured from the moment a visitor lands on a page â without the settings below, someone clicking quickly through several articles gets a popup on every one. These apply from each visitor's next page load. ")],-1)),l(e).isLoading&&!l(e).settings?(i(),d("div",W,"Loadingâ¦")):l(e).settings?(i(),d(K,{key:1},[s[3]||(s[3]=o("h6",{class:"mt-4 mb-1"},"Quiet period between popups",-1)),s[4]||(s[4]=o("p",{class:"fs-13 text-muted mb-2"}," After a visitor dismisses a popup, how long before another may appear. A popup whose own delay is longer than what remains of the quiet period still shows on the page the visitor is reading â they simply wait out the longer of the two. ",-1)),o("div",j,[I(o("input",{"onUpdate:modelValue":s[0]||(s[0]=C=>u.value=C),type:"number",min:_.value.min,max:_.value.max,step:"15",class:D(["form-control form-control-sm pacing-input",{"is-invalid":a.value.cooldown_seconds||!w.value}])},null,10,X),[[N,u.value,void 0,{number:!0}]]),o("span",Y,"seconds"+c(V.value),1),l(e).settings.cooldown_seconds_is_default?(i(),d("span",Z,"Built-in default")):(i(),d("span",ee,"Customised")),o("button",{class:"btn btn-sm btn-primary",disabled:!k.value||!w.value||l(e).isSaving,onClick:B},"Save quiet period",8,se),l(e).settings.cooldown_seconds_is_default?f("",!0):(i(),d("button",{key:2,class:"btn btn-sm btn-outline-secondary",disabled:l(e).isSaving,onClick:L},"Use built-in default ("+c(l(e).settings.default_cooldown_seconds)+"s)",9,te))]),a.value.cooldown_seconds?(i(),d("div",oe,c(a.value.cooldown_seconds[0]),1)):w.value?f("",!0):(i(),d("div",ne," Enter a whole number between "+c(_.value.min)+" and "+c(_.value.max)+". ",1)),s[5]||(s[5]=o("div",{class:"form-text fs-12"},[g(" Set to "),o("strong",null,"0"),g(" to turn the quiet period off â back to a popup on every page view. ")],-1)),s[
16]||(s[6]=o("h6",{class:"mt-4 mb-1"},"Most popups per visit",-1)),s[7]||(s[7]=o("p",{class:"fs-13 text-muted mb-2"},[g(" The quiet period caps how "),o("em",null,"often"),g(" popups appear, not how many. Over a long visit it would still allow one every quiet period for as long as enabled popups last. This is the ceiling on the whole visit. ")],-1)),o("div",ae,[I(o("input",{"onUpdate:modelValue":s[1]||(s[1]=C=>r.value=C),type:"number",min:m.value.min,max:m.value.max,step:"1",class:D(["form-control form-control-sm pacing-input",{"is-invalid":a.value.session_cap||!n.value}])},null,10,ie),[[N,r.value,void 0,{number:!0}]]),s[2]||(s[2]=o("span",{class:"text-muted"},"popups per visit",-1)),l(e).settings.session_cap_is_default?(i(),d("span",le,"Built-in default")):(i(),d("span",de,"Customised")),o("button",{class:"btn btn-sm btn-primary",disabled:!p.value||!n.value||l(e).isSaving,onClick:T},"Save limit",8,ue),l(e).settings.session_cap_is_default?f("",!0):(i(),d("button",{key:2,class:"btn btn-sm btn-outline-secondary",disabled:l(e).isSaving,onClick:F},"Use built-in default ("+c(l(e).settings.default_session_cap)+")",9,re))]),a.value.session_cap?(i(),d("div",pe,c(a.value.session_cap[0]),1)):n.value?f("",!0):(i(),d("div",ce," Enter a whole number between "+c(m.value.min)+" and "+c(m.value.max)+". ",1)),s[8]||(s[8]=o("div",{class:"form-text fs-12"},[g(" Set to "),o("strong",null,"0"),g(" for no limit â popups keep coming until the visitor has seen every enabled one. ")],-1)),q.value?(i(),d("div",me," Both settings are off, so a visitor sees a popup on every page they open until they have been through all of them. That is the behaviour these settings exist to prevent. ")):f("",!0),l(e).settings.updated_at?(i(),d("p",ve," Last changed "+c(P(l(e).settings.updated_at)),1)):f("",!0)],64)):f("",!0)])]),_:1,__:[10]})}}},ye=O(ge,[["__scopeId","data-v-30f47795"]]);export{ye 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.