PluginProbe
FluentCart A New Era of eCommerce – Faster, Lighter, and Simpler / 1.6.6
FluentCart A New Era of eCommerce – Faster, Lighter, and Simpler v1.6.6
1.6.6 1.6.5 1.6.4 1.6.3 1.6.2 1.6.1 1.6.0 1.5.4 1.5.5 1.5.3 1.5.2 1.5.1 1.5.0 1.4.2 1.4.1 1.4.0 1.3.28 1.3.27 1.3.26 1.3.25 1.3.23 1.3.22 1.3.21 1.3.20 1.3.19 All 49 releases
← All changes | assets/chunks/TurnstileSettings.js +1 -1 1.3.21 → 1.6.6 View file →
@@ -1 +1 @@
1 -import{A,B as I,h as v,i as L,v as N,l as R,r as x,e as k,b,o as w,d as s,a as f,t as i,w as K,f as V,u as r,n as D,x as T}from"./vue.esm-bundler.js?ver=1.3.21";import{t as n}from"./Translator.js?ver=1.3.21";import{B as U}from"./Badge.js?ver=1.3.21";import{R as j}from"./Rest.js?ver=1.3.21";import"./Arr.js?ver=1.3.21";import"./_plugin-vue_export-helper.js?ver=1.3.21";import"./DynamicIcon.js?ver=1.3.21";import"./Str.js?ver=1.3.21";const F={key:0,class:"fct-content-card-list-item py-4 px-6"},G={class:"fct-content-card-list-head"},H={class:"flex items-start gap-2 flex-row"},O={class:"mb-0"},J={key:0,class:"fct-content-card-list-content"},Q={class:"fct-content-card-list-action"},W={class:"pr-4"},X={key:1,class:"fct-turnstile-settings mt-6 border-t border-gray-200 dark:border-gray-700"},Y={class:"space-y-4 max-w-[600px] p-4 bg-gray-50 dark:bg-gray-800 rounded-lg"},Z={class:"block text-sm font-medium mb-2"},$={class:"form-note mt-2"},ee={class:"block text-sm font-medium mb-2"},te={class:"form-note mt-2"},ae={class:"flex items-center gap-3"},de={__name:"TurnstileSettings",props:A({name:{type:String,required:!0},field:{type:Object},fieldKey:{type:String},value:{required:!0},variant:{type:String},nesting:{type:Boolean,default:!1},statePath:{type:String},form:{type:Object,required:!0},callback:{type:Function,required:!0},label:{type:String},attribute:{required:!0}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(_){const a=I(_,"modelValue"),c=v(!1),d=v(""),m=v(""),S=v(!1);L(()=>{a.value?(c.value=a.value.active||"no",d.value=a.value.site_key||"",m.value=a.value.secret_key||""):a.value={active:"no",site_key:"",secret_key:""},S.value=!0}),N(()=>a.value,e=>{e&&(c.value=e.active||"no",d.value=e.site_key||"",m.value=e.secret_key||"")},{deep:!0});const C=e=>{(!a.value||typeof a.value!="object")&&(a.value={}),T(()=>{a.value.active=e})},E=e=>{(!a.value||typeof a.value!="object")&&(a.value={}),T(()=>{a.value.site_key=e})},B=e=>{(!a.value||typeof a.value!="object")&&(a.value={}),T(()=>{a.value.secret_key=e})},h=v(!1),y=v(null),g=v(null),q=R(()=>d.value&&m.value&&!h.value),M=()=>new Promise((e,t)=>{if(typeof window.turnstile<"u"){e();return}const l=document.querySelector('script[src*="challenges.cloudflare.com/turnstile"]');if(l){l.addEventListener("load",e),l.addEventListener("error",t);return}const o=document.createElement("script");o.src="https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit",o.async=!0,o.onload=e,o.onerror=()=>t(new Error("Failed to load Turnstile script")),document.head.appendChild(o)}),P=e=>new Promise((t,l)=>{const o=g.value;if(!o){l(new Error("Container not found"));return}o.innerHTML="";const p=setTimeout(()=>{l(new Error("Turnstile verification timed out. Please check your Site Key and ensure this domain is allowed in Cloudflare."))},15e3);try{window.turnstile.render(o,{sitekey:e,size:"flexible",appearance:"interaction-only",callback:u=>{clearTimeout(p),t(u)},"error-callback":()=>{clearTimeout(p),l(new Error("Turnstile challenge failed. Please check your Site Key."))}})}catch{clearTimeout(p),l(new Error("Invalid Site Key or Turnstile configuration."))}}),z=async()=>{var e;h.value=!0,y.value=null;try{await M();const t=await P(d.value),l=await j.post("settings/modules/turnstile/verify",{site_key:d.value,secret_key:m.value,token:t});y.value={success:!0,message:l.message}}catch(t){const l=((e=t==null?void 0:t.data)==null?void 0:e.message)||(t==null?void 0:t.message)||n("Verification failed. Please check your keys.");y.value={success:!1,message:l}}finally{h.value=!1,g.value&&(g.value.innerHTML="")}};return(e,t)=>{const l=x("el-switch"),o=x("el-input"),p=x("el-button");return S.value?(w(),k("div",F,[s("div",G,[s("div",H,[s("h4",O,i(_.field.title),1),f(U,{size:"small",type:c.value==="yes"?"active":"inactive","hide-icon":!0},{default:K(()=>[V(i(c.value==="yes"?r(n)("Active"):r(n)("Inactive")),1)]),_:1},8,["type"])])]),_.field.description?(w(),k("div",J,[s("p",null,i(_.field.description),1)])):b("",!0),s("div",Q,[s("div",W,[f(l,{"active-value":"yes","inactive-value":"no",modelValue:c.value,"onUpdate:modelValue":t[0]||(t[0]=u=>c.value=u),onChange:C},null,8,["modelValue"])])]),c.value==="yes"?(w(),k("div",X,[s("div",Y,[s("div",null,[s("label",Z,i(r(n)("Turnstile Site Key")),1),f(o,{modelValue:d.value,"onUpdate:modelValue":t[1]||(t[1]=u=>d.value=u),onInput:E,placeholder:r(n)("Enter your Turnstile Site Key"),type:"text"},null,8,["modelValue","placeholder"]),s("p",$,i(r(n)("Get your Site Key from Cloudflare Dashboard > Turnstile.")),1)]),s("div",null,[s("label",ee,i(r(n)("Turnstile Secret Key")),1),f(o,{modelValue:m.value,"onUpdate:modelValue":t[2]||(t[2]=u=>m.value=u),onInput:B,placeholder:r(n)("Enter your Turnstile Secret Key"),type:"password","show-password":""},null,8,["modelValue","placeholder"]),s("p",te,i(r(n)("Get your Secret Key from Cloudflare Dashboard > Turnstile. Keep this secret.")),1)]),s("div",ae,[f(p,{disabled:!q.value,loading:h.value,onClick:z,type:"primary",size:"small"},{default:K(()=>[V(i(r(n)("Verify Keys")),1)]),_:1},8,["disabled","loading"]),y.value?(w(),k("span",{key:0,class:D([y.value.success?"text-green-600":"text-red-600","text-sm"])},i(y.value.message),3)):b("",!0)]),s("div",{ref_key:"turnstileContainer",ref:g,style:{position:"absolute",left:"-9999px",visibility:"hidden"}},null,512)])])):b("",!0)])):b("",!0)}}};export{de as default};
1 +import{A,B as I,h as m,i as L,v as N,l as R,r as x,e as k,b,o as w,d as s,a as f,t as r,w as K,f as V,u as n,n as D,x as T}from"./vue.esm-bundler.js?ver=1.6.6";import{t as i}from"./Translator.js?ver=1.6.6";import{B as U}from"./Badge.js?ver=1.6.6";import{R as j}from"./Rest.js?ver=1.6.6";import"./Arr.js?ver=1.6.6";import"./Model.js?ver=1.6.6";import"./common.js?ver=1.6.6";import"./dayjs.min.js?ver=1.6.6";import"./Str.js?ver=1.6.6";import"./timezone.js?ver=1.6.6";import"./weekOfYear.js?ver=1.6.6";import"./Utils.js?ver=1.6.6";import"./CurrencyFormatter.js?ver=1.6.6";import"./index.js?ver=1.6.6";import"./vue-router.js?ver=1.6.6";import"./Url.js?ver=1.6.6";import"./Notify.js?ver=1.6.6";import"./DynamicIcon.js?ver=1.6.6";import"./preload-helper.js?ver=1.6.6";import"./_plugin-vue_export-helper.js?ver=1.6.6";import"./index3.js?ver=1.6.6";import"./IconButton.js?ver=1.6.6";import"./TransitionAccordion.js?ver=1.6.6";const F={key:0,class:"fct-content-card-list-item py-4 px-6"},G={class:"fct-content-card-list-head"},H={class:"flex items-start gap-2 flex-row"},O={class:"mb-0"},J={key:0,class:"fct-content-card-list-content"},Q={class:"fct-content-card-list-action"},W={class:"pr-4"},X={key:1,class:"fct-turnstile-settings mt-6 border-t border-gray-200 dark:border-gray-700"},Y={class:"space-y-4 max-w-[600px] p-4 bg-gray-50 dark:bg-gray-800 rounded-lg"},Z={class:"block text-sm font-medium mb-2"},$={class:"form-note mt-2"},ee={class:"block text-sm font-medium mb-2"},te={class:"form-note mt-2"},ae={class:"flex items-center gap-3"},Ke={__name:"TurnstileSettings",props:A({name:{type:String,required:!0},field:{type:Object},fieldKey:{type:String},value:{required:!0},variant:{type:String},nesting:{type:Boolean,default:!1},statePath:{type:String},form:{type:Object,required:!0},callback:{type:Function,required:!0},label:{type:String},attribute:{required:!0}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(_){const a=I(_,"modelValue"),c=m(!1),d=m(""),p=m(""),S=m(!1);L(()=>{a.value?(c.value=a.value.active||"no",d.value=a.value.site_key||"",p.value=a.value.secret_key||""):a.value={active:"no",site_key:"",secret_key:""},S.value=!0}),N(()=>a.value,e=>{e&&(c.value=e.active||"no",d.value=e.site_key||"",p.value=e.secret_key||"")},{deep:!0});const C=e=>{(!a.value||typeof a.value!="object")&&(a.value={}),T(()=>{a.value.active=e})},E=e=>{(!a.value||typeof a.value!="object")&&(a.value={}),T(()=>{a.value.site_key=e})},B=e=>{(!a.value||typeof a.value!="object")&&(a.value={}),T(()=>{a.value.secret_key=e})},h=m(!1),v=m(null),g=m(null),q=R(()=>d.value&&p.value&&!h.value),M=()=>new Promise((e,t)=>{if(typeof window.turnstile<"u"){e();return}const l=document.querySelector('script[src*="challenges.cloudflare.com/turnstile"]');if(l){l.addEventListener("load",e),l.addEventListener("error",t);return}const o=document.createElement("script");o.src="https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit",o.async=!0,o.onload=e,o.onerror=()=>t(new Error("Failed to load Turnstile script")),document.head.appendChild(o)}),P=e=>new Promise((t,l)=>{const o=g.value;if(!o){l(new Error("Container not found"));return}o.innerHTML="";const y=setTimeout(()=>{l(new Error("Turnstile verification timed out. Please check your Site Key and ensure this domain is allowed in Cloudflare."))},15e3);try{window.turnstile.render(o,{sitekey:e,size:"flexible",appearance:"interaction-only",callback:u=>{clearTimeout(y),t(u)},"error-callback":()=>{clearTimeout(y),l(new Error("Turnstile challenge failed. Please check your Site Key."))}})}catch{clearTimeout(y),l(new Error("Invalid Site Key or Turnstile configuration."))}}),z=async()=>{var e;h.value=!0,v.value=null;try{await M();const t=await P(d.value),l=await j.post("settings/modules/turnstile/verify",{site_key:d.value,secret_key:p.value,token:t});v.value={success:!0,message:l.message}}catch(t){const l=((e=t==null?void 0:t.data)==null?void 0:e.message)||(t==null?void 0:t.message)||i("Verification failed. Please check your keys.");v.value={success:!1,message:l}}finally{h.value=!1,g.value&&(g.value.innerHTML="")}};return(e,t)=>{const l=x("el-switch"),o=x("el-input"),y=x("el-button");return S.value?(w(),k("div",F,[s("div",G,[s("div",H,[s("h4",O,r(_.field.title),1),f(U,{size:"small",type:c.value==="yes"?"active":"inactive","hide-icon":!0},{default:K(()=>[V(r(c.value==="yes"?n(i)("Active"):n(i)("Inactive")),1)]),_:1},8,["type"])])]),_.field.description?(w(),k("div",J,[s("p",null,r(_.field.description),1)])):b("",!0),s("div",Q,[s("div",W,[f(l,{"active-value":"yes","inactive-value":"no",modelValue:c.value,"onUpdate:modelValue":t[0]||(t[0]=u=>c.value=u),onChange:C},null,8,["modelValue"])])]),c.value==="yes"?(w(),k("div",X,[s("div",Y,[s("div",null,[s("label",Z,r(n(i)("Turnstile Site Key")),1),f(o,{modelValue:d.value,"onUpdate:modelValue":t[1]||(t[1]=u=>d.value=u),onInput:E,placeholder:n(i)("Enter your Turnstile Site Key"),type:"text"},null,8,["modelValue","placeholder"]),s("p",$,r(n(i)("Get your Site Key from Cloudflare Dashboard > Turnstile.")),1)]),s("div",null,[s("label",ee,r(n(i)("Turnstile Secret Key")),1),f(o,{modelValue:p.value,"onUpdate:modelValue":t[2]||(t[2]=u=>p.value=u),onInput:B,placeholder:n(i)("Enter your Turnstile Secret Key"),type:"password","show-password":""},null,8,["modelValue","placeholder"]),s("p",te,r(n(i)("Get your Secret Key from Cloudflare Dashboard > Turnstile. Keep this secret.")),1)]),s("div",ae,[f(y,{disabled:!q.value,loading:h.value,onClick:z,type:"primary",size:"small"},{default:K(()=>[V(r(n(i)("Verify Keys")),1)]),_:1},8,["disabled","loading"]),v.value?(w(),k("span",{key:0,class:D([v.value.success?"text-green-600":"text-red-600","text-sm"])},r(v.value.message),3)):b("",!0)]),s("div",{ref_key:"turnstileContainer",ref:g,style:{position:"absolute",left:"-9999px",visibility:"hidden"}},null,512)])])):b("",!0)])):b("",!0)}}};export{Ke as default};