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 25.5 kB
{"version":3,"file":"index.mjs","sources":["../../src/tablist/BaseTabList.vue","../../src/tablist/TabList.vue","../../src/tablist/TabList.vue?vue&type=template&id=2e7eb3bb&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport TabListStyle from 'primevue/tablist/style';\n\nexport default {\n name: 'BaseTabList',\n extends: BaseComponent,\n props: {},\n style: TabListStyle,\n provide() {\n return {\n $pcTabList: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <div ref=\"list\" :class=\"cx('root')\" :data-p=\"dataP\" v-bind=\"ptmi('root')\">\n <button\n v-if=\"showNavigators && isPrevButtonEnabled\"\n ref=\"prevButton\"\n type=\"button\"\n v-ripple\n :class=\"cx('prevButton')\"\n :aria-label=\"prevButtonAriaLabel\"\n :tabindex=\"$pcTabs.tabindex\"\n @click=\"onPrevButtonClick\"\n v-bind=\"ptm('prevButton')\"\n data-pc-group-section=\"navigator\"\n >\n <component :is=\"templates.previcon || 'ChevronLeftIcon'\" aria-hidden=\"true\" v-bind=\"ptm('prevIcon')\" />\n </button>\n <div ref=\"content\" :class=\"cx('content')\" @scroll=\"onScroll\" :data-p=\"dataP\" v-bind=\"ptm('content')\">\n <div ref=\"tabs\" :class=\"cx('tabList')\" role=\"tablist\" :aria-orientation=\"$pcTabs.orientation || 'horizontal'\" v-bind=\"ptm('tabList')\">\n <slot></slot>\n <span ref=\"inkbar\" :class=\"cx('activeBar')\" role=\"presentation\" aria-hidden=\"true\" v-bind=\"ptm('activeBar')\"></span>\n </div>\n </div>\n <button\n v-if=\"showNavigators && isNextButtonEnabled\"\n ref=\"nextButton\"\n type=\"button\"\n v-ripple\n :class=\"cx('nextButton')\"\n :aria-label=\"nextButtonAriaLabel\"\n :tabindex=\"$pcTabs.tabindex\"\n @click=\"onNextButtonClick\"\n v-bind=\"ptm('nextButton')\"\n data-pc-group-section=\"navigator\"\n >\n <component :is=\"templates.nexticon || 'ChevronRightIcon'\" aria-hidden=\"true\" v-bind=\"ptm('nextIcon')\" />\n </button>\n </div>\n</template>\n\n<script>\nimport { cn } from '@primeuix/utils';\nimport { findSingle, getHeight, getOffset, getOuterHeight, getOuterWidth, getWidth, isRTL } from '@primeuix/utils/dom';\nimport ChevronLeftIcon from '@primevue/icons/chevronleft';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport Ripple from 'primevue/ripple';\nimport BaseTabList from './BaseTabList.vue';\n\nexport default {\n name: 'TabList',\n extends: BaseTabList,\n inheritAttrs: false,\n inject: ['$pcTabs'],\n data() {\n return {\n isPrevButtonEnabled: false,\n isNextButtonEnabled: true\n };\n },\n resizeObserver: undefined,\n watch: {\n showNavigators(newValue) {\n newValue ? this.bindResizeObserver() : this.unbindResizeObserver();\n },\n activeValue: {\n flush: 'post',\n handler() {\n this.updateInkBar();\n }\n }\n },\n mounted() {\n setTimeout(() => {\n this.updateInkBar();\n }, 150);\n\n if (this.showNavigators) {\n this.updateButtonState();\n this.bindResizeObserver();\n }\n },\n updated() {\n this.showNavigators && this.updateButtonState();\n },\n beforeUnmount() {\n this.unbindResizeObserver();\n },\n methods: {\n onScroll(event) {\n this.showNavigators && this.updateButtonState();\n\n event.preventDefault();\n },\n onPrevButtonClick() {\n const content = this.$refs.content;\n const buttonWidths = this.getVisibleButtonWidths();\n const width = getWidth(content) - buttonWidths;\n const currentScrollLeft = Math.abs(content.scrollLeft);\n const scrollStep = width * 0.8;\n const targetScrollLeft = currentScrollLeft - scrollStep;\n const scrollLeft = Math.max(targetScrollLeft, 0);\n\n content.scrollLeft = isRTL(content) ? -1 * scrollLeft : scrollLeft;\n },\n onNextButtonClick() {\n const content = this.$refs.content;\n const buttonWidths = this.getVisibleButtonWidths();\n const width = getWidth(content) - buttonWidths;\n const currentScrollLeft = Math.abs(content.scrollLeft);\n const scrollStep = width * 0.8;\n const targetScrollLeft = currentScrollLeft + scrollStep;\n const maxScrollLeft = content.scrollWidth - width;\n const scrollLeft = Math.min(targetScrollLeft, maxScrollLeft);\n\n content.scrollLeft = isRTL(content) ? -1 * scrollLeft : scrollLeft;\n },\n bindResizeObserver() {\n this.resizeObserver = new ResizeObserver(() => this.updateButtonState());\n this.resizeObserver.observe(this.$refs.list);\n },\n unbindResizeObserver() {\n this.resizeObserver?.unobserve(this.$refs.list);\n this.resizeObserver = undefined;\n },\n updateInkBar() {\n const { content, inkbar, tabs } = this.$refs;\n\n if (!inkbar) return;\n\n const activeTab = findSingle(content, '[data-pc-name=\"tab\"][data-p-active=\"true\"]');\n\n if (this.$pcTabs.isVertical()) {\n inkbar.style.height = getOuterHeight(activeTab) + 'px';\n inkbar.style.top = getOffset(activeTab).top - getOffset(tabs).top + 'px';\n } else {\n inkbar.style.width = getOuterWidth(activeTab) + 'px';\n inkbar.style.left = getOffset(activeTab).left - getOffset(tabs).left + 'px';\n }\n },\n updateButtonState() {\n const { list, content } = this.$refs;\n const { scrollTop, scrollWidth, scrollHeight, offsetWidth, offsetHeight } = content;\n const scrollLeft = Math.abs(content.scrollLeft);\n const [width, height] = [getWidth(content), getHeight(content)];\n\n if (this.$pcTabs.isVertical()) {\n this.isPrevButtonEnabled = scrollTop !== 0;\n this.isNextButtonEnabled = list.offsetHeight >= offsetHeight && parseInt(scrollTop) !== scrollHeight - height;\n } else {\n this.isPrevButtonEnabled = scrollLeft !== 0;\n this.isNextButtonEnabled = list.offsetWidth >= offsetWidth && parseInt(scrollLeft) !== scrollWidth - width;\n }\n },\n getVisibleButtonWidths() {\n const { prevButton, nextButton } = this.$refs;\n let width = 0;\n\n if (this.showNavigators) {\n width = (prevButton?.offsetWidth || 0) + (nextButton?.offsetWidth || 0);\n }\n\n return width;\n }\n },\n computed: {\n templates() {\n return this.$pcTabs.$slots;\n },\n activeValue() {\n return this.$pcTabs.d_value;\n },\n showNavigators() {\n return this.$pcTabs.scrollable && this.$pcTabs.showNavigators;\n },\n prevButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.previous : undefined;\n },\n nextButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.next : undefined;\n },\n dataP() {\n return cn({\n scrollable: this.$pcTabs.scrollable\n });\n }\n },\n components: {\n ChevronLeftIcon,\n ChevronRightIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <div ref=\"list\" :class=\"cx('root')\" :data-p=\"dataP\" v-bind=\"ptmi('root')\">\n <button\n v-if=\"showNavigators && isPrevButtonEnabled\"\n ref=\"prevButton\"\n type=\"button\"\n v-ripple\n :class=\"cx('prevButton')\"\n :aria-label=\"prevButtonAriaLabel\"\n :tabindex=\"$pcTabs.tabindex\"\n @click=\"onPrevButtonClick\"\n v-bind=\"ptm('prevButton')\"\n data-pc-group-section=\"navigator\"\n >\n <component :is=\"templates.previcon || 'ChevronLeftIcon'\" aria-hidden=\"true\" v-bind=\"ptm('prevIcon')\" />\n </button>\n <div ref=\"content\" :class=\"cx('content')\" @scroll=\"onScroll\" :data-p=\"dataP\" v-bind=\"ptm('content')\">\n <div ref=\"tabs\" :class=\"cx('tabList')\" role=\"tablist\" :aria-orientation=\"$pcTabs.orientation || 'horizontal'\" v-bind=\"ptm('tabList')\">\n <slot></slot>\n <span ref=\"inkbar\" :class=\"cx('activeBar')\" role=\"presentation\" aria-hidden=\"true\" v-bind=\"ptm('activeBar')\"></span>\n </div>\n </div>\n <button\n v-if=\"showNavigators && isNextButtonEnabled\"\n ref=\"nextButton\"\n type=\"button\"\n v-ripple\n :class=\"cx('nextButton')\"\n :aria-label=\"nextButtonAriaLabel\"\n :tabindex=\"$pcTabs.tabindex\"\n @click=\"onNextButtonClick\"\n v-bind=\"ptm('nextButton')\"\n data-pc-group-section=\"navigator\"\n >\n <component :is=\"templates.nexticon || 'ChevronRightIcon'\" aria-hidden=\"true\" v-bind=\"ptm('nextIcon')\" />\n </button>\n </div>\n</template>\n\n<script>\nimport { cn } from '@primeuix/utils';\nimport { findSingle, getHeight, getOffset, getOuterHeight, getOuterWidth, getWidth, isRTL } from '@primeuix/utils/dom';\nimport ChevronLeftIcon from '@primevue/icons/chevronleft';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport Ripple from 'primevue/ripple';\nimport BaseTabList from './BaseTabList.vue';\n\nexport default {\n name: 'TabList',\n extends: BaseTabList,\n inheritAttrs: false,\n inject: ['$pcTabs'],\n data() {\n return {\n isPrevButtonEnabled: false,\n isNextButtonEnabled: true\n };\n },\n resizeObserver: undefined,\n watch: {\n showNavigators(newValue) {\n newValue ? this.bindResizeObserver() : this.unbindResizeObserver();\n },\n activeValue: {\n flush: 'post',\n handler() {\n this.updateInkBar();\n }\n }\n },\n mounted() {\n setTimeout(() => {\n this.updateInkBar();\n }, 150);\n\n if (this.showNavigators) {\n this.updateButtonState();\n this.bindResizeObserver();\n }\n },\n updated() {\n this.showNavigators && this.updateButtonState();\n },\n beforeUnmount() {\n this.unbindResizeObserver();\n },\n methods: {\n onScroll(event) {\n this.showNavigators && this.updateButtonState();\n\n event.preventDefault();\n },\n onPrevButtonClick() {\n const content = this.$refs.content;\n const buttonWidths = this.getVisibleButtonWidths();\n const width = getWidth(content) - buttonWidths;\n const currentScrollLeft = Math.abs(content.scrollLeft);\n const scrollStep = width * 0.8;\n const targetScrollLeft = currentScrollLeft - scrollStep;\n const scrollLeft = Math.max(targetScrollLeft, 0);\n\n content.scrollLeft = isRTL(content) ? -1 * scrollLeft : scrollLeft;\n },\n onNextButtonClick() {\n const content = this.$refs.content;\n const buttonWidths = this.getVisibleButtonWidths();\n const width = getWidth(content) - buttonWidths;\n const currentScrollLeft = Math.abs(content.scrollLeft);\n const scrollStep = width * 0.8;\n const targetScrollLeft = currentScrollLeft + scrollStep;\n const maxScrollLeft = content.scrollWidth - width;\n const scrollLeft = Math.min(targetScrollLeft, maxScrollLeft);\n\n content.scrollLeft = isRTL(content) ? -1 * scrollLeft : scrollLeft;\n },\n bindResizeObserver() {\n this.resizeObserver = new ResizeObserver(() => this.updateButtonState());\n this.resizeObserver.observe(this.$refs.list);\n },\n unbindResizeObserver() {\n this.resizeObserver?.unobserve(this.$refs.list);\n this.resizeObserver = undefined;\n },\n updateInkBar() {\n const { content, inkbar, tabs } = this.$refs;\n\n if (!inkbar) return;\n\n const activeTab = findSingle(content, '[data-pc-name=\"tab\"][data-p-active=\"true\"]');\n\n if (this.$pcTabs.isVertical()) {\n inkbar.style.height = getOuterHeight(activeTab) + 'px';\n inkbar.style.top = getOffset(activeTab).top - getOffset(tabs).top + 'px';\n } else {\n inkbar.style.width = getOuterWidth(activeTab) + 'px';\n inkbar.style.left = getOffset(activeTab).left - getOffset(tabs).left + 'px';\n }\n },\n updateButtonState() {\n const { list, content } = this.$refs;\n const { scrollTop, scrollWidth, scrollHeight, offsetWidth, offsetHeight } = content;\n const scrollLeft = Math.abs(content.scrollLeft);\n const [width, height] = [getWidth(content), getHeight(content)];\n\n if (this.$pcTabs.isVertical()) {\n this.isPrevButtonEnabled = scrollTop !== 0;\n this.isNextButtonEnabled = list.offsetHeight >= offsetHeight && parseInt(scrollTop) !== scrollHeight - height;\n } else {\n this.isPrevButtonEnabled = scrollLeft !== 0;\n this.isNextButtonEnabled = list.offsetWidth >= offsetWidth && parseInt(scrollLeft) !== scrollWidth - width;\n }\n },\n getVisibleButtonWidths() {\n const { prevButton, nextButton } = this.$refs;\n let width = 0;\n\n if (this.showNavigators) {\n width = (prevButton?.offsetWidth || 0) + (nextButton?.offsetWidth || 0);\n }\n\n return width;\n }\n },\n computed: {\n templates() {\n return this.$pcTabs.$slots;\n },\n activeValue() {\n return this.$pcTabs.d_value;\n },\n showNavigators() {\n return this.$pcTabs.scrollable && this.$pcTabs.showNavigators;\n },\n prevButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.previous : undefined;\n },\n nextButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.next : undefined;\n },\n dataP() {\n return cn({\n scrollable: this.$pcTabs.scrollable\n });\n }\n },\n components: {\n ChevronLeftIcon,\n ChevronRightIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n"],"names":["name","BaseComponent","props","style","TabListStyle","provide","$pcTabList","$parentInstance","BaseTabList","inheritAttrs","inject","data","isPrevButtonEnabled","isNextButtonEnabled","resizeObserver","undefined","watch","showNavigators","newValue","bindResizeObserver","unbindResizeObserver","activeValue","flush","handler","updateInkBar","mounted","_this","setTimeout","updateButtonState","updated","beforeUnmount","methods","onScroll","event","preventDefault","onPrevButtonClick","content","$refs","buttonWidths","getVisibleButtonWidths","width","getWidth","currentScrollLeft","Math","abs","scrollLeft","scrollStep","targetScrollLeft","max","isRTL","onNextButtonClick","maxScrollLeft","scrollWidth","min","_this2","ResizeObserver","observe","list","_this$resizeObserver","unobserve","_this$$refs","inkbar","tabs","activeTab","findSingle","$pcTabs","isVertical","height","getOuterHeight","top","getOffset","getOuterWidth","left","_this$$refs2","scrollTop","scrollHeight","offsetWidth","offsetHeight","_ref","getHeight","parseInt","_this$$refs3","prevButton","nextButton","computed","templates","$slots","d_value","scrollable","prevButtonAriaLabel","$primevue","config","locale","aria","previous","nextButtonAriaLabel","next","dataP","cn","components","ChevronLeftIcon","ChevronRightIcon","directives","ripple","Ripple","_openBlock","_createElementBlock","_mergeProps","ref","_ctx","cx","$options","ptmi","$data","_withDirectives","type","tabindex","onClick","apply","arguments","ptm","_createBlock","_resolveDynamicComponent","previcon","_createElementVNode","role","orientation","_renderSlot","nexticon"],"mappings":"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"}