UNPKG

@nexusui/components

Version:

These are custom components specially-developed for NexusUI applications. They will make your life easier by giving you out-of-the-box implementations for various high-level UI elements that you can drop directly into your application.

2 lines (1 loc) 2.16 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),n=require("@emotion/react");function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=r(require("lodash/get"));const s=["en-US","de-DE","fr-FR","en-GB","it-IT","es-ES","pt-PT","pt-BR","pl","sv-SE","nl-NL","tr","cs","hu","ru","zh-CN","zh-TW","ko","ja","bg","da","ro","sk","sl","th"],u="en-US",a=t.createContext({userLanguage:u});const i=(e,t)=>{const n=[];let r=0;const o=`<${t}>`,s=`</${t}>`;let u=e.indexOf(o,r),a=e.indexOf(s,r);for(;u>-1&&a>-1;)r=u+o.length,n.push({from:r,to:a,tag:t}),r=a+s.length,u=e.indexOf(o,r),a=e.indexOf(s,r);return n};exports.UserLanguageProvider=n=>{const{children:r,userLanguage:o}=n,s=t.useMemo((()=>({userLanguage:o})),[o]);return e.jsx(a.Provider,{value:s,children:r})},exports.initTranslations=function(e){return function(r,a=""){let c=t.useContext(n.ThemeContext).language||u;return s.includes(c)||("production"!==process.env.NODE_ENV&&console.warn(`Nexusui translation: Unsupported language: ${c}`),c=u),t.useMemo((()=>{const t=r[c];return function(n,s){const l=function(e,t){return t?t.split(".").reduce(((e,t)=>e&&e[t]?e[t]:null),e):e}(t,a)||{};let g=l[n];return g||("production"!==process.env.NODE_ENV&&(e&&e(a,n,c),console.warn(`Nexusui translation: Missing translation for key -${n}- in ${c} language.`)),g=a?o.default(r[u],`${a}.${n}`):r[u][n]),s?function(e,t){let n=!1,r=!1;const o=[];let s=[];const u=Object.keys(t);if(u.forEach((n=>{const o=t[n];if("function"!=typeof o){if(!e.includes(n))return e;e=e.replaceAll(`{{${n}}}`,o?.toString())}else r=!0,u.length>1&&(s=s.concat(i(e,n)))})),!r)return e;1===u.length&&(s=i(e,u[0])),s.sort(((e,t)=>e.from-t.from));let a=0;if(s.forEach(((r,s)=>{a>r.from&&(n=!0),o.push(e.substring(a,r.from-(r.tag.length+2))),o.push(t[r.tag](e.substring(r.from,r.to),s)),a=r.to+(r.tag.length+3)})),o.push(e.substring(a)),n&&"production"!==process.env.NODE_ENV)throw new Error(`[Localization] - "${e}" includes nest tag`);return o}(g,s):g}}),[c,a,r])}},exports.supportedLanguage=s,exports.useUserLanguage=function(){return t.useContext(a).userLanguage};