UNPKG

primevue

Version:

PrimeVue is an open source UI library for Vue featuring a rich set of 80+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with PrimeBloc

1 lines 46.3 kB
{"version":3,"file":"index.mjs","sources":["../../src/scrollpanel/BaseScrollPanel.vue","../../src/scrollpanel/ScrollPanel.vue","../../src/scrollpanel/ScrollPanel.vue?vue&type=template&id=46324a00&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport ScrollPanelStyle from 'primevue/scrollpanel/style';\n\nexport default {\n name: 'BaseScrollPanel',\n extends: BaseComponent,\n props: {\n step: {\n type: Number,\n default: 5\n }\n },\n style: ScrollPanelStyle,\n provide() {\n return {\n $pcScrollPanel: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <div :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n <div :class=\"cx('contentContainer')\" v-bind=\"ptm('contentContainer')\">\n <div ref=\"content\" :id=\"contentId\" :class=\"cx('content')\" @scroll=\"onScroll\" @mouseenter=\"moveBar\" v-bind=\"ptm('content')\">\n <slot></slot>\n </div>\n </div>\n <div\n ref=\"xBar\"\n :class=\"cx('barx')\"\n tabindex=\"0\"\n role=\"scrollbar\"\n aria-orientation=\"horizontal\"\n :aria-controls=\"contentId\"\n :aria-valuenow=\"lastScrollLeft\"\n @mousedown=\"onXBarMouseDown\"\n @keydown=\"onKeyDown($event)\"\n @keyup=\"onKeyUp\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n v-bind=\"ptm('barx')\"\n data-pc-group-section=\"bar\"\n ></div>\n <div\n ref=\"yBar\"\n :class=\"cx('bary')\"\n tabindex=\"0\"\n role=\"scrollbar\"\n aria-orientation=\"vertical\"\n :aria-controls=\"contentId\"\n :aria-valuenow=\"lastScrollTop\"\n @mousedown=\"onYBarMouseDown\"\n @keydown=\"onKeyDown($event)\"\n @keyup=\"onKeyUp\"\n @focus=\"onFocus\"\n v-bind=\"ptm('bary')\"\n data-pc-group-section=\"bar\"\n ></div>\n </div>\n</template>\n\n<script>\nimport { addClass, getHeight, removeClass } from '@primeuix/utils/dom';\nimport BaseScrollPanel from './BaseScrollPanel.vue';\n\nexport default {\n name: 'ScrollPanel',\n extends: BaseScrollPanel,\n inheritAttrs: false,\n initialized: false,\n documentResizeListener: null,\n documentMouseMoveListener: null,\n documentMouseUpListener: null,\n frame: null,\n scrollXRatio: null,\n scrollYRatio: null,\n isXBarClicked: false,\n isYBarClicked: false,\n lastPageX: null,\n lastPageY: null,\n timer: null,\n outsideClickListener: null,\n data() {\n return {\n orientation: 'vertical',\n lastScrollTop: 0,\n lastScrollLeft: 0\n };\n },\n mounted() {\n if (this.$el.offsetParent) {\n this.initialize();\n }\n },\n updated() {\n if (!this.initialized && this.$el.offsetParent) {\n this.initialize();\n }\n },\n beforeUnmount() {\n this.unbindDocumentResizeListener();\n\n if (this.frame) {\n window.cancelAnimationFrame(this.frame);\n }\n },\n methods: {\n initialize() {\n this.moveBar();\n this.bindDocumentResizeListener();\n this.calculateContainerHeight();\n },\n calculateContainerHeight() {\n let containerStyles = getComputedStyle(this.$el),\n xBarStyles = getComputedStyle(this.$refs.xBar),\n pureContainerHeight = getHeight(this.$el) - parseInt(xBarStyles['height'], 10);\n\n if (containerStyles['max-height'] !== 'none' && pureContainerHeight === 0) {\n if (this.$refs.content.offsetHeight + parseInt(xBarStyles['height'], 10) > parseInt(containerStyles['max-height'], 10)) {\n this.$el.style.height = containerStyles['max-height'];\n } else {\n this.$el.style.height =\n this.$refs.content.offsetHeight + parseFloat(containerStyles.paddingTop) + parseFloat(containerStyles.paddingBottom) + parseFloat(containerStyles.borderTopWidth) + parseFloat(containerStyles.borderBottomWidth) + 'px';\n }\n }\n },\n moveBar() {\n if (this.$refs.content) {\n /* horizontal scroll */\n let totalWidth = this.$refs.content.scrollWidth;\n let ownWidth = this.$refs.content.clientWidth;\n let bottom = (this.$el.clientHeight - this.$refs.xBar.clientHeight) * -1;\n\n this.scrollXRatio = ownWidth / totalWidth;\n\n /* vertical scroll */\n let totalHeight = this.$refs.content.scrollHeight;\n let ownHeight = this.$refs.content.clientHeight;\n let right = (this.$el.clientWidth - this.$refs.yBar.clientWidth) * -1;\n\n this.scrollYRatio = ownHeight / totalHeight;\n\n const scrollBarHeight = Math.max(this.scrollYRatio * 100, 10);\n\n this.frame = this.requestAnimationFrame(() => {\n if (this.$refs.xBar) {\n if (this.scrollXRatio >= 1) {\n this.$refs.xBar.setAttribute('data-p-scrollpanel-hidden', 'true');\n !this.isUnstyled && addClass(this.$refs.xBar, 'p-scrollpanel-hidden');\n } else {\n this.$refs.xBar.setAttribute('data-p-scrollpanel-hidden', 'false');\n !this.isUnstyled && removeClass(this.$refs.xBar, 'p-scrollpanel-hidden');\n\n this.$refs.xBar.style.cssText = 'width:' + Math.max(this.scrollXRatio * 100, 10) + '%; inset-inline-start:' + (Math.abs(this.$refs.content.scrollLeft) / totalWidth) * 100 + '%;bottom:' + bottom + 'px;';\n }\n }\n\n if (this.$refs.yBar) {\n if (this.scrollYRatio >= 1) {\n this.$refs.yBar.setAttribute('data-p-scrollpanel-hidden', 'true');\n !this.isUnstyled && addClass(this.$refs.yBar, 'p-scrollpanel-hidden');\n } else {\n this.$refs.yBar.setAttribute('data-p-scrollpanel-hidden', 'false');\n !this.isUnstyled && removeClass(this.$refs.yBar, 'p-scrollpanel-hidden');\n\n this.$refs.yBar.style.cssText =\n 'height:' + scrollBarHeight + '%; top: calc(' + (this.$refs.content.scrollTop / (totalHeight - ownHeight)) * (100 - scrollBarHeight) + '% - ' + this.$refs.xBar.clientHeight + 'px); inset-inline-end:' + right + 'px;';\n }\n }\n });\n }\n },\n onYBarMouseDown(e) {\n this.isYBarClicked = true;\n this.$refs.yBar.focus();\n this.lastPageY = e.pageY;\n this.$refs.yBar.setAttribute('data-p-scrollpanel-grabbed', 'true');\n !this.isUnstyled && addClass(this.$refs.yBar, 'p-scrollpanel-grabbed');\n document.body.setAttribute('data-p-scrollpanel-grabbed', 'true');\n !this.isUnstyled && addClass(document.body, 'p-scrollpanel-grabbed');\n\n this.bindDocumentMouseListeners();\n e.preventDefault();\n },\n onXBarMouseDown(e) {\n this.isXBarClicked = true;\n this.$refs.xBar.focus();\n this.lastPageX = e.pageX;\n this.$refs.yBar.setAttribute('data-p-scrollpanel-grabbed', 'false');\n !this.isUnstyled && addClass(this.$refs.xBar, 'p-scrollpanel-grabbed');\n document.body.setAttribute('data-p-scrollpanel-grabbed', 'false');\n !this.isUnstyled && addClass(document.body, 'p-scrollpanel-grabbed');\n\n this.bindDocumentMouseListeners();\n e.preventDefault();\n },\n onScroll(event) {\n if (this.lastScrollLeft !== event.target.scrollLeft) {\n this.lastScrollLeft = event.target.scrollLeft;\n this.orientation = 'horizontal';\n } else if (this.lastScrollTop !== event.target.scrollTop) {\n this.lastScrollTop = event.target.scrollTop;\n this.orientation = 'vertical';\n }\n\n this.moveBar();\n },\n onKeyDown(event) {\n if (this.orientation === 'vertical') {\n switch (event.code) {\n case 'ArrowDown': {\n this.setTimer('scrollTop', this.step);\n event.preventDefault();\n break;\n }\n\n case 'ArrowUp': {\n this.setTimer('scrollTop', this.step * -1);\n event.preventDefault();\n break;\n }\n\n case 'ArrowLeft':\n\n case 'ArrowRight': {\n event.preventDefault();\n break;\n }\n\n default:\n //no op\n break;\n }\n } else if (this.orientation === 'horizontal') {\n switch (event.code) {\n case 'ArrowRight': {\n this.setTimer('scrollLeft', this.step);\n event.preventDefault();\n break;\n }\n\n case 'ArrowLeft': {\n this.setTimer('scrollLeft', this.step * -1);\n event.preventDefault();\n break;\n }\n\n case 'ArrowDown':\n\n case 'ArrowUp': {\n event.preventDefault();\n break;\n }\n\n default:\n //no op\n break;\n }\n }\n },\n onKeyUp() {\n this.clearTimer();\n },\n repeat(bar, step) {\n this.$refs.content[bar] += step;\n this.moveBar();\n },\n setTimer(bar, step) {\n this.clearTimer();\n this.timer = setTimeout(() => {\n this.repeat(bar, step);\n }, 40);\n },\n clearTimer() {\n if (this.timer) {\n clearTimeout(this.timer);\n }\n },\n onDocumentMouseMove(e) {\n if (this.isXBarClicked) {\n this.onMouseMoveForXBar(e);\n } else if (this.isYBarClicked) {\n this.onMouseMoveForYBar(e);\n } else {\n this.onMouseMoveForXBar(e);\n this.onMouseMoveForYBar(e);\n }\n },\n onMouseMoveForXBar(e) {\n let deltaX = e.pageX - this.lastPageX;\n\n this.lastPageX = e.pageX;\n\n this.frame = this.requestAnimationFrame(() => {\n this.$refs.content.scrollLeft += deltaX / this.scrollXRatio;\n });\n },\n onMouseMoveForYBar(e) {\n let deltaY = e.pageY - this.lastPageY;\n\n this.lastPageY = e.pageY;\n\n this.frame = this.requestAnimationFrame(() => {\n this.$refs.content.scrollTop += deltaY / this.scrollYRatio;\n });\n },\n onFocus(event) {\n if (this.$refs.xBar.isSameNode(event.target)) {\n this.orientation = 'horizontal';\n } else if (this.$refs.yBar.isSameNode(event.target)) {\n this.orientation = 'vertical';\n }\n },\n onBlur() {\n if (this.orientation === 'horizontal') {\n this.orientation = 'vertical';\n }\n },\n onDocumentMouseUp() {\n this.$refs.yBar.setAttribute('data-p-scrollpanel-grabbed', 'false');\n !this.isUnstyled && removeClass(this.$refs.yBar, 'p-scrollpanel-grabbed');\n this.$refs.xBar.setAttribute('data-p-scrollpanel-grabbed', 'false');\n !this.isUnstyled && removeClass(this.$refs.xBar, 'p-scrollpanel-grabbed');\n document.body.setAttribute('data-p-scrollpanel-grabbed', 'false');\n !this.isUnstyled && removeClass(document.body, 'p-scrollpanel-grabbed');\n\n this.unbindDocumentMouseListeners();\n this.isXBarClicked = false;\n this.isYBarClicked = false;\n },\n requestAnimationFrame(f) {\n let frame = window.requestAnimationFrame || this.timeoutFrame;\n\n return frame(f);\n },\n refresh() {\n this.moveBar();\n },\n scrollTop(scrollTop) {\n let scrollableHeight = this.$refs.content.scrollHeight - this.$refs.content.clientHeight;\n\n scrollTop = scrollTop > scrollableHeight ? scrollableHeight : scrollTop > 0 ? scrollTop : 0;\n this.$refs.content.scrollTop = scrollTop;\n },\n timeoutFrame(fn) {\n setTimeout(fn, 0);\n },\n bindDocumentMouseListeners() {\n if (!this.documentMouseMoveListener) {\n this.documentMouseMoveListener = (e) => {\n this.onDocumentMouseMove(e);\n };\n\n document.addEventListener('mousemove', this.documentMouseMoveListener);\n }\n\n if (!this.documentMouseUpListener) {\n this.documentMouseUpListener = (e) => {\n this.onDocumentMouseUp(e);\n };\n\n document.addEventListener('mouseup', this.documentMouseUpListener);\n }\n },\n unbindDocumentMouseListeners() {\n if (this.documentMouseMoveListener) {\n document.removeEventListener('mousemove', this.documentMouseMoveListener);\n this.documentMouseMoveListener = null;\n }\n\n if (this.documentMouseUpListener) {\n document.removeEventListener('mouseup', this.documentMouseUpListener);\n this.documentMouseUpListener = null;\n }\n },\n bindDocumentResizeListener() {\n if (!this.documentResizeListener) {\n this.documentResizeListener = () => {\n this.moveBar();\n };\n\n window.addEventListener('resize', this.documentResizeListener);\n }\n },\n unbindDocumentResizeListener() {\n if (this.documentResizeListener) {\n window.removeEventListener('resize', this.documentResizeListener);\n this.documentResizeListener = null;\n }\n }\n },\n computed: {\n contentId() {\n return this.$id + '_content';\n }\n }\n};\n</script>\n","<template>\n <div :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n <div :class=\"cx('contentContainer')\" v-bind=\"ptm('contentContainer')\">\n <div ref=\"content\" :id=\"contentId\" :class=\"cx('content')\" @scroll=\"onScroll\" @mouseenter=\"moveBar\" v-bind=\"ptm('content')\">\n <slot></slot>\n </div>\n </div>\n <div\n ref=\"xBar\"\n :class=\"cx('barx')\"\n tabindex=\"0\"\n role=\"scrollbar\"\n aria-orientation=\"horizontal\"\n :aria-controls=\"contentId\"\n :aria-valuenow=\"lastScrollLeft\"\n @mousedown=\"onXBarMouseDown\"\n @keydown=\"onKeyDown($event)\"\n @keyup=\"onKeyUp\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n v-bind=\"ptm('barx')\"\n data-pc-group-section=\"bar\"\n ></div>\n <div\n ref=\"yBar\"\n :class=\"cx('bary')\"\n tabindex=\"0\"\n role=\"scrollbar\"\n aria-orientation=\"vertical\"\n :aria-controls=\"contentId\"\n :aria-valuenow=\"lastScrollTop\"\n @mousedown=\"onYBarMouseDown\"\n @keydown=\"onKeyDown($event)\"\n @keyup=\"onKeyUp\"\n @focus=\"onFocus\"\n v-bind=\"ptm('bary')\"\n data-pc-group-section=\"bar\"\n ></div>\n </div>\n</template>\n\n<script>\nimport { addClass, getHeight, removeClass } from '@primeuix/utils/dom';\nimport BaseScrollPanel from './BaseScrollPanel.vue';\n\nexport default {\n name: 'ScrollPanel',\n extends: BaseScrollPanel,\n inheritAttrs: false,\n initialized: false,\n documentResizeListener: null,\n documentMouseMoveListener: null,\n documentMouseUpListener: null,\n frame: null,\n scrollXRatio: null,\n scrollYRatio: null,\n isXBarClicked: false,\n isYBarClicked: false,\n lastPageX: null,\n lastPageY: null,\n timer: null,\n outsideClickListener: null,\n data() {\n return {\n orientation: 'vertical',\n lastScrollTop: 0,\n lastScrollLeft: 0\n };\n },\n mounted() {\n if (this.$el.offsetParent) {\n this.initialize();\n }\n },\n updated() {\n if (!this.initialized && this.$el.offsetParent) {\n this.initialize();\n }\n },\n beforeUnmount() {\n this.unbindDocumentResizeListener();\n\n if (this.frame) {\n window.cancelAnimationFrame(this.frame);\n }\n },\n methods: {\n initialize() {\n this.moveBar();\n this.bindDocumentResizeListener();\n this.calculateContainerHeight();\n },\n calculateContainerHeight() {\n let containerStyles = getComputedStyle(this.$el),\n xBarStyles = getComputedStyle(this.$refs.xBar),\n pureContainerHeight = getHeight(this.$el) - parseInt(xBarStyles['height'], 10);\n\n if (containerStyles['max-height'] !== 'none' && pureContainerHeight === 0) {\n if (this.$refs.content.offsetHeight + parseInt(xBarStyles['height'], 10) > parseInt(containerStyles['max-height'], 10)) {\n this.$el.style.height = containerStyles['max-height'];\n } else {\n this.$el.style.height =\n this.$refs.content.offsetHeight + parseFloat(containerStyles.paddingTop) + parseFloat(containerStyles.paddingBottom) + parseFloat(containerStyles.borderTopWidth) + parseFloat(containerStyles.borderBottomWidth) + 'px';\n }\n }\n },\n moveBar() {\n if (this.$refs.content) {\n /* horizontal scroll */\n let totalWidth = this.$refs.content.scrollWidth;\n let ownWidth = this.$refs.content.clientWidth;\n let bottom = (this.$el.clientHeight - this.$refs.xBar.clientHeight) * -1;\n\n this.scrollXRatio = ownWidth / totalWidth;\n\n /* vertical scroll */\n let totalHeight = this.$refs.content.scrollHeight;\n let ownHeight = this.$refs.content.clientHeight;\n let right = (this.$el.clientWidth - this.$refs.yBar.clientWidth) * -1;\n\n this.scrollYRatio = ownHeight / totalHeight;\n\n const scrollBarHeight = Math.max(this.scrollYRatio * 100, 10);\n\n this.frame = this.requestAnimationFrame(() => {\n if (this.$refs.xBar) {\n if (this.scrollXRatio >= 1) {\n this.$refs.xBar.setAttribute('data-p-scrollpanel-hidden', 'true');\n !this.isUnstyled && addClass(this.$refs.xBar, 'p-scrollpanel-hidden');\n } else {\n this.$refs.xBar.setAttribute('data-p-scrollpanel-hidden', 'false');\n !this.isUnstyled && removeClass(this.$refs.xBar, 'p-scrollpanel-hidden');\n\n this.$refs.xBar.style.cssText = 'width:' + Math.max(this.scrollXRatio * 100, 10) + '%; inset-inline-start:' + (Math.abs(this.$refs.content.scrollLeft) / totalWidth) * 100 + '%;bottom:' + bottom + 'px;';\n }\n }\n\n if (this.$refs.yBar) {\n if (this.scrollYRatio >= 1) {\n this.$refs.yBar.setAttribute('data-p-scrollpanel-hidden', 'true');\n !this.isUnstyled && addClass(this.$refs.yBar, 'p-scrollpanel-hidden');\n } else {\n this.$refs.yBar.setAttribute('data-p-scrollpanel-hidden', 'false');\n !this.isUnstyled && removeClass(this.$refs.yBar, 'p-scrollpanel-hidden');\n\n this.$refs.yBar.style.cssText =\n 'height:' + scrollBarHeight + '%; top: calc(' + (this.$refs.content.scrollTop / (totalHeight - ownHeight)) * (100 - scrollBarHeight) + '% - ' + this.$refs.xBar.clientHeight + 'px); inset-inline-end:' + right + 'px;';\n }\n }\n });\n }\n },\n onYBarMouseDown(e) {\n this.isYBarClicked = true;\n this.$refs.yBar.focus();\n this.lastPageY = e.pageY;\n this.$refs.yBar.setAttribute('data-p-scrollpanel-grabbed', 'true');\n !this.isUnstyled && addClass(this.$refs.yBar, 'p-scrollpanel-grabbed');\n document.body.setAttribute('data-p-scrollpanel-grabbed', 'true');\n !this.isUnstyled && addClass(document.body, 'p-scrollpanel-grabbed');\n\n this.bindDocumentMouseListeners();\n e.preventDefault();\n },\n onXBarMouseDown(e) {\n this.isXBarClicked = true;\n this.$refs.xBar.focus();\n this.lastPageX = e.pageX;\n this.$refs.yBar.setAttribute('data-p-scrollpanel-grabbed', 'false');\n !this.isUnstyled && addClass(this.$refs.xBar, 'p-scrollpanel-grabbed');\n document.body.setAttribute('data-p-scrollpanel-grabbed', 'false');\n !this.isUnstyled && addClass(document.body, 'p-scrollpanel-grabbed');\n\n this.bindDocumentMouseListeners();\n e.preventDefault();\n },\n onScroll(event) {\n if (this.lastScrollLeft !== event.target.scrollLeft) {\n this.lastScrollLeft = event.target.scrollLeft;\n this.orientation = 'horizontal';\n } else if (this.lastScrollTop !== event.target.scrollTop) {\n this.lastScrollTop = event.target.scrollTop;\n this.orientation = 'vertical';\n }\n\n this.moveBar();\n },\n onKeyDown(event) {\n if (this.orientation === 'vertical') {\n switch (event.code) {\n case 'ArrowDown': {\n this.setTimer('scrollTop', this.step);\n event.preventDefault();\n break;\n }\n\n case 'ArrowUp': {\n this.setTimer('scrollTop', this.step * -1);\n event.preventDefault();\n break;\n }\n\n case 'ArrowLeft':\n\n case 'ArrowRight': {\n event.preventDefault();\n break;\n }\n\n default:\n //no op\n break;\n }\n } else if (this.orientation === 'horizontal') {\n switch (event.code) {\n case 'ArrowRight': {\n this.setTimer('scrollLeft', this.step);\n event.preventDefault();\n break;\n }\n\n case 'ArrowLeft': {\n this.setTimer('scrollLeft', this.step * -1);\n event.preventDefault();\n break;\n }\n\n case 'ArrowDown':\n\n case 'ArrowUp': {\n event.preventDefault();\n break;\n }\n\n default:\n //no op\n break;\n }\n }\n },\n onKeyUp() {\n this.clearTimer();\n },\n repeat(bar, step) {\n this.$refs.content[bar] += step;\n this.moveBar();\n },\n setTimer(bar, step) {\n this.clearTimer();\n this.timer = setTimeout(() => {\n this.repeat(bar, step);\n }, 40);\n },\n clearTimer() {\n if (this.timer) {\n clearTimeout(this.timer);\n }\n },\n onDocumentMouseMove(e) {\n if (this.isXBarClicked) {\n this.onMouseMoveForXBar(e);\n } else if (this.isYBarClicked) {\n this.onMouseMoveForYBar(e);\n } else {\n this.onMouseMoveForXBar(e);\n this.onMouseMoveForYBar(e);\n }\n },\n onMouseMoveForXBar(e) {\n let deltaX = e.pageX - this.lastPageX;\n\n this.lastPageX = e.pageX;\n\n this.frame = this.requestAnimationFrame(() => {\n this.$refs.content.scrollLeft += deltaX / this.scrollXRatio;\n });\n },\n onMouseMoveForYBar(e) {\n let deltaY = e.pageY - this.lastPageY;\n\n this.lastPageY = e.pageY;\n\n this.frame = this.requestAnimationFrame(() => {\n this.$refs.content.scrollTop += deltaY / this.scrollYRatio;\n });\n },\n onFocus(event) {\n if (this.$refs.xBar.isSameNode(event.target)) {\n this.orientation = 'horizontal';\n } else if (this.$refs.yBar.isSameNode(event.target)) {\n this.orientation = 'vertical';\n }\n },\n onBlur() {\n if (this.orientation === 'horizontal') {\n this.orientation = 'vertical';\n }\n },\n onDocumentMouseUp() {\n this.$refs.yBar.setAttribute('data-p-scrollpanel-grabbed', 'false');\n !this.isUnstyled && removeClass(this.$refs.yBar, 'p-scrollpanel-grabbed');\n this.$refs.xBar.setAttribute('data-p-scrollpanel-grabbed', 'false');\n !this.isUnstyled && removeClass(this.$refs.xBar, 'p-scrollpanel-grabbed');\n document.body.setAttribute('data-p-scrollpanel-grabbed', 'false');\n !this.isUnstyled && removeClass(document.body, 'p-scrollpanel-grabbed');\n\n this.unbindDocumentMouseListeners();\n this.isXBarClicked = false;\n this.isYBarClicked = false;\n },\n requestAnimationFrame(f) {\n let frame = window.requestAnimationFrame || this.timeoutFrame;\n\n return frame(f);\n },\n refresh() {\n this.moveBar();\n },\n scrollTop(scrollTop) {\n let scrollableHeight = this.$refs.content.scrollHeight - this.$refs.content.clientHeight;\n\n scrollTop = scrollTop > scrollableHeight ? scrollableHeight : scrollTop > 0 ? scrollTop : 0;\n this.$refs.content.scrollTop = scrollTop;\n },\n timeoutFrame(fn) {\n setTimeout(fn, 0);\n },\n bindDocumentMouseListeners() {\n if (!this.documentMouseMoveListener) {\n this.documentMouseMoveListener = (e) => {\n this.onDocumentMouseMove(e);\n };\n\n document.addEventListener('mousemove', this.documentMouseMoveListener);\n }\n\n if (!this.documentMouseUpListener) {\n this.documentMouseUpListener = (e) => {\n this.onDocumentMouseUp(e);\n };\n\n document.addEventListener('mouseup', this.documentMouseUpListener);\n }\n },\n unbindDocumentMouseListeners() {\n if (this.documentMouseMoveListener) {\n document.removeEventListener('mousemove', this.documentMouseMoveListener);\n this.documentMouseMoveListener = null;\n }\n\n if (this.documentMouseUpListener) {\n document.removeEventListener('mouseup', this.documentMouseUpListener);\n this.documentMouseUpListener = null;\n }\n },\n bindDocumentResizeListener() {\n if (!this.documentResizeListener) {\n this.documentResizeListener = () => {\n this.moveBar();\n };\n\n window.addEventListener('resize', this.documentResizeListener);\n }\n },\n unbindDocumentResizeListener() {\n if (this.documentResizeListener) {\n window.removeEventListener('resize', this.documentResizeListener);\n this.documentResizeListener = null;\n }\n }\n },\n computed: {\n contentId() {\n return this.$id + '_content';\n }\n }\n};\n</script>\n"],"names":["name","BaseComponent","props","step","type","Number","style","ScrollPanelStyle","provide","$pcScrollPanel","$parentInstance","BaseScrollPanel","inheritAttrs","initialized","documentResizeListener","documentMouseMoveListener","documentMouseUpListener","frame","scrollXRatio","scrollYRatio","isXBarClicked","isYBarClicked","lastPageX","lastPageY","timer","outsideClickListener","data","orientation","lastScrollTop","lastScrollLeft","mounted","$el","offsetParent","initialize","updated","beforeUnmount","unbindDocumentResizeListener","window","cancelAnimationFrame","methods","moveBar","bindDocumentResizeListener","calculateContainerHeight","containerStyles","getComputedStyle","xBarStyles","$refs","xBar","pureContainerHeight","getHeight","parseInt","content","offsetHeight","height","parseFloat","paddingTop","paddingBottom","borderTopWidth","borderBottomWidth","_this","totalWidth","scrollWidth","ownWidth","clientWidth","bottom","clientHeight","totalHeight","scrollHeight","ownHeight","right","yBar","scrollBarHeight","Math","max","requestAnimationFrame","setAttribute","isUnstyled","addClass","removeClass","cssText","abs","scrollLeft","scrollTop","onYBarMouseDown","e","focus","pageY","document","body","bindDocumentMouseListeners","preventDefault","onXBarMouseDown","pageX","onScroll","event","target","onKeyDown","code","setTimer","onKeyUp","clearTimer","repeat","bar","_this2","setTimeout","clearTimeout","onDocumentMouseMove","onMouseMoveForXBar","onMouseMoveForYBar","_this3","deltaX","_this4","deltaY","onFocus","isSameNode","onBlur","onDocumentMouseUp","unbindDocumentMouseListeners","f","timeoutFrame","refresh","scrollableHeight","fn","_this5","addEventListener","removeEventListener","_this6","computed","contentId","$id","_openBlock","_createElementBlock","_mergeProps","_ctx","cx","ptmi","_createElementVNode","ptm","ref","id","$options","apply","arguments","onMouseenter","_renderSlot","$slots","tabindex","role","$data","onMousedown","onKeydown","_cache","$event","onKeyup","_hoisted_2","_hoisted_3"],"mappings":"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"}