UNPKG

zmp-vue

Version:

Build full featured iOS & Android apps using ZMP & Vue

69 lines (58 loc) 2.17 kB
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } import { renderSlot as _renderSlot, resolveComponent as _resolveComponent, mergeProps as _mergeProps, withCtx as _withCtx, renderList as _renderList, createSlots as _createSlots, openBlock as _openBlock, createBlock as _createBlock } from "vue"; function render(_ctx, _cache) { var _class; var _component_Button = _resolveComponent("Button"); return _openBlock(), _createBlock(_component_Button, _mergeProps(_ctx.$props, { class: (_class = {}, _class[_ctx.buttonTypeClass] = true, _class['zmp-btn-responsive'] = _ctx.responsive, _class) }), _createSlots({ _: 2 }, [_renderList(_ctx.$slots, function (_, slot) { return { name: slot, fn: _withCtx(function (scope) { return [_renderSlot(_ctx.$slots, slot, scope)]; }) }; })]), 1040, ["class"]); } import { computed } from 'vue'; import Button from '../components/button'; import { BUTTON_TYPE } from '../../common/constants'; export default { name: 'zmp-button', render: render, components: { Button: Button }, props: _extends({}, Button.props, { typeName: { type: String, default: '' }, responsive: Boolean }), emits: Button.emits, setup: function setup(props) { var buttonTypeClass = computed(function () { var classPrefix = 'zmp-btn'; switch (props.typeName) { case BUTTON_TYPE.PRIMARY: return classPrefix + "-primary"; case BUTTON_TYPE.SECONDARY: return classPrefix + "-secondary"; case BUTTON_TYPE.DESTRUCTIVE: return classPrefix + "-destructive"; case BUTTON_TYPE.TERTIARY: return classPrefix + "-tertiary"; case BUTTON_TYPE.GHOST: return classPrefix + "-ghost"; default: return ''; } }); return { buttonTypeClass: buttonTypeClass }; } };