iobroker.admin 7.2.3 → 7.2.4
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/README.md +1 -1
- package/adminWww/asset-manifest.json +7 -7
- package/adminWww/index.html +1 -1
- package/adminWww/static/js/471.07237cb8.chunk.js +2 -0
- package/adminWww/static/js/471.07237cb8.chunk.js.map +1 -0
- package/adminWww/static/js/{8222.6e8bc303.chunk.js → 8222.e33e3b98.chunk.js} +2 -2
- package/adminWww/static/js/8222.e33e3b98.chunk.js.map +1 -0
- package/adminWww/static/js/{main.c0c71277.js → main.c6b1bb7c.js} +2 -2
- package/adminWww/static/js/{main.c0c71277.js.map → main.c6b1bb7c.js.map} +1 -1
- package/io-package.json +2 -2
- package/package.json +5 -5
- package/adminWww/static/js/471.b6be6b3a.chunk.js +0 -2
- package/adminWww/static/js/471.b6be6b3a.chunk.js.map +0 -1
- package/adminWww/static/js/8222.6e8bc303.chunk.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"static/js/8222.6e8bc303.chunk.js","mappings":"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","sources":["tabs/Config.tsx","components/EasyModeCard.tsx","tabs/EasyMode.tsx"],"sourcesContent":["import React, { Component, type JSX } from 'react';\n\nimport { green, grey, orange, red } from '@mui/material/colors';\n\nimport {\n AppBar,\n Tooltip,\n Paper,\n Fab,\n Toolbar,\n Typography,\n Checkbox,\n FormControl,\n FormControlLabel,\n FormHelperText,\n IconButton,\n InputLabel,\n MenuItem,\n Select,\n Dialog,\n DialogTitle,\n DialogContent,\n DialogActions,\n Button,\n} from '@mui/material';\n\nimport {\n Help as HelpIcon,\n Pause as PauseIcon,\n PlayArrow as PlayArrowIcon,\n Refresh as RefreshIcon,\n Edit as EditIcon,\n} from '@mui/icons-material';\n\nimport {\n Router,\n Icon,\n Confirm as ConfirmDialog,\n type IobTheme,\n type AdminConnection,\n type ThemeName,\n type ThemeType,\n type Translate,\n} from '@iobroker/adapter-react-v5';\n\nimport { type DeviceManagerPropsProps, JsonConfig } from '@iobroker/json-config';\nimport DeviceManager from '@iobroker/dm-gui-components';\n\nimport AdminUtils from '../helpers/AdminUtils';\n\nconst arrayLogLevel: ioBroker.LogLevel[] = ['silly', 'debug', 'info', 'warn', 'error'];\n\ndeclare global {\n interface Window {\n // @deprecated\n attachEvent: any;\n // @deprecated\n detachEvent: any;\n }\n}\n\nconst styles: Record<string, any> = {\n root: {\n height: '100%',\n display: 'flex',\n flexDirection: 'column',\n overflow: 'hidden',\n },\n scroll: {\n height: '100%',\n overflowY: 'auto',\n },\n instanceIcon: {\n width: 42,\n height: 42,\n marginRight: 16,\n verticalAlign: 'middle',\n },\n button: {\n marginRight: 5,\n width: 36,\n height: 36,\n },\n version: {\n fontSize: 12,\n opacity: 0.8,\n marginLeft: 20,\n marginRight: 10,\n },\n versionAliveConnected: (theme: IobTheme) => ({\n color: theme.palette.mode === 'dark' ? '#23a623' : '#60ff60',\n }),\n versionAliveNotConnected: {\n color: '#a67223',\n },\n buttonControl: {\n padding: '5px',\n transition: 'opacity 0.2s',\n height: 34,\n },\n enabled: {\n color: green[400],\n '&:hover': {\n backgroundColor: green[200],\n },\n },\n disabled: {\n color: red[400],\n '&:hover': {\n backgroundColor: red[200],\n },\n },\n hide: {\n visibility: 'hidden',\n },\n formControl: {\n width: '100%',\n marginBottom: 5,\n },\n logLevel: {\n fontSize: 12,\n marginLeft: 10,\n },\n green: {\n color: green[700],\n },\n red: {\n color: red[700],\n },\n grey: {\n color: grey[700],\n },\n blue: {\n color: '#0055a9',\n },\n orange: {\n color: orange[400],\n },\n orangeDevice: {\n color: orange[300],\n },\n tooltip: {\n pointerEvents: 'none',\n },\n};\n\ninterface ConfigProps {\n adapter: string;\n instance: number;\n materialize: boolean;\n tab?: boolean;\n jsonConfig: boolean;\n socket: AdminConnection;\n themeName: ThemeName;\n themeType: ThemeType;\n t: Translate;\n isFloatComma: boolean;\n dateFormat: string;\n style: Record<string, React.CSSProperties>;\n icon: string;\n lang: ioBroker.Languages;\n easyMode?: boolean;\n adminInstance: string;\n onRegisterIframeRef: (ref: HTMLIFrameElement) => void;\n onUnregisterIframeRef: (ref: HTMLIFrameElement) => void;\n configStored: (allStored: boolean) => void;\n theme: IobTheme;\n width: 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n version?: string;\n}\n\ninterface ConfigState {\n checkedExist: boolean | string;\n showStopAdminDialog: boolean;\n running: boolean;\n canStart: boolean;\n alive: boolean;\n connected: boolean | null;\n connectedToHost: boolean;\n logOnTheFlyValue: boolean;\n logLevel: ioBroker.LogLevel;\n logLevelValue: ioBroker.LogLevel;\n tempLogLevel: ioBroker.LogLevel;\n common?: Record<string, any>;\n native?: Record<string, any>;\n adapterDocLangs?: ioBroker.Languages[];\n extension?: boolean | null;\n showLogLevelDialog: boolean;\n}\n\nclass Config extends Component<ConfigProps, ConfigState> {\n private refIframe: HTMLIFrameElement | null;\n\n private registered: boolean;\n\n constructor(props: ConfigProps) {\n super(props);\n\n this.state = {\n checkedExist: false,\n showStopAdminDialog: false,\n running: false,\n canStart: false,\n alive: false,\n connected: false,\n connectedToHost: false,\n logOnTheFlyValue: false,\n logLevel: 'info',\n logLevelValue: 'info',\n tempLogLevel: 'info',\n showLogLevelDialog: false,\n };\n\n this.refIframe = null;\n this.registered = false;\n }\n\n componentDidUpdate(/* prevProps, prevState, snapshot */): void {\n if (!this.registered && this.refIframe?.contentWindow) {\n this.registered = true;\n this.props.onRegisterIframeRef(this.refIframe);\n }\n }\n\n componentDidMount(): void {\n // receive messages from IFRAME\n if (this.props.tab) {\n void this.props.socket.fileExists(`${this.props.adapter}.admin`, 'tab.html').then(exist => {\n if (exist) {\n this.setState({ checkedExist: 'tab.html' });\n } else {\n return this.props.socket\n .fileExists(`${this.props.adapter}.admin`, 'tab_m.html')\n .then(exists =>\n exists\n ? this.setState({ checkedExist: 'tab_m.html' })\n : window.alert('Cannot find tab(_m).html'),\n );\n }\n });\n } else {\n // this.props.socket.getState('system.adapter.' + this.props.adapter + '.' + this.props.instance + '.')\n const instanceId = `system.adapter.${this.props.adapter}.${this.props.instance}`;\n void this.props.socket.subscribeObject(instanceId, this.onObjectChange);\n this.props.socket\n .getObject(instanceId)\n .then(async obj => {\n const tempLogLevel = await this.props.socket.getState(`${instanceId}.logLevel`);\n await this.props.socket.subscribeState(`${instanceId}.logLevel`, this.onStateChange);\n\n const alive = await this.props.socket.getState(`${instanceId}.alive`);\n await this.props.socket.subscribeState(`${instanceId}.alive`, this.onStateChange);\n\n const connectedToHost = await this.props.socket.getState(`${instanceId}.connected`);\n await this.props.socket.subscribeState(`${instanceId}.connected`, this.onStateChange);\n\n let connected;\n try {\n connected = await this.props.socket.getState(\n `${this.props.adapter}.${this.props.instance}.info.connection`,\n );\n void this.props.socket.subscribeState(\n `${this.props.adapter}.${this.props.instance}.info.connection`,\n this.onStateChange,\n );\n } catch {\n // ignore\n connected = null;\n }\n\n let extension;\n try {\n extension = await this.props.socket.getState(\n `${this.props.adapter}.${this.props.instance}.info.extension`,\n );\n void this.props.socket.subscribeState(\n `${this.props.adapter}.${this.props.instance}.info.extension`,\n this.onStateChange,\n );\n } catch {\n // ignore\n extension = null;\n }\n\n this.setState({\n checkedExist: true,\n running: obj?.common?.onlyWWW || obj?.common?.enabled,\n canStart: !obj?.common?.onlyWWW,\n alive: !!alive?.val,\n extension: extension ? !!extension?.val : null,\n connectedToHost: !!connectedToHost?.val,\n connected: connected ? !!connected.val : null,\n logLevel: obj?.common?.loglevel || 'info',\n logLevelValue: obj?.common?.loglevel || 'info',\n tempLogLevel: tempLogLevel?.val || obj?.common?.loglevel || 'info',\n common: obj?.common || {},\n native: obj?.native || {},\n adapterDocLangs: obj?.common?.docs\n ? (Object.keys(obj.common.docs) as ioBroker.Languages[])\n : ['en'],\n });\n })\n .catch(error => {\n console.error(error);\n this.setState({ checkedExist: true, running: false });\n });\n }\n\n if (!this.registered && this.refIframe?.contentWindow) {\n this.registered = true;\n this.props.onRegisterIframeRef(this.refIframe);\n }\n\n (window.addEventListener || window.attachEvent)(\n window.addEventListener ? 'message' : 'onmessage',\n this.closeConfig,\n false,\n );\n }\n\n onObjectChange = (id: string, obj: ioBroker.InstanceObject | null): void => {\n if (id === `system.adapter.${this.props.adapter}.${this.props.instance}`) {\n this.setState({\n running: obj?.common?.onlyWWW || obj?.common?.enabled,\n canStart: !obj?.common?.onlyWWW,\n logLevel: obj?.common?.loglevel || 'info',\n });\n }\n };\n\n // returns:\n // grey - daemon / disabled\n // green - daemon / run,connected,alive\n // blue - schedule\n // orangeDevice - daemon / run, connected to controller, not connected to device\n // orange - daemon / run,not connected\n // red - daemon / not run, not connected\n getInstanceStatus(): string {\n const mode = this.state.common?.mode || '';\n let status = mode === 'daemon' ? 'green' : 'blue';\n\n if (\n this.state.common?.enabled &&\n (!this.state.common.webExtension || !this.state.native?.webInstance || mode === 'daemon')\n ) {\n if (this.state.common.webExtension && this.state.native?.webInstance) {\n if (this.state.extension !== null) {\n return this.state.extension ? 'green' : 'red';\n }\n }\n\n if (!this.state.connectedToHost || !this.state.alive) {\n status = mode === 'daemon' ? 'red' : 'orangeDevice';\n }\n if (this.state.connected !== null && !this.state.connected && status !== 'red') {\n status = 'orange';\n }\n } else {\n status = mode === 'daemon' ? 'grey' : 'blue';\n }\n\n return status;\n }\n\n onStateChange = (id: string, state?: ioBroker.State | null): void => {\n const instanceId = `system.adapter.${this.props.adapter}.${this.props.instance}`;\n if (id === `${instanceId}.alive`) {\n this.setState({ alive: !!state?.val });\n } else if (id === `${instanceId}.connected`) {\n this.setState({ connectedToHost: !!state?.val });\n } else if (id === `${this.props.adapter}.${this.props.instance}.info.connection`) {\n this.setState({ connected: state ? !!state.val : null });\n } else if (id === `${this.props.adapter}.${this.props.instance}.info.extension`) {\n this.setState({ extension: state ? !!state.val : null });\n } else if (id === `${instanceId}.logLevel`) {\n this.setState({ tempLogLevel: state ? (state.val as ioBroker.LogLevel) : null });\n }\n };\n\n componentWillUnmount(): void {\n void this.props.socket.unsubscribeObject(\n `system.adapter.${this.props.adapter}.${this.props.instance}`,\n this.onObjectChange,\n );\n\n (window.removeEventListener || window.detachEvent)(\n window.removeEventListener ? 'message' : 'onmessage',\n this.closeConfig,\n false,\n );\n\n if (this.registered && this.refIframe) {\n this.props.onUnregisterIframeRef(this.refIframe);\n }\n this.refIframe = null;\n }\n\n closeConfig = (event: MessageEvent & { message: string }): void => {\n if (event.origin !== window.location.origin) {\n return;\n }\n\n if (event.data === 'close' || event.message === 'close') {\n if (this.props.easyMode) {\n Router.doNavigate('easy');\n } else {\n Router.doNavigate('tab-instances');\n }\n } else if (event.data === 'change' || event.message === 'change') {\n this.props.configStored(false);\n } else if (event.data === 'nochange' || event.message === 'nochange') {\n this.props.configStored(true);\n } else if (\n (typeof event.data === 'string' && event.data.startsWith('goto:')) ||\n (typeof event.message === 'string' && event.message.startsWith('goto:'))\n ) {\n const [, url] = (event.data || event.message).split(':');\n const [tab, subTab, parameter] = url.split('/');\n Router.doNavigate(tab, subTab, parameter);\n }\n };\n\n renderHelpButton(): JSX.Element | null {\n if (this.props.jsonConfig) {\n return (\n <div\n style={{\n display: 'inline-block',\n position: 'absolute',\n right: 0,\n top: 5,\n }}\n >\n <Tooltip\n title={this.props.t('Show help for this adapter')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <Fab\n sx={{ '&.MuiFab-root': styles.button }}\n onClick={() => {\n const lang = this.state.adapterDocLangs?.includes(this.props.lang)\n ? this.props.lang\n : 'en';\n window.open(\n AdminUtils.getDocsLinkForAdapter({ lang, adapterName: this.props.adapter }),\n 'help',\n );\n }}\n >\n <HelpIcon />\n </Fab>\n </Tooltip>\n </div>\n );\n }\n return null;\n }\n\n getConfigurator(): JSX.Element | null {\n if (this.props.jsonConfig) {\n return (\n <JsonConfig\n theme={this.props.theme}\n width={this.props.width}\n adapterName={this.props.adapter}\n instance={this.props.instance}\n socket={this.props.socket}\n themeName={this.props.themeName}\n themeType={this.props.themeType}\n dateFormat={this.props.dateFormat}\n isFloatComma={this.props.isFloatComma}\n configStored={this.props.configStored}\n t={this.props.t}\n DeviceManager={DeviceManager as unknown as React.FC<DeviceManagerPropsProps>}\n />\n );\n }\n const src =\n `adapter/${this.props.adapter}/` +\n `${this.props.tab ? this.state.checkedExist : this.props.materialize ? 'index_m.html' : 'index.html'}?` +\n `${this.props.instance || 0}&newReact=true&${this.props.instance || 0}&react=${this.props.themeName}`;\n\n if (this.state.checkedExist) {\n return (\n <iframe\n ref={el => this && (this.refIframe = el)}\n title=\"config\"\n style={this.props.style}\n src={src}\n ></iframe>\n );\n }\n return null;\n }\n\n returnStopAdminDialog(): JSX.Element | null {\n return this.state.showStopAdminDialog ? (\n <ConfirmDialog\n title={this.props.t('Please confirm')}\n text={this.props.t('stop_admin', this.props.instance)}\n ok={this.props.t('Stop admin')}\n onClose={result => {\n if (result) {\n this.props.socket\n .extendObject(`system.adapter.${this.props.adapter}.${this.props.instance}`, {\n common: { enabled: false },\n })\n .catch(error => window.alert(error));\n }\n this.setState({ showStopAdminDialog: false });\n }}\n />\n ) : null;\n }\n\n renderLogLevelDialog(): JSX.Element | null {\n if (!this.state.showLogLevelDialog) {\n return null;\n }\n return (\n <Dialog\n open={!0}\n onClose={() => this.setState({ showLogLevelDialog: false })}\n >\n <DialogTitle>\n {this.props.t('Edit log level rule for %s', `${this.props.adapter}.${this.props.instance}`)}\n </DialogTitle>\n <DialogContent>\n <FormControl\n style={{ ...styles.formControl, marginTop: 10 }}\n variant=\"outlined\"\n >\n <InputLabel>{this.props.t('log level')}</InputLabel>\n <Select\n variant=\"standard\"\n value={this.state.logLevelValue}\n fullWidth\n onChange={el => this.setState({ logLevelValue: el.target.value as ioBroker.LogLevel })}\n >\n {arrayLogLevel.map(el => (\n <MenuItem\n key={el}\n value={el}\n >\n {this.props.t(el)}\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n <FormControl\n style={styles.formControl}\n variant=\"outlined\"\n >\n <FormControlLabel\n control={\n <Checkbox\n checked={this.state.logOnTheFlyValue}\n onChange={e => this.setState({ logOnTheFlyValue: e.target.checked })}\n />\n }\n label={this.props.t('Without restart')}\n />\n <FormHelperText>\n {this.state.logOnTheFlyValue\n ? this.props.t('Will be reset to the saved log level after restart of adapter')\n : this.props.t('Log level will be saved permanently')}\n </FormHelperText>\n </FormControl>\n </DialogContent>\n <DialogActions>\n <Button\n color=\"primary\"\n variant=\"contained\"\n onClick={() => {\n if (this.state.logOnTheFlyValue) {\n void this.props.socket.setState(\n `system.adapter.${this.props.adapter}.${this.props.instance}.logLevel`,\n this.state.logLevelValue,\n );\n } else {\n this.props.socket\n .extendObject(`system.adapter.${this.props.adapter}.${this.props.instance}`, {\n common: { loglevel: this.state.logLevelValue },\n })\n .catch(error => window.alert(`Cannot set log level: ${error}`));\n }\n this.setState({ showLogLevelDialog: false });\n }}\n >\n {this.props.t('Ok')}\n </Button>\n <Button\n color=\"grey\"\n variant=\"contained\"\n onClick={() => this.setState({ showLogLevelDialog: false })}\n >\n {this.props.t('Cancel')}\n </Button>\n </DialogActions>\n </Dialog>\n );\n }\n\n render(): JSX.Element {\n return (\n <Paper style={styles.root}>\n <AppBar\n color=\"default\"\n position=\"static\"\n >\n <Toolbar variant=\"dense\">\n <Typography\n variant=\"h6\"\n color=\"inherit\"\n >\n {this.props.jsonConfig ? (\n <Icon\n src={this.props.icon}\n style={styles.instanceIcon}\n />\n ) : null}\n {`${this.props.t('Instance settings')}: ${this.props.adapter}.${this.props.instance}`}\n {this.props.version ? (\n <span\n style={{\n ...styles.version,\n ...styles[this.getInstanceStatus()],\n }}\n >\n v{this.props.version}\n </span>\n ) : null}\n <Tooltip\n title={this.props.t('Start/stop')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <span>\n <IconButton\n size=\"small\"\n onClick={event => {\n event.stopPropagation();\n event.preventDefault();\n if (\n this.state.running &&\n `${this.props.adapter}.${this.props.instance}` ===\n this.props.adminInstance\n ) {\n this.setState({ showStopAdminDialog: true });\n } else {\n this.props.socket\n .extendObject(\n `system.adapter.${this.props.adapter}.${this.props.instance}`,\n { common: { enabled: !this.state.running } },\n )\n .catch(error => window.alert(`Cannot set log level: ${error}`));\n }\n }}\n onFocus={event => event.stopPropagation()}\n sx={{\n ...styles.buttonControl,\n ...(this.state.canStart\n ? this.state.running\n ? styles.enabled\n : styles.disabled\n : styles.hide),\n }}\n >\n {this.state.running ? <PauseIcon /> : <PlayArrowIcon />}\n </IconButton>\n </span>\n </Tooltip>\n <Tooltip\n title={this.props.t('Restart')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <span>\n <IconButton\n size=\"small\"\n onClick={event => {\n event.stopPropagation();\n this.props.socket\n .extendObject(\n `system.adapter.${this.props.adapter}.${this.props.instance}`,\n {},\n )\n .catch(error => window.alert(`Cannot set log level: ${error}`));\n }}\n onFocus={event => event.stopPropagation()}\n style={{\n ...styles.buttonControl,\n ...(!this.state.canStart ? styles.hide : undefined),\n }}\n disabled={!this.state.running}\n >\n <RefreshIcon />\n </IconButton>\n </span>\n </Tooltip>\n {this.state.tempLogLevel !== this.state.logLevel ? (\n <Tooltip\n title={this.props.t('temporary log level')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <span style={styles.logLevel}>{this.state.tempLogLevel}</span>\n </Tooltip>\n ) : null}\n <Tooltip\n title={this.props.t('log level')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <span style={styles.logLevel}>\n {this.state.tempLogLevel !== this.state.logLevel\n ? `/ ${this.state.logLevel}`\n : this.state.logLevel}\n </span>\n </Tooltip>\n <Tooltip\n title={this.props.t(\n 'Edit log level rule for %s',\n `${this.props.adapter}.${this.props.instance}`,\n )}\n >\n <IconButton\n size=\"small\"\n onClick={event => {\n event.stopPropagation();\n this.setState({ showLogLevelDialog: true });\n }}\n onFocus={event => event.stopPropagation()}\n style={{\n ...styles.buttonControl,\n ...(!this.state.canStart ? styles.hide : undefined),\n width: 34,\n height: 34,\n }}\n >\n <EditIcon style={{ width: 20, height: 20 }} />\n </IconButton>\n </Tooltip>\n {/* <IsVisible config={item} name=\"allowInstanceLink\">\n <Tooltip title={this.props.t('Instance link %s', this.props.instanceItem?.id)}>\n <span>\n <IconButton\n size=\"small\"\n className={Utils.clsx(classes.buttonControl, (!this.props.instanceItem?.links || !this.props.instanceItem?.links[0]) && classes.hide)}\n disabled={!this.state.running}\n onClick={event => {\n event.stopPropagation();\n if (this.props.instanceItem?.links.length === 1) {\n // replace IPv6 Address with [ipv6]:port\n let url = this.props.instanceItem?.links[0].link;\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 window.open(url, this.props.instanceItem?.id);\n } else {\n setShowLinks(true);\n }\n }}\n onFocus={event => event.stopPropagation()}\n >\n <InputIcon />\n </IconButton>\n </div>\n </Tooltip>\n </IsVisible> */}\n </Typography>\n {this.renderHelpButton()}\n </Toolbar>\n </AppBar>\n {this.getConfigurator()}\n {this.returnStopAdminDialog()}\n {this.renderLogLevelDialog()}\n </Paper>\n );\n }\n}\n\nexport default Config;\n","import React, { type JSX } from 'react';\nimport { Card, CardMedia } from '@mui/material';\n\nimport { type IobTheme } from '@iobroker/adapter-react-v5';\n\nconst boxShadow = '0 2px 2px 0 rgba(0, 0, 0, .14),0 3px 1px -2px rgba(0, 0, 0, .12),0 1px 5px 0 rgba(0, 0, 0, .2)';\nconst boxShadowHover = '0 8px 17px 0 rgba(0, 0, 0, .2),0 6px 20px 0 rgba(0, 0, 0, .19)';\n\nconst styles: Record<string, any> = {\n root: (theme: IobTheme) => ({\n position: 'relative',\n m: '10px',\n width: 300,\n minHeight: 200,\n background: theme.palette.background.default,\n boxShadow,\n display: 'flex',\n transition: 'box-shadow 0.5s',\n cursor: 'pointer',\n '&:hover': {\n boxShadow: boxShadowHover,\n },\n }),\n imageBlock: {\n background: 'silver',\n minHeight: 60,\n display: 'flex',\n padding: '0 10px 0 10px',\n position: 'relative',\n justifyContent: 'space-between',\n transition: 'background 0.5s',\n },\n img: {\n width: 60,\n height: 60,\n marginTop: 20,\n position: 'relative',\n '&:after': {\n content: '\"\"',\n position: 'absolute',\n zIndex: 2,\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n background: 'url(\"img/no-image.png\") 100% 100% no-repeat',\n backgroundSize: 'cover',\n backgroundColor: '#fff',\n },\n },\n adapter: {\n width: '100%',\n fontWeight: 'bold',\n fontSize: 15,\n verticalAlign: 'middle',\n marginTop: 'auto',\n borderTop: '1px solid silver',\n padding: '20px 4px',\n textAlign: 'center',\n textTransform: 'uppercase',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n color: '#ffab40',\n },\n instanceStateNotAlive1: {\n backgroundColor: 'rgba(192, 192, 192, 0.4)',\n },\n wrapperDesc: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n overflow: 'hidden',\n },\n desc: {\n padding: 20,\n fontSize: 15,\n },\n};\n\nfunction getText(text: ioBroker.StringOrTranslated, lang: ioBroker.Languages): string {\n if (text && typeof text === 'object') {\n return text[lang] || text.en || '';\n }\n return (text as string) || '';\n}\n\ninterface EasyModeCardProps {\n icon: string;\n id: string;\n desc: ioBroker.StringOrTranslated;\n lang: ioBroker.Languages;\n navigate: () => void;\n}\n\nconst EasyModeCard = ({ icon, id, desc, lang, navigate }: EasyModeCardProps): JSX.Element => (\n <Card\n onClick={navigate}\n sx={styles.root}\n >\n <div style={{ ...styles.imageBlock, ...styles.instanceStateNotAlive1 }}>\n <CardMedia\n sx={styles.img}\n component=\"img\"\n image={`adapter/${id.split('.')[0]}/${icon}`}\n />\n </div>\n <div style={styles.wrapperDesc}>\n <div style={styles.desc}>{getText(desc, lang)}</div>\n <div style={styles.adapter}>{id}</div>\n </div>\n </Card>\n);\n\nexport default EasyModeCard;\n","import React, { Component, type JSX } from 'react';\n\nimport { AppBar, CardMedia, CircularProgress, IconButton, Paper, Toolbar } from '@mui/material';\n\nimport { ArrowBack as ArrowBackIcon } from '@mui/icons-material';\n\nimport {\n ToggleThemeMenu,\n type IobTheme,\n type AdminConnection,\n type ThemeType,\n type ThemeName,\n type Translate,\n} from '@iobroker/adapter-react-v5';\n\nimport Config from './Config';\nimport EasyModeCard from '../components/EasyModeCard';\n\nconst styles: Record<string, any> = {\n appBar: (theme: IobTheme) => ({\n transition: theme.transitions.create(['margin', 'width'], {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen,\n }),\n }),\n wrapperEasyMode: {\n height: '100%',\n borderRadius: 0,\n },\n wrapperCard: {\n padding: '80px 20px 20px',\n height: '100%',\n overflowY: 'auto',\n },\n controlHeight: {\n display: 'flex',\n flexFlow: 'wrap',\n justifyContent: 'center',\n },\n img: {\n width: 60,\n height: 60,\n position: 'relative',\n borderRadius: 60,\n },\n logoWhite: {\n background: 'white',\n },\n wrapperHeader: {\n display: 'flex',\n alignItems: 'center',\n },\n headerName: {\n fontSize: 24,\n marginLeft: 10,\n },\n toolBar: {\n justifyContent: 'space-between',\n margin: '5px 0',\n },\n paper: {\n height: '100%',\n paddingTop: 80,\n },\n iframe: {\n height: '100%',\n width: '100%',\n background: '#FFF',\n color: '#000',\n borderRadius: 5,\n border: '1px solid #888',\n },\n IconButtons: {\n display: 'flex',\n },\n logoPointer: {\n cursor: 'pointer',\n },\n};\n\nexport interface InstanceConfig {\n id: string;\n title: ioBroker.StringOrTranslated;\n desc: ioBroker.StringOrTranslated;\n color: string;\n url: string;\n icon: string;\n materialize: boolean;\n jsonConfig: boolean;\n version: string;\n tab?: boolean;\n config?: boolean;\n}\n\ninterface EasyModeConfig {\n strict: boolean;\n configs: InstanceConfig[];\n}\n\ninterface EasyModeProps {\n themeName: ThemeName;\n toggleTheme: () => void;\n t: Translate;\n lang: ioBroker.Languages;\n navigate: (tab: string | undefined | null, dialog?: string | null, id?: string | null, arg?: string | null) => void;\n location: {\n tab: string;\n dialog?: string;\n id?: string;\n arg?: string;\n };\n socket: AdminConnection;\n themeType: ThemeType;\n theme: IobTheme;\n width: 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n isFloatComma: boolean;\n dateFormat: string;\n configStored: (changed: boolean) => void;\n getLocation: () => {\n tab: string;\n dialog: string;\n id: string;\n arg: string;\n };\n onRegisterIframeRef: (ref: HTMLIFrameElement) => void;\n onUnregisterIframeRef: (ref: HTMLIFrameElement) => void;\n configs?: InstanceConfig[];\n adminInstance: string;\n}\n\ninterface EasyModeState {\n configs: InstanceConfig[];\n strictMode: boolean;\n}\n\nclass EasyMode extends Component<EasyModeProps, EasyModeState> {\n constructor(props: EasyModeProps) {\n super(props);\n this.state = {\n configs: this.props.configs,\n strictMode: !this.props.configs,\n };\n }\n\n componentDidMount(): void {\n if (!this.props.configs) {\n void this.props.socket\n .getEasyMode()\n .then((config: EasyModeConfig) => this.setState({ configs: config.configs }));\n }\n }\n\n render(): JSX.Element {\n const {\n t,\n themeName,\n toggleTheme,\n navigate,\n location,\n socket,\n themeType,\n theme,\n width,\n isFloatComma,\n dateFormat,\n configStored,\n getLocation,\n adminInstance,\n } = this.props;\n\n const { configs, strictMode } = this.state;\n if (!configs) {\n return <CircularProgress />;\n }\n\n const tab = location.id;\n const currentInstance = configs.find(({ id }) => id === tab);\n return (\n <Paper style={styles.wrapperEasyMode}>\n <AppBar\n color=\"default\"\n position=\"fixed\"\n sx={styles.appBar}\n >\n <Toolbar style={styles.toolBar}>\n <div style={styles.wrapperHeader}>\n <CardMedia\n onClick={\n (strictMode && !getLocation().dialog) || currentInstance?.tab\n ? () => navigate(currentInstance?.tab ? 'easy' : 'tab-intro')\n : null\n }\n style={{\n ...styles.img,\n ...(themeName === 'colored' ? styles.logoWhite : undefined),\n ...((strictMode && !getLocation().dialog) || currentInstance?.tab\n ? styles.logoPointer\n : undefined),\n }}\n component=\"img\"\n image=\"img/no-image.png\"\n />\n <div style={styles.headerName}>{t('Easy Admin')}</div>\n </div>\n <div style={styles.IconButtons}>\n {((strictMode && !getLocation().dialog) || currentInstance?.tab) && (\n <IconButton\n size=\"large\"\n onClick={() => navigate(currentInstance?.tab ? 'easy' : 'tab-intro')}\n >\n <ArrowBackIcon />\n </IconButton>\n )}\n <ToggleThemeMenu\n t={t}\n toggleTheme={toggleTheme}\n themeName={themeName as 'dark' | 'blue' | 'colored' | 'light'}\n size=\"large\"\n />\n </div>\n </Toolbar>\n </AppBar>\n {currentInstance ? (\n <Paper style={styles.paper}>\n <Config\n style={styles.iframe}\n adapter={currentInstance.id.split('.')[0]}\n instance={parseInt(currentInstance.id.split('.')[1], 10)}\n jsonConfig={currentInstance.jsonConfig}\n materialize={currentInstance.materialize}\n tab={currentInstance?.tab}\n socket={socket}\n easyMode\n themeName={themeName}\n themeType={themeType}\n theme={theme}\n width={width}\n t={t}\n lang={this.props.lang}\n icon={currentInstance.icon}\n adminInstance={adminInstance}\n configStored={configStored}\n dateFormat={dateFormat}\n isFloatComma={isFloatComma}\n // version={currentInstance.version} We don't need a version in easy mode\n onRegisterIframeRef={(ref: HTMLIFrameElement) => this.props.onRegisterIframeRef(ref)}\n onUnregisterIframeRef={(ref: HTMLIFrameElement) => this.props.onUnregisterIframeRef(ref)}\n />\n </Paper>\n ) : (\n <div style={styles.wrapperCard}>\n <div style={styles.controlHeight}>\n {configs\n .sort((a, b) => (a.id < b.id ? -1 : a.id > b.id ? 1 : 0))\n .map(el => (\n <EasyModeCard\n key={el.id}\n lang={this.props.lang}\n navigate={() => navigate(null, 'config', el.id)}\n {...el}\n />\n ))}\n </div>\n </div>\n )}\n </Paper>\n );\n }\n}\n\nexport default EasyMode;\n"],"names":["arrayLogLevel","styles","root","height","display","flexDirection","overflow","scroll","overflowY","instanceIcon","width","marginRight","verticalAlign","button","version","fontSize","opacity","marginLeft","versionAliveConnected","theme","color","palette","mode","versionAliveNotConnected","buttonControl","padding","transition","enabled","green","backgroundColor","disabled","red","hide","visibility","formControl","marginBottom","logLevel","grey","blue","orange","orangeDevice","tooltip","pointerEvents","Config","Component","constructor","props","super","refIframe","registered","onObjectChange","id","obj","_obj$common","_obj$common2","_obj$common3","_obj$common4","this","adapter","instance","setState","running","common","onlyWWW","canStart","loglevel","onStateChange","state","instanceId","alive","val","connectedToHost","connected","extension","tempLogLevel","closeConfig","event","origin","window","location","data","message","easyMode","Router","doNavigate","configStored","startsWith","url","split","tab","subTab","parameter","checkedExist","showStopAdminDialog","logOnTheFlyValue","logLevelValue","showLogLevelDialog","componentDidUpdate","_this$refIframe","contentWindow","onRegisterIframeRef","componentDidMount","_this$refIframe2","socket","fileExists","then","exist","exists","alert","subscribeObject","getObject","async","_obj$common5","_obj$common6","_obj$common7","_extension","_obj$common8","_obj$common9","_obj$common10","_obj$common11","getState","subscribeState","native","adapterDocLangs","docs","Object","keys","catch","error","console","addEventListener","attachEvent","getInstanceStatus","_this$state$common","_this$state$common2","_this$state$native","status","webExtension","webInstance","_this$state$native2","componentWillUnmount","unsubscribeObject","removeEventListener","detachEvent","onUnregisterIframeRef","renderHelpButton","jsonConfig","_jsx","style","position","right","top","children","Tooltip","title","t","slotProps","popper","sx","Fab","onClick","_this$state$adapterDo","lang","includes","open","AdminUtils","getDocsLinkForAdapter","adapterName","HelpIcon","getConfigurator","JsonConfig","themeName","themeType","dateFormat","isFloatComma","DeviceManager","src","materialize","ref","el","returnStopAdminDialog","ConfirmDialog","text","ok","onClose","result","extendObject","renderLogLevelDialog","_jsxs","Dialog","DialogTitle","DialogContent","FormControl","marginTop","variant","InputLabel","Select","value","fullWidth","onChange","target","map","MenuItem","FormControlLabel","control","Checkbox","checked","e","label","FormHelperText","DialogActions","Button","render","Paper","AppBar","Toolbar","Typography","Icon","icon","IconButton","size","stopPropagation","preventDefault","adminInstance","onFocus","PauseIcon","PlayArrowIcon","undefined","RefreshIcon","EditIcon","m","minHeight","background","default","boxShadow","cursor","imageBlock","justifyContent","img","content","zIndex","left","backgroundSize","fontWeight","borderTop","textAlign","textTransform","textOverflow","instanceStateNotAlive1","wrapperDesc","desc","getText","en","_ref","navigate","Card","CardMedia","component","image","appBar","transitions","create","easing","sharp","duration","leavingScreen","wrapperEasyMode","borderRadius","wrapperCard","controlHeight","flexFlow","logoWhite","wrapperHeader","alignItems","headerName","toolBar","margin","paper","paddingTop","iframe","border","IconButtons","logoPointer","EasyMode","configs","strictMode","getEasyMode","config","toggleTheme","getLocation","CircularProgress","currentInstance","find","dialog","ArrowBackIcon","ToggleThemeMenu","parseInt","sort","a","b","EasyModeCard"],"sourceRoot":""}
|