@iobroker/json-config 7.4.0 → 7.4.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigCheckLicense.js","sourceRoot":"./src/","sources":["JsonConfigComponent/ConfigCheckLicense.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { type JSX } from 'react';\n\nimport {\n Button,\n CircularProgress,\n Dialog,\n DialogContent,\n DialogActions,\n DialogTitle,\n Table,\n TableHead,\n TableCell,\n TableRow,\n TableBody,\n DialogContentText,\n TableContainer,\n Box,\n} from '@mui/material';\n\nimport { Check as IconCheck, Send as IconSend } from '@mui/icons-material';\n\nimport { DialogConfirm, I18n, type IobTheme } from '@iobroker/adapter-react-v5';\n\nimport type { ConfigItemCheckLicense } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\n\nconst styles: Record<string, any> = {\n fullWidth: {\n width: '100%',\n },\n icon: {\n width: 24,\n height: 24,\n marginRight: 4,\n },\n licLabel: {\n fontWeight: 'bold',\n minWidth: 100,\n marginRight: 10,\n textTransform: 'capitalize',\n display: 'inline-block',\n },\n licValue: {\n fontWeight: 'normal',\n },\n errorTitle: (theme: IobTheme) => ({\n color: theme.palette.mode === 'dark' ? '#e39191' : '#b62020',\n }),\n okTitle: (theme: IobTheme) => ({\n color: theme.palette.mode === 'dark' ? '#6fd56f' : '#007c00',\n }),\n errorText: (theme: IobTheme) => ({\n color: theme.palette.mode === 'dark' ? '#e39191' : '#b62020',\n mb: '30px',\n }),\n};\n\nexport interface License {\n id: string;\n product: string;\n time: number;\n uuid: string;\n validTill: string;\n version: string;\n usedBy: string;\n invoice: string;\n json: string;\n}\n\ninterface LicenseResult {\n id: string;\n validName: boolean;\n validUuid: boolean;\n validVersion: boolean;\n validTill: boolean;\n license: License;\n used?: boolean;\n}\n\ninterface ConfigCheckLicenseProps extends ConfigGenericProps {\n schema: ConfigItemCheckLicense;\n fullWidth?: boolean;\n}\n\ninterface ConfigCheckLicenseState extends ConfigGenericState {\n showLicenseData: null | Record<string, any>;\n _error: string;\n result: null | boolean;\n running: boolean;\n foundSuitableLicense: boolean;\n licenseOfflineCheck: boolean;\n showLinkToProfile: boolean;\n allLicenses: null | LicenseResult[];\n askForUpdate: boolean;\n}\n\nclass ConfigCheckLicense extends ConfigGeneric<ConfigCheckLicenseProps, ConfigCheckLicenseState> {\n componentDidMount(): void {\n super.componentDidMount();\n this.setState({\n _error: '',\n running: false,\n showLicenseData: null,\n foundSuitableLicense: false,\n licenseOfflineCheck: false,\n result: null,\n allLicenses: null,\n askForUpdate: false,\n showLinkToProfile: false,\n });\n }\n\n renderErrorDialog(): JSX.Element | null {\n if (this.state._error && !this.state.showLicenseData) {\n let content: string | JSX.Element[] = this.state._error;\n if (this.state.allLicenses) {\n content = [<div key=\"error\">{content}</div>];\n content.push(\n <Button\n key=\"button\"\n variant=\"contained\"\n onClick={() => window.open('https://iobroker.net/www/account/licenses', '_blank')}\n >\n {I18n.t('iobroker.net')}\n </Button>,\n );\n if (!this.state.allLicenses.length) {\n content.push(<div key=\"text1\">{I18n.t('ra_No one license found in license manager')}</div>);\n content.push(<div key=\"text2\">{I18n.t('ra_Please create license')}</div>);\n } else {\n // license.id,\n // validName,\n // validUuid,\n // validTill,\n // validVersion,\n // license,\n content.push(\n <TableContainer key=\"table\">\n <Table size=\"small\">\n <TableHead>\n <TableRow>\n <TableCell>{I18n.t('ra_Product')}</TableCell>\n <TableCell>{I18n.t('ra_Version')}</TableCell>\n <TableCell>UUID</TableCell>\n <TableCell>{I18n.t('ra_ValidTill')}</TableCell>\n <TableCell>{I18n.t('ra_Commercial')}</TableCell>\n <TableCell>ID</TableCell>\n </TableRow>\n </TableHead>\n <TableBody>\n {this.state.allLicenses.map(license => (\n <TableRow key={license.id}>\n <TableCell sx={license.validName ? null : styles.errorText}>\n {license.license.product}\n </TableCell>\n <TableCell sx={license.validVersion ? null : styles.errorText}>\n {license.license.version}\n </TableCell>\n <TableCell sx={license.validUuid ? null : styles.errorText}>\n {license.license.uuid || '--'}\n </TableCell>\n <TableCell sx={license.validTill ? null : styles.errorText}>\n {license.license.validTill &&\n license.license.validTill !== '0000-00-00 00:00:00'\n ? new Date(license.license.validTill).toLocaleDateString()\n : '--'}\n </TableCell>\n <TableCell>\n {license.license.invoice !== 'free'\n ? license.license.invoice === 'MANUALLY_CREATED'\n ? '✓'\n : license.license.invoice\n : '-'}\n </TableCell>\n <TableCell>{license.id}</TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </TableContainer>,\n );\n }\n }\n\n return (\n <Dialog\n open={!0}\n maxWidth=\"xl\"\n fullWidth={this.props.fullWidth !== undefined ? this.props.fullWidth : true}\n onClick={() => this.setState({ _error: '', allLicenses: null })}\n >\n <DialogTitle>{I18n.t('ra_Error')}</DialogTitle>\n <DialogContent>\n <DialogContentText>{content}</DialogContentText>\n </DialogContent>\n <DialogActions>\n <Button\n variant=\"contained\"\n onClick={() => this.setState({ _error: '', allLicenses: null })}\n color=\"primary\"\n autoFocus\n startIcon={<IconCheck />}\n >\n {I18n.t('ra_Ok')}\n </Button>\n </DialogActions>\n </Dialog>\n );\n }\n\n return null;\n }\n\n renderMessageDialog(): JSX.Element | null {\n if (this.state.showLicenseData) {\n const pre = [];\n const data = this.state.showLicenseData;\n Object.keys(data).forEach(key => {\n if (data[key] === null || data[key] === undefined) {\n return;\n }\n if (typeof data[key] === 'object') {\n const obj = data[key];\n Object.keys(obj).forEach(key1 => {\n if (obj[key1] !== null && obj[key1] !== undefined) {\n if (typeof obj[key1] === 'object') {\n pre.push(\n <div key={key1}>\n <div style={styles.licLabel}>{key1}:</div>\n {JSON.stringify(obj[key1], null, 2)}\n </div>,\n );\n } else {\n pre.push(\n <div key={key1}>\n <div style={styles.licLabel}>\n {key} -{key1}:\n </div>\n {obj[key1].toString()}\n </div>,\n );\n }\n }\n });\n } else {\n pre.push(\n <div key={key}>\n <div style={styles.licLabel}>{key.replace(/_/g, ' ')}:</div>\n {data[key].toString()}\n </div>,\n );\n }\n });\n pre.push(\n <div key=\"checked\">\n <div style={styles.licLabel}>{I18n.t('ra_Checked')}:</div>\n {this.state.licenseOfflineCheck ? I18n.t('ra_locally') : I18n.t('ra_via internet')}\n </div>,\n );\n\n return (\n <Dialog\n open={!0}\n onClose={() => this.setState({ showLicenseData: null })}\n >\n <DialogTitle>\n <Box\n component=\"span\"\n sx={this.state.result ? styles.okTitle : styles.errorTitle}\n >\n {I18n.t('ra_License %s', this.state.result ? 'OK' : 'INVALID')}\n </Box>\n </DialogTitle>\n <DialogContent>\n {this.state.showLinkToProfile ? (\n <Button\n variant=\"contained\"\n onClick={() => window.open('https://iobroker.net/www/account/licenses', '_blank')}\n >\n https://iobroker.net\n </Button>\n ) : null}\n {this.state._error ? (\n <Box\n component=\"div\"\n sx={styles.errorText}\n >\n {this.state._error}\n </Box>\n ) : null}\n {pre}\n </DialogContent>\n <DialogActions>\n <Button\n onClick={() => this.setState({ showLicenseData: null, _error: '' })}\n color=\"primary\"\n variant=\"contained\"\n >\n {I18n.t('ra_Close')}\n </Button>\n </DialogActions>\n </Dialog>\n );\n }\n return null;\n }\n\n static parseJwt(token: string): {\n exp: number;\n iat: number;\n name: string;\n email: string;\n uuid: string;\n version: string;\n invoice: string;\n /** @deprecated use validTill */\n valid_till: string;\n validTill: string;\n [key: string]: string | number;\n } | null {\n const base64Url = token.split('.')[1];\n const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\n const jsonPayload = decodeURIComponent(\n atob(base64)\n .split('')\n .map(c => `%${`00${c.charCodeAt(0).toString(16)}`.slice(-2)}`)\n .join(''),\n );\n try {\n return JSON.parse(jsonPayload);\n } catch {\n return null;\n }\n }\n\n static isVersionValid(version: string, rule: string, invoice: string, adapterName: string): boolean {\n if (!rule || !version) {\n return true;\n }\n let result = true;\n const [major] = version.split('.');\n if (rule.startsWith('>=')) {\n result = parseInt(major, 10) >= parseInt(rule.substring(2, 10));\n } else if (rule.startsWith('<=')) {\n result = parseInt(major, 10) <= parseInt(rule.substring(2, 10));\n } else if (rule.startsWith('>')) {\n result = parseInt(major, 10) > parseInt(rule.substring(1, 10));\n } else if (rule.startsWith('<')) {\n result = parseInt(major, 10) < parseInt(rule.substring(1, 10));\n } else if (rule.startsWith('=')) {\n result = parseInt(major, 10) === parseInt(rule.substring(1, 10));\n } else if (rule.startsWith('==')) {\n result = parseInt(major, 10) === parseInt(rule.substring(2, 10));\n } else if (rule.startsWith('===')) {\n result = parseInt(major, 10) === parseInt(rule.substring(3, 10));\n }\n\n if (!result && invoice && adapterName) {\n // all commercial licenses are valid for all versions\n if (invoice !== 'free') {\n return true;\n }\n }\n\n return true;\n }\n\n async findInLicenseManager(adapterName: string): Promise<LicenseResult[]> {\n // read if the license manager is supported\n const licenses = await this.props.socket.getObject('system.licenses');\n const errors: LicenseResult[] = [];\n if (licenses?.native?.licenses?.length) {\n // enable license manager\n let useLicense: License | null = null;\n const now = Date.now();\n\n let uuid: string;\n if (this.props.schema.uuid) {\n const uuidObj = await this.props.socket.getObject('system.meta.uuid');\n uuid = uuidObj?.native?.uuid;\n }\n let version: string;\n if (this.props.schema.version) {\n const aObj = await this.props.socket.getObject(`system.adapter.${adapterName}`);\n version = aObj?.common?.version;\n }\n\n // find license for vis\n licenses.native.licenses.forEach((license: License) => {\n const validTill =\n !license.validTill ||\n license.validTill === '0000-00-00 00:00:00' ||\n new Date(license.validTill).getTime() > now;\n const parts = (license.product || '').split('.');\n const validName = parts[1] === adapterName || (adapterName === 'vis-2' && parts[1] === 'vis');\n const validUuid = !uuid || !license.uuid || license.uuid === uuid;\n const validVersion = ConfigCheckLicense.isVersionValid(\n version,\n license.version,\n license.invoice,\n adapterName,\n );\n // commercial license has priority over free license\n if (\n (!useLicense || license.invoice !== 'free') &&\n validTill &&\n validName &&\n validUuid &&\n validVersion\n ) {\n useLicense = license;\n }\n errors.push({\n id: license.id,\n validName,\n validUuid,\n validVersion,\n validTill,\n license,\n });\n });\n\n if (useLicense) {\n errors.find(e => e.id === useLicense.id).used = true;\n }\n }\n\n return errors;\n }\n\n async checkLicense(license: string, adapterName: string): Promise<void> {\n let uuid;\n if (this.props.schema.uuid) {\n const uuidObj = await this.props.socket.getObject('system.meta.uuid');\n uuid = uuidObj?.native?.uuid;\n }\n let version;\n if (this.props.schema.version) {\n const aObj = await this.props.socket.getObject(`system.adapter.${adapterName}`);\n version = aObj?.common?.version;\n }\n\n const controller = new AbortController();\n let timeout = setTimeout(() => {\n timeout = null;\n controller.abort();\n }, 5000);\n\n try {\n const response = await window.fetch('https://iobroker.net/api/v1/public/cert/', {\n method: 'POST',\n body: JSON.stringify({ json: license, uuid }),\n headers: {\n 'Content-Type': 'text/plain',\n },\n signal: controller.signal,\n });\n if (timeout) {\n clearTimeout(timeout);\n }\n const dataStr = await response.text();\n let data: {\n error?: string;\n validTill?: string;\n /** @deprecated use validTill */\n valid_till?: string;\n name?: string;\n version?: string;\n uuid?: string;\n invoice?: string;\n };\n try {\n data = JSON.parse(dataStr);\n } catch {\n // ignore\n }\n\n if (data?.error) {\n try {\n const data_ = ConfigCheckLicense.parseJwt(license);\n const _error = I18n.t(`ra_${data_.error || data.error || 'Unknown error'}`).replace(/^ra_/, '');\n\n return this.setState({\n _error,\n licenseOfflineCheck: false,\n showLicenseData: data_,\n result: false,\n running: false,\n });\n } catch {\n console.log('Cannot parse license');\n return this.setState({ _error: data.error, result: false, running: false });\n }\n } else {\n let showLicenseData = null;\n try {\n showLicenseData = ConfigCheckLicense.parseJwt(license);\n } catch {\n // ignore\n }\n if (data) {\n const validTill = data.validTill || data.valid_till;\n if (\n validTill &&\n validTill !== '0000-00-00 00:00:00' &&\n new Date(validTill).getTime() < Date.now()\n ) {\n return this.setState({\n _error: I18n.t('ra_License expired on %s', new Date(validTill).toLocaleString()),\n licenseOfflineCheck: false,\n showLicenseData,\n result: false,\n running: false,\n });\n }\n const parts = (data.name || '').split('.');\n if (parts[1] === adapterName || (parts[1] === 'vis' && adapterName === 'vis-2')) {\n // check UUID\n if (uuid && !data.uuid && adapterName === 'vis-2') {\n return this.setState({\n _error: I18n.t('ra_License must be converted', data.uuid),\n showLinkToProfile: true,\n licenseOfflineCheck: false,\n showLicenseData,\n result: false,\n running: false,\n });\n }\n\n if (uuid && data.uuid && data.uuid !== uuid) {\n return this.setState({\n _error: I18n.t(\n 'ra_Serial number (UUID) \"%s\" in license is for other device.',\n data.uuid,\n ),\n licenseOfflineCheck: false,\n showLicenseData,\n result: false,\n running: false,\n });\n }\n\n if (!ConfigCheckLicense.isVersionValid(version, data.version, data.invoice, adapterName)) {\n return this.setState({\n _error: I18n.t(\n 'ra_License is for version %s, but required version is %s',\n data.version,\n this.props.schema.version,\n ),\n licenseOfflineCheck: false,\n showLicenseData,\n result: false,\n running: false,\n });\n }\n\n return this.setState({\n licenseOfflineCheck: false,\n showLicenseData,\n result: true,\n running: false,\n });\n }\n return this.setState({\n _error: I18n.t('ra_License for other product \"%s\"', data.name),\n licenseOfflineCheck: false,\n showLicenseData,\n result: false,\n running: false,\n });\n }\n throw new Error('ra_Invalid answer from server');\n }\n } catch (error) {\n if (error?.response?.status === 404) {\n return this.setState({ _error: I18n.t('ra_License does not exist'), result: false, running: false });\n }\n // check offline\n try {\n const data = ConfigCheckLicense.parseJwt(license);\n const parts = (data.name || '').split('.');\n\n if (\n data.valid_till &&\n data.valid_till !== '0000-00-00 00:00:00' &&\n new Date(data.valid_till).getTime() < Date.now()\n ) {\n return this.setState({\n _error: I18n.t('ra_License expired on %s', new Date(data.valid_till).toLocaleString()),\n showLicenseData: data,\n licenseOfflineCheck: true,\n running: false,\n result: false,\n });\n }\n if (parts[1] === adapterName) {\n // check UUID\n if (uuid && data.uuid && data.uuid !== uuid) {\n return this.setState({\n _error: I18n.t('ra_Serial number (UUID) \"%s\" in license is for other device.', data.uuid),\n showLicenseData: data,\n licenseOfflineCheck: true,\n result: false,\n running: false,\n });\n }\n\n if (!ConfigCheckLicense.isVersionValid(version, data.version, data.invoice, adapterName)) {\n return this.setState({\n _error: I18n.t(\n 'ra_License is for version %s, but required version is %s',\n data.version,\n this.props.schema.version,\n ),\n licenseOfflineCheck: true,\n showLicenseData: data,\n result: false,\n running: false,\n });\n }\n\n return this.setState({\n running: false,\n result: true,\n licenseOfflineCheck: true,\n showLicenseData: data,\n });\n }\n return this.setState({\n _error: I18n.t('ra_License for other product \"%s\"', data.name),\n licenseOfflineCheck: true,\n showLicenseData: data,\n result: false,\n running: false,\n });\n } catch {\n return this.setState({\n _error: I18n.t('ra_Cannot decode license'),\n result: false,\n licenseOfflineCheck: true,\n running: false,\n });\n }\n }\n }\n\n renderAskForUpdate(): JSX.Element | null {\n if (!this.state.askForUpdate) {\n return null;\n }\n return (\n <DialogConfirm\n text={I18n.t(\n 'ra_License not found in license manager. Do you want to read licenses from iobroker.net?',\n )}\n ok={I18n.t('ra_Yes')}\n onClose={async isYes => {\n if (isYes) {\n this.setState({ askForUpdate: false });\n try {\n // updateLicense is available only in AdminConnection\n await this.props.socket.updateLicenses(null, null);\n } catch (e) {\n window.alert(I18n.t('ra_Cannot read licenses: %s', e));\n return;\n }\n await this._onClick(true);\n } else {\n this.setState({ askForUpdate: false, running: false });\n }\n }}\n />\n );\n }\n\n async _onClick(secondRun?: boolean): Promise<void> {\n const adapterName = this.props.adapterName === 'vis-2' ? 'vis' : this.props.adapterName;\n this.setState({ running: true });\n let license;\n let licenses;\n if (this.props.data.useLicenseManager) {\n licenses = await this.findInLicenseManager(adapterName);\n license = licenses.find(li => li.used);\n if (license) {\n license = license.license.json;\n }\n if (!license && !secondRun) {\n // no suitable license found in the license manager\n // should we read all licenses again?\n this.setState({ askForUpdate: true });\n return;\n }\n } else {\n license = this.props.data.license;\n }\n if (license) {\n await this.checkLicense(license, adapterName);\n } else if (this.props.data.useLicenseManager) {\n this.setState({\n _error: I18n.t('ra_Suitable license not found in license manager'),\n result: false,\n running: false,\n allLicenses: licenses,\n });\n } else {\n // this case could not happen\n this.setState({\n _error: I18n.t('ra_Please enter the license'),\n result: false,\n running: false,\n });\n }\n }\n\n renderItem(/* error, disabled, defaultValue */): JSX.Element {\n return (\n <div style={styles.fullWidth}>\n <Button\n variant={this.props.schema.variant || 'outlined'}\n color={this.props.schema.color || 'primary'}\n style={styles.fullWidth}\n disabled={(!this.props.data.license && !this.props.data.useLicenseManager) || this.state.running}\n startIcon={<IconSend />}\n onClick={() => this._onClick()}\n >\n {this.state.running ? (\n <CircularProgress\n size={20}\n style={{ marginRight: 8 }}\n />\n ) : null}\n {this.getText(this.props.schema.label || 'ra_Check license', this.props.schema.noTranslation)}\n </Button>\n {this.renderMessageDialog()}\n {this.renderErrorDialog()}\n {this.renderAskForUpdate()}\n </div>\n );\n }\n}\n\nexport default ConfigCheckLicense;\n"]}
1
+ {"version":3,"file":"ConfigCheckLicense.js","sourceRoot":"./src/","sources":["JsonConfigComponent/ConfigCheckLicense.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { type JSX } from 'react';\n\nimport {\n Button,\n CircularProgress,\n Dialog,\n DialogContent,\n DialogActions,\n DialogTitle,\n Table,\n TableHead,\n TableCell,\n TableRow,\n TableBody,\n DialogContentText,\n TableContainer,\n Box,\n} from '@mui/material';\n\nimport { Check as IconCheck, Send as IconSend } from '@mui/icons-material';\n\nimport { DialogConfirm, I18n, type IobTheme } from '@iobroker/adapter-react-v5';\n\nimport type { ConfigItemCheckLicense } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\n\nconst styles: Record<string, any> = {\n fullWidth: {\n width: '100%',\n },\n icon: {\n width: 24,\n height: 24,\n marginRight: 4,\n },\n licLabel: {\n fontWeight: 'bold',\n minWidth: 100,\n marginRight: 10,\n textTransform: 'capitalize',\n display: 'inline-block',\n },\n licValue: {\n fontWeight: 'normal',\n },\n errorTitle: (theme: IobTheme): React.CSSProperties => ({\n color: theme.palette.mode === 'dark' ? '#e39191' : '#b62020',\n }),\n okTitle: (theme: IobTheme): React.CSSProperties => ({\n color: theme.palette.mode === 'dark' ? '#6fd56f' : '#007c00',\n }),\n errorText: (theme: IobTheme): any => ({\n color: theme.palette.mode === 'dark' ? '#e39191' : '#b62020',\n mb: '30px',\n }),\n};\n\nexport interface License {\n id: string;\n product: string;\n time: number;\n uuid: string;\n validTill: string;\n version: string;\n usedBy: string;\n invoice: string;\n json: string;\n}\n\ninterface LicenseResult {\n id: string;\n validName: boolean;\n validUuid: boolean;\n validVersion: boolean;\n validTill: boolean;\n license: License;\n used?: boolean;\n}\n\ninterface ConfigCheckLicenseProps extends ConfigGenericProps {\n schema: ConfigItemCheckLicense;\n fullWidth?: boolean;\n}\n\ninterface ConfigCheckLicenseState extends ConfigGenericState {\n showLicenseData: null | Record<string, any>;\n _error: string;\n result: null | boolean;\n running: boolean;\n foundSuitableLicense: boolean;\n licenseOfflineCheck: boolean;\n showLinkToProfile: boolean;\n allLicenses: null | LicenseResult[];\n askForUpdate: boolean;\n}\n\nclass ConfigCheckLicense extends ConfigGeneric<ConfigCheckLicenseProps, ConfigCheckLicenseState> {\n componentDidMount(): void {\n super.componentDidMount();\n this.setState({\n _error: '',\n running: false,\n showLicenseData: null,\n foundSuitableLicense: false,\n licenseOfflineCheck: false,\n result: null,\n allLicenses: null,\n askForUpdate: false,\n showLinkToProfile: false,\n });\n }\n\n renderErrorDialog(): JSX.Element | null {\n if (this.state._error && !this.state.showLicenseData) {\n let content: string | JSX.Element[] = this.state._error;\n if (this.state.allLicenses) {\n content = [<div key=\"error\">{content}</div>];\n content.push(\n <Button\n key=\"button\"\n variant=\"contained\"\n onClick={() => window.open('https://iobroker.net/www/account/licenses', '_blank')}\n >\n {I18n.t('iobroker.net')}\n </Button>,\n );\n if (!this.state.allLicenses.length) {\n content.push(<div key=\"text1\">{I18n.t('ra_No one license found in license manager')}</div>);\n content.push(<div key=\"text2\">{I18n.t('ra_Please create license')}</div>);\n } else {\n // license.id,\n // validName,\n // validUuid,\n // validTill,\n // validVersion,\n // license,\n content.push(\n <TableContainer key=\"table\">\n <Table size=\"small\">\n <TableHead>\n <TableRow>\n <TableCell>{I18n.t('ra_Product')}</TableCell>\n <TableCell>{I18n.t('ra_Version')}</TableCell>\n <TableCell>UUID</TableCell>\n <TableCell>{I18n.t('ra_ValidTill')}</TableCell>\n <TableCell>{I18n.t('ra_Commercial')}</TableCell>\n <TableCell>ID</TableCell>\n </TableRow>\n </TableHead>\n <TableBody>\n {this.state.allLicenses.map(license => (\n <TableRow key={license.id}>\n <TableCell sx={license.validName ? null : styles.errorText}>\n {license.license.product}\n </TableCell>\n <TableCell sx={license.validVersion ? null : styles.errorText}>\n {license.license.version}\n </TableCell>\n <TableCell sx={license.validUuid ? null : styles.errorText}>\n {license.license.uuid || '--'}\n </TableCell>\n <TableCell sx={license.validTill ? null : styles.errorText}>\n {license.license.validTill &&\n license.license.validTill !== '0000-00-00 00:00:00'\n ? new Date(license.license.validTill).toLocaleDateString()\n : '--'}\n </TableCell>\n <TableCell>\n {license.license.invoice !== 'free'\n ? license.license.invoice === 'MANUALLY_CREATED'\n ? '✓'\n : license.license.invoice\n : '-'}\n </TableCell>\n <TableCell>{license.id}</TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </TableContainer>,\n );\n }\n }\n\n return (\n <Dialog\n open={!0}\n maxWidth=\"xl\"\n fullWidth={this.props.fullWidth !== undefined ? this.props.fullWidth : true}\n onClick={() => this.setState({ _error: '', allLicenses: null })}\n >\n <DialogTitle>{I18n.t('ra_Error')}</DialogTitle>\n <DialogContent>\n <DialogContentText>{content}</DialogContentText>\n </DialogContent>\n <DialogActions>\n <Button\n variant=\"contained\"\n onClick={() => this.setState({ _error: '', allLicenses: null })}\n color=\"primary\"\n autoFocus\n startIcon={<IconCheck />}\n >\n {I18n.t('ra_Ok')}\n </Button>\n </DialogActions>\n </Dialog>\n );\n }\n\n return null;\n }\n\n renderMessageDialog(): JSX.Element | null {\n if (this.state.showLicenseData) {\n const pre = [];\n const data = this.state.showLicenseData;\n Object.keys(data).forEach(key => {\n if (data[key] === null || data[key] === undefined) {\n return;\n }\n if (typeof data[key] === 'object') {\n const obj = data[key];\n Object.keys(obj).forEach(key1 => {\n if (obj[key1] !== null && obj[key1] !== undefined) {\n if (typeof obj[key1] === 'object') {\n pre.push(\n <div key={key1}>\n <div style={styles.licLabel}>{key1}:</div>\n {JSON.stringify(obj[key1], null, 2)}\n </div>,\n );\n } else {\n pre.push(\n <div key={key1}>\n <div style={styles.licLabel}>\n {key} -{key1}:\n </div>\n {obj[key1].toString()}\n </div>,\n );\n }\n }\n });\n } else {\n pre.push(\n <div key={key}>\n <div style={styles.licLabel}>{key.replace(/_/g, ' ')}:</div>\n {data[key].toString()}\n </div>,\n );\n }\n });\n pre.push(\n <div key=\"checked\">\n <div style={styles.licLabel}>{I18n.t('ra_Checked')}:</div>\n {this.state.licenseOfflineCheck ? I18n.t('ra_locally') : I18n.t('ra_via internet')}\n </div>,\n );\n\n return (\n <Dialog\n open={!0}\n onClose={() => this.setState({ showLicenseData: null })}\n >\n <DialogTitle>\n <Box\n component=\"span\"\n sx={this.state.result ? styles.okTitle : styles.errorTitle}\n >\n {I18n.t('ra_License %s', this.state.result ? 'OK' : 'INVALID')}\n </Box>\n </DialogTitle>\n <DialogContent>\n {this.state.showLinkToProfile ? (\n <Button\n variant=\"contained\"\n onClick={() => window.open('https://iobroker.net/www/account/licenses', '_blank')}\n >\n https://iobroker.net\n </Button>\n ) : null}\n {this.state._error ? (\n <Box\n component=\"div\"\n sx={styles.errorText}\n >\n {this.state._error}\n </Box>\n ) : null}\n {pre}\n </DialogContent>\n <DialogActions>\n <Button\n onClick={() => this.setState({ showLicenseData: null, _error: '' })}\n color=\"primary\"\n variant=\"contained\"\n >\n {I18n.t('ra_Close')}\n </Button>\n </DialogActions>\n </Dialog>\n );\n }\n return null;\n }\n\n static parseJwt(token: string): {\n exp: number;\n iat: number;\n name: string;\n email: string;\n uuid: string;\n version: string;\n invoice: string;\n /** @deprecated use validTill */\n valid_till: string;\n validTill: string;\n [key: string]: string | number;\n } | null {\n const base64Url = token.split('.')[1];\n const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\n const jsonPayload = decodeURIComponent(\n atob(base64)\n .split('')\n .map(c => `%${`00${c.charCodeAt(0).toString(16)}`.slice(-2)}`)\n .join(''),\n );\n try {\n return JSON.parse(jsonPayload);\n } catch {\n return null;\n }\n }\n\n static isVersionValid(version: string, rule: string, invoice: string, adapterName: string): boolean {\n if (!rule || !version) {\n return true;\n }\n let result = true;\n const [major] = version.split('.');\n if (rule.startsWith('>=')) {\n result = parseInt(major, 10) >= parseInt(rule.substring(2, 10));\n } else if (rule.startsWith('<=')) {\n result = parseInt(major, 10) <= parseInt(rule.substring(2, 10));\n } else if (rule.startsWith('>')) {\n result = parseInt(major, 10) > parseInt(rule.substring(1, 10));\n } else if (rule.startsWith('<')) {\n result = parseInt(major, 10) < parseInt(rule.substring(1, 10));\n } else if (rule.startsWith('=')) {\n result = parseInt(major, 10) === parseInt(rule.substring(1, 10));\n } else if (rule.startsWith('==')) {\n result = parseInt(major, 10) === parseInt(rule.substring(2, 10));\n } else if (rule.startsWith('===')) {\n result = parseInt(major, 10) === parseInt(rule.substring(3, 10));\n }\n\n if (!result && invoice && adapterName) {\n // all commercial licenses are valid for all versions\n if (invoice !== 'free') {\n return true;\n }\n }\n\n return true;\n }\n\n async findInLicenseManager(adapterName: string): Promise<LicenseResult[]> {\n // read if the license manager is supported\n const licenses = await this.props.socket.getObject('system.licenses');\n const errors: LicenseResult[] = [];\n if (licenses?.native?.licenses?.length) {\n // enable license manager\n let useLicense: License | null = null;\n const now = Date.now();\n\n let uuid: string;\n if (this.props.schema.uuid) {\n const uuidObj = await this.props.socket.getObject('system.meta.uuid');\n uuid = uuidObj?.native?.uuid;\n }\n let version: string;\n if (this.props.schema.version) {\n const aObj = await this.props.socket.getObject(`system.adapter.${adapterName}`);\n version = aObj?.common?.version;\n }\n\n // find license for vis\n licenses.native.licenses.forEach((license: License) => {\n const validTill =\n !license.validTill ||\n license.validTill === '0000-00-00 00:00:00' ||\n new Date(license.validTill).getTime() > now;\n const parts = (license.product || '').split('.');\n const validName = parts[1] === adapterName || (adapterName === 'vis-2' && parts[1] === 'vis');\n const validUuid = !uuid || !license.uuid || license.uuid === uuid;\n const validVersion = ConfigCheckLicense.isVersionValid(\n version,\n license.version,\n license.invoice,\n adapterName,\n );\n // commercial license has priority over free license\n if (\n (!useLicense || license.invoice !== 'free') &&\n validTill &&\n validName &&\n validUuid &&\n validVersion\n ) {\n useLicense = license;\n }\n errors.push({\n id: license.id,\n validName,\n validUuid,\n validVersion,\n validTill,\n license,\n });\n });\n\n if (useLicense) {\n errors.find(e => e.id === useLicense.id).used = true;\n }\n }\n\n return errors;\n }\n\n async checkLicense(license: string, adapterName: string): Promise<void> {\n let uuid;\n if (this.props.schema.uuid) {\n const uuidObj = await this.props.socket.getObject('system.meta.uuid');\n uuid = uuidObj?.native?.uuid;\n }\n let version;\n if (this.props.schema.version) {\n const aObj = await this.props.socket.getObject(`system.adapter.${adapterName}`);\n version = aObj?.common?.version;\n }\n\n const controller = new AbortController();\n let timeout = setTimeout(() => {\n timeout = null;\n controller.abort();\n }, 5000);\n\n try {\n const response = await window.fetch('https://iobroker.net/api/v1/public/cert/', {\n method: 'POST',\n body: JSON.stringify({ json: license, uuid }),\n headers: {\n 'Content-Type': 'text/plain',\n },\n signal: controller.signal,\n });\n if (timeout) {\n clearTimeout(timeout);\n }\n const dataStr = await response.text();\n let data: {\n error?: string;\n validTill?: string;\n /** @deprecated use validTill */\n valid_till?: string;\n name?: string;\n version?: string;\n uuid?: string;\n invoice?: string;\n };\n try {\n data = JSON.parse(dataStr);\n } catch {\n // ignore\n }\n\n if (data?.error) {\n try {\n const data_ = ConfigCheckLicense.parseJwt(license);\n const _error = I18n.t(`ra_${data_.error || data.error || 'Unknown error'}`).replace(/^ra_/, '');\n\n return this.setState({\n _error,\n licenseOfflineCheck: false,\n showLicenseData: data_,\n result: false,\n running: false,\n });\n } catch {\n console.log('Cannot parse license');\n return this.setState({ _error: data.error, result: false, running: false });\n }\n } else {\n let showLicenseData = null;\n try {\n showLicenseData = ConfigCheckLicense.parseJwt(license);\n } catch {\n // ignore\n }\n if (data) {\n const validTill = data.validTill || data.valid_till;\n if (\n validTill &&\n validTill !== '0000-00-00 00:00:00' &&\n new Date(validTill).getTime() < Date.now()\n ) {\n return this.setState({\n _error: I18n.t('ra_License expired on %s', new Date(validTill).toLocaleString()),\n licenseOfflineCheck: false,\n showLicenseData,\n result: false,\n running: false,\n });\n }\n const parts = (data.name || '').split('.');\n if (parts[1] === adapterName || (parts[1] === 'vis' && adapterName === 'vis-2')) {\n // check UUID\n if (uuid && !data.uuid && adapterName === 'vis-2') {\n return this.setState({\n _error: I18n.t('ra_License must be converted', data.uuid),\n showLinkToProfile: true,\n licenseOfflineCheck: false,\n showLicenseData,\n result: false,\n running: false,\n });\n }\n\n if (uuid && data.uuid && data.uuid !== uuid) {\n return this.setState({\n _error: I18n.t(\n 'ra_Serial number (UUID) \"%s\" in license is for other device.',\n data.uuid,\n ),\n licenseOfflineCheck: false,\n showLicenseData,\n result: false,\n running: false,\n });\n }\n\n if (!ConfigCheckLicense.isVersionValid(version, data.version, data.invoice, adapterName)) {\n return this.setState({\n _error: I18n.t(\n 'ra_License is for version %s, but required version is %s',\n data.version,\n this.props.schema.version,\n ),\n licenseOfflineCheck: false,\n showLicenseData,\n result: false,\n running: false,\n });\n }\n\n return this.setState({\n licenseOfflineCheck: false,\n showLicenseData,\n result: true,\n running: false,\n });\n }\n return this.setState({\n _error: I18n.t('ra_License for other product \"%s\"', data.name),\n licenseOfflineCheck: false,\n showLicenseData,\n result: false,\n running: false,\n });\n }\n throw new Error('ra_Invalid answer from server');\n }\n } catch (error) {\n if (error?.response?.status === 404) {\n return this.setState({ _error: I18n.t('ra_License does not exist'), result: false, running: false });\n }\n // check offline\n try {\n const data = ConfigCheckLicense.parseJwt(license);\n const parts = (data.name || '').split('.');\n\n if (\n data.valid_till &&\n data.valid_till !== '0000-00-00 00:00:00' &&\n new Date(data.valid_till).getTime() < Date.now()\n ) {\n return this.setState({\n _error: I18n.t('ra_License expired on %s', new Date(data.valid_till).toLocaleString()),\n showLicenseData: data,\n licenseOfflineCheck: true,\n running: false,\n result: false,\n });\n }\n if (parts[1] === adapterName) {\n // check UUID\n if (uuid && data.uuid && data.uuid !== uuid) {\n return this.setState({\n _error: I18n.t('ra_Serial number (UUID) \"%s\" in license is for other device.', data.uuid),\n showLicenseData: data,\n licenseOfflineCheck: true,\n result: false,\n running: false,\n });\n }\n\n if (!ConfigCheckLicense.isVersionValid(version, data.version, data.invoice, adapterName)) {\n return this.setState({\n _error: I18n.t(\n 'ra_License is for version %s, but required version is %s',\n data.version,\n this.props.schema.version,\n ),\n licenseOfflineCheck: true,\n showLicenseData: data,\n result: false,\n running: false,\n });\n }\n\n return this.setState({\n running: false,\n result: true,\n licenseOfflineCheck: true,\n showLicenseData: data,\n });\n }\n return this.setState({\n _error: I18n.t('ra_License for other product \"%s\"', data.name),\n licenseOfflineCheck: true,\n showLicenseData: data,\n result: false,\n running: false,\n });\n } catch {\n return this.setState({\n _error: I18n.t('ra_Cannot decode license'),\n result: false,\n licenseOfflineCheck: true,\n running: false,\n });\n }\n }\n }\n\n renderAskForUpdate(): JSX.Element | null {\n if (!this.state.askForUpdate) {\n return null;\n }\n return (\n <DialogConfirm\n text={I18n.t(\n 'ra_License not found in license manager. Do you want to read licenses from iobroker.net?',\n )}\n ok={I18n.t('ra_Yes')}\n onClose={async isYes => {\n if (isYes) {\n this.setState({ askForUpdate: false });\n try {\n // updateLicense is available only in AdminConnection\n await this.props.socket.updateLicenses(null, null);\n } catch (e) {\n window.alert(I18n.t('ra_Cannot read licenses: %s', e));\n return;\n }\n await this._onClick(true);\n } else {\n this.setState({ askForUpdate: false, running: false });\n }\n }}\n />\n );\n }\n\n async _onClick(secondRun?: boolean): Promise<void> {\n const adapterName = this.props.adapterName === 'vis-2' ? 'vis' : this.props.adapterName;\n this.setState({ running: true });\n let license;\n let licenses;\n if (this.props.data.useLicenseManager) {\n licenses = await this.findInLicenseManager(adapterName);\n license = licenses.find(li => li.used);\n if (license) {\n license = license.license.json;\n }\n if (!license && !secondRun) {\n // no suitable license found in the license manager\n // should we read all licenses again?\n this.setState({ askForUpdate: true });\n return;\n }\n } else {\n license = this.props.data.license;\n }\n if (license) {\n await this.checkLicense(license, adapterName);\n } else if (this.props.data.useLicenseManager) {\n this.setState({\n _error: I18n.t('ra_Suitable license not found in license manager'),\n result: false,\n running: false,\n allLicenses: licenses,\n });\n } else {\n // this case could not happen\n this.setState({\n _error: I18n.t('ra_Please enter the license'),\n result: false,\n running: false,\n });\n }\n }\n\n renderItem(/* error, disabled, defaultValue */): JSX.Element {\n return (\n <div style={styles.fullWidth}>\n <Button\n variant={this.props.schema.variant || 'outlined'}\n color={this.props.schema.color || 'primary'}\n style={styles.fullWidth}\n disabled={(!this.props.data.license && !this.props.data.useLicenseManager) || this.state.running}\n startIcon={<IconSend />}\n onClick={() => this._onClick()}\n >\n {this.state.running ? (\n <CircularProgress\n size={20}\n style={{ marginRight: 8 }}\n />\n ) : null}\n {this.getText(this.props.schema.label || 'ra_Check license', this.props.schema.noTranslation)}\n </Button>\n {this.renderMessageDialog()}\n {this.renderErrorDialog()}\n {this.renderAskForUpdate()}\n </div>\n );\n }\n}\n\nexport default ConfigCheckLicense;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigPanel.js","sourceRoot":"./src/","sources":["JsonConfigComponent/ConfigPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAExC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAEtG,OAAO,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEnE,OAAO,EAAiB,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAGlE,OAAO,aAAmE,MAAM,iBAAiB,CAAC;AAClG,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAChE,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAE1C,MAAM,UAAU,GAAmD;IAC/D,SAAS,EAAE,eAAe;IAC1B,KAAK,EAAE,WAAW;IAClB,YAAY,EAAE,kBAAkB;IAChC,kBAAkB,EAAE,wBAAwB;IAC5C,cAAc,EAAE,oBAAoB;IACpC,WAAW,EAAE,uBAAuB;IACpC,YAAY,EAAE,kBAAkB;IAChC,QAAQ,EAAE,cAAc;IACxB,YAAY,EAAE,kBAAkB;IAChC,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,WAAW;IAClB,WAAW,EAAE,iBAAiB;IAC9B,IAAI,EAAE,UAAU;IAChB,MAAM,EAAE,YAAY;IACpB,UAAU,EAAE,gBAAgB;IAC5B,aAAa,EAAE,mBAAmB;IAClC,OAAO,EAAE,mBAAmB;IAC5B,IAAI,EAAE,UAAU;IAChB,YAAY,EAAE,kBAAkB;IAChC,IAAI,EAAE,UAAU;IAChB,MAAM,EAAE,kBAAkB;IAC1B,KAAK,EAAE,iBAAiB;IACxB,WAAW,EAAE,iBAAiB;IAC9B,QAAQ,EAAE,oBAAoB;IAC9B,SAAS,EAAE,eAAe;IAC1B,EAAE,EAAE,QAAQ;IACZ,UAAU,EAAE,gBAAgB;IAC5B,QAAQ,EAAE,cAAc;IACxB,OAAO,EAAE,aAAa;IACtB,MAAM,EAAE,YAAY;IACpB,QAAQ,EAAE,cAAc;IACxB,QAAQ,EAAE,cAAc;IACxB,OAAO,EAAE,aAAa;IACtB,IAAI,EAAE,UAAU;IAChB,MAAM,EAAE,YAAY;IACpB,IAAI,EAAE,UAAU;IAChB,MAAM,EAAE,YAAY;IACpB,YAAY,EAAE,kBAAkB;IAChC,2BAA2B;IAC3B,MAAM,EAAE,YAAY;IACpB,MAAM,EAAE,YAAY;IACpB,QAAQ,EAAE,cAAc;IACxB,MAAM,EAAE,YAAY;IACpB,KAAK,EAAE,WAAW;IAClB,WAAW,EAAE,iBAAiB;IAC9B,UAAU,EAAE,gBAAgB;IAC5B,UAAU,EAAE,gBAAgB;IAC5B,UAAU,EAAE,gBAAgB;IAC5B,KAAK,EAAE,WAAW;IAClB,IAAI,EAAE,UAAU;IAChB,UAAU,EAAE,gBAAgB;IAC5B,UAAU,EAAE,gBAAgB;IAC5B,KAAK,EAAE,WAAW;IAClB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,UAAU;CACnB,CAAC;AAEF,MAAM,MAAM,GAAwB;IAChC,SAAS,EAAE;QACP,KAAK,EAAE,MAAM;QACb,kBAAkB;KACrB;IACD,KAAK,EAAE;QACH,MAAM,EAAE,CAAC;QACT,KAAK,EAAE,iBAAiB;QACxB,SAAS,EAAE,MAAM;QACjB,aAAa,EAAE,CAAC;KACnB;IACD,cAAc,EAAE;QACZ,MAAM,EAAE,gCAAgC;KAC3C;IACD,iBAAiB,EAAE;QACf,MAAM,EAAE,gCAAgC;KAC3C;IACD,OAAO,EAAE;QACL,OAAO,EAAE,MAAM;KAClB;IACD,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,CAAC,KAAe,EAAE,EAAE,CAAC,CAAC;QAC3B,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI;QAC3C,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;KAC5D,CAAC;IACF,SAAS,EAAE,CAAC,KAAe,EAAE,EAAE,CAAC,CAAC;QAC7B,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI;KAChD,CAAC;CACL,CAAC;AAUF,MAAM,WAAY,SAAQ,aAAiD;IACvE,iBAAiB;QACb,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE;YACpD,IAAI,CAAC,QAAQ,CAAC;gBACV,QAAQ,EACJ,CAAG,MAAc,CAAC,aAAyB,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CACvE,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CACjD,KAAK,MAAM;aACnB,CAAC,CAAC;SACN;IACL,CAAC;IAED,WAAW,CAAC,KAA0B,EAAE,QAAiB;QACrD,OAAO,KAAK;YACR,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBAC1B,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE;oBACjD,OAAO,IAAI,CAAC;iBACf;gBAED,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC;gBACzC,IAAI,aAA6C,CAAC;gBAClD,IAAI,IAAI,KAAK,QAAQ,EAAE;oBACnB,OAAO;oBACP,MAAM;oBACN,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE;wBACjB,aAAa,GAAG,YAAY,CAAC;qBAChC;yBAAM,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,EAAE;wBACxE,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC;qBAC7D;yBAAM;wBACH,OAAO,CAAC,KAAK,CAAC,iCAAiC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;wBACxE,aAAa,GAAG,aAAa,CAAC;qBACjC;iBACJ;qBAAM,IAAI,IAAI,KAAK,OAAO,EAAE;oBACzB,aAAa,GAAG,WAAW,CAAC;iBAC/B;qBAAM;oBACH,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC;iBACrD;gBAED,OAAO,CACH,oBAAC,aAAa,IACV,GAAG,EAAE,GAAG,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EACxE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EACvB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAC3B,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,EACjC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,EACjC,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAC7C,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,EACzC,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EACzB,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EACnC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAC7B,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EACzB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAC3B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EACvB,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAC/B,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAC/B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EACvB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EACrB,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,EACrC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,EACrC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAC3B,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAC7B,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAC7C,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAC/B,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,EACjC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,EACrC,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EACnC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,EACzC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EACnC,qBAAqB,EAAE,IAAI,CAAC,KAAK,CAAC,qBAAqB,EACvD,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAC/B,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EACnC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EACzB,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,EACnB,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,EACvC,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GACzB,CACL,CAAC;YACN,CAAC,CAAC;YACJ,CAAC,CAAC,IAAI,CAAC;IACf,CAAC;IAED,MAAM;QACF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAEjC,IAAI,CAAC,MAAM,EAAE;YACT,OAAO,IAAI,CAAC;SACf;QAED,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAEpD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QACtC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;QAElD,IAAI,MAAM,EAAE;YACR,IAAI,MAAM,CAAC,eAAe,EAAE;gBACxB,MAAM,IAAI,GAAG,CACT,oBAAC,KAAK,IACF,IAAI,EAAE;wBACF,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,SAAS;wBAC1B,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,SAAS;wBAC1B,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,SAAS;wBAC1B,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,SAAS;wBAC1B,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,SAAS;qBAC7B,EACD,EAAE,EAAE,KAAK,CAAC,QAAQ,CACd,IAAI,CAAC,KAAK,CAAC,KAAK,EAChB,EAAE,YAAY,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,qBAAqB,EAAE,EAC5D,WAAW,EACX,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,MAAM,IAAI,MAAM,CAAC,SAAS,CACtD,GACH,CACL,CAAC;gBAEF,IAAI,MAAM,CAAC,OAAO,EAAE;oBAChB,OAAO,CACH;wBACI,6BAAK,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,GAAI;wBAC/C,IAAI,CACN,CACN,CAAC;iBACL;gBACD,OAAO,IAAI,CAAC;aACf;YACD,OAAO,IAAI,CAAC;SACf;QAED,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;YAClB,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAuB,CAAC;SAClE;QAED,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YACnB,OAAO,CACH,oBAAC,KAAK,IACF,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAC7C,SAAS,QACT,KAAK,EAAE,MAAM,CAAC,SAAS,EACvB,aAAa,EAAE,CAAC,EAChB,UAAU,EAAE,CAAC,EACb,EAAE,EAAE,WAAW,IAEd,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAC9B,CACX,CAAC;SACL;QAED,IAAI,OAAO,CAAC;QACZ,IAAI,MAAM,CAAC,WAAW,EAAE;YACpB,OAAO,GAAG,CACN,oBAAC,SAAS,IACN,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAC7C,KAAK,EAAE,MAAM,CAAC,SAAS,EACvB,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAC/B,QAAQ,EAAE,GAAG,EAAE;oBACX,CAAG,MAAc,CAAC,aAAyB,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CACvE,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAC9C,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CACzC,CAAC;oBACF,IAAI,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACtD,CAAC;gBAED,oBAAC,gBAAgB,IACb,UAAU,EAAE,oBAAC,cAAc,OAAG,EAC9B,EAAE,EAAE,KAAK,CAAC,QAAQ,CACd,IAAI,CAAC,KAAK,CAAC,KAAK,EAChB,WAAW,EACX,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,EACxC,MAAM,CAAC,KAAK,KAAK,SAAS;wBACtB,CAAC,CAAC,MAAM,CAAC,OAAO;wBAChB,CAAC,CAAC,MAAM,CAAC,KAAK,KAAK,WAAW,IAAI,MAAM,CAAC,SAAS,EACtD,EAAE,KAAK,EAAE,MAAM,EAAE,CACpB;oBAED,oBAAC,UAAU,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO,IAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAc,CAC7D;gBACnB,oBAAC,gBAAgB;oBACb,oBAAC,KAAK,IACF,SAAS,QACT,aAAa,EAAE,CAAC,EAChB,UAAU,EAAE,CAAC,EACb,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAErD,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAC9B,CACO,CACX,CACf,CAAC;SACL;aAAM;YACH,OAAO,GAAG,CACN,oBAAC,GAAG,IACA,SAAS,EAAC,KAAK,EACf,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAC7C,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAC/B,EAAE,EAAE,KAAK,CAAC,QAAQ,CACd,IAAI,CAAC,KAAK,CAAC,KAAK,EAChB,IAAI,CAAC,KAAK,CAAC,KAAK,EAChB,WAAW,EACX,EAAE,KAAK,EAAE,MAAM,EAAE,EACjB,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,MAAM,CAAC,KAAK,EACtC,IAAI,CAAC,KAAK,CAAC,WAAW;oBAClB,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAChF;gBAED,oBAAC,KAAK,IACF,SAAS,QACT,aAAa,EAAE,CAAC,EAChB,UAAU,EAAE,CAAC,EACb,EAAE,EAAE,KAAK,CAAC,QAAQ,CACd,IAAI,CAAC,KAAK,CAAC,KAAK,EAChB,EAAE,KAAK,EAAE,MAAM,EAAE,EACjB,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,MAAM,CAAC,OAAO,EACxC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAC/B,IAEA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAC9B,CACN,CACT,CAAC;SACL;QAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;YACzB,MAAM,IAAI,GAAG,CACT,oBAAC,KAAK,IACF,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EACnC,IAAI,EAAE;oBACF,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,SAAS;oBAC1B,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,SAAS;oBAC1B,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,SAAS;oBAC1B,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,SAAS;oBAC1B,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,SAAS;iBAC7B,EACD,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,IAE/E,OAAO,CACJ,CACX,CAAC;YAEF,IAAI,MAAM,CAAC,OAAO,EAAE;gBAChB,OAAO,CACH;oBACI,6BAAK,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,GAAI;oBAC/C,IAAI,CACN,CACN,CAAC;aACL;YACD,OAAO,IAAI,CAAC;SACf;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;CACJ;AAED,eAAe,WAAW,CAAC","sourcesContent":["import React, { type JSX } from 'react';\n\nimport { Grid2, Accordion, AccordionSummary, AccordionDetails, Typography, Box } from '@mui/material';\n\nimport { ExpandMore as ExpandMoreIcon } from '@mui/icons-material';\n\nimport { type IobTheme, Utils } from '@iobroker/adapter-react-v5';\nimport type { ConfigItemPanel } from '#JC/types';\n\nimport ConfigGeneric, { type ConfigGenericState, type ConfigGenericProps } from './ConfigGeneric';\nimport ConfigAccordion from './ConfigAccordion';\nimport ConfigAlive from './ConfigAlive';\nimport ConfigAutocomplete from './ConfigAutocomplete';\nimport ConfigAutocompleteSendTo from './ConfigAutocompleteSendTo';\nimport ConfigCRON from './ConfigCRON';\nimport ConfigCertificateSelect from './ConfigCertificateSelect';\nimport ConfigCertificates from './ConfigCertificates';\nimport ConfigCertCollection from './ConfigCertCollection';\nimport ConfigCheckLicense from './ConfigCheckLicense';\nimport ConfigCheckbox from './ConfigCheckbox';\nimport ConfigChip from './ConfigChip';\nimport ConfigColor from './ConfigColor';\nimport ConfigCoordinates from './ConfigCoordinates';\nimport ConfigCustom from './ConfigCustom';\nimport ConfigDatePicker from './ConfigDatePicker';\nimport ConfigDeviceManager from './ConfigDeviceManager';\nimport ConfigFile from './ConfigFile';\nimport ConfigFileSelector from './ConfigFileSelector';\nimport ConfigFunc from './ConfigFunc';\nimport ConfigIP from './ConfigIP';\nimport ConfigImageSendTo from './ConfigImageSendTo';\nimport ConfigImageUpload from './ConfigImageUpload';\nimport ConfigInstanceSelect from './ConfigInstanceSelect';\nimport ConfigInterface from './ConfigInterface';\nimport ConfigJsonEditor from './ConfigJsonEditor';\nimport ConfigLanguage from './ConfigLanguage';\nimport ConfigLicense from './ConfigLicense';\nimport ConfigNumber from './ConfigNumber';\nimport ConfigObjectId from './ConfigObjectId';\nimport ConfigPassword from './ConfigPassword';\nimport ConfigPattern from './ConfigPattern';\nimport ConfigPort from './ConfigPort';\nimport ConfigRoom from './ConfigRoom';\nimport ConfigSelect from './ConfigSelect';\nimport ConfigSelectSendTo from './ConfigSelectSendTo';\nimport ConfigSendTo from './ConfigSendto';\nimport ConfigSetState from './ConfigSetState';\nimport ConfigSlider from './ConfigSlider';\nimport ConfigState from './ConfigState';\nimport ConfigStaticDivider from './ConfigStaticDivider';\nimport ConfigStaticHeader from './ConfigStaticHeader';\nimport ConfigStaticImage from './ConfigStaticImage';\nimport ConfigStaticInfo from './ConfigStaticInfo';\nimport ConfigStaticText from './ConfigStaticText';\nimport ConfigTable from './ConfigTable';\nimport ConfigText from './ConfigText';\nimport ConfigTextSendTo from './ConfigTextSendTo';\nimport ConfigTimePicker from './ConfigTimePicker';\nimport ConfigTopic from './ConfigTopic';\nimport ConfigUUID from './ConfigUUID';\nimport ConfigUser from './ConfigUser';\nimport ConfigQrCode from './ConfigQrCode';\n\nconst components: Record<string, typeof ConfigGeneric<any, any>> = {\n accordion: ConfigAccordion,\n alive: ConfigAlive,\n autocomplete: ConfigAutocomplete,\n autocompleteSendTo: ConfigAutocompleteSendTo,\n certCollection: ConfigCertCollection,\n certificate: ConfigCertificateSelect,\n certificates: ConfigCertificates,\n checkbox: ConfigCheckbox,\n checkLicense: ConfigCheckLicense,\n chip: ConfigChip, // deprecated. Use \"chips\"\n chips: ConfigChip,\n color: ConfigColor,\n coordinates: ConfigCoordinates,\n cron: ConfigCRON,\n custom: ConfigCustom,\n datePicker: ConfigDatePicker,\n deviceManager: ConfigDeviceManager,\n divider: ConfigStaticDivider,\n file: ConfigFile,\n fileSelector: ConfigFileSelector,\n func: ConfigFunc,\n header: ConfigStaticHeader,\n image: ConfigImageUpload,\n imageSendTo: ConfigImageSendTo,\n instance: ConfigInstanceSelect,\n interface: ConfigInterface,\n ip: ConfigIP,\n jsonEditor: ConfigJsonEditor,\n language: ConfigLanguage,\n license: ConfigLicense,\n number: ConfigNumber,\n objectId: ConfigObjectId,\n password: ConfigPassword,\n pattern: ConfigPattern,\n port: ConfigPort,\n qrCode: ConfigQrCode,\n room: ConfigRoom,\n select: ConfigSelect,\n selectSendTo: ConfigSelectSendTo,\n // @deprecated Use \"sendTo\"\n sendto: ConfigSendTo,\n sendTo: ConfigSendTo,\n setState: ConfigSetState,\n slider: ConfigSlider,\n state: ConfigState,\n staticImage: ConfigStaticImage,\n staticInfo: ConfigStaticInfo,\n staticLink: ConfigStaticText,\n staticText: ConfigStaticText,\n table: ConfigTable,\n text: ConfigText,\n textSendTo: ConfigTextSendTo,\n timePicker: ConfigTimePicker,\n topic: ConfigTopic,\n uuid: ConfigUUID,\n user: ConfigUser,\n};\n\nconst styles: Record<string, any> = {\n fullWidth: {\n width: '100%',\n // height: '100%',\n },\n paper: {\n margin: 1,\n width: 'auto !important',\n overflowY: 'auto',\n paddingBottom: 1,\n },\n paperWithIcons: {\n height: 'calc(100vh - 259px) !important',\n },\n paperWithoutIcons: {\n height: 'calc(100vh - 235px) !important',\n },\n padding: {\n padding: '10px',\n },\n heading: {},\n primary: (theme: IobTheme) => ({\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.mode === 'dark' ? 'inherit' : '#FFF',\n }),\n secondary: (theme: IobTheme) => ({\n backgroundColor: theme.palette.secondary.main,\n }),\n};\n\ninterface ConfigPanelProps extends ConfigGenericProps {\n schema: ConfigItemPanel;\n withIcons?: boolean;\n}\ninterface ConfigPanelState extends ConfigGenericState {\n expanded?: boolean;\n}\n\nclass ConfigPanel extends ConfigGeneric<ConfigPanelProps, ConfigPanelState> {\n componentDidMount(): void {\n super.componentDidMount();\n if (this.props.schema && this.props.schema.collapsable) {\n this.setState({\n expanded:\n (((window as any)._localStorage as Storage) || window.localStorage).getItem(\n `${this.props.adapterName}.${this.props.attr}`,\n ) === 'true',\n });\n }\n }\n\n renderItems(items: Record<string, any>, disabled: boolean): JSX.Element[] | null {\n return items\n ? Object.keys(items).map(attr => {\n if (this.props.multiEdit && items[attr].noMultiEdit) {\n return null;\n }\n\n const type = items[attr].type || 'panel';\n let ItemComponent: typeof ConfigGeneric<any, any>;\n if (type === 'custom') {\n // name\n // url\n if (items[attr].url) {\n ItemComponent = ConfigCustom;\n } else if (this.props.customs && this.props.customs[items[attr].component]) {\n ItemComponent = this.props.customs[items[attr].component];\n } else {\n console.error(`Cannot find custom component: ${items[attr].component}`);\n ItemComponent = ConfigGeneric;\n }\n } else if (type === 'panel') {\n ItemComponent = ConfigPanel;\n } else {\n ItemComponent = components[type] || ConfigGeneric;\n }\n\n return (\n <ItemComponent\n key={`${attr}_${this.props.index === undefined ? '' : this.props.index}`}\n index={this.props.index}\n changed={this.props.changed}\n arrayIndex={this.props.arrayIndex}\n globalData={this.props.globalData}\n onCommandRunning={this.props.onCommandRunning}\n commandRunning={this.props.commandRunning}\n style={styles.panel}\n socket={this.props.socket}\n adapterName={this.props.adapterName}\n instance={this.props.instance}\n common={this.props.common}\n customs={this.props.customs}\n alive={this.props.alive}\n themeType={this.props.themeType}\n themeName={this.props.themeName}\n theme={this.props.theme}\n data={this.props.data}\n originalData={this.props.originalData}\n systemConfig={this.props.systemConfig}\n onError={this.props.onError}\n onChange={this.props.onChange}\n onBackEndCommand={this.props.onBackEndCommand}\n multiEdit={this.props.multiEdit}\n dateFormat={this.props.dateFormat}\n isFloatComma={this.props.isFloatComma}\n disabled={disabled}\n imagePrefix={this.props.imagePrefix}\n changeLanguage={this.props.changeLanguage}\n forceUpdate={this.props.forceUpdate}\n registerOnForceUpdate={this.props.registerOnForceUpdate}\n customObj={this.props.customObj}\n instanceObj={this.props.instanceObj}\n custom={this.props.custom}\n schema={items[attr]}\n DeviceManager={this.props.DeviceManager}\n attr={attr}\n table={this.props.table}\n />\n );\n })\n : null;\n }\n\n render(): JSX.Element | null {\n const schema = this.props.schema;\n\n if (!schema) {\n return null;\n }\n\n const { disabled, hidden } = this.calculate(schema);\n\n const items = this.props.schema.items;\n const schemaStyle = this.props.schema.style || {};\n\n if (hidden) {\n if (schema.hideOnlyControl) {\n const item = (\n <Grid2\n size={{\n xs: schema.xs || undefined,\n sm: schema.sm || undefined,\n md: schema.md || undefined,\n lg: schema.lg || undefined,\n xl: schema.xl || undefined,\n }}\n sx={Utils.getStyle(\n this.props.theme,\n { marginBottom: 0, textAlign: 'left' /* marginRight: 8, */ },\n schemaStyle,\n this.props.themeType === 'dark' && schema.darkStyle,\n )}\n />\n );\n\n if (schema.newLine) {\n return (\n <>\n <div style={{ flexBasis: '100%', height: 0 }} />\n {item}\n </>\n );\n }\n return item;\n }\n return null;\n }\n\n if (this.props.table) {\n return this.renderItems(items, disabled) as any as JSX.Element;\n }\n\n if (this.props.custom) {\n return (\n <Grid2\n key={`${this.props.attr}_${this.props.index}`}\n container\n style={styles.fullWidth}\n columnSpacing={2}\n rowSpacing={1}\n sx={schemaStyle}\n >\n {this.renderItems(items, disabled)}\n </Grid2>\n );\n }\n\n let content;\n if (schema.collapsable) {\n content = (\n <Accordion\n key={`${this.props.attr}_${this.props.index}`}\n style={styles.fullWidth}\n expanded={!!this.state.expanded}\n onChange={() => {\n (((window as any)._localStorage as Storage) || window.localStorage).setItem(\n `${this.props.adapterName}.${this.props.attr}`,\n this.state.expanded ? 'false' : 'true',\n );\n this.setState({ expanded: !this.state.expanded });\n }}\n >\n <AccordionSummary\n expandIcon={<ExpandMoreIcon />}\n sx={Utils.getStyle(\n this.props.theme,\n schemaStyle,\n this.props.themeType && schema.darkStyle,\n schema.color === 'primary'\n ? styles.primary\n : schema.color === 'secondary' && styles.secondary,\n { width: '100%' },\n )}\n >\n <Typography style={styles.heading}>{this.getText(schema.label)}</Typography>\n </AccordionSummary>\n <AccordionDetails>\n <Grid2\n container\n columnSpacing={2}\n rowSpacing={1}\n sx={{ ...schemaStyle, width: '100%', padding: '10px' }}\n >\n {this.renderItems(items, disabled)}\n </Grid2>\n </AccordionDetails>\n </Accordion>\n );\n } else {\n content = (\n <Box\n component=\"div\"\n key={`${this.props.attr}_${this.props.index}`}\n className={this.props.className}\n sx={Utils.getStyle(\n this.props.theme,\n this.props.style,\n schemaStyle,\n { width: '100%' },\n this.props.isParentTab && styles.paper,\n this.props.isParentTab &&\n (this.props.withIcons ? styles.paperWithIcons : styles.paperWithoutIcons),\n )}\n >\n <Grid2\n container\n columnSpacing={2}\n rowSpacing={1}\n sx={Utils.getStyle(\n this.props.theme,\n { width: '100%' },\n this.props.isParentTab && styles.padding,\n this.props.schema.innerStyle,\n )}\n >\n {this.renderItems(items, disabled)}\n </Grid2>\n </Box>\n );\n }\n\n if (!this.props.isParentTab) {\n const item = (\n <Grid2\n title={this.getText(schema.tooltip)}\n size={{\n xs: schema.xs || undefined,\n sm: schema.sm || undefined,\n md: schema.md || undefined,\n lg: schema.lg || undefined,\n xl: schema.xl || undefined,\n }}\n sx={{ marginBottom: 0, /* marginRight: 8, */ textAlign: 'left', ...schemaStyle }}\n >\n {content}\n </Grid2>\n );\n\n if (schema.newLine) {\n return (\n <>\n <div style={{ flexBasis: '100%', height: 0 }} />\n {item}\n </>\n );\n }\n return item;\n }\n return content;\n }\n}\n\nexport default ConfigPanel;\n"]}
1
+ {"version":3,"file":"ConfigPanel.js","sourceRoot":"./src/","sources":["JsonConfigComponent/ConfigPanel.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { type JSX } from 'react';\n\nimport { Grid2, Accordion, AccordionSummary, AccordionDetails, Typography, Box } from '@mui/material';\n\nimport { ExpandMore as ExpandMoreIcon } from '@mui/icons-material';\n\nimport { type IobTheme, Utils } from '@iobroker/adapter-react-v5';\nimport type { ConfigItemPanel } from '#JC/types';\n\nimport ConfigGeneric, { type ConfigGenericState, type ConfigGenericProps } from './ConfigGeneric';\nimport ConfigAccordion from './ConfigAccordion';\nimport ConfigAlive from './ConfigAlive';\nimport ConfigAutocomplete from './ConfigAutocomplete';\nimport ConfigAutocompleteSendTo from './ConfigAutocompleteSendTo';\nimport ConfigCRON from './ConfigCRON';\nimport ConfigCertificateSelect from './ConfigCertificateSelect';\nimport ConfigCertificates from './ConfigCertificates';\nimport ConfigCertCollection from './ConfigCertCollection';\nimport ConfigCheckLicense from './ConfigCheckLicense';\nimport ConfigCheckbox from './ConfigCheckbox';\nimport ConfigChip from './ConfigChip';\nimport ConfigColor from './ConfigColor';\nimport ConfigCoordinates from './ConfigCoordinates';\nimport ConfigCustom from './ConfigCustom';\nimport ConfigDatePicker from './ConfigDatePicker';\nimport ConfigDeviceManager from './ConfigDeviceManager';\nimport ConfigFile from './ConfigFile';\nimport ConfigFileSelector from './ConfigFileSelector';\nimport ConfigFunc from './ConfigFunc';\nimport ConfigIP from './ConfigIP';\nimport ConfigImageSendTo from './ConfigImageSendTo';\nimport ConfigImageUpload from './ConfigImageUpload';\nimport ConfigInstanceSelect from './ConfigInstanceSelect';\nimport ConfigInterface from './ConfigInterface';\nimport ConfigJsonEditor from './ConfigJsonEditor';\nimport ConfigLanguage from './ConfigLanguage';\nimport ConfigLicense from './ConfigLicense';\nimport ConfigNumber from './ConfigNumber';\nimport ConfigObjectId from './ConfigObjectId';\nimport ConfigPassword from './ConfigPassword';\nimport ConfigPattern from './ConfigPattern';\nimport ConfigPort from './ConfigPort';\nimport ConfigRoom from './ConfigRoom';\nimport ConfigSelect from './ConfigSelect';\nimport ConfigSelectSendTo from './ConfigSelectSendTo';\nimport ConfigSendTo from './ConfigSendto';\nimport ConfigSetState from './ConfigSetState';\nimport ConfigSlider from './ConfigSlider';\nimport ConfigState from './ConfigState';\nimport ConfigStaticDivider from './ConfigStaticDivider';\nimport ConfigStaticHeader from './ConfigStaticHeader';\nimport ConfigStaticImage from './ConfigStaticImage';\nimport ConfigStaticInfo from './ConfigStaticInfo';\nimport ConfigStaticText from './ConfigStaticText';\nimport ConfigTable from './ConfigTable';\nimport ConfigText from './ConfigText';\nimport ConfigTextSendTo from './ConfigTextSendTo';\nimport ConfigTimePicker from './ConfigTimePicker';\nimport ConfigTopic from './ConfigTopic';\nimport ConfigUUID from './ConfigUUID';\nimport ConfigUser from './ConfigUser';\nimport ConfigQrCode from './ConfigQrCode';\n\nconst components: Record<string, typeof ConfigGeneric<any, any>> = {\n accordion: ConfigAccordion,\n alive: ConfigAlive,\n autocomplete: ConfigAutocomplete,\n autocompleteSendTo: ConfigAutocompleteSendTo,\n certCollection: ConfigCertCollection,\n certificate: ConfigCertificateSelect,\n certificates: ConfigCertificates,\n checkbox: ConfigCheckbox,\n checkLicense: ConfigCheckLicense,\n chip: ConfigChip, // deprecated. Use \"chips\"\n chips: ConfigChip,\n color: ConfigColor,\n coordinates: ConfigCoordinates,\n cron: ConfigCRON,\n custom: ConfigCustom,\n datePicker: ConfigDatePicker,\n deviceManager: ConfigDeviceManager,\n divider: ConfigStaticDivider,\n file: ConfigFile,\n fileSelector: ConfigFileSelector,\n func: ConfigFunc,\n header: ConfigStaticHeader,\n image: ConfigImageUpload,\n imageSendTo: ConfigImageSendTo,\n instance: ConfigInstanceSelect,\n interface: ConfigInterface,\n ip: ConfigIP,\n jsonEditor: ConfigJsonEditor,\n language: ConfigLanguage,\n license: ConfigLicense,\n number: ConfigNumber,\n objectId: ConfigObjectId,\n password: ConfigPassword,\n pattern: ConfigPattern,\n port: ConfigPort,\n qrCode: ConfigQrCode,\n room: ConfigRoom,\n select: ConfigSelect,\n selectSendTo: ConfigSelectSendTo,\n // @deprecated Use \"sendTo\"\n sendto: ConfigSendTo,\n sendTo: ConfigSendTo,\n setState: ConfigSetState,\n slider: ConfigSlider,\n state: ConfigState,\n staticImage: ConfigStaticImage,\n staticInfo: ConfigStaticInfo,\n staticLink: ConfigStaticText,\n staticText: ConfigStaticText,\n table: ConfigTable,\n text: ConfigText,\n textSendTo: ConfigTextSendTo,\n timePicker: ConfigTimePicker,\n topic: ConfigTopic,\n uuid: ConfigUUID,\n user: ConfigUser,\n};\n\nconst styles: Record<string, any> = {\n fullWidth: {\n width: '100%',\n // height: '100%',\n },\n paper: {\n margin: 1,\n width: 'auto !important',\n overflowY: 'auto',\n paddingBottom: 1,\n },\n paperWithIcons: {\n height: 'calc(100vh - 259px) !important',\n },\n paperWithoutIcons: {\n height: 'calc(100vh - 235px) !important',\n },\n padding: {\n padding: '10px',\n },\n heading: {},\n primary: (theme: IobTheme): React.CSSProperties => ({\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.mode === 'dark' ? 'inherit' : '#FFF',\n }),\n secondary: (theme: IobTheme): React.CSSProperties => ({\n backgroundColor: theme.palette.secondary.main,\n }),\n};\n\ninterface ConfigPanelProps extends ConfigGenericProps {\n schema: ConfigItemPanel;\n withIcons?: boolean;\n}\ninterface ConfigPanelState extends ConfigGenericState {\n expanded?: boolean;\n}\n\nclass ConfigPanel extends ConfigGeneric<ConfigPanelProps, ConfigPanelState> {\n componentDidMount(): void {\n super.componentDidMount();\n if (this.props.schema && this.props.schema.collapsable) {\n this.setState({\n expanded:\n (((window as any)._localStorage as Storage) || window.localStorage).getItem(\n `${this.props.adapterName}.${this.props.attr}`,\n ) === 'true',\n });\n }\n }\n\n renderItems(items: Record<string, any>, disabled: boolean): JSX.Element[] | null {\n return items\n ? Object.keys(items).map(attr => {\n if (this.props.multiEdit && items[attr].noMultiEdit) {\n return null;\n }\n\n const type = items[attr].type || 'panel';\n let ItemComponent: typeof ConfigGeneric<any, any>;\n if (type === 'custom') {\n // name\n // url\n if (items[attr].url) {\n ItemComponent = ConfigCustom;\n } else if (this.props.customs && this.props.customs[items[attr].component]) {\n ItemComponent = this.props.customs[items[attr].component];\n } else {\n console.error(`Cannot find custom component: ${items[attr].component}`);\n ItemComponent = ConfigGeneric;\n }\n } else if (type === 'panel') {\n ItemComponent = ConfigPanel;\n } else {\n ItemComponent = components[type] || ConfigGeneric;\n }\n\n return (\n <ItemComponent\n key={`${attr}_${this.props.index === undefined ? '' : this.props.index}`}\n index={this.props.index}\n changed={this.props.changed}\n arrayIndex={this.props.arrayIndex}\n globalData={this.props.globalData}\n onCommandRunning={this.props.onCommandRunning}\n commandRunning={this.props.commandRunning}\n style={styles.panel}\n socket={this.props.socket}\n adapterName={this.props.adapterName}\n instance={this.props.instance}\n common={this.props.common}\n customs={this.props.customs}\n alive={this.props.alive}\n themeType={this.props.themeType}\n themeName={this.props.themeName}\n theme={this.props.theme}\n data={this.props.data}\n originalData={this.props.originalData}\n systemConfig={this.props.systemConfig}\n onError={this.props.onError}\n onChange={this.props.onChange}\n onBackEndCommand={this.props.onBackEndCommand}\n multiEdit={this.props.multiEdit}\n dateFormat={this.props.dateFormat}\n isFloatComma={this.props.isFloatComma}\n disabled={disabled}\n imagePrefix={this.props.imagePrefix}\n changeLanguage={this.props.changeLanguage}\n forceUpdate={this.props.forceUpdate}\n registerOnForceUpdate={this.props.registerOnForceUpdate}\n customObj={this.props.customObj}\n instanceObj={this.props.instanceObj}\n custom={this.props.custom}\n schema={items[attr]}\n DeviceManager={this.props.DeviceManager}\n attr={attr}\n table={this.props.table}\n />\n );\n })\n : null;\n }\n\n render(): JSX.Element | null {\n const schema = this.props.schema;\n\n if (!schema) {\n return null;\n }\n\n const { disabled, hidden } = this.calculate(schema);\n\n const items = this.props.schema.items;\n const schemaStyle = this.props.schema.style || {};\n\n if (hidden) {\n if (schema.hideOnlyControl) {\n const item = (\n <Grid2\n size={{\n xs: schema.xs || undefined,\n sm: schema.sm || undefined,\n md: schema.md || undefined,\n lg: schema.lg || undefined,\n xl: schema.xl || undefined,\n }}\n sx={Utils.getStyle(\n this.props.theme,\n { marginBottom: 0, textAlign: 'left' /* marginRight: 8, */ },\n schemaStyle,\n this.props.themeType === 'dark' && schema.darkStyle,\n )}\n />\n );\n\n if (schema.newLine) {\n return (\n <>\n <div style={{ flexBasis: '100%', height: 0 }} />\n {item}\n </>\n );\n }\n return item;\n }\n return null;\n }\n\n if (this.props.table) {\n return this.renderItems(items, disabled) as any as JSX.Element;\n }\n\n if (this.props.custom) {\n return (\n <Grid2\n key={`${this.props.attr}_${this.props.index}`}\n container\n style={styles.fullWidth}\n columnSpacing={2}\n rowSpacing={1}\n sx={schemaStyle}\n >\n {this.renderItems(items, disabled)}\n </Grid2>\n );\n }\n\n let content;\n if (schema.collapsable) {\n content = (\n <Accordion\n key={`${this.props.attr}_${this.props.index}`}\n style={styles.fullWidth}\n expanded={!!this.state.expanded}\n onChange={() => {\n (((window as any)._localStorage as Storage) || window.localStorage).setItem(\n `${this.props.adapterName}.${this.props.attr}`,\n this.state.expanded ? 'false' : 'true',\n );\n this.setState({ expanded: !this.state.expanded });\n }}\n >\n <AccordionSummary\n expandIcon={<ExpandMoreIcon />}\n sx={Utils.getStyle(\n this.props.theme,\n schemaStyle,\n this.props.themeType && schema.darkStyle,\n schema.color === 'primary'\n ? styles.primary\n : schema.color === 'secondary' && styles.secondary,\n { width: '100%' },\n )}\n >\n <Typography style={styles.heading}>{this.getText(schema.label)}</Typography>\n </AccordionSummary>\n <AccordionDetails>\n <Grid2\n container\n columnSpacing={2}\n rowSpacing={1}\n sx={{ ...schemaStyle, width: '100%', padding: '10px' }}\n >\n {this.renderItems(items, disabled)}\n </Grid2>\n </AccordionDetails>\n </Accordion>\n );\n } else {\n content = (\n <Box\n component=\"div\"\n key={`${this.props.attr}_${this.props.index}`}\n className={this.props.className}\n sx={Utils.getStyle(\n this.props.theme,\n this.props.style,\n schemaStyle,\n { width: '100%' },\n this.props.isParentTab && styles.paper,\n this.props.isParentTab &&\n (this.props.withIcons ? styles.paperWithIcons : styles.paperWithoutIcons),\n )}\n >\n <Grid2\n container\n columnSpacing={2}\n rowSpacing={1}\n sx={Utils.getStyle(\n this.props.theme,\n { width: '100%' },\n this.props.isParentTab && styles.padding,\n this.props.schema.innerStyle,\n )}\n >\n {this.renderItems(items, disabled)}\n </Grid2>\n </Box>\n );\n }\n\n if (!this.props.isParentTab) {\n const item = (\n <Grid2\n title={this.getText(schema.tooltip)}\n size={{\n xs: schema.xs || undefined,\n sm: schema.sm || undefined,\n md: schema.md || undefined,\n lg: schema.lg || undefined,\n xl: schema.xl || undefined,\n }}\n sx={{ marginBottom: 0, /* marginRight: 8, */ textAlign: 'left', ...schemaStyle }}\n >\n {content}\n </Grid2>\n );\n\n if (schema.newLine) {\n return (\n <>\n <div style={{ flexBasis: '100%', height: 0 }} />\n {item}\n </>\n );\n }\n return item;\n }\n return content;\n }\n}\n\nexport default ConfigPanel;\n"]}