iobroker.javascript
Version:
Rules Engine for ioBroker
30 lines (29 loc) • 11.3 kB
JavaScript
import{C as l}from"./ConfigCustomJavascriptSet__loadShare__react__loadShare__-CzzIM-HW.js";import{Y as Ie,T as V,l as Pe,V as De,s as Ve}from"./createTheme-BwMO3rTt.js";import{j as b}from"./jsx-runtime-o-xyxrOj.js";import{R as Ae}from"./index-B7G6Jpdl.js";import{u as Ke}from"./useThemeWithoutDefault-C-hl_s0Z.js";import{D as Oe}from"./DefaultPropsProvider-DbEA5uR6.js";import{u as Re,G as Ne}from"./useEnhancedEffect-CdLBzwyA.js";const Te=l.createContext(null);function Z(){return l.useContext(Te)}const Ge=typeof Symbol=="function"&&Symbol.for,He=Ge?Symbol.for("mui.nested"):"__THEME_NESTED__";function Fe(e,t){return typeof t=="function"?t(e):{...e,...t}}function Ue(e){const{children:t,theme:o}=e,r=Z(),C=l.useMemo(()=>{const f=r===null?{...o}:Fe(r,o);return f!=null&&(f[He]=r!==null),f},[o,r]);return b.jsx(Te.Provider,{value:C,children:t})}const ye={};function ge(e,t,o,r=!1){return l.useMemo(()=>{const C=e&&t[e]||t;if(typeof o=="function"){const f=o(C),s=e?{...t,[e]:f}:f;return r?()=>s:s}return e?{...t,[e]:o}:{...t,...o}},[e,t,o,r])}function ke(e){const{children:t,theme:o,themeId:r}=e,C=Ke(ye),f=Z()||ye,s=ge(r,C,o),u=ge(r,f,o,!0),S=(r?s[r]:s).direction==="rtl";return b.jsx(Ue,{theme:u,children:b.jsx(Ie.Provider,{value:s,children:b.jsx(Ae,{value:S,children:b.jsx(Oe,{value:r?s[r].components:s.components,children:t})})})})}const W="mode",ee="color-scheme",Ye="data-color-scheme";function qe(e){const{defaultMode:t="system",defaultLightColorScheme:o="light",defaultDarkColorScheme:r="dark",modeStorageKey:C=W,colorSchemeStorageKey:f=ee,attribute:s=Ye,colorSchemeNode:u="document.documentElement",nonce:S}=e||{};let x="",p=s;if(s==="class"&&(p=".%s"),s==="data"&&(p="[data-%s]"),p.startsWith(".")){const a=p.substring(1);x+=`${u}.classList.remove('${a}'.replace('%s', light), '${a}'.replace('%s', dark));
${u}.classList.add('${a}'.replace('%s', colorScheme));`}const w=p.match(/\[([^\]]+)\]/);if(w){const[a,d]=w[1].split("=");d||(x+=`${u}.removeAttribute('${a}'.replace('%s', light));
${u}.removeAttribute('${a}'.replace('%s', dark));`),x+=`
${u}.setAttribute('${a}'.replace('%s', colorScheme), ${d?`${d}.replace('%s', colorScheme)`:'""'});`}else x+=`${u}.setAttribute('${p}', colorScheme);`;return b.jsx("script",{suppressHydrationWarning:!0,nonce:typeof window>"u"?S:"",dangerouslySetInnerHTML:{__html:`(function() {
try {
let colorScheme = '';
const mode = localStorage.getItem('${C}') || '${t}';
const dark = localStorage.getItem('${f}-dark') || '${r}';
const light = localStorage.getItem('${f}-light') || '${o}';
if (mode === 'system') {
// handle system mode
const mql = window.matchMedia('(prefers-color-scheme: dark)');
if (mql.matches) {
colorScheme = dark
} else {
colorScheme = light
}
}
if (mode === 'light') {
colorScheme = light;
}
if (mode === 'dark') {
colorScheme = dark;
}
if (colorScheme) {
${x}
}
} catch(e){}})();`}},"mui-color-scheme-init")}function Be(){}const ze=({key:e,storageWindow:t})=>(!t&&typeof window<"u"&&(t=window),{get(o){if(typeof window>"u")return;if(!t)return o;let r;try{r=t.localStorage.getItem(e)}catch{}return r||o},set:o=>{if(t)try{t.localStorage.setItem(e,o)}catch{}},subscribe:o=>{if(!t)return Be;const r=C=>{const f=C.newValue;C.key===e&&o(f)};return t.addEventListener("storage",r),()=>{t.removeEventListener("storage",r)}}});function X(){}function be(e){if(typeof window<"u"&&typeof window.matchMedia=="function"&&e==="system")return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function xe(e,t){if(e.mode==="light"||e.mode==="system"&&e.systemMode==="light")return t("light");if(e.mode==="dark"||e.mode==="system"&&e.systemMode==="dark")return t("dark")}function Je(e){return xe(e,t=>{if(t==="light")return e.lightColorScheme;if(t==="dark")return e.darkColorScheme})}function Qe(e){const{defaultMode:t="light",defaultLightColorScheme:o,defaultDarkColorScheme:r,supportedColorSchemes:C=[],modeStorageKey:f=W,colorSchemeStorageKey:s=ee,storageWindow:u=typeof window>"u"?void 0:window,storageManager:S=ze,noSsr:x=!1}=e,p=C.join(","),w=C.length>1,a=l.useMemo(()=>S==null?void 0:S({key:f,storageWindow:u}),[S,f,u]),d=l.useMemo(()=>S==null?void 0:S({key:`${s}-light`,storageWindow:u}),[S,s,u]),h=l.useMemo(()=>S==null?void 0:S({key:`${s}-dark`,storageWindow:u}),[S,s,u]),[v,I]=l.useState(()=>{const n=(a==null?void 0:a.get(t))||t,c=(d==null?void 0:d.get(o))||o,i=(h==null?void 0:h.get(r))||r;return{mode:n,systemMode:be(n),lightColorScheme:c,darkColorScheme:i}}),[j,U]=l.useState(x||!w);l.useEffect(()=>{U(!0)},[]);const A=Je(v),K=l.useCallback(n=>{I(c=>{if(n===c.mode)return c;const i=n??t;return a==null||a.set(i),{...c,mode:i,systemMode:be(i)}})},[a,t]),P=l.useCallback(n=>{n?typeof n=="string"?n&&!p.includes(n)?console.error(`\`${n}\` does not exist in \`theme.colorSchemes\`.`):I(c=>{const i={...c};return xe(c,m=>{m==="light"&&(d==null||d.set(n),i.lightColorScheme=n),m==="dark"&&(h==null||h.set(n),i.darkColorScheme=n)}),i}):I(c=>{const i={...c},m=n.light===null?o:n.light,L=n.dark===null?r:n.dark;return m&&(p.includes(m)?(i.lightColorScheme=m,d==null||d.set(m)):console.error(`\`${m}\` does not exist in \`theme.colorSchemes\`.`)),L&&(p.includes(L)?(i.darkColorScheme=L,h==null||h.set(L)):console.error(`\`${L}\` does not exist in \`theme.colorSchemes\`.`)),i}):I(c=>(d==null||d.set(o),h==null||h.set(r),{...c,lightColorScheme:o,darkColorScheme:r}))},[p,d,h,o,r]),O=l.useCallback(n=>{v.mode==="system"&&I(c=>{const i=n!=null&&n.matches?"dark":"light";return c.systemMode===i?c:{...c,systemMode:i}})},[v.mode]),H=l.useRef(O);return H.current=O,l.useEffect(()=>{if(typeof window.matchMedia!="function"||!w)return;const n=(...i)=>H.current(...i),c=window.matchMedia("(prefers-color-scheme: dark)");return c.addListener(n),n(c),()=>{c.removeListener(n)}},[w]),l.useEffect(()=>{if(w){const n=(a==null?void 0:a.subscribe(m=>{(!m||["light","dark","system"].includes(m))&&K(m||t)}))||X,c=(d==null?void 0:d.subscribe(m=>{(!m||p.match(m))&&P({light:m})}))||X,i=(h==null?void 0:h.subscribe(m=>{(!m||p.match(m))&&P({dark:m})}))||X;return()=>{n(),c(),i()}}},[P,K,p,t,u,w,a,d,h]),{...v,mode:j?v.mode:void 0,systemMode:j?v.systemMode:void 0,colorScheme:j?A:void 0,setMode:K,setColorScheme:P}}const Xe="*{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}";function Ze(e){const{themeId:t,theme:o={},modeStorageKey:r=W,colorSchemeStorageKey:C=ee,disableTransitionOnChange:f=!1,defaultColorScheme:s,resolveTheme:u}=e,S={allColorSchemes:[],colorScheme:void 0,darkColorScheme:void 0,lightColorScheme:void 0,mode:void 0,setColorScheme:()=>{},setMode:()=>{},systemMode:void 0},x=l.createContext(void 0),p=()=>l.useContext(x)||S,w={},a={};function d(j){var fe,Se,Ce,pe;const{children:U,theme:A,modeStorageKey:K=r,colorSchemeStorageKey:P=C,disableTransitionOnChange:O=f,storageManager:H,storageWindow:n=typeof window>"u"?void 0:window,documentNode:c=typeof document>"u"?void 0:document,colorSchemeNode:i=typeof document>"u"?void 0:document.documentElement,disableNestedContext:m=!1,disableStyleSheetGeneration:L=!1,defaultMode:we="system",noSsr:$e}=j,Y=l.useRef(!1),q=Z(),B=l.useContext(x),z=!!B&&!m,te=l.useMemo(()=>A||(typeof o=="function"?o():o),[A]),oe=te[t],T=oe||te,{colorSchemes:_=w,components:re=a,cssVarPrefix:J}=T,ne=Object.keys(_).filter(y=>!!_[y]).join(","),D=l.useMemo(()=>ne.split(","),[ne]),se=typeof s=="string"?s:s.light,ce=typeof s=="string"?s:s.dark,ve=_[se]&&_[ce]?we:((Se=(fe=_[T.defaultColorScheme])==null?void 0:fe.palette)==null?void 0:Se.mode)||((Ce=T.palette)==null?void 0:Ce.mode),{mode:_e,setMode:ie,systemMode:le,lightColorScheme:de,darkColorScheme:me,colorScheme:je,setColorScheme:ae}=Qe({supportedColorSchemes:D,defaultLightColorScheme:se,defaultDarkColorScheme:ce,modeStorageKey:K,colorSchemeStorageKey:P,defaultMode:ve,storageManager:H,storageWindow:n,noSsr:$e});let Q=_e,k=je;z&&(Q=B.mode,k=B.colorScheme);const R=l.useMemo(()=>{var G;const y=k||T.defaultColorScheme,g=((G=T.generateThemeVars)==null?void 0:G.call(T))||T.vars,M={...T,components:re,colorSchemes:_,cssVarPrefix:J,vars:g};if(typeof M.generateSpacing=="function"&&(M.spacing=M.generateSpacing()),y){const E=_[y];E&&typeof E=="object"&&Object.keys(E).forEach($=>{E[$]&&typeof E[$]=="object"?M[$]={...M[$],...E[$]}:M[$]=E[$]})}return u?u(M):M},[T,k,re,_,J]),N=T.colorSchemeSelector;Re(()=>{if(k&&i&&N&&N!=="media"){const y=N;let g=N;if(y==="class"&&(g=".%s"),y==="data"&&(g="[data-%s]"),y!=null&&y.startsWith("data-")&&!y.includes("%s")&&(g=`[${y}="%s"]`),g.startsWith("."))i.classList.remove(...D.map(M=>g.substring(1).replace("%s",M))),i.classList.add(g.substring(1).replace("%s",k));else{const M=g.replace("%s",k).match(/\[([^\]]+)\]/);if(M){const[G,E]=M[1].split("=");E||D.forEach($=>{i.removeAttribute(G.replace(k,$))}),i.setAttribute(G,E?E.replace(/"|'/g,""):"")}else i.setAttribute(g,k)}}},[k,N,i,D]),l.useEffect(()=>{let y;if(O&&Y.current&&c){const g=c.createElement("style");g.appendChild(c.createTextNode(Xe)),c.head.appendChild(g),window.getComputedStyle(c.body),y=setTimeout(()=>{c.head.removeChild(g)},1)}return()=>{clearTimeout(y)}},[k,O,c]),l.useEffect(()=>(Y.current=!0,()=>{Y.current=!1}),[]);const Le=l.useMemo(()=>({allColorSchemes:D,colorScheme:k,darkColorScheme:me,lightColorScheme:de,mode:Q,setColorScheme:ae,setMode:ie,systemMode:le}),[D,k,me,de,Q,ae,ie,le,R.colorSchemeSelector]);let ue=!0;(L||T.cssVariables===!1||z&&(q==null?void 0:q.cssVarPrefix)===J)&&(ue=!1);const he=b.jsxs(l.Fragment,{children:[b.jsx(ke,{themeId:oe?t:void 0,theme:R,children:U}),ue&&b.jsx(Ne,{styles:((pe=R.generateStyleSheets)==null?void 0:pe.call(R))||[]})]});return z?he:b.jsx(x.Provider,{value:Le,children:he})}const h=typeof s=="string"?s:s.light,v=typeof s=="string"?s:s.dark;return{CssVarsProvider:d,useColorScheme:p,getInitColorSchemeScript:j=>qe({colorSchemeStorageKey:C,defaultLightColorScheme:h,defaultDarkColorScheme:v,modeStorageKey:r,...j})}}function We({theme:e,...t}){const o=V in e?e[V]:void 0;return b.jsx(ke,{...t,themeId:o?V:void 0,theme:o||e})}const F={colorSchemeStorageKey:"mui-color-scheme",defaultLightColorScheme:"light",defaultDarkColorScheme:"dark",modeStorageKey:"mui-mode"},{CssVarsProvider:Ee,useColorScheme:dt,getInitColorSchemeScript:et}=Ze({themeId:V,theme:()=>Pe({cssVariables:!0}),colorSchemeStorageKey:F.colorSchemeStorageKey,modeStorageKey:F.modeStorageKey,defaultColorScheme:{light:F.defaultLightColorScheme,dark:F.defaultDarkColorScheme},resolveTheme:e=>{const t={...e,typography:De(e.palette,e.typography)};return t.unstable_sx=function(r){return Ve({sx:r,theme:this})},t}});function mt(e){return b.jsx(Ee,{...e})}let Me=!1;const at=e=>(Me||(console.warn(["MUI: The getInitColorSchemeScript function has been deprecated.","","You should use `import InitColorSchemeScript from '@mui/material/InitColorSchemeScript'`","and replace the function call with `<InitColorSchemeScript />` instead."].join(`
`)),Me=!0),et(e)),tt=Ee;function ut({theme:e,...t}){const o=l.useMemo(()=>{if(typeof e=="function")return e;const r=V in e?e[V]:e;return"colorSchemes"in r?null:"vars"in r?e:{...e,vars:null}},[e]);return o?b.jsx(We,{theme:o,...t}):b.jsx(tt,{theme:e,...t})}export{tt as C,mt as E,ut as T,at as g,dt as u};