@yuebai008/cli
Version:
Command line interface for rapid qg-minigame development
1 lines • 1.17 kB
JavaScript
import*as i18n from"../../core/i18n/i18n.js";import*as Lit from"../../third_party/lit/lit.js";export function flattenTemplate(t,...e){const l=[],n=[];let i="";for(let a=0;a<e.length;a++){const o=e[a];isStaticLiteral(o)?(i+=t[a]+o.value,l.push(!1)):(i+=t[a],n.push(i),i="",l.push(!0))}return n.push(i+t[e.length]),n.raw=[...n],{strings:n,valueMap:l}}export function html(t,...e){return e.some((t=>isStaticLiteral(t)))?htmlWithStatics(t,...e):Lit.html(t,...e)}export function literal(t){return{value:t[0],$$static$$:!0}}function isStaticLiteral(t){return"object"==typeof t&&null!==t&&"$$static$$"in t}const flattenedTemplates=new WeakMap;function htmlWithStatics(t,...e){const l=flattenedTemplates.get(t);if(l){const t=e.filter(((t,e)=>!!l&&l.valueMap[e]));return Lit.html(l.strings,...t)}return flattenedTemplates.set(t,flattenTemplate(t,...e)),htmlWithStatics(t,...e)}export function i18nTemplate(t,e,l){const n=t.getLocalizedStringSetFor(i18n.DevToolsLocale.DevToolsLocale.instance().locale).getMessageFormatterFor(e);let i=html``;for(const t of n.getAst())if(1===t.type){const e=l[t.value];e&&(i=html`${i}${e}`)}else"value"in t&&(i=html`${i}${t.value}`);return i}