{"version":3,"file":"index.mjs","sources":["../../src/speeddial/BaseSpeedDial.vue","../../src/speeddial/SpeedDial.vue","../../src/speeddial/SpeedDial.vue?vue&type=template&id=80856980&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport SpeedDialStyle from 'primevue/speeddial/style';\n\nexport default {\n    name: 'BaseSpeedDial',\n    extends: BaseComponent,\n    props: {\n        model: null,\n        visible: {\n            type: Boolean,\n            default: false\n        },\n        direction: {\n            type: String,\n            default: 'up'\n        },\n        transitionDelay: {\n            type: Number,\n            default: 30\n        },\n        type: {\n            type: String,\n            default: 'linear'\n        },\n        radius: {\n            type: Number,\n            default: 0\n        },\n        mask: {\n            type: Boolean,\n            default: false\n        },\n        disabled: {\n            type: Boolean,\n            default: false\n        },\n        hideOnClickOutside: {\n            type: Boolean,\n            default: true\n        },\n        buttonClass: null,\n        maskStyle: null,\n        maskClass: null,\n        showIcon: {\n            type: String,\n            default: undefined\n        },\n        hideIcon: {\n            type: String,\n            default: undefined\n        },\n        rotateAnimation: {\n            type: Boolean,\n            default: true\n        },\n        tooltipOptions: null,\n        style: null,\n        class: null,\n        buttonProps: {\n            type: Object,\n            default() {\n                return { rounded: true };\n            }\n        },\n        actionButtonProps: {\n            type: Object,\n            default() {\n                return { severity: 'secondary', rounded: true, size: 'small' };\n            }\n        },\n        ariaLabelledby: {\n            type: String,\n            default: null\n        },\n        ariaLabel: {\n            type: String,\n            default: null\n        }\n    },\n    style: SpeedDialStyle,\n    provide() {\n        return {\n            $pcSpeedDial: this,\n            $parentInstance: this\n        };\n    }\n};\n</script>\n","<template>\n    <div :ref=\"containerRef\" :class=\"containerClass\" :style=\"[style, sx('root')]\" v-bind=\"ptmi('root')\">\n        <slot name=\"button\" :visible=\"d_visible\" :toggleCallback=\"onClick\">\n            <Button\n                :class=\"[cx('pcButton'), buttonClass]\"\n                :disabled=\"disabled\"\n                :aria-expanded=\"d_visible\"\n                :aria-haspopup=\"true\"\n                :aria-controls=\"d_visible ? $id + '_list' : undefined\"\n                :aria-label=\"ariaLabel\"\n                :aria-labelledby=\"ariaLabelledby\"\n                :unstyled=\"unstyled\"\n                @click=\"onClick($event)\"\n                @keydown=\"onTogglerKeydown\"\n                v-bind=\"buttonProps\"\n                :pt=\"ptm('pcButton')\"\n            >\n                <template #icon=\"slotProps\">\n                    <slot name=\"icon\" :visible=\"d_visible\">\n                        <component v-if=\"d_visible && !!hideIcon\" :is=\"hideIcon ? 'span' : 'PlusIcon'\" :class=\"[hideIcon, slotProps.class]\" v-bind=\"ptm('pcButton')['icon']\" data-pc-section=\"icon\" />\n                        <component v-else :is=\"showIcon ? 'span' : 'PlusIcon'\" :class=\"[d_visible && !!hideIcon ? hideIcon : showIcon, slotProps.class]\" v-bind=\"ptm('pcButton')['icon']\" data-pc-section=\"icon\" />\n                    </slot>\n                </template>\n            </Button>\n        </slot>\n        <ul :ref=\"listRef\" :id=\"$id + '_list'\" :class=\"cx('list')\" :style=\"sx('list')\" role=\"menu\" tabindex=\"-1\" @focus=\"onFocus\" @blur=\"onBlur\" @keydown=\"onKeyDown\" v-bind=\"ptm('list')\">\n            <template v-for=\"(item, index) of model\" :key=\"index\">\n                <li\n                    v-if=\"isItemVisible(item)\"\n                    :id=\"`${$id}_${index}`\"\n                    :class=\"cx('item', { id: `${$id}_${index}`, item })\"\n                    :style=\"getItemStyle(index)\"\n                    role=\"none\"\n                    :aria-disabled=\"isItemDisabled(item)\"\n                    :data-p-active=\"isItemActive(`${$id}_${index}`)\"\n                    :data-p-disabled=\"isItemDisabled(item) || false\"\n                    v-bind=\"getPTOptions(`${$id}_${index}`, 'item')\"\n                >\n                    <template v-if=\"!$slots.item\">\n                        <Button\n                            v-tooltip:[tooltipOptions]=\"{ value: item.label, disabled: !tooltipOptions }\"\n                            :tabindex=\"-1\"\n                            role=\"menuitem\"\n                            :class=\"cx('pcAction', { item })\"\n                            :aria-label=\"item.label\"\n                            :disabled=\"disabled || isItemDisabled(item)\"\n                            :unstyled=\"unstyled\"\n                            @click=\"onItemClick($event, item)\"\n                            v-bind=\"actionButtonProps\"\n                            :pt=\"getPTOptions(`${$id}_${index}`, 'pcAction')\"\n                        >\n                            <template v-if=\"item.icon\" #icon=\"slotProps\">\n                                <slot name=\"itemicon\" :item=\"item\" :class=\"slotProps.class\">\n                                    <span :class=\"[item.icon, slotProps.class]\" v-bind=\"getPTOptions(`${$id}_${index}`, 'actionIcon')\"></span>\n                                </slot>\n                            </template>\n                        </Button>\n                    </template>\n                    <component v-else :is=\"$slots.item\" :item=\"item\" :onClick=\"(event) => onItemClick(event, item)\" :toggleCallback=\"(event) => onItemClick(event, item)\"></component>\n                </li>\n            </template>\n        </ul>\n    </div>\n    <Transition name=\"p-overlay-mask\">\n        <div v-if=\"mask && d_visible\" :class=\"[cx('mask'), maskClass]\" :style=\"maskStyle\" v-bind=\"ptm('mask')\"></div>\n    </Transition>\n</template>\n\n<script>\nimport { $dt } from '@primeuix/styled';\nimport { find, findSingle, focus } from '@primeuix/utils/dom';\nimport PlusIcon from '@primevue/icons/plus';\nimport Button from 'primevue/button';\nimport Ripple from 'primevue/ripple';\nimport Tooltip from 'primevue/tooltip';\nimport BaseSpeedDial from './BaseSpeedDial.vue';\n\n// Set fix value for SSR.\nconst Math_PI = 3.14159265358979;\n\nexport default {\n    name: 'SpeedDial',\n    extends: BaseSpeedDial,\n    inheritAttrs: false,\n    emits: ['click', 'show', 'hide', 'focus', 'blur'],\n    documentClickListener: null,\n    container: null,\n    list: null,\n    data() {\n        return {\n            d_visible: this.visible,\n            isItemClicked: false,\n            focused: false,\n            focusedOptionIndex: -1\n        };\n    },\n    watch: {\n        visible(newValue) {\n            this.d_visible = newValue;\n        }\n    },\n    mounted() {\n        if (this.type !== 'linear') {\n            const button = findSingle(this.container, '[data-pc-name=\"pcbutton\"]');\n            const firstItem = findSingle(this.list, '[data-pc-section=\"item\"]');\n\n            if (button && firstItem) {\n                const wDiff = Math.abs(button.offsetWidth - firstItem.offsetWidth);\n                const hDiff = Math.abs(button.offsetHeight - firstItem.offsetHeight);\n\n                this.list.style.setProperty($dt('item.diff.x').name, `${wDiff / 2}px`);\n                this.list.style.setProperty($dt('item.diff.y').name, `${hDiff / 2}px`);\n            }\n        }\n\n        if (this.hideOnClickOutside) {\n            this.bindDocumentClickListener();\n        }\n    },\n    beforeUnmount() {\n        this.unbindDocumentClickListener();\n    },\n    methods: {\n        getPTOptions(id, key) {\n            return this.ptm(key, {\n                context: {\n                    active: this.isItemActive(id),\n                    hidden: !this.d_visible\n                }\n            });\n        },\n        onFocus(event) {\n            this.$emit('focus', event);\n        },\n        onBlur(event) {\n            this.focusedOptionIndex = -1;\n            this.$emit('blur', event);\n        },\n        onItemClick(e, item) {\n            if (this.isItemDisabled(item)) {\n                e.preventDefault();\n\n                return;\n            }\n\n            if (item.command) {\n                item.command({ originalEvent: e, item });\n            }\n\n            this.hide();\n\n            this.isItemClicked = true;\n            e.preventDefault();\n        },\n        onClick(event) {\n            this.d_visible ? this.hide() : this.show();\n            this.isItemClicked = true;\n            this.$emit('click', event);\n        },\n        show() {\n            this.d_visible = true;\n            this.$emit('show');\n        },\n        hide() {\n            this.d_visible = false;\n            this.$emit('hide');\n        },\n        calculateTransitionDelay(index) {\n            const length = this.model.length;\n            const visible = this.d_visible;\n\n            return (visible ? index : length - index - 1) * this.transitionDelay;\n        },\n        onTogglerKeydown(event) {\n            switch (event.code) {\n                case 'ArrowDown':\n                case 'ArrowLeft':\n                    this.onTogglerArrowDown(event);\n\n                    break;\n\n                case 'ArrowUp':\n                case 'ArrowRight':\n                    this.onTogglerArrowUp(event);\n\n                    break;\n\n                case 'Escape':\n                    this.onEscapeKey();\n\n                    break;\n\n                default:\n                    break;\n            }\n        },\n        onKeyDown(event) {\n            switch (event.code) {\n                case 'ArrowDown':\n                    this.onArrowDown(event);\n                    break;\n\n                case 'ArrowUp':\n                    this.onArrowUp(event);\n                    break;\n\n                case 'ArrowLeft':\n                    this.onArrowLeft(event);\n                    break;\n\n                case 'ArrowRight':\n                    this.onArrowRight(event);\n                    break;\n\n                case 'Enter':\n                case 'NumpadEnter':\n                case 'Space':\n                    this.onEnterKey(event);\n                    break;\n\n                case 'Escape':\n                    this.onEscapeKey(event);\n                    break;\n\n                case 'Home':\n                    this.onHomeKey(event);\n                    break;\n\n                case 'End':\n                    this.onEndKey(event);\n                    break;\n\n                default:\n                    break;\n            }\n        },\n        onTogglerArrowUp(event) {\n            this.show();\n            this.navigatePrevItem(event);\n\n            event.preventDefault();\n        },\n        onTogglerArrowDown(event) {\n            this.show();\n            this.navigateNextItem(event);\n\n            event.preventDefault();\n        },\n        onEnterKey(event) {\n            const items = find(this.container, '[data-pc-section=\"item\"]');\n            const itemIndex = [...items].findIndex((item) => item.id === this.focusedOptionIndex);\n            const buttonEl = findSingle(this.container, 'button');\n\n            this.onItemClick(event, this.model[itemIndex]);\n            this.onBlur(event);\n\n            buttonEl && focus(buttonEl);\n        },\n        onEscapeKey() {\n            this.hide();\n\n            const buttonEl = findSingle(this.container, 'button');\n\n            buttonEl && focus(buttonEl);\n        },\n        onArrowUp(event) {\n            if (this.direction === 'down') {\n                this.navigatePrevItem(event);\n            } else {\n                this.navigateNextItem(event);\n            }\n        },\n        onArrowDown(event) {\n            if (this.direction === 'down') {\n                this.navigateNextItem(event);\n            } else {\n                this.navigatePrevItem(event);\n            }\n        },\n\n        onArrowLeft(event) {\n            const leftValidDirections = ['left', 'up-right', 'down-left'];\n            const rightValidDirections = ['right', 'up-left', 'down-right'];\n\n            if (leftValidDirections.includes(this.direction)) {\n                this.navigateNextItem(event);\n            } else if (rightValidDirections.includes(this.direction)) {\n                this.navigatePrevItem(event);\n            } else {\n                this.navigatePrevItem(event);\n            }\n        },\n\n        onArrowRight(event) {\n            const leftValidDirections = ['left', 'up-right', 'down-left'];\n            const rightValidDirections = ['right', 'up-left', 'down-right'];\n\n            if (leftValidDirections.includes(this.direction)) {\n                this.navigatePrevItem(event);\n            } else if (rightValidDirections.includes(this.direction)) {\n                this.navigateNextItem(event);\n            } else {\n                this.navigateNextItem(event);\n            }\n        },\n        onEndKey(event) {\n            event.preventDefault();\n\n            this.focusedOptionIndex = -1;\n            this.navigatePrevItem(event);\n        },\n        onHomeKey(event) {\n            event.preventDefault();\n\n            this.focusedOptionIndex = -1;\n            this.navigateNextItem(event);\n        },\n        navigateNextItem(event) {\n            const optionIndex = this.findNextOptionIndex(this.focusedOptionIndex);\n\n            this.changeFocusedOptionIndex(optionIndex);\n\n            event.preventDefault();\n        },\n        navigatePrevItem(event) {\n            const optionIndex = this.findPrevOptionIndex(this.focusedOptionIndex);\n\n            this.changeFocusedOptionIndex(optionIndex);\n\n            event.preventDefault();\n        },\n        changeFocusedOptionIndex(index) {\n            const items = find(this.container, '[data-pc-section=\"item\"]');\n            const filteredItems = [...items].filter((item) => item.getAttribute('data-p-disabled') !== 'true');\n\n            if (filteredItems[index]) {\n                this.focusedOptionIndex = filteredItems[index].getAttribute('id');\n                const buttonEl = findSingle(filteredItems[index], '[type=\"button\"]');\n\n                buttonEl && focus(buttonEl);\n            }\n        },\n        findPrevOptionIndex(index) {\n            const items = find(this.container, '[data-pc-section=\"item\"]');\n            const filteredItems = [...items].filter((item) => item.getAttribute('data-p-disabled') !== 'true');\n            const newIndex = index === -1 ? filteredItems[filteredItems.length - 1].id : index;\n            let matchedOptionIndex = filteredItems.findIndex((link) => link.getAttribute('id') === newIndex);\n\n            matchedOptionIndex = index === -1 ? filteredItems.length - 1 : matchedOptionIndex - 1;\n\n            return matchedOptionIndex;\n        },\n        findNextOptionIndex(index) {\n            const items = find(this.container, '[data-pc-section=\"item\"]');\n            const filteredItems = [...items].filter((item) => item.getAttribute('data-p-disabled') !== 'true');\n            const newIndex = index === -1 ? filteredItems[0].id : index;\n            let matchedOptionIndex = filteredItems.findIndex((link) => link.getAttribute('id') === newIndex);\n\n            matchedOptionIndex = index === -1 ? 0 : matchedOptionIndex + 1;\n\n            return matchedOptionIndex;\n        },\n        calculatePointStyle(index) {\n            const type = this.type;\n\n            if (type !== 'linear') {\n                const length = this.model.length;\n                const radius = this.radius || length * 20;\n\n                if (type === 'circle') {\n                    const step = (2 * Math_PI) / length;\n\n                    return {\n                        left: `calc(${radius * Math.cos(step * index)}px + ${$dt('item.diff.x', '0px').variable})`,\n                        top: `calc(${radius * Math.sin(step * index)}px + ${$dt('item.diff.y', '0px').variable})`\n                    };\n                } else if (type === 'semi-circle') {\n                    const direction = this.direction;\n                    const step = Math_PI / (length - 1);\n                    const x = `calc(${radius * Math.cos(step * index)}px + ${$dt('item.diff.x', '0px').variable})`;\n                    const y = `calc(${radius * Math.sin(step * index)}px + ${$dt('item.diff.y', '0px').variable})`;\n\n                    if (direction === 'up') {\n                        return { left: x, bottom: y };\n                    } else if (direction === 'down') {\n                        return { left: x, top: y };\n                    } else if (direction === 'left') {\n                        return { right: y, top: x };\n                    } else if (direction === 'right') {\n                        return { left: y, top: x };\n                    }\n                } else if (type === 'quarter-circle') {\n                    const direction = this.direction;\n                    const step = Math_PI / (2 * (length - 1));\n                    const x = `calc(${radius * Math.cos(step * index)}px + ${$dt('item.diff.x', '0px').variable})`;\n                    const y = `calc(${radius * Math.sin(step * index)}px + ${$dt('item.diff.y', '0px').variable})`;\n\n                    if (direction === 'up-left') {\n                        return { right: x, bottom: y };\n                    } else if (direction === 'up-right') {\n                        return { left: x, bottom: y };\n                    } else if (direction === 'down-left') {\n                        return { right: y, top: x };\n                    } else if (direction === 'down-right') {\n                        return { left: y, top: x };\n                    }\n                }\n            }\n\n            return {};\n        },\n        getItemStyle(index) {\n            const transitionDelay = this.calculateTransitionDelay(index);\n            const pointStyle = this.calculatePointStyle(index);\n\n            return {\n                transitionDelay: `${transitionDelay}ms`,\n                ...pointStyle\n            };\n        },\n        bindDocumentClickListener() {\n            if (!this.documentClickListener) {\n                this.documentClickListener = (event) => {\n                    if (this.d_visible && this.isOutsideClicked(event)) {\n                        this.hide();\n                    }\n\n                    this.isItemClicked = false;\n                };\n\n                document.addEventListener('click', this.documentClickListener);\n            }\n        },\n        unbindDocumentClickListener() {\n            if (this.documentClickListener) {\n                document.removeEventListener('click', this.documentClickListener);\n                this.documentClickListener = null;\n            }\n        },\n        isOutsideClicked(event) {\n            return this.container && !(this.container.isSameNode(event.target) || this.container.contains(event.target) || this.isItemClicked);\n        },\n        isItemVisible(item) {\n            return typeof item.visible === 'function' ? item.visible() : item.visible !== false;\n        },\n        isItemDisabled(item) {\n            return typeof item.disabled === 'function' ? item.disabled() : !!item.disabled;\n        },\n        isItemActive(id) {\n            return id === this.focusedOptionId;\n        },\n        containerRef(el) {\n            this.container = el;\n        },\n        listRef(el) {\n            this.list = el;\n        }\n    },\n    computed: {\n        containerClass() {\n            return [this.cx('root'), this.class];\n        },\n        focusedOptionId() {\n            return this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : null;\n        }\n    },\n    components: {\n        Button,\n        PlusIcon\n    },\n    directives: {\n        ripple: Ripple,\n        tooltip: Tooltip\n    }\n};\n</script>\n","<template>\n    <div :ref=\"containerRef\" :class=\"containerClass\" :style=\"[style, sx('root')]\" v-bind=\"ptmi('root')\">\n        <slot name=\"button\" :visible=\"d_visible\" :toggleCallback=\"onClick\">\n            <Button\n                :class=\"[cx('pcButton'), buttonClass]\"\n                :disabled=\"disabled\"\n                :aria-expanded=\"d_visible\"\n                :aria-haspopup=\"true\"\n                :aria-controls=\"d_visible ? $id + '_list' : undefined\"\n                :aria-label=\"ariaLabel\"\n                :aria-labelledby=\"ariaLabelledby\"\n                :unstyled=\"unstyled\"\n                @click=\"onClick($event)\"\n                @keydown=\"onTogglerKeydown\"\n                v-bind=\"buttonProps\"\n                :pt=\"ptm('pcButton')\"\n            >\n                <template #icon=\"slotProps\">\n                    <slot name=\"icon\" :visible=\"d_visible\">\n                        <component v-if=\"d_visible && !!hideIcon\" :is=\"hideIcon ? 'span' : 'PlusIcon'\" :class=\"[hideIcon, slotProps.class]\" v-bind=\"ptm('pcButton')['icon']\" data-pc-section=\"icon\" />\n                        <component v-else :is=\"showIcon ? 'span' : 'PlusIcon'\" :class=\"[d_visible && !!hideIcon ? hideIcon : showIcon, slotProps.class]\" v-bind=\"ptm('pcButton')['icon']\" data-pc-section=\"icon\" />\n                    </slot>\n                </template>\n            </Button>\n        </slot>\n        <ul :ref=\"listRef\" :id=\"$id + '_list'\" :class=\"cx('list')\" :style=\"sx('list')\" role=\"menu\" tabindex=\"-1\" @focus=\"onFocus\" @blur=\"onBlur\" @keydown=\"onKeyDown\" v-bind=\"ptm('list')\">\n            <template v-for=\"(item, index) of model\" :key=\"index\">\n                <li\n                    v-if=\"isItemVisible(item)\"\n                    :id=\"`${$id}_${index}`\"\n                    :class=\"cx('item', { id: `${$id}_${index}`, item })\"\n                    :style=\"getItemStyle(index)\"\n                    role=\"none\"\n                    :aria-disabled=\"isItemDisabled(item)\"\n                    :data-p-active=\"isItemActive(`${$id}_${index}`)\"\n                    :data-p-disabled=\"isItemDisabled(item) || false\"\n                    v-bind=\"getPTOptions(`${$id}_${index}`, 'item')\"\n                >\n                    <template v-if=\"!$slots.item\">\n                        <Button\n                            v-tooltip:[tooltipOptions]=\"{ value: item.label, disabled: !tooltipOptions }\"\n                            :tabindex=\"-1\"\n                            role=\"menuitem\"\n                            :class=\"cx('pcAction', { item })\"\n                            :aria-label=\"item.label\"\n                            :disabled=\"disabled || isItemDisabled(item)\"\n                            :unstyled=\"unstyled\"\n                            @click=\"onItemClick($event, item)\"\n                            v-bind=\"actionButtonProps\"\n                            :pt=\"getPTOptions(`${$id}_${index}`, 'pcAction')\"\n                        >\n                            <template v-if=\"item.icon\" #icon=\"slotProps\">\n                                <slot name=\"itemicon\" :item=\"item\" :class=\"slotProps.class\">\n                                    <span :class=\"[item.icon, slotProps.class]\" v-bind=\"getPTOptions(`${$id}_${index}`, 'actionIcon')\"></span>\n                                </slot>\n                            </template>\n                        </Button>\n                    </template>\n                    <component v-else :is=\"$slots.item\" :item=\"item\" :onClick=\"(event) => onItemClick(event, item)\" :toggleCallback=\"(event) => onItemClick(event, item)\"></component>\n                </li>\n            </template>\n        </ul>\n    </div>\n    <Transition name=\"p-overlay-mask\">\n        <div v-if=\"mask && d_visible\" :class=\"[cx('mask'), maskClass]\" :style=\"maskStyle\" v-bind=\"ptm('mask')\"></div>\n    </Transition>\n</template>\n\n<script>\nimport { $dt } from '@primeuix/styled';\nimport { find, findSingle, focus } from '@primeuix/utils/dom';\nimport PlusIcon from '@primevue/icons/plus';\nimport Button from 'primevue/button';\nimport Ripple from 'primevue/ripple';\nimport Tooltip from 'primevue/tooltip';\nimport BaseSpeedDial from './BaseSpeedDial.vue';\n\n// Set fix value for SSR.\nconst Math_PI = 3.14159265358979;\n\nexport default {\n    name: 'SpeedDial',\n    extends: BaseSpeedDial,\n    inheritAttrs: false,\n    emits: ['click', 'show', 'hide', 'focus', 'blur'],\n    documentClickListener: null,\n    container: null,\n    list: null,\n    data() {\n        return {\n            d_visible: this.visible,\n            isItemClicked: false,\n            focused: false,\n            focusedOptionIndex: -1\n        };\n    },\n    watch: {\n        visible(newValue) {\n            this.d_visible = newValue;\n        }\n    },\n    mounted() {\n        if (this.type !== 'linear') {\n            const button = findSingle(this.container, '[data-pc-name=\"pcbutton\"]');\n            const firstItem = findSingle(this.list, '[data-pc-section=\"item\"]');\n\n            if (button && firstItem) {\n                const wDiff = Math.abs(button.offsetWidth - firstItem.offsetWidth);\n                const hDiff = Math.abs(button.offsetHeight - firstItem.offsetHeight);\n\n                this.list.style.setProperty($dt('item.diff.x').name, `${wDiff / 2}px`);\n                this.list.style.setProperty($dt('item.diff.y').name, `${hDiff / 2}px`);\n            }\n        }\n\n        if (this.hideOnClickOutside) {\n            this.bindDocumentClickListener();\n        }\n    },\n    beforeUnmount() {\n        this.unbindDocumentClickListener();\n    },\n    methods: {\n        getPTOptions(id, key) {\n            return this.ptm(key, {\n                context: {\n                    active: this.isItemActive(id),\n                    hidden: !this.d_visible\n                }\n            });\n        },\n        onFocus(event) {\n            this.$emit('focus', event);\n        },\n        onBlur(event) {\n            this.focusedOptionIndex = -1;\n            this.$emit('blur', event);\n        },\n        onItemClick(e, item) {\n            if (this.isItemDisabled(item)) {\n                e.preventDefault();\n\n                return;\n            }\n\n            if (item.command) {\n                item.command({ originalEvent: e, item });\n            }\n\n            this.hide();\n\n            this.isItemClicked = true;\n            e.preventDefault();\n        },\n        onClick(event) {\n            this.d_visible ? this.hide() : this.show();\n            this.isItemClicked = true;\n            this.$emit('click', event);\n        },\n        show() {\n            this.d_visible = true;\n            this.$emit('show');\n        },\n        hide() {\n            this.d_visible = false;\n            this.$emit('hide');\n        },\n        calculateTransitionDelay(index) {\n            const length = this.model.length;\n            const visible = this.d_visible;\n\n            return (visible ? index : length - index - 1) * this.transitionDelay;\n        },\n        onTogglerKeydown(event) {\n            switch (event.code) {\n                case 'ArrowDown':\n                case 'ArrowLeft':\n                    this.onTogglerArrowDown(event);\n\n                    break;\n\n                case 'ArrowUp':\n                case 'ArrowRight':\n                    this.onTogglerArrowUp(event);\n\n                    break;\n\n                case 'Escape':\n                    this.onEscapeKey();\n\n                    break;\n\n                default:\n                    break;\n            }\n        },\n        onKeyDown(event) {\n            switch (event.code) {\n                case 'ArrowDown':\n                    this.onArrowDown(event);\n                    break;\n\n                case 'ArrowUp':\n                    this.onArrowUp(event);\n                    break;\n\n                case 'ArrowLeft':\n                    this.onArrowLeft(event);\n                    break;\n\n                case 'ArrowRight':\n                    this.onArrowRight(event);\n                    break;\n\n                case 'Enter':\n                case 'NumpadEnter':\n                case 'Space':\n                    this.onEnterKey(event);\n                    break;\n\n                case 'Escape':\n                    this.onEscapeKey(event);\n                    break;\n\n                case 'Home':\n                    this.onHomeKey(event);\n                    break;\n\n                case 'End':\n                    this.onEndKey(event);\n                    break;\n\n                default:\n                    break;\n            }\n        },\n        onTogglerArrowUp(event) {\n            this.show();\n            this.navigatePrevItem(event);\n\n            event.preventDefault();\n        },\n        onTogglerArrowDown(event) {\n            this.show();\n            this.navigateNextItem(event);\n\n            event.preventDefault();\n        },\n        onEnterKey(event) {\n            const items = find(this.container, '[data-pc-section=\"item\"]');\n            const itemIndex = [...items].findIndex((item) => item.id === this.focusedOptionIndex);\n            const buttonEl = findSingle(this.container, 'button');\n\n            this.onItemClick(event, this.model[itemIndex]);\n            this.onBlur(event);\n\n            buttonEl && focus(buttonEl);\n        },\n        onEscapeKey() {\n            this.hide();\n\n            const buttonEl = findSingle(this.container, 'button');\n\n            buttonEl && focus(buttonEl);\n        },\n        onArrowUp(event) {\n            if (this.direction === 'down') {\n                this.navigatePrevItem(event);\n            } else {\n                this.navigateNextItem(event);\n            }\n        },\n        onArrowDown(event) {\n            if (this.direction === 'down') {\n                this.navigateNextItem(event);\n            } else {\n                this.navigatePrevItem(event);\n            }\n        },\n\n        onArrowLeft(event) {\n            const leftValidDirections = ['left', 'up-right', 'down-left'];\n            const rightValidDirections = ['right', 'up-left', 'down-right'];\n\n            if (leftValidDirections.includes(this.direction)) {\n                this.navigateNextItem(event);\n            } else if (rightValidDirections.includes(this.direction)) {\n                this.navigatePrevItem(event);\n            } else {\n                this.navigatePrevItem(event);\n            }\n        },\n\n        onArrowRight(event) {\n            const leftValidDirections = ['left', 'up-right', 'down-left'];\n            const rightValidDirections = ['right', 'up-left', 'down-right'];\n\n            if (leftValidDirections.includes(this.direction)) {\n                this.navigatePrevItem(event);\n            } else if (rightValidDirections.includes(this.direction)) {\n                this.navigateNextItem(event);\n            } else {\n                this.navigateNextItem(event);\n            }\n        },\n        onEndKey(event) {\n            event.preventDefault();\n\n            this.focusedOptionIndex = -1;\n            this.navigatePrevItem(event);\n        },\n        onHomeKey(event) {\n            event.preventDefault();\n\n            this.focusedOptionIndex = -1;\n            this.navigateNextItem(event);\n        },\n        navigateNextItem(event) {\n            const optionIndex = this.findNextOptionIndex(this.focusedOptionIndex);\n\n            this.changeFocusedOptionIndex(optionIndex);\n\n            event.preventDefault();\n        },\n        navigatePrevItem(event) {\n            const optionIndex = this.findPrevOptionIndex(this.focusedOptionIndex);\n\n            this.changeFocusedOptionIndex(optionIndex);\n\n            event.preventDefault();\n        },\n        changeFocusedOptionIndex(index) {\n            const items = find(this.container, '[data-pc-section=\"item\"]');\n            const filteredItems = [...items].filter((item) => item.getAttribute('data-p-disabled') !== 'true');\n\n            if (filteredItems[index]) {\n                this.focusedOptionIndex = filteredItems[index].getAttribute('id');\n                const buttonEl = findSingle(filteredItems[index], '[type=\"button\"]');\n\n                buttonEl && focus(buttonEl);\n            }\n        },\n        findPrevOptionIndex(index) {\n            const items = find(this.container, '[data-pc-section=\"item\"]');\n            const filteredItems = [...items].filter((item) => item.getAttribute('data-p-disabled') !== 'true');\n            const newIndex = index === -1 ? filteredItems[filteredItems.length - 1].id : index;\n            let matchedOptionIndex = filteredItems.findIndex((link) => link.getAttribute('id') === newIndex);\n\n            matchedOptionIndex = index === -1 ? filteredItems.length - 1 : matchedOptionIndex - 1;\n\n            return matchedOptionIndex;\n        },\n        findNextOptionIndex(index) {\n            const items = find(this.container, '[data-pc-section=\"item\"]');\n            const filteredItems = [...items].filter((item) => item.getAttribute('data-p-disabled') !== 'true');\n            const newIndex = index === -1 ? filteredItems[0].id : index;\n            let matchedOptionIndex = filteredItems.findIndex((link) => link.getAttribute('id') === newIndex);\n\n            matchedOptionIndex = index === -1 ? 0 : matchedOptionIndex + 1;\n\n            return matchedOptionIndex;\n        },\n        calculatePointStyle(index) {\n            const type = this.type;\n\n            if (type !== 'linear') {\n                const length = this.model.length;\n                const radius = this.radius || length * 20;\n\n                if (type === 'circle') {\n                    const step = (2 * Math_PI) / length;\n\n                    return {\n                        left: `calc(${radius * Math.cos(step * index)}px + ${$dt('item.diff.x', '0px').variable})`,\n                        top: `calc(${radius * Math.sin(step * index)}px + ${$dt('item.diff.y', '0px').variable})`\n                    };\n                } else if (type === 'semi-circle') {\n                    const direction = this.direction;\n                    const step = Math_PI / (length - 1);\n                    const x = `calc(${radius * Math.cos(step * index)}px + ${$dt('item.diff.x', '0px').variable})`;\n                    const y = `calc(${radius * Math.sin(step * index)}px + ${$dt('item.diff.y', '0px').variable})`;\n\n                    if (direction === 'up') {\n                        return { left: x, bottom: y };\n                    } else if (direction === 'down') {\n                        return { left: x, top: y };\n                    } else if (direction === 'left') {\n                        return { right: y, top: x };\n                    } else if (direction === 'right') {\n                        return { left: y, top: x };\n                    }\n                } else if (type === 'quarter-circle') {\n                    const direction = this.direction;\n                    const step = Math_PI / (2 * (length - 1));\n                    const x = `calc(${radius * Math.cos(step * index)}px + ${$dt('item.diff.x', '0px').variable})`;\n                    const y = `calc(${radius * Math.sin(step * index)}px + ${$dt('item.diff.y', '0px').variable})`;\n\n                    if (direction === 'up-left') {\n                        return { right: x, bottom: y };\n                    } else if (direction === 'up-right') {\n                        return { left: x, bottom: y };\n                    } else if (direction === 'down-left') {\n                        return { right: y, top: x };\n                    } else if (direction === 'down-right') {\n                        return { left: y, top: x };\n                    }\n                }\n            }\n\n            return {};\n        },\n        getItemStyle(index) {\n            const transitionDelay = this.calculateTransitionDelay(index);\n            const pointStyle = this.calculatePointStyle(index);\n\n            return {\n                transitionDelay: `${transitionDelay}ms`,\n                ...pointStyle\n            };\n        },\n        bindDocumentClickListener() {\n            if (!this.documentClickListener) {\n                this.documentClickListener = (event) => {\n                    if (this.d_visible && this.isOutsideClicked(event)) {\n                        this.hide();\n                    }\n\n                    this.isItemClicked = false;\n                };\n\n                document.addEventListener('click', this.documentClickListener);\n            }\n        },\n        unbindDocumentClickListener() {\n            if (this.documentClickListener) {\n                document.removeEventListener('click', this.documentClickListener);\n                this.documentClickListener = null;\n            }\n        },\n        isOutsideClicked(event) {\n            return this.container && !(this.container.isSameNode(event.target) || this.container.contains(event.target) || this.isItemClicked);\n        },\n        isItemVisible(item) {\n            return typeof item.visible === 'function' ? item.visible() : item.visible !== false;\n        },\n        isItemDisabled(item) {\n            return typeof item.disabled === 'function' ? item.disabled() : !!item.disabled;\n        },\n        isItemActive(id) {\n            return id === this.focusedOptionId;\n        },\n        containerRef(el) {\n            this.container = el;\n        },\n        listRef(el) {\n            this.list = el;\n        }\n    },\n    computed: {\n        containerClass() {\n            return [this.cx('root'), this.class];\n        },\n        focusedOptionId() {\n            return this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : null;\n        }\n    },\n    components: {\n        Button,\n        PlusIcon\n    },\n    directives: {\n        ripple: Ripple,\n        tooltip: Tooltip\n    }\n};\n</script>\n"],"names":["name","BaseComponent","props","model","visible","type","Boolean","direction","String","transitionDelay","Number","radius","mask","disabled","hideOnClickOutside","buttonClass","maskStyle","maskClass","showIcon","undefined","hideIcon","rotateAnimation","tooltipOptions","style","buttonProps","Object","default","rounded","actionButtonProps","severity","size","ariaLabelledby","ariaLabel","SpeedDialStyle","provide","$pcSpeedDial","$parentInstance","Math_PI","BaseSpeedDial","inheritAttrs","emits","documentClickListener","container","list","data","d_visible","isItemClicked","focused","focusedOptionIndex","watch","newValue","mounted","button","findSingle","firstItem","wDiff","Math","abs","offsetWidth","hDiff","offsetHeight","setProperty","$dt","concat","bindDocumentClickListener","beforeUnmount","unbindDocumentClickListener","methods","getPTOptions","id","key","ptm","context","active","isItemActive","hidden","onFocus","event","$emit","onBlur","onItemClick","e","item","isItemDisabled","preventDefault","command","originalEvent","hide","onClick","show","calculateTransitionDelay","index","length","onTogglerKeydown","code","onTogglerArrowDown","onTogglerArrowUp","onEscapeKey","onKeyDown","onArrowDown","onArrowUp","onArrowLeft","onArrowRight","onEnterKey","onHomeKey","onEndKey","navigatePrevItem","navigateNextItem","_this","items","find","itemIndex","_toConsumableArray","findIndex","buttonEl","focus","leftValidDirections","rightValidDirections","includes","optionIndex","findNextOptionIndex","changeFocusedOptionIndex","findPrevOptionIndex","filteredItems","filter","getAttribute","newIndex","matchedOptionIndex","link","calculatePointStyle","step","left","cos","variable","top","sin","x","y","bottom","right","getItemStyle","pointStyle","_objectSpread","_this2","isOutsideClicked","document","addEventListener","removeEventListener","isSameNode","target","contains","isItemVisible","focusedOptionId","containerRef","el","listRef","computed","containerClass","cx","components","Button","PlusIcon","directives","ripple","Ripple","tooltip","Tooltip","_createElementVNode","_mergeProps","ref","$options","_ctx","sx","ptmi","_renderSlot","$slots","$data","toggleCallback","_createVNode","_component_Button","$id","unstyled","_cache","$event","onKeydown","pt","icon","_withCtx","slotProps","_createBlock","_resolveDynamicComponent","role","tabindex","apply","arguments","_openBlock","_createElementBlock","_Fragment","_renderList","_withDirectives","label","fn","_normalizeClass","_directive_tooltip","value","_Transition"],"mappings":"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"}