UNPKG

tav-ui

Version:
89 lines (84 loc) 3.49 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var vue = require('vue'); var core = require('@vueuse/core'); var dateUtil = require('../../../utils/dateUtil2.js'); var is = require('../../../utils/is2.js'); require('../../../locales/index2.js'); var types = require('./types2.js'); var pluginVue_exportHelper = require('../../../../_virtual/plugin-vue_export-helper.js'); var transfer = require('../../../locales/transfer2.js'); const ONE_SECONDS = 1e3 * 1; const ONE_MINUTES = ONE_SECONDS * 60; const ONE_HOUR = ONE_MINUTES * 60; const ONE_DAY = ONE_HOUR * 24; const _sfc_main = vue.defineComponent({ name: "TaTime", props: types.timeProps, setup(props) { const date = vue.ref(""); core.useIntervalFn(setTime, props.step * ONE_SECONDS); vue.watch(() => props.value, () => { setTime(); }, { immediate: true }); function getTime() { const { value } = props; let time = 0; if (is.isNumber(value)) { const timestamp = value.toString().length > 10 ? value : value * 1e3; time = new Date(timestamp).getTime(); } else if (is.isString(value)) { time = new Date(value).getTime(); } else if (is.isObject(value)) { time = value.getTime(); } return time; } function setTime() { const { mode, value } = props; const time = getTime(); if (mode === "relative") { date.value = getRelativeTime(time); } else { if (mode === "datetime") date.value = dateUtil.formatToDateTime(value); else if (mode === "date") date.value = dateUtil.formatToDate(value); } } function getRelativeTime(timeStamp) { const currentTime = new Date().getTime(); const isBefore = dateUtil.dateUtil(timeStamp).isBefore(currentTime); let diff = currentTime - timeStamp; if (!isBefore) diff = -diff; let resStr = ""; const dirStr = isBefore ? transfer.tavI18n("Tav.time.1") : transfer.tavI18n("Tav.time.2"); if (diff < ONE_SECONDS) { resStr = transfer.tavI18n("Tav.time.3"); } else if (diff < ONE_MINUTES) { const result = (diff / ONE_SECONDS).toString(); resStr = `${parseInt(result)}${transfer.tavI18n("Tav.time.4")}${dirStr}`; } else if (diff >= ONE_MINUTES && diff < ONE_HOUR) { resStr = `${Math.floor(diff / ONE_MINUTES)}${transfer.tavI18n("Tav.time.5")}${dirStr}`; } else if (diff >= ONE_HOUR && diff < ONE_DAY) { resStr = `${Math.floor(diff / ONE_HOUR)}${transfer.tavI18n("Tav.time.6")}${dirStr}`; } else if (diff >= ONE_DAY && diff < 262386e4) { resStr = `${Math.floor(diff / ONE_DAY)}${transfer.tavI18n("Tav.time.7")}${dirStr}`; } else if (diff >= 262386e4 && diff <= 3156786e4 && isBefore) { resStr = dateUtil.dateUtil(timeStamp).format("MM-DD-HH-mm"); } else { resStr = dateUtil.dateUtil(timeStamp).format("YYYY"); } return resStr; } return { date }; } }); const _hoisted_1 = { class: "ta-time" }; function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { return vue.openBlock(), vue.createElementBlock("span", _hoisted_1, vue.toDisplayString(_ctx.date), 1); } var Time = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["render", _sfc_render], ["__file", "/home/runner/work/tav-ui/tav-ui/packages/components/time/src/time.vue"]]); exports["default"] = Time; //# sourceMappingURL=time2.js.map