@iobroker/adapter-react-v5 4.0.9 → 4.0.11

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.
@@ -1712,7 +1712,7 @@ var Utils = /*#__PURE__*/function () {
1712
1712
  (0, _defineProperty2["default"])(Utils, "namespace", NAMESPACE);
1713
1713
  (0, _defineProperty2["default"])(Utils, "INSTANCES", 'instances');
1714
1714
  (0, _defineProperty2["default"])(Utils, "dateFormat", ['DD', 'MM']);
1715
- (0, _defineProperty2["default"])(Utils, "FORBIDDEN_CHARS", /(?:(?![ !#-&\(\)\+\x2D-:=@-Z\^_a-~\xB5\xC0-\xD6\xD8-\xF6\xF8-\u01BA\u01BC-\u01BF\u01C4\u01C6\u01C7\u01C9\u01CA\u01CC-\u01F1\u01F3-\u0293\u0295-\u02AF\u0370-\u0373\u0376\u0377\u037B-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0560-\u0588\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0BE6-\u0BEF\u0C66-\u0C6F\u0CE6-\u0CEF\u0D66-\u0D6F\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F29\u1040-\u1049\u1090-\u1099\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FD-\u10FF\u13A0-\u13F5\u13F8-\u13FD\u17E0-\u17E9\u1810-\u1819\u1946-\u194F\u19D0-\u19D9\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1D00-\u1D2B\u1D6B-\u1D77\u1D79-\u1D9A\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1F87\u1F90-\u1F97\u1FA0-\u1FA7\u1FB0-\u1FB4\u1FB6-\u1FBB\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCB\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFB\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2134\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C7B\u2C7E-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\uA620-\uA629\uA640-\uA66D\uA680-\uA69B\uA722-\uA76F\uA771-\uA787\uA78B-\uA78E\uA790-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F5\uA7F6\uA7FA\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uAB30-\uAB5A\uAB60-\uAB68\uAB70-\uABBF\uABF0-\uABF9\uFB00-\uFB06\uFB13-\uFB17\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A]|\uD801[\uDC00-\uDC4F\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC]|\uD803[\uDC80-\uDCB2\uDCC0-\uDCF2\uDD30-\uDD39]|\uD804[\uDC66-\uDC6F\uDCF0-\uDCF9\uDD36-\uDD3F\uDDD0-\uDDD9\uDEF0-\uDEF9]|\uD805[\uDC50-\uDC59\uDCD0-\uDCD9\uDE50-\uDE59\uDEC0-\uDEC9\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDD50-\uDD59]|\uD807[\uDC50-\uDC59\uDD50-\uDD59\uDDA0-\uDDA9\uDF50-\uDF59]|\uD81A[\uDE60-\uDE69\uDEC0-\uDEC9\uDF50-\uDF59]|\uD81B[\uDE40-\uDE7F]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD837[\uDF00-\uDF09\uDF0B-\uDF1E\uDF25-\uDF2A]|\uD838[\uDD40-\uDD49\uDEF0-\uDEF9]|\uD839[\uDCF0-\uDCF9]|\uD83A[\uDD00-\uDD43\uDD50-\uDD59]|\uD83E[\uDFF0-\uDFF9])[\s\S])+/g);
1715
+ (0, _defineProperty2["default"])(Utils, "FORBIDDEN_CHARS", /(?:[\0-\x1F"'\*,;<>\?\[-\]`\x7F-\xB4\xB6-\xBF\xD7\xF7\u01BB\u01C0-\u01C3\u01C5\u01C8\u01CB\u01F2\u0294\u02B0-\u036F\u0374\u0375\u0378-\u037A\u037E\u0380-\u0385\u0387\u038B\u038D\u03A2\u03F6\u0482-\u0489\u0530\u0557-\u055F\u0589-\u065F\u066A-\u06EF\u06FA-\u07BF\u07CA-\u0965\u0970-\u09E5\u09F0-\u0A65\u0A70-\u0AE5\u0AF0-\u0B65\u0B70-\u0BE5\u0BF0-\u0C65\u0C70-\u0CE5\u0CF0-\u0D65\u0D70-\u0DE5\u0DF0-\u0E4F\u0E5A-\u0ECF\u0EDA-\u0F1F\u0F2A-\u103F\u104A-\u108F\u109A-\u109F\u10C6\u10C8-\u10CC\u10CE\u10CF\u10FB\u10FC\u1100-\u139F\u13F6\u13F7\u13FE-\u17DF\u17EA-\u180F\u181A-\u1945\u1950-\u19CF\u19DA-\u1A7F\u1A8A-\u1A8F\u1A9A-\u1B4F\u1B5A-\u1BAF\u1BBA-\u1C3F\u1C4A-\u1C4F\u1C5A-\u1C7F\u1C89-\u1C8F\u1CBB\u1CBC\u1CC0-\u1CFF\u1D2C-\u1D6A\u1D78\u1D9B-\u1DFF\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1F88-\u1F8F\u1F98-\u1F9F\u1FA8-\u1FAF\u1FB5\u1FBC\u1FBD\u1FBF-\u1FC1\u1FC5\u1FCC-\u1FCF\u1FD4\u1FD5\u1FDC-\u1FDF\u1FED-\u1FF1\u1FF5\u1FFC-\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u2135-\u2138\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F-\u2182\u2185-\u2BFF\u2C7C\u2C7D\u2CE5-\u2CEA\u2CEF-\u2CF1\u2CF4-\u2CFF\u2D26\u2D28-\u2D2C\u2D2E-\uA61F\uA62A-\uA63F\uA66E-\uA67F\uA69C-\uA721\uA770\uA788-\uA78A\uA78F\uA7CB-\uA7CF\uA7D2\uA7D4\uA7DA-\uA7F4\uA7F7-\uA7F9\uA7FB-\uA8CF\uA8DA-\uA8FF\uA90A-\uA9CF\uA9DA-\uA9EF\uA9FA-\uAA4F\uAA5A-\uAB2F\uAB5B-\uAB5F\uAB69-\uAB6F\uABC0-\uABEF\uABFA-\uD7FF\uE000-\uFAFF\uFB07-\uFB12\uFB18-\uFF0F\uFF1A-\uFF20\uFF3B-\uFF40\uFF5B-\uFFFF]|[\uD800\uD802\uD808-\uD819\uD81C-\uD834\uD836\uD83B-\uD83D\uD83F-\uDBFF][\uDC00-\uDFFF]|\uD801[\uDC50-\uDC9F\uDCAA-\uDCAF\uDCD4-\uDCD7\uDCFC-\uDD6F\uDD7B\uDD8B\uDD93\uDD96\uDDA2\uDDB2\uDDBA\uDDBD-\uDFFF]|\uD803[\uDC00-\uDC7F\uDCB3-\uDCBF\uDCF3-\uDD2F\uDD3A-\uDFFF]|\uD804[\uDC00-\uDC65\uDC70-\uDCEF\uDCFA-\uDD35\uDD40-\uDDCF\uDDDA-\uDEEF\uDEFA-\uDFFF]|\uD805[\uDC00-\uDC4F\uDC5A-\uDCCF\uDCDA-\uDE4F\uDE5A-\uDEBF\uDECA-\uDF2F\uDF3A-\uDFFF]|\uD806[\uDC00-\uDC9F\uDCEA-\uDD4F\uDD5A-\uDFFF]|\uD807[\uDC00-\uDC4F\uDC5A-\uDD4F\uDD5A-\uDD9F\uDDAA-\uDF4F\uDF5A-\uDFFF]|\uD81A[\uDC00-\uDE5F\uDE6A-\uDEBF\uDECA-\uDF4F\uDF5A-\uDFFF]|\uD81B[\uDC00-\uDE3F\uDE80-\uDFFF]|\uD835[\uDC55\uDC9D\uDCA0\uDCA1\uDCA3\uDCA4\uDCA7\uDCA8\uDCAD\uDCBA\uDCBC\uDCC4\uDD06\uDD0B\uDD0C\uDD15\uDD1D\uDD3A\uDD3F\uDD45\uDD47-\uDD49\uDD51\uDEA6\uDEA7\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3\uDFCC\uDFCD]|\uD837[\uDC00-\uDEFF\uDF0A\uDF1F-\uDF24\uDF2B-\uDFFF]|\uD838[\uDC00-\uDD3F\uDD4A-\uDEEF\uDEFA-\uDFFF]|\uD839[\uDC00-\uDCEF\uDCFA-\uDFFF]|\uD83A[\uDC00-\uDCFF\uDD44-\uDD4F\uDD5A-\uDFFF]|\uD83E[\uDC00-\uDFEF\uDFFA-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+/g);
1716
1716
  var _default = Utils;
1717
1717
  exports["default"] = _default;
1718
1718
  //# sourceMappingURL=Utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Utils.js","names":["NAMESPACE","days","months","QUALITY_BITS","SIGNATURES","JVBERi0","R0lGODdh","R0lGODlh","iVBORw0KGgo","PHN2Zw","Qk1","AAABAA","Utils","name","split","filter","item","map","word","toUpperCase","substring","toLowerCase","join","seconds","Math","floor","hours","minutes","text","I18n","t","objects","id","settings","options","isDesc","attr","language","common","window","sysLang","en","desc","de","ru","toString","replace","pos","lastIndexOf","CapitalWords","trim","obj","noTrim","_id","forEnumId","hasOwnProperty","custom","user","subOrder","JSON","parse","stringify","order","subURLs","URLs","list","source","dest","result","Array","from","splice","removed","defaultEnabling","enabled","undefined","useCustom","useCommon","color","icon","s","style","length","startsWith","prefix","parts","location","pathname","match","words","i","z","ww","start","push","k","w","defaultValue","indexOf","slice","r","g","b","rgb","parseInt","parseFloat","isNaN","secs","angle","num","format","dateFormat","now","m","a","year","find","y","day","Date","abs","getTime","date","getDay","getDate","getMonth","key","index","href","target","rel","title","states","instanceId","noCommon","smartName","newSmartName","byON","smartType","getLanguage","nnn","_smartName","role","empty","nl","pl","it","fr","pt","es","e","stopPropagation","preventDefault","copy","fileName","bytes","units","u","toFixed","themeType","invert","invertedColor","invertColor","hex","bw","padStart","alfa","console","warn","pow","x","color1","color2","lab1","rgb2lab","color2rgb","lab2","dltL","dltA","dltB","c1","sqrt","c2","dltC","dltH","sc","sh","dltLKlsl","dltCkcsc","dltHkhsh","mix","str","isArray","_toVal","tmp","arguments","themeName","vendorPrefix","_localStorage","localStorage","getItem","matchMedia","matches","setItem","themes","getThemeNames","newTheme","setThemeName","query","forEach","part","decodeURIComponent","f","p","pop","dateObj","mm","dd","getFullYear","v","getHours","getMinutes","getSeconds","getMilliseconds","round","d","h","url","open","extractHeader","body","header","lines","attrs","_header","line","doc","filename","json","el","document","createElement","setAttribute","encodeURIComponent","display","appendChild","click","removeChild","quality","object","ex","error","type","value","fetch","then","response","blob","Promise","resolve","reader","FileReader","onload","readAsDataURL","base64","signature","Object","keys"],"sources":["Utils.js"],"sourcesContent":["/**\n * Copyright 2018-2022 bluefox <dogafox@gmail.com>\n *\n * MIT License\n *\n **/\nimport React from 'react';\nimport copy from './copy-to-clipboard';\nimport I18n from '../i18n';\n\nconst NAMESPACE = 'material';\nconst days = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];\nconst months = ['Jan', 'Feb', 'Mar', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\nconst QUALITY_BITS = {\n 0x00: '0x00 - good',\n\n 0x01: '0x01 - general problem',\n 0x02: '0x02 - no connection problem',\n\n 0x10: '0x10 - substitute value from controller',\n 0x20: '0x20 - substitute initial value',\n 0x40: '0x40 - substitute value from device or instance',\n 0x80: '0x80 - substitute value from sensor',\n\n 0x11: '0x11 - general problem by instance',\n 0x41: '0x41 - general problem by device',\n 0x81: '0x81 - general problem by sensor',\n\n 0x12: '0x12 - instance not connected',\n 0x42: '0x42 - device not connected',\n 0x82: '0x82 - sensor not connected',\n\n 0x44: '0x44 - device reports error',\n 0x84: '0x84 - sensor reports error',\n};\nconst SIGNATURES = {\n JVBERi0: 'pdf',\n R0lGODdh: 'gif',\n R0lGODlh: 'gif',\n iVBORw0KGgo: 'png',\n '/9j/': 'jpg',\n PHN2Zw: 'svg',\n Qk1: 'bmp',\n AAABAA: 'ico' // 00 00 01 00 according to https://en.wikipedia.org/wiki/List_of_file_signatures\n};\n\nclass Utils {\n static namespace = NAMESPACE;\n static INSTANCES = 'instances';\n static dateFormat = ['DD', 'MM'];\n static FORBIDDEN_CHARS = /[^._\\-/ :!#$%&()+=@^{}|~\\p{Ll}\\p{Lu}\\p{Nd}]+/gu;\n\n /**\n * Capitalize words.\n * @param {string | undefined} name\n * @returns {string}\n */\n static CapitalWords(name) {\n return (name || '').split(/[\\s_]/)\n .filter(item => item)\n .map(word => word ? word[0].toUpperCase() + word.substring(1).toLowerCase() : '')\n .join(' ');\n }\n\n static formatSeconds(seconds) {\n const days = Math.floor(seconds / (3600 * 24));\n seconds %= 3600 * 24;\n let hours = Math.floor(seconds / 3600);\n if (hours < 10) {\n hours = '0' + hours;\n }\n seconds %= 3600;\n let minutes = Math.floor(seconds / 60);\n if (minutes < 10) {\n minutes = '0' + minutes;\n }\n seconds %= 60;\n seconds = Math.floor(seconds);\n if (seconds < 10) {\n seconds = '0' + seconds;\n }\n let text = '';\n if (days) {\n text += `${days} ${I18n.t('ra_daysShortText')} `;\n }\n text += `${hours}:${minutes}:${seconds}`;\n\n return text;\n }\n\n /**\n * Get the name of the object by id from the name or description.\n * @param {Record<string, ioBroker.Object>} objects\n * @param {string} id\n * @param {{ name: any; } | ioBroker.Languages | null} settings\n * @param {{ language?: ioBroker.Languages; }} options\n * @param {boolean} [isDesc] Set to true to get the description.\n * @returns {string}\n */\n static getObjectName(objects, id, settings, options, isDesc) {\n let item = objects[id];\n let text = id;\n const attr = isDesc ? 'desc' : 'name';\n\n if (typeof settings === 'string' && !options) {\n options = {language: settings};\n settings = null;\n }\n\n options = options || {};\n if (!options.language) {\n options.language = (objects['system.config'] && objects['system.config'].common && objects['system.config'].common.language) || window.sysLang || 'en';\n }\n if (settings && settings.name) {\n text = settings.name;\n if (typeof text === 'object') {\n text = text[options.language] || text.en;\n }\n } else\n if (item && item.common && item.common[attr]) {\n text = item.common[attr];\n if (attr !== 'desc' && !text && item.common.desc) {\n text = item.common.desc;\n }\n if (typeof text === 'object') {\n text = text[options.language] || text.en || text.de || text.ru || '';\n }\n text = (text || '').toString().replace(/[_.]/g, ' ');\n\n if (text === text.toUpperCase()) {\n text = text[0] + text.substring(1).toLowerCase();\n }\n } else {\n let pos = id.lastIndexOf('.');\n text = id.substring(pos + 1).replace(/[_.]/g, ' ');\n text = Utils.CapitalWords(text);\n }\n\n return text.trim();\n }\n\n /**\n * Get the name of the object from the name or description.\n * @param {ioBroker.PartialObject} obj\n * @param {{ name: any; } | ioBroker.Languages | null } settings or language\n * @param {{ language?: ioBroker.Languages; } } options\n * @param {boolean} [isDesc] Set to true to get the description.\n * @param {boolean} [noTrim] Allow to use spaces in name (by edit)\n * @returns {string}\n */\n static getObjectNameFromObj(obj, settings, options, isDesc, noTrim) {\n let item = obj;\n let text = (obj && obj._id) || '';\n const attr = isDesc ? 'desc' : 'name';\n\n if (typeof settings === 'string' && !options) {\n options = {language: settings};\n settings = null;\n }\n\n options = options || {};\n\n if (settings && settings.name) {\n text = settings.name;\n if (typeof text === 'object') {\n text = text[options.language] || text.en;\n }\n } else\n if (item && item.common && item.common[attr]) {\n text = item.common[attr];\n if (attr !== 'desc' && !text && item.common.desc) {\n text = item.common.desc;\n }\n if (typeof text === 'object') {\n text = text[options.language] || text.en;\n }\n text = (text || '').toString().replace(/[_.]/g, ' ');\n\n if (text === text.toUpperCase()) {\n text = text[0] + text.substring(1).toLowerCase();\n }\n }\n return noTrim ? text : text.trim();\n }\n\n /**\n * @param {ioBroker.PartialObject | ioBroker.ObjectCommon} obj\n * @param {string} forEnumId\n * @param {{ user: string; }} options\n * @returns {string | null}\n */\n static getSettingsOrder(obj, forEnumId, options) {\n if (obj && obj.hasOwnProperty('common')) {\n obj = obj.common;\n }\n let settings;\n if (obj && obj.custom) {\n settings = (obj.custom || {})[NAMESPACE];\n const user = options.user || 'admin';\n if (settings && settings[user]) {\n if (forEnumId) {\n if (settings[user].subOrder && settings[user].subOrder[forEnumId]) {\n return JSON.parse(JSON.stringify(settings[user].subOrder[forEnumId]));\n }\n } else {\n if (settings[user].order) {\n return JSON.parse(JSON.stringify(settings[user].order));\n }\n }\n }\n }\n return null;\n }\n\n /**\n * @param {ioBroker.PartialObject | ioBroker.ObjectCommon} obj\n * @param {string} forEnumId\n * @param {{ user: string; }} options\n */\n static getSettingsCustomURLs(obj, forEnumId, options) {\n if (obj && obj.hasOwnProperty('common')) {\n obj = obj.common;\n }\n let settings;\n if (obj && obj.custom) {\n settings = (obj.custom || {})[NAMESPACE];\n const user = options.user || 'admin';\n if (settings && settings[user]) {\n if (forEnumId) {\n if (settings[user].subURLs && settings[user].subURLs[forEnumId]) {\n return JSON.parse(JSON.stringify(settings[user].subURLs[forEnumId]));\n }\n } else {\n if (settings[user].URLs) {\n return JSON.parse(JSON.stringify(settings[user].URLs));\n }\n }\n }\n }\n return null;\n }\n\n /**\n * Reorder the array items in list between source and dest.\n * @param {Iterable<any> | ArrayLike<any>} list\n * @param {number} source\n * @param {number} dest\n */\n static reorder(list, source, dest) {\n const result = Array.from(list);\n const [removed] = result.splice(source, 1);\n result.splice(dest, 0, removed);\n return result;\n };\n\n /**\n * @param {any} obj\n * @param {{ id: any; user: any; name: any; icon: any; color: any; language: ioBroker.Languages; }} options\n * @param {boolean} [defaultEnabling]\n */\n static getSettings(obj, options, defaultEnabling) {\n let settings;\n const id = (obj && obj._id) || (options && options.id);\n if (obj && obj.hasOwnProperty('common')) {\n obj = obj.common;\n }\n if (obj && obj.custom) {\n settings = obj.custom || {};\n settings = settings[NAMESPACE] && settings[NAMESPACE][options.user || 'admin'] ? JSON.parse(JSON.stringify(settings[NAMESPACE][options.user || 'admin'])) : {enabled: true};\n } else {\n settings = {enabled: defaultEnabling === undefined ? true : defaultEnabling, useCustom: false};\n }\n\n if (!settings.hasOwnProperty('enabled')) {\n settings.enabled = defaultEnabling === undefined ? true : defaultEnabling;\n }\n\n if (false && settings.useCommon) {\n if (obj.color) settings.color = obj.color;\n if (obj.icon) settings.icon = obj.icon;\n if (obj.name) settings.name = obj.name;\n } else {\n if (options) {\n if (!settings.name && options.name) settings.name = options.name;\n if (!settings.icon && options.icon) settings.icon = options.icon;\n if (!settings.color && options.color) settings.color = options.color;\n }\n\n if (obj) {\n if (!settings.color && obj.color) settings.color = obj.color;\n if (!settings.icon && obj.icon) settings.icon = obj.icon;\n if (!settings.name && obj.name) settings.name = obj.name;\n }\n }\n\n if (typeof settings.name === 'object') {\n settings.name = settings.name[options.language] || settings.name.en;\n\n settings.name = (settings.name || '').toString().replace(/_/g, ' ');\n\n if (settings.name === settings.name.toUpperCase()) {\n settings.name = settings.name[0] + settings.name.substring(1).toLowerCase();\n }\n }\n if (!settings.name && id) {\n let pos = id.lastIndexOf('.');\n settings.name = id.substring(pos + 1).replace(/[_.]/g, ' ');\n settings.name = (settings.name || '').toString().replace(/_/g, ' ');\n settings.name = Utils.CapitalWords(settings.name);\n }\n\n return settings;\n }\n\n /**\n * @param {any} obj\n * @param {any} settings\n * @param {{ user: any; language: ioBroker.Languages; }} options\n */\n static setSettings(obj, settings, options) {\n if (obj) {\n obj.common = obj.common || {};\n obj.common.custom = obj.common.custom || {};\n obj.common.custom[NAMESPACE] = obj.common.custom[NAMESPACE] || {};\n obj.common.custom[NAMESPACE][options.user || 'admin'] = settings;\n const s = obj.common.custom[NAMESPACE][options.user || 'admin'];\n if (s.useCommon) {\n if (s.color !== undefined) {\n obj.common.color = s.color;\n delete s.color;\n }\n if (s.icon !== undefined) {\n obj.common.icon = s.icon;\n delete s.icon;\n }\n if (s.name !== undefined) {\n if (typeof obj.common.name !== 'object') {\n obj.common.name = {};\n obj.common.name[options.language] = s.name;\n } else{\n obj.common.name[options.language] = s.name;\n }\n delete s.name;\n }\n }\n\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * Get the icon for the given settings.\n * @param {{ icon: string | undefined; name: string | undefined; prefix: string | undefined}} settings\n * @param {any} style\n * @returns {JSX.Element | null}\n */\n static getIcon(settings, style) {\n if (settings && settings.icon) {\n // If UTF-8 icon\n if (settings.icon.length <= 2) {\n return <span style={style || {}}>{settings.icon}</span>;\n } else\n if (settings.icon.startsWith('data:image')) {\n return <img alt={settings.name} src={settings.icon} style={style || {}}/>;\n } else { // may be later some changes for second type\n return <img alt={settings.name} src={(settings.prefix || '') + settings.icon} style={style || {}}/>;\n }\n }\n return null;\n }\n\n /**\n * Get the icon for the given object.\n * @param {string} id\n * @param {{ common: { icon: any; }; }} obj\n * @returns {string | null}\n */\n static getObjectIcon(id, obj) {\n // If id is Object\n if (typeof id === 'object') {\n obj = id;\n id = obj._id;\n }\n\n if (obj && obj.common && obj.common.icon) {\n let icon = obj.common.icon;\n // If UTF-8 icon\n if (typeof icon === 'string' && icon.length <= 2) {\n return icon;\n } else\n if (icon.startsWith('data:image')) {\n return icon;\n } else {\n const parts = id.split('.');\n if (parts[0] === 'system') {\n icon = 'adapter/' + parts[2] + (icon.startsWith('/') ? '' : '/') + icon;\n } else {\n icon = 'adapter/' + parts[0] + (icon.startsWith('/') ? '' : '/') + icon;\n }\n\n if (window.location.pathname.match(/adapter\\/[^/]+\\/[^/]+\\.html/)) {\n icon = '../../' + icon;\n } else if (window.location.pathname.match(/material\\/[.\\d]+/)) {\n icon = '../../' + icon;\n } else\n if (window.location.pathname.match(/material\\//)) {\n icon = '../' + icon;\n }\n return icon;\n }\n } else {\n return null;\n }\n }\n\n /**\n * Splits CamelCase into words.\n * @param {string | undefined} text\n * @returns {string}\n */\n static splitCamelCase(text) {\n if (false && text !== text.toUpperCase()) {\n const words = text.split(/\\s+/);\n for (let i = 0; i < words.length; i++) {\n let word = words[i];\n if (word.toLowerCase() !== word && word.toUpperCase() !== word) {\n let z = 0;\n const ww = [];\n let start = 0;\n while (z < word.length) {\n if (word[z].match(/[A-ZÜÄÖА-Я]/)) {\n ww.push(word.substring(start, z));\n start = z;\n }\n z++;\n }\n if (start !== z) {\n ww.push(word.substring(start, z));\n }\n for (let k = 0; k < ww.length; k++) {\n words.splice(i + k, 0, ww[k]);\n }\n i += ww.length;\n }\n }\n\n return words.map(w => {\n w = w.trim();\n if (w) {\n return w[0].toUpperCase() + w.substring(1).toLowerCase();\n }\n return '';\n }).join(' ');\n } else {\n return Utils.CapitalWords(text);\n }\n }\n\n /**\n * Check if the given color is bright.\n * https://stackoverflow.com/questions/35969656/how-can-i-generate-the-opposite-color-according-to-current-color\n * @param {string | null | undefined} color\n * @param {boolean} [defaultValue]\n * @returns {boolean}\n */\n static isUseBright(color, defaultValue) {\n if (color === null || color === undefined || color === '') {\n return defaultValue === undefined ? true : defaultValue;\n }\n color = color.toString();\n if (color.indexOf('#') === 0) {\n color = color.slice(1);\n }\n let r;\n let g;\n let b;\n\n const rgb = color.match(/^rgba?[\\s+]?\\([\\s+]?(\\d+)[\\s+]?,[\\s+]?(\\d+)[\\s+]?,[\\s+]?(\\d+)[\\s+]?/i);\n if (rgb && rgb.length === 4) {\n r = parseInt(rgb[1], 10);\n g = parseInt(rgb[2], 10);\n b = parseInt(rgb[3], 10);\n } else {\n // convert 3-digit hex to 6-digits.\n if (color.length === 3) {\n color = color[0] + color[0] + color[1] + color[1] + color[2] + color[2];\n }\n // remove alfa channel\n if (color.length === 8) {\n color = color.substring(0, 6);\n } else\n if (color.length !== 6) {\n return false;\n }\n\n r = parseInt(color.slice(0, 2), 16);\n g = parseInt(color.slice(2, 4), 16);\n b = parseInt(color.slice(4, 6), 16);\n }\n\n // http://stackoverflow.com/a/3943023/112731\n return (r * 0.299 + g * 0.587 + b * 0.114) <= 186;\n };\n\n /**\n * Get the time string in the format 00:00.\n * @param {string | number} seconds\n */\n static getTimeString(seconds) {\n seconds = parseFloat(seconds);\n if (isNaN(seconds)) {\n return '--:--';\n }\n const hours = Math.floor(seconds / 3600);\n let minutes = Math.floor((seconds % 3600) / 60);\n let secs = seconds % 60;\n if (hours) {\n if (minutes < 10) minutes = '0' + minutes;\n if (secs < 10) secs = '0' + secs;\n return hours + ':' + minutes + ':' + secs;\n } else {\n if (secs < 10) secs = '0' + secs;\n return minutes + ':' + secs;\n }\n }\n\n /**\n * Gets the wind direction with the given angle (degrees).\n * @param {number} angle in degrees.\n * @returns {string | undefined}\n */\n static getWindDirection(angle) {\n if (angle >= 0 && angle < 11.25) {\n return 'N'\n } else if (angle >= 11.25 && angle < 33.75) {\n return 'NNE'\n } else if (angle >= 33.75 && angle < 56.25) {\n return 'NE'\n } else if (angle >= 56.25 && angle < 78.75) {\n return 'ENE'\n } else if (angle >= 78.75 && angle < 101.25) {\n return 'E'\n } else if (angle >= 101.25 && angle < 123.75) {\n return 'ESE'\n } else if (angle >= 123.75 && angle < 146.25) {\n return 'SE'\n } else if (angle >= 146.25 && angle < 168.75) {\n return 'SSE'\n } else if (angle >= 168.75 && angle < 191.25) {\n return 'S'\n } else if (angle >= 191.25 && angle < 213.75) {\n return 'SSW'\n } else if (angle >= 213.75 && angle < 236.25) {\n return 'SW'\n } else if (angle >= 236.25 && angle < 258.75) {\n return 'WSW'\n } else if (angle >= 258.75 && angle < 281.25) {\n return 'W'\n } else if (angle >= 281.25 && angle < 303.75) {\n return 'WNW'\n } else if (angle >= 303.75 && angle < 326.25) {\n return 'NW'\n } else if (angle >= 326.25 && angle < 348.75) {\n return 'NNW'\n } else if (angle >= 348.75) {\n return 'N'\n }\n }\n\n /**\n * Pad the given number with a zero if its not 2 digits long.\n * @param {string | number} num\n */\n static padding(num) {\n if (typeof num === 'string') {\n if (num.length < 2) {\n return '0' + num;\n } else {\n return num;\n }\n } else if (num < 10) {\n return '0' + num;\n } else {\n return num;\n }\n }\n\n /**\n * Sets the date format.\n * @param {string} format\n */\n static setDataFormat(format) {\n if (format) {\n Utils.dateFormat = format.toUpperCase().split(/[.-/]/);\n Utils.dateFormat.splice(Utils.dateFormat.indexOf('YYYY'), 1);\n }\n }\n\n /**\n * Converts the date to a string.\n * @param {string | number | Date} now\n * @returns {string}\n */\n static date2string(now) {\n if (typeof now === 'string') {\n now = now.trim();\n if (!now) return '';\n // only letters\n if (now.match(/^[\\w\\s]+$/)) {\n // Day of week\n return now;\n }\n let m = now.match(/(\\d{1,4})[-./](\\d{1,2})[-./](\\d{1,4})/);\n if (m) {\n let a = [parseInt(m[1], 10), parseInt(m[2], 10), parseInt(m[3], 10)];\n let year = a.find(y => y > 31);\n a.splice(a.indexOf(year), 1);\n let day = a.find(m => m > 12);\n if (day) {\n a.splice(a.indexOf(day), 1);\n now = new Date(year, a[0] - 1, day);\n } else {\n // MM DD\n if (Utils.dateFormat[0][0] === 'M' && Utils.dateFormat[1][0] === 'D') {\n now = new Date(year, a[0] - 1, a[1]);\n if (Math.abs(now.getTime - Date.now()) > 3600000 * 24 * 10) {\n now = new Date(year, a[1] - 1, a[0]);\n }\n } else\n // DD MM\n if (Utils.dateFormat[0][0] === 'D' && Utils.dateFormat[1][0] === 'M') {\n now = new Date(year, a[1] - 1, a[0]);\n if (Math.abs(now.getTime - Date.now()) > 3600000 * 24 * 10) {\n now = new Date(year, a[0] - 1, a[1]);\n }\n } else {\n now = new Date(now);\n }\n }\n } else {\n now = new Date(now);\n }\n } else {\n now = new Date(now);\n }\n\n let date = I18n.t('ra_dow_' + days[now.getDay()]).replace('ra_dow_', '');\n date += '. ' + now.getDate() + ' ' + I18n.t('ra_month_' + months[now.getMonth()]).replace('ra_month_', '');\n return date;\n }\n\n /**\n * Render a text as a link.\n * @param {string} text\n * @returns {string | JSX.Element[]}\n */\n static renderTextWithA(text) {\n let m = text.match(/<a [^<]+<\\/a>|<br\\/?>|<b>[^<]+<\\/b>|<i>[^<]+<\\/i>/);\n if (m) {\n const result = [];\n let key = 1;\n do {\n const start = text.substring(0, m.index);\n text = text.substring(m.index + m[0].length);\n start && result.push(<span key={`a${key++}`}>{start}</span>);\n\n if (m[0].startsWith('<b>')) {\n result.push(<b key={`a${key++}`}>{m[0].substring(3, m[0].length - 4)}</b>);\n } else if (m[0].startsWith('<i>')) {\n result.push(<i key={`a${key++}`}>{m[0].substring(3, m[0].length - 4)}</i>);\n } else if (m[0].startsWith('<br')) {\n result.push(<br key={`a${key++}`} />);\n } else {\n let href = m[0].match(/href=\"([^\"]+)\"/) || m[0].match(/href='([^']+)'/);\n let target = m[0].match(/target=\"([^\"]+)\"/) || m[0].match(/target='([^']+)'/);\n let rel = m[0].match(/rel=\"([^\"]+)\"/) || m[0].match(/rel='([^']+)'/);\n const title = m[0].match(/>([^<]*)</);\n\n // eslint-disable-next-line\n result.push(<a\n key={`a${key++}`}\n href={href ? href[1] : ''}\n target={target ? target[1] : '_blank'}\n rel={rel ? rel[1] : ''}\n style={{ color: 'inherit' }}\n >\n {title ? title[1] : ''}\n </a>);\n }\n\n m = text && text.match(/<a [^<]+<\\/a>|<br\\/?>|<b>[^<]+<\\/b>|<i>[^<]+<\\/i>/);\n if (!m) {\n text && result.push(<span key={'a' + (key++)}>{text}</span>);\n }\n } while (m);\n\n return result;\n } else {\n return text;\n }\n }\n\n /**\n * Get the smart name of the given state.\n * @param {Record<string, ioBroker.StateObject> | ioBroker.StateObject} states\n * @param {string} id\n * @param {string} instanceId\n * @param {boolean} [noCommon]\n */\n static getSmartName(states, id, instanceId, noCommon) {\n if (!id) {\n if (!noCommon) {\n if (!states.common) {\n return states.smartName;\n } else {\n if (states && !states.common) {\n return states.smartName;\n } else {\n return states.common.smartName;\n }\n }\n } else {\n if (states && !states.common) {\n return states.smartName;\n } else {\n return (states &&\n states.common &&\n states.common.custom &&\n states.common.custom[instanceId]) ?\n states.common.custom[instanceId].smartName : undefined;\n }\n }\n } else\n if (!noCommon) {\n return states[id].common.smartName;\n } else {\n return (states[id] &&\n states[id].common &&\n states[id].common.custom &&\n states[id].common.custom[instanceId]) ?\n states[id].common.custom[instanceId].smartName || null : null;\n }\n }\n\n /**\n * Get the smart name from a state.\n * @param {ioBroker.StateObject} obj\n * @param {string} instanceId\n * @param {boolean} [noCommon]\n */\n static getSmartNameFromObj(obj, instanceId, noCommon) {\n if (!noCommon) {\n if (!obj.common) {\n return obj.smartName;\n } else {\n if (obj && !obj.common) {\n return obj.smartName;\n } else {\n return obj.common.smartName;\n }\n }\n } else {\n if (obj && !obj.common) {\n return obj.smartName;\n } else {\n return (obj &&\n obj.common &&\n obj.common.custom &&\n obj.common.custom[instanceId]) ?\n obj.common.custom[instanceId].smartName : undefined;\n }\n }\n }\n\n /**\n * Enable smart name for a state.\n * @param {ioBroker.StateObject} obj\n * @param {string} instanceId\n * @param {boolean} [noCommon]\n */\n static enableSmartName(obj, instanceId, noCommon) {\n if (noCommon) {\n obj.common.custom = obj.common.custom || {};\n obj.common.custom[instanceId] = obj.common.custom[instanceId] || {};\n obj.common.custom[instanceId].smartName = {};\n } else {\n obj.common.smartName = {};\n }\n }\n\n /**\n * Completely remove smart name from a state.\n * @param {ioBroker.StateObject} obj\n * @param {string | number} instanceId\n * @param {boolean} [noCommon]\n */\n static removeSmartName(obj, instanceId, noCommon) {\n if (noCommon) {\n if (obj.common && obj.common.custom && obj.common.custom[instanceId]) {\n obj.common.custom[instanceId] = null;\n }\n } else {\n obj.common.smartName = null;\n }\n }\n\n /**\n * Update the smartname of a state.\n * @param {ioBroker.StateObject} obj\n * @param {string} newSmartName\n * @param {string | undefined} byON\n * @param {string | undefined} smartType\n * @param {string} instanceId\n * @param {boolean} [noCommon]\n */\n static updateSmartName(obj, newSmartName, byON, smartType, instanceId, noCommon) {\n const language = I18n.getLanguage();\n\n // convert Old format\n if (typeof obj.common.smartName === 'string') {\n const nnn = obj.common.smartName;\n obj.common.smartName = {};\n obj.common.smartName[language] = nnn;\n }\n\n // convert old settings\n if (obj.native && obj.native.byON) {\n delete obj.native.byON;\n let _smartName = obj.common.smartName;\n\n if (!_smartName || typeof _smartName !== 'object') {\n _smartName = {en: _smartName};\n _smartName[language] = _smartName.en;\n }\n obj.common.smartName = _smartName;\n }\n if (smartType !== undefined) {\n if (noCommon) {\n obj.common.custom = obj.common.custom || {};\n obj.common.custom[instanceId] = obj.common.custom[instanceId] || {};\n obj.common.custom[instanceId].smartName = obj.common.custom[instanceId].smartName || {};\n if (!smartType) {\n delete obj.common.custom[instanceId].smartName.smartType;\n } else {\n obj.common.custom[instanceId].smartName.smartType = smartType;\n }\n } else {\n obj.common.smartName = obj.common.smartName || {};\n if (!smartType) {\n delete obj.common.smartName.smartType;\n } else {\n obj.common.smartName.smartType = smartType;\n }\n\n }\n }\n if (byON !== undefined) {\n if (noCommon) {\n obj.common.custom = obj.common.custom || {};\n obj.common.custom[instanceId] = obj.common.custom[instanceId] || {};\n obj.common.custom[instanceId].smartName = obj.common.custom[instanceId].smartName || {};\n obj.common.custom[instanceId].smartName.byON = byON;\n } else {\n obj.common.smartName = obj.common.smartName || {};\n obj.common.smartName.byON = byON;\n }\n }\n if (newSmartName !== undefined) {\n let smartName;\n if (noCommon) {\n obj.common.custom = obj.common.custom || {};\n obj.common.custom[instanceId] = obj.common.custom[instanceId] || {};\n obj.common.custom[instanceId].smartName = obj.common.custom[instanceId].smartName || {};\n smartName = obj.common.custom[instanceId].smartName;\n } else {\n obj.common.smartName = obj.common.smartName || {};\n smartName = obj.common.smartName;\n }\n smartName[language] = newSmartName;\n\n // If smart name deleted\n if (smartName && (!smartName[language] ||\n (smartName[language] === obj.common.name &&\n (!obj.common.role || obj.common.role.indexOf('button') >= 0)))) {\n delete smartName[language];\n let empty = true;\n // Check if structure has any definitions\n for (const key in smartName) {\n if (smartName.hasOwnProperty(key)) {\n empty = false;\n break;\n }\n }\n // If empty => delete smartName completely\n if (empty) {\n if (noCommon) {\n if (obj.common.custom[instanceId].smartName.byON === undefined) {\n delete obj.common.custom[instanceId];\n } else {\n delete obj.common.custom[instanceId].en;\n delete obj.common.custom[instanceId].de;\n delete obj.common.custom[instanceId].ru;\n delete obj.common.custom[instanceId].nl;\n delete obj.common.custom[instanceId].pl;\n delete obj.common.custom[instanceId].it;\n delete obj.common.custom[instanceId].fr;\n delete obj.common.custom[instanceId].pt;\n delete obj.common.custom[instanceId].es;\n delete obj.common.custom[instanceId]['zh-cn'];\n }\n } else {\n if (obj.common.smartName.byON !== undefined) {\n delete obj.common.smartName.en;\n delete obj.common.smartName.de;\n delete obj.common.smartName.ru;\n delete obj.common.smartName.nl;\n delete obj.common.smartName.pl;\n delete obj.common.smartName.it;\n delete obj.common.smartName.fr;\n delete obj.common.smartName.pt;\n delete obj.common.smartName.es;\n delete obj.common.smartName['zh-cn'];\n } else {\n obj.common.smartName = null;\n }\n }\n }\n }\n }\n }\n\n /**\n * Disable the smart name of a state.\n * @param {ioBroker.StateObject} obj\n * @param {string} instanceId\n * @param {boolean} [noCommon]\n */\n static disableSmartName(obj, instanceId, noCommon) {\n if (noCommon) {\n obj.common.custom = obj.common.custom || {};\n obj.common.custom[instanceId] = obj.common.custom[instanceId] || {};\n obj.common.custom[instanceId].smartName = false;\n } else {\n obj.common.smartName = false;\n }\n }\n\n /**\n * Copy text to the clipboard.\n * @param {string} text\n * @param {Event} [e]\n */\n static copyToClipboard(text, e) {\n e && e.stopPropagation();\n e && e.preventDefault()\n return copy(text);\n }\n\n /**\n * Gets the extension of a file name.\n * @param {string | null} [fileName] the file name.\n * @returns {string | null} The extension in lower case.\n */\n static getFileExtension(fileName) {\n const pos = (fileName || '').lastIndexOf('.');\n if (pos !== -1) {\n return fileName.substring(pos + 1).toLowerCase();\n } else {\n return null;\n }\n }\n\n /**\n * Format number of bytes as a string with B, KB, MB or GB.\n * The base for all calculations is 1024.\n * @param {number} bytes The number of bytes.\n * @returns {string} The formatted string (e.g. '723.5 KB')\n */\n static formatBytes(bytes) {\n if (Math.abs(bytes) < 1024) {\n return bytes + ' B';\n }\n\n const units = ['KB','MB','GB'];\n //const units = ['KiB','MiB','GiB','TiB','PiB','EiB','ZiB','YiB'];\n let u = -1;\n\n do {\n bytes /= 1024;\n ++u;\n } while (Math.abs(bytes) >= 1024 && u < units.length - 1);\n\n return bytes.toFixed(1) + ' ' + units[u];\n }\n\n /**\n * Invert the given color according to theme type to get the inverted text color for background\n * @param {string} color Color in the format '#rrggbb' or '#rgb' (or without hash)\n * @param {string} themeType theme type\n * @param {string} invert dark theme has light color in control or light theme has light color in control\n * @returns {string}\n */\n static getInvertedColor(color, themeType, invert) {\n if (!color) {\n return undefined;\n } else {\n const invertedColor = Utils.invertColor(color, true);\n if (invertedColor === '#FFFFFF' && (themeType === 'dark' || (invert && themeType === 'light'))) {\n return '#DDD';\n } else\n if (invertedColor === '#000000' && (themeType === 'light' || (invert && themeType === 'dark'))) {\n return '#222';\n } else {\n return undefined;\n }\n }\n }\n\n // Big thanks to: https://stackoverflow.com/questions/35969656/how-can-i-generate-the-opposite-color-according-to-current-color\n /**\n * Invert the given color\n * @param {string} hex Color in the format '#rrggbb' or '#rgb' (or without hash)\n * @param {boolean} bw Set to black or white.\n * @returns {string}\n */\n static invertColor(hex, bw) {\n if (hex === undefined || hex === null || hex === '' || typeof hex !== 'string') {\n return '';\n }\n if (hex.startsWith('rgba')) {\n const m = hex.match(/rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+),\\s*([.\\d]+)\\)/);\n if (m) {\n hex = parseInt(m[1], 10).toString(16).padStart(2, '0') +\n parseInt(m[2], 10).toString(16).padStart(2, '0') +\n parseInt(m[2], 10).toString(16).padStart(2, '0');\n }\n } else if (hex.startsWith('rgb')) {\n const m = hex.match(/rgb?\\((\\d+),\\s*(\\d+),\\s*(\\d+)\\)/);\n if (m) {\n hex = parseInt(m[1], 10).toString(16).padStart(2, '0') +\n parseInt(m[2], 10).toString(16).padStart(2, '0') +\n parseInt(m[2], 10).toString(16).padStart(2, '0');\n }\n } else\n if (hex.startsWith('#')) {\n hex = hex.slice(1);\n }\n // convert 3-digit hex to 6-digits.\n if (hex.length === 3) {\n hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];\n }\n let alfa = null;\n if (hex.length === 8) {\n alfa = hex.substring(6, 8);\n hex = hex.substring(0, 6);\n } else\n if (hex.length !== 6) {\n console.warn('Cannot invert color: ' + hex);\n return hex;\n }\n let r = parseInt(hex.slice(0, 2), 16);\n let g = parseInt(hex.slice(2, 4), 16);\n let b = parseInt(hex.slice(4, 6), 16);\n\n if (bw) {\n // http://stackoverflow.com/a/3943023/112731\n return (r * 0.299 + g * 0.587 + b * 0.114) > 186\n ? `#000000${alfa ? alfa : ''}`\n : `#FFFFFF${alfa ? alfa : ''}`;\n }\n // invert color components\n r = (255 - r).toString(16);\n g = (255 - g).toString(16);\n b = (255 - b).toString(16);\n // pad each with zeros and return\n return `#${r.padStart(2, '0')}${g.padStart(2, '0')}${b.padStart(2, '0')}${alfa ? alfa : ''}`;\n }\n\n /**\n * Convert RGB to array [r, g, b]\n * @param {string} hex Color in the format '#rrggbb' or '#rgb' (or without hash) or rgb(r,g,b) or rgba(r,g,b,a)\n * @returns {Array<number>} Array with 3 elements [r, g, b]\n */\n static color2rgb(hex) {\n if (hex === undefined || hex === null || hex === '' || typeof hex !== 'string') {\n return '';\n }\n if (hex.startsWith('rgba')) {\n const m = hex.match(/rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+),\\s*([.\\d]+)\\)/);\n if (m) {\n hex = parseInt(m[1], 10).toString(16).padStart(2, '0') +\n parseInt(m[2], 10).toString(16).padStart(2, '0') +\n parseInt(m[2], 10).toString(16).padStart(2, '0');\n }\n } else if (hex.startsWith('rgba')) {\n const m = hex.match(/rgb?\\((\\d+),\\s*(\\d+),\\s*(\\d+)\\)/);\n if (m) {\n hex = parseInt(m[1], 10).toString(16).padStart(2, '0') +\n parseInt(m[2], 10).toString(16).padStart(2, '0') +\n parseInt(m[2], 10).toString(16).padStart(2, '0');\n }\n } else\n if (hex.startsWith('#')) {\n hex = hex.slice(1);\n }\n // convert 3-digit hex to 6-digits.\n if (hex.length === 3) {\n hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];\n }\n if (hex.length !== 6 && hex.length !== 8) {\n console.warn(`Cannot invert color: ${hex}`);\n return false;\n }\n\n return [\n parseInt(hex.slice(0, 2), 16),\n parseInt(hex.slice(2, 4), 16),\n parseInt(hex.slice(4, 6), 16),\n ];\n }\n\n // Big thanks to: https://github.com/antimatter15/rgb-lab\n /**\n * Convert RGB to LAB\n * @param {Array<number>} rgb color in format [r,g,b]\n * @returns {Array<number>} lab color in format [l,a,b]\n */\n static rgb2lab(rgb){\n let r = rgb[0] / 255;\n let g = rgb[1] / 255;\n let b = rgb[2] / 255;\n\n r = (r > 0.04045) ? Math.pow((r + 0.055) / 1.055, 2.4) : r / 12.92;\n g = (g > 0.04045) ? Math.pow((g + 0.055) / 1.055, 2.4) : g / 12.92;\n b = (b > 0.04045) ? Math.pow((b + 0.055) / 1.055, 2.4) : b / 12.92;\n\n let x = (r * 0.4124 + g * 0.3576 + b * 0.1805) / 0.95047;\n let y = (r * 0.2126 + g * 0.7152 + b * 0.0722); /* / 1.00000; */\n let z = (r * 0.0193 + g * 0.1192 + b * 0.9505) / 1.08883;\n\n x = (x > 0.008856) ? Math.pow(x, 0.33333333) : (7.787 * x) + 0.137931; // 16 / 116;\n y = (y > 0.008856) ? Math.pow(y, 0.33333333) : (7.787 * y) + 0.137931; // 16 / 116;\n z = (z > 0.008856) ? Math.pow(z, 0.33333333) : (7.787 * z) + 0.137931; // 16 / 116;\n\n return [(116 * y) - 16, 500 * (x - y), 200 * (y - z)];\n }\n\n /**\n * Calculate the distance between two colors in LAB color space in the range 0-100^2\n * If distance is less than 1000, the colors are similar\n * @param {string} color1 Color in the format '#rrggbb' or '#rgb' (or without hash) or rgb(r,g,b) or rgba(r,g,b,a)\n * @param {string} color2 Color in the format '#rrggbb' or '#rgb' (or without hash) or rgb(r,g,b) or rgba(r,g,b,a)\n * @returns {number} distance in the range 0-100^2\n */\n static colorDistance(color1, color2) {\n const lab1 = Utils.rgb2lab(Utils.color2rgb(color1));\n const lab2 = Utils.rgb2lab(Utils.color2rgb(color2));\n const dltL = lab1[0] - lab2[0];\n const dltA = lab1[1] - lab2[1];\n const dltB = lab1[2] - lab2[2];\n const c1 = Math.sqrt(lab1[1] * lab1[1] + lab1[2] * lab1[2]);\n const c2 = Math.sqrt(lab2[1] * lab2[1] + lab2[2] * lab2[2]);\n const dltC = c1 - c2;\n let dltH = dltA * dltA + dltB * dltB - dltC * dltC;\n dltH = dltH < 0 ? 0 : Math.sqrt(dltH);\n const sc = 1.0 + 0.045 * c1;\n const sh = 1.0 + 0.015 * c1;\n const dltLKlsl = dltL;\n const dltCkcsc = dltC / sc;\n const dltHkhsh = dltH / sh;\n const i = dltLKlsl * dltLKlsl + dltCkcsc * dltCkcsc + dltHkhsh * dltHkhsh;\n return i < 0 ? 0 : i;\n }\n\n // https://github.com/lukeed/clsx/blob/master/src/index.js\n // License\n // MIT © Luke Edwards\n /**\n * @private\n * @param {any} mix\n * @returns {string}\n */\n static _toVal(mix) {\n let y;\n let str = '';\n\n if (typeof mix === 'string' || typeof mix === 'number') {\n str += mix;\n } else if (typeof mix === 'object') {\n if (Array.isArray(mix)) {\n for (let k = 0; k < mix.length; k++) {\n if (mix[k]) {\n y = Utils._toVal(mix[k]);\n if (y) {\n str && (str += ' ');\n str += y;\n }\n }\n }\n } else {\n for (const k in mix) {\n if (mix[k]) {\n str && (str += ' ');\n str += k;\n }\n }\n }\n }\n\n return str;\n }\n\n // https://github.com/lukeed/clsx/blob/master/src/index.js\n // License\n // MIT © Luke Edwards\n /**\n * Convert any object to a string with its values.\n * @returns {string}\n */\n static clsx () {\n let i = 0;\n let tmp;\n let x;\n let str = '';\n while (i < arguments.length) {\n if ((tmp = arguments[i++])) {\n if ((x = Utils._toVal(tmp))) {\n str && (str += ' ');\n str += x\n }\n }\n }\n return str;\n }\n\n /**\n * Get the current theme name (either from local storage or the browser settings).\n * @param {string} [themeName]\n * @returns {string}\n */\n static getThemeName(themeName = '') {\n if (window.vendorPrefix && window.vendorPrefix !== '@@vendorPrefix@@') {\n return window.vendorPrefix;\n }\n\n return themeName ? themeName : (window._localStorage || window.localStorage).getItem('App.themeName') ?\n (window._localStorage || window.localStorage).getItem('App.themeName') : window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'colored';\n }\n\n /**\n * Get the type of theme.\n * @param {string} [themeName]\n * @returns {'dark' | 'light'}\n */\n static getThemeType(themeName = '') {\n if (window.vendorPrefix && window.vendorPrefix !== '@@vendorPrefix@@') {\n return 'light';\n }\n\n themeName = themeName || (window._localStorage || window.localStorage).getItem('App.themeName');\n return themeName === 'dark' || themeName === 'blue' ? 'dark' : 'light';\n }\n\n /**\n * Set the theme name and theme type.\n * @param {string} themeName\n */\n static setThemeName(themeName) {\n if (window.vendorPrefix && window.vendorPrefix !== '@@vendorPrefix@@') {\n return; // ignore\n }\n (window._localStorage || window.localStorage).setItem('App.themeName', themeName);\n (window._localStorage || window.localStorage).setItem('App.theme', themeName === 'dark' || themeName === 'blue' ? 'dark' : 'light');\n }\n\n /**\n * Toggle the theme name between 'dark' and 'colored'.\n * @param {string | null} themeName\n * @returns {string} the new theme name.\n */\n static toggleTheme(themeName) {\n if (window.vendorPrefix && window.vendorPrefix !== '@@vendorPrefix@@') {\n return window.vendorPrefix;\n }\n themeName = themeName || (window._localStorage || window.localStorage).getItem('App.themeName');\n\n // dark => blue => colored => light => dark\n const themes = Utils.getThemeNames();\n const pos = themes.indexOf(themeName);\n let newTheme;\n if (pos !== -1) {\n newTheme = themes[(pos + 1) % themes.length];\n } else {\n newTheme = themes[0];\n }\n Utils.setThemeName(newTheme);\n\n return newTheme;\n }\n\n /**\n * Get the list of themes\n * @returns {array<string>} list of possible themes\n */\n static getThemeNames() {\n if (window.vendorPrefix && window.vendorPrefix !== '@@vendorPrefix@@') {\n return [window.vendorPrefix];\n }\n\n return ['light', 'dark', 'blue', 'colored'];\n }\n\n /**\n * Parse a query string into its parts.\n * @param {string} query\n * @returns {Record<string, string | boolean | number>}\n */\n static parseQuery(query) {\n query = (query || '').toString().replace(/^\\?/, '');\n /** @type {Record<string, string | boolean | number>} */\n const result = {};\n query.split('&').forEach(part => {\n part = part.trim();\n if (part) {\n const parts = part.split('=');\n const attr = decodeURIComponent(parts[0]).trim();\n if (parts.length > 1) {\n result[attr] = decodeURIComponent(parts[1]);\n if (result[attr] === 'true') {\n result[attr] = true;\n } else if (result[attr] === 'false') {\n result[attr] = false;\n } else {\n const f = parseFloat(result[attr]);\n if (f.toString() === result[attr]) {\n result[attr] = f;\n }\n }\n } else {\n result[attr] = true;\n }\n }\n });\n return result;\n }\n\n /**\n * Returns parent ID.\n * @param {string} id\n * @returns {string | null} parent ID or null if no parent\n */\n static getParentId(id) {\n const p = (id || '').toString().split('.');\n if (p.length > 1) {\n p.pop();\n return p.join('.');\n } else {\n return null;\n }\n }\n\n static formatDate(dateObj, dateFormat) {\n // format could be DD.MM.YYYY, YYYY.MM.DD or MM/DD/YYYY\n\n if (!dateObj) {\n return '';\n }\n\n let text;\n let mm = dateObj.getMonth() + 1;\n if (mm < 10) {\n mm = '0' + mm;\n }\n\n let dd = dateObj.getDate();\n if (dd < 10) {\n dd = '0' + dd;\n }\n\n if (dateFormat === 'MM/DD/YYYY') {\n text = mm + '/' + dd + '/' + dateObj.getFullYear();\n } else {\n text = dateObj.getFullYear() + '-' + mm + '-' + dd;\n }\n\n // time\n let v = dateObj.getHours();\n if (v < 10) {\n text += ' 0' + v;\n } else {\n text += ' ' + v;\n }\n v = dateObj.getMinutes();\n if (v < 10) {\n text += ':0' + v;\n } else {\n text += ':' + v;\n }\n\n v = dateObj.getSeconds();\n if (v < 10) {\n text += ':0' + v;\n } else {\n text += ':' + v;\n }\n\n v = dateObj.getMilliseconds();\n if (v < 10) {\n text += '.00' + v;\n } else if (v < 100) {\n text += '.0' + v;\n } else {\n text += '.' + v;\n }\n\n return text;\n }\n\n static formatTime(seconds) {\n if (seconds) {\n seconds = Math.round(seconds);\n const d = Math.floor(seconds / (3600 * 24));\n const h = Math.floor((seconds % (3600 * 24)) / 3600);\n const m = Math.floor((seconds % 3600) / 60);\n const s = seconds % 60;\n if (d) {\n return `${d}.${h.toString().padStart(2, '0')}:${m.toString().padStart(2, '0')}:${s.toString().padStart(2, '0')}`;\n } else if (h) {\n return `${h}:${m.toString().padStart(2, '0')}:${s.toString().padStart(2, '0')}`;\n } else {\n return `0:${m.toString().padStart(2, '0')}:${s.toString().padStart(2, '0')}`;\n }\n } else {\n return '0:00:00';\n }\n }\n\n static MDtext2link(text) {\n const m = text.match(/\\d+\\.\\)\\s/);\n if (m) {\n text = text.replace(m[0], m[0].replace(/\\s/, '&nbsp;'));\n }\n\n return text.replace(/[^a-zA-Zа-яА-Я0-9]/g, '').trim().replace(/\\s/g, '').toLowerCase();\n }\n\n static openLink(url, target) {\n // replace IPv6 Address with [ipv6]:port\n url = url.replace(/\\/\\/([0-9a-f]*:[0-9a-f]*:[0-9a-f]*:[0-9a-f]*:[0-9a-f]*:[0-9a-f]*)(:\\d+)?\\//i, '//[$1]$2/');\n\n if (target === 'this') {\n window.location = url;\n } else {\n window.open(url, target || '_blank');\n }\n }\n\n static MDgetTitle(text) {\n let {body, header} = Utils.extractHeader(text);\n if (!header.title) {\n // remove {docsify-bla}\n body = body.replace(/{[^}]*}/g, '');\n body = body.trim();\n const lines = body.replace(/\\r/g, '').split('\\n');\n for (let i = 0; i < lines.length; i++) {\n if (lines[i].startsWith('# ')) {\n return lines[i].substring(2).trim();\n }\n }\n return '';\n } else {\n return header.title;\n }\n }\n\n static MDextractHeader(text) {\n const attrs = {};\n if (text.substring(0, 3) === '---') {\n const pos = text.substring(3).indexOf('\\n---');\n if (pos !== -1) {\n const _header = text.substring(3, pos + 3);\n const lines = _header.replace(/\\r/g, '').split('\\n');\n lines.forEach(line => {\n if (!line.trim()) {\n return;\n }\n const pos = line.indexOf(':');\n if (pos !== -1) {\n const attr = line.substring(0, pos).trim();\n attrs[attr] = line.substring(pos + 1).trim();\n attrs[attr] = attrs[attr].replace(/^['\"]|['\"]$/g, '');\n if (attrs[attr] === 'true') {\n attrs[attr] = true;\n } else if (attrs[attr] === 'false') {\n attrs[attr] = false;\n } else if (parseFloat(attrs[attr]).toString() === attrs[attr]) {\n attrs[attr] = parseFloat(attrs[attr]);\n }\n } else {\n attrs[line.trim()] = true;\n }\n });\n text = text.substring(pos + 7);\n }\n }\n return {header: attrs, body: text};\n }\n\n static MDremoveDocsify(text) {\n const m = text.match(/{docsify-[^}]*}/g);\n if (m) {\n m.forEach(doc => text = text.replace(doc, ''));\n }\n return text;\n }\n\n /**\n * Generate the json file on the file for download.\n * @param {string} filename file name\n * @returns {object} json structure (not stringified)\n */\n static generateFile(filename, json) {\n let el = document.createElement('a');\n el.setAttribute('href', 'data:application/json;charset=utf-8,' + encodeURIComponent(JSON.stringify(json, null, 2)));\n el.setAttribute('download', filename);\n\n el.style.display = 'none';\n document.body.appendChild(el);\n\n el.click();\n\n document.body.removeChild(el);\n }\n\n /**\n * Convert quality code into text\n * @param {number} quality code\n * @returns {array<string>} lines that decode qulity\n */\n static quality2text(quality) {\n const custom = quality & 0xFFFF0000;\n const text = QUALITY_BITS[quality];\n let result;\n if (text) {\n result = [text];\n } else if (quality & 0x01) {\n result = [QUALITY_BITS[0x01], '0x' + (quality & (0xFFFF & ~1)).toString(16)];\n } else if (quality & 0x02) {\n result = [QUALITY_BITS[0x02], '0x' + (quality & (0xFFFF & ~2)).toString(16)];\n } else {\n result = ['0x' + quality.toString(16)];\n }\n if (custom) {\n result.push('0x' + (custom >> 16).toString(16).toUpperCase());\n }\n return result;\n }\n\n /**\n * Deep copy object\n * @param {object} object\n * @returns {object}\n */\n static clone(object) {\n return JSON.parse(JSON.stringify(object));\n }\n\n /**\n * Get states of object\n * @param {object} obj\n * @returns {object} states as an object in form {\"value1\": \"label1\", \"value2\": \"label2\"} or null\n */\n static getStates(obj) {\n let states = obj?.common?.states;\n if (states) {\n if (typeof states === 'string' && states[0] === '{') {\n try {\n states = JSON.parse(states);\n } catch (ex) {\n console.error(`Cannot parse states: ${states}`);\n states = null;\n }\n } else\n // if old format val1:text1;val2:text2\n if (typeof states === 'string') {\n const parts = states.split(';');\n states = {};\n for (let p = 0; p < parts.length; p++) {\n const s = parts[p].split(':');\n states[s[0]] = s[1];\n }\n } else if (Array.isArray(states)) {\n const result = {};\n if (obj.common.type === 'number') {\n states.forEach((value, key) => result[key] = value);\n } else\n if (obj.common.type === 'string') {\n states.forEach(value => result[value] = value);\n } else if (obj.common.type === 'boolean') {\n result['false'] = states[0];\n result['true'] = states[1];\n }\n\n return result;\n }\n }\n\n return states;\n }\n\n /**\n * Get svg file as text\n * @param {string} url URL of SVG file\n * @returns {object} Promise with \"data:image...\"\n */\n static getSvg(url) {\n return fetch(url)\n .then(response => response.blob())\n .then(blob => {\n return new Promise(resolve => {\n const reader = new FileReader();\n reader.onload = function() { // do not optimize this function. \"this\" is important.\n resolve(this.result);\n };\n reader.readAsDataURL(blob);\n });\n });\n }\n\n /**\n * Detect file xtension by its content\n * @param {string} base64 Base64 encoded binary file\n * @returns {string} Detected extension, like 'jpg'\n */\n static detectMimeType(base64) {\n const signature = Object.keys(SIGNATURES).find(s => base64.startsWith(s));\n return signature ? SIGNATURES[signature] : null;\n }\n}\n\nexport default Utils;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Utils.js","names":["NAMESPACE","days","months","QUALITY_BITS","SIGNATURES","JVBERi0","R0lGODdh","R0lGODlh","iVBORw0KGgo","PHN2Zw","Qk1","AAABAA","Utils","name","split","filter","item","map","word","toUpperCase","substring","toLowerCase","join","seconds","Math","floor","hours","minutes","text","I18n","t","objects","id","settings","options","isDesc","attr","language","common","window","sysLang","en","desc","de","ru","toString","replace","pos","lastIndexOf","CapitalWords","trim","obj","noTrim","_id","forEnumId","hasOwnProperty","custom","user","subOrder","JSON","parse","stringify","order","subURLs","URLs","list","source","dest","result","Array","from","splice","removed","defaultEnabling","enabled","undefined","useCustom","useCommon","color","icon","s","style","length","startsWith","prefix","parts","location","pathname","match","words","i","z","ww","start","push","k","w","defaultValue","indexOf","slice","r","g","b","rgb","parseInt","parseFloat","isNaN","secs","angle","num","format","dateFormat","now","m","a","year","find","y","day","Date","abs","getTime","date","getDay","getDate","getMonth","key","index","href","target","rel","title","states","instanceId","noCommon","smartName","newSmartName","byON","smartType","getLanguage","nnn","_smartName","role","empty","nl","pl","it","fr","pt","es","e","stopPropagation","preventDefault","copy","fileName","bytes","units","u","toFixed","themeType","invert","invertedColor","invertColor","hex","bw","padStart","alfa","console","warn","pow","x","color1","color2","lab1","rgb2lab","color2rgb","lab2","dltL","dltA","dltB","c1","sqrt","c2","dltC","dltH","sc","sh","dltLKlsl","dltCkcsc","dltHkhsh","mix","str","isArray","_toVal","tmp","arguments","themeName","vendorPrefix","_localStorage","localStorage","getItem","matchMedia","matches","setItem","themes","getThemeNames","newTheme","setThemeName","query","forEach","part","decodeURIComponent","f","p","pop","dateObj","mm","dd","getFullYear","v","getHours","getMinutes","getSeconds","getMilliseconds","round","d","h","url","open","extractHeader","body","header","lines","attrs","_header","line","doc","filename","json","el","document","createElement","setAttribute","encodeURIComponent","display","appendChild","click","removeChild","quality","object","ex","error","type","value","fetch","then","response","blob","Promise","resolve","reader","FileReader","onload","readAsDataURL","base64","signature","Object","keys"],"sources":["Utils.js"],"sourcesContent":["/**\n * Copyright 2018-2022 bluefox <dogafox@gmail.com>\n *\n * MIT License\n *\n **/\nimport React from 'react';\nimport copy from './copy-to-clipboard';\nimport I18n from '../i18n';\n\nconst NAMESPACE = 'material';\nconst days = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];\nconst months = ['Jan', 'Feb', 'Mar', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\nconst QUALITY_BITS = {\n 0x00: '0x00 - good',\n\n 0x01: '0x01 - general problem',\n 0x02: '0x02 - no connection problem',\n\n 0x10: '0x10 - substitute value from controller',\n 0x20: '0x20 - substitute initial value',\n 0x40: '0x40 - substitute value from device or instance',\n 0x80: '0x80 - substitute value from sensor',\n\n 0x11: '0x11 - general problem by instance',\n 0x41: '0x41 - general problem by device',\n 0x81: '0x81 - general problem by sensor',\n\n 0x12: '0x12 - instance not connected',\n 0x42: '0x42 - device not connected',\n 0x82: '0x82 - sensor not connected',\n\n 0x44: '0x44 - device reports error',\n 0x84: '0x84 - sensor reports error',\n};\nconst SIGNATURES = {\n JVBERi0: 'pdf',\n R0lGODdh: 'gif',\n R0lGODlh: 'gif',\n iVBORw0KGgo: 'png',\n '/9j/': 'jpg',\n PHN2Zw: 'svg',\n Qk1: 'bmp',\n AAABAA: 'ico' // 00 00 01 00 according to https://en.wikipedia.org/wiki/List_of_file_signatures\n};\n\nclass Utils {\n static namespace = NAMESPACE;\n static INSTANCES = 'instances';\n static dateFormat = ['DD', 'MM'];\n static FORBIDDEN_CHARS = /[^._\\-/ :!#$%&()+=@^{}|~\\p{Ll}\\p{Lu}\\p{Nd}]+/gu;\n\n /**\n * Capitalize words.\n * @param {string | undefined} name\n * @returns {string}\n */\n static CapitalWords(name) {\n return (name || '').split(/[\\s_]/)\n .filter(item => item)\n .map(word => word ? word[0].toUpperCase() + word.substring(1).toLowerCase() : '')\n .join(' ');\n }\n\n static formatSeconds(seconds) {\n const days = Math.floor(seconds / (3600 * 24));\n seconds %= 3600 * 24;\n let hours = Math.floor(seconds / 3600);\n if (hours < 10) {\n hours = '0' + hours;\n }\n seconds %= 3600;\n let minutes = Math.floor(seconds / 60);\n if (minutes < 10) {\n minutes = '0' + minutes;\n }\n seconds %= 60;\n seconds = Math.floor(seconds);\n if (seconds < 10) {\n seconds = '0' + seconds;\n }\n let text = '';\n if (days) {\n text += `${days} ${I18n.t('ra_daysShortText')} `;\n }\n text += `${hours}:${minutes}:${seconds}`;\n\n return text;\n }\n\n /**\n * Get the name of the object by id from the name or description.\n * @param {Record<string, ioBroker.Object>} objects\n * @param {string} id\n * @param {{ name: any; } | ioBroker.Languages | null} settings\n * @param {{ language?: ioBroker.Languages; }} options\n * @param {boolean} [isDesc] Set to true to get the description.\n * @returns {string}\n */\n static getObjectName(objects, id, settings, options, isDesc) {\n let item = objects[id];\n let text = id;\n const attr = isDesc ? 'desc' : 'name';\n\n if (typeof settings === 'string' && !options) {\n options = {language: settings};\n settings = null;\n }\n\n options = options || {};\n if (!options.language) {\n options.language = (objects['system.config'] && objects['system.config'].common && objects['system.config'].common.language) || window.sysLang || 'en';\n }\n if (settings && settings.name) {\n text = settings.name;\n if (typeof text === 'object') {\n text = text[options.language] || text.en;\n }\n } else\n if (item && item.common && item.common[attr]) {\n text = item.common[attr];\n if (attr !== 'desc' && !text && item.common.desc) {\n text = item.common.desc;\n }\n if (typeof text === 'object') {\n text = text[options.language] || text.en || text.de || text.ru || '';\n }\n text = (text || '').toString().replace(/[_.]/g, ' ');\n\n if (text === text.toUpperCase()) {\n text = text[0] + text.substring(1).toLowerCase();\n }\n } else {\n let pos = id.lastIndexOf('.');\n text = id.substring(pos + 1).replace(/[_.]/g, ' ');\n text = Utils.CapitalWords(text);\n }\n\n return text.trim();\n }\n\n /**\n * Get the name of the object from the name or description.\n * @param {ioBroker.PartialObject} obj\n * @param {{ name: any; } | ioBroker.Languages | null } settings or language\n * @param {{ language?: ioBroker.Languages; } } options\n * @param {boolean} [isDesc] Set to true to get the description.\n * @param {boolean} [noTrim] Allow to use spaces in name (by edit)\n * @returns {string}\n */\n static getObjectNameFromObj(obj, settings, options, isDesc, noTrim) {\n let item = obj;\n let text = (obj && obj._id) || '';\n const attr = isDesc ? 'desc' : 'name';\n\n if (typeof settings === 'string' && !options) {\n options = {language: settings};\n settings = null;\n }\n\n options = options || {};\n\n if (settings && settings.name) {\n text = settings.name;\n if (typeof text === 'object') {\n text = text[options.language] || text.en;\n }\n } else\n if (item && item.common && item.common[attr]) {\n text = item.common[attr];\n if (attr !== 'desc' && !text && item.common.desc) {\n text = item.common.desc;\n }\n if (typeof text === 'object') {\n text = text[options.language] || text.en;\n }\n text = (text || '').toString().replace(/[_.]/g, ' ');\n\n if (text === text.toUpperCase()) {\n text = text[0] + text.substring(1).toLowerCase();\n }\n }\n return noTrim ? text : text.trim();\n }\n\n /**\n * @param {ioBroker.PartialObject | ioBroker.ObjectCommon} obj\n * @param {string} forEnumId\n * @param {{ user: string; }} options\n * @returns {string | null}\n */\n static getSettingsOrder(obj, forEnumId, options) {\n if (obj && obj.hasOwnProperty('common')) {\n obj = obj.common;\n }\n let settings;\n if (obj && obj.custom) {\n settings = (obj.custom || {})[NAMESPACE];\n const user = options.user || 'admin';\n if (settings && settings[user]) {\n if (forEnumId) {\n if (settings[user].subOrder && settings[user].subOrder[forEnumId]) {\n return JSON.parse(JSON.stringify(settings[user].subOrder[forEnumId]));\n }\n } else {\n if (settings[user].order) {\n return JSON.parse(JSON.stringify(settings[user].order));\n }\n }\n }\n }\n return null;\n }\n\n /**\n * @param {ioBroker.PartialObject | ioBroker.ObjectCommon} obj\n * @param {string} forEnumId\n * @param {{ user: string; }} options\n */\n static getSettingsCustomURLs(obj, forEnumId, options) {\n if (obj && obj.hasOwnProperty('common')) {\n obj = obj.common;\n }\n let settings;\n if (obj && obj.custom) {\n settings = (obj.custom || {})[NAMESPACE];\n const user = options.user || 'admin';\n if (settings && settings[user]) {\n if (forEnumId) {\n if (settings[user].subURLs && settings[user].subURLs[forEnumId]) {\n return JSON.parse(JSON.stringify(settings[user].subURLs[forEnumId]));\n }\n } else {\n if (settings[user].URLs) {\n return JSON.parse(JSON.stringify(settings[user].URLs));\n }\n }\n }\n }\n return null;\n }\n\n /**\n * Reorder the array items in list between source and dest.\n * @param {Iterable<any> | ArrayLike<any>} list\n * @param {number} source\n * @param {number} dest\n */\n static reorder(list, source, dest) {\n const result = Array.from(list);\n const [removed] = result.splice(source, 1);\n result.splice(dest, 0, removed);\n return result;\n };\n\n /**\n * @param {any} obj\n * @param {{ id: any; user: any; name: any; icon: any; color: any; language: ioBroker.Languages; }} options\n * @param {boolean} [defaultEnabling]\n */\n static getSettings(obj, options, defaultEnabling) {\n let settings;\n const id = (obj && obj._id) || (options && options.id);\n if (obj && obj.hasOwnProperty('common')) {\n obj = obj.common;\n }\n if (obj && obj.custom) {\n settings = obj.custom || {};\n settings = settings[NAMESPACE] && settings[NAMESPACE][options.user || 'admin'] ? JSON.parse(JSON.stringify(settings[NAMESPACE][options.user || 'admin'])) : {enabled: true};\n } else {\n settings = {enabled: defaultEnabling === undefined ? true : defaultEnabling, useCustom: false};\n }\n\n if (!settings.hasOwnProperty('enabled')) {\n settings.enabled = defaultEnabling === undefined ? true : defaultEnabling;\n }\n\n if (false && settings.useCommon) {\n if (obj.color) settings.color = obj.color;\n if (obj.icon) settings.icon = obj.icon;\n if (obj.name) settings.name = obj.name;\n } else {\n if (options) {\n if (!settings.name && options.name) settings.name = options.name;\n if (!settings.icon && options.icon) settings.icon = options.icon;\n if (!settings.color && options.color) settings.color = options.color;\n }\n\n if (obj) {\n if (!settings.color && obj.color) settings.color = obj.color;\n if (!settings.icon && obj.icon) settings.icon = obj.icon;\n if (!settings.name && obj.name) settings.name = obj.name;\n }\n }\n\n if (typeof settings.name === 'object') {\n settings.name = settings.name[options.language] || settings.name.en;\n\n settings.name = (settings.name || '').toString().replace(/_/g, ' ');\n\n if (settings.name === settings.name.toUpperCase()) {\n settings.name = settings.name[0] + settings.name.substring(1).toLowerCase();\n }\n }\n if (!settings.name && id) {\n let pos = id.lastIndexOf('.');\n settings.name = id.substring(pos + 1).replace(/[_.]/g, ' ');\n settings.name = (settings.name || '').toString().replace(/_/g, ' ');\n settings.name = Utils.CapitalWords(settings.name);\n }\n\n return settings;\n }\n\n /**\n * @param {any} obj\n * @param {any} settings\n * @param {{ user: any; language: ioBroker.Languages; }} options\n */\n static setSettings(obj, settings, options) {\n if (obj) {\n obj.common = obj.common || {};\n obj.common.custom = obj.common.custom || {};\n obj.common.custom[NAMESPACE] = obj.common.custom[NAMESPACE] || {};\n obj.common.custom[NAMESPACE][options.user || 'admin'] = settings;\n const s = obj.common.custom[NAMESPACE][options.user || 'admin'];\n if (s.useCommon) {\n if (s.color !== undefined) {\n obj.common.color = s.color;\n delete s.color;\n }\n if (s.icon !== undefined) {\n obj.common.icon = s.icon;\n delete s.icon;\n }\n if (s.name !== undefined) {\n if (typeof obj.common.name !== 'object') {\n obj.common.name = {};\n obj.common.name[options.language] = s.name;\n } else{\n obj.common.name[options.language] = s.name;\n }\n delete s.name;\n }\n }\n\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * Get the icon for the given settings.\n * @param {{ icon: string | undefined; name: string | undefined; prefix: string | undefined}} settings\n * @param {any} style\n * @returns {JSX.Element | null}\n */\n static getIcon(settings, style) {\n if (settings && settings.icon) {\n // If UTF-8 icon\n if (settings.icon.length <= 2) {\n return <span style={style || {}}>{settings.icon}</span>;\n } else\n if (settings.icon.startsWith('data:image')) {\n return <img alt={settings.name} src={settings.icon} style={style || {}}/>;\n } else { // may be later some changes for second type\n return <img alt={settings.name} src={(settings.prefix || '') + settings.icon} style={style || {}}/>;\n }\n }\n return null;\n }\n\n /**\n * Get the icon for the given object.\n * @param {string} id\n * @param {{ common: { icon: any; }; }} obj\n * @returns {string | null}\n */\n static getObjectIcon(id, obj) {\n // If id is Object\n if (typeof id === 'object') {\n obj = id;\n id = obj._id;\n }\n\n if (obj && obj.common && obj.common.icon) {\n let icon = obj.common.icon;\n // If UTF-8 icon\n if (typeof icon === 'string' && icon.length <= 2) {\n return icon;\n } else\n if (icon.startsWith('data:image')) {\n return icon;\n } else {\n const parts = id.split('.');\n if (parts[0] === 'system') {\n icon = 'adapter/' + parts[2] + (icon.startsWith('/') ? '' : '/') + icon;\n } else {\n icon = 'adapter/' + parts[0] + (icon.startsWith('/') ? '' : '/') + icon;\n }\n\n if (window.location.pathname.match(/adapter\\/[^/]+\\/[^/]+\\.html/)) {\n icon = '../../' + icon;\n } else if (window.location.pathname.match(/material\\/[.\\d]+/)) {\n icon = '../../' + icon;\n } else\n if (window.location.pathname.match(/material\\//)) {\n icon = '../' + icon;\n }\n return icon;\n }\n } else {\n return null;\n }\n }\n\n /**\n * Splits CamelCase into words.\n * @param {string | undefined} text\n * @returns {string}\n */\n static splitCamelCase(text) {\n if (false && text !== text.toUpperCase()) {\n const words = text.split(/\\s+/);\n for (let i = 0; i < words.length; i++) {\n let word = words[i];\n if (word.toLowerCase() !== word && word.toUpperCase() !== word) {\n let z = 0;\n const ww = [];\n let start = 0;\n while (z < word.length) {\n if (word[z].match(/[A-ZÜÄÖА-Я]/)) {\n ww.push(word.substring(start, z));\n start = z;\n }\n z++;\n }\n if (start !== z) {\n ww.push(word.substring(start, z));\n }\n for (let k = 0; k < ww.length; k++) {\n words.splice(i + k, 0, ww[k]);\n }\n i += ww.length;\n }\n }\n\n return words.map(w => {\n w = w.trim();\n if (w) {\n return w[0].toUpperCase() + w.substring(1).toLowerCase();\n }\n return '';\n }).join(' ');\n } else {\n return Utils.CapitalWords(text);\n }\n }\n\n /**\n * Check if the given color is bright.\n * https://stackoverflow.com/questions/35969656/how-can-i-generate-the-opposite-color-according-to-current-color\n * @param {string | null | undefined} color\n * @param {boolean} [defaultValue]\n * @returns {boolean}\n */\n static isUseBright(color, defaultValue) {\n if (color === null || color === undefined || color === '') {\n return defaultValue === undefined ? true : defaultValue;\n }\n color = color.toString();\n if (color.indexOf('#') === 0) {\n color = color.slice(1);\n }\n let r;\n let g;\n let b;\n\n const rgb = color.match(/^rgba?[\\s+]?\\([\\s+]?(\\d+)[\\s+]?,[\\s+]?(\\d+)[\\s+]?,[\\s+]?(\\d+)[\\s+]?/i);\n if (rgb && rgb.length === 4) {\n r = parseInt(rgb[1], 10);\n g = parseInt(rgb[2], 10);\n b = parseInt(rgb[3], 10);\n } else {\n // convert 3-digit hex to 6-digits.\n if (color.length === 3) {\n color = color[0] + color[0] + color[1] + color[1] + color[2] + color[2];\n }\n // remove alfa channel\n if (color.length === 8) {\n color = color.substring(0, 6);\n } else\n if (color.length !== 6) {\n return false;\n }\n\n r = parseInt(color.slice(0, 2), 16);\n g = parseInt(color.slice(2, 4), 16);\n b = parseInt(color.slice(4, 6), 16);\n }\n\n // http://stackoverflow.com/a/3943023/112731\n return (r * 0.299 + g * 0.587 + b * 0.114) <= 186;\n };\n\n /**\n * Get the time string in the format 00:00.\n * @param {string | number} seconds\n */\n static getTimeString(seconds) {\n seconds = parseFloat(seconds);\n if (isNaN(seconds)) {\n return '--:--';\n }\n const hours = Math.floor(seconds / 3600);\n let minutes = Math.floor((seconds % 3600) / 60);\n let secs = seconds % 60;\n if (hours) {\n if (minutes < 10) minutes = '0' + minutes;\n if (secs < 10) secs = '0' + secs;\n return hours + ':' + minutes + ':' + secs;\n } else {\n if (secs < 10) secs = '0' + secs;\n return minutes + ':' + secs;\n }\n }\n\n /**\n * Gets the wind direction with the given angle (degrees).\n * @param {number} angle in degrees.\n * @returns {string | undefined}\n */\n static getWindDirection(angle) {\n if (angle >= 0 && angle < 11.25) {\n return 'N'\n } else if (angle >= 11.25 && angle < 33.75) {\n return 'NNE'\n } else if (angle >= 33.75 && angle < 56.25) {\n return 'NE'\n } else if (angle >= 56.25 && angle < 78.75) {\n return 'ENE'\n } else if (angle >= 78.75 && angle < 101.25) {\n return 'E'\n } else if (angle >= 101.25 && angle < 123.75) {\n return 'ESE'\n } else if (angle >= 123.75 && angle < 146.25) {\n return 'SE'\n } else if (angle >= 146.25 && angle < 168.75) {\n return 'SSE'\n } else if (angle >= 168.75 && angle < 191.25) {\n return 'S'\n } else if (angle >= 191.25 && angle < 213.75) {\n return 'SSW'\n } else if (angle >= 213.75 && angle < 236.25) {\n return 'SW'\n } else if (angle >= 236.25 && angle < 258.75) {\n return 'WSW'\n } else if (angle >= 258.75 && angle < 281.25) {\n return 'W'\n } else if (angle >= 281.25 && angle < 303.75) {\n return 'WNW'\n } else if (angle >= 303.75 && angle < 326.25) {\n return 'NW'\n } else if (angle >= 326.25 && angle < 348.75) {\n return 'NNW'\n } else if (angle >= 348.75) {\n return 'N'\n }\n }\n\n /**\n * Pad the given number with a zero if its not 2 digits long.\n * @param {string | number} num\n */\n static padding(num) {\n if (typeof num === 'string') {\n if (num.length < 2) {\n return '0' + num;\n } else {\n return num;\n }\n } else if (num < 10) {\n return '0' + num;\n } else {\n return num;\n }\n }\n\n /**\n * Sets the date format.\n * @param {string} format\n */\n static setDataFormat(format) {\n if (format) {\n Utils.dateFormat = format.toUpperCase().split(/[.-/]/);\n Utils.dateFormat.splice(Utils.dateFormat.indexOf('YYYY'), 1);\n }\n }\n\n /**\n * Converts the date to a string.\n * @param {string | number | Date} now\n * @returns {string}\n */\n static date2string(now) {\n if (typeof now === 'string') {\n now = now.trim();\n if (!now) return '';\n // only letters\n if (now.match(/^[\\w\\s]+$/)) {\n // Day of week\n return now;\n }\n let m = now.match(/(\\d{1,4})[-./](\\d{1,2})[-./](\\d{1,4})/);\n if (m) {\n let a = [parseInt(m[1], 10), parseInt(m[2], 10), parseInt(m[3], 10)];\n let year = a.find(y => y > 31);\n a.splice(a.indexOf(year), 1);\n let day = a.find(m => m > 12);\n if (day) {\n a.splice(a.indexOf(day), 1);\n now = new Date(year, a[0] - 1, day);\n } else {\n // MM DD\n if (Utils.dateFormat[0][0] === 'M' && Utils.dateFormat[1][0] === 'D') {\n now = new Date(year, a[0] - 1, a[1]);\n if (Math.abs(now.getTime - Date.now()) > 3600000 * 24 * 10) {\n now = new Date(year, a[1] - 1, a[0]);\n }\n } else\n // DD MM\n if (Utils.dateFormat[0][0] === 'D' && Utils.dateFormat[1][0] === 'M') {\n now = new Date(year, a[1] - 1, a[0]);\n if (Math.abs(now.getTime - Date.now()) > 3600000 * 24 * 10) {\n now = new Date(year, a[0] - 1, a[1]);\n }\n } else {\n now = new Date(now);\n }\n }\n } else {\n now = new Date(now);\n }\n } else {\n now = new Date(now);\n }\n\n let date = I18n.t('ra_dow_' + days[now.getDay()]).replace('ra_dow_', '');\n date += '. ' + now.getDate() + ' ' + I18n.t('ra_month_' + months[now.getMonth()]).replace('ra_month_', '');\n return date;\n }\n\n /**\n * Render a text as a link.\n * @param {string} text\n * @returns {string | JSX.Element[]}\n */\n static renderTextWithA(text) {\n let m = text.match(/<a [^<]+<\\/a>|<br\\/?>|<b>[^<]+<\\/b>|<i>[^<]+<\\/i>/);\n if (m) {\n const result = [];\n let key = 1;\n do {\n const start = text.substring(0, m.index);\n text = text.substring(m.index + m[0].length);\n start && result.push(<span key={`a${key++}`}>{start}</span>);\n\n if (m[0].startsWith('<b>')) {\n result.push(<b key={`a${key++}`}>{m[0].substring(3, m[0].length - 4)}</b>);\n } else if (m[0].startsWith('<i>')) {\n result.push(<i key={`a${key++}`}>{m[0].substring(3, m[0].length - 4)}</i>);\n } else if (m[0].startsWith('<br')) {\n result.push(<br key={`a${key++}`} />);\n } else {\n let href = m[0].match(/href=\"([^\"]+)\"/) || m[0].match(/href='([^']+)'/);\n let target = m[0].match(/target=\"([^\"]+)\"/) || m[0].match(/target='([^']+)'/);\n let rel = m[0].match(/rel=\"([^\"]+)\"/) || m[0].match(/rel='([^']+)'/);\n const title = m[0].match(/>([^<]*)</);\n\n // eslint-disable-next-line\n result.push(<a\n key={`a${key++}`}\n href={href ? href[1] : ''}\n target={target ? target[1] : '_blank'}\n rel={rel ? rel[1] : ''}\n style={{ color: 'inherit' }}\n >\n {title ? title[1] : ''}\n </a>);\n }\n\n m = text && text.match(/<a [^<]+<\\/a>|<br\\/?>|<b>[^<]+<\\/b>|<i>[^<]+<\\/i>/);\n if (!m) {\n text && result.push(<span key={'a' + (key++)}>{text}</span>);\n }\n } while (m);\n\n return result;\n } else {\n return text;\n }\n }\n\n /**\n * Get the smart name of the given state.\n * @param {Record<string, ioBroker.StateObject> | ioBroker.StateObject} states\n * @param {string} id\n * @param {string} instanceId\n * @param {boolean} [noCommon]\n */\n static getSmartName(states, id, instanceId, noCommon) {\n if (!id) {\n if (!noCommon) {\n if (!states.common) {\n return states.smartName;\n } else {\n if (states && !states.common) {\n return states.smartName;\n } else {\n return states.common.smartName;\n }\n }\n } else {\n if (states && !states.common) {\n return states.smartName;\n } else {\n return (states &&\n states.common &&\n states.common.custom &&\n states.common.custom[instanceId]) ?\n states.common.custom[instanceId].smartName : undefined;\n }\n }\n } else\n if (!noCommon) {\n return states[id].common.smartName;\n } else {\n return (states[id] &&\n states[id].common &&\n states[id].common.custom &&\n states[id].common.custom[instanceId]) ?\n states[id].common.custom[instanceId].smartName || null : null;\n }\n }\n\n /**\n * Get the smart name from a state.\n * @param {ioBroker.StateObject} obj\n * @param {string} instanceId\n * @param {boolean} [noCommon]\n */\n static getSmartNameFromObj(obj, instanceId, noCommon) {\n if (!noCommon) {\n if (!obj.common) {\n return obj.smartName;\n } else {\n if (obj && !obj.common) {\n return obj.smartName;\n } else {\n return obj.common.smartName;\n }\n }\n } else {\n if (obj && !obj.common) {\n return obj.smartName;\n } else {\n return (obj &&\n obj.common &&\n obj.common.custom &&\n obj.common.custom[instanceId]) ?\n obj.common.custom[instanceId].smartName : undefined;\n }\n }\n }\n\n /**\n * Enable smart name for a state.\n * @param {ioBroker.StateObject} obj\n * @param {string} instanceId\n * @param {boolean} [noCommon]\n */\n static enableSmartName(obj, instanceId, noCommon) {\n if (noCommon) {\n obj.common.custom = obj.common.custom || {};\n obj.common.custom[instanceId] = obj.common.custom[instanceId] || {};\n obj.common.custom[instanceId].smartName = {};\n } else {\n obj.common.smartName = {};\n }\n }\n\n /**\n * Completely remove smart name from a state.\n * @param {ioBroker.StateObject} obj\n * @param {string | number} instanceId\n * @param {boolean} [noCommon]\n */\n static removeSmartName(obj, instanceId, noCommon) {\n if (noCommon) {\n if (obj.common && obj.common.custom && obj.common.custom[instanceId]) {\n obj.common.custom[instanceId] = null;\n }\n } else {\n obj.common.smartName = null;\n }\n }\n\n /**\n * Update the smartname of a state.\n * @param {ioBroker.StateObject} obj\n * @param {string} newSmartName\n * @param {string | undefined} byON\n * @param {string | undefined} smartType\n * @param {string} instanceId\n * @param {boolean} [noCommon]\n */\n static updateSmartName(obj, newSmartName, byON, smartType, instanceId, noCommon) {\n const language = I18n.getLanguage();\n\n // convert Old format\n if (typeof obj.common.smartName === 'string') {\n const nnn = obj.common.smartName;\n obj.common.smartName = {};\n obj.common.smartName[language] = nnn;\n }\n\n // convert old settings\n if (obj.native && obj.native.byON) {\n delete obj.native.byON;\n let _smartName = obj.common.smartName;\n\n if (!_smartName || typeof _smartName !== 'object') {\n _smartName = {en: _smartName};\n _smartName[language] = _smartName.en;\n }\n obj.common.smartName = _smartName;\n }\n if (smartType !== undefined) {\n if (noCommon) {\n obj.common.custom = obj.common.custom || {};\n obj.common.custom[instanceId] = obj.common.custom[instanceId] || {};\n obj.common.custom[instanceId].smartName = obj.common.custom[instanceId].smartName || {};\n if (!smartType) {\n delete obj.common.custom[instanceId].smartName.smartType;\n } else {\n obj.common.custom[instanceId].smartName.smartType = smartType;\n }\n } else {\n obj.common.smartName = obj.common.smartName || {};\n if (!smartType) {\n delete obj.common.smartName.smartType;\n } else {\n obj.common.smartName.smartType = smartType;\n }\n\n }\n }\n if (byON !== undefined) {\n if (noCommon) {\n obj.common.custom = obj.common.custom || {};\n obj.common.custom[instanceId] = obj.common.custom[instanceId] || {};\n obj.common.custom[instanceId].smartName = obj.common.custom[instanceId].smartName || {};\n obj.common.custom[instanceId].smartName.byON = byON;\n } else {\n obj.common.smartName = obj.common.smartName || {};\n obj.common.smartName.byON = byON;\n }\n }\n if (newSmartName !== undefined) {\n let smartName;\n if (noCommon) {\n obj.common.custom = obj.common.custom || {};\n obj.common.custom[instanceId] = obj.common.custom[instanceId] || {};\n obj.common.custom[instanceId].smartName = obj.common.custom[instanceId].smartName || {};\n smartName = obj.common.custom[instanceId].smartName;\n } else {\n obj.common.smartName = obj.common.smartName || {};\n smartName = obj.common.smartName;\n }\n smartName[language] = newSmartName;\n\n // If smart name deleted\n if (smartName && (!smartName[language] ||\n (smartName[language] === obj.common.name &&\n (!obj.common.role || obj.common.role.indexOf('button') >= 0)))) {\n delete smartName[language];\n let empty = true;\n // Check if structure has any definitions\n for (const key in smartName) {\n if (smartName.hasOwnProperty(key)) {\n empty = false;\n break;\n }\n }\n // If empty => delete smartName completely\n if (empty) {\n if (noCommon) {\n if (obj.common.custom[instanceId].smartName.byON === undefined) {\n delete obj.common.custom[instanceId];\n } else {\n delete obj.common.custom[instanceId].en;\n delete obj.common.custom[instanceId].de;\n delete obj.common.custom[instanceId].ru;\n delete obj.common.custom[instanceId].nl;\n delete obj.common.custom[instanceId].pl;\n delete obj.common.custom[instanceId].it;\n delete obj.common.custom[instanceId].fr;\n delete obj.common.custom[instanceId].pt;\n delete obj.common.custom[instanceId].es;\n delete obj.common.custom[instanceId]['zh-cn'];\n }\n } else {\n if (obj.common.smartName.byON !== undefined) {\n delete obj.common.smartName.en;\n delete obj.common.smartName.de;\n delete obj.common.smartName.ru;\n delete obj.common.smartName.nl;\n delete obj.common.smartName.pl;\n delete obj.common.smartName.it;\n delete obj.common.smartName.fr;\n delete obj.common.smartName.pt;\n delete obj.common.smartName.es;\n delete obj.common.smartName['zh-cn'];\n } else {\n obj.common.smartName = null;\n }\n }\n }\n }\n }\n }\n\n /**\n * Disable the smart name of a state.\n * @param {ioBroker.StateObject} obj\n * @param {string} instanceId\n * @param {boolean} [noCommon]\n */\n static disableSmartName(obj, instanceId, noCommon) {\n if (noCommon) {\n obj.common.custom = obj.common.custom || {};\n obj.common.custom[instanceId] = obj.common.custom[instanceId] || {};\n obj.common.custom[instanceId].smartName = false;\n } else {\n obj.common.smartName = false;\n }\n }\n\n /**\n * Copy text to the clipboard.\n * @param {string} text\n * @param {Event} [e]\n */\n static copyToClipboard(text, e) {\n e && e.stopPropagation();\n e && e.preventDefault()\n return copy(text);\n }\n\n /**\n * Gets the extension of a file name.\n * @param {string | null} [fileName] the file name.\n * @returns {string | null} The extension in lower case.\n */\n static getFileExtension(fileName) {\n const pos = (fileName || '').lastIndexOf('.');\n if (pos !== -1) {\n return fileName.substring(pos + 1).toLowerCase();\n } else {\n return null;\n }\n }\n\n /**\n * Format number of bytes as a string with B, KB, MB or GB.\n * The base for all calculations is 1024.\n * @param {number} bytes The number of bytes.\n * @returns {string} The formatted string (e.g. '723.5 KB')\n */\n static formatBytes(bytes) {\n if (Math.abs(bytes) < 1024) {\n return bytes + ' B';\n }\n\n const units = ['KB','MB','GB'];\n //const units = ['KiB','MiB','GiB','TiB','PiB','EiB','ZiB','YiB'];\n let u = -1;\n\n do {\n bytes /= 1024;\n ++u;\n } while (Math.abs(bytes) >= 1024 && u < units.length - 1);\n\n return bytes.toFixed(1) + ' ' + units[u];\n }\n\n /**\n * Invert the given color according to theme type to get the inverted text color for background\n * @param {string} color Color in the format '#rrggbb' or '#rgb' (or without hash)\n * @param {string} themeType theme type\n * @param {string} invert dark theme has light color in control or light theme has light color in control\n * @returns {string}\n */\n static getInvertedColor(color, themeType, invert) {\n if (!color) {\n return undefined;\n } else {\n const invertedColor = Utils.invertColor(color, true);\n if (invertedColor === '#FFFFFF' && (themeType === 'dark' || (invert && themeType === 'light'))) {\n return '#DDD';\n } else\n if (invertedColor === '#000000' && (themeType === 'light' || (invert && themeType === 'dark'))) {\n return '#222';\n } else {\n return undefined;\n }\n }\n }\n\n // Big thanks to: https://stackoverflow.com/questions/35969656/how-can-i-generate-the-opposite-color-according-to-current-color\n /**\n * Invert the given color\n * @param {string} hex Color in the format '#rrggbb' or '#rgb' (or without hash)\n * @param {boolean} bw Set to black or white.\n * @returns {string}\n */\n static invertColor(hex, bw) {\n if (hex === undefined || hex === null || hex === '' || typeof hex !== 'string') {\n return '';\n }\n if (hex.startsWith('rgba')) {\n const m = hex.match(/rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+),\\s*([.\\d]+)\\)/);\n if (m) {\n hex = parseInt(m[1], 10).toString(16).padStart(2, '0') +\n parseInt(m[2], 10).toString(16).padStart(2, '0') +\n parseInt(m[2], 10).toString(16).padStart(2, '0');\n }\n } else if (hex.startsWith('rgb')) {\n const m = hex.match(/rgb?\\((\\d+),\\s*(\\d+),\\s*(\\d+)\\)/);\n if (m) {\n hex = parseInt(m[1], 10).toString(16).padStart(2, '0') +\n parseInt(m[2], 10).toString(16).padStart(2, '0') +\n parseInt(m[2], 10).toString(16).padStart(2, '0');\n }\n } else\n if (hex.startsWith('#')) {\n hex = hex.slice(1);\n }\n // convert 3-digit hex to 6-digits.\n if (hex.length === 3) {\n hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];\n }\n let alfa = null;\n if (hex.length === 8) {\n alfa = hex.substring(6, 8);\n hex = hex.substring(0, 6);\n } else\n if (hex.length !== 6) {\n console.warn('Cannot invert color: ' + hex);\n return hex;\n }\n let r = parseInt(hex.slice(0, 2), 16);\n let g = parseInt(hex.slice(2, 4), 16);\n let b = parseInt(hex.slice(4, 6), 16);\n\n if (bw) {\n // http://stackoverflow.com/a/3943023/112731\n return (r * 0.299 + g * 0.587 + b * 0.114) > 186\n ? `#000000${alfa ? alfa : ''}`\n : `#FFFFFF${alfa ? alfa : ''}`;\n }\n // invert color components\n r = (255 - r).toString(16);\n g = (255 - g).toString(16);\n b = (255 - b).toString(16);\n // pad each with zeros and return\n return `#${r.padStart(2, '0')}${g.padStart(2, '0')}${b.padStart(2, '0')}${alfa ? alfa : ''}`;\n }\n\n /**\n * Convert RGB to array [r, g, b]\n * @param {string} hex Color in the format '#rrggbb' or '#rgb' (or without hash) or rgb(r,g,b) or rgba(r,g,b,a)\n * @returns {Array<number>} Array with 3 elements [r, g, b]\n */\n static color2rgb(hex) {\n if (hex === undefined || hex === null || hex === '' || typeof hex !== 'string') {\n return '';\n }\n if (hex.startsWith('rgba')) {\n const m = hex.match(/rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+),\\s*([.\\d]+)\\)/);\n if (m) {\n hex = parseInt(m[1], 10).toString(16).padStart(2, '0') +\n parseInt(m[2], 10).toString(16).padStart(2, '0') +\n parseInt(m[2], 10).toString(16).padStart(2, '0');\n }\n } else if (hex.startsWith('rgba')) {\n const m = hex.match(/rgb?\\((\\d+),\\s*(\\d+),\\s*(\\d+)\\)/);\n if (m) {\n hex = parseInt(m[1], 10).toString(16).padStart(2, '0') +\n parseInt(m[2], 10).toString(16).padStart(2, '0') +\n parseInt(m[2], 10).toString(16).padStart(2, '0');\n }\n } else\n if (hex.startsWith('#')) {\n hex = hex.slice(1);\n }\n // convert 3-digit hex to 6-digits.\n if (hex.length === 3) {\n hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];\n }\n if (hex.length !== 6 && hex.length !== 8) {\n console.warn(`Cannot invert color: ${hex}`);\n return false;\n }\n\n return [\n parseInt(hex.slice(0, 2), 16),\n parseInt(hex.slice(2, 4), 16),\n parseInt(hex.slice(4, 6), 16),\n ];\n }\n\n // Big thanks to: https://github.com/antimatter15/rgb-lab\n /**\n * Convert RGB to LAB\n * @param {Array<number>} rgb color in format [r,g,b]\n * @returns {Array<number>} lab color in format [l,a,b]\n */\n static rgb2lab(rgb){\n let r = rgb[0] / 255;\n let g = rgb[1] / 255;\n let b = rgb[2] / 255;\n\n r = (r > 0.04045) ? Math.pow((r + 0.055) / 1.055, 2.4) : r / 12.92;\n g = (g > 0.04045) ? Math.pow((g + 0.055) / 1.055, 2.4) : g / 12.92;\n b = (b > 0.04045) ? Math.pow((b + 0.055) / 1.055, 2.4) : b / 12.92;\n\n let x = (r * 0.4124 + g * 0.3576 + b * 0.1805) / 0.95047;\n let y = (r * 0.2126 + g * 0.7152 + b * 0.0722); /* / 1.00000; */\n let z = (r * 0.0193 + g * 0.1192 + b * 0.9505) / 1.08883;\n\n x = (x > 0.008856) ? Math.pow(x, 0.33333333) : (7.787 * x) + 0.137931; // 16 / 116;\n y = (y > 0.008856) ? Math.pow(y, 0.33333333) : (7.787 * y) + 0.137931; // 16 / 116;\n z = (z > 0.008856) ? Math.pow(z, 0.33333333) : (7.787 * z) + 0.137931; // 16 / 116;\n\n return [(116 * y) - 16, 500 * (x - y), 200 * (y - z)];\n }\n\n /**\n * Calculate the distance between two colors in LAB color space in the range 0-100^2\n * If distance is less than 1000, the colors are similar\n * @param {string} color1 Color in the format '#rrggbb' or '#rgb' (or without hash) or rgb(r,g,b) or rgba(r,g,b,a)\n * @param {string} color2 Color in the format '#rrggbb' or '#rgb' (or without hash) or rgb(r,g,b) or rgba(r,g,b,a)\n * @returns {number} distance in the range 0-100^2\n */\n static colorDistance(color1, color2) {\n const lab1 = Utils.rgb2lab(Utils.color2rgb(color1));\n const lab2 = Utils.rgb2lab(Utils.color2rgb(color2));\n const dltL = lab1[0] - lab2[0];\n const dltA = lab1[1] - lab2[1];\n const dltB = lab1[2] - lab2[2];\n const c1 = Math.sqrt(lab1[1] * lab1[1] + lab1[2] * lab1[2]);\n const c2 = Math.sqrt(lab2[1] * lab2[1] + lab2[2] * lab2[2]);\n const dltC = c1 - c2;\n let dltH = dltA * dltA + dltB * dltB - dltC * dltC;\n dltH = dltH < 0 ? 0 : Math.sqrt(dltH);\n const sc = 1.0 + 0.045 * c1;\n const sh = 1.0 + 0.015 * c1;\n const dltLKlsl = dltL;\n const dltCkcsc = dltC / sc;\n const dltHkhsh = dltH / sh;\n const i = dltLKlsl * dltLKlsl + dltCkcsc * dltCkcsc + dltHkhsh * dltHkhsh;\n return i < 0 ? 0 : i;\n }\n\n // https://github.com/lukeed/clsx/blob/master/src/index.js\n // License\n // MIT © Luke Edwards\n /**\n * @private\n * @param {any} mix\n * @returns {string}\n */\n static _toVal(mix) {\n let y;\n let str = '';\n\n if (typeof mix === 'string' || typeof mix === 'number') {\n str += mix;\n } else if (typeof mix === 'object') {\n if (Array.isArray(mix)) {\n for (let k = 0; k < mix.length; k++) {\n if (mix[k]) {\n y = Utils._toVal(mix[k]);\n if (y) {\n str && (str += ' ');\n str += y;\n }\n }\n }\n } else {\n for (const k in mix) {\n if (mix[k]) {\n str && (str += ' ');\n str += k;\n }\n }\n }\n }\n\n return str;\n }\n\n // https://github.com/lukeed/clsx/blob/master/src/index.js\n // License\n // MIT © Luke Edwards\n /**\n * Convert any object to a string with its values.\n * @returns {string}\n */\n static clsx () {\n let i = 0;\n let tmp;\n let x;\n let str = '';\n while (i < arguments.length) {\n if ((tmp = arguments[i++])) {\n if ((x = Utils._toVal(tmp))) {\n str && (str += ' ');\n str += x\n }\n }\n }\n return str;\n }\n\n /**\n * Get the current theme name (either from local storage or the browser settings).\n * @param {string} [themeName]\n * @returns {string}\n */\n static getThemeName(themeName = '') {\n if (window.vendorPrefix && window.vendorPrefix !== '@@vendorPrefix@@') {\n return window.vendorPrefix;\n }\n\n return themeName ? themeName : (window._localStorage || window.localStorage).getItem('App.themeName') ?\n (window._localStorage || window.localStorage).getItem('App.themeName') : window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'colored';\n }\n\n /**\n * Get the type of theme.\n * @param {string} [themeName]\n * @returns {'dark' | 'light'}\n */\n static getThemeType(themeName = '') {\n if (window.vendorPrefix && window.vendorPrefix !== '@@vendorPrefix@@') {\n return 'light';\n }\n\n themeName = themeName || (window._localStorage || window.localStorage).getItem('App.themeName');\n return themeName === 'dark' || themeName === 'blue' ? 'dark' : 'light';\n }\n\n /**\n * Set the theme name and theme type.\n * @param {string} themeName\n */\n static setThemeName(themeName) {\n if (window.vendorPrefix && window.vendorPrefix !== '@@vendorPrefix@@') {\n return; // ignore\n }\n (window._localStorage || window.localStorage).setItem('App.themeName', themeName);\n (window._localStorage || window.localStorage).setItem('App.theme', themeName === 'dark' || themeName === 'blue' ? 'dark' : 'light');\n }\n\n /**\n * Toggle the theme name between 'dark' and 'colored'.\n * @param {string | null} themeName\n * @returns {string} the new theme name.\n */\n static toggleTheme(themeName) {\n if (window.vendorPrefix && window.vendorPrefix !== '@@vendorPrefix@@') {\n return window.vendorPrefix;\n }\n themeName = themeName || (window._localStorage || window.localStorage).getItem('App.themeName');\n\n // dark => blue => colored => light => dark\n const themes = Utils.getThemeNames();\n const pos = themes.indexOf(themeName);\n let newTheme;\n if (pos !== -1) {\n newTheme = themes[(pos + 1) % themes.length];\n } else {\n newTheme = themes[0];\n }\n Utils.setThemeName(newTheme);\n\n return newTheme;\n }\n\n /**\n * Get the list of themes\n * @returns {array<string>} list of possible themes\n */\n static getThemeNames() {\n if (window.vendorPrefix && window.vendorPrefix !== '@@vendorPrefix@@') {\n return [window.vendorPrefix];\n }\n\n return ['light', 'dark', 'blue', 'colored'];\n }\n\n /**\n * Parse a query string into its parts.\n * @param {string} query\n * @returns {Record<string, string | boolean | number>}\n */\n static parseQuery(query) {\n query = (query || '').toString().replace(/^\\?/, '');\n /** @type {Record<string, string | boolean | number>} */\n const result = {};\n query.split('&').forEach(part => {\n part = part.trim();\n if (part) {\n const parts = part.split('=');\n const attr = decodeURIComponent(parts[0]).trim();\n if (parts.length > 1) {\n result[attr] = decodeURIComponent(parts[1]);\n if (result[attr] === 'true') {\n result[attr] = true;\n } else if (result[attr] === 'false') {\n result[attr] = false;\n } else {\n const f = parseFloat(result[attr]);\n if (f.toString() === result[attr]) {\n result[attr] = f;\n }\n }\n } else {\n result[attr] = true;\n }\n }\n });\n return result;\n }\n\n /**\n * Returns parent ID.\n * @param {string} id\n * @returns {string | null} parent ID or null if no parent\n */\n static getParentId(id) {\n const p = (id || '').toString().split('.');\n if (p.length > 1) {\n p.pop();\n return p.join('.');\n } else {\n return null;\n }\n }\n\n static formatDate(dateObj, dateFormat) {\n // format could be DD.MM.YYYY, YYYY.MM.DD or MM/DD/YYYY\n\n if (!dateObj) {\n return '';\n }\n\n let text;\n let mm = dateObj.getMonth() + 1;\n if (mm < 10) {\n mm = '0' + mm;\n }\n\n let dd = dateObj.getDate();\n if (dd < 10) {\n dd = '0' + dd;\n }\n\n if (dateFormat === 'MM/DD/YYYY') {\n text = mm + '/' + dd + '/' + dateObj.getFullYear();\n } else {\n text = dateObj.getFullYear() + '-' + mm + '-' + dd;\n }\n\n // time\n let v = dateObj.getHours();\n if (v < 10) {\n text += ' 0' + v;\n } else {\n text += ' ' + v;\n }\n v = dateObj.getMinutes();\n if (v < 10) {\n text += ':0' + v;\n } else {\n text += ':' + v;\n }\n\n v = dateObj.getSeconds();\n if (v < 10) {\n text += ':0' + v;\n } else {\n text += ':' + v;\n }\n\n v = dateObj.getMilliseconds();\n if (v < 10) {\n text += '.00' + v;\n } else if (v < 100) {\n text += '.0' + v;\n } else {\n text += '.' + v;\n }\n\n return text;\n }\n\n static formatTime(seconds) {\n if (seconds) {\n seconds = Math.round(seconds);\n const d = Math.floor(seconds / (3600 * 24));\n const h = Math.floor((seconds % (3600 * 24)) / 3600);\n const m = Math.floor((seconds % 3600) / 60);\n const s = seconds % 60;\n if (d) {\n return `${d}.${h.toString().padStart(2, '0')}:${m.toString().padStart(2, '0')}:${s.toString().padStart(2, '0')}`;\n } else if (h) {\n return `${h}:${m.toString().padStart(2, '0')}:${s.toString().padStart(2, '0')}`;\n } else {\n return `0:${m.toString().padStart(2, '0')}:${s.toString().padStart(2, '0')}`;\n }\n } else {\n return '0:00:00';\n }\n }\n\n static MDtext2link(text) {\n const m = text.match(/\\d+\\.\\)\\s/);\n if (m) {\n text = text.replace(m[0], m[0].replace(/\\s/, '&nbsp;'));\n }\n\n return text.replace(/[^a-zA-Zа-яА-Я0-9]/g, '').trim().replace(/\\s/g, '').toLowerCase();\n }\n\n static openLink(url, target) {\n // replace IPv6 Address with [ipv6]:port\n url = url.replace(/\\/\\/([0-9a-f]*:[0-9a-f]*:[0-9a-f]*:[0-9a-f]*:[0-9a-f]*:[0-9a-f]*)(:\\d+)?\\//i, '//[$1]$2/');\n\n if (target === 'this') {\n window.location = url;\n } else {\n window.open(url, target || '_blank');\n }\n }\n\n static MDgetTitle(text) {\n let {body, header} = Utils.extractHeader(text);\n if (!header.title) {\n // remove {docsify-bla}\n body = body.replace(/{[^}]*}/g, '');\n body = body.trim();\n const lines = body.replace(/\\r/g, '').split('\\n');\n for (let i = 0; i < lines.length; i++) {\n if (lines[i].startsWith('# ')) {\n return lines[i].substring(2).trim();\n }\n }\n return '';\n } else {\n return header.title;\n }\n }\n\n static MDextractHeader(text) {\n const attrs = {};\n if (text.substring(0, 3) === '---') {\n const pos = text.substring(3).indexOf('\\n---');\n if (pos !== -1) {\n const _header = text.substring(3, pos + 3);\n const lines = _header.replace(/\\r/g, '').split('\\n');\n lines.forEach(line => {\n if (!line.trim()) {\n return;\n }\n const pos = line.indexOf(':');\n if (pos !== -1) {\n const attr = line.substring(0, pos).trim();\n attrs[attr] = line.substring(pos + 1).trim();\n attrs[attr] = attrs[attr].replace(/^['\"]|['\"]$/g, '');\n if (attrs[attr] === 'true') {\n attrs[attr] = true;\n } else if (attrs[attr] === 'false') {\n attrs[attr] = false;\n } else if (parseFloat(attrs[attr]).toString() === attrs[attr]) {\n attrs[attr] = parseFloat(attrs[attr]);\n }\n } else {\n attrs[line.trim()] = true;\n }\n });\n text = text.substring(pos + 7);\n }\n }\n return {header: attrs, body: text};\n }\n\n static MDremoveDocsify(text) {\n const m = text.match(/{docsify-[^}]*}/g);\n if (m) {\n m.forEach(doc => text = text.replace(doc, ''));\n }\n return text;\n }\n\n /**\n * Generate the json file on the file for download.\n * @param {string} filename file name\n * @returns {object} json structure (not stringified)\n */\n static generateFile(filename, json) {\n let el = document.createElement('a');\n el.setAttribute('href', 'data:application/json;charset=utf-8,' + encodeURIComponent(JSON.stringify(json, null, 2)));\n el.setAttribute('download', filename);\n\n el.style.display = 'none';\n document.body.appendChild(el);\n\n el.click();\n\n document.body.removeChild(el);\n }\n\n /**\n * Convert quality code into text\n * @param {number} quality code\n * @returns {array<string>} lines that decode qulity\n */\n static quality2text(quality) {\n const custom = quality & 0xFFFF0000;\n const text = QUALITY_BITS[quality];\n let result;\n if (text) {\n result = [text];\n } else if (quality & 0x01) {\n result = [QUALITY_BITS[0x01], '0x' + (quality & (0xFFFF & ~1)).toString(16)];\n } else if (quality & 0x02) {\n result = [QUALITY_BITS[0x02], '0x' + (quality & (0xFFFF & ~2)).toString(16)];\n } else {\n result = ['0x' + quality.toString(16)];\n }\n if (custom) {\n result.push('0x' + (custom >> 16).toString(16).toUpperCase());\n }\n return result;\n }\n\n /**\n * Deep copy object\n * @param {object} object\n * @returns {object}\n */\n static clone(object) {\n return JSON.parse(JSON.stringify(object));\n }\n\n /**\n * Get states of object\n * @param {object} obj\n * @returns {object} states as an object in form {\"value1\": \"label1\", \"value2\": \"label2\"} or null\n */\n static getStates(obj) {\n let states = obj?.common?.states;\n if (states) {\n if (typeof states === 'string' && states[0] === '{') {\n try {\n states = JSON.parse(states);\n } catch (ex) {\n console.error(`Cannot parse states: ${states}`);\n states = null;\n }\n } else\n // if old format val1:text1;val2:text2\n if (typeof states === 'string') {\n const parts = states.split(';');\n states = {};\n for (let p = 0; p < parts.length; p++) {\n const s = parts[p].split(':');\n states[s[0]] = s[1];\n }\n } else if (Array.isArray(states)) {\n const result = {};\n if (obj.common.type === 'number') {\n states.forEach((value, key) => result[key] = value);\n } else\n if (obj.common.type === 'string') {\n states.forEach(value => result[value] = value);\n } else if (obj.common.type === 'boolean') {\n result['false'] = states[0];\n result['true'] = states[1];\n }\n\n return result;\n }\n }\n\n return states;\n }\n\n /**\n * Get svg file as text\n * @param {string} url URL of SVG file\n * @returns {object} Promise with \"data:image...\"\n */\n static getSvg(url) {\n return fetch(url)\n .then(response => response.blob())\n .then(blob => {\n return new Promise(resolve => {\n const reader = new FileReader();\n reader.onload = function() { // do not optimize this function. \"this\" is important.\n resolve(this.result);\n };\n reader.readAsDataURL(blob);\n });\n });\n }\n\n /**\n * Detect file xtension by its content\n * @param {string} base64 Base64 encoded binary file\n * @returns {string} Detected extension, like 'jpg'\n */\n static detectMimeType(base64) {\n const signature = Object.keys(SIGNATURES).find(s => base64.startsWith(s));\n return signature ? SIGNATURES[signature] : null;\n }\n}\n\nexport default Utils;\n"],"mappings":"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"}
package/GenericApp.js CHANGED
@@ -118,8 +118,9 @@ var GenericApp = /*#__PURE__*/function (_Router) {
118
118
  });
119
119
  } else if (message.data === 'updateExpertMode') {
120
120
  _this.onToggleExpertMode && _this.onToggleExpertMode(_this.getExpertMode());
121
- } else {
122
- console.warn('Received unknown message: ' + JSON.stringify(message.data));
121
+ } else if (message.data !== 'chartReady') {
122
+ // if not "echart ready" message
123
+ console.debug("Received unknown message: \"".concat(JSON.stringify(message.data), "\". May be it will be processed later"));
123
124
  }
124
125
  }
125
126
  });
package/GenericApp.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"GenericApp.js","names":["cssStyle","window","localStorage","getItem","setItem","GenericApp","props","settings","ConnectionClass","Connection","document","getElementById","style","createElement","setAttribute","innerHTML","head","appendChild","isWeb","io","location","port","SocketClient","e","id","obj","socket","systemLang","common","language","I18n","setLanguage","_systemConfig","expertMode","setState","getExpertMode","message","data","newThemeName","Utils","getThemeName","setThemeName","theme","createTheme","themeName","themeType","getThemeType","onThemeChange","onThemeChanged","onToggleExpertMode","console","warn","JSON","stringify","resizeTimer","clearTimeout","setTimeout","width","getWidth","printPrompt","query","search","replace","args","trim","split","filter","t","forEach","b","parts","length","instance","undefined","parseInt","slice","tmp","pathname","adapterName","instanceId","newReact","Router","getLocation","tab","_localStorage","themeInstance","state","selectedTab","selectedTabNum","errorText","changed","connected","loaded","isConfigurationError","toast","bottomButtons","confirmClose","translations","require","Object","keys","lang","assign","setTranslations","savedNative","encryptedFields","sentryDSN","socketUrl","startsWith","protocol","hostname","name","doNotLoadAllObjects","onProgress","progress","PROGRESS","CONNECTING","READY","onReady","objects","scripts","subscribeObject","onSystemConfigChanged","then","getSystemConfig","_secret","secret","getObject","instanceObj","waitPromise","sentryEnabled","diag","version","disableDataReporting","host","sentryStarted","Sentry","init","dsn","release","integrations","SentryIntegrations","Dedupe","sentryInited","uuidObj","uuid","configureScope","scope","setUser","Promise","resolve","onPrepareLoad","encryptedNative","parse","onConnectionReady","onError","err","error","showError","addEventListener","onResize","onReceiveMessage","removeEventListener","palette","mode","sessionStorage","value","result","i","String","fromCharCode","charCodeAt","selectTab","index","attr","encrypt","decrypt","includes","push","_socket","emit","doc","rows","item","webExtendable","map","reject","ip","_host","IPs4","address","family","IPs6","hardware","networkInterfaces","eth","inter","isClose","oldObj","_oldObj","a","hasOwnProperty","onPrepareSave","setObject","globalThis","parent","postMessage","onClose","vertical","horizontal","classes","close","native","isChanged","newNative","getIsChanged","onSave","isYes","attrs","shift","Error","_updateNativeValue","cb","text","renderError","renderToast","renderSaveCloseButtons","SIZES","xs","sm","md","lg","xl","innerWidth","reverse","widthComputed","find","key","$iframeDialog","propTypes","PropTypes","string","func","object","array","bool"],"sources":["GenericApp.js"],"sourcesContent":["/**\n * Copyright 2018-2022 bluefox <dogafox@gmail.com>\n *\n * MIT License\n *\n **/\nimport React from 'react';\nimport { Connection, PROGRESS } from '@iobroker/socket-client';\nimport PropTypes from 'prop-types';\nimport * as Sentry from '@sentry/browser';\nimport * as SentryIntegrations from '@sentry/integrations';\n\nimport DialogError from './Dialogs/Error';\nimport Snackbar from '@mui/material/Snackbar';\nimport IconButton from '@mui/material/IconButton';\n\nimport IconClose from '@mui/icons-material/Close';\n\nimport printPrompt from './Prompt';\nimport theme from './Theme';\nimport Loader from './Components/Loader';\nimport Router from './Components/Router';\nimport Utils from './Components/Utils';\nimport SaveCloseButtons from './Components/SaveCloseButtons';\nimport ConfirmDialog from './Dialogs/Confirm';\nimport I18n from './i18n';\n\n// import './index.css';\nconst cssStyle = `\nhtml {\n height: 100%;\n}\n\nbody {\n margin: 0;\n padding: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Roboto\", \"Oxygen\", \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\", sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n width: 100%;\n height: 100%;\n overflow: hidden;\n}\n\n/* scrollbar */\n::-webkit-scrollbar-track {\n background-color: #ccc;\n border-radius: 5px;\n}\n\n::-webkit-scrollbar {\n width: 5px;\n height: 5px;\n background-color: #ccc;\n}\n\n::-webkit-scrollbar-thumb {\n background-color: #575757;\n border-radius: 5px;\n}\n\n#root {\n height: 100%;\n}\n\n.App {\n height: 100%;\n}\n\n@keyframes glow {\n from {\n background-color: initial;\n }\n to {\n background-color: #58c458;\n }\n}\n`;\n\nif (!window.localStorage) {\n window.localStorage = {\n getItem: () => null,\n setItem: () => null,\n };\n}\n\n/**\n * @extends {Router<import('./types').GenericAppProps, import('./types').GenericAppState>}\n */\nclass GenericApp extends Router {\n /**\n * @param {import('./types').GenericAppProps} props\n * @param {import('./types').GenericAppSettings | undefined} settings\n */\n constructor(props, settings) {\n const ConnectionClass = props.Connection || settings.Connection || Connection;\n // const ConnectionClass = props.Connection === 'admin' || settings.Connection = 'admin' ? AdminConnection : (props.Connection || settings.Connection || Connection);\n\n if (!window.document.getElementById('generic-app-iobroker-component')) {\n const style = window.document.createElement('style');\n style.setAttribute('id', 'generic-app-iobroker-component');\n style.innerHTML = cssStyle;\n window.document.head.appendChild(style);\n }\n\n // Remove `!Connection.isWeb() && window.adapterName !== 'material'` when iobroker.socket will support native ws\n if (!ConnectionClass.isWeb() && window.io && window.location.port === '3000') {\n try {\n const io = new window.SocketClient();\n delete window.io;\n window.io = io;\n } catch (e) {\n // ignore\n }\n }\n\n super(props);\n\n printPrompt();\n\n let query = (window.location.search || '').replace(/^\\?/, '').replace(/#.*$/, '');\n let args = {};\n query.trim().split('&').filter(t => t.trim()).forEach(b => {\n const parts = b.split('=');\n args[parts[0]] = parts.length === 2 ? parts[1] : true;\n if (args[parts[0]] === 'true') {\n args[parts[0]] = true;\n } else if (args[parts[0]] === 'false') {\n args[parts[0]] = false;\n }\n });\n\n // extract instance from URL\n this.instance = args.instance !== undefined ? parseInt(args.instance, 10) || 0 : (parseInt(window.location.search.slice(1), 10) || 0);\n // extract adapter name from URL\n const tmp = window.location.pathname.split('/');\n this.adapterName = settings?.adapterName || props.adapterName || window.adapterName || tmp[tmp.length - 2] || 'iot';\n this.instanceId = `system.adapter.${this.adapterName}.${this.instance}`;\n this.newReact = args.newReact === true; // it is admin5\n\n const location = Router.getLocation();\n location.tab = location.tab || (window._localStorage || window.localStorage).getItem(`${this.adapterName}-adapter`) || '';\n\n const themeInstance = this.createTheme();\n\n this.state = {\n selectedTab: (window._localStorage || window.localStorage).getItem(`${this.adapterName}-adapter`) || '',\n selectedTabNum: -1,\n native: {},\n errorText: '',\n changed: false,\n connected: false,\n loaded: false,\n isConfigurationError: '',\n expertMode: false,\n toast: '',\n theme: themeInstance,\n themeName: this.getThemeName(themeInstance),\n themeType: this.getThemeType(themeInstance),\n bottomButtons: (settings && settings.bottomButtons) === false ? false : ((props && props.bottomButtons) === false ? false : true),\n width: GenericApp.getWidth(),\n confirmClose: false,\n };\n\n // init translations\n const translations = {\n 'en': require('./i18n/en.json'),\n 'de': require('./i18n/de.json'),\n 'ru': require('./i18n/ru.json'),\n 'pt': require('./i18n/pt.json'),\n 'nl': require('./i18n/nl.json'),\n 'fr': require('./i18n/fr.json'),\n 'it': require('./i18n/it.json'),\n 'es': require('./i18n/es.json'),\n 'pl': require('./i18n/pl.json'),\n 'uk': require('./i18n/uk.json'),\n 'zh-cn': require('./i18n/zh-cn.json'),\n };\n\n // merge together\n if (settings && settings.translations) {\n Object.keys(settings.translations).forEach(lang => translations[lang] = Object.assign(translations[lang], settings.translations[lang]));\n } else if (props.translations) {\n Object.keys(props.translations).forEach(lang => translations[lang] = Object.assign(translations[lang], props.translations[lang]));\n }\n\n I18n.setTranslations(translations);\n\n this.savedNative = {}; // to detect if the config changed\n\n this.encryptedFields = props.encryptedFields || settings?.encryptedFields || [];\n\n this.sentryDSN = (settings && settings.sentryDSN) || props.sentryDSN;\n\n if (window.socketUrl) {\n if (window.socketUrl.startsWith(':')) {\n window.socketUrl = `${window.location.protocol}//${window.location.hostname}${window.socketUrl}`;\n } else if (!window.socketUrl.startsWith('http://') && !window.socketUrl.startsWith('https://')) {\n window.socketUrl = `${window.location.protocol}//${window.socketUrl}`;\n }\n }\n\n this.socket = new ConnectionClass({\n ...(props?.socket || settings?.socket),\n name: this.adapterName,\n doNotLoadAllObjects: settings?.doNotLoadAllObjects,\n onProgress: progress => {\n if (progress === PROGRESS.CONNECTING) {\n this.setState({ connected: false });\n } else if (progress === PROGRESS.READY) {\n this.setState({ connected: true });\n } else {\n this.setState({ connected: true });\n }\n },\n onReady: (objects, scripts) => {\n I18n.setLanguage(this.socket.systemLang);\n\n // subscribe because of language and expert mode\n this.socket.subscribeObject('system.config', this.onSystemConfigChanged)\n .then(() => this.getSystemConfig())\n .then(obj => {\n this._secret = (typeof obj !== 'undefined' && obj.native && obj.native.secret) || 'Zgfr56gFe87jJOM';\n this._systemConfig = obj?.common || {};\n return this.socket.getObject(this.instanceId);\n })\n .then(instanceObj => {\n let waitPromise;\n\n const sentryEnabled =\n this._systemConfig.diag !== 'none' &&\n instanceObj &&\n instanceObj.common &&\n instanceObj.common.name &&\n instanceObj.common.version &&\n !instanceObj.common.disableDataReporting &&\n window.location.host !== 'localhost:3000';\n\n // activate sentry plugin\n if (!this.sentryStarted && this.sentryDSN && sentryEnabled) {\n this.sentryStarted = true;\n\n Sentry.init({\n dsn: this.sentryDSN,\n release: `iobroker.${instanceObj.common.name}@${instanceObj.common.version}`,\n integrations: [\n new SentryIntegrations.Dedupe()\n ]\n });\n }\n\n // read UUID and init sentry with it.\n // for backward compatibility it will be processed separately from above logic: some adapters could still have this.sentryDSN as undefined\n if (!this.sentryInited && sentryEnabled) {\n this.sentryInited = true;\n\n waitPromise = this.socket.getObject('system.meta.uuid')\n .then(uuidObj => {\n if (uuidObj && uuidObj.native && uuidObj.native.uuid) {\n Sentry.configureScope(scope =>\n scope.setUser({id: uuidObj.native.uuid}));\n }\n });\n }\n\n waitPromise = waitPromise || Promise.resolve();\n\n waitPromise\n .then(() => {\n if (instanceObj) {\n this.common = instanceObj?.common;\n this.onPrepareLoad(instanceObj.native, instanceObj.encryptedNative); // decode all secrets\n this.savedNative = JSON.parse(JSON.stringify(instanceObj.native));\n this.setState({ native: instanceObj.native, loaded: true, expertMode: this.getExpertMode() }, () =>\n this.onConnectionReady && this.onConnectionReady());\n } else {\n console.warn('Cannot load instance settings');\n this.setState({ native: {}, loaded: true, expertMode: this.getExpertMode()},\n () => this.onConnectionReady && this.onConnectionReady());\n }\n });\n });\n },\n onError: err => {\n console.error(err);\n this.showError(err);\n }\n });\n }\n\n onSystemConfigChanged = (id, obj) => {\n if (obj && id === 'system.config') {\n if (this.socket.systemLang !== obj?.common.language) {\n this.socket.systemLang = obj?.common.language || 'en';\n I18n.setLanguage(this.socket.systemLang);\n }\n\n if (this._systemConfig.expertMode !== !!obj?.common?.expertMode) {\n this._systemConfig = obj?.common || {};\n this.setState({ expertMode: this.getExpertMode() });\n } else {\n this._systemConfig = obj?.common || {};\n }\n }\n }\n\n /**\n * Called immediately after a component is mounted. Setting state here will trigger re-rendering.\n */\n componentDidMount() {\n window.addEventListener('resize', this.onResize, true);\n window.addEventListener('message', this.onReceiveMessage, false);\n super.componentDidMount();\n }\n\n /**\n * Called immediately before a component is destroyed.\n */\n componentWillUnmount() {\n window.removeEventListener('resize', this.onResize, true);\n window.removeEventListener('message', this.onReceiveMessage, false);\n super.componentWillUnmount();\n }\n\n onReceiveMessage = message => {\n if (message?.data) {\n if (message.data === 'updateTheme') {\n const newThemeName = Utils.getThemeName()\n Utils.setThemeName(Utils.getThemeName());\n\n const theme = this.createTheme(newThemeName);\n\n this.setState({\n theme,\n themeName: this.getThemeName(theme),\n themeType: this.getThemeType(theme)\n }, () => {\n this.props.onThemeChange && this.props.onThemeChange(newThemeName);\n this.onThemeChanged && this.onThemeChanged(newThemeName);\n });\n } else if (message.data === 'updateExpertMode') {\n this.onToggleExpertMode && this.onToggleExpertMode(this.getExpertMode());\n } else {\n console.warn('Received unknown message: ' + JSON.stringify(message.data));\n }\n }\n };\n\n /**\n * @private\n */\n onResize = () => {\n this.resizeTimer && clearTimeout(this.resizeTimer);\n this.resizeTimer = setTimeout(() => {\n this.resizeTimer = null;\n this.setState({ width: GenericApp.getWidth() });\n }, 200);\n };\n\n /**\n * Gets the width depending on the window inner width.\n * @returns {import('./types').Width}\n */\n static getWidth() {\n /**\n * innerWidth |xs sm md lg xl\n * |-------|-------|-------|-------|------>\n * width | xs | sm | md | lg | xl\n */\n\n const SIZES = {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920\n };\n const width = window.innerWidth;\n const keys = Object.keys(SIZES).reverse();\n const widthComputed = keys.find(key => width >= SIZES[key]);\n\n return widthComputed || 'xs';\n }\n\n /**\n * Get a theme\n * @param {string} name Theme name\n * @returns {import('./types').Theme}\n */\n createTheme(name = '') {\n return theme(Utils.getThemeName(name));\n }\n\n /**\n * Get the theme name\n * @param {import('./types').Theme} theme Theme\n * @returns {string} Theme name\n */\n getThemeName(theme) {\n return theme.name;\n }\n\n /**\n * Get the theme type\n * @param {import('./types').Theme} theme Theme\n * @returns {string} Theme type\n */\n getThemeType(theme) {\n return theme.palette.mode;\n }\n\n /**\n * Changes the current theme\n */\n toggleTheme() {\n const themeName = this.state.themeName;\n\n // dark => blue => colored => light => dark\n const newThemeName = themeName === 'dark' ? 'blue' :\n (themeName === 'blue' ? 'colored' :\n (themeName === 'colored' ? 'light' : 'dark'));\n\n Utils.setThemeName(newThemeName);\n\n const theme = this.createTheme(newThemeName);\n\n this.setState({\n theme,\n themeName: this.getThemeName(theme),\n themeType: this.getThemeType(theme)\n }, () => {\n this.props.onThemeChange && this.props.onThemeChange(newThemeName);\n this.onThemeChanged && this.onThemeChanged(newThemeName);\n });\n }\n\n /**\n * Gets the system configuration.\n * @returns {Promise<ioBroker.OtherObject>}\n */\n getSystemConfig() {\n return this.socket.getSystemConfig();\n }\n\n /**\n * Get current expert mode\n * @returns {boolean}\n */\n getExpertMode() {\n return window.sessionStorage.getItem('App.expertMode') === 'true' || !!this._systemConfig.expertMode;\n }\n\n /**\n * Gets called when the socket.io connection is ready.\n * You can overload this function to execute own commands.\n */\n onConnectionReady() {\n }\n\n /**\n * Encrypts a string.\n * @param {string} value\n * @returns {string}\n */\n encrypt(value) {\n let result = '';\n for (let i = 0; i < value.length; i++) {\n result += String.fromCharCode(this._secret[i % this._secret.length].charCodeAt(0) ^ value.charCodeAt(i));\n }\n return result;\n }\n\n /**\n * Decrypts a string.\n * @param {string} value\n * @returns {string}\n */\n decrypt(value) {\n let result = '';\n for (let i = 0; i < value.length; i++) {\n result += String.fromCharCode(this._secret[i % this._secret.length].charCodeAt(0) ^ value.charCodeAt(i));\n }\n return result;\n }\n\n /**\n * Gets called when the navigation hash changes.\n * You may override this if needed.\n */\n onHashChanged() {\n const location = Router.getLocation();\n if (location.tab !== this.state.selectedTab) {\n this.selectTab(location.tab);\n }\n }\n\n /**\n * Selects the given tab.\n * @param {string} tab\n * @param {number} [index]\n */\n selectTab(tab, index) {\n (window._localStorage || window.localStorage).setItem(this.adapterName + '-adapter', tab);\n this.setState({ selectedTab: tab, selectedTabNum: index })\n }\n\n /**\n * Gets called before the settings are saved.\n * You may override this if needed.\n * @param {Record<string, any>} settings\n */\n onPrepareSave(settings) {\n // here you can encode values\n this.encryptedFields && this.encryptedFields.forEach(attr => {\n if (settings[attr]) {\n settings[attr] = this.encrypt(settings[attr]);\n }\n });\n\n return true;\n }\n\n /**\n * Gets called after the settings are loaded.\n * You may override this if needed.\n * @param {Record<string, any>} settings\n * @param {string[]} encryptedNative optional list of fields to be decrypted\n */\n onPrepareLoad(settings, encryptedNative) {\n // here you can encode values\n this.encryptedFields && this.encryptedFields.forEach(attr => {\n if (settings[attr]) {\n settings[attr] = this.decrypt(settings[attr]);\n }\n });\n encryptedNative && encryptedNative.forEach(attr => {\n this.encryptedFields = this.encryptedFields || [];\n !this.encryptedFields.includes(attr) && this.encryptedFields.push(attr);\n if (settings[attr]) {\n settings[attr] = this.decrypt(settings[attr]);\n }\n });\n }\n\n /**\n * Gets the extendable instances.\n * @returns {Promise<any[]>}\n */\n getExtendableInstances() {\n return new Promise(resolve => {\n this.socket._socket.emit('getObjectView', 'system', 'instance', null, (err, doc) => {\n if (err) {\n resolve([]);\n } else {\n resolve(doc.rows\n .filter(item => item.value.common.webExtendable)\n .map(item => item.value)\n );\n }\n });\n });\n }\n\n /**\n * Gets the IP addresses of the given host.\n * @param {string} host\n */\n getIpAddresses(host) {\n return new Promise((resolve, reject) => {\n this.socket._socket.emit('getHostByIp', host || this.common.host, (ip, _host) => {\n const IPs4 = [{ name: `[IPv4] 0.0.0.0 - ${I18n.t('ra_Listen on all IPs')}`, address: '0.0.0.0', family: 'ipv4' }];\n const IPs6 = [{ name: '[IPv6] ::', address: '::', family: 'ipv6' }];\n if (_host) {\n host = _host;\n if (host.native.hardware && host.native.hardware.networkInterfaces) {\n Object.keys(host.native.hardware.networkInterfaces).forEach(eth =>\n host.native.hardware.networkInterfaces[eth].forEach(inter => {\n if (inter.family !== 'IPv6') {\n IPs4.push({ name: `[${inter.family}] ${inter.address} - ${eth}`, address: inter.address, family: 'ipv4' });\n } else {\n IPs6.push({ name: `[${inter.family}] ${inter.address} - ${eth}`, address: inter.address, family: 'ipv6' });\n }\n }));\n }\n IPs6.forEach(ip => IPs4.push(ip));\n }\n resolve(IPs4);\n });\n });\n }\n\n /**\n * Saves the settings to the server.\n * @param {boolean} isClose True if the user is closing the dialog.\n */\n onSave(isClose) {\n let oldObj;\n if (this.state.isConfigurationError) {\n this.setState({ errorText: this.state.isConfigurationError });\n return;\n }\n\n this.socket.getObject(this.instanceId)\n .then(_oldObj => {\n oldObj = _oldObj || {};\n\n for (const a in this.state.native) {\n if (this.state.native.hasOwnProperty(a)) {\n if (this.state.native[a] === null) {\n oldObj.native[a] = null;\n } else\n if (this.state.native[a] !== undefined) {\n oldObj.native[a] = JSON.parse(JSON.stringify(this.state.native[a]));\n } else {\n delete oldObj.native[a];\n }\n }\n }\n\n if (this.state.common) {\n for (const b in this.state.common) {\n if (this.state.common[b] === null) {\n oldObj.common[b] = null;\n } else\n if (this.state.common[b] !== undefined) {\n oldObj.common[b] = JSON.parse(JSON.stringify(this.state.common[b]));\n } else {\n delete oldObj.common[b];\n }\n }\n }\n\n if (this.onPrepareSave(oldObj.native) !== false) {\n return this.socket.setObject(this.instanceId, oldObj);\n } else {\n return Promise.reject('Invalid configuration');\n }\n })\n .then(() => {\n this.savedNative = oldObj.native;\n globalThis.changed = false;\n try {\n window.parent.postMessage('nochange', '*');\n } catch (e) {\n // ignore\n }\n\n this.setState({ changed: false });\n isClose && GenericApp.onClose();\n })\n .catch(e => {\n console.error(`Cannot save configuration: ${e}`);\n });\n }\n\n /**\n * Renders the toast.\n * @returns {JSX.Element | null} The JSX element.\n */\n renderToast() {\n if (!this.state.toast) {\n return null;\n }\n\n return <Snackbar\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'left',\n }}\n open={!0}\n autoHideDuration={6000}\n onClose={() => this.setState({ toast: '' })}\n ContentProps={{ 'aria-describedby': 'message-id' }}\n message={<span id=\"message-id\">{this.state.toast}</span>}\n action={[\n <IconButton\n key=\"close\"\n aria-label=\"Close\"\n color=\"inherit\"\n className={this.props.classes.close}\n onClick={() => this.setState({ toast: '' })}\n size=\"large\">\n <IconClose />\n </IconButton>,\n ]}\n />;\n }\n\n /**\n * Closes the dialog.\n * @private\n */\n static onClose() {\n if (typeof window.parent !== 'undefined' && window.parent) {\n try {\n if (window.parent.$iframeDialog && typeof window.parent.$iframeDialog.close === 'function') {\n window.parent.$iframeDialog.close();\n } else {\n window.parent.postMessage('close', '*');\n }\n } catch (e) {\n window.parent.postMessage('close', '*');\n }\n }\n }\n\n /**\n * Renders the error dialog.\n * @returns {JSX.Element | null} The JSX element.\n */\n renderError() {\n if (!this.state.errorText) {\n return null;\n } else {\n return <DialogError text={this.state.errorText} onClose={() => this.setState({ errorText: '' })}/>;\n }\n }\n\n /**\n * Checks if the configuration has changed.\n * @param {Record<string, any>} [native] the new state\n */\n getIsChanged(native) {\n native = native || this.state.native;\n const isChanged = JSON.stringify(native) !== JSON.stringify(this.savedNative);\n\n globalThis.changed = isChanged;\n\n return isChanged;\n }\n\n /**\n * Gets called when loading the configuration.\n * @param {Record<string, any>} newNative The new configuration object.\n */\n onLoadConfig(newNative) {\n if (JSON.stringify(newNative) !== JSON.stringify(this.state.native)) {\n this.setState({ native: newNative, changed: this.getIsChanged(newNative) })\n }\n }\n\n /**\n * Sets the configuration error.\n * @param {string} errorText\n */\n setConfigurationError(errorText) {\n if (this.state.isConfigurationError !== errorText) {\n this.setState({ isConfigurationError: errorText });\n }\n }\n\n /**\n * Renders the save and close buttons.\n * @returns {JSX.Element | undefined} The JSX element.\n */\n renderSaveCloseButtons() {\n if (!this.state.confirmClose && !this.state.bottomButtons) {\n return null;\n }\n\n return <>\n {this.state.bottomButtons ? <SaveCloseButtons\n theme={this.state.theme}\n newReact={this.newReact}\n noTextOnButtons={this.state.width === 'xs' || this.state.width === 'sm' || this.state.width === 'md'}\n changed={this.state.changed}\n onSave={isClose => this.onSave(isClose)}\n onClose={() => {\n if (this.state.changed) {\n this.setState({ confirmClose: true });\n } else {\n GenericApp.onClose();\n }\n }}\n /> : null}\n {this.state.confirmClose ? <ConfirmDialog\n title={I18n.t('ra_Please confirm')}\n text={I18n.t('ra_Some data are not stored. Discard?')}\n ok={I18n.t('ra_Discard')}\n cancel={I18n.t('ra_Cancel')}\n onClose={isYes =>\n this.setState({ confirmClose: false }, () =>\n isYes && GenericApp.onClose())}\n /> : null}\n </>;\n }\n\n /**\n * @private\n * @param {Record<string, any>} obj\n * @param {any} attrs\n * @param {any} value\n * @returns {boolean | undefined}\n */\n _updateNativeValue(obj, attrs, value) {\n if (typeof attrs !== 'object') {\n attrs = attrs.split('.');\n }\n const attr = attrs.shift();\n if (!attrs.length) {\n if (value && typeof value === 'object') {\n if (JSON.stringify(obj[attr]) !== JSON.stringify(value)) {\n obj[attr] = value;\n return true;\n }\n } else if (obj[attr] !== value) {\n obj[attr] = value;\n return true;\n } else {\n return false;\n }\n\n } else {\n obj[attr] = obj[attr] || {};\n if (typeof obj[attr] !== 'object') {\n throw new Error(`attribute ${attr} is no object, but ${typeof obj[attr]}`);\n }\n return this._updateNativeValue(obj[attr], attrs, value);\n }\n }\n\n /**\n * Update the native value\n * @param {string} attr The attribute name with dots as delimiter.\n * @param {any} value The new value.\n * @param {(() => void)} [cb] Callback which will be called upon completion.\n */\n updateNativeValue(attr, value, cb) {\n const native = JSON.parse(JSON.stringify(this.state.native));\n if (this._updateNativeValue(native, attr, value)) {\n const changed = this.getIsChanged(native);\n\n if (changed !== this.state.changed) {\n try {\n window.parent.postMessage(changed ? 'change' : 'nochange', '*');\n } catch (e) {\n // ignore\n }\n }\n\n this.setState({ native, changed }, cb);\n }\n }\n\n /**\n * Set the error text to be shown.\n * @param {string | JSX.Element} text\n */\n showError(text) {\n this.setState({ errorText: text });\n }\n\n /**\n * Sets the toast to be shown.\n * @param {string} toast\n */\n showToast(toast) {\n this.setState({ toast });\n }\n\n /**\n * Renders this component.\n * @returns {JSX.Element} The JSX element.\n */\n render() {\n if (!this.state.loaded) {\n return <Loader theme={this.state.themeType}/>;\n }\n\n return <div className=\"App\">\n {this.renderError()}\n {this.renderToast()}\n {this.renderSaveCloseButtons()}\n </div>;\n }\n}\n\nGenericApp.propTypes = {\n adapterName: PropTypes.string, // (optional) name of adapter\n onThemeChange: PropTypes.func, // (optional) called by theme change\n socket: PropTypes.object, // (optional) socket information (host, port)\n encryptedFields: PropTypes.array, // (optional) list of native attributes, that must be encrypted\n bottomButtons: PropTypes.bool, // If the bottom buttons (Save/Close) must be shown\n Connection: PropTypes.object, // If the bottom buttons (Save/Close) must be shown\n};\n\nexport default GenericApp;\n"],"mappings":"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"}
1
+ {"version":3,"file":"GenericApp.js","names":["cssStyle","window","localStorage","getItem","setItem","GenericApp","props","settings","ConnectionClass","Connection","document","getElementById","style","createElement","setAttribute","innerHTML","head","appendChild","isWeb","io","location","port","SocketClient","e","id","obj","socket","systemLang","common","language","I18n","setLanguage","_systemConfig","expertMode","setState","getExpertMode","message","data","newThemeName","Utils","getThemeName","setThemeName","theme","createTheme","themeName","themeType","getThemeType","onThemeChange","onThemeChanged","onToggleExpertMode","console","debug","JSON","stringify","resizeTimer","clearTimeout","setTimeout","width","getWidth","printPrompt","query","search","replace","args","trim","split","filter","t","forEach","b","parts","length","instance","undefined","parseInt","slice","tmp","pathname","adapterName","instanceId","newReact","Router","getLocation","tab","_localStorage","themeInstance","state","selectedTab","selectedTabNum","errorText","changed","connected","loaded","isConfigurationError","toast","bottomButtons","confirmClose","translations","require","Object","keys","lang","assign","setTranslations","savedNative","encryptedFields","sentryDSN","socketUrl","startsWith","protocol","hostname","name","doNotLoadAllObjects","onProgress","progress","PROGRESS","CONNECTING","READY","onReady","objects","scripts","subscribeObject","onSystemConfigChanged","then","getSystemConfig","_secret","secret","getObject","instanceObj","waitPromise","sentryEnabled","diag","version","disableDataReporting","host","sentryStarted","Sentry","init","dsn","release","integrations","SentryIntegrations","Dedupe","sentryInited","uuidObj","uuid","configureScope","scope","setUser","Promise","resolve","onPrepareLoad","encryptedNative","parse","onConnectionReady","warn","onError","err","error","showError","addEventListener","onResize","onReceiveMessage","removeEventListener","palette","mode","sessionStorage","value","result","i","String","fromCharCode","charCodeAt","selectTab","index","attr","encrypt","decrypt","includes","push","_socket","emit","doc","rows","item","webExtendable","map","reject","ip","_host","IPs4","address","family","IPs6","hardware","networkInterfaces","eth","inter","isClose","oldObj","_oldObj","a","hasOwnProperty","onPrepareSave","setObject","globalThis","parent","postMessage","onClose","vertical","horizontal","classes","close","native","isChanged","newNative","getIsChanged","onSave","isYes","attrs","shift","Error","_updateNativeValue","cb","text","renderError","renderToast","renderSaveCloseButtons","SIZES","xs","sm","md","lg","xl","innerWidth","reverse","widthComputed","find","key","$iframeDialog","propTypes","PropTypes","string","func","object","array","bool"],"sources":["GenericApp.js"],"sourcesContent":["/**\n * Copyright 2018-2022 bluefox <dogafox@gmail.com>\n *\n * MIT License\n *\n **/\nimport React from 'react';\nimport { Connection, PROGRESS } from '@iobroker/socket-client';\nimport PropTypes from 'prop-types';\nimport * as Sentry from '@sentry/browser';\nimport * as SentryIntegrations from '@sentry/integrations';\n\nimport DialogError from './Dialogs/Error';\nimport Snackbar from '@mui/material/Snackbar';\nimport IconButton from '@mui/material/IconButton';\n\nimport IconClose from '@mui/icons-material/Close';\n\nimport printPrompt from './Prompt';\nimport theme from './Theme';\nimport Loader from './Components/Loader';\nimport Router from './Components/Router';\nimport Utils from './Components/Utils';\nimport SaveCloseButtons from './Components/SaveCloseButtons';\nimport ConfirmDialog from './Dialogs/Confirm';\nimport I18n from './i18n';\n\n// import './index.css';\nconst cssStyle = `\nhtml {\n height: 100%;\n}\n\nbody {\n margin: 0;\n padding: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Roboto\", \"Oxygen\", \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\", sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n width: 100%;\n height: 100%;\n overflow: hidden;\n}\n\n/* scrollbar */\n::-webkit-scrollbar-track {\n background-color: #ccc;\n border-radius: 5px;\n}\n\n::-webkit-scrollbar {\n width: 5px;\n height: 5px;\n background-color: #ccc;\n}\n\n::-webkit-scrollbar-thumb {\n background-color: #575757;\n border-radius: 5px;\n}\n\n#root {\n height: 100%;\n}\n\n.App {\n height: 100%;\n}\n\n@keyframes glow {\n from {\n background-color: initial;\n }\n to {\n background-color: #58c458;\n }\n}\n`;\n\nif (!window.localStorage) {\n window.localStorage = {\n getItem: () => null,\n setItem: () => null,\n };\n}\n\n/**\n * @extends {Router<import('./types').GenericAppProps, import('./types').GenericAppState>}\n */\nclass GenericApp extends Router {\n /**\n * @param {import('./types').GenericAppProps} props\n * @param {import('./types').GenericAppSettings | undefined} settings\n */\n constructor(props, settings) {\n const ConnectionClass = props.Connection || settings.Connection || Connection;\n // const ConnectionClass = props.Connection === 'admin' || settings.Connection = 'admin' ? AdminConnection : (props.Connection || settings.Connection || Connection);\n\n if (!window.document.getElementById('generic-app-iobroker-component')) {\n const style = window.document.createElement('style');\n style.setAttribute('id', 'generic-app-iobroker-component');\n style.innerHTML = cssStyle;\n window.document.head.appendChild(style);\n }\n\n // Remove `!Connection.isWeb() && window.adapterName !== 'material'` when iobroker.socket will support native ws\n if (!ConnectionClass.isWeb() && window.io && window.location.port === '3000') {\n try {\n const io = new window.SocketClient();\n delete window.io;\n window.io = io;\n } catch (e) {\n // ignore\n }\n }\n\n super(props);\n\n printPrompt();\n\n let query = (window.location.search || '').replace(/^\\?/, '').replace(/#.*$/, '');\n let args = {};\n query.trim().split('&').filter(t => t.trim()).forEach(b => {\n const parts = b.split('=');\n args[parts[0]] = parts.length === 2 ? parts[1] : true;\n if (args[parts[0]] === 'true') {\n args[parts[0]] = true;\n } else if (args[parts[0]] === 'false') {\n args[parts[0]] = false;\n }\n });\n\n // extract instance from URL\n this.instance = args.instance !== undefined ? parseInt(args.instance, 10) || 0 : (parseInt(window.location.search.slice(1), 10) || 0);\n // extract adapter name from URL\n const tmp = window.location.pathname.split('/');\n this.adapterName = settings?.adapterName || props.adapterName || window.adapterName || tmp[tmp.length - 2] || 'iot';\n this.instanceId = `system.adapter.${this.adapterName}.${this.instance}`;\n this.newReact = args.newReact === true; // it is admin5\n\n const location = Router.getLocation();\n location.tab = location.tab || (window._localStorage || window.localStorage).getItem(`${this.adapterName}-adapter`) || '';\n\n const themeInstance = this.createTheme();\n\n this.state = {\n selectedTab: (window._localStorage || window.localStorage).getItem(`${this.adapterName}-adapter`) || '',\n selectedTabNum: -1,\n native: {},\n errorText: '',\n changed: false,\n connected: false,\n loaded: false,\n isConfigurationError: '',\n expertMode: false,\n toast: '',\n theme: themeInstance,\n themeName: this.getThemeName(themeInstance),\n themeType: this.getThemeType(themeInstance),\n bottomButtons: (settings && settings.bottomButtons) === false ? false : ((props && props.bottomButtons) === false ? false : true),\n width: GenericApp.getWidth(),\n confirmClose: false,\n };\n\n // init translations\n const translations = {\n 'en': require('./i18n/en.json'),\n 'de': require('./i18n/de.json'),\n 'ru': require('./i18n/ru.json'),\n 'pt': require('./i18n/pt.json'),\n 'nl': require('./i18n/nl.json'),\n 'fr': require('./i18n/fr.json'),\n 'it': require('./i18n/it.json'),\n 'es': require('./i18n/es.json'),\n 'pl': require('./i18n/pl.json'),\n 'uk': require('./i18n/uk.json'),\n 'zh-cn': require('./i18n/zh-cn.json'),\n };\n\n // merge together\n if (settings && settings.translations) {\n Object.keys(settings.translations).forEach(lang => translations[lang] = Object.assign(translations[lang], settings.translations[lang]));\n } else if (props.translations) {\n Object.keys(props.translations).forEach(lang => translations[lang] = Object.assign(translations[lang], props.translations[lang]));\n }\n\n I18n.setTranslations(translations);\n\n this.savedNative = {}; // to detect if the config changed\n\n this.encryptedFields = props.encryptedFields || settings?.encryptedFields || [];\n\n this.sentryDSN = (settings && settings.sentryDSN) || props.sentryDSN;\n\n if (window.socketUrl) {\n if (window.socketUrl.startsWith(':')) {\n window.socketUrl = `${window.location.protocol}//${window.location.hostname}${window.socketUrl}`;\n } else if (!window.socketUrl.startsWith('http://') && !window.socketUrl.startsWith('https://')) {\n window.socketUrl = `${window.location.protocol}//${window.socketUrl}`;\n }\n }\n\n this.socket = new ConnectionClass({\n ...(props?.socket || settings?.socket),\n name: this.adapterName,\n doNotLoadAllObjects: settings?.doNotLoadAllObjects,\n onProgress: progress => {\n if (progress === PROGRESS.CONNECTING) {\n this.setState({ connected: false });\n } else if (progress === PROGRESS.READY) {\n this.setState({ connected: true });\n } else {\n this.setState({ connected: true });\n }\n },\n onReady: (objects, scripts) => {\n I18n.setLanguage(this.socket.systemLang);\n\n // subscribe because of language and expert mode\n this.socket.subscribeObject('system.config', this.onSystemConfigChanged)\n .then(() => this.getSystemConfig())\n .then(obj => {\n this._secret = (typeof obj !== 'undefined' && obj.native && obj.native.secret) || 'Zgfr56gFe87jJOM';\n this._systemConfig = obj?.common || {};\n return this.socket.getObject(this.instanceId);\n })\n .then(instanceObj => {\n let waitPromise;\n\n const sentryEnabled =\n this._systemConfig.diag !== 'none' &&\n instanceObj &&\n instanceObj.common &&\n instanceObj.common.name &&\n instanceObj.common.version &&\n !instanceObj.common.disableDataReporting &&\n window.location.host !== 'localhost:3000';\n\n // activate sentry plugin\n if (!this.sentryStarted && this.sentryDSN && sentryEnabled) {\n this.sentryStarted = true;\n\n Sentry.init({\n dsn: this.sentryDSN,\n release: `iobroker.${instanceObj.common.name}@${instanceObj.common.version}`,\n integrations: [\n new SentryIntegrations.Dedupe()\n ]\n });\n }\n\n // read UUID and init sentry with it.\n // for backward compatibility it will be processed separately from above logic: some adapters could still have this.sentryDSN as undefined\n if (!this.sentryInited && sentryEnabled) {\n this.sentryInited = true;\n\n waitPromise = this.socket.getObject('system.meta.uuid')\n .then(uuidObj => {\n if (uuidObj && uuidObj.native && uuidObj.native.uuid) {\n Sentry.configureScope(scope =>\n scope.setUser({id: uuidObj.native.uuid}));\n }\n });\n }\n\n waitPromise = waitPromise || Promise.resolve();\n\n waitPromise\n .then(() => {\n if (instanceObj) {\n this.common = instanceObj?.common;\n this.onPrepareLoad(instanceObj.native, instanceObj.encryptedNative); // decode all secrets\n this.savedNative = JSON.parse(JSON.stringify(instanceObj.native));\n this.setState({ native: instanceObj.native, loaded: true, expertMode: this.getExpertMode() }, () =>\n this.onConnectionReady && this.onConnectionReady());\n } else {\n console.warn('Cannot load instance settings');\n this.setState({ native: {}, loaded: true, expertMode: this.getExpertMode()},\n () => this.onConnectionReady && this.onConnectionReady());\n }\n });\n });\n },\n onError: err => {\n console.error(err);\n this.showError(err);\n }\n });\n }\n\n onSystemConfigChanged = (id, obj) => {\n if (obj && id === 'system.config') {\n if (this.socket.systemLang !== obj?.common.language) {\n this.socket.systemLang = obj?.common.language || 'en';\n I18n.setLanguage(this.socket.systemLang);\n }\n\n if (this._systemConfig.expertMode !== !!obj?.common?.expertMode) {\n this._systemConfig = obj?.common || {};\n this.setState({ expertMode: this.getExpertMode() });\n } else {\n this._systemConfig = obj?.common || {};\n }\n }\n }\n\n /**\n * Called immediately after a component is mounted. Setting state here will trigger re-rendering.\n */\n componentDidMount() {\n window.addEventListener('resize', this.onResize, true);\n window.addEventListener('message', this.onReceiveMessage, false);\n super.componentDidMount();\n }\n\n /**\n * Called immediately before a component is destroyed.\n */\n componentWillUnmount() {\n window.removeEventListener('resize', this.onResize, true);\n window.removeEventListener('message', this.onReceiveMessage, false);\n super.componentWillUnmount();\n }\n\n onReceiveMessage = message => {\n if (message?.data) {\n if (message.data === 'updateTheme') {\n const newThemeName = Utils.getThemeName()\n Utils.setThemeName(Utils.getThemeName());\n\n const theme = this.createTheme(newThemeName);\n\n this.setState({\n theme,\n themeName: this.getThemeName(theme),\n themeType: this.getThemeType(theme)\n }, () => {\n this.props.onThemeChange && this.props.onThemeChange(newThemeName);\n this.onThemeChanged && this.onThemeChanged(newThemeName);\n });\n } else if (message.data === 'updateExpertMode') {\n this.onToggleExpertMode && this.onToggleExpertMode(this.getExpertMode());\n } else if (message.data !== 'chartReady') { // if not \"echart ready\" message\n console.debug(`Received unknown message: \"${JSON.stringify(message.data)}\". May be it will be processed later`);\n }\n }\n };\n\n /**\n * @private\n */\n onResize = () => {\n this.resizeTimer && clearTimeout(this.resizeTimer);\n this.resizeTimer = setTimeout(() => {\n this.resizeTimer = null;\n this.setState({ width: GenericApp.getWidth() });\n }, 200);\n };\n\n /**\n * Gets the width depending on the window inner width.\n * @returns {import('./types').Width}\n */\n static getWidth() {\n /**\n * innerWidth |xs sm md lg xl\n * |-------|-------|-------|-------|------>\n * width | xs | sm | md | lg | xl\n */\n\n const SIZES = {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920\n };\n const width = window.innerWidth;\n const keys = Object.keys(SIZES).reverse();\n const widthComputed = keys.find(key => width >= SIZES[key]);\n\n return widthComputed || 'xs';\n }\n\n /**\n * Get a theme\n * @param {string} name Theme name\n * @returns {import('./types').Theme}\n */\n createTheme(name = '') {\n return theme(Utils.getThemeName(name));\n }\n\n /**\n * Get the theme name\n * @param {import('./types').Theme} theme Theme\n * @returns {string} Theme name\n */\n getThemeName(theme) {\n return theme.name;\n }\n\n /**\n * Get the theme type\n * @param {import('./types').Theme} theme Theme\n * @returns {string} Theme type\n */\n getThemeType(theme) {\n return theme.palette.mode;\n }\n\n /**\n * Changes the current theme\n */\n toggleTheme() {\n const themeName = this.state.themeName;\n\n // dark => blue => colored => light => dark\n const newThemeName = themeName === 'dark' ? 'blue' :\n (themeName === 'blue' ? 'colored' :\n (themeName === 'colored' ? 'light' : 'dark'));\n\n Utils.setThemeName(newThemeName);\n\n const theme = this.createTheme(newThemeName);\n\n this.setState({\n theme,\n themeName: this.getThemeName(theme),\n themeType: this.getThemeType(theme)\n }, () => {\n this.props.onThemeChange && this.props.onThemeChange(newThemeName);\n this.onThemeChanged && this.onThemeChanged(newThemeName);\n });\n }\n\n /**\n * Gets the system configuration.\n * @returns {Promise<ioBroker.OtherObject>}\n */\n getSystemConfig() {\n return this.socket.getSystemConfig();\n }\n\n /**\n * Get current expert mode\n * @returns {boolean}\n */\n getExpertMode() {\n return window.sessionStorage.getItem('App.expertMode') === 'true' || !!this._systemConfig.expertMode;\n }\n\n /**\n * Gets called when the socket.io connection is ready.\n * You can overload this function to execute own commands.\n */\n onConnectionReady() {\n }\n\n /**\n * Encrypts a string.\n * @param {string} value\n * @returns {string}\n */\n encrypt(value) {\n let result = '';\n for (let i = 0; i < value.length; i++) {\n result += String.fromCharCode(this._secret[i % this._secret.length].charCodeAt(0) ^ value.charCodeAt(i));\n }\n return result;\n }\n\n /**\n * Decrypts a string.\n * @param {string} value\n * @returns {string}\n */\n decrypt(value) {\n let result = '';\n for (let i = 0; i < value.length; i++) {\n result += String.fromCharCode(this._secret[i % this._secret.length].charCodeAt(0) ^ value.charCodeAt(i));\n }\n return result;\n }\n\n /**\n * Gets called when the navigation hash changes.\n * You may override this if needed.\n */\n onHashChanged() {\n const location = Router.getLocation();\n if (location.tab !== this.state.selectedTab) {\n this.selectTab(location.tab);\n }\n }\n\n /**\n * Selects the given tab.\n * @param {string} tab\n * @param {number} [index]\n */\n selectTab(tab, index) {\n (window._localStorage || window.localStorage).setItem(this.adapterName + '-adapter', tab);\n this.setState({ selectedTab: tab, selectedTabNum: index })\n }\n\n /**\n * Gets called before the settings are saved.\n * You may override this if needed.\n * @param {Record<string, any>} settings\n */\n onPrepareSave(settings) {\n // here you can encode values\n this.encryptedFields && this.encryptedFields.forEach(attr => {\n if (settings[attr]) {\n settings[attr] = this.encrypt(settings[attr]);\n }\n });\n\n return true;\n }\n\n /**\n * Gets called after the settings are loaded.\n * You may override this if needed.\n * @param {Record<string, any>} settings\n * @param {string[]} encryptedNative optional list of fields to be decrypted\n */\n onPrepareLoad(settings, encryptedNative) {\n // here you can encode values\n this.encryptedFields && this.encryptedFields.forEach(attr => {\n if (settings[attr]) {\n settings[attr] = this.decrypt(settings[attr]);\n }\n });\n encryptedNative && encryptedNative.forEach(attr => {\n this.encryptedFields = this.encryptedFields || [];\n !this.encryptedFields.includes(attr) && this.encryptedFields.push(attr);\n if (settings[attr]) {\n settings[attr] = this.decrypt(settings[attr]);\n }\n });\n }\n\n /**\n * Gets the extendable instances.\n * @returns {Promise<any[]>}\n */\n getExtendableInstances() {\n return new Promise(resolve => {\n this.socket._socket.emit('getObjectView', 'system', 'instance', null, (err, doc) => {\n if (err) {\n resolve([]);\n } else {\n resolve(doc.rows\n .filter(item => item.value.common.webExtendable)\n .map(item => item.value)\n );\n }\n });\n });\n }\n\n /**\n * Gets the IP addresses of the given host.\n * @param {string} host\n */\n getIpAddresses(host) {\n return new Promise((resolve, reject) => {\n this.socket._socket.emit('getHostByIp', host || this.common.host, (ip, _host) => {\n const IPs4 = [{ name: `[IPv4] 0.0.0.0 - ${I18n.t('ra_Listen on all IPs')}`, address: '0.0.0.0', family: 'ipv4' }];\n const IPs6 = [{ name: '[IPv6] ::', address: '::', family: 'ipv6' }];\n if (_host) {\n host = _host;\n if (host.native.hardware && host.native.hardware.networkInterfaces) {\n Object.keys(host.native.hardware.networkInterfaces).forEach(eth =>\n host.native.hardware.networkInterfaces[eth].forEach(inter => {\n if (inter.family !== 'IPv6') {\n IPs4.push({ name: `[${inter.family}] ${inter.address} - ${eth}`, address: inter.address, family: 'ipv4' });\n } else {\n IPs6.push({ name: `[${inter.family}] ${inter.address} - ${eth}`, address: inter.address, family: 'ipv6' });\n }\n }));\n }\n IPs6.forEach(ip => IPs4.push(ip));\n }\n resolve(IPs4);\n });\n });\n }\n\n /**\n * Saves the settings to the server.\n * @param {boolean} isClose True if the user is closing the dialog.\n */\n onSave(isClose) {\n let oldObj;\n if (this.state.isConfigurationError) {\n this.setState({ errorText: this.state.isConfigurationError });\n return;\n }\n\n this.socket.getObject(this.instanceId)\n .then(_oldObj => {\n oldObj = _oldObj || {};\n\n for (const a in this.state.native) {\n if (this.state.native.hasOwnProperty(a)) {\n if (this.state.native[a] === null) {\n oldObj.native[a] = null;\n } else\n if (this.state.native[a] !== undefined) {\n oldObj.native[a] = JSON.parse(JSON.stringify(this.state.native[a]));\n } else {\n delete oldObj.native[a];\n }\n }\n }\n\n if (this.state.common) {\n for (const b in this.state.common) {\n if (this.state.common[b] === null) {\n oldObj.common[b] = null;\n } else\n if (this.state.common[b] !== undefined) {\n oldObj.common[b] = JSON.parse(JSON.stringify(this.state.common[b]));\n } else {\n delete oldObj.common[b];\n }\n }\n }\n\n if (this.onPrepareSave(oldObj.native) !== false) {\n return this.socket.setObject(this.instanceId, oldObj);\n } else {\n return Promise.reject('Invalid configuration');\n }\n })\n .then(() => {\n this.savedNative = oldObj.native;\n globalThis.changed = false;\n try {\n window.parent.postMessage('nochange', '*');\n } catch (e) {\n // ignore\n }\n\n this.setState({ changed: false });\n isClose && GenericApp.onClose();\n })\n .catch(e => {\n console.error(`Cannot save configuration: ${e}`);\n });\n }\n\n /**\n * Renders the toast.\n * @returns {JSX.Element | null} The JSX element.\n */\n renderToast() {\n if (!this.state.toast) {\n return null;\n }\n\n return <Snackbar\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'left',\n }}\n open={!0}\n autoHideDuration={6000}\n onClose={() => this.setState({ toast: '' })}\n ContentProps={{ 'aria-describedby': 'message-id' }}\n message={<span id=\"message-id\">{this.state.toast}</span>}\n action={[\n <IconButton\n key=\"close\"\n aria-label=\"Close\"\n color=\"inherit\"\n className={this.props.classes.close}\n onClick={() => this.setState({ toast: '' })}\n size=\"large\">\n <IconClose />\n </IconButton>,\n ]}\n />;\n }\n\n /**\n * Closes the dialog.\n * @private\n */\n static onClose() {\n if (typeof window.parent !== 'undefined' && window.parent) {\n try {\n if (window.parent.$iframeDialog && typeof window.parent.$iframeDialog.close === 'function') {\n window.parent.$iframeDialog.close();\n } else {\n window.parent.postMessage('close', '*');\n }\n } catch (e) {\n window.parent.postMessage('close', '*');\n }\n }\n }\n\n /**\n * Renders the error dialog.\n * @returns {JSX.Element | null} The JSX element.\n */\n renderError() {\n if (!this.state.errorText) {\n return null;\n } else {\n return <DialogError text={this.state.errorText} onClose={() => this.setState({ errorText: '' })}/>;\n }\n }\n\n /**\n * Checks if the configuration has changed.\n * @param {Record<string, any>} [native] the new state\n */\n getIsChanged(native) {\n native = native || this.state.native;\n const isChanged = JSON.stringify(native) !== JSON.stringify(this.savedNative);\n\n globalThis.changed = isChanged;\n\n return isChanged;\n }\n\n /**\n * Gets called when loading the configuration.\n * @param {Record<string, any>} newNative The new configuration object.\n */\n onLoadConfig(newNative) {\n if (JSON.stringify(newNative) !== JSON.stringify(this.state.native)) {\n this.setState({ native: newNative, changed: this.getIsChanged(newNative) })\n }\n }\n\n /**\n * Sets the configuration error.\n * @param {string} errorText\n */\n setConfigurationError(errorText) {\n if (this.state.isConfigurationError !== errorText) {\n this.setState({ isConfigurationError: errorText });\n }\n }\n\n /**\n * Renders the save and close buttons.\n * @returns {JSX.Element | undefined} The JSX element.\n */\n renderSaveCloseButtons() {\n if (!this.state.confirmClose && !this.state.bottomButtons) {\n return null;\n }\n\n return <>\n {this.state.bottomButtons ? <SaveCloseButtons\n theme={this.state.theme}\n newReact={this.newReact}\n noTextOnButtons={this.state.width === 'xs' || this.state.width === 'sm' || this.state.width === 'md'}\n changed={this.state.changed}\n onSave={isClose => this.onSave(isClose)}\n onClose={() => {\n if (this.state.changed) {\n this.setState({ confirmClose: true });\n } else {\n GenericApp.onClose();\n }\n }}\n /> : null}\n {this.state.confirmClose ? <ConfirmDialog\n title={I18n.t('ra_Please confirm')}\n text={I18n.t('ra_Some data are not stored. Discard?')}\n ok={I18n.t('ra_Discard')}\n cancel={I18n.t('ra_Cancel')}\n onClose={isYes =>\n this.setState({ confirmClose: false }, () =>\n isYes && GenericApp.onClose())}\n /> : null}\n </>;\n }\n\n /**\n * @private\n * @param {Record<string, any>} obj\n * @param {any} attrs\n * @param {any} value\n * @returns {boolean | undefined}\n */\n _updateNativeValue(obj, attrs, value) {\n if (typeof attrs !== 'object') {\n attrs = attrs.split('.');\n }\n const attr = attrs.shift();\n if (!attrs.length) {\n if (value && typeof value === 'object') {\n if (JSON.stringify(obj[attr]) !== JSON.stringify(value)) {\n obj[attr] = value;\n return true;\n }\n } else if (obj[attr] !== value) {\n obj[attr] = value;\n return true;\n } else {\n return false;\n }\n\n } else {\n obj[attr] = obj[attr] || {};\n if (typeof obj[attr] !== 'object') {\n throw new Error(`attribute ${attr} is no object, but ${typeof obj[attr]}`);\n }\n return this._updateNativeValue(obj[attr], attrs, value);\n }\n }\n\n /**\n * Update the native value\n * @param {string} attr The attribute name with dots as delimiter.\n * @param {any} value The new value.\n * @param {(() => void)} [cb] Callback which will be called upon completion.\n */\n updateNativeValue(attr, value, cb) {\n const native = JSON.parse(JSON.stringify(this.state.native));\n if (this._updateNativeValue(native, attr, value)) {\n const changed = this.getIsChanged(native);\n\n if (changed !== this.state.changed) {\n try {\n window.parent.postMessage(changed ? 'change' : 'nochange', '*');\n } catch (e) {\n // ignore\n }\n }\n\n this.setState({ native, changed }, cb);\n }\n }\n\n /**\n * Set the error text to be shown.\n * @param {string | JSX.Element} text\n */\n showError(text) {\n this.setState({ errorText: text });\n }\n\n /**\n * Sets the toast to be shown.\n * @param {string} toast\n */\n showToast(toast) {\n this.setState({ toast });\n }\n\n /**\n * Renders this component.\n * @returns {JSX.Element} The JSX element.\n */\n render() {\n if (!this.state.loaded) {\n return <Loader theme={this.state.themeType}/>;\n }\n\n return <div className=\"App\">\n {this.renderError()}\n {this.renderToast()}\n {this.renderSaveCloseButtons()}\n </div>;\n }\n}\n\nGenericApp.propTypes = {\n adapterName: PropTypes.string, // (optional) name of adapter\n onThemeChange: PropTypes.func, // (optional) called by theme change\n socket: PropTypes.object, // (optional) socket information (host, port)\n encryptedFields: PropTypes.array, // (optional) list of native attributes, that must be encrypted\n bottomButtons: PropTypes.bool, // If the bottom buttons (Save/Close) must be shown\n Connection: PropTypes.object, // If the bottom buttons (Save/Close) must be shown\n};\n\nexport default GenericApp;\n"],"mappings":"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"}
package/README.md CHANGED
@@ -10,7 +10,7 @@ If you want to create the configuration page with react:
10
10
  - Change `name` from `src` to `ADAPTERNAME-admin` (Of course replace `ADAPTERNAME` with yours)
11
11
  - Add to devDependencies:
12
12
  ```
13
- "@iobroker/adapter-react": "^4.0.9",
13
+ "@iobroker/adapter-react": "^4.0.10",
14
14
  ```
15
15
  Versions can be higher.
16
16
  So your src/package.json should look like:
@@ -661,6 +661,14 @@ socket.getObjectViewCustom('custom', 'state', 'startKey', 'endKey')
661
661
  -->
662
662
 
663
663
  ## Changelog
664
+ ### 4.0.11 (2023-02-14)
665
+ * (bluefox) Updated packages
666
+ * (bluefox) The `chartReady` event was omitted
667
+
668
+ ### 4.0.10 (2023-02-10)
669
+ * (bluefox) Updated packages
670
+ * (bluefox) made the fix for `material`
671
+
664
672
  ### 4.0.9 (2023-02-02)
665
673
  * (bluefox) Updated packages
666
674
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iobroker/adapter-react-v5",
3
- "version": "4.0.9",
3
+ "version": "4.0.11",
4
4
  "description": "React classes to develop admin interfaces for ioBroker with react.",
5
5
  "author": {
6
6
  "name": "bluefox",
@@ -30,13 +30,13 @@
30
30
  "@emotion/react": "^11.10.5",
31
31
  "@emotion/styled": "^11.10.5",
32
32
  "@mui/icons-material": "^5.11.0",
33
- "@mui/material": "^5.11.7",
33
+ "@mui/material": "^5.11.8",
34
34
  "@mui/styles": "^5.11.7",
35
- "@mui/x-date-pickers": "5.0.17",
36
- "@iobroker/socket-client": "^2.0.2",
35
+ "@mui/x-date-pickers": "5.0.18",
36
+ "@iobroker/socket-client": "^2.0.3",
37
37
  "react-cropper": "^2.1.8",
38
- "@sentry/browser": "^7.36.0",
39
- "@sentry/integrations": "^7.36.0",
38
+ "@sentry/browser": "^7.37.2",
39
+ "@sentry/integrations": "^7.37.2",
40
40
  "@types/iobroker": "^4.0.5",
41
41
  "react-color": "^2.19.3",
42
42
  "react-colorful": "^5.6.1",