UNPKG

tav-ui

Version:
61 lines (56 loc) 2.29 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var vue = require('vue'); var antDesignVue = require('ant-design-vue'); var is = require('../../../utils/is2.js'); require('../../../locales/index2.js'); var useCountdown = require('./useCountdown2.js'); var types = require('./types2.js'); var pluginVue_exportHelper = require('../../../../_virtual/plugin-vue_export-helper.js'); var transfer = require('../../../locales/transfer2.js'); const _sfc_main = vue.defineComponent({ name: "TaCountDownButton", components: { Button: antDesignVue.Button }, props: types.countDownButtonProps, setup(props) { const loading = vue.ref(false); const { currentCount, isStart, start, reset } = useCountdown.useCountdown(props.count); const getButtonText = vue.computed(() => { return !vue.unref(isStart) ? transfer.tavI18n("Tav.countButton.text1") : transfer.tavI18n("Tav.countButton.text2", [vue.unref(currentCount)]); }); vue.watchEffect(() => { props.value === void 0 && reset(); }); async function handleStart() { const { beforeStartFunc } = props; if (beforeStartFunc && is.isFunction(beforeStartFunc)) { loading.value = true; try { const canStart = await beforeStartFunc(); canStart && start(); } finally { loading.value = false; } } else { start(); } } return { handleStart, currentCount, loading, getButtonText, isStart }; } }); function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { const _component_Button = vue.resolveComponent("Button"); return vue.openBlock(), vue.createBlock(_component_Button, vue.mergeProps(_ctx.$attrs, { disabled: _ctx.isStart, loading: _ctx.loading, onClick: _ctx.handleStart }), { default: vue.withCtx(() => [ vue.createTextVNode(vue.toDisplayString(_ctx.getButtonText), 1) ]), _: 1 }, 16, ["disabled", "loading", "onClick"]); } var CountDownButton = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["render", _sfc_render], ["__file", "/home/runner/work/tav-ui/tav-ui/packages/components/count-down/src/count-down-button.vue"]]); exports["default"] = CountDownButton; //# sourceMappingURL=count-down-button2.js.map