{"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","widthItem","perPage","sw","viewport","innerWidth","i","offsetWidth","float","width","length","slide","oninit","inc","e","sel","parseInt","count","perpage","maxsel","selectorWidth","loop","onSlide","display","slider_el","slider","productsSlider","setInterval","delay","0","576","768","992","maxHeight","reduce","a","Math","max","offsetHeight","minHeight"],"mappings":"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"}