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 • 33.5 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","sources":["../../src/drawer/BaseDrawer.vue","../../src/drawer/Drawer.vue","../../src/drawer/Drawer.vue?vue&type=template&id=61e28d7e&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport DrawerStyle from 'primevue/drawer/style';\n\nexport default {\n name: 'BaseDrawer',\n extends: BaseComponent,\n props: {\n visible: {\n type: Boolean,\n default: false\n },\n position: {\n type: String,\n default: 'left'\n },\n header: {\n type: null,\n default: null\n },\n baseZIndex: {\n type: Number,\n default: 0\n },\n autoZIndex: {\n type: Boolean,\n default: true\n },\n dismissable: {\n type: Boolean,\n default: true\n },\n showCloseIcon: {\n type: Boolean,\n default: true\n },\n closeButtonProps: {\n type: Object,\n default: () => {\n return { severity: 'secondary', text: true, rounded: true };\n }\n },\n closeIcon: {\n type: String,\n default: undefined\n },\n modal: {\n type: Boolean,\n default: true\n },\n blockScroll: {\n type: Boolean,\n default: false\n },\n closeOnEscape: {\n type: Boolean,\n default: true\n }\n },\n style: DrawerStyle,\n provide() {\n return {\n $pcDrawer: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <Portal>\n <div v-if=\"containerVisible\" :ref=\"maskRef\" @mousedown=\"onMaskClick\" :class=\"cx('mask')\" :style=\"sx('mask', true, { position, modal })\" :data-p=\"dataP\" v-bind=\"ptm('mask')\">\n <transition name=\"p-drawer\" @enter=\"onEnter\" @after-enter=\"onAfterEnter\" @before-leave=\"onBeforeLeave\" @leave=\"onLeave\" @after-leave=\"onAfterLeave\" appear v-bind=\"ptm('transition')\">\n <div v-if=\"visible\" :ref=\"containerRef\" v-focustrap :class=\"cx('root')\" :style=\"sx('root')\" :role=\"modal ? 'dialog' : 'complementary'\" :aria-modal=\"modal ? true : undefined\" :data-p=\"dataP\" v-bind=\"ptmi('root')\">\n <slot v-if=\"$slots.container\" name=\"container\" :closeCallback=\"hide\"></slot>\n <template v-else>\n <div :ref=\"headerContainerRef\" :class=\"cx('header')\" v-bind=\"ptm('header')\">\n <slot name=\"header\" :class=\"cx('title')\">\n <div v-if=\"header\" :class=\"cx('title')\" v-bind=\"ptm('title')\">{{ header }}</div>\n </slot>\n <slot v-if=\"showCloseIcon\" name=\"closebutton\" :closeCallback=\"hide\">\n <Button\n :ref=\"closeButtonRef\"\n type=\"button\"\n :class=\"cx('pcCloseButton')\"\n :aria-label=\"closeAriaLabel\"\n :unstyled=\"unstyled\"\n @click=\"hide\"\n v-bind=\"closeButtonProps\"\n :pt=\"ptm('pcCloseButton')\"\n data-pc-group-section=\"iconcontainer\"\n >\n <template #icon=\"slotProps\">\n <slot name=\"closeicon\">\n <component :is=\"closeIcon ? 'span' : 'TimesIcon'\" :class=\"[closeIcon, slotProps.class]\" v-bind=\"ptm('pcCloseButton')['icon']\"></component>\n </slot>\n </template>\n </Button>\n </slot>\n </div>\n <div :ref=\"contentRef\" :class=\"cx('content')\" v-bind=\"ptm('content')\">\n <slot></slot>\n </div>\n <div v-if=\"$slots.footer\" :ref=\"footerContainerRef\" :class=\"cx('footer')\" v-bind=\"ptm('footer')\">\n <slot name=\"footer\"> </slot>\n </div>\n </template>\n </div>\n </transition>\n </div>\n </Portal>\n</template>\n\n<script>\nimport { cn } from '@primeuix/utils';\nimport { addClass, focus } from '@primeuix/utils/dom';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport TimesIcon from '@primevue/icons/times';\nimport Button from 'primevue/button';\nimport FocusTrap from 'primevue/focustrap';\nimport Portal from 'primevue/portal';\nimport { blockBodyScroll, unblockBodyScroll } from 'primevue/utils';\nimport BaseDrawer from './BaseDrawer.vue';\n\nexport default {\n name: 'Drawer',\n extends: BaseDrawer,\n inheritAttrs: false,\n emits: ['update:visible', 'show', 'after-show', 'hide', 'after-hide', 'before-hide'],\n data() {\n return {\n containerVisible: this.visible\n };\n },\n container: null,\n mask: null,\n content: null,\n headerContainer: null,\n footerContainer: null,\n closeButton: null,\n outsideClickListener: null,\n documentKeydownListener: null,\n watch: {\n dismissable(newValue) {\n if (newValue && !this.modal) {\n this.bindOutsideClickListener();\n } else {\n this.unbindOutsideClickListener();\n }\n }\n },\n updated() {\n if (this.visible) {\n this.containerVisible = this.visible;\n }\n },\n beforeUnmount() {\n this.disableDocumentSettings();\n\n if (this.mask && this.autoZIndex) {\n ZIndex.clear(this.mask);\n }\n\n this.container = null;\n this.mask = null;\n },\n methods: {\n hide() {\n this.$emit('update:visible', false);\n },\n onEnter() {\n this.$emit('show');\n this.focus();\n this.bindDocumentKeyDownListener();\n\n if (this.autoZIndex) {\n ZIndex.set('modal', this.mask, this.baseZIndex || this.$primevue.config.zIndex.modal);\n }\n },\n onAfterEnter() {\n this.enableDocumentSettings();\n this.$emit('after-show');\n },\n onBeforeLeave() {\n if (this.modal) {\n !this.isUnstyled && addClass(this.mask, 'p-overlay-mask-leave');\n }\n\n this.$emit('before-hide');\n },\n onLeave() {\n this.$emit('hide');\n },\n onAfterLeave() {\n if (this.autoZIndex) {\n ZIndex.clear(this.mask);\n }\n\n this.unbindDocumentKeyDownListener();\n this.containerVisible = false;\n this.disableDocumentSettings();\n this.$emit('after-hide');\n },\n onMaskClick(event) {\n if (this.dismissable && this.modal && this.mask === event.target) {\n this.hide();\n }\n },\n focus() {\n const findFocusableElement = (container) => {\n return container && container.querySelector('[autofocus]');\n };\n\n let focusTarget = this.$slots.header && findFocusableElement(this.headerContainer);\n\n if (!focusTarget) {\n focusTarget = this.$slots.default && findFocusableElement(this.container);\n\n if (!focusTarget) {\n focusTarget = this.$slots.footer && findFocusableElement(this.footerContainer);\n\n if (!focusTarget) {\n focusTarget = this.closeButton;\n }\n }\n }\n\n focusTarget && focus(focusTarget);\n },\n enableDocumentSettings() {\n if (this.dismissable && !this.modal) {\n this.bindOutsideClickListener();\n }\n\n if (this.blockScroll) {\n blockBodyScroll();\n }\n },\n disableDocumentSettings() {\n this.unbindOutsideClickListener();\n\n if (this.blockScroll) {\n unblockBodyScroll();\n }\n },\n onKeydown(event) {\n if (event.code === 'Escape' && this.closeOnEscape) {\n this.hide();\n }\n },\n containerRef(el) {\n this.container = el;\n },\n maskRef(el) {\n this.mask = el;\n },\n contentRef(el) {\n this.content = el;\n },\n headerContainerRef(el) {\n this.headerContainer = el;\n },\n footerContainerRef(el) {\n this.footerContainer = el;\n },\n closeButtonRef(el) {\n this.closeButton = el ? el.$el : undefined;\n },\n bindDocumentKeyDownListener() {\n if (!this.documentKeydownListener) {\n this.documentKeydownListener = this.onKeydown;\n document.addEventListener('keydown', this.documentKeydownListener);\n }\n },\n unbindDocumentKeyDownListener() {\n if (this.documentKeydownListener) {\n document.removeEventListener('keydown', this.documentKeydownListener);\n this.documentKeydownListener = null;\n }\n },\n bindOutsideClickListener() {\n if (!this.outsideClickListener) {\n this.outsideClickListener = (event) => {\n if (this.isOutsideClicked(event)) {\n this.hide();\n }\n };\n\n document.addEventListener('click', this.outsideClickListener, true);\n }\n },\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener, true);\n this.outsideClickListener = null;\n }\n },\n isOutsideClicked(event) {\n return this.container && !this.container.contains(event.target);\n }\n },\n computed: {\n fullScreen() {\n return this.position === 'full';\n },\n closeAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.close : undefined;\n },\n dataP() {\n return cn({\n 'full-screen': this.position === 'full',\n [this.position]: this.position,\n open: this.containerVisible,\n modal: this.modal\n });\n }\n },\n directives: {\n focustrap: FocusTrap\n },\n components: {\n Button,\n Portal,\n TimesIcon\n }\n};\n</script>\n","<template>\n <Portal>\n <div v-if=\"containerVisible\" :ref=\"maskRef\" @mousedown=\"onMaskClick\" :class=\"cx('mask')\" :style=\"sx('mask', true, { position, modal })\" :data-p=\"dataP\" v-bind=\"ptm('mask')\">\n <transition name=\"p-drawer\" @enter=\"onEnter\" @after-enter=\"onAfterEnter\" @before-leave=\"onBeforeLeave\" @leave=\"onLeave\" @after-leave=\"onAfterLeave\" appear v-bind=\"ptm('transition')\">\n <div v-if=\"visible\" :ref=\"containerRef\" v-focustrap :class=\"cx('root')\" :style=\"sx('root')\" :role=\"modal ? 'dialog' : 'complementary'\" :aria-modal=\"modal ? true : undefined\" :data-p=\"dataP\" v-bind=\"ptmi('root')\">\n <slot v-if=\"$slots.container\" name=\"container\" :closeCallback=\"hide\"></slot>\n <template v-else>\n <div :ref=\"headerContainerRef\" :class=\"cx('header')\" v-bind=\"ptm('header')\">\n <slot name=\"header\" :class=\"cx('title')\">\n <div v-if=\"header\" :class=\"cx('title')\" v-bind=\"ptm('title')\">{{ header }}</div>\n </slot>\n <slot v-if=\"showCloseIcon\" name=\"closebutton\" :closeCallback=\"hide\">\n <Button\n :ref=\"closeButtonRef\"\n type=\"button\"\n :class=\"cx('pcCloseButton')\"\n :aria-label=\"closeAriaLabel\"\n :unstyled=\"unstyled\"\n @click=\"hide\"\n v-bind=\"closeButtonProps\"\n :pt=\"ptm('pcCloseButton')\"\n data-pc-group-section=\"iconcontainer\"\n >\n <template #icon=\"slotProps\">\n <slot name=\"closeicon\">\n <component :is=\"closeIcon ? 'span' : 'TimesIcon'\" :class=\"[closeIcon, slotProps.class]\" v-bind=\"ptm('pcCloseButton')['icon']\"></component>\n </slot>\n </template>\n </Button>\n </slot>\n </div>\n <div :ref=\"contentRef\" :class=\"cx('content')\" v-bind=\"ptm('content')\">\n <slot></slot>\n </div>\n <div v-if=\"$slots.footer\" :ref=\"footerContainerRef\" :class=\"cx('footer')\" v-bind=\"ptm('footer')\">\n <slot name=\"footer\"> </slot>\n </div>\n </template>\n </div>\n </transition>\n </div>\n </Portal>\n</template>\n\n<script>\nimport { cn } from '@primeuix/utils';\nimport { addClass, focus } from '@primeuix/utils/dom';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport TimesIcon from '@primevue/icons/times';\nimport Button from 'primevue/button';\nimport FocusTrap from 'primevue/focustrap';\nimport Portal from 'primevue/portal';\nimport { blockBodyScroll, unblockBodyScroll } from 'primevue/utils';\nimport BaseDrawer from './BaseDrawer.vue';\n\nexport default {\n name: 'Drawer',\n extends: BaseDrawer,\n inheritAttrs: false,\n emits: ['update:visible', 'show', 'after-show', 'hide', 'after-hide', 'before-hide'],\n data() {\n return {\n containerVisible: this.visible\n };\n },\n container: null,\n mask: null,\n content: null,\n headerContainer: null,\n footerContainer: null,\n closeButton: null,\n outsideClickListener: null,\n documentKeydownListener: null,\n watch: {\n dismissable(newValue) {\n if (newValue && !this.modal) {\n this.bindOutsideClickListener();\n } else {\n this.unbindOutsideClickListener();\n }\n }\n },\n updated() {\n if (this.visible) {\n this.containerVisible = this.visible;\n }\n },\n beforeUnmount() {\n this.disableDocumentSettings();\n\n if (this.mask && this.autoZIndex) {\n ZIndex.clear(this.mask);\n }\n\n this.container = null;\n this.mask = null;\n },\n methods: {\n hide() {\n this.$emit('update:visible', false);\n },\n onEnter() {\n this.$emit('show');\n this.focus();\n this.bindDocumentKeyDownListener();\n\n if (this.autoZIndex) {\n ZIndex.set('modal', this.mask, this.baseZIndex || this.$primevue.config.zIndex.modal);\n }\n },\n onAfterEnter() {\n this.enableDocumentSettings();\n this.$emit('after-show');\n },\n onBeforeLeave() {\n if (this.modal) {\n !this.isUnstyled && addClass(this.mask, 'p-overlay-mask-leave');\n }\n\n this.$emit('before-hide');\n },\n onLeave() {\n this.$emit('hide');\n },\n onAfterLeave() {\n if (this.autoZIndex) {\n ZIndex.clear(this.mask);\n }\n\n this.unbindDocumentKeyDownListener();\n this.containerVisible = false;\n this.disableDocumentSettings();\n this.$emit('after-hide');\n },\n onMaskClick(event) {\n if (this.dismissable && this.modal && this.mask === event.target) {\n this.hide();\n }\n },\n focus() {\n const findFocusableElement = (container) => {\n return container && container.querySelector('[autofocus]');\n };\n\n let focusTarget = this.$slots.header && findFocusableElement(this.headerContainer);\n\n if (!focusTarget) {\n focusTarget = this.$slots.default && findFocusableElement(this.container);\n\n if (!focusTarget) {\n focusTarget = this.$slots.footer && findFocusableElement(this.footerContainer);\n\n if (!focusTarget) {\n focusTarget = this.closeButton;\n }\n }\n }\n\n focusTarget && focus(focusTarget);\n },\n enableDocumentSettings() {\n if (this.dismissable && !this.modal) {\n this.bindOutsideClickListener();\n }\n\n if (this.blockScroll) {\n blockBodyScroll();\n }\n },\n disableDocumentSettings() {\n this.unbindOutsideClickListener();\n\n if (this.blockScroll) {\n unblockBodyScroll();\n }\n },\n onKeydown(event) {\n if (event.code === 'Escape' && this.closeOnEscape) {\n this.hide();\n }\n },\n containerRef(el) {\n this.container = el;\n },\n maskRef(el) {\n this.mask = el;\n },\n contentRef(el) {\n this.content = el;\n },\n headerContainerRef(el) {\n this.headerContainer = el;\n },\n footerContainerRef(el) {\n this.footerContainer = el;\n },\n closeButtonRef(el) {\n this.closeButton = el ? el.$el : undefined;\n },\n bindDocumentKeyDownListener() {\n if (!this.documentKeydownListener) {\n this.documentKeydownListener = this.onKeydown;\n document.addEventListener('keydown', this.documentKeydownListener);\n }\n },\n unbindDocumentKeyDownListener() {\n if (this.documentKeydownListener) {\n document.removeEventListener('keydown', this.documentKeydownListener);\n this.documentKeydownListener = null;\n }\n },\n bindOutsideClickListener() {\n if (!this.outsideClickListener) {\n this.outsideClickListener = (event) => {\n if (this.isOutsideClicked(event)) {\n this.hide();\n }\n };\n\n document.addEventListener('click', this.outsideClickListener, true);\n }\n },\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener, true);\n this.outsideClickListener = null;\n }\n },\n isOutsideClicked(event) {\n return this.container && !this.container.contains(event.target);\n }\n },\n computed: {\n fullScreen() {\n return this.position === 'full';\n },\n closeAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.close : undefined;\n },\n dataP() {\n return cn({\n 'full-screen': this.position === 'full',\n [this.position]: this.position,\n open: this.containerVisible,\n modal: this.modal\n });\n }\n },\n directives: {\n focustrap: FocusTrap\n },\n components: {\n Button,\n Portal,\n TimesIcon\n }\n};\n</script>\n"],"names":["name","BaseComponent","props","visible","type","Boolean","position","String","header","baseZIndex","Number","autoZIndex","dismissable","showCloseIcon","closeButtonProps","Object","default","severity","text","rounded","closeIcon","undefined","modal","blockScroll","closeOnEscape","style","DrawerStyle","provide","$pcDrawer","$parentInstance","BaseDrawer","inheritAttrs","emits","data","containerVisible","container","mask","content","headerContainer","footerContainer","closeButton","outsideClickListener","documentKeydownListener","watch","newValue","bindOutsideClickListener","unbindOutsideClickListener","updated","beforeUnmount","disableDocumentSettings","ZIndex","clear","methods","hide","$emit","onEnter","focus","bindDocumentKeyDownListener","set","$primevue","config","zIndex","onAfterEnter","enableDocumentSettings","onBeforeLeave","isUnstyled","addClass","onLeave","onAfterLeave","unbindDocumentKeyDownListener","onMaskClick","event","target","findFocusableElement","querySelector","focusTarget","$slots","footer","blockBodyScroll","unblockBodyScroll","onKeydown","code","containerRef","el","maskRef","contentRef","headerContainerRef","footerContainerRef","closeButtonRef","$el","document","addEventListener","removeEventListener","_this","isOutsideClicked","contains","computed","fullScreen","closeAriaLabel","locale","aria","close","dataP","cn","_defineProperty","directives","focustrap","FocusTrap","components","Button","Portal","TimesIcon","_createBlock","_component_Portal","$data","_openBlock","_createElementBlock","_mergeProps","ref","$options","onMousedown","apply","arguments","_ctx","cx","sx","ptm","_createVNode","_Transition","appear","_withDirectives","role","ptmi","_renderSlot","closeCallback","_Fragment","key","_createElementVNode","_component_Button","unstyled","onClick","pt","icon","_withCtx","slotProps","_resolveDynamicComponent"],"mappings":"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"}