1import{d as J,h as u,c as M,w as d,a as e,b as p,u as l,i as V,P as h,j,k as G,V as N,v as K,f as m,t as o,o as i,e as n,g as w,F as k,r as L,Q as O,q as D,p as I}from"./wct-app-D8i_eqtu.js";import{F as W}from"./FullLayout-zb4x4YVn.js";import{_ as g}from"./ActionButton.vue_vue_type_script_setup_true_lang-yu6ujbWe.js";import{u as q}from"./common.store-CRrASObo.js";import{r as P}from"./InformationCircleIcon-vwXENsff.js";import{y as E,I as T}from"./DynamicHeroIcon-BaqZpeOn.js";import{a as Q}from"./LinkIcon-Cava_wGR.js";import"./auth.store-8biDnKfi.js";import"./auth.service-DpLjbZ4k.js";import"./Header-lejb0B66.js";import"./_plugin-vue_export-helper-DlAUqK2U.js";import"./format-Grfp2_uY.js";import"./Loading-DcSCH15J.js";import"./ModalBlank-DqUEbJt2.js";import"./PlusIcon-DYNe7iZ-.js";import"./XMarkIcon-DFOn66fd.js";import"./ShieldCheckIcon-BWqFCb0i.js";import"./ExclamationCircleIcon-BLQuYzNz.js";import"./FunnelIcon-BWVrIAa3.js";import"./CheckCircleIcon-uL_wsBoq.js";import"./ChevronDownIcon-Bb7IICNj.js";import"./ChevronRightIcon-CnlDLyZY.js";import"./CogIcon-BClzZz8O.js";import"./DocumentTextIcon-CjLt4iuy.js";import"./ExclamationTriangleIcon-DFNXGgop.js";import"./MagnifyingGlassIcon-WZwazEdc.js";import"./WrenchScrewdriverIcon-Dijmq-uH.js";import"./TableCellsIcon-DrJnwU_K.js";import"./UserGroupIcon-4B8il2UH.js";const R={class:"min-h-screen bg-gray-50 dark:bg-gray-900"},z={class:"bg-white dark:bg-gray-800 shadow-sm"},H={class:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6"},X={class:"flex items-center gap-3"},Y={class:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8"},Z={class:"bg-white dark:bg-gray-800 shadow-sm rounded-lg border border-gray-200 dark:border-gray-700 p-6 mb-6"},ee={class:"flex flex-col sm:flex-row items-start sm:items-center gap-3"},te=["onKeydown"],re={class:"flex gap-3"},se={key:0,class:"text-red-500 text-xs mt-2"},ae={key:0,class:"bg-white dark:bg-gray-800 shadow-sm rounded-lg border border-gray-200 dark:border-gray-700 overflow-hidden"},oe={class:"p-6 space-y-6"},ie={class:"flex items-center justify-between mb-2"},ne={class:"font-semibold text-gray-900 dark:text-white"},de={key:0,class:"flex items-center gap-2"},le=["href"],ce={key:0,class:"whitespace-pre-wrap break-words text-sm bg-gray-50 dark:bg-gray-900 p-4 rounded-lg border border-gray-200 dark:border-gray-700"},pe={readonly:"",rows:"1",class:"w-full font-mono text-sm bg-gray-50 dark:bg-gray-900 dark:text-gray-300 p-3 rounded-lg border border-gray-200 dark:border-gray-700"},ue={class:"mt-3 flex gap-3"},me={readonly:"",rows:"5",class:"w-full font-mono text-sm bg-gray-50 dark:bg-gray-900 dark:text-gray-300 p-3 rounded-lg border border-gray-200 dark:border-gray-700"},qe=J({__name:"ScriptManagerPage",setup(ge){const{showToast:b}=q(),S=O(),C=D(()=>S.props.errors??{}),x=u(S.props.output??null),y=u(null),f=u(!1),_=u(!1),c=u(null);function A(t){try{return JSON.stringify(t,null,2)}catch{return String(t)}}function B(t){return t!==null&&(Array.isArray(t)||typeof t=="object")}async function v(t,r){try{await navigator.clipboard.writeText(t),r&&(c.value=r,setTimeout(()=>{c.value=null},1300))}catch{}}function F(){f.value=!0,I.post(h("admin-user.js_script_manager.update_js_file"),{user_website_id:y.value}).then(t=>{b("success",t.data?.success??"Updated")}).catch(t=>{const r=t?.response?.data?.message??t.message??"An error occurred";b("error",r)}).finally(()=>{f.value=!1})}async function U(){_.value=!0;try{const t=await I.get(h("admin-user.js_script_manager.get_info"),{params:{user_website_id:y.value}});b("success",t.data?.message??"Info retrieved"),x.value=t.data?.output??null}catch(t){const r=t?.response?.data?.message??t?.message??"An error occurred";b("error",r)}finally{_.value=!1}}return(t,r)=>(i(),M(W,{title:"Admin ⺠JS Script Manager"},{default:d(()=>[e("div",R,[e("div",z,[e("div",H,[e("div",X,[p(l(V),{href:l(h)("admin-user.dashboard"),
1class:"p-2 rounded-lg text-gray-400 hover:text-gray-600 dark:hover:text-gray-200 hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors",title:"Back to Admin"},{default:d(()=>[...r[1]||(r[1]=[e("svg",{class:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 19l-7-7 7-7"})],-1)])]),_:1},8,["href"]),r[2]||(r[2]=e("div",null,[e("h1",{class:"text-2xl font-semibold text-gray-900 dark:text-white"}," JS Script Manager "),e("p",{class:"mt-1 text-sm text-gray-600 dark:text-gray-400"}," Generate & inspect the client script for a specific User Website ")],-1))])])]),e("div",Y,[e("div",Z,[e("form",{onSubmit:j(F,["prevent"])},[r[3]||(r[3]=e("label",{for:"user_website_id",class:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2"}," User Website ID ",-1)),e("div",ee,[G(e("input",{id:"user_website_id","onUpdate:modelValue":r[0]||(r[0]=s=>y.value=s),type:"number",min:"0",step:"1",required:"",class:"form-input w-full sm:max-w-xs rounded-lg border-gray-300 dark:border-gray-600 dark:bg-gray-700 dark:text-white focus:border-blue-500 focus:ring-blue-500",placeholder:"e.g. 123",onKeydown:N(j(U,["prevent"]),["enter"])},null,40,te),[[K,y.value,void 0,{number:!0}]]),e("div",re,[p(g,{variant:"secondary",icon:l(P),disabled:_.value,onClick:U},{default:d(()=>[m(o(_.value?"Getting...":"Get Info"),1)]),_:1},8,["icon","disabled"]),p(g,{type:"submit",variant:"primary",icon:l(E),disabled:f.value},{default:d(()=>[m(o(f.value?"Updating...":"Update JS File"),1)]),_:1},8,["icon","disabled"])])]),C.value.user_website_id?(i(),n("p",se,o(C.value.user_website_id),1)):w("",!0)],32)]),x.value?(i(),n("div",ae,[r[5]||(r[5]=e("div",{class:"bg-gray-50 dark:bg-gray-900 px-6 py-4 border-b border-gray-200 dark:border-gray-700"},[e("h2",{class:"font-semibold text-gray-900 dark:text-white"},"Output")],-1)),e("div",oe,[(i(!0),n(k,null,L(x.value,(s,a)=>(i(),n("div",{key:a},[e("div",ie,[e("div",ne,o(a)+":",1),(a==="script_location"||a==="monetisation_script_location")&&typeof s=="string"?(i(),n("div",de,[e("a",{href:s,target:"_blank",rel:"noopener",class:"text-sm text-blue-600 dark:text-blue-400 hover:underline"}," Open Script â ",8,le)])):w("",!0)]),B(s)?(i(),n("pre",ce,o(A(s)),1)):a==="script_location"||a==="monetisation_script_location"?(i(),n(k,{key:1},[e("textarea",pe,o(`<script src="${String(s)}" async><\/script>`),1),e("div",ue,[p(g,{variant:"secondary",icon:l(T),disabled:c.value===a,onClick:$=>v(`<script src='${String(s)}' async><\/script>`,a)},{default:d(()=>[m(o(c.value===a?"Copied!":"Copy Tag"),1)]),_:2},1032,["icon","disabled","onClick"]),p(g,{variant:"secondary",icon:l(Q),onClick:$=>v(String(s))},{default:d(()=>[...r[4]||(r[4]=[m(" Copy URL ",-1)])]),_:1},8,["icon","onClick"])])],64)):(i(),n(k,{key:2},[e("textarea",me,o(String(s)),1),p(g,{variant:"secondary",icon:l(T),disabled:c.value===a,class:"mt-3",onClick:$=>v(String(s),a)},{default:d(()=>[m(o(c.value===a?"Copied!":"Copy Script"),1)]),_:2},1032,["icon","disabled","onClick"])],64))]))),128))])])):w("",!0)])])]),_:1}))}});export{qe 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.