1import{c as K,r as n,M as f,j as e,z as S,y as E,o as c,k as L,V as y}from"./index-DygRWEw_.js";import{E as d}from"./EmailNotificationType-DDqzifA1.js";import{E as C}from"./EmailService-BRcJxQJt.js";import{S as Q}from"./SettingsBreadcrumb-B5FIk2cQ.js";import X from"./CopyDesignModal-DI_sc26F.js";import{F as Z}from"./XMarkIcon-ByvfpXmF.js";import{Y as R}from"./switch-RQ8salah.js";import"./ChevronLeftIcon-D2z52xRD.js";import"./index-ynVhTqT-.js";import"./mergeDesign-gjiFIsrS.js";import"./CheckCircleIcon-C2mmbiQg.js";import"./use-default-value-Daf43DWP.js";import"./form-fields-DOariUwb.js";const p={enabled:"text-green-700 bg-green-50 ring-green-600/20 dark:text-green-400 dark:bg-green-400/10 dark:ring-green-400/20",disabled:"text-gray-600 bg-gray-50 ring-gray-500/10 dark:text-gray-400 dark:bg-gray-400/10 dark:ring-gray-400/20"};function ue(){var B,M,P,z;const{profile:a}=K(),[v,x]=n.useState([]),[U,b]=n.useState(!1),[k,$]=n.useState(null),[j,T]=n.useState(1),[N,D]=n.useState(120),[w,I]=n.useState(5),[u,F]=n.useState(!0),[_,H]=n.useState("gift-card"),[Y,A]=n.useState(!1);n.useEffect(()=>{document.title="Wrapped | Emails",(async()=>{var m;const r=[{id:d.GIFT_CARD_PURCHASED,name:"Gift card issued",description:"Sent to customer when a gift card is issued."},{id:d.GIFT_CARD_UPDATED,name:"Gift card updated",description:"Sent to customer when a gift card is updated."},{id:d.GIFT_CARD_GIFTED,name:"Gift card gifted",description:"Sent to recipient to notify them of their gift, who it is from and the gift card amount."},{id:d.GIFT_CARD_REMINDER,name:"Gift card reminder",description:"Remind customers who haven't used their gift cards.",hasSettings:!0,reminderSettings:{numberOfReminders:1,reminderInterval:120,minimumBalance:5,minimumBalanceEnabled:!0}}];(m=a==null?void 0:a.enabledFeatures)!=null&&m.includes(f.STORE_CREDIT)&&r.push({id:d.STORE_CREDIT_UPDATED,name:"Store credit balance updated",description:"Sent to customer when their store credit balance is updated."});const l=r.map(async s=>
1{try{const i=await C.emailNotificationSettingsNotificationTypeGet(s.id);let o={id:s.id,enabled:i.notificationEnabled||!1};return s.hasSettings&&s.id===d.GIFT_CARD_REMINDER&&(o={...o,reminderSettings:{numberOfReminders:i.reminderNum||1,reminderInterval:i.reminderDaysSinceLastAction||120,minimumBalance:i.reminderMinBalanceAmount||5,minimumBalanceEnabled:i.reminderMinBalanceEnabled||!0}}),o}catch(i){return console.error(`Couldn't get settings for ${s.id}:`,i),{id:s.id,enabled:!1}}});try{const s=await Promise.all(l),i=r.map(o=>{const g=s.find(J=>J.id===o.id);return{...o,enabled:(g==null?void 0:g.enabled)||!1,...o.hasSettings&&(g!=null&&g.reminderSettings)?{reminderSettings:g.reminderSettings}:{}}});x(i)}catch{y.error("Couldn't get email settings.");const i=r.map(o=>({...o,enabled:!1}));x(i)}})()},[a]);const O=async t=>{const r=v.find(m=>m.id===t),l=!(r!=null&&r.enabled);x(m=>m.map(s=>s.id===t?{...s,enabled:l}:s));try{if(await C.emailNotificationToggleEnabledNotificationTypeGet(t)){const s=l?"enabled":"disabled";y.success(`Email has been ${s}.`)}}catch{x(s=>s.map(i=>i.id===t?{...i,enabled:!l}:i)),y.error("Couldn't update email status.")}},G=t=>{$(t),t.reminderSettings&&(T(t.reminderSettings.numberOfReminders),D(t.reminderSettings.reminderInterval),I(t.reminderSettings.minimumBalance),F(t.reminderSettings.minimumBalanceEnabled)),b(!0)},V=async()=>{if(k){try{const t={notificationType:k.id,reminderDaysSinceLastAction:N,reminderMinBalanceAmount:w,reminderNum:j,reminderMinBalanceEnabled:u};await C.emailSaveNotificationReminderSettingsPost(t),x(r=>r.map(l=>l.id===k.id?{...l,reminderSettings:{numberOfReminders:j,reminderInterval:N,minimumBalance:w,minimumBalanceEnabled:u}}:l)),y.success("Settings saved")}catch{y.error("Error saving settings")}b(!1)}},W=()=>v.filter(t=>t.id===d.GIFT_CARD_PURCHASED||t.id===d.GIFT_CARD_UPDATED||t.id===d.GIFT_CARD_GIFTED||t.id===d.GIFT_CARD_REMINDER),q=()=>v.filter(t=>t.id===d.STORE_CREDIT_UPDATED),h=[{id:"gift-card",name:"Gift card",templates:W()},...(B=a==null?void 0:a.enabledFeatures)!=null&&B.includes(f.STORE_CREDIT)?[{id:"store-credit",name:"Store credit",templates:q()}]:[]];return e.jsx(e.Fragment,{children:e.jsxs("div",{className:"py-6",children:[e.jsx(Q,{currentPage:"Email Notifications"}),e.jsx("div",{className:"mb-8",children:e.jsxs("div",{className:"md:flex md:items-center md:justify-between border-b border-gray-200 dark:border-gray-700 pb-5",children:[e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("h2",{className:"text-2xl/7 font-bold text-gray-900 dark:text-gray-100 sm:text-3xl sm:tracking-tight",children:"Emails"}),e.jsxs("p",{className:"mt-2 text-sm text-gray-500 dark:text-gray-400",children:["Automatically email your digital gift cards to recipients."," ",e.jsx("a",{href:"https://docs.wrappedgiftcards.com/customize-gift-card-emails",target:"_blank",className:"text-blue-600 hover:text-blue-500 dark:text-blue-400 dark:hover:text-blue-300",children:"Learn how to customize emails"}),"."]})]}),((M=a==null?void 0:a.enabledFeatures)==null?void 0:M.includes(f.EMAIL_DESIGN_COPY))&&e.jsx("div",{className:"mt-4 flex md:mt-0 md:ml-4",children:e.jsx("button",{type:"button",onClick:()=>A(!0),className:"rounded-md bg-white dark:bg-gray-900 px-3 py-2 text-sm font-semibold text-gray-900 dark:text-gray-100 shadow-sm ring-1 ring-inset ring-gray-300 dark:ring-gray-700 hover:bg-gray-50 dark:hover:bg-gray-800",children:"Copy design between templates"})})]})}),((P=a==null?void 0:a.enabledFeatures)==null?void 0:P.includes(f.EMAIL_DESIGN_COPY))&&e.jsx(X,{isOpen:Y,onClose:()=>A(!1)}),e.jsx(S.Root,{show:U,as:n.Fragment,children:e.jsxs(E,{as:"div",className:"relative z-50",onClose:b,children:[e.jsx(S.Child,{as:n.Fragment,enter:"ease-out duration-300",enterFrom:"opacity-0",enterTo:"opacity-100",leave:"ease-in duration-200",leaveFrom:"opacity-100",leaveTo:"opacity-0",children:e.jsx("div",{className:"fixed inset-0 bg-gray-500/75 transition-opacity"})}),e.jsx("div",{className:"fixed inset-0 z-50 w-screen overflow-y-auto",children:e.jsx("div",{className:"flex min-h-full items-end justify-center p-4 text-center sm:items-center sm:p-0",children:e.jsx(S.Child,{as:n.Fragment,enter:"ease-out duration-300",enterFrom:"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95",enterTo:"opacity-100 translate-y-0 sm:scale-100",leave:"ease-in duration-200",leaveFrom:"opacity-100 translate-y-0 sm:scale-100",leaveTo:"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95",children:e.jsxs(E.Panel,{className:"relative transform overflow-hidden rounded-lg bg-white dark:bg-gray-900 px-4 pb-4 pt-5 text-left shadow-xl transition-all sm:my-8 sm:w-full sm:max-w-lg sm:p-6",children:[e.jsx("div",{className:"absolute right-0 top-0 pr-4 pt-4",children:e.jsxs("button",{type:"button",className:"rounded-md text-gray-400 hover:text-gray-500 dark:hover:text-gray-300 focus:outline-none",onClick:()=>b(!1),children:[e.jsx("span",{className:"sr-only",children:"Close"}),e.jsx(Z,{className:"size-6","aria-hidden":"true"})]})}),e.jsx("div",{className:"space-y-12",children:e.jsxs("div",{children:[e.jsx(E.Title,{as:"h2",className:"text-base/7 font-semibold text-gray-900 dark:text-gray-100",children:"Reminder email settings"}),e.jsx("p",{className:"mt-1 text-sm/6 text-gray-600 dark:text-gray-400",children:"Configure how often reminder emails are sent to customers with unused gift cards."}),e.jsxs("div",{className:"mt-10 grid grid-cols-1 gap-x-6 gap-y-8",children:[e.jsxs("div",{children:[e.jsx("label",{htmlFor:"numberOfReminders",className:"block text-sm/6 font-medium text-gray-900 dark:text-gray-100",children:"How many Reminders would you like to send each customer?"}),e.jsx("div",{className:"mt-2",children:e.jsx("input",{type:"number",name:"numberOfReminders",id:"numberOfReminders",className:"block w-20 rounded-md bg-white dark:bg-gray-800 px-3 py-1.5 text-base text-gray-900 dark:text-gray-100 outline-1 -outline-offset-1 outline-gray-300 dark:outline-gray-600 placeholder:text-gray-400 focus:outline-2 focus:-outline-offset-2 focus:outline-blue-600 dar
1k:focus:outline-blue-500 sm:text-sm/6",value:j,onChange:t=>T(parseInt(t.target.value))})})]}),e.jsxs("div",{children:[e.jsx("label",{htmlFor:"reminderInterval",className:"block text-sm/6 font-medium text-gray-900 dark:text-gray-100",children:"How often would you like to send a Reminder email?"}),e.jsx("div",{className:"mt-2",children:e.jsxs("div",{className:"flex rounded-md bg-white dark:bg-gray-800 outline-1 -outline-offset-1 outline-gray-300 dark:outline-gray-600 focus-within:outline-2 focus-within:-outline-offset-2 focus-within:outline-blue-600 dark:focus-within:outline-blue-500",children:[e.jsx("input",{type:"number",name:"reminderInterval",id:"reminderInterval",className:"block min-w-0 grow py-1.5 px-3 text-base text-gray-900 dark:text-gray-100 placeholder:text-gray-400 focus:outline-none sm:text-sm/6",value:N,onChange:t=>D(parseInt(t.target.value))}),e.jsx("span",{className:"flex select-none items-center px-3 text-gray-500 dark:text-gray-400 sm:text-sm/6",children:"days"})]})})]}),e.jsxs("fieldset",{children:[e.jsx("legend",{className:"text-sm/6 font-medium text-gray-900 dark:text-gray-100",children:"Minimum balance settings"}),e.jsxs("div",{className:"mt-6 space-y-6",children:[e.jsxs("div",{className:"flex gap-3",children:[e.jsx("div",{className:"flex h-6 shrink-0 items-center",children:e.jsx(R,{checked:u,onChange:F,className:c(u?"bg-blue-600 dark:bg-blue-500":"bg-gray-200 dark:bg-gray-700","relative inline-flex h-6 w-11 flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-600 dark:focus-visible:outline-blue-500"),children:e.jsx("span",{"aria-hidden":"true",className:c(u?"translate-x-5":"translate-x-0","pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow ring-0 transition duration-200 ease-in-out")})})}),e.jsxs("div",{className:"text-sm/6",children:[e.jsx("label",{className:"font-medium text-gray-900 dark:text-gray-100",children:"Set minimum balance for Gift Card Reminders"}),e.jsx("p",{className:"text-gray-500 dark:text-gray-400",children:"Only send reminders for gift cards with a balance above the minimum amount."})]})]}),u&&e.jsx("div",{className:"ml-9",children:e.jsxs("div",{className:"flex rounded-md bg-white dark:bg-gray-800 outline-1 -outline-offset-1 outline-gray-300 dark:outline-gray-600 focus-within:outline-2 focus-within:-outline-offset-2 focus-within:outline-blue-600 dark:focus-within:outline-blue-500",children:[e.jsx("span",{className:"flex select-none items-center pl-3 text-gray-500 dark:text-gray-400 sm:text-sm/6",children:"$"}),e.jsx("input",{type:"number",name:"minimumBalance",id:"minimumBalance",className:"block min-w-0 grow py-1.5 pr-3 pl-1 text-base text-gray-900 dark:text-gray-100 placeholder:text-gray-400 focus:outline-none sm:text-sm/6",value:w,onChange:t=>I(parseInt(t.target.value))}),e.jsx("span",{className:"flex select-none items-center px-3 text-gray-500 dark:text-gray-400 sm:text-sm/6",children:(a==null?void 0:a.isoCurrencyCode)||"USD"})]})})]})]})]})]})}),e.jsxs("div",{className:"mt-6 flex items-center justify-end gap-x-6",children:[e.jsx("button",{type:"button",className:"text-sm/6 font-semibold text-gray-900 dark:text-gray-100",onClick:()=>b(!1),children:"Cancel"}),e.jsx("button",{type:"button",className:"rounded-md bg-blue-600 dark:bg-blue-500 px-3 py-2 text-sm font-semibold text-white shadow-xs hover:bg-blue-500 dark:hover:bg-blue-400 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-600 dark:focus-visible:outline-blue-500",onClick:V,children:"Save"})]})]})})})})]})}),e.jsx("div",{children:e.jsxs("div",{className:"rounded-lg border border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-900 shadow-sm",children:[h.length>1&&e.jsx("div",{className:"border-b border-gray-200 dark:border-gray-700",children:e.jsx("nav",{className:"-mb-px flex space-x-8 px-6","aria-label":"Tabs",children:h.map(t=>e.jsx("button",{onClick:()=>H(t.id),className:c(_===t.id?"border-blue-600 dark:border-blue-500 text-blue-600 dar
1k:text-blue-500":"border-transparent text-gray-500 dark:text-gray-400 hover:border-gray-300 dark:hover:border-gray-600 hover:text-gray-700 dark:hover:text-gray-300","whitespace-nowrap border-b-2 py-4 px-1 text-sm font-medium"),children:t.name},t.id))})}),h.length>1?h.map(t=>e.jsx("div",{className:_===t.id?"block":"hidden",children:e.jsx("ul",{role:"list",className:"divide-y divide-gray-200 dark:divide-gray-700",children:t.templates.map(r=>e.jsxs("li",{className:"flex items-center justify-between gap-x-6 p-6",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"flex items-start gap-x-3",children:[e.jsx("p",{className:"text-sm/6 font-semibold text-gray-900 dark:text-gray-100",children:r.name}),e.jsx("p",{className:c(r.enabled?p.enabled:p.disabled,"mt-0.5 whitespace-nowrap rounded-md px-1.5 py-0.5 text-xs font-medium ring-1 ring-inset"),children:r.enabled?"Enabled":"Disabled"}),e.jsx(R,{checked:r.enabled,onChange:()=>O(r.id),className:c(r.enabled?"bg-blue-600 dark:bg-blue-500":"bg-gray-200 dark:bg-gray-700","relative inline-flex h-6 w-11 flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-600 dark:focus-visible:outline-blue-500"),children:e.jsx("span",{"aria-hidden":"true",className:c(r.enabled?"translate-x-5":"translate-x-0","pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow ring-0 transition duration-200 ease-in-out")})})]}),e.jsx("div",{className:"mt-1 flex items-center gap-x-2 text-xs/5 text-gray-500 dark:text-gray-400",children:r.reminderSettings&&e.jsxs(e.Fragment,{children:[e.jsx("svg",{viewBox:"0 0 2 2",className:"size-0.5 fill-current",children:e.jsx("circle",{cx:1,cy:1,r:1})}),e.jsxs("p",{className:"truncate",children:[r.reminderSettings.numberOfReminders," reminder",r.reminderSettings.numberOfReminders!==1&&"s"," every ",r.reminderSettings.reminderInterval," days"]})]})}),e.jsx("p",{className:"mt-1 text-sm/6 text-gray-600 dark:text-gray-400",children:r.description})]}),e.jsxs("div",{className:"flex flex-none items-center gap-x-4",children:[r.hasSettings&&e.jsx("button",{type:"button",onClick:()=>G(r),className:"hidden rounded-md bg-white dark:bg-gray-900 px-2.5 py-1.5 text-sm font-semibold text-gray-900 dark:text-gray-100 shadow-xs ring-1 ring-inset ring-gray-300 dark:ring-gray-700 hover:bg-gray-50 dark:hover:bg-gray-800 sm:block",children:"Settings"}),e.jsx(L,{to:`/notifications/email-edit/${r.id}`,className:"hidden rounded-md bg-white dark:bg-gray-900 px-2.5 py-1.5 text-sm font-semibold text-gray-900 dark:text-gray-100 shadow-xs ring-1 ring-inset ring-gray-300 dark:ring-gray-700 hover:bg-gray-50 dark:hover:bg-gray-800 sm:block",children:"Preview & edit"})]})]},r.id))})},t.id)):e.jsx("div",{children:e.jsx("ul",{role:"list",className:"divide-y divide-gray-200 dark:divide-gray-700",children:(z=h[0])==null?void 0:z.templates.map(t=>e.jsxs("li",{className:"flex items-center justify-between gap-x-6 p-6",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"flex items-start gap-x-3",children:[e.jsx("p",{className:"text-sm/6 font-semibold text-gray-900 dark:text-gray-100",children:t.name}),e.jsx("p",{className:c(t.enabled?p.enabled:p.disabled,"mt-0.5 whitespace-nowrap rounded-md px-1.5 py-0.5 text-xs font-medium ring-1 ring-inset"),children:t.enabled?"Enabled":"Disabled"}),e.jsx(R,{checked:t.enabled,onChange:()=>O(t.id),className:c(t.enabled?"bg-blue-600 dark:bg-blue-500":"bg-gray-200 dark:bg-gray-700","relative inline-flex h-6 w-11 flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-600 dark:focus-visible:outline-blue-500"),children:e.jsx("span",{"aria-hidden":"true",className:c(t.enabled?"translate-x-5":"translate-x-0","pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow ring-0 transition duration-200 ease-in-out")})})]}),e.jsx("div",{className:"mt-1 flex items-center gap-x-2 text-xs/5 text-gray-500 dark:text-gray-400",children:t.reminderSettings&&e.jsxs(e.Fragment,{children:[e.jsx("svg",{viewBox:"0 0 2 2",className:"size-0.5 fill-current",children:e.jsx("circle",{cx:1,cy:1,r:1})}),e.jsxs("p",{className:"truncate",children:[t.reminderSettings.numberOfReminders," reminder",t.reminderSettings.numberOfReminders!==1&&"s"," every ",t.reminderSettings.reminderInterval," days"]})]})}),e.jsx("p",{className:"mt-1 text-sm/6 text-gray-600 dark:text-gray-400",children:t.description})]}),e.jsxs("div",{className:"flex flex-none items-center gap-x-4",children:[t.hasSettings&&e.jsx("button",{type:"button",onClick:()=>G(t),className:"hidden rounded-md bg-white dark:bg-gray-900 px-2.5 py-1.5 text-sm font-semibold text-gray-900 dark:text-gray-100 shadow-xs ring-1 ring-inset ring-gray-300 dark:ring-gray-700 hover:bg-gray-50 dark:hover:bg-gray-800 sm:block",children:"Settings"}),e.jsx(L,{to:`/notifications/email-edit/${t.id}`,className:"hidden rounded-md bg-white dark:bg-gray-900 px-2.5 py-1.5 text-sm font-semibold text-gray-900 dark:text-gray-100 shadow-xs ring-1 ring-inset ring-gray-300 dark:ring-gray-700 hover:bg-gray-50 dark:hover:bg-gray-800 sm:block",children:"Preview & edit"})]})]},t.id))})})]})})]})})}export{ue as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.