{"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.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.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('TotalLookPinComponent.onResize');\r\n\t\tthis.emit('click');\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.onClick = this.onClick.bind(this);\r\n\t\t// window.addEventListener('resize', this.onResize);\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\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}
\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 + '%';\t\t\t\t\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\t\t\t\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","on","type","callback","event","push","filter","x","off","emit","data","forEach","broadcast","Component","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","passive_","defineProperty","get","err","passive","capture","TotalLookCardComponent","item","hasAttribute","Function","getAttribute","info","querySelector","buy","removeListeners","onResize","onClick","isTotemEnv","preventDefault","onBuyClick","location","href","update","active","classList","add","remove","TotalLookPinComponent","content","arrow","to","TotalLookComponent","groupLook","picture","listing","listingInner","cards","Array","prototype","slice","call","querySelectorAll","map","pins","more","close","onImage","img","addDragListener","setActive","loadImage","loader","Image","onload","src","immediate","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","removeDragListener","draglistener","transform","coords","split","parseFloat","direction_","Main","components","addComponents","SELECTORS","instances","key","concat","from","instance","alert","main","TotalLook"],"mappings":"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"}