{"version":3,"file":"index.mjs","sources":["../../src/scrollpanel/BaseScrollPanel.vue","../../src/scrollpanel/ScrollPanel.vue","../../src/scrollpanel/ScrollPanel.vue?vue&type=template&id=d7d01550&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 { UniqueComponentId } from '@primevue/core/utils';\nimport { getHeight, addClass, 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            id: this.$attrs.id,\n            orientation: 'vertical',\n            lastScrollTop: 0,\n            lastScrollLeft: 0\n        };\n    },\n    watch: {\n        '$attrs.id': function (newValue) {\n            this.id = newValue || UniqueComponentId();\n        }\n    },\n    mounted() {\n        this.id = this.id || UniqueComponentId();\n\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                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                            this.$refs.xBar.style.cssText = 'width:' + Math.max(this.scrollXRatio * 100, 10) + '%; left:' + (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                            this.$refs.yBar.style.cssText =\n                                'height:' + Math.max(this.scrollYRatio * 100, 10) + '%; top: calc(' + (this.$refs.content.scrollTop / totalHeight) * 100 + '% - ' + this.$refs.xBar.clientHeight + 'px);right:' + 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 { UniqueComponentId } from '@primevue/core/utils';\nimport { getHeight, addClass, 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            id: this.$attrs.id,\n            orientation: 'vertical',\n            lastScrollTop: 0,\n            lastScrollLeft: 0\n        };\n    },\n    watch: {\n        '$attrs.id': function (newValue) {\n            this.id = newValue || UniqueComponentId();\n        }\n    },\n    mounted() {\n        this.id = this.id || UniqueComponentId();\n\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                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                            this.$refs.xBar.style.cssText = 'width:' + Math.max(this.scrollXRatio * 100, 10) + '%; left:' + (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                            this.$refs.yBar.style.cssText =\n                                'height:' + Math.max(this.scrollYRatio * 100, 10) + '%; top: calc(' + (this.$refs.content.scrollTop / totalHeight) * 100 + '% - ' + this.$refs.xBar.clientHeight + 'px);right:' + 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","id","$attrs","orientation","lastScrollTop","lastScrollLeft","watch","$attrsId","newValue","UniqueComponentId","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","requestAnimationFrame","setAttribute","isUnstyled","addClass","removeClass","cssText","Math","max","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","_openBlock","_createElementBlock","_mergeProps","_ctx","cx","ptmi","_createElementVNode","ptm","ref","$options","apply","arguments","onMouseenter","_renderSlot","$slots","tabindex","role","$data","onMousedown","onKeydown","_cache","$event","onKeyup","_hoisted_2","_hoisted_3"],"mappings":"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"}