{"version":3,"file":"index.cjs","sources":["../src/hover-delay.ts","../src/locale/helper.ts","../src/locale/zh-CN.ts","../src/locale/ar-EG.ts","../src/locale/de-DE.ts","../src/locale/en-US.ts","../src/locale/fa-IR.ts","../src/locale/fr-FR.ts","../src/locale/ta-IN.ts","../src/locale/zh-HK.ts","../src/locale/zh-TW.ts","../src/locale/index.ts","../src/icons.ts","../src/namespace.ts","../src/id.ts","../src/props.ts","../src/z-index.ts"],"sourcesContent":["import { computed, getCurrentInstance, inject, provide, unref } from 'vue'\n\nimport { isDefined } from '@vexip-ui/utils'\n\nimport type { App, ComputedRef, MaybeRef } from 'vue'\n\nexport const PROVIDED_HOVER_DELAY = '___vxp-provided-hover-delay'\nexport const globalDelay = computed(() => 100)\n\nfunction getOrDefault(num: number, def: number) {\n  return isDefined(num) && !Number.isNaN(num) ? num : def\n}\n\n/**\n * Provide a hover delay config for under components.\n *\n * @param sourceDelay hover delay config\n * @param app the app of Vue, will use app.provide if specify\n */\nexport function configHoverDelay(sourceDelay: MaybeRef<number>, app?: App) {\n  if (app) {\n    const delay = computed(() => {\n      const delay = unref(sourceDelay)\n\n      return getOrDefault(delay, globalDelay.value)\n    })\n\n    app.provide(PROVIDED_HOVER_DELAY, delay)\n  } else {\n    const upstreamDelay = inject<ComputedRef<number> | null>(PROVIDED_HOVER_DELAY, null)\n    const delay = computed(() => {\n      const delay = unref(sourceDelay)\n\n      return getOrDefault(\n        delay,\n        upstreamDelay ? getOrDefault(upstreamDelay.value, globalDelay.value) : globalDelay.value,\n      )\n    })\n\n    provide(PROVIDED_HOVER_DELAY, delay)\n  }\n}\n\nexport function useHoverDelay() {\n  return getCurrentInstance()\n    ? inject<ComputedRef<number>>(PROVIDED_HOVER_DELAY, globalDelay)\n    : globalDelay\n}\n","import type { DeepPartial } from '../types'\n\nexport interface LocaleConfig {\n  locale: string,\n\n  /**\n   * if false, the spaces will be removed when make sentence\n   */\n  wordSpace: boolean,\n\n  calendar: {\n    year: string,\n    month: string,\n    month1: string,\n    month2: string,\n    month3: string,\n    month4: string,\n    month5: string,\n    month6: string,\n    month7: string,\n    month8: string,\n    month9: string,\n    month10: string,\n    month11: string,\n    month12: string,\n    week1: string,\n    week2: string,\n    week3: string,\n    week4: string,\n    week5: string,\n    week6: string,\n    week7: string,\n\n    ariaLabel: {\n      year: string,\n      month: string,\n      month1: string,\n      month2: string,\n      month3: string,\n      month4: string,\n      month5: string,\n      month6: string,\n      month7: string,\n      month8: string,\n      month9: string,\n      month10: string,\n      month11: string,\n      month12: string,\n      week1: string,\n      week2: string,\n      week3: string,\n      week4: string,\n      week5: string,\n      week6: string,\n      week7: string\n    }\n  },\n\n  captcha: {\n    slideEnd: string,\n    slide: string,\n    success: string,\n    fail: string,\n    doCaptcha: string,\n    pointInOrder: string,\n    trigger: string,\n    completed: string\n  },\n\n  checkbox: {\n    all: string\n  },\n\n  colorPicker: {\n    confirm: string,\n    cancel: string,\n\n    ariaLabel: {\n      clear: string\n    }\n  },\n\n  confirm: {\n    confirm: string,\n    cancel: string\n  },\n\n  datePicker: {\n    confirm: string,\n    cancel: string,\n    placeholder: {\n      year: string,\n      month: string,\n      date: string,\n      datetime: string,\n      start: string,\n      end: string,\n      select: string\n    },\n    startTime: string,\n    endTime: string,\n\n    ariaLabel: {\n      clear: string,\n      quarter: string,\n      week: string,\n      date: string,\n      hour: string,\n      minute: string,\n      second: string\n    }\n  },\n\n  drawer: {\n    confirm: string,\n    cancel: string\n  },\n\n  form: {\n    submit: string,\n    reset: string,\n    notNullable: string,\n    validateFail: string\n  },\n\n  image: {\n    placeholder: string,\n    error: string\n  },\n\n  input: {\n    placeholder: string,\n\n    ariaLabel: {\n      clear: string\n    }\n  },\n\n  layout: {\n    signOut: string,\n    signType: string,\n    majorColor: string,\n    themeMode: string\n  },\n\n  modal: {\n    confirm: string,\n    cancel: string\n  },\n\n  numberInput: {\n    placeholder: string,\n    outOfRange: string,\n\n    ariaLabel: {\n      clear: string,\n      increase: string,\n      decrease: string\n    }\n  },\n\n  pagination: {\n    page: string,\n    perPage: string,\n    prevPage: string,\n    nextPage: string,\n    prev: string,\n    next: string,\n    total: string,\n    jumpTo: string,\n    itemUnit: string\n  },\n\n  select: {\n    placeholder: string,\n    empty: string,\n    search: string,\n\n    ariaLabel: {\n      clear: string\n    }\n  },\n\n  table: {\n    empty: string,\n    filterConfirm: string,\n    filterReset: string,\n    filterAll: string\n  },\n\n  timeAgo: {\n    ago: string,\n    late: string,\n    justNow: string,\n    second: string,\n    minute: string,\n    hour: string,\n    yesterday: string,\n    days: string,\n    lastMonth: string,\n    months: string,\n    lastYear: string,\n    years: string\n  },\n\n  timePicker: {\n    confirm: string,\n    cancel: string,\n    placeholder: {\n      time: string,\n      start: string,\n      end: string,\n      select: string\n    },\n\n    ariaLabel: {\n      clear: string,\n      hour: string,\n      minute: string,\n      second: string\n    }\n  },\n\n  tour: {\n    prev: string,\n    next: string,\n    done: string,\n    stepCount: string\n  },\n\n  transfer: {\n    source: string,\n    target: string,\n    empty: string,\n    reverse: string,\n    search: string\n  },\n\n  tree: {\n    empty: string\n  },\n\n  upload: {\n    upload: string,\n    uploading: string,\n    dragOrClick: string,\n\n    ariaLabel: {\n      preview: string,\n      delete: string\n    }\n  },\n\n  video: {\n    play: string,\n    pause: string,\n    playPrev: string,\n    playNext: string,\n    refresh: string,\n    flip: string,\n    requestPip: string,\n    exitPip: string,\n    fullWindow: string,\n    fullWindowExit: string,\n    fullScreen: string,\n    fullScreenExit: string,\n    chapterCount: string\n  },\n\n  viewer: {\n    rotateRight: string,\n    rotateLeft: string,\n    flipHorizontal: string,\n    flipVertical: string,\n    zoomIn: string,\n    zoomOut: string,\n    fullScreen: string,\n    fullScreenExit: string,\n    reset: string\n  }\n}\n\nexport type LocaleOptions = DeepPartial<LocaleConfig>\nexport type LocaleNames = Exclude<keyof LocaleConfig, 'locale' | 'wordSpace'>\n\nexport function defineLocale(locale: LocaleOptions) {\n  return locale\n}\n\nexport function defineLocaleConfig(locale: LocaleConfig) {\n  return locale\n}\n","import { defineLocaleConfig } from './helper'\n\n/**\n * Chinese (Simplified) locale config.\n *\n * @author @qmhc\n */\nexport function zhCNLocale() {\n  return defineLocaleConfig({\n    locale: 'zh-CN',\n    wordSpace: false,\n\n    calendar: {\n      year: '年',\n      month: '月',\n      month1: '01月',\n      month2: '02月',\n      month3: '03月',\n      month4: '04月',\n      month5: '05月',\n      month6: '06月',\n      month7: '07月',\n      month8: '08月',\n      month9: '09月',\n      month10: '10月',\n      month11: '11月',\n      month12: '12月',\n      week1: '一',\n      week2: '二',\n      week3: '三',\n      week4: '四',\n      week5: '五',\n      week6: '六',\n      week7: '日',\n\n      ariaLabel: {\n        year: '年',\n        month: '月',\n        month1: '一月',\n        month2: '二月',\n        month3: '三月',\n        month4: '四月',\n        month5: '五月',\n        month6: '六月',\n        month7: '七月',\n        month8: '八月',\n        month9: '九月',\n        month10: '十月',\n        month11: '十一月',\n        month12: '十二月',\n        week1: '星期一',\n        week2: '星期二',\n        week3: '星期三',\n        week4: '星期四',\n        week5: '星期五',\n        week6: '星期六',\n        week7: '星期日',\n      },\n    },\n\n    captcha: {\n      slideEnd: '请滑动到最后',\n      slide: '请滑动到适当的位置',\n      success: '验证成功',\n      fail: '验证失败，请重试',\n      doCaptcha: '请完成下面的验证',\n      pointInOrder: '请按顺序点击',\n      trigger: '点击进行验证',\n      completed: '已完成验证',\n    },\n\n    checkbox: {\n      all: '全选',\n    },\n\n    colorPicker: {\n      confirm: '确定',\n      cancel: '重置',\n\n      ariaLabel: {\n        clear: '清空颜色',\n      },\n    },\n\n    confirm: {\n      confirm: '确认',\n      cancel: '取消',\n    },\n\n    datePicker: {\n      confirm: '确认',\n      cancel: '取消',\n      placeholder: {\n        year: '年份',\n        month: '月份',\n        date: '日期',\n        datetime: '日期时间',\n        start: '开始',\n        end: '结束',\n        select: '请选择',\n      },\n      startTime: '开始时间',\n      endTime: '结束时间',\n\n      ariaLabel: {\n        clear: '清空日期',\n        quarter: '季度',\n        week: '周',\n        date: '日',\n        hour: '时',\n        minute: '分',\n        second: '秒',\n      },\n    },\n\n    drawer: {\n      confirm: '确认',\n      cancel: '取消',\n    },\n\n    form: {\n      submit: '提交',\n      reset: '重置',\n      notNullable: '不可为空',\n      validateFail: '验证未通过',\n    },\n\n    image: {\n      placeholder: '加载中...',\n      error: '加载失败',\n    },\n\n    input: {\n      placeholder: '请输入',\n\n      ariaLabel: {\n        clear: '清空文本',\n      },\n    },\n\n    layout: {\n      signOut: '注销',\n      signType: '导航模式',\n      majorColor: '主题颜色',\n      themeMode: '主题模式',\n    },\n\n    modal: {\n      confirm: '确认',\n      cancel: '取消',\n    },\n\n    numberInput: {\n      placeholder: '请输入数字',\n      outOfRange: '超出范围',\n\n      ariaLabel: {\n        clear: '清空数字',\n        increase: '增加',\n        decrease: '减少',\n      },\n    },\n\n    pagination: {\n      page: '页',\n      perPage: '条/页',\n      prevPage: '上一页',\n      nextPage: '下一页',\n      prev: '向前',\n      next: '向后',\n      total: '共',\n      jumpTo: '跳转',\n      itemUnit: '条',\n    },\n\n    select: {\n      placeholder: '请选择',\n      empty: '暂无数据',\n      search: '搜索选项',\n\n      ariaLabel: {\n        clear: '清空选项',\n      },\n    },\n\n    table: {\n      empty: '暂无数据',\n      filterConfirm: '筛选',\n      filterReset: '重置',\n      filterAll: '全部',\n    },\n\n    timeAgo: {\n      ago: '前',\n      late: '后',\n      justNow: '刚刚',\n      second: '秒',\n      minute: '分钟',\n      hour: '小时',\n      yesterday: '昨天',\n      days: '天',\n      lastMonth: '上个月',\n      months: '个月',\n      lastYear: '去年',\n      years: '年',\n    },\n\n    timePicker: {\n      confirm: '确认',\n      cancel: '取消',\n      placeholder: {\n        time: '时间',\n        start: '开始',\n        end: '结束',\n        select: '请选择',\n      },\n\n      ariaLabel: {\n        clear: '清空时间',\n        hour: '时',\n        minute: '分',\n        second: '秒',\n      },\n    },\n\n    tour: {\n      prev: '上一步',\n      next: '下一步',\n      done: '完成',\n      stepCount: '第 {n} 步',\n    },\n\n    transfer: {\n      source: '源',\n      target: '目标',\n      empty: '暂无数据',\n      reverse: '反选',\n      search: '搜索 (Ctrl + F)',\n    },\n\n    tree: {\n      empty: '暂无数据',\n    },\n\n    upload: {\n      upload: '上传文件',\n      uploading: '上传中',\n      dragOrClick: '将文件拖到此处, 或点击上传',\n\n      ariaLabel: {\n        preview: '预览文件',\n        delete: '删除文件',\n      },\n    },\n\n    video: {\n      play: '播放',\n      pause: '暂停',\n      playPrev: '上一个',\n      playNext: '下一个',\n      refresh: '刷新',\n      flip: '镜像翻转',\n      requestPip: '进入画中画',\n      exitPip: '退出画中画',\n      fullWindow: '进入网页全屏',\n      fullWindowExit: '退出网页全屏',\n      fullScreen: '进入全屏',\n      fullScreenExit: '退出全屏',\n      chapterCount: '第 {n} 章',\n    },\n\n    viewer: {\n      rotateRight: '向右旋转',\n      rotateLeft: '向左旋转',\n      flipHorizontal: '横向翻转',\n      flipVertical: '纵向翻转',\n      zoomIn: '放大',\n      zoomOut: '缩小',\n      fullScreen: '进入全屏',\n      fullScreenExit: '退出全屏',\n      reset: '重置',\n    },\n  })\n}\n","import { defineLocaleConfig } from './helper'\n\n/**\n * Arabic locale config.\n *\n * @author @ahmedoashery\n */\nexport function arEGLocale() {\n  return defineLocaleConfig({\n    locale: 'ar-EG',\n    wordSpace: true,\n\n    calendar: {\n      year: '',\n      month: '',\n      month1: 'Jan',\n      month2: 'Feb',\n      month3: 'Mar',\n      month4: 'Apr',\n      month5: 'May',\n      month6: 'Jun',\n      month7: 'Jul',\n      month8: 'Aug',\n      month9: 'Sep',\n      month10: 'Oct',\n      month11: 'Nov',\n      month12: 'Dec',\n      week1: 'Mo',\n      week2: 'Tu',\n      week3: 'We',\n      week4: 'Th',\n      week5: 'Fr',\n      week6: 'Sa',\n      week7: 'Su',\n\n      ariaLabel: {\n        year: 'سنة',\n        month: 'شهر',\n        month1: 'يناير',\n        month2: 'فبراير',\n        month3: 'مارس',\n        month4: 'أبريل',\n        month5: 'مايو',\n        month6: 'يونيو',\n        month7: 'يوليو',\n        month8: 'أغسطس',\n        month9: 'سبتمبر',\n        month10: 'أكتوبر',\n        month11: 'نوفمبر',\n        month12: 'ديسمبر',\n        week1: 'الإثنين',\n        week2: 'الثلاثاء',\n        week3: 'الأربعاء',\n        week4: 'الخميس',\n        week5: 'الجمعة',\n        week6: 'السبت',\n        week7: 'الأحد',\n      },\n    },\n\n    captcha: {\n      slideEnd: 'يرجى الانزلاق إلى النهاية',\n      slide: 'يرجى الانزلاق إلى وضع مناسب',\n      success: 'تم الاختبار بنجاح',\n      fail: 'فشل الاختبار، يرجى إعادة المحاولة',\n      doCaptcha: 'يرجى إكمال كلمة التحقق أدناه',\n      pointInOrder: 'يرجى الإشارة بالترتيب',\n      trigger: 'انقر لتشغيل كلمة التحقق',\n      completed: 'تم الانتهاء من التحقق',\n    },\n\n    checkbox: {\n      all: 'الكل',\n    },\n\n    colorPicker: {\n      confirm: 'موافق',\n      cancel: 'الغاء',\n\n      ariaLabel: {\n        clear: 'مسح اللون',\n      },\n    },\n\n    confirm: {\n      confirm: 'موافق',\n      cancel: 'الغاء',\n    },\n\n    datePicker: {\n      confirm: 'موافق',\n      cancel: 'الغاء',\n      placeholder: {\n        year: 'سنة',\n        month: 'شهر',\n        date: 'يوم',\n        datetime: 'تاريخ',\n        start: 'يبدأ بـ',\n        end: 'ينتهى بـ',\n        select: 'اختر',\n      },\n      startTime: 'وقت البدء',\n      endTime: 'وقت الانتهاء',\n\n      ariaLabel: {\n        clear: 'مسح التاريخ',\n        quarter: 'ربع',\n        week: 'أسبوع',\n        date: 'يوم',\n        hour: 'ساعة',\n        minute: 'دقيقة',\n        second: 'ثانية',\n      },\n    },\n\n    drawer: {\n      confirm: 'موافق',\n      cancel: 'الغاء',\n    },\n\n    form: {\n      submit: 'ارسال',\n      reset: 'اعادة',\n      notNullable: 'مطلوب',\n      validateFail: 'قيم خاطئة',\n    },\n\n    image: {\n      placeholder: 'جار التحميل...',\n      error: 'خطأ فى التحميل',\n    },\n\n    input: {\n      placeholder: 'ادخل بيانات',\n\n      ariaLabel: {\n        clear: 'مسح البيانات',\n      },\n    },\n\n    layout: {\n      signOut: 'تسجيل خروج',\n      signType: 'نوع الانتقال',\n      majorColor: 'اللون الاساسى',\n      themeMode: 'وضع اللون',\n    },\n\n    modal: {\n      confirm: 'موافق',\n      cancel: 'الغاء',\n    },\n\n    numberInput: {\n      placeholder: 'ادخل قيم رقمية',\n      outOfRange: 'خارج النطاق',\n\n      ariaLabel: {\n        clear: 'مسح الرقم',\n        increase: 'زيادة',\n        decrease: 'نقص',\n      },\n    },\n\n    pagination: {\n      page: 'صفحة | صفحات',\n      perPage: '/ صفحة',\n      prevPage: 'صفحة سابقة',\n      nextPage: 'صفحة تالية',\n      prev: 'السابق',\n      next: 'التالى',\n      total: 'الاجمالى',\n      jumpTo: 'انتقال الى',\n      itemUnit: 'عنصر | عناصر',\n    },\n\n    select: {\n      placeholder: 'اختر',\n      empty: 'لا توجد بيانات',\n      search: 'بحث الخيارات',\n\n      ariaLabel: {\n        clear: 'مسح الاختيار',\n      },\n    },\n\n    table: {\n      empty: 'لا توجد بيانات',\n      filterConfirm: 'موافق',\n      filterReset: 'اعادة',\n      filterAll: 'الكل',\n    },\n\n    timeAgo: {\n      ago: 'منذ',\n      late: 'مؤخراً',\n      justNow: 'الآن',\n      second: 'ثانية | ثوانى',\n      minute: 'دقيقة | دقائق',\n      hour: 'ساعة | ساعات',\n      yesterday: 'امس',\n      days: 'ايام',\n      lastMonth: 'الشهر الماضى',\n      months: 'شهور',\n      lastYear: 'السنة الماضية',\n      years: 'سنوات',\n    },\n\n    timePicker: {\n      confirm: 'موافق',\n      cancel: 'الغاء',\n      placeholder: {\n        time: 'وقت',\n        start: 'يبدأ بـ',\n        end: 'ينتهى بـ',\n        select: 'اختر',\n      },\n\n      ariaLabel: {\n        clear: 'مسح الوقت',\n        hour: 'ساعة',\n        minute: 'دقيقة',\n        second: 'ثانية',\n      },\n    },\n\n    tour: {\n      prev: 'السابق',\n      next: 'التالى',\n      done: 'اكتمل',\n      stepCount: 'خطوة {n}',\n    },\n\n    transfer: {\n      source: 'مصدر',\n      target: 'وجهة',\n      empty: 'لا توجد بيانات',\n      reverse: 'عكس الاختيار',\n      search: 'بحث (Ctrl + F)',\n    },\n\n    tree: {\n      empty: 'لا توجد بيانات',\n    },\n\n    upload: {\n      upload: 'تحميل ملفات',\n      uploading: 'جار التحميل',\n      dragOrClick: 'اسحب وضع الملقات هنا, او اضغط تحميل ملفات',\n\n      ariaLabel: {\n        preview: 'معاينة الملفات',\n        delete: 'حذف الملفات',\n      },\n    },\n\n    video: {\n      play: 'لعب',\n      pause: 'تورع',\n      playPrev: 'السابق',\n      playNext: 'مقبل',\n      refresh: 'تحديث',\n      flip: 'الوجه',\n      requestPip: 'أدخل صورة داخل صورة',\n      exitPip: 'الخروج من اللوحة',\n      fullWindow: 'صفحة ويب ملء الشاشة',\n      fullWindowExit: 'يتم إنهاء صفحة الويب في وضع ملء الشاشة',\n      fullScreen: 'شاشة كاملة',\n      fullScreenExit: 'خروج من شاشة كاملة',\n      chapterCount: '{n} الفصل',\n    },\n\n    viewer: {\n      rotateRight: 'تدوير لليمين',\n      rotateLeft: 'تدوير لليسار',\n      flipHorizontal: 'قلب اتجاه افقى',\n      flipVertical: 'قلب اتجاه رأسى',\n      zoomIn: 'تكبير',\n      zoomOut: 'تصغير',\n      fullScreen: 'شاشة كاملة',\n      fullScreenExit: 'خروج من شاشة كاملة',\n      reset: 'اعادة',\n    },\n  })\n}\n","import { defineLocaleConfig } from './helper'\n\n/**\n * German locale config.\n *\n * @author @Andrek18\n */\nexport function deDELocale() {\n  return defineLocaleConfig({\n    locale: 'de-DE',\n    wordSpace: true,\n\n    calendar: {\n      year: '',\n      month: '',\n      month1: 'Jan',\n      month2: 'Feb',\n      month3: 'Mär',\n      month4: 'Apr',\n      month5: 'Mai',\n      month6: 'Jun',\n      month7: 'Jul',\n      month8: 'Aug',\n      month9: 'Sep',\n      month10: 'Okt',\n      month11: 'Nov',\n      month12: 'Dez',\n      week1: 'Mo',\n      week2: 'Di',\n      week3: 'Mi',\n      week4: 'Do',\n      week5: 'Fr',\n      week6: 'Sa',\n      week7: 'So',\n\n      ariaLabel: {\n        year: 'Jahr',\n        month: 'Monat',\n        month1: 'Januar',\n        month2: 'Februar',\n        month3: 'März',\n        month4: 'April',\n        month5: 'Mai',\n        month6: 'Juni',\n        month7: 'Juli',\n        month8: 'August',\n        month9: 'September',\n        month10: 'Oktober',\n        month11: 'November',\n        month12: 'Dezember',\n        week1: 'Montag',\n        week2: 'Dienstag',\n        week3: 'Mittwoch',\n        week4: 'Donnerstag',\n        week5: 'Freitag',\n        week6: 'Samstag',\n        week7: 'Sonntag',\n      },\n    },\n\n    captcha: {\n      slideEnd: 'Bitte zum Ende schieben',\n      slide: 'Bitte in eine geeignete Position schieben',\n      success: 'Test erfolgreich',\n      fail: 'Test fehlgeschlagen, bitte wiederholen',\n      doCaptcha: 'Bitte füllen Sie das folgende Captcha aus',\n      pointInOrder: 'Bitte zeigen Sie in der Reihenfolge',\n      trigger: 'Klicken Sie auf das Captcha',\n      completed: 'Captcha abgeschlossen',\n    },\n\n    checkbox: {\n      all: 'Alle',\n    },\n\n    colorPicker: {\n      confirm: 'Bestätigen',\n      cancel: 'Abbrechen',\n\n      ariaLabel: {\n        clear: 'Farbe löschen',\n      },\n    },\n\n    confirm: {\n      confirm: 'Bestätigen',\n      cancel: 'Abbrechen',\n    },\n\n    datePicker: {\n      confirm: 'Bestätigen',\n      cancel: 'Abbrechen',\n      placeholder: {\n        year: 'Jahr',\n        month: 'Monat',\n        date: 'Datum',\n        datetime: 'Datum/Zeit',\n        start: 'Start',\n        end: 'Ende',\n        select: 'Bitte auswählen',\n      },\n      startTime: 'Start Zeit',\n      endTime: 'Ende Zeit',\n\n      ariaLabel: {\n        clear: 'Datum löschen',\n        quarter: 'Quartal',\n        week: 'Woche',\n        date: 'Tag',\n        hour: 'Stunde',\n        minute: 'Minute',\n        second: 'Sekunde',\n      },\n    },\n\n    drawer: {\n      confirm: 'Bestätigen',\n      cancel: 'Abbrechen',\n    },\n\n    form: {\n      submit: 'Senden',\n      reset: 'Zurücksetzen',\n      notNullable: 'Darf nicht leer sein',\n      validateFail: 'Überprüfung fehlgeschlagen',\n    },\n\n    image: {\n      placeholder: 'Lade...',\n      error: 'Laden fehlgeschlagen',\n    },\n\n    input: {\n      placeholder: 'Platzhalter',\n\n      ariaLabel: {\n        clear: 'Löschen',\n      },\n    },\n\n    layout: {\n      signOut: 'Abmelden',\n      signType: 'Navigationsart',\n      majorColor: 'Hauptfarbe',\n      themeMode: 'Themeart',\n    },\n\n    modal: {\n      confirm: 'Bestätigen',\n      cancel: 'Abbrechen',\n    },\n\n    numberInput: {\n      placeholder: 'Bitte Nummer eingeben',\n      outOfRange: 'Außerhalb des definierten Bereichs',\n\n      ariaLabel: {\n        clear: 'Löschen',\n        increase: 'Erhöhen',\n        decrease: 'Verringern',\n      },\n    },\n\n    pagination: {\n      page: 'Seite | Seiten',\n      perPage: '/ Seite',\n      prevPage: 'Vorherige Seite',\n      nextPage: 'Nächste Seite',\n      prev: 'Vorherige',\n      next: 'Nächste',\n      total: 'Total',\n      jumpTo: 'Springe zu',\n      itemUnit: 'Item | Items',\n    },\n\n    select: {\n      placeholder: 'Bitte auswählen',\n      empty: 'Keine Daten',\n      search: 'Suche Optionen',\n\n      ariaLabel: {\n        clear: 'Löschen',\n      },\n    },\n\n    table: {\n      empty: 'Keien Daten',\n      filterConfirm: 'Filtern',\n      filterReset: 'Zurücksetzen',\n      filterAll: 'Alle',\n    },\n\n    timeAgo: {\n      ago: 'Vor',\n      late: 'Später',\n      justNow: 'Jetzt',\n      second: 'Sekunde | Sekunden',\n      minute: 'Minute | Minuten',\n      hour: 'Stunde | Stunden',\n      yesterday: 'Gestern',\n      days: 'Tage',\n      lastMonth: 'Letzter Monat',\n      months: 'Monate',\n      lastYear: 'Letztes Jahr',\n      years: 'Jahre',\n    },\n\n    timePicker: {\n      confirm: 'Bestätigen',\n      cancel: 'Abbrechen',\n      placeholder: {\n        time: 'Zeit',\n        start: 'Start',\n        end: 'Ende',\n        select: 'Bitte auswählen',\n      },\n\n      ariaLabel: {\n        clear: 'Zeit löschen',\n        hour: 'Stunde',\n        minute: 'Minute',\n        second: 'Sekunde',\n      },\n    },\n\n    tour: {\n      prev: 'Voherige',\n      next: 'Nächste',\n      done: 'Fertig',\n      stepCount: 'Schritt {n}',\n    },\n\n    transfer: {\n      source: 'Quelle',\n      target: 'Ziel',\n      empty: 'Keine Daten',\n      reverse: 'Auswahl umkehren',\n      search: 'Suche (Strg + F)',\n    },\n\n    tree: {\n      empty: 'Keine Daten',\n    },\n\n    upload: {\n      upload: 'Dateiupload',\n      uploading: 'Hochladen',\n      dragOrClick: 'Ziehen Sie Dateien hierher oder klicken Sie zum Hochladen',\n\n      ariaLabel: {\n        preview: 'Dateivorschau',\n        delete: 'Datei löschen',\n      },\n    },\n\n    video: {\n      play: 'Spielen',\n      pause: 'Pause',\n      playPrev: 'Zurück',\n      playNext: 'Nächster',\n      refresh: 'Auffrischen',\n      flip: 'Schnipsen',\n      requestPip: 'Hier kommt PIP ins Spiel',\n      exitPip: 'PIP beenden',\n      fullWindow: 'Volles Fenster',\n      fullWindowExit: 'Volles Fenster beenden',\n      fullScreen: 'Vollbild',\n      fullScreenExit: 'Vollbild beenden',\n      chapterCount: 'Kapitel {n}',\n    },\n\n    viewer: {\n      rotateRight: 'Nach rechst drehen',\n      rotateLeft: 'Nach links drehen',\n      flipHorizontal: 'Horizontal spiegeln',\n      flipVertical: 'Vertikal spiegeln',\n      zoomIn: 'Hineinzoomen',\n      zoomOut: 'Hinauszoomen',\n      fullScreen: 'Vollbild',\n      fullScreenExit: 'Vollbild beenden',\n      reset: 'Zurücksetzen',\n    },\n  })\n}\n","import { defineLocaleConfig } from './helper'\n\n/**\n * English locale config.\n *\n * @author @qmhc\n */\nexport function enUSLocale() {\n  return defineLocaleConfig({\n    locale: 'en-US',\n    wordSpace: true,\n\n    calendar: {\n      year: '',\n      month: '',\n      month1: 'Jan',\n      month2: 'Feb',\n      month3: 'Mar',\n      month4: 'Apr',\n      month5: 'May',\n      month6: 'Jun',\n      month7: 'Jul',\n      month8: 'Aug',\n      month9: 'Sep',\n      month10: 'Oct',\n      month11: 'Nov',\n      month12: 'Dec',\n      week1: 'Mo',\n      week2: 'Tu',\n      week3: 'We',\n      week4: 'Th',\n      week5: 'Fr',\n      week6: 'Sa',\n      week7: 'Su',\n\n      ariaLabel: {\n        year: 'Year',\n        month: 'Month',\n        month1: 'January',\n        month2: 'February',\n        month3: 'March',\n        month4: 'April',\n        month5: 'May',\n        month6: 'June',\n        month7: 'July',\n        month8: 'August',\n        month9: 'September',\n        month10: 'October',\n        month11: 'November',\n        month12: 'December',\n        week1: 'Monday',\n        week2: 'Tuesday',\n        week3: 'Wednesday',\n        week4: 'Thursday',\n        week5: 'Friday',\n        week6: 'Saturday',\n        week7: 'Sunday',\n      },\n    },\n\n    captcha: {\n      slideEnd: 'Please slide to the end',\n      slide: 'Please slide to a suitable position',\n      success: 'Test successful',\n      fail: 'Test failed, please retry',\n      doCaptcha: 'Please complete the captcha below',\n      pointInOrder: 'Please point in order',\n      trigger: 'Click to trigger captcha',\n      completed: 'Captcha completed',\n    },\n\n    checkbox: {\n      all: 'All',\n    },\n\n    colorPicker: {\n      confirm: 'Confirm',\n      cancel: 'Cancel',\n\n      ariaLabel: {\n        clear: 'Clear color',\n      },\n    },\n\n    confirm: {\n      confirm: 'Confirm',\n      cancel: 'Cancel',\n    },\n\n    datePicker: {\n      confirm: 'Confirm',\n      cancel: 'Cancel',\n      placeholder: {\n        year: 'year',\n        month: 'month',\n        date: 'date',\n        datetime: 'datetime',\n        start: 'Start',\n        end: 'End',\n        select: 'Please select',\n      },\n      startTime: 'Start Time',\n      endTime: 'End Time',\n\n      ariaLabel: {\n        clear: 'Clear date',\n        quarter: 'Quarter',\n        week: 'Week',\n        date: 'Date',\n        hour: 'Hour',\n        minute: 'Minute',\n        second: 'Second',\n      },\n    },\n\n    drawer: {\n      confirm: 'Confirm',\n      cancel: 'Cancel',\n    },\n\n    form: {\n      submit: 'Submit',\n      reset: 'Reset',\n      notNullable: 'must not be null',\n      validateFail: 'Validate failed',\n    },\n\n    image: {\n      placeholder: 'Loading...',\n      error: 'Loading fail',\n    },\n\n    input: {\n      placeholder: 'Please input',\n\n      ariaLabel: {\n        clear: 'Clear input',\n      },\n    },\n\n    layout: {\n      signOut: 'Sign out',\n      signType: 'Navigation Type',\n      majorColor: 'Major Color',\n      themeMode: 'Theme Mode',\n    },\n\n    modal: {\n      confirm: 'Confirm',\n      cancel: 'Cancel',\n    },\n\n    numberInput: {\n      placeholder: 'Please input number',\n      outOfRange: 'Out of range',\n\n      ariaLabel: {\n        clear: 'Clear number',\n        increase: 'Increase',\n        decrease: 'Decrease',\n      },\n    },\n\n    pagination: {\n      page: 'Page | Pages',\n      perPage: '/ Page',\n      prevPage: 'Prev Page',\n      nextPage: 'Next Page',\n      prev: 'Prev',\n      next: 'Next',\n      total: 'Total',\n      jumpTo: 'Jump to',\n      itemUnit: 'Item | Items',\n    },\n\n    select: {\n      placeholder: 'Please select',\n      empty: 'No data',\n      search: 'Search options',\n\n      ariaLabel: {\n        clear: 'Clear select',\n      },\n    },\n\n    table: {\n      empty: 'No data',\n      filterConfirm: 'Filter',\n      filterReset: 'Reset',\n      filterAll: 'All',\n    },\n\n    timeAgo: {\n      ago: 'Ago',\n      late: 'Late',\n      justNow: 'Now',\n      second: 'Second | Seconds',\n      minute: 'Minute | Minutes',\n      hour: 'Hour | Hours',\n      yesterday: 'Yesterday',\n      days: 'Days',\n      lastMonth: 'Last month',\n      months: 'Months',\n      lastYear: 'Last year',\n      years: 'Years',\n    },\n\n    timePicker: {\n      confirm: 'Confirm',\n      cancel: 'Cancel',\n      placeholder: {\n        time: 'time',\n        start: 'Start',\n        end: 'End',\n        select: 'Please select',\n      },\n\n      ariaLabel: {\n        clear: 'Clear time',\n        hour: 'Hour',\n        minute: 'Minute',\n        second: 'Second',\n      },\n    },\n\n    tour: {\n      prev: 'Prev',\n      next: 'Next',\n      done: 'Done',\n      stepCount: 'Step {n}',\n    },\n\n    transfer: {\n      source: 'Source',\n      target: 'Target',\n      empty: 'No data',\n      reverse: 'Reverse selection',\n      search: 'Search (Ctrl + F)',\n    },\n\n    tree: {\n      empty: 'No data',\n    },\n\n    upload: {\n      upload: 'Upload files',\n      uploading: 'Uploading',\n      dragOrClick: 'Drag files here, or click to upload',\n\n      ariaLabel: {\n        preview: 'Preview file',\n        delete: 'Delete file',\n      },\n    },\n\n    video: {\n      play: 'Play',\n      pause: 'Pause',\n      playPrev: 'Prev',\n      playNext: 'Next',\n      refresh: 'Refresh',\n      flip: 'Flip',\n      requestPip: 'Enter PIP',\n      exitPip: 'Exit PIP',\n      fullWindow: 'Full window',\n      fullWindowExit: 'Full window exit',\n      fullScreen: 'Full screen',\n      fullScreenExit: 'Full screen exit',\n      chapterCount: 'Chapter {n}',\n    },\n\n    viewer: {\n      rotateRight: 'Rotate right',\n      rotateLeft: 'Rotate left',\n      flipHorizontal: 'Flip horizontal',\n      flipVertical: 'Flip vertical',\n      zoomIn: 'Zoom in',\n      zoomOut: 'Zoom out',\n      fullScreen: 'Full screen',\n      fullScreenExit: 'Full screen exit',\n      reset: 'Reset',\n    },\n  })\n}\n","import { defineLocaleConfig } from './helper'\n\n/**\n * Persian (Farsi) locale config.\n *\n * @author @alphaelf\n */\nexport function faIRLocale() {\n  return defineLocaleConfig({\n    locale: 'fa-IR',\n    wordSpace: true,\n\n    calendar: {\n      year: '',\n      month: '',\n      month1: 'ژانویه',\n      month2: 'فوریه',\n      month3: 'مارس',\n      month4: 'آوریل',\n      month5: 'مه',\n      month6: 'ژوئن',\n      month7: 'ژوئیه',\n      month8: 'اوت',\n      month9: 'سپتامبر',\n      month10: 'اکتبر',\n      month11: 'نوامبر',\n      month12: 'دسامبر',\n      week1: 'د',\n      week2: 'س',\n      week3: 'چ',\n      week4: 'پ',\n      week5: 'ج',\n      week6: 'ش',\n      week7: 'ی',\n\n      ariaLabel: {\n        year: 'سال',\n        month: 'ماه',\n        month1: 'ژانویه',\n        month2: 'فوریه',\n        month3: 'مارس',\n        month4: 'آوریل',\n        month5: 'مه',\n        month6: 'ژوئن',\n        month7: 'ژوئیه',\n        month8: 'اوت',\n        month9: 'سپتامبر',\n        month10: 'اکتبر',\n        month11: 'نوامبر',\n        month12: 'دسامبر',\n        week1: 'دو‌شنبه',\n        week2: 'سه‌شنبه',\n        week3: 'چهار‌شنبه',\n        week4: 'پنج‌شنبه',\n        week5: 'جمعه',\n        week6: 'شنبه',\n        week7: 'یک‌شنبه',\n      },\n    },\n\n    captcha: {\n      slideEnd: 'لطفاً نشان‌گر را تا انتها بکشید',\n      slide: 'لطفاً نشان‌گر را تا مکان مناسب بکشید',\n      success: 'راستی‌آزمایی با موفقیت انجام شد',\n      fail: 'راستی‌آزمایی انجام نشد، دوباره اقدام کنید',\n      doCaptcha: 'لطفاً راستی‌آزمایی زیر را کامل کنید',\n      pointInOrder: 'لطفاً براساس اولویت روی تصویر انتخاب کنید',\n      trigger: 'برای شروع راستی‌آزمایی کلیک کنید',\n      completed: 'راستی‌آزمایی کامل شد',\n    },\n\n    checkbox: {\n      all: 'همه',\n    },\n\n    colorPicker: {\n      confirm: 'تایید',\n      cancel: 'انصراف',\n\n      ariaLabel: {\n        clear: 'پاکسازی رنگ',\n      },\n    },\n\n    confirm: {\n      confirm: 'تایید',\n      cancel: 'انصراف',\n    },\n\n    datePicker: {\n      confirm: 'تایید',\n      cancel: 'انصراف',\n      placeholder: {\n        year: 'سال',\n        month: 'ماه',\n        date: 'تاریخ',\n        datetime: 'زمان',\n        start: 'شروع',\n        end: 'پایان',\n        select: 'انتخاب',\n      },\n      startTime: 'شروع زمان',\n      endTime: 'پایان زمان',\n\n      ariaLabel: {\n        clear: 'پاکسازی تاریخ',\n        quarter: 'فصل',\n        week: 'هفته',\n        date: 'تاریخ',\n        hour: 'ساعت',\n        minute: 'دقیقه',\n        second: 'ثانیه',\n      },\n    },\n\n    drawer: {\n      confirm: 'تایید',\n      cancel: 'انصراف',\n    },\n\n    form: {\n      submit: 'ارسال',\n      reset: 'باز‌نشانی',\n      notNullable: '‌نباید خالی باشد',\n      validateFail: 'اعتبار‌سنجی نشد',\n    },\n\n    image: {\n      placeholder: 'درحال بارگزاری...',\n      error: 'بارگزاری نشد',\n    },\n\n    input: {\n      placeholder: 'لطفاً وارد کنید',\n\n      ariaLabel: {\n        clear: 'پاکسازی ورودی',\n      },\n    },\n\n    layout: {\n      signOut: 'خروج',\n      signType: 'نوع پیمایش',\n      majorColor: 'رنگ اصلی',\n      themeMode: 'حالت رنگ‌بندی',\n    },\n\n    modal: {\n      confirm: 'تایید',\n      cancel: 'انصراف',\n    },\n\n    numberInput: {\n      placeholder: 'لطفاً عددی وارد کنید',\n      outOfRange: 'خارج از بازه',\n\n      ariaLabel: {\n        clear: 'پاکسازی عدد',\n        increase: 'افزایش',\n        decrease: 'کاهش',\n      },\n    },\n\n    pagination: {\n      page: 'صفحه',\n      perPage: '/ صفحه',\n      prevPage: 'صفحه قبلی',\n      nextPage: 'صفحه بعدی',\n      prev: 'قبلی',\n      next: 'بعدی',\n      total: 'مجموع',\n      jumpTo: 'برو به ',\n      itemUnit: 'مورد',\n    },\n\n    select: {\n      placeholder: 'لطفاً انتخاب کنید',\n      empty: 'بدون داده',\n      search: 'جستجوی گزینه‌ها',\n\n      ariaLabel: {\n        clear: 'پاکسازی انتخاب',\n      },\n    },\n\n    table: {\n      empty: 'بدون داده',\n      filterConfirm: 'فیلتر',\n      filterReset: 'بازنشانی',\n      filterAll: 'همه',\n    },\n\n    timeAgo: {\n      ago: 'قبل',\n      late: 'اخیراً',\n      justNow: 'همین الان',\n      second: 'ثانیه',\n      minute: 'دقیقه',\n      hour: 'ساعت',\n      yesterday: 'دیروز',\n      days: 'روز',\n      lastMonth: 'ماه گذشته',\n      months: 'ماه',\n      lastYear: 'سال گذشته',\n      years: 'سال',\n    },\n\n    timePicker: {\n      confirm: 'تایید',\n      cancel: 'انصراف',\n      placeholder: {\n        time: 'زمان',\n        start: 'شروع',\n        end: 'پایان',\n        select: 'لطفاً انتخاب کنید',\n      },\n\n      ariaLabel: {\n        clear: 'پاکسازی زمان',\n        hour: 'ساعت',\n        minute: 'دقیقه',\n        second: 'ثانیه',\n      },\n    },\n\n    tour: {\n      prev: 'قبلی',\n      next: 'بعدی',\n      done: 'پایان',\n      stepCount: 'گام {n}',\n    },\n\n    transfer: {\n      source: 'موجود',\n      target: 'منتخب',\n      empty: 'بدون داده',\n      reverse: 'معکوس‌کردن انتخاب‌ها',\n      search: 'جستجو (Ctrl + F)',\n    },\n\n    tree: {\n      empty: 'بدون داده',\n    },\n\n    upload: {\n      upload: 'آپلود اسناد',\n      uploading: 'درحال آپلود',\n      dragOrClick: 'برای آپلود، اسناد را به اینجا بکشید یا کلیک کنید',\n\n      ariaLabel: {\n        preview: 'پیش‌نمایش سند',\n        delete: 'حذف سند',\n      },\n    },\n\n    video: {\n      play: 'پخش',\n      pause: 'توقف',\n      playPrev: 'قبلی',\n      playNext: 'بعدی',\n      refresh: 'تازه‌سازی',\n      flip: 'وارونه‌کردن',\n      requestPip: 'تصویر‌در‌تصویر',\n      exitPip: 'خروج از تصویر‌در‌تصویر',\n      fullWindow: 'تمام‌پنجره',\n      fullWindowExit: 'خروج از تمام‌پنجره',\n      fullScreen: 'تمام‌صفحه',\n      fullScreenExit: 'خروج از تمام‌صفحه',\n      chapterCount: 'سرفصل {n}',\n    },\n\n    viewer: {\n      rotateRight: 'چرخش به راست',\n      rotateLeft: 'چرخش به چپ',\n      flipHorizontal: 'وارونه‌کردن افقی',\n      flipVertical: 'وارونه‌کردن عمودی',\n      zoomIn: 'بزرگ‌نمایی',\n      zoomOut: 'کوچک‌نمایی',\n      fullScreen: 'تمام‌صفحه',\n      fullScreenExit: 'خروج از تمام‌صفحه',\n      reset: 'بازنشانی',\n    },\n  })\n}\n","import { defineLocaleConfig } from './helper'\n\n/**\n * French locale config.\n *\n * @author @Nalca\n */\nexport function frFRLocale() {\n  return defineLocaleConfig({\n    locale: 'fr-FR',\n    wordSpace: true,\n\n    calendar: {\n      year: '',\n      month: '',\n      month1: 'Jan',\n      month2: 'Fev',\n      month3: 'Mar',\n      month4: 'Avr',\n      month5: 'Mai',\n      month6: 'Juin',\n      month7: 'Juil',\n      month8: 'Août',\n      month9: 'Sept',\n      month10: 'Oct',\n      month11: 'Nov',\n      month12: 'Déc',\n      week1: 'Lu',\n      week2: 'Ma',\n      week3: 'Me',\n      week4: 'Je',\n      week5: 'Ve',\n      week6: 'Sa',\n      week7: 'Di',\n\n      ariaLabel: {\n        year: 'Année',\n        month: 'Mois',\n        month1: 'Janvier',\n        month2: 'Février',\n        month3: 'Mars',\n        month4: 'Avril',\n        month5: 'Mai',\n        month6: 'Juin',\n        month7: 'Juillet',\n        month8: 'Août',\n        month9: 'Septembre',\n        month10: 'Octobre',\n        month11: 'Novembre',\n        month12: 'Décembre',\n        week1: 'Lundi',\n        week2: 'Mardi',\n        week3: 'Mercredi',\n        week4: 'Jeudi',\n        week5: 'Vendredi',\n        week6: 'Samedi',\n        week7: 'Dimanche',\n      },\n    },\n\n    captcha: {\n      slideEnd: \"Veuillez faire défiler jusqu'à la fin\",\n      slide: \"Veuillez faire définer jusqu'à une position appropriée\",\n      success: 'Test réussi',\n      fail: 'Test échoué, veuillez recommencer',\n      doCaptcha: 'Veuillez compléter le captcha ci-dessous',\n      pointInOrder: \"Veuillez indiquer dans l'ordre\",\n      trigger: 'Cliquer pour déclencher le captcha',\n      completed: 'Captcha complété',\n    },\n\n    checkbox: {\n      all: 'Tous',\n    },\n\n    colorPicker: {\n      confirm: 'Confirmer',\n      cancel: 'Annuler',\n\n      ariaLabel: {\n        clear: 'Effacer la couleur',\n      },\n    },\n\n    confirm: {\n      confirm: 'Confirmer',\n      cancel: 'Annuler',\n    },\n\n    datePicker: {\n      confirm: 'Confirmer',\n      cancel: 'Annuler',\n      placeholder: {\n        year: 'année',\n        month: 'mois',\n        date: 'journée',\n        datetime: 'date & heure',\n        start: 'Début',\n        end: 'Fin',\n        select: 'Sélectionner une',\n      },\n      startTime: 'Heure de début',\n      endTime: 'Heure de fin',\n\n      ariaLabel: {\n        clear: 'Effacer la date',\n        quarter: 'Trimestre',\n        week: 'Semaine',\n        date: 'Jour',\n        hour: 'Heure',\n        minute: 'Minute',\n        second: 'Seconde',\n      },\n    },\n\n    drawer: {\n      confirm: 'Confirmer',\n      cancel: 'Annuler',\n    },\n\n    form: {\n      submit: 'Soumettre',\n      reset: 'Réinitialiser',\n      notNullable: 'Ne doit pas être vide',\n      validateFail: 'Echec de la validation',\n    },\n\n    image: {\n      placeholder: 'Chargement...',\n      error: 'Echec du chargement',\n    },\n\n    input: {\n      placeholder: 'Veuillez saisir',\n\n      ariaLabel: {\n        clear: 'Effacer le texte',\n      },\n    },\n\n    layout: {\n      signOut: 'Se déconnecter',\n      signType: 'Type de navigation',\n      majorColor: 'Couleur principale',\n      themeMode: 'Thème de couleur',\n    },\n\n    modal: {\n      confirm: 'Confirmer',\n      cancel: 'Annuler',\n    },\n\n    numberInput: {\n      placeholder: 'Veuillez saisir le numéro',\n      outOfRange: 'En dehors de la zone définie',\n\n      ariaLabel: {\n        clear: 'Effacer le numéro',\n        increase: 'Augmenter',\n        decrease: 'Diminuer',\n      },\n    },\n\n    pagination: {\n      page: 'Page | Pages',\n      perPage: '/ Page',\n      prevPage: 'Page précédente',\n      nextPage: 'Page suivante',\n      prev: 'Précédent',\n      next: 'Suivant',\n      total: 'Total',\n      jumpTo: 'Sauter vers',\n      itemUnit: 'Objet | Objets',\n    },\n\n    select: {\n      placeholder: 'Veuillez sélectionner',\n      empty: 'Pas de données',\n      search: 'Rechercher des options',\n\n      ariaLabel: {\n        clear: 'Effacer la sélection',\n      },\n    },\n\n    table: {\n      empty: 'Pas de données',\n      filterConfirm: 'Filtrer',\n      filterReset: 'Effacer les filtres',\n      filterAll: 'Tous',\n    },\n\n    timeAgo: {\n      ago: 'Avant',\n      late: 'Plus tard',\n      justNow: 'Maintenant',\n      second: 'Seconde | Secondes',\n      minute: 'Minute | Minutes',\n      hour: 'Heure | Heures',\n      yesterday: 'Hier',\n      days: 'Jour',\n      lastMonth: 'Le mois dernier',\n      months: 'Mois',\n      lastYear: \"L'année dernière\",\n      years: 'Années',\n    },\n\n    timePicker: {\n      confirm: 'Confirmer',\n      cancel: 'Annuler',\n      placeholder: {\n        time: 'heure',\n        start: 'Début',\n        end: 'Fin',\n        select: 'Veuillez sélectionner',\n      },\n\n      ariaLabel: {\n        clear: \"Effacer l'heure\",\n        hour: 'Heure',\n        minute: 'Minute',\n        second: 'Seconde',\n      },\n    },\n\n    tour: {\n      prev: 'Précédent',\n      next: 'Suivant',\n      done: 'Prêt',\n      stepCount: 'Étape {n}',\n    },\n\n    transfer: {\n      source: 'Source',\n      target: 'Cible',\n      empty: 'Pas de données',\n      reverse: 'Inverser la sélection',\n      search: 'Rechercher (Ctrl + F)',\n    },\n\n    tree: {\n      empty: 'Pas de données',\n    },\n\n    upload: {\n      upload: 'Télécharger des fichiers',\n      uploading: 'Téléchargement',\n      dragOrClick: 'Faites glisser les fichiers ici, ou cliquez pour les télécharger',\n\n      ariaLabel: {\n        preview: 'Aperçu du fichier',\n        delete: 'Supprimer le fichier',\n      },\n    },\n\n    video: {\n      play: 'Jouer',\n      pause: 'Pause',\n      playPrev: 'Précédent',\n      playNext: 'Suivant',\n      refresh: 'Rafraîchir',\n      flip: 'Retourner',\n      requestPip: 'Entrer dans PIP',\n      exitPip: 'Quitter PIP',\n      fullWindow: 'Fenêtre pleine',\n      fullWindowExit: 'Quitter la fenêtre pleine',\n      fullScreen: 'Plein écran',\n      fullScreenExit: 'Quitter le plein écran',\n      chapterCount: 'Chapitre {n}',\n    },\n\n    viewer: {\n      rotateRight: 'Tourner vers la droite',\n      rotateLeft: 'Tourner vers la gauche',\n      flipHorizontal: 'Retourner horizontalement',\n      flipVertical: 'Retourner verticalement',\n      zoomIn: 'Zoomer avant',\n      zoomOut: 'Zoom arrière',\n      fullScreen: 'Plein écran',\n      fullScreenExit: 'Quitter le plein écran',\n      reset: 'Réinitialiser',\n    },\n  })\n}\n","import { defineLocaleConfig } from './helper'\n\n/**\n * Tamil locale config.\n *\n * @author @thearasu\n */\nexport function taINLocale() {\n  return defineLocaleConfig({\n    locale: 'ta-IN',\n    wordSpace: true,\n\n    calendar: {\n      year: '',\n      month: '',\n      month1: 'ஜனவரி',\n      month2: 'பிப்ரவரி',\n      month3: 'மார்ச்',\n      month4: 'ஏப்ரல்',\n      month5: 'மே',\n      month6: 'ஜூன்',\n      month7: 'ஜூலை',\n      month8: 'ஆகஸ்ட்',\n      month9: 'செப்டம்பர்',\n      month10: 'அக்டோபர்',\n      month11: 'நவம்பர்',\n      month12: 'டிசம்பர்',\n      week1: 'Mo',\n      week2: 'Tu',\n      week3: 'We',\n      week4: 'Th',\n      week5: 'Fr',\n      week6: 'Sa',\n      week7: 'Su',\n\n      ariaLabel: {\n        year: 'ஆண்டு',\n        month: 'மாதம்',\n        month1: 'ஜனவரி',\n        month2: 'பிப்ரவரி',\n        month3: 'மார்ச்',\n        month4: 'ஏப்ரல்',\n        month5: 'மே',\n        month6: 'ஜூன்',\n        month7: 'ஜூலை',\n        month8: 'ஆகஸ்ட்',\n        month9: 'செப்டம்பர்',\n        month10: 'அக்டோபர்',\n        month11: 'நவம்பர்',\n        month12: 'டிசம்பர்',\n        week1: 'திங்கள்',\n        week2: 'செவ்வாய்',\n        week3: 'புதன்',\n        week4: 'வியாழன்',\n        week5: 'வெள்ளி',\n        week6: 'சனி',\n        week7: 'ஞாயிறு',\n      },\n    },\n\n    captcha: {\n      slideEnd: 'இறுதிக்கு ஸ்லைடு',\n      slide: 'சரியான நிலைக்கு ஸ்லைடு செய்யவும்',\n      success: 'சோதனை வெற்றி',\n      fail: 'சோதனை தோல்வி',\n      doCaptcha: 'கீழே உள்ள கேப்ட்சாவை முடிக்கவும்',\n      pointInOrder: 'வரிசையில் புள்ளி',\n      trigger: 'கேப்ட்சா கிளிக் செய்யவும்',\n      completed: 'கேப்ட்சா முடிந்தது',\n    },\n\n    checkbox: {\n      all: 'அனைத்தும்',\n    },\n\n    colorPicker: {\n      confirm: 'உறுதிபடுத்து',\n      cancel: 'நிராகரி',\n\n      ariaLabel: {\n        clear: 'தெளிவாக்கு',\n      },\n    },\n\n    confirm: {\n      confirm: 'உறுதிபடுத்து',\n      cancel: 'நிராகரி',\n    },\n\n    datePicker: {\n      confirm: 'உறுதிபடுத்து',\n      cancel: 'நிராகரி',\n      placeholder: {\n        year: 'வருடம்',\n        month: 'மாதம்',\n        date: 'தேதி',\n        datetime: 'தேதி நேரம்',\n        start: 'தொடக்கம்',\n        end: 'முடிவு',\n        select: 'தயவுசெய்து தேர்ந்தெடுக்கவும்',\n      },\n      startTime: 'தொடக்கம் நேரம்',\n      endTime: 'முடிவு நேரம்',\n\n      ariaLabel: {\n        clear: 'தெளிவாக்கு',\n        quarter: 'பருவம்',\n        week: 'வாரம்',\n        date: 'தேதி',\n        hour: 'மணி',\n        minute: 'நிமிடம்',\n        second: 'வினாடி',\n      },\n    },\n\n    drawer: {\n      confirm: 'உறுதிபடுத்து',\n      cancel: 'நிராகரி',\n    },\n\n    form: {\n      submit: 'ஒப்படை',\n      reset: 'மீள் துவக்கு',\n      notNullable: 'வெற்றிடமாக இருக்க கூடாது',\n      validateFail: 'சரிபார்த்தல் தோல்வியுற்றது',\n    },\n\n    image: {\n      placeholder: 'ஏற்றுகிறது...',\n      error: 'ஏற்றுதல் தோல்வியுற்றது',\n    },\n\n    input: {\n      placeholder: 'தயவுசெய்து உள்ளிடவும்',\n\n      ariaLabel: {\n        clear: 'தெளிவாக்கு',\n      },\n    },\n\n    layout: {\n      signOut: 'வெளியேறு',\n      signType: 'வழியமைப்பு முறை',\n      majorColor: 'முதன்மை வண்ணம்',\n      themeMode: 'நிறமுறை',\n    },\n\n    modal: {\n      confirm: 'உறுதிபடுத்து',\n      cancel: 'நிராகரி',\n    },\n\n    numberInput: {\n      placeholder: 'தயவுசெய்து எண் உள்ளிடவும்',\n      outOfRange: 'வரம்புக்கு வெளியே',\n\n      ariaLabel: {\n        clear: 'தெளிவாக்கு',\n        increase: 'அதிகரிக்க',\n        decrease: 'குறைக்க',\n      },\n    },\n\n    pagination: {\n      page: 'பக்கம் | பக்கங்கள்',\n      perPage: '/ பக்கம்',\n      prevPage: 'முந்தய பக்கம்',\n      nextPage: 'அடுத்த பக்கம்',\n      prev: 'முன்னால்',\n      next: 'அடுத்து ',\n      total: 'மொத்தம்',\n      jumpTo: 'இதற்கு தாவு',\n      itemUnit: 'உருப்படி | உருப்படிகள்',\n    },\n\n    select: {\n      placeholder: 'தயவுசெய்து தேர்ந்தெடுகக்கவும்',\n      empty: 'தரவு இல்லை',\n      search: 'தேடு அல்லது உள்ளிடு',\n\n      ariaLabel: {\n        clear: 'தெளிவாக்கு',\n      },\n    },\n\n    table: {\n      empty: 'தரவு இல்லை',\n      filterConfirm: 'வடிகட்டு',\n      filterReset: 'மீள் துவக்கு',\n      filterAll: 'அனைத்தும்',\n    },\n\n    timeAgo: {\n      ago: 'முன்',\n      late: 'தாமதம்',\n      justNow: 'தற்போது',\n      second: 'வினாடி | வினாடிகள்',\n      minute: 'நிமிடம் | நிமிடங்கள்',\n      hour: 'மணித்துளி | மணித்துளிகள்',\n      yesterday: 'நேற்று',\n      days: 'நாட்கள்',\n      lastMonth: 'கடந்த மாதம்',\n      months: 'மாதம்',\n      lastYear: 'கடந்த வருடம்',\n      years: 'வருடங்கள்',\n    },\n\n    timePicker: {\n      confirm: 'உறுதிப்படுத்து',\n      cancel: 'நிராகரி',\n      placeholder: {\n        time: 'நேரம்',\n        start: 'தொடக்கம்',\n        end: 'முடிவு',\n        select: 'தயவுசெய்து தேர்ந்தெடுக்கவும்',\n      },\n\n      ariaLabel: {\n        clear: 'தெளிவாக்கு',\n        hour: 'மணி',\n        minute: 'நிமிடம்',\n        second: 'வினாடி',\n      },\n    },\n\n    tour: {\n      prev: 'முன்',\n      next: 'அடுத்தவர்',\n      done: 'முடிந்த',\n      stepCount: 'படிமுறை {n}',\n    },\n\n    transfer: {\n      source: 'மூலம்',\n      target: 'இலக்கு',\n      empty: 'தரவு இல்லை',\n      reverse: 'மீள் தேர்வு',\n      search: 'தேடு',\n    },\n\n    tree: {\n      empty: 'தரவு இல்லை',\n    },\n\n    upload: {\n      upload: 'கோப்புகளை பதிவேற்று',\n      uploading: 'பதிவேற்றுகிறது...',\n      dragOrClick: 'கோப்புகளை இங்கே விடவும் அல்லது பதிவேற்ற அழுத்தவும்',\n\n      ariaLabel: {\n        preview: 'முன்னோட்டம்',\n        delete: 'கோப்பை நீக்கு',\n      },\n    },\n\n    video: {\n      play: 'விளையாட்டு',\n      pause: 'இடை ஓய்வு',\n      playPrev: 'முன்',\n      playNext: 'அடுத்தவர்',\n      refresh: 'புதுக்கிளர்ச்சியூட்டு',\n      flip: 'விரல் நொடி',\n      requestPip: 'PIP ஐ உள்ளிடவும்',\n      exitPip: 'PIP இலிருந்து வெளியேறவும்',\n      fullWindow: 'முழு ஜன்னல்',\n      fullWindowExit: 'முழு சாளர வெளியேற்றம்',\n      fullScreen: 'முழுத் திரை',\n      fullScreenExit: 'முழுத்திரை வெளியேறு',\n      chapterCount: 'அத்தியாயம் {n}',\n    },\n\n    viewer: {\n      rotateRight: 'வலப்புறம் சுற்றவும்',\n      rotateLeft: 'இடப்புறம் சுற்றவும்',\n      flipHorizontal: 'கிடைமட்டத்தை புரட்டவும்',\n      flipVertical: 'செங்குத்தாக புரட்டவும்',\n      zoomIn: 'பெரிதாக்கு',\n      zoomOut: 'சிறிதாக்கு',\n      fullScreen: 'முழுத்திரை',\n      fullScreenExit: 'முழுத்திரயிலிருந்து வெளியேறு',\n      reset: 'மீள்துவக்கு ',\n    },\n  })\n}\n","import { defineLocaleConfig } from './helper'\n\n/**\n * Chinese (HK) locale config.\n *\n * @author @qmhc\n */\nexport function zhHKLocale() {\n  return defineLocaleConfig({\n    locale: 'zh-CN',\n    wordSpace: false,\n\n    calendar: {\n      year: '年',\n      month: '月',\n      month1: '01月',\n      month2: '02月',\n      month3: '03月',\n      month4: '04月',\n      month5: '05月',\n      month6: '06月',\n      month7: '07月',\n      month8: '08月',\n      month9: '09月',\n      month10: '10月',\n      month11: '11月',\n      month12: '12月',\n      week1: '一',\n      week2: '二',\n      week3: '三',\n      week4: '四',\n      week5: '五',\n      week6: '六',\n      week7: '日',\n\n      ariaLabel: {\n        year: '年',\n        month: '月',\n        month1: '一月',\n        month2: '二月',\n        month3: '三月',\n        month4: '四月',\n        month5: '五月',\n        month6: '六月',\n        month7: '七月',\n        month8: '八月',\n        month9: '九月',\n        month10: '十月',\n        month11: '十一月',\n        month12: '十二月',\n        week1: '星期一',\n        week2: '星期二',\n        week3: '星期三',\n        week4: '星期四',\n        week5: '星期五',\n        week6: '星期六',\n        week7: '星期日',\n      },\n    },\n\n    captcha: {\n      slideEnd: '請滑動到最後',\n      slide: '請滑動到適當的位置',\n      success: '驗證成功',\n      fail: '驗證失敗，請重試',\n      doCaptcha: '請完成下面的驗證',\n      pointInOrder: '請按順序點擊',\n      trigger: '點擊進行驗證',\n      completed: '已完成驗證',\n    },\n\n    checkbox: {\n      all: '全選',\n    },\n\n    colorPicker: {\n      confirm: '確定',\n      cancel: '重置',\n\n      ariaLabel: {\n        clear: '清空顏色',\n      },\n    },\n\n    confirm: {\n      confirm: '確認',\n      cancel: '取消',\n    },\n\n    datePicker: {\n      confirm: '確認',\n      cancel: '取消',\n      placeholder: {\n        year: '年份',\n        month: '月份',\n        date: '日期',\n        datetime: '日期時間',\n        start: '開始',\n        end: '結束',\n        select: '請選擇',\n      },\n      startTime: '開始時間',\n      endTime: '結束時間',\n\n      ariaLabel: {\n        clear: '清空日期',\n        quarter: '季度',\n        week: '周',\n        date: '日',\n        hour: '時',\n        minute: '分',\n        second: '秒',\n      },\n    },\n\n    drawer: {\n      confirm: '確認',\n      cancel: '取消',\n    },\n\n    form: {\n      submit: '提交',\n      reset: '重置',\n      notNullable: '不可為空',\n      validateFail: '驗證未通過',\n    },\n\n    image: {\n      placeholder: '加載中...',\n      error: '加載失敗',\n    },\n\n    input: {\n      placeholder: '請輸入',\n\n      ariaLabel: {\n        clear: '清空文本',\n      },\n    },\n\n    layout: {\n      signOut: '註銷',\n      signType: '導航模式',\n      majorColor: '主題顏色',\n      themeMode: '主題模式',\n    },\n\n    modal: {\n      confirm: '確認',\n      cancel: '取消',\n    },\n\n    numberInput: {\n      placeholder: '請輸入數字',\n      outOfRange: '超出範圍',\n\n      ariaLabel: {\n        clear: '清空數字',\n        increase: '增加',\n        decrease: '減少',\n      },\n    },\n\n    pagination: {\n      page: '頁',\n      perPage: '條/頁',\n      prevPage: '上一頁',\n      nextPage: '下一頁',\n      prev: '向前',\n      next: '向後',\n      total: '共',\n      jumpTo: '跳轉',\n      itemUnit: '條',\n    },\n\n    select: {\n      placeholder: '請選擇',\n      empty: '暫無數據',\n      search: '搜索選項',\n\n      ariaLabel: {\n        clear: '清空選項',\n      },\n    },\n\n    table: {\n      empty: '暫無數據',\n      filterConfirm: '篩選',\n      filterReset: '重置',\n      filterAll: '全部',\n    },\n\n    timeAgo: {\n      ago: '前',\n      late: '後',\n      justNow: '剛剛',\n      second: '秒',\n      minute: '分鐘',\n      hour: '小時',\n      yesterday: '昨天',\n      days: '天',\n      lastMonth: '上個月',\n      months: '個月',\n      lastYear: '去年',\n      years: '年',\n    },\n\n    timePicker: {\n      confirm: '確認',\n      cancel: '取消',\n      placeholder: {\n        time: '時間',\n        start: '開始',\n        end: '結束',\n        select: '請選擇',\n      },\n\n      ariaLabel: {\n        clear: '清空時間',\n        hour: '時',\n        minute: '分',\n        second: '秒',\n      },\n    },\n\n    tour: {\n      prev: '上一步',\n      next: '下一步',\n      done: '完成',\n      stepCount: '第 {n} 步',\n    },\n\n    transfer: {\n      source: '源',\n      target: '目標',\n      empty: '暫無數據',\n      reverse: '反選',\n      search: '搜索 (Ctrl + F)',\n    },\n\n    tree: {\n      empty: '暫無數據',\n    },\n\n    upload: {\n      upload: '上傳文件',\n      uploading: '上傳中',\n      dragOrClick: '將文件拖到此處, 或點擊上傳',\n\n      ariaLabel: {\n        preview: '預覽文件',\n        delete: '刪除文件',\n      },\n    },\n\n    video: {\n      play: '播放',\n      pause: '暫停',\n      playPrev: '上一個',\n      playNext: '下一個',\n      refresh: '刷新',\n      flip: '鏡像翻轉',\n      requestPip: '進入畫中畫',\n      exitPip: '退出畫中畫',\n      fullWindow: '進入網頁全屏',\n      fullWindowExit: '退出網頁全屏',\n      fullScreen: '進入全屏',\n      fullScreenExit: '退出全屏',\n      chapterCount: '第 {n} 章',\n    },\n\n    viewer: {\n      rotateRight: '向右旋轉',\n      rotateLeft: '向左旋轉',\n      flipHorizontal: '橫向翻轉',\n      flipVertical: '縱向翻轉',\n      zoomIn: '放大',\n      zoomOut: '縮小',\n      fullScreen: '全屏',\n      fullScreenExit: '退出全屏',\n      reset: '重置',\n    },\n  })\n}\n","import { defineLocaleConfig } from './helper'\n\n/**\n * Chinese (TW) locale config.\n *\n * @author @qmhc\n */\nexport function zhTWLocale() {\n  return defineLocaleConfig({\n    locale: 'zh-CN',\n    wordSpace: false,\n\n    calendar: {\n      year: '年',\n      month: '月',\n      month1: '01月',\n      month2: '02月',\n      month3: '03月',\n      month4: '04月',\n      month5: '05月',\n      month6: '06月',\n      month7: '07月',\n      month8: '08月',\n      month9: '09月',\n      month10: '10月',\n      month11: '11月',\n      month12: '12月',\n      week1: '一',\n      week2: '二',\n      week3: '三',\n      week4: '四',\n      week5: '五',\n      week6: '六',\n      week7: '日',\n\n      ariaLabel: {\n        year: '年',\n        month: '月',\n        month1: '一月',\n        month2: '二月',\n        month3: '三月',\n        month4: '四月',\n        month5: '五月',\n        month6: '六月',\n        month7: '七月',\n        month8: '八月',\n        month9: '九月',\n        month10: '十月',\n        month11: '十一月',\n        month12: '十二月',\n        week1: '星期一',\n        week2: '星期二',\n        week3: '星期三',\n        week4: '星期四',\n        week5: '星期五',\n        week6: '星期六',\n        week7: '星期日',\n      },\n    },\n\n    captcha: {\n      slideEnd: '請滑動到最後',\n      slide: '請滑動到適當的位置',\n      success: '驗證成功',\n      fail: '驗證失敗，請重試',\n      doCaptcha: '請完成下面的驗證',\n      pointInOrder: '請按順序點選',\n      trigger: '點選進行驗證',\n      completed: '已完成驗證',\n    },\n\n    checkbox: {\n      all: '全選',\n    },\n\n    colorPicker: {\n      confirm: '確定',\n      cancel: '重置',\n\n      ariaLabel: {\n        clear: '清除顏色',\n      },\n    },\n\n    confirm: {\n      confirm: '確認',\n      cancel: '取消',\n    },\n\n    datePicker: {\n      confirm: '確認',\n      cancel: '取消',\n      placeholder: {\n        year: '年份',\n        month: '月份',\n        date: '日期',\n        datetime: '日期時間',\n        start: '開始',\n        end: '結束',\n        select: '請選擇',\n      },\n      startTime: '開始時間',\n      endTime: '結束時間',\n\n      ariaLabel: {\n        clear: '清除日期',\n        quarter: '季度',\n        week: '周',\n        date: '日',\n        hour: '時',\n        minute: '分',\n        second: '秒',\n      },\n    },\n\n    drawer: {\n      confirm: '確認',\n      cancel: '取消',\n    },\n\n    form: {\n      submit: '提交',\n      reset: '重置',\n      notNullable: '不可為空',\n      validateFail: '驗證未通過',\n    },\n\n    image: {\n      placeholder: '載入中...',\n      error: '載入失敗',\n    },\n\n    input: {\n      placeholder: '請輸入',\n\n      ariaLabel: {\n        clear: '清空內容',\n      },\n    },\n\n    layout: {\n      signOut: '登出',\n      signType: '導航模式',\n      majorColor: '主題顏色',\n      themeMode: '主題模式',\n    },\n\n    modal: {\n      confirm: '確認',\n      cancel: '取消',\n    },\n\n    numberInput: {\n      placeholder: '請輸入數字',\n      outOfRange: '超出範圍',\n\n      ariaLabel: {\n        clear: '清空數字',\n        increase: '增加',\n        decrease: '減少',\n      },\n    },\n\n    pagination: {\n      page: '頁',\n      perPage: '條/頁',\n      prevPage: '上一頁',\n      nextPage: '下一頁',\n      prev: '向前',\n      next: '向後',\n      total: '共',\n      jumpTo: '跳轉',\n      itemUnit: '條',\n    },\n\n    select: {\n      placeholder: '請選擇',\n      empty: '暫無資料',\n      search: '搜索選項',\n\n      ariaLabel: {\n        clear: '清空選項',\n      },\n    },\n\n    table: {\n      empty: '暫無資料',\n      filterConfirm: '篩選',\n      filterReset: '重置',\n      filterAll: '全部',\n    },\n\n    timeAgo: {\n      ago: '前',\n      late: '後',\n      justNow: '剛剛',\n      second: '秒',\n      minute: '分鐘',\n      hour: '小時',\n      yesterday: '昨天',\n      days: '天',\n      lastMonth: '上個月',\n      months: '個月',\n      lastYear: '去年',\n      years: '年',\n    },\n\n    timePicker: {\n      confirm: '確認',\n      cancel: '取消',\n      placeholder: {\n        time: '時間',\n        start: '開始',\n        end: '結束',\n        select: '請選擇',\n      },\n\n      ariaLabel: {\n        clear: '清除時間',\n        hour: '時',\n        minute: '分',\n        second: '秒',\n      },\n    },\n\n    tour: {\n      prev: '上一步',\n      next: '下一步',\n      done: '完成',\n      stepCount: '第 {n} 步',\n    },\n\n    transfer: {\n      source: '源',\n      target: '目標',\n      empty: '暫無資料',\n      reverse: '反選',\n      search: '搜尋 (Ctrl + F)',\n    },\n\n    tree: {\n      empty: '暫無資料',\n    },\n\n    upload: {\n      upload: '上傳檔案',\n      uploading: '上傳中',\n      dragOrClick: '將檔案拖到此處, 或點選上傳',\n\n      ariaLabel: {\n        preview: '預覽檔案',\n        delete: '刪除檔案',\n      },\n    },\n\n    video: {\n      play: '播放',\n      pause: '暫停',\n      playPrev: '上一個',\n      playNext: '下一個',\n      refresh: '重新整理',\n      flip: '映象翻轉',\n      requestPip: '進入畫中畫',\n      exitPip: '退出畫中畫',\n      fullWindow: '進入網頁全屏',\n      fullWindowExit: '退出網頁全屏',\n      fullScreen: '進入全屏',\n      fullScreenExit: '退出全屏',\n      chapterCount: '第 {n} 章',\n    },\n\n    viewer: {\n      rotateRight: '向右旋轉',\n      rotateLeft: '向左旋轉',\n      flipHorizontal: '橫向翻轉',\n      flipVertical: '縱向翻轉',\n      zoomIn: '放大',\n      zoomOut: '縮小',\n      fullScreen: '全屏',\n      fullScreenExit: '退出全屏',\n      reset: '重置',\n    },\n  })\n}\n","import { computed, inject, provide, unref } from 'vue'\n\nimport { mergeObjects } from '@vexip-ui/utils'\nimport { zhCNLocale } from './zh-CN'\n\nimport type { App, ComputedRef, MaybeRef } from 'vue'\nimport type { LocaleConfig, LocaleNames, LocaleOptions } from './helper'\n\nexport * from './helper'\n\nexport * from './ar-EG'\nexport * from './de-DE'\nexport * from './en-US'\nexport * from './fa-IR'\nexport * from './fr-FR'\nexport * from './ta-IN'\nexport * from './zh-CN'\nexport * from './zh-HK'\nexport * from './zh-TW'\n\nexport const PROVIDED_LOCALE = '__vxp-provided-locale'\nexport const globalLocal = computed(() => zhCNLocale())\n\nconst cached = new Map<string, LocaleConfig>()\n\nexport function getDefaultLocaleConfig(locale?: string) {\n  if (!locale) {\n    return globalLocal.value\n  }\n\n  return cached.get(locale) || globalLocal.value\n}\n\nexport function registerLocale(locale: LocaleConfig) {\n  locale.locale && cached.set(locale.locale, locale)\n}\n\n/**\n * Provide a locale config for under components.\n *\n * @param sourceLocale locale config\n * @param app the app of Vue, will use app.provide if specify\n */\nexport function configLocale(sourceLocale: MaybeRef<LocaleOptions>, app?: App) {\n  if (app) {\n    const locale = computed(() => {\n      const locale = unref(sourceLocale)\n\n      return mergeObjects(getDefaultLocaleConfig(locale.locale), locale)\n    })\n\n    app.provide(PROVIDED_LOCALE, locale)\n  } else {\n    const upstreamLocale = inject<ComputedRef<LocaleConfig> | null>(PROVIDED_LOCALE, null)\n    const locale = computed(() => {\n      const locale = unref(sourceLocale)\n      // const providedLocale = mergeObjects(getDefaultLocaleConfig(locale.locale), locale)\n\n      if (!upstreamLocale?.value) {\n        return mergeObjects(getDefaultLocaleConfig(locale.locale), locale)\n      }\n\n      return mergeObjects(upstreamLocale.value as any, locale)\n    })\n\n    provide(PROVIDED_LOCALE, locale)\n  }\n}\n\nexport function useLocale(): ComputedRef<LocaleConfig>\nexport function useLocale<T extends LocaleNames>(name: T): ComputedRef<LocaleConfig[T]>\nexport function useLocale<T extends LocaleNames>(\n  name: T,\n  customLocale: MaybeRef<Partial<LocaleConfig[T]>>\n): ComputedRef<LocaleConfig[T]>\nexport function useLocale<T extends LocaleNames>(\n  name?: T,\n  customLocale?: MaybeRef<Partial<LocaleConfig[T]>>,\n) {\n  const locale = inject<ComputedRef<LocaleConfig>>(PROVIDED_LOCALE, globalLocal)\n\n  if (!name) {\n    return locale\n  }\n\n  if (customLocale) {\n    return computed(() => ({ ...(locale.value?.[name] ?? {}), ...(unref(customLocale) ?? {}) }))\n  }\n\n  return computed(() => locale.value?.[name] ?? {})\n}\n\nexport function useWordSpace() {\n  const locale = inject<ComputedRef<LocaleConfig>>(PROVIDED_LOCALE, globalLocal)\n\n  return computed(() => locale.value.wordSpace ?? false)\n}\n\nexport function getCountWord(wordTemplate: string, count: number) {\n  const words = wordTemplate.split('|')\n\n  if (words.length === 1) return `${count} ${wordTemplate}`\n\n  return `${count} ${count > 1 ? words[1].trim() : words[0].trim()}`\n}\n\nexport function getCountWordOnly(wordTemplate: string, count: number) {\n  const words = wordTemplate.split('|')\n\n  if (words.length === 1) return wordTemplate\n\n  return count > 1 ? words[1].trim() : words[0].trim()\n}\n\nexport function makeSentence(words: string, wordSpace = globalLocal.value.wordSpace ?? false) {\n  return !wordSpace ? words.replace(/\\s+/g, '') : words\n}\n\nexport function getStepByWord(wordTemplate: string, step: number) {\n  return wordTemplate.replace(/{n}/g, `${step}`)\n}\n","import { computed, getCurrentScope, inject, markRaw, provide, unref } from 'vue'\n\nimport {\n  AlertCircle,\n  ArrowLeftRight,\n  Calendar,\n  Check,\n  CheckCircle2,\n  ChevronDown,\n  ChevronLeft,\n  ChevronRight,\n  ChevronUp,\n  ChevronsLeft,\n  ChevronsRight,\n  Clock,\n  Eye,\n  EyeOff,\n  File,\n  FileArchive,\n  FileCode,\n  FileImage,\n  FileMusic,\n  FileText,\n  FileVideo,\n  Filter,\n  FlipHorizontal,\n  FlipVertical,\n  Fullscreen,\n  GripVertical,\n  HelpCircle,\n  Image,\n  Indent,\n  Info,\n  Loader2,\n  LogOut,\n  Maximize,\n  MessageCircleQuestion,\n  Minimize,\n  Minus,\n  MinusSquare,\n  Moon,\n  MoreHorizontal,\n  Outdent,\n  Pause,\n  PictureInPicture,\n  Play,\n  Plus,\n  PlusSquare,\n  RefreshCw,\n  Repeat2,\n  RotateCcw,\n  RotateCw,\n  Search,\n  Siren,\n  SkipBack,\n  SkipForward,\n  Sun,\n  Trash2,\n  Upload,\n  UploadCloud,\n  UserRound,\n  Volume1,\n  Volume2,\n  VolumeX,\n  X,\n  XCircle,\n  ZoomIn,\n  ZoomOut,\n} from 'lucide-vue-next'\nimport { ensureArray } from '@vexip-ui/utils'\n\nimport type { App, ComputedRef, MaybeRef } from 'vue'\nimport type { ClassType, StyleType } from './props'\n\nexport const PROVIDED_ICONS = '__vxp-provided-icons'\n\nexport type IconValue = Record<string, any> | (() => any)\n\nexport interface IconOptions extends Record<string, any> {\n  class?: ClassType,\n  style?: StyleType,\n  scale?: number | string,\n  title?: string,\n  label?: string,\n  flip?: 'horizontal' | 'vertical' | 'both',\n  effect?: string,\n  size?: string,\n  color?: string,\n  rotate?: number | string\n}\n\nexport type IconArrayValue = [IconValue, IconOptions?]\nexport type IconConfig = IconValue | IconArrayValue\n\nexport interface IconsOptions {\n  loading?: IconConfig,\n  clear?: IconConfig,\n  close?: IconConfig,\n  calendar?: IconConfig,\n  clock?: IconConfig,\n  exchange?: IconConfig,\n  angleUp?: IconConfig,\n  angleRight?: IconConfig,\n  angleDown?: IconConfig,\n  angleLeft?: IconConfig,\n  anglesRight?: IconConfig,\n  anglesLeft?: IconConfig,\n  retweet?: IconConfig,\n  refresh?: IconConfig,\n  filter?: IconConfig,\n  ellipsis?: IconConfig,\n  upload?: IconConfig,\n  uploadCloud?: IconConfig,\n  check?: IconConfig,\n  help?: IconConfig,\n  alert?: IconConfig,\n  question?: IconConfig,\n  info?: IconConfig,\n  success?: IconConfig,\n  warning?: IconConfig,\n  error?: IconConfig,\n  delete?: IconConfig,\n  preview?: IconConfig,\n  image?: IconConfig,\n  plus?: IconConfig,\n  minus?: IconConfig,\n  plusSquare?: IconConfig,\n  minusSquare?: IconConfig,\n  cipherText?: IconConfig,\n  plainText?: IconConfig,\n  user?: IconConfig,\n  light?: IconConfig,\n  dark?: IconConfig,\n  signOut?: IconConfig,\n  indent?: IconConfig,\n  outdent?: IconConfig,\n  search?: IconConfig,\n  rotateRight?: IconConfig,\n  rotateLeft?: IconConfig,\n  flipX?: IconConfig,\n  flipY?: IconConfig,\n  zoomIn?: IconConfig,\n  zoonOut?: IconConfig,\n  fullScreen?: IconConfig,\n  resetScreen?: IconConfig,\n  dragger?: IconConfig,\n  file?: IconConfig,\n  fileText?: IconConfig,\n  fileCode?: IconConfig,\n  fileImage?: IconConfig,\n  fileAudio?: IconConfig,\n  fileVideo?: IconConfig,\n  fileZip?: IconConfig,\n  volume?: IconConfig,\n  volumeLow?: IconConfig,\n  volumeMute?: IconConfig,\n  play?: IconConfig,\n  pause?: IconConfig,\n  fullWindow?: IconConfig,\n  pip?: IconConfig,\n  playState?: IconConfig,\n  pauseState?: IconConfig,\n  playPrev?: IconConfig,\n  playNext?: IconConfig\n}\n\nexport type IconName = keyof IconsOptions\nexport type IconsConfig = {\n  [K in keyof IconsOptions]-?: IconConfig\n}\nexport type NormalizedIconsConfig = Record<IconName, IconOptions & { icon: IconValue }>\n\nconst iconMap: IconsConfig = {\n  loading: [Loader2, { effect: 'spin-in' }],\n  clear: XCircle,\n  close: X,\n  calendar: Calendar,\n  clock: Clock,\n  exchange: ArrowLeftRight,\n  angleUp: ChevronUp,\n  angleRight: ChevronRight,\n  angleDown: ChevronDown,\n  angleLeft: ChevronLeft,\n  anglesRight: ChevronsRight,\n  anglesLeft: ChevronsLeft,\n  retweet: Repeat2,\n  refresh: RefreshCw,\n  filter: Filter,\n  ellipsis: MoreHorizontal,\n  upload: Upload,\n  uploadCloud: UploadCloud,\n  check: Check,\n  help: HelpCircle,\n  alert: Siren,\n  question: MessageCircleQuestion,\n  info: Info,\n  success: CheckCircle2,\n  warning: AlertCircle,\n  error: XCircle,\n  delete: Trash2,\n  preview: Eye,\n  image: Image,\n  plus: Plus,\n  minus: Minus,\n  plusSquare: PlusSquare,\n  minusSquare: MinusSquare,\n  cipherText: EyeOff,\n  plainText: Eye,\n  user: UserRound,\n  light: Sun,\n  dark: Moon,\n  signOut: LogOut,\n  indent: Indent,\n  outdent: Outdent,\n  search: Search,\n  rotateRight: RotateCw,\n  rotateLeft: RotateCcw,\n  flipX: FlipHorizontal,\n  flipY: FlipVertical,\n  zoomIn: ZoomIn,\n  zoonOut: ZoomOut,\n  fullScreen: Maximize,\n  resetScreen: Minimize,\n  dragger: GripVertical,\n  file: File,\n  fileText: FileText,\n  fileCode: FileCode,\n  fileImage: FileImage,\n  fileAudio: FileMusic,\n  fileVideo: FileVideo,\n  fileZip: FileArchive,\n  volume: Volume2,\n  volumeLow: Volume1,\n  volumeMute: VolumeX,\n  play: Play,\n  pause: Pause,\n  fullWindow: Fullscreen,\n  pip: PictureInPicture,\n  playState: Play,\n  pauseState: Pause,\n  playPrev: SkipBack,\n  playNext: SkipForward,\n}\n\nexport const iconNames = Object.freeze(Object.keys(iconMap) as IconName[])\n\nexport const globalIcons = computed(() => {\n  const icons = {} as NormalizedIconsConfig\n\n  for (const name of iconNames) {\n    const [icon, options = {}] = ensureArray(iconMap[name]) as [Record<string, any>, IconOptions?]\n\n    icons[name] = { ...options, icon }\n  }\n\n  return icons\n})\n\n/**\n * Provide a icons config for under components.\n *\n * @param icons icons config\n * @param app the app of Vue, will use app.provide if specify\n */\nexport function configIcons(icons: MaybeRef<IconsOptions>, app?: App) {\n  const upstreamIcons =\n    app || !getCurrentScope()\n      ? globalIcons\n      : inject<ComputedRef<IconsConfig> | null>(PROVIDED_ICONS, null)\n  const normalizedIcons = computed(() => {\n    const normalizedIcons = {} as IconsConfig\n    const unrefIcons = unref(icons)\n\n    for (const name of iconNames) {\n      const config = unrefIcons[name]\n\n      if (!config) {\n        normalizedIcons[name] = upstreamIcons?.value[name] || globalIcons.value[name]\n      } else {\n        const [icon, options = {}] = ensureArray(config) as IconArrayValue\n        const normalizedIcon = typeof icon === 'function' ? icon : markRaw(icon)\n\n        normalizedIcons[name] = { ...options, icon: normalizedIcon }\n      }\n    }\n\n    return normalizedIcons\n  })\n\n  if (app) {\n    app.provide(PROVIDED_ICONS, normalizedIcons)\n  } else {\n    provide(PROVIDED_ICONS, normalizedIcons)\n  }\n}\n\nexport function useIcons() {\n  return inject<ComputedRef<NormalizedIconsConfig>>(PROVIDED_ICONS, globalIcons)\n}\n","import { computed, inject, provide, unref } from 'vue'\n\nimport { useBEM } from '@vexip-ui/bem-helper'\n\nimport type { App, ComputedRef, MaybeRef } from 'vue'\n\nexport type Namespace = 'vxp'\n\nexport const PROVIDED_NAMESPACE = '__vxp-provided-namespace'\nexport const globalNamespace = computed(() => 'vxp' as Namespace)\n\n/**\n * Provide a namespace config for under components.\n *\n * You only should use this method when initialize application.\n *\n * @param sourceNamespace namespace config\n * @param app the app of Vue, will use app.provide if specify\n */\nexport function configNamespace<N extends string = Namespace>(\n  sourceNamespace: MaybeRef<N>,\n  app?: App,\n) {\n  if (app) {\n    const namespace = computed(() => {\n      const namespace = unref(sourceNamespace)\n\n      return namespace || globalNamespace.value\n    })\n\n    app.provide(PROVIDED_NAMESPACE, namespace)\n  } else {\n    const upstreamNamespace = inject<ComputedRef<string> | null>(PROVIDED_NAMESPACE, null)\n    const namespace = computed(() => {\n      return unref(sourceNamespace) || upstreamNamespace?.value || globalNamespace.value\n    })\n\n    provide(PROVIDED_NAMESPACE, namespace)\n  }\n}\n\nexport function useNamespace<N extends string = Namespace>() {\n  return inject(PROVIDED_NAMESPACE, globalNamespace) as ComputedRef<N>\n}\n\n/**\n * Create a name helper for BEM.\n *\n * For css vars name, the namespace is fixed to 'vxp' (not responsive).\n */\nexport function useNameHelper<B extends string, N extends string = Namespace>(\n  block: B,\n  namespace: MaybeRef<N> = useNamespace(),\n) {\n  return useBEM(block, isVar => (isVar ? 'vxp' : unref(namespace)))\n}\n\nexport type NameHelper = ReturnType<typeof useNameHelper>\n","import { getCurrentInstance, inject, provide, readonly, shallowRef, unref, watchEffect } from 'vue'\n\nimport { useNamespace } from './namespace'\n\nimport type { App, MaybeRef } from 'vue'\n\nexport const PROVIDED_ID_CONTER = '__vxp-provided-id-counter'\n\nexport interface IDCounter {\n  getNext: () => number | string\n}\n\nclass VxpIDCounter implements IDCounter {\n  private current: number\n\n  constructor({ current = 0 }: { current?: number } = {}) {\n    this.current = current\n  }\n\n  getNext() {\n    return this.current++\n  }\n}\n\nconst defaultCounter = new VxpIDCounter()\n\n/**\n * Provide a id counter config for under components.\n *\n * You only should use this method when initialize application.\n *\n * @param sourceCounter id counter config\n * @param app the app of Vue, will use app.provide if specify\n */\nexport function configIdCounter(sourceCounter: IDCounter = defaultCounter, app?: App) {\n  if (app) {\n    app.provide(PROVIDED_ID_CONTER, sourceCounter)\n  } else {\n    const upstreamCounter = inject<IDCounter | null>(PROVIDED_ID_CONTER, null)\n\n    provide(PROVIDED_ID_CONTER, sourceCounter || upstreamCounter)\n  }\n}\n\nexport function useId(customId?: MaybeRef<string>) {\n  const namespace = useNamespace()\n  const counter = getCurrentInstance()\n    ? inject<IDCounter>(PROVIDED_ID_CONTER, defaultCounter)\n    : defaultCounter\n\n  const id = shallowRef()\n\n  watchEffect(\n    () => {\n      id.value = unref(customId) || `${namespace.value}-id-${counter.getNext()}`\n    },\n    { flush: 'sync' },\n  )\n\n  return readonly(id)\n}\n","import { computed, inject, provide, reactive, unref, watch } from 'vue'\n\nimport { has, isFunction, isNull, isObject, mergeObjects } from '@vexip-ui/utils'\n\nimport type {\n  App,\n  CSSProperties,\n  ComponentObjectPropsOptions,\n  ComputedRef,\n  MaybeRef,\n  PropType,\n} from 'vue'\nimport type { LocaleConfig, LocaleNames } from './locale'\nimport type { AnyFunction, EnsureValue, Expand, MaybeFunction, VoidFunction } from './types'\n\nexport type PropsOptions = Record<string, Record<string, unknown>>\n\ninterface PropsConfig<T = any> {\n  /**\n   * The default value of the prop\n   */\n  default: T | (() => T) | null,\n  /**\n   * Whether the prop is a function type\n   *\n   * @default false\n   */\n  isFunc?: boolean,\n  /**\n   * Whether the prop is not configurable\n   *\n   * @default false\n   */\n  static?: boolean,\n  /**\n   * Whether the prop is required\n   *\n   * @default false\n   */\n  required?: boolean,\n  /**\n   * The validator for the prop, decide whether the value of the prop is valid\n   *\n   * @param value the value of the prop\n   */\n  validator?: (value: T) => any\n}\n\ntype PropsConfigOptions<T> = {\n  [K in keyof T]?:\n  | PropsConfig<EnsureValue<T[K]>>\n  | EnsureValue<T[K]>\n  | (() => EnsureValue<T[K]>)\n  | null\n}\n\nexport const PROVIDED_PROPS = '__vxp-provided-props'\nconst eventPropRE = /^on[A-Z]/\n\n/**\n * Provide a props config for under components.\n *\n * @param props props config\n * @param app the app of Vue, will use app.provide if specify\n */\nexport function configProps<T>(props: MaybeRef<T>, app?: App) {\n  if (app) {\n    app.provide(\n      PROVIDED_PROPS,\n      computed(() => unref(props)),\n    )\n  } else {\n    const upstreamProps = inject<ComputedRef<Record<string, any>> | null>(PROVIDED_PROPS, null)\n    const providedProps = computed(() => {\n      if (!upstreamProps?.value) {\n        return unref(props)\n      }\n\n      return mergeObjects(upstreamProps.value, unref(props) as any)\n    })\n\n    provide(PROVIDED_PROPS, providedProps)\n  }\n}\n\nexport function useProps<T extends Record<string, any>>(\n  name: string,\n  sourceProps: T,\n  config: PropsConfigOptions<T> = {},\n) {\n  const providedProps = inject<ComputedRef<Record<string, PropsConfigOptions<T>>> | null>(\n    PROVIDED_PROPS,\n    null,\n  )\n  const commonProps = computed<PropsConfigOptions<T>>(() => {\n    return providedProps?.value?.default ?? {}\n  })\n  const configProps = computed<PropsConfigOptions<T>>(() => {\n    return providedProps?.value?.[name] ?? {}\n  })\n  const keys = Object.keys(sourceProps) as Array<keyof T>\n  const props: {\n    [P in keyof T]?: ComputedRef<T[P]>\n  } = {}\n\n  keys.forEach(key => {\n    const defs = config[key]\n    const propOptions = (\n      isObject(defs) && has(defs, 'default') ? defs : { default: defs }\n    ) as PropsConfig<T[keyof T]>\n    const validator = isFunction(propOptions.validator) ? propOptions.validator : null\n    const defaultValue = propOptions.default\n    const isFunc = isNull(propOptions.isFunc) ? eventPropRE.test(String(key)) : propOptions.isFunc\n    const getValue = (value: PropsConfigOptions<T>[keyof T]) =>\n      !isFunc && isFunction(value) ? value() : value\n    const getDefault = () =>\n      (!isFunc && isFunction(defaultValue) ? defaultValue() : defaultValue) as T[keyof T]\n\n    ;(propOptions.required || validator) &&\n      watch(\n        () => sourceProps[key],\n        value => {\n          if (isNull(value)) {\n            if (propOptions.required) {\n              console.warn(`${toWarnPrefix(name)}: '${key as string}' prop is required but not set`)\n            }\n\n            return\n          } else if (!validator) {\n            return\n          }\n\n          const result = validator(value)\n\n          if (result === false) {\n            console.warn(\n              `${toWarnPrefix(name)}: an invalid value is set to '${key as string}' prop`,\n            )\n          }\n        },\n        { immediate: true },\n      )\n\n    if (propOptions.static) {\n      props[key] = computed(() => sourceProps[key] ?? getDefault())\n    } else {\n      props[key] = computed(() => {\n        if (isNull(sourceProps[key])) {\n          if (!isNull(configProps.value[key])) {\n            return getValue(configProps.value[key])\n          }\n          if (!isNull(commonProps.value[key])) {\n            return getValue(commonProps.value[key])\n          }\n\n          return getDefault()\n        }\n\n        return sourceProps[key]\n      })\n    }\n  })\n\n  return reactive(props) as {\n    [P in keyof T]-?: Exclude<T[P], undefined>\n  }\n}\n\nexport function useHookProps<T extends Record<any, any>>(\n  props: T,\n  defaults: { [K in keyof T]: T[K] | null },\n) {\n  const propsWithDefault: { [P in keyof T]?: ComputedRef<T[P]> } = {}\n\n  for (const key of Object.keys(props) as (keyof T)[]) {\n    propsWithDefault[key] = computed(() => props[key] ?? defaults[key]!)\n  }\n\n  return reactive(propsWithDefault) as {\n    [P in keyof T]-?: Exclude<T[P], undefined>\n  }\n}\n\nfunction toWarnPrefix(name: string) {\n  return `[vexip-ui:${name.charAt(0).toLocaleUpperCase() + name.substring(1)}]`\n}\n\nexport const booleanProp = {\n  type: Boolean,\n  default: null,\n}\nexport const booleanStringProp = {\n  type: [Boolean, String],\n  default: null,\n}\nexport const booleanNumberProp = {\n  type: [Boolean, Number],\n  default: null,\n}\n\ntype CommonExcludedProps =\n  | 'inherit'\n  | 'value'\n  | 'checked'\n  | 'active'\n  | 'visible'\n  | 'label'\n  | 'options'\n  | 'name'\ntype ExcludeProps<P, E extends string = never, I extends string = never> =\n  | Exclude<CommonExcludedProps, I>\n  | Exclude<E, I>\n  | (P extends I ? never : P extends `on${Capitalize<string>}` ? P : never)\ntype PostProps<T, E extends string> = Omit<{ [P in keyof T]: MaybeFunction<T[P]> }, E>\n\n/**\n * Create a configurable props\n *\n * @param T the type of import('vue').ExtractPropTypes\n * @param E the props should force exclude\n * @param I the props should force include\n */\nexport type ConfigurableProps<T, E extends string = never, I extends string = never> = PostProps<\n  {\n    [P in keyof T]?: P extends I\n      ? T[P]\n      : P extends `on${Capitalize<string>}`\n        ? never\n        : T[Exclude<P, CommonExcludedProps | E>]\n  },\n  ExcludeProps<keyof T, E, I>\n>\n\n/* eslint-disable @typescript-eslint/ban-types */\ntype VexipProps<T> = {\n  [P in keyof T]: T[P] extends PropType<infer I>\n    ? PropType<I & {}>\n    : T[P] extends { type: PropType<infer I> }\n      ? PropType<I & {}>\n      : T[P]\n}\n/* eslint-enable */\n\nexport function wrapProps<T extends ComponentObjectPropsOptions>(props: T) {\n  return Object.freeze(props) as Expand<T>\n}\n\nexport function buildProps<T extends ComponentObjectPropsOptions>(props: T) {\n  const common = {\n    inherit: booleanProp,\n  }\n\n  return Object.freeze({ ...common, ...props }) as Expand<VexipProps<typeof common & T>>\n}\n\nexport function omitProps<T extends ComponentObjectPropsOptions, K extends keyof T>(\n  props: T,\n  keys: K[]\n): Expand<Omit<T, K>>\nexport function omitProps<\n  T extends ComponentObjectPropsOptions,\n  K extends keyof T,\n  E extends ComponentObjectPropsOptions,\n>(props: T, keys: K[], extra: E): Expand<Omit<T, K> & E>\nexport function omitProps<\n  T extends ComponentObjectPropsOptions,\n  K extends keyof T,\n  E extends ComponentObjectPropsOptions,\n>(props: T, keys: K[], extra?: E) {\n  const omittedKeys = new Set(keys)\n\n  return Object.freeze(\n    Object.assign(\n      (Object.keys(props) as any[]).reduce((prev, current) => {\n        if (!omittedKeys.has(current)) {\n          prev[current] = props[current]\n        }\n\n        return prev\n      }, {}),\n      extra || {},\n    ),\n  )\n}\n\nexport type ComponentSize = 'small' | 'default' | 'large'\n\nexport const sizeProp = String as PropType<ComponentSize>\nconst validSizeValues: ComponentSize[] = ['small', 'default', 'large']\nconst sizeValidator = (value: ComponentSize) => validSizeValues.includes(value)\n\nexport function createSizeProp(defaultValue: MaybeRef<ComponentSize> = 'default') {\n  return {\n    default: () => unref(defaultValue),\n    validator: sizeValidator,\n  }\n}\n\nexport type ComponentState = 'default' | 'success' | 'error' | 'warning'\n\nexport const stateProp = String as PropType<ComponentState>\nconst validStateValues: ComponentState[] = ['default', 'success', 'error', 'warning']\nconst stateValidator = (value: ComponentState) => validStateValues.includes(value)\n\nexport function createStateProp(defaultValue: MaybeRef<ComponentState> = 'default') {\n  return {\n    default: () => unref(defaultValue),\n    validator: stateValidator,\n  }\n}\n\ntype MaybeArray<T> = T | T[]\n// type MaybeArrayDeep<T> = T | (MaybeArrayDeep<T>[] extends infer R ? R : never)\n\nexport type ClassType = string | Record<string, any> | Array<string | Record<string, any>>\nexport type StyleType = string | CSSProperties | Array<string | CSSProperties>\n\nexport const classProp = [String, Object, Array] as PropType<ClassType>\nexport const styleProp = [String, Object, Array] as PropType<StyleType>\n\ntype ForceBoolean<T> = true extends T\n  ? Exclude<T, boolean> | boolean\n  : false extends T\n    ? Exclude<T, boolean> | boolean\n    : T\ntype ForceBooleanDeep<T> = T extends unknown ? { [K in keyof T]: ForceBoolean<T[K]> } : never\ntype SplitAndCombo<T, O = T> = T extends unknown\n  ?\n    | [T]\n    | (SplitAndCombo<Exclude<O, T>> extends infer U extends any[]\n      ? U extends U\n        ? [ForceBoolean<T | U[number]>]\n        : never\n      : never)\n  : never\ntype GenerateEvent<T extends any[], Others extends any[], R = any> = T extends unknown\n  ? Others extends never\n    ? (value: T[0]) => R\n    : (value: T[0], ...args: Others) => R\n  : never\n\n/**\n * Split and combo the first parameter of the given function\n *\n * @example\n * ```ts\n * // origin function\n * type Fn = (value: string | number | boolean) => void\n *\n * // after transform\n * type After =\n *  | ((value: string | number | boolean) => void)\n *  | ((value: string | number) => void)\n *  | ((value: string | boolean) => void)\n *  | ((value: number | boolean) => void)\n *  | ((value: string) => void)\n *  | ((value: number) => void)\n *  | ((value: boolean) => void)\n * ```\n */\nexport type EventListener<T extends AnyFunction> =\n  Expand<ForceBooleanDeep<SplitAndCombo<Parameters<T>[0]>>> extends infer F extends any[]\n    ? Parameters<T> extends [unknown, ...infer Others]\n      ? GenerateEvent<F, Others, ReturnType<T>>\n      : GenerateEvent<F, never, ReturnType<T>>\n    : never\n\nconst eventTypes = [Function, Array]\n\nexport function eventProp<F extends AnyFunction = VoidFunction>() {\n  return eventTypes as PropType<MaybeArray<F>>\n}\n\nexport function emitEvent<A extends any[]>(\n  handlers: MaybeArray<(...args: A) => void> | undefined,\n  ...args: A\n) {\n  if (Array.isArray(handlers)) {\n    for (let i = 0, len = handlers.length; i < len; ++i) {\n      const handler = handlers[i]\n\n      typeof handler === 'function' && handler(...args)\n    }\n  } else {\n    typeof handlers === 'function' && handlers(...args)\n  }\n}\n\nexport function localeProp<N extends LocaleNames>(_name: N) {\n  return Object as PropType<Partial<LocaleConfig[N]>>\n}\n\nexport const valueProp = {\n  type: [String, Number, Boolean],\n  default: null,\n}\nexport const valuesProp = {\n  type: [String, Number, Boolean, Array] as PropType<MaybeArray<string | number | boolean>>,\n  default: null,\n}\n\nexport const iconProp = [Object, Function]\n\nexport function createIconProp(defaultValue: Record<any, any> | AnyFunction | null = null) {\n  return {\n    isFunc: true,\n    default: defaultValue,\n  }\n}\n","import { computed, getCurrentInstance, inject, provide, unref } from 'vue'\n\nimport { isClient, isDefined } from '@vexip-ui/utils'\n\nimport type { App, ComputedRef, MaybeRef } from 'vue'\n\nexport const PROVIDED_Z_INDEX = '___vxp-provided-z-index'\n\nlet initZIndex = 2000\n\nif (isClient) {\n  const rootStyle = getComputedStyle(document.documentElement)\n  const cssZIndex = parseFloat(rootStyle.getPropertyValue('--vxp-z-index-popup').trim())\n\n  if (!Number.isNaN(cssZIndex)) {\n    initZIndex = cssZIndex\n  }\n}\n\nconst counter = {\n  current: 0,\n}\n\nexport const globalZIndex = computed(() => initZIndex)\n\nfunction getOrDefault(num: number, def: number) {\n  return isDefined(num) && !Number.isNaN(num) ? num : def\n}\n\n/**\n * Provide a z-index config for under components.\n *\n * @param sourceZIndex z-index config\n * @param app the app of Vue, will use app.provide if specify\n */\nexport function configZIndex(sourceZIndex: MaybeRef<number>, app?: App) {\n  if (app) {\n    const zIndex = computed(() => {\n      const zIndex = unref(sourceZIndex)\n\n      return getOrDefault(zIndex, globalZIndex.value)\n    })\n\n    app.provide(PROVIDED_Z_INDEX, zIndex)\n  } else {\n    const upstreamZIndex = inject<ComputedRef<number> | null>(PROVIDED_Z_INDEX, null)\n    const zIndex = computed(() => {\n      const zIndex = unref(sourceZIndex)\n\n      return getOrDefault(\n        zIndex,\n        upstreamZIndex ? getOrDefault(upstreamZIndex.value, globalZIndex.value) : globalZIndex.value,\n      )\n    })\n\n    provide(PROVIDED_Z_INDEX, zIndex)\n  }\n}\n\nexport function useZIndex() {\n  const zIndex = getCurrentInstance()\n    ? inject<ComputedRef<number>>(PROVIDED_Z_INDEX, globalZIndex)\n    : globalZIndex\n\n  // return computed(() => zIndex.value + counter++)\n  return () => zIndex.value + counter.current++\n}\n"],"names":["PROVIDED_HOVER_DELAY","globalDelay","computed","getOrDefault","num","def","isDefined","configHoverDelay","sourceDelay","app","delay","unref","upstreamDelay","inject","provide","useHoverDelay","getCurrentInstance","defineLocale","locale","defineLocaleConfig","zhCNLocale","arEGLocale","deDELocale","enUSLocale","faIRLocale","frFRLocale","taINLocale","zhHKLocale","zhTWLocale","PROVIDED_LOCALE","globalLocal","cached","getDefaultLocaleConfig","registerLocale","configLocale","sourceLocale","mergeObjects","upstreamLocale","useLocale","name","customLocale","_a","useWordSpace","getCountWord","wordTemplate","count","words","getCountWordOnly","makeSentence","wordSpace","getStepByWord","step","PROVIDED_ICONS","iconMap","Loader2","XCircle","X","Calendar","Clock","ArrowLeftRight","ChevronUp","ChevronRight","ChevronDown","ChevronLeft","ChevronsRight","ChevronsLeft","Repeat2","RefreshCw","Filter","MoreHorizontal","Upload","UploadCloud","Check","HelpCircle","Siren","MessageCircleQuestion","Info","CheckCircle2","AlertCircle","Trash2","Eye","Image","Plus","Minus","PlusSquare","MinusSquare","EyeOff","UserRound","Sun","Moon","LogOut","Indent","Outdent","Search","RotateCw","RotateCcw","FlipHorizontal","FlipVertical","ZoomIn","ZoomOut","Maximize","Minimize","GripVertical","File","FileText","FileCode","FileImage","FileMusic","FileVideo","FileArchive","Volume2","Volume1","VolumeX","Play","Pause","Fullscreen","PictureInPicture","SkipBack","SkipForward","iconNames","globalIcons","icons","icon","options","ensureArray","configIcons","upstreamIcons","getCurrentScope","normalizedIcons","unrefIcons","config","normalizedIcon","markRaw","useIcons","PROVIDED_NAMESPACE","globalNamespace","configNamespace","sourceNamespace","namespace","upstreamNamespace","useNamespace","useNameHelper","block","useBEM","isVar","PROVIDED_ID_CONTER","VxpIDCounter","current","__publicField","defaultCounter","configIdCounter","sourceCounter","upstreamCounter","useId","customId","counter","id","shallowRef","watchEffect","readonly","PROVIDED_PROPS","eventPropRE","configProps","props","upstreamProps","providedProps","useProps","sourceProps","commonProps","keys","key","defs","propOptions","isObject","has","validator","isFunction","defaultValue","isFunc","isNull","getValue","value","getDefault","watch","toWarnPrefix","reactive","useHookProps","defaults","propsWithDefault","booleanProp","booleanStringProp","booleanNumberProp","wrapProps","buildProps","omitProps","extra","omittedKeys","prev","sizeProp","validSizeValues","sizeValidator","createSizeProp","stateProp","validStateValues","stateValidator","createStateProp","classProp","styleProp","eventTypes","eventProp","emitEvent","handlers","args","i","len","handler","localeProp","_name","valueProp","valuesProp","iconProp","createIconProp","PROVIDED_Z_INDEX","initZIndex","isClient","rootStyle","cssZIndex","globalZIndex","configZIndex","sourceZIndex","zIndex","upstreamZIndex","useZIndex"],"mappings":"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"}