Images Compressed Login page modifications
@@ -54,18 +54,13 @@
|
|||||||
<!-- end-navbar -->
|
<!-- end-navbar -->
|
||||||
<!-- main-body -->
|
<!-- main-body -->
|
||||||
<main class="main-body home-main-container">
|
<main class="main-body home-main-container">
|
||||||
<section class="services h-100 pt-5 bg-gradient-anwi">
|
<section class="services h-100 pt-3 bg-gradient-anwi">
|
||||||
<div class="container pt-md-5 pt-4">
|
<div class="container pt-5 ">
|
||||||
<div class="text-center text-white pt-md-5 pb-md-5 pb-4">
|
<div class="text-center text-white ">
|
||||||
<h3 class="text-center mb-md-2 mb-3 pt-md-5">
|
|
||||||
<span class="satoshi_font font-weight-600 pb-1">Contact Us </span>
|
|
||||||
</h3>
|
|
||||||
<h5 class="font-weight-lighter">Thank you for showing interest in our services.</h5>
|
|
||||||
<h5 class="font-weight-lighter">Please fill the details so that our experts will get back to you.</h5>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
<section class="contact-section py-md-5 py-3 bg-gradient-violet">
|
<section class="contact-section py-md-5 py-3 " style="background: url(dist/assets/imgs/bg-blur.png);">
|
||||||
<div class="container pt-md-5 pt-3">
|
<div class="container pt-md-5 pt-3">
|
||||||
<div class="row bg-white rounded-3 shadow mx-0">
|
<div class="row bg-white rounded-3 shadow mx-0">
|
||||||
<div class="col-lg-6 col-12 mb-30 bg-gradient-anwi text-white p-md-5 p-4">
|
<div class="col-lg-6 col-12 mb-30 bg-gradient-anwi text-white p-md-5 p-4">
|
||||||
|
|||||||
@@ -60,6 +60,7 @@ function initLogin() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
$("#Login_btn").click(function () {
|
$("#Login_btn").click(function () {
|
||||||
|
$('.error_msg').hide();
|
||||||
// loginForm.find(".loader-btn").show();
|
// loginForm.find(".loader-btn").show();
|
||||||
let userEmail = loginForm.find("#User_Email").val();
|
let userEmail = loginForm.find("#User_Email").val();
|
||||||
let userPassword = loginForm.find("#User_password").val();
|
let userPassword = loginForm.find("#User_password").val();
|
||||||
@@ -103,8 +104,20 @@ function initLogin() {
|
|||||||
};
|
};
|
||||||
let response = await axios(config);
|
let response = await axios(config);
|
||||||
if (response.data.result == null) {
|
if (response.data.result == null) {
|
||||||
toasterOpts();
|
$('.error_msg').show();
|
||||||
Command: toastr["error"]("Please enter Valid email / password");
|
$('.error_msg .error_msg_res').html(`User doesn't exists with the email, <a href="#" class="alert-link register_sectionbtn" id="register_sectionbtn">Sign Up </a>`);
|
||||||
|
$(".register_sectionbtn").click(function(){
|
||||||
|
$(".login_section").css("display","none");
|
||||||
|
$(".register_section").css("display","block");
|
||||||
|
$(".login_section").find("#User_Email").removeClass("is-invalid");
|
||||||
|
$(".login_section").find(".form-floating").removeClass("is-invalid");
|
||||||
|
$(".login_section").find("#User_password").removeClass("is-invalid");
|
||||||
|
$(".login_section").find(".form-floating").removeClass("is-invalid");
|
||||||
|
$('.error_msg').hide();
|
||||||
|
});
|
||||||
|
// toasterOpts();
|
||||||
|
|
||||||
|
// Command: toastr["error"]("Please enter Valid email / password");
|
||||||
} else {
|
} else {
|
||||||
let userEmail = $("#User_Email").val();
|
let userEmail = $("#User_Email").val();
|
||||||
let userPassword = $("#User_password").val();
|
let userPassword = $("#User_password").val();
|
||||||
@@ -148,8 +161,16 @@ function initLogin() {
|
|||||||
|
|
||||||
window.location.href = `./index.html`;
|
window.location.href = `./index.html`;
|
||||||
} else {
|
} else {
|
||||||
toasterOpts();
|
$('.error_msg').show();
|
||||||
Command: toastr["error"](res.data.message)
|
$('.error_msg .error_msg_res').html(res.data.message + ' <a class="validate_mail text-danger"><b>Validate Email</b></a>');
|
||||||
|
// toasterOpts();
|
||||||
|
// Command: toastr["error"]()
|
||||||
|
/*Email validation*/
|
||||||
|
$('.validate_mail').click(function(){
|
||||||
|
$(".login_section").hide();
|
||||||
|
$(".email-validate-div").show();
|
||||||
|
$('.error_msg').hide();
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -194,8 +215,10 @@ function initLogin() {
|
|||||||
$(".loader-btn").hide();
|
$(".loader-btn").hide();
|
||||||
$('#register_btn').show()
|
$('#register_btn').show()
|
||||||
if (res.data.code == "404" ) {
|
if (res.data.code == "404" ) {
|
||||||
toasterOpts();
|
// toasterOpts();
|
||||||
Command: toastr["error"](res.data.message)
|
// Command: toastr["error"](res.data.message)
|
||||||
|
$('.error_msg').show();
|
||||||
|
$('.error_msg .error_msg_res').html(res.data.message);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -254,12 +277,16 @@ function initLogin() {
|
|||||||
window.localStorage.setItem("isaccountCreated", true);
|
window.localStorage.setItem("isaccountCreated", true);
|
||||||
window.location.href = `./index.html`;
|
window.location.href = `./index.html`;
|
||||||
} else {
|
} else {
|
||||||
toasterOpts();
|
// toasterOpts();
|
||||||
Command: toastr["error"](res.data.message)
|
// Command: toastr["error"](res.data.message)
|
||||||
|
$('.error_msg').show();
|
||||||
|
$('.error_msg .error_msg_res').html(res.data.message);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
toasterOpts();
|
// toasterOpts();
|
||||||
Command: toastr["error"]("Please enter Valid OTP");
|
// Command: toastr["error"]("Please enter Valid OTP");
|
||||||
|
$('.error_msg').show();
|
||||||
|
$('.error_msg .error_msg_res').html("Please enter Valid OTP");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -327,7 +354,7 @@ function initLogin() {
|
|||||||
|
|
||||||
// function to validate user entered password
|
// function to validate user entered password
|
||||||
function validatepassword(userPassword) {
|
function validatepassword(userPassword) {
|
||||||
var pattern = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[^a-zA-Z0-9]).{11,}$/;
|
var pattern = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[^a-zA-Z0-9])(?!.*\s).{8,15}$/;
|
||||||
// return $.trim(userPassword).test(pattern) ? true : false;
|
// return $.trim(userPassword).test(pattern) ? true : false;
|
||||||
return pattern.test(userPassword) ? true : false;
|
return pattern.test(userPassword) ? true : false;
|
||||||
}
|
}
|
||||||
@@ -338,6 +365,7 @@ function initLogin() {
|
|||||||
|
|
||||||
// this will be triggered on clicking continue in signup form
|
// this will be triggered on clicking continue in signup form
|
||||||
$("#register_btn").click(function () {
|
$("#register_btn").click(function () {
|
||||||
|
$('.error_msg').hide();
|
||||||
registerForm.find(".loader-btn").show();
|
registerForm.find(".loader-btn").show();
|
||||||
$(this).hide();
|
$(this).hide();
|
||||||
let userEmail = registerForm.find("#User_Email").val();
|
let userEmail = registerForm.find("#User_Email").val();
|
||||||
@@ -373,9 +401,9 @@ function initLogin() {
|
|||||||
registerForm.find(".loader-btn").hide();
|
registerForm.find(".loader-btn").hide();
|
||||||
$(this).show();
|
$(this).show();
|
||||||
}else if(Pwd_valid === false){
|
}else if(Pwd_valid === false){
|
||||||
emailInput.find("#User_password").addClass("is-invalid");
|
passwordInput.find("#User_password").addClass("is-invalid");
|
||||||
emailInput.find(".form-floating").addClass("is-invalid");
|
passwordInput.find(".form-floating").addClass("is-invalid");
|
||||||
emailInput.find(".invalid-feedback").text("Please check the password!");
|
passwordInput.find(".invalid-feedback").text("Please check the password!");
|
||||||
registerForm.find(".loader-btn").hide();
|
registerForm.find(".loader-btn").hide();
|
||||||
$(this).show();
|
$(this).show();
|
||||||
}
|
}
|
||||||
@@ -531,8 +559,10 @@ return
|
|||||||
$(".login-forgot-password-details-div").show();
|
$(".login-forgot-password-details-div").show();
|
||||||
$(".otp-validation .otp-input-group").hide();
|
$(".otp-validation .otp-input-group").hide();
|
||||||
} else {
|
} else {
|
||||||
toasterOpts()
|
// toasterOpts()
|
||||||
Command: toastr["error"]("Please enter Valid OTP");
|
// Command: toastr["error"]("Please enter Valid OTP");
|
||||||
|
$('.error_msg').show();
|
||||||
|
$('.error_msg .error_msg_res').html("Please enter Valid OTP");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
$("#forgot_password_details_submit").click(async function () {
|
$("#forgot_password_details_submit").click(async function () {
|
||||||
@@ -612,5 +642,131 @@ return
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
$("#email_validate_submit").click(async function () {
|
||||||
|
let vaidate_otp;
|
||||||
|
let validate_email = $("#email_validation_input").val();
|
||||||
|
if(validate_email == ''){
|
||||||
|
$('#email_validation_input').addClass('is-invalid')
|
||||||
|
$('#email_validation_input').after(`<div class="invalid-feedback">Please enter Valid email</div>`);
|
||||||
|
return
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
debugger;
|
||||||
|
let port = "https://beta.bizgaze.app";
|
||||||
|
// let port = "http://localhost:3088";
|
||||||
|
let url = `${port}/account/getuserbyphoneormail/${validate_email}/${validate_email}`;
|
||||||
|
const config = {
|
||||||
|
url,
|
||||||
|
method: "get",
|
||||||
|
};
|
||||||
|
$(".loader-btn").show();
|
||||||
|
$('#email_validate_submit').hide()
|
||||||
|
let response = await axios(config);
|
||||||
|
debugger;
|
||||||
|
console.log(response);
|
||||||
|
$(".loader-btn").hide();
|
||||||
|
$('#email_validate_submit').show()
|
||||||
|
if (response.data.result != null) {
|
||||||
|
debugger;
|
||||||
|
console.log(response.data);
|
||||||
|
const forgotpassPayload = {
|
||||||
|
firstname: "",
|
||||||
|
lastname: "",
|
||||||
|
contactnumber: "",
|
||||||
|
email: "",
|
||||||
|
tenantname: "",
|
||||||
|
contactoremail: response.data.result.email,
|
||||||
|
IsSignup: false,
|
||||||
|
IsRegisterUser: false,
|
||||||
|
IsForgotPswd: true,
|
||||||
|
UnibaseId: response.data.result.userName,
|
||||||
|
OtpId: 0,
|
||||||
|
UserOtp: "",
|
||||||
|
};
|
||||||
|
$('#email_validate_submit').hide()
|
||||||
|
$(".loader-btn").show();
|
||||||
|
const validate_email_res = await postAPIService(
|
||||||
|
`account/sendotp`,
|
||||||
|
forgotpassPayload
|
||||||
|
);
|
||||||
|
$(".loader-btn").hide();
|
||||||
|
vaidate_otp = validate_email_res.data;
|
||||||
|
console.log(validate_email_res);
|
||||||
|
$(".email-validation").hide();
|
||||||
|
$('.user_email').html(validate_email)
|
||||||
|
$(".otp-validation .otp-input-group").show();
|
||||||
|
$(".otp-validation .otp-input-group").on("paste", function (p) {
|
||||||
|
let data = p.originalEvent.clipboardData.getData("text");
|
||||||
|
let dataLength = data.length;
|
||||||
|
for (let i = 0; i < dataLength; i++) {
|
||||||
|
let input = $(
|
||||||
|
'.otp-validation .otp-input-group input[tabindex="' + (i + 1) + '"]'
|
||||||
|
);
|
||||||
|
input.val(data.charAt(i));
|
||||||
|
if (input.val().length >= input.attr("maxlength")) {
|
||||||
|
let nextInput = $(
|
||||||
|
'.otp-validation .otp-input-group input[tabindex="' +
|
||||||
|
(i + 2) +
|
||||||
|
'"]'
|
||||||
|
);
|
||||||
|
if (nextInput) {
|
||||||
|
nextInput.focus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
p.preventDefault();
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
$('#email_validation_input').addClass('is-invalid');
|
||||||
|
$('#email_validation_input').after(`<div class="invalid-feedback">Please enter Valid email</div>`);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$("#email_validate_proceed").click(async function () {
|
||||||
|
debugger;
|
||||||
|
let userotp='';
|
||||||
|
let validate_email = $("#email_validation_input").val();
|
||||||
|
$(".email-validate-div .otp-validation .otp-input-group input").each(function () {
|
||||||
|
let presVal = $(this).val();
|
||||||
|
userotp += presVal;
|
||||||
|
});
|
||||||
|
|
||||||
|
if(userotp.length == 6){
|
||||||
|
const validateForgotpass = {
|
||||||
|
email: validate_email,
|
||||||
|
otpid: vaidate_otp,
|
||||||
|
userotp: userotp,
|
||||||
|
};
|
||||||
|
$('#email_validate_proceed').hide()
|
||||||
|
$(".loader-btn").show();
|
||||||
|
const validate_email_resopt = await postAPIService(
|
||||||
|
`hyperfusion/validateotp`,
|
||||||
|
validateForgotpass
|
||||||
|
);
|
||||||
|
|
||||||
|
$(".loader-btn").hide();
|
||||||
|
$('#email_validate_proceed').show()
|
||||||
|
const Resotp = validate_email_resopt.data.result;
|
||||||
|
if (Resotp == "Otp verified successfully") {
|
||||||
|
$(".login_section").show();
|
||||||
|
$(".otp-validation .otp-input-group").hide();
|
||||||
|
$("#email_validate_back").hide();
|
||||||
|
$('.error_msg').hide();
|
||||||
|
} else {
|
||||||
|
// toasterOpts()
|
||||||
|
// Command: toastr["error"]("Please enter Valid OTP");
|
||||||
|
$('.error_msg').show();
|
||||||
|
$('.error_msg .error_msg_res').html("Please enter Valid OTP");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
$('.error_msg').show();
|
||||||
|
$('.error_msg .error_msg_res').html("Please enter OTP");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
initLogin();
|
initLogin();
|
||||||
|
|||||||
@@ -82,9 +82,9 @@ function ramProductsInit(){
|
|||||||
|
|
||||||
<!--desktop--->
|
<!--desktop--->
|
||||||
<div class="col-sm-4 p-3">
|
<div class="col-sm-4 p-3">
|
||||||
<div class="product_card_3 shadow ram_card">
|
<div class="product_card_1 shadow ram_card">
|
||||||
<div class="card-item-header">
|
<div class="card-item-header">
|
||||||
<div class="card-header-sub-3"><a class=" py-md-1" href="/productdetails.html?productId=${RAM_ID}#itemid=${itemid}">
|
<div class="card-header-sub-1"><a class=" py-md-1" href="/productdetails.html?productId=${RAM_ID}#itemid=${itemid}">
|
||||||
<img src="./dist/assets/imgs/Navbar/ora_ddr4_desktop.png" class="w-100 h-100"></a>
|
<img src="./dist/assets/imgs/Navbar/ora_ddr4_desktop.png" class="w-100 h-100"></a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -406,11 +406,11 @@ function initSelectDevlivery() {
|
|||||||
function getItemProductHTML(item) {
|
function getItemProductHTML(item) {
|
||||||
const { img, name, price, quantity, sku, id } = item;
|
const { img, name, price, quantity, sku, id } = item;
|
||||||
|
|
||||||
return ` <div class="align-items-center item-product-add d-flex justify-content-between" data-id="${id}" data-sku="${sku}">
|
return ` <div class="align-items-center item-product-add d-flex w-100" data-id="${id}" data-sku="${sku}">
|
||||||
<div style="max-width: 100px;" class="">
|
<div style="max-width: 100px;" class="">
|
||||||
<img class="w-100" src="${img}" alt="">
|
<img class="w-100" src="${img}" alt="">
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div class="" style="margin-left:10px">
|
||||||
<div>
|
<div>
|
||||||
<div style="font-size:12px">${name}</div>
|
<div style="font-size:12px">${name}</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -574,6 +574,7 @@ debugger;
|
|||||||
}
|
}
|
||||||
$('.orderlistcart').html(productsHTML);
|
$('.orderlistcart').html(productsHTML);
|
||||||
// $('.orderslist').html(productsHTML);
|
// $('.orderslist').html(productsHTML);
|
||||||
|
$('.orderslist').addClass("p-3")
|
||||||
$('.orderslist').html(` <label for="online">
|
$('.orderslist').html(` <label for="online">
|
||||||
Online
|
Online
|
||||||
<input checked data-op="online" name="payment" type="radio" class="paymentbtn " id="online">
|
<input checked data-op="online" name="payment" type="radio" class="paymentbtn " id="online">
|
||||||
@@ -630,6 +631,7 @@ debugger;
|
|||||||
$('.detailsAddressBg').removeClass('detailsAddressBg');
|
$('.detailsAddressBg').removeClass('detailsAddressBg');
|
||||||
$('.selectAddress').addClass('detailsAddressBg');
|
$('.selectAddress').addClass('detailsAddressBg');
|
||||||
$('.orderslist').html('');
|
$('.orderslist').html('');
|
||||||
|
$('.orderslist').removeClass("p-3");
|
||||||
orderBtnAction.removeOrdernowBtn();
|
orderBtnAction.removeOrdernowBtn();
|
||||||
|
|
||||||
// $('.detailsAddressBtn').addClass('d-none');
|
// $('.detailsAddressBtn').addClass('d-none');
|
||||||
|
|||||||
@@ -134,8 +134,8 @@ function shoppingCartInit() {
|
|||||||
|
|
||||||
function getQuantityHTML(value, id) {
|
function getQuantityHTML(value, id) {
|
||||||
return `<div data-id="${id}" class="mainselectcontainer w-100">
|
return `<div data-id="${id}" class="mainselectcontainer w-100">
|
||||||
<div class="w-100">
|
<div class="w-50">
|
||||||
<label>Qty</label>
|
|
||||||
<select class="quantitySelect form-select ${value >= 5 ? 'd-none' : ''}" value="${value}">
|
<select class="quantitySelect form-select ${value >= 5 ? 'd-none' : ''}" value="${value}">
|
||||||
<option ${value == 1 ? 'selected="selected"' : null} value="1">
|
<option ${value == 1 ? 'selected="selected"' : null} value="1">
|
||||||
1
|
1
|
||||||
@@ -166,42 +166,40 @@ function shoppingCartInit() {
|
|||||||
function shoppingCartDesktopHTML({ id, img, name, price, description, quantity, total }) {
|
function shoppingCartDesktopHTML({ id, img, name, price, description, quantity, total }) {
|
||||||
const [currencySymbol,amt] = getCurrencySymbol(price);
|
const [currencySymbol,amt] = getCurrencySymbol(price);
|
||||||
return `
|
return `
|
||||||
<div class="row bg-white mt-3 rounded py-3 d-flex ">
|
<div class="row bg-white border-bottom py-4 d-flex justify-content-center align-items-center">
|
||||||
<div class="col-md-2 text-center"><img src="${img}" alt="${name}" class="img-fluid"></div>
|
<div class="col-md-2 text-center"><img src="${img}" alt="${name}" class="img-fluid"></div>
|
||||||
<div class="col-md-4 d-flex justify-content-center align-items-center">
|
<div class="col-md-4 ">
|
||||||
|
|
||||||
<a class="text-decoration-none text-dark cursor-pointer" href="/productdetails.html?productId=${id}">${name}</a>
|
<a class="text-decoration-none text-blue fw-600 cursor-pointer" href="/productdetails.html?productId=${id}">${name}</a>
|
||||||
<small>${description||''}</small>
|
<small>${description||''}</small>
|
||||||
<span class="badge d-none text-bg-warning">8 Offers ></span>
|
<span class="badge d-none text-bg-warning">8 Offers ></span>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-2 d-flex justify-content-center align-items-center">
|
<div class="col-md-2">
|
||||||
<p class="text-right"><span>${currencySymbol}</span> ${amt}</p>
|
<p class="text-right m-0"><span>${currencySymbol}</span> ${amt}</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-2 d-flex justify-content-center align-items-center">
|
<div class="col-md-2 ">
|
||||||
|
|
||||||
${getQuantityHTML(quantity, id)}
|
${getQuantityHTML(quantity, id)}
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-2 d-flex justify-content-center align-items-center">
|
<div class="col-md-2 ">
|
||||||
<div class="d-flex justify-content-between w-100">
|
<div class="d-flex justify-content-between w-100">
|
||||||
<p class="fw-bold"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-currency-rupee" viewBox="0 0 16 16">
|
<p class="fw-bold m-0"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-currency-rupee" viewBox="0 0 16 16">
|
||||||
<path d="M4 3.06h2.726c1.22 0 2.12.575 2.325 1.724H4v1.051h5.051C8.855 7.001 8 7.558 6.788 7.558H4v1.317L8.437 14h2.11L6.095 8.884h.855c2.316-.018 3.465-1.476 3.688-3.049H12V4.784h-1.345c-.08-.778-.357-1.335-.793-1.732H12V2H4v1.06Z"/>
|
<path d="M4 3.06h2.726c1.22 0 2.12.575 2.325 1.724H4v1.051h5.051C8.855 7.001 8 7.558 6.788 7.558H4v1.317L8.437 14h2.11L6.095 8.884h.855c2.316-.018 3.465-1.476 3.688-3.049H12V4.784h-1.345c-.08-.778-.357-1.335-.793-1.732H12V2H4v1.06Z"/>
|
||||||
</svg>${total}</p>
|
</svg>${total}</p>
|
||||||
<span class="btndeletecart cursor-pointer" data-cartid="${id}">x</span>
|
<span class="btndeletecart cursor-pointer fw-500 text-danger" data-cartid="${id}">x</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="warrenty-sec px-3 sec-space-4 d-none">
|
<div class="warrenty-sec px-3 sec-space-4 d-none">
|
||||||
<div class="row align-items-center border
|
<div class="row align-items-center border py-2 mx-4">
|
||||||
py-2 mx-4">
|
|
||||||
<div class="col-md-8">
|
<div class="col-md-8">
|
||||||
<p class="mb-0"> <img src="./dist/assets/imgs/Home/Anwi-cart-logo.png" alt="shopping-cart-item-img"> Anwi Extended Warranty 2 Year: Protect your Laptop for another 2 years Learn more </p>
|
<p class="mb-0 "> <img src="./dist/assets/imgs/Home/Anwi-cart-logo.png" alt="shopping-cart-item-img"> Anwi Extended Warranty 2 Year: Protect your Laptop for another 2 years Learn more </p>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-3">
|
<div class="col-md-3">
|
||||||
<p class="text-end mb-0"> ₹3,200 (2 year)
|
<p class="text-end mb-0"> ₹3,200 (2 year)
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row align-items-center border
|
<div class="row align-items-center border py-2 mx-4 mt-3">
|
||||||
py-2 mx-4 mt-3">
|
|
||||||
<div class="col-md-8">
|
<div class="col-md-8">
|
||||||
<p class="mb-0"> <img src="./dist/assets/imgs/Home/Anwi-cart-logo-2.png" alt="shopping-cart-item-img"> Anwi Extended Warranty 2 Year: Protect your Laptop for another 2 years Learn more </p>
|
<p class="mb-0"> <img src="./dist/assets/imgs/Home/Anwi-cart-logo-2.png" alt="shopping-cart-item-img"> Anwi Extended Warranty 2 Year: Protect your Laptop for another 2 years Learn more </p>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
|
До Ширина: | Высота: | Размер: 694 KiB После Ширина: | Высота: | Размер: 172 KiB |
|
До Ширина: | Высота: | Размер: 108 KiB После Ширина: | Высота: | Размер: 27 KiB |
|
До Ширина: | Высота: | Размер: 2.0 MiB После Ширина: | Высота: | Размер: 454 KiB |
|
До Ширина: | Высота: | Размер: 1.5 MiB После Ширина: | Высота: | Размер: 735 KiB |
|
До Ширина: | Высота: | Размер: 16 MiB После Ширина: | Высота: | Размер: 4.2 MiB |
|
До Ширина: | Высота: | Размер: 1.1 MiB После Ширина: | Высота: | Размер: 244 KiB |
|
До Ширина: | Высота: | Размер: 1.3 MiB После Ширина: | Высота: | Размер: 289 KiB |
|
До Ширина: | Высота: | Размер: 388 KiB После Ширина: | Высота: | Размер: 64 KiB |
|
До Ширина: | Высота: | Размер: 366 KiB После Ширина: | Высота: | Размер: 66 KiB |
|
До Ширина: | Высота: | Размер: 327 KiB После Ширина: | Высота: | Размер: 85 KiB |
|
До Ширина: | Высота: | Размер: 248 KiB После Ширина: | Высота: | Размер: 50 KiB |
|
До Ширина: | Высота: | Размер: 440 KiB После Ширина: | Высота: | Размер: 104 KiB |
|
До Ширина: | Высота: | Размер: 294 KiB После Ширина: | Высота: | Размер: 65 KiB |
|
До Ширина: | Высота: | Размер: 145 KiB После Ширина: | Высота: | Размер: 38 KiB |
|
До Ширина: | Высота: | Размер: 731 KiB После Ширина: | Высота: | Размер: 123 KiB |
|
До Ширина: | Высота: | Размер: 460 KiB После Ширина: | Высота: | Размер: 121 KiB |
|
До Ширина: | Высота: | Размер: 464 KiB После Ширина: | Высота: | Размер: 116 KiB |
|
До Ширина: | Высота: | Размер: 1.6 MiB После Ширина: | Высота: | Размер: 382 KiB |
|
До Ширина: | Высота: | Размер: 2.4 MiB После Ширина: | Высота: | Размер: 619 KiB |
|
До Ширина: | Высота: | Размер: 1.6 MiB После Ширина: | Высота: | Размер: 528 KiB |
|
До Ширина: | Высота: | Размер: 2.4 MiB После Ширина: | Высота: | Размер: 636 KiB |
|
До Ширина: | Высота: | Размер: 821 KiB После Ширина: | Высота: | Размер: 136 KiB |
|
До Ширина: | Высота: | Размер: 610 KiB После Ширина: | Высота: | Размер: 152 KiB |
|
До Ширина: | Высота: | Размер: 1.3 MiB После Ширина: | Высота: | Размер: 449 KiB |
|
До Ширина: | Высота: | Размер: 778 KiB После Ширина: | Высота: | Размер: 207 KiB |
|
До Ширина: | Высота: | Размер: 238 KiB После Ширина: | Высота: | Размер: 62 KiB |
|
До Ширина: | Высота: | Размер: 404 KiB После Ширина: | Высота: | Размер: 192 KiB |
|
До Ширина: | Высота: | Размер: 676 KiB После Ширина: | Высота: | Размер: 203 KiB |
|
До Ширина: | Высота: | Размер: 2.7 MiB После Ширина: | Высота: | Размер: 840 KiB |
|
До Ширина: | Высота: | Размер: 229 KiB После Ширина: | Высота: | Размер: 160 KiB |
|
До Ширина: | Высота: | Размер: 850 KiB После Ширина: | Высота: | Размер: 168 KiB |
|
До Ширина: | Высота: | Размер: 530 KiB После Ширина: | Высота: | Размер: 135 KiB |
|
До Ширина: | Высота: | Размер: 514 KiB После Ширина: | Высота: | Размер: 234 KiB |
|
До Ширина: | Высота: | Размер: 831 KiB После Ширина: | Высота: | Размер: 167 KiB |
|
До Ширина: | Высота: | Размер: 222 KiB После Ширина: | Высота: | Размер: 39 KiB |
|
До Ширина: | Высота: | Размер: 220 KiB После Ширина: | Высота: | Размер: 201 KiB |
|
До Ширина: | Высота: | Размер: 816 KiB После Ширина: | Высота: | Размер: 126 KiB |
|
До Ширина: | Высота: | Размер: 723 KiB После Ширина: | Высота: | Размер: 356 KiB |
|
До Ширина: | Высота: | Размер: 718 KiB После Ширина: | Высота: | Размер: 118 KiB |
|
До Ширина: | Высота: | Размер: 3.2 MiB После Ширина: | Высота: | Размер: 840 KiB |
|
До Ширина: | Высота: | Размер: 1.3 MiB После Ширина: | Высота: | Размер: 328 KiB |
|
До Ширина: | Высота: | Размер: 1.1 MiB После Ширина: | Высота: | Размер: 338 KiB |
|
До Ширина: | Высота: | Размер: 1.2 MiB После Ширина: | Высота: | Размер: 375 KiB |
|
До Ширина: | Высота: | Размер: 1.2 MiB После Ширина: | Высота: | Размер: 388 KiB |
|
До Ширина: | Высота: | Размер: 411 KiB После Ширина: | Высота: | Размер: 88 KiB |
|
До Ширина: | Высота: | Размер: 307 KiB После Ширина: | Высота: | Размер: 86 KiB |
|
До Ширина: | Высота: | Размер: 288 KiB После Ширина: | Высота: | Размер: 61 KiB |
|
До Ширина: | Высота: | Размер: 173 KiB После Ширина: | Высота: | Размер: 47 KiB |
|
До Ширина: | Высота: | Размер: 149 KiB После Ширина: | Высота: | Размер: 132 KiB |
|
До Ширина: | Высота: | Размер: 618 KiB После Ширина: | Высота: | Размер: 207 KiB |
|
До Ширина: | Высота: | Размер: 523 KiB После Ширина: | Высота: | Размер: 142 KiB |
|
До Ширина: | Высота: | Размер: 52 KiB После Ширина: | Высота: | Размер: 14 KiB |
|
До Ширина: | Высота: | Размер: 113 KiB После Ширина: | Высота: | Размер: 108 KiB |
|
До Ширина: | Высота: | Размер: 167 KiB После Ширина: | Высота: | Размер: 40 KiB |
|
До Ширина: | Высота: | Размер: 615 KiB После Ширина: | Высота: | Размер: 128 KiB |
|
До Ширина: | Высота: | Размер: 578 KiB После Ширина: | Высота: | Размер: 116 KiB |
|
До Ширина: | Высота: | Размер: 1.8 MiB После Ширина: | Высота: | Размер: 385 KiB |
|
До Ширина: | Высота: | Размер: 1.4 MiB После Ширина: | Высота: | Размер: 358 KiB |
|
До Ширина: | Высота: | Размер: 794 KiB После Ширина: | Высота: | Размер: 240 KiB |
|
До Ширина: | Высота: | Размер: 1.3 MiB После Ширина: | Высота: | Размер: 355 KiB |
|
До Ширина: | Высота: | Размер: 815 KiB После Ширина: | Высота: | Размер: 277 KiB |
|
До Ширина: | Высота: | Размер: 267 KiB После Ширина: | Высота: | Размер: 62 KiB |
|
До Ширина: | Высота: | Размер: 308 KiB После Ширина: | Высота: | Размер: 76 KiB |
|
До Ширина: | Высота: | Размер: 147 KiB После Ширина: | Высота: | Размер: 32 KiB |
|
До Ширина: | Высота: | Размер: 297 KiB После Ширина: | Высота: | Размер: 54 KiB |
|
До Ширина: | Высота: | Размер: 158 KiB После Ширина: | Высота: | Размер: 25 KiB |
|
До Ширина: | Высота: | Размер: 156 KiB После Ширина: | Высота: | Размер: 24 KiB |
|
До Ширина: | Высота: | Размер: 188 KiB После Ширина: | Высота: | Размер: 182 KiB |
|
До Ширина: | Высота: | Размер: 1.7 MiB После Ширина: | Высота: | Размер: 320 KiB |
|
До Ширина: | Высота: | Размер: 1.0 MiB После Ширина: | Высота: | Размер: 130 KiB |
|
До Ширина: | Высота: | Размер: 1.5 MiB После Ширина: | Высота: | Размер: 542 KiB |
|
До Ширина: | Высота: | Размер: 906 KiB После Ширина: | Высота: | Размер: 116 KiB |
|
До Ширина: | Высота: | Размер: 930 KiB После Ширина: | Высота: | Размер: 274 KiB |
|
До Ширина: | Высота: | Размер: 3.6 MiB После Ширина: | Высота: | Размер: 808 KiB |
|
До Ширина: | Высота: | Размер: 1.5 MiB После Ширина: | Высота: | Размер: 735 KiB |
|
До Ширина: | Высота: | Размер: 1.0 MiB После Ширина: | Высота: | Размер: 226 KiB |
|
До Ширина: | Высота: | Размер: 916 KiB После Ширина: | Высота: | Размер: 182 KiB |
|
До Ширина: | Высота: | Размер: 1.8 MiB После Ширина: | Высота: | Размер: 303 KiB |
|
До Ширина: | Высота: | Размер: 112 KiB После Ширина: | Высота: | Размер: 92 KiB |
|
До Ширина: | Высота: | Размер: 542 KiB После Ширина: | Высота: | Размер: 159 KiB |
|
До Ширина: | Высота: | Размер: 437 KiB После Ширина: | Высота: | Размер: 138 KiB |
|
До Ширина: | Высота: | Размер: 312 KiB После Ширина: | Высота: | Размер: 94 KiB |
|
До Ширина: | Высота: | Размер: 64 KiB После Ширина: | Высота: | Размер: 19 KiB |
|
До Ширина: | Высота: | Размер: 389 KiB После Ширина: | Высота: | Размер: 118 KiB |
|
До Ширина: | Высота: | Размер: 354 KiB После Ширина: | Высота: | Размер: 111 KiB |
|
До Ширина: | Высота: | Размер: 648 KiB После Ширина: | Высота: | Размер: 190 KiB |
|
До Ширина: | Высота: | Размер: 307 KiB После Ширина: | Высота: | Размер: 81 KiB |
|
До Ширина: | Высота: | Размер: 184 KiB После Ширина: | Высота: | Размер: 50 KiB |
|
До Ширина: | Высота: | Размер: 136 KiB После Ширина: | Высота: | Размер: 44 KiB |
|
До Ширина: | Высота: | Размер: 325 KiB После Ширина: | Высота: | Размер: 94 KiB |
|
До Ширина: | Высота: | Размер: 184 KiB После Ширина: | Высота: | Размер: 166 KiB |
|
До Ширина: | Высота: | Размер: 250 KiB После Ширина: | Высота: | Размер: 71 KiB |
|
До Ширина: | Высота: | Размер: 344 KiB После Ширина: | Высота: | Размер: 95 KiB |
|
До Ширина: | Высота: | Размер: 107 KiB После Ширина: | Высота: | Размер: 94 KiB |
|
До Ширина: | Высота: | Размер: 43 KiB После Ширина: | Высота: | Размер: 20 KiB |