1import{a as De}from"./chunk-6VJWOIP5.js";import{a as Te}from"./chunk-DTRNYQAQ.js";import{a as Re,c as Ie}from"./chunk-XLMGQL6R.js";import{a as Ve}from"./chunk-WWYPW4BY.js";import{a as Oe}from"./chunk-JQ56AIT2.js";import{h as ke}from"./chunk-NBEZBE67.js";import"./chunk-6YK7OVIW.js";import"./chunk-ERJAOQB3.js";import"./chunk-CK3MPDWC.js";import"./chunk-S2BRUCAV.js";import"./chunk-2ELNDHLL.js";import"./chunk-6QJJCMVE.js";import"./chunk-AHQ4I7ZQ.js";import"./chunk-TAWHH35G.js";import"./chunk-3J6GJA2Y.js";import"./chunk-T77JFMHY.js";import{b as ye,c as xe,d as M,e as be,f as we,j as Se,m as Me,n as Pe,o as Ee,p as Ae,t as Ge,u as Fe,w as Ne}from"./chunk-UETD4DIZ.js";import"./chunk-IFD5OJGK.js";import"./chunk-LXHWQ2GC.js";import{$ as ge,Cd as he,Ma as fe,dd as j,kb as ve,lb as Ce,nb as D,u as pe}from"./chunk-QFV2VXXO.js";import"./chunk-MNOAC44J.js";import{G as ue,H as _e,g as ce,i as me}from"./chunk-SD7HBRTT.js";import"./chunk-ZSKOB7NA.js";import{$ as h,Ab as m,B as W,Bb as u,Bc as q,Cb as ne,Db as ae,Eb as V,Fb as R,Gb as N,Hb as o,Ib as r,Ic as g,Jb as b,K as X,Nc as le,Qa as te,Qb as P,Ub as x,Va as s,W as A,Wb as c,aa as y,bc as re,cc as oe,d as J,fa as Z,fc as S,h as T,hc as de,ib as ie,ic as l,jc as E,kc as F,lc as I,ma as v,pa as ee,uc as se,z as U,zc as z}from"./chunk-LFZB7MMP.js";import{a as k,b as Q}from"./chunk-IMPBB4AK.js";var Le=["stripeCardContainer"],$e=(i,e)=>e.id;function Be(i,e){i&1&&b(0,"app-gift-card-skeleton")}function Ue(i,e){if(i&1&&(o(0,"div",3)(1,"div",5),l(2,"\u26A0\uFE0F"),r(),o(3,"h2",6),l(4,"Gift Cards Unavailable"),r(),o(5,"p",7),l(6),r(),o(7,"a",8),l(8,"Return to Home"),r()()),i&2){let t=c();s(6),E(t.error())}}function je(i,e){if(i&1&&b(0,"img",12),i&2){let t=c(2);N("src",t.defaultImage(),te)}}function He(i,e){i&1&&b(0,"img",13)}function Ye(i,e){if(i&1){let t=P();o(0,"button",54),x("click",function(){let d=h(t).$implicit,a=c(3);return y(a.selectInventoryPreset(d))}),l(1),r()}if(i&2){let t=e.$implicit,n=c(3);S("gift-card__amount-btn--active",n.isInventoryPresetSelected(t)),s(),F(" ",t.name||"$"+t.total_amount," ")}}function Ke(i,e){if(i&1&&V(0,Ye,2,3,"button",19,$e),i&2){let t=c(2);R(t.inventoryPresets())}}function Qe(i,e){if(i&1){let t=P();o(0,"button",54),x("click",function(){let d=h(t).$implicit,a=c(3);return y(a.selectAmountPreset(d))}),l(1),r()}if(i&2){let t=e.$implicit,n=c(3);S("gift-card__amount-btn--active",n.isAmountPresetSelected(t)),s(),F(" $",t," ")}}function Je(i,e){if(i&1&&V(0,Qe,2,3,"button",19,ae),i&2){let t=c(2);R(t.amountPresets())}}function We(i,e){if(i&1){let t=P();o(0,"button",54),x("click",function(){h(t);let d=c(2);return y(d.selectCustomAmountMode())}),l(1," Custom "),r()}if(i&2){let t=c(2);S("gift-card__amount-btn--active",t.isCustomAmountSelected())}}function Xe(i,e){i&1&&(o(0,"p",20),l(1,"No gift card options are currently available."),r())}function Ze(i,e){if(i&1){let t=P();o(0,"div",21)(1,"input",55),x("input",function(d){h(t);let a=c(2);return y(a.onCustomAmountChange(d))}),r(),o(2,"span",26),l(3),r()()}if(i&2){let t=c(2);s(),N("min",t.customAmountMin())("max",t.customAmountMax()),s(2),I("Min: $",t.customAmountMin()," - Max: $",t.customAmountMax())}}function et(i,e){if(i&1&&(o(0,"span",22),l(1),r()),i&2){let t=c(2);s(),E(t.getServerError("items.0.amount"))}}function tt(i,e){if(i&1&&(o(0,"span",22),l(1),r()),i&2){let t=c(2);s(),E(t.getServerError("items.0.gift_card_id"))}}function it(i,e){i&1&&(o(0,"p",26),l(1,"Inventory gift cards support one recipient per purchase."),r())}function nt(i,e){if(i&1){let t=P();o(0,"div",56)(1,"span",66),l(2),r(),o(3,"button",67),x("click",function(){h(t);let d=c().$index,a=c(2);return y(a.removeRecipient(d))}),l(4," Remove "),r()()}if(i&2){let t=c().$index;s(2),F("Recipient ",t+1)}}function at(i,e){i&1&&l(0," Email is required ")}function rt(i,e){i&1&&l(0," Please enter a valid email ")}function ot(i,e){if(i&1&&(o(0,"span",22),m(1,at,1,0)(2,rt,1,0),r()),i&2){let t,n=c().$implicit;s(),u((t=n.get("recipientEmail"))!=null&&t.hasError("required")?1:2)}}function dt(i,e){if(i&1&&(o(0,"span",22),l(1),r()),i&2){let t=c().$index,n=c(2);
1s(),E(n.getServerError("items.0.recipients."+t+".email"))}}function st(i,e){i&1&&l(0," Name is required ")}function lt(i,e){if(i&1&&(o(0,"span",22),m(1,st,1,0),r()),i&2){let t,n=c().$implicit;s(),u((t=n.get("recipientName"))!=null&&t.hasError("required")?1:-1)}}function ct(i,e){if(i&1&&(o(0,"span",22),l(1),r()),i&2){let t=c().$index,n=c(2);s(),E(n.getServerError("items.0.recipients."+t+".name"))}}function mt(i,e){i&1&&(o(0,"div",64)(1,"div",30)(2,"label",17),l(3,"Delivery Date"),r(),b(4,"input",68),r(),o(5,"div",30)(6,"label",17),l(7,"Delivery Time"),r(),b(8,"input",69),r()())}function ut(i,e){i&1&&b(0,"div",65)}function _t(i,e){if(i&1){let t=P();o(0,"div",28),m(1,nt,5,1,"div",56),o(2,"div",30)(3,"label",17),l(4,"Recipient Email *"),r(),o(5,"input",57),x("blur",function(){h(t);let d=c(2);return y(d.triggerPreview())}),r(),m(6,ot,3,1,"span",22),m(7,dt,2,1,"span",22),r(),o(8,"div",30)(9,"label",17),l(10,"Recipient Name *"),r(),o(11,"input",58),x("blur",function(){h(t);let d=c(2);return y(d.triggerPreview())}),r(),m(12,lt,2,1,"span",22),m(13,ct,2,1,"span",22),r(),o(14,"div",30)(15,"label",17),l(16,"Personal Message"),r(),b(17,"textarea",59),r(),o(18,"div",60)(19,"label",61),b(20,"input",62),o(21,"span",63),l(22,"Schedule delivery for a specific date & time"),r()(),o(23,"span",26),l(24,"By default, gift card is sent immediately after payment"),r()(),m(25,mt,9,0,"div",64),m(26,ut,1,0,"div",65),r()}if(i&2){let t,n,d,a,_,f=e.$implicit,w=e.$index,p=c(2);N("formGroupName",w),s(),u(p.recipientsArray.length>1?1:-1),s(4),S("gift-card__input--error",((t=f.get("recipientEmail"))==null?null:t.touched)&&((t=f.get("recipientEmail"))==null?null:t.invalid)),s(),u((n=f.get("recipientEmail"))!=null&&n.touched&&((n=f.get("recipientEmail"))!=null&&n.invalid)?6:-1),s(),u(p.getServerError("items.0.recipients."+w+".email")?7:-1),s(4),S("gift-card__input--error",((d=f.get("recipientName"))==null?null:d.touched)&&((d=f.get("recipientName"))==null?null:d.invalid)),s(),u((a=f.get("recipientName"))!=null&&a.touched&&((a=f.get("recipientName"))!=null&&a.invalid)?12:-1),s(),u(p.getServerError("items.0.recipients."+w+".name")?13:-1),s(12),u((_=f.get("scheduleDelivery"))!=null&&_.value?25:-1),s(),u(w<p.recipientsArray.length-1?26:-1)}}function pt(i,e){if(i&1){let t=P();o(0,"button",70),x("click",function(){h(t);let d=c(2);return y(d.addRecipient())}),l(1," + Add Another Recipient "),r()}}function gt(i,e){i&1&&(o(0,"span",22),l(1,"Your name is required"),r())}function ft(i,e){if(i&1&&(o(0,"span",22),l(1),r()),i&2){let t=c(3);s(),E(t.getServerError("sender.name"))}}function vt(i,e){if(i&1&&(o(0,"div",30)(1,"label",17),l(2,"Your Name *"),r(),b(3,"input",71),m(4,gt,2,0,"span",22),m(5,ft,2,1,"span",22),r()),i&2){let t,n,d=c(2);s(3),S("gift-card__input--error",((t=d.giftCardForm.get("senderName"))==null?null:t.touched)&&((t=d.giftCardForm.get("senderName"))==null?null:t.invalid)),s(),u((n=d.giftCardForm.get("senderName"))!=null&&n.touched&&((n=d.giftCardForm.get("senderName"))!=null&&n.hasError("required"))?4:-1),s(),u(d.getServerError("sender.name")?5:-1)}}function Ct(i,e){i&1&&l(0," * ")}function ht(i,e){i&1&&l(0," (optional) ")}function yt(i,e){i&1&&l(0," Email is required ")}function xt(i,e){i&1&&l(0," Please enter a valid email ")}function bt(i,e){if(i&1&&(o(0,"span",22),m(1,yt,1,0)(2,xt,1,0),r()),i&2){let t,n=c(2);s(),u((t=n.giftCardForm.get("senderEmail"))!=null&&t.hasError("required")?1:2)}}function wt(i,e){if(i&1&&(o(0,"span",22),l(1),r()),i&2){let t=c(2);s(),E(t.getServerError("sender.email"))}}function St(i,e){if(i&1){let t=P();o(0,"button",72),x("click",function(){h(t);let d=c(2);return y(d.removeCoupon())}),l(1," Remove "),r()}}function Mt(i,e){if(i&1){let t=P();o(0,"button",73),x("click",function(){h(t);let d=c(2);return y(d.applyCoupon())}),l(1," Apply "),r()}}function Pt(i,e){if(i&1&&(o(0,"span",36),l(1),r()),i&2){let t=c(2);s(),I(' Coupon "',t.appliedCoupon().code,'" applied \u2014 $',t.appliedCoupon().applied_discount," off ")}}function Et(i,e){if(i&1&&(o(0,"span",20),l(1),r()),i&2){let t=c(2);s(),E(t.previewError())}}function At(i,e){if(i&1){let t=P();o(0,"div",37)(1,"button",74),x("click",function(){h(t);let d=c(2);return y(d.selectPaymentMode("saved"))}),l(2," Use Saved Card "),r(),o(3,"button",74),x("click",function(){h(t);let d=c(2);return y(d.selectPaymentMode("new"))}),l(4," Use New Card "),r()()}if(i&2){let t=c(2);s(),S("gift-card__payment-mode-btn--active",t.paymentMode()==="saved"),s(2),S("gift-card__payment-mode-btn--active",t.paymentMode()==="new")}}function Gt(i,e){i&1&&(o(0,"span",79),l(1,"Default"),r())}function Ft(i,e){if(i&1){let t=P();o(0,"button",77),x("click",function(){let d=h(t).$implicit,a=c(3);return a.selectedPaymentMethodId.set(d.id),y(a.selectedGateway.set(d.gateway))}),b(1,"i"),o(2,"span"),l(3),r(),o(4,"span",78),l(5),r(),m(6,Gt,2,0,"span",79),r()}if(i&2){let t=e.$implicit,n=c(3);S("gift-card__payment-method--selected",n.selectedPaymentMethodId()===t.id),s(),de(se("fa-brands fa-cc-",(t.card_brand==null?null:t.card_brand.toLowerCase())??"credit-card")),s(2),F("\u2022\u2022\u2022\u2022 ",t.last_four),s(2),I("",t.expiry_month,"/",t.expiry_year),s(),u(t.is_default?6:-1)}}function Nt(i,e){if(i&1&&(o(0,"div",30)(1,"label",17),l(2,"Select Payment Method *"),r(),o(3,"div",75),V(4,Ft,7,9,"button",76,$e),r()()),i&2){let t=c(2);s(4),R(t.paymentMethods())}}function kt(i,e){i&1&&(o(0,"p",81),l(1,"Enter your card details below:"),r())}function Ot(i,e){if(i&1&&(o(0,"span",22),l(1),r()),i&2){let t=c(4);s(),E(t.stripeError())}}function Tt(i,e){if(i&1&&(o(0,"div",30)(1,"label",17),l(2,"Card Details *"),r(),b(3,"div",83,0),m(5,Ot,2,1,"span",22),r()),i&2){let t=c(3);s(5),u(t.stripeError()?5:-1)}}function Vt(i,e){i&1&&(o(0,"span",22),l(1,"Card number is required"),r())}function Rt(i,e){i&1&&(o(0,"span",22),l(1,"Expiry date is required"),r())}function Dt(i,e){i&1&&(o(0,"span",22),l(1,"CVV is required"),r())}function It(i,e){i&1&&(o(0,"span",22),l(1,"Name on card is required"),r())}function zt(i,e){i&1&&(o(0,"span",22),l(1,"Enter the name as it appears on the card"),r())}function qt(i,e){if(i&1){let t=P();o(0,"div",30)(1,"label",17),l(2,"Card Number *"),r(),o(3,"input",84),x("input",function(d){h(t);let a=c(3);return y(a.formatCardNumber(d))}),r(),m(4,Vt,2,0,"span",22),r(),o(5,"div",64)(6,"div",30)(7,"label",17),l(8,"Expiry Date *"),r(),o(9,"input",85),x("input",function(d){h(t);let a=c(3);return y(a.formatExpiryDate(d))}),r(),m(10,Rt,2,0,"span",22),r(),o(11,"div",30)(12,"label",17),l(13,"CVV *"),r(),o(14,"input",86),x("input",function(d){h(t);let a=c(3);return y(a.formatCvv(d))}),r(),m(15,Dt,2,0,"span",22),r()(),o(16,"div",30)(17,"label",17),l(18,"Name on Card *"),r(),b(19,"input",87),m(20,It,2,0,"span",22)(21,zt,2,0,"span",22),r()}if(i&2){let t,n,d,a,_,f,w,p,C=c(3);s(3),S("gift-card__input--error",((t=C.giftCardForm.get("cardNumber"))==null?null:t.touched)&&((t=C.giftCardForm.get("cardNumber"))==null?null:t.invali
1d)),s(),u((n=C.giftCardForm.get("cardNumber"))!=null&&n.touched&&((n=C.giftCardForm.get("cardNumber"))!=null&&n.hasError("required"))?4:-1),s(5),S("gift-card__input--error",((d=C.giftCardForm.get("expiryDate"))==null?null:d.touched)&&((d=C.giftCardForm.get("expiryDate"))==null?null:d.invalid)),s(),u((a=C.giftCardForm.get("expiryDate"))!=null&&a.touched&&((a=C.giftCardForm.get("expiryDate"))!=null&&a.hasError("required"))?10:-1),s(4),S("gift-card__input--error",((_=C.giftCardForm.get("cvv"))==null?null:_.touched)&&((_=C.giftCardForm.get("cvv"))==null?null:_.invalid)),s(),u((f=C.giftCardForm.get("cvv"))!=null&&f.touched&&((f=C.giftCardForm.get("cvv"))!=null&&f.hasError("required"))?15:-1),s(4),S("gift-card__input--error",((w=C.giftCardForm.get("nameOnCard"))==null?null:w.touched)&&((w=C.giftCardForm.get("nameOnCard"))==null?null:w.invalid)),s(),u((p=C.giftCardForm.get("nameOnCard"))!=null&&p.touched&&((p=C.giftCardForm.get("nameOnCard"))!=null&&p.hasError("required"))?20:(p=C.giftCardForm.get("nameOnCard"))!=null&&p.touched&&((p=C.giftCardForm.get("nameOnCard"))!=null&&p.hasError("minlength"))?21:-1)}}function $t(i,e){i&1&&(o(0,"div",82)(1,"label",61),b(2,"input",88),o(3,"span",63),l(4,"Save this card for future use"),r()(),o(5,"span",26),l(6,"Securely saved to your account for faster checkout."),r()())}function Lt(i,e){if(i&1&&(o(0,"div",80),m(1,kt,2,0,"p",81),m(2,Tt,6,1,"div",30)(3,qt,22,12),r(),m(4,$t,7,0,"div",82)),i&2){let t=c(2);s(),u(t.isAuthenticated()&&t.paymentMethods().length>0?1:-1),s(),u(t.isStripeGateway()?2:3),s(2),u(t.showSaveCardCheckbox()?4:-1)}}function Bt(i,e){i&1&&l(0," * ")}function Ut(i,e){i&1&&(o(0,"span",22),l(1,"Address is required when saving your card"),r())}function jt(i,e){if(i&1&&l(0),i&2){let t=c(2);F(" (x",t.validRecipientsCount()," recipients) ")}}function Ht(i,e){if(i&1&&(o(0,"div",45)(1,"span"),l(2,"Discount"),r(),o(3,"span"),l(4),z(5,"number"),r()()),i&2){let t=c(2);s(4),F("-$",q(5,1,t.discount(),"1.2-2"))}}function Yt(i,e){i&1&&(o(0,"div",49),l(1,"Updating totals..."),r())}function Kt(i,e){i&1&&l(0," Processing... ")}function Qt(i,e){i&1&&l(0," Complete Purchase ")}function Jt(i,e){i&1&&(o(0,"div",53)(1,"span"),l(2,"Already have an account?"),r(),o(3,"a",89),l(4,"Sign in"),r(),o(5,"span"),l(6,"for faster checkout with saved payment methods."),r()())}function Wt(i,e){if(i&1){let t=P();o(0,"form",9),x("ngSubmit",function(){h(t);let d=c();return y(d.onSubmit())}),o(1,"div",10)(2,"div",11),m(3,je,1,1,"img",12)(4,He,1,0,"img",13),r(),o(5,"div",14)(6,"h1",15),l(7,"Gift Card Details"),r(),o(8,"div",16)(9,"label",17),l(10,"Select Amount *"),r(),o(11,"div",18),m(12,Ke,2,0),m(13,Je,2,0),m(14,We,2,2,"button",19),r(),m(15,Xe,2,0,"p",20),m(16,Ze,4,4,"div",21),m(17,et,2,1,"span",22),m(18,tt,2,1,"span",22),r()()(),o(19,"div",23)(20,"div",24)(21,"h2",25),l(22),r(),m(23,it,2,0,"p",26),o(24,"div",27),V(25,_t,27,12,"div",28,ne),r(),m(27,pt,2,0,"button",29),r(),o(28,"div",24)(29,"h2",25),l(30),r(),m(31,vt,6,4,"div",30),o(32,"div",30)(33,"label",17),l(34," Your Email "),m(35,Ct,1,0)(36,ht,1,0),r(),o(37,"input",31),x("blur",function(){h(t);let d=c();return y(d.triggerPreview())}),r(),m(38,bt,3,1,"span",22),m(39,wt,2,1,"span",22),r(),o(40,"div",30)(41,"label",17),l(42,"Coupon Code"),r(),o(43,"div",32),b(44,"input",33),m(45,St,2,0,"button",34)(46,Mt,2,0,"button",35),r(),m(47,Pt,2,2,"span",36),m(48,Et,2,1,"span",20),r(),m(49,At,5,4,"div",37),m(50,Nt,6,0,"div",30),m(51,Lt,5,3),o(52,"div",38)(53,"h3",39),l(54,"Billing Address"),r(),o(55,"div",30)(56,"label",17),l(57," Address "),m(58,Bt,1,0),r(),b(59,"app-input-address",40),m(60,Ut,2,0,"span",22),r()(),o(61,"div",41)(62,"h3",42),l(63,"Order Summary"),r(),o(64,"div",43)(65,"span"),l(66," Gift Card Amount "),m(67,jt,1,1),r(),o(68,"span",44),l(69),z(70,"number"),r()(),m(71,Ht,6,4,"div",45),b(72,"div",46),o(73,"div",47)(74,"span"),l(75,"Total:"),r(),o(76,"span",48),l(77),z(78,"number"),r()(),m(79,Yt,2,0,"div",49),r(),o(80,"button",50),m(81,Kt,1,0)(82,Qt,1,0),r(),o(83,"div",51),b(84,"i",52),o(85,"span"),l(86),r()(),m(87,Jt,7,0,"div",53),r()()()}if(i&2){let t,n,d,a=c();N("formGroup",a.giftCardForm),s(3),u(a.defaultImage()?3:4),s(9),u(a.showInventoryPresets()?12:-1),s(),u(a.showAmountPresets()?13:-1),s(),u(a.showCustomAmountInput()?14:-1),s(),u(!a.showInventoryPresets()&&!a.showAmountPresets()&&!a.showCustomAmountInput()?15:-1),s(),u(a.isCustomAmountSelected()?16:-1),s(),u(a.getServerError("items.0.amount")?17:-1),s(),u(a.getServerError("items.0.gift_card_id")?18:-1),s(4),E(a.deliverySectionTitle()),s(),u(a.isInventoryMode()?23:-1),s(2),R(a.recipientsArray.controls),s(2),u(a.canAddRecipients()?27:-1),s(3),E(a.senderSectionTitle()),s(),u(a.askSe
1nderName()?31:-1),s(4),u(a.isAuthenticated()?36:35),s(2),S("gift-card__input--readonly",a.isAuthenticated())("gift-card__input--error",((t=a.giftCardForm.get("senderEmail"))==null?null:t.touched)&&((t=a.giftCardForm.get("senderEmail"))==null?null:t.invalid)),N("readonly",a.isAuthenticated()),s(),u((n=a.giftCardForm.get("senderEmail"))!=null&&n.touched&&((n=a.giftCardForm.get("senderEmail"))!=null&&n.invalid)?38:-1),s(),u(a.getServerError("sender.email")?39:-1),s(6),u(a.appliedCoupon()?45:46),s(2),u(a.appliedCoupon()?47:-1),s(),u(a.previewError()?48:-1),s(),u(a.isAuthenticated()&&a.paymentMethods().length>0?49:-1),s(),u(a.showSavedPaymentMethods()?50:-1),s(),u(a.showCardEntry()?51:-1),s(7),u((d=a.giftCardForm.get("saveCard"))!=null&&d.value&&a.showSaveCardCheckbox()?58:-1),s(),N("placeholder","Start typing your address..."),s(),u(a.shouldShowFieldError("billingAddress")?60:-1),s(7),u(a.validRecipientsCount()>1?67:-1),s(2),F("$",q(70,40,a.subtotal(),"1.2-2")),s(2),u(a.discount()>0?71:-1),s(6),F("$",q(78,43,a.total(),"1.2-2")),s(2),u(a.previewLoading()?79:-1),s(),N("disabled",!a.canSubmit()),s(),u(a.isSubmitting()?81:82),s(5),E(a.secureCheckoutLabel()),s(),u(a.isAuthenticated()?-1:87)}}function Xt(i,e){i&1&&(o(0,"div",3)(1,"p"),l(2,"Gift card purchases are currently unavailable. Please try again later."),r()())}var ze=[25,50,75,100],qe=class i{fb=A(Fe);giftCardApi=A(Te);checkoutApi=A(ge);paymentMethodsApi=A(Ve);authService=A(he);notificationService=A(pe);manifestService=A(ve);storeDateTimeService=A(Ce);analytics=A(fe);router=A(ue);destroyRef=A(Z);isAuthenticated=g(()=>this.authService.isLoggedIn());settings=v(null);inventoryPresets=v([]);loading=v(!0);error=v(null);purchasesDisabled=g(()=>this.settings()?.prevent_gift_card_purchases??!1);allowCustomAmount=g(()=>this.settings()?.allow_custom_amounts??!0);enableMultipleRecipients=g(()=>this.settings()?.enable_multiple_recipients??!1);askSenderName=g(()=>this.settings()?.ask_sender_name??!1);recipientInfoMandatory=g(()=>this.settings()?.recipient_info_mandatory??!1);deliverySectionTitle=g(()=>this.settings()?.delivery_info_section_title||"Recipient Information");senderSectionTitle=g(()=>this.settings()?.sender_info_section_title||"Your Information & Payment");defaultImage=g(()=>this.settings()?.default_image?.url??"");storeGateways=v([]);selectedGateway=v("stripe");paymentMethods=v([]);selectedPaymentMethodId=v(null);paymentMode=v("new");amountPresets=v([...ze]);customAmountMin=v(5);customAmountMax=v(500);selectedAmountSelection=v(null);previewData=v(null);previewLoading=v(!1);previewError=v(null);previewTrigger$=new J;stripeCardContainer=le("stripeCardContainer");stripeInstance=null;stripeCardElement=null;stripeReady=v(!1);stripeError=v(null);isStripeGateway=g(()=>this.selectedGateway()==="stripe");isInventoryMode=g(()=>this.selectedAmountSelection()?.kind==="inventory");showAmountPresets=g(()=>this.amountPresets().length>0);showInventoryPresets=g(()=>this.inventoryPresets().length>0);showCustomAmountInput=g(()=>this.allowCustomAmount());canAddRecipients=g(()=>this.enableMultipleRecipients()&&!this.isInventoryMode());showCardEntry=g(()=>this.isAuthenticated()?this.paymentMode()==="new"||this.paymentMethods().length===0:!0);showSavedPaymentMethods=g(()=>this.isAuthenticated()&&this.paymentMethods().length>0&&this.paymentMode()==="saved");showSaveCardCheckbox=g(()=>this.isAuthenticated()&&this.showCardEntry());giftCardAmount=g(()=>{let e=this.selectedAmountSelection();return e?e.amount:0});subtotal=g(()=>{let e=this.previewData();return e?parseFloat(e.subtotal):this.giftCardAmount()*this.recipientRowsCount()});discount=g(()=>{let e=this.previewData();return e?parseFloat(e.discount):0});total=g(()=>{let e=this.previewData();return e?parseFloat(e.total):this.subtotal()-this.discount()});appliedCoupon=g(()=>this.previewData()?.coupon??null);formValid=v(!1);validRecipientsCount=v(0);recipientRowsCount=v(1);cardFilled=v(!1);serverErrors=v({});isSubmitting=v(!1);submitAttempted=v(!1);hasPayment=g(()=>this.isAuthenticated()&&this.paymentMode()==="saved"&&this.selectedPaymentMethodId()?!0:this.showCardEntry()?this.isStripeGateway()?this.stripeReady():this.cardFilled():!1);canSubmit=g(()=>!(this.isSubmitting()||this.giftCardAmount()<=0||this.validRecipientsCount()<=0||!this.formValid()||!this.hasPayment()));secureCheckoutLabel=g(()=>{let e=this.storeGateways().find(t=>t.gateway===this.selectedGateway());return e?.display_name?`Secure checkout powered by ${e.display_name}`:"Secure checkout"});giftCardForm=this.fb.group({senderName:[""],senderEmail:["",[M.email]],recipients:this.fb.array([this.createRecipientGroup()]),couponCode:[""],cardNumber:[""],expiryDate:[""],cvv:[""],nameOnCard:[""],saveC
1ard:[!1],billingAddress:[null]});purchaseIdempotencyKey=null;constructor(){ee(()=>{let e=this.stripeCardContainer()?.nativeElement;if(this.showCardEntry()&&this.isStripeGateway()&&e){this.initializeStripe(e);return}this.destroyStripeElement()})}get recipientsArray(){return this.giftCardForm.get("recipients")}ngOnInit(){if(this.loadPublicSettings(),this.loadStoreGateways(),this.authService.isLoggedIn()){this.loadPaymentMethods();let e=this.authService.getCurrentUser();e&&this.giftCardForm.patchValue({senderName:e.displayName||e.nicename||"",senderEmail:e.email||""})}this.updateFormValidation(),this.recipientRowsCount.set(this.recipientsArray.length),this.setupPreviewPipeline(),this.trackFormValidity(),this.giftCardForm.get("saveCard")?.valueChanges.pipe(D(this.destroyRef)).subscribe(e=>{e||this.submitAttempted.set(!1),this.updateFormValidation()})}createRecipientGroup(){return this.fb.group({recipientName:["",[M.required]],recipientEmail:["",[M.required,M.email]],personalMessage:[""],scheduleDelivery:[!1],deliveryDate:[""],deliveryTime:[""]})}loadPublicSettings(){this.loading.set(!0),this.error.set(null),this.giftCardApi.getPublicSettings().subscribe({next:e=>{this.loading.set(!1),e.status&&e.data&&(this.settings.set(e.data),this.applyAmountPresetsFromSettings(e.data),e.data.ask_sender_name||this.giftCardForm.patchValue({senderName:""},{emitEvent:!1}),e.data.prevent_gift_card_purchases&&this.error.set("Gift card purchases are currently unavailable for this store."),this.updateFormValidation(),this.initializeAmountSelection())},error:e=>{console.error("Failed to load gift card settings:",e),this.loading.set(!1),this.settings.set({prevent_gift_card_purchases:!1,allow_custom_amounts:!0,enable_multiple_recipients:!1,ask_sender_name:!1,recipient_info_mandatory:!1,delivery_info_section_title:null,sender_info_section_title:null,default_image:null}),this.initializeAmountSelection()}})}loadStoreGateways(){this.checkoutApi.getPaymentMethods().subscribe({next:e=>{let t=e.filter(n=>Re(n.gateway));this.storeGateways.set(t),t.length>0&&this.selectedGateway.set(t[0].gateway),this.updateFormValidation()},error:e=>{console.error("Failed to load payment gateways:",e)}})}loadPaymentMethods(){this.paymentMethodsApi.getPaymentMethods().subscribe({next:e=>{if(e.status&&e.data.data.length>0){this.paymentMethods.set(e.data.data);let t=e.data.data.find(n=>n.is_default);t?(this.selectedPaymentMethodId.set(t.id),this.selectedGateway.set(t.gateway)):(this.selectedPaymentMethodId.set(e.data.data[0].id),this.selectedGateway.set(e.data.data[0].gateway)),this.paymentMode.set("saved")}},error:e=>{console.error("Failed to load payment methods:",e)}})}applyAmountPresetsFromSettings(e){let t=this.normalizeFixedAmounts(e.fixed_amounts);this.amountPresets.set(t.length>0?t:[...ze]),e.custom_amount_min!=null&&e.custom_amount_min>0&&this.customAmountMin.set(e.custom_amount_min),e.custom_amount_max!=null&&e.custom_amount_max>0&&this.customAmountMax.set(e.custom_amount_max)}normalizeFixedAmounts(e){return(e??[]).map(t=>typeof t=="string"?Number.parseFloat(t):t).filter(t=>Number.isFinite(t)&&t>0)}initializeAmountSelection(){let e=this.inventoryPresets(),t=this.amountPresets(),n=this.selectedAmountSelection();if(e.length>0){n||this.selectInventoryPreset(e[0]);return}if(t.length===0){this.selectedAmountSelection.set(null);return}if(!this.allowCustomAmount()&&n?.kind==="custom"){this.selectedAmountSelection.set({kind:"amount",amount:t[0]}),this.triggerPreview();return}n||(this.selectedAmountSelection.set({kind:"amount",amount:t[0]}),this.triggerPreview())}selectInventoryPreset(e){let t=parseFloat(e.total_amount);for(this.selectedAmountSelection.set({kind:"inventory",giftCardId:e.id,amount:Number.isFinite(t)?t:0,label:e.name||`$${e.total_amount}`});this.recipientsArray.length>1;)this.recipientsArray.removeAt(this.recipientsArray.length-1);this.recipientRowsCount.set(this.recipientsArray.length),this.updateFormValidation(),this.triggerPreview()}isAmountPresetSelected(e){let t=this.selectedAmountSelection();return t?.kind==="amount"&&t.amount===e}isInventoryPresetSelected(e){let t=this.selectedAmountSelection();return t?.kind==="inventory"&&t.giftCardId===e.id}isCustomAmountSelected(){return this.selectedAmountSelection()?.kind==="custom"}selectAmountPreset(e){this.selectedAmountSelection.set({kind:"amount",amount:e}),this.triggerPreview()}selectCustomAmountMode(){let e=this.customAmount();this.selectedAmountSelection.set({kind:"custom",amount:e>0?e:0}
1),this.triggerPreview()}onCustomAmountChange(e){let t=parseFloat(e.target.value)||0;this.selectedAmountSelection.set({kind:"custom",amount:t}),this.triggerPreview()}customAmount(){let e=this.selectedAmountSelection();return e?.kind==="custom"?e.amount:0}updateFormValidation(){let e=this.showCardEntry()&&!this.isStripeGateway(),t=e?[M.required]:[],n=e?[M.required,M.minLength(2)]:[];this.giftCardForm.get("cardNumber")?.setValidators(t),this.giftCardForm.get("expiryDate")?.setValidators(t),this.giftCardForm.get("cvv")?.setValidators(t),this.giftCardForm.get("nameOnCard")?.setValidators(n),this.giftCardForm.get("cardNumber")?.updateValueAndValidity(),this.giftCardForm.get("expiryDate")?.updateValueAndValidity(),this.giftCardForm.get("cvv")?.updateValueAndValidity(),this.giftCardForm.get("nameOnCard")?.updateValueAndValidity(),this.askSenderName()?this.giftCardForm.get("senderName")?.setValidators([M.required]):this.giftCardForm.get("senderName")?.clearValidators(),this.giftCardForm.get("senderName")?.updateValueAndValidity(),this.isAuthenticated()?this.giftCardForm.get("senderEmail")?.setValidators([M.email]):this.giftCardForm.get("senderEmail")?.setValidators([M.required,M.email]),this.giftCardForm.get("senderEmail")?.updateValueAndValidity(),this.recipientsArray.controls.forEach(a=>{let _=a.get("recipientName"),f=a.get("recipientEmail");_?.setValidators([M.required]),f?.setValidators([M.required,M.email]),_?.updateValueAndValidity(),f?.updateValueAndValidity()});let d=this.requiresBillingForSaveCard();this.giftCardForm.get("billingAddress")?.setValidators(d?[this.billingAddressRequiredValidator]:[]),this.giftCardForm.get("billingAddress")?.updateValueAndValidity({emitEvent:!1}),this.formValid.set(this.giftCardForm.valid),this.updateValidRecipientsCount()}requiresBillingForSaveCard(){return this.isAuthenticated()&&this.showCardEntry()&&!!this.giftCardForm.getRawValue().saveCard}shouldShowFieldError(e,t="required"){let n=this.giftCardForm.get(e);return n?(n.touched||this.submitAttempted())&&n.hasError(t):!1}billingAddressRequiredValidator(e){return e.value?.address_1?.trim()?null:{required:!0}}static RECIPIENT_EMAIL_PATTERN=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;updateValidRecipientsCount(){this.validRecipientsCount.set(this.countValidRecipients())}countValidRecipients(){return this.recipientsArray.controls.filter(e=>this.isRecipientGroupComplete(e)).length}isRecipientGroupComplete(e){let t=(e.get("recipientName")?.value||"").trim(),n=(e.get("recipientEmail")?.value||"").trim();return!!t&&!!n&&i.RECIPIENT_EMAIL_PATTERN.test(n)}trackFormValidity(){this.giftCardForm.statusChanges.pipe(D(this.destroyRef)).subscribe(()=>{this.formValid.set(this.giftCardForm.valid)}),this.giftCardForm.valueChanges.pipe(D(this.destroyRef)).subscribe(e=>{let t=(e.cardNumber||"").replace(/\s/g,""),n=e.expiryDate||"",d=e.cvv||"",a=(e.nameOnCard||"").trim();this.cardFilled.set(t.length>=13&&n.length>=4&&d.length>=3&&a.length>=2),this.updateValidRecipientsCount(),this.serverErrors.set({})}),this.updateValidRecipientsCount()}isReadyForPreview(){if(this.giftCardAmount()<=0)return!1;let e=this.giftCardForm.value;return!(!this.isAuthenticated()&&!e.senderEmail?.trim())}setupPreviewPipeline(){this.previewTrigger$.pipe(W(300),X(()=>{if(!this.isReadyForPreview())return this.previewError.set(null),this.previewData.set(null),T(null);let e=this.buildPurchaseRequest({forPreview:!0});return e?(this.previewLoading.set(!0),this.previewError.set(null),this.serverErrors.set({}),this.giftCardApi.preview(e).pipe(U(t=>{let n=j(t,"Preview failed");if(this.previewError.set(n.message),t?.status===422&&t?.error?.errors&&this.serverErrors.set(t.error.errors),n.reasonCode==="maximum_items"&&e.coupon_codes?.length){let d=k({},e);return delete d.coupon_codes,this.giftCardApi.preview(d).pipe(U(()=>T(null)))}return T(null)}))):(this.previewError.set(null),T(null))}),D(this.destroyRef)).subscribe(e=>{this.previewLoading.set(!1),e?.status&&e.data&&(this.previewData.set(e.data),this.previewError()||this.previewError.set(null),this.serverErrors.set({}))})}triggerPreview(){this.previewTrigger$.next()}selectPaymentMode(e){this.paymentMode.set(e),e==="saved"&&(this.giftCardForm.patchValue({saveCard:!1},{emitEvent:!1}),this.submitAttempted.set(!1)),this.updateFormValidation()}addRecipient(){this.canAddRecipients()&&(this.recipientsArray.push(this.createRecipientGroup()),this.recipientRowsCount.set(this.recipientsArray.length),this.updateFormValidation(),this.triggerPreview())}removeRecipient(e){this.recipientsArray.length>1&&(this.recipientsArray.removeAt(e),this.recipientRowsCount.set(this.recipientsArray.length),this.updateV
1alidRecipientsCount(),this.triggerPreview())}applyCoupon(){if((this.giftCardForm.value.couponCode||"").trim()){if(!this.isReadyForPreview()){this.giftCardForm.markAllAsTouched(),this.notificationService.error("Please select a gift card amount before applying a coupon");return}this.triggerPreview()}}removeCoupon(){this.giftCardForm.patchValue({couponCode:""}),this.previewData.update(e=>e&&Q(k({},e),{coupon:null,discount:"0.00"})),this.triggerPreview()}static SERVER_ERROR_LABELS={"sender.name":"Your name","sender.email":"Your email","payment.gateway":"Payment gateway","payment.payment_method":"Payment method"};getServerError(e){let t=this.serverErrors(),d=t[e==="sender_name"?"sender.name":e]??t[e];if(!d?.length)return null;let a=d[0],_=e.match(/^items\.\d+\.recipients\.(\d+)\.(\w+)$/);if(_){let w=_[2]==="email"?"Recipient email":`Recipient ${_[2]}`;return a.replace(/The\s+\S+\s+field/,`${w}`)}let f=i.SERVER_ERROR_LABELS[e];return f?a.replace(/The\s+\S+\s+field/,`${f}`):a}formatCardNumber(e){let t=e.target,n=t.value.replace(/\D/g,"");n=n.substring(0,16);let d=n.replace(/(\d{4})(?=\d)/g,"$1 ");t.value=d,this.giftCardForm.patchValue({cardNumber:d})}formatExpiryDate(e){let t=e.target,n=t.value.replace(/\D/g,"");n=n.substring(0,4),n.length>=2&&(n=n.substring(0,2)+"/"+n.substring(2)),t.value=n,this.giftCardForm.patchValue({expiryDate:n})}formatCvv(e){let t=e.target,n=t.value.replace(/\D/g,"");n=n.substring(0,4),t.value=n,this.giftCardForm.patchValue({cvv:n})}buildPurchaseRequest(e){let t=e?.forPreview??!1,n=this.giftCardForm.value,d=this.selectedAmountSelection();if(!d||d.amount<=0)return null;let a=(n.recipients||[]).map(G=>{let O={},Y=G.recipientEmail?.trim(),K=G.recipientName?.trim();return Y&&(O.email=Y),K&&(O.name=K),G.scheduleDelivery&&G.deliveryDate&&G.deliveryTime&&(O.delivery_date=G.deliveryDate,O.delivery_time=G.deliveryTime),O}),_=t?a.length>0?a:[{}]:a.filter(G=>G.email&&G.name);if(!t&&_.length===0)return null;let p={personal_message:n.recipients?.[0]?.personalMessage?.trim()||void 0,recipients:_};d.kind==="inventory"?p.gift_card_id=d.giftCardId:p.amount=d.amount;let $={payment:{gateway:this.selectedGateway(),payment_method:"credit_card"},items:[p]},L=this.askSenderName()?(n.senderName||"").trim():"",B=(n.senderEmail||"").trim();(L||B||!this.isAuthenticated())&&($.sender=k(k({},L?{name:L}:{}),B?{email:B}:{}));let H=(n.couponCode||"").trim();return H&&($.coupon_codes=[H]),$}async onSubmit(){if(this.submitAttempted.set(!0),this.updateFormValidation(),this.giftCardForm.markAllAsTouched(),this.giftCardForm.invalid||this.giftCardAmount()<=0){this.notificationService.error("Please fill in all required fields");return}let e=this.isAuthenticated()&&this.paymentMode()==="saved"&&this.selectedPaymentMethodId(),t=this.showCardEntry();if(!e&&!t){this.notificationService.error("Please provide payment information");return}if(t&&this.isStripeGateway()&&!this.stripeReady()){this.notificationService.error(this.stripeError()||"Please complete your card details");return}this.isSubmitting.set(!0),this.serverErrors.set({});let n=this.buildPurchaseRequest();if(!n){this.isSubmitting.set(!1);return}let d=this.giftCardForm.value;try{if(e){let a=this.paymentMethods().find(_=>_.id===this.selectedPaymentMethodId());n.payment={gateway:a?.gateway||this.selectedGateway(),payment_method:a?.payment_method||"credit_card",payment_token_id:this.selectedPaymentMethodId()}}else if(this.isStripeGateway()){let{paymentMethodId:a}=await this.tokenizeStripeCard();n.payment=this.buildNewCardPayment("stripe",{payment_method:a},!!d.saveCard)}else{let a=this.selectedGateway();n.payment=this.buildNewCardPayment(a,Ie(a,{cardNumber:String(d.cardNumber??""),expirationDate:String(d.expiryDate??""),securityCode:String(d.cvv??""),holderName:String(d.nameOnCard??"")}),!!d.saveCard)}}catch(a){this.isSubmitting.set(!1);let _=a instanceof Error?a.message:"Payment tokenization failed";this.notificationService.error(_);return}this.purchaseIdempotencyKey||(this.purchaseIdempotencyKey=crypto.randomUUID()),this.giftCardApi.purchase(n,this.purchaseIdempotencyKey).subscribe({next:a=>{this.isSubmitting.set(!1),a.status?(this.purchaseIdempotencyKey=null,this.submitAttempted.set(!1),this.notificationService.success(a.message||"Gift card purchased
1successfully!"),a.data.payment_status==="pending"&&this.notificationService.info("Payment is processing \u2014 your gift cards will activate once confirmed."),this.persistGiftCardCheckoutResponse(a),this.trackGiftCardPurchase(a),this.router.navigate([a.data.order_id,"thank-you"])):this.notificationService.error(a.message||"Failed to purchase gift card")},error:a=>{console.error("Gift card purchase error:",a),this.isSubmitting.set(!1),this.purchaseIdempotencyKey=null;let _=a?.status;if(_===422&&a?.error?.errors&&this.serverErrors.set(a.error.errors),_===402){let f=a?.error?.message||"Payment was declined. Please check your card details.";this.notificationService.error(f)}else if(_===429)this.notificationService.error("Too many attempts \u2014 please wait a moment.");else{let f=j(a,"Failed to purchase gift card. Please try again.").message;this.notificationService.error(f)}}})}buildNewCardPayment(e,t,n){let d=this.buildPaymentMethodBillingAddress(),a={gateway:e,payment_method:"credit_card",payment_method_data:k(k({},t),d?{billing_address:d}:{})};return this.isAuthenticated()&&(a.save_card=n),a}buildPaymentMethodBillingAddress(){let e=this.giftCardForm.value,t=(e.nameOnCard||"").trim()||(e.senderName||"").trim();return De({billingAddress:e.billingAddress??null,nameOnCard:t,country:this.storeDateTimeService.storeCountry()||"US"})}initializeStripe(e){if(this.stripeCardElement)return;let t=this.storeGateways().find(a=>a.gateway==="stripe")?.publishable_key?.trim();if(!t){this.stripeError.set("Card payment is currently unavailable. Please choose another payment method.");return}let n=()=>{this.stripeInstance=Stripe(t);let a=this.stripeInstance.elements();this.stripeCardElement=a.create("card",{style:{base:{fontSize:"16px",color:"#424770",fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',"::placeholder":{color:"#aab7c4"}},invalid:{color:"#9e2146"}}}),this.stripeCardElement.mount(e),this.stripeCardElement.on("change",_=>{this.stripeError.set(_.error?.message||null),this.stripeReady.set(_.complete)})};if(typeof Stripe<"u"){n();return}let d=document.createElement("script");d.src="https://js.stripe.com/v3/",d.async=!0,d.onload=()=>n(),d.onerror=()=>this.stripeError.set("Failed to load payment processor. Please refresh the page."),document.head.appendChild(d)}destroyStripeElement(){this.stripeCardElement&&(this.stripeCardElement.destroy(),this.stripeCardElement=null),this.stripeReady.set(!1),this.stripeError.set(null)}tokenizeStripeCard(){return!this.stripeInstance||!this.stripeCardElement?Promise.reject(new Error("Card entry is not ready. Please try again.")):this.stripeInstance.createPaymentMethod({type:"card",card:this.stripeCardElement}).then(e=>{if(e.error)throw new Error(e.error.message);if(!e.paymentMethod?.id)throw new Error("Failed to tokenize card");return{paymentMethodId:e.paymentMethod.id}})}persistGiftCardCheckoutResponse(e){try{let t=e.data?.gift_cards||[],n=e.data.payment_status==="pending",d=this.defaultImage(),a={order_id:e.data.order_id,order_number:e.data.order_number||"",order_type:"delivery",payment_method:"credit_card",payment_method_title:"Gift Card Purchase",expected_delivery_date:"Digital delivery",shipping_address:void 0,billing_address:void 0,payment_result:{payment_status:e.data.payment_status||"captured",payment_details:[],redirect_url:""},products:t.map(p=>({product_id:p.id,id:p.id,name:n?"Gift Card \u2014 Processing":`Gift Card \u2014 ${p.code}`,quantity:1,subtotal:p.amount,total:p.amount,price:p.amount})),totals:{subtotal:String(this.subtotal()),shipping_total:"0",total_tax:"0",discount_total:String(this.discount()),total:e.data.total||String(this.total()),gift_card_lines:t.map(p=>({code:n?"":p.code,amount:p.amount,is_active:p.is_active})),default_image_url:d||null},extensions:{gift_card_purchase:{payment_pending:n,default_image_url:d||null}}},_=localStorage.getItem("ecc_checkout_history"),w=(_?JSON.parse(_):[]).filter(p=>p.order_id!==e.data.order_id);w.unshift(a),localStorage.setItem("ecc_checkout_history",JSON.stringify(w))}catch(t){console.error("Failed to persist gift card checkout response:",t)}}trackGiftCardPurchase(e){let t=e.data?.gift_cards||[],n=Number.parseFloat(e.data.total||String(this.total())||"0");this.analytics.trackPurchase({orderId:e.data.order_id,total:Number.isFinite(n)?n:0,items:t.map(d=>{let a=Number.parseFloat(d.amount||"0");return{item_id:d.id,item_name:`Gift Card \u2014 ${d.code||d.id}`,price:Number.isFinite(a)?a:0,quantity:1}}),email:String(this.giftCardForm.get("senderEmail")?.value||"")},{confirmFacebook:!0})}static \u0275fac=function(t){return new(t||i)};static \u0275cmp=ie({type:i,selectors:[["app-gift-card"]],viewQuery:function(t,n){t&1&&re(n.stripeCardContainer,Le,5),t&2&&oe()},decls:6,vars:1,consts:[["stripeCardContainer",""],[1,"gift-card"],[1,"g
1ift-card__container"],[1,"gift-card__error"],[3,"formGroup"],[1,"gift-card__error-icon"],[1,"gift-card__error-title"],[1,"gift-card__error-message"],["routerLink","/",1,"gift-card__error-link"],[3,"ngSubmit","formGroup"],[1,"gift-card__header"],[1,"gift-card__image"],["alt","Gift Card",3,"src"],["src","https://storage.googleapis.com/uxpilot-auth.appspot.com/41fc021d6d-39003b2b4e8446df0b59.png","alt","Gift Card"],[1,"gift-card__details"],[1,"gift-card__title"],[1,"gift-card__amount-section"],[1,"gift-card__label"],[1,"gift-card__amount-options"],["type","button",1,"gift-card__amount-btn",3,"gift-card__amount-btn--active"],[1,"gift-card__hint","gift-card__hint--error"],[1,"gift-card__custom-amount"],[1,"gift-card__field-error"],[1,"gift-card__form-grid"],[1,"gift-card__section"],[1,"gift-card__section-title"],[1,"gift-card__hint"],["formArrayName","recipients"],[1,"gift-card__recipient",3,"formGroupName"],["type","button",1,"gift-card__add-recipient-btn"],[1,"gift-card__field"],["type","email","formControlName","senderEmail","placeholder","[email protected]",1,"gift-card__input",3,"blur","readonly"],[1,"gift-card__coupon-row"],["type","text","formControlName","couponCode","placeholder","Enter coupon code",1,"gift-card__input"],["type","button",1,"gift-card__coupon-btn","gift-card__coupon-btn--remove"],["type","button",1,"gift-card__coupon-btn"],[1,"gift-card__hint","gift-card__hint--success"],[1,"gift-card__payment-mode-toggle"],[1,"gift-card__billing"],[1,"gift-card__billing-title"],["formControlName","billingAddress",3,"placeholder"],[1,"gift-card__summary"],[1,"gift-card__summary-title"],[1,"gift-card__summary-row"],[1,"g
1ift-card__summary-amount"],[1,"gift-card__summary-row","gift-card__summary-row--discount"],[1,"gift-card__summary-divider"],[1,"gift-card__summary-row","gift-card__summary-row--total"],[1,"gift-card__summary-total"],[1,"gift-card__summary-loading"],["type","submit",1,"gift-card__submit-btn",3,"disabled"],[1,"gift-card__secure"],[1,"fa-solid","fa-lock"],[1,"gift-card__login-prompt"],["type","button",1,"gift-card__amount-btn",3,"click"],["type","number","placeholder","Enter custom amount",3,"input","min","max"],[1,"gift-card__recipient-header"],["type","email","formControlName","recipientEmail","placeholder","[email protected]",1,"gift-card__input",3,"blur"],["type","text","formControlName","recipientName","placeholder","Enter recipient's name",1,"gift-card__input",3,"blur"],["formControlName","personalMessage","placeholder","Add a personal message (optional)",1,"gift-card__textarea"],[1,"gift-card__schedule-toggle"],[1,"gift-card__toggle-label"],["type","checkbox","formControlName","scheduleDelivery",1,"gift-card__toggle-checkbox"],[1,"gift-card__toggle-text"],[1,"gift-card__field-row"],[1,"g
1ift-card__recipient-divider"],[1,"gift-card__recipient-label"],["type","button",1,"gift-card__recipient-remove",3,"click"],["type","date","formControlName","deliveryDate",1,"gift-card__input"],["type","time","formControlName","deliveryTime",1,"gift-card__input"],["type","button",1,"gift-card__add-recipient-btn",3,"click"],["type","text","formControlName","senderName","placeholder","Enter your name",1,"gift-card__input"],["type","button",1,"gift-card__coupon-btn","gift-card__coupon-btn--remove",3,"click"],["type","button",1,"gift-card__coupon-btn",3,"click"],["type","button",1,"gift-card__payment-mode-btn",3,"click"],[1,"gift-card__payment-methods"],["type","button",1,"gift-card__payment-method",3,"gift-card__payment-method--selected"],["type","button",1,"gift-card__payment-method",3,"click"],[1,"gift-card__payment-method-exp"],[1,"gift-card__payment-method-badge"],[1,"gift-card__card-entry"],[1,"gift-card__card-entry-note"],[1,"gift-card__save-card-toggle"],[1,"gift-card__stripe-element"],["type","text","formControlName","cardNumber","placeholder","1234 5678 9012 3456","maxlength","19",1,"gift-card__input",3,"input"],["type","text","formControlName","expiryDate","placeholder","MM/YY","maxlength","5",1,"gift-card__input",3,"input"],["type","text","formControlName","cvv","placeholder","123","maxlength","4",1,"gift-card__input",3,"input"],["type","text","formControlName","nameOnCard","placeholder","Name on card","autocomplete","cc-name",1,"gift-card__input"],["type","checkbox","formControlName","saveCard",1,"gift-card__toggle-checkbox"],["routerLink","/login",1,"gift-card__login-link"]],template:function(t,n){t&1&&(o(0,"div",1)(1,"div",2),m(2,Be,1,0,"app-gift-card-skeleton")(3,Ue,9,1,"div",3)(4,Wt,88,46,"form",4)(5,Xt,3,0,"div",3),r()()),t&2&&(s(2),u(n.loading()?2:n.error()?3:n.purchasesDisabled()?5:4))},dependencies:[me,Ne,Se,xe,ye,be,we,Ge,Ae,Ee,Me,Pe,_e,ke,Oe,ce],styles:[".gift-card[_ngcontent-%COMP%]{padding:var(--spacing-xl) 0;min-height:calc(100vh - 200px)}.gift-card__container[_ngcontent-%COMP%]{max-width:1170px;margin:0 auto;padding:0 var(--spacing-md);background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-md)}
1@media(min-width:768px){.gift-card__container[_ngcontent-%COMP%]{padding:var(--spacing-xl)}}@media(min-width:1024px){.gift-card__container[_ngcontent-%COMP%]{padding:var(--spacing-xxl)}}.gift-card__error[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;padding:var(--spacing-xl);text-align:center}.gift-card__error-icon[_ngcontent-%COMP%]{font-size:64px;margin-bottom:var(--spacing-lg)}.gift-card__error-title[_ngcontent-%COMP%]{font-size:var(--font-size-2xl);font-weight:600;color:var(--gray-900);margin-bottom:var(--spacing-md);font-family:var(--font-family-sans)}.gift-card__error-message[_ngcontent-%COMP%]{font-size:var(--font-size-lg);color:var(--gray-600);margin-bottom:var(--spacing-xl);font-family:var(--font-family-sans);max-width:500px}.gift-card__error-link[_ngcontent-%COMP%]{display:inline-block;padding:var(--spacing-sm) var(--spacing-xl);background-color:var(--primary);color:var(--white);text-decoration:none;border-radius:var(--radius-md);font-weight:600;transition:filter .2s}.gift-card__error-link[_ngcontent-%COMP%]:hover{filter:brightness(.9)}.gift-card__description[_ngcontent-%COMP%]{font-size:var(--font-size-base);color:var(--gray-600);margin-bottom:var(--spacing-lg);font-family:var(--font-family-sans);line-height:1.6}.gift-card__header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:var(--spacing-lg);margin-bottom:var(--spacing-xl);padding:var(--spacing-lg)}
1@media(min-width:768px){.gift-card__header[_ngcontent-%COMP%]{flex-direction:row;align-items:flex-start;gap:var(--spacing-xl);padding:0}}.gift-card__image[_ngcontent-%COMP%]{width:100%;height:200px;border-radius:var(--radius-md);overflow:hidden;box-shadow:0 10px 40px #00000026}@media(min-width:768px){.gift-card__image[_ngcontent-%COMP%]{width:384px;height:256px;flex-shrink:0}}.gift-card__image[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:100%;height:100%;object-fit:cover}.gift-card__details[_ngcontent-%COMP%]{flex:1}@media(min-width:768px){.gift-card__details[_ngcontent-%COMP%]{padding-top:var(--spacing-lg)}}.gift-card__title[_ngcontent-%COMP%]{font-size:24px;font-weight:700;color:var(--gray-900);margin:0 0 var(--spacing-lg);font-family:var(--font-title)}@media(min-width:768px){.gift-card__title[_ngcontent-%COMP%]{font-size:28px}}.gift-card__amount-section[_ngcontent-%COMP%]{margin-bottom:var(--spacing-lg)}.gift-card__amount-options[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-sm)}@media(min-width:640px){.gift-card__amount-options[_ngcontent-%COMP%]{grid-template-columns:repeat(4,1fr)}}.gift-card__amount-btn[_ngcontent-%COMP%]{padding:var(--spacing-md);border:2px solid var(--gray-200);border-radius:var(--radius-sm);background:var(--white);font-size:var(--font-size-base);font-weight:700;font-family:var(--font-family-sans);color:var(--gray-900);cursor:pointer;transition:all var(--transition-fast)}.gift-card__amount-btn[_ngcontent-%COMP%]:hover, .gift-card__amount-btn--active[_ngcontent-%COMP%]{border-color:var(--primary);background:#ea432c0d}.gift-card__custom-amount[_ngcontent-%COMP%]{margin-top:var(--spacing-sm)}.gift-card__custom-amount[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{width:100%;padding:var(--spacing-md);border:1px solid var(--gray-200);border-radius:var(--radius-sm);font-size:var(--font-size-base);font-family:var(--font-family-sans)}.gift-card__custom-amount[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:focus{outline:none;border-color:var(--primary)}.gift-card__form-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr;gap:var(--spacing-xl)}@media(min-width:1024px){.gift-card__form-grid[_ngcontent-%COMP%]{grid-template-columns:1fr 1fr}}.gift-card__section[_ngcontent-%COMP%]{padding:0 var(--spacing-lg) var(--spacing-lg)}
1@media(min-width:768px){.gift-card__section[_ngcontent-%COMP%]{padding:0}}.gift-card__section-title[_ngcontent-%COMP%]{font-size:18px;font-weight:700;color:var(--gray-900);margin:0 0 var(--spacing-lg);font-family:var(--font-subtitle)}@media(min-width:768px){.gift-card__section-title[_ngcontent-%COMP%]{font-size:20px}}.gift-card__field[_ngcontent-%COMP%]{margin-bottom:var(--spacing-lg)}.gift-card__field-row[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md)}.gift-card__field-row[_ngcontent-%COMP%] .gift-card__field[_ngcontent-%COMP%]{margin-bottom:var(--spacing-lg)}.gift-card__label[_ngcontent-%COMP%]{display:block;font-size:var(--font-size-sm);font-weight:700;color:var(--gray-900);margin-bottom:var(--spacing-xs);font-family:var(--font-family-sans)}.gift-card__input[_ngcontent-%COMP%]{width:100%;padding:var(--spacing-md);border:1px solid var(--gray-200);border-radius:var(--radius-sm);font-size:var(--font-size-base);font-family:var(--font-family-sans);color:var(--gray-900);transition:border-color var(--transition-fast)}.gift-card__input[_ngcontent-%COMP%]::placeholder{color:var(--gray-400)}.gift-card__input[_ngcontent-%COMP%]:focus{outline:none;border-color:var(--primary)}.gift-card__input--error[_ngcontent-%COMP%]{border-color:var(--primary)}.gift-card__input--readonly[_ngcontent-%COMP%]{background:var(--gray-50);color:var(--gray-600);cursor:default}.gift-card__textarea[_ngcontent-%COMP%]{width:100%;padding:var(--spacing-md);border:1px solid var(--gray-200);border-radius:var(--radius-sm);font-size:var(--font-size-base);font-family:var(--font-family-sans);color:var(--gray-900);min-height:128px;resize:none;transition:border-color var(--transition-fast)}.gift-card__textarea[_ngcontent-%COMP%]::placeholder{color:var(--gray-400)}.gift-card__textarea[_ngcontent-%COMP%]:focus{outline:none;border-color:var(--primary)}.gift-card__field-error[_ngcontent-%COMP%]{display:block;font-size:var(--font-size-xs);color:var(--danger);margin-top:var(--spacing-xs);font-family:var(--font-family-sans)}.gift-card__hint[_ngcontent-%COMP%]{display:block;font-size:var(--font-size-xs);color:var(--gray-500);margin-top:var(--spacing-xs);font-family:var(--font-family-sans)}.gift-card__hint--success[_ngcontent-%COMP%]{color:var(--success, #16a34a)}.gift-card__hint--error[_ngcontent-%COMP%]{color:var(--primary)}.gift-card__schedule-toggle[_ngcontent-%COMP%], .gift-card__save-card-toggle[_ngcontent-%COMP%]{margin-bottom:var(--spacing-lg)}.gift-card__toggle-label[_ngcontent-%COMP%]{display:flex;align-items:center;gap:var(--spacing-sm);cursor:pointer;margin-bottom:var(--spacing-xs)}.gift-card__toggle-checkbox[_ngcontent-%COMP%]{width:18px;height:18px;cursor:pointer;accent-color:var(--primary);flex-shrink:0}.gift-card__toggle-text[_ngcontent-%COMP%]{font-size:var(--font-size-sm);font-weight:600;color:var(--gray-900);font-family:var(--font-family-sans)}.gift-card__recipient[_ngcontent-%COMP%]{margin-bottom:var(--spacing-md)}.gift-card__recipient-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-md)}.gift-card__recipient-label[_ngcontent-%COMP%]{font-size:var(--font-size-sm);font-weight:700;color:var(--gray-900);font-family:var(--font-family-sans)}.gift-card__recipient-remove[_ngcontent-%COMP%]{padding:var(--spacing-xs) var(--spacing-sm);background:none;border:1px solid var(--primary);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:600;font-family:var(--font-family-sans);color:var(--primary);cursor:pointer;transition:all var(--transition-fast)}.gift-card__recipient-remove[_ngcontent-%COMP%]:hover{background:#ea432c0d}.gift-card__recipient-divider[_ngcontent-%COMP%]{height:1px;background:var(--gray-200);margin:var(--spacing-lg) 0}.gift-card__add-recipient-btn[_ngcontent-%COMP%]{display:block;width:100%;padding:var(--spacing-sm) var(--spacing-md);background:none;border:2px dashed var(--gray-300);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:600;font-family:var(--font-family-sans);color:var(--primary);cursor:pointer;transition:all var(--transition-fast);margin-top:var(--spacing-md)}.gift-card__add-recipient-btn[_ngcontent-%COMP%]:hover{border-color:var(--primary);background:#ea432c05}.gift-card__coupon-row[_ngcontent-%COMP%]{display:flex;gap:var(--spacing-sm)}.gift-card__coupon-row[_ngcontent-%COMP%] .gift-card__input[_ngcontent-%COMP%]{flex:1}.gift-card__coupon-btn[_ngcontent-%COMP%]{padding:var(--spacing-md) var(--spacing-lg);background:var(--primary);border:none;border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:600;font-family:var(--font-family-sans);color:var(--white);cursor:pointer;transition:filter var(--transition-fast);white-space:nowrap}.gift-card__coupon-btn[_ngcontent-%COMP%]:hover{filter:brightness(.9)}.gift-card__coupon-btn--remove[_ngcontent-%COMP%]{background:var(--gray-200);color:var(--gray-700)}.gift-card__coupon-btn--remove[_ngcontent-%COMP%]:hover{background:var(--gray-300)}.gift-card__payment-methods[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:var(--spacing-sm)}.gift-card__payment-method[_ngcontent-%COMP%]{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md);border:2px solid var(--gray-200);border-radius:var(--radius-sm);background:var(--white);font-size:var(--font-size-base);font-family:var(--font-family-sans);color:var(--gray-900);
1cursor:pointer;transition:all var(--transition-fast);text-align:left}.gift-card__payment-method[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{font-size:24px;color:var(--gray-600)}.gift-card__payment-method[_ngcontent-%COMP%]:hover{border-color:var(--primary);background:#ea432c05}.gift-card__payment-method--selected[_ngcontent-%COMP%]{border-color:var(--primary);background:#ea432c0d}.gift-card__payment-method-exp[_ngcontent-%COMP%]{margin-left:auto;font-size:var(--font-size-sm);color:var(--gray-600)}.gift-card__payment-method-badge[_ngcontent-%COMP%]{padding:2px 8px;background:var(--primary);color:var(--white);font-size:var(--font-size-xs);font-weight:700;border-radius:4px;text-transform:uppercase}.gift-card__summary[_ngcontent-%COMP%]{background:#ea432c0d;border:1px solid rgba(234,67,44,.2);border-radius:var(--radius-md);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.gift-card__billing[_ngcontent-%COMP%]{margin-bottom:var(--spacing-lg);padding-top:var(--spacing-md);border-top:1px solid var(--gray-200, #e5e7eb)}.gift-card__billing-title[_ngcontent-%COMP%], .gift-card__summary-title[_ngcontent-%COMP%]{font-size:18px;font-weight:700;color:var(--gray-900);margin:0 0 var(--spacing-md);font-family:var(--font-family-sans)}.gift-card__summary-row[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-sm);font-family:var(--font-family-sans);color:var(--gray-600)}.gift-card__summary-row--total[_ngcontent-%COMP%]{margin-bottom:0}.gift-card__summary-row--total[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:first-child{font-size:18px;font-weight:700;color:var(--gray-900)}.gift-card__summary-row--discount[_ngcontent-%COMP%]{color:var(--success, #16a34a)}.gift-card__summary-loading[_ngcontent-%COMP%]{font-size:var(--font-size-xs);color:var(--gray-500);font-family:var(--font-family-sans);text-align:center;margin-top:var(--spacing-sm)}.gift-card__summary-amount[_ngcontent-%COMP%]{font-size:20px;font-weight:700;color:var(--gray-900);font-family:var(--font-family-sans)}.gift-card__summary-divider[_ngcontent-%COMP%]{height:1px;background:#ea432c4d;margin:var(--spacing-sm) 0}.gift-card__summary-total[_ngcontent-%COMP%]{font-size:24px;font-weight:700;color:var(--primary);font-family:var(--font-family-sans)}.gift-card__submit-btn[_ngcontent-%COMP%]{width:100%;padding:var(--spacing-md) var(--spacing-xl);background:var(--primary);border:none;border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:700;font-family:var(--font-family-sans);color:var(--white);text-transform:uppercase;cursor:pointer;transition:all var(--transition-fast);box-shadow:0 4px 15px #ea432c4d}.gift-card__submit-btn[_ngcontent-%COMP%]:hover:not(:disabled){filter:brightness(.9);transform:scale(1.02)}.gift-card__submit-btn[_ngcontent-%COMP%]:disabled{opacity:.7;cursor:not-allowed}.gift-card__secure[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);margin-top:var(--spacing-md);font-size:var(--font-size-xs);color:var(--gray-500);font-family:var(--font-family-sans)}.gift-card__secure[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{font-size:12px}.gift-card__payment-mode-toggle[_ngcontent-%COMP%]{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);padding:4px;background:var(--gray-100);border-radius:var(--radius-sm)}.gift-card__payment-mode-btn[_ngcontent-%COMP%]{flex:1;padding:var(--spacing-sm) var(--spacing-md);background:transparent;border:none;border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:500;font-family:var(--font-family-sans);color:var(--gray-600);cursor:pointer;transition:all var(--transition-fast)}.gift-card__payment-mode-btn[_ngcontent-%COMP%]:hover:not(.gift-card__payment-mode-btn--active){color:var(--gray-900)}.gift-card__payment-mode-btn--active[_ngcontent-%COMP%]{background:var(--white);color:var(--primary);box-shadow:0 1px 3px #0000001a}.gift-card__card-entry[_ngcontent-%COMP%]{margin-top:var(--spacing-md)}.gift-card__card-entry-note[_ngcontent-%COMP%]{font-size:var(--font-size-sm);color:var(--gray-600);margin-bottom:var(--spacing-md);font-family:var(--font-family-sans)}.gift-card__login-prompt[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:4px;margin-top:var(--spacing-lg);padding:var(--spacing-md);background:var(--gray-50);border-radius:var(--radius-sm);font-size:var(--font-size-sm);color:var(--gray-600);font-family:var(--font-family-sans);text-align:center}.gift-card__login-link[_ngcontent-%COMP%]{color:var(--primary);font-weight:600;text-decoration:none}.gift-card__login-link[_ngcontent-%COMP%]:hover{text-decoration:underline}.gift-card__stripe-element[_ngcontent-%COMP%]{border:1px solid var(--gray-300);border-radius:6px;padding:12px 14px;background-color:var(--white)}"],changeDetection:0})};export{qe as GiftCard};
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.