{"version":3,"file":"VSpeedDial.mjs","names":["Toggleable","Positionable","Transitionable","ClickOutside","mixins","extend","name","directives","props","direction","type","String","default","validator","val","includes","openOnHover","Boolean","transition","computed","classes","top","right","bottom","left","absolute","fixed","isActive","render","h","children","data","class","value","on","click","mouseenter","mouseleave","btnCount","$slots","map","b","i","tag","componentOptions","Ctor","options","style","transitionDelay","key","list","mode","origin","activator"],"sources":["../../../src/components/VSpeedDial/VSpeedDial.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable */\n\n// Styles\nimport './VSpeedDial.sass'\n\n// Mixins\nimport Toggleable from '../../mixins/toggleable'\nimport Positionable from '../../mixins/positionable'\nimport Transitionable from '../../mixins/transitionable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode, VNodeData } from 'vue'\nimport { Prop } from 'vue/types/options'\n\n/* @vue/component */\nexport default mixins(Positionable, Toggleable, Transitionable).extend({\n  name: 'v-speed-dial',\n\n  directives: { ClickOutside },\n\n  props: {\n    direction: {\n      type: String as Prop<'top' | 'right' | 'bottom' | 'left'>,\n      default: 'top',\n      validator: (val: string) => {\n        return ['top', 'right', 'bottom', 'left'].includes(val)\n      },\n    },\n    openOnHover: Boolean,\n    transition: {\n      type: String,\n      default: 'scale-transition',\n    },\n  },\n\n  computed: {\n    classes (): object {\n      return {\n        'v-speed-dial': true,\n        'v-speed-dial--top': this.top,\n        'v-speed-dial--right': this.right,\n        'v-speed-dial--bottom': this.bottom,\n        'v-speed-dial--left': this.left,\n        'v-speed-dial--absolute': this.absolute,\n        'v-speed-dial--fixed': this.fixed,\n        [`v-speed-dial--direction-${this.direction}`]: true,\n        'v-speed-dial--is-active': this.isActive,\n      }\n    },\n  },\n\n  render (h): VNode {\n    let children: VNode[] = []\n    const data: VNodeData = {\n      class: this.classes,\n      directives: [{\n        name: 'click-outside',\n        value: () => (this.isActive = false),\n      }],\n      on: {\n        click: () => (this.isActive = !this.isActive),\n      },\n    }\n\n    if (this.openOnHover) {\n      data.on!.mouseenter = () => (this.isActive = true)\n      data.on!.mouseleave = () => (this.isActive = false)\n    }\n\n    if (this.isActive) {\n      let btnCount = 0\n      children = (this.$slots.default || []).map((b, i) => {\n        if (b.tag && typeof b.componentOptions !== 'undefined' && (b.componentOptions.Ctor.options.name === 'v-btn' || b.componentOptions.Ctor.options.name === 'v-tooltip')) {\n          btnCount++\n          return h('div', {\n            style: {\n              transitionDelay: btnCount * 0.05 + 's',\n            },\n            key: i,\n          }, [b])\n        } else {\n          b.key = i\n          return b\n        }\n      })\n    }\n\n    const list = h('transition-group', {\n      class: 'v-speed-dial__list',\n      props: {\n        name: this.transition,\n        mode: this.mode,\n        origin: this.origin,\n        tag: 'div',\n      },\n    }, children)\n\n    return h('div', data, [this.$slots.activator, list])\n  },\n})\n"],"mappings":"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"}