diff --git a/controllers/adminController.js b/controllers/adminController.js index 4cc277aa..b962710a 100644 --- a/controllers/adminController.js +++ b/controllers/adminController.js @@ -365,52 +365,7 @@ const generateReport = async (dateRange) => { } }; -// const generateReport = async (dateRange) => { -// try { -// const currentDate = new Date(); -// let startDate; -// let endDate = new Date(); - -// switch (dateRange) { -// case "daily": -// startDate = new Date(currentDate); -// startDate.setDate(currentDate.getDate() - 1); -// startDate.setHours(24, 0, 0, 0); -// break; -// case "weekly": -// startDate = new Date(); -// startDate.setDate(startDate.getDate() - 7); -// break; -// case "yearly": -// startDate = new Date(); -// startDate.setFullYear(startDate.getFullYear() - 1); -// break; -// default: -// break; -// } - -// // Retrieve orders within the specified date range -// const orders = await OrderDB.find({ -// orderDate: { $gte: startDate, $lte: endDate }, -// }); - - -// // const totalSalesAmount = calculateTotalSalesAmount(orders); -// const totalSalesProfit = await calculateTotalProfit(orders); -// const totalOrders = orders.length; - -// const report = { -// reportDate: endDate, -// totalSalesAmount:totalSalesProfit, -// totalOrders, -// }; - -// console.log(`Generated ${dateRange} report for ${endDate}`); -// return report; -// } catch (error) { -// console.log(error.message); -// } -// }; + async function calculateTotalProfit(orders) { let totalProfit = 0; @@ -526,293 +481,7 @@ const generateExcelReport = async (reportData, fileName) => { }; -// Usage -// const reportData = [ -// { -// reportDate: '2023-10-23', -// totalSalesAmount: 1000.0, -// totalOrders: 50, -// }, -// // Add more data as needed -// ]; - -// const filePath = 'salesReport.xlsx'; // Provide the desired file path - -// generateExcelReport(reportData, filePath); - -//sales report page load -// ------------------------------- -// const salesReportPageLoad = async(req,res)=>{ -// try { -// const sales = await createSalesReport("2023-10-01", "2023-10-31"); -// const WeeklySales = await generateWeeklySalesCount() -// const SoldProducts = await getMostSellingProducts() -// console.log(sales); -// // generateWeeklySalesCount -// res.render('salesreport',{week:WeeklySales,Mproducts:SoldProducts,sales}) -// } catch (error) { -// console.log(error.message); -// } -// } - -// //generate Sales Report -// const createSalesReport = async (startDate, endDate) => { -// try { -// // Find orders within the date range -// const orders = await OrderDB.find({ -// orderDate: { -// $gte: startDate, -// $lte: endDate, -// }, -// }); - -// // Create new objects for total stock sold and product profits -// const transformedTotalStockSold = {}; -// const transformedProductProfits = {}; - -// // Helper function to fetch product details by ID -// const getProductDetails = async (productId) => { -// return await ProductDB.findById(productId); -// }; - -// // Iterate through each order -// for (const order of orders) { -// // Iterate through each product in the order -// for (const productInfo of order.products) { -// const productId = productInfo.productId; -// const quantity = productInfo.quantity; - -// // Fetch product details -// const product = await getProductDetails(productId); -// const productName = product.product_name; -// const image = product.images.image1; -// const shape = product.frame_shape - -// // Update the total stock sold -// if (!transformedTotalStockSold[productId]) { -// transformedTotalStockSold[productId] = { -// id: productId, -// name: productName, -// quantity: 0, -// image: image, -// shape:shape -// }; -// } -// transformedTotalStockSold[productId].quantity += quantity; - -// // Update the product profits -// if (!transformedProductProfits[productId]) { -// transformedProductProfits[productId] = { -// id: productId, -// name: productName, -// profit: 0, -// image: image, -// }; -// } -// const productPrice = product.price; -// const productCost = productPrice * 0.3; -// const productProfit = (productPrice - productCost) * quantity; -// transformedProductProfits[productId].profit += productProfit; -// } -// } - -// // Convert the transformed objects to arrays -// const totalStockSoldArray = Object.values(transformedTotalStockSold); -// const productProfitsArray = Object.values(transformedProductProfits); - -// // Calculate the total sales -// const totalSales = productProfitsArray.reduce( -// (total, product) => total + product.profit, -// 0 -// ); - -// // Create the final sales report object -// const salesReport = { -// totalSales, -// totalStockSold: totalStockSoldArray, -// productProfits: productProfitsArray, -// }; - -// // Print or return the sales report -// return salesReport; -// } catch (error) { -// console.error("Error generating the sales report:", error.message); -// } -// }; -// // const createSalesReport = async (startDate, endDate) => { -// // try { -// // // Find orders within the date range -// // const orders = await OrderDB.find({ -// // orderDate: { -// // $gte: startDate, -// // $lte: endDate, -// // }, -// // }); - -// // // Create a data structure to store the report -// // const salesReport = { -// // totalSales: 0, -// // totalStockSold: {}, -// // productProfits: {}, -// // }; - -// // // Helper function to fetch product details by ID -// // const getProductDetails = async (productId) => { -// // return await ProductDB.findById(productId); -// // }; - -// // // Iterate through each order -// // for (const order of orders) { -// // // Iterate through each product in the order -// // for (const productInfo of order.products) { -// // const productId = productInfo.productId; -// // const quantity = productInfo.quantity; - -// // // Fetch product details -// // const product = await getProductDetails(productId); -// // const productName = product.product_name; // Get product name -// // const image = product.images.image1 - -// // // Update the total sales -// // const productPrice = product.price; -// // const productSales = productPrice * quantity; -// // salesReport.totalSales += productSales; - -// // // Update the total stock sold -// // if (!salesReport.totalStockSold[productId]) { -// // salesReport.totalStockSold[productId] = { -// // name: productName, // Include product name -// // quantity: 0, -// // image: image, -// // }; -// // } -// // salesReport.totalStockSold[productId].quantity += quantity; - -// // // Calculate and update the product profits -// // const productCost = productPrice*0.3; -// // const productProfit = (productPrice - productCost) * quantity; - -// // if (!salesReport.productProfits[productId]) { -// // salesReport.productProfits[productId] = { -// // name: productName, // Include product name -// // profit: 0, -// // image: image -// // }; -// // } -// // salesReport.productProfits[productId].profit += productProfit; -// // } -// // } - -// // // Print or return the sales report with product names -// // // console.log("Sales Report:", salesReport); -// // return salesReport; - -// // } catch (error) { -// // console.error("Error generating the sales report:", error.message); -// // } -// // }; -// // Example usage - - - - -// //weekly report chart -// // ----------------------- -// const generateWeeklySalesCount = async () => { -// try { -// // Initialize an array to store sales counts for each day -// const weeklySalesCounts = []; - -// // Get today's date -// const today = new Date(); -// today.setHours(today.getHours() - 5); // Adjust for UTC+5 - - -// // Iterate through the past 7 days -// for (let i = 0; i < 7; i++) { -// const startDate = new Date(today); -// startDate.setDate(today.getDate() - i); // i days ago -// const endDate = new Date(startDate); -// endDate.setDate(startDate.getDate() + 1); // Next day - -// // Find orders within the date range -// const orders = await OrderDB.find({ -// orderDate: { -// $gte: startDate, -// $lt: endDate, -// }, -// }); - -// // Calculate the sales count for the day -// const salesCount = orders.length; - -// // Push the sales count to the weeklySalesCounts array -// weeklySalesCounts.push({ -// date: startDate.toISOString().split('T')[0], // Format the date -// sales: salesCount, -// }); -// } - -// // Log or return the weekly sales counts -// // console.log('Weekly Sales Counts:', weeklySalesCounts); -// return weeklySalesCounts; - -// } catch (error) { -// console.error('Error generating the weekly sales counts:', error.message); -// } -// }; - -// // Call the function to generate the weekly sales count -// // generateWeeklySalesCount(); - -// //most selling products report -// // ----------------------------------- - -// const getMostSellingProducts = async () => { -// try { -// const pipeline = [ -// { -// $unwind: '$products', // Split order into individual products -// }, -// { -// $group: { -// _id: '$products.productId', -// count: { $sum: '$products.quantity' }, // Count the sold quantity -// }, -// }, -// { -// $lookup: { -// from: 'products', // Name of your Product model's collection -// localField: '_id', -// foreignField: '_id', -// as: 'productData', -// }, -// }, -// { -// $sort: { count: -1 }, // Sort by count in descending order -// }, -// { -// $limit: 6, // Limit to the top 6 products -// }, -// ]; - -// const mostSellingProducts = await OrderDB.aggregate(pipeline); -// return mostSellingProducts; -// } catch (error) { -// console.error('Error fetching most selling products:', error); -// return []; -// } -// }; - -// Usage -// getMostSellingProducts() -// .then((result) => { -// console.log('Most selling products:', result); -// }) -// .catch((error) => { -// console.error('Error:', error); -// }); const errorpageHandil = async(req,res)=>{ try { diff --git a/controllers/bannerController.js b/controllers/bannerController.js index e23854b4..fc82224c 100644 --- a/controllers/bannerController.js +++ b/controllers/bannerController.js @@ -3,16 +3,64 @@ const ProductDB = require("../models/productsModel").product; const CategoryDB = require("../models/productsModel").category; const OrderDB = require("../models/orderModel").Order; const BannerDB = require("../models/productsModel").banner; +const sharp = require("sharp"); + const BannerPageLoader = async(req,res)=>{ try { - res.render('banner') + const banners = await BannerDB.find() + console.log(banners); + res.render('banner',{banners}) + } catch (error) { + console.log(error.message); + } +} + +const bannerEditPageLoad = async(req,res)=>{ + try { + if(!req.query.banner || req.query.banner>=4 || req.query.banner<=0 || isNaN(req.query.banner)){ + return res.redirect('/admin/banner') + } + const banner = await BannerDB.findOne({bannerNumber: req.query.banner}) + return res.render('banneredit',{banner}) + } catch (error) { + console.log(error.message); + } +} + + +const bannerUpdate = async(req,res)=>{ + try { + console.log(req.body); + const {subhead, Titile, link, bannerTarget} = req.body + const Banner = await BannerDB.findOne({bannerNumber: bannerTarget}) + if(!Banner){ + return res.redirect('/admin/banner') + } + if(req.file){ + Banner.image = req.file.filename + await sharp("public/products/banner/temp/" + req.file.filename) + .resize(1552, 872) + .toFile("public/products/banner/" + req.file.filename); + + await sharp("public/products/banner/temp/" + req.file.filename) + .resize(720, 600) + .toFile("public/products/banner/mobile/" + req.file.filename); + } + + Banner.subtext = subhead + Banner.mainHead = Titile + Banner.link = link + Banner.save() + res.redirect('/admin/banner') } catch (error) { console.log(error.message); } } module.exports ={ - BannerPageLoader + BannerPageLoader, + bannerUpdate, + bannerEditPageLoad } \ No newline at end of file diff --git a/controllers/orderController.js b/controllers/orderController.js index 862662cd..95d818fe 100644 --- a/controllers/orderController.js +++ b/controllers/orderController.js @@ -61,8 +61,9 @@ const generateUniqueTrackId = async () => { } }; -//order analatical creation -// ========================= + + //order analatical creation +// ============================================================================= const CreateOrderAnalatic = async () => { try { const orders = await OrderDB.find({ "products.OrderStatus": "Delivered" }); @@ -109,6 +110,8 @@ const getAlluserData = () => { resolve(userData); }); }; + + // cart total calculate // ============================= const calculateTotalPrice = async (userId) => { @@ -170,6 +173,9 @@ const daliveryDateCalculate = async () => { console.log(error.message); } }; + + + // load checkout page // ============================= const checkoutPageLoad = async (req, res) => { @@ -209,6 +215,8 @@ const checkoutPageLoad = async (req, res) => { } }; + + // selecting shipping address when place order time // ========================================================== const reciveShippingAddress = async (req, res) => { @@ -247,7 +255,9 @@ const reciveShippingAddress = async (req, res) => { } }; + // it used to select payment method +// ==================================================================== const paymentSelectionManage = async (req, res) => { try { console.log(req.body); @@ -475,139 +485,7 @@ const placeOrderManage = async (req, res) => { console.log(error.message); } }; -// const placeOrderManage = async (req, res) => { -// let discountDetails = { -// codeId: 0, -// amount: 0, -// }; -// try { -// // console.log(req.body.address); -// let addressId = req.body.address; - -// let paymentType = req.body.payment; -// const cartDetails = await CartDB.findOne({ user: req.session.user_id }); - -// let userAddrs = await addressDB.findOne({ userId: req.session.user_id }); -// const shipAddress = userAddrs.addresses.find((address) => { -// return address._id.toString() === addressId.toString(); -// }); - -// // console.log("collected:", shipAddress); - -// if (!shipAddress) { -// return res.status(400).json({ error: "Address not found" }); -// } -// // console.log("collected :" + shipAddress); -// const { country, fullName, mobileNumber, pincode, city, state } = -// shipAddress; -// // console.log(state); - -// const cartProducts = cartDetails.products.map((productItem) => ({ -// productId: productItem.product, -// quantity: productItem.quantity, -// OrderStatus: "pending", -// StatusLevel: 1, -// paymentStatus: "pending", -// "returnOrderStatus.status": "none", -// "returnOrderStatus.reason": "none", -// })); -// let total = await calculateTotalPrice(req.session.user_id); -// //coupon checking -// // =================== -// if (req.body.coupon != "") { -// let couponDetails = await CouponDB.findById(req.body.coupon); -// total -= couponDetails.discount_amount; -// discountDetails.codeId = couponDetails._id; -// discountDetails.amount = couponDetails.discount_amount; -// } - -// // console.log(cartProducts); -// const trackId = await generateUniqueTrackId(); -// const order = new OrderDB({ -// userId: req.session.user_id, -// "shippingAddress.country": country, -// "shippingAddress.fullName": fullName, -// "shippingAddress.mobileNumber": mobileNumber, -// "shippingAddress.pincode": pincode, -// "shippingAddress.city": city, -// "shippingAddress.state": state, -// products: cartProducts, -// totalAmount: total, -// paymentMethod: paymentType, -// coupon: req.body.coupon ? req.body.coupon : "none", -// orderDate: new Date(), -// trackId, -// }); - -// const placeorder = await order.save(); -// // let analaticResult = await CreateOrderAnalatic(); -// // console.log(analaticResult); -// console.log(placeorder._id); -// if (paymentType !== "Online") { -// console.log(placeorder._id); -// let changeOrderStatus = await OrderDB.updateOne( -// { _id: placeorder._id }, -// { -// $set: { -// "products.$[].OrderStatus": "placed", -// }, -// } -// ); -// let changePaymentStatus = await OrderDB.updateOne( -// { _id: placeorder._id }, -// { -// $set: { -// "products.$[].paymentStatus": "success", -// }, -// } -// ); -// // console.log(changeOrderStatus); -// await CartDB.deleteOne({ user: req.session.user_id }); -// const PaymentHistory = await createPaymentHistory( -// req.session.user_id, -// placeorder, -// paymentType, -// discountDetails, -// trackId -// ); -// console.log(PaymentHistory); -// // return res.render("orderStatus", { -// // success: 1, -// // user: req.session.user_id -// // }); -// return res.json({ -// cod: true, -// orderId: placeorder._id, -// status: "success", -// }); -// } else { -// //here manage when the order is online -// let order = await genarateRazorpay(placeorder._id, total); - -// let userData = await UserDB.findById(req.session.user_id); - -// // payment history create -// const PaymentHistory = await createPaymentHistory( -// req.session.user_id, -// placeorder, -// paymentType, -// discountDetails, -// trackId -// ); -// console.log(PaymentHistory); -// let user = { -// name: fullName, -// mobile: mobileNumber, -// email: userData.email, -// }; -// return res.json({ order, user }); -// } -// } catch (error) { -// console.log(error.message); -// } -// }; -// ============== -// ============== + // orders page load // ---------------------- @@ -661,6 +539,7 @@ const orderPageLoad = async (req, res) => { } }; + // order management page load // ------------------------------ const orderMangePageLoad = async (req, res) => { @@ -705,6 +584,7 @@ const orderMangePageLoad = async (req, res) => { } }; + // order cancel // ----------------------- const cancelOrder = async (req, res) => { @@ -752,6 +632,7 @@ const cancelOrder = async (req, res) => { } }; + // cange order status // ------------------------- const changeOrderStatus = async (req, res) => { @@ -803,6 +684,7 @@ const changeOrderStatus = async (req, res) => { } }; + //payment verification // -------------------------- const verifyPayment = async (req, res) => { @@ -844,27 +726,6 @@ const verifyPayment = async (req, res) => { //razorpay payment Signature Matching // --------------------------------------- -// const paymentSignatureMatching = (payment) => { -// return new Promise((resolve, reject) => { -// const crypto = require("crypto"); -// console.log("signature console :" + payment.razorpay_order_id); -// var hmac = crypto.createHmac("sha256", "5Vd91ubM3TJQvfqdtpsDA12f"); -// hmac.update(payment.razorpay_order_id + "|" + payment.razorpay_payment_id); -// hmac = hmac.digest("hex"); - -// console.log("hmac :" + hmac); -// console.log("razorpay_payment_id :" + payment.razorpay_payment_id); - -// if (hmac == payment.razorpay_payment_id) { -// console.log("payment signatur condition called..."); - -// resolve({ status: true }); -// } else { -// console.log("else called when signature"); -// reject(); -// } -// }); -// }; const paymentSignatureMatching = (payment) => { return new Promise((resolve, reject) => { @@ -888,6 +749,7 @@ const paymentSignatureMatching = (payment) => { }); }; + //change payment status // -------------------- const changePaymentStatus = async (id) => { @@ -916,6 +778,7 @@ const orderStatusPageLoad = async (req, res) => { } }; + // create payment history // -------------------------------- const createPaymentHistory = async ( @@ -955,6 +818,7 @@ const createPaymentHistory = async ( } }; + //order report maker // ======================== const generateReport = async (dateRange) => { @@ -1481,56 +1345,7 @@ const generateInvoicePDF = async (invoiceData) => { } }; -// const generateInvoicePDF = async (invoiceData) => { -// try { -// const browser = await puppeteer.launch(); -// const page = await browser.newPage(); - -// // Create an HTML template for the invoice -// const htmlContent = ` -// -//

Invoice

-// -// -// -// -// -// -// -// -// -// -//
Order ID${invoiceData.orderId}
Tracking ID${invoiceData.trackId}
-// `; - -// await page.setContent(htmlContent); -// await page.pdf({ -// path: 'invoice.pdf', -// format: 'A4', -// printBackground: true, -// }); - -// await browser.close(); -// } catch (error) { -// console.error(error.message); -// } -// }; + diff --git a/controllers/productsController.js b/controllers/productsController.js index 003e7900..3342b762 100644 --- a/controllers/productsController.js +++ b/controllers/productsController.js @@ -323,7 +323,7 @@ const shopPageSearch = async (req, res) => { categories }); } catch (error) { - // Handle errors appropriately + console.log(error.message); } }; @@ -545,6 +545,8 @@ const prducutListUnlist = async (req, res) => { // } // }; +// Search with fillter +// =============================================== const queryTester = async (req, res) => { try { const categories = await CategoryDB.find(); diff --git a/controllers/userController.js b/controllers/userController.js index 49545286..8c09e36d 100644 --- a/controllers/userController.js +++ b/controllers/userController.js @@ -3,6 +3,8 @@ const ProductDB = require("../models/productsModel").product; const CartDB = require("../models/userModel").Cart; const addressDB = require("../models/userModel").UserAddress; const OrderDB = require("../models/orderModel").Order; +const BannerDB = require("../models/productsModel").banner; + const bcrypt = require("bcrypt"); const nodemiler = require("nodemailer"); require("dotenv").config(); @@ -173,11 +175,14 @@ const sentVerifyMailForForgetPass = async (name, email) => { // --------------------------------------- const homePageLoad = async (req, res) => { try { + let product = await ProductDB.find({unlist:{$eq:0}}); + const banners = await BannerDB.find() res.render("home", { user: req.session.user_id, products: product, - SignupMess:req.session.SignupMess + SignupMess:req.session.SignupMess, + banners }, (err, html) => { if (!err) { diff --git a/middleware/fileUpload.js b/middleware/fileUpload.js index aae3db68..8c683669 100644 --- a/middleware/fileUpload.js +++ b/middleware/fileUpload.js @@ -60,6 +60,7 @@ const productImagesUpload = uploadProduct.fields([ // category icon adding +// ==================== const storageCategory = multer.diskStorage({ destination:function(req,file,callbacks){ callbacks(null,path.join(__dirname, '../public/products/icons')) @@ -69,11 +70,38 @@ const storageCategory = multer.diskStorage({ } }) - const uploadCategory = multer({storage:storageCategory}) - +const uploadCategory = multer({storage:storageCategory}) + + +//bannerUpload +// ================== +// const storageBanner = multer.diskStorage({ +// destination:function(req,file,callbacks){ +// console.log("multer called"); +// callbacks(null,path.join(__dirname, '../public/products/Banner')) +// }, +// filename: function (req, file, cb) { +// cb(null, file.fieldname + "-" + Date.now() + path.extname(file.originalname)); +// } +// }) + +const storageBanner = multer.diskStorage({ + destination:function(req,file,callbacks){ + callbacks(null,path.join(__dirname, '../public/products/Banner/temp')) + }, + filename:function(req,file,callbacks){ + const name = Date.now()+"-"+file.originalname; + callbacks(null,name) + } +}) + +const uploadBanner = multer({storage:storageBanner}) + +// ==================================== module.exports={ upload, productImagesUpload, - uploadCategory + uploadCategory, + uploadBanner } \ No newline at end of file diff --git a/models/productsModel.js b/models/productsModel.js index 59acc215..13f8b692 100644 --- a/models/productsModel.js +++ b/models/productsModel.js @@ -81,9 +81,17 @@ const bannerSchema = new mongoose.Schema({ type: String, required: true, }, + bannerNumber:{ + type:Number, + required: true + }, + link:{ + type:String, + required: true + } }); // Create the Banner model -const Banner = mongoose.model('Banner', bannerSchema); +const banner = mongoose.model('banner', bannerSchema); const category = mongoose.model('category',categorySchema) @@ -91,5 +99,5 @@ const product = mongoose.model("product",productSchema) module.exports = { product, category, - Banner + banner } \ No newline at end of file diff --git a/public/products/Banner/1699425930629-wallpaperflare.com_wallpaper.jpg b/public/products/Banner/1699425930629-wallpaperflare.com_wallpaper.jpg new file mode 100644 index 00000000..9369673f Binary files /dev/null and b/public/products/Banner/1699425930629-wallpaperflare.com_wallpaper.jpg differ diff --git a/public/products/Banner/1699426387187-20230925183717_[fpdl.in]_vintage-eyeglasses-open-book-quiet-reading-generated-by-ai_188544-27752_large.jpg b/public/products/Banner/1699426387187-20230925183717_[fpdl.in]_vintage-eyeglasses-open-book-quiet-reading-generated-by-ai_188544-27752_large.jpg new file mode 100644 index 00000000..eb12b18c Binary files /dev/null and b/public/products/Banner/1699426387187-20230925183717_[fpdl.in]_vintage-eyeglasses-open-book-quiet-reading-generated-by-ai_188544-27752_large.jpg differ diff --git a/public/products/Banner/1699426672983-wallpaperflare.com_wallpaper.jpg b/public/products/Banner/1699426672983-wallpaperflare.com_wallpaper.jpg new file mode 100644 index 00000000..9369673f Binary files /dev/null and b/public/products/Banner/1699426672983-wallpaperflare.com_wallpaper.jpg differ diff --git a/public/products/Banner/1699426687775-pexels-stefan-stefancik-919606.jpg b/public/products/Banner/1699426687775-pexels-stefan-stefancik-919606.jpg new file mode 100644 index 00000000..af044bc4 Binary files /dev/null and b/public/products/Banner/1699426687775-pexels-stefan-stefancik-919606.jpg differ diff --git a/public/products/Banner/1699426781967-slide-1.jpg b/public/products/Banner/1699426781967-slide-1.jpg new file mode 100644 index 00000000..4f9f31ae Binary files /dev/null and b/public/products/Banner/1699426781967-slide-1.jpg differ diff --git a/public/products/Banner/1699427573108-slide-2.jpg b/public/products/Banner/1699427573108-slide-2.jpg new file mode 100644 index 00000000..b4e265ab Binary files /dev/null and b/public/products/Banner/1699427573108-slide-2.jpg differ diff --git a/public/products/Banner/1699427579692-slide-3.jpg b/public/products/Banner/1699427579692-slide-3.jpg new file mode 100644 index 00000000..de458ff9 Binary files /dev/null and b/public/products/Banner/1699427579692-slide-3.jpg differ diff --git a/public/products/Banner/bannerTxt.txt b/public/products/Banner/bannerTxt.txt new file mode 100644 index 00000000..b8aef729 --- /dev/null +++ b/public/products/Banner/bannerTxt.txt @@ -0,0 +1,9 @@ +Topsale Collection +Frame Your World + + +News and Inspiration +New Arrivals + +Fashion Meets Function +Explore Clearer Views \ No newline at end of file diff --git a/public/products/Banner/mobile/1699426387187-20230925183717_[fpdl.in]_vintage-eyeglasses-open-book-quiet-reading-generated-by-ai_188544-27752_large.jpg b/public/products/Banner/mobile/1699426387187-20230925183717_[fpdl.in]_vintage-eyeglasses-open-book-quiet-reading-generated-by-ai_188544-27752_large.jpg new file mode 100644 index 00000000..4dd7d5a2 Binary files /dev/null and b/public/products/Banner/mobile/1699426387187-20230925183717_[fpdl.in]_vintage-eyeglasses-open-book-quiet-reading-generated-by-ai_188544-27752_large.jpg differ diff --git a/public/products/Banner/mobile/1699426672983-wallpaperflare.com_wallpaper.jpg b/public/products/Banner/mobile/1699426672983-wallpaperflare.com_wallpaper.jpg new file mode 100644 index 00000000..4dabbaf1 Binary files /dev/null and b/public/products/Banner/mobile/1699426672983-wallpaperflare.com_wallpaper.jpg differ diff --git a/public/products/Banner/mobile/1699426687775-pexels-stefan-stefancik-919606.jpg b/public/products/Banner/mobile/1699426687775-pexels-stefan-stefancik-919606.jpg new file mode 100644 index 00000000..f250c129 Binary files /dev/null and b/public/products/Banner/mobile/1699426687775-pexels-stefan-stefancik-919606.jpg differ diff --git a/public/products/Banner/mobile/1699426781967-slide-1.jpg b/public/products/Banner/mobile/1699426781967-slide-1.jpg new file mode 100644 index 00000000..6ed2abb1 Binary files /dev/null and b/public/products/Banner/mobile/1699426781967-slide-1.jpg differ diff --git a/public/products/Banner/mobile/1699427573108-slide-2.jpg b/public/products/Banner/mobile/1699427573108-slide-2.jpg new file mode 100644 index 00000000..10559bda Binary files /dev/null and b/public/products/Banner/mobile/1699427573108-slide-2.jpg differ diff --git a/public/products/Banner/mobile/1699427579692-slide-3.jpg b/public/products/Banner/mobile/1699427579692-slide-3.jpg new file mode 100644 index 00000000..6c91cb03 Binary files /dev/null and b/public/products/Banner/mobile/1699427579692-slide-3.jpg differ diff --git a/public/products/Banner/temp/1699425930629-wallpaperflare.com_wallpaper.jpg b/public/products/Banner/temp/1699425930629-wallpaperflare.com_wallpaper.jpg new file mode 100644 index 00000000..9f709029 Binary files /dev/null and b/public/products/Banner/temp/1699425930629-wallpaperflare.com_wallpaper.jpg differ diff --git a/public/products/Banner/temp/1699426387187-20230925183717_[fpdl.in]_vintage-eyeglasses-open-book-quiet-reading-generated-by-ai_188544-27752_large.jpg b/public/products/Banner/temp/1699426387187-20230925183717_[fpdl.in]_vintage-eyeglasses-open-book-quiet-reading-generated-by-ai_188544-27752_large.jpg new file mode 100644 index 00000000..505e0ab3 Binary files /dev/null and b/public/products/Banner/temp/1699426387187-20230925183717_[fpdl.in]_vintage-eyeglasses-open-book-quiet-reading-generated-by-ai_188544-27752_large.jpg differ diff --git a/public/products/Banner/temp/1699426672983-wallpaperflare.com_wallpaper.jpg b/public/products/Banner/temp/1699426672983-wallpaperflare.com_wallpaper.jpg new file mode 100644 index 00000000..9f709029 Binary files /dev/null and b/public/products/Banner/temp/1699426672983-wallpaperflare.com_wallpaper.jpg differ diff --git a/public/products/Banner/temp/1699426687775-pexels-stefan-stefancik-919606.jpg b/public/products/Banner/temp/1699426687775-pexels-stefan-stefancik-919606.jpg new file mode 100644 index 00000000..01ad040a Binary files /dev/null and b/public/products/Banner/temp/1699426687775-pexels-stefan-stefancik-919606.jpg differ diff --git a/public/products/Banner/temp/1699426781967-slide-1.jpg b/public/products/Banner/temp/1699426781967-slide-1.jpg new file mode 100644 index 00000000..56560d67 Binary files /dev/null and b/public/products/Banner/temp/1699426781967-slide-1.jpg differ diff --git a/public/products/Banner/temp/1699427573108-slide-2.jpg b/public/products/Banner/temp/1699427573108-slide-2.jpg new file mode 100644 index 00000000..e1b043f9 Binary files /dev/null and b/public/products/Banner/temp/1699427573108-slide-2.jpg differ diff --git a/public/products/Banner/temp/1699427579692-slide-3.jpg b/public/products/Banner/temp/1699427579692-slide-3.jpg new file mode 100644 index 00000000..f0abe4cc Binary files /dev/null and b/public/products/Banner/temp/1699427579692-slide-3.jpg differ diff --git a/public/products/crop/image1-1699285910690.jpg b/public/products/crop/image1-1699285910690.jpg new file mode 100644 index 00000000..e990d5b1 Binary files /dev/null and b/public/products/crop/image1-1699285910690.jpg differ diff --git a/public/products/crop/image1-1699286098882.jpg b/public/products/crop/image1-1699286098882.jpg new file mode 100644 index 00000000..2726eb43 Binary files /dev/null and b/public/products/crop/image1-1699286098882.jpg differ diff --git a/public/products/crop/image1-1699286230171.jpg b/public/products/crop/image1-1699286230171.jpg new file mode 100644 index 00000000..ec279f0c Binary files /dev/null and b/public/products/crop/image1-1699286230171.jpg differ diff --git a/public/products/crop/image1-1699286391037.jpg b/public/products/crop/image1-1699286391037.jpg new file mode 100644 index 00000000..e6aebcb6 Binary files /dev/null and b/public/products/crop/image1-1699286391037.jpg differ diff --git a/public/products/crop/image1-1699286540236.jpg b/public/products/crop/image1-1699286540236.jpg new file mode 100644 index 00000000..c0c15e06 Binary files /dev/null and b/public/products/crop/image1-1699286540236.jpg differ diff --git a/public/products/crop/image1-1699286696695.jpg b/public/products/crop/image1-1699286696695.jpg new file mode 100644 index 00000000..562b5427 Binary files /dev/null and b/public/products/crop/image1-1699286696695.jpg differ diff --git a/public/products/crop/image1-1699287170055.jpg b/public/products/crop/image1-1699287170055.jpg new file mode 100644 index 00000000..29c62635 Binary files /dev/null and b/public/products/crop/image1-1699287170055.jpg differ diff --git a/public/products/crop/image1-1699328283378.jpg b/public/products/crop/image1-1699328283378.jpg new file mode 100644 index 00000000..492fc257 Binary files /dev/null and b/public/products/crop/image1-1699328283378.jpg differ diff --git a/public/products/crop/image2-1699285910691.jpg b/public/products/crop/image2-1699285910691.jpg new file mode 100644 index 00000000..8c72f1fc Binary files /dev/null and b/public/products/crop/image2-1699285910691.jpg differ diff --git a/public/products/crop/image2-1699286098888.jpg b/public/products/crop/image2-1699286098888.jpg new file mode 100644 index 00000000..ac9b8293 Binary files /dev/null and b/public/products/crop/image2-1699286098888.jpg differ diff --git a/public/products/crop/image2-1699286230172.jpg b/public/products/crop/image2-1699286230172.jpg new file mode 100644 index 00000000..3de67454 Binary files /dev/null and b/public/products/crop/image2-1699286230172.jpg differ diff --git a/public/products/crop/image2-1699286391039.jpg b/public/products/crop/image2-1699286391039.jpg new file mode 100644 index 00000000..a988db00 Binary files /dev/null and b/public/products/crop/image2-1699286391039.jpg differ diff --git a/public/products/crop/image2-1699286540236.jpg b/public/products/crop/image2-1699286540236.jpg new file mode 100644 index 00000000..0aa38614 Binary files /dev/null and b/public/products/crop/image2-1699286540236.jpg differ diff --git a/public/products/crop/image2-1699286696696.jpg b/public/products/crop/image2-1699286696696.jpg new file mode 100644 index 00000000..dda1711f Binary files /dev/null and b/public/products/crop/image2-1699286696696.jpg differ diff --git a/public/products/crop/image2-1699287170057.jpg b/public/products/crop/image2-1699287170057.jpg new file mode 100644 index 00000000..a50d6159 Binary files /dev/null and b/public/products/crop/image2-1699287170057.jpg differ diff --git a/public/products/crop/image2-1699328283380.jpg b/public/products/crop/image2-1699328283380.jpg new file mode 100644 index 00000000..208de484 Binary files /dev/null and b/public/products/crop/image2-1699328283380.jpg differ diff --git a/public/products/crop/image3-1699285910692.jpg b/public/products/crop/image3-1699285910692.jpg new file mode 100644 index 00000000..64cb2daf Binary files /dev/null and b/public/products/crop/image3-1699285910692.jpg differ diff --git a/public/products/crop/image3-1699286098889.jpg b/public/products/crop/image3-1699286098889.jpg new file mode 100644 index 00000000..dd0adb99 Binary files /dev/null and b/public/products/crop/image3-1699286098889.jpg differ diff --git a/public/products/crop/image3-1699286230173.jpg b/public/products/crop/image3-1699286230173.jpg new file mode 100644 index 00000000..96f43c2a Binary files /dev/null and b/public/products/crop/image3-1699286230173.jpg differ diff --git a/public/products/crop/image3-1699286391039.jpg b/public/products/crop/image3-1699286391039.jpg new file mode 100644 index 00000000..a48e0823 Binary files /dev/null and b/public/products/crop/image3-1699286391039.jpg differ diff --git a/public/products/crop/image3-1699286540238.jpg b/public/products/crop/image3-1699286540238.jpg new file mode 100644 index 00000000..83709736 Binary files /dev/null and b/public/products/crop/image3-1699286540238.jpg differ diff --git a/public/products/crop/image3-1699286696698.jpg b/public/products/crop/image3-1699286696698.jpg new file mode 100644 index 00000000..99d8638d Binary files /dev/null and b/public/products/crop/image3-1699286696698.jpg differ diff --git a/public/products/crop/image3-1699287170057.jpg b/public/products/crop/image3-1699287170057.jpg new file mode 100644 index 00000000..552bf969 Binary files /dev/null and b/public/products/crop/image3-1699287170057.jpg differ diff --git a/public/products/crop/image3-1699328283382.jpg b/public/products/crop/image3-1699328283382.jpg new file mode 100644 index 00000000..19f16837 Binary files /dev/null and b/public/products/crop/image3-1699328283382.jpg differ diff --git a/public/products/crop/image4-1699285910693.jpg b/public/products/crop/image4-1699285910693.jpg new file mode 100644 index 00000000..68d43785 Binary files /dev/null and b/public/products/crop/image4-1699285910693.jpg differ diff --git a/public/products/crop/image4-1699286098890.jpg b/public/products/crop/image4-1699286098890.jpg new file mode 100644 index 00000000..dc40ade3 Binary files /dev/null and b/public/products/crop/image4-1699286098890.jpg differ diff --git a/public/products/crop/image4-1699286230174.jpg b/public/products/crop/image4-1699286230174.jpg new file mode 100644 index 00000000..096c5a76 Binary files /dev/null and b/public/products/crop/image4-1699286230174.jpg differ diff --git a/public/products/crop/image4-1699286391043.jpg b/public/products/crop/image4-1699286391043.jpg new file mode 100644 index 00000000..b2eab78a Binary files /dev/null and b/public/products/crop/image4-1699286391043.jpg differ diff --git a/public/products/crop/image4-1699286540239.jpg b/public/products/crop/image4-1699286540239.jpg new file mode 100644 index 00000000..62d33fc5 Binary files /dev/null and b/public/products/crop/image4-1699286540239.jpg differ diff --git a/public/products/crop/image4-1699286696699.jpg b/public/products/crop/image4-1699286696699.jpg new file mode 100644 index 00000000..55dda5b2 Binary files /dev/null and b/public/products/crop/image4-1699286696699.jpg differ diff --git a/public/products/crop/image4-1699287170058.jpg b/public/products/crop/image4-1699287170058.jpg new file mode 100644 index 00000000..1d6b466e Binary files /dev/null and b/public/products/crop/image4-1699287170058.jpg differ diff --git a/public/products/crop/image4-1699328283382.jpg b/public/products/crop/image4-1699328283382.jpg new file mode 100644 index 00000000..e5901520 Binary files /dev/null and b/public/products/crop/image4-1699328283382.jpg differ diff --git a/public/products/icons/icon-1699421241942.jpg b/public/products/icons/icon-1699421241942.jpg new file mode 100644 index 00000000..e200f0cc Binary files /dev/null and b/public/products/icons/icon-1699421241942.jpg differ diff --git a/public/products/images/image1-1699285910690.jpg b/public/products/images/image1-1699285910690.jpg new file mode 100644 index 00000000..07b8023f Binary files /dev/null and b/public/products/images/image1-1699285910690.jpg differ diff --git a/public/products/images/image1-1699286098882.jpg b/public/products/images/image1-1699286098882.jpg new file mode 100644 index 00000000..75274278 Binary files /dev/null and b/public/products/images/image1-1699286098882.jpg differ diff --git a/public/products/images/image1-1699286230171.jpg b/public/products/images/image1-1699286230171.jpg new file mode 100644 index 00000000..3687f51e Binary files /dev/null and b/public/products/images/image1-1699286230171.jpg differ diff --git a/public/products/images/image1-1699286391037.jpg b/public/products/images/image1-1699286391037.jpg new file mode 100644 index 00000000..d96b043e Binary files /dev/null and b/public/products/images/image1-1699286391037.jpg differ diff --git a/public/products/images/image1-1699286540236.jpg b/public/products/images/image1-1699286540236.jpg new file mode 100644 index 00000000..1d71b88c Binary files /dev/null and b/public/products/images/image1-1699286540236.jpg differ diff --git a/public/products/images/image1-1699286696695.jpg b/public/products/images/image1-1699286696695.jpg new file mode 100644 index 00000000..dd6aa0d1 Binary files /dev/null and b/public/products/images/image1-1699286696695.jpg differ diff --git a/public/products/images/image1-1699287170055.jpg b/public/products/images/image1-1699287170055.jpg new file mode 100644 index 00000000..84f3f7fb Binary files /dev/null and b/public/products/images/image1-1699287170055.jpg differ diff --git a/public/products/images/image1-1699328283378.jpg b/public/products/images/image1-1699328283378.jpg new file mode 100644 index 00000000..48e4862b Binary files /dev/null and b/public/products/images/image1-1699328283378.jpg differ diff --git a/public/products/images/image2-1699285910691.jpg b/public/products/images/image2-1699285910691.jpg new file mode 100644 index 00000000..a7c48af1 Binary files /dev/null and b/public/products/images/image2-1699285910691.jpg differ diff --git a/public/products/images/image2-1699286098888.jpg b/public/products/images/image2-1699286098888.jpg new file mode 100644 index 00000000..9d511956 Binary files /dev/null and b/public/products/images/image2-1699286098888.jpg differ diff --git a/public/products/images/image2-1699286230172.jpg b/public/products/images/image2-1699286230172.jpg new file mode 100644 index 00000000..b4fd1226 Binary files /dev/null and b/public/products/images/image2-1699286230172.jpg differ diff --git a/public/products/images/image2-1699286391039.jpg b/public/products/images/image2-1699286391039.jpg new file mode 100644 index 00000000..4f6196e3 Binary files /dev/null and b/public/products/images/image2-1699286391039.jpg differ diff --git a/public/products/images/image2-1699286540236.jpg b/public/products/images/image2-1699286540236.jpg new file mode 100644 index 00000000..2c8628f7 Binary files /dev/null and b/public/products/images/image2-1699286540236.jpg differ diff --git a/public/products/images/image2-1699286696696.jpg b/public/products/images/image2-1699286696696.jpg new file mode 100644 index 00000000..19232534 Binary files /dev/null and b/public/products/images/image2-1699286696696.jpg differ diff --git a/public/products/images/image2-1699287170057.jpg b/public/products/images/image2-1699287170057.jpg new file mode 100644 index 00000000..aa14c35c Binary files /dev/null and b/public/products/images/image2-1699287170057.jpg differ diff --git a/public/products/images/image2-1699328283380.jpg b/public/products/images/image2-1699328283380.jpg new file mode 100644 index 00000000..fe79f237 Binary files /dev/null and b/public/products/images/image2-1699328283380.jpg differ diff --git a/public/products/images/image3-1699285910692.jpg b/public/products/images/image3-1699285910692.jpg new file mode 100644 index 00000000..a2b528e4 Binary files /dev/null and b/public/products/images/image3-1699285910692.jpg differ diff --git a/public/products/images/image3-1699286098889.jpg b/public/products/images/image3-1699286098889.jpg new file mode 100644 index 00000000..4f09f2d6 Binary files /dev/null and b/public/products/images/image3-1699286098889.jpg differ diff --git a/public/products/images/image3-1699286230173.jpg b/public/products/images/image3-1699286230173.jpg new file mode 100644 index 00000000..ce6114b4 Binary files /dev/null and b/public/products/images/image3-1699286230173.jpg differ diff --git a/public/products/images/image3-1699286391039.jpg b/public/products/images/image3-1699286391039.jpg new file mode 100644 index 00000000..2f6bf51a Binary files /dev/null and b/public/products/images/image3-1699286391039.jpg differ diff --git a/public/products/images/image3-1699286540238.jpg b/public/products/images/image3-1699286540238.jpg new file mode 100644 index 00000000..dc597b96 Binary files /dev/null and b/public/products/images/image3-1699286540238.jpg differ diff --git a/public/products/images/image3-1699286696698.jpg b/public/products/images/image3-1699286696698.jpg new file mode 100644 index 00000000..1e3cd231 Binary files /dev/null and b/public/products/images/image3-1699286696698.jpg differ diff --git a/public/products/images/image3-1699287170057.jpg b/public/products/images/image3-1699287170057.jpg new file mode 100644 index 00000000..7626fe13 Binary files /dev/null and b/public/products/images/image3-1699287170057.jpg differ diff --git a/public/products/images/image3-1699328283382.jpg b/public/products/images/image3-1699328283382.jpg new file mode 100644 index 00000000..e2c71f32 Binary files /dev/null and b/public/products/images/image3-1699328283382.jpg differ diff --git a/public/products/images/image4-1699285910693.jpg b/public/products/images/image4-1699285910693.jpg new file mode 100644 index 00000000..77dc3c84 Binary files /dev/null and b/public/products/images/image4-1699285910693.jpg differ diff --git a/public/products/images/image4-1699286098890.jpg b/public/products/images/image4-1699286098890.jpg new file mode 100644 index 00000000..7fed4ede Binary files /dev/null and b/public/products/images/image4-1699286098890.jpg differ diff --git a/public/products/images/image4-1699286230174.jpg b/public/products/images/image4-1699286230174.jpg new file mode 100644 index 00000000..6f7891a6 Binary files /dev/null and b/public/products/images/image4-1699286230174.jpg differ diff --git a/public/products/images/image4-1699286391043.jpg b/public/products/images/image4-1699286391043.jpg new file mode 100644 index 00000000..b52757af Binary files /dev/null and b/public/products/images/image4-1699286391043.jpg differ diff --git a/public/products/images/image4-1699286540239.jpg b/public/products/images/image4-1699286540239.jpg new file mode 100644 index 00000000..b6c4b5d4 Binary files /dev/null and b/public/products/images/image4-1699286540239.jpg differ diff --git a/public/products/images/image4-1699286696699.jpg b/public/products/images/image4-1699286696699.jpg new file mode 100644 index 00000000..15c34326 Binary files /dev/null and b/public/products/images/image4-1699286696699.jpg differ diff --git a/public/products/images/image4-1699287170058.jpg b/public/products/images/image4-1699287170058.jpg new file mode 100644 index 00000000..c9ab4e07 Binary files /dev/null and b/public/products/images/image4-1699287170058.jpg differ diff --git a/public/products/images/image4-1699328283382.jpg b/public/products/images/image4-1699328283382.jpg new file mode 100644 index 00000000..c9e3fbcd Binary files /dev/null and b/public/products/images/image4-1699328283382.jpg differ diff --git a/public/user/js/nouislider.min.js b/public/user/js/nouislider.min.js index f201b00b..78930bd5 100644 --- a/public/user/js/nouislider.min.js +++ b/public/user/js/nouislider.min.js @@ -1,2 +1,1337 @@ /*! nouislider - 13.1.5 - 4/24/2019 */ -!function(t){"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?module.exports=t():window.noUiSlider=t()}(function(){"use strict";var ut="13.1.5";function ct(t){t.parentElement.removeChild(t)}function s(t){return null!=t}function pt(t){t.preventDefault()}function i(t){return"number"==typeof t&&!isNaN(t)&&isFinite(t)}function ft(t,e,r){0=e[r];)r+=1;return r}function r(t,e,r){if(r>=t.slice(-1)[0])return 100;var n,i,o=f(r,t),a=t[o-1],s=t[o],l=e[o-1],u=e[o];return l+(i=r,p(n=[a,s],n[0]<0?i+Math.abs(n[0]):i-n[0])/c(l,u))}function n(t,e,r,n){if(100===n)return n;var i,o,a=f(n,t),s=t[a-1],l=t[a];return r?(l-s)/2= 2) required for mode 'count'.");var n=e-1,i=100/n;for(e=[];n--;)e[n]=n*i;e.push(100),t="positions"}return"positions"===t?e.map(function(t){return E.fromStepping(r?E.getStep(t):t)}):"values"===t?r?e.map(function(t){return E.fromStepping(E.getStep(E.toStepping(t)))}):e:void 0}(n,t.values||!1,t.stepped||!1),s=(m=i,g=n,v=a,b={},e=E.xVal[0],r=E.xVal[E.xVal.length-1],x=S=!1,w=0,(v=v.slice().sort(function(t,e){return t-e}).filter(function(t){return!this[t]&&(this[t]=!0)},{}))[0]!==e&&(v.unshift(e),S=!0),v[v.length-1]!==r&&(v.push(r),x=!0),v.forEach(function(t,e){var r,n,i,o,a,s,l,u,c,p,f=t,d=v[e+1],h="steps"===g;if(h&&(r=E.xNumSteps[e]),r||(r=d-f),!1!==f&&void 0!==d)for(r=Math.max(r,1e-7),n=f;n<=d;n=(n+r).toFixed(7)/1){for(u=(a=(o=E.toStepping(n))-w)/m,p=a/(c=Math.round(u)),i=1;i<=c;i+=1)b[(s=w+i*p).toFixed(5)]=[E.fromStepping(s),0];l=-1r.stepAfter.startValue&&(i=r.stepAfter.startValue-n),o=n>r.thisStep.startValue?r.thisStep.step:!1!==r.stepBefore.step&&n-r.stepBefore.highestStep,100===e?i=null:0===e&&(o=null);var a=E.countStepDecimals();return null!==i&&!1!==i&&(i=Number(i.toFixed(a))),null!==o&&!1!==o&&(o=Number(o.toFixed(a))),[o,i]}return mt(e=y,f.cssClasses.target),0===f.dir?mt(e,f.cssClasses.ltr):mt(e,f.cssClasses.rtl),0===f.ort?mt(e,f.cssClasses.horizontal):mt(e,f.cssClasses.vertical),l=V(e,f.cssClasses.base),function(t,e){var r=V(e,f.cssClasses.connects);u=[],(a=[]).push(O(r,t[0]));for(var n=0;n= e[r]; ) r += 1; + return r; + } + function r(t, e, r) { + if (r >= t.slice(-1)[0]) return 100; + var n, + i, + o = f(r, t), + a = t[o - 1], + s = t[o], + l = e[o - 1], + u = e[o]; + return ( + l + + ((i = r), + p((n = [a, s]), n[0] < 0 ? i + Math.abs(n[0]) : i - n[0]) / c(l, u)) + ); + } + function n(t, e, r, n) { + if (100 === n) return n; + var i, + o, + a = f(n, t), + s = t[a - 1], + l = t[a]; + return r + ? (l - s) / 2 < n - s + ? l + : s + : e[a - 1] + ? t[a - 1] + ((i = n - t[a - 1]), (o = e[a - 1]), Math.round(i / o) * o) + : n; + } + function o(t, e, r) { + var n; + if (("number" == typeof e && (e = [e]), !Array.isArray(e))) + throw new Error( + "noUiSlider (" + ut + "): 'range' contains invalid value." + ); + if ( + !i((n = "min" === t ? 0 : "max" === t ? 100 : parseFloat(t))) || + !i(e[0]) + ) + throw new Error("noUiSlider (" + ut + "): 'range' value isn't numeric."); + r.xPct.push(n), + r.xVal.push(e[0]), + n + ? r.xSteps.push(!isNaN(e[1]) && e[1]) + : isNaN(e[1]) || (r.xSteps[0] = e[1]), + r.xHighestCompleteStep.push(0); + } + function a(t, e, r) { + if (e) + if (r.xVal[t] !== r.xVal[t + 1]) { + r.xSteps[t] = + p([r.xVal[t], r.xVal[t + 1]], e) / c(r.xPct[t], r.xPct[t + 1]); + var n = (r.xVal[t + 1] - r.xVal[t]) / r.xNumSteps[t], + i = Math.ceil(Number(n.toFixed(3)) - 1), + o = r.xVal[t] + r.xNumSteps[t] * i; + r.xHighestCompleteStep[t] = o; + } else r.xSteps[t] = r.xHighestCompleteStep[t] = r.xVal[t]; + } + function l(t, e, r) { + var n; + (this.xPct = []), + (this.xVal = []), + (this.xSteps = [r || !1]), + (this.xNumSteps = [!1]), + (this.xHighestCompleteStep = []), + (this.snap = e); + var i = []; + for (n in t) t.hasOwnProperty(n) && i.push([t[n], n]); + for ( + i.length && "object" == typeof i[0][0] + ? i.sort(function (t, e) { + return t[0][0] - e[0][0]; + }) + : i.sort(function (t, e) { + return t[0] - e[0]; + }), + n = 0; + n < i.length; + n++ + ) + o(i[n][1], i[n][0], this); + for ( + this.xNumSteps = this.xSteps.slice(0), n = 0; + n < this.xNumSteps.length; + n++ + ) + a(n, this.xNumSteps[n], this); + } + (l.prototype.getMargin = function (t) { + var e = this.xNumSteps[0]; + if (e && (t / e) % 1 != 0) + throw new Error( + "noUiSlider (" + + ut + + "): 'limit', 'margin' and 'padding' must be divisible by step." + ); + return 2 === this.xPct.length && p(this.xVal, t); + }), + (l.prototype.toStepping = function (t) { + return (t = r(this.xVal, this.xPct, t)); + }), + (l.prototype.fromStepping = function (t) { + return (function (t, e, r) { + if (100 <= r) return t.slice(-1)[0]; + var n, + i = f(r, e), + o = t[i - 1], + a = t[i], + s = e[i - 1], + l = e[i]; + return (n = [o, a]), ((r - s) * c(s, l) * (n[1] - n[0])) / 100 + n[0]; + })(this.xVal, this.xPct, t); + }), + (l.prototype.getStep = function (t) { + return (t = n(this.xPct, this.xSteps, this.snap, t)); + }), + (l.prototype.getDefaultStep = function (t, e, r) { + var n = f(t, this.xPct); + return ( + (100 === t || (e && t === this.xPct[n - 1])) && + (n = Math.max(n - 1, 1)), + (this.xVal[n] - this.xVal[n - 1]) / r + ); + }), + (l.prototype.getNearbySteps = function (t) { + var e = f(t, this.xPct); + return { + stepBefore: { + startValue: this.xVal[e - 2], + step: this.xNumSteps[e - 2], + highestStep: this.xHighestCompleteStep[e - 2], + }, + thisStep: { + startValue: this.xVal[e - 1], + step: this.xNumSteps[e - 1], + highestStep: this.xHighestCompleteStep[e - 1], + }, + stepAfter: { + startValue: this.xVal[e], + step: this.xNumSteps[e], + highestStep: this.xHighestCompleteStep[e], + }, + }; + }), + (l.prototype.countStepDecimals = function () { + var t = this.xNumSteps.map(e); + return Math.max.apply(null, t); + }), + (l.prototype.convert = function (t) { + return this.getStep(this.toStepping(t)); + }); + var u = { + to: function (t) { + return void 0 !== t && t.toFixed(2); + }, + from: Number, + }; + function d(t) { + if ( + "object" == typeof (e = t) && + "function" == typeof e.to && + "function" == typeof e.from + ) + return !0; + var e; + throw new Error( + "noUiSlider (" + ut + "): 'format' requires 'to' and 'from' methods." + ); + } + function h(t, e) { + if (!i(e)) + throw new Error("noUiSlider (" + ut + "): 'step' is not numeric."); + t.singleStep = e; + } + function m(t, e) { + if ("object" != typeof e || Array.isArray(e)) + throw new Error("noUiSlider (" + ut + "): 'range' is not an object."); + if (void 0 === e.min || void 0 === e.max) + throw new Error( + "noUiSlider (" + ut + "): Missing 'min' or 'max' in 'range'." + ); + if (e.min === e.max) + throw new Error( + "noUiSlider (" + ut + "): 'range' 'min' and 'max' cannot be equal." + ); + t.spectrum = new l(e, t.snap, t.singleStep); + } + function g(t, e) { + if (((e = ht(e)), !Array.isArray(e) || !e.length)) + throw new Error("noUiSlider (" + ut + "): 'start' option is incorrect."); + (t.handles = e.length), (t.start = e); + } + function v(t, e) { + if ("boolean" != typeof (t.snap = e)) + throw new Error( + "noUiSlider (" + ut + "): 'snap' option must be a boolean." + ); + } + function b(t, e) { + if ("boolean" != typeof (t.animate = e)) + throw new Error( + "noUiSlider (" + ut + "): 'animate' option must be a boolean." + ); + } + function S(t, e) { + if ("number" != typeof (t.animationDuration = e)) + throw new Error( + "noUiSlider (" + ut + "): 'animationDuration' option must be a number." + ); + } + function x(t, e) { + var r, + n = [!1]; + if ( + ("lower" === e ? (e = [!0, !1]) : "upper" === e && (e = [!1, !0]), + !0 === e || !1 === e) + ) { + for (r = 1; r < t.handles; r++) n.push(e); + n.push(!1); + } else { + if (!Array.isArray(e) || !e.length || e.length !== t.handles + 1) + throw new Error( + "noUiSlider (" + + ut + + "): 'connect' option doesn't match handle count." + ); + n = e; + } + t.connect = n; + } + function w(t, e) { + switch (e) { + case "horizontal": + t.ort = 0; + break; + case "vertical": + t.ort = 1; + break; + default: + throw new Error( + "noUiSlider (" + ut + "): 'orientation' option is invalid." + ); + } + } + function y(t, e) { + if (!i(e)) + throw new Error( + "noUiSlider (" + ut + "): 'margin' option must be numeric." + ); + if (0 !== e && ((t.margin = t.spectrum.getMargin(e)), !t.margin)) + throw new Error( + "noUiSlider (" + + ut + + "): 'margin' option is only supported on linear sliders." + ); + } + function E(t, e) { + if (!i(e)) + throw new Error( + "noUiSlider (" + ut + "): 'limit' option must be numeric." + ); + if (((t.limit = t.spectrum.getMargin(e)), !t.limit || t.handles < 2)) + throw new Error( + "noUiSlider (" + + ut + + "): 'limit' option is only supported on linear sliders with 2 or more handles." + ); + } + function C(t, e) { + if (!i(e) && !Array.isArray(e)) + throw new Error( + "noUiSlider (" + + ut + + "): 'padding' option must be numeric or array of exactly 2 numbers." + ); + if (Array.isArray(e) && 2 !== e.length && !i(e[0]) && !i(e[1])) + throw new Error( + "noUiSlider (" + + ut + + "): 'padding' option must be numeric or array of exactly 2 numbers." + ); + if (0 !== e) { + if ( + (Array.isArray(e) || (e = [e, e]), + !(t.padding = [ + t.spectrum.getMargin(e[0]), + t.spectrum.getMargin(e[1]), + ]) === t.padding[0] || !1 === t.padding[1]) + ) + throw new Error( + "noUiSlider (" + + ut + + "): 'padding' option is only supported on linear sliders." + ); + if (t.padding[0] < 0 || t.padding[1] < 0) + throw new Error( + "noUiSlider (" + + ut + + "): 'padding' option must be a positive number(s)." + ); + if (100 < t.padding[0] + t.padding[1]) + throw new Error( + "noUiSlider (" + + ut + + "): 'padding' option must not exceed 100% of the range." + ); + } + } + function N(t, e) { + switch (e) { + case "ltr": + t.dir = 0; + break; + case "rtl": + t.dir = 1; + break; + default: + throw new Error( + "noUiSlider (" + ut + "): 'direction' option was not recognized." + ); + } + } + function U(t, e) { + if ("string" != typeof e) + throw new Error( + "noUiSlider (" + + ut + + "): 'behaviour' must be a string containing options." + ); + var r = 0 <= e.indexOf("tap"), + n = 0 <= e.indexOf("drag"), + i = 0 <= e.indexOf("fixed"), + o = 0 <= e.indexOf("snap"), + a = 0 <= e.indexOf("hover"), + s = 0 <= e.indexOf("unconstrained"); + if (i) { + if (2 !== t.handles) + throw new Error( + "noUiSlider (" + + ut + + "): 'fixed' behaviour must be used with 2 handles" + ); + y(t, t.start[1] - t.start[0]); + } + if (s && (t.margin || t.limit)) + throw new Error( + "noUiSlider (" + + ut + + "): 'unconstrained' behaviour cannot be used with margin or limit" + ); + t.events = { + tap: r || o, + drag: n, + fixed: i, + snap: o, + hover: a, + unconstrained: s, + }; + } + function k(t, e) { + if (!1 !== e) + if (!0 === e) { + t.tooltips = []; + for (var r = 0; r < t.handles; r++) t.tooltips.push(!0); + } else { + if (((t.tooltips = ht(e)), t.tooltips.length !== t.handles)) + throw new Error( + "noUiSlider (" + ut + "): must pass a formatter for all handles." + ); + t.tooltips.forEach(function (t) { + if ( + "boolean" != typeof t && + ("object" != typeof t || "function" != typeof t.to) + ) + throw new Error( + "noUiSlider (" + + ut + + "): 'tooltips' must be passed a formatter or 'false'." + ); + }); + } + } + function P(t, e) { + d((t.ariaFormat = e)); + } + function A(t, e) { + d((t.format = e)); + } + function V(t, e) { + if ("boolean" != typeof (t.keyboardSupport = e)) + throw new Error( + "noUiSlider (" + ut + "): 'keyboardSupport' option must be a boolean." + ); + } + function M(t, e) { + t.documentElement = e; + } + function O(t, e) { + if ("string" != typeof e && !1 !== e) + throw new Error( + "noUiSlider (" + ut + "): 'cssPrefix' must be a string or `false`." + ); + t.cssPrefix = e; + } + function L(t, e) { + if ("object" != typeof e) + throw new Error( + "noUiSlider (" + ut + "): 'cssClasses' must be an object." + ); + if ("string" == typeof t.cssPrefix) + for (var r in ((t.cssClasses = {}), e)) + e.hasOwnProperty(r) && (t.cssClasses[r] = t.cssPrefix + e[r]); + else t.cssClasses = e; + } + function bt(e) { + var r = { + margin: 0, + limit: 0, + padding: 0, + animate: !0, + animationDuration: 300, + ariaFormat: u, + format: u, + }, + n = { + step: { r: !1, t: h }, + start: { r: !0, t: g }, + connect: { r: !0, t: x }, + direction: { r: !0, t: N }, + snap: { r: !1, t: v }, + animate: { r: !1, t: b }, + animationDuration: { r: !1, t: S }, + range: { r: !0, t: m }, + orientation: { r: !1, t: w }, + margin: { r: !1, t: y }, + limit: { r: !1, t: E }, + padding: { r: !1, t: C }, + behaviour: { r: !0, t: U }, + ariaFormat: { r: !1, t: P }, + format: { r: !1, t: A }, + tooltips: { r: !1, t: k }, + keyboardSupport: { r: !0, t: V }, + documentElement: { r: !1, t: M }, + cssPrefix: { r: !0, t: O }, + cssClasses: { r: !0, t: L }, + }, + i = { + connect: !1, + direction: "ltr", + behaviour: "tap", + orientation: "horizontal", + keyboardSupport: !0, + cssPrefix: "noUi-", + cssClasses: { + target: "target", + base: "base", + origin: "origin", + handle: "handle", + handleLower: "handle-lower", + handleUpper: "handle-upper", + touchArea: "touch-area", + horizontal: "horizontal", + vertical: "vertical", + background: "background", + connect: "connect", + connects: "connects", + ltr: "ltr", + rtl: "rtl", + draggable: "draggable", + drag: "state-drag", + tap: "state-tap", + active: "active", + tooltip: "tooltip", + pips: "pips", + pipsHorizontal: "pips-horizontal", + pipsVertical: "pips-vertical", + marker: "marker", + markerHorizontal: "marker-horizontal", + markerVertical: "marker-vertical", + markerNormal: "marker-normal", + markerLarge: "marker-large", + markerSub: "marker-sub", + value: "value", + valueHorizontal: "value-horizontal", + valueVertical: "value-vertical", + valueNormal: "value-normal", + valueLarge: "value-large", + valueSub: "value-sub", + }, + }; + e.format && !e.ariaFormat && (e.ariaFormat = e.format), + Object.keys(n).forEach(function (t) { + if (!s(e[t]) && void 0 === i[t]) { + if (n[t].r) + throw new Error( + "noUiSlider (" + ut + "): '" + t + "' is required." + ); + return !0; + } + n[t].t(r, s(e[t]) ? e[t] : i[t]); + }), + (r.pips = e.pips); + var t = document.createElement("div"), + o = void 0 !== t.style.msTransform, + a = void 0 !== t.style.transform; + r.transformRule = a ? "transform" : o ? "msTransform" : "webkitTransform"; + return ( + (r.style = [ + ["left", "top"], + ["right", "bottom"], + ][r.dir][r.ort]), + r + ); + } + function z(t, f, o) { + var l, + u, + a, + c, + i, + s, + e, + p, + d = window.navigator.pointerEnabled + ? { start: "pointerdown", move: "pointermove", end: "pointerup" } + : window.navigator.msPointerEnabled + ? { start: "MSPointerDown", move: "MSPointerMove", end: "MSPointerUp" } + : { + start: "mousedown touchstart", + move: "mousemove touchmove", + end: "mouseup touchend", + }, + h = + window.CSS && + CSS.supports && + CSS.supports("touch-action", "none") && + (function () { + var t = !1; + try { + var e = Object.defineProperty({}, "passive", { + get: function () { + t = !0; + }, + }); + window.addEventListener("test", null, e); + } catch (t) {} + return t; + })(), + y = t, + E = f.spectrum, + m = [], + g = [], + v = [], + b = 0, + S = {}, + x = t.ownerDocument, + w = f.documentElement || x.documentElement, + C = x.body, + N = -1, + U = 0, + k = 1, + P = 2, + A = "rtl" === x.dir || 1 === f.ort ? 0 : 100; + function V(t, e) { + var r = x.createElement("div"); + return e && mt(r, e), t.appendChild(r), r; + } + function M(t, e) { + var r = V(t, f.cssClasses.origin), + n = V(r, f.cssClasses.handle); + return ( + V(n, f.cssClasses.touchArea), + n.setAttribute("data-handle", e), + f.keyboardSupport && + (n.setAttribute("tabindex", "0"), + n.addEventListener("keydown", function (t) { + return (function (t, e) { + if (L() || z(e)) return !1; + var r = ["Left", "Right"], + n = ["Down", "Up"]; + f.dir && !f.ort ? r.reverse() : f.ort && !f.dir && n.reverse(); + var i = t.key.replace("Arrow", ""), + o = i === n[0] || i === r[0], + a = i === n[1] || i === r[1]; + if (!o && !a) return !0; + t.preventDefault(); + var s = o ? 0 : 1, + l = lt(e)[s]; + if (null === l) return !1; + !1 === l && (l = E.getDefaultStep(g[e], o, 10)); + return ( + (l = Math.max(l, 1e-7)), + (l *= o ? -1 : 1), + at(e, m[e] + l, !0), + !1 + ); + })(t, e); + })), + n.setAttribute("role", "slider"), + n.setAttribute("aria-orientation", f.ort ? "vertical" : "horizontal"), + 0 === e + ? mt(n, f.cssClasses.handleLower) + : e === f.handles - 1 && mt(n, f.cssClasses.handleUpper), + r + ); + } + function O(t, e) { + return !!e && V(t, f.cssClasses.connect); + } + function r(t, e) { + return !!f.tooltips[e] && V(t.firstChild, f.cssClasses.tooltip); + } + function L() { + return y.hasAttribute("disabled"); + } + function z(t) { + return u[t].hasAttribute("disabled"); + } + function j() { + i && + (G("update.tooltips"), + i.forEach(function (t) { + t && ct(t); + }), + (i = null)); + } + function H() { + j(), + (i = u.map(r)), + $("update.tooltips", function (t, e, r) { + if (i[e]) { + var n = t[e]; + !0 !== f.tooltips[e] && (n = f.tooltips[e].to(r[e])), + (i[e].innerHTML = n); + } + }); + } + function F(e, i, o) { + var a = x.createElement("div"), + s = []; + (s[U] = f.cssClasses.valueNormal), + (s[k] = f.cssClasses.valueLarge), + (s[P] = f.cssClasses.valueSub); + var l = []; + (l[U] = f.cssClasses.markerNormal), + (l[k] = f.cssClasses.markerLarge), + (l[P] = f.cssClasses.markerSub); + var u = [f.cssClasses.valueHorizontal, f.cssClasses.valueVertical], + c = [f.cssClasses.markerHorizontal, f.cssClasses.markerVertical]; + function p(t, e) { + var r = e === f.cssClasses.value, + n = r ? s : l; + return e + " " + (r ? u : c)[f.ort] + " " + n[t]; + } + return ( + mt(a, f.cssClasses.pips), + mt( + a, + 0 === f.ort ? f.cssClasses.pipsHorizontal : f.cssClasses.pipsVertical + ), + Object.keys(e).forEach(function (t) { + !(function (t, e, r) { + if ((r = i ? i(e, r) : r) !== N) { + var n = V(a, !1); + (n.className = p(r, f.cssClasses.marker)), + (n.style[f.style] = t + "%"), + U < r && + (((n = V(a, !1)).className = p(r, f.cssClasses.value)), + n.setAttribute("data-value", e), + (n.style[f.style] = t + "%"), + (n.innerHTML = o.to(e))); + } + })(t, e[t][0], e[t][1]); + }), + a + ); + } + function D() { + c && (ct(c), (c = null)); + } + function T(t) { + D(); + var m, + g, + v, + b, + e, + r, + S, + x, + w, + n = t.mode, + i = t.density || 1, + o = t.filter || !1, + a = (function (t, e, r) { + if ("range" === t || "steps" === t) return E.xVal; + if ("count" === t) { + if (e < 2) + throw new Error( + "noUiSlider (" + + ut + + "): 'values' (>= 2) required for mode 'count'." + ); + var n = e - 1, + i = 100 / n; + for (e = []; n--; ) e[n] = n * i; + e.push(100), (t = "positions"); + } + return "positions" === t + ? e.map(function (t) { + return E.fromStepping(r ? E.getStep(t) : t); + }) + : "values" === t + ? r + ? e.map(function (t) { + return E.fromStepping(E.getStep(E.toStepping(t))); + }) + : e + : void 0; + })(n, t.values || !1, t.stepped || !1), + s = + ((m = i), + (g = n), + (v = a), + (b = {}), + (e = E.xVal[0]), + (r = E.xVal[E.xVal.length - 1]), + (x = S = !1), + (w = 0), + (v = v + .slice() + .sort(function (t, e) { + return t - e; + }) + .filter(function (t) { + return !this[t] && (this[t] = !0); + }, {}))[0] !== e && (v.unshift(e), (S = !0)), + v[v.length - 1] !== r && (v.push(r), (x = !0)), + v.forEach(function (t, e) { + var r, + n, + i, + o, + a, + s, + l, + u, + c, + p, + f = t, + d = v[e + 1], + h = "steps" === g; + if ( + (h && (r = E.xNumSteps[e]), + r || (r = d - f), + !1 !== f && void 0 !== d) + ) + for ( + r = Math.max(r, 1e-7), n = f; + n <= d; + n = (n + r).toFixed(7) / 1 + ) { + for ( + u = (a = (o = E.toStepping(n)) - w) / m, + p = a / (c = Math.round(u)), + i = 1; + i <= c; + i += 1 + ) + b[(s = w + i * p).toFixed(5)] = [E.fromStepping(s), 0]; + (l = -1 < v.indexOf(n) ? k : h ? P : U), + !e && S && (l = 0), + (n === d && x) || (b[o.toFixed(5)] = [n, l]), + (w = o); + } + }), + b), + l = t.format || { to: Math.round }; + return (c = y.appendChild(F(s, o, l))); + } + function R() { + var t = l.getBoundingClientRect(), + e = "offset" + ["Width", "Height"][f.ort]; + return 0 === f.ort ? t.width || l[e] : t.height || l[e]; + } + function B(n, i, o, a) { + var e = function (t) { + return ( + !!(t = (function (t, e, r) { + var n, + i, + o = 0 === t.type.indexOf("touch"), + a = 0 === t.type.indexOf("mouse"), + s = 0 === t.type.indexOf("pointer"); + 0 === t.type.indexOf("MSPointer") && (s = !0); + if (o) { + var l = function (t) { + return t.target === r || r.contains(t.target); + }; + if ("touchstart" === t.type) { + var u = Array.prototype.filter.call(t.touches, l); + if (1 < u.length) return !1; + (n = u[0].pageX), (i = u[0].pageY); + } else { + var c = Array.prototype.find.call(t.changedTouches, l); + if (!c) return !1; + (n = c.pageX), (i = c.pageY); + } + } + (e = e || vt(x)), + (a || s) && ((n = t.clientX + e.x), (i = t.clientY + e.y)); + return ( + (t.pageOffset = e), (t.points = [n, i]), (t.cursor = a || s), t + ); + })(t, a.pageOffset, a.target || i)) && + !(L() && !a.doNotReject) && + ((e = y), + (r = f.cssClasses.tap), + !( + (e.classList + ? e.classList.contains(r) + : new RegExp("\\b" + r + "\\b").test(e.className)) && + !a.doNotReject + ) && + !(n === d.start && void 0 !== t.buttons && 1 < t.buttons) && + (!a.hover || !t.buttons) && + (h || t.preventDefault(), + (t.calcPoint = t.points[f.ort]), + void o(t, a))) + ); + var e, r; + }, + r = []; + return ( + n.split(" ").forEach(function (t) { + i.addEventListener(t, e, !!h && { passive: !0 }), r.push([t, e]); + }), + r + ); + } + function q(t) { + var e, + r, + n, + i, + o, + a, + s = + (100 * + (t - + ((e = l), + (r = f.ort), + (n = e.getBoundingClientRect()), + (i = e.ownerDocument), + (o = i.documentElement), + (a = vt(i)), + /webkit.*Chrome.*Mobile/i.test(navigator.userAgent) && (a.x = 0), + r ? n.top + a.y - o.clientTop : n.left + a.x - o.clientLeft))) / + R(); + return (s = dt(s)), f.dir ? 100 - s : s; + } + function X(t, e) { + "mouseout" === t.type && + "HTML" === t.target.nodeName && + null === t.relatedTarget && + _(t, e); + } + function Y(t, e) { + if ( + -1 === navigator.appVersion.indexOf("MSIE 9") && + 0 === t.buttons && + 0 !== e.buttonsProperty + ) + return _(t, e); + var r = (f.dir ? -1 : 1) * (t.calcPoint - e.startCalcPoint); + Z(0 < r, (100 * r) / e.baseSize, e.locations, e.handleNumbers); + } + function _(t, e) { + e.handle && (gt(e.handle, f.cssClasses.active), (b -= 1)), + e.listeners.forEach(function (t) { + w.removeEventListener(t[0], t[1]); + }), + 0 === b && + (gt(y, f.cssClasses.drag), + et(), + t.cursor && + ((C.style.cursor = ""), C.removeEventListener("selectstart", pt))), + e.handleNumbers.forEach(function (t) { + J("change", t), J("set", t), J("end", t); + }); + } + function I(t, e) { + if (e.handleNumbers.some(z)) return !1; + var r; + 1 === e.handleNumbers.length && + ((r = u[e.handleNumbers[0]].children[0]), + (b += 1), + mt(r, f.cssClasses.active)); + t.stopPropagation(); + var n = [], + i = B(d.move, w, Y, { + target: t.target, + handle: r, + listeners: n, + startCalcPoint: t.calcPoint, + baseSize: R(), + pageOffset: t.pageOffset, + handleNumbers: e.handleNumbers, + buttonsProperty: t.buttons, + locations: g.slice(), + }), + o = B(d.end, w, _, { + target: t.target, + handle: r, + listeners: n, + doNotReject: !0, + handleNumbers: e.handleNumbers, + }), + a = B("mouseout", w, X, { + target: t.target, + handle: r, + listeners: n, + doNotReject: !0, + handleNumbers: e.handleNumbers, + }); + n.push.apply(n, i.concat(o, a)), + t.cursor && + ((C.style.cursor = getComputedStyle(t.target).cursor), + 1 < u.length && mt(y, f.cssClasses.drag), + C.addEventListener("selectstart", pt, !1)), + e.handleNumbers.forEach(function (t) { + J("start", t); + }); + } + function n(t) { + t.stopPropagation(); + var n, + i, + o, + e = q(t.calcPoint), + r = + ((n = e), + (o = !(i = 100)), + u.forEach(function (t, e) { + if (!z(e)) { + var r = Math.abs(g[e] - n); + (r < i || (100 === r && 100 === i)) && ((o = e), (i = r)); + } + }), + o); + if (!1 === r) return !1; + f.events.snap || ft(y, f.cssClasses.tap, f.animationDuration), + rt(r, e, !0, !0), + et(), + J("slide", r, !0), + J("update", r, !0), + J("change", r, !0), + J("set", r, !0), + f.events.snap && I(t, { handleNumbers: [r] }); + } + function W(t) { + var e = q(t.calcPoint), + r = E.getStep(e), + n = E.fromStepping(r); + Object.keys(S).forEach(function (t) { + "hover" === t.split(".")[0] && + S[t].forEach(function (t) { + t.call(s, n); + }); + }); + } + function $(t, e) { + (S[t] = S[t] || []), + S[t].push(e), + "update" === t.split(".")[0] && + u.forEach(function (t, e) { + J("update", e); + }); + } + function G(t) { + var n = t && t.split(".")[0], + i = n && t.substring(n.length); + Object.keys(S).forEach(function (t) { + var e = t.split(".")[0], + r = t.substring(e.length); + (n && n !== e) || (i && i !== r) || delete S[t]; + }); + } + function J(r, n, i) { + Object.keys(S).forEach(function (t) { + var e = t.split(".")[0]; + r === e && + S[t].forEach(function (t) { + t.call(s, m.map(f.format.to), n, m.slice(), i || !1, g.slice()); + }); + }); + } + function K(t, e, r, n, i, o) { + return ( + 1 < u.length && + !f.events.unconstrained && + (n && 0 < e && (r = Math.max(r, t[e - 1] + f.margin)), + i && e < u.length - 1 && (r = Math.min(r, t[e + 1] - f.margin))), + 1 < u.length && + f.limit && + (n && 0 < e && (r = Math.min(r, t[e - 1] + f.limit)), + i && e < u.length - 1 && (r = Math.max(r, t[e + 1] - f.limit))), + f.padding && + (0 === e && (r = Math.max(r, f.padding[0])), + e === u.length - 1 && (r = Math.min(r, 100 - f.padding[1]))), + !((r = dt((r = E.getStep(r)))) === t[e] && !o) && r + ); + } + function Q(t, e) { + var r = f.ort; + return (r ? e : t) + ", " + (r ? t : e); + } + function Z(t, n, r, e) { + var i = r.slice(), + o = [!t, t], + a = [t, !t]; + (e = e.slice()), + t && e.reverse(), + 1 < e.length + ? e.forEach(function (t, e) { + var r = K(i, t, i[t] + n, o[e], a[e], !1); + !1 === r ? (n = 0) : ((n = r - i[t]), (i[t] = r)); + }) + : (o = a = [!0]); + var s = !1; + e.forEach(function (t, e) { + s = rt(t, r[t] + n, o[e], a[e]) || s; + }), + s && + e.forEach(function (t) { + J("update", t), J("slide", t); + }); + } + function tt(t, e) { + return f.dir ? 100 - t - e : t; + } + function et() { + v.forEach(function (t) { + var e = 50 < g[t] ? -1 : 1, + r = 3 + (u.length + e * t); + u[t].style.zIndex = r; + }); + } + function rt(t, e, r, n) { + return ( + !1 !== (e = K(g, t, e, r, n, !1)) && + ((function (t, e) { + (g[t] = e), (m[t] = E.fromStepping(e)); + var r = "translate(" + Q(tt(e, 0) - A + "%", "0") + ")"; + (u[t].style[f.transformRule] = r), nt(t), nt(t + 1); + })(t, e), + !0) + ); + } + function nt(t) { + if (a[t]) { + var e = 0, + r = 100; + 0 !== t && (e = g[t - 1]), t !== a.length - 1 && (r = g[t]); + var n = r - e, + i = "translate(" + Q(tt(e, n) + "%", "0") + ")", + o = "scale(" + Q(n / 100, "1") + ")"; + a[t].style[f.transformRule] = i + " " + o; + } + } + function it(t, e) { + return null === t || !1 === t || void 0 === t + ? g[e] + : ("number" == typeof t && (t = String(t)), + (t = f.format.from(t)), + !1 === (t = E.toStepping(t)) || isNaN(t) ? g[e] : t); + } + function ot(t, e) { + var r = ht(t), + n = void 0 === g[0]; + (e = void 0 === e || !!e), + f.animate && !n && ft(y, f.cssClasses.tap, f.animationDuration), + v.forEach(function (t) { + rt(t, it(r[t], t), !0, !1); + }), + v.forEach(function (t) { + rt(t, g[t], !0, !0); + }), + et(), + v.forEach(function (t) { + J("update", t), null !== r[t] && e && J("set", t); + }); + } + function at(t, e, r) { + if (!(0 <= (t = Number(t)) && t < v.length)) + throw new Error( + "noUiSlider (" + ut + "): invalid handle number, got: " + t + ); + rt(t, it(e, t), !0, !0), J("update", t), r && J("set", t); + } + function st() { + var t = m.map(f.format.to); + return 1 === t.length ? t[0] : t; + } + function lt(t) { + var e = g[t], + r = E.getNearbySteps(e), + n = m[t], + i = r.thisStep.step, + o = null; + if (f.snap) + return [ + n - r.stepBefore.startValue || null, + r.stepAfter.startValue - n || null, + ]; + !1 !== i && + n + i > r.stepAfter.startValue && + (i = r.stepAfter.startValue - n), + (o = + n > r.thisStep.startValue + ? r.thisStep.step + : !1 !== r.stepBefore.step && n - r.stepBefore.highestStep), + 100 === e ? (i = null) : 0 === e && (o = null); + var a = E.countStepDecimals(); + return ( + null !== i && !1 !== i && (i = Number(i.toFixed(a))), + null !== o && !1 !== o && (o = Number(o.toFixed(a))), + [o, i] + ); + } + return ( + mt((e = y), f.cssClasses.target), + 0 === f.dir ? mt(e, f.cssClasses.ltr) : mt(e, f.cssClasses.rtl), + 0 === f.ort + ? mt(e, f.cssClasses.horizontal) + : mt(e, f.cssClasses.vertical), + (l = V(e, f.cssClasses.base)), + (function (t, e) { + var r = V(e, f.cssClasses.connects); + (u = []), (a = []).push(O(r, t[0])); + for (var n = 0; n < f.handles; n++) + u.push(M(e, n)), (v[n] = n), a.push(O(r, t[n + 1])); + })(f.connect, l), + (p = f.events).fixed || + u.forEach(function (t, e) { + B(d.start, t.children[0], I, { handleNumbers: [e] }); + }), + p.tap && B(d.start, l, n, {}), + p.hover && B(d.move, l, W, { hover: !0 }), + p.drag && + a.forEach(function (t, e) { + if (!1 !== t && 0 !== e && e !== a.length - 1) { + var r = u[e - 1], + n = u[e], + i = [t]; + mt(t, f.cssClasses.draggable), + p.fixed && (i.push(r.children[0]), i.push(n.children[0])), + i.forEach(function (t) { + B(d.start, t, I, { + handles: [r, n], + handleNumbers: [e - 1, e], + }); + }); + } + }), + ot(f.start), + f.pips && T(f.pips), + f.tooltips && H(), + $("update", function (t, e, a, r, s) { + v.forEach(function (t) { + var e = u[t], + r = K(g, t, 0, !0, !0, !0), + n = K(g, t, 100, !0, !0, !0), + i = s[t], + o = f.ariaFormat.to(a[t]); + (r = E.fromStepping(r).toFixed(1)), + (n = E.fromStepping(n).toFixed(1)), + (i = E.fromStepping(i).toFixed(1)), + e.children[0].setAttribute("aria-valuemin", r), + e.children[0].setAttribute("aria-valuemax", n), + e.children[0].setAttribute("aria-valuenow", i), + e.children[0].setAttribute("aria-valuetext", o); + }); + }), + (s = { + destroy: function () { + for (var t in f.cssClasses) + f.cssClasses.hasOwnProperty(t) && gt(y, f.cssClasses[t]); + for (; y.firstChild; ) y.removeChild(y.firstChild); + delete y.noUiSlider; + }, + steps: function () { + return v.map(lt); + }, + on: $, + off: G, + get: st, + set: ot, + setHandle: at, + reset: function (t) { + ot(f.start, t); + }, + __moveHandles: function (t, e, r) { + Z(t, e, g, r); + }, + options: o, + updateOptions: function (e, t) { + var r = st(), + n = [ + "margin", + "limit", + "padding", + "range", + "animate", + "snap", + "step", + "format", + "pips", + "tooltips", + ]; + n.forEach(function (t) { + void 0 !== e[t] && (o[t] = e[t]); + }); + var i = bt(o); + n.forEach(function (t) { + void 0 !== e[t] && (f[t] = i[t]); + }), + (E = i.spectrum), + (f.margin = i.margin), + (f.limit = i.limit), + (f.padding = i.padding), + f.pips ? T(f.pips) : D(), + f.tooltips ? H() : j(), + (g = []), + ot(e.start || r, t); + }, + target: y, + removePips: D, + removeTooltips: j, + pips: T, + }) + ); + } + return { + __spectrum: l, + version: ut, + create: function (t, e) { + if (!t || !t.nodeName) + throw new Error( + "noUiSlider (" + ut + "): create requires a single element, got: " + t + ); + if (t.noUiSlider) + throw new Error( + "noUiSlider (" + ut + "): Slider was already initialized." + ); + var r = z(t, bt(e), e); + return (t.noUiSlider = r); + }, + }; +}); diff --git a/public/user/js/owl.carousel.min.js b/public/user/js/owl.carousel.min.js index fbbffc53..64e2806b 100644 --- a/public/user/js/owl.carousel.min.js +++ b/public/user/js/owl.carousel.min.js @@ -3,5 +3,2052 @@ * Copyright 2013-2018 David Deutsch * Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE */ -!function(a,b,c,d){function e(b,c){this.settings=null,this.options=a.extend({},e.Defaults,c),this.$element=a(b),this._handlers={},this._plugins={},this._supress={},this._current=null,this._speed=null,this._coordinates=[],this._breakpoint=null,this._width=null,this._items=[],this._clones=[],this._mergers=[],this._widths=[],this._invalidated={},this._pipe=[],this._drag={time:null,target:null,pointer:null,stage:{start:null,current:null},direction:null},this._states={current:{},tags:{initializing:["busy"],animating:["busy"],dragging:["interacting"]}},a.each(["onResize","onThrottledResize"],a.proxy(function(b,c){this._handlers[c]=a.proxy(this[c],this)},this)),a.each(e.Plugins,a.proxy(function(a,b){this._plugins[a.charAt(0).toLowerCase()+a.slice(1)]=new b(this)},this)),a.each(e.Workers,a.proxy(function(b,c){this._pipe.push({filter:c.filter,run:a.proxy(c.run,this)})},this)),this.setup(),this.initialize()}e.Defaults={items:3,loop:!1,center:!1,rewind:!1,checkVisibility:!0,mouseDrag:!0,touchDrag:!0,pullDrag:!0,freeDrag:!1,margin:0,stagePadding:0,merge:!1,mergeFit:!0,autoWidth:!1,startPosition:0,rtl:!1,smartSpeed:250,fluidSpeed:!1,dragEndSpeed:!1,responsive:{},responsiveRefreshRate:200,responsiveBaseElement:b,fallbackEasing:"swing",slideTransition:"",info:!1,nestedItemSelector:!1,itemElement:"div",stageElement:"div",refreshClass:"owl-refresh",loadedClass:"owl-loaded",loadingClass:"owl-loading",rtlClass:"owl-rtl",responsiveClass:"owl-responsive",dragClass:"owl-drag",itemClass:"owl-item",stageClass:"owl-stage",stageOuterClass:"owl-stage-outer",grabClass:"owl-grab"},e.Width={Default:"default",Inner:"inner",Outer:"outer"},e.Type={Event:"event",State:"state"},e.Plugins={},e.Workers=[{filter:["width","settings"],run:function(){this._width=this.$element.width()}},{filter:["width","items","settings"],run:function(a){a.current=this._items&&this._items[this.relative(this._current)]}},{filter:["items","settings"],run:function(){this.$stage.children(".cloned").remove()}},{filter:["width","items","settings"],run:function(a){var b=this.settings.margin||"",c=!this.settings.autoWidth,d=this.settings.rtl,e={width:"auto","margin-left":d?b:"","margin-right":d?"":b};!c&&this.$stage.children().css(e),a.css=e}},{filter:["width","items","settings"],run:function(a){var b=(this.width()/this.settings.items).toFixed(3)-this.settings.margin,c=null,d=this._items.length,e=!this.settings.autoWidth,f=[];for(a.items={merge:!1,width:b};d--;)c=this._mergers[d],c=this.settings.mergeFit&&Math.min(c,this.settings.items)||c,a.items.merge=c>1||a.items.merge,f[d]=e?b*c:this._items[d].width();this._widths=f}},{filter:["items","settings"],run:function(){var b=[],c=this._items,d=this.settings,e=Math.max(2*d.items,4),f=2*Math.ceil(c.length/2),g=d.loop&&c.length?d.rewind?e:Math.max(e,f):0,h="",i="";for(g/=2;g>0;)b.push(this.normalize(b.length/2,!0)),h+=c[b[b.length-1]][0].outerHTML,b.push(this.normalize(c.length-1-(b.length-1)/2,!0)),i=c[b[b.length-1]][0].outerHTML+i,g-=1;this._clones=b,a(h).addClass("cloned").appendTo(this.$stage),a(i).addClass("cloned").prependTo(this.$stage)}},{filter:["width","items","settings"],run:function(){for(var a=this.settings.rtl?1:-1,b=this._clones.length+this._items.length,c=-1,d=0,e=0,f=[];++c",h)||this.op(b,"<",g)&&this.op(b,">",h))&&i.push(c);this.$stage.children(".active").removeClass("active"),this.$stage.children(":eq("+i.join("), :eq(")+")").addClass("active"),this.$stage.children(".center").removeClass("center"),this.settings.center&&this.$stage.children().eq(this.current()).addClass("center")}}],e.prototype.initializeStage=function(){this.$stage=this.$element.find("."+this.settings.stageClass),this.$stage.length||(this.$element.addClass(this.options.loadingClass),this.$stage=a("<"+this.settings.stageElement+">",{class:this.settings.stageClass}).wrap(a("
",{class:this.settings.stageOuterClass})),this.$element.append(this.$stage.parent()))},e.prototype.initializeItems=function(){var b=this.$element.find(".owl-item");if(b.length)return this._items=b.get().map(function(b){return a(b)}),this._mergers=this._items.map(function(){return 1}),void this.refresh();this.replace(this.$element.children().not(this.$stage.parent())),this.isVisible()?this.refresh():this.invalidate("width"),this.$element.removeClass(this.options.loadingClass).addClass(this.options.loadedClass)},e.prototype.initialize=function(){if(this.enter("initializing"),this.trigger("initialize"),this.$element.toggleClass(this.settings.rtlClass,this.settings.rtl),this.settings.autoWidth&&!this.is("pre-loading")){var a,b,c;a=this.$element.find("img"),b=this.settings.nestedItemSelector?"."+this.settings.nestedItemSelector:d,c=this.$element.children(b).width(),a.length&&c<=0&&this.preloadAutoWidthImages(a)}this.initializeStage(),this.initializeItems(),this.registerEventHandlers(),this.leave("initializing"),this.trigger("initialized")},e.prototype.isVisible=function(){return!this.settings.checkVisibility||this.$element.is(":visible")},e.prototype.setup=function(){var b=this.viewport(),c=this.options.responsive,d=-1,e=null;c?(a.each(c,function(a){a<=b&&a>d&&(d=Number(a))}),e=a.extend({},this.options,c[d]),"function"==typeof e.stagePadding&&(e.stagePadding=e.stagePadding()),delete e.responsive,e.responsiveClass&&this.$element.attr("class",this.$element.attr("class").replace(new RegExp("("+this.options.responsiveClass+"-)\\S+\\s","g"),"$1"+d))):e=a.extend({},this.options),this.trigger("change",{property:{name:"settings",value:e}}),this._breakpoint=d,this.settings=e,this.invalidate("settings"),this.trigger("changed",{property:{name:"settings",value:this.settings}})},e.prototype.optionsLogic=function(){this.settings.autoWidth&&(this.settings.stagePadding=!1,this.settings.merge=!1)},e.prototype.prepare=function(b){var c=this.trigger("prepare",{content:b});return c.data||(c.data=a("<"+this.settings.itemElement+"/>").addClass(this.options.itemClass).append(b)),this.trigger("prepared",{content:c.data}),c.data},e.prototype.update=function(){for(var b=0,c=this._pipe.length,d=a.proxy(function(a){return this[a]},this._invalidated),e={};b0)&&this._pipe[b].run(e),b++;this._invalidated={},!this.is("valid")&&this.enter("valid")},e.prototype.width=function(a){switch(a=a||e.Width.Default){case e.Width.Inner:case e.Width.Outer:return this._width;default:return this._width-2*this.settings.stagePadding+this.settings.margin}},e.prototype.refresh=function(){this.enter("refreshing"),this.trigger("refresh"),this.setup(),this.optionsLogic(),this.$element.addClass(this.options.refreshClass),this.update(),this.$element.removeClass(this.options.refreshClass),this.leave("refreshing"),this.trigger("refreshed")},e.prototype.onThrottledResize=function(){b.clearTimeout(this.resizeTimer),this.resizeTimer=b.setTimeout(this._handlers.onResize,this.settings.responsiveRefreshRate)},e.prototype.onResize=function(){return!!this._items.length&&(this._width!==this.$element.width()&&(!!this.isVisible()&&(this.enter("resizing"),this.trigger("resize").isDefaultPrevented()?(this.leave("resizing"),!1):(this.invalidate("width"),this.refresh(),this.leave("resizing"),void this.trigger("resized")))))},e.prototype.registerEventHandlers=function(){a.support.transition&&this.$stage.on(a.support.transition.end+".owl.core",a.proxy(this.onTransitionEnd,this)),!1!==this.settings.responsive&&this.on(b,"resize",this._handlers.onThrottledResize),this.settings.mouseDrag&&(this.$element.addClass(this.options.dragClass),this.$stage.on("mousedown.owl.core",a.proxy(this.onDragStart,this)),this.$stage.on("dragstart.owl.core selectstart.owl.core",function(){return!1})),this.settings.touchDrag&&(this.$stage.on("touchstart.owl.core",a.proxy(this.onDragStart,this)),this.$stage.on("touchcancel.owl.core",a.proxy(this.onDragEnd,this)))},e.prototype.onDragStart=function(b){var d=null;3!==b.which&&(a.support.transform?(d=this.$stage.css("transform").replace(/.*\(|\)| /g,"").split(","),d={x:d[16===d.length?12:4],y:d[16===d.length?13:5]}):(d=this.$stage.position(),d={x:this.settings.rtl?d.left+this.$stage.width()-this.width()+this.settings.margin:d.left,y:d.top}),this.is("animating")&&(a.support.transform?this.animate(d.x):this.$stage.stop(),this.invalidate("position")),this.$element.toggleClass(this.options.grabClass,"mousedown"===b.type),this.speed(0),this._drag.time=(new Date).getTime(),this._drag.target=a(b.target),this._drag.stage.start=d,this._drag.stage.current=d,this._drag.pointer=this.pointer(b),a(c).on("mouseup.owl.core touchend.owl.core",a.proxy(this.onDragEnd,this)),a(c).one("mousemove.owl.core touchmove.owl.core",a.proxy(function(b){var d=this.difference(this._drag.pointer,this.pointer(b));a(c).on("mousemove.owl.core touchmove.owl.core",a.proxy(this.onDragMove,this)),Math.abs(d.x)0^this.settings.rtl?"left":"right";a(c).off(".owl.core"),this.$element.removeClass(this.options.grabClass),(0!==d.x&&this.is("dragging")||!this.is("valid"))&&(this.speed(this.settings.dragEndSpeed||this.settings.smartSpeed),this.current(this.closest(e.x,0!==d.x?f:this._drag.direction)),this.invalidate("position"),this.update(),this._drag.direction=f,(Math.abs(d.x)>3||(new Date).getTime()-this._drag.time>300)&&this._drag.target.one("click.owl.core",function(){return!1})),this.is("dragging")&&(this.leave("dragging"),this.trigger("dragged"))},e.prototype.closest=function(b,c){var e=-1,f=30,g=this.width(),h=this.coordinates();return this.settings.freeDrag||a.each(h,a.proxy(function(a,i){return"left"===c&&b>i-f&&bi-g-f&&b",h[a+1]!==d?h[a+1]:i-g)&&(e="left"===c?a+1:a),-1===e},this)),this.settings.loop||(this.op(b,">",h[this.minimum()])?e=b=this.minimum():this.op(b,"<",h[this.maximum()])&&(e=b=this.maximum())),e},e.prototype.animate=function(b){var c=this.speed()>0;this.is("animating")&&this.onTransitionEnd(),c&&(this.enter("animating"),this.trigger("translate")),a.support.transform3d&&a.support.transition?this.$stage.css({transform:"translate3d("+b+"px,0px,0px)",transition:this.speed()/1e3+"s"+(this.settings.slideTransition?" "+this.settings.slideTransition:"")}):c?this.$stage.animate({left:b+"px"},this.speed(),this.settings.fallbackEasing,a.proxy(this.onTransitionEnd,this)):this.$stage.css({left:b+"px"})},e.prototype.is=function(a){return this._states.current[a]&&this._states.current[a]>0},e.prototype.current=function(a){if(a===d)return this._current;if(0===this._items.length)return d;if(a=this.normalize(a),this._current!==a){var b=this.trigger("change",{property:{name:"position",value:a}});b.data!==d&&(a=this.normalize(b.data)),this._current=a,this.invalidate("position"),this.trigger("changed",{property:{name:"position",value:this._current}})}return this._current},e.prototype.invalidate=function(b){return"string"===a.type(b)&&(this._invalidated[b]=!0,this.is("valid")&&this.leave("valid")),a.map(this._invalidated,function(a,b){return b})},e.prototype.reset=function(a){(a=this.normalize(a))!==d&&(this._speed=0,this._current=a,this.suppress(["translate","translated"]),this.animate(this.coordinates(a)),this.release(["translate","translated"]))},e.prototype.normalize=function(a,b){var c=this._items.length,e=b?0:this._clones.length;return!this.isNumeric(a)||c<1?a=d:(a<0||a>=c+e)&&(a=((a-e/2)%c+c)%c+e/2),a},e.prototype.relative=function(a){return a-=this._clones.length/2,this.normalize(a,!0)},e.prototype.maximum=function(a){var b,c,d,e=this.settings,f=this._coordinates.length;if(e.loop)f=this._clones.length/2+this._items.length-1;else if(e.autoWidth||e.merge){if(b=this._items.length)for(c=this._items[--b].width(),d=this.$element.width();b--&&!((c+=this._items[b].width()+this.settings.margin)>d););f=b+1}else f=e.center?this._items.length-1:this._items.length-e.items;return a&&(f-=this._clones.length/2),Math.max(f,0)},e.prototype.minimum=function(a){return a?0:this._clones.length/2},e.prototype.items=function(a){return a===d?this._items.slice():(a=this.normalize(a,!0),this._items[a])},e.prototype.mergers=function(a){return a===d?this._mergers.slice():(a=this.normalize(a,!0),this._mergers[a])},e.prototype.clones=function(b){var c=this._clones.length/2,e=c+this._items.length,f=function(a){return a%2==0?e+a/2:c-(a+1)/2};return b===d?a.map(this._clones,function(a,b){return f(b)}):a.map(this._clones,function(a,c){return a===b?f(c):null})},e.prototype.speed=function(a){return a!==d&&(this._speed=a),this._speed},e.prototype.coordinates=function(b){var c,e=1,f=b-1;return b===d?a.map(this._coordinates,a.proxy(function(a,b){return this.coordinates(b)},this)):(this.settings.center?(this.settings.rtl&&(e=-1,f=b+1),c=this._coordinates[b],c+=(this.width()-c+(this._coordinates[f]||0))/2*e):c=this._coordinates[f]||0,c=Math.ceil(c))},e.prototype.duration=function(a,b,c){return 0===c?0:Math.min(Math.max(Math.abs(b-a),1),6)*Math.abs(c||this.settings.smartSpeed)},e.prototype.to=function(a,b){var c=this.current(),d=null,e=a-this.relative(c),f=(e>0)-(e<0),g=this._items.length,h=this.minimum(),i=this.maximum();this.settings.loop?(!this.settings.rewind&&Math.abs(e)>g/2&&(e+=-1*f*g),a=c+e,(d=((a-h)%g+g)%g+h)!==a&&d-e<=i&&d-e>0&&(c=d-e,a=d,this.reset(c))):this.settings.rewind?(i+=1,a=(a%i+i)%i):a=Math.max(h,Math.min(i,a)),this.speed(this.duration(c,a,b)),this.current(a),this.isVisible()&&this.update()},e.prototype.next=function(a){a=a||!1,this.to(this.relative(this.current())+1,a)},e.prototype.prev=function(a){a=a||!1,this.to(this.relative(this.current())-1,a)},e.prototype.onTransitionEnd=function(a){if(a!==d&&(a.stopPropagation(),(a.target||a.srcElement||a.originalTarget)!==this.$stage.get(0)))return!1;this.leave("animating"),this.trigger("translated")},e.prototype.viewport=function(){var d;return this.options.responsiveBaseElement!==b?d=a(this.options.responsiveBaseElement).width():b.innerWidth?d=b.innerWidth:c.documentElement&&c.documentElement.clientWidth?d=c.documentElement.clientWidth:console.warn("Can not detect viewport width."),d},e.prototype.replace=function(b){this.$stage.empty(),this._items=[],b&&(b=b instanceof jQuery?b:a(b)),this.settings.nestedItemSelector&&(b=b.find("."+this.settings.nestedItemSelector)),b.filter(function(){return 1===this.nodeType}).each(a.proxy(function(a,b){b=this.prepare(b),this.$stage.append(b),this._items.push(b),this._mergers.push(1*b.find("[data-merge]").addBack("[data-merge]").attr("data-merge")||1)},this)),this.reset(this.isNumeric(this.settings.startPosition)?this.settings.startPosition:0),this.invalidate("items")},e.prototype.add=function(b,c){var e=this.relative(this._current);c=c===d?this._items.length:this.normalize(c,!0),b=b instanceof jQuery?b:a(b),this.trigger("add",{content:b,position:c}),b=this.prepare(b),0===this._items.length||c===this._items.length?(0===this._items.length&&this.$stage.append(b),0!==this._items.length&&this._items[c-1].after(b),this._items.push(b),this._mergers.push(1*b.find("[data-merge]").addBack("[data-merge]").attr("data-merge")||1)):(this._items[c].before(b),this._items.splice(c,0,b),this._mergers.splice(c,0,1*b.find("[data-merge]").addBack("[data-merge]").attr("data-merge")||1)),this._items[e]&&this.reset(this._items[e].index()),this.invalidate("items"),this.trigger("added",{content:b,position:c})},e.prototype.remove=function(a){(a=this.normalize(a,!0))!==d&&(this.trigger("remove",{content:this._items[a],position:a}),this._items[a].remove(),this._items.splice(a,1),this._mergers.splice(a,1),this.invalidate("items"),this.trigger("removed",{content:null,position:a}))},e.prototype.preloadAutoWidthImages=function(b){b.each(a.proxy(function(b,c){this.enter("pre-loading"),c=a(c),a(new Image).one("load",a.proxy(function(a){c.attr("src",a.target.src),c.css("opacity",1),this.leave("pre-loading"),!this.is("pre-loading")&&!this.is("initializing")&&this.refresh()},this)).attr("src",c.attr("src")||c.attr("data-src")||c.attr("data-src-retina"))},this))},e.prototype.destroy=function(){this.$element.off(".owl.core"),this.$stage.off(".owl.core"),a(c).off(".owl.core"),!1!==this.settings.responsive&&(b.clearTimeout(this.resizeTimer),this.off(b,"resize",this._handlers.onThrottledResize));for(var d in this._plugins)this._plugins[d].destroy();this.$stage.children(".cloned").remove(),this.$stage.unwrap(),this.$stage.children().contents().unwrap(),this.$stage.children().unwrap(),this.$stage.remove(),this.$element.removeClass(this.options.refreshClass).removeClass(this.options.loadingClass).removeClass(this.options.loadedClass).removeClass(this.options.rtlClass).removeClass(this.options.dragClass).removeClass(this.options.grabClass).attr("class",this.$element.attr("class").replace(new RegExp(this.options.responsiveClass+"-\\S+\\s","g"),"")).removeData("owl.carousel")},e.prototype.op=function(a,b,c){var d=this.settings.rtl;switch(b){case"<":return d?a>c:a":return d?ac;case">=":return d?a<=c:a>=c;case"<=":return d?a>=c:a<=c}},e.prototype.on=function(a,b,c,d){a.addEventListener?a.addEventListener(b,c,d):a.attachEvent&&a.attachEvent("on"+b,c)},e.prototype.off=function(a,b,c,d){a.removeEventListener?a.removeEventListener(b,c,d):a.detachEvent&&a.detachEvent("on"+b,c)},e.prototype.trigger=function(b,c,d,f,g){var h={item:{count:this._items.length,index:this.current()}},i=a.camelCase(a.grep(["on",b,d],function(a){return a}).join("-").toLowerCase()),j=a.Event([b,"owl",d||"carousel"].join(".").toLowerCase(),a.extend({relatedTarget:this},h,c));return this._supress[b]||(a.each(this._plugins,function(a,b){b.onTrigger&&b.onTrigger(j)}),this.register({type:e.Type.Event,name:b}),this.$element.trigger(j),this.settings&&"function"==typeof this.settings[i]&&this.settings[i].call(this,j)),j},e.prototype.enter=function(b){a.each([b].concat(this._states.tags[b]||[]),a.proxy(function(a,b){this._states.current[b]===d&&(this._states.current[b]=0),this._states.current[b]++},this))},e.prototype.leave=function(b){a.each([b].concat(this._states.tags[b]||[]),a.proxy(function(a,b){this._states.current[b]--},this))},e.prototype.register=function(b){if(b.type===e.Type.Event){if(a.event.special[b.name]||(a.event.special[b.name]={}),!a.event.special[b.name].owl){var c=a.event.special[b.name]._default;a.event.special[b.name]._default=function(a){return!c||!c.apply||a.namespace&&-1!==a.namespace.indexOf("owl")?a.namespace&&a.namespace.indexOf("owl")>-1:c.apply(this,arguments)},a.event.special[b.name].owl=!0}}else b.type===e.Type.State&&(this._states.tags[b.name]?this._states.tags[b.name]=this._states.tags[b.name].concat(b.tags):this._states.tags[b.name]=b.tags,this._states.tags[b.name]=a.grep(this._states.tags[b.name],a.proxy(function(c,d){return a.inArray(c,this._states.tags[b.name])===d},this)))},e.prototype.suppress=function(b){a.each(b,a.proxy(function(a,b){this._supress[b]=!0},this))},e.prototype.release=function(b){a.each(b,a.proxy(function(a,b){delete this._supress[b]},this))},e.prototype.pointer=function(a){var c={x:null,y:null};return a=a.originalEvent||a||b.event,a=a.touches&&a.touches.length?a.touches[0]:a.changedTouches&&a.changedTouches.length?a.changedTouches[0]:a,a.pageX?(c.x=a.pageX,c.y=a.pageY):(c.x=a.clientX,c.y=a.clientY),c},e.prototype.isNumeric=function(a){return!isNaN(parseFloat(a))},e.prototype.difference=function(a,b){return{x:a.x-b.x,y:a.y-b.y}},a.fn.owlCarousel=function(b){var c=Array.prototype.slice.call(arguments,1);return this.each(function(){var d=a(this),f=d.data("owl.carousel");f||(f=new e(this,"object"==typeof b&&b),d.data("owl.carousel",f),a.each(["next","prev","to","destroy","refresh","replace","add","remove"],function(b,c){f.register({type:e.Type.Event,name:c}),f.$element.on(c+".owl.carousel.core",a.proxy(function(a){a.namespace&&a.relatedTarget!==this&&(this.suppress([c]),f[c].apply(this,[].slice.call(arguments,1)),this.release([c]))},f))})),"string"==typeof b&&"_"!==b.charAt(0)&&f[b].apply(f,c)})},a.fn.owlCarousel.Constructor=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._interval=null,this._visible=null,this._handlers={"initialized.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoRefresh&&this.watch()},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers)};e.Defaults={autoRefresh:!0,autoRefreshInterval:500},e.prototype.watch=function(){this._interval||(this._visible=this._core.isVisible(),this._interval=b.setInterval(a.proxy(this.refresh,this),this._core.settings.autoRefreshInterval))},e.prototype.refresh=function(){this._core.isVisible()!==this._visible&&(this._visible=!this._visible,this._core.$element.toggleClass("owl-hidden",!this._visible),this._visible&&this._core.invalidate("width")&&this._core.refresh())},e.prototype.destroy=function(){var a,c;b.clearInterval(this._interval);for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(c in Object.getOwnPropertyNames(this))"function"!=typeof this[c]&&(this[c]=null)},a.fn.owlCarousel.Constructor.Plugins.AutoRefresh=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._loaded=[],this._handlers={"initialized.owl.carousel change.owl.carousel resized.owl.carousel":a.proxy(function(b){if(b.namespace&&this._core.settings&&this._core.settings.lazyLoad&&(b.property&&"position"==b.property.name||"initialized"==b.type)){var c=this._core.settings,e=c.center&&Math.ceil(c.items/2)||c.items,f=c.center&&-1*e||0,g=(b.property&&b.property.value!==d?b.property.value:this._core.current())+f,h=this._core.clones().length,i=a.proxy(function(a,b){this.load(b)},this);for(c.lazyLoadEager>0&&(e+=c.lazyLoadEager,c.loop&&(g-=c.lazyLoadEager,e++));f++-1||(e.each(a.proxy(function(c,d){var e,f=a(d),g=b.devicePixelRatio>1&&f.attr("data-src-retina")||f.attr("data-src")||f.attr("data-srcset");this._core.trigger("load",{element:f,url:g},"lazy"),f.is("img")?f.one("load.owl.lazy",a.proxy(function(){f.css("opacity",1),this._core.trigger("loaded",{element:f,url:g},"lazy")},this)).attr("src",g):f.is("source")?f.one("load.owl.lazy",a.proxy(function(){this._core.trigger("loaded",{element:f,url:g},"lazy")},this)).attr("srcset",g):(e=new Image,e.onload=a.proxy(function(){f.css({"background-image":'url("'+g+'")',opacity:"1"}),this._core.trigger("loaded",{element:f,url:g},"lazy")},this),e.src=g)},this)),this._loaded.push(d.get(0)))},e.prototype.destroy=function(){var a,b;for(a in this.handlers)this._core.$element.off(a,this.handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.Lazy=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(c){this._core=c,this._previousHeight=null,this._handlers={"initialized.owl.carousel refreshed.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoHeight&&this.update()},this),"changed.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoHeight&&"position"===a.property.name&&this.update()},this),"loaded.owl.lazy":a.proxy(function(a){a.namespace&&this._core.settings.autoHeight&&a.element.closest("."+this._core.settings.itemClass).index()===this._core.current()&&this.update()},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers),this._intervalId=null;var d=this;a(b).on("load",function(){d._core.settings.autoHeight&&d.update()}),a(b).resize(function(){d._core.settings.autoHeight&&(null!=d._intervalId&&clearTimeout(d._intervalId),d._intervalId=setTimeout(function(){d.update()},250))})};e.Defaults={autoHeight:!1,autoHeightClass:"owl-height"},e.prototype.update=function(){var b=this._core._current,c=b+this._core.settings.items,d=this._core.settings.lazyLoad,e=this._core.$stage.children().toArray().slice(b,c),f=[],g=0;a.each(e,function(b,c){f.push(a(c).height())}),g=Math.max.apply(null,f),g<=1&&d&&this._previousHeight&&(g=this._previousHeight),this._previousHeight=g,this._core.$stage.parent().height(g).addClass(this._core.settings.autoHeightClass)},e.prototype.destroy=function(){var a,b;for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.AutoHeight=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._videos={},this._playing=null,this._handlers={"initialized.owl.carousel":a.proxy(function(a){a.namespace&&this._core.register({type:"state",name:"playing",tags:["interacting"]})},this),"resize.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.video&&this.isInFullScreen()&&a.preventDefault()},this),"refreshed.owl.carousel":a.proxy(function(a){a.namespace&&this._core.is("resizing")&&this._core.$stage.find(".cloned .owl-video-frame").remove()},this),"changed.owl.carousel":a.proxy(function(a){a.namespace&&"position"===a.property.name&&this._playing&&this.stop()},this),"prepared.owl.carousel":a.proxy(function(b){if(b.namespace){var c=a(b.content).find(".owl-video");c.length&&(c.css("display","none"),this.fetch(c,a(b.content)))}},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers),this._core.$element.on("click.owl.video",".owl-video-play-icon",a.proxy(function(a){this.play(a)},this))};e.Defaults={video:!1,videoHeight:!1,videoWidth:!1},e.prototype.fetch=function(a,b){var c=function(){return a.attr("data-vimeo-id")?"vimeo":a.attr("data-vzaar-id")?"vzaar":"youtube"}(),d=a.attr("data-vimeo-id")||a.attr("data-youtube-id")||a.attr("data-vzaar-id"),e=a.attr("data-width")||this._core.settings.videoWidth,f=a.attr("data-height")||this._core.settings.videoHeight,g=a.attr("href");if(!g)throw new Error("Missing video URL.");if(d=g.match(/(http:|https:|)\/\/(player.|www.|app.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com|be\-nocookie\.com)|vzaar\.com)\/(video\/|videos\/|embed\/|channels\/.+\/|groups\/.+\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/),d[3].indexOf("youtu")>-1)c="youtube";else if(d[3].indexOf("vimeo")>-1)c="vimeo";else{if(!(d[3].indexOf("vzaar")>-1))throw new Error("Video URL not supported.");c="vzaar"}d=d[6],this._videos[g]={type:c,id:d,width:e,height:f},b.attr("data-video",g),this.thumbnail(a,this._videos[g])},e.prototype.thumbnail=function(b,c){var d,e,f,g=c.width&&c.height?"width:"+c.width+"px;height:"+c.height+"px;":"",h=b.find("img"),i="src",j="",k=this._core.settings,l=function(c){e='
',d=k.lazyLoad?a("
",{class:"owl-video-tn "+j,srcType:c}):a("
",{class:"owl-video-tn",style:"opacity:1;background-image:url("+c+")"}),b.after(d),b.after(e)};if(b.wrap(a("
",{class:"owl-video-wrapper",style:g})),this._core.settings.lazyLoad&&(i="data-src",j="owl-lazy"),h.length)return l(h.attr(i)),h.remove(),!1;"youtube"===c.type?(f="//img.youtube.com/vi/"+c.id+"/hqdefault.jpg",l(f)):"vimeo"===c.type?a.ajax({type:"GET",url:"//vimeo.com/api/v2/video/"+c.id+".json",jsonp:"callback",dataType:"jsonp",success:function(a){f=a[0].thumbnail_large,l(f)}}):"vzaar"===c.type&&a.ajax({type:"GET",url:"//vzaar.com/api/videos/"+c.id+".json",jsonp:"callback",dataType:"jsonp",success:function(a){f=a.framegrab_url,l(f)}})},e.prototype.stop=function(){this._core.trigger("stop",null,"video"),this._playing.find(".owl-video-frame").remove(),this._playing.removeClass("owl-video-playing"),this._playing=null,this._core.leave("playing"),this._core.trigger("stopped",null,"video")},e.prototype.play=function(b){var c,d=a(b.target),e=d.closest("."+this._core.settings.itemClass),f=this._videos[e.attr("data-video")],g=f.width||"100%",h=f.height||this._core.$stage.height();this._playing||(this._core.enter("playing"),this._core.trigger("play",null,"video"),e=this._core.items(this._core.relative(e.index())),this._core.reset(e.index()),c=a(''),c.attr("height",h),c.attr("width",g),"youtube"===f.type?c.attr("src","//www.youtube.com/embed/"+f.id+"?autoplay=1&rel=0&v="+f.id):"vimeo"===f.type?c.attr("src","//player.vimeo.com/video/"+f.id+"?autoplay=1"):"vzaar"===f.type&&c.attr("src","//view.vzaar.com/"+f.id+"/player?autoplay=true"),a(c).wrap('
').insertAfter(e.find(".owl-video")),this._playing=e.addClass("owl-video-playing"))},e.prototype.isInFullScreen=function(){var b=c.fullscreenElement||c.mozFullScreenElement||c.webkitFullscreenElement;return b&&a(b).parent().hasClass("owl-video-frame")},e.prototype.destroy=function(){var a,b;this._core.$element.off("click.owl.video");for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.Video=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this.core=b,this.core.options=a.extend({},e.Defaults,this.core.options),this.swapping=!0,this.previous=d,this.next=d,this.handlers={"change.owl.carousel":a.proxy(function(a){a.namespace&&"position"==a.property.name&&(this.previous=this.core.current(),this.next=a.property.value)},this),"drag.owl.carousel dragged.owl.carousel translated.owl.carousel":a.proxy(function(a){a.namespace&&(this.swapping="translated"==a.type)},this),"translate.owl.carousel":a.proxy(function(a){a.namespace&&this.swapping&&(this.core.options.animateOut||this.core.options.animateIn)&&this.swap()},this)},this.core.$element.on(this.handlers)};e.Defaults={animateOut:!1, -animateIn:!1},e.prototype.swap=function(){if(1===this.core.settings.items&&a.support.animation&&a.support.transition){this.core.speed(0);var b,c=a.proxy(this.clear,this),d=this.core.$stage.children().eq(this.previous),e=this.core.$stage.children().eq(this.next),f=this.core.settings.animateIn,g=this.core.settings.animateOut;this.core.current()!==this.previous&&(g&&(b=this.core.coordinates(this.previous)-this.core.coordinates(this.next),d.one(a.support.animation.end,c).css({left:b+"px"}).addClass("animated owl-animated-out").addClass(g)),f&&e.one(a.support.animation.end,c).addClass("animated owl-animated-in").addClass(f))}},e.prototype.clear=function(b){a(b.target).css({left:""}).removeClass("animated owl-animated-out owl-animated-in").removeClass(this.core.settings.animateIn).removeClass(this.core.settings.animateOut),this.core.onTransitionEnd()},e.prototype.destroy=function(){var a,b;for(a in this.handlers)this.core.$element.off(a,this.handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.Animate=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._call=null,this._time=0,this._timeout=0,this._paused=!0,this._handlers={"changed.owl.carousel":a.proxy(function(a){a.namespace&&"settings"===a.property.name?this._core.settings.autoplay?this.play():this.stop():a.namespace&&"position"===a.property.name&&this._paused&&(this._time=0)},this),"initialized.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoplay&&this.play()},this),"play.owl.autoplay":a.proxy(function(a,b,c){a.namespace&&this.play(b,c)},this),"stop.owl.autoplay":a.proxy(function(a){a.namespace&&this.stop()},this),"mouseover.owl.autoplay":a.proxy(function(){this._core.settings.autoplayHoverPause&&this._core.is("rotating")&&this.pause()},this),"mouseleave.owl.autoplay":a.proxy(function(){this._core.settings.autoplayHoverPause&&this._core.is("rotating")&&this.play()},this),"touchstart.owl.core":a.proxy(function(){this._core.settings.autoplayHoverPause&&this._core.is("rotating")&&this.pause()},this),"touchend.owl.core":a.proxy(function(){this._core.settings.autoplayHoverPause&&this.play()},this)},this._core.$element.on(this._handlers),this._core.options=a.extend({},e.Defaults,this._core.options)};e.Defaults={autoplay:!1,autoplayTimeout:5e3,autoplayHoverPause:!1,autoplaySpeed:!1},e.prototype._next=function(d){this._call=b.setTimeout(a.proxy(this._next,this,d),this._timeout*(Math.round(this.read()/this._timeout)+1)-this.read()),this._core.is("interacting")||c.hidden||this._core.next(d||this._core.settings.autoplaySpeed)},e.prototype.read=function(){return(new Date).getTime()-this._time},e.prototype.play=function(c,d){var e;this._core.is("rotating")||this._core.enter("rotating"),c=c||this._core.settings.autoplayTimeout,e=Math.min(this._time%(this._timeout||c),c),this._paused?(this._time=this.read(),this._paused=!1):b.clearTimeout(this._call),this._time+=this.read()%c-e,this._timeout=c,this._call=b.setTimeout(a.proxy(this._next,this,d),c-e)},e.prototype.stop=function(){this._core.is("rotating")&&(this._time=0,this._paused=!0,b.clearTimeout(this._call),this._core.leave("rotating"))},e.prototype.pause=function(){this._core.is("rotating")&&!this._paused&&(this._time=this.read(),this._paused=!0,b.clearTimeout(this._call))},e.prototype.destroy=function(){var a,b;this.stop();for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.autoplay=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){"use strict";var e=function(b){this._core=b,this._initialized=!1,this._pages=[],this._controls={},this._templates=[],this.$element=this._core.$element,this._overrides={next:this._core.next,prev:this._core.prev,to:this._core.to},this._handlers={"prepared.owl.carousel":a.proxy(function(b){b.namespace&&this._core.settings.dotsData&&this._templates.push('
'+a(b.content).find("[data-dot]").addBack("[data-dot]").attr("data-dot")+"
")},this),"added.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.dotsData&&this._templates.splice(a.position,0,this._templates.pop())},this),"remove.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.dotsData&&this._templates.splice(a.position,1)},this),"changed.owl.carousel":a.proxy(function(a){a.namespace&&"position"==a.property.name&&this.draw()},this),"initialized.owl.carousel":a.proxy(function(a){a.namespace&&!this._initialized&&(this._core.trigger("initialize",null,"navigation"),this.initialize(),this.update(),this.draw(),this._initialized=!0,this._core.trigger("initialized",null,"navigation"))},this),"refreshed.owl.carousel":a.proxy(function(a){a.namespace&&this._initialized&&(this._core.trigger("refresh",null,"navigation"),this.update(),this.draw(),this._core.trigger("refreshed",null,"navigation"))},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this.$element.on(this._handlers)};e.Defaults={nav:!1,navText:['',''],navSpeed:!1,navElement:'button type="button" role="presentation"',navContainer:!1,navContainerClass:"owl-nav",navClass:["owl-prev","owl-next"],slideBy:1,dotClass:"owl-dot",dotsClass:"owl-dots",dots:!0,dotsEach:!1,dotsData:!1,dotsSpeed:!1,dotsContainer:!1},e.prototype.initialize=function(){var b,c=this._core.settings;this._controls.$relative=(c.navContainer?a(c.navContainer):a("
").addClass(c.navContainerClass).appendTo(this.$element)).addClass("disabled"),this._controls.$previous=a("<"+c.navElement+">").addClass(c.navClass[0]).html(c.navText[0]).prependTo(this._controls.$relative).on("click",a.proxy(function(a){this.prev(c.navSpeed)},this)),this._controls.$next=a("<"+c.navElement+">").addClass(c.navClass[1]).html(c.navText[1]).appendTo(this._controls.$relative).on("click",a.proxy(function(a){this.next(c.navSpeed)},this)),c.dotsData||(this._templates=[a('
@@ -68,7 +71,7 @@
- +
@@ -79,9 +82,8 @@
@@ -90,33 +92,30 @@
@@ -140,13 +139,15 @@
- +
diff --git a/views/admin/banner.ejs b/views/admin/banner.ejs index 703f8a04..d250db1d 100644 --- a/views/admin/banner.ejs +++ b/views/admin/banner.ejs @@ -17,18 +17,28 @@
+ <%for(i in banners){%>
-
-
- banner-img +
+
+ + banner-img
-

Topsale Collection

-

Frame Your World

- - +

Banner <%= Number(i)+1%>

+
+

<%= banners[i].subtext%>

+

<%= banners[i].mainHead%>

+ + + Change Banner +
+ <%}%> +
@@ -41,38 +51,6 @@ -