iobroker.admin 7.7.2 → 7.7.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/README.md +42 -8
  2. package/admin/admin.png +0 -0
  3. package/admin/i18n/de.json +1 -1
  4. package/admin/i18n/es.json +1 -1
  5. package/admin/i18n/fr.json +1 -1
  6. package/admin/i18n/it.json +1 -1
  7. package/admin/i18n/nl.json +1 -1
  8. package/admin/i18n/pl.json +1 -1
  9. package/admin/i18n/pt.json +1 -1
  10. package/admin/i18n/ru.json +1 -1
  11. package/admin/i18n/uk.json +1 -1
  12. package/admin/i18n/zh-cn.json +1 -1
  13. package/admin/jsonConfig.json5 +1 -2
  14. package/adminWww/assets/{AdapterUpdateDialog-DHGhgEEq.js → AdapterUpdateDialog-BQUTMe7v.js} +1 -1
  15. package/adminWww/assets/Adapters-KuMqwfzU.js +9 -0
  16. package/adminWww/assets/Config-LH40Fzyp.js +1 -0
  17. package/adminWww/assets/CustomModal-UQ6ICKdg.js +1 -0
  18. package/adminWww/assets/CustomTab-CE2qvngn.js +1 -0
  19. package/adminWww/assets/DefaultPropsProvider-BxjOYH1h.js +30 -0
  20. package/adminWww/assets/EasyMode-XXQKZmWs.js +1 -0
  21. package/adminWww/assets/{Enums-BSICIhWI.js → Enums-Ddmi-fYo.js} +3 -3
  22. package/adminWww/assets/{Fields-C3JkTmfP.js → Fields-CQNdUYkd.js} +1 -1
  23. package/adminWww/assets/{Files-DK85-COY.js → Files-DgOiCRiN.js} +2 -2
  24. package/adminWww/assets/FilledInput-B9JSi0Ta.js +2 -0
  25. package/adminWww/assets/Hosts-BgDpLhdl.js +121 -0
  26. package/adminWww/assets/Instances-DikJwBl0.js +2 -0
  27. package/adminWww/assets/Intro-vxIHtYzr.js +2 -0
  28. package/adminWww/assets/Logs-DZUWTbJn.js +1 -0
  29. package/adminWww/assets/Objects-Dm1_4aGR.js +60 -0
  30. package/adminWww/assets/{State-BqfD2ABf.js → State-CrcWiBdx.js} +1 -1
  31. package/adminWww/assets/TextField-j-uewRwI.js +138 -0
  32. package/adminWww/assets/ThemeProvider-DHntAcOp.js +29 -0
  33. package/adminWww/assets/Users-GcWjwa7A.js +1 -0
  34. package/adminWww/assets/ace-1DqSbvTN.js +985 -0
  35. package/adminWww/assets/{bootstrap-BYQTdf9r.js → bootstrap-B3ZI_-0g.js} +112 -112
  36. package/adminWww/assets/{createSvgIcon-Bh3KWtyp.js → createSvgIcon-Ds12z7B3.js} +1 -1
  37. package/adminWww/assets/emotion-cache.browser.esm-BgJfNZJN.js +1 -0
  38. package/adminWww/assets/emotion-react.browser.esm-CBtpmfsG.js +8 -0
  39. package/adminWww/assets/emotion-serialize.esm-Q4o_CgeF.js +1 -0
  40. package/adminWww/assets/emotion-styled.browser.esm-BeD8nBzN.js +1 -0
  41. package/adminWww/assets/emotion-use-insertion-effect-with-fallbacks.browser.esm-BIy6Leuu.js +1 -0
  42. package/adminWww/assets/geosearch.module-B6h9BuIR.js +1 -0
  43. package/adminWww/assets/hostInit-fzxL8JAx.js +1 -1
  44. package/adminWww/assets/iconBase-BAOnvyiQ.js +1 -0
  45. package/adminWww/assets/{index-Qa7Q_Dz5.js → index-BOnh7es7.js} +1 -1
  46. package/adminWww/assets/{index-B1ITPhEY.js → index-BSfwmoAE.js} +3 -3
  47. package/adminWww/assets/{index-rKfs-rCa.js → index-BVgYaw7t.js} +1 -1
  48. package/adminWww/assets/{index-D--ojYan.js → index-C9i3HTsG.js} +1 -1
  49. package/adminWww/assets/{index-wN1ZlPSW.js → index-CELb-gCK.js} +2 -2
  50. package/adminWww/assets/{index-DPDg2YA0.js → index-CU6eZCem.js} +1 -1
  51. package/adminWww/assets/{index-DTGUg51P.js → index-DZ0MncEz.js} +2 -2
  52. package/adminWww/assets/index-Dg-s3k0-.js +10 -0
  53. package/adminWww/assets/index-tS5iCAF7.js +55 -0
  54. package/adminWww/assets/{iobroker_admin__loadShare___mf_0_emotion_mf_1_react__loadShare__-BOKYvG_W.js → iobroker_admin__loadShare___mf_0_emotion_mf_1_react__loadShare__-CXogaIXO.js} +1 -1
  55. package/adminWww/assets/{iobroker_admin__loadShare__leaflet__loadShare__-h9SMNPLU.js → iobroker_admin__loadShare__leaflet__loadShare__-DIpcqFbm.js} +1 -1
  56. package/adminWww/assets/{iobroker_admin__loadShare__prop_mf_2_types__loadShare__-BnsS7SOQ.js → iobroker_admin__loadShare__prop_mf_2_types__loadShare__-pDONiJUe.js} +1 -1
  57. package/adminWww/assets/{iobroker_admin__loadShare__react__loadShare__-Bis6NHgw.js → iobroker_admin__loadShare__react__loadShare__-CuzHmAOj.js} +1 -1
  58. package/adminWww/assets/iobroker_admin__mf_v__runtimeInit__mf_v__-CHE4rLsT.js +5 -0
  59. package/adminWww/assets/leaflet-src-BRBM-1HK.js +4 -0
  60. package/adminWww/assets/{sentry-H_UdJ2zx.js → sentry-B6yHtsbd.js} +1 -1
  61. package/adminWww/assets/{zh-cn-vvAC9zpl.js → zh-cn-heTcsLnU.js} +13 -13
  62. package/adminWww/img/admin.png +0 -0
  63. package/adminWww/index.html +2 -2
  64. package/adminWww/mf-manifest.json +1 -1
  65. package/adminWww/remoteEntry.js +2 -2
  66. package/build/i18n/de.json +18 -0
  67. package/build/i18n/es.json +18 -0
  68. package/build/i18n/fr.json +18 -0
  69. package/build/i18n/it.json +18 -0
  70. package/build/i18n/nl.json +18 -0
  71. package/build/i18n/pl.json +18 -0
  72. package/build/i18n/pt.json +18 -0
  73. package/build/i18n/ru.json +18 -0
  74. package/build/i18n/uk.json +18 -0
  75. package/build/i18n/zh-cn.json +18 -0
  76. package/build/lib/DockerManager.js +1315 -0
  77. package/build/lib/DockerManager.js.map +1 -0
  78. package/build/lib/dockerManager.types.js +3 -0
  79. package/build/lib/dockerManager.types.js.map +1 -0
  80. package/{build-backend → build}/lib/testPassword.js +1 -1
  81. package/{build-backend → build}/lib/testPassword.js.map +1 -1
  82. package/{build-backend → build}/lib/translations.js +16 -1
  83. package/build/lib/translations.js.map +1 -0
  84. package/{build-backend → build}/main.js +58 -5
  85. package/build/main.js.map +1 -0
  86. package/io-package.json +14 -14
  87. package/package.json +7 -7
  88. package/adminWww/assets/Adapters-CgSIajcF.js +0 -7
  89. package/adminWww/assets/Config-BQSl4bfA.js +0 -1
  90. package/adminWww/assets/CustomModal-DNMTLv4y.js +0 -1
  91. package/adminWww/assets/CustomTab-Bl8S8QZW.js +0 -1
  92. package/adminWww/assets/DefaultPropsProvider-u5xB1Fxz.js +0 -30
  93. package/adminWww/assets/EasyMode-xDbqrply.js +0 -1
  94. package/adminWww/assets/FilledInput-CysG4ax_.js +0 -2
  95. package/adminWww/assets/Hosts-qIsB4Gub.js +0 -121
  96. package/adminWww/assets/Instances-BA_DCzs8.js +0 -2
  97. package/adminWww/assets/Intro-00oh6SLw.js +0 -2
  98. package/adminWww/assets/Logs-Cvpgh-zN.js +0 -1
  99. package/adminWww/assets/Objects-Dp71iotS.js +0 -60
  100. package/adminWww/assets/Tabs-sxfWgN0b.js +0 -138
  101. package/adminWww/assets/Users-CDcWqTfZ.js +0 -1
  102. package/adminWww/assets/ace-BG5WYul1.js +0 -985
  103. package/adminWww/assets/blueGrey-DYsiMDOn.js +0 -29
  104. package/adminWww/assets/emotion-cache.browser.esm-B8BFze5o.js +0 -1
  105. package/adminWww/assets/emotion-react.browser.esm-BCDt9NrH.js +0 -8
  106. package/adminWww/assets/emotion-serialize.esm-BUa21YfQ.js +0 -1
  107. package/adminWww/assets/emotion-styled.browser.esm-CyFqGgyG.js +0 -1
  108. package/adminWww/assets/emotion-utils.browser.esm-pglN4_eI.js +0 -1
  109. package/adminWww/assets/geosearch.module-DH4NhiPj.js +0 -1
  110. package/adminWww/assets/iconBase-C3vi24ZE.js +0 -1
  111. package/adminWww/assets/index-D3IAEXXP.js +0 -10
  112. package/adminWww/assets/index-qcIeekse.js +0 -55
  113. package/adminWww/assets/iobroker_admin__mf_v__runtimeInit__mf_v__-CTkuGOOk.js +0 -5
  114. package/adminWww/assets/leaflet-src-A2ZHl6nF.js +0 -4
  115. package/build-backend/i18n/de.json +0 -18
  116. package/build-backend/i18n/es.json +0 -18
  117. package/build-backend/i18n/fr.json +0 -18
  118. package/build-backend/i18n/it.json +0 -18
  119. package/build-backend/i18n/nl.json +0 -18
  120. package/build-backend/i18n/pl.json +0 -18
  121. package/build-backend/i18n/pt.json +0 -18
  122. package/build-backend/i18n/ru.json +0 -18
  123. package/build-backend/i18n/uk.json +0 -18
  124. package/build-backend/i18n/zh-cn.json +0 -18
  125. package/build-backend/lib/translations.js.map +0 -1
  126. package/build-backend/main.js.map +0 -1
  127. /package/{build-backend → build}/i18n/en.json +0 -0
  128. /package/{build-backend → build}/lib/checkLinuxPass.js +0 -0
  129. /package/{build-backend → build}/lib/checkLinuxPass.js.map +0 -0
  130. /package/{build-backend → build}/lib/utils.js +0 -0
  131. /package/{build-backend → build}/lib/utils.js.map +0 -0
  132. /package/{build-backend → build}/lib/web.js +0 -0
  133. /package/{build-backend → build}/lib/web.js.map +0 -0
@@ -0,0 +1,29 @@
1
+ import{i as a}from"./iobroker_admin__loadShare__react__loadShare__-CuzHmAOj.js";import"./iobroker_admin__loadShare__prop_mf_2_types__loadShare__-pDONiJUe.js";import{i as _e}from"./iobroker_admin__loadShare___mf_0_emotion_mf_1_react__loadShare__-CXogaIXO.js";import{c as Ve,S as Ke}from"./emotion-cache.browser.esm-BgJfNZJN.js";import{j as g,a8 as Ne,T as O,z as Re,a3 as qe,a as Ge}from"./DefaultPropsProvider-BxjOYH1h.js";import{v as Ee,d as He,p as Te,E as Fe,H as Ue,J as Ye}from"./FilledInput-B9JSi0Ta.js";const Z=new Map,ze=(e,t)=>{const o=Ve(e);return o.sheet=new t({key:o.key,nonce:o.sheet.nonce,container:o.sheet.container,speedy:o.sheet.isSpeedy,prepend:o.sheet.prepend,insertionPoint:o.sheet.insertionPoint}),o};let j;if(typeof document=="object"&&(j=document.querySelector('[name="emotion-insertion-point"]'),!j)){j=document.createElement("meta"),j.setAttribute("name","emotion-insertion-point"),j.setAttribute("content","");const e=document.querySelector("head");e&&e.prepend(j)}function Be(e,t){if(e||t){class o extends Ke{insert(s,n){return this.key&&this.key.endsWith("global")&&(this.before=j),super.insert(s,n)}}const r=ze({key:"css",insertionPoint:e?j:void 0},o);if(t){const c=r.insert;r.insert=(...s)=>(s[1].styles.match(/^@layer\s+[^{]*$/)||(s[1].styles=`@layer mui {${s[1].styles}}`),c(...s))}return r}}function pt(e){const{injectFirst:t,enableCssLayer:o,children:r}=e,c=a.useMemo(()=>{const s=`${t}-${o}`;if(typeof document=="object"&&Z.has(s))return Z.get(s);const n=Be(t,o);return Z.set(s,n),n},[t,o]);return c?g.jsx(_e.CacheProvider,{value:c,children:r}):r}const $e=a.createContext(null);function ee(){return a.useContext($e)}const Je=typeof Symbol=="function"&&Symbol.for,Qe=Je?Symbol.for("mui.nested"):"__THEME_NESTED__";function Xe(e,t){return typeof t=="function"?t(e):{...e,...t}}function Ze(e){const{children:t,theme:o}=e,r=ee(),c=a.useMemo(()=>{const s=r===null?{...o}:Xe(r,o);return s!=null&&(s[Qe]=r!==null),s},[o,r]);return g.jsx($e.Provider,{value:c,children:t})}function We(e){const t=Ee(),o=He()||"",{modularCssLayers:r}=e;let c="mui.global, mui.components, mui.theme, mui.custom, mui.sx";return!r||t!==null?c="":typeof r=="string"?c=r.replace(/mui(?!\.)/g,c):c=`@layer ${c};`,Te(()=>{var u,h;const s=document.querySelector("head");if(!s)return;const n=s.firstChild;if(c){if(n&&((u=n.hasAttribute)!=null&&u.call(n,"data-mui-layer-order"))&&n.getAttribute("data-mui-layer-order")===o)return;const p=document.createElement("style");p.setAttribute("data-mui-layer-order",o),p.textContent=c,s.prepend(p)}else(h=s.querySelector(`style[data-mui-layer-order="${o}"]`))==null||h.remove()},[c,o]),c?g.jsx(Fe,{styles:c}):null}const be={};function Me(e,t,o,r=!1){return a.useMemo(()=>{const c=e&&t[e]||t;if(typeof o=="function"){const s=o(c),n=e?{...t,[e]:s}:s;return r?()=>n:n}return e?{...t,[e]:o}:{...t,...o}},[e,t,o,r])}function ve(e){const{children:t,theme:o,themeId:r}=e,c=Ee(be),s=ee()||be,n=Me(r,c,o),u=Me(r,s,o,!0),h=(r?n[r]:n).direction==="rtl",p=We(n);return g.jsx(Ze,{theme:u,children:g.jsx(_e.ThemeContext.Provider,{value:n,children:g.jsx(Ue,{value:h,children:g.jsxs(Ne,{value:r?n[r].components:n.components,children:[p,t]})})})})}const te="mode",oe="color-scheme",et="data-color-scheme";function tt(e){const{defaultMode:t="system",defaultLightColorScheme:o="light",defaultDarkColorScheme:r="dark",modeStorageKey:c=te,colorSchemeStorageKey:s=oe,attribute:n=et,colorSchemeNode:u="document.documentElement",nonce:h}=e||{};let p="",C=n;if(n==="class"&&(C=".%s"),n==="data"&&(C="[data-%s]"),C.startsWith(".")){const S=C.substring(1);p+=`${u}.classList.remove('${S}'.replace('%s', light), '${S}'.replace('%s', dark));
2
+ ${u}.classList.add('${S}'.replace('%s', colorScheme));`}const T=C.match(/\[([^\]]+)\]/);if(T){const[S,m]=T[1].split("=");m||(p+=`${u}.removeAttribute('${S}'.replace('%s', light));
3
+ ${u}.removeAttribute('${S}'.replace('%s', dark));`),p+=`
4
+ ${u}.setAttribute('${S}'.replace('%s', colorScheme), ${m?`${m}.replace('%s', colorScheme)`:'""'});`}else p+=`${u}.setAttribute('${C}', colorScheme);`;return g.jsx("script",{suppressHydrationWarning:!0,nonce:typeof window>"u"?h:"",dangerouslySetInnerHTML:{__html:`(function() {
5
+ try {
6
+ let colorScheme = '';
7
+ const mode = localStorage.getItem('${c}') || '${t}';
8
+ const dark = localStorage.getItem('${s}-dark') || '${r}';
9
+ const light = localStorage.getItem('${s}-light') || '${o}';
10
+ if (mode === 'system') {
11
+ // handle system mode
12
+ const mql = window.matchMedia('(prefers-color-scheme: dark)');
13
+ if (mql.matches) {
14
+ colorScheme = dark
15
+ } else {
16
+ colorScheme = light
17
+ }
18
+ }
19
+ if (mode === 'light') {
20
+ colorScheme = light;
21
+ }
22
+ if (mode === 'dark') {
23
+ colorScheme = dark;
24
+ }
25
+ if (colorScheme) {
26
+ ${p}
27
+ }
28
+ } catch(e){}})();`}},"mui-color-scheme-init")}function ot(){}const rt=({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 ot;const r=c=>{const s=c.newValue;c.key===e&&o(s)};return t.addEventListener("storage",r),()=>{t.removeEventListener("storage",r)}}});function W(){}function ke(e){if(typeof window<"u"&&typeof window.matchMedia=="function"&&e==="system")return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function we(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 nt(e){return we(e,t=>{if(t==="light")return e.lightColorScheme;if(t==="dark")return e.darkColorScheme})}function st(e){const{defaultMode:t="light",defaultLightColorScheme:o,defaultDarkColorScheme:r,supportedColorSchemes:c=[],modeStorageKey:s=te,colorSchemeStorageKey:n=oe,storageWindow:u=typeof window>"u"?void 0:window,storageManager:h=rt,noSsr:p=!1}=e,C=c.join(","),T=c.length>1,S=a.useMemo(()=>h==null?void 0:h({key:s,storageWindow:u}),[h,s,u]),m=a.useMemo(()=>h==null?void 0:h({key:`${n}-light`,storageWindow:u}),[h,n,u]),y=a.useMemo(()=>h==null?void 0:h({key:`${n}-dark`,storageWindow:u}),[h,n,u]),[v,P]=a.useState(()=>{const i=(S==null?void 0:S.get(t))||t,l=(m==null?void 0:m.get(o))||o,d=(y==null?void 0:y.get(r))||r;return{mode:i,systemMode:ke(i),lightColorScheme:l,darkColorScheme:d}}),[A,U]=a.useState(p||!T);a.useEffect(()=>{U(!0)},[]);const V=nt(v),K=a.useCallback(i=>{P(l=>{if(i===l.mode)return l;const d=i??t;return S==null||S.set(d),{...l,mode:d,systemMode:ke(d)}})},[S,t]),I=a.useCallback(i=>{i?typeof i=="string"?i&&!C.includes(i)?console.error(`\`${i}\` does not exist in \`theme.colorSchemes\`.`):P(l=>{const d={...l};return we(l,f=>{f==="light"&&(m==null||m.set(i),d.lightColorScheme=i),f==="dark"&&(y==null||y.set(i),d.darkColorScheme=i)}),d}):P(l=>{const d={...l},f=i.light===null?o:i.light,L=i.dark===null?r:i.dark;return f&&(C.includes(f)?(d.lightColorScheme=f,m==null||m.set(f)):console.error(`\`${f}\` does not exist in \`theme.colorSchemes\`.`)),L&&(C.includes(L)?(d.darkColorScheme=L,y==null||y.set(L)):console.error(`\`${L}\` does not exist in \`theme.colorSchemes\`.`)),d}):P(l=>(m==null||m.set(o),y==null||y.set(r),{...l,lightColorScheme:o,darkColorScheme:r}))},[C,m,y,o,r]),N=a.useCallback(i=>{v.mode==="system"&&P(l=>{const d=i!=null&&i.matches?"dark":"light";return l.systemMode===d?l:{...l,systemMode:d}})},[v.mode]),H=a.useRef(N);return H.current=N,a.useEffect(()=>{if(typeof window.matchMedia!="function"||!T)return;const i=(...d)=>H.current(...d),l=window.matchMedia("(prefers-color-scheme: dark)");return l.addListener(i),i(l),()=>{l.removeListener(i)}},[T]),a.useEffect(()=>{if(T){const i=(S==null?void 0:S.subscribe(f=>{(!f||["light","dark","system"].includes(f))&&K(f||t)}))||W,l=(m==null?void 0:m.subscribe(f=>{(!f||C.match(f))&&I({light:f})}))||W,d=(y==null?void 0:y.subscribe(f=>{(!f||C.match(f))&&I({dark:f})}))||W;return()=>{i(),l(),d()}}},[I,K,C,t,u,T,S,m,y]),{...v,mode:A?v.mode:void 0,systemMode:A?v.systemMode:void 0,colorScheme:A?V:void 0,setMode:K,setColorScheme:I}}const ct="*{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}";function it(e){const{themeId:t,theme:o={},modeStorageKey:r=te,colorSchemeStorageKey:c=oe,disableTransitionOnChange:s=!1,defaultColorScheme:n,resolveTheme:u}=e,h={allColorSchemes:[],colorScheme:void 0,darkColorScheme:void 0,lightColorScheme:void 0,mode:void 0,setColorScheme:()=>{},setMode:()=>{},systemMode:void 0},p=a.createContext(void 0),C=()=>a.useContext(p)||h,T={},S={};function m(A){var ye,pe,Ce,ge;const{children:U,theme:V,modeStorageKey:K=r,colorSchemeStorageKey:I=c,disableTransitionOnChange:N=s,storageManager:H,storageWindow:i=typeof window>"u"?void 0:window,documentNode:l=typeof document>"u"?void 0:document,colorSchemeNode:d=typeof document>"u"?void 0:document.documentElement,disableNestedContext:f=!1,disableStyleSheetGeneration:L=!1,defaultMode:Ae="system",noSsr:Le}=A,Y=a.useRef(!1),z=ee(),B=a.useContext(p),J=!!B&&!f,re=a.useMemo(()=>V||(typeof o=="function"?o():o),[V]),ne=re[t],x=ne||re,{colorSchemes:w=T,components:se=S,cssVarPrefix:Q}=x,ce=Object.keys(w).filter(b=>!!w[b]).join(","),D=a.useMemo(()=>ce.split(","),[ce]),ie=typeof n=="string"?n:n.light,le=typeof n=="string"?n:n.dark,Pe=w[ie]&&w[le]?Ae:((pe=(ye=w[x.defaultColorScheme])==null?void 0:ye.palette)==null?void 0:pe.mode)||((Ce=x.palette)==null?void 0:Ce.mode),{mode:Ie,setMode:ae,systemMode:de,lightColorScheme:me,darkColorScheme:ue,colorScheme:De,setColorScheme:fe}=st({supportedColorSchemes:D,defaultLightColorScheme:ie,defaultDarkColorScheme:le,modeStorageKey:K,colorSchemeStorageKey:I,defaultMode:Pe,storageManager:H,storageWindow:i,noSsr:Le});let X=Ie,_=De;J&&(X=B.mode,_=B.colorScheme);const R=a.useMemo(()=>{var G;const b=_||x.defaultColorScheme,M=((G=x.generateThemeVars)==null?void 0:G.call(x))||x.vars,k={...x,components:se,colorSchemes:w,cssVarPrefix:Q,vars:M};if(typeof k.generateSpacing=="function"&&(k.spacing=k.generateSpacing()),b){const E=w[b];E&&typeof E=="object"&&Object.keys(E).forEach($=>{E[$]&&typeof E[$]=="object"?k[$]={...k[$],...E[$]}:k[$]=E[$]})}return u?u(k):k},[x,_,se,w,Q]),q=x.colorSchemeSelector;Te(()=>{if(_&&d&&q&&q!=="media"){const b=q;let M=q;if(b==="class"&&(M=".%s"),b==="data"&&(M="[data-%s]"),b!=null&&b.startsWith("data-")&&!b.includes("%s")&&(M=`[${b}="%s"]`),M.startsWith("."))d.classList.remove(...D.map(k=>M.substring(1).replace("%s",k))),d.classList.add(M.substring(1).replace("%s",_));else{const k=M.replace("%s",_).match(/\[([^\]]+)\]/);if(k){const[G,E]=k[1].split("=");E||D.forEach($=>{d.removeAttribute(G.replace(_,$))}),d.setAttribute(G,E?E.replace(/"|'/g,""):"")}else d.setAttribute(M,_)}}},[_,q,d,D]),a.useEffect(()=>{let b;if(N&&Y.current&&l){const M=l.createElement("style");M.appendChild(l.createTextNode(ct)),l.head.appendChild(M),window.getComputedStyle(l.body),b=setTimeout(()=>{l.head.removeChild(M)},1)}return()=>{clearTimeout(b)}},[_,N,l]),a.useEffect(()=>(Y.current=!0,()=>{Y.current=!1}),[]);const Oe=a.useMemo(()=>({allColorSchemes:D,colorScheme:_,darkColorScheme:ue,lightColorScheme:me,mode:X,setColorScheme:fe,setMode:ae,systemMode:de}),[D,_,ue,me,X,fe,ae,de,R.colorSchemeSelector]);let he=!0;(L||x.cssVariables===!1||J&&(z==null?void 0:z.cssVarPrefix)===Q)&&(he=!1);const Se=g.jsxs(a.Fragment,{children:[g.jsx(ve,{themeId:ne?t:void 0,theme:R,children:U}),he&&g.jsx(Ye,{styles:((ge=R.generateStyleSheets)==null?void 0:ge.call(R))||[]})]});return J?Se:g.jsx(p.Provider,{value:Oe,children:Se})}const y=typeof n=="string"?n:n.light,v=typeof n=="string"?n:n.dark;return{CssVarsProvider:m,useColorScheme:C,getInitColorSchemeScript:A=>tt({colorSchemeStorageKey:c,defaultLightColorScheme:y,defaultDarkColorScheme:v,modeStorageKey:r,...A})}}const Ct={50:"#fff8e1",100:"#ffecb3",200:"#ffe082",300:"#ffd54f",400:"#ffca28",500:"#ffc107",600:"#ffb300",700:"#ffa000",800:"#ff8f00",900:"#ff6f00",A100:"#ffe57f",A200:"#ffd740",A400:"#ffc400",A700:"#ffab00"},gt={50:"#eceff1",100:"#cfd8dc",200:"#b0bec5",300:"#90a4ae",400:"#78909c",500:"#607d8b",600:"#546e7a",700:"#455a64",800:"#37474f",900:"#263238",A100:"#cfd8dc",A200:"#b0bec5",A400:"#78909c",A700:"#455a64"};function lt({theme:e,...t}){const o=O in e?e[O]:void 0;return g.jsx(ve,{...t,themeId:o?O:void 0,theme:o||e})}const F={colorSchemeStorageKey:"mui-color-scheme",defaultLightColorScheme:"light",defaultDarkColorScheme:"dark",modeStorageKey:"mui-mode"},{CssVarsProvider:je,useColorScheme:bt,getInitColorSchemeScript:at}=it({themeId:O,theme:()=>Re({cssVariables:!0}),colorSchemeStorageKey:F.colorSchemeStorageKey,modeStorageKey:F.modeStorageKey,defaultColorScheme:{light:F.defaultLightColorScheme,dark:F.defaultDarkColorScheme},resolveTheme:e=>{const t={...e,typography:qe(e.palette,e.typography)};return t.unstable_sx=function(r){return Ge({sx:r,theme:this})},t}});function Mt(e){return g.jsx(je,{...e})}let xe=!1;const kt=e=>(xe||(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(`
29
+ `)),xe=!0),at(e)),dt=je;function xt({theme:e,...t}){const o=a.useMemo(()=>{if(typeof e=="function")return e;const r=O in e?e[O]:e;return"colorSchemes"in r?null:"vars"in r?e:{...e,vars:null}},[e]);return o?g.jsx(lt,{theme:o,...t}):g.jsx(dt,{theme:e,...t})}export{dt as C,Mt as E,pt as S,xt as T,Ct as a,gt as b,kt as g,bt as u};
@@ -0,0 +1 @@
1
+ import{j as t}from"./DefaultPropsProvider-BxjOYH1h.js";import{X as P,Y as O,U as h,i,a as d,b as w,Z as B,f as b,_ as S,$ as N,a0 as W,a1 as F,h as R,T as z}from"./bootstrap-B3ZI_-0g.js";import{i as j}from"./iobroker_admin__loadShare__react__loadShare__-CuzHmAOj.js";import{I as y,a as E,b as $}from"./Fields-CQNdUYkd.js";import A from"./user1-BHHH0LIq.js";import M from"./user2-BN56rMPt.js";import L from"./user3-Mx6XZSLK.js";import H from"./user4-DpEs_YiD.js";import Y from"./user5-CVfrnlXE.js";import q from"./user6-C7HkYnq4.js";import V from"./user7-VAQcubFn.js";import X from"./user8-CwACr_jq.js";import Z from"./user9-Dk4Mlhcc.js";import J from"./user10-Dvmqf8l1.js";import K from"./user11-C8ly5pY7.js";import Q from"./user12-CHtaF3qG.js";import ee from"./group1-DBYxcyxq.js";import te from"./group2-BUQSell7.js";import se from"./group3-B0AdMrOp.js";import oe from"./group4-TeCgDok7.js";import ie from"./group5-CJ_-VPxg.js";import re from"./group6-JW-nEhw_.js";import ne from"./group7-CWpVuR4T.js";import le from"./group8-CRGBxCwd.js";import ae from"./group9-BXRQchYG.js";import ce from"./group10-BIcZMfE3.js";import"./iobroker_admin__loadShare__prop_mf_2_types__loadShare__-pDONiJUe.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./iobroker_admin__mf_v__runtimeInit__mf_v__-CHE4rLsT.js";import"./emotion-serialize.esm-Q4o_CgeF.js";import"./iobroker_admin__loadShare___mf_0_emotion_mf_1_react__loadShare__-CXogaIXO.js";import"./ace-1DqSbvTN.js";import"./FilledInput-B9JSi0Ta.js";import"./preload-helper-Dp1pzeXC.js";import"./ThemeProvider-DHntAcOp.js";import"./emotion-cache.browser.esm-BgJfNZJN.js";import"./iobroker_admin__loadShare__leaflet__loadShare__-DIpcqFbm.js";import"./extends-CF3RwP-h.js";const k=e=>{const s=e.isDragging?0:1,o=h.getInvertedColor(e.user.common.color,e.themeType,!0),r={cursor:"grab",opacity:s,overflow:"hidden",color:o};return e.user.common.color&&(r.backgroundColor=e.user.common.color),t.jsx(i.Card,{style:r,sx:e.styles.userGroupCard2,children:t.jsxs("div",{style:e.styles.userCardContent,children:[t.jsxs("div",{style:e.styles.right,children:[t.jsx(i.Checkbox,{checked:e.user.common.enabled,style:{color:o},disabled:e.user.common.dontDelete,onChange:()=>{e.socket.extendObject(e.user._id,{common:{enabled:!e.user.common.enabled}}).then(()=>e.updateData())}}),t.jsx(i.IconButton,{size:"small",onClick:()=>e.showUserEditDialog(e.user,!1),children:t.jsx(d.Edit,{style:{color:o}})}),t.jsx(i.IconButton,{size:"small",onClick:()=>e.showUserDeleteDialog(e.user),disabled:e.user.common.dontDelete,children:t.jsx(d.Delete,{style:e.user.common.dontDelete?null:{color:o}})})]}),t.jsxs(i.CardContent,{children:[t.jsxs(i.Typography,{gutterBottom:!0,component:"div",style:e.styles.userGroupTitle,children:[e.user.common.icon?t.jsx(w,{style:e.styles.icon,src:e.user.common.icon}):t.jsx(d.Person,{style:e.styles.icon}),t.jsxs("div",{children:[t.jsxs("div",{children:[t.jsx("span",{style:e.styles.userGroupUserName,children:e.getText(e.user.common.name)}),t.jsxs("span",{style:e.styles.userGroupUserID,children:["[",e.user._id,"]"]})]}),t.jsx("span",{children:e.user.common.desc?t.jsx("div",{style:e.styles.description,children:e.getText(e.user.common.desc)}):null})]})]}),e.groups.find(n=>n.common.members&&n.common.members.includes(e.user._id))?t.jsxs("div",{children:[e.t("In groups"),":"]}):null,t.jsx("div",{children:e.groups.map(n=>{var m,p;if(!n.common.members||!n.common.members.includes(e.user._id))return null;const a=n&&((m=n.common)!=null&&m.color)?h.getInvertedColor(n.common.color,e.themeType,!0):o;return t.jsxs(i.Card,{variant:"outlined",sx:e.styles.userGroupMember,style:{color:a,borderColor:`${a}80`,background:((p=n.common)==null?void 0:p.color)||"inherit"},children:[n.common.icon?t.jsx(w,{style:e.styles.icon,src:n.common.icon}):t.jsx(d.Group,{style:e.styles.icon}),e.getText(n.common.name),t.jsx(i.IconButton,{size:"small",onClick:()=>e.removeUserFromGroup(e.user._id,n._id),children:t.jsx(d.Clear,{style:{color:a}})})]},n._id)})})]})]})})},de=e=>{const s=j.useRef(),[{isDragging:o},r,n]=P({type:"user",item:()=>{var a;return{userId:e.user._id,preview:t.jsx("div",{style:{width:(a=s.current)==null?void 0:a.offsetWidth},children:t.jsx(k,{...e})})}},end:(a,m)=>{const p=m.getDropResult();a&&p&&e.addUserToGroup(a.userId,p.groupId)},collect:a=>({isDragging:a.isDragging(),handlerId:a.getHandlerId()})});return j.useEffect(()=>{n(O(),{captureDraggingState:!0})},[n]),t.jsx("div",{ref:r,children:t.jsx("div",{ref:s,children:t.jsx(k,{isDragging:o,...e})})})};function he(e,s){return s.group.common.members?!s.group.common.members.includes(e.getItem().userId):!0}const me=e=>{var D;const[{CanDrop:s,isOver:o},r]=B(()=>({accept:"user",drop:()=>({groupId:e.group._id}),canDrop:(g,c)=>he(c,e),collect:g=>({isOver:g.isOver(),CanDrop:g.canDrop()})}),[e.group.common.members]);let n=.7,a;s&&o?(n=s?1:.125,a=e.styles.userGroupCardSecondary):s&&(n=s?.75:.25);const p=h.getInvertedColor(e.group.common.color,e.themeType,!0),x={opacity:n,overflow:"hidden",color:p};return e.group.common.color&&(x.backgroundColor=e.group.common.color),t.jsxs(i.Card,{style:x,ref:r,sx:h.getStyle(e.theme,e.styles.userGroupCard2,a),children:[t.jsxs("div",{style:e.styles.right,children:[t.jsx(i.IconButton,{size:"small",onClick:()=>e.showGroupEditDialog(e.group,!1),children:t.jsx(d.Edit,{style:{color:p}})}),t.jsx(i.IconButton,{size:"small",onClick:()=>e.showGroupDeleteDialog(e.group),disabled:e.group.common.dontDelete,children:t.jsx(d.Delete,{style:e.group.common.dontDelete?null:{color:p}})})]}),t.jsxs(i.CardContent,{children:[t.jsxs(i.Typography,{gutterBottom:!0,component:"div",style:e.styles.userGroupTitle,children:[e.group.common.icon?t.jsx(w,{style:e.styles.icon,src:e.group.common.icon}):t.jsx(d.Group,{style:e.styles.icon}),t.jsxs("div",{children:[t.jsxs("div",{children:[t.jsx("span",{style:e.styles.userGroupUserName,children:e.getText(e.group.common.name)}),t.jsxs("span",{children:["[",e.group._id,"]"]})]}),e.group.common.desc?t.jsx("div",{style:e.styles.description,children:e.getText(e.group.common.desc)}):null]})]}),(D=e.group.common.members)!=null&&D.length?t.jsxs("div",{children:[e.t("Group members"),":"]}):null,t.jsx("div",{children:(e.group.common.members||[]).map((g,c)=>{var G,T;const l=e.users.find(I=>I._id===g),f=l&&((G=l.common)!=null&&G.color)?h.getInvertedColor(l.common.color,e.themeType,!0):p;return l?t.jsxs(i.Card,{variant:"outlined",sx:e.styles.userGroupMember,style:{color:f,borderColor:`${f}40`,background:((T=l.common)==null?void 0:T.color)||"inherit"},children:[l.common.icon?t.jsx(w,{style:e.styles.icon,src:l.common.icon}):t.jsx(d.Person,{style:e.styles.icon}),e.getText(l.common.name),t.jsx(i.IconButton,{size:"small",onClick:()=>e.removeUserFromGroup(g,e.group._id),children:t.jsx(d.Clear,{style:{color:f}})})]},c):null})})]})]})},_=[A,M,L,H,Y,q,V,X,Z,J,K,Q],pe={contentRoot:{padding:"16px 24px"}};class ue extends j.Component{constructor(s){super(s),this.state={originalId:s.user._id,passwordRepeat:s.user.common.password}}componentDidMount(){if(this.props.isNew){const s=_[Math.round(Math.random()*(_.length-1))];s&&h.getSvg(s).then(o=>{const r=h.clone(this.props.user);r.common.icon=o,this.props.onChange(r)})}}render(){const s=this.props.users.find(c=>c._id===this.props.user._id),o=this.props.user._id!==this.state.originalId,r=c=>c.split(".").pop(),n=c=>c.replace(h.FORBIDDEN_CHARS,"_").replace(/\s/g,"_").replace(/\./g,"_").replace(/,/g,"_").replace(/__/g,"_").replace(/__/g,"_").toLowerCase(),a=(c,l)=>{const f=c.split(".");return f[f.length-1]=l,f.join(".")},m=this.props.getText(this.props.user.common.desc),p=this.props.getText(this.props.user.common.name),x=b.checkPassword(this.props.user.common.password),D=b.checkPassword(this.props.user.common.password,this.state.passwordRepeat);let g=this.props.user._id!=="system.user."&&!x&&!D;return(this.props.isNew&&s||s&&o)&&(g=!1),t.jsxs(i.Dialog,{fullWidth:this.props.innerWidth<500,open:!0,onClose:(c,l)=>{l!=="backdropClick"&&l!=="escapeKeyDown"&&this.props.onClose()},children:[t.jsx(i.DialogTitle,{style:{...this.props.styles.dialogTitle,padding:12},children:this.props.t("User parameters")}),t.jsxs(i.DialogContent,{sx:{"&.MuiDialogContent-root":{...this.props.innerWidth<500?this.props.styles.narrowContent:void 0,...pe.contentRoot}},children:[t.jsxs(i.Grid2,{container:!0,spacing:this.props.innerWidth<500?1:4,style:this.props.styles.dialog,children:[t.jsx(i.Grid2,{size:{xs:12,md:6},children:t.jsx(y,{label:"Name",t:this.props.t,value:p,onChange:c=>{const l=h.clone(this.props.user);!this.props.user.common.dontDelete&&n(this.props.getText(l.common.name))===r(l._id)&&(l._id=a(l._id,n(c))),l.common.name=c,this.props.onChange(l)},autoComplete:"new-password",icon:d.TextFields,styles:this.props.styles})}),t.jsx(i.Grid2,{size:{xs:12,md:6},children:t.jsx(y,{label:"ID edit",t:this.props.t,disabled:this.props.user.common.dontDelete,value:this.props.user._id.split(".")[this.props.user._id.split(".").length-1],onChange:c=>{const l=h.clone(this.props.user);l._id=a(l._id,n(c)),this.props.onChange(l)},icon:d.LocalOffer,styles:this.props.styles})}),t.jsx(i.Grid2,{size:{xs:12,md:6},children:t.jsx(y,{label:"ID preview",t:this.props.t,disabled:!0,value:this.props.user._id,icon:d.Pageview,styles:this.props.styles})}),t.jsx(i.Grid2,{size:{xs:12,md:6},children:t.jsx(y,{label:"Description",t:this.props.t,value:m,onChange:c=>{const l=h.clone(this.props.user);l.common.desc=c,this.props.onChange(l)},icon:d.Description,styles:this.props.styles})}),t.jsx(i.Grid2,{size:{xs:12,md:6},children:t.jsx(y,{label:"Password",t:this.props.t,value:this.props.user.common.password,error:x?this.props.t(x):void 0,onChange:c=>{const l=h.clone(this.props.user);l.common.password=c,this.props.onChange(l)},type:"password",autoComplete:"new-password",icon:d.VpnKey,styles:this.props.styles})}),t.jsx(i.Grid2,{size:{xs:12,md:6},children:t.jsx(y,{label:"Password repeat",t:this.props.t,value:this.state.passwordRepeat,error:D?this.props.t(D):void 0,onChange:c=>this.setState({passwordRepeat:c}),type:"password",autoComplete:"new-password",icon:d.VpnKey,styles:this.props.styles})}),t.jsx(i.Grid2,{size:{xs:12,md:6},children:t.jsx(S,{icons:_,label:"Icon",value:this.props.user.common.icon,onChange:c=>{const l=h.clone(this.props.user);l.common.icon=c,this.props.onChange(l)},previewStyle:this.props.styles.iconPreview,icon:d.Image})}),t.jsx(i.Grid2,{size:{xs:12,md:6},children:t.jsx(E,{label:"Color",t:this.props.t,value:this.props.user.common.color,previewStyle:this.props.styles.iconPreview,onChange:c=>{const l=h.clone(this.props.user);l.common.color=c,this.props.onChange(l)},icon:d.ColorLens,style:this.props.styles.colorPicker,styles:this.props.styles})})]}),this.props.isNew?null:this.renderOidcButton()]}),t.jsxs(i.DialogActions,{children:[t.jsx(i.Button,{variant:"contained",color:"primary",autoFocus:!0,onClick:()=>this.props.saveData(this.props.isNew?null:this.state.originalId),disabled:!g,startIcon:t.jsx(d.Check,{}),children:this.props.t("Save")}),t.jsx(i.Button,{variant:"contained",color:"grey",onClick:this.props.onClose,startIcon:t.jsx(d.Close,{}),children:this.props.t("Cancel")})]})]})}renderOidcButton(){var s,o;return window.ssoActive!=="true"?null:(o=(s=this.props.user.common)==null?void 0:s.externalAuthentication)!=null&&o.oidc?t.jsx(i.Button,{variant:"contained",color:"secondary",fullWidth:!0,startIcon:t.jsx(d.PersonOff,{}),sx:{marginTop:2},onClick:async()=>{delete this.props.user.common.externalAuthentication.oidc,await this.props.saveData(this.state.originalId),window.alert("Single-Sign On disconnected!")},children:this.props.t("Disconnect Single-Sign On")}):t.jsx(i.Button,{variant:"contained",color:"secondary",fullWidth:!0,onClick:()=>{window.location.href=`/sso?redirectUrl=${encodeURIComponent(`${window.origin}/#tab-users`)}&method=register&user=${this.props.getText(this.props.user.common.name)}`},startIcon:t.jsx(d.Person,{}),sx:{marginTop:2},children:this.props.t("Add Single-Sign On")})}}const v=[ee,te,se,oe,ie,re,ne,le,ae,ce];function ge(e){const s=(r,n)=>Object.values(r).map((a,m)=>{const p=Object.keys(r)[m];return n(a,p)});let o=e.group.common.acl;return o=o||{},o.object=o.object||{read:!0,list:!0,write:!0,delete:!1,create:void 0},o.object={read:!0,list:!0,write:!0,delete:!1,...o.object},o.state=o.state||{read:!0,list:!0,write:!0,delete:!1,create:void 0},o.state={read:!0,list:!0,write:!0,delete:!1,...o.state},o.users=o.users||{write:!1,delete:!1,create:!1,list:void 0,read:void 0},o.users={write:!1,delete:!1,create:!1,...o.users},o.other=o.other||{http:!1,execute:!1,sendto:!0},o.other={http:!1,execute:!1,sendto:!0,...o.other},o.file=o.file||{read:!0,list:!0,write:!1,delete:!1,create:!1},o.file={read:!0,list:!0,write:!1,delete:!1,create:!1,...o.file},t.jsx(i.Grid2,{container:!0,spacing:e.innerWidth<500?1:4,style:e.styles.dialog,children:s(e.group.common.acl||{},(r,n)=>t.jsxs(i.Grid2,{size:{xs:12,md:12},children:[t.jsx(i.Box,{component:"h2",sx:e.styles.permHeaders,children:e.t(`group_acl_${n}`)}),s(r,(a,m)=>t.jsx(i.FormControlLabel,{control:t.jsx(i.Checkbox,{disabled:e.group._id==="system.group.administrator",checked:a,onChange:p=>{const x=h.clone(e.group);x.common.acl[n][m]=p.target.checked,e.onChange(x)}}),label:e.t(`group_acl_${m}`),labelPlacement:"top"},m))]},n))},"PermissionsTab")}const xe={contentRoot:{padding:"16px 24px"}};class fe extends j.Component{constructor(s){super(s),this.state={tab:0,originalId:s.group._id}}componentDidMount(){if(this.props.isNew){const s=v[Math.round(Math.random()*(v.length-1))];s&&h.getSvg(s).then(o=>{const r=h.clone(this.props.group);r.common.icon=o,this.props.onChange(r)})}}render(){const s=this.props.groups.find(c=>c._id===this.props.group._id),o=this.props.group._id!==this.state.originalId;let r=this.props.group._id!=="system.group."&&this.props.group.common.password===this.props.group.common.passwordRepeat;const n=c=>c.split(".").pop(),a=c=>c.replace(h.FORBIDDEN_CHARS,"_").replace(/\s/g,"_").replace(/\./g,"_").toLowerCase(),m=(c,l)=>{const f=c.split(".");return f[f.length-1]=l,f.join(".")};this.props.isNew?s&&(r=!1):s&&o&&(r=!1);const p=this.props.getText(this.props.group.common.desc),x=this.props.getText(this.props.group.common.name),g=[t.jsxs(i.Grid2,{container:!0,spacing:this.props.innerWidth<500?1:4,style:this.props.styles.dialog,children:[t.jsx(i.Grid2,{size:{xs:12,md:6},children:t.jsx(y,{label:"Name",t:this.props.t,value:x,onChange:c=>{const l=h.clone(this.props.group);!this.props.group.common.dontDelete&&a(this.props.getText(l.common.name))===n(l._id)&&(l._id=m(l._id,a(c))),l.common.name=c,this.props.onChange(l)},autoComplete:"off",icon:d.TextFields,styles:this.props.styles})}),t.jsx(i.Grid2,{size:{xs:12,md:6},children:t.jsx(y,{label:"ID edit",t:this.props.t,disabled:this.props.group.common.dontDelete,value:this.props.group._id.split(".")[this.props.group._id.split(".").length-1],onChange:c=>{const l=h.clone(this.props.group);l._id=m(l._id,a(c)),this.props.onChange(l)},icon:d.LocalOffer,styles:this.props.styles})}),t.jsx(i.Grid2,{size:{xs:12,md:6},children:t.jsx(y,{label:"ID preview",t:this.props.t,disabled:!0,value:this.props.group._id,icon:d.Pageview,styles:this.props.styles})}),t.jsx(i.Grid2,{size:{xs:12,md:6},children:t.jsx(y,{label:"Description",t:this.props.t,value:p,onChange:c=>{const l=h.clone(this.props.group);l.common.desc=c,this.props.onChange(l)},icon:d.Description,styles:this.props.styles})}),t.jsx(i.Grid2,{size:{xs:12,md:6},children:t.jsx(S,{label:"Icon",icons:v,value:this.props.group.common.icon,onChange:c=>{const l=h.clone(this.props.group);l.common.icon=c,this.props.onChange(l)},previewStyle:this.props.styles.iconPreview,icon:d.Image})}),t.jsx(i.Grid2,{size:{xs:12,md:6},children:t.jsx(E,{label:"Color",t:this.props.t,value:this.props.group.common.color,previewStyle:this.props.styles.iconPreview,onChange:c=>{const l=h.clone(this.props.group);l.common.color=c,this.props.onChange(l)},icon:d.ColorLens,style:this.props.styles.colorPicker,styles:this.props.styles})})]}),ge(this.props)][this.state.tab];return t.jsxs(i.Dialog,{open:!0,onClose:(c,l)=>{l!=="backdropClick"&&l!=="escapeKeyDown"&&this.props.onClose()},fullWidth:this.props.innerWidth<500,children:[t.jsx(i.DialogTitle,{style:this.props.styles.dialogTitle,children:t.jsxs(i.Tabs,{variant:"fullWidth",value:this.state.tab,onChange:(c,l)=>this.setState({tab:l}),children:[t.jsx(i.Tab,{label:this.props.t("Main"),value:0}),t.jsx(i.Tab,{label:this.props.t("Permissions"),value:1})]})}),t.jsx(i.DialogContent,{sx:{"&.MuiDialogContent-root":{...this.props.innerWidth<500?this.props.styles.narrowContent:void 0,...xe.contentRoot}},children:g}),t.jsxs(i.DialogActions,{style:this.props.styles.dialogActions,children:[t.jsx(i.Button,{variant:"contained",color:"primary",autoFocus:!0,onClick:()=>this.props.saveData(this.props.isNew?null:this.state.originalId),disabled:!r,startIcon:t.jsx(d.Check,{}),children:this.props.t("Save")}),t.jsx(i.Button,{variant:"contained",color:"grey",onClick:this.props.onClose,startIcon:t.jsx(d.Close,{}),children:this.props.t("Cancel")})]})]})}}function ye(e){return t.jsxs(i.Dialog,{open:!0,onClose:e.onClose,children:[t.jsx(i.DialogTitle,{children:e.t("Please confirm")}),t.jsx(i.DialogContent,{children:t.jsx(i.DialogContentText,{children:e.t("Do you want to delete user %s?",e.getText(e.user.common.name))})}),t.jsxs(i.DialogActions,{children:[t.jsx(i.Button,{variant:"contained",color:"primary",onClick:()=>e.deleteUser(e.user._id),startIcon:t.jsx(d.Delete,{}),children:e.t("Delete")}),t.jsx(i.Button,{variant:"contained",color:"grey",autoFocus:!0,onClick:e.onClose,startIcon:t.jsx(d.Close,{}),children:e.t("Cancel")})]})]})}function De(e){return t.jsxs(i.Dialog,{open:!0,onClose:e.onClose,children:[t.jsx(i.DialogTitle,{children:e.t("Please confirm")}),t.jsx(i.DialogContent,{children:t.jsx(i.DialogContentText,{children:e.t("Do you want to delete group %s?",e.getText(e.group.common.name))})}),t.jsxs(i.DialogActions,{style:e.styles.dialogActions,children:[t.jsx(i.Button,{variant:"contained",color:"primary",onClick:()=>e.deleteGroup(e.group._id),startIcon:t.jsx(d.Delete,{}),children:e.t("Delete")}),t.jsx(i.Button,{variant:"contained",color:"grey",autoFocus:!0,onClick:e.onClose,startIcon:t.jsx(d.Close,{}),children:e.t("Cancel")})]})]})}const U="***********",Ce="0 1px 1px 0 rgba(0, 0, 0, .4),0 6px 6px 0 rgba(0, 0, 0, .2)",u={mainGridCont:{height:"calc(100% - 55px)",overflowY:"auto"},childGridCont:{display:"flex",flexDirection:"column"},childGridContWide:{height:"100%"},canDrop:e=>({backgroundColor:e.palette.background.default}),headContainer:{margin:10},blocksContainer:{overflowY:"auto",overflowX:"hidden"},userGroupCard2:e=>({border:"1px solid #FFF",borderColor:e.palette.divider,m:"10px",minHeight:150,backgroundColor:e.palette.background.default,color:e.palette.text.primary,transition:"all 200ms ease-out",opacity:1,overflow:"hidden","&:hover":{overflowY:"auto",boxShadow:Ce}}),userGroupCardSecondary:e=>({color:e.palette.text.primary,backgroundColor:e.palette.success.light}),permHeaders:e=>({backgroundColor:e.palette.mode==="dark"?e.palette.background.default:e.palette.primary.main,p:"4px",borderRadius:"2px",color:"#EEE"}),userCardContent:{height:"100%",opacity:1},userGroupTitle:{display:"inline-flex",alignItems:"center"},userGroupUserName:{fontWeight:900,padding:5},userGroupUserID:{opacity:.7,padding:5},description:{fontSize:10,fontStyle:"italic",marginLeft:5,opacity:.7},userGroupMember:e=>({display:"inline-flex",m:"4px",p:"4px",backgroundColor:"#00000010",border:"1px solid #FFF",borderColor:e.palette.text.primary,color:e.palette.text.primary,alignItems:"center"}),icon:{height:32,width:32,marginRight:5,backgroundSize:"cover",backgroundPosition:"center"},right:{float:"right"},left:{float:"left",marginRight:10},dialog:{},flex:{display:"flex"},formControl:{display:"flex",padding:24,flexGrow:1e3},formContainer:{display:"flex",justifyContent:"center",alignItems:"center"},formIcon:{margin:10,opacity:.6},descriptionPanel:e=>({width:"100%",backgroundColor:"transparent",mb:"20px",mt:"20px",ml:"20px",opacity:.75,border:"none",display:"flex",alignItems:"center","& a":{pl:"3px",color:e.palette.mode==="dark"?"#EEE":"#111"}}),dialogTitle:{borderBottom:"1px solid #00000020",padding:0,width:"100%"},dialogActions:{borderTop:"1px solid #00000020",width:"100%"},dialogPaper:{overflowY:"initial",display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",width:"calc(100% - 100px)",height:"calc(100% - 100px)",maxWidth:800,maxHeight:"100%"},dialogPaperMini:{maxHeight:300},colorPicker:{},iconPreview:{height:40,width:40},mainDescription:{fontSize:"200%"},deleteDialog:{padding:20},narrowContent:{padding:"8px 8px 8px 8px"}},je=()=>{const e=$();return e.display?t.jsx("div",{style:e.style,children:e.item.preview}):null},we={_id:"system.user.",type:"user",common:{name:"",password:"",enabled:!0,color:"",desc:""},native:{},enums:{}},_e={_id:void 0,native:{},type:"group",common:{name:"",desc:"",members:[],dontDelete:void 0,acl:{object:{list:!1,read:!1,write:!1,delete:!1,create:void 0},state:{list:!1,read:!1,write:!1,create:!1,delete:!1},users:{list:!1,read:!1,write:!1,create:!1,delete:!1},other:{execute:!1,http:!1,sendto:!1},file:{list:!1,read:!1,write:!1,create:!1,delete:!1}},icon:"",color:""}};class C extends j.Component{constructor(s){super(s),this.state={users:null,groups:null,userEditDialog:!1,userEditDialogNew:null,groupEditDialog:!1,groupEditDialogNew:null,userDeleteDialog:!1,groupDeleteDialog:!1,innerWidth:0}}componentDidMount(){this.setState({innerWidth:window.innerWidth},()=>this.updateData())}componentDidUpdate(){window.innerWidth!==this.state.innerWidth&&setTimeout(()=>this.setState({innerWidth:window.innerWidth}),100)}getText=s=>s&&(typeof s=="object"?s[this.props.lang]||s.en||"":s||"")||"";showUserEditDialog=(s,o)=>{s=h.clone(s),s.common.password=s.common.password?U:"",this.setState({userEditDialog:s,userEditDialogNew:o})};showGroupEditDialog=(s,o)=>{s=h.clone(s),this.setState({groupEditDialog:s,groupEditDialogNew:o})};updateData=()=>{let s;return this.props.socket.getForeignObjects("system.user.*","user").then(o=>(s=Object.values(o).sort((r,n)=>r._id>n._id?1:-1),s.forEach(r=>{r.common&&r.common.description&&(r.common.desc||(r.common.desc=r.common.description),delete r.common.description)}),this.props.socket.getForeignObjects("system.group.*","group"))).then(o=>{const r=Object.values(o).sort((n,a)=>n._id>a._id?1:-1);r.forEach(n=>{n.common&&n.common.description&&(n.common.desc||(n.common.desc=n.common.description),delete n.common.description)}),this.setState({groups:r,users:s})})};changeUserFormData=s=>this.setState({userEditDialog:s});changeGroupFormData=s=>this.setState({groupEditDialog:s});saveUser=async s=>{const o=h.clone(this.state.userEditDialog),r=this.state.users.find(a=>a._id===o._id),n=o.common.password&&o.common.password!==U?o.common.password:"";if(r?o.common.password=r.common.password:o.common.password="",await this.props.socket.setObject(o._id,o),typeof this.state.userEditDialog=="object"&&s&&s!==this.state.userEditDialog._id)try{await this.props.socket.delObject(s);for(let a=0;a<this.state.groups.length;a++){const m=this.state.groups[a];if(m.common.members.includes(s)){const p=h.clone(m);p.common.members[p.common.members.indexOf(s)]=o._id,await this.props.socket.setObject(p._id,p)}}}catch(a){window.alert(`Cannot delete user: ${a}`)}if(n)try{await this.props.socket.changePassword(o._id,n)}catch(a){window.alert(`Cannot change password: ${a}`)}this.setState({userEditDialog:!1},()=>this.updateData())};saveGroup=async s=>{if(typeof this.state.groupEditDialog=="object"){if(await this.props.socket.setObject(this.state.groupEditDialog._id,this.state.groupEditDialog),s&&s!==this.state.groupEditDialog._id)try{await this.props.socket.delObject(s)}catch(o){window.alert(`Cannot delete user: ${o}`)}this.setState({groupEditDialog:!1},()=>this.updateData())}};showUserDeleteDialog=s=>this.setState({userDeleteDialog:s});showGroupDeleteDialog=s=>this.setState({groupDeleteDialog:s});deleteUser=s=>{this.props.socket.delObject(s).then(()=>Promise.all(this.state.groups.map(o=>{if(o.common.members.includes(s)){const r=h.clone(o);return r.common.members.splice(r.common.members.indexOf(s),1),this.props.socket.setObject(r._id,r)}return Promise.resolve(null)}))).catch(o=>window.alert(`Cannot delete user: ${o}`)).then(()=>{this.setState({userDeleteDialog:!1},()=>this.updateData())})};deleteGroup=s=>this.props.socket.delObject(s).then(()=>this.setState({groupDeleteDialog:!1},()=>this.updateData())).catch(o=>window.alert(`Cannot delete user: ${o}`));addUserToGroup=(s,o)=>{const r=this.state.groups.find(a=>a._id===o),n=r.common.members;n.includes(s)||(n.push(s),this.props.socket.setObject(r._id,r).then(()=>this.updateData()).catch(a=>window.alert(`Cannot delete user: ${a}`)))};removeUserFromGroup=(s,o)=>{const r=this.state.groups.find(a=>a._id===o),n=r.common.members;n.includes(s)&&(n.splice(n.indexOf(s),1),this.props.socket.setObject(r._id,r).then(()=>this.updateData()))};static _isUniqueName(s,o,r){return!s.find(n=>n._id===`system.user.${o.toLowerCase()}_${r}`||n.common.name===`${o} ${r}`)}static findNewUniqueName(s,o,r){let n=1;for(;!C._isUniqueName(o,r,n);)n++;return{_id:`system.${s?"group":"user"}.${r.toLowerCase()}_${n}`,name:`${r} ${n}`}}render(){return!this.state.users||!this.state.groups?t.jsx(i.LinearProgress,{}):t.jsxs(N,{backend:b.isTouchDevice()?W:F,children:[t.jsx(je,{}),t.jsx(i.Box,{component:"div",sx:u.descriptionPanel,children:this.props.t("You can drag users to groups.")}),t.jsxs(i.Grid2,{container:!0,spacing:2,style:u.mainGridCont,children:[t.jsxs(i.Grid2,{size:{xs:12,md:6},style:{...u.childGridCont,...this.state.innerWidth>600?u.childGridContWide:void 0},children:[t.jsxs("div",{style:u.headContainer,children:[t.jsx(i.Fab,{size:"small",style:u.right,onClick:()=>{const{_id:s,name:o}=C.findNewUniqueName(!0,this.state.groups,this.props.t("Group")),r=h.clone(_e);r._id=s,r.common.name=o,this.showGroupEditDialog(r,!0)},children:t.jsx(d.GroupAdd,{})}),t.jsx(i.Typography,{gutterBottom:!0,variant:"h4",component:"h4",children:this.props.t("Groups")})]}),t.jsx("div",{style:u.blocksContainer,children:this.state.groups.sort((s,o)=>{var a,m;const r=(this.getText((a=s==null?void 0:s.common)==null?void 0:a.name)||s._id).toLowerCase(),n=(this.getText((m=o==null?void 0:o.common)==null?void 0:m.name)||o._id).toLowerCase();return r>n?1:r<n?-1:0}).map(s=>t.jsx(me,{themeType:this.props.themeType,group:s,users:this.state.users,showGroupEditDialog:this.showGroupEditDialog,showGroupDeleteDialog:this.showGroupDeleteDialog,removeUserFromGroup:this.removeUserFromGroup,getText:this.getText,styles:u,...this.props},s._id))})]}),t.jsxs(i.Grid2,{size:{xs:12,md:6},style:{...u.childGridCont,...this.state.innerWidth>600?u.childGridContWide:void 0},children:[t.jsxs("div",{style:u.headContainer,children:[t.jsx(i.Fab,{size:"small",style:u.right,onClick:()=>{const{_id:s,name:o}=C.findNewUniqueName(!1,this.state.users,this.props.t("User")),r=h.clone(we);r._id=s,r.common.name=o,this.showUserEditDialog(r,!0)},children:t.jsx(d.PersonAdd,{})}),t.jsx(i.Typography,{gutterBottom:!0,variant:"h4",component:"h4",children:this.props.t("Users")})]}),t.jsx("div",{style:u.blocksContainer,children:this.state.users.sort((s,o)=>{var a,m;const r=(this.getText((a=s==null?void 0:s.common)==null?void 0:a.name)||s._id).toLowerCase(),n=(this.getText((m=o==null?void 0:o.common)==null?void 0:m.name)||o._id).toLowerCase();return r>n?1:r<n?-1:0}).map(s=>t.jsx(de,{themeType:this.props.themeType,user:s,groups:this.state.groups,showUserEditDialog:this.showUserEditDialog,showUserDeleteDialog:this.showUserDeleteDialog,updateData:this.updateData,addUserToGroup:this.addUserToGroup,removeUserFromGroup:this.removeUserFromGroup,getText:this.getText,styles:u,...this.props},s._id))})]})]}),this.state.userEditDialog?t.jsx(ue,{onClose:()=>this.setState({userEditDialog:!1}),users:this.state.users,user:this.state.userEditDialog,isNew:this.state.userEditDialogNew,t:this.props.t,getText:this.getText,styles:u,onChange:this.changeUserFormData,saveData:this.saveUser,innerWidth:this.state.innerWidth}):null,this.state.groupEditDialog?t.jsx(fe,{onClose:()=>this.setState({groupEditDialog:!1}),groups:this.state.groups,group:this.state.groupEditDialog,isNew:this.state.groupEditDialogNew,t:this.props.t,getText:this.getText,styles:u,onChange:this.changeGroupFormData,innerWidth:this.state.innerWidth,saveData:this.saveGroup}):null,this.state.userDeleteDialog?t.jsx(ye,{getText:this.getText,onClose:()=>this.setState({userDeleteDialog:!1}),user:this.state.userDeleteDialog,t:this.props.t,deleteUser:this.deleteUser}):null,this.state.groupDeleteDialog?t.jsx(De,{getText:this.getText,onClose:()=>this.setState({groupDeleteDialog:!1}),group:this.state.groupDeleteDialog,t:this.props.t,styles:u,deleteGroup:this.deleteGroup}):null]})}}function at(e){return t.jsx(R,{children:t.jsx(z,{style:{display:"flex",flexDirection:"column",overflow:"auto"},children:t.jsx(C,{t:e.t,lang:e.lang,socket:e.socket,ready:e.ready,expertMode:e.expertMode,themeType:e.themeType,theme:e.theme})})})}export{at as default};