{"version":3,"file":"home.min.js","sources":["home.js"],"sourcesContent":["(function () {\r\n 'use strict';\r\n\r\n // Global Modules\r\n\r\n function HttpReq(url, contentType, input) {\r\n this.method = input ? 'POST' : 'GET';\r\n this.data = input ? input : {};\r\n this.contentType = contentType;\r\n this.url = url;\r\n }\r\n HttpReq.prototype.then = function (resolve, reject) {\r\n var req = new XMLHttpRequest();\r\n req.onreadystatechange = function () {\r\n if (req.readyState == XMLHttpRequest.DONE) {\r\n if (req.status == 200) { resolve(req.response); }\r\n else { reject(req.statusText); }\r\n }\r\n };\r\n req.open(this.method, this.url, true);\r\n req.setRequestHeader('Content-Type', this.contentType);\r\n req.send(this.data);\r\n };\r\n\r\n NodeList.prototype.addEventListener = function (type, f, uc) { this.forEach(function (x) { x.addEventListener(type, f, uc); }); };\r\n\r\n Element.prototype.setAttributes = function (attrs) {\r\n var el = this;\r\n Object.keys(attrs).forEach(function (key) {\r\n if (key === 'style' && typeof attrs[key] === 'object') {\r\n Object.keys(attrs[key]).forEach(function (prop) {\r\n el.style[prop] = attrs[key][prop];\r\n });\r\n } else if (key === 'html') el.innerHTML = attrs[key];\r\n else el.setAttribute(key, attrs[key]);\r\n });\r\n return el;\r\n };\r\n \r\n\r\n // Carousel\r\n\r\n function Carousel(config) {\r\n this.config = config;\r\n this.config.selector.style.overflow = 'hidden';\r\n this.wrapper = config.selector.querySelector('div');\r\n\r\n this.wrapper.setAttributes({ style: { position: 'relative', left: '0px', transition: 'left ' + this.config.duration + 'ms ease-out 0s' } });\r\n this.wrapper.dataset.select = 0;\r\n if (config.control) {\r\n config.selector.querySelector('.next').addEventListener('click', this.next.bind(this));\r\n config.selector.querySelector('.prev').addEventListener('click', this.prev.bind(this));\r\n }\r\n window.addEventListener('resize', this.init.bind(this), false);\r\n this.items = Array.prototype.slice.call(this.wrapper.children);\r\n this.init();\r\n }\r\n Carousel.prototype.init = function () {\r\n var perPage = 1;\r\n if (typeof this.config.perPage === 'object') {\r\n var pp = this.config.perPage;\r\n Object.keys(pp).forEach(function (viewport) {\r\n if (window.innerWidth >= viewport) { perPage = pp[viewport]; return; }\r\n });\r\n }\r\n var sw = 0;\r\n var i = 4;\r\n var widthItem = 0;\r\n while (--i >= 0 && sw !== this.config.selector.offsetWidth) {\r\n sw = this.config.selector.offsetWidth;\r\n widthItem = sw / perPage;\r\n this.items.forEach(function (widthItem,x) {\r\n x.style.float = 'right';\r\n x.style.width = widthItem + 'px';\r\n }.bind(this, widthItem));\r\n this.wrapper.style.width = widthItem * this.items.length + 'px';\r\n }\r\n this.wrapper.dataset.perPage = perPage;\r\n this.slide(0);\r\n if (this.config.oninit) this.config.oninit(this);\r\n };\r\n Carousel.prototype.slide = function (inc, e) {\r\n var sel = parseInt(this.wrapper.dataset.select) + inc;\r\n var count = this.items.length;\r\n var perpage = parseInt(this.wrapper.dataset.perPage);\r\n var maxsel = count>perpage?count - perpage:0;\r\n if (sel < 0) { sel = this.config.loop ? maxsel : 0; }\r\n if (sel > maxsel) { sel = this.config.loop ? 0 : maxsel; }\r\n var selectorWidth = this.config.selector.offsetWidth;\r\n var widthItem = selectorWidth / perpage;\r\n this.wrapper.style.left = (sel * widthItem) + 'px';\r\n if (this.config.onSlide) this.config.onSlide(sel, this);\r\n this.wrapper.dataset.select = sel;\r\n if (this.config.control) {\r\n this.config.selector.querySelector('.next').style.display = sel < maxsel ? 'block' : 'none';\r\n this.config.selector.querySelector('.prev').style.display = sel > 0 ? 'block' : 'none';\r\n }\r\n };\r\n Carousel.prototype.next = function (e) { this.slide(+1, e); };\r\n Carousel.prototype.prev = function (e) { this.slide(-1, e); };\r\n\r\n // create template\r\n function makeTemplate(products, element, tmplel) {\r\n var template = document.querySelector(tmplel);\r\n element.innerHTML = '';\r\n products.forEach(function(p){\r\n var Card = document.importNode(template.content, true);\r\n ['href', 'title', 'alt', 'src', 'textContent','className'].forEach(function (atr) {\r\n Card.querySelectorAll(\"[data-\" + atr.toLowerCase() + \"]\").forEach(function (x) {\r\n x[atr] = p[x.dataset[atr.toLowerCase()]];\r\n x.removeAttribute(\"data-\" + atr.toLowerCase());\r\n });\r\n });\r\n element.appendChild(Card);\r\n });\r\n }\r\n\r\n // choice category\r\n function ChoiceLinks(selector, api, cb) {\r\n document.querySelectorAll(selector + '>a').addEventListener('click', function () {\r\n document.querySelectorAll(selector + '>a.active').forEach(function (x) { x.classList.remove(\"active\"); });\r\n this.classList.add(\"active\");\r\n new HttpReq('/api/products/' + api + '/' + this.dataset.itemid, 'text/html; charset=utf-8').then(\r\n function (res) {\r\n cb(JSON.parse(res));\r\n }, function (status) {\r\n console.log({ status: 'خطا', erroeText: status });\r\n });\r\n });\r\n }\r\n\r\n\r\n // main\r\n\r\n window.addEventListener('DOMContentLoaded', function () {\r\n var slider_el = document.querySelector('#slider');\r\n var slider = new Carousel({\r\n selector: slider_el, loop: true, duration: 1000\r\n //,\r\n //onSlide: function (next, slider) {\r\n // var curr = parseInt(slider.wrapper.dataset.select);\r\n // var tran = slider.config.selector.querySelector('#slider-transition');\r\n // if (next !== curr && next !== 0) {\r\n // var nextel = slider.items[next];\r\n // tran.querySelector('img').src = nextel.querySelector('img').src;\r\n // tran.classList.add('active');\r\n // setTimeout(function () { tran.classList.remove('active'); }, 1000);\r\n // nextel.querySelectorAll('.b-animation').forEach(function (x) {\r\n // x.classList.add('activeB');\r\n // setTimeout(function () { x.classList.remove('activeB'); }, 1000);\r\n // });\r\n // }\r\n //}\r\n });\r\n setInterval(slider.next.bind(slider), slider_el.dataset.delay);\r\n\r\n var productsSlider =new Carousel({ selector: document.querySelector('#carousel'), duration: 300, control: true, perPage: { 0: 2, 576: 3, 768: 4, 992: 5 } });\r\n ChoiceLinks('#categoryLinks', 'category', function (res) {\r\n makeTemplate(res, productsSlider.wrapper, '#products-template');\r\n productsSlider.wrapper.left = '0px';\r\n productsSlider.wrapper.dataset.select = 0;\r\n productsSlider.items = Array.prototype.slice.call(productsSlider.wrapper.children);\r\n productsSlider.init();\r\n });\r\n\r\n ChoiceLinks('#tagLinks', 'tags', function (res) {\r\n makeTemplate(res, document.querySelector('#tagpro'), '#products-tags-template');\r\n });\r\n\r\n\r\n new Carousel({\r\n selector: document.querySelector('#Brands'),\r\n duration: 300,control: true,\r\n perPage: { 0: 2, 576: 3, 768: 4, 992: 5 },\r\n oninit: function (slider) {\r\n var maxHeight = slider.items.reduce(function (a, x) { return Math.max(x.offsetHeight, a); }, 0);\r\n slider.items.forEach(function (x) { x.style.minHeight = maxHeight + 'px'; });\r\n }\r\n });\r\n\r\n\r\n }, false);\r\n}());\r\n"],"names":["HttpReq","url","contentType","input","this","method","data","Carousel","config","selector","style","overflow","wrapper","querySelector","setAttributes","position","left","transition","duration","dataset","select","control","addEventListener","next","bind","prev","window","init","items","Array","prototype","slice","call","children","makeTemplate","products","element","tmplel","template","document","innerHTML","forEach","p","Card","importNode","content","atr","querySelectorAll","toLowerCase","x","removeAttribute","appendChild","ChoiceLinks","api","cb","classList","remove","add","itemid","then","res","JSON","parse","status","console","log","erroeText","resolve","reject","req","XMLHttpRequest","onreadystatechange","readyState","DONE","response","statusText","open","setRequestHeader","send","NodeList","type","f","uc","Element","attrs","el","Object","keys","key","prop","setAttribute","pp","perPage","viewport","innerWidth","widthItem","sw","i","offsetWidth","float","width","length","slide","oninit","inc","e","sel","parseInt","count","perpage","maxsel","loop","onSlide","display","slider_el","slider","setInterval","delay","productsSlider","0","576","768","992","maxHeight","reduce","a","Math","max","offsetHeight","minHeight"],"mappings":"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"}