{"version":3,"file":"index.mjs","sources":["../../src/blockui/BaseBlockUI.vue","../../src/blockui/BlockUI.vue","../../src/blockui/BlockUI.vue?vue&type=template&id=0c5250f3&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@openvue/core/basecomponent';\nimport BlockUIStyle from 'openvue/blockui/style';\n\nexport default {\n    name: 'BaseBlockUI',\n    extends: BaseComponent,\n    props: {\n        blocked: {\n            type: Boolean,\n            default: false\n        },\n        fullScreen: {\n            type: Boolean,\n            default: false\n        },\n        baseZIndex: {\n            type: Number,\n            default: 0\n        },\n        autoZIndex: {\n            type: Boolean,\n            default: true\n        }\n    },\n    style: BlockUIStyle,\n    provide() {\n        return {\n            $pcBlockUI: this,\n            $parentInstance: this\n        };\n    }\n};\n</script>\n","<template>\n    <div ref=\"container\" :class=\"cx('root')\" :aria-busy=\"isBlocked\" v-bind=\"ptmi('root')\">\n        <slot></slot>\n    </div>\n</template>\n\n<script>\nimport { addClass, createElement, hasCSSAnimation, remove } from '@openuxkit/utils/dom';\nimport { ZIndex } from '@openuxkit/utils/zindex';\nimport { blockBodyScroll, unblockBodyScroll } from 'openvue/utils';\nimport BaseBlockUI from './BaseBlockUI.vue';\n\nexport default {\n    name: 'BlockUI',\n    extends: BaseBlockUI,\n    inheritAttrs: false,\n    emits: ['block', 'unblock'],\n    mask: null,\n    data() {\n        return {\n            isBlocked: false\n        };\n    },\n    watch: {\n        blocked(newValue) {\n            if (newValue === true) this.block();\n            else this.unblock();\n        }\n    },\n    mounted() {\n        if (this.blocked) {\n            this.block();\n        }\n    },\n    beforeUnmount() {\n        if (this.mask) {\n            ZIndex.clear(this.mask);\n            remove(this.mask);\n\n            if (this.fullScreen) {\n                unblockBodyScroll();\n            }\n\n            this.mask = null;\n        }\n    },\n    methods: {\n        block() {\n            if (this.mask) {\n                ZIndex.clear(this.mask);\n                remove(this.mask);\n                this.mask = null;\n            }\n\n            let styleClass = 'p-blockui-mask p-overlay-mask p-overlay-mask-enter-active';\n\n            if (this.fullScreen) {\n                styleClass += ' p-blockui-mask-document';\n\n                this.mask = createElement('div', {\n                    style: {\n                        position: 'fixed',\n                        top: '0',\n                        left: '0',\n                        width: '100%',\n                        height: '100%'\n                    },\n                    class: !this.isUnstyled && styleClass,\n                    'p-bind': this.ptm('mask')\n                });\n\n                document.body.appendChild(this.mask);\n                blockBodyScroll();\n                document.activeElement.blur();\n            } else {\n                this.mask = createElement('div', {\n                    style: {\n                        position: 'absolute',\n                        top: '0',\n                        left: '0',\n                        width: '100%',\n                        height: '100%'\n                    },\n                    class: !this.isUnstyled && styleClass,\n                    'p-bind': this.ptm('mask')\n                });\n                this.$refs.container.appendChild(this.mask);\n            }\n\n            if (this.autoZIndex) {\n                ZIndex.set('modal', this.mask, this.baseZIndex || this.$primevue.config.zIndex.modal);\n            }\n\n            this.isBlocked = true;\n            this.$emit('block');\n        },\n        unblock() {\n            const mask = this.mask;\n\n            this.isBlocked = false;\n\n            if (mask) {\n                mask.style.pointerEvents = 'none';\n                !this.isUnstyled && addClass(mask, 'p-overlay-mask-leave-active');\n\n                const handleAnimationEnd = () => {\n                    clearTimeout(fallbackTimer);\n                    mask.removeEventListener('animationend', handleAnimationEnd);\n                    mask.removeEventListener('webkitAnimationEnd', handleAnimationEnd);\n                    this.removeMask(mask);\n                };\n\n                const fallbackTimer = setTimeout(() => {\n                    this.removeMask(mask);\n                }, 300);\n\n                if (hasCSSAnimation(mask) > 0) {\n                    mask.addEventListener('animationend', handleAnimationEnd);\n                    mask.addEventListener('webkitAnimationEnd', handleAnimationEnd);\n                }\n            } else {\n                this.removeMask();\n            }\n        },\n        removeMask(mask = this.mask) {\n            if (mask && mask !== this.mask) return;\n\n            if (mask) {\n                ZIndex.clear(mask);\n                remove(mask);\n\n                if (this.fullScreen) {\n                    unblockBodyScroll();\n                }\n\n                this.mask = null;\n            }\n\n            this.isBlocked = false;\n            this.$emit('unblock');\n        }\n    }\n};\n</script>\n","<template>\n    <div ref=\"container\" :class=\"cx('root')\" :aria-busy=\"isBlocked\" v-bind=\"ptmi('root')\">\n        <slot></slot>\n    </div>\n</template>\n\n<script>\nimport { addClass, createElement, hasCSSAnimation, remove } from '@openuxkit/utils/dom';\nimport { ZIndex } from '@openuxkit/utils/zindex';\nimport { blockBodyScroll, unblockBodyScroll } from 'openvue/utils';\nimport BaseBlockUI from './BaseBlockUI.vue';\n\nexport default {\n    name: 'BlockUI',\n    extends: BaseBlockUI,\n    inheritAttrs: false,\n    emits: ['block', 'unblock'],\n    mask: null,\n    data() {\n        return {\n            isBlocked: false\n        };\n    },\n    watch: {\n        blocked(newValue) {\n            if (newValue === true) this.block();\n            else this.unblock();\n        }\n    },\n    mounted() {\n        if (this.blocked) {\n            this.block();\n        }\n    },\n    beforeUnmount() {\n        if (this.mask) {\n            ZIndex.clear(this.mask);\n            remove(this.mask);\n\n            if (this.fullScreen) {\n                unblockBodyScroll();\n            }\n\n            this.mask = null;\n        }\n    },\n    methods: {\n        block() {\n            if (this.mask) {\n                ZIndex.clear(this.mask);\n                remove(this.mask);\n                this.mask = null;\n            }\n\n            let styleClass = 'p-blockui-mask p-overlay-mask p-overlay-mask-enter-active';\n\n            if (this.fullScreen) {\n                styleClass += ' p-blockui-mask-document';\n\n                this.mask = createElement('div', {\n                    style: {\n                        position: 'fixed',\n                        top: '0',\n                        left: '0',\n                        width: '100%',\n                        height: '100%'\n                    },\n                    class: !this.isUnstyled && styleClass,\n                    'p-bind': this.ptm('mask')\n                });\n\n                document.body.appendChild(this.mask);\n                blockBodyScroll();\n                document.activeElement.blur();\n            } else {\n                this.mask = createElement('div', {\n                    style: {\n                        position: 'absolute',\n                        top: '0',\n                        left: '0',\n                        width: '100%',\n                        height: '100%'\n                    },\n                    class: !this.isUnstyled && styleClass,\n                    'p-bind': this.ptm('mask')\n                });\n                this.$refs.container.appendChild(this.mask);\n            }\n\n            if (this.autoZIndex) {\n                ZIndex.set('modal', this.mask, this.baseZIndex || this.$primevue.config.zIndex.modal);\n            }\n\n            this.isBlocked = true;\n            this.$emit('block');\n        },\n        unblock() {\n            const mask = this.mask;\n\n            this.isBlocked = false;\n\n            if (mask) {\n                mask.style.pointerEvents = 'none';\n                !this.isUnstyled && addClass(mask, 'p-overlay-mask-leave-active');\n\n                const handleAnimationEnd = () => {\n                    clearTimeout(fallbackTimer);\n                    mask.removeEventListener('animationend', handleAnimationEnd);\n                    mask.removeEventListener('webkitAnimationEnd', handleAnimationEnd);\n                    this.removeMask(mask);\n                };\n\n                const fallbackTimer = setTimeout(() => {\n                    this.removeMask(mask);\n                }, 300);\n\n                if (hasCSSAnimation(mask) > 0) {\n                    mask.addEventListener('animationend', handleAnimationEnd);\n                    mask.addEventListener('webkitAnimationEnd', handleAnimationEnd);\n                }\n            } else {\n                this.removeMask();\n            }\n        },\n        removeMask(mask = this.mask) {\n            if (mask && mask !== this.mask) return;\n\n            if (mask) {\n                ZIndex.clear(mask);\n                remove(mask);\n\n                if (this.fullScreen) {\n                    unblockBodyScroll();\n                }\n\n                this.mask = null;\n            }\n\n            this.isBlocked = false;\n            this.$emit('unblock');\n        }\n    }\n};\n</script>\n"],"names":["name","BaseComponent","props","blocked","type","Boolean","fullScreen","baseZIndex","Number","autoZIndex","style","BlockUIStyle","provide","$pcBlockUI","$parentInstance","BaseBlockUI","inheritAttrs","emits","mask","data","isBlocked","watch","newValue","block","unblock","mounted","beforeUnmount","ZIndex","clear","remove","unblockBodyScroll","methods","styleClass","createElement","position","top","left","width","height","isUnstyled","ptm","document","body","appendChild","blockBodyScroll","activeElement","blur","$refs","container","set","$primevue","config","zIndex","modal","$emit","_this","pointerEvents","addClass","handleAnimationEnd","clearTimeout","fallbackTimer","removeEventListener","removeMask","setTimeout","hasCSSAnimation","addEventListener","arguments","length","undefined","_openBlock","_createElementBlock","_mergeProps","ref","_ctx","cx","$data","ptmi","_renderSlot","$slots"],"mappings":"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"}