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 • 35.2 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","sources":["../../src/popover/BasePopover.vue","../../src/popover/Popover.vue","../../src/popover/Popover.vue?vue&type=template&id=e0f90a3e&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport PopoverStyle from 'primevue/popover/style';\n\nexport default {\n name: 'BasePopover',\n extends: BaseComponent,\n props: {\n dismissable: {\n type: Boolean,\n default: true\n },\n appendTo: {\n type: [String, Object],\n default: 'body'\n },\n baseZIndex: {\n type: Number,\n default: 0\n },\n autoZIndex: {\n type: Boolean,\n default: true\n },\n breakpoints: {\n type: Object,\n default: null\n },\n closeOnEscape: {\n type: Boolean,\n default: true\n }\n },\n style: PopoverStyle,\n provide() {\n return {\n $pcPopover: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <Portal :appendTo=\"appendTo\">\n <transition name=\"p-popover\" @enter=\"onEnter\" @leave=\"onLeave\" @after-leave=\"onAfterLeave\" v-bind=\"ptm('transition')\">\n <div v-if=\"visible\" :ref=\"containerRef\" v-focustrap role=\"dialog\" :aria-modal=\"visible\" @click=\"onOverlayClick\" :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n <slot v-if=\"$slots.container\" name=\"container\" :closeCallback=\"hide\" :keydownCallback=\"(event) => onButtonKeydown(event)\"></slot>\n <template v-else>\n <div :class=\"cx('content')\" @click=\"onContentClick\" @mousedown=\"onContentClick\" @keydown=\"onContentKeydown\" v-bind=\"ptm('content')\">\n <slot></slot>\n </div>\n </template>\n </div>\n </transition>\n </Portal>\n</template>\n\n<script>\nimport { $dt } from '@primeuix/styled';\nimport { absolutePosition, addClass, addStyle, focus, getOffset, isClient, isTouchDevice, setAttribute } from '@primeuix/utils/dom';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { ConnectedOverlayScrollHandler } from '@primevue/core/utils';\nimport FocusTrap from 'primevue/focustrap';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport Ripple from 'primevue/ripple';\nimport BasePopover from './BasePopover.vue';\n\nexport default {\n name: 'Popover',\n extends: BasePopover,\n inheritAttrs: false,\n emits: ['show', 'hide'],\n data() {\n return {\n visible: false\n };\n },\n watch: {\n dismissable: {\n immediate: true,\n handler(newValue) {\n if (newValue) {\n this.bindOutsideClickListener();\n } else {\n this.unbindOutsideClickListener();\n }\n }\n }\n },\n selfClick: false,\n target: null,\n eventTarget: null,\n outsideClickListener: null,\n scrollHandler: null,\n resizeListener: null,\n container: null,\n styleElement: null,\n overlayEventListener: null,\n documentKeydownListener: null,\n beforeUnmount() {\n if (this.dismissable) {\n this.unbindOutsideClickListener();\n }\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n this.destroyStyle();\n this.unbindResizeListener();\n this.target = null;\n\n if (this.container && this.autoZIndex) {\n ZIndex.clear(this.container);\n }\n\n if (this.overlayEventListener) {\n OverlayEventBus.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\n }\n\n this.container = null;\n },\n mounted() {\n if (this.breakpoints) {\n this.createStyle();\n }\n },\n methods: {\n toggle(event, target) {\n if (this.visible) this.hide();\n else this.show(event, target);\n },\n show(event, target) {\n this.visible = true;\n this.eventTarget = event.currentTarget;\n this.target = target || event.currentTarget;\n },\n hide() {\n this.visible = false;\n },\n onContentClick() {\n this.selfClick = true;\n },\n onEnter(el) {\n addStyle(el, { position: 'absolute', top: '0' });\n this.alignOverlay();\n\n if (this.dismissable) {\n this.bindOutsideClickListener();\n }\n\n this.bindScrollListener();\n this.bindResizeListener();\n\n if (this.autoZIndex) {\n ZIndex.set('overlay', el, this.baseZIndex + this.$primevue.config.zIndex.overlay);\n }\n\n this.overlayEventListener = (e) => {\n if (this.container.contains(e.target)) {\n this.selfClick = true;\n }\n };\n\n this.focus();\n OverlayEventBus.on('overlay-click', this.overlayEventListener);\n this.$emit('show');\n\n if (this.closeOnEscape) {\n this.bindDocumentKeyDownListener();\n }\n },\n onLeave() {\n this.unbindOutsideClickListener();\n this.unbindScrollListener();\n this.unbindResizeListener();\n this.unbindDocumentKeyDownListener();\n OverlayEventBus.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\n this.$emit('hide');\n },\n onAfterLeave(el) {\n if (this.autoZIndex) {\n ZIndex.clear(el);\n }\n },\n alignOverlay() {\n absolutePosition(this.container, this.target, false);\n\n const containerOffset = getOffset(this.container);\n const targetOffset = getOffset(this.target);\n let arrowLeft = 0;\n\n if (containerOffset.left < targetOffset.left) {\n arrowLeft = targetOffset.left - containerOffset.left;\n }\n\n this.container.style.setProperty($dt('popover.arrow.left').name, `${arrowLeft}px`);\n\n if (containerOffset.top < targetOffset.top) {\n this.container.setAttribute('data-p-popover-flipped', 'true');\n !this.isUnstyled && addClass(this.container, 'p-popover-flipped');\n }\n },\n onContentKeydown(event) {\n if (event.code === 'Escape' && this.closeOnEscape) {\n this.hide();\n focus(this.target);\n }\n },\n onButtonKeydown(event) {\n switch (event.code) {\n case 'ArrowDown':\n case 'ArrowUp':\n case 'ArrowLeft':\n case 'ArrowRight':\n event.preventDefault();\n\n default:\n break;\n }\n },\n focus() {\n let focusTarget = this.container.querySelector('[autofocus]');\n\n if (focusTarget) {\n focusTarget.focus();\n }\n },\n onKeyDown(event) {\n if (event.code === 'Escape' && this.closeOnEscape) {\n this.visible = false;\n }\n },\n bindDocumentKeyDownListener() {\n if (!this.documentKeydownListener) {\n this.documentKeydownListener = this.onKeyDown.bind(this);\n window.document.addEventListener('keydown', this.documentKeydownListener);\n }\n },\n unbindDocumentKeyDownListener() {\n if (this.documentKeydownListener) {\n window.document.removeEventListener('keydown', this.documentKeydownListener);\n this.documentKeydownListener = null;\n }\n },\n bindOutsideClickListener() {\n if (!this.outsideClickListener && isClient()) {\n this.outsideClickListener = (event) => {\n if (this.visible && !this.selfClick && !this.isTargetClicked(event)) {\n this.visible = false;\n }\n\n this.selfClick = false;\n };\n\n document.addEventListener('click', this.outsideClickListener);\n }\n },\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n this.selfClick = false;\n }\n },\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.target, () => {\n if (this.visible) {\n this.visible = false;\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n },\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n },\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = () => {\n if (this.visible && !isTouchDevice()) {\n this.visible = false;\n }\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n },\n isTargetClicked(event) {\n return this.eventTarget && (this.eventTarget === event.target || this.eventTarget.contains(event.target));\n },\n containerRef(el) {\n this.container = el;\n },\n createStyle() {\n if (!this.styleElement && !this.isUnstyled) {\n this.styleElement = document.createElement('style');\n this.styleElement.type = 'text/css';\n setAttribute(this.styleElement, 'nonce', this.$primevue?.config?.csp?.nonce);\n document.head.appendChild(this.styleElement);\n\n let innerHTML = '';\n\n for (let breakpoint in this.breakpoints) {\n innerHTML += `\n @media screen and (max-width: ${breakpoint}) {\n .p-popover[${this.$attrSelector}] {\n width: ${this.breakpoints[breakpoint]} !important;\n }\n }\n `;\n }\n\n this.styleElement.innerHTML = innerHTML;\n }\n },\n destroyStyle() {\n if (this.styleElement) {\n document.head.removeChild(this.styleElement);\n this.styleElement = null;\n }\n },\n onOverlayClick(event) {\n OverlayEventBus.emit('overlay-click', {\n originalEvent: event,\n target: this.target\n });\n }\n },\n directives: {\n focustrap: FocusTrap,\n ripple: Ripple\n },\n components: {\n Portal\n }\n};\n</script>\n","<template>\n <Portal :appendTo=\"appendTo\">\n <transition name=\"p-popover\" @enter=\"onEnter\" @leave=\"onLeave\" @after-leave=\"onAfterLeave\" v-bind=\"ptm('transition')\">\n <div v-if=\"visible\" :ref=\"containerRef\" v-focustrap role=\"dialog\" :aria-modal=\"visible\" @click=\"onOverlayClick\" :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n <slot v-if=\"$slots.container\" name=\"container\" :closeCallback=\"hide\" :keydownCallback=\"(event) => onButtonKeydown(event)\"></slot>\n <template v-else>\n <div :class=\"cx('content')\" @click=\"onContentClick\" @mousedown=\"onContentClick\" @keydown=\"onContentKeydown\" v-bind=\"ptm('content')\">\n <slot></slot>\n </div>\n </template>\n </div>\n </transition>\n </Portal>\n</template>\n\n<script>\nimport { $dt } from '@primeuix/styled';\nimport { absolutePosition, addClass, addStyle, focus, getOffset, isClient, isTouchDevice, setAttribute } from '@primeuix/utils/dom';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { ConnectedOverlayScrollHandler } from '@primevue/core/utils';\nimport FocusTrap from 'primevue/focustrap';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport Ripple from 'primevue/ripple';\nimport BasePopover from './BasePopover.vue';\n\nexport default {\n name: 'Popover',\n extends: BasePopover,\n inheritAttrs: false,\n emits: ['show', 'hide'],\n data() {\n return {\n visible: false\n };\n },\n watch: {\n dismissable: {\n immediate: true,\n handler(newValue) {\n if (newValue) {\n this.bindOutsideClickListener();\n } else {\n this.unbindOutsideClickListener();\n }\n }\n }\n },\n selfClick: false,\n target: null,\n eventTarget: null,\n outsideClickListener: null,\n scrollHandler: null,\n resizeListener: null,\n container: null,\n styleElement: null,\n overlayEventListener: null,\n documentKeydownListener: null,\n beforeUnmount() {\n if (this.dismissable) {\n this.unbindOutsideClickListener();\n }\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n this.destroyStyle();\n this.unbindResizeListener();\n this.target = null;\n\n if (this.container && this.autoZIndex) {\n ZIndex.clear(this.container);\n }\n\n if (this.overlayEventListener) {\n OverlayEventBus.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\n }\n\n this.container = null;\n },\n mounted() {\n if (this.breakpoints) {\n this.createStyle();\n }\n },\n methods: {\n toggle(event, target) {\n if (this.visible) this.hide();\n else this.show(event, target);\n },\n show(event, target) {\n this.visible = true;\n this.eventTarget = event.currentTarget;\n this.target = target || event.currentTarget;\n },\n hide() {\n this.visible = false;\n },\n onContentClick() {\n this.selfClick = true;\n },\n onEnter(el) {\n addStyle(el, { position: 'absolute', top: '0' });\n this.alignOverlay();\n\n if (this.dismissable) {\n this.bindOutsideClickListener();\n }\n\n this.bindScrollListener();\n this.bindResizeListener();\n\n if (this.autoZIndex) {\n ZIndex.set('overlay', el, this.baseZIndex + this.$primevue.config.zIndex.overlay);\n }\n\n this.overlayEventListener = (e) => {\n if (this.container.contains(e.target)) {\n this.selfClick = true;\n }\n };\n\n this.focus();\n OverlayEventBus.on('overlay-click', this.overlayEventListener);\n this.$emit('show');\n\n if (this.closeOnEscape) {\n this.bindDocumentKeyDownListener();\n }\n },\n onLeave() {\n this.unbindOutsideClickListener();\n this.unbindScrollListener();\n this.unbindResizeListener();\n this.unbindDocumentKeyDownListener();\n OverlayEventBus.off('overlay-click', this.overlayEventListener);\n this.overlayEventListener = null;\n this.$emit('hide');\n },\n onAfterLeave(el) {\n if (this.autoZIndex) {\n ZIndex.clear(el);\n }\n },\n alignOverlay() {\n absolutePosition(this.container, this.target, false);\n\n const containerOffset = getOffset(this.container);\n const targetOffset = getOffset(this.target);\n let arrowLeft = 0;\n\n if (containerOffset.left < targetOffset.left) {\n arrowLeft = targetOffset.left - containerOffset.left;\n }\n\n this.container.style.setProperty($dt('popover.arrow.left').name, `${arrowLeft}px`);\n\n if (containerOffset.top < targetOffset.top) {\n this.container.setAttribute('data-p-popover-flipped', 'true');\n !this.isUnstyled && addClass(this.container, 'p-popover-flipped');\n }\n },\n onContentKeydown(event) {\n if (event.code === 'Escape' && this.closeOnEscape) {\n this.hide();\n focus(this.target);\n }\n },\n onButtonKeydown(event) {\n switch (event.code) {\n case 'ArrowDown':\n case 'ArrowUp':\n case 'ArrowLeft':\n case 'ArrowRight':\n event.preventDefault();\n\n default:\n break;\n }\n },\n focus() {\n let focusTarget = this.container.querySelector('[autofocus]');\n\n if (focusTarget) {\n focusTarget.focus();\n }\n },\n onKeyDown(event) {\n if (event.code === 'Escape' && this.closeOnEscape) {\n this.visible = false;\n }\n },\n bindDocumentKeyDownListener() {\n if (!this.documentKeydownListener) {\n this.documentKeydownListener = this.onKeyDown.bind(this);\n window.document.addEventListener('keydown', this.documentKeydownListener);\n }\n },\n unbindDocumentKeyDownListener() {\n if (this.documentKeydownListener) {\n window.document.removeEventListener('keydown', this.documentKeydownListener);\n this.documentKeydownListener = null;\n }\n },\n bindOutsideClickListener() {\n if (!this.outsideClickListener && isClient()) {\n this.outsideClickListener = (event) => {\n if (this.visible && !this.selfClick && !this.isTargetClicked(event)) {\n this.visible = false;\n }\n\n this.selfClick = false;\n };\n\n document.addEventListener('click', this.outsideClickListener);\n }\n },\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n this.selfClick = false;\n }\n },\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.target, () => {\n if (this.visible) {\n this.visible = false;\n }\n });\n }\n\n this.scrollHandler.bindScrollListener();\n },\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n },\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = () => {\n if (this.visible && !isTouchDevice()) {\n this.visible = false;\n }\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n },\n isTargetClicked(event) {\n return this.eventTarget && (this.eventTarget === event.target || this.eventTarget.contains(event.target));\n },\n containerRef(el) {\n this.container = el;\n },\n createStyle() {\n if (!this.styleElement && !this.isUnstyled) {\n this.styleElement = document.createElement('style');\n this.styleElement.type = 'text/css';\n setAttribute(this.styleElement, 'nonce', this.$primevue?.config?.csp?.nonce);\n document.head.appendChild(this.styleElement);\n\n let innerHTML = '';\n\n for (let breakpoint in this.breakpoints) {\n innerHTML += `\n @media screen and (max-width: ${breakpoint}) {\n .p-popover[${this.$attrSelector}] {\n width: ${this.breakpoints[breakpoint]} !important;\n }\n }\n `;\n }\n\n this.styleElement.innerHTML = innerHTML;\n }\n },\n destroyStyle() {\n if (this.styleElement) {\n document.head.removeChild(this.styleElement);\n this.styleElement = null;\n }\n },\n onOverlayClick(event) {\n OverlayEventBus.emit('overlay-click', {\n originalEvent: event,\n target: this.target\n });\n }\n },\n directives: {\n focustrap: FocusTrap,\n ripple: Ripple\n },\n components: {\n Portal\n }\n};\n</script>\n"],"names":["name","BaseComponent","props","dismissable","type","Boolean","appendTo","String","Object","baseZIndex","Number","autoZIndex","breakpoints","closeOnEscape","style","PopoverStyle","provide","$pcPopover","$parentInstance","BasePopover","inheritAttrs","emits","data","visible","watch","immediate","handler","newValue","bindOutsideClickListener","unbindOutsideClickListener","selfClick","target","eventTarget","outsideClickListener","scrollHandler","resizeListener","container","styleElement","overlayEventListener","documentKeydownListener","beforeUnmount","destroy","destroyStyle","unbindResizeListener","ZIndex","clear","OverlayEventBus","off","mounted","createStyle","methods","toggle","event","hide","show","currentTarget","onContentClick","onEnter","el","_this","addStyle","position","top","alignOverlay","bindScrollListener","bindResizeListener","set","$primevue","config","zIndex","overlay","e","contains","focus","on","$emit","bindDocumentKeyDownListener","onLeave","unbindScrollListener","unbindDocumentKeyDownListener","onAfterLeave","absolutePosition","containerOffset","getOffset","targetOffset","arrowLeft","left","setProperty","$dt","concat","setAttribute","isUnstyled","addClass","onContentKeydown","code","onButtonKeydown","preventDefault","focusTarget","querySelector","onKeyDown","bind","window","document","addEventListener","removeEventListener","_this2","isClient","isTargetClicked","_this3","ConnectedOverlayScrollHandler","_this4","isTouchDevice","containerRef","_this$$primevue","createElement","csp","nonce","head","appendChild","innerHTML","breakpoint","$attrSelector","removeChild","onOverlayClick","emit","originalEvent","directives","focustrap","FocusTrap","ripple","Ripple","components","Portal","_createBlock","_component_Portal","_ctx","_createVNode","_Transition","_mergeProps","$options","ptm","$data","_withDirectives","_openBlock","_createElementBlock","ref","role","onClick","apply","arguments","cx","ptmi","$slots","_renderSlot","closeCallback","keydownCallback","onMousedown","onKeydown"],"mappings":"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"}