1"use strict";var re,ie,se,oe,le,de,ce,me,ue,pe,fe,ae=Object.freeze,Ye=Object.defineProperty,m=(x,g)=>ae(Ye(x,"raw",{value:ae(g||x.slice())}));(self.webpackChunkDfsCard=self.webpackChunkDfsCard||[]).push([[6273],{6273:(x,g,l)=>{l.r(g),l.d(g,{APR_MASK_SERVICE:()=>H,BALANCE_MASK_SERVICE:()=>D,CalculatorBalanceTransferComponent:()=>Xe,PAYMENT_MASK_SERVICE:()=>z});var V=l(954),p=l(7320),e=l(3370),f=l(4381),$=l(618),C=l(6732);const he=["*"];let j=(()=>{var a;class s{constructor(n){(0,C.A)(this,"ngZone",void 0),(0,C.A)(this,"el",(0,e.inject)(e.ElementRef).nativeElement),this.ngZone=n}blur(){this.el.blur()}click(){this.el.click()}focus(n){this.el.focus(n)}set appearance(n){this.ngZone.runOutsideAngular(()=>this.el.appearance=n)}get appearance(){return this.el.appearance}set emphasis(n){this.ngZone.runOutsideAngular(()=>this.el.emphasis=n)}get emphasis(){return this.el.emphasis}}return a=s,(0,C.A)(s,"\u0275fac",function(n){return new(n||a)(e.\u0275\u0275directiveInject(e.NgZone))}),(0,C.A)(s,"\u0275cmp",e.\u0275\u0275defineComponent({type:a,selectors:[["gds-horizontal-divider"]],inputs:{appearance:"appearance",emphasis:"emphasis"},ngContentSelectors:he,decls:1,vars:0,template:function(n,t){1&n&&(e.\u0275\u0275projectionDef(),e.\u0275\u0275projection(0))},encapsulation:2,changeDetection:0})),s})();var _=l(2222),we=l(1188),ve=l(1221),b=l(8218),L=l(7193),h=l(4615),c=l(6759),ge=l(7660),Ce=l(7394);function be(a,s){if(1&a){const r=e.\u0275\u0275getCurrentView();e.\u0275\u0275elementStart(0,"gds-button",3),e.\u0275\u0275listener("click",function(){e.\u0275\u0275restoreView(r);const t=e.\u0275\u0275nextContext();return e.\u0275\u0275resetView(t.onRemoveRow())}),e.\u0275\u0275element(1,"gds-icon-trash-lined",4),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(2,"gds-button",5),e.\u0275\u0275listener("click",function(){e.\u0275\u0275restoreView(r);const t=e.\u0275\u0275nextContext();return e.\u0275\u0275resetView(t.onRemoveRow())}),e.\u0275\u0275element(3,"gds-icon-trash-lined",6),e.\u0275\u0275text(4),e.\u0275\u0275elementEnd()}if(2&a){const r=e.\u0275\u0275nextContext();e.\u0275\u0275attribute("delegated-aria-label","Delete row "+r.rowNumber),e.\u0275\u0275advance(4),e.\u0275\u0275textInterpolate1(" Remove Balance #",r.rowNumber," ")}}let ye=(()=>{var a;class s{constructor(){this.row=e.input.required(),this.index=e.input.required(),this.totalRows=e.input.required(),this.canRemove=(0,e.input)(!1),this.balanceError=(0,e.input)(null),this.aprError=(0,e.input)(null),this.paymentError=(0,e.input)(null),this.balanceInput=(0,e.output)(),this.aprInput=(0,e.output)(),this.paymentInput=(0,e.output)(),this.removeRow=(0,e.output)()}get rowNumber(){return this.index()+1}get showRowNumber(){return this.totalRows()>1}onBalanceInput(n){this.balanceInput.emit({event:n,index:this.index()})}onAprInput(n){this.aprInput.emit({event:n,index:this.index()})}onPaymentInput(n){this.paymentInput.emit({event:n,index:this.index()})}onRemoveRow(){this.removeRow.emit(this.index())}}return(a=s).\u0275fac=function(n){return new(n||a)},a.\u0275cmp=e.\u0275\u0275defineComponent({type:a,selectors:[["dfs-card-debt-entry-row"]],inputs:{row:[1,"row"],index:[1,"index"],totalRows:[1,"totalRows"],canRemove:[1,"canRemove"],balanceError:[1,"balanceError"],aprError:[1,"aprError"],paymentError:[1,"paymentError"]},outputs:{balanceInput:"balanceInput",aprInput:"aprInput",paymentInput:"paymentInput",removeRow:"removeRow"},decls:5,vars:16,consts:[[1,"dfs-tw-w-full","dfs-tw-h-auto","dfs-tw-flex","dfs-tw-flex-col","md:dfs-tw-flex-row","dfs-tw-gap-20"],["helper-text-placement","below","placeholder","$0",1,"dfs-tw-w-full","dfs-tw-min-w-none",3,"gds-input","label-text","helper-text","value","status","status-text"],["helper-text-placement","below","placeholder","0%",1,"dfs-tw-w-full","dfs-tw-min-w-none",3,"gds-input","label-text","helper-text","value","status","status-text"],["icon-only","","size","small",1,"md:dfs-tw-pt-[36px]","dfs-tw-hidden","md:dfs-tw-block","dfs-tw-shrink-0",3,"click"],["size","small"],["rank","tertiary","size","small",1,"dfs-tw-inline-block","md:dfs-tw-hidden","dfs-tw-w-fit",3,"click"],["size","small","slot","icon-leading"]],template:function(n,t){1&n&&(e.\u0275\u0275elementStart(0,"div",0)(1,"gds-text-field",1),e.\u0275\u0275listener("gds-input",function(o){return t.onBalanceInput(o)}),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(2,"gds-text-field",2),e.\u0275\u0275listener("gds-input",function(o){return t.onAprInput(o)}),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(3,"gds-text-field",1),e.\u0275\u0275listener("gds-input",function(o){return t.onPaymentInput(o)}),e.\u0275\u0275elementEnd(),e.\u0275\u0275conditionalCreate(4,be,5,2),e.\u0275\u0275elementEnd()),2&n&&(e.\u0275\u0275advance(),e.\u0275\u0275property("label-text","Current Balance"+(t.showRowNumber?" #"+t.rowNumber:""))("helper-text",t.balanceError()?"":"Enter an amount so your total balances are between $500 and $20,000")("value",t.row().controls.balance.value)("status",t.balanceError()?"critical":null)("status-text",t.balanceError()||""),e.\u0275\u0275advance(),e.\u0275\u0275property("label-text","Interest Rate (APR)"+(t.showRowNumber?" #"+t.rowNumber:""))("helper-text",t.aprError()?"":"Enter an APR amount between 1% and 30%")("value",t.row().controls.apr.value)("status",t.aprError()?"critical":null)("status-text",t.aprError()||""),e.\u0275\u0275advance(),e.\u0275\u0275property("label-text","Monthly Payment"+(t.showRowNumber?" #"+t.rowNumber:""))("helper-text",t.paymentError()?"":"Enter your monthly payment")("value",t.row().controls.monthlyPayment.value)("status",t.paymentError()?"critical":null)("status-text",t.paymentError()||""),e.\u0275\u0275advance(),e.\u0275\u0275conditional(t.canRemove()?4:-1))},dependencies:[f.X1,$.t,Ce.Y],encapsulation:2}),s})();var Ee=l(7106),k=l(476),xe=l(5206);function _e(a,s){1&a&&(e.\u0275\u0275elementStart(0,"li",12),e.\u0275\u0275text(1," Great news! With this monthly payment, you'd pay off your balance before the 0% intro APR Period ends. "),e.\u0275\u0275elementEnd())}function Se(a,s){if(1&a&&(e.\u0275\u0275elementStart(0,"li",12),e.\u0275\u0275text(1),e.\u0275\u0275pipe(2,"currency"),e.\u0275\u0275pipe(3,"number"),e.\u0275\u0275elementEnd()),2&a){const r=e.\u0275\u0275nextContext(2);e.\u0275\u0275advance(),e.\u0275\u0275textInterpolate2(" After the 0% intro APR Period ends, you'd have a remaining balance of ",e.\u0275\u0275pipeBind1(2,2,r.remainingBalance()),". To pay it off before this, you could increase your monthly payments to $",e.\u0275\u0275pipeBind1(3,4,r.monthlyPaymentToClear()),". ")}}function Pe(a,s){if(1&a&&(e.\u0275\u0275elementStart(0,"ul",17)(1,"li"),e.\u0275\u0275text(2),e.\u0275\u0275pipe(3,"currency"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(4,"li"),e.\u0275\u0275text(5),e.\u0275\u0275pipe(6,"currency"),e.\u0275\u0275elementEnd()()),2&a){const r=e.\u0275\u0275nextContext(2);e.\u0275\u0275advance(2),e.\u0275\u0275textInterpolate1(" ",e.\u0275\u0275pipeBind4(3,2,r.transferFeeAmount(),"USD","symbol","1.0-0")," Discover Card "),e.\u0275\u0275advance(3),e.\u0275\u0275textInterpolate1(" ",e.\u0275\u0275pipeBind4(6,7,r.projectedCurrentCardInterest(),"USD","symbol","1.0-0")," Current Card(s) ")}}function Re(a,s){if(1&a&&(e.\u0275\u0275elementStart(0,"span",19),e.\u0275\u0275text(1),e.\u0275\u0275pipe(2,"currency"),e.\u0275\u0275elementEnd()),2&a){const r=e.\u0275\u0275nextContext(2);e.\u0275\u0275advance(),e.\u0275\u0275textInterpolate(e.\u0275\u0275pipeBind4(2,1,r.transferFeeAmount(),"USD","symbol","1.0-0"))}}function Ae(a,s){if(1&a&&(e.\u0275\u0275elementStart(0,"span",22),e.\u0275\u0275text(1),e.\u0275\u0275pipe(2,"currency"),e.\u0275\u0275elementEnd()),2&a){const r=e.\u0275\u0275nextContext(2);e.\u0275\u0275advance(),e.\u0275\u0275textInterpolate(e.\u0275\u0275pipeBind4(2,1,r.projectedCurrentCardInterest(),"USD","symbol","1.0-0"))}}function Me(a,s){if(1&a&&e.\u0275\u0275element(0,"div",24),2&a){const r=e.\u0275\u0275nextContext(2);e.\u0275\u0275property("innerHTML",r.resultsContent().subHeadline,e.\u0275\u0275sanitizeHtml)}}function Ie(a,s){if(1&a&&(e.\u0275\u0275elementStart(0,"h2",2),e.\u0275\u0275text(1),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(2,"div",3)(3,"div",4)(4,"h3",5),e.\u0275\u0275text(5," Estimated Savings "),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(6,"div",6)(7,"div",7)(8,"span",8),e.\u0275\u0275text(9),e.\u0275\u0275pipe(10,"number"),e.\u0275\u0275elementEnd()(),e.\u0275\u0275elementStart(11,"ul",9)(12,"li",10)(13,"span"),e.\u0275\u0275text(14,"0% intro APR period"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(15,"span",11),e.\u0275\u0275text(16),e.\u0275\u0275elementEnd()(),e.\u0275\u0275elementStart(17,"li",10)(18,"span"),e.\u0275\u0275text(19,"Monthly payment"),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(20,"span",11),e.\u0275\u0275text(2
11),e.\u0275\u0275pipe(22,"currency"),e.\u0275\u0275elementEnd()(),e.\u0275\u0275conditionalCreate(23,_e,2,0,"li",12)(24,Se,4,6,"li",12),e.\u0275\u0275elementEnd()()(),e.\u0275\u0275element(25,"gds-vertical-divider",13)(26,"gds-horizontal-divider",14),e.\u0275\u0275elementStart(27,"div",15)(28,"h3",5),e.\u0275\u0275text(29," Interest and Fees "),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(30,"div",16),e.\u0275\u0275conditionalCreate(31,Pe,7,12,"ul",17),e.\u0275\u0275elementStart(32,"div",18),e.\u0275\u0275conditionalCreate(33,Re,3,6,"span",19),e.\u0275\u0275element(34,"div",20),e.\u0275\u0275elementStart(35,"span",21),e.\u0275\u0275text(36,"Discover Card"),e.\u0275\u0275elementEnd()(),e.\u0275\u0275elementStart(37,"div",18),e.\u0275\u0275conditionalCreate(38,Ae,3,6,"span",22),e.\u0275\u0275element(39,"div",23),e.\u0275\u0275elementStart(40,"span",21),e.\u0275\u0275text(41,"Current Card(s)"),e.\u0275\u0275elementEnd()()()()(),e.\u0275\u0275conditionalCreate(42,Me,1,1,"div",24)),2&a){const r=e.\u0275\u0275nextContext();e.\u0275\u0275advance(),e.\u0275\u0275textInterpolate1(" ",r.resultsContent().headline," "),e.\u0275\u0275advance(7),e.\u0275\u0275classProp("dfs-tw-text-card-emphasis",r.estimatedSavings()>0)("dfs-tw-text-neutral-secondary",!r.estimatedSavings()),e.\u0275\u0275advance(),e.\u0275\u0275textInterpolate(r.displayedSavings()>0?e.\u0275\u0275pipeBind1(10,19,r.displayedSavings()):"__"),e.\u0275\u0275advance(7),e.\u0275\u0275textInterpolate1("",r.introPeriod()," months"),e.\u0275\u0275advance(5),e.\u0275\u0275textInterpolate(r.monthlyPayment()?e.\u0275\u0275pipeBind4(22,21,r.monthlyPayment(),"USD","symbol","1.0-0"):"$--"),e.\u0275\u0275advance(2),e.\u0275\u0275conditional(r.calculated()&&r.isFullyPaidOff()?23:r.calculated()?24:-1),e.\u0275\u0275advance(8),e.\u0275\u0275conditional(r.calculated()?31:-1),e.\u0275\u0275advance(2),e.\u0275\u0275conditional(r.calculated()?33:-1),e.\u0275\u0275advance(),e.\u0275\u0275styleProp("height",r.discoverCardBarHeightPercent||8,"%")("min-height",r.transferFeeAmount()>0?20:0,"px"),e.\u0275\u0275advance(4),e.\u0275\u0275conditional(r.calculated()?38:-1),e.\u0275\u0275advance(),e.\u0275\u0275styleProp("height",r.projectedCurrentCardInterest()>0?100:8,"%"),e.\u0275\u0275advance(3),e.\u0275\u0275conditional(r.calculated()?42:-1)}}function Be(a,s){1&a&&(e.\u0275\u0275elementStart(0,"div",1),e.\u0275\u0275element(1,"gds-icon-caution-triangle-filled",25),e.\u0275\u0275elementStart(2,"h2",26),e.\u0275\u0275text(3," Looks like there aren't any potential savings"),e.\u0275\u0275elementStart(4,"sup")(5,"a",27),e.\u0275\u0275text(6,"*"),e.\u0275\u0275elementEnd()(),e.\u0275\u0275text(7," with a balance transfer "),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(8,"p",28),e.\u0275\u0275text(9," If you'd like, you can adjust the information you entered. "),e.\u0275\u0275elementEnd()())}let Te=(()=>{var a;class s{constructor(){this.calculated=(0,e.input)(!1),this.noSavings=(0,e.input)(!1),this.introPeriod=(0,e.input)(15),this.displayedSavings=(0,e.input)(0),this.estimatedSavings=(0,e.input)(0),this.monthlyPayment=(0,e.input)(0),this.isFullyPaidOff=(0,e.input)(!1),this.remainingBalance=(0,e.input)(0),this.monthlyPaymentToClear=(0,e.input)(0),this.transferFeeAmount=(0,e.input)(0),this.projectedCurrentCardInterest=(0,e.input)(0),this.resultsContent=(0,e.input)({headline:"",subHeadline:""})}get discoverCardBarHeightPercent(){const n=this.projectedCurrentCardInterest();return n<=0?0:Math.min(100,this.transferFeeAmount()/n*100)}}return(a=s).\u0275fac=function(n){return new(n||a)},a.\u0275cmp=e.\u0275\u0275defineComponent({type:a,selectors:[["dfs-card-results-panel"]],inputs:{calculated:[1,"calculated"],noSavings:[1,"noSavings"],introPeriod:[1,"introPeriod"],displayedSavings:[1,"displayedSavings"],estimatedSavings:[1,"estimatedSavings"],monthlyPayment:[1,"monthlyPayment"],isFullyPaidOff:[1,"isFullyPaidOff"],remainingBalance:[1,"remainingBalance"],monthlyPaymentToClear:[1,"monthlyPaymentToClear"],transferFeeAmount:[1,"transferFeeAmount"],projectedCurrentCardInterest:[1,"projectedCurrentCardInterest"],resultsContent:[1,"resultsContent"]},decls:3,vars:1,consts:[["id","balance-transfer-results",1,"dfs-tw-border-solid","dfs-tw-border-medium","dfs-tw-border-[#dbdbdb]","dfs-tw-rounded-large","dfs-tw-px-16","dfs-tw-my-40","dfs-tw-overflow-hidden"],[1,"dfs-tw-py-40","dfs-tw-px-16","dfs-tw-text-center"],[1,"dfs-tw-py-40","dfs-tw-text-24","dfs-tw-text-center","dfs-tw-leading-medium","dfs-tw-mx-auto"],[1,"dfs-tw-flex","dfs-tw-flex-col","lg:dfs-tw-flex-row","lg:dfs-tw-justify-center","dfs-tw-max-w-[500px]","dfs-tw-mx-auto","dfs-tw-pb-40","lg:dfs-tw-max-w-full","lg:dfs-tw-pt-40","lg:dfs-tw-pb-56","dfs-tw-gap-40","lg:dfs-tw-gap-none"],[1,"lg:dfs-tw-w-[66%]","lg:dfs-tw-pr-64","xl:dfs-tw-pr-96"],[1,"dfs-tw-text-20","dfs-tw-font-discover-bold","dfs-tw-mb-20","dfs-tw-text-center","md:dfs-tw-mb-40"],[1,"lg:dfs-tw-flex","lg:dfs-tw-justify-end","lg:dfs-tw-gap-64"],[1,"dfs-tw-flex","dfs-tw-justify-center","dfs-tw-min-w-[270px]"],[1,"dfs-tw-text-[80px]","dfs-tw-leading-ratio120","md:dfs-tw-text-[110px]","lg:dfs-tw-text-[80px]","before:dfs-tw-content-['$']","before:dfs-tw-text-48","before:dfs-tw-leading-explicit-large2","before:dfs-tw-align-top","before:dfs-tw-relative","before:dfs-tw-top-08","before:dfs-tw-text-card-emphasis","md:before:dfs-tw-text-64","md:before:dfs-tw-leading-[64px]","after:dfs-tw-content-['*']","after:dfs-tw-text-48","after:dfs-tw-leading-explicit-large2","after:dfs-tw-align-top","after:dfs-tw-text-card-emphasis","md:after:
1dfs-tw-text-64","md:after:dfs-tw-leading-[64px]"],[1,"dfs-tw-text-16","dfs-tw-mt-20","dfs-tw-flex","dfs-tw-flex-col","dfs-tw-gap-12","lg:dfs-tw-w-[350px]"],[1,"dfs-tw-flex","dfs-tw-justify-between"],[1,"dfs-tw-font-discover-bold"],[1,"dfs-tw-text-14"],["emphasis","low",1,"dfs-tw-hidden","lg:dfs-tw-block"],["emphasis","low",1,"lg:dfs-tw-hidden"],[1,"dfs-tw-flex","dfs-tw-flex-col","dfs-tw-items-center","lg:dfs-tw-w-[33%]"],[1,"dfs-tw-flex","dfs-tw-gap-12","dfs-tw-justify-center","dfs-tw-text-center","dfs-tw-text-12","dfs-tw-items-end"],["aria-live","polite",1,"dfs-tw-sr-only"],["aria-hidden","true",1,"dfs-tw-w-[110px]","dfs-tw-h-[160px]","dfs-tw-flex","dfs-tw-flex-col","dfs-tw-justify-end","dfs-tw-items-center"],[1,"dfs-tw-font-discover-bold","dfs-tw-mb-4"],[1,"dfs-tw-w-full","dfs-tw-bg-dfs-midnight","dfs-tw-rounded-t-tiny","dfs-tw-transition-all","dfs-tw-duration-300",2,"transition","all 600ms"],[1,"dfs-tw-mt-8"],[1,"dfs-tw-font-discover-bold","dfs-tw-text-neutral-secondary","dfs-tw-mb-4"],[1,"dfs-tw-w-full","dfs-tw-bg-background-very-light-gray","dfs-tw-rounded-t-tiny","dfs-tw-transition-all","dfs-tw-duration-300",2,"transition","all 600ms"],[1,"dfs-tw-text-left","dfs-tw-mx-auto","dfs-tw-mb-40","dfs-tw-max-w-[500px]","dfs-tw-text-16","dfs-tw-leading-ratio150","lg:dfs-tw-text-center","lg:dfs-tw-mb-56","lg:dfs-tw-max-w-[840px]",3,"innerHTML"],["size","large"],[1,"dfs-tw-text-24","dfs-tw-leading-medium"],["href","#legal",1,"dfs-tw-p-[3px]","dfs-tw-underline"],[1,"dfs-tw-text-16","dfs-tw-leading-ratio150"]],template:function(n,t){1&n&&(e.\u0275\u0275elementStart(0,"div",0),e.\u0275\u0275conditionalCreate(1,Ie,43,26)(2,Be,10,0,"div",1),e.\u0275\u0275elementEnd()),2&n&&(e.\u0275\u0275advance(),e.\u0275\u0275conditional(t.noSavings()?2:1))},dependencies:[L.xN,k.F,xe.v,_.H4,j,Ee.s,p.DecimalPipe,p.CurrencyPipe],encapsulation:2}),s})();function Fe(a,s){if(1&a&&(e.\u0275\u0275domElementStart(0,"span",14),e.\u0275\u0275text(1),e.\u0275\u0275pipe(2,"currency"),e.\u0275\u0275domElementEnd()),2&a){const r=e.\u0275\u0275nextContext();e.\u0275\u0275advance(),e.\u0275\u0275textInterpolate1("Minimum monthly payment: ",r.estimatedMinPayment()?e.\u0275\u0275pipeBind4(2,1,r.estimatedMinPayment(),"USD","symbol","1.0-0"):"$--")}}let Ne=(()=>{var a;class s{constructor(){this.calculated=(0,e.input)(!1),this.averageAPR=(0,e.input)(0),this.projectedCurrentCardInterest=(0,e.input)(0),this.introPeriod=(0,e.input)(15),this.introFeePercent=(0,e.input)(.03),this.transferFeeAmount=(0,e.input)(0),this.estimatedSavings=(0,e.input)(0),this.estimatedMinPayment=(0,e.input)(0)}}return(a=s).\u0275fac=function(n){return new(n||a)},a.\u0275cmp=e.\u0275\u0275defineComponent({type:a,selectors:[["dfs-card-savings-breakdown"]],inputs:{calculated:[1,"calculated"],averageAPR:[1,"averageAPR"],projectedCurrentCardInterest:[1,"projectedCurrentCardInterest"],introPeriod:[1,"introPeriod"],introFeePercent:[1,"introFeePercent"],transferFeeAmount:[1,"transferFeeAmount"],estimatedSavings:[1,"estimatedSavings"],estimatedMinPayment:[1,"estimatedMinPayment"]},decls:47,vars:24,consts:[[1,"dfs-tw-p-20","md:dfs-tw-p-32","lg:dfs-tw-px-[110px]","dfs-tw-border-solid","dfs-tw-border-medium","dfs-tw-border-[#dbdbdb]","dfs-tw-rounded-large"],[1,"dfs-tw-text-20","dfs-tw-leading-[28px]","dfs-tw-mb-20","dfs-tw-relative","before:dfs-tw-content-['']","before:dfs-tw-block","before:dfs-tw-w-full","before:dfs-tw-h-[1px]","before:dfs-tw-bg-[#dbdbdb]","before:dfs-tw-absolute","before:dfs-tw-top-[calc(50%+1px)]","before:dfs-tw-left-[2px]","before:dfs-tw-z-[0]"],[1,"dfs-tw-font-discover-bold","dfs-tw-relative","dfs-tw-z-[1]","dfs-tw-bg-background-base01","dfs-tw-pr-12"],[1,"dfs-tw-text-16","dfs-tw-leading-ratio150"],[1,"dfs-tw-flex","dfs-tw-justify-between","dfs-tw-pb-20"],[1,"dfs-tw-flex-[0_0_calc(100%-90px)]","dfs-tw-pr-[10px]","sm:dfs-tw-pr-20"],[1,"dfs-tw-flex","dfs-tw-flex-[0_0_90px]","dfs-tw-justify-end"],[1,"sm:dfs-tw-text-18"],[1,"dfs-tw-sr-only"],[1,"dfs-tw-flex","dfs-tw-flex-[0_0_90px]","dfs-tw-justify-between"],["aria-hidden","true"],["aria-hidden","true",1,"dfs-tw-inline-block","dfs-tw-text-20"],[1,"dfs-tw-flex","dfs-tw-justify-betwee","dfs-tw-border-t-medium","dfs-tw-border-[#dbdbdb]","dfs-tw-pt-24"],[1,"dfs-tw-font-discover-bold"],[1,"dfs-tw-block","dfs-tw-text-12"]],template:function(n,t){1&n&&(e.\u0275\u0275domElementStart(0,"div",0)(1,"h3",1)(2,"span",2),e.\u0275\u0275text(3,"Savings breakdown"),e.\u0275\u0275domElementEnd()(),e.\u0275\u0275domElementStart(4,"ul",3)(5,"li",4)(6,"p",5),e.\u0275\u0275text(7),e.\u0275\u0275pipe(8,"number"),e.\u0275\u0275domElementEnd(),e.\u0275\u0275domElementStart(9,"p",6)(10,"span",7),e.\u0275\u0275text(11),e.\u0275\u0275pipe(12,"currency"),e.\u0275\u0275domElementEnd()()(),e.\u0275\u0275domElementStart(13,"li",4)(14,"span",8),e.\u0275\u0275text(15,"minus the "),e.\u0275\u0275domElementEnd(),e.\u0275\u0275domElementStart(16,"p",5),e.\u0275\u0275text(17),e.\u0275\u0275domElementEnd(),e.\u0275\u0275domElementStart(18,"p",9)(19,"span",10),e.\u0275\u0275text(20,"-"),e.\u0275\u0275domElementEnd(),e.\u0275\u0275domElementStart(21,"span"),e.\u0275\u0275text(22,"$0"),e.\u0275\u0275domElementEnd()()(),e.\u0275\u0275domElementStart(23,"li",4)(24,"span",8),e.\u0275\u0275text(25,"minu
1s the "),e.\u0275\u0275domElementEnd(),e.\u0275\u0275domElementStart(26,"p",5),e.\u0275\u0275text(27),e.\u0275\u0275domElementEnd(),e.\u0275\u0275domElementStart(28,"p",9)(29,"span",11),e.\u0275\u0275text(30,"-"),e.\u0275\u0275domElementEnd(),e.\u0275\u0275domElementStart(31,"span"),e.\u0275\u0275text(32),e.\u0275\u0275pipe(33,"currency"),e.\u0275\u0275domElementEnd()()(),e.\u0275\u0275domElementStart(34,"li",12)(35,"p",5)(36,"span",13),e.\u0275\u0275text(37,"Estimated savings"),e.\u0275\u0275domElementEnd(),e.\u0275\u0275conditionalCreate(38,Fe,3,6,"span",14),e.\u0275\u0275domElementEnd(),e.\u0275\u0275domElementStart(39,"p",9)(40,"span",11),e.\u0275\u0275text(41,"="),e.\u0275\u0275domElementEnd(),e.\u0275\u0275domElementStart(42,"span",8),e.\u0275\u0275text(43," equals "),e.\u0275\u0275domElementEnd(),e.\u0275\u0275domElementStart(44,"span",13),e.\u0275\u0275text(45),e.\u0275\u0275pipe(46,"currency"),e.\u0275\u0275domElementEnd()()()()()),2&n&&(e.\u0275\u0275advance(7),e.\u0275\u0275textInterpolate1(" Interest with your current card(s) (",t.averageAPR()?e.\u0275\u0275pipeBind1(8,7,t.averageAPR()):"--","% APR) "),e.\u0275\u0275advance(4),e.\u0275\u0275textInterpolate(t.calculated()?e.\u0275\u0275pipeBind4(12,9,t.projectedCurrentCardInterest(),"USD","symbol","1.0-0"):"$--"),e.\u0275\u0275advance(6),e.\u0275\u0275textInterpolate1(" Interest with an intro APR for ",t.introPeriod()," months (0% intro APR) "),e.\u0275\u0275advance(10),e.\u0275\u0275textInterpolate1(" Balance transfer fee (",100*t.introFeePercent(),"%) "),e.\u0275\u0275advance(5),e.\u0275\u0275textInterpolate(t.calculated()?e.\u0275\u0275pipeBind4(33,14,t.transferFeeAmount(),"USD","symbol","1.0-0"):"$--"),e.\u0275\u0275advance(6),e.\u0275\u0275conditional(t.calculated()&&t.estimatedSavings()>0?38:-1),e.\u0275\u0275advance(7),e.\u0275\u0275textInterpolate(t.calculated()?e.\u0275\u0275pipeBind4(46,19,t.estimatedSavings(),"USD","symbol","1.0-0"):"$--"))},dependencies:[p.CommonModule,p.DecimalPipe,p.CurrencyPipe],encapsulation:2}),s})();l(8224);var S=(a=>(a.Default="default",a.OnImage="on-image",a))(S||{}),v=(a=>(a.Low="low",a.Medium="medium",a.High="high",a))(v||{});const P={appearance:"default",emphasis:"medium"};var u=l(5027),y=l(5847);let O,Z;const Ve=(0,u.AH)(Z||(Z=ie||(ie=m(['\n :host {\n --gds-divider-size: 1px;\n }\n\n /* General Horizontal Divider Styles */\n\n .gds-horizontal-divider {\n border: none;\n margin: 0;\n height: var(--gds-divider-size, 1px);\n background-color: var(--gds-color-border-neutral-emphasis-medium, hsl(0 0% 43%));\n }\n\n /*\n VO doesn\'t recognize a role="separator" element with 1px width,\n workaround is to create an inner element with the necessary accessibility styling,\n allowing the divider to appear as desired,\n to allow both core and wc ADA compliance\n */\n\n .gds-horizontal-divider--accessibility {\n height: 2px;\n }\n\n .gds-horizontal-divider--appearance-default.gds-horizontal-divider--emphasis-low {\n background-color: var(--gds-color-border-neutral-emphasis-low, hsl(0 0% 83%));\n }\n\n .gds-horizontal-divider--appearance-default.gds-horizontal-divider--emphasis-medium {\n background-color: var(--gds-color-border-neutral-emphasis-medium, hsl(0 0% 43%));\n }\n\n .gds-horizontal-divider--appearance-default.gds-horizontal-divider--emphasis-high {\n background-color: var(--gds-color-border-neutral-emphasis-high, hsl(0 0% 7%));\n }\n\n .gds-horizontal-divider--appearance-on-image.gds-horizontal-divider--emphasis-low {\n background-color: var(--gds-color-border-on-image-emphasis-low, hsla(0 0% 100% / 0.2));\n }\n\n .gds-horizontal-divider--appearance-on-image.gds-horizontal-divider--emphasis-medium {\n background-color: var(--gds-color-border-on-image-emphasis-medium, hsl(0 0% 100%));\n }\n\n .gds-horizontal-divider--appearance-on-image.gds-horizontal-divider--emphasis-high {\n background-color: var(--gds-color-border-on-image-emphasis-high, hsl(0 0% 100%));\n }\n']))));var W=l(2861),R=l(7397),$e=Object.defineProperty,je=Object.getOwnPropertyDescriptor,G=(a,s,r,n)=>{for(var o,t=n>1?void 0:n?je(s,r):s,i=a.length-1;i>=0;i--)(o=a[i])&&(t=(n?o(s,r,t):o(t))||t);return n&&t&&$e(s,r,t),t};let A=(()=>{class s extends R.jF{constructor(){super(...arguments),this.appearance=P.appearance,this.emphasis=P.emphasis}getName(){return"gds-horizontal-divider"}render(){return function ze({appearance:a,emphasis:s}=P){const r={"gds-horizontal-divider":!0,"gds-horizontal-divider--appearance-default":a===S.Default,"gds-horizontal-divider--appearance-on-image":a===S.OnImage,"gds-horizontal-divider--emphasis-low":s===v.Low,"gds-horizontal-divider--emphasis-medium":s===v.Medium,"gds-horizontal-divider--emphasis-high":s===v.High};return(0,u.qy)(O||(O=re||(re=m(["<div class=",' part="divider">\n <div\n role="separator"\n class="gds-horizontal-divider--accessibility"\n aria-hidden=','\n aria-orientation="horizontal"\n ></div>\n </div>']))),(0,y.H)(r),s===v.Low?"true":"false")}({appearance:this.appearance,emphasis:this.emphasis})}}return s.styles=[R.$m,R.O5,Ve],s})();G([(0,W.MZ)({type:String,reflect:!0})],A.prototype,"appearance",2),G([(0,W.MZ)({type:String,reflect:!0})],A.prototype,"emphasis",2),customElements.get("gds-horizontal-divider")||customElements.define("gds-horizontal-divider",A);var M=l(8741),I=l(4769),B=l(2646);let J,X,U,Y,K,Q,q,ee,te;customElements.get("gds-icon-caution-triangle-filled")||customElements.define("gds-icon-caution-triangle-filled",class Le extends B.j{render(){const s="small"===this.size;
1return(0,u.qy)(J||(J=se||(se=m(['\n <svg\n viewBox="0 0 ','"\n class=',"\n aria-hidden=","\n aria-label=",'\n part="icon"\n focusable="false"\n >\n ',"\n </svg>\n "]))),"small"===this.size?"16 16":"24 24",(0,y.H)({"gds-icon":!0,["gds-icon--color-".concat(this.color===I.Li.CurrentColor?"currentcolor":this.color)]:!0,["gds-icon--size-".concat(this.size)]:!0}),this.delegatedAriaHidden,(0,M.J)(this.delegatedAriaLabel),(0,u.JW)(s?X||(X=oe||(oe=m(['<path d="M15.722 12.2926L9.702 1.47256C8.902 0.172559 7.092 0.172559 6.292 1.47256L0.281998 12.2926C-0.518002 13.6926 0.481998 15.5026 2.182 15.5026H13.912C15.512 15.5026 16.522 13.7026 15.712 12.2926H15.722ZM7.002 5.48256C7.002 4.98256 7.502 4.48256 8.002 4.48256C8.502 4.48256 9.002 4.88256 9.002 5.48256V9.09256C9.002 9.59256 8.502 10.0926 8.002 10.0926C7.502 10.0926 7.002 9.69256 7.002 9.09256V5.48256ZM8.002 13.7026C7.302 13.7026 6.802 13.1026 6.802 12.5026C6.802 11.8026 7.402 11.3026 8.002 11.3026C8.702 11.3026 9.202 11.9026 9.202 12.5026C9.202 13.2026 8.702 13.7026 8.002 13.7026Z" fill="currentColor"></path>']))):U||(U=le||(le=m(['<path d="M21.975 17.9949L13.725 3.97486C13.365 3.35486 12.715 2.98486 12.005 2.98486C11.295 2.98486 10.635 3.35486 10.275 3.97486L2.02498 17.9949C1.65498 18.6249 1.65498 19.3749 2.01498 20.0049C2.37498 20.6349 3.02498 21.0149 3.74498 21.0149H20.245C20.975 21.0149 21.625 20.6349 21.985 20.0049C22.345 19.3749 22.345 18.6249 21.975 17.9949ZM12.005 15.7649C12.695 15.7649 13.255 16.3249 13.255 17.0149C13.255 17.7049 12.695 18.2649 12.005 18.2649C11.315 18.2649 10.755 17.7049 10.755 17.0149C10.755 16.3249 11.315 15.7649 12.005 15.7649ZM11.005 13.2649V9.01486C11.005 8.46486 11.455 8.01486 12.005 8.01486C12.555 8.01486 13.005 8.46486 13.005 9.01486V13.2649C13.005 13.8149 12.555 14.2649 12.005 14.2649C11.455 14.2649 11.005 13.8149 11.005 13.2649Z" fill="currentColor"></path>'])))))}}),l(4387),customElements.get("gds-icon-plus-encircled-lined")||customElements.define("gds-icon-plus-encircled-lined",class ke extends B.j{render(){const s="small"===this.size;
1return(0,u.qy)(Y||(Y=de||(de=m(['\n <svg\n viewBox="0 0 ','"\n class=',"\n aria-hidden=","\n aria-label=",'\n part="icon"\n focusable="false"\n >\n ',"\n </svg>\n "]))),"small"===this.size?"16 16":"24 24",(0,y.H)({"gds-icon":!0,["gds-icon--color-".concat(this.color===I.Li.CurrentColor?"currentcolor":this.color)]:!0,["gds-icon--size-".concat(this.size)]:!0}),this.delegatedAriaHidden,(0,M.J)(this.delegatedAriaLabel),(0,u.JW)(s?K||(K=ce||(ce=m(['<path d="M9 7H11C11.5 7 12 7.5 12 8C12 8.5 11.5 9 11 9H9V11C9 11.5 8.5 12 8 12C7.5 12 7 11.5 7 11V9H5C4.5 9 4 8.5 4 8C4 7.5 4.5 7 5 7H7V5C7 4.5 7.5 4 8 4C8.5 4 9 4.5 9 5V7Z" fill="currentColor"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M0 8C0 3.6 3.6 0 8 0C12.4 0 16 3.6 16 8C16 12.4 12.4 16 8 16C3.6 16 0 12.4 0 8ZM2 8C2 11.3 4.7 14 8 14C11.3 14 14 11.3 14 8C14 4.7 11.3 2 8 2C4.7 2 2 4.7 2 8Z" fill="currentColor"></path>']))):Q||(Q=me||(me=m(['<path d="M13 11H16C16.55 11 17 11.45 17 12C17 12.55 16.55 13 16 13H13V16C13 16.55 12.55 17 12 17C11.45 17 11 16.55 11 16V13H8C7.45 13 7 12.55 7 12C7 11.45 7.45 11 8 11H11V8C11 7.45 11.45 7 12 7C12.55 7 13 7.45 13 8V11Z" fill="currentColor"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M2 12C2 6.48 6.48 2 12 2C17.52 2 22 6.48 22 12C22 17.52 17.52 22 12 22C6.48 22 2 17.52 2 12ZM4 12C4 16.41 7.59 20 12 20C16.41 20 20 16.41 20 12C20 7.59 16.41 4 12 4C7.59 4 4 7.59 4 12Z" fill="currentColor"></path>'])))))}}),customElements.get("gds-icon-trash-lined")||customElements.define("gds-icon-trash-lined",class Oe extends B.j{render(){const s="small"===this.size;
1return(0,u.qy)(q||(q=ue||(ue=m(['\n <svg\n viewBox="0 0 ','"\n class=',"\n aria-hidden=","\n aria-label=",'\n part="icon"\n focusable="false"\n >\n ',"\n </svg>\n "]))),"small"===this.size?"16 16":"24 24",(0,y.H)({"gds-icon":!0,["gds-icon--color-".concat(this.color===I.Li.CurrentColor?"currentcolor":this.color)]:!0,["gds-icon--size-".concat(this.size)]:!0}),this.delegatedAriaHidden,(0,M.J)(this.delegatedAriaLabel),(0,u.JW)(s?ee||(ee=pe||(pe=m(['<path d="M14 4H12.5H11V2C11 0.9 10.1 0 9 0H7C5.9 0 5 0.9 5 2V4H3.5H2C1.45 4 1 4.45 1 5C1 5.55 1.45 6 2 6H2.55L2.95 14.1C3 15.17 3.88 16 4.95 16H11.05C12.12 16 12.99 15.17 13.05 14.1L13.45 6H14C14.55 6 15 5.55 15 5C15 4.45 14.55 4 14 4ZM7 2H9V4H7V2ZM11.05 14H4.95L4.55 6H5H11H11.45L11.05 14Z" fill="currentColor"></path>']))):te||(te=fe||(fe=m(['<path fill-rule="evenodd" clip-rule="evenodd" d="M20 5H15.5V3C15.5 1.9 14.6 1 13.5 1H10.5C9.4 1 8.5 1.9 8.5 3V5H4C3.45 5 3 5.45 3 6C3 6.55 3.45 7 4 7H5.12L5.89 20.12C5.95 21.18 6.83 22 7.89 22H16.12C17.18 22 18.05 21.17 18.12 20.12L18.88 7H20C20.55 7 21 6.55 21 6C21 5.45 20.55 5 20 5ZM10.5 3H13.5V5H10.5V3ZM16.11 20H7.89L7.12 7H16.88L16.11 20Z" fill="currentColor"></path>'])))))}}),l(2108),l(3916);const Ze=["debtRowsContainer"];function We(a,s){1&a&&(e.\u0275\u0275elementStart(0,"div",6),e.\u0275\u0275element(1,"gds-icon-caution-triangle-lined",17),e.\u0275\u0275elementStart(2,"p"),e.\u0275\u0275text(3," Your total balance amount is too high or too low. Please update your current balances so they total to an amount between $500 and $20,000. "),e.\u0275\u0275elementEnd()())}function Ge(a,s){1&a&&e.\u0275\u0275element(0,"gds-horizontal-divider",15)}function Je(a,s){if(1&a){const r=e.\u0275\u0275getCurrentView();e.\u0275\u0275conditionalCreate(0,Ge,1,0,"gds-horizontal-divider",15),e.\u0275\u0275elementStart(1,"div",18)(2,"dfs-card-debt-entry-row",19),e.\u0275\u0275listener("balanceInput",function(t){e.\u0275\u0275restoreView(r);const i=e.\u0275\u0275nextContext();return e.\u0275\u0275resetView(i.onBalanceInput(t.event,t.index))})("aprInput",function(t){e.\u0275\u0275restoreView(r);const i=e.\u0275\u0275nextContext();return e.\u0275\u0275resetView(i.onAprInput(t.event,t.index))})("paymentInput",function(t){e.\u0275\u0275restoreView(r);const i=e.\u0275\u0275nextContext();return e.\u0275\u0275resetView(i.onPaymentInput(t.event,t.index))})("removeRow",function(t){e.\u0275\u0275restoreView(r);const i=e.\u0275\u0275nextContext();return e.\u0275\u0275resetView(i.removeRow(t))}),e.\u0275\u0275elementEnd()()}if(2&a){const r=s.$implicit,n=s.$index,t=e.\u0275\u0275nextContext();e.\u0275\u0275conditional(n>0?0:-1),e.\u0275\u0275advance(2),e.\u0275\u0275property("row",r)("index",n)("totalRows",t.debtEntries.controls.length)("canRemove",t.canRemoveRow)("balanceError",t.getFieldError("balance",n))("aprError",t.getFieldError("apr",n))("paymentError",t.getFieldError("monthlyPayment",n))}}const D=new e.InjectionToken("BalanceMaskService"),z=new e.InjectionToken("PaymentMaskService"),H=new e.InjectionToken("AprMaskService");let Xe=(()=>{var a;class s{constructor(){this.contentType=ve.W.DFS_Calculator,this.balanceMaskService=(0,e.inject)(D),this.paymentMaskService=(0,e.inject)(z),this.aprMaskService=(0,e.inject)(H),this.balanceTransferService=(0,e.inject)(we.JH),this.elementRef=(0,e.inject)(e.ElementRef),this.platformId=(0,e.inject)(e.PLATFORM_ID),this.debtEntries=new f.Yp([],{validators:[this.totalBalanceValidator()]}),this.introPeriod=15,this.introFeePercent=.03,this.MAX_ROWS=5,this.MIN_ROWS=1,this.MIN_BALANCE=500,this.MAX_BALANCE=2e4,this.MIN_APR=1,this.MAX_APR=30,this.MIN_PAYMENT_FLAT=35,this.MIN_PAYMENT_PERCENT=.02,this.MAX_PAYMENT_PERCENT=.25,this.ERROR_BALANCE="Enter an amount so your total balances are between $500 and $20,000",this.ERROR_APR="Enter an APR amount between 1% and 30%",this.calculated=!1,this.showTotalBalanceError=!1,this.displayedSavings=0,this.noSavings=!1,this.validatedRowIndices=new Set,this.calculationErrors=new Map,this.averageAPR=0,this.monthlyPayment=0,this.monthlyPaymentToClear=0,this.estimatedSavings=0,this.estimatedMinPayment=0,this.isFullyPaidOff=!1,this.remainingBalance=0,this.projectedCurrentCardInterest=0,this.transferFeeAmount=0,this.ngZone=(0,e.inject)(e.NgZone),this.animationFrameId=null,this.initializeMaskServices(),this.addRow()}ngOnDestroy(){null!==this.animationFrameId&&(cancelAnimationFrame(this.animationFrameId),this.animationFrameId=null)}initializeMaskServices(){(0,h.Wy)(this.balanceMaskService,"99999"),(0,h.Wy)(this.paymentMaskService,"9999"),(0,h.Fj)(this.aprMaskService)}get canAddRow(){return this.debtEntries.length<this.MAX_ROWS}get canRemoveRow(){return this.debtEntries.length>this.MIN_ROWS}get totalBalanceError(){var n;return(null===(n=this.debtEntries.errors)||void 0===n||null===(n=n.totalBalance)||void 0===n?void 0:n.message)||null}
1addRow(){if(!this.canAddRow)return;const n=new f.gE({balance:new f.MJ("",{nonNullable:!0,validators:[this.balanceValidator()]}),apr:new f.MJ("",{nonNullable:!0,validators:[this.aprValidator()]}),monthlyPayment:new f.MJ("",{nonNullable:!0})});n.controls.monthlyPayment.addValidators(this.monthlyPaymentValidator(n)),this.debtEntries.push(n),this.focusFirstFieldInNewRow()}focusFirstFieldInNewRow(){(0,p.isPlatformBrowser)(this.platformId)&&requestAnimationFrame(()=>{var n;const t=null===(n=this.debtRowsContainer)||void 0===n?void 0:n.nativeElement;if(!t)return;const i=t.querySelectorAll('[name="balance-transfer-debt-entry-row"]'),o=i.item(i.length-1);if(!o)return;const d=o.querySelector('input, select, textarea, button, [tabindex]:not([tabindex="-1"]), gds-input, gds-text-field');null==d||d.focus()})}removeRow(n){if(!this.canRemoveRow)return;this.debtEntries.removeAt(n);const t=new Set;this.validatedRowIndices.forEach(i=>{i<n?t.add(i):i>n&&t.add(i-1)}),this.validatedRowIndices=t,this.captureValidationErrors()}onBalanceInput(n,t){const i=(0,h.CL)(n,this.balanceMaskService,"separator.0");this.debtEntries.at(t).controls.balance.setValue(i.maskedValue)}onAprInput(n,t){const i=(0,h.RG)(n,this.aprMaskService);this.debtEntries.at(t).controls.apr.setValue(i)}onPaymentInput(n,t){const i=(0,h.CL)(n,this.paymentMaskService,"separator.0");this.debtEntries.at(t).controls.monthlyPayment.setValue(i.maskedValue)}calculate(){if(this.removeEmptyRows(),this.debtEntries.controls.forEach((o,d)=>{this.validatedRowIndices.add(d),o.controls.monthlyPayment.updateValueAndValidity()}),this.captureValidationErrors(),this.showTotalBalanceError=this.debtEntries.length>1&&!!this.totalBalanceError,this.debtEntries.invalid)return void(0,c.hm)(this.elementRef);this.calculated=!0;const n=this.debtEntries.value.map(o=>({balance:(0,c.vu)(o.balance||""),apr:(0,c.lo)(o.apr||"")/100,payment:(0,c.vu)(o.monthlyPayment||"")})),t=this.balanceTransferService.calculate(n);this.averageAPR=100*t.averageAPR,this.projectedCurrentCardInterest=Math.ceil(t.projectedCurrentCardInterest),this.transferFeeAmount=Math.ceil(t.transferFeeAmount),this.estimatedSavings=Math.ceil(t.estimatedSavings),this.noSavings=this.estimatedSavings<=0,this.animateCountUp(this.estimatedSavings),this.isFullyPaidOff=t.isFullyPaidOff,this.monthlyPaymentToClear=Math.ceil(t.monthlyPaymentToClear),this.monthlyPayment=t.totalMonthlyPayment,this.remainingBalance=t.remainingBalance,this.estimatedMinPayment=t.estimatedMinPayment;const i=this.elementRef.nativeElement.querySelector("#balance-transfer-results");i&&i.scrollIntoView({behavior:"smooth",block:"center"})}captureValidationErrors(){var n;this.calculationErrors.clear();const t=(null===(n=this.debtEntries.errors)||void 0===n?void 0:n.totalBalance)||null;this.debtEntries.controls.forEach((i,o)=>{if(this.validatedRowIndices.has(o)){const d=i.controls.balance.errors,w=d||t?(0,V.A)((0,V.A)({},d),t&&{totalBalance:t}):null;this.calculationErrors.set("balance-".concat(o),w),this.calculationErrors.set("apr-".concat(o),i.controls.apr.errors),this.calculationErrors.set("monthlyPayment-".concat(o),i.controls.monthlyPayment.errors)}})}getFieldError(n,t){var i;if(!this.validatedRowIndices.has(t))return null;const o=this.calculationErrors.get("".concat(n,"-").concat(t));return(null==o?void 0:o.message)||(null==o||null===(i=o.totalBalance)||void 0===i?void 0:i.message)||null}hasFieldError(n,t){return!!this.getFieldError(n,t)}balanceValidator(){return n=>{if(!n.value)return{message:this.ERROR_BALANCE};const t=(0,c.vu)(n.value);return t<=0||t>this.MAX_BALANCE?{message:this.ERROR_BALANCE}:null}}totalBalanceValidator(){return n=>{const i=n.controls.reduce((o,d)=>o+(0,c.vu)(d.controls.balance.value||""),0);return i<this.MIN_BALANCE||i>this.MAX_BALANCE?{totalBalance:{message:this.ERROR_BALANCE}}:null}}aprValidator(){return n=>{if(!n.value)return{message:this.ERROR_APR};const t=(0,c.lo)(n.value);return t<this.MIN_APR||t>this.MAX_APR?{message:this.ERROR_APR}:null}}monthlyPaymentValidator(n){return(0,ge.i)(()=>{const t=(0,c.vu)(n.controls.balance.value||"");return Math.max(this.MIN_PAYMENT_FLAT,t*this.MIN_PAYMENT_PERCENT)},()=>(0,c.vu)(n.controls.balance.value||"")*this.MAX_PAYMENT_PERCENT,"Enter a monthly payment amount",(t,i)=>"Enter a monthly payment amount between ".concat((0,c.vv)(t)," and ").concat((0,c.vv)(i)),c.vu)}isRowEmpty(n){var t,i,o;const d=(null===(t=n.controls.balance.value)||void 0===t?void 0:t.trim())||"",w=(null===(i=n.controls.apr.value)||void 0===i?void 0:i.trim())||"",E=(null===(o=n.controls.monthlyPayment.value)||void 0===o?void 0:o.trim())||"";return!d&&!w&&!E}removeEmptyRows(){for(let n=this.debtEntries.length-1;n>=0;n--)if(this.debtEntries.length>this.MIN_ROWS&&this.isRowEmpty(this.debtEntries.at(n))){this.debtEntries.removeAt(n);const t=new Set;
1this.validatedRowIndices.forEach(i=>{i<n?t.add(i):i>n&&t.add(i-1)}),this.validatedRowIndices=t}}animateCountUp(n){if(null!==this.animationFrameId&&(cancelAnimationFrame(this.animationFrameId),this.animationFrameId=null),n<=0)return void(this.displayedSavings=0);if(!(0,p.isPlatformBrowser)(this.platformId))return void(this.displayedSavings=n);let o=null;this.ngZone.runOutsideAngular(()=>{const d=w=>{o||(o=w);const E=Math.min((w-o)/600,1),Ue=(d=>d*(2-d))(E),ne=Math.round(n*Ue);this.displayedSavings!==ne&&this.ngZone.run(()=>{this.displayedSavings=ne}),E<1?this.animationFrameId=requestAnimationFrame(d):(this.ngZone.run(()=>{this.displayedSavings=n}),this.animationFrameId=null)};this.animationFrameId=requestAnimationFrame(d)})}}return(a=s).\u0275fac=function(n){return new(n||a)},a.\u0275cmp=e.\u0275\u0275defineComponent({type:a,selectors:[["dfs-card-calculator-balance-transfer"]],viewQuery:function(n,t){if(1&n&&e.\u0275\u0275viewQuery(Ze,5,e.ElementRef),2&n){let i;e.\u0275\u0275queryRefresh(i=e.\u0275\u0275loadQuery())&&(t.debtRowsContainer=i.first)}},inputs:{content:"content",paramsInfo:"paramsInfo"},features:[e.\u0275\u0275ProvidersFeature([(0,b.Dw)(),{provide:D,useClass:b.LN},{provide:z,useClass:b.LN},{provide:H,useClass:b.LN}])],decls:25,vars:28,consts:[["debtRowsContainer",""],[1,"dfs-tw-container","dfs-tw-font-discover-semibold"],[1,"dfs-tw-mx-auto","dfs-tw-bg-base01","dfs-tw-relative","dfs-tw-py-24","dfs-tw-text-neutral-primary","dfs-tw-text-14","dfs-tw-leading-explicit-small2"],[1,"dfs-tw-text-32","dfs-tw-text-center","lg:dfs-tw-text-40","dfs-tw-leading-[50px]","lg:dfs-tw-leading-[54px]","dfs-tw-mb-20"],[1,"dfs-tw-text-16","dfs-tw-text-left","dfs-tw-max-w-[840px]","dfs-tw-leading-ratio150","dfs-tw-mb-24","md:dfs-tw-mx-auto","md:dfs-tw-text-center"],[1,"dfs-tw-max-w-[1070px]","dfs-tw-mx-auto"],["aria-live","polite","aria-atomic","true",1,"dfs-tw-text-text-and-icon-critical","dfs-tw-mb-20","dfs-tw-flex","dfs-tw-items-start"],[1,"dfs-tw-py-20","dfs-tw-flex","dfs-tw-flex-col","dfs-tw-gap-40"],[1,"dfs-tw-flex","dfs-tw-flex-col","md:dfs-tw-flex-row","dfs-tw-justify-center","dfs-tw-gap-12","md:dfs-tw-gap-40"],["rank","tertiary",1,"[&::part(button)]:dfs-tw-h-[56px]","hover:[&::part(button)]:dfs-tw-underline","hover:[&::part(button)]:dfs-tw-bg-transparent",3,"click","disabled"],["size","medium","slot","icon-leading"],["rank","primary",1,"dfs-tw-w-full","md:dfs-tw-w-auto","[&::part(button)]:dfs-button","[&::part(button)]:dfs-tw-font-discover-bold","[&::part(button)]:dfs-tw-font-bold","[&::part(button)]:dfs-tw-text-center","[&::part(button)]:dfs-tw-max-w-full","md:[&::part(button)]:dfs-tw-max-w-[450px]","hover:[&::part(button)]:dfs-tw-no-underline","[&::part(button)]:dfs-tw-transition-all","[&::part(button)]:dfs-tw-duration-200","[&::part(button)]:dfs-tw-leading-explicit-medium1","[&::part(button)]:dfs-tw-text-[1.188rem]","[&::part(button)]:dfs-tw-tracking-normal","[&::part(button)]:dfs-tw-no-underline","[&::part(button)]:dfs-tw-rounded-[30px]","[&::part(button)]:dfs-tw-min-w-[74px]","[&::part(button)]:dfs-tw-py-[15.5px]","[&::part(button)]:dfs-tw-px-[30px]","[&::part(button)]:dfs-tw-justify-center","[&::part(button)]:dfs-tw-items-center","[&::part(button)]:dfs-tw-inline-flex","[&::part(button)]:dfs-tw-h-[56px]","[&::part(button)]:dfs-tw-border-2","[&::part(button)]:dfs-tw-text-neutral-inverse","[&::part(button)]:dfs-tw-bg-interactive-emphasis-high","hover:[&::part(button)]:dfs-tw-bg-interactive-emphasis-high-hover","[&::part(button)]:dfs-tw-border-[#ea6a28]","[&::part(button)]:dfs-tw-w-full","md:[&::part(button)]:dfs-tw-w-auto",3,"click"],[1,"dfs-tw-mt-20","lg:dfs-tw-text-center",3,"innerHTML"],["data-testid","results-panel",3,"calculated","noSavings","introPeriod","displayedSavings","estimatedSavings","monthlyPayment","isFullyPaidOff","remainingBalance","monthlyPaymentToClear","transferFeeAmount","projectedCurrentCardInterest","resultsContent"],[3,"calculated","averageAPR","projectedCurrentCardInterest","introPeriod","introFeePercent","transferFeeAmount","estimatedSavings","estimatedMinPayment"],["emphasis","low"],["id","legal",1,"dfs-tw-pt-12","dfs-tw-pb-20","dfs-tw-mx-auto","dfs-tw-max-w-[1280px]","dfs-tw-text-14","dfs-tw-leading-ratio150","dfs-tw-flex","dfs-tw-flex-col","dfs-tw-gap-20","dfs-tw-font-discover","[&>p]:dfs-tw-mb-0","[&>ol]:dfs-tw-list-decimal","[&>ol]:dfs-tw-ml-20","[&>ol>li]:dfs-tw-pl-[10px]",3,"innerHTML"],["size","small",1,"dfs-tw-shrink-0","dfs-tw-pr-12"],["name","balance-transfer-debt-entry-row"],[3,"balanceInput","aprInput","paymentInput","removeRow","row","index","totalRows","canRemove","balanceError","aprError","paymentError"]],template:function(n,t){if(1&n){const i=e.\u0275\u0275getCurrentView();e.\u0275\u0275elementStart(0,"section",1)(1,"div",2)(2,"h1",3),e.\u0275\u0275text(3),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(4,"p",4),e.\u0275\u0275text(5),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(6,"div",5),e.\u0275\u0275conditionalCreate(7,We,4,0,"div",6),e.\u0275\u0275elementStart(8,"div"),e.\u0275\u0275text(9,"All fields are required."),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(10,"div",7,0),e.\u0275\u0275repeaterCreate(12,Je,3,8,null,null,e.\u0275\u0275repeaterTrackByIdentity),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(14,"div",8)(15,"gds-button",9),e.\u0275\u0275listener("click",function(){return e.\u0275\u0275restoreView(i),e.\u0275\u0275resetVie
1w(t.addRow())}),e.\u0275\u0275element(16,"gds-icon-plus-encircled-lined",10),e.\u0275\u0275text(17," Add Another Balance "),e.\u0275\u0275elementEnd(),e.\u0275\u0275elementStart(18,"gds-button",11),e.\u0275\u0275listener("click",function(){return e.\u0275\u0275restoreView(i),e.\u0275\u0275resetView(t.calculate())}),e.\u0275\u0275text(19," Calculate Estimated Savings "),e.\u0275\u0275elementEnd()(),e.\u0275\u0275element(20,"div",12),e.\u0275\u0275elementEnd(),e.\u0275\u0275element(21,"dfs-card-results-panel",13)(22,"dfs-card-savings-breakdown",14),e.\u0275\u0275elementEnd(),e.\u0275\u0275element(23,"gds-horizontal-divider",15)(24,"div",16),e.\u0275\u0275elementEnd()}2&n&&(e.\u0275\u0275styleProp("--gds-font-family","DiscoverSans-SemiBold, Arial, Helvetica, sans-serif"),e.\u0275\u0275advance(3),e.\u0275\u0275textInterpolate1(" ",t.content.headline," "),e.\u0275\u0275advance(2),e.\u0275\u0275textInterpolate1(" ",t.content.subHeadline," "),e.\u0275\u0275advance(2),e.\u0275\u0275conditional(t.showTotalBalanceError?7:-1),e.\u0275\u0275advance(5),e.\u0275\u0275repeater(t.debtEntries.controls),e.\u0275\u0275advance(3),e.\u0275\u0275property("disabled",!t.canAddRow),e.\u0275\u0275advance(5),e.\u0275\u0275property("innerHTML",t.content.estimationDisclaimer||"",e.\u0275\u0275sanitizeHtml),e.\u0275\u0275advance(),e.\u0275\u0275property("calculated",t.calculated)("noSavings",t.noSavings)("introPeriod",t.introPeriod)("displayedSavings",t.displayedSavings)("estimatedSavings",t.estimatedSavings)("monthlyPayment",t.monthlyPayment)("isFullyPaidOff",t.isFullyPaidOff)("remainingBalance",t.remainingBalance)("monthlyPaymentToClear",t.monthlyPaymentToClear)("transferFeeAmount",t.transferFeeAmount)("projectedCurrentCardInterest",t.projectedCurrentCardInterest)("resultsContent",t.content.results),e.\u0275\u0275advance(),e.\u0275\u0275property("calculated",t.calculated)("averageAPR",t.averageAPR)("projectedCurrentCardInterest",t.projectedCurrentCardInterest)("introPeriod",t.introPeriod)("introFeePercent",t.introFeePercent)("transferFeeAmount",t.transferFeeAmount)("estimatedSavings",t.estimatedSavings)("estimatedMinPayment",t.estimatedMinPayment),e.\u0275\u0275advance(2),e.\u0275\u0275property("innerHTML",t.content.disclaimer.content,e.\u0275\u0275sanitizeHtml))},dependencies:[f.X1,L.xN,k.F,$.t,_.ZBC,_.Xso,j,ye,Te,Ne],encapsulation:2}),s})()}}]); 2//# sourceMappingURL=6273.d6f8762436ff50c8.js.map
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.