{"version":3,"file":"index.mjs","sources":["../../../../../packages/locale/index.ts"],"sourcesContent":["import { reactive, ref } from 'vue'\nimport { deepAssign } from '@xzx-design/utils/deep-assign'\nimport defaultMessages from './lang/zh-CN'\n\ntype Message = Record<string, any>\ntype Messages = Record<string, Message>\n\nconst lang = ref('zh-CN')\nconst messages = reactive<Messages>({\n  'zh-CN': defaultMessages,\n})\n\nexport const Locale = {\n  messages(): Message {\n    return messages[lang.value].el\n  },\n\n  use(newLang: string, newMessages?: Message) {\n    lang.value = newLang\n    this.add({ [newLang]: newMessages })\n  },\n\n  add(newMessages: Message = {}) {\n    deepAssign(messages, newMessages)\n  },\n}\n\nexport const useCurrentLang = () => lang\n\nexport type TranslatePair = {\n  [key: string]: string | string[] | TranslatePair\n}\n\nexport type Language = {\n  name: string\n  el: TranslatePair\n}\n\nexport default Locale\n"],"names":["defaultMessages"],"mappings":";;;;AAOA,MAAM,IAAA,GAAO,IAAI,OAAO,CAAA,CAAA;AACxB,MAAM,WAAW,QAAmB,CAAA;AAAA,EAClC,OAAS,EAAAA,EAAA;AACX,CAAC,CAAA,CAAA;AAEM,MAAM,MAAS,GAAA;AAAA,EACpB,QAAoB,GAAA;AAClB,IAAO,OAAA,QAAA,CAAS,KAAK,KAAO,CAAA,CAAA,EAAA,CAAA;AAAA,GAC9B;AAAA,EAEA,GAAA,CAAI,SAAiB,WAAuB,EAAA;AAC1C,IAAA,IAAA,CAAK,KAAQ,GAAA,OAAA,CAAA;AACb,IAAA,IAAA,CAAK,GAAI,CAAA,EAAE,CAAC,OAAA,GAAU,aAAa,CAAA,CAAA;AAAA,GACrC;AAAA,EAEA,GAAA,CAAI,WAAuB,GAAA,EAAI,EAAA;AAC7B,IAAA,UAAA,CAAW,UAAU,WAAW,CAAA,CAAA;AAAA,GAClC;AACF,EAAA;AAEO,MAAM,iBAAiB,MAAM;;;;"}