1import{a as M,b as S,c as D}from"./chunk-V4KKHAF7.js";import{a as v}from"./chunk-7O5Y2AWC.js";import{d as y}from"./chunk-OCBE2NQV.js";import{a as x,b as g}from"./chunk-Y32F7FET.js";var A={ANNUITY:1,EQUAL:2},d={data:{},ttl:30*60*1e3};function _(l){let t=d.data[l];return t?Date.now()-t.timestamp<d.ttl:!1}function b(l,t){d.data[l]={data:t,timestamp:Date.now()}}function C(l){return _(l)?d.data[l].data:null}async function I(l){if(!l.ok){let a={},e=l.headers.get("content-type");if(e&&e.includes("application/json"))try{a=await l.json()}catch(i){}else try{a={error:(await l.text()).substring(0,200),message:"\u041E\u0448\u0438\u0431\u043A\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430"}}catch(i){}let n=new Error(a.message||a.error||`HTTP error! status: ${l.status}`);throw n.status=l.status,n.response=a,a.userMessage&&(n.userMessage=a.userMessage),n}let t=l.headers.get("content-type");if(t&&t.includes("application/json"))return l.json();try{return await l.json()}catch(a){let e=await l.text();throw new Error(`Expected JSON response but got: ${e.substring(0,100)}`)}}async function R(l){let t=C(l);if(t)return t;try{let a=`/api/calculator/data?virtualGroupId=${l}`,e=await fetch(a,{method:"GET",headers:{Accept:"application/json","Content-Type":"application/json"}}),n=await I(e);return n.success&&n.data&&b(l,n),n}catch(a){throw a}}async function P(l,{signal:t}={}){let{virtualGroupId:a,amount:e,term:n,issueDate:i,repaymentMethod:s,rate:o}=l,r=A[s]||A.ANNUITY,m=i;if(m){if(m.includes("T")){let c=new Date(m);m=`${c.getFullYear()}-${String(c.getMonth()+1).padStart(2,"0")}-${String(c.getDate()).padStart(2,"0")}`}}else{let c=new Date;m=`${c.getFullYear()}-${String(c.getMonth()+1).padStart(2,"0")}-${String(c.getDate()).padStart(2,"0")}`}let u={virtualGroupId:a,term:parseInt(n,10),amount:parseFloat(e),payMethod:r,issueDate:m};o!=null&&(u.rate=parseFloat(o));try{let c=await fetch("/api/calculator/calculate",{signal:t,method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(u)});return await I(c)}catch(c){throw c}}function T(l,t,a){if(!l||!Array.isArray(l)||l.length===0)return null;let e=l.find(n=>t>=n.mn1&&t<=n.mn2&&a>=n.sm1&&a<=n.sm2);return e?e.pct:null}var $=l=>g(x(x({storage:l.storage||[],selectedProductId:null,selectedRepaymentMethod:null,typeCalc:"ANNUITY",repaymentTypeMap:l.repaymentTypeMap||{},insuranceIsActive:!1,insuranceIsDisable:!1,isDeposit:!1,issueDate:new Date,gsv:"0%",apiData:null,isLoading:!1,apiError:null,virtualGroupId:l.virtualGroupId||null,calculatorList:(Array.isArray(l.calculatorList)?l.calculatorList:[]).map(a=>{var e,n,i;return{id:(e=a.id)!=null?e:a.calc_id,title:(i=(n=a.title)!=null?n:a.calc_title)!=null?i:""}}).filter(a=>a.id!=null&&a.id!==""),isCalculating:!1,lastCalculationResult:null,calculateDebounceTimer:null,calculationRevision:0,calculationController:null,calculatorWatchersRegistered:!1,term:{min:0,max:0,value:0},monthlyPayment:{min:0,max:0,value:0},amount:{min:0,max:0,value:0}},S()),D()),{transformApiDataToStorage(t){if(!t.success||!t.data)return null;let a;if(Array.isArray(t.data)?this.virtualGroupId?a=t.data.find(h=>h.virtualGroupId===this.virtualGroupId)||t.data[0]:a=t.data[0]:a=t.data,!a)return null;let e=a.virtualGroupAttr||[],i=e.filter(h=>h.attrName==="r_pct_loan").map(h=>{try{let p=typeof h.value=="string"?JSON.parse(h.value):h.value;return{mn1:p.mn1||0,mn2:p.mn2||0,pct:p.pct||0,sm1:p.sm1||0,sm2:p.sm2||0}}catch(p){return null}}).filter(h=>h!==null&&h.mn1&&h.mn2&&h.pct),s=h=>{let p=e.find(w=>w.attrName===h);if(!p)return null;let f=parseFloat(p.value);return isNaN(f)?null:f},o=s("minSum")||0,r=s("maxSum")||0,m=s("minTerm")||0,u=s("maxTerm")||0,c=i.map(h=>({min_month:h.mn1,max_month:h.mn2,rate:h.pct,insurance:0}));return{id:a.virtualGroupId,name:a.nameRu||a.name||a.nameKz||"",calc_default_sum:o||3e5,calc_default_term:m||3,repayment_methods:["\u0410\u043D\u043D\u0443\u0438\u0442\u0435\u0442","\u0420\u0430\u0432\u043D\u044B\u0435 \u0434\u043E\u043B\u0438"],r_pct_loan:i,types:[{min:o||3e5,max:r||1e8,months:c.length>0?c:[{min_month:m||3,max_month:u||84,rate:0,insurance:0}]}]}},transformCalculateResponse(t){if(!t.success||!t.data)return null;let a=t.data;return{loanAmount:a.principalAmountSum||0,loanTerm:a.paymentCount||0,annualRate:a.effectiveRate||0,paymentAmount:a.paymentAmountSum||0,percentsAmount:a.interestAmountSum||0,depositPercents:0,depositPayment:0,items:(a.preliminarySchedule||[]).map(e=>({date:new Date(e.operationDate),month:e.periodNumber,debtRest:e.loanAmount,paymentDebt:e.principalAmount,paymentPercents:e.interestAmount,paymentAmountTotal:e.paymentAmount})),annualRateEffective:parseFloat(a.effectiveRate)||0}},getRateForCalculation(){let t=this.getSelectedProduct();return!t||!t.r_pct_loan?null:T(t.r_pct_loan,this.term.value,this.amount.value)},handleApiError(t){var n,i,s;let a=t.status||((n=t.response)==null?void 0:n.status)||500,e=((i=t.response)==null?void 0:i.message)||((s=t.response)==null?void 0:s.error)||t.message||"\u041D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043D\u0430\u044F \u043E\u0448\u0438\u0431\u043A\u0430";if(this.apiError={status:a,message:e}
1,t.userMessage)this.apiError.userMessage=t.userMessage;else switch(a){case 400:this.apiError.userMessage="\u041E\u0448\u0438\u0431\u043A\u0430 \u0432\u0430\u043B\u0438\u0434\u0430\u0446\u0438\u0438 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u043E\u0432. \u041F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435 \u0432\u0432\u0435\u0434\u0451\u043D\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435";break;case 429:this.apiError.userMessage="\u041F\u0440\u0435\u0432\u044B\u0448\u0435\u043D \u043B\u0438\u043C\u0438\u0442 \u0437\u0430\u043F\u0440\u043E\u0441\u043E\u0432. \u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0435 \u043F\u043E\u043F\u044B\u0442\u043A\u0443 \u0447\u0435\u0440\u0435\u0437 60 \u0441\u0435\u043A\u0443\u043D\u0434";break;case 500:case 502:case 503:e.includes("timeout")||e.includes("Connection timed out")?this.apiError.userMessage="\u0412\u043D\u0435\u0448\u043D\u0438\u0439 API \u043D\u0435 \u043E\u0442\u0432\u0435\u0447\u0430\u0435\u0442. \u041F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u043F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u043F\u043E\u0437\u0436\u0435":a===502?this.apiError.userMessage="\u041E\u0448\u0438\u0431\u043A\u0430 \u0432\u043D\u0435\u0448\u043D\u0435\u0433\u043E \u0441\u0435\u0440\u0432\u0438\u0441\u0430. \u041F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u043F\u043E\u0437\u0436\u0435":a===503?this.apiError.userMessage="\u0421\u0435\u0440\u0432\u0438\u0441 \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D. \u041F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u043F\u043E\u0437\u0436\u0435":this.apiError.userMessage="\u0412\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u044F\u044F \u043E\u0448\u0438\u0431\u043A\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u041F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u043F\u043E\u0437\u0436\u0435";break;default:this.apiError.userMessage="\u041F\u0440\u043E\u0438\u0437\u043E\u0448\u043B\u0430 \u043E\u0448\u0438\u0431\u043A\u0430. \u041F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u043F\u043E\u0437\u0436\u0435"}},init(){this.calculatorFormInit();let t=this.calculatorList.length>0,a=this.virtualGroupId!=null&&this.virtualGroupId!=="";if(!t&&!a){this.apiError={status:400,message:"\u041D\u0435 \u0443\u043A\u0430\u0437\u0430\u043D\u044B \u043A\u0430\u043B\u044C\u043A\u0443\u043B\u044F\u0442\u043E\u0440\u044B",userMessage:"\u041E\u0448\u0438\u0431\u043A\u0430 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043A\u0430\u043B\u044C\u043A\u0443\u043B\u044F\u0442\u043E\u0440\u0430. \u0414\u043E\u0431\u0430\u0432\u044C\u0442\u0435 \u043A\u0430\u043B\u044C\u043A\u0443\u043B\u044F\u0442\u043E\u0440\u044B \u0432 \u0431\u043B\u043E\u043A \u0432 \u0430\u0434\u043C\u0438\u043D\u043A\u0435 \u0438\u043B\u0438 \u0443\u043A\u0430\u0436\u0438\u0442\u0435 \u0432\u0438\u0440\u0442\u0443\u0430\u043B\u044C\u043D\u0443\u044E \u0433\u0440\u0443\u043F\u043F\u0443."};return}t&&!a&&(this.virtualGroupId=Number(this.calculatorList[0].id)),this.loadProgramData(this.virtualGroupId)},isFormValid(){return!(Object.entries(this.inputDrafts).some(([t,a])=>{let e=a.replace(/\D/g,"");return e===""||Number(e)<this[t].min||Number(e)>this[t].max})||!this.selectedProductId||!this.selectedRepaymentMethod||!this.amount.value||this.amount.value<this.amount.min||this.amount.value>this.amount.max||!this.term.value||this.term.value<this.term.min||this.term.value>this.term.max||!this.apiData&&(!this.storage||this.storage.length===0))},debouncedCalculate(){if(!this.isResetting){if(this.invalidateCalculation(),!this.isFormValid()){this.lastCalculationResult=null;return}this.calculateDebounceTimer=setTimeout(()=>{this.calculateAsync()},500)}},invalidateCalculation(){var t;clearTimeout(this.calculateDebounceTimer),this.calculateDebounceTimer=null,this.calculationRevision++,(t=this.calculationController)==null||t.abort(),this.calculationController=null,this.lastCalculationResult=null,this.apiError=null,this.isCalculating=!1,this.gsv="0%"},async loadProgramData(t){this.invalidateCalculation(),this.isLoading=!0,this.apiError=null,this.selectedProductId=null,this.selectedRepaymentMethod=null;try{let a=this.calculatorList.length>0?this.calculatorList:[{id:this.virtualGroupId,title:""}],e=a.map(m=>Number(m.id)).filter(m=>!Number.isNaN(m)),n=a.reduce((m,u)=>(m[Number(u.id)]=u.title||"",m),{});if(e.length===0)throw new Error("\u041D\u0435\u0442 \u043D\u0438 \u043E\u0434\u043D\u043E\u0439 \u043F\u0440\u043E\u0433\u0440\u0430\u043C\u043C\u044B \u0434\u043B\u044F \u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0438");let i=await Promise.allSettled(e.map(m=>R(m)));if(this.calculatorDestroyed)return;let s=[],o=[];if(i.forEach((m,u)=>{let c=e[u],h=n[c]||"";if(m.status==="fulfilled"&&m.value&&m.value.success){let p=this.transformApiDataToStorage(m.value);p&&(p.name=h||p.name,(!p.repayment_methods||p.repayment_methods.length===0)&&(p.repayment_methods=["\u0410\u043D\u043D\u0443\u0438\u0442\u0435\u0442","\u0420\u0430\u0432\u043D\u044B\u0435 \u0434\u043E\u043B\u0438"]),s.push(p),o.push(m.value.data))}}),s.length===0)throw new Error("\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u0434\u0430\u043D\u043D\u044B\u0435 \u043D\u0438 \u0434\u043B\u044F \u043E\u0434\u043D\u043E\u0439 \u043F\u0440\u043E\u0433\u0440\u0430\u043C\u043C\u044B");
1s.forEach(m=>{(!m.repayment_methods||m.repayment_methods.length===0)&&(m.repayment_methods=["\u0410\u043D\u043D\u0443\u0438\u0442\u0435\u0442","\u0420\u0430\u0432\u043D\u044B\u0435 \u0434\u043E\u043B\u0438"])}),this.storage=s;let r=s.find(m=>m.id===t)||s[0];if(r){let m=r.id;this.selectedProductId=m,r.repayment_methods&&r.repayment_methods.length>0&&(this.selectedRepaymentMethod=r.repayment_methods[0])}this.apiData={array:o.flat(),selected:o.flat().find(m=>{var u;return Array.isArray(m)?((u=m[0])==null?void 0:u.virtualGroupId)===t:(m==null?void 0:m.virtualGroupId)===t})||o.flat()[0]},this.setupData(),this.checkInsurance(),this.setupPlugins(),this.$nextTick(()=>{this.calculatorDestroyed||(this.setup(),this.registerEvents(),this.watchers(),this.captureInitialCalculatorState(),this.debouncedCalculate())})}catch(a){this.handleApiError(a)}finally{this.isLoading=!1}},watchers(){this.calculatorWatchersRegistered||(this.calculatorWatchersRegistered=!0,this.$watch("selectedProductId",async(t,a)=>{var i;if(this.isResetting||t==null||!this.storage.some(s=>s.id===t)&&this.storage.length>0)return;let n=this.getSelectedProduct();if(n){if(n&&n.id&&(this.virtualGroupId=n.id,(!n.repayment_methods||n.repayment_methods.length===0)&&(n.repayment_methods=["\u0410\u043D\u043D\u0443\u0438\u0442\u0435\u0442","\u0420\u0430\u0432\u043D\u044B\u0435 \u0434\u043E\u043B\u0438"]),(!this.selectedRepaymentMethod||!n.repayment_methods.includes(this.selectedRepaymentMethod))&&((i=n.repayment_methods)==null?void 0:i.length)>0&&(this.selectedRepaymentMethod=n.repayment_methods[0]),this.apiData&&this.apiData.array)){let s=this.apiData.array.find(o=>{let r=Array.isArray(o)?o[0]:o;return(r==null?void 0:r.virtualGroupId)===n.id});s&&(this.apiData.selected=Array.isArray(s)?s[0]:s)}if(this.lastCalculationResult=null,this.checkInsurance(),this.updateAmountOptions(),this.updateTermOptions(),this.isDeposit&&this.updateMonthlyInputOptions(),n){let s=Number(n.calc_default_sum)||this.amount.min;this.amount.value=s>=this.amount.min&&s<=this.amount.max?s:this.amount.min;try{this.$refs.amountRangeSlider.noUiSlider.set(this.amount.value)}catch(u){}let o=parseInt(n.calc_default_term,10),r=Number.isFinite(o)?o:this.term.max,m=Math.min(Math.max(r,this.term.min),this.term.max);this.term.value=m;try{this.$refs.termRangeSlider.noUiSlider.set(this.term.value)}catch(u){}}this.debouncedCalculate()}}),this.$watch("selectedRepaymentMethod",t=>{this.isResetting||(this.repaymentTypeMap&&t&&this.repaymentTypeMap[t]?this.typeCalc=this.repaymentTypeMap[t]:["\u0410\u043D\u043D\u0443\u0438\u0442\u0435\u0442","\u0410\u043D\u043D\u0443\u0438\u0442\u0435\u0442\u0442\u0456\u043A","Annuity"].includes(t)?this.typeCalc="ANNUITY":["\u0420\u0430\u0432\u043D\u044B\u0435 \u0434\u043E\u043B\u0438","\u0422\u0435\u04A3 \u04AF\u043B\u0435\u0441\u0442\u0435\u0440","\u0422\u0435\u04A3 \u04AF\u043B\u0435\u0441\u0442\u0435\u0440\u043C\u0435\u043D \u0442\u04E9\u043B\u0435\u043C","Equal shares"].includes(t)?this.typeCalc="EQUAL":this.typeCalc="ANNUITY",this.lastCalculationResult=null,this.debouncedCalculate())}),this.$watch("amount.value",()=>{this.lastCalculationResult=null,this.debouncedCalculate()}),this.$watch("monthlyPayment.value",()=>{this.lastCalculationResult=null,this.debouncedCalculate()}),this.$watch("term.value",()=>{this.lastCalculationResult=null,this.debouncedCalculate()}),this.$watch("insuranceIsActive",()=>{this.isResetting||this.setup()}))},setup(){this.updateAmountOptions(),this.updateTermOptions(),this.isDeposit&&this.updateMonthlyInputOptions()},updateGsv(){let t=this.calculate();this.gsv=`${t.annualRateEffective||0}%`},setupData(){},checkInsurance(){var i;let t=this.getSelectedProduct();if(!t||!t.types||t.types.length===0){this.insuranceIsActive=!1,this.insuranceIsDisable=!0;return}let a=t.types[0];if(!a||!a.months||a.months.length===0){this.insuranceIsActive=!1,this.insuranceIsDisable=!0;return}let e=((i=a.months[0])==null?void 0:i.insurance)||0,n=t.types.flatMap(s=>(s.months||[]).map(o=>(o==null?void 0:o.insurance)||0));if(n.length>1){let s=n.every(r=>r===0),o=n.every(r=>r>0);this.insuranceIsDisable=s||o}else this.insuranceIsDisable=!0;this.insuranceIsActive=!!e},setupPlugins(){let t=[this.$refs.amountRangeSlider,this.$refs.monthlyInputSlider,this.$refs.termRangeSlider];Array.from(t).forEach(a=>{if(a){try{a.noUiSlider&&typeof a.noUiSlider.destroy=="function"&&a.noUiSlider.destroy()}catch(e){}v.create(a,{connect:[!0,!1],start:0,step:a===this.$refs.amountRangeSlider?1e3:1,range:{min:0,max:1}
1,format:{to:e=>Math.round(e),from:e=>e}})}})},updateAmountRelations({values:t}){var a;if(delete this.inputDrafts.amount,this.amount.value=t[0],(a=window.dataLayer)!=null&&a.find(e=>e.event==="view_item")){let e=window.dataLayer.find(s=>s.event==="view_item"),n={event:"view_item",ecommerce:{currency:"KZT",value:t[0],items:[{item_name:e.ecommerce.items[0].item_name,price:this.amount.min,item_category:e.ecommerce.items[0].item_category,item_list_name:"\u041A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044F",item_list_id:e.ecommerce.items[0].item_list_id,quantity:1}]}},i=window.dataLayer.indexOf(e);window.dataLayer[i]=n}},updateMonthlyInputRelations({values:t}){delete this.inputDrafts.monthlyPayment,this.monthlyPayment.value=t[0]},updateTermRelations({values:t}){delete this.inputDrafts.term,this.term.value=t[0]},updateAmountOptions(){let t=this.$refs.amountRangeSlider.noUiSlider;if(this.apiData&&this.apiData.parameters){let a=this.apiData.parameters;this.amount.min=parseInt(a.minSum)||0,this.amount.max=parseInt(a.maxSum)||0;let e=parseInt(a.minSum)||this.amount.min;this.amount.value=e>=this.amount.min&&e<=this.amount.max?e:this.amount.min}else if(this.storage.length>0){let a=this.getSelectedProduct();if(a&&a.types&&a.types.length>0){let e=a.types.map(i=>({min:i.min,max:i.max}));this.amount.min=Math.min(...e.map(i=>i.min)),this.amount.max=Math.max(...e.map(i=>i.max));let n=(a==null?void 0:a.calc_default_sum)||this.amount.min;this.amount.value=n>=this.amount.min&&n<=this.amount.max?n:this.amount.min}}t.updateOptions({range:{min:this.amount.min,max:this.amount.max}},!0),t.set(this.amount.value),this.drawSliderLimitsLater(t,{to:a=>M(a),from:a=>a})},updateMonthlyInputOptions(){let t=this.$refs.monthlyInputSlider;if(!t||!t.noUiSlider)return;let a=t.noUiSlider,n=this.getMinMax().monthlyPayment||{min:0,max:0};this.monthlyPayment.max=n.max,this.monthlyPayment.value=this.monthlyPayment.min=n.min||0,a.updateOptions({range:{min:n.min,max:n.max}},!0),a.set(this.monthlyPayment.value),this.drawSliderLimitsLater(a,{to:i=>M(i),from:i=>i})},updateTermOptions(){if(this.apiData&&this.apiData.parameters){let t=this.apiData.parameters;if(this.term.min=parseInt(t.minTerm)||3,this.term.max=parseInt(t.maxTerm)||84,(this.term.value<this.term.min||this.term.value>this.term.max)&&(this.term.value=this.term.max),this.$refs.termRangeSlider&&this.$refs.termRangeSlider.noUiSlider){let a=this.$refs.termRangeSlider.noUiSlider;a.updateOptions({range:{min:this.term.min,max:this.term.max}},!0),a.set(this.term.value),this.$nextTick(()=>this.drawLimit(a,!0))}}else if(this.storage.length>0){let t=this.getSelectedProduct();if(t&&t.types&&t.types.length>0){let a=t.types[0].months||[];if(a.length>0&&(this.term.min=Math.min(...a.map(e=>e.min_month)),this.term.max=Math.max(...a.map(e=>e.max_month)),(this.term.value<this.term.min||this.term.value>this.term.max)&&(this.term.value=this.term.max),this.$refs.termRangeSlider&&this.$refs.termRangeSlider.noUiSlider)){let e=this.$refs.termRangeSlider.noUiSlider;e.updateOptions({range:{min:this.term.min,max:this.term.max}},!0),e.set(this.term.value),this.$nextTick(()=>this.drawLimit(e,!0))}}}},changeAmountInput(t){if(t.target.value==="")return;let a=t.target.value.replace(/\D/g,"");a>=this.amount.min?this.changeInput(t,this.$refs.amountRangeSlider.noUiSlider,"amount"):t.target.value=Number(a).toLocaleString("ru-RU")},changeMonthlyPaymentInput(t){if(t.target.value==="")return;let a=t.target.value.replace(/\D/g,"");a>=this.monthlyPayment.min?this.changeInput(t,this.$refs.monthlyInputSlider.noUiSlider,"monthlyPayment"):t.target.value=Number(a).toLocaleString("ru-RU")},changeTermInput(t){if(t.target.value==="")return;let a=t.target.value.replace(/\D/g,"");if(a>=this.term.min)if(this.$refs.termRangeSlider&&this.$refs.termRangeSlider.noUiSlider)this.changeInput(t,this.$refs.termRangeSlider.noUiSlider,"term");else{let e=Math.min(Math.max(Number(a),this.term.min),this.term.max||Number(a));this.term.value=e,t.target.value=String(e)}else t.target.value=Number(a).toLocaleString("ru-RU")},updateDisplayTerm(t){let a=t.target.value.replace(/\D/g,"");
1t.target.value=Number(a).toLocaleString("ru-RU")},updateDisplayAmount(t){t.target.value||setTimeout(()=>{t.target.value=""},0);let a=t.target.value.replace(/\D/g,"");t.target.value=Number(a).toLocaleString("ru-RU")},updateDisplayPayment(t){let a=t.target.value.replace(/\D/g,"");t.target.value=Number(a).toLocaleString("ru-RU")},getMinMax(){if(this.apiData){let t=this.apiData;if(this.apiData.selected?t=this.apiData.selected:Array.isArray(this.apiData)&&this.apiData.length>0&&(t=this.apiData[0]),t&&t.virtualGroupAttr){let e=t.virtualGroupAttr,n=m=>{let u=e.find(h=>h.attrName===m);if(!u)return null;let c=parseFloat(u.value);return isNaN(c)?null:c},i=n("minSum")||0,s=n("maxSum")||0,o=n("minTerm")||0,r=n("maxTerm")||0;return{amount:{min:i||this.amount.min||0,max:s||this.amount.max||0},term:{min:o||this.term.min||0,max:r||this.term.max||0},monthlyPayment:{min:this.monthlyPayment.min||0,max:this.monthlyPayment.max||0}}}let a=t.parameters||t.params||t;if(a){let e=parseInt(a.minSum||a.minAmount||0),n=parseInt(a.maxSum||a.maxAmount||0),i=parseInt(a.minTerm||a.minMonth||0),s=parseInt(a.maxTerm||a.maxMonth||0);return{amount:{min:e||this.amount.min||0,max:n||this.amount.max||0},term:{min:i||this.term.min||0,max:s||this.term.max||0},monthlyPayment:{min:this.monthlyPayment.min||0,max:this.monthlyPayment.max||0}}}}if(this.storage&&this.storage.length>0){let t=this.getSelectedProduct();if(t&&t.types&&t.types.length>0){let a=t.types.map(e=>({min:e.min,max:e.max}));if(a.length>0){let e=Math.min(...a.map(r=>r.min)),n=Math.max(...a.map(r=>r.max)),i=t.types[0].months||[],s=i.length>0?Math.min(...i.map(r=>r.min_month)):this.term.min||0,o=i.length>0?Math.max(...i.map(r=>r.max_month)):this.term.max||0;return{amount:{min:e,max:n},term:{min:s,max:o},monthlyPayment:{min:this.monthlyPayment.min||0,max:this.monthlyPayment.max||0}}}}}return{amount:{min:this.amount.min||0,max:this.amount.max||0},term:{min:this.term.min||0,max:this.term.max||0},monthlyPayment:{min:this.monthlyPayment.min||0,max:this.monthlyPayment.max||0}}},changeInput(t,a,e){var r;let n=JSON.parse(JSON.stringify(this.getMinMax()[e]));if(Number(t.target.value.replace(/\s/g,""))<n.min){t.target.value=n.min.toLocaleString("ru-RU"),a.set(n.min);return}let i=(r=a.options)!=null&&r.padding&&a.options.padding[1]||0,s=n.max-i,o=Math.min(Number(t.target.value.replace(/\D/g,"")),s);t.target.value=o.toLocaleString("ru-RU"),a.set(o)},registerEvents(){[[this.$refs.amountRangeSlider,this.updateAmountRelations],[this.$refs.monthlyInputSlider,this.updateMonthlyInputRelations],[this.$refs.termRangeSlider,this.updateTermRelations]].forEach(([a,e])=>{a!=null&&a.noUiSlider&&a.noUiSlider.on("update",(n,i,s,o,r,m)=>{let u={values:n,handle:i,unencoded:s,tap:o,positions:r,noUiSlider:m};e.call(this,u)})})},getGsv(){var r,m,u,c;let t=this.getSelectedProduct(),a=((r=this.amount)==null?void 0:r.value)||0,e=((m=this.term)==null?void 0:m.value)||0,n={\u0414\u043E\u0441\u0442\u0430\u0440:[{min:3e5,max:1e7,monthsMin:3,monthsMax:3,rate:45.2},{min:3e5,max:1e7,monthsMin:6,monthsMax:6,rate:45.7},{min:3e5,max:1e7,monthsMin:9,monthsMax:12,rate:45.6},{min:3e5,max:1e7,monthsMin:24,monthsMax:24,rate:45.5},{min:3e5,max:1e7,monthsMin:36,monthsMax:84,rate:45.7}],\u0411\u0438\u0437\u043D\u0435\u0441:[{min:3e5,max:1e7,monthsMin:3,monthsMax:3,rate:45.6},{min:3e5,max:1e7,monthsMin:6,monthsMax:9,rate:46},{min:3e5,max:1e7,monthsMin:12,monthsMax:12,rate:45.9},{min:3e5,max:1e7,monthsMin:24,monthsMax:84,rate:45.8},{min:10000001,max:15e6,monthsMin:3,monthsMax:6,rate:35},{min:10000001,max:15e6,monthsMin:9,monthsMax:9,rate:34.2},{min:10000001,max:15e6,monthsMin:12,monthsMax:12,rate:33.7},{min:10000001,max:15e6,monthsMin:24,monthsMax:24,rate:34.2},{min:10000001,max:15e6,monthsMin:36,monthsMax:36,rate:33.9},{min:10000001,max:15e6,monthsMin:48,monthsMax:48,rate:33.8},{min:10000001,max:15e6,monthsMin:60,monthsMax:60,rate:33.7},{min:10000001,max:15e6,monthsMin:72,monthsMax:84,rate:33.9},{min:15000001,max:1e8,monthsMin:3,monthsMax:3,rate:30.8},{min:15000001,max:1e8,monthsMin:6,monthsMax:6,rate:29.8},{min:15000001,max:1e8,monthsMin:9,monthsMax:9,rate:29.3},{min:15000001,max:1e8,monthsMin:12,monthsMax:12,rate:29},{min:15000001,max:1e8,monthsMin:24,monthsMax:24,rate:31.2},{min:15000001,max:1e8,monthsMin:36,monthsMax:36,rate:31},{min:15000001,max:1e8,monthsMin:48,monthsMax:84,rate:30.8}],\u0410\u0433\u0440\u043E:[{min:3e5,max:1e7,monthsMin:3,monthsMax:3,rate:45.6},{min:3e5,max:1e7,monthsMin:6,monthsMax:9,rate:46},{min:3e5,max:1e7,monthsMin:12,monthsMax:12,rate:45.9},{min:3e5,max:1e7,monthsMin:24,monthsMax:84,rate:45.8},{min:10000001,max:15e6,monthsMin:3,monthsMax:6,rate:35},{min:10000001,max:15e6,monthsMin:9,monthsMax:9,rate:34.2},{min:10000001,max:15e6,monthsMin:12,monthsMax:12,rate:33.7},{min:10000001,max:15e6,monthsMin:24,monthsMax:24,rate:34.2},{min:10000001,max:15e6,monthsMin:36,monthsMax:36,rate:33.9},{min:10000001,max:15e6,monthsMin:48,monthsMax:48,rate:33.8},{min:10000001,max:15e6,monthsMin:60,monthsMax:60,rate:33.7},{min:10000001,max:15e6,monthsMin:72,monthsMax:84,rate:33.9},{min:15000001,max:1e8,monthsMin:3,monthsMax:3,rate:30.8},{min:15000001,max:1e8,monthsMin:6,monthsMax:6,rate:29.8},{min:15000001,max:1e8,monthsMin:9,monthsMax:9,rate:29.3},{min:15000001,max:1e8,monthsMin:12,monthsMax:12,rate:29},{min:15000001,max:1e8,monthsMin:24,monthsMax:24,rate:31.2},{min:15000001,max:1e8,monthsMin:36,monthsMax:36,rate:31},{min:15000001,max:1e8,monthsMin:48,monthsMax:84,rate:30.8}],\u041F\u043E\u0442\u0440\u0435\u0431:[{min:3e5,max:7e6,monthsMin:3,monthsMax:3,rate:45.6},{min:3e5,max:7e6,monthsMin:6,monthsMax:9,rate:46},{min:3e5,max:7e6,monthsMin:12,monthsMax:12,rate:45.9},{min:3e5,max:7e6,monthsMin:24,monthsMax:60,rate:45.8},{min:7000001,max:1e8,monthsMin:3,monthsMax:6,rate:35},{min:7000001,max:1e8,monthsMin:9,monthsMax:9,rate:34.2},{min:7000001,max:1e8,monthsMin:12,monthsMax:12,rate:33.7},{min:7000001,max:1e8,monthsMin:24,monthsMax:24,rate:34.2},{min:7000001,max:1e8,monthsMin:36,monthsMax:36,rate:33.9},{min:7000001,max:1e8,monthsMin:48,monthsMax:48,rate:33.8},{min:7000001,max:1e8,monthsMin:60,monthsMax:60,rate:33.7}],"\u0414\u043B\u044F \u0431\u0438\u0437\u043D\u0435\u0441\u0430":[{min:3e5,max:1e7,monthsMin:3,monthsMax:3,rate:45.6},{min:3e5,max:1e7,monthsMin:6,monthsMax:9,rate:46},{min:3e5,max:1e7,monthsMin:12,monthsMax:12,rate:45.9},{min:3e5,max:1e7,monthsMin:24,monthsMax:84,rate:45.8},{min:10000001,max:15e6,monthsMin:3,monthsMax:6,rate:35},{min:10000001,max:15e6,monthsMin:9,monthsMax:9,rate:34.2},{min:10000001,max:15e6,monthsMin:12,monthsMax:12,rate:33.7},{min:10000001,max:15e6,monthsMin:24,monthsMax:24,rate:34.2},{min:10000001,max:15e6,monthsMin:36,monthsMax:36,rate:33.9},{min:10000001,max:15e6,monthsMin:48,monthsMax:48,rate:33.8},{min:10000001,max:15e6,monthsMin:60,monthsMax:60,rate:33.7},{min:10000001,max:15e6,monthsMin:72,monthsMax:84,rate:33.9},{min:15000001,max:1e8,monthsMin:3,monthsMax:3,rate:30.8},{min:15000001,max:1e8,monthsMin:6,monthsMax:6,rate:29.8},{min:15000001,max:1e8,monthsMin:9,monthsMax:9,rate:29.3},{min:15000001,max:1e8,monthsMin:12,monthsMax:12,rate:29},{min:15000001,max:1e8,monthsMin:24,monthsMax:24,rate:31.2},{min:15000001,max:1e8,monthsMin:36,monthsMax:36,rate:31},{min:15000001,max:1e8,monthsMin:48,monthsMax:84,rate:30.8}],\u041A\u04D9\u0441\u0456\u043F\u043A\u0435:[{min:3e5,max:1e7,monthsMin:3,monthsMax:3,rate:45.6},{min:3e5,max:1e7,monthsMin:6,monthsMax:9,rate:46},{min:3e5,max:1e7,monthsMin:12,monthsMax:12,rate:45.9},{min:3e5,max:1e7,monthsMin:24,monthsMax:84,rate:45.8},{min:10000001,max:15e6,monthsMin:3,monthsMax:6,rate:35},{min:10000001,max:15e6,monthsMin:9,monthsMax:9,rate:34.2},{min:10000001,max:15e6,monthsMin:12,monthsMax:12,rate:33.7},{min:10000001,max:15e6,monthsMin:24,monthsMax:24,rate:34.2},{min:10000001,max:15e6,monthsMin:36,monthsMax:36,rate:33.9},{min:10000001,max:15e6,monthsMin:48,monthsMax:48,rate:33.8},{min:10000001,max:15e6,monthsMin:60,monthsMax:60,rate:33.7},{min:10000001,max:15e6,monthsMin:72,monthsMax:84,rate:33.9},{min:15000001,max:1e8,monthsMin:3,monthsMax:3,rate:30.8},{min:15000001,max:1e8,monthsMin:6,monthsMax:6,rate:29.8},{min:15000001,max:1e8,monthsMin:9,monthsMax:9,rate:29.3},{min:15000001,max:1e8,monthsMin:12,monthsMax:12,rate:29},{min:15000001,max:1e8,monthsMin:24,monthsMax:24,rate:31.2},{min:15000001,max:1e8,monthsMin:36,monthsMax:36,rate:31},{min:15000001,max:1e8,monthsMin:48,monthsMax:84,rate:30.8}],"\u0414\u043B\u044F \u043B\u0438\u0447\u043D\u044B\u0445 \u0446\u0435\u043B\u0435\u0439":[{min:3e5,max:7e6,monthsMin:3,monthsMax:3,rate:45.6},{min:3e5,max:7e6,monthsMin:6,monthsMax:9,rate:46},{min:3e5,max:7e6,monthsMin:12,monthsMax:12,rate:45.9},{min:3e5,max:7e6,monthsMin:24,monthsMax:60,rate:45.8},{min:7000001,max:1e8,monthsMin:3,monthsMax:6,rate:35},{min:7000001,max:1e8,monthsMin:9,monthsMax:9,rate:34.2},{min:7000001,max:1e8,monthsMin:12,monthsMax:12,rate:33.7},{min:7000001,max:1e8,monthsMin:24,monthsMax:24,rate:34.2},{min:7000001,max:1e8,monthsMin:36,monthsMax:36,rate:33.9},{min:7000001,max:1e8,monthsMin:48,monthsMax:48,rate:33.8},{min:7000001,max:1e8,monthsMin:60,monthsMax:60,rate:33.7}],"\u0416\u0435\u043A\u0435 \u043C\u0430\u049B\u0441\u0430\u0442\u0442\u0430\u0440\u0493\u0430":[{min:3e5,max:7e6,monthsMin:3,monthsMax:3,rate:45.6},{min:3e5,max:7e6,monthsMin:6,monthsMax:9,rate:46},{min:3e5,max:7e6,monthsMin:12,monthsMax:12,rate:45.9},{min:3e5,max:7e6,monthsMin:24,monthsMax:60,rate:45.8},{min:7000001,max:1e8,monthsMin:3,monthsMax:6,rate:35},{min:7000001,max:1e8,monthsMin:9,monthsMax:9,rate:34.2},{min:7000001,max:1e8,monthsMin:12,monthsMax:12,rate:33.7},{min:7000001,max:1e8,monthsMin:24,monthsMax:24,rate:34.2},{min:7000001,max:1e8,monthsMin:36,monthsMax:36,rate:33.9},{min:7000001,max:1e8,monthsMin:48,monthsMax:48,rate:33.8},{min:7000001,max:1e8,monthsMin:60,monthsMax:60,rate:33.7}]};if((c=(u=t==null?void 0:t.types)==null?void 0:u[0])!=null&&c.gsv)return`${t.types[0].gsv}%`;let i=(t==null?void 0:t.name)||"\u0414\u043E\u0441\u0442\u0430\u0440",o=(n[i]||[]).find(h=>a>=h.min&&a<=h.max&&e>=h.monthsMin&&e<=h.monthsMax);return o?`${o.rate}%`:null},getPercents(){var a,e,n;return`${(n=(e=(a=JSON.parse(JSON.stringify(this.getSelectedProduct().types))[0])==null?void 0:a.months[0])==null?void 0:e.rate)!=null?n:0}%`},getFilteredProductTypes(){return JSON.parse(JSON.stringify(this.getSelectedProduct().types)).filter(a=>(a.months=a.months.filter(e=>!!e.insurance===this.insuranceIsActive),a.months.length>0))},getSelectedProduct(){return this.storage.find(a=>a.id===this.selectedProductId)},drawLimit(t,a=!1,e){if(!t||!t.target)return;let{range:n,padding:i=[0,0]}=t.options,[,s]=i,o=t.target,r=n.max-s;if(a){let u={mode:"values",values:s?[n.min,r,n.max]:[n.min,n.max],density:999,format:e};t.pips(u)}if(s){let m=o.querySelector(".noUi-pips");if(!m)return;let u=m.querySelector(`[data-value="${r}"]`);if(!u)return;let c=parseFloat(u.style.left),h=(100*(r/n.max)+c)/2;o.style.backgroundImage=`linear-gradient(to right, #e12e3f ${h}%, #cbcbcb ${h}%)`}}
1,formatCurrency(t,a="\u20B8"){return`${t.toLocaleString()} ${a}`},amountValue(){return this.amount.value},calculate(){return this.lastCalculationResult||{loanAmount:0,loanTerm:0,annualRate:0,paymentAmount:0,percentsAmount:0,depositPercents:0,annualRateEffective:0,depositPayment:0,items:[]}},async calculateAsync(){await this.calculateViaAPI()},async calculateViaAPI(){if(this.invalidateCalculation(),!this.isFormValid())return this.calculate();let t=this.calculationRevision,a=new AbortController;this.calculationController=a,this.isCalculating=!0,this.apiError=null;try{let e=this.getRateForCalculation(),n=this.issueDate||new Date,i=`${n.getFullYear()}-${String(n.getMonth()+1).padStart(2,"0")}-${String(n.getDate()).padStart(2,"0")}`,s={virtualGroupId:this.virtualGroupId,amount:this.amount.value,term:this.term.value,issueDate:i,repaymentMethod:this.typeCalc};e!==null&&(s.rate=e);let o=await P(s,{signal:a.signal});if(t!==this.calculationRevision)return;let r=this.transformCalculateResponse(o);if(r)return this.lastCalculationResult=r,this.gsv=`${r.annualRateEffective}%`,r;throw new Error("\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u0442\u044C \u043E\u0442\u0432\u0435\u0442 API")}catch(e){return t!==this.calculationRevision||e.name==="AbortError"?void 0:(this.handleApiError(e),this.lastCalculationResult||{loanAmount:0,loanTerm:0,annualRate:0,paymentAmount:0,percentsAmount:0,depositPercents:0,annualRateEffective:0,depositPayment:0,items:[]})}finally{t===this.calculationRevision&&(this.isCalculating=!1,this.calculationController=null)}}}),N={},k=y($,N);export{k as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.