/**
 * 判断 locale 是否为中文（用于持续时长单位 i18n）
 */
function isChineseLocale(locale) {
  if (!locale) return false;
  var n = locale.toLowerCase();
  return n.startsWith('zh');
}

/**
 * 将毫秒数格式化为持续时间字符串（d h m s 或 天/时/分/秒）
 *
 * @param ms 持续时间（毫秒）
 * @param showSeconds 是否显示秒，默认 false
 * @param locale 语言代码，zh 时使用「天/时/分/秒」，否则使用 d/h/m/s
 * @returns 如 "2h30m"、"1d2h30m23s" 或 "2时30分"、"1天2时30分23秒"
 *
 * @example
 * formatDuration(9000000, false)        // => "2h30m"
 * formatDuration(9000000, false, 'zh-cn') // => "2时30分"
 * formatDuration(86400000, false)       // => "1d"
 */
export function formatDuration(ms) {
  var showSeconds = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
  var locale = arguments.length > 2 ? arguments[2] : undefined;
  if (!Number.isFinite(ms) || ms < 0) {
    return isChineseLocale(locale) ? '0分钟' : '0m';
  }
  var d = Math.floor(ms / 86400000);
  var h = Math.floor(ms % 86400000 / 3600000);
  var m = Math.floor(ms % 3600000 / 60000);
  var s = Math.floor(ms % 60000 / 1000);
  var useZh = isChineseLocale(locale);
  var units = useZh ? {
    d: '天',
    h: '时',
    m: '分钟',
    s: '秒'
  } : {
    d: 'd',
    h: 'h',
    m: 'm',
    s: 's'
  };
  var parts = [];
  if (d > 0) parts.push("".concat(d).concat(units.d));
  if (h > 0) parts.push("".concat(h).concat(units.h));
  if (m > 0) parts.push("".concat(m).concat(units.m));
  if (showSeconds || parts.length === 0 && s >= 0) {
    parts.push("".concat(s).concat(units.s));
  }
  return parts.length > 0 ? parts.join('') : useZh ? '0分钟' : '0m';
}