UNPKG

react-multilang-moodle

Version:

A React component to parse and render Moodle multilang content ({mlang} tags).

2 lines (1 loc) 984 B
(function(n,o){typeof exports=="object"&&typeof module<"u"?o(exports,require("react/jsx-runtime")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime"],o):(n=typeof globalThis<"u"?globalThis:n||self,o(n.ReactMultilangMoodle={},n.jsxRuntime))})(this,function(n,o){"use strict";function c(i){const l={},s=/\{mlang\s*(\w{2}(?:_\w{2})?)?\}(.*?)\{\s*mlang\s*\}/gs;let e;for(;(e=s.exec(i))!==null;){const t=e[1]?e[1].toLowerCase():"other",r=e[2].trim();l[t]=r}return l}const a=({content:i,currentLanguage:l,fallbackLanguage:s})=>{const e=c(i);let t="";const r=l.toLowerCase(),u=s==null?void 0:s.toLowerCase();if(!(Object.keys(e).length>0))t=i;else if(e[r])t=e[r];else if(u&&e[u])t=e[u];else if(e.en)t=e.en;else if(e.other)t=e.other;else{const d=Object.keys(e);d.length>0&&(t=e[d[0]])}return t?o.jsx("div",{dangerouslySetInnerHTML:{__html:t}}):null};n.MultilangContent=a,n.parseMoodleMultilangContent=c,Object.defineProperty(n,Symbol.toStringTag,{value:"Module"})});