1 |
- {"version":3,"sources":["../../../src/components/VBtn/VBtn.ts"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport '../../stylus/components/_buttons.styl'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { RippleOptions } from '../../directives/ripple'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Themeable from '../../mixins/themeable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nconst baseMixins = mixins(\n Colorable,\n Routable,\n Positionable,\n Themeable,\n GroupableFactory('btnToggle'),\n ToggleableFactory('inputValue')\n /* @vue/component */\n)\ninterface options extends ExtractVue<typeof baseMixins> {\n $el: HTMLElement\n}\n\nexport default baseMixins.extend<options>().extend({\n name: 'v-btn',\n\n props: {\n activeClass: {\n type: String,\n default: 'v-btn--active'\n },\n block: Boolean,\n depressed: Boolean,\n fab: Boolean,\n flat: Boolean,\n icon: Boolean,\n large: Boolean,\n loading: Boolean,\n outline: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: null\n },\n round: Boolean,\n small: Boolean,\n tag: {\n type: String,\n default: 'button'\n },\n type: {\n type: String,\n default: 'button'\n },\n value: null as any as PropValidator<any>\n },\n\n computed: {\n classes (): any {\n return {\n 'v-btn': true,\n [this.activeClass]: this.isActive,\n 'v-btn--absolute': this.absolute,\n 'v-btn--block': this.block,\n 'v-btn--bottom': this.bottom,\n 'v-btn--disabled': this.disabled,\n 'v-btn--flat': this.flat,\n 'v-btn--floating': this.fab,\n 'v-btn--fixed': this.fixed,\n 'v-btn--icon': this.icon,\n 'v-btn--large': this.large,\n 'v-btn--left': this.left,\n 'v-btn--loader': this.loading,\n 'v-btn--outline': this.outline,\n 'v-btn--depressed': (this.depressed && !this.flat) || this.outline,\n 'v-btn--right': this.right,\n 'v-btn--round': this.round,\n 'v-btn--router': this.to,\n 'v-btn--small': this.small,\n 'v-btn--top': this.top,\n ...this.themeClasses\n }\n },\n computedRipple (): RippleOptions | boolean {\n const defaultRipple = this.icon || this.fab ? { circle: true } : true\n if (this.disabled) return false\n else return this.ripple !== null ? this.ripple : defaultRipple\n }\n },\n\n watch: {\n '$route': 'onRouteChange'\n },\n\n methods: {\n // Prevent focus to match md spec\n click (e: MouseEvent): void {\n !this.fab &&\n e.detail &&\n this.$el.blur()\n\n this.$emit('click', e)\n\n this.btnToggle && this.toggle()\n },\n genContent (): VNode {\n return this.$createElement(\n 'div',\n { 'class': 'v-btn__content' },\n this.$slots.default\n )\n },\n genLoader (): VNode {\n return this.$createElement('span', {\n class: 'v-btn__loading'\n }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n props: {\n indeterminate: true,\n size: 23,\n width: 2\n }\n })])\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link) return\n\n const path = `_vnode.data.class.${this.activeClass}`\n\n this.$nextTick(() => {\n if (getObjectValueByPath(this.$refs.link, path)) {\n this.toggle()\n }\n })\n }\n },\n\n render (h): VNode {\n const setColor = (!this.outline && !this.flat && !this.disabled) ? this.setBackgroundColor : this.setTextColor\n const { tag, data } = this.generateRouteLink(this.classes)\n const children = [\n this.genContent(),\n this.loading && this.genLoader()\n ]\n\n if (tag === 'button') data.attrs!.type = this.type\n\n data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n ? this.value\n : JSON.stringify(this.value)\n\n if (this.btnToggle) {\n data.ref = 'link'\n }\n\n return h(tag, setColor(this.color, data), children)\n }\n})\n"],"sourceRoot":""}
|