UNPKG

choo-taro-ui-vue3

Version:

Taro UI Rewritten in Vue 3.0

66 lines (58 loc) 1.66 kB
import { defineComponent, computed, resolveComponent, mergeProps, openBlock, createBlock } from 'vue'; import { pxTransform } from '../utils'; const AtIcon = defineComponent({ name: "AtIcon", emits: { "click"(e) { return !!(e && typeof e === "object"); } }, props: { prefixClass: { type: String, default: "at-icon" }, value: { type: String, required: true }, color: { type: String, default: "" }, size: { type: [String, Number], default: 24 } }, setup(props, { emit }) { const rootStyle = computed(() => ({ color: props.color, fontSize: `${pxTransform(parseInt(String(props.size)) * 2)}` })); const rootClasses = computed(() => ({ [`${props.prefixClass}`]: true, [`${props.prefixClass}-${props.value}`]: Boolean(props.value) })); function handleClick(e) { emit("click", e); } return { rootClasses, rootStyle, handleClick }; } }); // Binding optimization for webpack code-split const _resolveComponent = resolveComponent, _mergeProps = mergeProps, _openBlock = openBlock, _createBlock = createBlock; function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { const _component_taro_text = process.env.TARO_ENV === "h5" ? _resolveComponent("taro-text") : "text"; return (_openBlock(), _createBlock(_component_taro_text, _mergeProps(_ctx.$attrs, { class: _ctx.rootClasses, style: _ctx.rootStyle, onTap: _ctx.handleClick }), null, 16 /* FULL_PROPS */, ["class", "style", "onTap"])) } AtIcon.render = _sfc_render; export default AtIcon;