From 96ea79600a718258c7c0fbafbd3b5304d86370c5 Mon Sep 17 00:00:00 2001 From: dwindown Date: Sat, 18 Apr 2026 17:41:54 +0700 Subject: [PATCH] fix: only render modal when explicitly opened to prevent auto-show Change modal rendering strategy from controlled via 'open' prop to conditional rendering. Now the Modal component is only added to DOM when isAddModalOpen is true, preventing it from being present on page load. Before: {actions.addNew && } After: {actions.addNew && isAddModalOpen && } This ensures the modal cannot accidentally show on page load and cannot be interfered with when it shouldn't exist. Co-authored-by: Claude Opus 4.7 --- build/admin.asset.php | 2 +- build/admin.js | 2 +- ...fc7bcd4f833ddbb91198129c7c6962ce6dd8.json.gz | Bin 0 -> 10549 bytes ...0f6363675a38a97ed270c522e81684d3a00c.json.gz | Bin 0 -> 3846 bytes src/admin/components/shared/DataTable.js | 6 ++---- 5 files changed, 4 insertions(+), 6 deletions(-) create mode 100644 node_modules/.cache/babel-loader/8cc6fe2d32e01bdb05f4edf32353fc7bcd4f833ddbb91198129c7c6962ce6dd8.json.gz create mode 100644 node_modules/.cache/babel-loader/acb512dd62b4aba9580d7caf58090f6363675a38a97ed270c522e81684d3a00c.json.gz diff --git a/build/admin.asset.php b/build/admin.asset.php index 2b0027786..87f7dea26 100644 --- a/build/admin.asset.php +++ b/build/admin.asset.php @@ -1 +1 @@ - array('react', 'wp-components', 'wp-element', 'wp-i18n', 'wp-icons/build/arrow-left', 'wp-icons/build/bell', 'wp-icons/build/eye-closed', 'wp-icons/build/eye-opened', 'wp-icons/build/list', 'wp-icons/build/message', 'wp-icons/build/minus', 'wp-icons/build/trash', 'wp-icons/build/visible'), 'version' => 'b71d9ac468e7d4c01a3d'); + array('react', 'wp-components', 'wp-element', 'wp-i18n', 'wp-icons/build/arrow-left', 'wp-icons/build/bell', 'wp-icons/build/eye-closed', 'wp-icons/build/eye-opened', 'wp-icons/build/list', 'wp-icons/build/message', 'wp-icons/build/minus', 'wp-icons/build/trash', 'wp-icons/build/visible'), 'version' => '45054e0b1c710182ba92'); diff --git a/build/admin.js b/build/admin.js index e4365ce40..44f1118a9 100644 --- a/build/admin.js +++ b/build/admin.js @@ -1 +1 @@ -(()=>{"use strict";var e={n:t=>{var a=t&&t.__esModule?()=>t.default:()=>t;return e.d(a,{a}),a},d:(t,a)=>{for(var n in a)e.o(a,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:a[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,a=window.wp.element,n=window.wp.i18n,r=window.wp.components,l=(0,a.forwardRef)(function({icon:e,size:t=24,...n},r){return(0,a.cloneElement)(e,{width:t,height:t,...n,ref:r})}),o=window.wp["icons/build/list"];var i=e.n(o);const c=window.formipayAdmin?.ajaxUrl||"/wp-admin/admin-ajax.php",s=window.formipayAdmin?.nonce||"";async function m(e,t={}){const a=new FormData;a.append("action",e),a.append("_wpnonce",s),Object.keys(t).forEach(e=>{"object"==typeof t[e]?a.append(e,JSON.stringify(t[e])):a.append(e,t[e])}),console.log(`[AJAX] Sending request: ${e}`,{nonce:s,data:t});try{const t=await fetch(c,{method:"POST",credentials:"same-origin",body:a});console.log(`[AJAX] Response status: ${e}`,t.status);const n=await t.json();if(console.log(`[AJAX] Response data: ${e}`,n),!t.ok||!1===n.success){const e=n.data?.message||n.message||"Request failed";throw new Error(e)}return n}catch(t){throw console.error(`AJAX error [${e}]:`,t),t}}window.formipayAdmin;const d=window.wp["icons/build/visible"];var p=e.n(d);const u={"on-hold":"#f0ad4e","payment-confirm":"#17a2b8","in-progress":"#17a2b8",shipping:"#6c757d",completed:"#28a745",failed:"#dc3545",refunded:"#6c757d",cancelled:"#dc3545"},f={"on-hold":(0,n.__)("On Hold","formipay"),"payment-confirm":(0,n.__)("Payment Confirmed","formipay"),"in-progress":(0,n.__)("In Progress","formipay"),shipping:(0,n.__)("Shipping","formipay"),completed:(0,n.__)("Completed","formipay"),failed:(0,n.__)("Failed","formipay"),refunded:(0,n.__)("Refunded","formipay"),cancelled:(0,n.__)("Cancelled","formipay")};function y({order:e,onSelect:a}){const r=u[e.status]||"#6c757d",o=f[e.status]||e.status,i=(e=>{if(e.form_data){const t=Object.values(e.form_data).find(e=>e.name&&e.name.includes("name"));return t?.value||"-"}return"-"})(e);return(0,t.createElement)("tr",{className:"formipay-order-item"},(0,t.createElement)("td",null,(0,t.createElement)("strong",null,"#",e.id)),(0,t.createElement)("td",null,(c=e.created_date)?new Date(c).toLocaleDateString():"-"),(0,t.createElement)("td",null,"-"!==i?i:(0,t.createElement)("em",null,"Unknown")),(0,t.createElement)("td",null,(0,t.createElement)("strong",null,e.total_formatted||e.total)),(0,t.createElement)("td",null,(0,t.createElement)("span",{className:"status-badge",style:{backgroundColor:r}},o)),(0,t.createElement)("td",null,(0,t.createElement)("button",{type:"button",className:"button button-small",onClick:a},(0,t.createElement)(l,{icon:p()(),size:16}),(0,n.__)("View","formipay"))));var c}function _({onSelectOrder:e}){const[o,c]=(0,a.useState)([]),[s,d]=(0,a.useState)(!0),[p,u]=(0,a.useState)(0),[f,_]=(0,a.useState)({keyword:"",status:"",date_from:"",date_to:""}),[E,b]=(0,a.useState)({limit:20,offset:0}),g=(0,a.useCallback)(()=>{d(!0),((e={})=>m("formipay-tabledata-orders",e))({keyword:f.keyword,status:f.status,date_from:f.date_from,date_to:f.date_to,limit:E.limit,offset:E.offset}).then(e=>{e.data&&(c(e.data.results||[]),u(e.data.total||0))}).catch(e=>{console.error("Load orders error:",e)}).finally(()=>{d(!1)})},[f,E]);(0,a.useEffect)(()=>{g()},[g]);const h=(e,t)=>{_({...f,[e]:t}),b({...E,offset:0})},w=e=>{b({...E,offset:e})},v={"":(0,n.__)("All Statuses","formipay"),"on-hold":(0,n.__)("On Hold","formipay"),"payment-confirm":(0,n.__)("Payment Confirmed","formipay"),"in-progress":(0,n.__)("In Progress","formipay"),shipping:(0,n.__)("Shipping","formipay"),completed:(0,n.__)("Completed","formipay"),failed:(0,n.__)("Failed","formipay"),refunded:(0,n.__)("Refunded","formipay"),cancelled:(0,n.__)("Cancelled","formipay")},k=Math.ceil(p/E.limit),N=Math.floor(E.offset/E.limit)+1;return(0,t.createElement)("div",{className:"formipay-order-list"},(0,t.createElement)("div",{className:"formipay-orders-header"},(0,t.createElement)("h2",null,(0,t.createElement)(l,{icon:i()()}),(0,n.__)("Orders","formipay")),(0,t.createElement)("span",{className:"order-count"},p," ",(0,n.__)("orders","formipay"))),(0,t.createElement)("div",{className:"formipay-orders-filters"},(0,t.createElement)(r.SearchControl,{value:f.keyword,onChange:e=>{h("keyword",e)},placeholder:(0,n.__)("Search by order ID, customer name, email...","formipay")}),(0,t.createElement)(r.SelectControl,{value:f.status,options:Object.entries(v).map(([e,t])=>({value:e,label:t})),onChange:e=>h("status",e),label:(0,n.__)("Status","formipay")}),(0,t.createElement)("input",{type:"date",value:f.date_from,onChange:e=>h("date_from",e.target.value),className:"formipay-date-input"}),(0,t.createElement)("input",{type:"date",value:f.date_to,onChange:e=>h("date_to",e.target.value),className:"formipay-date-input"}),(f.keyword||f.status||f.date_from||f.date_to)&&(0,t.createElement)(r.Button,{variant:"secondary",onClick:()=>{_({keyword:"",status:"",date_from:"",date_to:""}),b({limit:20,offset:0})}},(0,n.__)("Clear Filters","formipay"))),(0,t.createElement)("div",{className:"formipay-orders-table-wrapper"},s?(0,t.createElement)("div",{className:"formipay-loading"},(0,t.createElement)("span",{className:"spinner is-active"})):0===o.length?(0,t.createElement)("div",{className:"formipay-no-results"},(0,t.createElement)("p",null,(0,n.__)("No orders found","formipay"))):(0,t.createElement)(t.Fragment,null,(0,t.createElement)("table",{className:"formipay-orders-table wp-list-table widefat fixed striped"},(0,t.createElement)("thead",null,(0,t.createElement)("tr",null,(0,t.createElement)("th",null,(0,n.__)("ID","formipay")),(0,t.createElement)("th",null,(0,n.__)("Date","formipay")),(0,t.createElement)("th",null,(0,n.__)("Customer","formipay")),(0,t.createElement)("th",null,(0,n.__)("Total","formipay")),(0,t.createElement)("th",null,(0,n.__)("Status","formipay")),(0,t.createElement)("th",null,(0,n.__)("Actions","formipay")))),(0,t.createElement)("tbody",null,o.map(a=>(0,t.createElement)(y,{key:a.id,order:a,onSelect:()=>e?.(a.id)})))),k>1&&(0,t.createElement)("div",{className:"formipay-pagination"},(0,t.createElement)(r.Button,{variant:"secondary",disabled:1===N,onClick:()=>w(E.offset-E.limit)},(0,n.__)("Previous","formipay")),(0,t.createElement)("span",{className:"pagination-info"},(0,n.__)("Page","formipay")," ",N," ",(0,n.__)("of","formipay")," ",k),(0,t.createElement)(r.Button,{variant:"secondary",disabled:N===k,onClick:()=>w(E.offset+E.limit)},(0,n.__)("Next","formipay"))))))}const E=window.wp["icons/build/arrowLeft"];var b=e.n(E);const g=window.wp["icons/build/trash"];var h=e.n(g);const w=["on-hold","payment-confirm","in-progress","shipping","completed"],v={"on-hold":(0,n.__)("On Hold","formipay"),"payment-confirm":(0,n.__)("Payment Confirmed","formipay"),"in-progress":(0,n.__)("In Progress","formipay"),shipping:(0,n.__)("Shipping","formipay"),completed:(0,n.__)("Completed","formipay"),failed:(0,n.__)("Failed","formipay"),refunded:(0,n.__)("Refunded","formipay"),cancelled:(0,n.__)("Cancelled","formipay")};function k({orderId:e}){const[r,l]=(0,a.useState)([]);return(0,a.useEffect)(()=>{const e=[{status:"on-hold",date:(new Date).toISOString(),note:(0,n.__)("Order placed","formipay")}];l(e)},[e]),(0,t.createElement)("div",{className:"formipay-order-timeline"},(0,t.createElement)("h3",null,(0,n.__)("Order Timeline","formipay")),(0,t.createElement)("div",{className:"timeline-progress"},w.map((e,a)=>(0,t.createElement)("div",{key:e,className:`timeline-step ${0===a?"first":""} ${a===w.length-1?"last":""}`},(0,t.createElement)("div",{className:"timeline-dot"}),a(0,t.createElement)("li",{key:a},(0,t.createElement)("span",{className:"event-status"},v[e.status]||e.status),(0,t.createElement)("span",{className:"event-date"},new Date(e.date).toLocaleString()),e.note&&(0,t.createElement)("span",{className:"event-note"},e.note))))))}const N=window.wp["icons/build/bell"];var S=e.n(N);const C=window.wp["icons/build/message"];var D=e.n(C);function A(){const e=[{id:1,type:"email",recipient:"customer@example.com",subject:"Order Confirmation",status:"sent",date:(new Date).toISOString()}],a=e=>{switch(e){case"email":default:return S()();case"sms":case"whatsapp":return D()()}};return(0,t.createElement)("div",{className:"formipay-notification-log"},(0,t.createElement)("h3",null,(0,t.createElement)(l,{icon:S()(),size:18}),(0,n.__)("Notification Log","formipay")),0===e.length?(0,t.createElement)("p",{className:"no-logs"},(0,n.__)("No notifications sent yet","formipay")):(0,t.createElement)("ul",{className:"notification-list"},e.map(e=>(0,t.createElement)("li",{key:e.id,className:`notification-item ${e.status}`},(0,t.createElement)("div",{className:"notification-icon"},(0,t.createElement)(l,{icon:a(e.type),size:20})),(0,t.createElement)("div",{className:"notification-content"},(0,t.createElement)("div",{className:"notification-header"},(0,t.createElement)("span",{className:"notification-type"},e.type.toUpperCase()),(0,t.createElement)("span",{className:"notification-status"},e.status)),(0,t.createElement)("div",{className:"notification-details"},(0,t.createElement)("strong",null,e.subject||e.type),(0,t.createElement)("span",{className:"notification-recipient"},(0,n.__)("To:","formipay")," ",e.recipient)),(0,t.createElement)("div",{className:"notification-date"},new Date(e.date).toLocaleString()))))))}const I=[{value:"on-hold",label:(0,n.__)("On Hold","formipay")},{value:"payment-confirm",label:(0,n.__)("Payment Confirmed","formipay")},{value:"in-progress",label:(0,n.__)("In Progress","formipay")},{value:"shipping",label:(0,n.__)("Shipping","formipay")},{value:"completed",label:(0,n.__)("Completed","formipay")},{value:"failed",label:(0,n.__)("Failed","formipay")},{value:"refunded",label:(0,n.__)("Refunded","formipay")},{value:"cancelled",label:(0,n.__)("Cancelled","formipay")}];function x({orderId:e,onBack:o}){const[i,c]=(0,a.useState)(null),[s,d]=(0,a.useState)(!0),[p,u]=(0,a.useState)(!1),[f,y]=(0,a.useState)(""),_=(0,a.useCallback)(()=>{d(!0),(e=>m("formipay-get-order",{order_id:e}))(e).then(e=>{e.data&&(c(e.data),y(e.data.status))}).catch(e=>{console.error("Load order error:",e)}).finally(()=>{d(!1)})},[e]);return(0,a.useEffect)(()=>{_()},[_]),s?(0,t.createElement)("div",{className:"formipay-order-detail"},(0,t.createElement)("div",{className:"formipay-loading"},(0,t.createElement)("span",{className:"spinner is-active"}))):i?(0,t.createElement)("div",{className:"formipay-order-detail"},(0,t.createElement)("div",{className:"formipay-detail-header"},(0,t.createElement)(r.Button,{variant:"secondary",onClick:o},(0,t.createElement)(l,{icon:b()(),size:16}),(0,n.__)("Back","formipay")),(0,t.createElement)("h1",null,(0,n.__)("Order","formipay")," #",i.id),(0,t.createElement)("div",{className:"header-actions"},(0,t.createElement)(r.Button,{variant:"secondary",isDestructive:!0,onClick:()=>{var t;confirm((0,n.__)("Are you sure you want to delete this order?","formipay"))&&(t=[e],m("formipay-bulk-delete-order",{ids:t})).then(e=>{e.success&&o?.()}).catch(e=>{console.error("Delete order error:",e)})}},(0,t.createElement)(l,{icon:h()(),size:16}),(0,n.__)("Delete","formipay")))),(0,t.createElement)("div",{className:"formipay-detail-content"},(0,t.createElement)("div",{className:"formipay-detail-main"},(0,t.createElement)("div",{className:"formipay-detail-card"},(0,t.createElement)("h3",null,(0,n.__)("Order Details","formipay")),(0,t.createElement)("dl",{className:"detail-list"},(0,t.createElement)("div",null,(0,t.createElement)("dt",null,(0,n.__)("Status","formipay")),(0,t.createElement)("dd",null,(0,t.createElement)(r.SelectControl,{value:f,options:I,onChange:y,disabled:p}),f!==i.status&&(0,t.createElement)(r.Button,{variant:"primary",size:"small",onClick:()=>{f&&f!==i.status&&(u(!0),((e,t)=>m("formipay-update-order-status",{order_id:e,status:t}))(e,f).then(e=>{(e.success||e.data?.valid)&&_()}).catch(e=>{console.error("Update status error:",e)}).finally(()=>{u(!1)}))},disabled:p,isBusy:p},p?(0,n.__)("Updating...","formipay"):(0,n.__)("Update Status","formipay")))),(0,t.createElement)("div",null,(0,t.createElement)("dt",null,(0,n.__)("Date Created","formipay")),(0,t.createElement)("dd",null,(E=i.created_date)?new Date(E).toLocaleString():"-")),(0,t.createElement)("div",null,(0,t.createElement)("dt",null,(0,n.__)("Form ID","formipay")),(0,t.createElement)("dd",null,i.form_id)),(0,t.createElement)("div",null,(0,t.createElement)("dt",null,(0,n.__)("Payment Gateway","formipay")),(0,t.createElement)("dd",null,i.payment_gateway||"-")))),(0,t.createElement)("div",{className:"formipay-detail-card"},(0,t.createElement)("h3",null,(0,n.__)("Items","formipay")),(0,t.createElement)("table",{className:"items-table"},(0,t.createElement)("thead",null,(0,t.createElement)("tr",null,(0,t.createElement)("th",null,(0,n.__)("Item","formipay")),(0,t.createElement)("th",null,(0,n.__)("Qty","formipay")),(0,t.createElement)("th",null,(0,n.__)("Subtotal","formipay")))),(0,t.createElement)("tbody",null,i.items?.map((e,a)=>(0,t.createElement)("tr",{key:a},(0,t.createElement)("td",null,(0,t.createElement)("strong",null,e.item),e.description&&(0,t.createElement)("small",null,e.description)),(0,t.createElement)("td",null,e.qty||1),(0,t.createElement)("td",null,e.subtotal_formatted||e.subtotal)))||(0,t.createElement)("tr",null,(0,t.createElement)("td",{colSpan:"3",className:"text-center"},(0,n.__)("No items","formipay")))),(0,t.createElement)("tfoot",null,(0,t.createElement)("tr",null,(0,t.createElement)("td",{colSpan:"2"},(0,t.createElement)("strong",null,(0,n.__)("Total","formipay"))),(0,t.createElement)("td",null,(0,t.createElement)("strong",null,i.total_formatted||i.total))))))),(0,t.createElement)("div",{className:"formipay-detail-sidebar"},(0,t.createElement)("div",{className:"formipay-detail-card"},(0,t.createElement)("h3",null,(0,n.__)("Customer Information","formipay")),i.form_data?(0,t.createElement)("dl",{className:"customer-info"},Object.entries(i.form_data).map(([e,a])=>["payment","payment_gateway","coupon_code","qty"].includes(e)?null:(0,t.createElement)("div",{key:e},(0,t.createElement)("dt",null,e.replace(/_/g," ")),(0,t.createElement)("dd",null,a?.value||a||"-")))):(0,t.createElement)("p",{className:"no-data"},(0,n.__)("No customer data available","formipay"))),(0,t.createElement)(k,{orderId:e}),(0,t.createElement)(A,null)))):(0,t.createElement)("div",{className:"formipay-order-detail"},(0,t.createElement)("div",{className:"formipay-error"},(0,t.createElement)("p",null,(0,n.__)("Order not found","formipay")),(0,t.createElement)(r.Button,{variant:"secondary",onClick:o},(0,t.createElement)(l,{icon:b()(),size:16}),(0,n.__)("Back to Orders","formipay"))));var E}const P=window.Swal;function O({initialData:e=[],columns:l,filterOptions:o=null,statusCounts:i=null,searchable:c=!0,searchPlaceholder:s=(0,n.__)("Search...","formipay"),sortable:m=!0,defaultSort:d={id:"ID",desc:!0},selectable:p=!0,pagination:u=!0,pageSize:f=10,pageSizeOptions:y=[10,20,50,100],actions:_={addNew:!1,bulkDelete:!0,inline:!0},emptyMessage:E=(0,n.__)("No items found","formipay"),ajaxUrl:b,nonce:g,tableAction:h,deleteAction:w,duplicateAction:v}){const[k,N]=(0,a.useState)(e),[S,C]=(0,a.useState)(!0),[D,A]=(0,a.useState)(0),[I,x]=(0,a.useState)("all"),[O,T]=(0,a.useState)(""),[j,U]=(0,a.useState)(d.id||"ID"),[$,B]=(0,a.useState)(d.desc?"desc":"asc"),[L,F]=(0,a.useState)(1),[M,R]=(0,a.useState)(f),[z,J]=(0,a.useState)(new Set),[q,H]=(0,a.useState)(!1),[X,V]=(0,a.useState)(!1),[Z,G]=(0,a.useState)(""),K=h.replace("formipay-tabledata-",""),Q=_.bulkDelete?.action||`formipay-bulk-delete-${K}`,W=w||`formipay-delete-${K}`,Y=v||`formipay-duplicate-${K}`,ee=(0,a.useCallback)(async()=>{C(!0);const e=new URLSearchParams({action:h,_wpnonce:g,limit:M.toString(),offset:((L-1)*M).toString()});o&&"all"!==I&&e.append(o.key,I),O&&e.append("search",O),e.append("orderby",j),e.append("sort",$);try{const t=await fetch(`${b}?${e.toString()}`,{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:e}),a=await t.json(),n=a.data?.results||a.results||a.data||[];N(n),A(a.total||n.length)}catch(e){console.error("Load data error:",e)}finally{C(!1)}},[b,g,h,M,L,I,O,j,$,o]);return(0,a.useEffect)(()=>{ee()},[ee]),(0,a.useEffect)(()=>{const e=setTimeout(()=>{null!==O&&F(1)},500);return()=>clearTimeout(e)},[O]),(0,t.createElement)("div",{className:"formipay-data-table-wrapper"},(0,t.createElement)("div",{className:"formipay-table-toolbar"},_.addNew&&(0,t.createElement)(r.Button,{variant:"primary",onClick:()=>V(!0)},_.addNew.label||(0,n.__)("+ Add New","formipay")),_.bulkDelete&&p&&z.size>0&&(0,t.createElement)(r.Button,{variant:"secondary",isDestructive:!0,onClick:async()=>{0!==z.size&&(await P.fire({icon:"info",html:(0,n.__)("Do you want to delete the selected item(s)?","formipay"),showCancelButton:!0,confirmButtonText:(0,n.__)("Confirm","formipay"),cancelButtonText:(0,n.__)("Cancel","formipay")})).isConfirmed&&(await fetch(`${b}?action=${Q}`,{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({ids:Array.from(z),_wpnonce:g})}),J(new Set),H(!1),ee(),P.fire({title:(0,n.__)("Done!","formipay"),html:(0,n.__)("Items deleted successfully.","formipay"),icon:"success"}))}},(0,n.__)("Delete Selected","formipay")," (",z.size,")"),c&&(0,t.createElement)(r.TextControl,{placeholder:s,value:O,onChange:T,className:"formipay-table-search"}),m&&(0,t.createElement)(r.SelectControl,{value:`${j}-${$}`,options:[{label:(0,n.__)("ID ↓","formipay"),value:"ID-desc"},{label:(0,n.__)("ID ↑","formipay"),value:"ID-asc"},{label:(0,n.__)("Date ↓","formipay"),value:"date-desc"},{label:(0,n.__)("Date ↑","formipay"),value:"date-asc"},{label:(0,n.__)("Title A-Z","formipay"),value:"title-asc"},{label:(0,n.__)("Title Z-A","formipay"),value:"title-desc"}],onChange:e=>{const[t,a]=e.split("-");U(t),B(a)}})),o&&(0,t.createElement)("div",{className:"formipay-filter-tabs"},o.options.map(e=>(0,t.createElement)("button",{key:e.value,className:"filter-tab "+(I===e.value?"active":""),onClick:()=>{return t=e.value,x(t),void F(1);var t}},e.label,i&&(0,t.createElement)("span",{className:"count"},i[e.value]||0)))),(0,t.createElement)("div",{className:"formipay-table-container"},S?(0,t.createElement)("div",{className:"formipay-table-loading"},(0,t.createElement)(r.Spinner,null)):0===k.length?(0,t.createElement)("div",{className:"formipay-table-empty"},E):(0,t.createElement)("table",{className:"formipay-table wp-list-table widefat fixed striped"},(0,t.createElement)("thead",null,(0,t.createElement)("tr",null,p&&(0,t.createElement)("th",{className:"column-select"},(0,t.createElement)("input",{type:"checkbox",checked:q,onChange:()=>{J(q?new Set:new Set(k.map(e=>e.ID||e.id))),H(!q)}})),l.map(e=>(0,t.createElement)("th",{key:e.key,className:`column-${e.key}`},e.label)),_.inline&&(0,t.createElement)("th",{className:"column-actions"},(0,n.__)("Actions","formipay")))),(0,t.createElement)("tbody",null,k.map((e,a)=>{const r=e.ID||e.id;return(0,t.createElement)("tr",{key:a,className:"formipay-table-row"},p&&(0,t.createElement)("td",null,(0,t.createElement)("input",{type:"checkbox",checked:z.has(r),onChange:()=>(e=>{const t=new Set(z);t.has(e)?t.delete(e):t.add(e),J(t),H(!1)})(r)})),l.map(a=>(0,t.createElement)("td",{key:a.key},a.render?a.render(e):e[a.key])),_.inline&&(0,t.createElement)("td",{className:"column-actions"},(0,t.createElement)("a",{href:`${window.formipayAdmin?.siteUrl||""}/wp-admin/post.php?post=${r}&action=edit`},(0,n.__)("Edit","formipay"))," | ",(0,t.createElement)("span",{className:"row-actions",style:{visibility:"hidden"}},(0,t.createElement)("button",{className:"button-link delete",onClick:e=>{e.preventDefault(),e.stopPropagation(),(async e=>{(await P.fire({icon:"info",html:(0,n.__)("Do you want to delete this item?","formipay"),showCancelButton:!0,confirmButtonText:(0,n.__)("Delete Permanently","formipay"),cancelButtonText:(0,n.__)("Cancel","formipay")})).isConfirmed&&(await fetch(`${b}?action=${W}`,{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({id:e,_wpnonce:g})}),ee())})(r)}},(0,n.__)("Delete","formipay"))," | ",(0,t.createElement)("button",{className:"button-link duplicate",onClick:e=>{e.preventDefault(),e.stopPropagation(),(async e=>{(await P.fire({icon:"info",html:(0,n.__)("Do you want to duplicate this item?","formipay"),showCancelButton:!0,confirmButtonText:(0,n.__)("Confirm","formipay"),cancelButtonText:(0,n.__)("Cancel","formipay")})).isConfirmed&&(await fetch(`${b}?action=${Y}`,{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({id:e,_wpnonce:g})}),ee())})(r)}},(0,n.__)("Duplicate","formipay")))))})))),u&&D>M&&(0,t.createElement)("div",{className:"formipay-table-pagination"},(0,t.createElement)("div",{className:"pagination-info"},(0,n.__)("Showing","formipay")," ",(L-1)*M+1," - ",Math.min(L*M,D)," ",(0,n.__)("of","formipay")," ",D),(0,t.createElement)("div",{className:"pagination-controls"},(0,t.createElement)(r.Button,{variant:"secondary",disabled:1===L,onClick:()=>F(1)},"««"),(0,t.createElement)(r.Button,{variant:"secondary",disabled:1===L,onClick:()=>F(L-1)},"‹"),(0,t.createElement)("span",{className:"page-info"},(0,n.__)("Page","formipay")," ",L," ",(0,n.__)("of","formipay")," ",Math.ceil(D/M)),(0,t.createElement)(r.Button,{variant:"secondary",disabled:L>=Math.ceil(D/M),onClick:()=>F(L+1)},"›"),(0,t.createElement)(r.Button,{variant:"secondary",disabled:L>=Math.ceil(D/M),onClick:()=>F(Math.ceil(D/M))},"»"),(0,t.createElement)(r.SelectControl,{value:M.toString(),options:y.map(e=>({label:e.toString(),value:e.toString()})),onChange:e=>{R(parseInt(e)),F(1)}}))),_.addNew&&(0,t.createElement)(r.Modal,{title:_.addNew.label||(0,n.__)("Add New","formipay"),open:X,onRequestClose:()=>{V(!1),G("")},isDismissible:!0,focusOnMount:"firstContentElement"},(0,t.createElement)(r.TextControl,{__next40pxDefaultSize:!0,__nextHasNoMarginBottom:!0,label:(0,n.__)("Title","formipay"),value:Z,onChange:G,autoFocus:!0}),(0,t.createElement)("div",{className:"formipay-modal-actions"},(0,t.createElement)(r.Button,{variant:"secondary",onClick:()=>{V(!1),G("")}},(0,n.__)("Cancel","formipay")),(0,t.createElement)(r.Button,{variant:"primary",onClick:async()=>{if(!Z.trim())return void P.fire({html:(0,n.__)("Title is required.","formipay"),icon:"error"});const e=_.addNew.action,t=await fetch(`${b}?action=${e}`,{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({title:Z,_wpnonce:g})}),a=await t.json();a.success?(V(!1),G(""),a.data.edit_post_url?window.location.href=a.data.edit_post_url:ee()):P.fire({html:a.data.message||(0,n.__)("Error creating item.","formipay"),icon:"error"})}},(0,n.__)("Create","formipay")))))}const T=window.wp["icons/build/minus"];var j=e.n(T);const U=window.wp["icons/build/eyeClosed"];var $=e.n(U);const B=window.wp["icons/build/eyeOpened"];var L=e.n(B);function F({productId:e,productDetails:r}){const[l,o]=(0,a.useState)([]),[i,c]=(0,a.useState)([]),[s,m]=(0,a.useState)(!0),d=(0,a.useRef)(null),p=(0,a.useRef)(null),u=(0,a.useRef)(null),f=(0,a.useCallback)(()=>String(r?.default_currency||"").split(":::")[0]||r?.default_currency_code||"USD",[r]),y=(0,a.useCallback)(e=>{const t=r?.global_currencies||[],a=String(e).split(":::")[0],n=t.find(e=>String(e.currency).split(":::")[0]===a);return parseInt(n?.decimal_digits,10)||2},[r]),_=(0,a.useCallback)(()=>{const e=r?.global_selected_currencies||{};let t=Object.keys(e);if(!t.length){const e=r?.default_currency||"";e&&(t=[e])}return t.map(e=>{const t=String(e).split(":::")[0];return{currency:e,regular_price:"",sale_price:"",currency_decimal_digits:y(t)}})},[r,y]),E=(0,a.useCallback)(e=>{const t={...e};void 0===t.expanded&&(t.expanded=!1);const a=_(),n=e=>String(e).split(":::")[0];if(Array.isArray(t.prices)){const e=new Set(a.map(e=>n(e.currency)));t.prices=t.prices.filter(t=>t&&e.has(n(t.currency))),a.forEach(e=>{const a=n(e.currency);t.prices.some(e=>n(e.currency)===a)||t.prices.push(JSON.parse(JSON.stringify(e)))})}else t.prices=JSON.parse(JSON.stringify(a));Array.isArray(t.prices)&&0!==t.prices.length||(t.prices=JSON.parse(JSON.stringify(a))),t.prices.forEach(e=>{const t=n(e.currency);e.currency_decimal_digits=y(t),void 0!==e.regular_price&&null!==e.regular_price||(e.regular_price=""),void 0!==e.sale_price&&null!==e.sale_price||(e.sale_price="")});const r=f();return t.prices.sort((e,t)=>n(e.currency)===r?-1:n(t.currency)===r?1:0),delete t.price,delete t.sale,t},[_,y,f]),b=(0,a.useCallback)(()=>new Promise(e=>{let t=0;const a=setInterval(()=>{const n=document.querySelector('input[name="product_variation_attributes"]');if(n&&n.value)try{const t=JSON.parse(n.value);clearInterval(a),e(Array.isArray(t)?t:[])}catch(t){clearInterval(a),e([])}else++t>=100&&(clearInterval(a),e([]))},50)}),[]),g=(0,a.useCallback)(e=>{const t=e.map(e=>(e.attribute_variations||[]).map(e=>({label:e.variation_label}))).filter(e=>e.length>0);return t.length?t.reduce((e,t)=>e.flatMap(e=>t.map(t=>[].concat(e,t)))).map(e=>{const t=Array.isArray(e)?e.map(e=>e.label):[e.label];return{key:t.join("||"),label:t.join(" - ")}}):[]},[]),h=(0,a.useCallback)(async()=>{try{const e=await b();if(!e.length)return o([]),void w([]);const t=g(e).filter(e=>!i.includes(e.key)).map(e=>{const t=l.find(t=>t.key===e.key);return t?Object.assign(E(t),{name:e.label}):E({key:e.key,name:e.label,stock:"",weight:0,active:!0})});o(t),w(t)}catch(e){console.warn("Attributes not available; initializing empty variations."),o([]),w([])}},[b,g,i,l,E]),w=(0,a.useCallback)(e=>{d.current&&(d.current.value=JSON.stringify(e||[]))},[]),v=(0,a.useCallback)(async()=>{if(e)try{const t=new FormData;t.append("action","get_product_variables"),t.append("post_id",e),t.append("_wpnonce",window.formipayAdmin?.nonce||"");const a=await fetch(window.formipayAdmin?.ajaxUrl||"/wp-admin/admin-ajax.php",{method:"POST",credentials:"same-origin",body:t}),n=await a.json();if(n.success&&Array.isArray(n.data)&&n.data.length){const e=n.data.map(e=>E(e));o(e),c([]),w(e)}else await h()}catch{await h()}else await h()},[e,E,h,w]),k=(0,a.useCallback)(()=>{const e=()=>{setTimeout(()=>{h()},200)},t=document.querySelector('input[name="product_variation_attributes"]');if(t){t.addEventListener("input",e),t.addEventListener("change",e);const a=new MutationObserver(e);a.observe(t,{attributes:!0,attributeFilter:["value"]}),u.current=a,p.current=setInterval(()=>{const t=document.querySelector('input[name="product_variation_attributes"]');t&&t.value!==d.current?.value&&e()},300)}return()=>{u.current&&u.current.disconnect(),p.current&&clearInterval(p.current)}},[h]);(0,a.useEffect)(()=>{const e=r?.multicurrency,t=r?.global_selected_currencies||{},a=Object.keys(t).length;return m(!e||a<=1),v(),k()},[r,v,k]);const N=(0,a.useCallback)((e,t,a,n)=>{const r=[...l];r[e].prices[t][a]=n,o(r),w(r)},[l,w]),S=(0,a.useCallback)(e=>{const t=[...l];t[e].expanded=!t[e].expanded,o(t)},[l]),C=(0,a.useCallback)((e,t,a)=>{const n=[...l];n[e][t]=a,o(n),w(n)},[l,w]),D=(0,a.useCallback)(e=>{const t=l[e],a=[...i,t.key];c(a);const n=l.filter((t,a)=>a!==e);o(n),w(n)},[l,i,w]),A=(0,a.useCallback)(()=>{const e=f();for(const t of l){const a=t.prices?.find(t=>String(t.currency).split(":::")[0]===e);if(!a||!a.regular_price)return{currencyCode:e,rowLabel:t.name}}return null},[l,f]);return(0,a.useEffect)(()=>{const e=document.getElementById("post");if(!e)return;const t=e=>{const t=A();if(t){e.preventDefault(),e.stopImmediatePropagation();const a=(r?.variation_table?.error_missing_default_price||'Please fill Regular Price for default currency (%1$s) in variation "%2$s".').replace("%1$s",t.currencyCode).replace("%2$s",t.rowLabel);return alert(a),!1}};return e.addEventListener("submit",t,!0),()=>e.removeEventListener("submit",t,!0)},[A,r]),(0,t.createElement)(t.Fragment,null,(0,t.createElement)("input",{ref:d,type:"hidden",name:"product_variation_variables",value:JSON.stringify(l)}),(0,t.createElement)("table",{className:"formipay-variation-table",id:"product-variables-table"},(0,t.createElement)("thead",null,(0,t.createElement)("tr",null,(0,t.createElement)("th",null,(0,n.__)("Variation","formipay")),s?(0,t.createElement)(t.Fragment,null,(0,t.createElement)("th",null,(0,n.__)("Price","formipay")),(0,t.createElement)("th",null,(0,n.__)("Sale Price","formipay"))):null,(0,t.createElement)("th",null,(0,n.__)("Stock","formipay")),(0,t.createElement)("th",null,(0,n.__)("Weight","formipay")),(0,t.createElement)("th",null,(0,n.__)("Actions","formipay")))),(0,t.createElement)("tbody",null,l.map((e,a)=>(0,t.createElement)(M,{key:e.key,row:e,rowIndex:a,showFlatPricing:s,defaultCurrencyCode:f(),onToggleExpanded:()=>S(a),onUpdatePrice:(e,t,n)=>N(a,e,t,n),onUpdateField:(e,t)=>C(a,e,t),onDelete:()=>D(a)})))))}function M({row:e,rowIndex:a,showFlatPricing:o,defaultCurrencyCode:i,onToggleExpanded:c,onUpdatePrice:s,onUpdateField:m,onDelete:d}){return(0,t.createElement)(t.Fragment,null,(0,t.createElement)("tr",{className:"variation-row"},(0,t.createElement)("td",{className:"variation-name"},(0,t.createElement)("button",{type:"button",className:"toggle-expand",onClick:c},(0,t.createElement)(l,{icon:e.expanded?L():$(),size:16})),(0,t.createElement)("strong",null,e.name)),o?(0,t.createElement)(t.Fragment,null,(0,t.createElement)(R,{price:e.prices[0],field:"regular_price",onChange:(e,t)=>s(0,e,t)}),(0,t.createElement)(R,{price:e.prices[0],field:"sale_price",onChange:(e,t)=>s(0,e,t)})):null,(0,t.createElement)("td",{className:"variation-stock"},(0,t.createElement)(r.TextControl,{type:"number",value:e.stock,onChange:e=>m("stock",e),placeholder:"Unlimited"})),(0,t.createElement)("td",{className:"variation-weight"},(0,t.createElement)(r.TextControl,{type:"number",value:e.weight,onChange:e=>m("weight",e),step:"0.01"})),(0,t.createElement)("td",{className:"variation-actions"},(0,t.createElement)(r.Button,{variant:"secondary",size:"small",isDestructive:!0,onClick:d,icon:j()()},(0,n.__)("Delete","formipay")))),!o&&e.expanded&&(0,t.createElement)("tr",{className:"variation-details-row"},(0,t.createElement)("td",{colSpan:"5"},(0,t.createElement)("table",{className:"inner-table"},(0,t.createElement)("tbody",null,e.prices.map((e,a)=>{const n=String(e.currency).split(":::")[0]===i,r=e.currency_decimal_digits?1/Math.pow(10,e.currency_decimal_digits):.01;return(0,t.createElement)("tr",{key:a},(0,t.createElement)("td",{className:"currency-name"},e.currency,n&&(0,t.createElement)("span",{className:"required"},"*")),(0,t.createElement)("td",null,(0,t.createElement)("input",{type:"number",value:e.regular_price,onChange:e=>s(a,"regular_price",e.target.value),step:r,placeholder:"Regular Price",required:n})),(0,t.createElement)("td",null,(0,t.createElement)("input",{type:"number",value:e.sale_price,onChange:e=>s(a,"sale_price",e.target.value),step:r,placeholder:"Sale Price"})))}))))))}function R({price:e,field:a,onChange:n}){const r=e.currency_decimal_digits?1/Math.pow(10,e.currency_decimal_digits):.01;return(0,t.createElement)("td",{className:"price-cell"},(0,t.createElement)("input",{type:"number",value:e[a],onChange:e=>n(a,e.target.value),step:r,placeholder:"Auto"}))}const z=window.Swal,J={orders:function({initialData:e}){const[n,r]=(0,a.useState)(null);return n?(0,t.createElement)(x,{orderId:n,onBack:()=>r(null)}):(0,t.createElement)(_,{onSelectOrder:e=>r(e)})},customers:function(){const e=[{key:"id",label:(0,n.__)("ID","formipay"),render:e=>(0,t.createElement)("strong",null,"#",e.id)},{key:"name",label:(0,n.__)("Name","formipay"),render:e=>e.name||e.full_name||"-"},{key:"email",label:(0,n.__)("Email","formipay")},{key:"phone",label:(0,n.__)("Phone","formipay"),render:e=>e.phone||e.whatsapp||"-"},{key:"total_order",label:(0,n.__)("Total Orders","formipay"),render:e=>e.total_order||e.total_orders||0},{key:"created_date",label:(0,n.__)("Date","formipay"),render:e=>{const t=e.created_date||e.date;return t?new Date(t).toLocaleDateString():"-"}}];return(0,t.createElement)("div",{className:"formipay-page-customers"},(0,t.createElement)("div",{className:"formipay-page-header"},(0,t.createElement)("h1",null,(0,n.__)("Customers","formipay"))),(0,t.createElement)(O,{columns:e,ajaxUrl:window.formipayAdmin?.ajaxUrl||"/wp-admin/admin-ajax.php",nonce:window.formipayAdmin?.nonce||"",tableAction:"formipay-tabledata-customers",selectable:!1,inline:!1,emptyMessage:(0,n.__)("No customers found","formipay")}))},products:function(){const[e,r]=(0,a.useState)(!1),[l,o]=(0,a.useState)(null);if(e&&l)return(0,t.createElement)("div",{className:"formipay-page-products"},(0,t.createElement)("div",{className:"formipay-page-header"},(0,t.createElement)("button",{type:"button",className:"button button-secondary",onClick:()=>r(!1)},"← ",(0,n.__)("Back to Products","formipay")),(0,t.createElement)("h1",null,(0,n.__)("Edit Product","formipay"))),(0,t.createElement)("div",{className:"formipay-product-editor"},(0,t.createElement)(F,{productId:l,productDetails:{}})));const i=[{key:"ID",label:(0,n.__)("ID","formipay"),render:e=>(0,t.createElement)("strong",null,"#",e.ID)},{key:"title",label:(0,n.__)("Title","formipay"),render:e=>(0,t.createElement)(t.Fragment,null,(0,t.createElement)("strong",null,(0,t.createElement)("button",{className:"button-link",onClick:()=>{o(e.ID),r(!0)}},e.post_title||e.title||(0,n.__)("Untitled","formipay"))),(0,t.createElement)("br",null),(0,t.createElement)("span",{className:"row-actions",style:{display:"none",visibility:"hidden"}},(0,t.createElement)("button",{className:"button-link",onClick:()=>{o(e.ID),r(!0)}},(0,n.__)("Edit Variations","formipay"))," | ",(0,t.createElement)("button",{className:"button-link delete","data-id":e.ID},(0,n.__)("Delete","formipay"))," | ",(0,t.createElement)("button",{className:"button-link duplicate","data-id":e.ID},(0,n.__)("Duplicate","formipay"))))},{key:"price",label:(0,n.__)("Price","formipay"),render:e=>{const a=e.prices||e.price;return"object"==typeof a&&null!==a?Object.entries(a).map(([e,a])=>(0,t.createElement)("div",{key:e},e,": ",a)):a||"-"}},{key:"type",label:(0,n.__)("Type","formipay"),render:e=>"physical"===(e.product_type||e.type||"digital")?(0,n.__)("Physical","formipay"):(0,n.__)("Digital","formipay")},{key:"stock",label:(0,n.__)("Stock","formipay"),render:e=>{const t=e.stock;return null===t||""===t?(0,n.__)("Unlimited","formipay"):t}},{key:"status",label:(0,n.__)("Status","formipay"),render:e=>{const a=e.post_status||e.status||"unknown",r={publish:(0,n.__)("Published","formipay"),draft:(0,n.__)("Draft","formipay")};return(0,t.createElement)("span",{className:`status-label ${a}`},r[a]||a)}}];return(0,t.createElement)("div",{className:"formipay-page-products"},(0,t.createElement)("div",{className:"formipay-page-header"},(0,t.createElement)("h1",null,(0,n.__)("Products","formipay"))),(0,t.createElement)(O,{columns:i,ajaxUrl:window.formipayAdmin?.ajaxUrl||"/wp-admin/admin-ajax.php",nonce:window.formipayAdmin?.nonce||"",tableAction:"formipay-tabledata-products",deleteAction:"formipay-delete-product",duplicateAction:"formipay-duplicate-product",filterOptions:{key:"post_status",options:[{value:"all",label:(0,n.__)("All","formipay")},{value:"publish",label:(0,n.__)("Published","formipay")},{value:"draft",label:(0,n.__)("Draft","formipay")}]},actions:{addNew:{label:(0,n.__)("+ Add New Product","formipay"),action:"formipay-create-product-post"},bulkDelete:{action:"formipay-bulk-delete-product"},inline:!0},emptyMessage:(0,n.__)("No products found","formipay")}))},forms:function(){const e=[{key:"ID",label:(0,n.__)("ID","formipay"),render:e=>(0,t.createElement)("strong",null,"#",e.ID)},{key:"title",label:(0,n.__)("Title","formipay"),render:e=>(0,t.createElement)("a",{href:`${window.formipayAdmin?.siteUrl||""}/wp-admin/post.php?post=${e.ID}&action=edit`},(0,t.createElement)("strong",null,e.title))},{key:"date",label:(0,n.__)("Date","formipay"),render:e=>{const a=new Date(e.date);return(0,t.createElement)("span",{style:{whiteSpace:"nowrap"}},a.toLocaleDateString(),(0,t.createElement)("br",null),(0,t.createElement)("span",{style:{fontSize:"smaller",color:"#646970"}},a.toLocaleTimeString()))}},{key:"status",label:(0,n.__)("Status","formipay"),render:e=>{const a=e.post_status||e.status||"unknown",r={publish:(0,n.__)("Published","formipay"),draft:(0,n.__)("Draft","formipay"),pending:(0,n.__)("Pending","formipay")};return(0,t.createElement)("span",{className:`status-label ${a}`},r[a]||a)}},{key:"shortcode",label:(0,n.__)("Shortcode","formipay"),render:e=>(0,t.createElement)(t.Fragment,null,(0,t.createElement)("input",{className:"formipay-form-shortcode",value:`[formipay form=${e.ID}]`,disabled:!0}),(0,t.createElement)("button",{className:"copy-shortcode","data-copy":`[formipay form=${e.ID}]`,onClick:e=>{const t=e.currentTarget.dataset.copy;navigator.clipboard.writeText(t).then(()=>{const t=e.currentTarget.innerHTML;e.currentTarget.innerHTML="✓ Copied",setTimeout(()=>{e.currentTarget.innerHTML=t},2e3),z.fire({icon:"success",title:(0,n.__)("Shortcode copied!","formipay"),toast:!0,position:"top-end",showConfirmButton:!1,timer:3e3,timerProgressBar:!0})})}},"📋 ",(0,n.__)("Copy","formipay")))}];return(0,t.createElement)("div",{className:"formipay-page-forms"},(0,t.createElement)("div",{className:"formipay-page-header"},(0,t.createElement)("h1",null,(0,n.__)("Forms","formipay"))),(0,t.createElement)(O,{columns:e,ajaxUrl:window.formipayAdmin?.ajaxUrl||"/wp-admin/admin-ajax.php",nonce:window.formipayAdmin?.nonce||"",tableAction:"formipay-tabledata-forms",deleteAction:"formipay-delete-form",duplicateAction:"formipay-duplicate-form",filterOptions:{key:"post_status",options:[{value:"all",label:(0,n.__)("All","formipay")},{value:"publish",label:(0,n.__)("Published","formipay")},{value:"draft",label:(0,n.__)("Draft","formipay")}]},actions:{addNew:{label:(0,n.__)("+ Add New Form","formipay"),action:"formipay-create-form-post"},bulkDelete:{action:"formipay-bulk-delete-form"},inline:!0},emptyMessage:(0,n.__)("No forms found","formipay")}))},coupons:function(){const e=[{key:"ID",label:(0,n.__)("ID","formipay"),render:e=>(0,t.createElement)("strong",null,"#",e.ID)},{key:"code",label:(0,n.__)("Coupon Code","formipay"),render:e=>(0,t.createElement)("strong",null,e.code||e.post_title)},{key:"type",label:(0,n.__)("Type","formipay"),render:e=>"percentage"===(e.coupon_type||e.type||"percentage")?(0,n.__)("%","formipay"):(0,n.__)("Fixed","formipay")},{key:"amount",label:(0,n.__)("Amount","formipay"),render:e=>e.amount||"-"},{key:"usages",label:(0,n.__)("Usages","formipay"),render:e=>e.usage_count||e.usages||0},{key:"date_limit",label:(0,n.__)("Date Limit","formipay"),render:e=>{const t=e.date_limit;return t&&"none"!==t?new Date(t).toLocaleDateString():(0,n.__)("Unlimited","formipay")}},{key:"status",label:(0,n.__)("Status","formipay"),render:e=>{const a=e.post_status||e.status||"unknown",r="on"===e.active||"publish"===a;return(0,t.createElement)("span",{className:"status-label "+(r?"publish":"draft")},r?(0,n.__)("Active","formipay"):(0,n.__)("Inactive","formipay"))}}];return(0,t.createElement)("div",{className:"formipay-page-coupons"},(0,t.createElement)("div",{className:"formipay-page-header"},(0,t.createElement)("h1",null,(0,n.__)("Coupons","formipay"))),(0,t.createElement)(O,{columns:e,ajaxUrl:window.formipayAdmin?.ajaxUrl||"/wp-admin/admin-ajax.php",nonce:window.formipayAdmin?.nonce||"",tableAction:"formipay-tabledata-coupons",deleteAction:"formipay-delete-coupon",duplicateAction:"formipay-duplicate-coupon",filterOptions:{key:"status",options:[{value:"all",label:(0,n.__)("All","formipay")},{value:"active",label:(0,n.__)("Active","formipay")},{value:"inactive",label:(0,n.__)("Inactive","formipay")}]},actions:{addNew:{label:(0,n.__)("+ Add New Coupon","formipay"),action:"formipay-create-coupon-post"},bulkDelete:{action:"formipay-bulk-delete-coupon"},inline:!0},emptyMessage:(0,n.__)("No coupons found","formipay")}))},access:function(){const e=[{key:"ID",label:(0,n.__)("ID","formipay"),render:e=>(0,t.createElement)("strong",null,"#",e.ID)},{key:"title",label:(0,n.__)("Title","formipay")},{key:"product_name",label:(0,n.__)("Product","formipay")},{key:"status",label:(0,n.__)("Status","formipay"),render:e=>{const a=e.post_status||e.status||"unknown",r={publish:(0,n.__)("Published","formipay"),draft:(0,n.__)("Draft","formipay")}[a]||a;return(0,t.createElement)("span",{className:`status-label ${a}`},r)}},{key:"date",label:(0,n.__)("Date","formipay"),render:e=>{const t=e.post_date||e.date;return t?new Date(t).toLocaleDateString():"-"}}];return(0,t.createElement)("div",{className:"formipay-page-access"},(0,t.createElement)("div",{className:"formipay-page-header"},(0,t.createElement)("h1",null,(0,n.__)("Access Items","formipay"))),(0,t.createElement)(O,{columns:e,ajaxUrl:window.formipayAdmin?.ajaxUrl||"/wp-admin/admin-ajax.php",nonce:window.formipayAdmin?.nonce||"",tableAction:"formipay-tabledata-access-items",deleteAction:"formipay-delete-access-item",duplicateAction:"formipay-duplicate-access-item",filterOptions:{key:"post_status",options:[{value:"all",label:(0,n.__)("All","formipay")},{value:"publish",label:(0,n.__)("Published","formipay")},{value:"draft",label:(0,n.__)("Draft","formipay")}]},actions:{addNew:{label:(0,n.__)("+ Add New Item","formipay"),action:"formipay-create-access-item-post"},bulkDelete:{action:"formipay-bulk-delete-access-item"},inline:!0},emptyMessage:(0,n.__)("No access items found","formipay")}))},licenses:function(){const e=[{key:"id",label:(0,n.__)("ID","formipay"),render:e=>(0,t.createElement)("strong",null,"#",e.id)},{key:"license_key",label:(0,n.__)("License Key","formipay"),render:e=>(0,t.createElement)("code",null,e.license_key||"-")},{key:"product",label:(0,n.__)("Product","formipay"),render:e=>e.product_name||e.product||"-"},{key:"order",label:(0,n.__)("Order","formipay"),render:e=>e.order_id||`#${e.order}`||"-"},{key:"email",label:(0,n.__)("Email","formipay")},{key:"status",label:(0,n.__)("Status","formipay"),render:e=>{const a=e.status||"unknown",r={active:(0,n.__)("Active","formipay"),inactive:(0,n.__)("Inactive","formipay"),expired:(0,n.__)("Expired","formipay")},l="active"===a?"publish":"expired"===a?"pending":"draft";return(0,t.createElement)("span",{className:`status-label ${l}`},r[a]||a)}}];return(0,t.createElement)("div",{className:"formipay-page-licenses"},(0,t.createElement)("div",{className:"formipay-page-header"},(0,t.createElement)("h1",null,(0,n.__)("Licenses","formipay"))),(0,t.createElement)(O,{columns:e,ajaxUrl:window.formipayAdmin?.ajaxUrl||"/wp-admin/admin-ajax.php",nonce:window.formipayAdmin?.nonce||"",tableAction:"formipay-tabledata-licenses",selectable:!1,inline:!1,emptyMessage:(0,n.__)("No licenses found","formipay")}))}};function q({page:e,initialData:n}){(0,a.useEffect)(()=>{console.log("[Formipay App] Rendering page:",e,"with data:",n)},[e,n]);const r=J[e];return r?(0,t.createElement)("div",{className:"formipay-admin-wrap"},(0,t.createElement)(r,{initialData:n})):(0,t.createElement)("div",{className:"formipay-error"},(0,t.createElement)("p",null,"Unknown page: ",e))}const H=()=>{const e=document.querySelectorAll("[data-formipay-mount]");console.log("[Formipay] Mount points found:",e.length),console.log("[Formipay] formipayAdmin data:",window.formipayAdmin),e.forEach(e=>{const n=e.dataset.formipayMount,r=window.formipayAdmin?.[n]||{};console.log("[Formipay] Mounting page:",n,"with data:",r);try{(0,a.render)((0,t.createElement)(q,{page:n,initialData:r}),e),console.log("[Formipay] Successfully mounted:",n)}catch(e){console.error("[Formipay] Failed to mount:",n,e)}})};"loading"===document.readyState?document.addEventListener("DOMContentLoaded",H):H()})(); \ No newline at end of file +(()=>{"use strict";var e={n:t=>{var a=t&&t.__esModule?()=>t.default:()=>t;return e.d(a,{a}),a},d:(t,a)=>{for(var n in a)e.o(a,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:a[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const t=window.React,a=window.wp.element,n=window.wp.i18n,r=window.wp.components,l=(0,a.forwardRef)(function({icon:e,size:t=24,...n},r){return(0,a.cloneElement)(e,{width:t,height:t,...n,ref:r})}),o=window.wp["icons/build/list"];var i=e.n(o);const c=window.formipayAdmin?.ajaxUrl||"/wp-admin/admin-ajax.php",s=window.formipayAdmin?.nonce||"";async function m(e,t={}){const a=new FormData;a.append("action",e),a.append("_wpnonce",s),Object.keys(t).forEach(e=>{"object"==typeof t[e]?a.append(e,JSON.stringify(t[e])):a.append(e,t[e])}),console.log(`[AJAX] Sending request: ${e}`,{nonce:s,data:t});try{const t=await fetch(c,{method:"POST",credentials:"same-origin",body:a});console.log(`[AJAX] Response status: ${e}`,t.status);const n=await t.json();if(console.log(`[AJAX] Response data: ${e}`,n),!t.ok||!1===n.success){const e=n.data?.message||n.message||"Request failed";throw new Error(e)}return n}catch(t){throw console.error(`AJAX error [${e}]:`,t),t}}window.formipayAdmin;const d=window.wp["icons/build/visible"];var p=e.n(d);const u={"on-hold":"#f0ad4e","payment-confirm":"#17a2b8","in-progress":"#17a2b8",shipping:"#6c757d",completed:"#28a745",failed:"#dc3545",refunded:"#6c757d",cancelled:"#dc3545"},f={"on-hold":(0,n.__)("On Hold","formipay"),"payment-confirm":(0,n.__)("Payment Confirmed","formipay"),"in-progress":(0,n.__)("In Progress","formipay"),shipping:(0,n.__)("Shipping","formipay"),completed:(0,n.__)("Completed","formipay"),failed:(0,n.__)("Failed","formipay"),refunded:(0,n.__)("Refunded","formipay"),cancelled:(0,n.__)("Cancelled","formipay")};function y({order:e,onSelect:a}){const r=u[e.status]||"#6c757d",o=f[e.status]||e.status,i=(e=>{if(e.form_data){const t=Object.values(e.form_data).find(e=>e.name&&e.name.includes("name"));return t?.value||"-"}return"-"})(e);return(0,t.createElement)("tr",{className:"formipay-order-item"},(0,t.createElement)("td",null,(0,t.createElement)("strong",null,"#",e.id)),(0,t.createElement)("td",null,(c=e.created_date)?new Date(c).toLocaleDateString():"-"),(0,t.createElement)("td",null,"-"!==i?i:(0,t.createElement)("em",null,"Unknown")),(0,t.createElement)("td",null,(0,t.createElement)("strong",null,e.total_formatted||e.total)),(0,t.createElement)("td",null,(0,t.createElement)("span",{className:"status-badge",style:{backgroundColor:r}},o)),(0,t.createElement)("td",null,(0,t.createElement)("button",{type:"button",className:"button button-small",onClick:a},(0,t.createElement)(l,{icon:p()(),size:16}),(0,n.__)("View","formipay"))));var c}function _({onSelectOrder:e}){const[o,c]=(0,a.useState)([]),[s,d]=(0,a.useState)(!0),[p,u]=(0,a.useState)(0),[f,_]=(0,a.useState)({keyword:"",status:"",date_from:"",date_to:""}),[E,b]=(0,a.useState)({limit:20,offset:0}),g=(0,a.useCallback)(()=>{d(!0),((e={})=>m("formipay-tabledata-orders",e))({keyword:f.keyword,status:f.status,date_from:f.date_from,date_to:f.date_to,limit:E.limit,offset:E.offset}).then(e=>{e.data&&(c(e.data.results||[]),u(e.data.total||0))}).catch(e=>{console.error("Load orders error:",e)}).finally(()=>{d(!1)})},[f,E]);(0,a.useEffect)(()=>{g()},[g]);const h=(e,t)=>{_({...f,[e]:t}),b({...E,offset:0})},w=e=>{b({...E,offset:e})},v={"":(0,n.__)("All Statuses","formipay"),"on-hold":(0,n.__)("On Hold","formipay"),"payment-confirm":(0,n.__)("Payment Confirmed","formipay"),"in-progress":(0,n.__)("In Progress","formipay"),shipping:(0,n.__)("Shipping","formipay"),completed:(0,n.__)("Completed","formipay"),failed:(0,n.__)("Failed","formipay"),refunded:(0,n.__)("Refunded","formipay"),cancelled:(0,n.__)("Cancelled","formipay")},k=Math.ceil(p/E.limit),N=Math.floor(E.offset/E.limit)+1;return(0,t.createElement)("div",{className:"formipay-order-list"},(0,t.createElement)("div",{className:"formipay-orders-header"},(0,t.createElement)("h2",null,(0,t.createElement)(l,{icon:i()()}),(0,n.__)("Orders","formipay")),(0,t.createElement)("span",{className:"order-count"},p," ",(0,n.__)("orders","formipay"))),(0,t.createElement)("div",{className:"formipay-orders-filters"},(0,t.createElement)(r.SearchControl,{value:f.keyword,onChange:e=>{h("keyword",e)},placeholder:(0,n.__)("Search by order ID, customer name, email...","formipay")}),(0,t.createElement)(r.SelectControl,{value:f.status,options:Object.entries(v).map(([e,t])=>({value:e,label:t})),onChange:e=>h("status",e),label:(0,n.__)("Status","formipay")}),(0,t.createElement)("input",{type:"date",value:f.date_from,onChange:e=>h("date_from",e.target.value),className:"formipay-date-input"}),(0,t.createElement)("input",{type:"date",value:f.date_to,onChange:e=>h("date_to",e.target.value),className:"formipay-date-input"}),(f.keyword||f.status||f.date_from||f.date_to)&&(0,t.createElement)(r.Button,{variant:"secondary",onClick:()=>{_({keyword:"",status:"",date_from:"",date_to:""}),b({limit:20,offset:0})}},(0,n.__)("Clear Filters","formipay"))),(0,t.createElement)("div",{className:"formipay-orders-table-wrapper"},s?(0,t.createElement)("div",{className:"formipay-loading"},(0,t.createElement)("span",{className:"spinner is-active"})):0===o.length?(0,t.createElement)("div",{className:"formipay-no-results"},(0,t.createElement)("p",null,(0,n.__)("No orders found","formipay"))):(0,t.createElement)(t.Fragment,null,(0,t.createElement)("table",{className:"formipay-orders-table wp-list-table widefat fixed striped"},(0,t.createElement)("thead",null,(0,t.createElement)("tr",null,(0,t.createElement)("th",null,(0,n.__)("ID","formipay")),(0,t.createElement)("th",null,(0,n.__)("Date","formipay")),(0,t.createElement)("th",null,(0,n.__)("Customer","formipay")),(0,t.createElement)("th",null,(0,n.__)("Total","formipay")),(0,t.createElement)("th",null,(0,n.__)("Status","formipay")),(0,t.createElement)("th",null,(0,n.__)("Actions","formipay")))),(0,t.createElement)("tbody",null,o.map(a=>(0,t.createElement)(y,{key:a.id,order:a,onSelect:()=>e?.(a.id)})))),k>1&&(0,t.createElement)("div",{className:"formipay-pagination"},(0,t.createElement)(r.Button,{variant:"secondary",disabled:1===N,onClick:()=>w(E.offset-E.limit)},(0,n.__)("Previous","formipay")),(0,t.createElement)("span",{className:"pagination-info"},(0,n.__)("Page","formipay")," ",N," ",(0,n.__)("of","formipay")," ",k),(0,t.createElement)(r.Button,{variant:"secondary",disabled:N===k,onClick:()=>w(E.offset+E.limit)},(0,n.__)("Next","formipay"))))))}const E=window.wp["icons/build/arrowLeft"];var b=e.n(E);const g=window.wp["icons/build/trash"];var h=e.n(g);const w=["on-hold","payment-confirm","in-progress","shipping","completed"],v={"on-hold":(0,n.__)("On Hold","formipay"),"payment-confirm":(0,n.__)("Payment Confirmed","formipay"),"in-progress":(0,n.__)("In Progress","formipay"),shipping:(0,n.__)("Shipping","formipay"),completed:(0,n.__)("Completed","formipay"),failed:(0,n.__)("Failed","formipay"),refunded:(0,n.__)("Refunded","formipay"),cancelled:(0,n.__)("Cancelled","formipay")};function k({orderId:e}){const[r,l]=(0,a.useState)([]);return(0,a.useEffect)(()=>{const e=[{status:"on-hold",date:(new Date).toISOString(),note:(0,n.__)("Order placed","formipay")}];l(e)},[e]),(0,t.createElement)("div",{className:"formipay-order-timeline"},(0,t.createElement)("h3",null,(0,n.__)("Order Timeline","formipay")),(0,t.createElement)("div",{className:"timeline-progress"},w.map((e,a)=>(0,t.createElement)("div",{key:e,className:`timeline-step ${0===a?"first":""} ${a===w.length-1?"last":""}`},(0,t.createElement)("div",{className:"timeline-dot"}),a(0,t.createElement)("li",{key:a},(0,t.createElement)("span",{className:"event-status"},v[e.status]||e.status),(0,t.createElement)("span",{className:"event-date"},new Date(e.date).toLocaleString()),e.note&&(0,t.createElement)("span",{className:"event-note"},e.note))))))}const N=window.wp["icons/build/bell"];var S=e.n(N);const C=window.wp["icons/build/message"];var D=e.n(C);function A(){const e=[{id:1,type:"email",recipient:"customer@example.com",subject:"Order Confirmation",status:"sent",date:(new Date).toISOString()}],a=e=>{switch(e){case"email":default:return S()();case"sms":case"whatsapp":return D()()}};return(0,t.createElement)("div",{className:"formipay-notification-log"},(0,t.createElement)("h3",null,(0,t.createElement)(l,{icon:S()(),size:18}),(0,n.__)("Notification Log","formipay")),0===e.length?(0,t.createElement)("p",{className:"no-logs"},(0,n.__)("No notifications sent yet","formipay")):(0,t.createElement)("ul",{className:"notification-list"},e.map(e=>(0,t.createElement)("li",{key:e.id,className:`notification-item ${e.status}`},(0,t.createElement)("div",{className:"notification-icon"},(0,t.createElement)(l,{icon:a(e.type),size:20})),(0,t.createElement)("div",{className:"notification-content"},(0,t.createElement)("div",{className:"notification-header"},(0,t.createElement)("span",{className:"notification-type"},e.type.toUpperCase()),(0,t.createElement)("span",{className:"notification-status"},e.status)),(0,t.createElement)("div",{className:"notification-details"},(0,t.createElement)("strong",null,e.subject||e.type),(0,t.createElement)("span",{className:"notification-recipient"},(0,n.__)("To:","formipay")," ",e.recipient)),(0,t.createElement)("div",{className:"notification-date"},new Date(e.date).toLocaleString()))))))}const I=[{value:"on-hold",label:(0,n.__)("On Hold","formipay")},{value:"payment-confirm",label:(0,n.__)("Payment Confirmed","formipay")},{value:"in-progress",label:(0,n.__)("In Progress","formipay")},{value:"shipping",label:(0,n.__)("Shipping","formipay")},{value:"completed",label:(0,n.__)("Completed","formipay")},{value:"failed",label:(0,n.__)("Failed","formipay")},{value:"refunded",label:(0,n.__)("Refunded","formipay")},{value:"cancelled",label:(0,n.__)("Cancelled","formipay")}];function x({orderId:e,onBack:o}){const[i,c]=(0,a.useState)(null),[s,d]=(0,a.useState)(!0),[p,u]=(0,a.useState)(!1),[f,y]=(0,a.useState)(""),_=(0,a.useCallback)(()=>{d(!0),(e=>m("formipay-get-order",{order_id:e}))(e).then(e=>{e.data&&(c(e.data),y(e.data.status))}).catch(e=>{console.error("Load order error:",e)}).finally(()=>{d(!1)})},[e]);return(0,a.useEffect)(()=>{_()},[_]),s?(0,t.createElement)("div",{className:"formipay-order-detail"},(0,t.createElement)("div",{className:"formipay-loading"},(0,t.createElement)("span",{className:"spinner is-active"}))):i?(0,t.createElement)("div",{className:"formipay-order-detail"},(0,t.createElement)("div",{className:"formipay-detail-header"},(0,t.createElement)(r.Button,{variant:"secondary",onClick:o},(0,t.createElement)(l,{icon:b()(),size:16}),(0,n.__)("Back","formipay")),(0,t.createElement)("h1",null,(0,n.__)("Order","formipay")," #",i.id),(0,t.createElement)("div",{className:"header-actions"},(0,t.createElement)(r.Button,{variant:"secondary",isDestructive:!0,onClick:()=>{var t;confirm((0,n.__)("Are you sure you want to delete this order?","formipay"))&&(t=[e],m("formipay-bulk-delete-order",{ids:t})).then(e=>{e.success&&o?.()}).catch(e=>{console.error("Delete order error:",e)})}},(0,t.createElement)(l,{icon:h()(),size:16}),(0,n.__)("Delete","formipay")))),(0,t.createElement)("div",{className:"formipay-detail-content"},(0,t.createElement)("div",{className:"formipay-detail-main"},(0,t.createElement)("div",{className:"formipay-detail-card"},(0,t.createElement)("h3",null,(0,n.__)("Order Details","formipay")),(0,t.createElement)("dl",{className:"detail-list"},(0,t.createElement)("div",null,(0,t.createElement)("dt",null,(0,n.__)("Status","formipay")),(0,t.createElement)("dd",null,(0,t.createElement)(r.SelectControl,{value:f,options:I,onChange:y,disabled:p}),f!==i.status&&(0,t.createElement)(r.Button,{variant:"primary",size:"small",onClick:()=>{f&&f!==i.status&&(u(!0),((e,t)=>m("formipay-update-order-status",{order_id:e,status:t}))(e,f).then(e=>{(e.success||e.data?.valid)&&_()}).catch(e=>{console.error("Update status error:",e)}).finally(()=>{u(!1)}))},disabled:p,isBusy:p},p?(0,n.__)("Updating...","formipay"):(0,n.__)("Update Status","formipay")))),(0,t.createElement)("div",null,(0,t.createElement)("dt",null,(0,n.__)("Date Created","formipay")),(0,t.createElement)("dd",null,(E=i.created_date)?new Date(E).toLocaleString():"-")),(0,t.createElement)("div",null,(0,t.createElement)("dt",null,(0,n.__)("Form ID","formipay")),(0,t.createElement)("dd",null,i.form_id)),(0,t.createElement)("div",null,(0,t.createElement)("dt",null,(0,n.__)("Payment Gateway","formipay")),(0,t.createElement)("dd",null,i.payment_gateway||"-")))),(0,t.createElement)("div",{className:"formipay-detail-card"},(0,t.createElement)("h3",null,(0,n.__)("Items","formipay")),(0,t.createElement)("table",{className:"items-table"},(0,t.createElement)("thead",null,(0,t.createElement)("tr",null,(0,t.createElement)("th",null,(0,n.__)("Item","formipay")),(0,t.createElement)("th",null,(0,n.__)("Qty","formipay")),(0,t.createElement)("th",null,(0,n.__)("Subtotal","formipay")))),(0,t.createElement)("tbody",null,i.items?.map((e,a)=>(0,t.createElement)("tr",{key:a},(0,t.createElement)("td",null,(0,t.createElement)("strong",null,e.item),e.description&&(0,t.createElement)("small",null,e.description)),(0,t.createElement)("td",null,e.qty||1),(0,t.createElement)("td",null,e.subtotal_formatted||e.subtotal)))||(0,t.createElement)("tr",null,(0,t.createElement)("td",{colSpan:"3",className:"text-center"},(0,n.__)("No items","formipay")))),(0,t.createElement)("tfoot",null,(0,t.createElement)("tr",null,(0,t.createElement)("td",{colSpan:"2"},(0,t.createElement)("strong",null,(0,n.__)("Total","formipay"))),(0,t.createElement)("td",null,(0,t.createElement)("strong",null,i.total_formatted||i.total))))))),(0,t.createElement)("div",{className:"formipay-detail-sidebar"},(0,t.createElement)("div",{className:"formipay-detail-card"},(0,t.createElement)("h3",null,(0,n.__)("Customer Information","formipay")),i.form_data?(0,t.createElement)("dl",{className:"customer-info"},Object.entries(i.form_data).map(([e,a])=>["payment","payment_gateway","coupon_code","qty"].includes(e)?null:(0,t.createElement)("div",{key:e},(0,t.createElement)("dt",null,e.replace(/_/g," ")),(0,t.createElement)("dd",null,a?.value||a||"-")))):(0,t.createElement)("p",{className:"no-data"},(0,n.__)("No customer data available","formipay"))),(0,t.createElement)(k,{orderId:e}),(0,t.createElement)(A,null)))):(0,t.createElement)("div",{className:"formipay-order-detail"},(0,t.createElement)("div",{className:"formipay-error"},(0,t.createElement)("p",null,(0,n.__)("Order not found","formipay")),(0,t.createElement)(r.Button,{variant:"secondary",onClick:o},(0,t.createElement)(l,{icon:b()(),size:16}),(0,n.__)("Back to Orders","formipay"))));var E}const P=window.Swal;function O({initialData:e=[],columns:l,filterOptions:o=null,statusCounts:i=null,searchable:c=!0,searchPlaceholder:s=(0,n.__)("Search...","formipay"),sortable:m=!0,defaultSort:d={id:"ID",desc:!0},selectable:p=!0,pagination:u=!0,pageSize:f=10,pageSizeOptions:y=[10,20,50,100],actions:_={addNew:!1,bulkDelete:!0,inline:!0},emptyMessage:E=(0,n.__)("No items found","formipay"),ajaxUrl:b,nonce:g,tableAction:h,deleteAction:w,duplicateAction:v}){const[k,N]=(0,a.useState)(e),[S,C]=(0,a.useState)(!0),[D,A]=(0,a.useState)(0),[I,x]=(0,a.useState)("all"),[O,T]=(0,a.useState)(""),[j,U]=(0,a.useState)(d.id||"ID"),[$,B]=(0,a.useState)(d.desc?"desc":"asc"),[L,F]=(0,a.useState)(1),[M,R]=(0,a.useState)(f),[z,J]=(0,a.useState)(new Set),[q,H]=(0,a.useState)(!1),[X,V]=(0,a.useState)(!1),[Z,G]=(0,a.useState)(""),K=h.replace("formipay-tabledata-",""),Q=_.bulkDelete?.action||`formipay-bulk-delete-${K}`,W=w||`formipay-delete-${K}`,Y=v||`formipay-duplicate-${K}`,ee=(0,a.useCallback)(async()=>{C(!0);const e=new URLSearchParams({action:h,_wpnonce:g,limit:M.toString(),offset:((L-1)*M).toString()});o&&"all"!==I&&e.append(o.key,I),O&&e.append("search",O),e.append("orderby",j),e.append("sort",$);try{const t=await fetch(`${b}?${e.toString()}`,{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:e}),a=await t.json(),n=a.data?.results||a.results||a.data||[];N(n),A(a.total||n.length)}catch(e){console.error("Load data error:",e)}finally{C(!1)}},[b,g,h,M,L,I,O,j,$,o]);return(0,a.useEffect)(()=>{ee()},[ee]),(0,a.useEffect)(()=>{const e=setTimeout(()=>{null!==O&&F(1)},500);return()=>clearTimeout(e)},[O]),(0,t.createElement)("div",{className:"formipay-data-table-wrapper"},(0,t.createElement)("div",{className:"formipay-table-toolbar"},_.addNew&&(0,t.createElement)(r.Button,{variant:"primary",onClick:()=>V(!0)},_.addNew.label||(0,n.__)("+ Add New","formipay")),_.bulkDelete&&p&&z.size>0&&(0,t.createElement)(r.Button,{variant:"secondary",isDestructive:!0,onClick:async()=>{0!==z.size&&(await P.fire({icon:"info",html:(0,n.__)("Do you want to delete the selected item(s)?","formipay"),showCancelButton:!0,confirmButtonText:(0,n.__)("Confirm","formipay"),cancelButtonText:(0,n.__)("Cancel","formipay")})).isConfirmed&&(await fetch(`${b}?action=${Q}`,{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({ids:Array.from(z),_wpnonce:g})}),J(new Set),H(!1),ee(),P.fire({title:(0,n.__)("Done!","formipay"),html:(0,n.__)("Items deleted successfully.","formipay"),icon:"success"}))}},(0,n.__)("Delete Selected","formipay")," (",z.size,")"),c&&(0,t.createElement)(r.TextControl,{placeholder:s,value:O,onChange:T,className:"formipay-table-search"}),m&&(0,t.createElement)(r.SelectControl,{value:`${j}-${$}`,options:[{label:(0,n.__)("ID ↓","formipay"),value:"ID-desc"},{label:(0,n.__)("ID ↑","formipay"),value:"ID-asc"},{label:(0,n.__)("Date ↓","formipay"),value:"date-desc"},{label:(0,n.__)("Date ↑","formipay"),value:"date-asc"},{label:(0,n.__)("Title A-Z","formipay"),value:"title-asc"},{label:(0,n.__)("Title Z-A","formipay"),value:"title-desc"}],onChange:e=>{const[t,a]=e.split("-");U(t),B(a)}})),o&&(0,t.createElement)("div",{className:"formipay-filter-tabs"},o.options.map(e=>(0,t.createElement)("button",{key:e.value,className:"filter-tab "+(I===e.value?"active":""),onClick:()=>{return t=e.value,x(t),void F(1);var t}},e.label,i&&(0,t.createElement)("span",{className:"count"},i[e.value]||0)))),(0,t.createElement)("div",{className:"formipay-table-container"},S?(0,t.createElement)("div",{className:"formipay-table-loading"},(0,t.createElement)(r.Spinner,null)):0===k.length?(0,t.createElement)("div",{className:"formipay-table-empty"},E):(0,t.createElement)("table",{className:"formipay-table wp-list-table widefat fixed striped"},(0,t.createElement)("thead",null,(0,t.createElement)("tr",null,p&&(0,t.createElement)("th",{className:"column-select"},(0,t.createElement)("input",{type:"checkbox",checked:q,onChange:()=>{J(q?new Set:new Set(k.map(e=>e.ID||e.id))),H(!q)}})),l.map(e=>(0,t.createElement)("th",{key:e.key,className:`column-${e.key}`},e.label)),_.inline&&(0,t.createElement)("th",{className:"column-actions"},(0,n.__)("Actions","formipay")))),(0,t.createElement)("tbody",null,k.map((e,a)=>{const r=e.ID||e.id;return(0,t.createElement)("tr",{key:a,className:"formipay-table-row"},p&&(0,t.createElement)("td",null,(0,t.createElement)("input",{type:"checkbox",checked:z.has(r),onChange:()=>(e=>{const t=new Set(z);t.has(e)?t.delete(e):t.add(e),J(t),H(!1)})(r)})),l.map(a=>(0,t.createElement)("td",{key:a.key},a.render?a.render(e):e[a.key])),_.inline&&(0,t.createElement)("td",{className:"column-actions"},(0,t.createElement)("a",{href:`${window.formipayAdmin?.siteUrl||""}/wp-admin/post.php?post=${r}&action=edit`},(0,n.__)("Edit","formipay"))," | ",(0,t.createElement)("span",{className:"row-actions",style:{visibility:"hidden"}},(0,t.createElement)("button",{className:"button-link delete",onClick:e=>{e.preventDefault(),e.stopPropagation(),(async e=>{(await P.fire({icon:"info",html:(0,n.__)("Do you want to delete this item?","formipay"),showCancelButton:!0,confirmButtonText:(0,n.__)("Delete Permanently","formipay"),cancelButtonText:(0,n.__)("Cancel","formipay")})).isConfirmed&&(await fetch(`${b}?action=${W}`,{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({id:e,_wpnonce:g})}),ee())})(r)}},(0,n.__)("Delete","formipay"))," | ",(0,t.createElement)("button",{className:"button-link duplicate",onClick:e=>{e.preventDefault(),e.stopPropagation(),(async e=>{(await P.fire({icon:"info",html:(0,n.__)("Do you want to duplicate this item?","formipay"),showCancelButton:!0,confirmButtonText:(0,n.__)("Confirm","formipay"),cancelButtonText:(0,n.__)("Cancel","formipay")})).isConfirmed&&(await fetch(`${b}?action=${Y}`,{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({id:e,_wpnonce:g})}),ee())})(r)}},(0,n.__)("Duplicate","formipay")))))})))),u&&D>M&&(0,t.createElement)("div",{className:"formipay-table-pagination"},(0,t.createElement)("div",{className:"pagination-info"},(0,n.__)("Showing","formipay")," ",(L-1)*M+1," - ",Math.min(L*M,D)," ",(0,n.__)("of","formipay")," ",D),(0,t.createElement)("div",{className:"pagination-controls"},(0,t.createElement)(r.Button,{variant:"secondary",disabled:1===L,onClick:()=>F(1)},"««"),(0,t.createElement)(r.Button,{variant:"secondary",disabled:1===L,onClick:()=>F(L-1)},"‹"),(0,t.createElement)("span",{className:"page-info"},(0,n.__)("Page","formipay")," ",L," ",(0,n.__)("of","formipay")," ",Math.ceil(D/M)),(0,t.createElement)(r.Button,{variant:"secondary",disabled:L>=Math.ceil(D/M),onClick:()=>F(L+1)},"›"),(0,t.createElement)(r.Button,{variant:"secondary",disabled:L>=Math.ceil(D/M),onClick:()=>F(Math.ceil(D/M))},"»"),(0,t.createElement)(r.SelectControl,{value:M.toString(),options:y.map(e=>({label:e.toString(),value:e.toString()})),onChange:e=>{R(parseInt(e)),F(1)}}))),_.addNew&&X&&(0,t.createElement)(r.Modal,{title:_.addNew.label||(0,n.__)("Add New","formipay"),onRequestClose:()=>{V(!1),G("")},isDismissible:!0},(0,t.createElement)(r.TextControl,{__next40pxDefaultSize:!0,__nextHasNoMarginBottom:!0,label:(0,n.__)("Title","formipay"),value:Z,onChange:G,autoFocus:!0}),(0,t.createElement)("div",{className:"formipay-modal-actions"},(0,t.createElement)(r.Button,{variant:"secondary",onClick:()=>{V(!1),G("")}},(0,n.__)("Cancel","formipay")),(0,t.createElement)(r.Button,{variant:"primary",onClick:async()=>{if(!Z.trim())return void P.fire({html:(0,n.__)("Title is required.","formipay"),icon:"error"});const e=_.addNew.action,t=await fetch(`${b}?action=${e}`,{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({title:Z,_wpnonce:g})}),a=await t.json();a.success?(V(!1),G(""),a.data.edit_post_url?window.location.href=a.data.edit_post_url:ee()):P.fire({html:a.data.message||(0,n.__)("Error creating item.","formipay"),icon:"error"})}},(0,n.__)("Create","formipay")))))}const T=window.wp["icons/build/minus"];var j=e.n(T);const U=window.wp["icons/build/eyeClosed"];var $=e.n(U);const B=window.wp["icons/build/eyeOpened"];var L=e.n(B);function F({productId:e,productDetails:r}){const[l,o]=(0,a.useState)([]),[i,c]=(0,a.useState)([]),[s,m]=(0,a.useState)(!0),d=(0,a.useRef)(null),p=(0,a.useRef)(null),u=(0,a.useRef)(null),f=(0,a.useCallback)(()=>String(r?.default_currency||"").split(":::")[0]||r?.default_currency_code||"USD",[r]),y=(0,a.useCallback)(e=>{const t=r?.global_currencies||[],a=String(e).split(":::")[0],n=t.find(e=>String(e.currency).split(":::")[0]===a);return parseInt(n?.decimal_digits,10)||2},[r]),_=(0,a.useCallback)(()=>{const e=r?.global_selected_currencies||{};let t=Object.keys(e);if(!t.length){const e=r?.default_currency||"";e&&(t=[e])}return t.map(e=>{const t=String(e).split(":::")[0];return{currency:e,regular_price:"",sale_price:"",currency_decimal_digits:y(t)}})},[r,y]),E=(0,a.useCallback)(e=>{const t={...e};void 0===t.expanded&&(t.expanded=!1);const a=_(),n=e=>String(e).split(":::")[0];if(Array.isArray(t.prices)){const e=new Set(a.map(e=>n(e.currency)));t.prices=t.prices.filter(t=>t&&e.has(n(t.currency))),a.forEach(e=>{const a=n(e.currency);t.prices.some(e=>n(e.currency)===a)||t.prices.push(JSON.parse(JSON.stringify(e)))})}else t.prices=JSON.parse(JSON.stringify(a));Array.isArray(t.prices)&&0!==t.prices.length||(t.prices=JSON.parse(JSON.stringify(a))),t.prices.forEach(e=>{const t=n(e.currency);e.currency_decimal_digits=y(t),void 0!==e.regular_price&&null!==e.regular_price||(e.regular_price=""),void 0!==e.sale_price&&null!==e.sale_price||(e.sale_price="")});const r=f();return t.prices.sort((e,t)=>n(e.currency)===r?-1:n(t.currency)===r?1:0),delete t.price,delete t.sale,t},[_,y,f]),b=(0,a.useCallback)(()=>new Promise(e=>{let t=0;const a=setInterval(()=>{const n=document.querySelector('input[name="product_variation_attributes"]');if(n&&n.value)try{const t=JSON.parse(n.value);clearInterval(a),e(Array.isArray(t)?t:[])}catch(t){clearInterval(a),e([])}else++t>=100&&(clearInterval(a),e([]))},50)}),[]),g=(0,a.useCallback)(e=>{const t=e.map(e=>(e.attribute_variations||[]).map(e=>({label:e.variation_label}))).filter(e=>e.length>0);return t.length?t.reduce((e,t)=>e.flatMap(e=>t.map(t=>[].concat(e,t)))).map(e=>{const t=Array.isArray(e)?e.map(e=>e.label):[e.label];return{key:t.join("||"),label:t.join(" - ")}}):[]},[]),h=(0,a.useCallback)(async()=>{try{const e=await b();if(!e.length)return o([]),void w([]);const t=g(e).filter(e=>!i.includes(e.key)).map(e=>{const t=l.find(t=>t.key===e.key);return t?Object.assign(E(t),{name:e.label}):E({key:e.key,name:e.label,stock:"",weight:0,active:!0})});o(t),w(t)}catch(e){console.warn("Attributes not available; initializing empty variations."),o([]),w([])}},[b,g,i,l,E]),w=(0,a.useCallback)(e=>{d.current&&(d.current.value=JSON.stringify(e||[]))},[]),v=(0,a.useCallback)(async()=>{if(e)try{const t=new FormData;t.append("action","get_product_variables"),t.append("post_id",e),t.append("_wpnonce",window.formipayAdmin?.nonce||"");const a=await fetch(window.formipayAdmin?.ajaxUrl||"/wp-admin/admin-ajax.php",{method:"POST",credentials:"same-origin",body:t}),n=await a.json();if(n.success&&Array.isArray(n.data)&&n.data.length){const e=n.data.map(e=>E(e));o(e),c([]),w(e)}else await h()}catch{await h()}else await h()},[e,E,h,w]),k=(0,a.useCallback)(()=>{const e=()=>{setTimeout(()=>{h()},200)},t=document.querySelector('input[name="product_variation_attributes"]');if(t){t.addEventListener("input",e),t.addEventListener("change",e);const a=new MutationObserver(e);a.observe(t,{attributes:!0,attributeFilter:["value"]}),u.current=a,p.current=setInterval(()=>{const t=document.querySelector('input[name="product_variation_attributes"]');t&&t.value!==d.current?.value&&e()},300)}return()=>{u.current&&u.current.disconnect(),p.current&&clearInterval(p.current)}},[h]);(0,a.useEffect)(()=>{const e=r?.multicurrency,t=r?.global_selected_currencies||{},a=Object.keys(t).length;return m(!e||a<=1),v(),k()},[r,v,k]);const N=(0,a.useCallback)((e,t,a,n)=>{const r=[...l];r[e].prices[t][a]=n,o(r),w(r)},[l,w]),S=(0,a.useCallback)(e=>{const t=[...l];t[e].expanded=!t[e].expanded,o(t)},[l]),C=(0,a.useCallback)((e,t,a)=>{const n=[...l];n[e][t]=a,o(n),w(n)},[l,w]),D=(0,a.useCallback)(e=>{const t=l[e],a=[...i,t.key];c(a);const n=l.filter((t,a)=>a!==e);o(n),w(n)},[l,i,w]),A=(0,a.useCallback)(()=>{const e=f();for(const t of l){const a=t.prices?.find(t=>String(t.currency).split(":::")[0]===e);if(!a||!a.regular_price)return{currencyCode:e,rowLabel:t.name}}return null},[l,f]);return(0,a.useEffect)(()=>{const e=document.getElementById("post");if(!e)return;const t=e=>{const t=A();if(t){e.preventDefault(),e.stopImmediatePropagation();const a=(r?.variation_table?.error_missing_default_price||'Please fill Regular Price for default currency (%1$s) in variation "%2$s".').replace("%1$s",t.currencyCode).replace("%2$s",t.rowLabel);return alert(a),!1}};return e.addEventListener("submit",t,!0),()=>e.removeEventListener("submit",t,!0)},[A,r]),(0,t.createElement)(t.Fragment,null,(0,t.createElement)("input",{ref:d,type:"hidden",name:"product_variation_variables",value:JSON.stringify(l)}),(0,t.createElement)("table",{className:"formipay-variation-table",id:"product-variables-table"},(0,t.createElement)("thead",null,(0,t.createElement)("tr",null,(0,t.createElement)("th",null,(0,n.__)("Variation","formipay")),s?(0,t.createElement)(t.Fragment,null,(0,t.createElement)("th",null,(0,n.__)("Price","formipay")),(0,t.createElement)("th",null,(0,n.__)("Sale Price","formipay"))):null,(0,t.createElement)("th",null,(0,n.__)("Stock","formipay")),(0,t.createElement)("th",null,(0,n.__)("Weight","formipay")),(0,t.createElement)("th",null,(0,n.__)("Actions","formipay")))),(0,t.createElement)("tbody",null,l.map((e,a)=>(0,t.createElement)(M,{key:e.key,row:e,rowIndex:a,showFlatPricing:s,defaultCurrencyCode:f(),onToggleExpanded:()=>S(a),onUpdatePrice:(e,t,n)=>N(a,e,t,n),onUpdateField:(e,t)=>C(a,e,t),onDelete:()=>D(a)})))))}function M({row:e,rowIndex:a,showFlatPricing:o,defaultCurrencyCode:i,onToggleExpanded:c,onUpdatePrice:s,onUpdateField:m,onDelete:d}){return(0,t.createElement)(t.Fragment,null,(0,t.createElement)("tr",{className:"variation-row"},(0,t.createElement)("td",{className:"variation-name"},(0,t.createElement)("button",{type:"button",className:"toggle-expand",onClick:c},(0,t.createElement)(l,{icon:e.expanded?L():$(),size:16})),(0,t.createElement)("strong",null,e.name)),o?(0,t.createElement)(t.Fragment,null,(0,t.createElement)(R,{price:e.prices[0],field:"regular_price",onChange:(e,t)=>s(0,e,t)}),(0,t.createElement)(R,{price:e.prices[0],field:"sale_price",onChange:(e,t)=>s(0,e,t)})):null,(0,t.createElement)("td",{className:"variation-stock"},(0,t.createElement)(r.TextControl,{type:"number",value:e.stock,onChange:e=>m("stock",e),placeholder:"Unlimited"})),(0,t.createElement)("td",{className:"variation-weight"},(0,t.createElement)(r.TextControl,{type:"number",value:e.weight,onChange:e=>m("weight",e),step:"0.01"})),(0,t.createElement)("td",{className:"variation-actions"},(0,t.createElement)(r.Button,{variant:"secondary",size:"small",isDestructive:!0,onClick:d,icon:j()()},(0,n.__)("Delete","formipay")))),!o&&e.expanded&&(0,t.createElement)("tr",{className:"variation-details-row"},(0,t.createElement)("td",{colSpan:"5"},(0,t.createElement)("table",{className:"inner-table"},(0,t.createElement)("tbody",null,e.prices.map((e,a)=>{const n=String(e.currency).split(":::")[0]===i,r=e.currency_decimal_digits?1/Math.pow(10,e.currency_decimal_digits):.01;return(0,t.createElement)("tr",{key:a},(0,t.createElement)("td",{className:"currency-name"},e.currency,n&&(0,t.createElement)("span",{className:"required"},"*")),(0,t.createElement)("td",null,(0,t.createElement)("input",{type:"number",value:e.regular_price,onChange:e=>s(a,"regular_price",e.target.value),step:r,placeholder:"Regular Price",required:n})),(0,t.createElement)("td",null,(0,t.createElement)("input",{type:"number",value:e.sale_price,onChange:e=>s(a,"sale_price",e.target.value),step:r,placeholder:"Sale Price"})))}))))))}function R({price:e,field:a,onChange:n}){const r=e.currency_decimal_digits?1/Math.pow(10,e.currency_decimal_digits):.01;return(0,t.createElement)("td",{className:"price-cell"},(0,t.createElement)("input",{type:"number",value:e[a],onChange:e=>n(a,e.target.value),step:r,placeholder:"Auto"}))}const z=window.Swal,J={orders:function({initialData:e}){const[n,r]=(0,a.useState)(null);return n?(0,t.createElement)(x,{orderId:n,onBack:()=>r(null)}):(0,t.createElement)(_,{onSelectOrder:e=>r(e)})},customers:function(){const e=[{key:"id",label:(0,n.__)("ID","formipay"),render:e=>(0,t.createElement)("strong",null,"#",e.id)},{key:"name",label:(0,n.__)("Name","formipay"),render:e=>e.name||e.full_name||"-"},{key:"email",label:(0,n.__)("Email","formipay")},{key:"phone",label:(0,n.__)("Phone","formipay"),render:e=>e.phone||e.whatsapp||"-"},{key:"total_order",label:(0,n.__)("Total Orders","formipay"),render:e=>e.total_order||e.total_orders||0},{key:"created_date",label:(0,n.__)("Date","formipay"),render:e=>{const t=e.created_date||e.date;return t?new Date(t).toLocaleDateString():"-"}}];return(0,t.createElement)("div",{className:"formipay-page-customers"},(0,t.createElement)("div",{className:"formipay-page-header"},(0,t.createElement)("h1",null,(0,n.__)("Customers","formipay"))),(0,t.createElement)(O,{columns:e,ajaxUrl:window.formipayAdmin?.ajaxUrl||"/wp-admin/admin-ajax.php",nonce:window.formipayAdmin?.nonce||"",tableAction:"formipay-tabledata-customers",selectable:!1,inline:!1,emptyMessage:(0,n.__)("No customers found","formipay")}))},products:function(){const[e,r]=(0,a.useState)(!1),[l,o]=(0,a.useState)(null);if(e&&l)return(0,t.createElement)("div",{className:"formipay-page-products"},(0,t.createElement)("div",{className:"formipay-page-header"},(0,t.createElement)("button",{type:"button",className:"button button-secondary",onClick:()=>r(!1)},"← ",(0,n.__)("Back to Products","formipay")),(0,t.createElement)("h1",null,(0,n.__)("Edit Product","formipay"))),(0,t.createElement)("div",{className:"formipay-product-editor"},(0,t.createElement)(F,{productId:l,productDetails:{}})));const i=[{key:"ID",label:(0,n.__)("ID","formipay"),render:e=>(0,t.createElement)("strong",null,"#",e.ID)},{key:"title",label:(0,n.__)("Title","formipay"),render:e=>(0,t.createElement)(t.Fragment,null,(0,t.createElement)("strong",null,(0,t.createElement)("button",{className:"button-link",onClick:()=>{o(e.ID),r(!0)}},e.post_title||e.title||(0,n.__)("Untitled","formipay"))),(0,t.createElement)("br",null),(0,t.createElement)("span",{className:"row-actions",style:{display:"none",visibility:"hidden"}},(0,t.createElement)("button",{className:"button-link",onClick:()=>{o(e.ID),r(!0)}},(0,n.__)("Edit Variations","formipay"))," | ",(0,t.createElement)("button",{className:"button-link delete","data-id":e.ID},(0,n.__)("Delete","formipay"))," | ",(0,t.createElement)("button",{className:"button-link duplicate","data-id":e.ID},(0,n.__)("Duplicate","formipay"))))},{key:"price",label:(0,n.__)("Price","formipay"),render:e=>{const a=e.prices||e.price;return"object"==typeof a&&null!==a?Object.entries(a).map(([e,a])=>(0,t.createElement)("div",{key:e},e,": ",a)):a||"-"}},{key:"type",label:(0,n.__)("Type","formipay"),render:e=>"physical"===(e.product_type||e.type||"digital")?(0,n.__)("Physical","formipay"):(0,n.__)("Digital","formipay")},{key:"stock",label:(0,n.__)("Stock","formipay"),render:e=>{const t=e.stock;return null===t||""===t?(0,n.__)("Unlimited","formipay"):t}},{key:"status",label:(0,n.__)("Status","formipay"),render:e=>{const a=e.post_status||e.status||"unknown",r={publish:(0,n.__)("Published","formipay"),draft:(0,n.__)("Draft","formipay")};return(0,t.createElement)("span",{className:`status-label ${a}`},r[a]||a)}}];return(0,t.createElement)("div",{className:"formipay-page-products"},(0,t.createElement)("div",{className:"formipay-page-header"},(0,t.createElement)("h1",null,(0,n.__)("Products","formipay"))),(0,t.createElement)(O,{columns:i,ajaxUrl:window.formipayAdmin?.ajaxUrl||"/wp-admin/admin-ajax.php",nonce:window.formipayAdmin?.nonce||"",tableAction:"formipay-tabledata-products",deleteAction:"formipay-delete-product",duplicateAction:"formipay-duplicate-product",filterOptions:{key:"post_status",options:[{value:"all",label:(0,n.__)("All","formipay")},{value:"publish",label:(0,n.__)("Published","formipay")},{value:"draft",label:(0,n.__)("Draft","formipay")}]},actions:{addNew:{label:(0,n.__)("+ Add New Product","formipay"),action:"formipay-create-product-post"},bulkDelete:{action:"formipay-bulk-delete-product"},inline:!0},emptyMessage:(0,n.__)("No products found","formipay")}))},forms:function(){const e=[{key:"ID",label:(0,n.__)("ID","formipay"),render:e=>(0,t.createElement)("strong",null,"#",e.ID)},{key:"title",label:(0,n.__)("Title","formipay"),render:e=>(0,t.createElement)("a",{href:`${window.formipayAdmin?.siteUrl||""}/wp-admin/post.php?post=${e.ID}&action=edit`},(0,t.createElement)("strong",null,e.title))},{key:"date",label:(0,n.__)("Date","formipay"),render:e=>{const a=new Date(e.date);return(0,t.createElement)("span",{style:{whiteSpace:"nowrap"}},a.toLocaleDateString(),(0,t.createElement)("br",null),(0,t.createElement)("span",{style:{fontSize:"smaller",color:"#646970"}},a.toLocaleTimeString()))}},{key:"status",label:(0,n.__)("Status","formipay"),render:e=>{const a=e.post_status||e.status||"unknown",r={publish:(0,n.__)("Published","formipay"),draft:(0,n.__)("Draft","formipay"),pending:(0,n.__)("Pending","formipay")};return(0,t.createElement)("span",{className:`status-label ${a}`},r[a]||a)}},{key:"shortcode",label:(0,n.__)("Shortcode","formipay"),render:e=>(0,t.createElement)(t.Fragment,null,(0,t.createElement)("input",{className:"formipay-form-shortcode",value:`[formipay form=${e.ID}]`,disabled:!0}),(0,t.createElement)("button",{className:"copy-shortcode","data-copy":`[formipay form=${e.ID}]`,onClick:e=>{const t=e.currentTarget.dataset.copy;navigator.clipboard.writeText(t).then(()=>{const t=e.currentTarget.innerHTML;e.currentTarget.innerHTML="✓ Copied",setTimeout(()=>{e.currentTarget.innerHTML=t},2e3),z.fire({icon:"success",title:(0,n.__)("Shortcode copied!","formipay"),toast:!0,position:"top-end",showConfirmButton:!1,timer:3e3,timerProgressBar:!0})})}},"📋 ",(0,n.__)("Copy","formipay")))}];return(0,t.createElement)("div",{className:"formipay-page-forms"},(0,t.createElement)("div",{className:"formipay-page-header"},(0,t.createElement)("h1",null,(0,n.__)("Forms","formipay"))),(0,t.createElement)(O,{columns:e,ajaxUrl:window.formipayAdmin?.ajaxUrl||"/wp-admin/admin-ajax.php",nonce:window.formipayAdmin?.nonce||"",tableAction:"formipay-tabledata-forms",deleteAction:"formipay-delete-form",duplicateAction:"formipay-duplicate-form",filterOptions:{key:"post_status",options:[{value:"all",label:(0,n.__)("All","formipay")},{value:"publish",label:(0,n.__)("Published","formipay")},{value:"draft",label:(0,n.__)("Draft","formipay")}]},actions:{addNew:{label:(0,n.__)("+ Add New Form","formipay"),action:"formipay-create-form-post"},bulkDelete:{action:"formipay-bulk-delete-form"},inline:!0},emptyMessage:(0,n.__)("No forms found","formipay")}))},coupons:function(){const e=[{key:"ID",label:(0,n.__)("ID","formipay"),render:e=>(0,t.createElement)("strong",null,"#",e.ID)},{key:"code",label:(0,n.__)("Coupon Code","formipay"),render:e=>(0,t.createElement)("strong",null,e.code||e.post_title)},{key:"type",label:(0,n.__)("Type","formipay"),render:e=>"percentage"===(e.coupon_type||e.type||"percentage")?(0,n.__)("%","formipay"):(0,n.__)("Fixed","formipay")},{key:"amount",label:(0,n.__)("Amount","formipay"),render:e=>e.amount||"-"},{key:"usages",label:(0,n.__)("Usages","formipay"),render:e=>e.usage_count||e.usages||0},{key:"date_limit",label:(0,n.__)("Date Limit","formipay"),render:e=>{const t=e.date_limit;return t&&"none"!==t?new Date(t).toLocaleDateString():(0,n.__)("Unlimited","formipay")}},{key:"status",label:(0,n.__)("Status","formipay"),render:e=>{const a=e.post_status||e.status||"unknown",r="on"===e.active||"publish"===a;return(0,t.createElement)("span",{className:"status-label "+(r?"publish":"draft")},r?(0,n.__)("Active","formipay"):(0,n.__)("Inactive","formipay"))}}];return(0,t.createElement)("div",{className:"formipay-page-coupons"},(0,t.createElement)("div",{className:"formipay-page-header"},(0,t.createElement)("h1",null,(0,n.__)("Coupons","formipay"))),(0,t.createElement)(O,{columns:e,ajaxUrl:window.formipayAdmin?.ajaxUrl||"/wp-admin/admin-ajax.php",nonce:window.formipayAdmin?.nonce||"",tableAction:"formipay-tabledata-coupons",deleteAction:"formipay-delete-coupon",duplicateAction:"formipay-duplicate-coupon",filterOptions:{key:"status",options:[{value:"all",label:(0,n.__)("All","formipay")},{value:"active",label:(0,n.__)("Active","formipay")},{value:"inactive",label:(0,n.__)("Inactive","formipay")}]},actions:{addNew:{label:(0,n.__)("+ Add New Coupon","formipay"),action:"formipay-create-coupon-post"},bulkDelete:{action:"formipay-bulk-delete-coupon"},inline:!0},emptyMessage:(0,n.__)("No coupons found","formipay")}))},access:function(){const e=[{key:"ID",label:(0,n.__)("ID","formipay"),render:e=>(0,t.createElement)("strong",null,"#",e.ID)},{key:"title",label:(0,n.__)("Title","formipay")},{key:"product_name",label:(0,n.__)("Product","formipay")},{key:"status",label:(0,n.__)("Status","formipay"),render:e=>{const a=e.post_status||e.status||"unknown",r={publish:(0,n.__)("Published","formipay"),draft:(0,n.__)("Draft","formipay")}[a]||a;return(0,t.createElement)("span",{className:`status-label ${a}`},r)}},{key:"date",label:(0,n.__)("Date","formipay"),render:e=>{const t=e.post_date||e.date;return t?new Date(t).toLocaleDateString():"-"}}];return(0,t.createElement)("div",{className:"formipay-page-access"},(0,t.createElement)("div",{className:"formipay-page-header"},(0,t.createElement)("h1",null,(0,n.__)("Access Items","formipay"))),(0,t.createElement)(O,{columns:e,ajaxUrl:window.formipayAdmin?.ajaxUrl||"/wp-admin/admin-ajax.php",nonce:window.formipayAdmin?.nonce||"",tableAction:"formipay-tabledata-access-items",deleteAction:"formipay-delete-access-item",duplicateAction:"formipay-duplicate-access-item",filterOptions:{key:"post_status",options:[{value:"all",label:(0,n.__)("All","formipay")},{value:"publish",label:(0,n.__)("Published","formipay")},{value:"draft",label:(0,n.__)("Draft","formipay")}]},actions:{addNew:{label:(0,n.__)("+ Add New Item","formipay"),action:"formipay-create-access-item-post"},bulkDelete:{action:"formipay-bulk-delete-access-item"},inline:!0},emptyMessage:(0,n.__)("No access items found","formipay")}))},licenses:function(){const e=[{key:"id",label:(0,n.__)("ID","formipay"),render:e=>(0,t.createElement)("strong",null,"#",e.id)},{key:"license_key",label:(0,n.__)("License Key","formipay"),render:e=>(0,t.createElement)("code",null,e.license_key||"-")},{key:"product",label:(0,n.__)("Product","formipay"),render:e=>e.product_name||e.product||"-"},{key:"order",label:(0,n.__)("Order","formipay"),render:e=>e.order_id||`#${e.order}`||"-"},{key:"email",label:(0,n.__)("Email","formipay")},{key:"status",label:(0,n.__)("Status","formipay"),render:e=>{const a=e.status||"unknown",r={active:(0,n.__)("Active","formipay"),inactive:(0,n.__)("Inactive","formipay"),expired:(0,n.__)("Expired","formipay")},l="active"===a?"publish":"expired"===a?"pending":"draft";return(0,t.createElement)("span",{className:`status-label ${l}`},r[a]||a)}}];return(0,t.createElement)("div",{className:"formipay-page-licenses"},(0,t.createElement)("div",{className:"formipay-page-header"},(0,t.createElement)("h1",null,(0,n.__)("Licenses","formipay"))),(0,t.createElement)(O,{columns:e,ajaxUrl:window.formipayAdmin?.ajaxUrl||"/wp-admin/admin-ajax.php",nonce:window.formipayAdmin?.nonce||"",tableAction:"formipay-tabledata-licenses",selectable:!1,inline:!1,emptyMessage:(0,n.__)("No licenses found","formipay")}))}};function q({page:e,initialData:n}){(0,a.useEffect)(()=>{console.log("[Formipay App] Rendering page:",e,"with data:",n)},[e,n]);const r=J[e];return r?(0,t.createElement)("div",{className:"formipay-admin-wrap"},(0,t.createElement)(r,{initialData:n})):(0,t.createElement)("div",{className:"formipay-error"},(0,t.createElement)("p",null,"Unknown page: ",e))}const H=()=>{const e=document.querySelectorAll("[data-formipay-mount]");console.log("[Formipay] Mount points found:",e.length),console.log("[Formipay] formipayAdmin data:",window.formipayAdmin),e.forEach(e=>{const n=e.dataset.formipayMount,r=window.formipayAdmin?.[n]||{};console.log("[Formipay] Mounting page:",n,"with data:",r);try{(0,a.render)((0,t.createElement)(q,{page:n,initialData:r}),e),console.log("[Formipay] Successfully mounted:",n)}catch(e){console.error("[Formipay] Failed to mount:",n,e)}})};"loading"===document.readyState?document.addEventListener("DOMContentLoaded",H):H()})(); \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/8cc6fe2d32e01bdb05f4edf32353fc7bcd4f833ddbb91198129c7c6962ce6dd8.json.gz b/node_modules/.cache/babel-loader/8cc6fe2d32e01bdb05f4edf32353fc7bcd4f833ddbb91198129c7c6962ce6dd8.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..1fc3620c675fb02642b8a1510585dadcd99dfead GIT binary patch literal 10549 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 DZK{=e literal 0 HcmV?d00001 diff --git a/node_modules/.cache/babel-loader/acb512dd62b4aba9580d7caf58090f6363675a38a97ed270c522e81684d3a00c.json.gz b/node_modules/.cache/babel-loader/acb512dd62b4aba9580d7caf58090f6363675a38a97ed270c522e81684d3a00c.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..e5dc26468c494bf0112c6d46ecc08f29cb5dbb2c GIT binary patch literal 3846 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 IQrtTL0O84otpET3 literal 0 HcmV?d00001 diff --git a/src/admin/components/shared/DataTable.js b/src/admin/components/shared/DataTable.js index 6e01fd5ed..07be80d2f 100644 --- a/src/admin/components/shared/DataTable.js +++ b/src/admin/components/shared/DataTable.js @@ -531,17 +531,15 @@ export default function DataTable({ )} - {/* Add New Modal */} - {actions.addNew && ( + {/* Add New Modal - only render when actually open */} + {actions.addNew && isAddModalOpen && ( { setIsAddModalOpen(false); setNewItemTitle(''); }} isDismissible - focusOnMount="firstContentElement" >