@iobroker/adapter-react-v5 4.2.1 → 4.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) hide show
  1. package/AdminConnection.js.map +1 -1
  2. package/Components/404.js +11 -14
  3. package/Components/404.js.map +1 -1
  4. package/Components/ColorPicker.js +2 -2
  5. package/Components/ColorPicker.js.map +1 -1
  6. package/Components/ComplexCron.d.ts +1 -1
  7. package/Components/ComplexCron.js +40 -50
  8. package/Components/ComplexCron.js.map +1 -1
  9. package/Components/CustomModal.js +8 -12
  10. package/Components/CustomModal.js.map +1 -1
  11. package/Components/FileBrowser.js +3 -2
  12. package/Components/FileBrowser.js.map +1 -1
  13. package/Components/FileViewer.d.ts +0 -2
  14. package/Components/FileViewer.js +25 -35
  15. package/Components/FileViewer.js.map +1 -1
  16. package/Components/Icon.d.ts +0 -2
  17. package/Components/Icon.js +37 -46
  18. package/Components/Icon.js.map +1 -1
  19. package/Components/IconPicker.js +8 -10
  20. package/Components/IconPicker.js.map +1 -1
  21. package/Components/IconSelector.js +1830 -1841
  22. package/Components/IconSelector.js.map +1 -1
  23. package/Components/Image.js +18 -17
  24. package/Components/Image.js.map +1 -1
  25. package/Components/JsonConfigComponent/ConfigTable.js +357 -38
  26. package/Components/JsonConfigComponent/ConfigTable.js.map +1 -1
  27. package/Components/Loader.js +9 -9
  28. package/Components/Loader.js.map +1 -1
  29. package/Components/Loaders/PT.js +2 -2
  30. package/Components/Loaders/PT.js.map +1 -1
  31. package/Components/Loaders/Vendor.d.ts +0 -7
  32. package/Components/Loaders/Vendor.js +1 -4
  33. package/Components/Loaders/Vendor.js.map +1 -1
  34. package/Components/Logo.js +16 -18
  35. package/Components/Logo.js.map +1 -1
  36. package/Components/MDUtils.js +2 -3
  37. package/Components/MDUtils.js.map +1 -1
  38. package/Components/ObjectBrowser.d.ts +20 -6
  39. package/Components/ObjectBrowser.js +635 -610
  40. package/Components/ObjectBrowser.js.map +1 -1
  41. package/Components/Router.d.ts +1 -1
  42. package/Components/Router.js +6 -6
  43. package/Components/Router.js.map +1 -1
  44. package/Components/SaveCloseButtons.d.ts +0 -1
  45. package/Components/SaveCloseButtons.js +17 -17
  46. package/Components/SaveCloseButtons.js.map +1 -1
  47. package/Components/Schedule.d.ts +1 -1
  48. package/Components/Schedule.js +171 -162
  49. package/Components/Schedule.js.map +1 -1
  50. package/Components/SelectWithIcon.d.ts +1 -1
  51. package/Components/SelectWithIcon.js +12 -11
  52. package/Components/SelectWithIcon.js.map +1 -1
  53. package/Components/SimpleCron/cron2text.js +71 -74
  54. package/Components/SimpleCron/cron2text.js.map +1 -1
  55. package/Components/SimpleCron/cronText.js +1 -1
  56. package/Components/SimpleCron/cronText.js.map +1 -1
  57. package/Components/SimpleCron/index.d.ts +1 -1
  58. package/Components/SimpleCron/index.js +3 -4
  59. package/Components/SimpleCron/index.js.map +1 -1
  60. package/Components/SimpleCron/jquery.cron.locale.js +77 -74
  61. package/Components/SimpleCron/jquery.cron.locale.js.map +1 -1
  62. package/Components/TabContainer.js +6 -7
  63. package/Components/TabContainer.js.map +1 -1
  64. package/Components/TabContent.js +4 -4
  65. package/Components/TabContent.js.map +1 -1
  66. package/Components/TabHeader.js +2 -2
  67. package/Components/TabHeader.js.map +1 -1
  68. package/Components/TableResize.js +6 -6
  69. package/Components/TableResize.js.map +1 -1
  70. package/Components/TextWithIcon.js +6 -3
  71. package/Components/TextWithIcon.js.map +1 -1
  72. package/Components/ToggleThemeMenu.d.ts +1 -1
  73. package/Components/ToggleThemeMenu.js +5 -8
  74. package/Components/ToggleThemeMenu.js.map +1 -1
  75. package/Components/TreeTable.js +170 -201
  76. package/Components/TreeTable.js.map +1 -1
  77. package/Components/UploadImage.js +11 -12
  78. package/Components/UploadImage.js.map +1 -1
  79. package/Components/Utils.d.ts +14 -7
  80. package/Components/Utils.js +219 -202
  81. package/Components/Utils.js.map +1 -1
  82. package/Components/copy-to-clipboard.js +8 -9
  83. package/Components/copy-to-clipboard.js.map +1 -1
  84. package/Components/withWidth.js.map +1 -1
  85. package/Connection.js.map +1 -1
  86. package/Dialogs/ComplexCron.d.ts +1 -3
  87. package/Dialogs/ComplexCron.js +2 -4
  88. package/Dialogs/ComplexCron.js.map +1 -1
  89. package/Dialogs/Confirm.d.ts +1 -1
  90. package/Dialogs/Confirm.js +2 -2
  91. package/Dialogs/Confirm.js.map +1 -1
  92. package/Dialogs/Cron.d.ts +1 -2
  93. package/Dialogs/Cron.js +10 -17
  94. package/Dialogs/Cron.js.map +1 -1
  95. package/Dialogs/Error.d.ts +0 -1
  96. package/Dialogs/Error.js +10 -24
  97. package/Dialogs/Error.js.map +1 -1
  98. package/Dialogs/Message.js.map +1 -1
  99. package/Dialogs/SelectFile.js +2 -2
  100. package/Dialogs/SelectFile.js.map +1 -1
  101. package/Dialogs/SelectID.d.ts +0 -4
  102. package/Dialogs/SelectID.js +3 -7
  103. package/Dialogs/SelectID.js.map +1 -1
  104. package/Dialogs/SimpleCron.d.ts +1 -3
  105. package/Dialogs/SimpleCron.js +3 -5
  106. package/Dialogs/SimpleCron.js.map +1 -1
  107. package/Dialogs/TextInput.d.ts +0 -1
  108. package/Dialogs/TextInput.js +9 -17
  109. package/Dialogs/TextInput.js.map +1 -1
  110. package/GenericApp.js +39 -42
  111. package/GenericApp.js.map +1 -1
  112. package/LegacyConnection.d.ts +6 -6
  113. package/LegacyConnection.js +61 -63
  114. package/LegacyConnection.js.map +1 -1
  115. package/Prompt.js.map +1 -1
  116. package/README.md +19 -10
  117. package/Theme.js +1 -1
  118. package/Theme.js.map +1 -1
  119. package/assets/devices/parseNames.js +1 -1
  120. package/assets/rooms/parseNames.js +1 -1
  121. package/i18n/de.json +12 -1
  122. package/i18n/en.json +12 -1
  123. package/i18n/es.json +12 -1
  124. package/i18n/fr.json +12 -1
  125. package/i18n/it.json +12 -1
  126. package/i18n/nl.json +12 -1
  127. package/i18n/pl.json +12 -1
  128. package/i18n/pt.json +12 -1
  129. package/i18n/ru.json +12 -1
  130. package/i18n/uk.json +12 -1
  131. package/i18n/zh-cn.json +12 -1
  132. package/i18n.d.ts +1 -1
  133. package/i18n.js +20 -18
  134. package/i18n.js.map +1 -1
  135. package/icons/IconAdapter.js.map +1 -1
  136. package/icons/IconAlias.js.map +1 -1
  137. package/icons/IconChannel.js.map +1 -1
  138. package/icons/IconClearFilter.js.map +1 -1
  139. package/icons/IconClosed.js.map +1 -1
  140. package/icons/IconCopy.js.map +1 -1
  141. package/icons/IconDevice.js.map +1 -1
  142. package/icons/IconDocument.js.map +1 -1
  143. package/icons/IconDocumentReadOnly.js.map +1 -1
  144. package/icons/IconExpert.js.map +1 -1
  145. package/icons/IconFx.js.map +1 -1
  146. package/icons/IconInstance.js.map +1 -1
  147. package/icons/IconLogout.js.map +1 -1
  148. package/icons/IconNoIcon.js.map +1 -1
  149. package/icons/IconOpen.js.map +1 -1
  150. package/icons/IconState.js.map +1 -1
  151. package/index.js +0 -1
  152. package/package.json +7 -7
@@ -1 +1 @@
1
- {"version":3,"file":"Utils.js","names":["_react","_interopRequireDefault","require","_copyToClipboard","_i18n","NAMESPACE","days","months","QUALITY_BITS","SIGNATURES","JVBERi0","R0lGODdh","R0lGODlh","iVBORw0KGgo","PHN2Zw","Qk1","AAABAA","Utils","_classCallCheck2","_createClass2","key","value","CapitalWords","name","split","filter","item","map","word","toUpperCase","substring","toLowerCase","join","formatSeconds","seconds","Math","floor","hours","minutes","text","concat","I18n","t","getObjectName","objects","id","settings","options","isDesc","attr","language","common","window","sysLang","_typeof2","en","desc","de","ru","toString","replace","pos","lastIndexOf","trim","getObjectNameFromObj","obj","noTrim","_id","getSettingsOrder","forEnumId","hasOwnProperty","custom","user","subOrder","JSON","parse","stringify","order","getSettingsCustomURLs","subURLs","URLs","reorder","list","source","dest","result","Array","from","_result$splice","splice","_result$splice2","_slicedToArray2","removed","getSettings","defaultEnabling","enabled","undefined","useCustom","useCommon","color","icon","setSettings","s","getIcon","style","length","createElement","startsWith","alt","src","prefix","getObjectIcon","parts","location","pathname","match","splitCamelCase","words","i","z","ww","start","push","k","w","isUseBright","defaultValue","slice","r","g","b","rgb","parseInt","getTimeString","parseFloat","isNaN","secs","getWindDirection","angle","padding","num","setDataFormat","format","dateFormat","indexOf","date2string","now","m","a","year","find","y","day","Date","abs","getTime","date","getDay","getDate","getMonth","renderTextWithA","index","href","target","rel","title","getSmartName","states","instanceId","noCommon","smartName","getSmartNameFromObj","enableSmartName","removeSmartName","updateSmartName","newSmartName","byON","smartType","getLanguage","nnn","_smartName","role","includes","empty","nl","pl","it","fr","pt","es","uk","disableSmartName","copyToClipboard","e","stopPropagation","preventDefault","copy","getFileExtension","fileName","formatBytes","bytes","units","u","toFixed","getInvertedColor","themeType","invert","invertedColor","invertColor","hex","bw","padStart","alfa","console","warn","color2rgb","rgb2lab","pow","x","colorDistance","color1","color2","lab1","lab2","dltL","dltA","dltB","c1","sqrt","c2","dltC","dltH","sc","sh","dltLKlsl","dltCkcsc","dltHkhsh","_toVal","mix","str","isArray","clsx","tmp","arguments","getThemeName","themeName","vendorPrefix","_localStorage","localStorage","getItem","matchMedia","matches","getThemeType","setThemeName","setItem","toggleTheme","themes","getThemeNames","newTheme","parseQuery","query","forEach","part","decodeURIComponent","f","getParentId","p","pop","formatDate","dateObj","mm","dd","getFullYear","v","getHours","getMinutes","getSeconds","getMilliseconds","formatTime","round","d","h","MDtext2link","openLink","url","open","MDgetTitle","_Utils$extractHeader","extractHeader","body","header","lines","MDextractHeader","attrs","_header","line","MDremoveDocsify","doc","generateFile","filename","json","el","document","setAttribute","encodeURIComponent","display","appendChild","click","removeChild","quality2text","quality","clone","object","getStates","_obj$common","ex","error","type","getSvg","fetch","then","response","blob","Promise","resolve","reader","FileReader","onload","readAsDataURL","detectMimeType","base64","signature","Object","keys","_defineProperty2","_default","exports"],"sources":["Utils.js"],"sourcesContent":["/**\n * Copyright 2018-2023 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.startsWith('#')) {\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 the 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 the 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\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.includes('button'))))) {\n delete smartName[language];\n let empty = true;\n // Check if the 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].uk;\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.uk;\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":["_react","_interopRequireDefault","require","_copyToClipboard","_i18n","NAMESPACE","days","months","QUALITY_BITS","SIGNATURES","JVBERi0","R0lGODdh","R0lGODlh","iVBORw0KGgo","PHN2Zw","Qk1","AAABAA","Utils","_classCallCheck2","_createClass2","key","value","CapitalWords","name","split","filter","item","map","word","toUpperCase","substring","toLowerCase","join","formatSeconds","seconds","Math","floor","hours","concat","minutes","text","I18n","t","getObjectName","objects","id","settings","options","isDesc","attr","language","common","window","sysLang","_typeof2","en","desc","de","ru","toString","replace","pos","lastIndexOf","trim","getObjectNameFromObj","obj","noTrim","_id","getSettingsOrder","forEnumId","hasOwnProperty","custom","user","subOrder","JSON","parse","stringify","order","getSettingsCustomURLs","subURLs","URLs","reorder","list","source","dest","result","Array","from","_result$splice","splice","_result$splice2","_slicedToArray2","removed","getSettings","defaultEnabling","enabled","undefined","useCustom","useCommon","color","icon","setSettings","s","getIcon","style","length","createElement","startsWith","alt","src","prefix","getObjectIcon","parts","location","pathname","match","splitCamelCase","words","i","z","ww","start","push","k","w","isUseBright","defaultValue","slice","r","g","b","rgb","parseInt","getTimeString","parseFloat","Number","isNaN","secs","getWindDirection","angle","padding","num","setDataFormat","format","dateFormat","indexOf","date2string","now","m","a","year","find","y","day","Date","abs","getTime","date","getDay","getDate","getMonth","renderTextWithA","index","href","target","rel","title","getSmartName","states","instanceId","noCommon","smartName","getSmartNameFromObj","enableSmartName","removeSmartName","updateSmartName","newSmartName","byON","smartType","getLanguage","nnn","_smartName","role","includes","empty","nl","pl","it","fr","pt","es","uk","disableSmartName","copyToClipboard","e","stopPropagation","preventDefault","copy","getFileExtension","fileName","formatBytes","bytes","units","u","toFixed","getInvertedColor","themeType","invert","invertedColor","invertColor","hex","bw","padStart","alfa","console","warn","color2rgb","rgb2lab","pow","x","colorDistance","color1","color2","lab1","lab2","dltL","dltA","dltB","c1","sqrt","c2","dltC","dltH","sc","sh","dltLKlsl","dltCkcsc","dltHkhsh","_toVal","mix","str","isArray","clsx","tmp","arguments","getThemeName","themeName","vendorPrefix","_localStorage","localStorage","getItem","matchMedia","matches","getThemeType","setThemeName","setItem","toggleTheme","themes","getThemeNames","newTheme","parseQuery","query","forEach","part","decodeURIComponent","f","getParentId","p","pop","formatDate","dateObj","mm","dd","getFullYear","v","getHours","getMinutes","getSeconds","getMilliseconds","formatTime","round","d","h","MDtext2link","openLink","url","open","MDgetTitle","_Utils$extractHeader","extractHeader","body","header","lines","MDextractHeader","attrs","_header","line","MDremoveDocsify","doc","generateFile","filename","json","el","document","setAttribute","encodeURIComponent","display","appendChild","click","removeChild","quality2text","quality","clone","object","getStates","_obj$common","ex","error","type","getSvg","fetch","then","response","blob","Promise","resolve","reader","FileReader","onload","readAsDataURL","detectMimeType","base64","signature","Object","keys","isStableRepository","activeRepo","_defineProperty2","_default","exports"],"sources":["Utils.js"],"sourcesContent":["/**\n * Copyright 2018-2023 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\n static INSTANCES = 'instances';\n\n static dateFormat = ['DD', 'MM'];\n\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 const 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 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 const 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 const 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 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 if (settings[user].order) {\n return JSON.parse(JSON.stringify(settings[user].order));\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 if (settings[user].URLs) {\n return JSON.parse(JSON.stringify(settings[user].URLs));\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) {\n settings.color = obj.color;\n }\n if (obj.icon) {\n settings.icon = obj.icon;\n }\n if (obj.name) {\n settings.name = obj.name;\n }\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 const 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 }\n\n return false;\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 }\n if (settings.icon.startsWith('data:image')) {\n return <img alt={settings.name} src={settings.icon} style={style || {}} />;\n }\n // maybe later some changes for a second type\n return <img alt={settings.name} src={(settings.prefix || '') + settings.icon} style={style || {}} />;\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 }\n if (icon.startsWith('data:image')) {\n return icon;\n }\n\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 if (window.location.pathname.match(/material\\//)) {\n icon = `../${icon}`;\n }\n return icon;\n }\n\n return null;\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 const 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 }\n\n return Utils.CapitalWords(text);\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.startsWith('#')) {\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 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 (Number.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) {\n minutes = `0${minutes}`;\n }\n if (secs < 10) {\n secs = `0${secs}`;\n }\n return `${hours}:${minutes}:${secs}`;\n }\n\n if (secs < 10) {\n secs = `0${secs}`;\n }\n return `${minutes}:${secs}`;\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 }\n if (angle >= 11.25 && angle < 33.75) {\n return 'NNE';\n }\n if (angle >= 33.75 && angle < 56.25) {\n return 'NE';\n }\n if (angle >= 56.25 && angle < 78.75) {\n return 'ENE';\n }\n if (angle >= 78.75 && angle < 101.25) {\n return 'E';\n }\n if (angle >= 101.25 && angle < 123.75) {\n return 'ESE';\n }\n if (angle >= 123.75 && angle < 146.25) {\n return 'SE';\n }\n if (angle >= 146.25 && angle < 168.75) {\n return 'SSE';\n }\n if (angle >= 168.75 && angle < 191.25) {\n return 'S';\n }\n if (angle >= 191.25 && angle < 213.75) {\n return 'SSW';\n }\n if (angle >= 213.75 && angle < 236.25) {\n return 'SW';\n }\n if (angle >= 236.25 && angle < 258.75) {\n return 'WSW';\n }\n if (angle >= 258.75 && angle < 281.25) {\n return 'W';\n }\n if (angle >= 281.25 && angle < 303.75) {\n return 'WNW';\n }\n if (angle >= 303.75 && angle < 326.25) {\n return 'NW';\n }\n if (angle >= 326.25 && angle < 348.75) {\n return 'NNW';\n }\n // if (angle >= 348.75) {\n return 'N';\n }\n\n /**\n * Pad the given number with a zero if it's 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 }\n return num;\n }\n if (num < 10) {\n return `0${num}`;\n }\n return num;\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 the week\n return now;\n }\n const m = now.match(/(\\d{1,4})[-./](\\d{1,2})[-./](\\d{1,4})/);\n if (m) {\n const a = [parseInt(m[1], 10), parseInt(m[2], 10), parseInt(m[3], 10)];\n const year = a.find(y => y > 31);\n a.splice(a.indexOf(year), 1);\n const 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 if (Utils.dateFormat[0][0] === 'D' && Utils.dateFormat[1][0] === 'M') {\n // DD MM\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 const href = m[0].match(/href=\"([^\"]+)\"/) || m[0].match(/href='([^']+)'/);\n const target = m[0].match(/target=\"([^\"]+)\"/) || m[0].match(/target='([^']+)'/);\n const 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 }\n\n return text;\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 }\n if (states && !states.common) {\n return states.smartName;\n }\n return states.common.smartName;\n }\n if (states && !states.common) {\n return states.smartName;\n }\n return (states &&\n states.common &&\n states.common.custom &&\n states.common.custom[instanceId]) ?\n states.common.custom[instanceId].smartName : undefined;\n }\n if (!noCommon) {\n return states[id].common.smartName;\n }\n\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 * 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 }\n if (obj && !obj.common) {\n return obj.smartName;\n }\n return obj.common.smartName;\n }\n if (obj && !obj.common) {\n return obj.smartName;\n }\n\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 * 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 the 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 the 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\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.includes('button'))))) {\n delete smartName[language];\n let empty = true;\n // Check if the 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].uk;\n delete obj.common.custom[instanceId]['zh-cn'];\n }\n } else 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.uk;\n delete obj.common.smartName['zh-cn'];\n } else {\n obj.common.smartName = null;\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 }\n return null;\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 a theme type to get the inverted text color for background\n * @param {string} color Color in the format '#rrggbb' or '#rgb' (or without a 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 | undefined}\n */\n static getInvertedColor(color, themeType, invert) {\n if (!color) {\n return undefined;\n }\n const invertedColor = Utils.invertColor(color, true);\n if (invertedColor === '#FFFFFF' && (themeType === 'dark' || (invert && themeType === 'light'))) {\n return '#DDD';\n }\n if (invertedColor === '#000000' && (themeType === 'light' || (invert && themeType === 'dark'))) {\n return '#222';\n }\n\n return undefined;\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 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 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 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 tmp = arguments[i++];\n if (tmp) {\n x = Utils._toVal(tmp);\n if (x) {\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 }\n\n return null;\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 }\n if (h) {\n return `${h}:${m.toString().padStart(2, '0')}:${s.toString().padStart(2, '0')}`;\n }\n\n return `0:${m.toString().padStart(2, '0')}:${s.toString().padStart(2, '0')}`;\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 }\n\n return header.title;\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 const 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 quality\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 if (typeof states === 'string') {\n // if old format val1:text1;val2:text2\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 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 => 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 * Detect file extension 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 /**\n * Check if configured repository is the stable repository\n *\n * @param {string | string[]} activeRepo current configured repository or multi repository\n * @return {boolean}\n */\n static isStableRepository(activeRepo) {\n return !!((\n typeof activeRepo === 'string' &&\n activeRepo.toLowerCase().startsWith('stable')\n )\n ||\n (\n activeRepo &&\n typeof activeRepo !== 'string' &&\n activeRepo.find(r => r.toLowerCase().startsWith('stable'))\n ));\n }\n}\n\nexport default Utils;\n"],"mappings":"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"}