UNPKG

@vuesax-alpha/nightly

Version:
129 lines (124 loc) 4.73 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var vue = require('vue'); require('../../../hooks/index.js'); require('../../../utils/index.js'); var index$4 = require('../../icon/index.js'); var radio = require('./radio2.js'); var useRadio = require('./use-radio.js'); var pluginVue_exportHelper = require('../../../_virtual/plugin-vue_export-helper.js'); var index = require('../../../hooks/use-namespace/index.js'); var index$1 = require('../../../hooks/use-id/index.js'); var index$2 = require('../../../hooks/use-common-props/index.js'); var index$3 = require('../../../hooks/use-base-component/index.js'); var color = require('../../../utils/color.js'); const _hoisted_1 = ["id", "disabled", "readonly", "name"]; const _hoisted_2 = ["for"]; const __default__ = vue.defineComponent({ name: "VsRadio" }); const _sfc_main = vue.defineComponent({ ...__default__, props: radio.radioProps, emits: radio.radioEmits, setup(__props, { emit }) { const props = __props; const ns = index.useNamespace("radio"); const uid = index$1.useId(); const { isDisabled, loading, model, focus, checked } = useRadio.useRadio(props, emit); const color$1 = index$2.useColor("primary"); const vsBaseClasses = index$3.useVuesaxBaseComponent(color$1); const radioKls = vue.computed(() => [ vsBaseClasses, ns.b("wrapper"), ns.is("loading", loading.value), ns.is("disabled", isDisabled.value), ns.is("active", checked.value), ns.is("label-before", props.labelBefore) ]); const radioStyles = vue.computed(() => [ ns.cssVar({ color: color.getVsColor(color$1.value) }) ]); return (_ctx, _cache) => { return vue.openBlock(), vue.createElementBlock( "div", { class: vue.normalizeClass(radioKls.value), style: vue.normalizeStyle(radioStyles.value) }, [ vue.createElementVNode( "div", { class: vue.normalizeClass(vue.unref(ns).b()) }, [ vue.withDirectives(vue.createElementVNode("input", { id: vue.unref(uid), "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => vue.isRef(model) ? model.value = $event : null), type: "radio", disabled: vue.unref(isDisabled), readonly: vue.unref(isDisabled), name: _ctx.name, onFocus: _cache[1] || (_cache[1] = ($event) => focus.value = true), onBlur: _cache[2] || (_cache[2] = ($event) => focus.value = false) }, null, 40, _hoisted_1), [ [vue.vModelRadio, vue.unref(model)] ]), vue.createElementVNode( "span", { class: vue.normalizeClass(vue.unref(ns).e("effect")) }, [ _ctx.$slots.icon ? (vue.openBlock(), vue.createElementBlock( "span", { key: 0, class: vue.normalizeClass(vue.unref(ns).em("effect", "icon")) }, [ vue.renderSlot(_ctx.$slots, "icon") ], 2 )) : vue.createCommentVNode("v-if", true), vue.unref(loading) ? (vue.openBlock(), vue.createElementBlock( "span", { key: 1, class: vue.normalizeClass(vue.unref(ns).em("effect", "loading")) }, [ vue.createVNode(vue.unref(index$4.IconLoading)) ], 2 )) : vue.createCommentVNode("v-if", true) ], 2 ) ], 2 ), _ctx.$slots.default || _ctx.label ? (vue.openBlock(), vue.createElementBlock("label", { key: 0, for: vue.unref(uid), class: vue.normalizeClass(vue.unref(ns).e("label")) }, [ vue.renderSlot(_ctx.$slots, "default", {}, () => [ vue.createTextVNode( vue.toDisplayString(_ctx.label), 1 ) ]) ], 10, _hoisted_2)) : vue.createCommentVNode("v-if", true) ], 6 ); }; } }); var Radio = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["__file", "/home/runner/work/vuesax-alpha/vuesax-alpha/packages/components/radio/src/radio.vue"]]); exports["default"] = Radio; //# sourceMappingURL=radio.js.map