UNPKG

@pap-it/tools-theme

Version:
2 lines (1 loc) 943 B
"use strict";import{THEMECHANGE_NAME as r,THEMEADD_NAME as p}from"./types";export function change(e){var n;if(!window.papTheme.map.has(e))throw new Error(`Theme: ${e} not found`);if(window.papTheme.current===e)return;const o=window.papTheme.map.get(e);if(!o)throw new Error(`Theme: ${e} config not found`);const i=document.querySelector("link[theme]");if(i&&((n=i.parentElement)===null||n===void 0||n.removeChild(i)),e==="base"){window.papTheme.current="base",window.dispatchEvent(new Event(r));return}const t=document.createElement("link");t.setAttribute("rel","stylesheet"),t.setAttribute("theme","true"),t.setAttribute("href",`/themes/${o.name}`),document.head.appendChild(t),window.papTheme.current=o.name,window.dispatchEvent(new Event(r))}export function add(e){window.papTheme.map.set(e.name,e),window.dispatchEvent(new Event(p))}export function init(){window.papTheme||(window.papTheme={change,add,current:"base",map:new Map})}init();