@iobroker/gui-components 8.0.2 → 10.0.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.
- package/LICENSE +22 -22
- package/README.md +834 -543
- package/build/AdminConnection.js.map +1 -1
- package/build/Components/404.js +13 -13
- package/build/Components/404.js.map +1 -1
- package/build/Components/ColorPicker.js.map +1 -1
- package/build/Components/ComplexCron.js +2 -2
- package/build/Components/ComplexCron.js.map +1 -1
- package/build/Components/CopyToClipboard.js.map +1 -1
- package/build/Components/CustomModal.js +1 -1
- package/build/Components/CustomModal.js.map +1 -1
- package/build/Components/DeviceType/DeviceTypeIcon.js +1 -0
- package/build/Components/DeviceType/DeviceTypeIcon.js.map +1 -1
- package/build/Components/DeviceType/DeviceTypeSelector.js +2 -2
- package/build/Components/DeviceType/DeviceTypeSelector.js.map +1 -1
- package/build/Components/DeviceType/i18n/de.json +1 -0
- package/build/Components/DeviceType/i18n/en.json +1 -0
- package/build/Components/DeviceType/i18n/fr.json +1 -0
- package/build/Components/DeviceType/i18n/it.json +1 -0
- package/build/Components/DeviceType/i18n/nl.json +1 -0
- package/build/Components/DeviceType/i18n/pl.json +1 -0
- package/build/Components/DeviceType/i18n/pt.json +1 -0
- package/build/Components/DeviceType/i18n/ru.json +1 -0
- package/build/Components/DeviceType/i18n/uk.json +1 -0
- package/build/Components/DeviceType/i18n/zh-cn.json +1 -0
- package/build/Components/FileBrowser.d.ts +39 -4
- package/build/Components/FileBrowser.js +104 -11
- package/build/Components/FileBrowser.js.map +1 -1
- package/build/Components/FileViewer.js +2 -4
- package/build/Components/FileViewer.js.map +1 -1
- package/build/Components/Icon.d.ts +1 -3
- package/build/Components/Icon.js +11 -11
- package/build/Components/Icon.js.map +1 -1
- package/build/Components/Image.js +8 -4
- package/build/Components/Image.js.map +1 -1
- package/build/Components/InfoBox.js +1 -1
- package/build/Components/InfoBox.js.map +1 -1
- package/build/Components/IobUri.js +5 -5
- package/build/Components/IobUri.js.map +1 -1
- package/build/Components/Loader.d.ts +2 -3
- package/build/Components/Loader.js +25 -257
- package/build/Components/Loader.js.map +1 -1
- package/build/Components/Loaders/Community.d.ts +31 -0
- package/build/Components/Loaders/Community.js +265 -0
- package/build/Components/Loaders/Community.js.map +1 -0
- package/build/Components/Loaders/HA.d.ts +17 -0
- package/build/Components/Loaders/HA.js +99 -0
- package/build/Components/Loaders/HA.js.map +1 -0
- package/build/Components/Loaders/MV.js.map +1 -1
- package/build/Components/Loaders/NW.d.ts +17 -0
- package/build/Components/Loaders/NW.js +70 -0
- package/build/Components/Loaders/NW.js.map +1 -0
- package/build/Components/Loaders/PT.js +103 -103
- package/build/Components/Loaders/PT.js.map +1 -1
- package/build/Components/Loaders/Vendor.js +7 -7
- package/build/Components/Loaders/Vendor.js.map +1 -1
- package/build/Components/MDUtils.js.map +1 -1
- package/build/Components/ObjectBrowser.d.ts +25 -406
- package/build/Components/ObjectBrowser.js +460 -1543
- package/build/Components/ObjectBrowser.js.map +1 -1
- package/build/Components/Router.js.map +1 -1
- package/build/Components/SaveCloseButtons.js.map +1 -1
- package/build/Components/Schedule.d.ts +27 -1
- package/build/Components/Schedule.js +60 -50
- package/build/Components/Schedule.js.map +1 -1
- package/build/Components/SelectWithIcon.js +1 -1
- package/build/Components/SelectWithIcon.js.map +1 -1
- package/build/Components/SimpleCron/cronText.js.map +1 -1
- package/build/Components/SimpleCron/index.js +3 -3
- package/build/Components/SimpleCron/index.js.map +1 -1
- package/build/Components/TabContainer.js +7 -2
- package/build/Components/TabContainer.js.map +1 -1
- package/build/Components/TabContent.d.ts +1 -1
- package/build/Components/TabContent.js +5 -5
- package/build/Components/TabContent.js.map +1 -1
- package/build/Components/TabHeader.js +2 -2
- package/build/Components/TabHeader.js.map +1 -1
- package/build/Components/TableResize.js.map +1 -1
- package/build/Components/TextWithIcon.js.map +1 -1
- package/build/Components/TreeTable.d.ts +1 -0
- package/build/Components/TreeTable.js +16 -6
- package/build/Components/TreeTable.js.map +1 -1
- package/build/Components/UploadImage.js +305 -305
- package/build/Components/UploadImage.js.map +1 -1
- package/build/Components/Utils.d.ts +17 -3
- package/build/Components/Utils.js +167 -9
- package/build/Components/Utils.js.map +1 -1
- package/build/Components/objectBrowser.types.d.ts +496 -0
- package/build/Components/objectBrowserUtils.d.ts +170 -0
- package/build/Components/objectBrowserUtils.js +1375 -0
- package/build/Components/objectBrowserUtils.js.map +1 -0
- package/build/Connection.js.map +1 -1
- package/build/Dialogs/ComplexCron.js.map +1 -1
- package/build/Dialogs/Confirm.js.map +1 -1
- package/build/Dialogs/Cron.js.map +1 -1
- package/build/Dialogs/Error.js.map +1 -1
- package/build/Dialogs/Message.js.map +1 -1
- package/build/Dialogs/SelectFile.d.ts +1 -1
- package/build/Dialogs/SelectFile.js +1 -1
- package/build/Dialogs/SelectFile.js.map +1 -1
- package/build/Dialogs/SelectID.d.ts +1 -1
- package/build/Dialogs/SelectID.js +1 -1
- package/build/Dialogs/SelectID.js.map +1 -1
- package/build/Dialogs/SimpleCron.js.map +1 -1
- package/build/Dialogs/TextInput.js +1 -1
- package/build/Dialogs/TextInput.js.map +1 -1
- package/build/GenericApp.d.ts +6 -4
- package/build/GenericApp.js +22 -16
- package/build/GenericApp.js.map +1 -1
- package/build/Prompt.js +7 -7
- package/build/Prompt.js.map +1 -1
- package/build/Theme.js +57 -11
- package/build/Theme.js.map +1 -1
- package/build/assets/devices/parseNames.js +1 -0
- package/build/assets/devices/parseNames.js.map +1 -1
- package/build/assets/rooms/parseNames.js +1 -0
- package/build/assets/rooms/parseNames.js.map +1 -1
- package/build/dictionary.js.map +1 -1
- package/build/globals.d.ts +2 -0
- package/build/i18n/de.json +5 -66
- package/build/i18n/en.json +5 -66
- package/build/i18n/es.json +5 -66
- package/build/i18n/fr.json +5 -66
- package/build/i18n/it.json +5 -61
- package/build/i18n/nl.json +5 -61
- package/build/i18n/pl.json +5 -61
- package/build/i18n/pt.json +5 -61
- package/build/i18n/ru.json +5 -61
- package/build/i18n/uk.json +5 -61
- package/build/i18n/zh-cn.json +5 -61
- package/build/i18n.js +12 -15
- package/build/i18n.js.map +1 -1
- package/build/index.css +56 -56
- package/build/index.d.ts +9 -4
- package/build/index.js +5 -2
- package/build/index.js.map +1 -1
- package/build/modulefederation.admin.config.d.ts +1 -0
- package/build/modulefederation.admin.config.js +1 -1
- package/build/modulefederation.admin.config.js.map +1 -1
- package/build/types.d.ts +4 -84
- package/i18n/de.json +5 -66
- package/i18n/en.json +5 -66
- package/i18n/es.json +5 -66
- package/i18n/fr.json +5 -66
- package/i18n/it.json +5 -61
- package/i18n/nl.json +5 -61
- package/i18n/pl.json +5 -61
- package/i18n/pt.json +5 -61
- package/i18n/ru.json +5 -61
- package/i18n/uk.json +5 -61
- package/i18n/zh-cn.json +5 -61
- package/index.css +56 -56
- package/modulefederation.admin.config.d.ts +1 -0
- package/modulefederation.admin.config.js +1 -2
- package/package.json +50 -35
- package/tasksExample.ts +93 -0
- package/build/LegacyConnection.d.ts +0 -938
- package/build/LegacyConnection.js +0 -2849
- package/build/LegacyConnection.js.map +0 -1
- package/tasksExample.js +0 -91
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PT.js","sourceRoot":"./src/","sources":["Components/Loaders/PT.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIzC,oBAAoB;AACpB,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuGhB,CAAC;AAeF;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAoB;IACzC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,GAAG,CAAC;IAC/B,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,EAAE,CAAC;YAC3D,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YACrD,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC;YAClD,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC;YAC3B,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,IAAI,OAAO,CAAC;IAChE,OAAO,CACH,6BACI,SAAS,EAAE,gCAAgC,SAAS,EAAE,EACtD,KAAK,EAAE;YACH,eAAe,EACX,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,eAAe,KAAK,0BAA0B;gBACzE,CAAC,CAAC,KAAK,CAAC,eAAe;gBACvB,CAAC,CAAC,MAAM,CAAC,sBAAsB,IAAI,MAAM,CAAC,sBAAsB,KAAK,0BAA0B;oBAC7F,CAAC,CAAC,OAAO,MAAM,CAAC,sBAAsB,GAAG;oBACzC,CAAC,CAAC,SAAS;YACrB,eAAe,EACX,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,eAAe,KAAK,0BAA0B;gBACzE,CAAC,CAAC,KAAK,CAAC,eAAe;gBACvB,CAAC,CAAC,MAAM,CAAC,sBAAsB,IAAI,MAAM,CAAC,sBAAsB,KAAK,0BAA0B;oBAC7F,CAAC,CAAC,MAAM,CAAC,sBAAsB;oBAC/B,CAAC,CAAC,KAAK,CAAC,SAAS,KAAK,MAAM;wBAC1B,CAAC,CAAC,MAAM;wBACR,CAAC,CAAC,MAAM;YACpB,cAAc,EAAE,OAAO;SAC1B;QAED,6BACI,SAAS,EAAC,aAAa,EACvB,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;YAEpC,6BAAK,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;gBACnC,6BAAK,SAAS,EAAC,gCAAgC,GAAG;gBAClD,6BAAK,SAAS,EAAC,iCAAiC,GAAG;gBACnD,6BAAK,SAAS,EAAC,+BAA+B,GAAG,CAC/C,CACJ,CACJ,CACT,CAAC;AACN,CAAC","sourcesContent":["/**\
|
|
1
|
+
{"version":3,"file":"PT.js","sourceRoot":"./src/","sources":["Components/Loaders/PT.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIzC,oBAAoB;AACpB,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuGhB,CAAC;AAeF;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAoB;IACzC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,GAAG,CAAC;IAC/B,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,EAAE,CAAC;YAC3D,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YACrD,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC;YAClD,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC;YAC3B,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,IAAI,OAAO,CAAC;IAChE,OAAO,CACH,6BACI,SAAS,EAAE,gCAAgC,SAAS,EAAE,EACtD,KAAK,EAAE;YACH,eAAe,EACX,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,eAAe,KAAK,0BAA0B;gBACzE,CAAC,CAAC,KAAK,CAAC,eAAe;gBACvB,CAAC,CAAC,MAAM,CAAC,sBAAsB,IAAI,MAAM,CAAC,sBAAsB,KAAK,0BAA0B;oBAC7F,CAAC,CAAC,OAAO,MAAM,CAAC,sBAAsB,GAAG;oBACzC,CAAC,CAAC,SAAS;YACrB,eAAe,EACX,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,eAAe,KAAK,0BAA0B;gBACzE,CAAC,CAAC,KAAK,CAAC,eAAe;gBACvB,CAAC,CAAC,MAAM,CAAC,sBAAsB,IAAI,MAAM,CAAC,sBAAsB,KAAK,0BAA0B;oBAC7F,CAAC,CAAC,MAAM,CAAC,sBAAsB;oBAC/B,CAAC,CAAC,KAAK,CAAC,SAAS,KAAK,MAAM;wBAC1B,CAAC,CAAC,MAAM;wBACR,CAAC,CAAC,MAAM;YACpB,cAAc,EAAE,OAAO;SAC1B;QAED,6BACI,SAAS,EAAC,aAAa,EACvB,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;YAEpC,6BAAK,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;gBACnC,6BAAK,SAAS,EAAC,gCAAgC,GAAG;gBAClD,6BAAK,SAAS,EAAC,iCAAiC,GAAG;gBACnD,6BAAK,SAAS,EAAC,+BAA+B,GAAG,CAC/C,CACJ,CACJ,CACT,CAAC;AACN,CAAC","sourcesContent":["/**\n * Copyright 2021-2024 ioBroker GmbH\n *\n * MIT License\n *\n */\nimport React, { useEffect } from 'react';\n\nimport type { ThemeType, ThemeName } from '../../types';\n\n// import './PT.css'\nconst ptStyles = `\n.logo-background-light, .logo-background-colored {\n background: white;\n}\n.logo-background-dark, .logo-background-blue {\n background: black;\n}\n.pt-logo-div {\n position: absolute;\n top: 50%;\n left: 50%;\n -ms-transform: translateX(-50%) translateY(-50%);\n -webkit-transform: translate(-50%,-50%);\n transform: translate(-50%,-50%);\n z-index: 2;\n}\n.pt-logo-border {\n border-style: solid;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n position: absolute;\n}\n.pt-loader-block {\n height: 65px;\n width: 74px;\n border-radius: 15px;\n position: absolute;\n box-sizing: content-box;\n}\n.pt-loader-blue {\n border: 9px solid #0F99DE;\n transform: rotate(5grad);\n left: 93px;\n top: 0;\n animation: spin-blue 5s ease-in-out infinite;\n}\n.pt-loader-green {\n border: 9px solid #88A536;\n transform: rotate(-6grad);\n left: 70px;\n top: 58px;\n animation: spin-green 5s ease-in-out infinite;\n}\n.pt-loader-red {\n border: 9px solid #BD1B24;\n transform: rotate(-15grad);\n left: 24px;\n top: 100px;\n animation: spin-red 5s ease-in-out infinite;\n}\n\n@keyframes spin-blue {\n 0% {\n transform: rotate(5deg);\n }\n 25% {\n transform: rotate(185deg);\n }\n 50% {\n transform: rotate(185deg);\n }\n 75% {\n transform: rotate(185deg);\n }\n 100% {\n transform: rotate(185deg);\n }\n}\n@keyframes spin-green {\n 0% {\n transform: rotate(-6deg);\n }\n 25% {\n transform: rotate(-6deg);\n }\n 50% {\n transform: rotate(174deg);\n }\n 75% {\n transform: rotate(174deg);\n }\n 100% {\n transform: rotate(-6deg);\n }\n}\n@keyframes spin-red {\n 0% {\n transform: rotate(-15deg);\n }\n 25% {\n transform: rotate(-15deg);\n }\n 50% {\n transform: rotate(-15deg);\n }\n 75% {\n transform: rotate(165deg);\n }\n 100% {\n transform: rotate(165deg);\n }\n}\n`;\n\ninterface LoaderPTProps {\n /** The size in pixels of this loader. */\n size?: number;\n /** The chosen theme type. */\n themeType?: ThemeType;\n /** The chosen theme name. */\n themeName?: ThemeName;\n /** Background color */\n backgroundColor?: string;\n /** Background image URL */\n backgroundImage?: string;\n}\n\n/**\n * A loader component with the vendor-specific logo\n *\n * @param props Properties of the loader of type LoaderPTProps\n */\nexport function LoaderPT(props: LoaderPTProps): React.JSX.Element {\n const size = props.size || 200;\n useEffect(() => {\n if (!window.document.getElementById('pt-iobroker-component')) {\n const style = window.document.createElement('style');\n style.setAttribute('id', 'pt-iobroker-component');\n style.innerHTML = ptStyles;\n window.document.head.appendChild(style);\n }\n }, []);\n\n const themeName = props.themeType || props.themeName || 'light';\n return (\n <div\n className={`pt-logo-back logo-background-${themeName}`}\n style={{\n backgroundImage:\n props.backgroundImage && props.backgroundImage !== '@@loginBackgroundImage@@'\n ? props.backgroundImage\n : window.loadingBackgroundImage && window.loadingBackgroundImage !== '@@loginBackgroundImage@@'\n ? `url(${window.loadingBackgroundImage})`\n : undefined,\n backgroundColor:\n props.backgroundColor && props.backgroundColor !== '@@loginBackgroundColor@@'\n ? props.backgroundColor\n : window.loadingBackgroundColor && window.loadingBackgroundColor !== '@@loginBackgroundColor@@'\n ? window.loadingBackgroundColor\n : props.themeType === 'dark'\n ? '#000'\n : '#FFF',\n backgroundSize: 'cover',\n }}\n >\n <div\n className=\"pt-logo-div\"\n style={{ width: size, height: size }}\n >\n <div style={{ width: 200, height: 200 }}>\n <div className=\"pt-loader-blue pt-loader-block\" />\n <div className=\"pt-loader-green pt-loader-block\" />\n <div className=\"pt-loader-red pt-loader-block\" />\n </div>\n </div>\n </div>\n );\n}\n"]}
|
|
@@ -7,13 +7,13 @@
|
|
|
7
7
|
import React, { useEffect } from 'react';
|
|
8
8
|
import { CircularProgress } from '@mui/material';
|
|
9
9
|
// import './Vendor.css'
|
|
10
|
-
const vendorStyles = `
|
|
11
|
-
.logo-background-light, .logo-background-colored {
|
|
12
|
-
background: white;
|
|
13
|
-
}
|
|
14
|
-
.logo-background-dark, .logo-background-blue {
|
|
15
|
-
background: black;
|
|
16
|
-
}
|
|
10
|
+
const vendorStyles = `
|
|
11
|
+
.logo-background-light, .logo-background-colored {
|
|
12
|
+
background: white;
|
|
13
|
+
}
|
|
14
|
+
.logo-background-dark, .logo-background-blue {
|
|
15
|
+
background: black;
|
|
16
|
+
}
|
|
17
17
|
`;
|
|
18
18
|
export function LoaderVendor(props) {
|
|
19
19
|
useEffect(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Vendor.js","sourceRoot":"./src/","sources":["Components/Loaders/Vendor.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAIjD,wBAAwB;AACxB,MAAM,YAAY,GAAG;;;;;;;CAOpB,CAAC;AAeF,MAAM,UAAU,YAAY,CAAC,KAAwB;IACjD,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,2BAA2B,CAAC,EAAE,CAAC;YAC/D,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YACrD,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,2BAA2B,CAAC,CAAC;YACtD,KAAK,CAAC,SAAS,GAAG,YAAY,CAAC;YAC/B,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,IAAI,OAAO,CAAC;IAC5D,OAAO,CACH,6BACI,SAAS,EAAE,oCAAoC,KAAK,EAAE,EACtD,KAAK,EAAE;YACH,OAAO,EAAE,MAAM;YACf,aAAa,EAAE,QAAQ;YACvB,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,MAAM;YACd,eAAe,EACX,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,eAAe,KAAK,0BAA0B;gBACzE,CAAC,CAAC,KAAK,CAAC,eAAe;gBACvB,CAAC,CAAC,MAAM,CAAC,sBAAsB,IAAI,MAAM,CAAC,sBAAsB,KAAK,0BAA0B;oBAC7F,CAAC,CAAC,OAAO,MAAM,CAAC,sBAAsB,GAAG;oBACzC,CAAC,CAAC,SAAS;YACrB,eAAe,EACX,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,eAAe,KAAK,0BAA0B;gBACzE,CAAC,CAAC,KAAK,CAAC,eAAe;gBACvB,CAAC,CAAC,MAAM,CAAC,sBAAsB,IAAI,MAAM,CAAC,sBAAsB,KAAK,0BAA0B;oBAC7F,CAAC,CAAC,MAAM,CAAC,sBAAsB;oBAC/B,CAAC,CAAC,KAAK,CAAC,SAAS,KAAK,MAAM;wBAC1B,CAAC,CAAC,MAAM;wBACR,CAAC,CAAC,MAAM;YACpB,cAAc,EAAE,OAAO;SAC1B;QAED,6BAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAI;QAC/B,oBAAC,gBAAgB,IACb,KAAK,EAAC,WAAW,EACjB,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,GAAG,EACvB,SAAS,EAAE,CAAC,GACd;QACF,6BAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAI,CAC7B,CACT,CAAC;AACN,CAAC","sourcesContent":["/**\
|
|
1
|
+
{"version":3,"file":"Vendor.js","sourceRoot":"./src/","sources":["Components/Loaders/Vendor.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAIjD,wBAAwB;AACxB,MAAM,YAAY,GAAG;;;;;;;CAOpB,CAAC;AAeF,MAAM,UAAU,YAAY,CAAC,KAAwB;IACjD,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,2BAA2B,CAAC,EAAE,CAAC;YAC/D,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YACrD,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,2BAA2B,CAAC,CAAC;YACtD,KAAK,CAAC,SAAS,GAAG,YAAY,CAAC;YAC/B,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,IAAI,OAAO,CAAC;IAC5D,OAAO,CACH,6BACI,SAAS,EAAE,oCAAoC,KAAK,EAAE,EACtD,KAAK,EAAE;YACH,OAAO,EAAE,MAAM;YACf,aAAa,EAAE,QAAQ;YACvB,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,MAAM;YACd,eAAe,EACX,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,eAAe,KAAK,0BAA0B;gBACzE,CAAC,CAAC,KAAK,CAAC,eAAe;gBACvB,CAAC,CAAC,MAAM,CAAC,sBAAsB,IAAI,MAAM,CAAC,sBAAsB,KAAK,0BAA0B;oBAC7F,CAAC,CAAC,OAAO,MAAM,CAAC,sBAAsB,GAAG;oBACzC,CAAC,CAAC,SAAS;YACrB,eAAe,EACX,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,eAAe,KAAK,0BAA0B;gBACzE,CAAC,CAAC,KAAK,CAAC,eAAe;gBACvB,CAAC,CAAC,MAAM,CAAC,sBAAsB,IAAI,MAAM,CAAC,sBAAsB,KAAK,0BAA0B;oBAC7F,CAAC,CAAC,MAAM,CAAC,sBAAsB;oBAC/B,CAAC,CAAC,KAAK,CAAC,SAAS,KAAK,MAAM;wBAC1B,CAAC,CAAC,MAAM;wBACR,CAAC,CAAC,MAAM;YACpB,cAAc,EAAE,OAAO;SAC1B;QAED,6BAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAI;QAC/B,oBAAC,gBAAgB,IACb,KAAK,EAAC,WAAW,EACjB,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,GAAG,EACvB,SAAS,EAAE,CAAC,GACd;QACF,6BAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAI,CAC7B,CACT,CAAC;AACN,CAAC","sourcesContent":["/**\n * Copyright 2021-2024 ioBroker GmbH\n *\n * MIT License\n *\n */\nimport React, { useEffect } from 'react';\nimport { CircularProgress } from '@mui/material';\n\nimport type { ThemeType, ThemeName } from '../../types';\n\n// import './Vendor.css'\nconst vendorStyles = `\n.logo-background-light, .logo-background-colored {\n background: white;\n}\n.logo-background-dark, .logo-background-blue {\n background: black;\n}\n`;\n\ninterface LoaderVendorProps {\n /** The size in pixels of this loader. */\n size?: number;\n /** The chosen theme type. */\n themeType?: ThemeType;\n /** The chosen theme name. */\n themeName?: ThemeName;\n /** Background color */\n backgroundColor?: string;\n /** Background image URL */\n backgroundImage?: string;\n}\n\nexport function LoaderVendor(props: LoaderVendorProps): React.JSX.Element {\n useEffect(() => {\n if (!window.document.getElementById('vendor-iobroker-component')) {\n const style = window.document.createElement('style');\n style.setAttribute('id', 'vendor-iobroker-component');\n style.innerHTML = vendorStyles;\n window.document.head.appendChild(style);\n }\n }, []);\n\n const theme = props.themeType || props.themeName || 'light';\n return (\n <div\n className={`vendor-logo-back logo-background-${theme}`}\n style={{\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n width: '10%',\n margin: 'auto',\n backgroundImage:\n props.backgroundImage && props.backgroundImage !== '@@loginBackgroundImage@@'\n ? props.backgroundImage\n : window.loadingBackgroundImage && window.loadingBackgroundImage !== '@@loginBackgroundImage@@'\n ? `url(${window.loadingBackgroundImage})`\n : undefined,\n backgroundColor:\n props.backgroundColor && props.backgroundColor !== '@@loginBackgroundColor@@'\n ? props.backgroundColor\n : window.loadingBackgroundColor && window.loadingBackgroundColor !== '@@loginBackgroundColor@@'\n ? window.loadingBackgroundColor\n : props.themeType === 'dark'\n ? '#000'\n : '#FFF',\n backgroundSize: 'cover',\n }}\n >\n <div style={{ flexGrow: 1 }} />\n <CircularProgress\n color=\"secondary\"\n size={props.size || 200}\n thickness={5}\n />\n <div style={{ flexGrow: 1 }} />\n </div>\n );\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MDUtils.js","sourceRoot":"./src/","sources":["Components/MDUtils.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\
|
|
1
|
+
{"version":3,"file":"MDUtils.js","sourceRoot":"./src/","sources":["Components/MDUtils.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright 2018-2023 Denis Haev (bluefox) <dogafox@gmail.com>\n *\n * MIT License\n *\n */\nimport { copy } from './CopyToClipboard';\n\nexport class MDUtils {\n static text2link(text: string): string {\n const m = text.match(/\\d+\\.\\)\\s/);\n if (m) {\n text = text.replace(m[0], m[0].replace(/\\s/, ' '));\n }\n\n return text\n .replace(/[^a-zA-Zа-яА-Я0-9]/g, '')\n .trim()\n .replace(/\\s/g, '')\n .toLowerCase();\n }\n\n static openLink(url: string, target?: string): void {\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.href = url;\n } else {\n window.open(url, target || '_blank');\n }\n }\n\n static getTitle(text: string): string {\n const result = MDUtils.extractHeader(text);\n let body = result.body;\n const header = result.header;\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.toString();\n }\n\n static extractHeader(text: string): { header: Record<string, string | boolean | number>; body: string } {\n const attrs: Record<string, string | boolean | number> = {};\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 let val: string = line.substring(pos_ + 1).trim();\n val = val.replace(/^['\"]|['\"]$/g, '');\n if (val === 'true') {\n attrs[attr] = true;\n } else if (val === 'false') {\n attrs[attr] = false;\n } else if (parseFloat(val).toString() === val) {\n attrs[attr] = parseFloat(val);\n } else {\n attrs[attr] = val;\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 removeDocsify(text: string): string {\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 static onCopy(e: Event | null, text: string): void {\n copy(text);\n e && e.stopPropagation();\n e && e.preventDefault();\n }\n}\n"]}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright 2020-
|
|
2
|
+
* Copyright 2020-2026, Denis Haev <dogafox@gmail.com>
|
|
3
3
|
*
|
|
4
4
|
* MIT License
|
|
5
5
|
*
|
|
6
6
|
*/
|
|
7
7
|
import React, { Component, type JSX } from 'react';
|
|
8
|
-
import
|
|
9
|
-
import type {
|
|
10
|
-
|
|
8
|
+
import { getSelectIdIconFromObjects } from './objectBrowserUtils';
|
|
9
|
+
import type { ObjectBrowserProps, AdapterColumn, ObjectBrowserFilter, ObjectBrowserState, TreeItem, CustomAdminColumnStored, ObjectEvent } from './objectBrowser.types';
|
|
10
|
+
export { getSelectIdIconFromObjects, type ObjectBrowserFilter };
|
|
11
11
|
declare global {
|
|
12
12
|
interface Window {
|
|
13
13
|
sparkline: {
|
|
@@ -20,406 +20,23 @@ declare module '@mui/material/Button' {
|
|
|
20
20
|
grey: true;
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
|
-
type ObjectEventType = 'new' | 'changed' | 'deleted';
|
|
24
|
-
interface ObjectEvent {
|
|
25
|
-
id: string;
|
|
26
|
-
obj?: ioBroker.Object;
|
|
27
|
-
type: ObjectEventType;
|
|
28
|
-
oldObj?: ioBroker.Object;
|
|
29
|
-
}
|
|
30
|
-
interface ObjectsWorker {
|
|
31
|
-
getObjects(update?: boolean): Promise<void | Record<string, ioBroker.Object>>;
|
|
32
|
-
registerHandler(cb: (events: ObjectEvent[]) => void): void;
|
|
33
|
-
unregisterHandler(cb: (events: ObjectEvent[]) => void, doNotUnsubscribe?: boolean): void;
|
|
34
|
-
}
|
|
35
|
-
interface CustomAdminColumnStored {
|
|
36
|
-
path: string;
|
|
37
|
-
name: string;
|
|
38
|
-
objTypes?: ioBroker.ObjectType[];
|
|
39
|
-
width?: number;
|
|
40
|
-
edit?: boolean;
|
|
41
|
-
type?: ioBroker.CommonType;
|
|
42
|
-
}
|
|
43
|
-
export interface TreeItemData {
|
|
44
|
-
id: string;
|
|
45
|
-
name: string;
|
|
46
|
-
obj?: ioBroker.Object;
|
|
47
|
-
/** Object ID in lower case for filtering */
|
|
48
|
-
fID?: string;
|
|
49
|
-
/** translated common.name in lower case for filtering */
|
|
50
|
-
fName?: string;
|
|
51
|
-
/** Link to parent item */
|
|
52
|
-
parent?: TreeItem;
|
|
53
|
-
level?: number;
|
|
54
|
-
icon?: string | JSX.Element | null;
|
|
55
|
-
/** If the item existing object or generated folder */
|
|
56
|
-
generated?: boolean;
|
|
57
|
-
title?: string;
|
|
58
|
-
/** if the item has "write" button (value=true, ack=false) */
|
|
59
|
-
button?: boolean;
|
|
60
|
-
/** If the item has read and write and is boolean */
|
|
61
|
-
switch?: boolean;
|
|
62
|
-
/** If the item is url linke */
|
|
63
|
-
url?: boolean;
|
|
64
|
-
/** if the item has custom settings in `common.custom` */
|
|
65
|
-
hasCustoms?: boolean;
|
|
66
|
-
/** If this item is visible */
|
|
67
|
-
visible?: boolean;
|
|
68
|
-
/** Is any of the children visible (not only directly children) */
|
|
69
|
-
hasVisibleChildren?: boolean;
|
|
70
|
-
/** Is any of the parents visible (not only directly parent) */
|
|
71
|
-
hasVisibleParent?: boolean;
|
|
72
|
-
/** Combination of `visible || hasVisibleChildren` */
|
|
73
|
-
sumVisibility?: boolean;
|
|
74
|
-
/** translated names of enumerations (functions) where this object is the member (or the parent), divided by comma */
|
|
75
|
-
funcs?: string;
|
|
76
|
-
/** is if the enums are from parent */
|
|
77
|
-
pef?: boolean;
|
|
78
|
-
/** translated names of enumerations (rooms) where this object is the member (or the parent), divided by comma */
|
|
79
|
-
rooms?: string;
|
|
80
|
-
/** is if the enums are from parent */
|
|
81
|
-
per?: boolean;
|
|
82
|
-
lang?: ioBroker.Languages;
|
|
83
|
-
state?: {
|
|
84
|
-
valTextRx?: JSX.Element[] | null;
|
|
85
|
-
style?: React.CSSProperties;
|
|
86
|
-
};
|
|
87
|
-
aclTooltip?: null | JSX.Element;
|
|
88
|
-
}
|
|
89
|
-
export interface ObjectBrowserCustomFilter {
|
|
90
|
-
type?: ioBroker.ObjectType | ioBroker.ObjectType[];
|
|
91
|
-
common?: {
|
|
92
|
-
type?: ioBroker.CommonType | ioBroker.CommonType[];
|
|
93
|
-
role?: string | string[];
|
|
94
|
-
custom?: '_' | '_dataSources' | true | string | string[];
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
export interface TreeItem {
|
|
98
|
-
id?: string;
|
|
99
|
-
data: TreeItemData;
|
|
100
|
-
children?: TreeItem[];
|
|
101
|
-
}
|
|
102
|
-
/** Converts ioB pattern into regex */
|
|
103
|
-
export declare function pattern2RegEx(pattern: string): string;
|
|
104
|
-
export declare function filterRoles(roleArray: {
|
|
105
|
-
role: string;
|
|
106
|
-
type: ioBroker.CommonType;
|
|
107
|
-
}[], type: ioBroker.CommonType, defaultRoles?: {
|
|
108
|
-
role: string;
|
|
109
|
-
type: ioBroker.CommonType;
|
|
110
|
-
}[]): string[];
|
|
111
|
-
export declare function getSelectIdIconFromObjects(objects: Record<string, ioBroker.Object>, id: string, lang: ioBroker.Languages, imagePrefix?: string): string | JSX.Element | null;
|
|
112
23
|
export declare const ITEM_IMAGES: Record<string, JSX.Element>;
|
|
113
|
-
export interface ObjectBrowserFilter {
|
|
114
|
-
id?: string;
|
|
115
|
-
name?: string;
|
|
116
|
-
room?: string[];
|
|
117
|
-
func?: string[];
|
|
118
|
-
role?: string[];
|
|
119
|
-
type?: string[];
|
|
120
|
-
custom?: string[];
|
|
121
|
-
expertMode?: boolean;
|
|
122
|
-
}
|
|
123
|
-
interface AdapterColumn {
|
|
124
|
-
adapter: string;
|
|
125
|
-
id: string;
|
|
126
|
-
name: string;
|
|
127
|
-
path: string[];
|
|
128
|
-
pathText: string;
|
|
129
|
-
edit?: boolean;
|
|
130
|
-
type?: 'boolean' | 'string' | 'number';
|
|
131
|
-
objTypes?: ioBroker.ObjectType[];
|
|
132
|
-
align?: 'center' | 'left' | 'right';
|
|
133
|
-
}
|
|
134
|
-
interface ObjectBrowserEditRoleProps {
|
|
135
|
-
roleArray: {
|
|
136
|
-
role: string;
|
|
137
|
-
type: ioBroker.CommonType;
|
|
138
|
-
}[];
|
|
139
|
-
id: string;
|
|
140
|
-
socket: Connection;
|
|
141
|
-
onClose: (obj?: ioBroker.Object | null) => void;
|
|
142
|
-
t: Translate;
|
|
143
|
-
commonType: ioBroker.CommonType;
|
|
144
|
-
}
|
|
145
|
-
interface ObjectViewFileDialogProps {
|
|
146
|
-
t: Translate;
|
|
147
|
-
socket: Connection;
|
|
148
|
-
obj: ioBroker.AnyObject;
|
|
149
|
-
onClose: () => void;
|
|
150
|
-
}
|
|
151
|
-
interface DragWrapperProps {
|
|
152
|
-
item: TreeItem;
|
|
153
|
-
className?: string;
|
|
154
|
-
style?: React.CSSProperties;
|
|
155
|
-
children: JSX.Element | null;
|
|
156
|
-
}
|
|
157
|
-
interface ObjectCustomDialogProps {
|
|
158
|
-
allVisibleObjects: boolean;
|
|
159
|
-
customsInstances: string[];
|
|
160
|
-
expertMode?: boolean;
|
|
161
|
-
isFloatComma: boolean;
|
|
162
|
-
lang: ioBroker.Languages;
|
|
163
|
-
objectIDs: string[];
|
|
164
|
-
objects: Record<string, ioBroker.Object>;
|
|
165
|
-
onClose: () => void;
|
|
166
|
-
reportChangedIds: (ids: string[]) => void;
|
|
167
|
-
socket: Connection;
|
|
168
|
-
systemConfig: ioBroker.SystemConfigObject;
|
|
169
|
-
t: Translate;
|
|
170
|
-
theme: IobTheme;
|
|
171
|
-
themeName: ThemeName;
|
|
172
|
-
themeType: ThemeType;
|
|
173
|
-
}
|
|
174
|
-
interface ObjectMoveRenameDialogProps {
|
|
175
|
-
childrenIds: string[];
|
|
176
|
-
expertMode: boolean;
|
|
177
|
-
id: string;
|
|
178
|
-
objectType: ioBroker.ObjectType | undefined;
|
|
179
|
-
onClose: () => void;
|
|
180
|
-
socket: Connection;
|
|
181
|
-
t: Translate;
|
|
182
|
-
theme: IobTheme;
|
|
183
|
-
}
|
|
184
|
-
interface ObjectBrowserValueProps {
|
|
185
|
-
/** State type */
|
|
186
|
-
type: 'states' | 'string' | 'number' | 'boolean' | 'json';
|
|
187
|
-
/** State role */
|
|
188
|
-
role: string;
|
|
189
|
-
/** common.states */
|
|
190
|
-
states: Record<string, string> | null;
|
|
191
|
-
/** The state value */
|
|
192
|
-
value: string | number | boolean | null;
|
|
193
|
-
/** If expert mode is enabled */
|
|
194
|
-
expertMode: boolean;
|
|
195
|
-
onClose: (newValue?: {
|
|
196
|
-
val: ioBroker.StateValue;
|
|
197
|
-
ack: boolean;
|
|
198
|
-
q: ioBroker.STATE_QUALITY[keyof ioBroker.STATE_QUALITY];
|
|
199
|
-
expire: number | undefined;
|
|
200
|
-
}) => void;
|
|
201
|
-
/** Configured theme */
|
|
202
|
-
themeType: ThemeType;
|
|
203
|
-
theme: IobTheme;
|
|
204
|
-
socket: Connection;
|
|
205
|
-
defaultHistory: string;
|
|
206
|
-
dateFormat: string;
|
|
207
|
-
object: ioBroker.StateObject;
|
|
208
|
-
isFloatComma: boolean;
|
|
209
|
-
t: Translate;
|
|
210
|
-
lang: ioBroker.Languages;
|
|
211
|
-
width?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
212
|
-
}
|
|
213
|
-
interface ObjectBrowserEditObjectProps {
|
|
214
|
-
socket: Connection;
|
|
215
|
-
obj: ioBroker.AnyObject;
|
|
216
|
-
roleArray: {
|
|
217
|
-
role: string;
|
|
218
|
-
type: ioBroker.CommonType;
|
|
219
|
-
}[];
|
|
220
|
-
expertMode: boolean;
|
|
221
|
-
themeType: ThemeType;
|
|
222
|
-
theme: IobTheme;
|
|
223
|
-
aliasTab: boolean;
|
|
224
|
-
onClose: (obj?: ioBroker.AnyObject) => void;
|
|
225
|
-
dialogName?: string;
|
|
226
|
-
objects: Record<string, ioBroker.AnyObject>;
|
|
227
|
-
dateFormat: string;
|
|
228
|
-
isFloatComma: boolean;
|
|
229
|
-
onNewObject: (obj: ioBroker.AnyObject) => void;
|
|
230
|
-
t: Translate;
|
|
231
|
-
width?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
232
|
-
}
|
|
233
|
-
export interface ObjectAliasEditorProps {
|
|
234
|
-
t: Translate;
|
|
235
|
-
roleArray: {
|
|
236
|
-
role: string;
|
|
237
|
-
type: ioBroker.CommonType;
|
|
238
|
-
}[];
|
|
239
|
-
socket: Connection;
|
|
240
|
-
objects: Record<string, ioBroker.AnyObject>;
|
|
241
|
-
onRedirect: (id: string, delay?: number) => void;
|
|
242
|
-
obj: ioBroker.AnyObject;
|
|
243
|
-
onClose: () => void;
|
|
244
|
-
}
|
|
245
|
-
export type ObjectBrowserColumn = 'name' | 'type' | 'role' | 'room' | 'func' | 'val' | 'buttons';
|
|
246
|
-
type ObjectBrowserPossibleColumns = 'name' | 'type' | 'role' | 'room' | 'func' | 'val' | 'buttons' | 'changedFrom' | 'qualityCode' | 'timestamp' | 'lastChange' | 'id';
|
|
247
|
-
export interface ObjectBrowserProps {
|
|
248
|
-
/** where to store settings in localStorage */
|
|
249
|
-
dialogName?: string;
|
|
250
|
-
defaultFilters?: ObjectBrowserFilter;
|
|
251
|
-
selected?: string | string[];
|
|
252
|
-
onSelect?: (selected: string | string[], name: string | null, isDouble?: boolean) => void;
|
|
253
|
-
onFilterChanged?: (newFilter: ObjectBrowserFilter) => void;
|
|
254
|
-
socket: Connection;
|
|
255
|
-
showExpertButton?: boolean;
|
|
256
|
-
expertMode?: boolean;
|
|
257
|
-
imagePrefix?: string;
|
|
258
|
-
themeName: ThemeName;
|
|
259
|
-
themeType: ThemeType;
|
|
260
|
-
/** will be filled by withWidth */
|
|
261
|
-
width?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
262
|
-
theme: IobTheme;
|
|
263
|
-
t: Translate;
|
|
264
|
-
lang: ioBroker.Languages;
|
|
265
|
-
multiSelect?: boolean;
|
|
266
|
-
notEditable?: boolean;
|
|
267
|
-
foldersFirst?: boolean;
|
|
268
|
-
disableColumnSelector?: boolean;
|
|
269
|
-
isFloatComma?: boolean;
|
|
270
|
-
dateFormat?: string;
|
|
271
|
-
levelPadding?: number;
|
|
272
|
-
/** Allow selection of non-objects (virtual branches) */
|
|
273
|
-
allowNonObjects?: boolean;
|
|
274
|
-
/** Called when all objects are loaded */
|
|
275
|
-
onAllLoaded?: () => void;
|
|
276
|
-
objectCustomDialog?: React.FC<ObjectCustomDialogProps>;
|
|
277
|
-
objectMoveRenameDialog?: React.FC<ObjectMoveRenameDialogProps>;
|
|
278
|
-
objectAddBoolean?: boolean;
|
|
279
|
-
objectEditBoolean?: boolean;
|
|
280
|
-
objectStatesView?: boolean;
|
|
281
|
-
objectImportExport?: boolean;
|
|
282
|
-
objectEditOfAccessControl?: boolean;
|
|
283
|
-
/** modal add object */
|
|
284
|
-
modalNewObject?: (oBrowser: ObjectBrowserClass) => JSX.Element;
|
|
285
|
-
/** modal Edit Of Access Control */
|
|
286
|
-
modalEditOfAccessControl: (oBrowser: ObjectBrowserClass, data: TreeItemData) => JSX.Element;
|
|
287
|
-
onObjectDelete?: (id: string, hasChildren: boolean, objectExists: boolean, childrenCount: number) => void;
|
|
288
|
-
/**
|
|
289
|
-
* Optional filter
|
|
290
|
-
* `{common: {custom: true}}` - show only objects with some custom settings
|
|
291
|
-
* `{common: {custom: 'sql.0'}}` - show only objects with sql.0 custom settings (only of the specific instance)
|
|
292
|
-
* `{common: {custom: '_dataSources'}}` - show only objects of adapters `influxdb' or 'sql' or 'history'
|
|
293
|
-
* `{common: {custom: 'adapterName.'}}` - show only objects of custom settings of specific adapter (all instances)
|
|
294
|
-
* `{type: 'channel'}` - show only channels
|
|
295
|
-
* `{type: ['channel', 'device']}` - show only channels and devices
|
|
296
|
-
* `{common: {type: 'number'}` - show only states of type 'number
|
|
297
|
-
* `{common: {type: ['number', 'string']}` - show only states of type 'number and string
|
|
298
|
-
* `{common: {role: ['switch']}` - show only states with roles starting from switch
|
|
299
|
-
* `{common: {role: ['switch', 'button']}` - show only states with roles starting from `switch` and `button`
|
|
300
|
-
*/
|
|
301
|
-
customFilter: ObjectBrowserCustomFilter;
|
|
302
|
-
objectBrowserValue?: React.FC<ObjectBrowserValueProps>;
|
|
303
|
-
objectBrowserEditObject?: React.FC<ObjectBrowserEditObjectProps>;
|
|
304
|
-
/** on edit alias */
|
|
305
|
-
objectBrowserAliasEditor?: React.FC<ObjectAliasEditorProps>;
|
|
306
|
-
/** on Edit role */
|
|
307
|
-
objectBrowserEditRole?: React.FC<ObjectBrowserEditRoleProps>;
|
|
308
|
-
/** on view file state */
|
|
309
|
-
objectBrowserViewFile?: React.FC<ObjectViewFileDialogProps>;
|
|
310
|
-
router?: typeof Router;
|
|
311
|
-
types?: ioBroker.ObjectType[];
|
|
312
|
-
/** Possible columns: ['name', 'type', 'role', 'room', 'func', 'val', 'buttons'] */
|
|
313
|
-
columns?: ObjectBrowserColumn[];
|
|
314
|
-
/** Shows only elements of this root */
|
|
315
|
-
root?: string;
|
|
316
|
-
/** cache of objects */
|
|
317
|
-
objectsWorker?: ObjectsWorker;
|
|
318
|
-
/**
|
|
319
|
-
* function to filter out all unnecessary objects. It cannot be used together with "types"
|
|
320
|
-
* Example for function: `obj => obj.common?.type === 'boolean'` to show only boolean states
|
|
321
|
-
*/
|
|
322
|
-
filterFunc?: (obj: ioBroker.Object) => boolean;
|
|
323
|
-
/** Used for enums dragging */
|
|
324
|
-
DragWrapper?: React.FC<DragWrapperProps>;
|
|
325
|
-
/** let DragWrapper know about objects to get the icons */
|
|
326
|
-
setObjectsReference?: (objects: Record<string, ioBroker.Object>) => void;
|
|
327
|
-
dragEnabled?: boolean;
|
|
328
|
-
}
|
|
329
|
-
interface ObjectBrowserState {
|
|
330
|
-
loaded: boolean;
|
|
331
|
-
foldersFirst: boolean;
|
|
332
|
-
selected: string[];
|
|
333
|
-
focused: string;
|
|
334
|
-
selectedNonObject: string;
|
|
335
|
-
filter: ObjectBrowserFilter;
|
|
336
|
-
filterKey: number;
|
|
337
|
-
depth: number;
|
|
338
|
-
expandAllVisible: boolean;
|
|
339
|
-
expanded: string[];
|
|
340
|
-
toast: string;
|
|
341
|
-
scrollBarWidth: number;
|
|
342
|
-
customDialog: null | string[];
|
|
343
|
-
customDialogAll?: boolean;
|
|
344
|
-
editObjectDialog: string;
|
|
345
|
-
editObjectAlias: boolean;
|
|
346
|
-
viewFileDialog: string;
|
|
347
|
-
showAliasEditor: string;
|
|
348
|
-
enumDialog: null | {
|
|
349
|
-
item: TreeItem;
|
|
350
|
-
type: 'room' | 'func';
|
|
351
|
-
enumsOriginal: string;
|
|
352
|
-
};
|
|
353
|
-
enumDialogEnums?: null | string[];
|
|
354
|
-
roleDialog: null | string;
|
|
355
|
-
statesView: boolean;
|
|
356
|
-
/** ['name', 'type', 'role', 'room', 'func', 'val', 'buttons'] */
|
|
357
|
-
columns: ObjectBrowserPossibleColumns[] | null;
|
|
358
|
-
columnsForAdmin: Record<string, CustomAdminColumnStored[]> | null;
|
|
359
|
-
columnsSelectorShow: boolean;
|
|
360
|
-
columnsAuto: boolean;
|
|
361
|
-
columnsWidths: Record<string, number>;
|
|
362
|
-
columnsDialogTransparent: number;
|
|
363
|
-
columnsEditCustomDialog: null | {
|
|
364
|
-
obj: ioBroker.Object;
|
|
365
|
-
item: TreeItem;
|
|
366
|
-
it: AdapterColumn;
|
|
367
|
-
};
|
|
368
|
-
customColumnDialogValueChanged: boolean;
|
|
369
|
-
showExportDialog: false | number;
|
|
370
|
-
showAllExportOptions: boolean;
|
|
371
|
-
linesEnabled: boolean;
|
|
372
|
-
showDescription: boolean;
|
|
373
|
-
showContextMenu: {
|
|
374
|
-
item: TreeItem;
|
|
375
|
-
position: {
|
|
376
|
-
left: number;
|
|
377
|
-
top: number;
|
|
378
|
-
};
|
|
379
|
-
subItem?: string;
|
|
380
|
-
subAnchor?: HTMLLIElement;
|
|
381
|
-
} | null;
|
|
382
|
-
noStatesByExportImport: boolean;
|
|
383
|
-
beautifyJsonExport: boolean;
|
|
384
|
-
excludeSystemRepositoriesFromExport: boolean;
|
|
385
|
-
excludeTranslations: boolean;
|
|
386
|
-
updating?: boolean;
|
|
387
|
-
modalNewObj?: null | {
|
|
388
|
-
id: string;
|
|
389
|
-
initialType?: ioBroker.ObjectType;
|
|
390
|
-
initialStateType?: ioBroker.CommonType;
|
|
391
|
-
};
|
|
392
|
-
error?: any;
|
|
393
|
-
modalEditOfAccess?: boolean;
|
|
394
|
-
modalEditOfAccessObjData?: TreeItemData;
|
|
395
|
-
updateOpened?: boolean;
|
|
396
|
-
tooltipInfo: null | {
|
|
397
|
-
el: JSX.Element[];
|
|
398
|
-
id: string;
|
|
399
|
-
};
|
|
400
|
-
/** Show the menu with aliases for state */
|
|
401
|
-
aliasMenu: string;
|
|
402
|
-
/** Show rename dialog */
|
|
403
|
-
showRenameDialog: {
|
|
404
|
-
id: string;
|
|
405
|
-
childrenIds: string[];
|
|
406
|
-
} | null;
|
|
407
|
-
}
|
|
408
24
|
export declare class ObjectBrowserClass extends Component<ObjectBrowserProps, ObjectBrowserState> {
|
|
409
25
|
private info;
|
|
410
26
|
private localStorage;
|
|
411
|
-
private lastAppliedFilter;
|
|
412
27
|
private readonly tableRef;
|
|
413
|
-
private readonly filterRefs;
|
|
414
28
|
private pausedSubscribes;
|
|
415
29
|
private selectFirst;
|
|
30
|
+
/** Last navigation that was applied from `navigateTo` or reported via `onNavigateTo` (loop guard). */
|
|
31
|
+
private lastNav;
|
|
32
|
+
/** True while applying `navigateTo`, so the derived-state watcher does not echo it back. */
|
|
33
|
+
private applyingNav;
|
|
416
34
|
private root;
|
|
417
35
|
private readonly states;
|
|
418
36
|
private subscribes;
|
|
419
37
|
private unsubscribeTimer;
|
|
420
38
|
private statesUpdateTimer;
|
|
421
39
|
private objectsUpdateTimer;
|
|
422
|
-
private filterTimer;
|
|
423
40
|
private readonly visibleCols;
|
|
424
41
|
private readonly texts;
|
|
425
42
|
private readonly possibleCols;
|
|
@@ -445,23 +62,16 @@ export declare class ObjectBrowserClass extends Component<ObjectBrowserProps, Ob
|
|
|
445
62
|
private systemConfig;
|
|
446
63
|
objects: Record<string, ioBroker.Object>;
|
|
447
64
|
private defaultHistory;
|
|
448
|
-
private
|
|
65
|
+
private ctrlPressed;
|
|
449
66
|
private columnsVisibility;
|
|
450
67
|
private changedIds;
|
|
451
68
|
private contextMenu;
|
|
452
69
|
private recordStates;
|
|
453
70
|
private styles;
|
|
71
|
+
private expertMode;
|
|
454
72
|
private customColumnDialog;
|
|
455
|
-
/** Namespaces which are allowed to be edited by non-expert users */
|
|
456
|
-
static NON_EXPERT_NAMESPACES: string[];
|
|
457
73
|
constructor(props: ObjectBrowserProps);
|
|
458
74
|
loadAllObjects(update?: boolean): Promise<void>;
|
|
459
|
-
/**
|
|
460
|
-
* Check if it is a non-expert id
|
|
461
|
-
*/
|
|
462
|
-
static isNonExpertId(
|
|
463
|
-
/** id to test */
|
|
464
|
-
id: string): boolean;
|
|
465
75
|
private expandAllSelected;
|
|
466
76
|
/**
|
|
467
77
|
* @param isDouble is double click
|
|
@@ -541,7 +151,6 @@ export declare class ObjectBrowserClass extends Component<ObjectBrowserProps, Ob
|
|
|
541
151
|
private subscribe;
|
|
542
152
|
private unsubscribe;
|
|
543
153
|
private pauseSubscribe;
|
|
544
|
-
private onFilter;
|
|
545
154
|
clearFilter(): void;
|
|
546
155
|
isFilterEmpty(): boolean;
|
|
547
156
|
private getFilterInput;
|
|
@@ -568,8 +177,11 @@ export declare class ObjectBrowserClass extends Component<ObjectBrowserProps, Ob
|
|
|
568
177
|
private _exportObjects;
|
|
569
178
|
renderExportDialog(): JSX.Element | null;
|
|
570
179
|
renderRenameDialog(): JSX.Element | null;
|
|
180
|
+
private parseJsonFile;
|
|
571
181
|
private handleJsonUpload;
|
|
572
182
|
toolTipObjectCreating: () => JSX.Element[] | string;
|
|
183
|
+
onOpenFile(): void;
|
|
184
|
+
renderInputJsonDialog(): JSX.Element | null;
|
|
573
185
|
/**
|
|
574
186
|
* Renders the toolbar.
|
|
575
187
|
*/
|
|
@@ -594,8 +206,6 @@ export declare class ObjectBrowserClass extends Component<ObjectBrowserProps, Ob
|
|
|
594
206
|
private renderEditRoleDialog;
|
|
595
207
|
private onColumnsEditCustomDialogClose;
|
|
596
208
|
private renderColumnsEditCustomDialog;
|
|
597
|
-
private static getCustomValue;
|
|
598
|
-
private static setCustomValue;
|
|
599
209
|
/**
|
|
600
210
|
* Renders a custom value.
|
|
601
211
|
*/
|
|
@@ -615,7 +225,7 @@ export declare class ObjectBrowserClass extends Component<ObjectBrowserProps, Ob
|
|
|
615
225
|
*/
|
|
616
226
|
renderItem(root: TreeItem, isExpanded: boolean | undefined, counter?: {
|
|
617
227
|
count: number;
|
|
618
|
-
}): JSX.Element[];
|
|
228
|
+
}): (JSX.Element | null)[];
|
|
619
229
|
private calculateColumnsVisibility;
|
|
620
230
|
resizerMouseMove: (e: MouseEvent) => void;
|
|
621
231
|
resizerMouseUp: () => void;
|
|
@@ -638,10 +248,19 @@ export declare class ObjectBrowserClass extends Component<ObjectBrowserProps, Ob
|
|
|
638
248
|
renderHandleRight(): JSX.Element;
|
|
639
249
|
private renderHeader;
|
|
640
250
|
private renderToast;
|
|
251
|
+
/** Derive the current navigation target from the dialog/selection state. */
|
|
252
|
+
private getStateNav;
|
|
253
|
+
private static navEqual;
|
|
254
|
+
/** Apply a navigation target coming from the parent (`navigateTo`): select + open the dialog. */
|
|
255
|
+
private applyNavigateTo;
|
|
256
|
+
/** Apply the initial `navigateTo` after the tree has loaded (called from componentDidMount). */
|
|
257
|
+
private applyInitialNavigateTo;
|
|
258
|
+
/** Reconcile `navigateTo` (parent/URL) with the browser's selection/dialog state. */
|
|
259
|
+
private reconcileNavigation;
|
|
641
260
|
/**
|
|
642
261
|
* Called when component is updated.
|
|
643
262
|
*/
|
|
644
|
-
componentDidUpdate(): void;
|
|
263
|
+
componentDidUpdate(prevProps: ObjectBrowserProps): void;
|
|
645
264
|
scrollToItem(id: string): void;
|
|
646
265
|
private renderCustomDialog;
|
|
647
266
|
private onUpdate;
|
|
@@ -656,10 +275,10 @@ export declare class ObjectBrowserClass extends Component<ObjectBrowserProps, Ob
|
|
|
656
275
|
*/
|
|
657
276
|
private renderContextMenu;
|
|
658
277
|
private renderEditValueDialog;
|
|
278
|
+
doFilter(doNotStore?: boolean): void;
|
|
659
279
|
/**
|
|
660
280
|
* The rendering method of this component.
|
|
661
281
|
*/
|
|
662
282
|
render(): JSX.Element;
|
|
663
283
|
}
|
|
664
284
|
export declare const ObjectBrowser: (props: Record<string, any>) => JSX.Element;
|
|
665
|
-
export {};
|