1"use strict";(self.webpackChunkmgmotors_ui_frontend=self.webpackChunkmgmotors_ui_frontend||[]).push([[1527],{3642(e,t,a){a.r(t),a.d(t,{default:()=>k,initAll:()=>w,resolveModelCode:()=>v});var n=a(7856),i=a(8900),r=a(3913),o=a(4785),s=a(6259),l=a(6210);const d=(...e)=>{try{window.console.log(...e)}catch(e){}},c='[data-cmp="kmi"]';function u(e){const t=(e||"").trim();return t?{"x-api-key":t}:void 0}function m(e){return new URLSearchParams(window.location.search).get(e)||""}function f(){const e={};return"undefined"==typeof window||new URLSearchParams(window.location.search).forEach((t,a)=>{if(!a)return;if(!a.toLowerCase().startsWith("utm"))return;const n=a.replace(/_([a-z])/g,(e,t)=>t.toUpperCase());e[n]=t}),e}function p(){let e=null;return window._satellite&&"function"==typeof window._satellite.getVar&&(e=window._satellite.getVar("MCID")),e||1234554401535}function h(){const e=document.cookie.match(/(?:^|;\s*)_ga=GA1\.\d\.([0-9.]+)/);return e&&e[1]||"2091955782.1677499653"}function g(e,t){const a=(e||"").trim();return a?`${a}@${t||"mgmotor.co.in"}`:""}function b(e,t,a){return t?"Google KMI":a?"Facebook KMI":e||"KMI Leads"}function v(e){if(!e)return"";const t=(0,n.qs)(".cmp-kmi__form",e)||e,a=(0,n.qs)('[data-cmp="vehicle-picker"] [data-vehicle-picker-input="true"]:checked',t);return(a?(a.value||"").trim():"")||e.dataset.model||""}function y(e){if("true"===e.dataset.cmpInitialized)return;e.dataset.cmpInitialized="true";const t=(0,n.qs)(".cmp-kmi__form",e),a=(0,n.qs)('input[name="fullName"]',e),c=(0,n.qs)('input[name="mobile"]',e),y=(0,n.qs)('input[name="pincode"]',e),w=(0,n.qs)('[data-cmp-field="dropdown"]',e),k=()=>w&&w._ddApi,E=(0,n.qs)('input[name="consent"]',e),A=(0,n.qs)('input[name="virtualTour"]',e),_=(0,n.qs)(".cmp-kmi__submit",e),M=(0,n.qs)("[data-form-error]",e),q={model:e.dataset.model,source:e.dataset.source||"KMI Leads",emailDomain:e.dataset.emailDomain||"mgmotor.co.in",eventCheck:e.dataset.eventCheck||"",dealerEndpoint:e.dataset.dealerEndpoint||"",dealerHeaders:u(e.dataset.dealerApiHeaders),leadEndpoint:e.dataset.leadEndpoint||"",leadHeaders:u(e.dataset.leadApiHeaders),noDealerMessage:e.dataset.noDealerMessage||"No dealership available.",errorMessage:e.dataset.errorMessage||"Something went wrong.",virtualTourPage:e.dataset.virtualTourPage||"",successPage:(e.dataset.successPagePath||"").trim()};q.dropoffEndpoint=q.leadEndpoint?`${q.leadEndpoint.replace(/\/+$/,"")}/dropoff`:"";const N={pincode:"",city:"",state:""},C=new Map;function S(e){const t=k();t&&(e&&e.length?t.setOptions(e.map((e,t)=>({label:e.DealerName||e.name||"",value:e.DealerCode||e.id||e.name||"",selected:0===t,meta:{dealerEmail:e.Sales_Manager_Email||"",merchantId:e.MerchantID||"",dealerName:e.DealerName||e.name||""}}))):t.setOptions([{label:q.noDealerMessage,value:"",disabled:!0}]))}async function L(e,t,a){const n=`${e}`;if(C.has(n))return void S(C.get(n));const r=k();if(r&&r.setOptions([{label:"Loading dealershipsâ¦",value:"",disabled:!0}]),q.dealerEndpoint)try{const e=new URLSearchParams({latitude:t,longitude:a,type:"dealerBooking"}),r=`${q.dealerEndpoint}?${e.toString()}`,o=await i.LV.get(r,{headers:q.dealerHeaders}),s=o&&(o.DealerList||o.dealerships||o)||[];S(s),C.set(n,s)}catch(e){S([])}else S([])}function $(e){M&&(M.textContent=e,M.classList.add("cmp-form__error--visible"))}function P(){const i=(0,n.qs)('input[name="fullName"]',t)||a,r=(0,n.qs)('input[name="mobile"]',t)||c,o=(0,n.qs)('input[name="pincode"]',t)||y,s=(0,n.qs)('input[name="consent"]',t)||E,l=(0,n.qs)('input[name="virtualTour"]',t)||A,{firstName:d,lastName:u}=function(e){const t=(e||"").trim().split(/\s+/).filter(Boolean);return t.length?1===t.length?{firstName:t[0],lastName:t[0]}:{firstName:t[0],lastName:t.slice(1).join(" ")}:{firstName:"",lastName:""}}(i?i.value:""),w=(r&&r.value||"").trim(),_=(o&&o.value||"").trim(),M=k(),C=M?String(M.getValue()||""):"",S=M?M.getOptions().filter(e=>e.value===C):[],L=S.length&&S[0].meta||{},$=L.dealerName||(S.length?S[0].label:""),P=L.dealerEmail||"",I=m("gclid"),D=m("fbclid"),T=m("ecid"),x=function(){const e=new Date,t=e=>String(e).padStart(2,"0");return`${e.getFullYear()}-${t(e.getMonth()+1)}-${t(e.getDate())} ${t(e.getHours())}:${t(e.getMinutes())}:${t(e.getSeconds())}`}();
1return{pincode:_,Dealerdetail:C,marketingConsentTimestamp:x,MID:p(),cid:h(),city:N.city,dealerCode:C,dealerEmail:P,ecid:T,email:g(w,q.emailDomain),emailValidated:1,eventCheck:q.eventCheck,fbclid:D,firstName:d,gclid:I,intent:"",kmidocpath:"",lastName:u,leadCaptureTimestamp:x,marketingConsent:s&&s.checked?"1":"0",mobilePhone:w,model:v(e),referrerMobilePhone:"",referrerName:"",source:b(q.source,I,D),...f(),dealerName:$,virtualConsent:!(!l||!l.checked),pageUrl:window.location.href}}(0,l.ts)(e,{radioName:"vehicle",hookPrefix:"kmi"}),t&&((0,n.on)(t,"form:geocoded",e=>{const{lat:t,lng:a,pincode:n,city:i,state:r}=e.detail;N.pincode=n,N.city=i||"",N.state=r||"",L(n,t,a)}),(0,n.on)(t,"form:geocoded:failed",e=>{const{pincode:t,city:a,state:n}=e.detail;t&&6===t.length&&(d("[kmi] geocode failed, using fallback coords for pincode",t),N.pincode=t,N.city=a||"",N.state=n||"",L(t,28.6139,77.209))}),(0,n.on)(t,"otp:send:before",()=>{try{!function(){if(!q.dropoffEndpoint)return;let e;try{e=P()}catch(e){return}const t=e&&e.mobilePhone;t&&I!==t&&(I=t,e.leadStatus="Dropoff",i.LV.post(q.dropoffEndpoint,e,{headers:q.leadHeaders,timeoutMs:9e4}).catch(e=>{d("[kmi] dropoff failed (ignored)",e)}))}()}catch(e){}})),a&&((0,n.on)(a,"input",()=>{const e=a.value,t=e.replace(/[^A-Za-z .-]/g,"");if(t!==e){const n=a.selectionStart;a.value=t;const i=e.length-t.length;try{a.setSelectionRange(n-i,n-i)}catch(e){}}}),(0,n.on)(a,"blur",()=>{const e=(a.value||"").trim().replace(/\s+/g," ");e!==a.value&&(a.value=e,(0,r.A3)(a))})),y&&(0,n.on)(y,"cmp:validate:invalid",()=>{N.pincode&&(N.pincode="",N.city="",N.state="",S([]))});let I="";t&&_&&((0,n.on)(document,"submit",async a=>{if(a.target===t&&(a.preventDefault(),a.stopPropagation(),"true"!==t.dataset.kmiSubmitting)){t.dataset.kmiSubmitting="true",M&&(M.textContent="",M.classList.remove("cmp-form__error--visible")),_.setAttribute("disabled","disabled"),_.setAttribute("aria-busy","true");try{let a=!1;try{const e=await(0,r.iH)(t);a=!(!e||!e.valid)}catch(e){return void $(q.errorMessage)}if(!a)return;const l=(0,n.qs)('[data-cmp-field="otp"]',t);if(l&&l.hasAttribute("data-otp-required")&&l._otpApi&&!l._otpApi.getState().otpVerified){const t=l.dataset.otpErrorMessage||e.dataset.otpRequiredMessage||"Please verify your OTP to continue.";return l._otpApi.setError(t),void l._otpApi.focus()}let d;(0,o.ro)();try{d=P()}catch(e){return void $(q.errorMessage)}const c=await function(e){return q.leadEndpoint?i.LV.post(q.leadEndpoint,e,{headers:q.leadHeaders,timeoutMs:9e4}):Promise.resolve({success:!0,mocked:!0})}(d);if(c&&"failure"===c.Status)return void $(c.Message||q.errorMessage);if(c&&"forbidden"===c.Status)return void $(c.Message||"A data validation error has occurred. Please review the details entered.");const u=c&&c.c4cLeadID||"",m={name:`${d.firstName} ${d.lastName}`.trim(),mobile:d.mobilePhone,dealership:d.dealerName,virtualTour:d.virtualConsent,leadId:u};e.dispatchEvent(new CustomEvent("kmi:submit:success",{bubbles:!0,detail:{response:c,mobile:d.mobilePhone,leadId:u}})),function(){t.reset();const a=k();a&&a.setOptions([]),N.pincode="",N.city="",N.state="",C.clear(),y&&y.dispatchEvent(new Event("input",{bubbles:!0})),y&&(0,r.m_)(y);const i=w&&(0,n.qs)('input[type="hidden"]',w);i&&(0,r.m_)(i);const o=(0,n.qs)('[data-cmp="vehicle-picker"]',e);o&&window.MGVehiclePicker&&"function"==typeof window.MGVehiclePicker.reset&&window.MGVehiclePicker.reset(o)}(),function(e){if(!q.successPage)return;const t=e.mobile||"";(0,s.Cn)({name:e.name,mobile:t?`+91 ${t}`:"",dealership:e.dealership,virtualTour:!!e.virtualTour,virtualTourPage:e.virtualTour?q.virtualTourPage:""}),window.location.href=q.successPage}(m)}catch(e){d("[kmi] submit failed",e),$(e instanceof i.fk&&400===e.status?"A data validation error has occurred. Please review the details entered.":q.errorMessage)}finally{(0,o.yr)(),delete t.dataset.kmiSubmitting,_.removeAttribute("disabled"),_.removeAttribute("aria-busy")}}},!0),(0,n.on)(_,"click",e=>{_.disabled||"true"===_.getAttribute("aria-busy")||"true"!==t.dataset.kmiSubmitting&&(e.preventDefault(),"function"==typeof t.requestSubmit?t.requestSubmit(_):t.dispatchEvent(new Event("submit",{cancelable:!0,bubbles:!0})))}))}function w(e=document){(0,n.GY)(c,e).forEach(y)}const k={selector:c,init:w}},8900(e,t,a){a.d(t,{Em:()=>i,LV:()=>r,fk:()=>n});
1class n extends Error{constructor(e,t,a){super(e),this.name="FetchError",this.status=t,this.response=a}}async function i(e,t={}){const{body:a,timeoutMs:r=1e4,retries:o=0,retryDelayMs:s=300,headers:l,signal:d,...c}=t,u=new AbortController,m=setTimeout(()=>u.abort(),r),f=()=>u.abort();d&&(d.aborted?u.abort():d.addEventListener("abort",f,{once:!0}));const p={...c,signal:u.signal,headers:{Accept:"application/json",...a?{"Content-Type":"application/json"}:{},...l},body:void 0!==a?JSON.stringify(a):void 0};try{const t=await fetch(e,p);if(!t.ok)throw new n("Request failed: "+t.status,t.status,t);if(204===t.status)return;return(t.headers.get("content-type")||"").includes("application/json")?t.json():t.text()}catch(a){if(o>0&&!(a instanceof n&&a.status<500))return await(h=s,new Promise(e=>setTimeout(e,h))),i(e,{...t,retries:o-1});throw a}finally{clearTimeout(m),d&&d.removeEventListener("abort",f)}var h}const r={get:(e,t)=>i(e,{...t,method:"GET"}),post:(e,t,a)=>i(e,{...a,method:"POST",body:t}),put:(e,t,a)=>i(e,{...a,method:"PUT",body:t}),patch:(e,t,a)=>i(e,{...a,method:"PATCH",body:t}),del:(e,t)=>i(e,{...t,method:"DELETE"})}},6259(e,t,a){a.d(t,{Cn:()=>s,DT:()=>o});var n=a(8448);const i=n.KT,r=(0,n.Uh)("mgKmi",i),o=r.get,s=r.save;r.clear},4785(e,t,a){a.d(t,{ro:()=>u,yr:()=>m});const n="cmp-loader",i="cmp-loader-open",r="Loading",o="Loading",s="rgba(0,0,0,0.45)";function l(e){const t=parseInt(e,10);return Number.isNaN(t)||t<24||t>256?80:t}function d(e,t){return"spinner"===t?"spinner":e?"image":"spinner"}function c(e){const t=document.createElement("span");return t.className=`${n}__spinner`,t.style.width=`${e.size}px`,t.style.height=`${e.size}px`,t.setAttribute("aria-hidden","true"),t}function u(e){if("undefined"==typeof document||!document.body)return;if(document.querySelector(`.${n}`))return;const t=function(){const e=function(){if("undefined"==typeof document)return null;const e=document.querySelector('[data-cmp="loader-config"]');return e?{gif:(e.dataset.loaderGif||"").trim(),alt:(e.dataset.loaderAlt||"").trim()||r,label:(e.dataset.loaderLabel||"").trim()||o,size:l(e.dataset.loaderSize),backdrop:(e.dataset.loaderBackdrop||"").trim()||s,mode:(e.dataset.loaderMode||"").trim()}:null}()||{},t="undefined"!=typeof window&&window.MG_LOADER_CONFIG||{},a="undefined"!=typeof window&&window.MG_LOADER_GIF_URL||"",n={gif:t.gif||e.gif||a||"",alt:t.alt||e.alt||r,label:t.label||e.label||o,size:Number(t.size)||e.size||80,backdrop:t.backdrop||e.backdrop||s,mode:t.mode||e.mode||""};return n.renderMode=d(n.gif,n.mode),n}();let a=t;if(e){const n=Object.assign({},t,e);n.renderMode=d(n.gif,n.mode),a=n}const u=function(e){const t=document.createElement("div");if(t.className=n,t.setAttribute("role","status"),t.setAttribute("aria-live","polite"),t.setAttribute("aria-label",e.label),t.style.background=e.backdrop,"image"===e.renderMode){const a=document.createElement("img");a.className=`${n}__img`,a.src=e.gif,a.alt=e.alt,a.width=e.size,a.height=e.size,a.style.width=`${e.size}px`,a.style.height=`${e.size}px`,a.setAttribute("aria-hidden","true"),a.addEventListener("error",()=>{a.remove(),t.appendChild(c(e))},{once:!0}),t.appendChild(a)}else t.appendChild(c(e));const a=document.createElement("span");return a.className=`${n}__sr`,a.textContent=e.label,t.appendChild(a),t}(a);document.body.appendChild(u),document.body.classList.add(i)}function m(){if("undefined"==typeof document)return;const e=document.querySelector(`.${n}`);e&&e.parentNode&&e.parentNode.removeChild(e),document.body&&document.body.classList.remove(i)}},8448(e,t,a){a.d(t,{KT:()=>n,Uh:()=>i});const n=18e5;function i(e,t=n){const a=String(e||"");function i(){if(a)try{window.sessionStorage.removeItem(a)}catch(e){}}return{get:function(){if(!a)return null;try{const e=window.sessionStorage.getItem(a);if(!e)return null;const n=JSON.parse(e);return n&&"object"==typeof n&&"number"==typeof n.savedAt?Date.now()-n.savedAt>t?(i(),null):n.data||null:null}catch(e){return null}},save:function(e){if(a)try{window.sessionStorage.setItem(a,JSON.stringify({savedAt:Date.now(),data:e||{}}))}catch(e){}},clear:i,ttlMs:t}}},3913(e,t,a){a.d(t,{A3:()=>w,EM:()=>k,az:()=>p,iH:()=>g,jr:()=>u,kZ:()=>m,m_:()=>y,oR:()=>h,qV:()=>d,qY:()=>o,uv:()=>v});const n="is-invalid",i="is-valid",r="cmp-form__error--visible",o={invalid:"cmp:validate:invalid",valid:"cmp:validate:valid",submitInvalid:"cmp:validate:submit-invalid"};function s(e){if("checkbox"===e.type)return e.checked?e.value||"on":"";if("radio"===e.type){const t=(e.form||document).querySelector('input[type="radio"][name="'+e.name+'"]:checked');return t?t.value:""}return e.value||""}const l={required:e=>0===e.trim().length?"This field is required":null,email:e=>e&&!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)?"Enter a valid email address":null,tel:e=>e&&!/^[+0-9\s()-]{7,20}$/.test(e)?"Enter a valid phone number":null,numeric:e=>e&&!/^[0-9]+$/.test(e)?"Numbers only":null,minLength:(e,t)=>{if(!e)return null;const a=Number(t.dataset.validateMinlength);return e.length<a?"Minimum "+a+" characters":null},maxLength:(e,t)=>{if(!e)return null;const a=Number(t.dataset.validateMaxlength);return e.length>a?"Maximum "+a+" characters":null},pattern:(e,t)=>{if(!e)return null;const a=t.dataset.validatePattern;if(!a)return null;try{return new RegExp(a).test(e)?null:"Invalid format"}catch(e){return null}}};function d(e,t,a){l[e]=a?(e,n)=>{const i=t(e,n);return null==i||!0===i?null:"string"==typeof i?i:a}:t}
1function c(e,t,a){const n="validate"+t.charAt(0).toUpperCase()+t.slice(1)+"Message";return e.dataset[n]||e.dataset.validateMessage||a}function u(e){const t=s(e),a=(e.dataset.validate||"").split(/\s+/).filter(Boolean);for(const n of a){const a=l[n];if(!a)continue;const i=a(t,e);if(i)return c(e,n,i)}return null}function m(e){const t=e.id,a=Array.from(e.querySelectorAll("[data-validate]"));if(!t)return a;const n=Array.from(document.querySelectorAll(`[data-form-scope="#${t}"][data-validate]`)),i=new Set(a);return n.forEach(e=>{i.has(e)||(i.add(e),a.push(e))}),a}const f={};function p(e,t,a){f[e]=async(e,n)=>{const i=await t(e,n);return null==i||!0===i?null:!1===i?a||"Invalid value":"string"==typeof i?i:a||"Invalid value"},f[e].__default=a}async function h(e,{markValid:t=!1}={}){const a=await async function(e){const t=u(e);if(t)return t;const a=(e.dataset.validate||"").split(/\s+/).filter(Boolean),n=s(e);for(const t of a){const a=f[t];if(!a)continue;const i=await a(n,e);if(i)return i===a.__default?c(e,t,i):i}return null}(e);return a?v(e,a):y(e,{markValid:t}),{valid:!a,message:a}}async function g(e,{markValid:t=!1,focusFirst:a=!0}={}){const n=m(e),i=await Promise.all(n.map(e=>h(e,{markValid:t}))),r={};let s=null;i.forEach(({valid:e,message:t},a)=>{if(!e){const e=n[a];r[e.name||e.id]=t,s||(s=e)}});const l=0===Object.keys(r).length;return l||(e.dispatchEvent(new CustomEvent(o.submitInvalid,{bubbles:!0,detail:{form:e,errors:r,firstInvalid:s}})),a&&s&&s.focus()),{valid:l,errors:r}}function b(e){const t=e.dataset.errorTarget;if("next"===t)return e.nextElementSibling;if(t&&"#"!==t)try{const e=document.querySelector(t);if(e)return e}catch(e){}const a=e.getAttribute("aria-describedby");if(a)for(const e of a.split(/\s+/)){const t=document.getElementById(e);if(t)return t}const n=document.createElement("p"),i=e.id||e.name||"f";return n.id=i+"-err",n.className="cmp-form__error",n.setAttribute("role","alert"),e.insertAdjacentElement("afterend",n),e.setAttribute("aria-describedby",[a,n.id].filter(Boolean).join(" ")),n}function v(e,t){const a=b(e);e.setAttribute("aria-invalid","true"),e.classList.add(n),e.classList.remove(i),a&&(a.textContent=t||"",a.classList.add(r)),e.dispatchEvent(new CustomEvent(o.invalid,{bubbles:!0,detail:{field:e,message:t}}))}function y(e,{markValid:t=!1}={}){const a=b(e);e.setAttribute("aria-invalid","false"),e.classList.remove(n),t&&e.classList.add(i),a&&(a.textContent="",a.classList.remove(r)),e.dispatchEvent(new CustomEvent(o.valid,{bubbles:!0,detail:{field:e}}))}function w(e,{markValid:t=!1}={}){const a=u(e);return a?v(e,a):y(e,{markValid:t}),{valid:!a,message:a}}function k(e,{markValid:t=!1,focusFirst:a=!0}={}){const n=m(e),i={};let r=null;
1n.forEach(e=>{const{valid:a,message:n}=w(e,{markValid:t});a||(i[e.name||e.id]=n,r||(r=e))});const s=0===Object.keys(i).length;return s||(e.dispatchEvent(new CustomEvent(o.submitInvalid,{bubbles:!0,detail:{form:e,errors:i,firstInvalid:r}})),a&&r&&r.focus()),{valid:s,errors:i}}},6210(e,t,a){a.d(t,{CJ:()=>o,RS:()=>r,Wh:()=>i,ts:()=>s});var n=a(7856);function i(e,t,a){if(!e||!t)return;const i=function(e){return e&&-1===e.indexOf("?")?-1===e.indexOf("/is/image/")||/\.(svg|gif)$/i.test(e)||0===e.indexOf("data:")?e:e+"?fmt=webp-alpha":e}(t),r="IMG"===e.tagName?e:(0,n.qs)("img.cmp-image__media",e)||(0,n.qs)("img.cmp-image__media-img",e)||(0,n.qs)("img",e);r&&(r.getAttribute("src")!==i&&r.setAttribute("src",i),a&&r.setAttribute("alt",a)),(0,n.GY)("source",e).forEach(e=>e.setAttribute("srcset",i))}function r(e,t,a,r){if(!t)return;const o=r||"td";(0,n.GY)(`[data-cmp-hook-${o}="hero-img"], [data-cmp-hook-${o}^="hero-img-mobile"]`,e).forEach(e=>i(e,t,a))}function o(e,t,a,r){if(!t)return;const o=r||"td",s=(0,n.qs)(`[data-cmp-hook-${o}="modal-image"]`,e);if(s)return void i(s,t,a);const l=(0,n.qs)(`[data-cmp-hook-${o}="modal-image-img"]`,e),d=(0,n.qs)(`[data-cmp-hook-${o}="modal-image-source"]`,e);l&&(l.getAttribute("src")!==t&&l.setAttribute("src",t),a&&l.setAttribute("alt",a)),d&&d.setAttribute("srcset",t)}function s(e,{radioName:t,hookPrefix:a}){const i=(0,n.qs)('[data-cmp="vehicle-picker"]',e);i&&i.addEventListener("vehicle-picker:change",()=>{const i=(0,n.qs)(`input[name="${t}"]:checked`,e);if(!i)return;const s=i.closest(".cmp-vehicle-picker__card");if(!s)return;const l=s.getAttribute("data-vehicle-hero"),d=s.getAttribute("data-vehicle-modal"),c=s.getAttribute("data-vehicle-label")||s.getAttribute("data-vehicle-name")||"",u=s.getAttribute("data-vehicle-hero-alt")||c;r(e,l,u,a),o(e,d||l,c,a)})}}}]); 2//# sourceMappingURL=cmp-kmi.e948d672.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.