{"version":3,"file":"docs\\js\\total-look.js","sources":["../../src/app/total-look/emitter/emitter.js","../../src/app/total-look/component/component.js","../../src/app/total-look/drag/drag.listener.js","../../src/app/total-look/total-look/total-look-card.component.js","../../src/app/total-look/total-look/total-look-pin.component.js","../../src/app/total-look/total-look/total-look.component.js","../../src/app/total-look/main.js"],"sourcesContent":["export default class Emitter {\r\n\r\n\tconstructor(options = {}) {\r\n\t\tObject.assign(this, options);\r\n\t\tthis.events = {};\r\n\t}\r\n\r\n\ton(type, callback) {\r\n\t\tconst event = (this.events[type] = this.events[type] || []);\r\n\t\tevent.push(callback);\r\n\t\treturn () => {\r\n\t\t\tthis.events[type] = event.filter(x => x !== callback);\r\n\t\t};\r\n\t}\r\n\r\n\toff(type, callback) {\r\n\t\tconst event = this.events[type];\r\n\t\tif (event) {\r\n\t\t\tthis.events[type] = event.filter(x => x !== callback);\r\n\t\t}\r\n\t}\r\n\r\n\temit(type, data) {\r\n\t\tconst event = this.events[type];\r\n\t\tif (event) {\r\n\t\t\tevent.forEach(callback => {\r\n\t\t\t\t// callback.call(this, data);\r\n\t\t\t\tcallback(data);\r\n\t\t\t});\r\n\t\t}\r\n\t\tconst broadcast = this.events.broadcast;\r\n\t\tif (broadcast) {\r\n\t\t\tbroadcast.forEach(callback => {\r\n\t\t\t\tcallback(type, data);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n}\r\n","import Emitter from \"../emitter/emitter\";\r\n\r\nexport default class Component extends Emitter {\r\n\r\n\tgetNode() {\r\n\t\tif (typeof this.render === 'function') {\r\n\t\t\tconst template = this.render();\r\n\t\t\tif (!template) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tconst div = document.createElement(\"div\");\r\n\t\t\tdiv.innerHTML = template;\r\n\t\t\tconst node = div.firstElementChild;\r\n\t\t\treturn node;\r\n\t\t}\r\n\t}\r\n\r\n\tsetNode(node) {\r\n\t\tconst template = this.getNode();\r\n\t\tif (template) {\r\n\t\t\tnode.parentNode.replaceChild(template, node);\r\n\t\t\tnode = template;\r\n\t\t}\r\n\t\tthis.node = node;\r\n\t\tif (typeof this.onInit === 'function') {\r\n\t\t\tthis.onInit(this.node);\r\n\t\t}\r\n\t\treturn this;\r\n\t}\r\n\r\n\tsetParentNode(node) {\r\n\t\tconst template = this.getNode();\r\n\t\tif (template) {\r\n\t\t\tnode.appendChild(template);\r\n\t\t}\r\n\t\tthis.node = template;\r\n\t\tif (typeof this.onInit === 'function') {\r\n\t\t\tthis.onInit(this.node);\r\n\t\t}\r\n\t\treturn this;\r\n\t}\r\n\r\n\tdestroy() {\r\n\t\tif (typeof this.onDestroy === 'function') {\r\n\t\t\tthis.onDestroy(this.node);\r\n\t\t}\r\n\t}\r\n\r\n\t/*\r\n\trender() {\r\n\t\treturn `
\r\n\t\t\tI'm an ES6 component!\r\n\t\t
`;\r\n\t}\r\n\t*/\r\n}\r\n","export default class DragListener {\r\n\r\n\tget passive() {\r\n\t\tif (this.passive_ !== undefined) {\r\n\t\t\treturn this.passive_;\r\n\t\t} else {\r\n\t\t\tthis.passive_ = false;\r\n\t\t\ttry {\r\n\t\t\t\tconst options = Object.defineProperty({}, 'passive', {\r\n\t\t\t\t\tget: () => {\r\n\t\t\t\t\t\tthis.passive_ = !0;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\twindow.addEventListener('test', null, options);\r\n\t\t\t} catch (err) {\r\n\r\n\t\t\t}\r\n\t\t\treturn this.passive_;\r\n\t\t}\r\n\t}\r\n\r\n\tget options() {\r\n\t\tif (this.passive) {\r\n\t\t\treturn {\r\n\t\t\t\tpassive: false,\r\n\t\t\t\tcapture: true\r\n\t\t\t};\r\n\t\t} else {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\tconstructor(currentTarget, downCallback, moveCallback, upCallback) {\r\n\t\tthis.currentTarget = currentTarget || document;\r\n\t\tthis.downCallback = downCallback || function(e) {\r\n\t\t\tconsole.log('DragListener.downCallback not setted', e);\r\n\t\t};\r\n\t\tthis.moveCallback = moveCallback || function(e) {\r\n\t\t\tconsole.log('DragListener.moveCallback not setted', e);\r\n\t\t};\r\n\t\tthis.upCallback = upCallback || function(e) {\r\n\t\t\tconsole.log('DragListener.upCallback not setted', e);\r\n\t\t};\r\n\t\tthis.dragging = false;\r\n\t\tthis.onMouseDown = this.onMouseDown.bind(this);\r\n\t\tthis.onMouseMove = this.onMouseMove.bind(this);\r\n\t\tthis.onMouseUp = this.onMouseUp.bind(this);\r\n\t\tthis.onTouchStart = this.onTouchStart.bind(this);\r\n\t\tthis.onTouchMove = this.onTouchMove.bind(this);\r\n\t\tthis.onTouchEnd = this.onTouchEnd.bind(this);\r\n\t\tthis.addListeners();\r\n\t}\r\n\r\n\taddListeners() {\r\n\t\tthis.currentTarget.addEventListener('touchstart', this.onTouchStart, this.options);\r\n\t\tthis.currentTarget.addEventListener('mousedown', this.onMouseDown, this.options);\r\n\t}\r\n\r\n\tdestroy() {\r\n\t\tthis.currentTarget.removeEventListener('touchstart', this.onTouchStart);\r\n\t\tthis.currentTarget.removeEventListener('mousedown', this.onMouseDown);\r\n\t\tthis.removeMouseListeners();\r\n\t\tthis.removeTouchListeners();\r\n\t}\r\n\r\n\tonDown(down) {\r\n\t\tthis.down = down;\r\n\t\tthis.strength = {\r\n\t\t\tx: 0,\r\n\t\t\ty: 0\r\n\t\t};\r\n\t\tthis.distance = this.distance || {\r\n\t\t\tx: 0,\r\n\t\t\ty: 0\r\n\t\t};\r\n\t\tthis.speed = {\r\n\t\t\tx: 0,\r\n\t\t\ty: 0\r\n\t\t};\r\n\t\tthis.downCallback(this);\r\n\t}\r\n\r\n\tonDrag(position) {\r\n\t\tthis.dragging = position && this.down !== undefined;\r\n\t\tif (this.dragging) {\r\n\t\t\tconst currentTarget = this.currentTarget;\r\n\t\t\tconst distance = {\r\n\t\t\t\tx: position.x - this.down.x,\r\n\t\t\t\ty: position.y - this.down.y\r\n\t\t\t};\r\n\t\t\tconst strength = {\r\n\t\t\t\tx: distance.x / window.innerWidth * 2,\r\n\t\t\t\ty: distance.y / window.innerHeight * 2\r\n\t\t\t};\r\n\t\t\tconst speed = {\r\n\t\t\t\tx: this.speed.x + (strength.x - this.strength.x) * 0.1,\r\n\t\t\t\ty: this.speed.y + (strength.y - this.strength.y) * 0.1\r\n\t\t\t};\r\n\t\t\tthis.position = position;\r\n\t\t\tthis.distance = distance;\r\n\t\t\tthis.strength = strength;\r\n\t\t\tthis.speed = speed;\r\n\t\t\tthis.moveCallback({\r\n\t\t\t\tposition: position,\r\n\t\t\t\tdistance: distance,\r\n\t\t\t\tstrength: strength,\r\n\t\t\t\tspeed: speed,\r\n\t\t\t\tcurrentTarget: currentTarget,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tonUp() {\r\n\t\tthis.down = undefined;\r\n\t\tthis.dragging = false;\r\n\t\tthis.upCallback(this);\r\n\t}\r\n\r\n\tonMouseDown(e) {\r\n\t\tthis.originalEvent = e;\r\n\t\tthis.target = e.target;\r\n\t\tthis.currentTarget.removeEventListener('touchstart', this.onTouchStart);\r\n\t\tthis.onDown({\r\n\t\t\tx: e.clientX,\r\n\t\t\ty: e.clientY\r\n\t\t});\r\n\t\tthis.addMouseListeners();\r\n\t}\r\n\r\n\tonMouseMove(e) {\r\n\t\tthis.originalEvent = e;\r\n\t\tthis.target = e.target;\r\n\t\tthis.onDrag({\r\n\t\t\tx: e.clientX,\r\n\t\t\ty: e.clientY\r\n\t\t});\r\n\t}\r\n\r\n\tonMouseUp(e) {\r\n\t\tthis.originalEvent = e;\r\n\t\tthis.target = e.target;\r\n\t\tthis.removeMouseListeners();\r\n\t\t/*\r\n\t\tthis.onDrag({\r\n\t\t\tx: e.clientX,\r\n\t\t\ty: e.clientY\r\n\t\t});\r\n\t\t*/\r\n\t\tthis.onUp();\r\n\t}\r\n\r\n\tonTouchStart(e) {\r\n\t\tthis.originalEvent = e;\r\n\t\tthis.target = e.target;\r\n\t\tthis.currentTarget.removeEventListener('mousedown', this.onMouseDown);\r\n\t\tif (e.touches.length > 0) {\r\n\t\t\t// e.preventDefault();\r\n\t\t\tthis.onDown({\r\n\t\t\t\tx: e.touches[0].pageX,\r\n\t\t\t\ty: e.touches[0].pageY\r\n\t\t\t});\r\n\t\t\tthis.addTouchListeners();\r\n\t\t}\r\n\t}\r\n\r\n\tonTouchMove(e) {\r\n\t\tthis.originalEvent = e;\r\n\t\tthis.target = e.target;\r\n\t\tif (e.touches.length > 0) {\r\n\t\t\t// e.preventDefault();\r\n\t\t\tthis.onDrag({\r\n\t\t\t\tx: e.touches[0].pageX,\r\n\t\t\t\ty: e.touches[0].pageY\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tonTouchEnd(e) {\r\n\t\tthis.originalEvent = e;\r\n\t\tthis.target = e.target;\r\n\t\tthis.removeTouchListeners();\r\n\t\tthis.onDrag(this.position);\r\n\t\tthis.onUp();\r\n\t}\r\n\r\n\taddMouseListeners() {\r\n\t\tdocument.addEventListener('mousemove', this.onMouseMove, this.options);\r\n\t\tdocument.addEventListener('mouseup', this.onMouseUp, this.options);\r\n\t}\r\n\r\n\taddTouchListeners() {\r\n\t\tdocument.addEventListener('touchend', this.onTouchEnd, this.options);\r\n\t\tdocument.addEventListener('touchmove', this.onTouchMove, this.options);\r\n\t}\r\n\r\n\tremoveMouseListeners() {\r\n\t\tdocument.removeEventListener('mousemove', this.onMouseMove);\r\n\t\tdocument.removeEventListener('mouseup', this.onMouseUp);\r\n\t}\r\n\r\n\tremoveTouchListeners() {\r\n\t\tdocument.removeEventListener('touchend', this.onTouchEnd);\r\n\t\tdocument.removeEventListener('touchmove', this.onTouchMove);\r\n\t}\r\n\r\n}\r\n","import Component from \"../component/component\";\r\n\r\nexport default class TotalLookCardComponent extends Component {\r\n\r\n\tonInit(node) {\r\n\t\tthis.item = node.hasAttribute('data-item') ? new Function(`return ${node.getAttribute('data-item')}`)() : {};\r\n\t\tthis.item.info = node.querySelector('.group--info').innerHTML;\r\n\t\tthis.item.img = node.querySelector('.picture').innerHTML;\r\n\t\tthis.buy = node.querySelector('.btn--buy');\r\n\t\tthis.addListeners();\r\n\t}\r\n\r\n\tonDestroy() {\r\n\t\tthis.removeListeners();\r\n\t}\r\n\r\n\tonResize() {\r\n\t\t// console.log('TotalLookCardComponent.onResize');\r\n\t}\r\n\r\n\tonClick(event) {\r\n\t\tif (window.innerWidth >= 1024 && !window.isTotemEnv) {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tconsole.log('TotalLookCardComponent.onClick');\r\n\t\t\tthis.emit('click');\r\n\t\t}\r\n\t}\r\n\r\n\tonBuyClick() {\r\n\t\t// console.log('TotalLookCardComponent.onBuyClick');\r\n\t\twindow.location.href = this.node.getAttribute('href');\r\n\t}\r\n\r\n\taddListeners() {\r\n\t\t// this.onResize = this.onResize.bind(this);\r\n\t\tthis.onClick = this.onClick.bind(this);\r\n\t\tthis.onBuyClick = this.onBuyClick.bind(this);\r\n\t\t// window.addEventListener('resize', this.onResize);\r\n\t\tthis.node.addEventListener('click', this.onClick);\r\n\t\tthis.buy.addEventListener('click', this.onBuyClick);\r\n\t}\r\n\r\n\tremoveListeners() {\r\n\t\t// window.removeEventListener('resize', this.onResize);\r\n\t\tthis.node.removeEventListener('click', this.onClick);\r\n\t\tthis.buy.removeEventListener('click', this.onBuyClick);\r\n\t}\r\n\r\n\tupdate() {\r\n\t\tif (this.item.active) {\r\n\t\t\tthis.node.classList.add('active');\r\n\t\t} else {\r\n\t\t\tthis.node.classList.remove('active');\r\n\t\t}\r\n\t}\r\n\r\n}\r\n","import Component from \"../component/component\";\r\n\r\nexport default class TotalLookPinComponent extends Component {\r\n\r\n\tconstructor(item) {\r\n\t\tsuper();\r\n\t\tthis.item = item;\r\n\t}\r\n\r\n\tonInit(node) {\r\n\t\tthis.info = this.node.querySelector('.info');\r\n\t\tthis.content = this.node.querySelector('.content');\r\n\t\tthis.arrow = this.node.querySelector('.arrow');\r\n\t\tthis.buy = this.node.querySelector('.btn--buy');\r\n\t\tthis.addListeners();\r\n\t\t// console.log('TotalLookPinComponent.onInit', this.buy);\r\n\t}\r\n\r\n\tonDestroy() {\r\n\t\tthis.removeListeners();\r\n\t}\r\n\r\n\tonResize() {\r\n\t\t// console.log('TotalLookPinComponent.onResize');\r\n\t\tthis.emit('click');\r\n\t}\r\n\r\n\tonBuyClick() {\r\n\t\t// console.log('TotalLookPinComponent.onBuyClick');\r\n\t\twindow.location.href = this.buy.getAttribute('href');\r\n\t}\r\n\r\n\tonClick() {\r\n\t\t// console.log('TotalLookPinComponent.onClick');\r\n\t\tthis.emit('click');\r\n\t}\r\n\r\n\taddListeners() {\r\n\t\t// this.onResize = this.onResize.bind(this);\r\n\t\tthis.onBuyClick = this.onBuyClick.bind(this);\r\n\t\tthis.onClick = this.onClick.bind(this);\r\n\t\t// window.addEventListener('resize', this.onResize);\r\n\t\tif (this.buy) {\r\n\t\t\tthis.buy.addEventListener('touchstart', this.onBuyClick);\r\n\t\t\tthis.buy.addEventListener('mousedown', this.onBuyClick);\r\n\t\t}\r\n\t\tthis.node.addEventListener('click', this.onClick);\r\n\t}\r\n\r\n\tremoveListeners() {\r\n\t\t// window.removeEventListener('resize', this.onResize);\r\n\t\tif (this.buy) {\r\n\t\t\tthis.buy.removeEventListener('touchstart', this.onBuyClick);\r\n\t\t\tthis.buy.removeEventListener('mousedown', this.onBuyClick);\r\n\t\t}\r\n\t\tthis.node.removeEventListener('click', this.onClick);\r\n\t}\r\n\r\n\trender() {\r\n\t\treturn /* html */ `
\r\n\t\t\t
\r\n\t\t\t\t
${this.item.info}
${this.item.img}
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
`;\r\n\t}\r\n\r\n\tupdate() {\r\n\t\tif (this.item.active) {\r\n\t\t\tthis.node.classList.add('active', 'active-info');\r\n\t\t} else {\r\n\t\t\tthis.node.classList.remove('active', 'active-info');\r\n\t\t}\r\n\t}\r\n\r\n}\r\n","import Component from \"../component/component\";\r\nimport DragListener from \"../drag/drag.listener\";\r\nimport TotalLookCardComponent from \"./total-look-card.component\";\r\nimport TotalLookPinComponent from \"./total-look-pin.component\";\r\n\r\nlet to;\r\n\r\nexport default class TotalLookComponent extends Component {\r\n\r\n\tonInit(node) {\r\n\t\t// console.log('TotalLookComponent', node);\r\n\t\tthis.groupLook = node.querySelector('.group--look');\r\n\t\tthis.picture = node.querySelector('.group--look .picture');\r\n\t\tthis.listing = node.querySelector('.listing--products');\r\n\t\tthis.listingInner = node.querySelector('.listing--products__inner');\r\n\t\tthis.cards = Array.prototype.slice.call(node.querySelectorAll('.card--product')).map(x => new TotalLookCardComponent().setNode(x));\r\n\t\tthis.pins = this.cards.map(x => new TotalLookPinComponent(x.item).setParentNode(this.picture));\r\n\t\tthis.more = node.querySelector('.btn--more');\r\n\t\tthis.close = node.querySelector('.btn--close');\r\n\t\tthis.addListeners();\r\n\t}\r\n\r\n\tonDestroy() {\r\n\t\tthis.removeListeners();\r\n\t}\r\n\r\n\tonImage(img) {\r\n\t\tthis.img = img;\r\n\t\tthis.node.classList.add('init');\r\n\t\tthis.addDragListener();\r\n\t\tif (this.cards.length && window.innerWidth >= 1024) {\r\n\t\t\tthis.setActive(this.cards[0].item, true);\r\n\t\t} else {\r\n\t\t\tthis.onResize(true);\r\n\t\t}\r\n\t}\r\n\r\n\tset direction(direction) {\r\n\t\tif (this.direction_ !== direction) {\r\n\t\t\tthis.direction_ = direction;\r\n\t\t\tif (direction === 'vertical') {\r\n\t\t\t\tthis.node.classList.add('vertical');\r\n\t\t\t\tthis.node.classList.remove('horizontal');\r\n\t\t\t} else {\r\n\t\t\t\tthis.node.classList.add('horizontal');\r\n\t\t\t\tthis.node.classList.remove('vertical');\r\n\t\t\t}\r\n\t\t\tthis.node.classList.add('show-hint');\r\n\t\t}\r\n\t}\r\n\r\n\tloadImage() {\r\n\t\tconst img = this.node.querySelector('.group--look img');\r\n\t\tconst loader = new Image();\r\n\t\tloader.onload = () => {\r\n\t\t\tthis.onImage(img);\r\n\t\t};\r\n\t\tloader.src = img.src;\r\n\t}\r\n\r\n\tsetActive(item, immediate = false) {\r\n\t\tthis.cards.forEach(x => {\r\n\t\t\tx.item !== item ? x.item.active = false : x.item.active = true;\r\n\t\t\tx.update();\r\n\t\t});\r\n\t\tthis.pins.forEach(x => x.update());\r\n\t\tthis.onResize(immediate);\r\n\t}\r\n\r\n\tonResize(event) {\r\n\t\tthis.windowWidth = window.innerWidth;\r\n\t\tconst img = this.img;\r\n\t\tif (!img) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst groupLook = this.groupLook;\r\n\t\tconst picture = this.picture;\r\n\t\tconst containerWidth = groupLook.offsetWidth;\r\n\t\tconst containerHeight = groupLook.offsetHeight;\r\n\t\tconst containerRatio = containerWidth / containerHeight;\r\n\t\tconst imgRatio = img.naturalWidth / img.naturalHeight;\r\n\t\tlet imageWidth, imageHeight;\r\n\t\tif (containerRatio > imgRatio) {\r\n\t\t\timageWidth = groupLook.offsetWidth;\r\n\t\t\timageHeight = (groupLook.offsetWidth / imgRatio);\r\n\t\t\tthis.direction = 'vertical';\r\n\t\t} else {\r\n\t\t\timageWidth = (groupLook.offsetHeight * imgRatio);\r\n\t\t\timageHeight = groupLook.offsetHeight;\r\n\t\t\tthis.direction = 'horizontal';\r\n\t\t}\r\n\t\tpicture.style.width = `${imageWidth}px`;\r\n\t\tpicture.style.height = `${imageHeight}px`;\r\n\t\tthis.containerWidth = containerWidth;\r\n\t\tthis.containerHeight = containerHeight;\r\n\t\tthis.imageWidth = imageWidth;\r\n\t\tthis.imageHeight = imageHeight;\r\n\t\tthis.cards.forEach((card, i) => {\r\n\t\t\tconst listingInnerWidth = Math.ceil(card.node.getBoundingClientRect().width) * Math.ceil(this.cards.length / 2);\r\n\t\t\tif (i === 0) {\r\n\t\t\t\tif (this.windowWidth < 1024) {\r\n\t\t\t\t\tthis.listingInner.style.minWidth = `100%`;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.listingInner.style.minWidth = `${listingInnerWidth}px`;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (card.item.active) {\r\n\t\t\t\tconst dx = containerWidth - listingInnerWidth;\r\n\t\t\t\tconst translation = this.getTranslate(this.listingInner);\r\n\t\t\t\tlet x = (this.listing.getBoundingClientRect().left - card.node.getBoundingClientRect().left) + translation.x;\r\n\t\t\t\tx = Math.min(0, Math.max(dx, x));\r\n\t\t\t\t(event ? gsap.set : gsap.to)(this.listingInner, {\r\n\t\t\t\t\tx: x,\r\n\t\t\t\t\tduration: 0.3,\r\n\t\t\t\t\tdelay: 0.1,\r\n\t\t\t\t\toverwrite: true,\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\tthis.listingInnerWidth = listingInnerWidth;\r\n\t\t});\r\n\t\tconst pinPosition = {\r\n\t\t\tx: 0,\r\n\t\t\ty: 0\r\n\t\t};\r\n\t\tthis.pins.forEach(pin => {\r\n\t\t\tconst pinX = imageWidth / img.naturalWidth * pin.item.position.x;\r\n\t\t\tconst pinY = imageWidth / img.naturalWidth * pin.item.position.y;\r\n\t\t\tpin.item.pinX = pinX;\r\n\t\t\tpin.item.pinY = pinY;\r\n\r\n\t\t\tif (window.isTotemEnv) {\r\n\t\t\t\tpin.node.style.top = (pin.item.position.y / img.naturalHeight) * 100 + '%';\r\n\t\t\t\tpin.node.style.left = (pin.item.position.x / img.naturalWidth) * 100 + '%';\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tgsap.set(pin.node, {\r\n\t\t\t\t\tx: pinX,\r\n\t\t\t\t\ty: pinY,\r\n\t\t\t\t});\r\n\t\t\t\t// fix baloon position x\r\n\t\t\t\tif (pinX < 110) {\r\n\t\t\t\t\tgsap.set(pin.content, {\r\n\t\t\t\t\t\tx: Math.max(0, 110 - pinX),\r\n\t\t\t\t\t});\r\n\t\t\t\t} else if (pinX > imageWidth - 110) {\r\n\t\t\t\t\tgsap.set(pin.content, {\r\n\t\t\t\t\t\tx: Math.min(0, imageWidth - 110 + pinX),\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (pin.item.active) {\r\n\t\t\t\tpinPosition.x = pinX;\r\n\t\t\t\tpinPosition.y = pinY;\r\n\t\t\t}\r\n\t\t});\r\n\t\tconst dx = containerWidth - imageWidth;\r\n\t\tconst dy = containerHeight - imageHeight;\r\n\t\tlet x = containerWidth / 2 - pinPosition.x;\r\n\t\tlet y = containerHeight / 2 - pinPosition.y;\r\n\t\tif (event) {\r\n\t\t\tgsap.set(this.picture, {\r\n\t\t\t\tx: Math.min(0, Math.max(dx, x)),\r\n\t\t\t\ty: Math.min(0, Math.max(dy, y)),\r\n\t\t\t});\r\n\t\t\tthis.onPictureUpdate();\r\n\t\t} else {\r\n\t\t\tgsap.to(this.picture, {\r\n\t\t\t\tx: Math.min(0, Math.max(dx, x)),\r\n\t\t\t\ty: Math.min(0, Math.max(dy, y)),\r\n\t\t\t\tduration: 0.3,\r\n\t\t\t\toverwrite: true,\r\n\t\t\t\tonUpdate: this.onPictureUpdate,\r\n\t\t\t\tcallbackScope: this,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tonPictureUpdate() {\r\n\t\tif (this.windowWidth < 1024) {\r\n\t\t\tconst pin = this.pins.find(x => x.item.active);\r\n\t\t\tif (pin) {\r\n\t\t\t\tconsole.log(pin, pin.item.pinX);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tonWheel(event) {\r\n\t\t// console.log(event.deltaY);\r\n\t\tevent.preventDefault();\r\n\t\tconst dx = this.containerWidth - this.listingInnerWidth;\r\n\t\tconst translation = this.getTranslate(this.listingInner);\r\n\t\tlet x = translation.x - event.deltaY;\r\n\t\tx = Math.min(0, Math.max(dx, x));\r\n\t\tgsap.to(this.listingInner, {\r\n\t\t\tx: x,\r\n\t\t\tduration: 0.3,\r\n\t\t\toverwrite: true,\r\n\t\t});\r\n\t}\r\n\r\n\tonDelayedResize() {\r\n\t\tgsap.set(this.listingInner, {\r\n\t\t\tx: 0,\r\n\t\t});\r\n\t\tto ? clearTimeout(to) : null;\r\n\t\tto = setTimeout(this.onResize, 5);\r\n\t}\r\n\r\n\tonOpenPanel() {\r\n\t\tthis.listing.classList.add('opened');\r\n\t}\r\n\r\n\tonClosePanel() {\r\n\t\tthis.listing.classList.remove('opened');\r\n\t}\r\n\r\n\taddListeners() {\r\n\t\tthis.loadImage();\r\n\t\tthis.onResize = this.onResize.bind(this);\r\n\t\tthis.onDelayedResize = this.onDelayedResize.bind(this);\r\n\t\tthis.onWheel = this.onWheel.bind(this);\r\n\t\tthis.onOpenPanel = this.onOpenPanel.bind(this);\r\n\t\tthis.onClosePanel = this.onClosePanel.bind(this);\r\n\t\twindow.addEventListener('resize', this.onDelayedResize);\r\n\t\tthis.listing.addEventListener('mousewheel', this.onWheel);\r\n\t\tthis.more.addEventListener('click', this.onOpenPanel);\r\n\t\tthis.close.addEventListener('click', this.onClosePanel);\r\n\t\tthis.cards.forEach(x => {\r\n\t\t\tx.on('click', () => {\r\n\t\t\t\t// console.log('TotalLookComponent.card.click', x.item);\r\n\t\t\t\tthis.setActive(x.item);\r\n\t\t\t\tthis.node.classList.remove('open');\r\n\t\t\t\tthis.node.classList.remove('show-hint');\r\n\t\t\t});\r\n\t\t});\r\n\t\tthis.pins.forEach(x => {\r\n\t\t\tx.on('click', () => {\r\n\t\t\t\t// console.log('TotalLookComponent.pin.click', x.item);\r\n\t\t\t\tthis.setActive(x.item);\r\n\t\t\t\tthis.node.classList.add('open');\r\n\t\t\t\tthis.node.classList.remove('show-hint');\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tremoveListeners() {\r\n\t\tthis.removeDragListener();\r\n\t\twindow.removeEventListener('resize', this.onResize);\r\n\t\tthis.listing.removeEventListener('mousewheel', this.onWheel);\r\n\t\tthis.more.removeEventListener('click', this.onOpenPanel);\r\n\t\tthis.close.removeEventListener('click', this.onClosePanel);\r\n\t}\r\n\r\n\taddDragListener() {\r\n\t\tconst picture = this.picture;\r\n\t\tlet translation = {\r\n\t\t\tx: 0,\r\n\t\t\ty: 0\r\n\t\t};\r\n\t\tthis.draglistener = new DragListener(this.groupLook, (e) => {\r\n\t\t\ttranslation = this.getTranslate(picture);\r\n\t\t\tthis.node.classList.remove('open');\r\n\t\t\tthis.node.classList.remove('show-hint');\r\n\t\t\tthis.node.classList.add('grabbing');\r\n\t\t\tthis.pins.forEach(x => x.node.classList.remove('active-info'));\r\n\t\t}, (e) => {\r\n\t\t\tconst dx = this.containerWidth - this.imageWidth;\r\n\t\t\tconst dy = this.containerHeight - this.imageHeight;\r\n\t\t\tconst x = translation.x + e.distance.x;\r\n\t\t\tconst y = translation.y + e.distance.y;\r\n\t\t\tgsap.to(picture, {\r\n\t\t\t\tx: Math.min(0, Math.max(dx, x)),\r\n\t\t\t\ty: Math.min(0, Math.max(dy, y)),\r\n\t\t\t\tduration: 0.3,\r\n\t\t\t\toverwrite: true,\r\n\t\t\t\tonUpdate: this.onPictureUpdate,\r\n\t\t\t\tcallbackScope: this,\r\n\t\t\t});\r\n\t\t}, (e) => {\r\n\t\t\t//\r\n\t\t\tthis.node.classList.remove('grabbing');\r\n\t\t});\r\n\t}\r\n\r\n\tremoveDragListener() {\r\n\t\tif (this.draglistener) {\r\n\t\t\tthis.draglistener.destroy();\r\n\t\t}\r\n\t}\r\n\r\n\tgetTranslate(node) {\r\n\t\tlet x = 0,\r\n\t\t\ty = 0;\r\n\t\tconst transform = node.style.transform;\r\n\t\tif (transform) {\r\n\t\t\tconst coords = transform.split('(')[1].split([')'])[0].split(',');\r\n\t\t\tx = parseFloat(coords[0]);\r\n\t\t\ty = parseFloat(coords[1]);\r\n\t\t}\r\n\t\treturn {\r\n\t\t\tx,\r\n\t\t\ty\r\n\t\t};\r\n\t}\r\n\r\n}\r\n","import TotalLookComponent from './total-look/total-look.component';\r\n\r\nexport default class Main {\r\n\r\n\tconstructor() {\r\n\t\tconst components = this.addComponents();\r\n\t}\r\n\r\n\taddComponents() {\r\n\t\tconst SELECTORS = {\r\n\t\t\t'[total-look]': TotalLookComponent,\r\n\t\t};\r\n\t\tlet instances = [];\r\n\t\tfor (let key in SELECTORS) {\r\n\t\t\tinstances = instances.concat(Array.from(document.querySelectorAll(key))\r\n\t\t\t\t.map(node => {\r\n\t\t\t\t\tconst instance = new SELECTORS[key]().setNode(node);\r\n\t\t\t\t\tinstance.on('click', () => {\r\n\t\t\t\t\t\talert('clicked');\r\n\t\t\t\t\t});\r\n\t\t\t\t\treturn instance;\r\n\t\t\t\t}));\r\n\t\t}\r\n\t\t// instances.forEach(x => console.log(x));\r\n\t\treturn instances;\r\n\t}\r\n\r\n}\r\n\r\nconst main = new Main();\r\nwindow.TotalLook = Main;\r\n"],"names":["Emitter","options","Object","assign","events","_proto","prototype","on","type","callback","_this","event","push","filter","x","off","emit","data","forEach","broadcast","Component","_Emitter","apply","arguments","_inheritsLoose","getNode","render","template","div","document","createElement","innerHTML","node","firstElementChild","setNode","parentNode","replaceChild","onInit","setParentNode","appendChild","destroy","onDestroy","DragListener","currentTarget","downCallback","moveCallback","upCallback","e","console","log","dragging","onMouseDown","bind","onMouseMove","onMouseUp","onTouchStart","onTouchMove","onTouchEnd","addListeners","addEventListener","removeEventListener","removeMouseListeners","removeTouchListeners","onDown","down","strength","y","distance","speed","onDrag","position","undefined","window","innerWidth","innerHeight","onUp","originalEvent","target","clientX","clientY","addMouseListeners","touches","length","pageX","pageY","addTouchListeners","_createClass","key","get","passive_","defineProperty","err","passive","capture","TotalLookCardComponent","_Component","item","hasAttribute","Function","getAttribute","info","querySelector","img","buy","removeListeners","onResize","onClick","isTotemEnv","preventDefault","onBuyClick","location","href","update","active","classList","add","remove","TotalLookPinComponent","call","content","arrow","to","TotalLookComponent","groupLook","picture","listing","listingInner","cards","Array","slice","querySelectorAll","map","pins","more","close","onImage","addDragListener","setActive","loadImage","_this2","loader","Image","onload","src","immediate","_this3","windowWidth","containerWidth","offsetWidth","containerHeight","offsetHeight","containerRatio","imgRatio","naturalWidth","naturalHeight","imageWidth","imageHeight","direction","style","width","height","card","i","listingInnerWidth","Math","ceil","getBoundingClientRect","minWidth","dx","translation","getTranslate","left","min","max","gsap","set","duration","delay","overwrite","pinPosition","pin","pinX","pinY","top","dy","onPictureUpdate","onUpdate","callbackScope","find","onWheel","deltaY","onDelayedResize","clearTimeout","setTimeout","onOpenPanel","onClosePanel","_this4","removeDragListener","_this5","draglistener","transform","coords","split","parseFloat","direction_","Main","components","addComponents","SELECTORS","instances","_loop","concat","from","instance","alert","main","TotalLook"],"mappings":"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"}