UNPKG

various-ui

Version:

This is a test version of the Vue 3 component library

74 lines (71 loc) 2.66 kB
import { defineComponent, onBeforeUnmount, openBlock, createElementBlock, normalizeClass, unref, normalizeStyle, toDisplayString, createCommentVNode, createElementVNode, renderSlot, createVNode, Transition, withCtx } from 'vue'; import { UiFormItemPropsOption } from './index.mjs'; import { useComposable } from './src/composable.mjs'; const _hoisted_1 = { class: "ui-form-container" }; const _hoisted_2 = { key: 0, class: "ui-form-message" }; const __default__ = defineComponent({ name: "UiFormItem" }); var _sfc_main = /* @__PURE__ */ defineComponent({ ...__default__, props: UiFormItemPropsOption, setup(__props, { expose: __expose }) { const define = __props; const { refs, rules, methods, computeds, emitter } = useComposable(define); const { show, hidden, validator } = methods; const { visible, content, verifyTimer } = refs; const { style, className } = computeds; if (rules && define.prop && rules[define.prop]) { emitter == null ? void 0 : emitter.on(define.prop, async (type) => methods.validator(type)); emitter == null ? void 0 : emitter.on(`trigger:${define.prop}`, (error) => methods.show(error.message, error.type || "error")); emitter == null ? void 0 : emitter.on(`reset:${define.prop}`, () => methods.hidden()); } onBeforeUnmount(() => { verifyTimer.value && clearTimeout(verifyTimer.value); }); ; __expose({ show, hidden, validator }); return (_ctx, _cache) => { return openBlock(), createElementBlock( "div", { class: normalizeClass(["ui-form-item", unref(className)]) }, [ _ctx.label ? (openBlock(), createElementBlock( "div", { key: 0, class: "ui-form-name", style: normalizeStyle(unref(style)) }, toDisplayString(_ctx.label), 5 /* TEXT, STYLE */ )) : createCommentVNode("v-if", true), createElementVNode("div", _hoisted_1, [ renderSlot(_ctx.$slots, "default"), createVNode(Transition, null, { default: withCtx(() => [ unref(visible) ? (openBlock(), createElementBlock( "div", _hoisted_2, toDisplayString(unref(content)), 1 /* TEXT */ )) : createCommentVNode("v-if", true) ]), _: 1 /* STABLE */ }) ]) ], 2 /* CLASS */ ); }; } }); export { _sfc_main as default }; //# sourceMappingURL=index.vue2.mjs.map