UNPKG

tav-ui

Version:
103 lines (98 loc) 4.16 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var vue = require('vue'); var index = require('../../button/index2.js'); require('../../../hooks/index2.js'); require('../../../utils/index2.js'); var types = require('./types2.js'); var pluginVue_exportHelper = require('../../../../_virtual/plugin-vue_export-helper.js'); var useScrollToCenter = require('../../../hooks/event/useScrollToCenter2.js'); var is = require('../../../utils/is2.js'); const _sfc_main = vue.defineComponent({ name: "TaButtonGroup", components: { Button: index.TaButton }, props: types.buttonGroupProps, emits: ["btnClick", "update:active"], setup(props, { emit }) { const scrollRef = vue.ref(null); const clickHandle = (data, index, event) => { if (data.value == props.active) return; emit("update:active", data.value); emit("btnClick", data); }; const { scrollToCenter } = useScrollToCenter.useScrollToCenter(scrollRef); vue.watch(() => props.active, (v) => { const buttonIndex = props.buttons.findIndex((btn) => btn.value === v); const buttonEl = scrollRef.value?.querySelectorAll("button")[buttonIndex]; buttonEl && scrollToCenter(buttonEl); }, { immediate: true }); const getNumber = (num, item) => { if (is.isNullOrUnDef(num)) { return 0; } const badgeMax = item.badgeMax || props.badgeMax; if (props.badgeMax) { return num > badgeMax ? `${badgeMax}+` : num; } else { return num; } }; return { scrollRef, getNumber, clickHandle }; } }); const _hoisted_1 = { ref: "scrollRef", class: "ta-button-group-inner" }; const _hoisted_2 = { key: 0 }; const _hoisted_3 = { key: 1, class: "badge-count" }; function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { const _component_Button = vue.resolveComponent("Button"); return vue.openBlock(), vue.createElementBlock("div", { class: "ta-button-group", onClick: _cache[0] || (_cache[0] = vue.withModifiers(() => { }, ["stop"])) }, [ vue.createElementVNode("div", _hoisted_1, [ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.buttons, (item, index) => { return vue.openBlock(), vue.createBlock(_component_Button, { key: item.value, type: _ctx.active == item.value ? "primary" : "default", disabled: item.disabled, loading: item.loading, permission: item.permission, "permission-code": item.permissionCode, "use-permission": item.usePermission, onClick: ($event) => _ctx.clickHandle(item, index, $event) }, { default: vue.withCtx(() => [ vue.createTextVNode(vue.toDisplayString(item.label) + " ", 1), item.number != null ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2, "\uFF08" + vue.toDisplayString(item.number) + "\uFF09", 1)) : vue.createCommentVNode("v-if", true), item.badge != null ? (vue.openBlock(), vue.createElementBlock("sup", _hoisted_3, [ item.badge !== true ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [ vue.createTextVNode(vue.toDisplayString(_ctx.getNumber(item.badge, item)), 1) ], 2112)) : item.number != null ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [ vue.createTextVNode(vue.toDisplayString(_ctx.getNumber(item.number, item)), 1) ], 2112)) : vue.createCommentVNode("v-if", true) ])) : vue.createCommentVNode("v-if", true) ]), _: 2 }, 1032, ["type", "disabled", "loading", "permission", "permission-code", "use-permission", "onClick"]); }), 128)) ], 512), vue.renderSlot(_ctx.$slots, "default") ]); } var ButtonGroup = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["render", _sfc_render], ["__file", "/home/runner/work/tav-ui/tav-ui/packages/components/button-group/src/button-group.vue"]]); exports["default"] = ButtonGroup; //# sourceMappingURL=button-group2.js.map