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.7 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","sources":["../../src/tablist/BaseTabList.vue","../../src/tablist/TabList.vue","../../src/tablist/TabList.vue?vue&type=template&id=04812e3a&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')\" v-bind=\"ptmi('root')\">\n <button\n v-if=\"showNavigators && isPrevButtonEnabled\"\n ref=\"prevButton\"\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\" 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 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 { findSingle, getHeight, getOffset, getOuterHeight, getOuterWidth, getWidth } 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 mutationObserver: null,\n data() {\n return {\n isPrevButtonEnabled: false,\n isNextButtonEnabled: true,\n isRTL: false\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 this.$nextTick(() => {\n this.updateInkBar();\n });\n\n if (this.showNavigators) {\n this.updateButtonState();\n this.bindResizeObserver();\n }\n\n this.updateDirection();\n this.observeDirectionChanges();\n },\n updated() {\n this.showNavigators && this.updateButtonState();\n },\n beforeUnmount() {\n this.unbindResizeObserver();\n\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n }\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 width = getWidth(content);\n let pos;\n\n if (this.isRTL) {\n pos = content.scrollLeft + width;\n } else {\n pos = content.scrollLeft - width;\n }\n\n content.scrollLeft = pos <= 0 ? 0 : pos;\n },\n onNextButtonClick() {\n const content = this.$refs.content;\n const width = getWidth(content) - this.getVisibleButtonWidths();\n let pos, lastPos;\n\n if (this.isRTL) {\n pos = content.scrollLeft - width;\n lastPos = content.scrollWidth + width;\n } else {\n pos = content.scrollLeft + width;\n lastPos = content.scrollWidth - width;\n }\n\n content.scrollLeft = pos >= lastPos ? lastPos : pos;\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 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 { scrollLeft, scrollTop, scrollWidth, scrollHeight, offsetWidth, offsetHeight } = content;\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 { prevBtn, nextBtn } = this.$refs;\n\n return [prevBtn, nextBtn].reduce((acc, el) => (el ? acc + getWidth(el) : acc), 0);\n },\n updateDirection() {\n this.isRTL = !!this.$el.closest('[dir=\"rtl\"]');\n },\n observeDirectionChanges() {\n const targetNode = document.documentElement;\n const config = { attributes: true, attributeFilter: ['dir'] };\n\n this.mutationObserver = new MutationObserver(() => {\n this.updateDirection();\n });\n\n this.mutationObserver.observe(targetNode, config);\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 },\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')\" v-bind=\"ptmi('root')\">\n <button\n v-if=\"showNavigators && isPrevButtonEnabled\"\n ref=\"prevButton\"\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\" 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 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 { findSingle, getHeight, getOffset, getOuterHeight, getOuterWidth, getWidth } 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 mutationObserver: null,\n data() {\n return {\n isPrevButtonEnabled: false,\n isNextButtonEnabled: true,\n isRTL: false\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 this.$nextTick(() => {\n this.updateInkBar();\n });\n\n if (this.showNavigators) {\n this.updateButtonState();\n this.bindResizeObserver();\n }\n\n this.updateDirection();\n this.observeDirectionChanges();\n },\n updated() {\n this.showNavigators && this.updateButtonState();\n },\n beforeUnmount() {\n this.unbindResizeObserver();\n\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n }\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 width = getWidth(content);\n let pos;\n\n if (this.isRTL) {\n pos = content.scrollLeft + width;\n } else {\n pos = content.scrollLeft - width;\n }\n\n content.scrollLeft = pos <= 0 ? 0 : pos;\n },\n onNextButtonClick() {\n const content = this.$refs.content;\n const width = getWidth(content) - this.getVisibleButtonWidths();\n let pos, lastPos;\n\n if (this.isRTL) {\n pos = content.scrollLeft - width;\n lastPos = content.scrollWidth + width;\n } else {\n pos = content.scrollLeft + width;\n lastPos = content.scrollWidth - width;\n }\n\n content.scrollLeft = pos >= lastPos ? lastPos : pos;\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 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 { scrollLeft, scrollTop, scrollWidth, scrollHeight, offsetWidth, offsetHeight } = content;\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 { prevBtn, nextBtn } = this.$refs;\n\n return [prevBtn, nextBtn].reduce((acc, el) => (el ? acc + getWidth(el) : acc), 0);\n },\n updateDirection() {\n this.isRTL = !!this.$el.closest('[dir=\"rtl\"]');\n },\n observeDirectionChanges() {\n const targetNode = document.documentElement;\n const config = { attributes: true, attributeFilter: ['dir'] };\n\n this.mutationObserver = new MutationObserver(() => {\n this.updateDirection();\n });\n\n this.mutationObserver.observe(targetNode, config);\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 },\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","mutationObserver","data","isPrevButtonEnabled","isNextButtonEnabled","isRTL","resizeObserver","undefined","watch","showNavigators","newValue","bindResizeObserver","unbindResizeObserver","activeValue","flush","handler","updateInkBar","mounted","_this","$nextTick","updateButtonState","updateDirection","observeDirectionChanges","updated","beforeUnmount","disconnect","methods","onScroll","event","preventDefault","onPrevButtonClick","content","$refs","width","getWidth","pos","scrollLeft","onNextButtonClick","getVisibleButtonWidths","lastPos","scrollWidth","_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","prevBtn","nextBtn","reduce","acc","el","$el","closest","_this3","targetNode","document","documentElement","config","attributes","attributeFilter","MutationObserver","computed","templates","$slots","d_value","scrollable","prevButtonAriaLabel","$primevue","locale","aria","previous","nextButtonAriaLabel","next","components","ChevronLeftIcon","ChevronRightIcon","directives","ripple","Ripple","_openBlock","_createElementBlock","_mergeProps","ref","_ctx","cx","ptmi","$options","$data","_withDirectives","tabindex","onClick","apply","arguments","ptm","_createBlock","_resolveDynamicComponent","previcon","_createElementVNode","role","orientation","_renderSlot","nexticon"],"mappings":"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"}