Your IP : 18.221.97.20


Current Path : /var/www/www-root/data/www/info.monolith-realty.ru/bitrix/js/ui/ears/dist/
Upload File :
Current File : /var/www/www-root/data/www/info.monolith-realty.ru/bitrix/js/ui/ears/dist/ears.bundle.js.map

{"version":3,"file":"ears.bundle.js","sources":["../src/touch-controller.js","../src/ears.js"],"sourcesContent":["export class TouchController\n{\n\tconstructor({ target })\n\t{\n\t\tthis.target = target ? target : null;\n\t\tthis.pos = { top: 0, left: 0, x: 0, y: 0 };\n\t\tthis.touchInit = false;\n\t\tthis.init();\n\t}\n\n\tinit()\n\t{\n\t\tif (!this.target)\n\t\t{\n\t\t\tconsole.warn('BX.UI.Ears: TouchController not initialized')\n\t\t\treturn;\n\t\t}\n\n\t\tthis.target.addEventListener('mousedown', this.mouseDownHandler.bind(this));\n\t\tthis.target.addEventListener('mousemove', this.mouseMoveHandler.bind(this));\n\t\tthis.target.addEventListener('mouseup', this.mouseUpHandler.bind(this));\n\t\tthis.target.addEventListener('mouseleave', this.mouseUpHandler.bind(this));\n\t}\n\n\tmouseDownHandler(ev)\n\t{\n\t\tthis.touchInit = true;\n\t\tthis.target.style.cursor = 'grabbing';\n\t\tthis.target.style.userSelect = 'none';\n\t\tthis.target.parentNode.classList.add('--grabbing');\n\n\t\tthis.pos = {\n\t\t\tleft: this.target.scrollLeft,\n\t\t\ttop: this.target.scrollTop,\n\t\t\tx: ev.clientX,\n\t\t\ty: ev.clientY,\n\t\t};\n\t}\n\n\tmouseMoveHandler(ev)\n\t{\n\t\tif (!this.touchInit)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst dx = ev.clientX - this.pos.x;\n\t\tconst dy = ev.clientY - this.pos.y;\n\n\t\tthis.target.scrollLeft = this.pos.left - dx;\n\t\tthis.target.scrollTop = this.pos.top - dy;\n\t}\n\n\tmouseUpHandler()\n\t{\n\t\tthis.touchInit = false;\n\t\tthis.target.style.cursor = 'grab';\n\t\tthis.target.style.removeProperty('user-select');\n\t\tthis.target.parentNode.classList.remove('--grabbing');\n\t}\n}","import { Tag, Dom, Cache, Type } from 'main.core';\nimport { EventEmitter } from 'main.core.events';\nimport { TouchController } from\t'./touch-controller';\nimport './style.css';\n\nexport class Ears extends EventEmitter\n{\n\tconstructor(options)\n\t{\n\t\tsuper(...arguments);\n\t\tthis.setEventNamespace('BX.UI.Ears');\n\t\tthis.container = options.container || null;\n\t\tthis.smallSize = options.smallSize || null;\n\t\tthis.noScrollbar = options.noScrollbar ? options.noScrollbar : false;\n\t\tthis.className = options.className ? options.className : null;\n\t\tthis.mousewheel = options.mousewheel || null;\n\t\tthis.touchScroll = options.touchScroll || null;\n\t\tthis.vertical = options.vertical || null;\n\t\tthis.itemsInShow = options.itemsInShow || null;\n\t\tif (this.itemsInShow)\n\t\t{\n\t\t\tthis.noScrollbar = true;\n\t\t}\n\n\t\tthis.itemSize = null;\n\n\t\t// layouts\n\t\tthis.wrapper = null;\n\t\tthis.leftEar = null;\n\t\tthis.rightEar = null;\n\t\tthis.topEar = null;\n\t\tthis.bottomEar = null;\n\t\tthis.parentContainer = Type.isDomNode(this.container) ? this.container.parentNode : null;\n\t\tthis.delay = 12;\n\t\tthis.scrollTimeout = null;\n\t\tthis.cache = new Cache.MemoryCache();\n\t}\n\n\tbindEvents()\n\t{\n\t\tthis.container.addEventListener('scroll', this.toggleEars.bind(this));\n\n\t\tif (this.mousewheel)\n\t\t{\n\t\t\tthis.container.addEventListener('wheel', this.onWheel.bind(this));\n\t\t}\n\n\t\tif (this.vertical)\n\t\t{\n\t\t\tif (this.itemsInShow)\n\t\t\t{\n\t\t\t\tthis.getBottomEar().addEventListener('click', this.scrollToNext.bind(this));\n\t\t\t\tthis.getTopEar().addEventListener('click', this.scrollToPrev.bind(this));\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.getBottomEar().addEventListener('mouseenter', this.scrollBottom.bind(this));\n\t\t\t\tthis.getBottomEar().addEventListener('mouseleave', this.stopScroll.bind(this));\n\t\t\t\tthis.getBottomEar().addEventListener('mousedown', this.stopScroll.bind(this));\n\t\t\t\tthis.getBottomEar().addEventListener('mouseup', this.scrollBottom.bind(this));\n\n\t\t\t\tthis.getTopEar().addEventListener('mouseenter', this.scrollTop.bind(this));\n\t\t\t\tthis.getTopEar().addEventListener('mouseleave', this.stopScroll.bind(this));\n\t\t\t\tthis.getTopEar().addEventListener('mousedown', this.stopScroll.bind(this));\n\t\t\t\tthis.getTopEar().addEventListener('mouseup', this.scrollTop.bind(this));\n\t\t\t}\n\n\t\t}\n\n\t\tif (!this.vertical)\n\t\t{\n\t\t\tif (this.itemsInShow)\n\t\t\t{\n\t\t\t\tthis.getRightEar().addEventListener('click', this.scrollToNext.bind(this));\n\t\t\t\tthis.getLeftEar().addEventListener('click', this.scrollToPrev.bind(this));\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.getLeftEar().addEventListener('mouseenter', this.scrollLeft.bind(this));\n\t\t\t\tthis.getLeftEar().addEventListener('mouseleave', this.stopScroll.bind(this));\n\t\t\t\tthis.getLeftEar().addEventListener('mousedown', this.stopScroll.bind(this));\n\t\t\t\tthis.getLeftEar().addEventListener('mouseup', this.scrollLeft.bind(this));\n\n\t\t\t\tthis.getRightEar().addEventListener('mouseenter', this.scrollRight.bind(this));\n\t\t\t\tthis.getRightEar().addEventListener('mouseleave', this.stopScroll.bind(this));\n\t\t\t\tthis.getRightEar().addEventListener('mousedown', this.stopScroll.bind(this));\n\t\t\t\tthis.getRightEar().addEventListener('mouseup', this.scrollRight.bind(this));\n\t\t\t}\n\t\t}\n\t}\n\n\tinit(): this\n\t{\n\t\tif (!this.container)\n\t\t{\n\t\t\tconsole.warn('BX.UI.Ears.Preview: \\'container\\' is not defined');\n\t\t\treturn;\n\t\t}\n\n\t\tthis.setWrapper();\n\t\tthis.bindEvents();\n\n\t\tif (this.touchScroll)\n\t\t{\n\t\t\tthis.initTouchScroll();\n\t\t}\n\n\t\tsetTimeout(() => {\n\t\t\tif (this.container.scrollWidth > this.container.offsetWidth)\n\t\t\t{\n\t\t\t\tthis.toggleRightEar();\n\n\t\t\t\tlet activeItem = this.container.querySelector('[data-role=\"ui-ears-active\"]');\n\n\t\t\t\tactiveItem ? this.scrollToActiveItem(activeItem) : null;\n\t\t\t}\n\n\t\t\tthis.toggleEars();\n\t\t}, 600);\n\t\treturn this;\n\t}\n\n\tscrollToPrev()\n\t{\n\t\tif (this.vertical)\n\t\t{\n\t\t\tthis.container.scrollTo({\n\t\t\t\ttop: this.container.scrollTop - this.getItemSize(),\n\t\t\t\tbehavior: 'smooth'\n\t\t\t});\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.container.scrollTo({\n\t\t\t\tleft: this.container.scrollLeft - this.getItemSize(),\n\t\t\t\tbehavior: 'smooth'\n\t\t\t});\n\t\t}\n\t}\n\n\tscrollToNext()\n\t{\n\t\tif (this.vertical)\n\t\t{\n\t\t\tthis.container.scrollTo({\n\t\t\t\ttop: this.container.scrollTop + this.getItemSize(),\n\t\t\t\tbehavior: 'smooth'\n\t\t\t});\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.container.scrollTo({\n\t\t\t\tleft: this.container.scrollLeft + this.getItemSize(),\n\t\t\t\tbehavior: 'smooth'\n\t\t\t});\n\t\t}\n\t}\n\n\tscrollToActiveItem(activeItem)\n\t{\n\t\tlet scrollToPoint = activeItem.offsetLeft - (this.container.offsetWidth / 2 - activeItem.offsetWidth / 2);\n\t\tlet scrollWidth = 0;\n\t\tlet interval = setInterval(() => {\n\t\t\tif( scrollWidth >= scrollToPoint ||\n\t\t\t\tscrollWidth + this.container.offsetWidth >= this.container.scrollWidth)\n\t\t\t{\n\t\t\t\tclearInterval(interval);\n\t\t\t}\n\n\t\t\tthis.container.scrollLeft = scrollWidth += 10;\n\t\t},10)\n\t}\n\n\tonWheel(event)\n\t{\n\t\tif (event.deltaY < 0 || event.deltaX > 0)\n\t\t{\n\t\t\tthis.scrollRight();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.scrollLeft();\n\t\t}\n\n\t\tclearTimeout(this.scrollTimeout);\n\t\tthis.scrollTimeout = setTimeout(() => this.stopScroll(), 150);\n\t\tevent.preventDefault();\n\t}\n\n\tgetItemSize()\n\t{\n\t\tif (!this.itemSize)\n\t\t{\n\t\t\tconst itemNode = this.container.firstElementChild;\n\t\t\tthis.itemSize = this.vertical\n\t\t\t\t? this.container.firstElementChild.offsetHeight\n\t\t\t\t: this.container.firstElementChild.offsetWidth;\n\n\t\t\tlet spaceInt = 0;\n\n\t\t\tif (this.vertical)\n\t\t\t{\n\t\t\t\tspaceInt = parseInt(window.getComputedStyle(itemNode).marginTop) > parseInt(window.getComputedStyle(itemNode).marginTop)\n\t\t\t\t\t? parseInt(window.getComputedStyle(itemNode).marginTop)\n\t\t\t\t\t: parseInt(window.getComputedStyle(itemNode).marginBottom);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tspaceInt = parseInt(window.getComputedStyle(itemNode).marginLeft) + parseInt(window.getComputedStyle(itemNode).marginRight);\n\t\t\t}\n\n\t\t\tif (spaceInt > 0)\n\t\t\t{\n\t\t\t\tthis.itemSize = this.itemSize + spaceInt;\n\t\t\t}\n\t\t}\n\n\t\treturn this.itemSize;\n\t}\n\n\tsetWrapper() {\n\t\tthis.container.classList.add('ui-ear-container');\n\t\tthis.container.classList.add(this.vertical ? '--vertical' : '--horizontal');\n\n\t\tif (this.noScrollbar)\n\t\t{\n\t\t\tthis.container.classList.add('ui-ear-container-no-scrollbar');\n\t\t}\n\n\t\tDom.append(this.getWrapper(), this.parentContainer);\n\n\t\tif (this.itemsInShow)\n\t\t{\n\t\t\tthis.container.style.setProperty(this.vertical ? 'height' : 'width', this.getItemSize() * this.itemsInShow  + 'px');\n\t\t}\n\t}\n\n\tgetWrapper()\n\t{\n\t\treturn this.cache.remember('wrapper', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t\t<div class='ui-ears-wrapper ${this.smallSize ? ' ui-ears-wrapper-sm' : ''} ${this.className ? this.className : ''}'>\n\t\t\t\t\t\t${this.vertical ? this.getTopEar() : this.getLeftEar() }\n\t\t\t\t\t\t${this.vertical ? this.getBottomEar() : this.getRightEar()}\n\t\t\t\t\t\t${this.container}\n\t\t\t\t\t</div>\n\t\t\t\t`;\n\t\t});\n\t}\n\n\tgetTopEar()\n\t{\n\t\treturn this.cache.remember('topEar', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t\t<div class='ui-ear ui-ear-top'></div>\n\t\t\t\t`;\n\t\t});\n\t}\n\n\tgetBottomEar()\n\t{\n\t\treturn this.cache.remember('bottomEar', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t\t<div class='ui-ear ui-ear-bottom'></div>\n\t\t\t\t`;\n\t\t});\n\t}\n\n\tgetLeftEar()\n\t{\n\t\treturn this.cache.remember('leftEar', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t\t<div class='ui-ear ui-ear-left'></div>\n\t\t\t\t`;\n\t\t});\n\t}\n\n\tgetRightEar()\n\t{\n\t\treturn this.cache.remember('rightEar', () => {\n\t\t\treturn Tag.render`\n\t\t\t\t\t<div class='ui-ear ui-ear-right'></div>\n\t\t\t\t`;\n\t\t});\n\t}\n\n\ttoggleEars() \n\t{\n\t\tif (this.vertical)\n\t\t{\n\t\t\tthis.toggleTopEar();\n\t\t\tthis.toggleBottomEar();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.toggleRightEar();\n\t\t\tthis.toggleLeftEar();\n\t\t}\n\t}\n\n\ttoggleTopEar()\n\t{\n\t\tif (this.container.scrollTop > 0)\n\t\t{\n\t\t\tthis.getTopEar().classList.add('ui-ear-show');\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.getTopEar().classList.remove('ui-ear-show');\n\t\t}\n\t}\n\n\ttoggleBottomEar()\n\t{\n\t\tif (this.container.scrollHeight > this.container.offsetHeight\n\t\t\t&& Math.ceil(this.container.offsetHeight + this.container.scrollTop) < this.container.scrollHeight)\n\t\t{\n\t\t\tthis.getBottomEar().classList.add('ui-ear-show');\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.getBottomEar().classList.remove('ui-ear-show');\n\t\t}\n\t}\n\n\ttoggleRightEar()\n\t{\n\t\tif (this.container.scrollWidth > this.container.offsetWidth\n\t\t\t&& Math.ceil(this.container.offsetWidth + this.container.scrollLeft) < this.container.scrollWidth)\n\t\t{\n\t\t\tthis.getRightEar().classList.add('ui-ear-show');\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.getRightEar().classList.remove('ui-ear-show');\n\t\t}\n\t}\n\n\ttoggleLeftEar()\n\t{\n\t\tif (this.container.scrollLeft > 0)\n\t\t{\n\t\t\tthis.getLeftEar().classList.add('ui-ear-show');\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.getLeftEar().classList.remove('ui-ear-show');\n\t\t}\n\t}\n\n\tscrollTop()\n\t{\n\t\tthis.stopScroll('bottom');\n\t\tthis.container.scrollTop -= 10;\n\t\tthis.emit('onEarsAreMoved');\n\t\tif (this.container.scrollTop <= 10)\n\t\t{\n\t\t\tthis.emit('onEarsAreHidden');\n\t\t}\n\n\t\tthis.setDelay();\n\t\tthis.scrollInterval = setInterval(\n\t\t\tthis.scrollTop.bind(this),\n\t\t\tthis.delay);\n\n\t\tthis.top = true;\n\n\t}\n\n\tscrollBottom()\n\t{\n\t\tthis.stopScroll('top');\n\t\tlet previous = this.container.scrollTop;\n\t\tthis.container.scrollTop += 10;\n\t\tthis.emit('onEarsAreMoved');\n\t\tif (this.container.scrollTop >= 0 && previous < 0)\n\t\t{\n\t\t\tthis.emit('onEarsAreHidden');\n\t\t}\n\n\t\tthis.setDelay();\n\t\tthis.scrollInterval = setInterval(\n\t\t\tthis.scrollBottom.bind(this),\n\t\t\tthis.delay);\n\n\t\tthis.bottom = true;\n\t\t\n\t}\n\n\tscrollLeft()\n\t{\n\t\tthis.stopScroll('right');\n\n\t\tlet previous = this.container.scrollLeft;\n\t\tthis.container.scrollLeft -= 10;\n\t\tthis.emit('onEarsAreMoved');\n\t\tif (this.container.scrollLeft <= 0 && previous > 0)\n\t\t{\n\t\t\tthis.emit('onEarsAreHidden');\n\t\t}\n\n\t\tthis.setDelay();\n\t\tthis.scrollInterval = setInterval(\n\t\t\tthis.scrollLeft.bind(this),\n\t\t\tthis.delay);\n\n\t\tthis.left = true;\n\t}\n\n\tscrollRight()\n\t{\n\t\tthis.stopScroll('left');\n\n\t\tthis.container.scrollLeft += 10;\n\t\tthis.emit('onEarsAreMoved');\n\t\tif (this.container.scrollLeft <= 10)\n\t\t{\n\t\t\tthis.emit('onEarsAreShown');\n\t\t}\n\n\t\tthis.setDelay();\n\t\tthis.scrollInterval = setInterval(\n\t\t\tthis.scrollRight.bind(this),\n\t\t\tthis.delay);\n\n\t\tthis.right = true;\n\t}\n\n\tsetDelay()\n\t{\n\t\tif (this.container.scrollWidth < this.container.offsetWidth * 1.6)\n\t\t{\n\t\t\tthis.delay = 20;\n\t\t\treturn;\n\t\t}\n\n\t\tconst fullScrollLeft = this.container.scrollWidth - this.container.offsetWidth;\n\t\tconst conditionRight = this.container.scrollLeft > fullScrollLeft / 1.3;\n\t\tconst conditionLeft = this.container.scrollLeft < fullScrollLeft / 4;\n\n\t\tif (this.container.scrollLeft === fullScrollLeft)\n\t\t{\n\t\t\tthis.delay = 12;\n\t\t}\n\n\t\tif (this.left)\n\t\t{\n\t\t\tif (conditionLeft)\n\t\t\t{\n\t\t\t\tthis.delay = 25;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.delay = 12;\n\t\t\t}\n\t\t}\n\n\t\tif (this.right)\n\t\t{\n\t\t\tif (conditionRight)\n\t\t\t{\n\t\t\t\tthis.delay = 25;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.delay = 12;\n\t\t\t}\n\t\t}\n\t}\n\n\tstopScroll(direction) {\n\t\tif (this.scrollInterval)\n\t\t{\n\t\t\tclearInterval(this.scrollInterval);\n\t\t\tthis.scrollInterval = 0;\n\t\t}\n\n\t\tif (direction === 'right')\n\t\t{\n\t\t\tthis.right = false;\n\t\t}\n\t\telse if (direction === 'left')\n\t\t{\n\t\t\tthis.left = false;\n\t\t}\n\t\telse if (direction === 'bottom')\n\t\t{\n\t\t\tthis.bottom = false;\n\t\t}\n\t\telse if (direction === 'top')\n\t\t{\n\t\t\tthis.top = false;\n\t\t}\n\t}\n\n\tinitTouchScroll()\n\t{\n\t\tnew TouchController({\n\t\t\ttarget: this.container\n\t\t});\n\t}\n}\n"],"names":["TouchController","constructor","target","pos","top","left","x","y","touchInit","init","console","warn","addEventListener","mouseDownHandler","bind","mouseMoveHandler","mouseUpHandler","ev","style","cursor","userSelect","parentNode","classList","add","scrollLeft","scrollTop","clientX","clientY","dx","dy","removeProperty","remove","Ears","EventEmitter","options","arguments","setEventNamespace","container","smallSize","noScrollbar","className","mousewheel","touchScroll","vertical","itemsInShow","itemSize","wrapper","leftEar","rightEar","topEar","bottomEar","parentContainer","Type","isDomNode","delay","scrollTimeout","cache","Cache","MemoryCache","bindEvents","toggleEars","onWheel","getBottomEar","scrollToNext","getTopEar","scrollToPrev","scrollBottom","stopScroll","getRightEar","getLeftEar","scrollRight","setWrapper","initTouchScroll","setTimeout","scrollWidth","offsetWidth","toggleRightEar","activeItem","querySelector","scrollToActiveItem","scrollTo","getItemSize","behavior","scrollToPoint","offsetLeft","interval","setInterval","clearInterval","event","deltaY","deltaX","clearTimeout","preventDefault","itemNode","firstElementChild","offsetHeight","spaceInt","parseInt","window","getComputedStyle","marginTop","marginBottom","marginLeft","marginRight","Dom","append","getWrapper","setProperty","remember","Tag","render","toggleTopEar","toggleBottomEar","toggleLeftEar","scrollHeight","Math","ceil","emit","setDelay","scrollInterval","previous","bottom","right","fullScrollLeft","conditionRight","conditionLeft","direction"],"mappings":"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"}