iobroker.javascript 8.9.0 → 8.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -4
- package/admin/assets/hostInit-WWj7Ma6O.js +2 -0
- package/admin/assets/{index-CbZpkpqP.js → index-B4TCes5W.js} +1 -1
- package/admin/assets/index-BQ7eR1Vn.js +805 -0
- package/admin/assets/{index-DhJ9BAXJ.js → index-DPsp9SLy.js} +59 -59
- package/admin/assets/{inheritsLoose-D_3QVnqj.js → inheritsLoose-MUXuXZWE.js} +4 -4
- package/admin/assets/preload-helper-C1FmrZbK.js +1 -0
- package/admin/custom/customComponents.js +1 -1
- package/admin/custom/customComponents.js.map +1 -1
- package/admin/custom/static/js/{main.c2632cca.js → main.402676b8.js} +2 -2
- package/admin/custom/static/js/{main.c2632cca.js.map → main.402676b8.js.map} +1 -1
- package/admin/custom/static/js/{node_modules_mui_material_node_modules_mui_system_esm_DefaultPropsProvider_DefaultPropsProvid-6480f80.64d156b1.chunk.js → node_modules_mui_material_node_modules_mui_system_esm_DefaultPropsProvider_DefaultPropsProvid-6480f80.e4f6733d.chunk.js} +3 -3
- package/admin/custom/static/js/node_modules_mui_material_node_modules_mui_system_esm_DefaultPropsProvider_DefaultPropsProvid-6480f80.e4f6733d.chunk.js.map +1 -0
- package/admin/custom/static/js/{node_modules_mui_material_node_modules_mui_system_esm_DefaultPropsProvider_DefaultPropsProvid-6480f81.faac2bea.chunk.js → node_modules_mui_material_node_modules_mui_system_esm_DefaultPropsProvider_DefaultPropsProvid-6480f81.cf4e50a5.chunk.js} +3 -3
- package/admin/custom/static/js/node_modules_mui_material_node_modules_mui_system_esm_DefaultPropsProvider_DefaultPropsProvid-6480f81.cf4e50a5.chunk.js.map +1 -0
- package/admin/custom/static/js/{node_modules_mui_material_node_modules_mui_system_esm_DefaultPropsProvider_DefaultPropsProvid-d67bc2.3794c875.chunk.js → node_modules_mui_material_node_modules_mui_system_esm_DefaultPropsProvider_DefaultPropsProvid-d67bc2.53f91b62.chunk.js} +3 -3
- package/admin/custom/static/js/node_modules_mui_material_node_modules_mui_system_esm_DefaultPropsProvider_DefaultPropsProvid-d67bc2.53f91b62.chunk.js.map +1 -0
- package/admin/custom/static/js/node_modules_mui_material_node_modules_mui_system_esm_DefaultPropsProvider_DefaultPropsProvid-e30e0b.300189a9.chunk.js +11 -0
- package/admin/custom/static/js/node_modules_mui_material_node_modules_mui_system_esm_DefaultPropsProvider_DefaultPropsProvid-e30e0b.300189a9.chunk.js.map +1 -0
- package/admin/custom/static/js/vendors-node_modules_iobroker_adapter-react-v5_build_index_js.bbed4ac6.chunk.js +781 -0
- package/admin/custom/static/js/vendors-node_modules_iobroker_adapter-react-v5_build_index_js.bbed4ac6.chunk.js.map +1 -0
- package/admin/custom/static/js/{vendors-node_modules_iobroker_adapter-react-v5_node_modules_mui_material_index_js-node_module-97ca99.33a209a3.chunk.js → vendors-node_modules_iobroker_adapter-react-v5_node_modules_mui_material_index_js-node_module-97ca99.607f9d26.chunk.js} +2 -2
- package/admin/custom/static/js/vendors-node_modules_iobroker_adapter-react-v5_node_modules_mui_material_index_js-node_module-97ca99.607f9d26.chunk.js.map +1 -0
- package/admin/custom/static/js/vendors-node_modules_iobroker_json-config_build_index_js.9bde8280.chunk.js +407 -0
- package/admin/custom/static/js/vendors-node_modules_iobroker_json-config_build_index_js.9bde8280.chunk.js.map +1 -0
- package/admin/custom/static/js/{vendors-node_modules_leaflet_dist_leaflet_css-node_modules_mui_material_styles_ThemeProvider_-7f7a23.cb1d977b.chunk.js → vendors-node_modules_leaflet_dist_leaflet_css-node_modules_mui_material_styles_ThemeProvider_-7f7a23.3d5bd211.chunk.js} +2 -2
- package/admin/custom/static/js/vendors-node_modules_leaflet_dist_leaflet_css-node_modules_mui_material_styles_ThemeProvider_-7f7a23.3d5bd211.chunk.js.map +1 -0
- package/admin/custom/static/js/{vendors-node_modules_mui_material_DefaultPropsProvider_DefaultPropsProvider_js-node_modules_m-228034.52253fa1.chunk.js → vendors-node_modules_mui_material_DefaultPropsProvider_DefaultPropsProvider_js-node_modules_m-228034.6cda137b.chunk.js} +2 -2
- package/admin/custom/static/js/vendors-node_modules_mui_material_DefaultPropsProvider_DefaultPropsProvider_js-node_modules_m-228034.6cda137b.chunk.js.map +1 -0
- package/admin/custom/static/js/vendors-node_modules_mui_x-date-pickers_index_js.543a0e68.chunk.js +15 -0
- package/admin/custom/static/js/vendors-node_modules_mui_x-date-pickers_index_js.543a0e68.chunk.js.map +1 -0
- package/admin/mf-manifest.json +1 -1
- package/admin/remoteEntry.js +2 -2
- package/admin/tab.html +5 -5
- package/io-package.json +14 -14
- package/package.json +4 -4
- package/admin/assets/hostInit-CloAGww7.js +0 -2
- package/admin/assets/index-DuyZV49U.js +0 -805
- package/admin/assets/preload-helper-D6kgxu3v.js +0 -1
- package/admin/custom/static/js/node_modules_mui_material_node_modules_mui_system_esm_DefaultPropsProvider_DefaultPropsProvid-6480f80.64d156b1.chunk.js.map +0 -1
- package/admin/custom/static/js/node_modules_mui_material_node_modules_mui_system_esm_DefaultPropsProvider_DefaultPropsProvid-6480f81.faac2bea.chunk.js.map +0 -1
- package/admin/custom/static/js/node_modules_mui_material_node_modules_mui_system_esm_DefaultPropsProvider_DefaultPropsProvid-d67bc2.3794c875.chunk.js.map +0 -1
- package/admin/custom/static/js/node_modules_mui_material_node_modules_mui_system_esm_DefaultPropsProvider_DefaultPropsProvid-e30e0b.04fd593a.chunk.js +0 -11
- package/admin/custom/static/js/node_modules_mui_material_node_modules_mui_system_esm_DefaultPropsProvider_DefaultPropsProvid-e30e0b.04fd593a.chunk.js.map +0 -1
- package/admin/custom/static/js/vendors-node_modules_iobroker_adapter-react-v5_build_index_js.1c4bb293.chunk.js +0 -781
- package/admin/custom/static/js/vendors-node_modules_iobroker_adapter-react-v5_build_index_js.1c4bb293.chunk.js.map +0 -1
- package/admin/custom/static/js/vendors-node_modules_iobroker_adapter-react-v5_node_modules_mui_material_index_js-node_module-97ca99.33a209a3.chunk.js.map +0 -1
- package/admin/custom/static/js/vendors-node_modules_iobroker_json-config_build_index_js.27d108f4.chunk.js +0 -407
- package/admin/custom/static/js/vendors-node_modules_iobroker_json-config_build_index_js.27d108f4.chunk.js.map +0 -1
- package/admin/custom/static/js/vendors-node_modules_leaflet_dist_leaflet_css-node_modules_mui_material_styles_ThemeProvider_-7f7a23.cb1d977b.chunk.js.map +0 -1
- package/admin/custom/static/js/vendors-node_modules_mui_material_DefaultPropsProvider_DefaultPropsProvider_js-node_modules_m-228034.52253fa1.chunk.js.map +0 -1
- package/admin/custom/static/js/vendors-node_modules_mui_x-date-pickers_index_js.9a8c3036.chunk.js +0 -15
- package/admin/custom/static/js/vendors-node_modules_mui_x-date-pickers_index_js.9a8c3036.chunk.js.map +0 -1
- /package/admin/assets/{index-vLuKuXyl.css → index-CEoeyJnt.css} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static/js/vendors-node_modules_iobroker_json-config_build_index_js.9bde8280.chunk.js","mappings":"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","sources":["../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigGeneric.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigAccordion.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigAlive.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigAutocomplete.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigAutocompleteSendTo.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigCRON.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigCertificateSelect.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigCertificates.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigCertCollection.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigCheckLicense.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigCheckbox.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ChipInput.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigChip.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigColor.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigCoordinates.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigCustom.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigDatePicker.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigDeviceManager.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigFileSelector.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigFile.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigFunc.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigIP.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigImageSendTo.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigImageUpload.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigInstanceSelect.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigInterface.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/wrapper/Components/src/JsonConfigComponent/wrapper/Components/CustomModal.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/wrapper/Components/src/JsonConfigComponent/wrapper/Components/Editor.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigJsonEditor.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigLanguage.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigLicense.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigNumber.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigObjectId.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigPassword.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigPattern.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigPort.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigRoom.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigSelect.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigSelectSendTo.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigSendto.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigSetState.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigSlider.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/Icons.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigState.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigStaticDivider.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigStaticHeader.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigStaticImage.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigStaticInfo.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigStaticText.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigTable.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigText.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigTextSendTo.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigTimePicker.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigTopic.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigUUID.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigUser.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigQrCode.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigPanel.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/ConfigTabs.tsx","../node_modules/@iobroker/json-config/build/JsonConfigComponent/src/JsonConfigComponent/index.tsx","../node_modules/@iobroker/json-config/build/src/JsonConfig.tsx","../node_modules/ace-builds/src-min-noconflict/ext-language_tools.js","../node_modules/ace-builds/src-min-noconflict/mode-json.js","../node_modules/ace-builds/src-min-noconflict/theme-chrome.js","../node_modules/ace-builds/src-min-noconflict/theme-clouds_midnight.js","../node_modules/ace-builds/src-min-noconflict/worker-json.js","../node_modules/crypto-js/core.js","../node_modules/crypto-js/md5.js","../node_modules/json5/dist/index.js"],"sourcesContent":["import React, { Component, type JSX } from 'react';\n\nimport { Grid2, Button } from '@mui/material';\n\nimport {\n Info as IconInfo,\n Warning as IconWarning,\n Error as IconError,\n Key as IconAuth,\n Send as IconSend,\n Public as IconWeb,\n Search as IconSearch,\n MenuBook as IconMenuBook,\n Help as IconHelp,\n UploadFile as IconUploadFile,\n Edit as IconEdit,\n Person as IconPerson,\n Group as IconGroup,\n Delete as IconDelete,\n Refresh as IconRefresh,\n Add as IconAdd,\n LinkOff as IconLinkOff,\n Link as LinkIcon,\n Save,\n OpenInNew,\n} from '@mui/icons-material';\n\nimport {\n DialogConfirm,\n Icon,\n Utils,\n I18n,\n type Connection,\n type ThemeType,\n type ThemeName,\n} from '@iobroker/adapter-react-v5';\nimport type { ConfigIconType, ConfigItemAny, ConfigItemConfirmData, JsonConfigContext } from '#JC/types';\n\nconst DEFAULT_SM_SIZE = window.innerWidth <= 600 ? 12 : undefined;\n\n// because this class is used in react-components, do not include here any foreign files like from '../../helpers/utils.ts'\nexport function isObject(it: any): it is Record<string, any> {\n // This is necessary because:\n // typeof null === 'object'\n // typeof [] === 'object'\n // [] instanceof Object === true\n return Object.prototype.toString.call(it) === '[object Object]'; // this code is 25% faster than below one\n // return it && typeof it === 'object' && !(it instanceof Array);\n}\n\nexport interface DeviceManagerPropsProps {\n /* socket object */\n socket: Connection;\n /* Instance to communicate with device-manager backend, like `adapterName.X` */\n selectedInstance: string; // adapterName.X\n registerHandler?: (handler: null | ((command: string) => void)) => void;\n themeName: ThemeName;\n themeType: ThemeType;\n isFloatComma: boolean;\n dateFormat: string;\n /** Instance to upload images to, like `adapterName.X` */\n uploadImagesToInstance?: string;\n /** Filter devices with this string */\n filter?: string;\n /** If this component is used in GUI with own toolbar. `false` if this list is used with multiple instances and true if only with one (in this case, it will monitor alive itself */\n embedded?: boolean;\n /** If embedded, this text is shown in the toolbar */\n title?: string;\n /** Style of a component that displays all devices */\n style?: React.CSSProperties;\n /** Use small cards for devices */\n smallCards?: boolean;\n}\n\nexport interface ConfigGenericProps {\n oContext: JsonConfigContext;\n alive: boolean;\n arrayIndex?: number;\n attr?: string;\n changed: boolean;\n className?: string;\n style?: Record<string, any>;\n commandRunning?: boolean;\n common: Record<string, any>;\n custom?: boolean;\n customObj?: Record<string, any>;\n data: Record<string, any>;\n disabled?: boolean;\n // filled only by table and represents the obj.native or obj.common.custom['adapter.X'] object\n globalData?: Record<string, any>;\n // filled only by table\n index?: number;\n isParentTab?: boolean;\n onChange: (attrOrData: string | Record<string, any>, val?: any, cb?: () => void, saveConfig?: boolean) => void;\n onError: (attr: string, error?: string) => void;\n originalData: Record<string, any>;\n /** This indicates that the component is the very firsts one - root */\n root?: boolean;\n /** Provided props by the specific component */\n schema: ConfigItemAny;\n /** This item is in the table. Maybe some layouts must be changed */\n table?: boolean;\n themeName: ThemeName;\n}\n\nexport interface ConfigGenericState {\n confirmDialog: boolean;\n confirmNewValue: any;\n confirmAttr: any;\n confirmData: ConfigItemConfirmData | null;\n value?: any;\n confirmDepAttr?: any;\n confirmDepNewValue?: any;\n confirmCallback: null | ((result: boolean) => void);\n}\n\nexport default class ConfigGeneric<\n Props extends ConfigGenericProps = ConfigGenericProps,\n State extends ConfigGenericState = ConfigGenericState,\n> extends Component<Props, State> {\n static DIFFERENT_VALUE = '__different__';\n\n static DIFFERENT_LABEL = 'ra___different__';\n\n static NONE_VALUE = '';\n\n static NONE_LABEL = 'ra_none';\n\n private readonly defaultValue: any;\n\n private isError: any;\n\n private readonly lang: ioBroker.Languages;\n\n private defaultSendToDone?: boolean;\n\n private sendToTimeout?: any;\n\n private noPlaceRequired: any;\n\n constructor(props: Props) {\n super(props);\n\n // @ts-expect-error of course, as we just\n this.state = {\n confirmDialog: false,\n confirmNewValue: null,\n confirmAttr: null,\n confirmData: null,\n confirmCallback: null,\n } satisfies ConfigGenericState;\n\n this.isError = {};\n\n if (props.schema) {\n if (props.custom) {\n this.defaultValue = props.schema.defaultFunc\n ? this.executeCustom(\n props.schema.defaultFunc,\n props.data,\n props.customObj,\n props.oContext.instanceObj,\n props.arrayIndex,\n props.globalData,\n )\n : props.schema.default;\n } else if (props.schema.type !== 'state') {\n this.defaultValue = props.schema.defaultFunc\n ? this.execute(\n props.schema.defaultFunc,\n props.schema.default,\n props.data,\n props.arrayIndex,\n props.globalData,\n )\n : props.schema.default;\n }\n }\n\n this.lang = I18n.getLanguage();\n }\n\n componentDidMount(): void {\n if (this.props.oContext.registerOnForceUpdate) {\n this.props.oContext.registerOnForceUpdate(this.props.attr, this.onUpdate);\n }\n const LIKE_SELECT = ['select', 'autocomplete', 'autocompleteSendTo'];\n // init default value\n if (this.defaultValue !== undefined) {\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n if (\n value === undefined ||\n (LIKE_SELECT.includes(this.props.schema.type) && (value === '' || value === null))\n ) {\n setTimeout(() => {\n if (this.props.custom) {\n this.props.onChange(this.props.attr, this.defaultValue, () =>\n setTimeout(() => this.props.oContext.forceUpdate([this.props.attr], this.props.data), 100),\n );\n } else {\n ConfigGeneric.setValue(this.props.data, this.props.attr, this.defaultValue);\n this.props.onChange(this.props.data, undefined, () =>\n this.props.oContext.forceUpdate([this.props.attr], this.props.data),\n );\n }\n }, 100);\n }\n } else if (this.props.schema.defaultSendTo) {\n this.sendTo();\n }\n }\n\n sendTo(): void {\n if (this.props.alive) {\n this.defaultSendToDone = true;\n let data: any = this.props.schema.data;\n if (data === undefined && this.props.schema.jsonData) {\n const dataStr = this.getPattern(this.props.schema.jsonData, null, true);\n try {\n data = JSON.parse(dataStr);\n } catch {\n console.error(`Cannot parse json data: ${dataStr}`);\n }\n } else {\n data = {\n attr: this.props.attr,\n value: ConfigGeneric.getValue(this.props.data, this.props.attr),\n };\n }\n\n if (data === undefined) {\n data = null;\n }\n\n void this.props.oContext.socket\n .sendTo(\n `${this.props.oContext.adapterName}.${this.props.oContext.instance}`,\n this.props.schema.defaultSendTo,\n data,\n )\n .then((value: any) => {\n if (value !== null && value !== undefined) {\n if (this.props.custom) {\n this.props.onChange(this.props.attr, value, () =>\n this.props.oContext.forceUpdate([this.props.attr], this.props.data),\n );\n } else {\n ConfigGeneric.setValue(this.props.data, this.props.attr, value);\n this.props.onChange(this.props.data, undefined, () =>\n this.props.oContext.forceUpdate([this.props.attr], this.props.data),\n );\n }\n }\n });\n } else {\n this.defaultSendToDone = false;\n if (!this.props.schema.allowSaveWithError) {\n // show error, that instance did not start\n this.onError(\n this.props.attr,\n I18n.t('ra_Instance %s is not alive', this.props.oContext.instance.toString()),\n );\n }\n }\n }\n\n componentWillUnmount(): void {\n if (this.props.oContext.registerOnForceUpdate) {\n this.props.oContext.registerOnForceUpdate(this.props.attr);\n }\n if (this.sendToTimeout) {\n clearTimeout(this.sendToTimeout);\n this.sendToTimeout = null;\n }\n }\n\n onUpdate = (data: Record<string, any>): void => {\n const value = ConfigGeneric.getValue(data || this.props.data, this.props.attr) || '';\n if (this.state.value !== value) {\n this.setState({ value });\n } else {\n this.forceUpdate();\n }\n };\n\n /**\n * Extract attribute out of data\n */\n static getValue(data: Record<string, any>, attr: string | string[]): any {\n if (typeof attr === 'string') {\n return ConfigGeneric.getValue(data, attr.split('.'));\n }\n if (attr.length === 1) {\n return data[attr[0]];\n }\n const part = attr.shift();\n\n if (typeof part === 'string' && typeof data[part] === 'object') {\n return ConfigGeneric.getValue(data[part], attr);\n }\n return undefined;\n }\n\n static setValue(data: Record<string, any>, attr: string | string[], value: any): void {\n if (typeof attr === 'string') {\n ConfigGeneric.setValue(data, attr.split('.'), value);\n return;\n }\n if (attr.length === 1) {\n if (value === null) {\n delete data[attr[0]];\n } else {\n data[attr[0]] = value;\n }\n } else {\n const part = attr.shift();\n\n if (typeof part !== 'string') {\n return;\n }\n\n if (!data[part] || typeof data[part] === 'object') {\n data[part] = data[part] || {};\n }\n ConfigGeneric.setValue(data[part], attr, value);\n }\n }\n\n getText(text: ioBroker.StringOrTranslated, noTranslation?: boolean): string {\n if (!text) {\n return '';\n }\n\n if (typeof text === 'string') {\n const strText = noTranslation ? text : I18n.t(text);\n if (strText.includes('${')) {\n return this.getPattern(strText, null, noTranslation);\n }\n return strText;\n }\n\n if (isObject(text)) {\n // todo\n if ((text as any).func) {\n // calculate pattern\n if (typeof (text as any).func === 'object') {\n return this.getPattern((text as any).func[this.lang] || (text as any).func.en || '', null, true);\n }\n return this.getPattern((text as any).func, null, noTranslation);\n }\n\n return text[this.lang] || text.en || '';\n }\n\n return (text as any).toString();\n }\n\n renderDialogConfirm(): JSX.Element | null {\n if (!this.state.confirmDialog) {\n return null;\n }\n const confirm = this.state.confirmData || this.props.schema.confirm;\n let icon: null | JSX.Element = null;\n if (confirm.type === 'warning') {\n icon = <IconWarning />;\n } else if (confirm.type === 'error') {\n icon = <IconError />;\n } else if (confirm.type === 'info') {\n icon = <IconInfo />;\n }\n\n return (\n <DialogConfirm\n title={this.getText(confirm.title) || I18n.t('ra_Please confirm')}\n text={this.getText(confirm.text)}\n ok={this.getText(confirm.ok) || I18n.t('ra_Ok')}\n cancel={this.getText(confirm.cancel) || I18n.t('ra_Cancel')}\n icon={icon || undefined}\n onClose={isOk =>\n this.setState({ confirmDialog: false }, () => {\n if (isOk) {\n if (this.state.confirmCallback) {\n const callback = this.state.confirmCallback;\n this.setState({ confirmCallback: null }, () => callback(true));\n return;\n }\n\n const data = JSON.parse(JSON.stringify(this.props.data));\n if (this.state.confirmDepAttr) {\n ConfigGeneric.setValue(data, this.state.confirmDepAttr, this.state.confirmDepNewValue);\n }\n\n ConfigGeneric.setValue(data, this.state.confirmAttr, this.state.confirmNewValue);\n this.setState(\n {\n confirmDialog: false,\n confirmDepAttr: null,\n confirmDepNewValue: null,\n confirmNewValue: null,\n confirmAttr: null,\n confirmData: null,\n },\n () => this.props.onChange(data),\n );\n } else {\n const callback = this.state.confirmCallback;\n this.setState(\n {\n confirmDialog: false,\n confirmDepAttr: null,\n confirmDepNewValue: null,\n confirmNewValue: null,\n confirmAttr: null,\n confirmData: null,\n confirmCallback: null,\n },\n () => {\n if (callback) {\n callback(false);\n }\n },\n );\n }\n })\n }\n />\n );\n }\n\n // eslint-disable-next-line react/no-unused-class-component-methods\n getIcon(iconSettings?: ConfigIconType | null): JSX.Element | null {\n iconSettings = iconSettings || this.props.schema.icon;\n let icon = null;\n if (iconSettings === 'auth') {\n icon = <IconAuth />;\n } else if (iconSettings === 'send') {\n icon = <IconSend />;\n } else if (iconSettings === 'web') {\n icon = <IconWeb />;\n } else if (iconSettings === 'warning') {\n icon = <IconWarning />;\n } else if (iconSettings === 'error') {\n icon = <IconError />;\n } else if (iconSettings === 'info') {\n icon = <IconInfo />;\n } else if (iconSettings === 'search') {\n icon = <IconSearch />;\n } else if (iconSettings === 'book') {\n icon = <IconMenuBook />;\n } else if (iconSettings === 'help') {\n icon = <IconHelp />;\n } else if (iconSettings === 'upload') {\n icon = <IconUploadFile />;\n } else if (iconSettings === 'edit') {\n icon = <IconEdit />;\n } else if (iconSettings === 'user') {\n icon = <IconPerson />;\n } else if (iconSettings === 'group') {\n icon = <IconGroup />;\n } else if (iconSettings === 'delete') {\n icon = <IconDelete />;\n } else if (iconSettings === 'refresh') {\n icon = <IconRefresh />;\n } else if (iconSettings === 'add') {\n icon = <IconAdd />;\n } else if (iconSettings === 'unpair') {\n icon = <IconLinkOff />;\n } else if (iconSettings === 'pair') {\n icon = <LinkIcon />;\n } else if (iconSettings === 'save') {\n icon = <Save />;\n } else if (iconSettings === 'open') {\n icon = <OpenInNew />;\n } else if (iconSettings) {\n if (iconSettings.endsWith('.png') || iconSettings.endsWith('.svg') || iconSettings.endsWith('.jpg')) {\n // this path is relative to ./adapter/NAME\n if (!iconSettings.startsWith('http://') && !iconSettings.startsWith('https://')) {\n iconSettings = `./adapter/${this.props.oContext.adapterName}/${iconSettings}`;\n }\n }\n\n icon = (\n <Icon\n src={iconSettings}\n style={{ width: 22, height: 22 }}\n />\n );\n }\n\n return icon;\n }\n\n /**\n * Trigger onChange, to activate save button on change\n *\n * @param attr the changed attribute\n * @param newValue new value of the attribute\n */\n // eslint-disable-next-line react/no-unused-class-component-methods\n onChangeAsync(attr: string, newValue: unknown): Promise<void> {\n return new Promise(resolve => {\n const mayBePromise = this.onChange(attr, newValue, resolve);\n if (mayBePromise instanceof Promise) {\n mayBePromise.catch(e => console.error(`Cannot set value: ${e}`));\n }\n });\n }\n\n /**\n * Trigger onChange, to activate save button on change\n *\n * @param attr the changed attribute\n * @param newValue new value of the attribute\n * @param cb optional callback function, else returns a Promise\n */\n onChange(attr: string, newValue: unknown, cb?: () => void): Promise<void> {\n // Do not use here deep copy, as it is not JsonConfig\n const data = JSON.parse(JSON.stringify(this.props.data));\n ConfigGeneric.setValue(data, attr, newValue);\n\n if (\n this.props.schema.confirm &&\n this.execute(this.props.schema.confirm.condition, false, data, this.props.arrayIndex, this.props.globalData)\n ) {\n return new Promise<void>(resolve => {\n this.setState(\n {\n confirmDialog: true,\n confirmNewValue: newValue,\n confirmAttr: attr,\n confirmData: null,\n },\n () => {\n if (typeof cb === 'function') {\n cb();\n } else {\n resolve();\n }\n },\n );\n });\n }\n // find any inputs with confirmation\n if (this.props.schema.confirmDependsOn) {\n for (let z = 0; z < this.props.schema.confirmDependsOn.length; z++) {\n const dep = this.props.schema.confirmDependsOn[z];\n if (dep.confirm) {\n const val = ConfigGeneric.getValue(data, dep.attr);\n\n if (\n this.execute(dep.confirm.condition, false, data, this.props.arrayIndex, this.props.globalData)\n ) {\n return new Promise<void>(resolve => {\n this.setState(\n {\n confirmDialog: true,\n confirmNewValue: newValue,\n confirmAttr: attr,\n confirmDepNewValue: val,\n confirmDepAttr: dep.attr,\n confirmData: dep.confirm,\n },\n () => {\n if (typeof cb === 'function') {\n cb();\n } else {\n resolve();\n }\n },\n );\n });\n }\n }\n }\n }\n\n const changed: string[] = [];\n if (this.props.schema.onChangeDependsOn) {\n for (let z = 0; z < this.props.schema.onChangeDependsOn.length; z++) {\n const dep = this.props.schema.onChangeDependsOn[z];\n if (dep.onChange) {\n const val = ConfigGeneric.getValue(data, dep.attr);\n\n let _newValue;\n if (this.props.custom) {\n _newValue = this.executeCustom(\n dep.onChange.calculateFunc,\n data,\n this.props.customObj,\n this.props.oContext.instanceObj,\n this.props.arrayIndex,\n this.props.globalData,\n );\n } else {\n _newValue = this.execute(\n dep.onChange.calculateFunc,\n val,\n data,\n this.props.arrayIndex,\n this.props.globalData,\n );\n }\n\n if (_newValue !== val) {\n ConfigGeneric.setValue(data, dep.attr, _newValue);\n changed.push(dep.attr);\n }\n }\n }\n }\n\n if (this.props.schema.hiddenDependsOn) {\n for (let z = 0; z < this.props.schema.hiddenDependsOn.length; z++) {\n const dep = this.props.schema.hiddenDependsOn[z];\n if (dep.hidden) {\n changed.push(dep.attr);\n }\n }\n }\n\n if (this.props.schema.labelDependsOn) {\n for (let z = 0; z < this.props.schema.labelDependsOn.length; z++) {\n const dep = this.props.schema.labelDependsOn[z];\n if (dep.hidden) {\n changed.push(dep.attr);\n }\n }\n }\n\n if (this.props.schema.helpDependsOn) {\n for (let z = 0; z < this.props.schema.helpDependsOn.length; z++) {\n const dep = this.props.schema.helpDependsOn[z];\n if (dep.hidden) {\n changed.push(dep.attr);\n }\n }\n }\n\n if (this.props.schema.onChange && !this.props.schema.onChange.ignoreOwnChanges) {\n const val = ConfigGeneric.getValue(data, this.props.attr);\n\n const newValue_ = this.props.custom\n ? this.executeCustom(\n this.props.schema.onChange.calculateFunc,\n data,\n this.props.customObj,\n this.props.oContext.instanceObj,\n this.props.arrayIndex,\n this.props.globalData,\n )\n : this.execute(\n this.props.schema.onChange.calculateFunc,\n val,\n data,\n this.props.arrayIndex,\n this.props.globalData,\n );\n if (newValue_ !== val) {\n ConfigGeneric.setValue(data, this.props.attr, newValue_);\n }\n }\n\n if (this.props.custom) {\n this.props.onChange(attr, newValue, () => cb && cb());\n\n if (changed?.length) {\n changed.forEach((_attr, i) =>\n setTimeout(() => this.props.onChange(_attr, ConfigGeneric.getValue(data, _attr)), i * 50),\n );\n }\n } else {\n this.props.onChange(data, undefined, () => {\n if (changed.length) {\n this.props.oContext.forceUpdate(changed, data);\n }\n if (cb) {\n cb();\n }\n });\n }\n\n return Promise.resolve();\n }\n\n execute(\n func: string | boolean | Record<string, string>,\n defaultValue: string | number | boolean,\n data: Record<string, any>,\n arrayIndex: number,\n globalData: Record<string, any>,\n ): string | number | boolean {\n let fun: string;\n\n if (isObject(func)) {\n fun = func.func;\n } else if (typeof func === 'string') {\n fun = func;\n } else {\n return func;\n }\n\n if (!fun) {\n return defaultValue;\n }\n try {\n const f = new Function(\n 'data',\n 'originalData',\n '_system',\n '_alive',\n '_common',\n '_socket',\n '_instance',\n 'arrayIndex',\n 'globalData',\n '_changed',\n fun.includes('return') ? fun : `return ${fun}`,\n );\n return f(\n data || this.props.data,\n this.props.originalData,\n this.props.oContext.systemConfig,\n this.props.alive,\n this.props.common,\n this.props.oContext.socket,\n this.props.oContext.instance,\n arrayIndex,\n globalData,\n this.props.changed,\n );\n } catch (e) {\n console.error(`Cannot execute ${JSON.stringify(func)}: ${e}`);\n return defaultValue;\n }\n }\n\n executeCustom(\n func: string | boolean | Record<string, string>,\n data: Record<string, any>,\n customObj: Record<string, any>,\n instanceObj: ioBroker.InstanceObject,\n arrayIndex: number,\n globalData: Record<string, any>,\n ): string | boolean | number | null {\n let fun: string;\n\n if (isObject(func)) {\n fun = func.func;\n } else if (typeof func === 'string') {\n fun = func;\n } else {\n return func;\n }\n\n if (!fun) {\n return null;\n }\n try {\n const f = new Function(\n 'data',\n 'originalData',\n '_system',\n 'instanceObj',\n 'customObj',\n '_socket',\n 'arrayIndex',\n 'globalData',\n '_changed',\n fun.includes('return') ? fun : `return ${fun}`,\n );\n return f(\n data || this.props.data,\n this.props.originalData,\n this.props.oContext.systemConfig,\n instanceObj,\n customObj,\n this.props.oContext.socket,\n arrayIndex,\n globalData,\n this.props.changed,\n );\n } catch (e) {\n console.error(`Cannot execute ${fun}: ${e}`);\n return null;\n }\n }\n\n calculate(schema: Record<string, any>): {\n error: boolean;\n disabled: boolean;\n hidden: boolean;\n defaultValue: null | string | number | boolean;\n } {\n let error: boolean;\n let disabled: boolean;\n let hidden: boolean;\n let defaultValue: null | string | number | boolean;\n\n if (this.props.custom) {\n error = schema.validator\n ? !this.executeCustom(\n schema.validator,\n this.props.data,\n this.props.customObj,\n this.props.oContext.instanceObj,\n this.props.arrayIndex,\n this.props.globalData,\n )\n : false;\n if (schema.disabled === true) {\n disabled = true;\n } else {\n disabled = schema.disabled\n ? (this.executeCustom(\n schema.disabled,\n this.props.data,\n this.props.customObj,\n this.props.oContext.instanceObj,\n this.props.arrayIndex,\n this.props.globalData,\n ) as boolean)\n : false;\n }\n if (schema.hidden === true) {\n hidden = true;\n } else {\n hidden = schema.hidden\n ? (this.executeCustom(\n schema.hidden,\n this.props.data,\n this.props.customObj,\n this.props.oContext.instanceObj,\n this.props.arrayIndex,\n this.props.globalData,\n ) as boolean)\n : false;\n }\n defaultValue = schema.defaultFunc\n ? this.executeCustom(\n schema.defaultFunc,\n this.props.data,\n this.props.customObj,\n this.props.oContext.instanceObj,\n this.props.arrayIndex,\n this.props.globalData,\n )\n : schema.default;\n } else {\n error = schema.validator\n ? !this.execute(schema.validator, false, this.props.data, this.props.arrayIndex, this.props.globalData)\n : false;\n if (schema.disabled === true) {\n disabled = true;\n } else {\n disabled = schema.disabled\n ? (this.execute(\n schema.disabled,\n false,\n this.props.data,\n this.props.arrayIndex,\n this.props.globalData,\n ) as boolean)\n : false;\n }\n if (schema.hidden === true) {\n hidden = true;\n } else {\n hidden = schema.hidden\n ? (this.execute(\n schema.hidden,\n false,\n this.props.data,\n this.props.arrayIndex,\n this.props.globalData,\n ) as boolean)\n : false;\n }\n defaultValue = schema.defaultFunc\n ? this.execute(\n schema.defaultFunc,\n schema.default,\n this.props.data,\n this.props.arrayIndex,\n this.props.globalData,\n )\n : schema.default;\n }\n\n return {\n error,\n disabled,\n hidden,\n defaultValue,\n };\n }\n\n onError(attr: string, error?: string): void {\n if (!error) {\n delete this.isError[attr];\n } else {\n this.isError[attr] = error;\n }\n\n if (this.props.onError) {\n this.props.onError(attr, error);\n }\n }\n\n renderItem(_error: unknown, _disabled: boolean, _defaultValue?: unknown): JSX.Element | string | null {\n return this.getText(this.props.schema.label) || this.getText(this.props.schema.text);\n }\n\n // eslint-disable-next-line react/no-unused-class-component-methods\n renderHelp(\n text: ioBroker.StringOrTranslated,\n link: string,\n noTranslation: boolean,\n ): JSX.Element | JSX.Element[] | string {\n if (!link) {\n text = this.getText(text, noTranslation) || '';\n if (\n text &&\n (text.includes('<a ') || text.includes('<br') || text.includes('<b>') || text.includes('<i>'))\n ) {\n return Utils.renderTextWithA(text);\n }\n return text;\n }\n return (\n <a\n href={link}\n target=\"_blank\"\n rel=\"noreferrer\"\n style={{\n color: this.props.oContext.themeType === 'dark' ? '#a147ff' : '#5b238f',\n textDecoration: 'underline',\n }}\n >\n {this.getText(text, noTranslation)}\n </a>\n );\n }\n\n // we have a problem that a string '{\"password\": \"${password}\"}' cannot contain a double quota inside the string\n // escape it with \\\"\n static escapeString(str: string, data: Record<string, any>): string {\n if (typeof str !== 'string') {\n return '';\n }\n str = str.replace(/`/g, '\\\\`');\n // extract all tokes with ${data.token}\n str = str.replace(/\\${([^}]+)}/g, (_match: string, p1: any) => {\n if (p1 && typeof p1 === 'string' && p1.startsWith('data.')) {\n const value = ConfigGeneric.getValue(data, p1.replace(/^data\\./, ''));\n\n if (typeof value === 'string' && value.includes('\"')) {\n return `\\${${p1}.replace(/\"/g, '\\\\\\\\\"')}`;\n }\n }\n return _match;\n });\n\n return str;\n }\n\n getPattern(pattern: string | { func: string }, data?: Record<string, any>, noTranslation?: boolean): string {\n data = data || this.props.data;\n if (!pattern) {\n return '';\n }\n let patternStr: string;\n if (typeof pattern === 'object') {\n if (pattern.func) {\n patternStr = (pattern as { func: string }).func;\n } else {\n console.log(`Object must be stringified: ${JSON.stringify(pattern)}`);\n patternStr = JSON.stringify(pattern);\n }\n } else {\n patternStr = pattern;\n }\n\n try {\n if (this.props.custom) {\n const f = new Function(\n 'data',\n 'originalData',\n 'arrayIndex',\n 'globalData',\n '_system',\n 'instanceObj',\n 'customObj',\n '_socket',\n '_changed',\n `return \\`${ConfigGeneric.escapeString(patternStr, data)}\\``,\n );\n return f(\n data,\n this.props.originalData,\n this.props.arrayIndex,\n this.props.globalData,\n this.props.oContext.systemConfig,\n this.props.oContext.instanceObj,\n this.props.customObj,\n this.props.oContext.socket,\n this.props.changed,\n );\n }\n\n const f = new Function(\n 'data',\n 'originalData',\n 'arrayIndex',\n 'globalData',\n '_system',\n '_alive',\n '_common',\n '_socket',\n '_changed',\n `return \\`${ConfigGeneric.escapeString(patternStr, data)}\\``,\n );\n const text = f(\n data,\n this.props.originalData,\n this.props.arrayIndex,\n this.props.globalData,\n this.props.oContext.systemConfig,\n this.props.alive,\n this.props.common,\n this.props.oContext.socket,\n this.props.changed,\n );\n if (noTranslation) {\n return text;\n }\n return I18n.t(text);\n } catch (e) {\n console.error(`Cannot execute ${patternStr}: ${e}`);\n return patternStr;\n }\n }\n\n render(): string | JSX.Element | null {\n const schema = this.props.schema;\n\n if (!schema) {\n return null;\n }\n\n // Do not show this component if expert mode is false\n if (this.props.oContext.expertMode === false && schema.expertMode) {\n return null;\n }\n\n if (this.props.alive && this.defaultSendToDone === false) {\n this.sendToTimeout = setTimeout(() => {\n this.sendToTimeout = null;\n this.sendTo();\n }, 200);\n }\n\n const { error, disabled, hidden, defaultValue } = this.calculate(schema);\n\n if (hidden) {\n // Remove all errors if an element is hidden\n if (Object.keys(this.isError).length) {\n setTimeout(\n isError => Object.keys(isError).forEach(attr => this.props.onError(attr)),\n 100,\n JSON.parse(JSON.stringify(this.isError)),\n );\n this.isError = {};\n }\n\n if (schema.hideOnlyControl) {\n const item = (\n <Grid2\n size={{\n xs: schema.xs || DEFAULT_SM_SIZE, // if xs is not defined, take the full width\n sm: schema.sm || undefined,\n md: schema.md || undefined,\n lg: schema.lg || undefined,\n xl: schema.xl || undefined,\n }}\n style={{\n marginBottom: 0 /* marginRight: 8, */,\n textAlign: 'left',\n ...schema.style,\n ...(this.props.oContext.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 // Add error\n if (schema.validatorNoSaveOnError) {\n if (error && !Object.keys(this.isError).length) {\n this.isError = {\n [this.props.attr]: schema.validatorErrorText ? I18n.t(schema.validatorErrorText) : true,\n };\n setTimeout(\n isError => Object.keys(isError).forEach(attr => this.props.onError(attr, isError[attr])),\n 100,\n JSON.parse(JSON.stringify(this.isError)),\n );\n } else if (!error && Object.keys(this.isError).length) {\n setTimeout(\n isError => Object.keys(isError).forEach(attr => this.props.onError(attr)),\n 100,\n JSON.parse(JSON.stringify(this.isError)),\n );\n this.isError = {};\n }\n }\n\n const renderedItem = this.renderItem(\n error,\n disabled || this.props.commandRunning || this.props.disabled,\n defaultValue,\n );\n\n if (this.noPlaceRequired) {\n return renderedItem;\n }\n\n const item = (\n <Grid2\n title={this.getText(schema.tooltip)}\n size={{\n xs: schema.xs || 12, // if xs is not defined, take the full width\n sm: schema.sm || undefined,\n md: schema.md || undefined,\n lg: schema.lg || undefined,\n xl: schema.xl || undefined,\n }}\n style={{\n marginBottom: 0,\n textAlign: 'left',\n width: schema.type === 'divider' || schema.type === 'header' ? schema.width || '100%' : undefined,\n ...schema.style,\n ...(this.props.oContext.themeType === 'dark' ? schema.darkStyle : {}),\n }}\n >\n {this.props.schema.defaultSendTo && this.props.schema.button ? (\n <Grid2\n container\n style={{ width: '100%' }}\n >\n <Grid2 flex={1}>{renderedItem}</Grid2>\n <Grid2>\n <Button\n disabled={disabled}\n variant=\"outlined\"\n onClick={() => this.sendTo()}\n title={\n this.props.schema.buttonTooltip\n ? this.getText(\n this.props.schema.buttonTooltip,\n this.props.schema.buttonTooltipNoTranslation,\n )\n : I18n.t('ra_Request data by instance')\n }\n >\n {this.getText(this.props.schema.button as ioBroker.StringOrTranslated)}\n </Button>\n </Grid2>\n </Grid2>\n ) : (\n renderedItem\n )}\n </Grid2>\n );\n\n if (schema.newLine) {\n return (\n <>\n <div style={{ flexBasis: '100%', height: 0 }} />\n {this.renderDialogConfirm()}\n {item}\n </>\n );\n }\n if (this.state.confirmDialog) {\n return (\n <>\n {this.renderDialogConfirm()}\n {item}\n </>\n );\n }\n return item;\n }\n}\n","import React, { type JSX } from 'react';\n\nimport {\n FormHelperText,\n Accordion,\n AccordionSummary,\n AccordionDetails,\n IconButton,\n Paper,\n Toolbar,\n Tooltip,\n Typography,\n} from '@mui/material';\n\nimport {\n Add as AddIcon,\n Delete as DeleteIcon,\n ArrowUpward as UpIcon,\n ArrowDownward as DownIcon,\n ContentCopy as CopyContentIcon,\n ExpandMore as ExpandMoreIcon,\n} from '@mui/icons-material';\n\nimport { I18n, type IobTheme, Utils } from '@iobroker/adapter-react-v5';\n\nimport type { ConfigItemAccordion, ConfigItemAny, ConfigItemIndexed, ConfigItemPanel } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\n\nimport ConfigPanel from './ConfigPanel';\n\nconst styles: Record<string, any> = {\n fullWidth: {\n width: '100%',\n },\n accordionSummary: (theme: IobTheme): React.CSSProperties => ({\n backgroundColor: theme.palette.mode === 'dark' ? 'rgba(255, 255, 255, 0.08)' : 'rgba(0, 0, 0, 0.08)',\n }),\n accordionTitle: {\n // fontWeight: 'bold',\n },\n toolbar: (theme: IobTheme): React.CSSProperties => ({\n backgroundColor: theme.palette.mode === 'dark' ? 'rgba(255, 255, 255, 0.08)' : 'rgba(0, 0, 0, 0.08)',\n borderRadius: '3px',\n }),\n tooltip: {\n pointerEvents: 'none',\n },\n};\n\ninterface ConfigAccordionProps extends ConfigGenericProps {\n schema: ConfigItemAccordion;\n}\n\ninterface ConfigAccordionState extends ConfigGenericState {\n value: Record<string, any>[];\n activeIndex: number;\n iteration: number;\n}\n\nclass ConfigAccordion extends ConfigGeneric<ConfigAccordionProps, ConfigAccordionState> {\n private typingTimer: ReturnType<typeof setTimeout> | null = null;\n\n constructor(props: ConfigAccordionProps) {\n super(props);\n this.props.schema.items = this.props.schema.items || [];\n }\n\n componentDidMount(): void {\n super.componentDidMount();\n\n let value = ConfigGeneric.getValue(this.props.data, this.props.attr) || [];\n\n if (!Array.isArray(value)) {\n value = [];\n }\n\n this.setState({\n value,\n activeIndex: -1,\n iteration: 0,\n });\n }\n\n componentWillUnmount(): void {\n if (this.typingTimer) {\n clearTimeout(this.typingTimer);\n this.typingTimer = null;\n }\n super.componentWillUnmount();\n }\n\n itemAccordion(data: Record<string, any>, idx: number): JSX.Element {\n const { value } = this.state;\n const { schema } = this.props;\n\n const schemaItem: ConfigItemPanel = {\n type: 'panel',\n items: schema.items.reduce(\n (accumulator: Record<string, ConfigItemIndexed>, currentValue: ConfigItemIndexed) => {\n accumulator[currentValue.attr] = currentValue;\n return accumulator;\n },\n {},\n ) as Record<string, ConfigItemAny>,\n style: { marginLeft: '-8px', marginTop: '10px', marginBottom: '10px' },\n };\n\n return (\n <ConfigPanel\n oContext={this.props.oContext}\n index={idx + this.state.iteration}\n arrayIndex={idx}\n changed={this.props.changed}\n globalData={this.props.data}\n common={this.props.common}\n alive={this.props.alive}\n themeName={this.props.themeName}\n data={data}\n custom\n schema={schemaItem}\n originalData={this.props.originalData}\n onChange={(attr: string, valueChange: any): void => {\n const newObj: Record<string, any> = JSON.parse(JSON.stringify(value));\n newObj[idx][attr] = valueChange;\n this.setState({ value: newObj } as ConfigAccordionState, () => this.onChangeWrapper(newObj));\n }}\n onError={(error, attr) => this.onError(error, attr)}\n table={this.props.table}\n />\n );\n }\n\n onDelete = (index: number) => (): void => {\n const newValue = JSON.parse(JSON.stringify(this.state.value));\n newValue.splice(index, 1);\n\n this.setState({ value: newValue, iteration: this.state.iteration + 10000 }, () =>\n this.onChangeWrapper(newValue),\n );\n };\n\n onClone = (index: number) => (): void => {\n const newValue = JSON.parse(JSON.stringify(this.state.value)) as Record<string, any>[];\n const cloned = JSON.parse(JSON.stringify(newValue[index]));\n if (typeof this.props.schema.clone === 'string' && typeof cloned[this.props.schema.clone] === 'string') {\n let i = 1;\n let text = cloned[this.props.schema.clone];\n const pattern = text.match(/(\\d+)$/);\n if (pattern) {\n text = text.replace(pattern[0], '');\n i = parseInt(pattern[0], 10) + 1;\n } else {\n text += '_';\n }\n while (newValue.find(it => it[this.props.schema.clone as string] === text + i.toString())) {\n i++;\n }\n cloned[this.props.schema.clone] = `${cloned[this.props.schema.clone]}_${i}`;\n }\n\n newValue.splice(index, 0, cloned);\n\n this.setState(\n {\n value: newValue,\n activeIndex: -1,\n iteration: this.state.iteration + 10000,\n },\n () => this.onChangeWrapper(newValue),\n );\n };\n\n onChangeWrapper = (newValue: any): void => {\n if (this.typingTimer) {\n clearTimeout(this.typingTimer);\n }\n\n this.typingTimer = setTimeout(\n value => {\n this.typingTimer = null;\n\n const mayByPromise = this.onChange(this.props.attr, value);\n if (mayByPromise instanceof Promise) {\n void mayByPromise.catch(e => this.onError(e));\n }\n },\n 300,\n newValue,\n );\n };\n\n onAdd = (): void => {\n const { schema } = this.props;\n const newValue = JSON.parse(JSON.stringify(this.state.value));\n const newItem: Record<string, any> =\n schema.items &&\n schema.items.reduce((accumulator: Record<string, any>, currentValue: ConfigItemIndexed) => {\n let defaultValue;\n if (currentValue.defaultFunc) {\n if (this.props.custom) {\n defaultValue = currentValue.defaultFunc\n ? this.executeCustom(\n currentValue.defaultFunc,\n this.props.data,\n this.props.customObj,\n this.props.oContext.instanceObj,\n newValue.length,\n this.props.data,\n )\n : this.props.schema.default;\n } else {\n defaultValue = currentValue.defaultFunc\n ? this.execute(\n currentValue.defaultFunc,\n this.props.schema.default,\n this.props.data,\n newValue.length,\n this.props.data,\n )\n : this.props.schema.default;\n }\n } else {\n defaultValue = currentValue.default === undefined ? null : currentValue.default;\n }\n\n accumulator[currentValue.attr] = defaultValue;\n return accumulator;\n }, {});\n\n newValue.push(newItem);\n\n this.setState({ value: newValue, activeIndex: newValue.length - 1 }, () => this.onChangeWrapper(newValue));\n };\n\n onMoveUp(idx: number): void {\n const newValue = JSON.parse(JSON.stringify(this.state.value));\n const item = newValue[idx];\n newValue.splice(idx, 1);\n newValue.splice(idx - 1, 0, item);\n\n const newIndex = this.state.activeIndex - 1;\n this.setState({ value: newValue, activeIndex: newIndex, iteration: this.state.iteration + 10000 }, () =>\n this.onChangeWrapper(newValue),\n );\n }\n\n onMoveDown(idx: number): void {\n const newValue = JSON.parse(JSON.stringify(this.state.value));\n const item = newValue[idx];\n newValue.splice(idx, 1);\n newValue.splice(idx + 1, 0, item);\n\n const newIndex = this.state.activeIndex + 1;\n this.setState({ value: newValue, activeIndex: newIndex, iteration: this.state.iteration + 10000 }, () =>\n this.onChangeWrapper(newValue),\n );\n }\n\n renderItem(/* error, disabled, defaultValue */): JSX.Element | null {\n const { schema } = this.props;\n const { value } = this.state;\n\n if (!value) {\n return null;\n }\n\n return (\n <Paper>\n {schema.label || !schema.noDelete ? (\n <Toolbar variant=\"dense\">\n {schema.label ? (\n <Typography\n variant=\"h6\"\n id=\"tableTitle\"\n component=\"div\"\n >\n {this.getText(schema.label)}\n </Typography>\n ) : null}\n {!schema.noDelete ? (\n <IconButton\n size=\"small\"\n color=\"primary\"\n onClick={this.onAdd}\n >\n <AddIcon />\n </IconButton>\n ) : null}\n </Toolbar>\n ) : null}\n {value.map((idx, i) => (\n <Accordion\n key={`${idx as unknown as string}_${i}`}\n expanded={this.state.activeIndex === i}\n onChange={(_e, expanded) => this.setState({ activeIndex: expanded ? i : -1 })}\n >\n <AccordionSummary\n expandIcon={<ExpandMoreIcon />}\n sx={Utils.getStyle(this.props.oContext.theme, styles.fullWidth, styles.accordionSummary)}\n >\n <Typography style={styles.accordionTitle}>{idx[schema.titleAttr]}</Typography>\n </AccordionSummary>\n <AccordionDetails\n style={{\n ...schema.style,\n ...(this.props.oContext.themeType ? schema.darkStyle : undefined),\n }}\n >\n {this.itemAccordion(value[i], i)}\n <Toolbar sx={styles.toolbar}>\n {i ? (\n <Tooltip\n title={I18n.t('ra_Move up')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n size=\"small\"\n onClick={() => this.onMoveUp(i)}\n >\n <UpIcon />\n </IconButton>\n </Tooltip>\n ) : (\n <div style={styles.buttonEmpty} />\n )}\n {i < value.length - 1 ? (\n <Tooltip\n title={I18n.t('ra_Move down')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n size=\"small\"\n onClick={() => this.onMoveDown(i)}\n >\n <DownIcon />\n </IconButton>\n </Tooltip>\n ) : (\n <div style={styles.buttonEmpty} />\n )}\n {!schema.noDelete ? (\n <Tooltip\n title={I18n.t('ra_Delete current row')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n size=\"small\"\n onClick={this.onDelete(i)}\n >\n <DeleteIcon />\n </IconButton>\n </Tooltip>\n ) : null}\n {schema.clone ? (\n <Tooltip\n title={I18n.t('ra_Clone current row')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n size=\"small\"\n onClick={this.onClone(i)}\n >\n <CopyContentIcon />\n </IconButton>\n </Tooltip>\n ) : null}\n </Toolbar>\n </AccordionDetails>\n </Accordion>\n ))}\n {!schema.noDelete && value.length > 0 ? (\n <Toolbar\n variant=\"dense\"\n sx={styles.rootTool}\n >\n <IconButton\n size=\"small\"\n color=\"primary\"\n onClick={this.onAdd}\n >\n <AddIcon />\n </IconButton>\n </Toolbar>\n ) : null}\n {schema.help ? (\n <FormHelperText>\n {this.renderHelp(\n this.props.schema.help,\n this.props.schema.helpLink,\n this.props.schema.noTranslation,\n )}\n </FormHelperText>\n ) : null}\n </Paper>\n );\n }\n}\n\nexport default ConfigAccordion;\n","import React, { type JSX } from 'react';\n\nimport { I18n } from '@iobroker/adapter-react-v5';\nimport type { ConfigItemAlive } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\n\nconst styles: Record<string, React.CSSProperties> = {\n root: {\n width: '100%',\n },\n notAlive: {\n color: '#a30000',\n },\n};\n\ninterface ConfigAliveProps extends ConfigGenericProps {\n schema: ConfigItemAlive;\n}\n\ninterface ConfigAliveState extends ConfigGenericState {\n alive?: boolean | null;\n instance?: string;\n}\n\nclass ConfigAlive extends ConfigGeneric<ConfigAliveProps, ConfigAliveState> {\n componentDidMount(): void {\n super.componentDidMount();\n\n const instance = this.getInstance();\n\n void this.props.oContext.socket\n .getState(`${instance}.alive`)\n .then(state => this.setState({ alive: !!(state && state.val), instance }));\n }\n\n getInstance(): string {\n let instance =\n this.props.schema.instance || `${this.props.oContext.adapterName}.${this.props.oContext.instance}`;\n if (instance.includes('${')) {\n instance = this.getPattern(instance, null, true);\n }\n if (instance && !instance.startsWith('system.adapter.')) {\n instance = `system.adapter.${instance}`;\n }\n return instance;\n }\n\n renderItem(): JSX.Element | null {\n if (this.getInstance() !== this.state.instance) {\n setTimeout(() => {\n const instance = this.getInstance();\n if (instance) {\n void this.props.oContext.socket\n .getState(`${instance}.alive`)\n .then(state => this.setState({ alive: !!(state && state.val), instance }));\n } else {\n this.setState({ alive: null, instance });\n }\n }, 200);\n }\n\n if (this.state.alive !== false && this.state.alive !== true) {\n return null;\n }\n\n const instance = this.state.instance.replace(/^system.adapter./, '');\n return (\n <div style={{ ...styles.root, ...(!this.state.alive ? styles.notAlive : undefined) }}>\n {this.state.alive\n ? this.props.schema.textAlive !== undefined\n ? this.props.schema.textAlive\n ? I18n.t(this.props.schema.textAlive, instance)\n : ''\n : I18n.t('ra_Instance %s is alive', instance)\n : this.props.schema.textNotAlive !== undefined\n ? this.props.schema.textNotAlive\n ? I18n.t(this.props.schema.textNotAlive, instance)\n : ''\n : I18n.t('ra_Instance %s is not alive', instance)}\n </div>\n );\n }\n}\n\nexport default ConfigAlive;\n","import React, { type JSX } from 'react';\n\nimport { Autocomplete, TextField } from '@mui/material';\n\nimport { I18n } from '@iobroker/adapter-react-v5';\n\nimport type { ConfigItemAutocomplete, ConfigItemSelectOption } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericState, type ConfigGenericProps } from './ConfigGeneric';\n\nexport interface ConfigAutocompleteProps extends ConfigGenericProps {\n schema: ConfigItemAutocomplete;\n}\n\nexport interface ConfigAutocompleteState extends ConfigGenericState {\n selectOptions: { value: string; label: string }[];\n}\n\nclass ConfigAutocomplete extends ConfigGeneric<ConfigAutocompleteProps, ConfigAutocompleteState> {\n componentDidMount(): void {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n\n const selectOptions: { label: string; value: string }[] = this.props.schema.options.map(\n (item: { label: string; value: string } | string) =>\n typeof item === 'string' ? { label: item, value: item } : JSON.parse(JSON.stringify(item)),\n );\n\n // if __different\n if (Array.isArray(value)) {\n selectOptions.unshift({\n label: I18n.t(ConfigGeneric.DIFFERENT_LABEL),\n value: ConfigGeneric.DIFFERENT_VALUE,\n });\n this.setState({ value: ConfigGeneric.DIFFERENT_VALUE, selectOptions });\n } else {\n this.setState({ value, selectOptions });\n }\n }\n\n renderItem(error: unknown, disabled: boolean): JSX.Element | null {\n if (!this.state.selectOptions) {\n return null;\n }\n\n let item;\n const options: ConfigItemSelectOption[] = JSON.parse(JSON.stringify(this.state.selectOptions));\n const isIndeterminate = Array.isArray(this.state.value) || this.state.value === ConfigGeneric.DIFFERENT_VALUE;\n\n if (isIndeterminate) {\n [...this.state.value]\n .filter(val => !options.find(it => (typeof it === 'object' ? it.value === val : it === val)))\n .forEach(it => options.push({ label: it.toString(), value: it }));\n\n item = { label: I18n.t(ConfigGeneric.DIFFERENT_LABEL), value: ConfigGeneric.DIFFERENT_VALUE };\n options.unshift(item);\n } else {\n item =\n this.state.value !== null &&\n this.state.value !== undefined &&\n options.find(_item =>\n typeof _item === 'object' ? _item.value == this.state.value : _item == this.state.value,\n ); // let \"==\" be and not ===\n\n if (this.state.value !== null && this.state.value !== undefined && !item && this.props.schema.freeSolo) {\n item = { value: this.state.value, label: this.state.value };\n options.push(item);\n }\n }\n\n return (\n <Autocomplete\n fullWidth\n freeSolo={!!this.props.schema.freeSolo}\n value={item}\n options={options}\n isOptionEqualToValue={(option, value) => option.value === value.value}\n filterOptions={(options: { value: string; label: string }[], params) => {\n const filtered = options.filter(option => {\n if (params.inputValue === '') {\n return true;\n }\n return (\n option.label.toLowerCase().includes(params.inputValue.toLowerCase()) ||\n option.value.toLowerCase().includes(params.inputValue.toLowerCase())\n );\n });\n\n if (this.props.schema.freeSolo && params.inputValue !== '') {\n filtered.push({\n label: params.inputValue,\n value: params.inputValue,\n });\n }\n\n return filtered;\n }}\n // autoComplete\n onInputChange={e => {\n if (!e || !this.props.schema.freeSolo) {\n return;\n }\n\n const val = (e.target as HTMLInputElement).value;\n if (val !== this.state.value) {\n this.setState({ value: val }, () => this.onChange(this.props.attr, val));\n }\n }}\n onChange={(_, value) => {\n const val = typeof value === 'object' ? (value ? value.value : '') : value;\n if (val !== this.state.value) {\n this.setState({ value: val }, () => this.onChange(this.props.attr, val));\n }\n }}\n getOptionLabel={option => (typeof option === 'object' ? (option?.label ?? '') : '')}\n renderInput={params => (\n <TextField\n variant=\"standard\"\n {...params}\n error={!!error}\n // inputProps are important and will be given in params\n // inputProps={{maxLength: this.props.schema.maxLength || this.props.schema.max || undefined}}\n placeholder={this.getText(this.props.schema.placeholder)}\n label={this.getText(this.props.schema.label)}\n helperText={this.renderHelp(\n this.props.schema.help,\n this.props.schema.helpLink,\n this.props.schema.noTranslation,\n )}\n disabled={disabled}\n />\n )}\n />\n );\n }\n}\n\nexport default ConfigAutocomplete;\n","import React, { type JSX } from 'react';\n\nimport { Autocomplete, TextField } from '@mui/material';\n\nimport { I18n } from '@iobroker/adapter-react-v5';\n\nimport type { ConfigItemAutocompleteSendTo } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericProps } from './ConfigGeneric';\nimport type { ConfigAutocompleteState } from './ConfigAutocomplete';\n\ninterface ConfigAutocompleteSendToProps extends ConfigGenericProps {\n schema: ConfigItemAutocompleteSendTo;\n}\n\nclass ConfigAutocompleteSendTo extends ConfigGeneric<ConfigAutocompleteSendToProps, ConfigAutocompleteState> {\n private initialized = false;\n\n private localContext: string | undefined;\n\n askInstance(): void {\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n const selectOptions = this.props.schema.options\n ? this.props.schema.options.map((item: any) =>\n typeof item === 'string' ? { label: item, value: item } : JSON.parse(JSON.stringify(item)),\n )\n : [];\n\n if (this.props.alive) {\n let data = this.props.schema.data;\n if (data === undefined && this.props.schema.jsonData) {\n const dataStr: string = this.getPattern(this.props.schema.jsonData, null, true);\n try {\n if (typeof dataStr === 'string') {\n data = JSON.parse(dataStr);\n }\n } catch {\n console.error(`Cannot parse json data: ${JSON.stringify(data)}`);\n }\n }\n\n if (data === undefined) {\n data = null;\n }\n\n void this.props.oContext.socket\n .sendTo(\n `${this.props.oContext.adapterName}.${this.props.oContext.instance}`,\n this.props.schema.command || 'send',\n data,\n )\n .then((list: unknown) => {\n if (list && Array.isArray(list)) {\n list.forEach(item =>\n selectOptions.push(\n typeof item === 'string'\n ? { label: item, value: item }\n : JSON.parse(JSON.stringify(item)),\n ),\n );\n }\n\n // if __different\n if (Array.isArray(value)) {\n selectOptions.unshift({\n label: I18n.t(ConfigGeneric.DIFFERENT_LABEL),\n value: ConfigGeneric.DIFFERENT_VALUE,\n });\n this.setState({ value: ConfigGeneric.DIFFERENT_VALUE, selectOptions });\n } else {\n this.setState({ value, selectOptions });\n }\n });\n } else if (Array.isArray(value)) {\n // if __different\n selectOptions.unshift({\n label: I18n.t(ConfigGeneric.DIFFERENT_LABEL),\n value: ConfigGeneric.DIFFERENT_VALUE,\n });\n this.setState({ value: ConfigGeneric.DIFFERENT_VALUE, selectOptions });\n } else {\n this.setState({ value, selectOptions });\n }\n }\n\n getContext(): string {\n const localContext: Record<string, any> = {};\n if (Array.isArray(this.props.schema.alsoDependsOn)) {\n this.props.schema.alsoDependsOn.forEach(\n attr => (localContext[attr] = ConfigGeneric.getValue(this.props.data, attr)),\n );\n }\n return JSON.stringify(localContext);\n }\n\n renderItem(error: unknown, disabled: boolean): JSX.Element | null {\n if (this.props.alive) {\n const localContext = this.getContext();\n if (localContext !== this.localContext || !this.initialized) {\n this.localContext = localContext;\n setTimeout(() => this.askInstance(), this.initialized ? 300 : 50);\n this.initialized = true;\n }\n }\n\n let item;\n const options: { value: string; label: string }[] = this.state.selectOptions\n ? JSON.parse(JSON.stringify(this.state.selectOptions))\n : [];\n const isIndeterminate = Array.isArray(this.state.value) || this.state.value === ConfigGeneric.DIFFERENT_LABEL;\n\n if (isIndeterminate) {\n [...this.state.value]\n .filter(val => !options.find((it: any) => it.value === val))\n .forEach(it => options.push({ label: it.toString(), value: it }));\n\n item = { label: I18n.t(ConfigGeneric.DIFFERENT_LABEL), value: ConfigGeneric.DIFFERENT_VALUE };\n options.unshift(item);\n } else {\n item =\n this.state.value !== null &&\n this.state.value !== undefined &&\n options.find((item: any) => item.value == this.state.value); // let \"==\" be and not ===\n\n if (this.state.value !== null && this.state.value !== undefined && !item && this.props.schema.freeSolo) {\n item = { value: this.state.value, label: this.state.value };\n options.push(item);\n }\n item = item || null;\n }\n\n if (!options.length) {\n return (\n <TextField\n variant=\"standard\"\n fullWidth\n value={this.state.value === null || this.state.value === undefined ? '' : this.state.value}\n error={!!error}\n disabled={disabled}\n slotProps={{\n htmlInput: {\n maxLength: this.props.schema.maxLength || this.props.schema.max || undefined,\n },\n }}\n onChange={e => {\n const value = e.target.value;\n this.setState({ value }, () => this.onChange(this.props.attr, (value || '').trim()));\n }}\n placeholder={this.getText(this.props.schema.placeholder)}\n label={this.getText(this.props.schema.label)}\n helperText={this.renderHelp(\n this.props.schema.help,\n this.props.schema.helpLink,\n this.props.schema.noTranslation,\n )}\n />\n );\n }\n return (\n <Autocomplete\n value={item}\n fullWidth\n freeSolo={!!this.props.schema.freeSolo}\n options={options}\n isOptionEqualToValue={(option, value) => option.value === value.value}\n filterOptions={(options: { value: string; label: string }[], params) => {\n const filtered = options.filter(option => {\n if (params.inputValue === '') {\n return true;\n }\n return (\n option.label.toLowerCase().includes(params.inputValue.toLowerCase()) ||\n option.value.toLowerCase().includes(params.inputValue.toLowerCase())\n );\n });\n\n if (this.props.schema.freeSolo && params.inputValue !== '') {\n filtered.push({\n label: params.inputValue,\n value: params.inputValue,\n });\n }\n\n return filtered;\n }}\n getOptionLabel={(option: { value: string; label: string }): string => option?.label ?? ''}\n onInputChange={e => {\n if (!e || !this.props.schema.freeSolo) {\n return;\n }\n\n const val = (e.target as HTMLInputElement).value;\n if (val !== this.state.value) {\n this.setState({ value: val }, () => this.onChange(this.props.attr, val));\n }\n }}\n onChange={(_, value) => {\n const val = typeof value === 'object' ? (value ? value.value : '') : value;\n if (val !== this.state.value) {\n this.setState({ value: val }, () => this.onChange(this.props.attr, val));\n }\n }}\n renderInput={params => (\n <TextField\n variant=\"standard\"\n {...params}\n // inputProps are important and will be given in params\n // inputProps={{maxLength: this.props.schema.maxLength || this.props.schema.max || undefined}}\n error={!!error}\n placeholder={this.getText(this.props.schema.placeholder)}\n label={this.getText(this.props.schema.label)}\n helperText={this.renderHelp(\n this.props.schema.help,\n this.props.schema.helpLink,\n this.props.schema.noTranslation,\n )}\n disabled={disabled}\n />\n )}\n />\n );\n }\n}\n\nexport default ConfigAutocompleteSendTo;\n","import React, { type JSX } from 'react';\n\nimport { InputLabel, FormControl, Button, TextField } from '@mui/material';\n\nimport { DialogCron, I18n } from '@iobroker/adapter-react-v5';\n\nimport type { ConfigItemCRON } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\n\nconst styles: Record<string, React.CSSProperties> = {\n fullWidth: {\n width: '100%',\n },\n flex: {\n display: 'flex',\n },\n button: {\n height: 48,\n marginLeft: 4,\n minWidth: 48,\n },\n};\n\ninterface ConfigCRONProps extends ConfigGenericProps {\n schema: ConfigItemCRON;\n}\n\ninterface ConfigCRONState extends ConfigGenericState {\n showDialog?: boolean;\n}\n\nclass ConfigCRON extends ConfigGeneric<ConfigCRONProps, ConfigCRONState> {\n componentDidMount(): void {\n super.componentDidMount();\n const { data, attr } = this.props;\n const value = ConfigGeneric.getValue(data, attr) || '';\n this.setState({ value, showDialog: false });\n }\n\n renderItem(error: string, disabled: boolean /* , defaultValue */): JSX.Element {\n const { schema, attr } = this.props;\n const { value, showDialog } = this.state;\n\n return (\n <FormControl\n style={styles.fullWidth}\n variant=\"standard\"\n >\n {schema.label ? <InputLabel shrink>{this.getText(schema.label)}</InputLabel> : null}\n <div style={styles.flex}>\n <TextField\n variant=\"standard\"\n fullWidth\n value={value ?? ''}\n error={!!error}\n disabled={disabled}\n placeholder={this.getText(schema.placeholder)}\n label={this.getText(schema.label)}\n helperText={this.renderHelp(schema.help, schema.helpLink, schema.noTranslation)}\n onChange={e => {\n const value_ = e.target.value;\n this.setState({ value: value_ }, () => this.onChange(attr, value_));\n }}\n />\n <Button\n color=\"grey\"\n disabled={disabled}\n style={styles.button}\n size=\"small\"\n variant=\"outlined\"\n onClick={() => this.setState({ showDialog: true })}\n >\n ...\n </Button>\n </div>\n {showDialog ? (\n <DialogCron\n title={I18n.t('ra_Define schedule')}\n simple={schema.simple}\n complex={schema.complex}\n cron={value}\n onClose={() => this.setState({ showDialog: false })}\n cancel={I18n.t('ra_Cancel')}\n ok={I18n.t('ra_Ok')}\n theme={this.props.oContext.theme}\n onOk={value_ =>\n this.setState({ showDialog: false, value: value_ }, () => this.onChange(attr, value_))\n }\n />\n ) : null}\n </FormControl>\n );\n }\n}\n\nexport default ConfigCRON;\n","import React, { type JSX } from 'react';\n\nimport { InputLabel, MenuItem, FormControl, Select, FormHelperText } from '@mui/material';\n\nimport { I18n } from '@iobroker/adapter-react-v5';\nimport type { ConfigItemCertificateSelect } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\n\ninterface ConfigCertificateSelectProps extends ConfigGenericProps {\n schema: ConfigItemCertificateSelect;\n}\n\ninterface ConfigCertificateSelectState extends ConfigGenericState {\n selectOptions?: { label: string; value: string }[];\n}\n\nclass ConfigCertificateSelect extends ConfigGeneric<ConfigCertificateSelectProps, ConfigCertificateSelectState> {\n async componentDidMount(): Promise<void> {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n // Important: getCertificates is only available in AdminConnection\n const certificates = await this.props.oContext.socket.getCertificates();\n\n const selectOptions: { label: string; value: string }[] = certificates\n .filter(el => {\n const name = this.props.attr.toLowerCase();\n\n if (name.includes(el.type)) {\n return true;\n }\n if (el.type === 'public' && name.includes('cert')) {\n return true;\n }\n if (el.type === 'private' && (name.includes('priv') || name.includes('key'))) {\n return true;\n }\n return !!(el.type === 'chained' && (name.includes('chain') || name.includes('ca')));\n })\n .map(el => ({ label: el.name, value: el.name }));\n\n selectOptions.unshift({ label: I18n.t(ConfigGeneric.NONE_LABEL), value: ConfigGeneric.NONE_VALUE });\n\n this.setState({ value, selectOptions });\n }\n\n renderItem(error: unknown, disabled: boolean /* , defaultValue */): JSX.Element | null {\n if (!this.state.selectOptions) {\n return null;\n }\n\n const item = this.state.selectOptions?.find(_item => _item.value === this.state.value);\n\n return (\n <FormControl\n style={{ width: '100%' }}\n variant=\"standard\"\n >\n {this.props.schema.label ? (\n <InputLabel shrink>{this.getText(this.props.schema.label)}</InputLabel>\n ) : null}\n <Select\n variant=\"standard\"\n error={!!error}\n displayEmpty\n disabled={!!disabled}\n value={this.state.value}\n renderValue={() => this.getText(item?.label, this.props.schema.noTranslation !== false)}\n onChange={e =>\n this.setState({ value: e.target.value }, () => this.onChange(this.props.attr, this.state.value))\n }\n >\n {this.state.selectOptions?.map(item_ => (\n <MenuItem\n key={item_.value}\n value={item_.value}\n style={item_.value === ConfigGeneric.NONE_VALUE ? { opacity: 0.5 } : {}}\n >\n {this.getText(item_.label, this.props.schema.noTranslation !== false)}\n </MenuItem>\n ))}\n </Select>\n {this.props.schema.help ? (\n <FormHelperText>\n {this.renderHelp(\n this.props.schema.help,\n this.props.schema.helpLink,\n this.props.schema.noTranslation,\n )}\n </FormHelperText>\n ) : null}\n </FormControl>\n );\n }\n}\n\nexport default ConfigCertificateSelect;\n","import React, { type JSX } from 'react';\n\nimport { InputLabel, MenuItem, FormControl, Select } from '@mui/material';\n\nimport { I18n } from '@iobroker/adapter-react-v5';\nimport type { ConfigItemCertificates } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\n\nconst styles: Record<string, React.CSSProperties> = {\n fullWidth: {\n width: '100%',\n },\n leWidth: {\n width: 620,\n marginBottom: 10,\n },\n certWidth: {\n width: 200,\n marginRight: 10,\n },\n};\n\ninterface ConfigCertificatesProps extends ConfigGenericProps {\n schema: ConfigItemCertificates;\n}\n\ninterface ConfigCertificatesState extends ConfigGenericState {\n certsPublicOptions?: { label: string; value: string }[];\n certsChainOptions?: { label: string; value: string }[];\n certsPrivateOptions?: { label: string; value: string }[];\n collectionsOptions?: string[];\n}\n\nclass ConfigCertificates extends ConfigGeneric<ConfigCertificatesProps, ConfigCertificatesState> {\n async componentDidMount(): Promise<void> {\n super.componentDidMount();\n // Important: getCertificates is only available in AdminConnection\n const certificates = await this.props.oContext.socket.getCertificates();\n const certsPublicOptions: { label: string; value: string }[] = [];\n const certsPrivateOptions: { label: string; value: string }[] = [];\n const certsChainOptions: { label: string; value: string }[] = [];\n\n let collectionsOptions: string[] | null = [];\n const collectionsOptionsObj = await this.props.oContext.socket.getObject('system.certificates');\n if (collectionsOptionsObj?.native?.collections) {\n collectionsOptions = Object.keys(collectionsOptionsObj.native.collections);\n } else {\n collectionsOptions = null;\n }\n\n certificates.forEach(el => {\n if (el.type === 'public') {\n certsPublicOptions.push({ label: el.name, value: el.name });\n } else if (el.type === 'private') {\n certsPrivateOptions.push({ label: el.name, value: el.name });\n } else if (el.type === 'chained') {\n certsChainOptions.push({ label: el.name, value: el.name });\n } else {\n certsPublicOptions.push({ label: el.name, value: el.name });\n certsPrivateOptions.push({ label: el.name, value: el.name });\n certsChainOptions.push({ label: el.name, value: el.name });\n }\n });\n\n certsPublicOptions.unshift({ label: I18n.t(ConfigGeneric.NONE_LABEL), value: ConfigGeneric.NONE_VALUE });\n certsPrivateOptions.unshift({ label: I18n.t(ConfigGeneric.NONE_LABEL), value: ConfigGeneric.NONE_VALUE });\n certsChainOptions.unshift({ label: I18n.t(ConfigGeneric.NONE_LABEL), value: ConfigGeneric.NONE_VALUE });\n\n this.setState({\n certsPublicOptions,\n certsChainOptions,\n certsPrivateOptions,\n collectionsOptions,\n });\n }\n\n renderItem(error: unknown, disabled: boolean /* , defaultValue */): JSX.Element | null {\n if (!this.state.certsPublicOptions || !this.state.certsPrivateOptions || !this.state.certsChainOptions) {\n return null;\n }\n const leCollection = (\n ConfigGeneric.getValue(this.props.data, this.props.schema.leCollectionName || 'leCollection') || 'false'\n ).toString();\n const certPublic = ConfigGeneric.getValue(this.props.data, this.props.schema.certPublicName || 'certPublic');\n const certPrivate = ConfigGeneric.getValue(this.props.data, this.props.schema.certPrivateName || 'certPrivate');\n const certChained = ConfigGeneric.getValue(this.props.data, this.props.schema.certChainedName || 'certChained');\n\n const itemCertPublic = this.state.certsPublicOptions?.find(item => item.value === certPublic);\n const itemCertPrivate = this.state.certsPrivateOptions?.find(item => item.value === certPrivate);\n const itemCertChained = this.state.certsChainOptions?.find(item => item.value === certChained);\n\n return (\n <div style={styles.fullWidth}>\n {this.state.collectionsOptions ? (\n <FormControl\n style={styles.leWidth}\n variant=\"standard\"\n >\n <InputLabel shrink>Let's encrypt</InputLabel>\n <Select\n variant=\"standard\"\n error={!!error}\n displayEmpty\n disabled={!!disabled}\n value={leCollection}\n onChange={e =>\n this.onChange(\n this.props.schema.leCollectionName || 'leCollection',\n e.target.value === 'false'\n ? false\n : e.target.value === 'true'\n ? true\n : e.target.value,\n )\n }\n >\n <MenuItem\n key=\"_false\"\n value=\"false\"\n style={{ fontWeight: 'bold' }}\n >\n {I18n.t(\"ra_Do not use let's encrypt\")}\n </MenuItem>\n <MenuItem\n key=\"_true\"\n value=\"true\"\n style={{ fontWeight: 'bold' }}\n >\n {I18n.t(\"ra_Use all available let's encrypt certificates\")}\n </MenuItem>\n {this.state.collectionsOptions?.map(item => (\n <MenuItem\n key={item}\n value={item}\n >\n {item}\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n ) : null}\n {this.state.collectionsOptions ? <br /> : null}\n {this.state.collectionsOptions && leCollection !== 'false' ? (\n <div>{I18n.t('ra_Fallback custom certificates')}</div>\n ) : null}\n <FormControl\n style={styles.certWidth}\n variant=\"standard\"\n >\n <InputLabel shrink>{I18n.t('ra_Public certificate')}</InputLabel>\n <Select\n variant=\"standard\"\n error={!!error}\n displayEmpty\n disabled={!!disabled}\n value={certPublic || ''}\n renderValue={() => this.getText(itemCertPublic?.label)}\n onChange={e => this.onChange(this.props.schema.certPublicName || 'certPublic', e.target.value)}\n >\n {this.state.certsPublicOptions?.map((item, i) => (\n <MenuItem\n key={`${item.value}_${i}`}\n value={item.value}\n style={item.value === ConfigGeneric.NONE_VALUE ? { opacity: 0.5 } : {}}\n >\n {this.getText(item.label)}\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n <FormControl\n style={styles.certWidth}\n variant=\"standard\"\n >\n <InputLabel shrink>{I18n.t('ra_Private certificate')}</InputLabel>\n <Select\n variant=\"standard\"\n error={!!error}\n displayEmpty\n disabled={!!disabled}\n value={certPrivate || ''}\n renderValue={() => this.getText(itemCertPrivate?.label)}\n onChange={e =>\n this.onChange(this.props.schema.certPrivateName || 'certPrivate', e.target.value)\n }\n >\n {this.state.certsPrivateOptions?.map((item, i) => (\n <MenuItem\n key={`${item.value}_${i}`}\n value={item.value}\n style={item.value === ConfigGeneric.NONE_VALUE ? { opacity: 0.5 } : {}}\n >\n {this.getText(item.label)}\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n <FormControl\n style={styles.certWidth}\n variant=\"standard\"\n >\n <InputLabel shrink>{I18n.t('ra_Chained certificate')}</InputLabel>\n <Select\n variant=\"standard\"\n error={!!error}\n displayEmpty\n disabled={!!disabled}\n value={certChained || ''}\n renderValue={() => this.getText(itemCertChained?.label)}\n onChange={e =>\n this.onChange(this.props.schema.certChainedName || 'certChained', e.target.value)\n }\n >\n {this.state.certsChainOptions?.map((item, i) => (\n <MenuItem\n key={`${item.value}_${i}`}\n value={item.value}\n style={item.value === ConfigGeneric.NONE_VALUE ? { opacity: 0.5 } : {}}\n >\n {this.getText(item.label)}\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n </div>\n );\n }\n}\n\nexport default ConfigCertificates;\n","import React, { type JSX } from 'react';\n\nimport { InputLabel, MenuItem, FormControl, Select, FormHelperText } from '@mui/material';\n\nimport { I18n } from '@iobroker/adapter-react-v5';\nimport type { ConfigItemCertCollection } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\n\ninterface ConfigCertCollectionProps extends ConfigGenericProps {\n schema: ConfigItemCertCollection;\n}\n\ninterface ConfigCertCollectionState extends ConfigGenericState {\n collectionsOptions?: string[];\n}\n\ninterface CertCollection {\n /** Source of the certificate */\n from: string;\n key: string;\n cert: string;\n chain: string[];\n domains: string[];\n staging?: boolean;\n tsExpires?: number;\n}\n\nclass ConfigCertCollection extends ConfigGeneric<ConfigCertCollectionProps, ConfigCertCollectionState> {\n async componentDidMount(): Promise<void> {\n super.componentDidMount();\n\n let collectionsOptions: string[];\n const collectionsOptionsObj = await this.props.oContext.socket.getObject('system.certificates');\n if (collectionsOptionsObj?.native?.collections) {\n collectionsOptions = Object.keys(\n collectionsOptionsObj.native.collections as Record<string, CertCollection>,\n );\n } else {\n collectionsOptions = [];\n }\n this.setState({ collectionsOptions });\n }\n\n renderItem(error: unknown, disabled: boolean /* , defaultValue */): JSX.Element {\n if (!this.state.collectionsOptions) {\n return null;\n }\n const leCollection = (\n ConfigGeneric.getValue(this.props.data, this.props.schema.leCollectionName || 'leCollection') || 'false'\n ).toString();\n\n return (\n <FormControl\n style={{ width: '100%' }}\n variant=\"standard\"\n >\n {this.props.schema.label ? (\n <InputLabel shrink>{this.getText(this.props.schema.label)}</InputLabel>\n ) : null}\n <Select\n variant=\"standard\"\n error={!!error}\n displayEmpty\n disabled={!!disabled}\n value={leCollection}\n onChange={e =>\n this.onChange(\n this.props.schema.leCollectionName || 'leCollection',\n e.target.value === 'false' ? false : e.target.value === 'true' ? true : e.target.value,\n )\n }\n >\n <MenuItem\n key=\"_false\"\n value=\"false\"\n style={{ fontWeight: 'bold' }}\n >\n {I18n.t(\"ra_Do not use let's encrypt\")}\n </MenuItem>\n <MenuItem\n key=\"_true\"\n value=\"true\"\n style={{ fontWeight: 'bold' }}\n >\n {I18n.t(\"ra_Use all available let's encrypt certificates\")}\n </MenuItem>\n {this.state.collectionsOptions?.map(item => (\n <MenuItem\n key={item}\n value={item}\n >\n {item}\n </MenuItem>\n ))}\n </Select>\n {this.props.schema.help ? (\n <FormHelperText>\n {this.renderHelp(\n this.props.schema.help,\n this.props.schema.helpLink,\n this.props.schema.noTranslation,\n )}\n </FormHelperText>\n ) : null}\n </FormControl>\n );\n }\n}\n\nexport default ConfigCertCollection;\n","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.oContext.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.oContext.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.oContext.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.oContext.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.oContext.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.oContext.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.oContext.adapterName === 'vis-2' ? 'vis' : this.props.oContext.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","import React, { type JSX } from 'react';\n\nimport { FormControlLabel, Checkbox, FormHelperText, FormControl } from '@mui/material';\n\nimport { I18n } from '@iobroker/adapter-react-v5';\n\nimport type { ConfigItemCheckbox } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\n\ninterface ConfigCheckboxProps extends ConfigGenericProps {\n schema: ConfigItemCheckbox;\n}\n\nclass ConfigCheckbox extends ConfigGeneric<ConfigCheckboxProps, ConfigGenericState> {\n renderItem(error: unknown, disabled: boolean): JSX.Element {\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n const isIndeterminate = Array.isArray(value);\n\n return (\n <FormControl\n style={{ width: '100%' }}\n variant=\"standard\"\n >\n <FormControlLabel\n onClick={e => {\n e.preventDefault();\n e.stopPropagation();\n\n if (!disabled) {\n const mayByPromise = this.onChange(this.props.attr, !value);\n if (mayByPromise instanceof Promise) {\n void mayByPromise.catch(e => console.error(`Cannot set value: ${e}`));\n }\n }\n }}\n control={\n <Checkbox\n indeterminate={isIndeterminate}\n checked={!!value}\n onChange={e => {\n let mayBePromise: void | Promise<void>;\n if (isIndeterminate) {\n mayBePromise = this.onChange(this.props.attr, true);\n } else {\n mayBePromise = this.onChange(this.props.attr, e.target.checked);\n }\n if (mayBePromise instanceof Promise) {\n void mayBePromise.catch(e => console.error(`Cannot set value: ${e}`));\n }\n }}\n disabled={disabled || this.props.schema.readOnly}\n />\n }\n label={this.getText(this.props.schema.label)}\n />\n <FormHelperText style={{ color: 'red' }}>\n {error\n ? this.props.schema.validatorErrorText\n ? I18n.t(this.props.schema.validatorErrorText)\n : I18n.t('ra_Error')\n : null}\n </FormHelperText>\n {this.props.schema.help ? (\n <FormHelperText>\n {this.renderHelp(\n this.props.schema.help,\n this.props.schema.helpLink,\n this.props.schema.noTranslation,\n )}\n </FormHelperText>\n ) : null}\n </FormControl>\n );\n }\n}\n\nexport default ConfigCheckbox;\n","/**\n * Notice: Some code was adapted from Material-UI's text field.\n * Copyright (c) 2014 Call-Em-All (https://github.com/callemall/material-ui)\n */\nimport React, { type RefObject, type JSX } from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { Input, OutlinedInput, InputLabel, Chip, FormControl, FormHelperText, Box } from '@mui/material';\nimport FilledInput from '@mui/material/FilledInput/FilledInput';\nimport blue from '@mui/material/colors/blue';\n\nimport { type IobTheme, type ThemeType, Utils } from '@iobroker/adapter-react-v5';\n\nconst variantComponent = {\n standard: Input,\n filled: FilledInput,\n outlined: OutlinedInput,\n};\n\nconst styles: Record<string, any> = (theme: IobTheme): Record<string, any> => {\n const light = theme.palette.mode === 'light';\n const bottomLineColor = light ? 'rgba(0, 0, 0, 0.42)' : 'rgba(255, 255, 255, 0.7)';\n\n return {\n root: {},\n inputRoot: {\n display: 'inline-flex',\n flexWrap: 'wrap',\n flex: 1,\n marginTop: 0,\n minWidth: 70,\n '&.mui-variant-outlined,&.mui-variant-filled': {\n boxSizing: 'border-box',\n },\n '&.mui-variant-outlined': {\n paddingTop: '14px',\n },\n '&.mui-variant-filled': {\n paddingTop: '28px',\n },\n },\n input: {\n display: 'inline-block',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n appearance: 'none', // Remove border in Safari, doesn't seem to break anything in other browsers\n WebkitTapHighlightColor: 'rgba(0,0,0,0)', // Remove mobile color flashing (deprecated style).\n float: 'left',\n flex: 1,\n },\n chipContainer: {\n display: 'flex',\n flexFlow: 'row wrap',\n alignItems: 'center',\n cursor: 'text',\n marginBottom: '-2px',\n minHeight: 40,\n },\n outlined: {\n '& input': {\n height: 16,\n paddingTop: '4px',\n paddingBottom: '12px',\n marginTop: '4px',\n marginBottom: '4px',\n },\n },\n standard: {\n marginTop: '18px',\n },\n filled: {\n '& input': {\n height: 22,\n marginBottom: '4px',\n marginTop: '4px',\n paddingTop: 0,\n },\n '$marginDense & input': {\n height: 26,\n },\n },\n labeled: {},\n label: {\n top: 4,\n '&$outlined&:not($labelShrink)': {\n top: 2,\n '$marginDense &': {\n top: 5,\n },\n },\n '&$filled&:not($labelShrink)': {\n top: 15,\n '$marginDense &': {\n top: 20,\n },\n },\n },\n labelShrink: {\n top: 0,\n },\n helperText: {\n marginBottom: -20,\n },\n focused: {},\n disabled: {},\n underline: {\n '&:after': {\n borderBottom: `2px solid ${theme.palette.primary[light ? 'dark' : 'light']}`,\n left: 0,\n bottom: 0,\n // Doing the other way around a crash on IE 11 \"''\" https://github.com/cssinjs/jss/issues/242\n content: '\"\"',\n position: 'absolute',\n right: 0,\n transform: 'scaleX(0)',\n transition: theme.transitions.create('transform', {\n duration: theme.transitions.duration.shorter,\n easing: theme.transitions.easing.easeOut,\n }),\n pointerEvents: 'none', // Transparent to the hover style.\n },\n '&$focused:after': {\n transform: 'scaleX(1)',\n },\n '&$error:after': {\n borderBottomColor: theme.palette.error.main,\n transform: 'scaleX(1)', // error is always underlined in red\n },\n '&:before': {\n borderBottom: `1px solid ${bottomLineColor}`,\n left: 0,\n bottom: 0,\n // Doing the other way around a crash on IE 11 \"''\" https://github.com/cssinjs/jss/issues/242\n content: '\"\\\\00a0\"',\n position: 'absolute',\n right: 0,\n transition: theme.transitions.create('border-bottom-color', {\n duration: theme.transitions.duration.shorter,\n }),\n pointerEvents: 'none', // Transparent to the hover style.\n },\n '&:hover:not($disabled):not($focused):not($error):before': {\n borderBottom: `2px solid ${theme.palette.text.primary}`,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n borderBottom: `1px solid ${bottomLineColor}`,\n },\n },\n '&$disabled:before': {\n borderBottomStyle: 'dotted',\n },\n },\n error: {\n '&:after': {\n backgroundColor: theme.palette.error.main,\n transform: 'scaleX(1)', // error is always underlined in red\n },\n },\n chip: {\n margin: '0 8px 8px 0',\n float: 'left',\n },\n marginDense: {},\n };\n};\n\nconst keyCodes = {\n BACKSPACE: 8,\n DELETE: 46,\n LEFT_ARROW: 37,\n RIGHT_ARROW: 39,\n};\n\ninterface ChipRendererProps {\n value: string;\n isFocused: boolean;\n isDisabled: boolean;\n isReadOnly: boolean;\n handleClick: () => void;\n handleDelete: () => void;\n style: React.CSSProperties;\n}\n\nexport const defaultChipRenderer = (\n { value, isFocused, isDisabled, isReadOnly, handleClick, handleDelete, style }: ChipRendererProps,\n key: string,\n): JSX.Element => (\n <Chip\n key={key}\n style={{\n ...style,\n pointerEvents: isDisabled || isReadOnly ? 'none' : undefined,\n backgroundColor: isFocused ? blue[300] : undefined,\n }}\n onClick={handleClick}\n onDelete={handleDelete}\n label={value}\n />\n);\n\ninterface ChipInputProps {\n /** Allows duplicate chips if set to true. */\n allowDuplicates?: boolean;\n /** If true, the placeholder will always be visible. */\n alwaysShowPlaceholder?: boolean;\n /** Behavior when the chip input is blurred: `'clear'` clears the input, `'add'` creates a chip and `'ignore'` keeps the input. */\n blurBehavior?: 'clear' | 'add' | 'add-or-clear' | 'ignore';\n /** A function of the type `({ value, text, chip, isFocused, isDisabled, isReadOnly, handleClick, handleDelete, className }, key) => node` that returns a chip based on the given properties. This can be used to customize chip styles. Each item in the `dataSource` array will be passed to `chipRenderer` as arguments `chip`, `value` and `text`. If `dataSource` is an array of objects and `dataSourceConfig` is present, then `value` and `text` will instead correspond to the object values defined in `dataSourceConfig`. If `dataSourceConfig` is not set and `dataSource` is an array of objects, then a custom `chipRenderer` must be set. `chip` is always the raw value from `dataSource`, either an object or a string. */\n chipRenderer?: (props: ChipRendererProps) => JSX.Element;\n /** Whether the input value should be cleared if the `value` prop is changed. */\n clearInputValueOnChange?: boolean;\n /** Data source for auto complete. This should be an array of strings or objects. */\n dataSource?: string[];\n /** The chips to display by default (for uncontrolled mode). */\n defaultValue?: string[];\n /** Whether to use `setTimeout` to delay adding chips in case other input events like `onSelection` need to fire first */\n delayBeforeAdd?: boolean;\n /** Disables the chip input if set to true. */\n disabled?: boolean;\n /** Disable the input underline. Only valid for 'standard' variant */\n disableUnderline?: boolean;\n /** Props to pass through to the `FormHelperText` component. */\n FormHelperTextProps?: Record<string, any>;\n /** If true, the chip input will fill the available width. */\n fullWidth?: boolean;\n /** If true, the input field will always be below the chips and fill the available space. By default, it will try to be beside the chips. */\n fullWidthInput?: boolean;\n /** Helper text that is displayed below the input. */\n helperText?: string | JSX.Element;\n /** Props to pass through to the `InputLabel`. */\n InputLabelProps?: Record<string, any>;\n /** Props to pass through to the `Input`. */\n InputProps?: Record<string, any>;\n /** Use this property to pass a ref callback to the native input component. */\n inputRef?: (el: HTMLInputElement) => void;\n /** The input value (enables controlled mode for the text input if set). */\n inputValue?: string;\n /* The content of the floating label. */\n label?: string | JSX.Element;\n /** The key codes (`KeyboardEvent.keyCode`) used to determine when to create a new chip. */\n newChipKeyCodes?: number[];\n /** The keys (`KeyboardEvent.key`) used to determine when to create a new chip. */\n newChipKeys?: string[];\n /** Callback function that is called when a new chip was added (in controlled mode). */\n onAdd?: (chip: string) => void;\n /** Callback function that is called with the chip to be added and should return true to add the chip or false to prevent the chip from being added without clearing the text input. */\n onBeforeAdd?: (chip: string) => boolean;\n onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void;\n onFocus?: (event: React.FocusEvent<HTMLInputElement>) => void;\n onKeyDown?: (event: React.KeyboardEvent<HTMLInputElement>) => void;\n onKeyUp?: (event: React.KeyboardEvent<HTMLInputElement>) => void;\n // onKeyPress?: (event: React.KeyboardEvent<HTMLInputElement>) => void;\n /** Callback function that is called when the chips change (in uncontrolled mode). */\n onChange?: (chips: string[]) => void;\n /** Callback function that is called when a new chip was removed (in controlled mode). */\n onDelete: (chip: string, i: number) => void;\n /** Callback function that is called when the input changes. */\n onUpdateInput?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n /** A placeholder that is displayed if the input has no values. */\n placeholder?: string;\n /** Makes the chip input read-only if set to true. */\n readOnly?: boolean;\n /** The chips to display (enables controlled mode if set). */\n value?: string[];\n /** The variant of the Input component */\n variant?: 'outlined' | 'standard' | 'filled';\n className?: string;\n error?: boolean;\n id?: string;\n required?: boolean;\n rootRef?: RefObject<HTMLDivElement>;\n margin?: 'dense' | 'normal' | 'none';\n theme: IobTheme;\n}\n\ninterface ChipInputState {\n chips: string[];\n focusedChip: number | null;\n inputValue: string;\n isFocused: boolean;\n chipsUpdated: boolean;\n prevPropsValue: string[];\n variant: 'outlined' | 'standard' | 'filled';\n}\n\nclass ChipInput extends React.Component<ChipInputProps, ChipInputState> {\n private readonly labelRef: React.RefObject<HTMLLabelElement>;\n\n private labelNode: HTMLLabelElement | null = null;\n\n private readonly input: React.RefObject<HTMLInputElement>;\n\n private readonly newChipKeyCodes: number[];\n\n private readonly newChipKeys: string[];\n\n private actualInput: HTMLInputElement | null = null;\n\n private inputBlurTimeout: ReturnType<typeof setTimeout> | null = null;\n\n private _keyPressed: boolean;\n\n private _preventChipCreation: boolean;\n\n private styles: Record<string, any> = {};\n\n private styleTheme: ThemeType | null = null;\n\n constructor(props: ChipInputProps) {\n super(props);\n this.state = {\n chips: props.defaultValue || [],\n focusedChip: null,\n inputValue: '',\n isFocused: false,\n chipsUpdated: false,\n prevPropsValue: [],\n variant: this.props.variant || 'standard',\n };\n this.newChipKeyCodes = props.newChipKeyCodes || [13];\n this.newChipKeys = props.newChipKeys || ['Enter'];\n\n this.labelRef = React.createRef();\n this.input = React.createRef();\n }\n\n componentDidMount(): void {\n if (this.state.variant === 'outlined') {\n // eslint-disable-next-line react/no-find-dom-node\n this.labelNode = ReactDOM.findDOMNode(this.labelRef.current) as HTMLLabelElement;\n this.forceUpdate();\n }\n }\n\n componentWillUnmount(): void {\n if (this.inputBlurTimeout) {\n clearTimeout(this.inputBlurTimeout);\n }\n }\n\n static getDerivedStateFromProps(props: ChipInputProps, state: ChipInputState): Partial<ChipInputState> | null {\n let newState: Partial<ChipInputState> | null = null;\n\n if (props.value && props.value.length !== state.prevPropsValue.length) {\n newState = { prevPropsValue: props.value };\n if (props.clearInputValueOnChange) {\n newState.inputValue = '';\n }\n }\n\n // if change detection is only necessary for clearInputValueOnChange\n if (props.clearInputValueOnChange && props.value && props.value.length !== state.prevPropsValue.length) {\n newState = { prevPropsValue: props.value, inputValue: '' };\n }\n\n if (props.disabled) {\n newState = { ...newState, focusedChip: null };\n }\n\n if (!state.chipsUpdated && props.defaultValue) {\n newState = { ...newState, chips: props.defaultValue };\n }\n\n return newState;\n }\n\n /**\n * Blurs this component.\n */\n // blur() {\n // if (this.input) {\n // this.actualInput.blur();\n // }\n // }\n\n /**\n * Focuses this component.\n */\n focus = (): void => {\n this.actualInput?.focus();\n if (this.state.focusedChip) {\n this.setState({ focusedChip: null });\n }\n };\n\n handleInputBlur = (event: React.FocusEvent<HTMLInputElement>): void => {\n if (this.props.onBlur) {\n this.props.onBlur(event);\n }\n this.setState({ isFocused: false });\n if (this.state.focusedChip) {\n this.setState({ focusedChip: null });\n }\n const value = event.target.value;\n let addChipOptions: { clearInputOnFail: boolean };\n switch (this.props.blurBehavior || 'clear') {\n case 'add-or-clear':\n addChipOptions = { clearInputOnFail: true };\n // falls through\n case 'add':\n if (this.props.delayBeforeAdd) {\n // Let's assume that we only want to add the existing content as chip, when\n // another event has not added a chip within 200ms.\n // e.g., onSelection Callback in Autocomplete case\n const numChipsBefore = (this.props.value || this.state.chips).length;\n this.inputBlurTimeout = setTimeout(() => {\n const numChipsAfter = (this.props.value || this.state.chips).length;\n if (numChipsBefore === numChipsAfter) {\n this.handleAddChip(value, addChipOptions);\n } else {\n this.clearInput();\n }\n }, 150);\n } else {\n this.handleAddChip(value, addChipOptions);\n }\n break;\n\n case 'clear':\n this.clearInput();\n break;\n\n default:\n break;\n }\n };\n\n handleInputFocus = (event: React.FocusEvent<HTMLInputElement>): void => {\n this.setState({ isFocused: true });\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>): void => {\n const { focusedChip } = this.state;\n this._keyPressed = false;\n this._preventChipCreation = false;\n\n if (this.props.onKeyDown) {\n // Needed for arrow controls on a menu in autocomplete scenario\n this.props.onKeyDown(event);\n // Check if the callback marked the event as isDefaultPrevented() and skip further actions\n // enter key, for example, should not always add the current value of the inputField\n if (event.isDefaultPrevented()) {\n return;\n }\n }\n const chips = this.props.value || this.state.chips;\n if (this.newChipKeyCodes.includes(event.keyCode) || this.newChipKeys.includes(event.key)) {\n const result = this.handleAddChip((event.target as HTMLInputElement).value);\n if (result !== false) {\n event.preventDefault();\n }\n return;\n }\n\n switch (event.keyCode) {\n case keyCodes.BACKSPACE:\n if ((event.target as HTMLInputElement).value === '') {\n if (focusedChip) {\n this.handleDeleteChip(chips[focusedChip], focusedChip);\n if (focusedChip) {\n this.setState({ focusedChip: focusedChip - 1 });\n }\n } else {\n this.setState({ focusedChip: chips.length - 1 });\n }\n }\n break;\n case keyCodes.DELETE:\n if ((event.target as HTMLInputElement).value === '' && focusedChip) {\n this.handleDeleteChip(chips[focusedChip], focusedChip);\n if (focusedChip <= chips.length - 1) {\n this.setState({ focusedChip });\n }\n }\n break;\n case keyCodes.LEFT_ARROW:\n if (focusedChip === null && (event.target as HTMLInputElement).value === '' && chips.length) {\n this.setState({ focusedChip: chips.length - 1 });\n } else if (focusedChip !== null && focusedChip > 0) {\n this.setState({ focusedChip: focusedChip - 1 });\n }\n break;\n case keyCodes.RIGHT_ARROW:\n if (focusedChip !== null && focusedChip < chips.length - 1) {\n this.setState({ focusedChip: focusedChip + 1 });\n } else {\n this.setState({ focusedChip: null });\n }\n break;\n default:\n this.setState({ focusedChip: null });\n break;\n }\n };\n\n handleKeyUp = (event: React.KeyboardEvent<HTMLInputElement>): void => {\n if (\n !this._preventChipCreation &&\n (this.newChipKeyCodes.includes(event.keyCode) || this.newChipKeys.includes(event.key)) &&\n this._keyPressed\n ) {\n this.clearInput();\n } else {\n this.updateInput((event.target as HTMLInputElement).value);\n }\n if (this.props.onKeyUp) {\n this.props.onKeyUp(event);\n }\n };\n\n // handleKeyPress = (event: React.KeyboardEvent<HTMLInputElement>) => {\n // this._keyPressed = true;\n // if (this.props.onKeyPress) {\n // this.props.onKeyPress(event);\n // }\n // };\n\n handleUpdateInput = (e: React.ChangeEvent<HTMLInputElement>): void => {\n if (this.props.inputValue === null || this.props.inputValue === undefined) {\n this.updateInput(e.target.value);\n }\n\n if (this.props.onUpdateInput) {\n this.props.onUpdateInput(e);\n }\n };\n\n /**\n * Handles adding a chip.\n *\n * @param chip Value of the chip, either a string or an object (if dataSourceConfig is set)\n * @param options Additional options\n * @param options.clearInputOnFail If `true`, and `onBeforeAdd` returns `false`, clear the input\n * @returns True if the chip was added (or at least `onAdd` was called), false if adding the chip was prevented\n */\n handleAddChip(chip: string, options?: { clearInputOnFail: boolean }): boolean {\n if (this.props.onBeforeAdd && !this.props.onBeforeAdd(chip)) {\n this._preventChipCreation = true;\n if (options && options.clearInputOnFail) {\n this.clearInput();\n }\n return false;\n }\n this.clearInput();\n const chips = this.props.value || this.state.chips;\n\n if (chip.trim().length) {\n if (this.props.allowDuplicates || !chips.includes(chip)) {\n if (this.props.value && this.props.onAdd) {\n this.props.onAdd(chip);\n } else {\n this.updateChips([...this.state.chips, chip]);\n }\n }\n return true;\n }\n return false;\n }\n\n handleDeleteChip(chip: string, i: number): void {\n if (!this.props.value) {\n const chips = this.state.chips.slice();\n const changed = chips.splice(i, 1); // remove the chip at index i\n if (changed) {\n let focusedChip = this.state.focusedChip;\n if (this.state.focusedChip === i) {\n focusedChip = null;\n } else if (this.state.focusedChip > i) {\n focusedChip = this.state.focusedChip - 1;\n }\n this.updateChips(chips, { focusedChip });\n }\n } else if (this.props.onDelete) {\n this.props.onDelete(chip, i);\n }\n }\n\n updateChips(chips: string[], additionalUpdates = {}): void {\n this.setState({ chips, chipsUpdated: true, ...additionalUpdates });\n if (this.props.onChange) {\n this.props.onChange(chips);\n }\n }\n\n /**\n * Clears the text field for adding new chips.\n * This only works in uncontrolled input mode, i.e., if the inputValue prop is not used.\n */\n clearInput(): void {\n this.updateInput('');\n }\n\n updateInput(value: string): void {\n this.setState({ inputValue: value });\n }\n\n /**\n * Set the reference to the actual input, that is the input of the Input.\n *\n * @param ref - The reference\n */\n setActualInputRef = (ref: HTMLInputElement): void => {\n this.actualInput = ref;\n if (this.props.inputRef) {\n this.props.inputRef(ref);\n }\n };\n\n render(): JSX.Element {\n const {\n alwaysShowPlaceholder,\n chipRenderer = defaultChipRenderer,\n className,\n disabled,\n disableUnderline,\n error,\n FormHelperTextProps,\n fullWidth,\n fullWidthInput,\n helperText,\n id,\n InputProps = {},\n InputLabelProps = {},\n inputValue,\n label,\n placeholder,\n readOnly,\n required,\n rootRef,\n value,\n margin,\n } = this.props;\n const variant = this.state.variant;\n\n if (this.styleTheme !== this.props.theme.palette.mode) {\n this.styleTheme = this.props.theme.palette.mode;\n this.styles = Utils.getStyle(this.props.theme, styles);\n }\n\n let chips = value || this.state.chips || [];\n if (!Array.isArray(chips)) {\n chips = ((chips as string) || '')\n .toString()\n .split(/[,\\s]+/)\n .map((c: string) => c.trim());\n }\n const actualInputValue = inputValue ?? this.state.inputValue;\n\n const hasInput = (this.props.value || actualInputValue).length || actualInputValue.length;\n const shrinkFloatingLabel =\n typeof InputLabelProps.shrink === 'boolean'\n ? InputLabelProps.shrink\n : label !== null && (hasInput || this.state.isFocused || chips.length);\n\n const chipComponents = chips.map((chip, i) =>\n chipRenderer(\n {\n value: chip,\n isDisabled: !!disabled,\n isReadOnly: readOnly,\n isFocused: this.state.focusedChip === i,\n handleClick: () => this.setState({ focusedChip: i }),\n handleDelete: () => this.handleDeleteChip(chip, i),\n style: this.styles.chip,\n },\n i.toString(),\n ),\n );\n\n const InputMore: { notched?: boolean; labelWidth?: number; startAdornment?: JSX.Element[] } = {};\n if (variant === 'outlined') {\n InputMore.notched = !!shrinkFloatingLabel;\n InputMore.labelWidth = (shrinkFloatingLabel && this.labelNode && this.labelNode.offsetWidth) || 0;\n }\n\n if (variant !== 'standard') {\n InputMore.startAdornment = chipComponents;\n } else {\n InputProps.disableUnderline = true;\n }\n\n const InputComponent = variantComponent[variant];\n\n return (\n <FormControl\n ref={rootRef}\n fullWidth={fullWidth}\n className={className}\n sx={{ ...this.styles.root, ...(margin === 'dense' ? this.styles.marginDense : {}) }}\n error={error}\n required={chips.length > 0 ? undefined : required}\n onClick={this.focus}\n disabled={disabled}\n variant={variant}\n component=\"div\"\n margin={margin}\n >\n {label && (\n <InputLabel\n htmlFor={id}\n sx={{\n '&.MuiInputLabel-root': this.styles.label,\n '&.MuiInputLabel-shrink': this.styles.labelShrink,\n }}\n shrink={!!shrinkFloatingLabel}\n focused={this.state.isFocused}\n variant={variant}\n ref={this.labelRef}\n required={required}\n component=\"label\"\n {...InputLabelProps}\n >\n {label}\n </InputLabel>\n )}\n <Box\n component=\"div\"\n id=\"input-chip-container\"\n sx={{\n ...this.styles[variant],\n ...this.styles.chipContainer,\n ...(this.state.isFocused ? this.styles.focused : undefined),\n ...(!disableUnderline && variant === 'standard' ? this.styles.underline : undefined),\n ...(disabled ? this.styles.disabled : undefined),\n ...(label ? this.styles.labeled : undefined),\n ...(error ? this.styles.error : undefined),\n }}\n >\n {variant === 'standard' && chipComponents}\n <InputComponent\n ref={this.input}\n className={`mui-variant-${this.styles[variant]} ${label ? 'mui-chip-with-label' : 'mui-chip-no-label'}`}\n sx={{\n '&.MuiInputBase-input': { ...this.styles.input, ...this.styles[variant] },\n '&.MuiInputBase-root': { ...this.styles.inputRoot },\n }}\n id={id}\n value={actualInputValue}\n onChange={this.handleUpdateInput}\n onKeyDown={this.handleKeyDown}\n // onKeyPress={this.handleKeyPress}\n onKeyUp={this.handleKeyUp}\n onFocus={this.handleInputFocus}\n onBlur={this.handleInputBlur}\n inputRef={this.setActualInputRef}\n disabled={disabled}\n fullWidth={fullWidthInput}\n placeholder={\n (!hasInput && (shrinkFloatingLabel || label === null || label === undefined)) ||\n alwaysShowPlaceholder\n ? placeholder\n : null\n }\n readOnly={readOnly}\n {...InputProps}\n {...InputMore}\n />\n </Box>\n {helperText && (\n <FormHelperText\n {...FormHelperTextProps}\n className={FormHelperTextProps?.className}\n style={this.styles.helperText}\n >\n {helperText}\n </FormHelperText>\n )}\n </FormControl>\n );\n }\n}\n\nexport default ChipInput;\n","import React, { type JSX } from 'react';\n\nimport { FormHelperText, FormControl } from '@mui/material';\n\nimport type { ConfigItemChip } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\nimport ChipInput from './ChipInput';\nimport { I18n } from '@iobroker/adapter-react-v5';\n\ninterface ConfigChipProps extends ConfigGenericProps {\n schema: ConfigItemChip;\n}\n\nclass ConfigChip extends ConfigGeneric<ConfigChipProps, ConfigGenericState> {\n componentDidMount(): void {\n super.componentDidMount();\n const { data, attr } = this.props;\n const value = ConfigGeneric.getValue(data, attr);\n if (this.props.schema.delimiter && typeof value === 'string') {\n const parts = value\n .split(this.props.schema.delimiter)\n .map(a => a.trim())\n .filter(a => a);\n this.setState({ value: parts });\n } else {\n this.setState({ value: value || [] });\n }\n }\n\n renderItem(error: string, disabled: boolean): JSX.Element | null {\n const { attr, schema } = this.props;\n const { value } = this.state;\n return (\n <FormControl\n fullWidth\n variant=\"standard\"\n >\n <ChipInput\n value={value}\n disabled={!!disabled}\n label={this.getText(schema.label)}\n error={!!error}\n onAdd={chip => {\n const newValue = JSON.parse(JSON.stringify(value));\n newValue.push(chip);\n this.setState({ value: newValue }, () => {\n let mayBePromise: void | Promise<void>;\n if (this.props.schema.delimiter) {\n mayBePromise = this.onChange(attr, newValue.join(`${this.props.schema.delimiter} `));\n } else {\n mayBePromise = this.onChange(attr, newValue);\n }\n if (mayBePromise instanceof Promise) {\n mayBePromise.catch(e => console.error(e));\n }\n });\n }}\n theme={this.props.oContext.theme}\n onDelete={(_chip, index) => {\n const newValue = JSON.parse(JSON.stringify(value));\n newValue.splice(index, 1);\n this.setState({ value: newValue }, () => {\n let mayBePromise: void | Promise<void>;\n if (this.props.schema.delimiter) {\n mayBePromise = this.onChange(attr, newValue.join(`${this.props.schema.delimiter} `));\n } else {\n mayBePromise = this.onChange(attr, newValue);\n }\n if (mayBePromise instanceof Promise) {\n mayBePromise.catch(e => console.error(e));\n }\n });\n }}\n />\n <FormHelperText>{I18n.t('ra_Press ENTER Key to add new item')}</FormHelperText>\n {this.props.schema.help ? (\n <FormHelperText>\n {this.renderHelp(\n this.props.schema.help,\n this.props.schema.helpLink,\n this.props.schema.noTranslation,\n )}\n </FormHelperText>\n ) : null}\n </FormControl>\n );\n }\n}\n\nexport default ConfigChip;\n","import React, { type JSX } from 'react';\nimport { ChromePicker, type ColorResult } from 'react-color';\n\nimport { IconButton, TextField, Dialog } from '@mui/material';\n\nimport { Close as ClearIcon } from '@mui/icons-material';\n\nimport { Utils } from '@iobroker/adapter-react-v5';\n\nimport type { ConfigItemText } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\n\ninterface ConfigColorProps extends ConfigGenericProps {\n schema: ConfigItemText;\n}\n\ninterface ConfigColorState extends ConfigGenericState {\n showColorDialog?: boolean;\n colorDialogValue?: string;\n}\n\nclass ConfigColor extends ConfigGeneric<ConfigColorProps, ConfigColorState> {\n renderColorDialog(): JSX.Element | null {\n return (\n !!this.state.showColorDialog && (\n <Dialog\n onClose={() => this.setState({ showColorDialog: false })}\n open={this.state.showColorDialog}\n >\n <ChromePicker\n color={this.state.colorDialogValue}\n onChange={(color: ColorResult) =>\n this.setState({ colorDialogValue: color.hex }, () =>\n this.onChange(this.props.attr, this.state.colorDialogValue),\n )\n }\n />\n </Dialog>\n )\n );\n }\n\n renderItem(_error: unknown, disabled: boolean /* , defaultValue */): JSX.Element {\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n let textColor = Utils.isUseBright(value, null);\n if (textColor === null) {\n textColor = undefined;\n }\n return (\n <>\n {this.renderColorDialog()}\n <TextField\n variant=\"standard\"\n disabled={!!disabled}\n style={{ minWidth: 100, width: 'calc(100% - 8px)' }}\n label={this.getText(this.props.schema.label)}\n value={value || ''}\n onClick={() =>\n !this.props.schema.readOnly &&\n this.setState({ showColorDialog: true, colorDialogValue: value || '' })\n }\n onChange={e => {\n const color = e.target.value;\n const mayBePromise = this.onChange(this.props.attr, color);\n if (mayBePromise instanceof Promise) {\n void mayBePromise.catch(e => console.error(`Cannot set value: ${e}`));\n }\n }}\n slotProps={{\n htmlInput: {\n style: {\n // paddingLeft: noPadding ? 0 : 8,\n backgroundColor: value,\n color: textColor ? '#FFF' : '#000',\n },\n readOnly: this.props.schema.readOnly || false,\n },\n input: {\n endAdornment:\n !this.props.schema.readOnly && value && !this.props.schema.noClearButton ? (\n <IconButton\n size=\"small\"\n onClick={e => {\n e.stopPropagation();\n const mayBePromise = this.onChange(this.props.attr, '');\n if (mayBePromise instanceof Promise) {\n void mayBePromise.catch(e => console.error(`Cannot set value: ${e}`));\n }\n }}\n >\n <ClearIcon />\n </IconButton>\n ) : undefined,\n },\n inputLabel: {\n shrink: true,\n },\n }}\n />\n </>\n );\n }\n}\n\nexport default ConfigColor;\n","import React, { type JSX } from 'react';\n\nimport { TextField, Fab, FormControlLabel, Checkbox } from '@mui/material';\n\nimport { GpsFixed as IconGpsFixed, LocationOn as IconLocationOn } from '@mui/icons-material';\n\nimport { I18n } from '@iobroker/adapter-react-v5';\n\nimport type { ConfigItemCoordinates } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\n\nconst styles: Record<string, React.CSSProperties> = {\n width: {\n width: 'calc(100% - 85px)',\n },\n width50: {\n width: 120,\n marginRight: 5,\n },\n};\n\ninterface ConfigCoordinatesProps extends ConfigGenericProps {\n schema: ConfigItemCoordinates;\n}\n\ninterface ConfigCoordinatesState extends ConfigGenericState {\n useSystem?: boolean;\n longitude?: string | number;\n latitude?: string | number;\n}\n\nclass ConfigCoordinates extends ConfigGeneric<ConfigCoordinatesProps, ConfigCoordinatesState> {\n componentDidMount(): void {\n super.componentDidMount();\n\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n this.setState({ value });\n\n const newState: Partial<ConfigCoordinatesState> = {};\n if (this.props.schema.useSystemName) {\n newState.useSystem = !!ConfigGeneric.getValue(this.props.data, this.props.schema.useSystemName);\n }\n if (this.props.schema.longitudeName && this.props.schema.latitudeName) {\n newState.longitude = ConfigGeneric.getValue(this.props.data, this.props.schema.longitudeName);\n newState.latitude = ConfigGeneric.getValue(this.props.data, this.props.schema.latitudeName);\n if (!newState.longitude && !newState.latitude && this.props.schema.autoInit) {\n setTimeout(() => this.getCoordinates(), 300);\n }\n } else {\n const value_ = ConfigGeneric.getValue(this.props.data, this.props.attr);\n if (!value_ && this.props.schema.autoInit) {\n setTimeout(() => this.getCoordinates(), 300);\n }\n }\n if (Object.keys(newState).length) {\n setTimeout(() => this.setState(newState as ConfigCoordinatesState), 50);\n }\n }\n\n async getSystemCoordinates(): Promise<void> {\n const obj = await this.props.oContext.socket.getCompactSystemConfig();\n if (obj?.common && (obj.common.longitude || obj.common.latitude)) {\n window.alert(I18n.t('ra_Used system settings'));\n if (this.props.schema.longitudeName && this.props.schema.latitudeName) {\n this.setState(\n {\n longitude: obj.common.longitude,\n latitude: obj.common.latitude,\n },\n async () => {\n await this.onChange(this.props.schema.longitudeName, obj.common.longitude);\n await this.onChange(this.props.schema.latitudeName, obj.common.latitude);\n },\n );\n } else {\n const value = obj.common.latitude + (this.props.schema.divider || ',') + obj.common.longitude;\n this.setState(\n {\n value,\n },\n () => {\n const mayByPromise = this.onChange(this.props.attr, value);\n if (mayByPromise instanceof Promise) {\n mayByPromise.catch(e => console.error(`Cannot set value: ${e}`));\n }\n },\n );\n }\n } else {\n window.alert(\n I18n.t(\n 'ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser',\n ),\n );\n }\n }\n\n getCoordinates(): void {\n if (navigator.geolocation) {\n navigator.geolocation.getCurrentPosition(\n async (position: GeolocationPosition): Promise<void> => {\n if (position?.coords) {\n if (this.props.schema.longitudeName && this.props.schema.latitudeName) {\n this.setState(\n {\n longitude: position.coords.longitude,\n latitude: position.coords.latitude,\n },\n async () => {\n await this.onChange(\n this.props.schema.longitudeName,\n position.coords.longitude || '',\n );\n await this.onChange(this.props.schema.latitudeName, position.coords.latitude || '');\n },\n );\n } else {\n const value =\n position.coords.latitude +\n (this.props.schema.divider || ',') +\n position.coords.longitude;\n this.setState({ value }, () => {\n const mayByPromise = this.onChange(this.props.attr, value);\n if (mayByPromise instanceof Promise) {\n mayByPromise.catch(e => console.error(`Cannot set value: ${e}`));\n }\n });\n }\n } else {\n await this.getSystemCoordinates();\n }\n },\n async (error: GeolocationPositionError): Promise<void> => {\n console.error(`Cannot determine coordinates from browser: ${error.message}`);\n await this.getSystemCoordinates();\n },\n );\n } else {\n void this.getSystemCoordinates().catch(e => {\n console.error(`Cannot determine coordinates: ${e}`);\n });\n }\n }\n\n renderItem(error: string, disabled: boolean /* , defaultValue */): JSX.Element {\n return (\n <>\n {this.props.schema.useSystemName ? (\n <FormControlLabel\n control={\n <Checkbox\n checked={!!this.state.useSystem}\n onChange={e => {\n const useSystem = e.target.checked;\n if (useSystem) {\n void this.getSystemCoordinates().catch(e =>\n console.error(`Cannot determine coordinates: ${e}`),\n );\n }\n this.setState({ useSystem }, () =>\n this.onChange(this.props.schema.useSystemName, useSystem),\n );\n }}\n />\n }\n label={I18n.t('ra_Use system settings for position')}\n />\n ) : null}\n {this.props.schema.longitudeName && this.props.schema.latitudeName ? (\n <TextField\n variant=\"standard\"\n style={styles.width50}\n value={this.state.longitude ?? ''}\n error={!!error}\n disabled={this.state.useSystem || !!disabled}\n onChange={e => {\n const longitude = e.target.value;\n this.setState({ longitude }, () => {\n const mayBePromise = this.onChange(\n this.props.schema.longitudeName,\n (longitude || '').trim(),\n );\n if (mayBePromise instanceof Promise) {\n mayBePromise.catch(e => console.error(`Cannot set value: ${e}`));\n }\n });\n }}\n label={I18n.t('ra_Longitude')}\n />\n ) : null}\n {this.props.schema.longitudeName && this.props.schema.latitudeName ? (\n <TextField\n variant=\"standard\"\n style={styles.width50}\n value={this.state.latitude ?? ''}\n error={!!error}\n disabled={this.state.useSystem || !!disabled}\n onChange={e => {\n const latitude = e.target.value;\n this.setState({ latitude }, () =>\n this.onChange(this.props.schema.latitudeName, (latitude || '').trim()),\n );\n }}\n label={I18n.t('ra_Latitude')}\n />\n ) : null}\n {!this.props.schema.longitudeName || !this.props.schema.latitudeName ? (\n <TextField\n variant=\"standard\"\n style={styles.width}\n value={this.state.value === null || this.state.value === undefined ? '' : this.state.value}\n error={!!error}\n disabled={!!disabled}\n slotProps={{\n htmlInput: {\n maxLength: this.props.schema.maxLength || this.props.schema.max || undefined,\n readOnly: this.state.useSystem,\n },\n }}\n onChange={e => {\n const value = e.target.value;\n this.setState({ value }, () => this.onChange(this.props.attr, (value || '').trim()));\n }}\n placeholder={this.getText(this.props.schema.placeholder)}\n label={this.getText(this.props.schema.label)}\n helperText={this.renderHelp(\n this.props.schema.help,\n this.props.schema.helpLink,\n this.props.schema.noTranslation,\n )}\n />\n ) : null}\n {!this.state.useSystem ? (\n <Fab\n size=\"small\"\n onClick={() => this.getCoordinates()}\n title={I18n.t('ra_Take browser position')}\n style={{ marginRight: 4 }}\n >\n <IconLocationOn />\n </Fab>\n ) : null}\n {!this.state.useSystem ? (\n <Fab\n size=\"small\"\n onClick={() => this.getSystemCoordinates()}\n title={I18n.t('ra_Take position from system settings')}\n >\n <IconGpsFixed />\n </Fab>\n ) : null}\n </>\n );\n }\n}\n\nexport default ConfigCoordinates;\n","import React, { type JSX } from 'react';\nimport { Grid2, LinearProgress } from '@mui/material';\n\nimport { I18n } from '@iobroker/adapter-react-v5';\nimport type { ConfigItemCustom } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from '#JC/JsonConfigComponent/ConfigGeneric';\n\nconst getOrLoadRemote = (\n remote: string,\n shareScope: string,\n remoteFallbackUrl?: string,\n): Promise<{ get: (module: string) => () => Promise<{ default: Record<string, React.FC<ConfigGenericProps>> }> }> =>\n new Promise((resolve, reject) => {\n // check if remote exists on the global `window`object\n if (!(window as any)[remote]) {\n // search dom to see if remote tag exists, but might still be loading (async)\n const existingRemote: HTMLScriptElement = document.querySelector(`script[data-webpack=\"${remote}\"]`);\n // when remote is loaded.\n const onload = async (): Promise<void> => {\n // check if it was initialized\n if ((window as any)[remote]) {\n if (!(window as any)[remote].__initialized) {\n // if share scope doesn't exist (like in webpack 4) then expect shareScope to be a manual object\n // @ts-expect-error it is a trick and must be so\n if (typeof __webpack_share_scopes__ === 'undefined') {\n // use a default share scope object passed in manually\n await (window as any)[remote].init(shareScope);\n } else {\n // otherwise, init share scope as usual\n // @ts-expect-error it is a trick and must be so\n await (window as any)[remote].init((__webpack_share_scopes__ as any)[shareScope]);\n }\n // mark remote as initialized\n (window as any)[remote].__initialized = true;\n }\n } else {\n console.error(`Cannot load ${remote}`);\n reject(new Error(`Cannot load ${remote}`));\n return;\n }\n // resolve promise so marking remote as loaded\n resolve((window as any)[remote]);\n };\n\n if (existingRemote) {\n // if existing remote but not loaded, hook into its onload and wait for it to be ready\n existingRemote.onload = onload;\n existingRemote.onerror = reject;\n // check if remote fallback exists as param passed to function\n // TODO: should scan public config for a matching key if no override exists\n } else if (remoteFallbackUrl) {\n // inject remote if a fallback exists and call the same onload function\n const d = document;\n const script = d.createElement('script');\n script.type = 'text/javascript';\n // mark as data-webpack so runtime can track it internally\n script.setAttribute('data-webpack', `${remote}`);\n script.async = true;\n script.onerror = reject;\n script.onload = onload;\n script.src = remoteFallbackUrl;\n d.getElementsByTagName('head')[0].appendChild(script);\n } else {\n // no remote and no fallback exist, reject\n reject(new Error(`Cannot Find Remote ${remote} to inject`));\n }\n } else {\n // remote already instantiated, resolve\n resolve((window as any)[remote]);\n }\n });\n\nfunction loadComponent(\n remote: string,\n sharedScope: string,\n module: string,\n url: string,\n): () => Promise<{ default: Record<string, React.FC<ConfigGenericProps>> }> {\n return async (): Promise<{ default: Record<string, React.FC<ConfigGenericProps>> }> => {\n const container = await getOrLoadRemote(remote, sharedScope, url);\n // eslint-disable-next-line @typescript-eslint/await-thenable\n const factory = await container.get(module);\n return factory();\n };\n}\n\ninterface ConfigCustomProps extends ConfigGenericProps {\n schema: ConfigItemCustom;\n}\n\ninterface ConfigCustomState extends ConfigGenericState {\n Component: React.FC<ConfigGenericProps> | null;\n error: string;\n}\n\nexport default class ConfigCustom extends ConfigGeneric<ConfigCustomProps, ConfigCustomState> {\n static runningLoads: Record<string, Promise<{ default: Record<string, React.FC<ConfigGenericProps>> }>> = {};\n\n constructor(props: ConfigCustomProps) {\n super(props);\n // schema.url - location of Widget\n // schema.name - Component name\n // schema.i18n - i18n\n\n Object.assign(this.state, {\n Component: null,\n error: '',\n });\n }\n\n // load component dynamically\n async componentDidMount(): Promise<void> {\n if (!this.props.schema.url) {\n console.error('URL is empty. Cannot load custom component!');\n this.setState({ error: 'URL is empty. Cannot load custom component!' });\n return;\n }\n\n let url;\n /*\n if (this.props.schema.url.startsWith('http:') || this.props.schema.url.startsWith('https:')) {\n url = this.props.schema.url;\n } else\n */\n if (this.props.schema.url.startsWith('./')) {\n url = `${window.location.protocol}//${window.location.host}${this.props.schema.url.replace(/^\\./, '')}`;\n } else {\n url = `${window.location.protocol}//${window.location.host}/adapter/${this.props.oContext.adapterName}/${this.props.schema.url}`;\n }\n const [uniqueName, fileToLoad, ...componentNameParts] = this.props.schema.name.split('/');\n const componentName = componentNameParts.join('/');\n if (!url) {\n console.error(\n 'Cannot find URL for custom component! Please define \"url\" as \"custom/customComponents.js\" in the schema',\n );\n return;\n }\n if (!uniqueName || !fileToLoad || !componentName) {\n console.error(\n 'Invalid format of \"name\"! Please define \"name\" as \"ConfigCustomBackItUpSet/Components/AdapterExist\" in the schema',\n );\n return;\n }\n let setPromise: Promise<{ default: Record<string, React.FC<ConfigGenericProps>> }> | undefined =\n ConfigCustom.runningLoads[`${url}!${fileToLoad}`];\n\n if (!(setPromise instanceof Promise)) {\n let i18nPromise: Promise<void> | undefined;\n if (this.props.schema.i18n === true) {\n // load i18n from files\n const pos = url.lastIndexOf('/');\n let i18nURL: string;\n if (pos !== -1) {\n i18nURL = url.substring(0, pos);\n } else {\n i18nURL = url;\n }\n const lang = I18n.getLanguage();\n const file = `${i18nURL}/i18n/${lang}.json`;\n\n i18nPromise = fetch(file)\n .then(data => data.json())\n .then(json => I18n.extendTranslations(json, lang))\n .catch(error => {\n if (lang !== 'en') {\n // try to load English\n fetch(`${i18nURL}/i18n/en.json`)\n .then(data => data.json())\n .then(json => I18n.extendTranslations(json, lang))\n .catch(err => console.log(`Cannot load i18n \"${file}\": ${err}`));\n return;\n }\n console.log(`Cannot load i18n \"${file}\": ${error}`);\n });\n } else if (this.props.schema.i18n && typeof this.props.schema.i18n === 'object') {\n try {\n I18n.extendTranslations(this.props.schema.i18n);\n } catch (error) {\n console.error(`Cannot import i18n: ${error}`);\n }\n }\n try {\n console.log(uniqueName, fileToLoad, componentName);\n setPromise = loadComponent(uniqueName, 'default', `./${fileToLoad}`, url)();\n if (i18nPromise instanceof Promise) {\n setPromise = Promise.all([setPromise, i18nPromise]).then(result => result[0]);\n }\n // remember promise\n ConfigCustom.runningLoads[`${url}!${fileToLoad}`] = setPromise;\n } catch (error) {\n this.setState({ error: `Cannot import from ${this.props.schema.url}: ${error}` });\n }\n }\n\n try {\n const component: Record<string, React.FC<ConfigGenericProps>> = (await setPromise).default;\n\n if (!component?.[componentName]) {\n const keys = Object.keys(component || {});\n console.error('URL is empty. Cannot load custom component!');\n this.setState({\n error: `Component ${this.props.schema.name} not found in ${this.props.schema.url}. Found: ${keys.join(', ')}`,\n });\n } else {\n this.setState({ Component: component[componentName] });\n }\n } catch (error) {\n this.setState({ error: `Cannot import from ${this.props.schema.url}: ${error}` });\n }\n }\n\n render(): JSX.Element {\n const CustomComponent: React.FC<ConfigGenericProps> = this.state.Component;\n const schema = this.props.schema || ({} as ConfigItemCustom);\n\n let item = CustomComponent ? (\n <CustomComponent\n {...this.props}\n // @ts-expect-error BF (2024-12-18) Remove after the 7.4 will be mainstream. All following lines\n socket={this.props.oContext.socket}\n theme={this.props.oContext.theme}\n themeType={this.props.oContext.themeType}\n instance={this.props.oContext.instance}\n adapterName={this.props.oContext.adapterName}\n systemConfig={this.props.oContext.systemConfig}\n forceUpdate={this.props.oContext.forceUpdate}\n />\n ) : this.state.error ? (\n <div>{this.state.error}</div>\n ) : (\n <LinearProgress />\n );\n\n // If any widths are defined\n if (schema.xs || schema.sm || schema.md || schema.lg || schema.xl) {\n item = (\n <Grid2\n size={{\n xs: schema.xs || 12,\n sm: schema.sm || undefined,\n md: schema.md || undefined,\n lg: schema.lg || undefined,\n xl: schema.xl || undefined,\n }}\n style={{\n marginBottom: 0,\n textAlign: 'left',\n ...schema.style,\n ...(this.props.oContext.themeType === 'dark' ? schema.darkStyle : {}),\n }}\n >\n {item}\n </Grid2>\n );\n }\n\n if (schema.newLine) {\n return (\n <>\n <div style={{ flexBasis: '100%', height: 0 }} />\n {item}\n </>\n );\n }\n\n return item;\n }\n}\n","import React, { type JSX } from 'react';\n\nimport { DatePicker } from '@mui/x-date-pickers';\n\nimport type { ConfigItemDatePicker } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericProps } from './ConfigGeneric';\n\ninterface ConfigDatePickerProps extends ConfigGenericProps {\n schema: ConfigItemDatePicker;\n}\n\nexport default class ConfigDatePicker extends ConfigGeneric<ConfigDatePickerProps> {\n componentDidMount(): void {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n this.setState({ value });\n }\n\n renderItem(_error: unknown, disabled: boolean /* , defaultValue */): JSX.Element {\n return (\n <DatePicker\n sx={theme => ({\n width: '100%',\n borderBottom: `1px solid ${theme.palette.text.primary}`,\n '& fieldset': {\n display: 'none',\n },\n '& input': {\n padding: `${theme.spacing(1.5)} 0 4px 0`,\n },\n '& .MuiInputAdornment-root': {\n marginLeft: 0,\n marginTop: 1, // it is already in spaces\n },\n '& label': {\n transform: 'translate(0px, -9px) scale(0.75)',\n },\n })}\n format={this.props.oContext.systemConfig.dateFormat.toLowerCase().replace('mm', 'MM')}\n disabled={!!disabled}\n value={this.state.value as never}\n onChange={value => {\n this.setState({ value }, () => this.onChange(this.props.attr, this.state.value));\n }}\n label={this.getText(this.props.schema.label)}\n />\n );\n }\n}\n","import React, { type JSX } from 'react';\n\nimport type { ConfigItemDeviceManager } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\n\ninterface ConfigDeviceManagerProps extends ConfigGenericProps {\n schema: ConfigItemDeviceManager;\n}\n\nclass ConfigDeviceManager extends ConfigGeneric<ConfigDeviceManagerProps, ConfigGenericState> {\n renderItem(): JSX.Element | null {\n const schema = this.props.schema;\n\n if (!schema) {\n return null;\n }\n\n if (this.props.oContext.DeviceManager) {\n const DeviceManager = this.props.oContext.DeviceManager;\n return (\n <DeviceManager\n uploadImagesToInstance={`${this.props.oContext.adapterName}.${this.props.oContext.instance}`}\n title={this.getText(this.props.schema.label)}\n socket={this.props.oContext.socket}\n selectedInstance={`${this.props.oContext.adapterName}.${this.props.oContext.instance}`}\n themeName={this.props.themeName}\n themeType={this.props.oContext.themeType}\n isFloatComma={this.props.oContext.isFloatComma}\n dateFormat={this.props.oContext.dateFormat}\n />\n );\n }\n\n return <div>DeviceManager not found</div>;\n }\n}\n\nexport default ConfigDeviceManager;\n","import React, { type JSX } from 'react';\nimport Dropzone, { type DropzoneRef } from 'react-dropzone';\n\nimport {\n InputLabel,\n MenuItem,\n FormHelperText,\n FormControl,\n Select,\n IconButton,\n ListItemText,\n ListItemIcon,\n} from '@mui/material';\n\nimport {\n Refresh as IconRefresh,\n UploadFile as IconUpload,\n Delete as IconDelete,\n PlayArrow as IconPlay,\n MusicNote as IconAudio,\n Videocam as IconVideo,\n Article as IconText,\n Code as IconCode,\n UploadFile as UploadIcon,\n} from '@mui/icons-material';\n\nimport { DialogConfirm, Utils, I18n } from '@iobroker/adapter-react-v5';\n\nimport type { ConfigItemFileSelector } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\n\nconst styles: Record<string, React.CSSProperties> = {\n fullWidth: {\n width: '100%',\n },\n fullWidthOneButton: {\n width: 'calc(100% - 42px)',\n },\n fullWidthTwoButtons: {\n width: 'calc(100% - 84px)',\n },\n fullWidthThreeButtons: {\n width: 'calc(100% - 126x)',\n },\n dropZone: {\n width: '100%',\n height: '100%',\n position: 'absolute',\n },\n dropZoneEmpty: {},\n image: {\n objectFit: 'contain',\n margin: 'auto',\n display: 'flex',\n width: '100%',\n height: '100%',\n },\n uploadDiv: {\n position: 'relative',\n width: '100%',\n },\n uploadDivDragging: {\n opacity: 1,\n background: 'rgba(128,255,128,0.1)',\n },\n uploadCenterDiv: {\n margin: 5,\n border: '3px dashed grey',\n borderRadius: 5,\n width: '100%',\n height: '100%',\n position: 'absolute',\n display: 'flex',\n },\n uploadCenterIcon: {\n paddingTop: 10,\n width: 48,\n height: 48,\n },\n uploadCenterText: {\n fontSize: 16,\n },\n uploadCenterTextAndIcon: {\n textAlign: 'center',\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n },\n disabledOpacity: {\n opacity: 0.3,\n cursor: 'default',\n },\n error: {\n border: '2px solid red',\n },\n deleteButton: {},\n selectedImage: {\n height: 40,\n width: 40,\n display: 'inline-block',\n marginRight: 8,\n },\n};\n\nconst IMAGE_EXT = ['jpg', 'jpeg', 'svg', 'png', 'webp', 'gif', 'apng', 'avif', 'webp'];\nconst AUDIO_EXT = ['mp3', 'ogg', 'wav', 'aac'];\nconst VIDEO_EXT = ['avi', 'mp4', 'mov'];\nconst DOC_EXT = ['txt', 'log', 'html', 'htm'];\nconst JS_EXT = ['json', 'js', 'ts'];\n\ninterface ConfigFileSelectorProps extends ConfigGenericProps {\n schema: ConfigItemFileSelector;\n}\n\ninterface ConfigFileSelectorState extends ConfigGenericState {\n uploadFile?: boolean | 'dragging';\n uploadError?: boolean;\n files?: { name: string; size: string }[];\n deleteFile?: string;\n}\n\nclass ConfigFileSelector extends ConfigGeneric<ConfigFileSelectorProps, ConfigFileSelectorState> {\n private readonly dropzoneRef: React.RefObject<DropzoneRef>;\n\n private readonly imagePrefix: string;\n\n private objectID: string;\n\n private path: string;\n\n constructor(props: ConfigFileSelectorProps) {\n super(props);\n this.dropzoneRef = React.createRef();\n this.imagePrefix = this.props.oContext.imagePrefix === undefined ? './files' : this.props.oContext.imagePrefix;\n }\n\n componentDidMount(): void {\n super.componentDidMount();\n\n this.objectID = (this.props.schema.objectID || '0_userdata.0').replace(\n '%INSTANCE%',\n (this.props.oContext.instance || 0).toString(),\n );\n this.path = this.props.schema.upload;\n if (this.path) {\n if (this.path === '/') {\n this.path = '';\n } else if (!this.path.endsWith('/')) {\n this.path = `${this.path}/`;\n }\n }\n\n // read files\n void this.updateFiles().then(() => {\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n this.setState({ value });\n // subscribe on this folder\n this.props.oContext.socket\n .subscribeFiles(this.objectID, `${this.path}/*`, this.onFolderChanged)\n .catch(e => console.error(`Cannot subscribe: ${e}`));\n });\n }\n\n onFolderChanged = (_id: string, fileName: string): void => {\n if (this.path && fileName.startsWith(this.path)) {\n this.updateFiles().catch(e => console.error(`Cannot update files: ${e}`));\n }\n };\n\n componentWillUnmount(): void {\n this.props.oContext.socket\n .subscribeFiles(this.objectID, `${this.path}/*`, this.onFolderChanged)\n .catch(e => console.error(`Cannot subscribe: ${e}`));\n\n super.componentWillUnmount();\n }\n\n async updateFiles(): Promise<void> {\n const files = await this.readFiles(this.props.schema.pattern);\n await new Promise<void>(resolve => this.setState({ files }, resolve));\n }\n\n async readFolder(\n folderName: string,\n files: { name: string; size: string }[],\n filter: string,\n ): Promise<{ name: string; size: string }[]> {\n try {\n const dirFiles = await this.props.oContext.socket.readDir(\n this.objectID,\n folderName.replace(/^\\//, '') || null,\n );\n for (let f = 0; f < dirFiles.length; f++) {\n const file = dirFiles[f];\n if (file.isDir) {\n // read it\n await this.readFolder(`${folderName + file.file}/`, files, filter);\n } else {\n let ok = false;\n if (filter === '*.*' && file.file.includes('.')) {\n ok = true;\n } else if (!filter || filter === '*') {\n ok = true;\n } else if (filter === '.*' && file.file.startsWith('.')) {\n ok = true;\n } else {\n const regExp = new RegExp(`^${filter.replace(/\\./g, '\\\\.').replace(/\\*/g, '.*')}$`);\n ok = regExp.test(file.file);\n }\n\n if (ok) {\n files.push({\n name: folderName + file.file,\n size: file.stats ? Utils.formatBytes(file.stats.size) : '--',\n });\n }\n }\n }\n } catch (e) {\n console.error(`Cannot read \"${folderName}\": ${e}`);\n }\n\n return files;\n }\n\n async readFiles(pattern: string): Promise<{ name: string; size: string }[]> {\n const files: { name: string; size: string }[] = [];\n pattern = pattern || this.props.schema.pattern;\n if (!pattern) {\n pattern = '**/*.*';\n }\n let filter;\n const pos = pattern.lastIndexOf('/');\n if (pos === -1) {\n filter = pattern;\n } else {\n filter = pattern.substring(pos + 1);\n }\n\n if (pattern.startsWith('**')) {\n // read all folders\n await this.readFolder('/', files, filter);\n } else {\n const pos_ = pattern.lastIndexOf('/');\n if (pos_ === -1) {\n await this.readFolder('/', files, filter);\n } else {\n const folder = pattern.substring(0, pos_ + 1);\n await this.readFolder(folder, files, filter);\n }\n }\n\n return files;\n }\n\n onDrop(acceptedFiles: File[]): void {\n const file = acceptedFiles[0];\n const reader = new FileReader();\n const maxSize = this.props.schema.maxSize || 2 * 1024 * 1024;\n\n reader.onabort = () => console.log('file reading was aborted');\n reader.onerror = () => console.log('file reading has failed');\n reader.onload = (/* e: ProgressEvent<FileReader> */): void => {\n if (file.size > maxSize) {\n window.alert(I18n.t('File is too big. Max %sk allowed. Try use SVG.', Math.round(maxSize / 1024)));\n return;\n }\n\n this.props.oContext.socket\n .writeFile64(this.objectID, this.path + file.name, reader.result as ArrayBufferLike)\n .then(() => this.updateFiles())\n .then(() =>\n // Automatically select the new uploaded file\n this.setState({ value: this.path + file.name }, () =>\n this.onChange(this.props.attr, this.path + file.name),\n ),\n )\n .catch(e => window.alert(`Cannot upload file: ${e}`));\n };\n reader.readAsArrayBuffer(file);\n }\n\n renderDeleteDialog(): JSX.Element | null {\n if (!this.state.deleteFile) {\n return null;\n }\n return (\n <DialogConfirm\n title={I18n.t('ra_Are you sure?')}\n text={I18n.t('ra_File will be deleted')}\n ok={I18n.t('ra_Delete')}\n cancel={I18n.t('ra_Cancel')}\n onClose={isOk => {\n const deleteFile = this.state.deleteFile;\n this.setState({ deleteFile: '' }, () => {\n if (isOk) {\n this.props.oContext.socket\n .deleteFile(this.objectID, deleteFile)\n .then(() => this.updateFiles())\n .catch(e => window.alert(`Cannot delete file: ${e}`));\n }\n });\n }}\n />\n );\n }\n\n static base64ToArrayBuffer(base64: string): ArrayBufferLike {\n const binaryString = window.atob(base64);\n const len = binaryString.length;\n const bytes = new Uint8Array(len);\n for (let i = 0; i < len; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n return bytes.buffer;\n }\n\n loadFile(): Promise<{ file: string; mimeType: string }> {\n return this.props.oContext.socket.readFile(this.objectID, this.state.value, true);\n }\n\n play(): void {\n void this.loadFile().then(data => {\n if (typeof AudioContext !== 'undefined') {\n const oContext = new AudioContext();\n const buf = ConfigFileSelector.base64ToArrayBuffer(data.file);\n void oContext.decodeAudioData(\n buf,\n (buffer: AudioBuffer): void => {\n const source = oContext.createBufferSource(); // creates a sound source\n source.buffer = buffer; // tell the source which sound to play\n source.connect(oContext.destination); // connect the source to the oContext's destination (the speakers)\n source.start(0);\n },\n (err: DOMException): void => window.alert(`Cannot play: ${err.message}`),\n );\n }\n });\n }\n\n getFileIcon(item: { value: string; label: string; extension?: string }): JSX.Element | null {\n if (!item?.extension) {\n return null;\n }\n if (IMAGE_EXT.includes(item.extension)) {\n return (\n <div\n style={{\n ...styles.selectedImage,\n backgroundImage: `url(${this.imagePrefix}/${this.objectID}/${item.value})`,\n backgroundSize: 'contain',\n backgroundRepeat: 'no-repeat',\n }}\n />\n );\n }\n if (AUDIO_EXT.includes(item.extension)) {\n return <IconAudio />;\n }\n if (DOC_EXT.includes(item.extension)) {\n return <IconText />;\n }\n if (VIDEO_EXT.includes(item.extension)) {\n return <IconVideo />;\n }\n if (JS_EXT.includes(item.extension)) {\n return <IconCode />;\n }\n return null;\n }\n\n renderItem(error: string, disabled: boolean /* , defaultValue */): JSX.Element | null {\n if (!this.state.files) {\n return null;\n }\n const folders: string[] = [];\n if (!this.props.schema.withFolder) {\n this.state.files.forEach(file => {\n const pos = file.name.lastIndexOf('/');\n if (pos === -1) {\n if (!folders.includes('/')) {\n folders.push('/');\n }\n } else {\n const folder = file.name.substring(0, pos + 1);\n if (!folders.includes(folder)) {\n folders.push(folder);\n }\n }\n });\n }\n\n const selectOptions: { value: string; label: string; extension?: string }[] = this.state.files.map(file => ({\n value: file.name,\n label:\n !this.props.schema.withFolder && folders.length === 1\n ? `${file.name.substring(folders[0].length)}`\n : `${file.name}${this.props.schema.noSize ? '' : `(${file.size})`}`,\n extension: file.name.toLowerCase().split('.').pop(),\n }));\n\n if (!this.props.schema.noNone) {\n selectOptions.unshift({ label: I18n.t('ra_none'), value: '' });\n }\n\n const item: { value: string; label: string; extension?: string } = selectOptions.find(\n _item => _item.value === this.state.value,\n );\n\n let buttons = 0;\n\n if (this.props.schema.upload) {\n buttons++;\n }\n if (this.props.schema.refresh) {\n buttons++;\n }\n const play =\n this.state.value &&\n (this.state.value.endsWith('.mp3') ||\n this.state.value.endsWith('.ogg') ||\n this.state.value.endsWith('.wav'));\n // show play button\n if (play) {\n buttons++;\n }\n\n const element = (\n <div style={styles.fullWidth}>\n <FormControl\n variant=\"standard\"\n style={{ width: `calc(100% - ${buttons * 42}px)` }}\n >\n {this.props.schema.label ? <InputLabel>{this.getText(this.props.schema.label)}</InputLabel> : null}\n <Select\n variant=\"standard\"\n error={!!error}\n disabled={!!disabled}\n value={this.state.value || '_'}\n renderValue={() => (\n <>\n {this.getFileIcon(item)}\n <span>{item?.label || ''}</span>\n </>\n )}\n onChange={e => {\n this.setState({ value: e.target.value === '_' ? '' : e.target.value }, () =>\n this.onChange(this.props.attr, this.state.value),\n );\n }}\n >\n {selectOptions.map(it => (\n <MenuItem\n key={it.value}\n value={it.value}\n >\n <ListItemIcon>{this.getFileIcon(it)}</ListItemIcon>\n <ListItemText>{it.label}</ListItemText>\n {this.props.schema.delete && item.value ? (\n <IconButton\n style={styles.deleteButton}\n size=\"small\"\n onClick={() => this.setState({ deleteFile: item.value })}\n >\n <IconDelete />\n </IconButton>\n ) : null}\n </MenuItem>\n ))}\n </Select>\n {this.props.schema.help ? (\n <FormHelperText>\n {this.renderHelp(\n this.props.schema.help,\n this.props.schema.helpLink,\n this.props.schema.noTranslation,\n )}\n </FormHelperText>\n ) : null}\n </FormControl>\n {this.props.schema.refresh && (\n <IconButton onClick={() => this.updateFiles()}>\n <IconRefresh />\n </IconButton>\n )}\n {this.props.schema.upload && (\n <IconButton onClick={() => this.dropzoneRef.current?.open()}>\n <IconUpload />\n </IconButton>\n )}\n {play && (\n <IconButton\n style={{ color: '#00FF00' }}\n onClick={() => this.play()}\n >\n <IconPlay />\n </IconButton>\n )}\n </div>\n );\n\n if (!this.props.schema.upload) {\n return (\n <>\n {element}\n {this.renderDeleteDialog()}\n </>\n );\n }\n let accept: Record<string, string[]> = { '*/*': [] };\n if (this.props.schema.fileTypes === 'image') {\n accept = {\n 'image/*': ['.png', '.jpg', '.svg', '.gif', '.apng', '.avif', '.webp'],\n };\n } else if (this.props.schema.fileTypes === 'audio') {\n accept = {\n 'audio/*': ['.mp3', '.ogg', '.wav', '.mp4'],\n };\n } else if (this.props.schema.fileTypes === 'text') {\n accept = {\n 'text/plain': ['.txt'],\n };\n }\n if (this.props.schema.pattern) {\n const last = this.props.schema.pattern.split('/').pop().toLowerCase().replace(/.*\\./, '');\n if (\n last === 'png' ||\n last === 'jpg' ||\n last === 'svg' ||\n last === 'gif' ||\n last === 'apng' ||\n last === 'avif' ||\n last === 'webp'\n ) {\n accept = {\n 'image/*': ['.png', '.jpg', '.svg', '.gif', '.apng', '.avif', '.webp'],\n };\n } else if (last === 'mp3' || last === 'ogg' || last === 'wav') {\n accept = {\n 'audio/*': ['.mp3', '.ogg', '.wav', '.mp4'],\n };\n } else if (last === 'ics') {\n accept = {\n 'text/calendar': ['.ics'],\n };\n } else if (last === 'txt') {\n accept = {\n 'text/plain': ['.txt'],\n };\n } else if (last === 'pem') {\n accept = {\n 'text/plain': ['.pem'],\n };\n } else {\n accept = {\n '*/*': [`.${last}`],\n };\n }\n }\n\n return (\n <Dropzone\n ref={this.dropzoneRef}\n multiple={false}\n accept={accept}\n noKeyboard\n noClick\n maxSize={this.props.schema.maxSize || 2 * 1024 * 1024}\n onDragEnter={() => {\n this.setState({ uploadFile: 'dragging' });\n }}\n onDragLeave={() => this.setState({ uploadFile: true })}\n onDrop={(acceptedFiles, errors) => {\n this.setState({ uploadFile: false });\n if (!acceptedFiles.length) {\n window.alert(errors?.[0]?.errors?.[0]?.message || I18n.t('Cannot upload'));\n } else {\n this.onDrop(acceptedFiles);\n }\n }}\n >\n {({ getRootProps, getInputProps }) => (\n <div\n style={{\n ...styles.uploadDiv,\n ...(this.state.uploadFile === 'dragging' ? styles.uploadDivDragging : undefined),\n ...(disabled ? styles.disabledOpacity : undefined),\n }}\n {...getRootProps()}\n >\n <input {...getInputProps()} />\n {this.state.uploadFile === 'dragging' ? (\n <div\n style={{\n ...styles.uploadCenterDiv,\n ...(this.state.uploadError ? styles.error : undefined),\n }}\n >\n <div style={styles.uploadCenterTextAndIcon}>\n <UploadIcon style={styles.uploadCenterIcon} />\n <div style={styles.uploadCenterText}>\n {this.state.uploadFile === 'dragging'\n ? I18n.t('ra_Drop file here')\n : I18n.t(\n 'ra_Place your files here or click here to open the browse dialog',\n )}\n </div>\n </div>\n </div>\n ) : null}\n {element}\n {this.renderDeleteDialog()}\n </div>\n )}\n </Dropzone>\n );\n }\n}\n\nexport default ConfigFileSelector;\n","import React, { type JSX } from 'react';\n\nimport { Button, TextField, IconButton } from '@mui/material';\n\nimport {\n Article as IconText,\n Code as IconCode,\n PlayArrow as IconPlay,\n Videocam as IconVideo,\n} from '@mui/icons-material';\n\nimport { DialogSelectFile } from '@iobroker/adapter-react-v5';\n\nimport type { ConfigItemFile } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\nimport ConfigFileSelector from './ConfigFileSelector';\n\nconst styles: Record<string, React.CSSProperties> = {\n fullWidth: {\n width: '100%',\n },\n fullWidthOneButton: {\n width: 'calc(100% - 69px)',\n marginRight: 4,\n },\n fullWidthIcon: {\n width: 'calc(100% - 119px)',\n marginRight: 4,\n },\n selectedImage: {\n height: 40,\n width: 40,\n display: 'inline-block',\n marginRight: 8,\n },\n};\n\nconst IMAGE_EXT = ['jpg', 'jpeg', 'svg', 'png', 'webp', 'gif', 'apng', 'avif', 'webp'];\nconst AUDIO_EXT = ['mp3', 'ogg', 'wav', 'aac'];\nconst VIDEO_EXT = ['avi', 'mp4', 'mov'];\nconst DOC_EXT = ['txt', 'log', 'html', 'htm'];\nconst JS_EXT = ['json', 'js', 'ts'];\n\ninterface ConfigFileProps extends ConfigGenericProps {\n schema: ConfigItemFile;\n}\n\ninterface ConfigFileState extends ConfigGenericState {\n showFileBrowser?: boolean;\n}\n\nclass ConfigFile extends ConfigGeneric<ConfigFileProps, ConfigFileState> {\n private imagePrefix = '../..';\n\n componentDidMount(): void {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n this.imagePrefix = this.props.oContext.imagePrefix === undefined ? './files' : this.props.oContext.imagePrefix;\n this.setState({ value: value ?? '' });\n }\n\n static getDerivedStateFromProps(props: ConfigFileProps, state: ConfigFileState): Partial<ConfigFileState> | null {\n const value = ConfigGeneric.getValue(props.data, props.attr);\n if (\n value === null ||\n value === undefined ||\n value.toString().trim() !== (state.value || '').toString().trim()\n ) {\n return { value: value ?? '' };\n }\n return null;\n }\n\n loadFile(): Promise<{ file: string; mimeType: string } | null> {\n const pos = this.state.value.indexOf('/');\n if (pos !== -1) {\n const adapter = this.state.value.substring(0, pos);\n const path = this.state.value.substring(pos + 1);\n return this.props.oContext.socket.readFile(adapter, path, true);\n }\n\n return Promise.resolve(null);\n }\n\n play(): void {\n void this.loadFile().then(data => {\n if (typeof AudioContext !== 'undefined' && data?.file) {\n const oContext = new AudioContext();\n const buf = ConfigFileSelector.base64ToArrayBuffer(data.file);\n void oContext.decodeAudioData(\n buf,\n (buffer: AudioBuffer): void => {\n const source = oContext.createBufferSource(); // creates a sound source\n source.buffer = buffer; // tell the source which sounds to play\n source.connect(oContext.destination); // connect the source to the oContext's destination (the speakers)\n source.start(0);\n },\n (err: DOMException): void => window.alert(`Cannot play: ${err.message}`),\n );\n }\n });\n }\n\n getIcon(): JSX.Element | null {\n const extension = this.state.value.split('.').pop().toLowerCase();\n if (IMAGE_EXT.includes(extension)) {\n return (\n <div\n style={{\n ...styles.selectedImage,\n backgroundImage: `url(${this.imagePrefix}/${this.state.value})`,\n backgroundSize: 'contain',\n backgroundRepeat: 'no-repeat',\n }}\n />\n );\n }\n if (AUDIO_EXT.includes(extension)) {\n return (\n <IconButton\n style={{ color: '#00FF00' }}\n onClick={() => this.play()}\n >\n <IconPlay />\n </IconButton>\n );\n }\n if (DOC_EXT.includes(extension)) {\n return <IconText />;\n }\n if (VIDEO_EXT.includes(extension)) {\n return <IconVideo />;\n }\n if (JS_EXT.includes(extension)) {\n return <IconCode />;\n }\n return null;\n }\n\n renderFileBrowser(): JSX.Element | null {\n if (!this.state.showFileBrowser) {\n return null;\n }\n return (\n <DialogSelectFile\n imagePrefix={this.props.oContext.imagePrefix}\n socket={this.props.oContext.socket}\n selected={this.state.value}\n onClose={() => this.setState({ showFileBrowser: false })}\n onOk={_value => {\n const value = Array.isArray(_value) ? _value[0] : _value;\n this.setState({ value }, () =>\n this.onChange(this.props.attr, this.props.schema.trim === false ? value : (value || '').trim()),\n );\n }}\n selectOnlyFolders={this.props.schema.selectOnlyFolders}\n allowUpload={this.props.schema.allowUpload}\n allowDownload={this.props.schema.allowDownload}\n allowCreateFolder={this.props.schema.allowCreateFolder}\n allowView={this.props.schema.allowView}\n showToolbar={this.props.schema.showToolbar}\n limitPath={this.props.schema.limitPath}\n theme={this.props.oContext.theme}\n />\n );\n }\n\n renderItem(error: string, disabled: boolean /* , defaultValue */): JSX.Element {\n const icon = this.getIcon();\n\n return (\n <div style={styles.fullWidth}>\n {icon}\n <TextField\n variant=\"standard\"\n style={icon ? styles.fullWidthIcon : styles.fullWidthOneButton}\n value={this.state.value === null || this.state.value === undefined ? '' : this.state.value}\n error={!!error}\n disabled={!!disabled}\n slotProps={{\n htmlInput: {\n maxLength: this.props.schema.maxLength || this.props.schema.max || undefined,\n readOnly: !!this.props.schema.disableEdit,\n },\n }}\n onChange={e => {\n const value = e.target.value;\n this.setState({ value }, () =>\n this.onChange(\n this.props.attr,\n this.props.schema.trim === false ? value : (value || '').trim(),\n ),\n );\n }}\n placeholder={this.getText(this.props.schema.placeholder)}\n label={this.getText(this.props.schema.label)}\n helperText={this.renderHelp(\n this.props.schema.help,\n this.props.schema.helpLink,\n this.props.schema.noTranslation,\n )}\n />\n <Button\n disabled={disabled}\n variant=\"outlined\"\n onClick={() => this.setState({ showFileBrowser: true })}\n >\n ...\n </Button>\n {this.renderFileBrowser()}\n </div>\n );\n }\n}\n\nexport default ConfigFile;\n","import React, { type JSX } from 'react';\n\nimport { InputLabel, MenuItem, FormHelperText, FormControl, Select } from '@mui/material';\n\nimport { TextWithIcon, I18n } from '@iobroker/adapter-react-v5';\n\nimport type { ConfigItemFunc } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\n\ninterface ConfigFuncProps extends ConfigGenericProps {\n schema: ConfigItemFunc;\n}\n\ninterface ConfigFuncState extends ConfigGenericState {\n selectOptions?: { value: string; label: string; obj?: ioBroker.EnumObject }[];\n}\n\nclass ConfigFunc extends ConfigGeneric<ConfigFuncProps, ConfigFuncState> {\n componentDidMount(): void {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n\n void this.props.oContext.socket.getEnums('functions').then(enums => {\n const selectOptions: { value: string; label: string }[] = Object.keys(enums).map(id => ({\n value: this.props.schema.short ? id.replace('enum.functions.', '') : id,\n label: this.getText(enums[id].common.name),\n obj: enums[id],\n }));\n\n if (this.props.schema.allowDeactivate !== false) {\n selectOptions.unshift({ label: I18n.t(ConfigGeneric.NONE_LABEL), value: ConfigGeneric.NONE_VALUE });\n }\n\n this.setState({ value, selectOptions });\n });\n }\n\n renderItem(error: string, disabled: boolean /* , defaultValue */): JSX.Element | null {\n if (!this.state.selectOptions) {\n return null;\n }\n\n const item = this.state.selectOptions.find(it => it.value === this.state.value);\n\n return (\n <FormControl\n variant=\"standard\"\n fullWidth\n >\n {this.props.schema.label ? <InputLabel>{this.getText(this.props.schema.label)}</InputLabel> : null}\n <Select\n variant=\"standard\"\n error={!!error}\n disabled={!!disabled}\n value={this.state.value || '_'}\n renderValue={() =>\n item ? (\n item.obj ? (\n <TextWithIcon\n value={item.obj}\n themeType={this.props.oContext.themeType}\n lang={I18n.getLanguage()}\n />\n ) : (\n item.label\n )\n ) : (\n ''\n )\n }\n onChange={e => {\n this.setState({ value: e.target.value === '_' ? '' : e.target.value }, () =>\n this.onChange(this.props.attr, this.state.value),\n );\n }}\n >\n {this.state.selectOptions.map(it => (\n <MenuItem\n key={it.value}\n value={it.value}\n style={it.value === ConfigGeneric.DIFFERENT_VALUE ? { opacity: 0.5 } : {}}\n >\n {it.obj ? (\n <TextWithIcon\n value={it.obj}\n themeType={this.props.oContext.themeType}\n lang={I18n.getLanguage()}\n />\n ) : (\n it.label\n )}\n </MenuItem>\n ))}\n </Select>\n {this.props.schema.help ? (\n <FormHelperText>\n {this.renderHelp(\n this.props.schema.help,\n this.props.schema.helpLink,\n this.props.schema.noTranslation,\n )}\n </FormHelperText>\n ) : null}\n </FormControl>\n );\n }\n}\n\nexport default ConfigFunc;\n","import React, { type JSX } from 'react';\n\nimport { InputLabel, TextField, FormHelperText, MenuItem, FormControl, Select } from '@mui/material';\n\nimport { I18n } from '@iobroker/adapter-react-v5';\n\nimport type { ConfigItemIP } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\n\ninterface ConfigIPProps extends ConfigGenericProps {\n schema: ConfigItemIP;\n}\n\ninterface ConfigIPState extends ConfigGenericState {\n ips?: { name: string; address: string; family: string; internal?: boolean }[];\n}\n\nclass ConfigIP extends ConfigGeneric<ConfigIPProps, ConfigIPState> {\n componentDidMount(): void {\n super.componentDidMount();\n this.props.oContext.socket\n .getHostByIp(this.props.common.host)\n .then(ips => {\n // [{name, address, family}]\n if (!this.props.schema.listenOnAllPorts) {\n ips = ips.filter(item => item.address !== '0.0.0.0' && item.address !== '::');\n }\n if (this.props.schema.onlyIp4) {\n ips = ips.filter(item => item.family === 'ipv4');\n } else if (this.props.schema.onlyIp6) {\n ips = ips.filter(item => item.family === 'ipv6');\n }\n if (this.props.schema.noInternal) {\n ips = ips.filter(item => !item.internal);\n }\n ips.forEach(item => {\n if (item.address === '0.0.0.0') {\n item.name = `[IPv4] 0.0.0.0 - ${I18n.t('ra_Listen on all IPs')}`;\n } else if (item.address === '::') {\n item.name = `[IPv6] :: - ${I18n.t('ra_Listen on all IPs')}`;\n }\n });\n this.setState({ ips });\n })\n .catch(e => console.error(e));\n }\n\n renderItem(error: string, disabled: boolean /* , defaultValue */): JSX.Element {\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n const item = this.state.ips?.find(it => it.address === value);\n\n return (\n <FormControl\n fullWidth\n variant=\"standard\"\n >\n {this.state.ips && this.props.schema.label ? (\n <InputLabel>{this.getText(this.props.schema.label)}</InputLabel>\n ) : null}\n {!this.state.ips ? (\n <TextField\n fullWidth\n variant=\"standard\"\n error={!!error}\n disabled={!!disabled}\n value={value}\n onChange={e => this.onChange(this.props.attr, e.target.value)}\n label={this.getText(this.props.schema.label)}\n />\n ) : (\n <Select\n variant=\"standard\"\n error={!!error}\n disabled={!!disabled}\n value={value}\n renderValue={val => item?.name || val}\n onChange={e => this.onChange(this.props.attr, e.target.value)}\n >\n {this.state.ips?.map((it, i) => (\n <MenuItem\n key={i}\n value={it.address}\n >\n {it.name}\n </MenuItem>\n ))}\n </Select>\n )}\n {this.props.schema.help ? (\n <FormHelperText>\n {this.renderHelp(\n this.props.schema.help,\n this.props.schema.helpLink,\n this.props.schema.noTranslation,\n )}\n </FormHelperText>\n ) : null}\n </FormControl>\n );\n }\n}\n\nexport default ConfigIP;\n","import React, { type JSX } from 'react';\n\nimport type { ConfigItemImageSendTo } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\n\ninterface ConfigImageSendToProps extends ConfigGenericProps {\n schema: ConfigItemImageSendTo;\n}\n\ninterface ConfigImageSendToState extends ConfigGenericState {\n image?: string;\n}\n\nclass ConfigImageSendTo extends ConfigGeneric<ConfigImageSendToProps, ConfigImageSendToState> {\n private initialized = false;\n\n private localContext: string | undefined;\n\n componentDidMount(): void {\n super.componentDidMount();\n\n this.askInstance();\n }\n\n askInstance(): void {\n if (this.props.alive) {\n let data = this.props.schema.data;\n if (data === undefined && this.props.schema.jsonData) {\n const dataStr: string = this.getPattern(this.props.schema.jsonData, null, true);\n if (dataStr) {\n try {\n data = JSON.parse(dataStr);\n } catch {\n console.error(`Cannot parse json data: ${JSON.stringify(data)}`);\n }\n }\n }\n\n if (data === undefined) {\n data = null;\n }\n\n void this.props.oContext.socket\n .sendTo(\n `${this.props.oContext.adapterName}.${this.props.oContext.instance}`,\n this.props.schema.command || 'send',\n data,\n )\n .then(image => this.setState({ image: image || '' }));\n }\n }\n\n getContext(): string {\n const localContext: Record<string, any> = {};\n\n if (Array.isArray(this.props.schema.alsoDependsOn)) {\n this.props.schema.alsoDependsOn.forEach(\n attr => (localContext[attr] = ConfigGeneric.getValue(this.props.data, attr)),\n );\n }\n\n return JSON.stringify(localContext);\n }\n\n renderItem(/* error, disabled, defaultValue */): JSX.Element {\n if (this.props.alive) {\n const localContext = this.getContext();\n if (localContext !== this.localContext || !this.initialized) {\n this.localContext = localContext;\n setTimeout(() => this.askInstance(), this.initialized ? 300 : 50);\n this.initialized = true;\n }\n }\n\n if (this.state.image === undefined) {\n return null;\n }\n\n return (\n <img\n alt=\"dynamic content\"\n src={this.state.image}\n style={{ width: this.props.schema.width || '100%', height: this.props.schema.height }}\n />\n );\n }\n}\n\nexport default ConfigImageSendTo;\n","import React, { type JSX } from 'react';\n\nimport { InputLabel, FormHelperText, FormControl } from '@mui/material';\n\nimport { UploadImage } from '@iobroker/adapter-react-v5';\n\nimport type { ConfigItemImageUpload } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\n\ninterface ConfigImageUploadProps extends ConfigGenericProps {\n schema: ConfigItemImageUpload;\n}\n\ninterface ConfigImageUploadState extends ConfigGenericState {\n image?: string;\n oContext?: string;\n}\n\nclass ConfigImageUpload extends ConfigGeneric<ConfigImageUploadProps, ConfigImageUploadState> {\n private index: number;\n\n constructor(props: ConfigImageUploadProps) {\n super(props);\n this.index = Date.now();\n }\n\n componentDidMount(): void {\n super.componentDidMount();\n\n if (this.props.schema.base64) {\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n this.setState({ value });\n } else {\n void this.props.oContext.socket\n .fileExists(`${this.props.oContext.adapterName}.${this.props.oContext.instance}`, this.props.attr)\n .then(exist => exist && this.loadImage());\n }\n }\n\n _getUrl(update?: boolean): string {\n if (update) {\n this.index = Date.now();\n }\n let url = `files/${this.props.oContext.adapterName}.${this.props.oContext.instance}/${this.props.attr}?t=${this.index}`;\n if (window.location.port === '3000') {\n url = `${window.location.protocol}//${window.location.hostname}:8081/${url}`;\n }\n\n return url;\n }\n\n loadImage(): void {\n void fetch(this._getUrl())\n .then(res => res.blob())\n .then(blob => {\n const reader = new FileReader();\n reader.onload = () => {\n this.setState({ value: reader.result });\n };\n reader.readAsDataURL(blob);\n })\n .catch(e => console.error(e));\n }\n\n renderItem(error: string, disabled: boolean /* , defaultValue */): JSX.Element {\n return (\n <FormControl\n fullWidth\n variant=\"standard\"\n >\n {this.props.schema.label ? (\n <InputLabel shrink>{this.getText(this.props.schema.label)}</InputLabel>\n ) : null}\n <UploadImage\n error={!!error}\n disabled={disabled}\n accept={this.props.schema.accept}\n crop={this.props.schema.crop}\n maxSize={this.props.schema.maxSize || 256 * 1024}\n icon={this.state.value || undefined}\n removeIconFunc={() =>\n this.setState({ value: null }, () => {\n if (this.props.schema.base64) {\n const mayBePromise = this.onChange(this.props.attr, this.state.value);\n if (mayBePromise instanceof Promise) {\n void mayBePromise.catch(e => console.error(`Cannot set value: ${e}`));\n }\n } else {\n // delete file to /instance/attr\n void this.props.oContext.socket\n .deleteFile(`${this.props.oContext.adapterName}.${this.props.oContext.instance}`, this.props.attr)\n .catch(e => console.error(e));\n }\n })\n }\n onChange={base64 =>\n this.setState({ value: base64 }, () => {\n if (this.props.schema.base64) {\n const mayBePromise = this.onChange(this.props.attr, this.state.value);\n if (mayBePromise instanceof Promise) {\n void mayBePromise.catch(e => console.error(`Cannot set value: ${e}`));\n }\n } else if (base64.startsWith('data')) {\n base64 = base64.split(',')[1];\n }\n // upload file to /instance/attr\n this.props.oContext.socket\n .writeFile64(\n `${this.props.oContext.adapterName}.${this.props.oContext.instance}`,\n this.props.attr,\n base64,\n )\n .catch(e => console.error(e));\n })\n }\n />\n {this.props.schema.help ? (\n <FormHelperText>\n {this.renderHelp(\n this.props.schema.help,\n this.props.schema.helpLink,\n this.props.schema.noTranslation,\n )}\n </FormHelperText>\n ) : null}\n </FormControl>\n );\n }\n}\n\nexport default ConfigImageUpload;\n","import React, { type JSX } from 'react';\n\nimport { InputLabel, MenuItem, FormHelperText, FormControl, Select } from '@mui/material';\n\nimport { I18n } from '@iobroker/adapter-react-v5';\nimport type { ConfigItemInstanceSelect } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\n\nconst styles: Record<string, React.CSSProperties> = {\n icon: {\n width: 20,\n height: 20,\n marginRight: 4,\n },\n};\n\ninterface ConfigInstanceSelectProps extends ConfigGenericProps {\n schema: ConfigItemInstanceSelect;\n}\n\ninterface ConfigInstanceSelectState extends ConfigGenericState {\n selectOptions?: { label: string; value: string; icon?: string }[];\n}\n\nclass ConfigInstanceSelect extends ConfigGeneric<ConfigInstanceSelectProps, ConfigInstanceSelectState> {\n componentDidMount(): void {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n\n let adapter = this.props.schema.adapter;\n if (adapter === '_dataSources') {\n adapter = undefined;\n }\n\n void this.props.oContext.socket\n .getAdapterInstances(adapter, true)\n .then(async instances => {\n if (this.props.schema.adapter === '_dataSources') {\n // get only \"data-sources\", like history, sql, influx\n instances = instances.filter(instance => instance?.common?.getHistory);\n } else if (this.props.schema.adapter) {\n instances = instances.filter(instance =>\n instance?._id.startsWith(`system.adapter.${this.props.schema.adapter}.`),\n );\n } else if (this.props.schema.adapters && Array.isArray(this.props.schema.adapters)) {\n instances = instances.filter(instance =>\n this.props.schema.adapters.includes(instance?.common?.name),\n );\n }\n\n if (this.props.schema.onlyEnabled) {\n instances = instances.filter(instance => instance?.common?.enabled);\n }\n\n const selectOptions: { label: string; value: string; icon?: string }[] = instances.map(instance => ({\n value: this.props.schema.long\n ? instance._id\n : this.props.schema.short\n ? instance._id.split('.').pop()\n : instance._id.replace(/^system\\.adapter\\./, ''),\n label: `${instance.common.name} [${instance._id.replace(/^system\\.adapter\\./, '')}]`,\n icon: `adapter/${instance.common.name}/${instance.common.icon}`,\n }));\n\n selectOptions.sort((a, b) => {\n if (a.value > b.value) {\n return 1;\n }\n if (a.value < b.value) {\n return -1;\n }\n return 0;\n });\n\n if (this.props.schema.allowDeactivate !== false) {\n selectOptions.unshift({ label: I18n.t(ConfigGeneric.NONE_LABEL), value: ConfigGeneric.NONE_VALUE });\n }\n if (this.props.schema.all) {\n selectOptions.unshift({ label: I18n.t('sch_all'), value: '*' });\n }\n\n this.setState({ value: value || '', selectOptions });\n\n await this.props.oContext.socket.subscribeObject(\n `system.adapter.${adapter ? `${adapter}.` : ''}*`,\n this.onInstancesUpdate,\n );\n })\n .catch(e => console.error(`Cannot get instances: ${e}`));\n }\n\n componentWillUnmount(): void {\n void this.props.oContext.socket.unsubscribeObject('system.adapter.*', this.onInstancesUpdate).then(() => {});\n super.componentWillUnmount();\n }\n\n onInstancesUpdate = (id: string, obj?: ioBroker.Object | null): void => {\n if (!id.match(/^system\\.adapter\\.[-_a-z\\d]+\\.\\d+$/)) {\n return;\n }\n const _id = this.props.schema.long\n ? id\n : this.props.schema.short\n ? id.split('.').pop()\n : id.replace(/^system\\.adapter\\./, '');\n const index = this.state.selectOptions.findIndex(item => item.value === _id);\n if (!obj) {\n // deleted\n if (index !== -1) {\n const selectOptions: { label: string; value: string; icon?: string }[] = JSON.parse(\n JSON.stringify(this.state.selectOptions),\n );\n\n const newState: Partial<ConfigInstanceSelectState> = {};\n if (this.state.value === selectOptions[index].value) {\n newState.value = ConfigGeneric.NONE_VALUE;\n }\n selectOptions.splice(index, 1);\n newState.selectOptions = selectOptions;\n\n this.setState(newState as ConfigInstanceSelectState);\n }\n } else {\n if (this.props.schema.adapter === '_dataSources' && (!obj.common || !obj.common.getHistory)) {\n return;\n }\n\n if (index === -1) {\n const selectOptions: { label: string; value: string; icon?: string }[] = JSON.parse(\n JSON.stringify(this.state.selectOptions),\n );\n const name =\n typeof obj.common.name === 'object'\n ? obj.common.name[I18n.getLanguage()] || obj.common.name.en\n : obj.common.name;\n selectOptions.push({\n value: this.props.schema.long\n ? obj._id\n : this.props.schema.short\n ? obj._id.split('.').pop()\n : obj._id.replace(/^system\\.adapter\\./, ''),\n label: `${name} [${obj._id.replace(/^system\\.adapter\\./, '')}]`,\n icon: `adapter/${name}/${obj.common.icon}`,\n });\n selectOptions.sort((a, b) => (a.label > b.label ? 1 : a.label < b.label ? -1 : 0));\n this.setState({ selectOptions });\n }\n }\n };\n\n renderItem(error: string, disabled: boolean /* , defaultValue */): JSX.Element {\n if (!this.state.selectOptions) {\n return null;\n }\n\n const item = this.state.selectOptions?.find(it => it.value === this.state.value);\n\n return (\n <FormControl\n fullWidth\n key={this.props.attr}\n variant=\"standard\"\n >\n {this.props.schema.label ? (\n <InputLabel shrink>{this.getText(this.props.schema.label)}</InputLabel>\n ) : null}\n <Select\n variant=\"standard\"\n error={!!error}\n displayEmpty\n disabled={!!disabled}\n value={this.state.value}\n renderValue={() => (\n <span style={{ display: 'flex' }}>\n {item?.icon ? (\n <img\n src={`./${item.icon}`}\n alt={item.value}\n style={styles.icon}\n />\n ) : null}\n {this.getText(item?.label, true)}\n </span>\n )}\n onChange={e =>\n this.setState({ value: e.target.value }, () => this.onChange(this.props.attr, this.state.value))\n }\n >\n {this.state.selectOptions.map(it => (\n <MenuItem\n key={it.value}\n value={it.value}\n style={it.value === ConfigGeneric.NONE_VALUE ? { opacity: 0.5 } : {}}\n >\n {it.icon ? (\n <img\n src={`./${it.icon}`}\n alt={it.value}\n style={styles.icon}\n />\n ) : null}\n {this.getText(it.label, true)}\n </MenuItem>\n ))}\n </Select>\n {this.props.schema.help ? (\n <FormHelperText>\n {this.renderHelp(\n this.props.schema.help,\n this.props.schema.helpLink,\n this.props.schema.noTranslation,\n )}\n </FormHelperText>\n ) : null}\n </FormControl>\n );\n }\n}\n\nexport default ConfigInstanceSelect;\n","import React, { type JSX } from 'react';\n\nimport { InputLabel, TextField, FormHelperText, MenuItem, FormControl, Select } from '@mui/material';\n\nimport type { ConfigItemInterface } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\n\ninterface NetworkInterfaceBase {\n address: string;\n netmask: string;\n mac: string;\n internal: boolean;\n cidr: string | null;\n}\ninterface NetworkInterfaceInfoIPv4 extends NetworkInterfaceBase {\n family: 'IPv4';\n scopeid?: undefined;\n}\ninterface NetworkInterfaceInfoIPv6 extends NetworkInterfaceBase {\n family: 'IPv6';\n scopeid: number;\n}\ntype NetworkInterfaceInfo = NetworkInterfaceInfoIPv4 | NetworkInterfaceInfoIPv6;\n\nconst styles: Record<string, React.CSSProperties> = {\n address: {\n fontSize: 'smaller',\n opacity: 0.5,\n marginLeft: 8,\n },\n};\n\ninterface ConfigInterfaceProps extends ConfigGenericProps {\n schema: ConfigItemInterface;\n}\n\ninterface ConfigInterfaceState extends ConfigGenericState {\n interfaces?: { value: string; address: string }[];\n}\n\nclass ConfigInterface extends ConfigGeneric<ConfigInterfaceProps, ConfigInterfaceState> {\n componentDidMount(): void {\n super.componentDidMount();\n this.props.oContext.socket\n .getObject(`system.host.${this.props.common.host}`)\n .then(obj => {\n const interfaces: { value: string; address: string }[] = [];\n if (obj?.native?.hardware?.networkInterfaces) {\n const list = obj.native.hardware.networkInterfaces;\n Object.keys(list).forEach(inter => {\n if (this.props.schema.ignoreInternal && !list[inter].find(_ip => !_ip.internal)) {\n return;\n }\n if (\n this.props.schema.ignoreLoopback &&\n list[inter].find(_ip => _ip.address === '127.0.0.1' || _ip.address === '::1')\n ) {\n return;\n }\n\n // find ipv4 address\n let ip: NetworkInterfaceInfo = list[inter].find(_ip => _ip.family === 'IPv4');\n ip = ip || list[inter].find(_ip => _ip.family === 'IPv6');\n interfaces.push({ value: inter, address: ip.address });\n });\n }\n\n this.setState({ interfaces });\n })\n .catch(e => window.alert(`Cannot read interfaces: ${e}`));\n }\n\n renderItem(error: string, disabled: boolean /* , defaultValue */): JSX.Element {\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n const item = this.state.interfaces?.find(it => it.value === value);\n\n return (\n <FormControl\n fullWidth\n variant=\"standard\"\n >\n {this.state.interfaces?.length && this.props.schema.label ? (\n <InputLabel>{this.getText(this.props.schema.label)}</InputLabel>\n ) : null}\n {!this.state.interfaces?.length ? (\n <TextField\n fullWidth\n variant=\"standard\"\n error={!!error}\n disabled={!!disabled}\n value={value}\n onChange={e => this.onChange(this.props.attr, e.target.value)}\n label={this.getText(this.props.schema.label)}\n />\n ) : (\n <Select\n variant=\"standard\"\n error={!!error}\n disabled={!!disabled}\n value={value}\n renderValue={val => {\n if (item) {\n return (\n <span>\n {item.value}\n <span style={styles.address}>{item.address}</span>\n </span>\n );\n }\n return val;\n }}\n onChange={e => this.onChange(this.props.attr, e.target.value)}\n >\n {this.state.interfaces.map((it, i) => (\n <MenuItem\n key={i}\n value={it.value}\n >\n <span>\n {it.value}\n <span style={styles.address}>{it.address}</span>\n </span>\n </MenuItem>\n ))}\n </Select>\n )}\n {this.props.schema.help ? (\n <FormHelperText>\n {this.renderHelp(\n this.props.schema.help,\n this.props.schema.helpLink,\n this.props.schema.noTranslation,\n )}\n </FormHelperText>\n ) : null}\n </FormControl>\n );\n }\n}\n\nexport default ConfigInterface;\n","import React, { type JSX, useEffect, useState } from 'react';\n\nimport { Dialog, DialogActions, DialogContent, DialogTitle, IconButton, TextField, Button } from '@mui/material';\n\nimport { Check as CheckIcon, Close as CloseIcon, Language as LanguageIcon } from '@mui/icons-material';\n\nimport { I18n } from '@iobroker/adapter-react-v5';\n\nconst styles: Record<string, React.CSSProperties> = {\n modalDialog: {\n minWidth: 400,\n maxWidth: 800,\n },\n overflowHidden: {\n display: 'flex',\n overflow: 'hidden',\n },\n titleIcon: {\n marginRight: 5,\n },\n content: {\n fontSize: 16,\n },\n languageButton: {\n position: 'absolute',\n right: 8,\n top: 8,\n },\n languageButtonActive: {\n color: 'primary.main',\n },\n};\n\ninterface CustomModalProps {\n toggleTranslation?: () => void;\n noTranslation?: boolean;\n title: string;\n fullWidth?: boolean;\n help?: string;\n maxWidth?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | false;\n progress?: boolean;\n icon?: any;\n applyDisabled?: boolean;\n applyButton?: boolean;\n onClose: () => void;\n children: JSX.Element | JSX.Element[] | string | string[] | undefined | null;\n titleButtonApply?: string;\n titleButtonClose?: string;\n onApply: (value: string) => void;\n textInput?: boolean;\n defaultValue?: string;\n overflowHidden?: boolean;\n}\n\nconst CustomModal = ({\n toggleTranslation,\n noTranslation,\n title,\n fullWidth,\n help,\n maxWidth,\n progress,\n icon,\n applyDisabled,\n applyButton,\n onClose,\n children,\n titleButtonApply,\n titleButtonClose,\n onApply,\n textInput,\n defaultValue,\n overflowHidden,\n}: CustomModalProps): JSX.Element => {\n const [value, setValue] = useState(defaultValue);\n useEffect(() => {\n setValue(defaultValue);\n }, [defaultValue]);\n\n let Icon = null;\n\n if (icon) {\n Icon = icon;\n }\n\n return (\n <Dialog\n open={!0}\n maxWidth={maxWidth || 'md'}\n fullWidth={!!fullWidth}\n disableEscapeKeyDown={false}\n onClose={onClose}\n sx={{ '& .MuiPaper-root': styles.modalDialog /* paper: classes.background */ }}\n >\n {title && (\n <DialogTitle>\n {icon ? <Icon style={styles.titleIcon} /> : null}\n {title}\n {I18n.getLanguage() !== 'en' && toggleTranslation ? (\n <IconButton\n size=\"large\"\n style={{ ...styles.languageButton, ...(noTranslation ? styles.languageButtonActive : {}) }}\n onClick={() => toggleTranslation()}\n title={I18n.t('Disable/Enable translation')}\n >\n <LanguageIcon />\n </IconButton>\n ) : null}\n </DialogTitle>\n )}\n <DialogContent\n sx={{ ...(overflowHidden ? styles.overflowHidden : {}), ...styles.content }}\n style={{ paddingTop: 8 }}\n >\n {textInput && (\n <TextField\n // className={className}\n autoComplete=\"off\"\n fullWidth\n autoFocus\n variant=\"outlined\"\n size=\"medium\"\n // rows={10}\n multiline\n value={value}\n onChange={e => setValue(e.target.value)}\n // customValue\n />\n )}\n {children}\n {help ? <div>{help}</div> : null}\n </DialogContent>\n <DialogActions>\n {applyButton !== false && (\n <Button\n startIcon={<CheckIcon />}\n disabled={progress || (applyDisabled && defaultValue === value)}\n onClick={() => onApply && onApply(textInput ? value : '')}\n variant=\"contained\"\n color=\"primary\"\n >\n {I18n.t(titleButtonApply || 'Ok')}\n </Button>\n )}\n <Button\n color=\"grey\"\n onClick={() => onClose && onClose()}\n disabled={progress}\n variant=\"contained\"\n startIcon={<CloseIcon />}\n >\n {I18n.t(titleButtonClose || 'Cancel')}\n </Button>\n </DialogActions>\n </Dialog>\n );\n};\n\nexport default CustomModal;\n","import React, { type JSX } from 'react';\n\nimport AceEditor from 'react-ace';\nimport 'ace-builds/src-min-noconflict/mode-json';\nimport 'ace-builds/src-min-noconflict/worker-json';\nimport 'ace-builds/src-min-noconflict/theme-clouds_midnight';\nimport 'ace-builds/src-min-noconflict/theme-chrome';\nimport 'ace-builds/src-min-noconflict/ext-language_tools';\n\nconst styles: Record<string, React.CSSProperties> = {\n jsonError: {\n border: '1px solid red',\n minHeight: 200,\n },\n jsonNoError: {\n border: '1px solid #00000000',\n minHeight: 200,\n },\n};\n\ninterface EditorProps {\n fontSize?: number;\n value?: string;\n defaultValue?: string;\n mode?: 'json' | 'css' | 'html';\n name: string;\n onChange: (newValue: string) => void;\n themeType: string;\n editValueMode?: boolean; // flag that indicates the \"value edit mode\"\n error?: boolean;\n}\n\nfunction Editor(props: EditorProps): JSX.Element {\n return (\n <AceEditor\n style={props.error === true ? styles.jsonError : props.error === false ? styles.jsonNoError : undefined}\n mode={props.mode || 'json'}\n width=\"100%\"\n height=\"100%\"\n showPrintMargin={props.editValueMode}\n showGutter={props.editValueMode}\n highlightActiveLine={props.editValueMode}\n defaultValue={props.defaultValue}\n theme={props.themeType === 'dark' ? 'clouds_midnight' : 'chrome'}\n value={props.value}\n readOnly={!props.onChange}\n onChange={newValue => props.onChange(newValue)}\n name={props.name || 'UNIQUE_ID_OF_DIV1'}\n fontSize={props.fontSize || 14}\n setOptions={{\n enableBasicAutocompletion: true,\n enableLiveAutocompletion: true,\n enableSnippets: true,\n\n showLineNumbers: props.editValueMode,\n tabSize: props.editValueMode ? 2 : undefined,\n }}\n editorProps={{ $blockScrolling: true }}\n />\n );\n}\n\nexport default Editor;\n","import React, { type JSX } from 'react';\n\nimport { FormHelperText, FormControl, Button } from '@mui/material';\n\nimport { I18n } from '@iobroker/adapter-react-v5';\nimport type { ConfigItemJsonEditor } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\nimport CustomModal from './wrapper/Components/CustomModal';\nimport Editor from './wrapper/Components/Editor';\n\nconst styles: Record<string, React.CSSProperties> = {\n fullWidth: {\n width: '100%',\n },\n flex: {\n display: 'flex',\n },\n button: {\n height: 48,\n // marginLeft: 4,\n minWidth: 48,\n },\n wrapper: {\n width: 'calc(100vw - 40px)',\n height: 'calc(100vh - 188px)',\n },\n};\n\ninterface ConfigJsonEditorProps extends ConfigGenericProps {\n schema: ConfigItemJsonEditor;\n}\n\ninterface ConfigJsonEditorState extends ConfigGenericState {\n initialized?: boolean;\n showSelectId?: boolean;\n jsonError?: boolean;\n}\n\nclass ConfigJsonEditor extends ConfigGeneric<ConfigJsonEditorProps, ConfigJsonEditorState> {\n componentDidMount(): void {\n super.componentDidMount();\n const { data, attr } = this.props;\n const value = ConfigGeneric.getValue(data, attr) || {};\n this.setState({ value, initialized: true, jsonError: this.validateJson(value) });\n }\n\n validateJson(value: string | null | undefined): boolean {\n let jsonError = false;\n if (this.props.schema.validateJson !== false) {\n if (value || !this.props.schema.allowEmpty) {\n try {\n JSON.parse(value);\n } catch (err: unknown) {\n console.log('Error in JSON', err);\n jsonError = true;\n }\n }\n }\n\n return jsonError;\n }\n\n renderItem(_error: string, disabled: boolean /* , defaultValue */): JSX.Element | null {\n if (!this.state.initialized) {\n return null;\n }\n\n const { schema, data, attr } = this.props;\n const { value, showSelectId } = this.state;\n\n return (\n <FormControl\n fullWidth\n variant=\"standard\"\n >\n <div style={styles.flex}>\n <Button\n color=\"grey\"\n disabled={disabled}\n style={styles.button}\n size=\"small\"\n variant=\"outlined\"\n onClick={() => this.setState({ showSelectId: true })}\n >\n {I18n.t('ra_JSON editor')}\n </Button>\n </div>\n {showSelectId ? (\n <CustomModal\n title={this.getText(schema.label)}\n overflowHidden\n onClose={() =>\n this.setState({ showSelectId: false, value: ConfigGeneric.getValue(data, attr) || {} })\n }\n onApply={() => this.setState({ showSelectId: false }, () => this.onChange(attr, value))}\n >\n <div style={{ ...styles.wrapper, ...(this.state.jsonError ? {} : undefined) }}>\n <Editor\n value={typeof value === 'object' ? JSON.stringify(value) : value}\n onChange={newValue =>\n this.setState({ value: newValue, jsonError: this.validateJson(newValue) })\n }\n name=\"ConfigJsonEditor\"\n themeType={this.props.oContext.themeType}\n />\n </div>\n </CustomModal>\n ) : null}\n {schema.help || this.state.jsonError ? (\n <FormHelperText>\n {this.state.jsonError\n ? I18n.t('ra_Invalid JSON')\n : this.renderHelp(\n this.props.schema.help,\n this.props.schema.helpLink,\n this.props.schema.noTranslation,\n )}\n </FormHelperText>\n ) : null}\n </FormControl>\n );\n }\n}\n\nexport default ConfigJsonEditor;\n","import React, { type JSX } from 'react';\n\nimport { InputLabel, MenuItem, FormHelperText, FormControl, Select } from '@mui/material';\n\nimport { I18n } from '@iobroker/adapter-react-v5';\n\nimport type { ConfigItemLanguage } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\n\nconst LANGUAGES = [\n {\n value: 'en',\n label: 'English',\n },\n {\n value: 'de',\n label: 'Deutsch',\n },\n {\n value: 'ru',\n label: 'русский',\n },\n {\n value: 'pt',\n label: 'Portugues',\n },\n {\n value: 'nl',\n label: 'Nederlands',\n },\n {\n value: 'fr',\n label: 'français',\n },\n {\n value: 'it',\n label: 'Italiano',\n },\n {\n value: 'es',\n label: 'Espanol',\n },\n {\n value: 'pl',\n label: 'Polski',\n },\n {\n value: 'uk',\n label: 'Український',\n },\n {\n value: 'zh-cn',\n label: '简体中文',\n },\n] as const;\n\ninterface LanguageSelectOption {\n /** Value to save */\n value: string;\n /** Label to show */\n label: string;\n}\n\ninterface ConfigLanguageProps extends ConfigGenericProps {\n schema: ConfigItemLanguage;\n}\n\ninterface ConfigLanguageState extends ConfigGenericState {\n selectOptions: LanguageSelectOption[];\n}\n\nclass ConfigLanguage extends ConfigGeneric<ConfigLanguageProps, ConfigLanguageState> {\n componentDidMount(): void {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n const languages: LanguageSelectOption[] = [...LANGUAGES];\n if (this.props.schema.system) {\n languages.unshift({ value: '', label: I18n.t('ra_System language') });\n } else {\n languages.unshift({ value: '', label: I18n.t('ra_none') });\n }\n\n this.setState({\n value: this.props.schema.system ? value || '' : value || I18n.getLanguage(),\n selectOptions: languages,\n });\n }\n\n renderItem(error: unknown, disabled: boolean): JSX.Element | null {\n if (!this.state.selectOptions) {\n return null;\n }\n\n const item = this.state.selectOptions?.find(\n it => it.value === this.state.value || (!it.value && !this.state.value),\n );\n\n return (\n <FormControl\n fullWidth\n variant=\"standard\"\n >\n {this.props.schema.label ? <InputLabel>{this.getText(this.props.schema.label)}</InputLabel> : null}\n <Select\n variant=\"standard\"\n error={!!error}\n disabled={disabled}\n value={this.state.value || '_'}\n renderValue={() => this.getText(item?.label, this.props.schema.noTranslation)}\n onChange={e => {\n let { value } = e.target;\n if (value === '_') {\n value = '';\n }\n\n this.setState({ value }, () => {\n const mayBePromise = this.onChange(this.props.attr, value);\n if (mayBePromise instanceof Promise) {\n void mayBePromise.catch(err => console.error(err));\n }\n if (this.props.schema.changeGuiLanguage) {\n if (value) {\n if (value === I18n.getLanguage()) {\n return;\n }\n I18n.setLanguage(value);\n if (this.props.oContext.changeLanguage) {\n this.props.oContext.changeLanguage();\n }\n } else {\n void this.props.oContext.socket\n .getSystemConfig()\n .then((systemConfig: ioBroker.SystemConfigObject) => {\n if (systemConfig.common.language === I18n.getLanguage()) {\n return;\n }\n if (systemConfig.common.language) {\n I18n.setLanguage(systemConfig.common.language);\n if (this.props.oContext.changeLanguage) {\n this.props.oContext.changeLanguage();\n }\n }\n })\n .catch(e => console.error(`Cannot read system config: ${e}`));\n }\n }\n });\n }}\n >\n {this.state.selectOptions?.map(it => (\n <MenuItem\n key={it.value}\n value={it.value}\n >\n {it.label}\n </MenuItem>\n ))}\n </Select>\n {this.props.schema.help ? (\n <FormHelperText>\n {this.renderHelp(\n this.props.schema.help,\n this.props.schema.helpLink,\n this.props.schema.noTranslation,\n )}\n </FormHelperText>\n ) : null}\n </FormControl>\n );\n }\n}\n\nexport default ConfigLanguage;\n","import React, { type JSX } from 'react';\n\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n LinearProgress,\n FormControlLabel,\n Checkbox,\n} from '@mui/material';\n\nimport { Check, Close } from '@mui/icons-material';\n\nimport { I18n } from '@iobroker/adapter-react-v5';\n\nimport type { ConfigItemLicense } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\n\ninterface ConfigLicenseProps extends ConfigGenericProps {\n schema: ConfigItemLicense;\n}\n\ninterface ConfigLicenseState extends ConfigGenericState {\n showLicenseDialog?: boolean;\n licenseChecked?: boolean;\n license?: string;\n loading?: boolean;\n error?: boolean;\n scrolledDown?: boolean;\n}\n\nclass ConfigLicense extends ConfigGeneric<ConfigLicenseProps, ConfigLicenseState> {\n private readonly scrollRef: React.RefObject<HTMLDivElement | HTMLPreElement>;\n\n constructor(props: ConfigLicenseProps) {\n super(props);\n this.scrollRef = React.createRef();\n }\n\n scrolledDown(): boolean {\n if (!this.scrollRef.current) {\n return false;\n }\n return (\n this.scrollRef.current.offsetHeight + this.scrollRef.current.scrollTop >=\n this.scrollRef.current.scrollHeight\n );\n }\n\n componentDidMount(): void {\n super.componentDidMount();\n if (!ConfigGeneric.getValue(this.props.data, this.props.attr)) {\n if (this.props.schema.licenseUrl) {\n this.setState({ showLicenseDialog: true, loading: true, scrolledDown: false });\n\n fetch(this.props.schema.licenseUrl)\n .then(res => res.text())\n .then(text => this.setState({ license: text, loading: false }))\n .catch(e =>\n this.setState({\n license: e.toString(),\n loading: false,\n error: true,\n scrolledDown: false,\n }),\n );\n } else {\n this.setState({ showLicenseDialog: true, scrolledDown: false });\n }\n setTimeout(() => {\n // install scroll handler\n if (this.scrollRef.current) {\n const scrolledDown = this.scrolledDown();\n if (!scrolledDown) {\n this.scrollRef.current.addEventListener('scroll', () => {\n if (!this.state.scrolledDown && this.scrolledDown()) {\n this.setState({ scrolledDown: true });\n }\n });\n } else {\n this.setState({ scrolledDown: true });\n }\n }\n }, 1000);\n }\n }\n\n renderItem(_error: string, disabled: boolean /*, defaultValue */): JSX.Element | null {\n if (!this.state.showLicenseDialog) {\n return null;\n }\n\n return (\n <Dialog\n maxWidth=\"lg\"\n open={!0}\n onClose={(e, reason) => {\n if (reason !== 'escapeKeyDown' && reason !== 'backdropClick') {\n this.setState({ showLicenseDialog: false });\n }\n }}\n >\n <DialogTitle>\n {this.props.schema.title ? I18n.t(this.props.schema.title) : I18n.t('ra_License agreement')}\n </DialogTitle>\n <DialogContent>\n {this.props.schema.licenseUrl ? (\n <>\n {this.state.loading ? <LinearProgress /> : null}\n <pre\n ref={this.scrollRef as React.RefObject<HTMLPreElement>}\n style={{\n width: '100%',\n height: '100%',\n overflowY: 'auto',\n fontSize: 14,\n }}\n >\n {this.state.license}\n </pre>\n </>\n ) : null}\n {!this.props.schema.licenseUrl && this.props.schema.texts ? (\n <div\n ref={this.scrollRef as React.RefObject<HTMLDivElement>}\n style={{\n width: '100%',\n height: '100%',\n overflowY: 'auto',\n fontSize: 14,\n }}\n >\n {this.props.schema.texts.map((text, i) =>\n this.props.schema.noTranslation ? <p key={i}>{text}</p> : <p key={i}>{I18n.t(text)}</p>,\n )}\n </div>\n ) : null}\n </DialogContent>\n <DialogActions>\n {this.props.schema.checkBox ? (\n <FormControlLabel\n control={\n <Checkbox\n disabled={disabled}\n checked={!!this.state.licenseChecked}\n onClick={() => this.setState({ licenseChecked: !this.state.licenseChecked })}\n />\n }\n label={I18n.t(this.props.schema.checkBox)}\n />\n ) : null}\n <Button\n disabled={\n disabled ||\n this.state.loading ||\n this.state.error ||\n (this.props.schema.checkBox && !this.state.licenseChecked) ||\n !this.state.scrolledDown\n }\n onClick={() => {\n this.setState({ showLicenseDialog: false });\n const mayBePromise = this.onChange(this.props.attr, true);\n if (mayBePromise instanceof Promise) {\n mayBePromise.catch(e => console.error(`Cannot set value: ${e}`));\n }\n }}\n color=\"primary\"\n variant=\"contained\"\n startIcon={<Check />}\n >\n {this.props.schema.agreeText\n ? I18n.t(this.props.schema.agreeText)\n : I18n.t('ra_Accept license')}\n </Button>\n <Button\n onClick={() => {\n this.setState({ showLicenseDialog: false });\n setTimeout(() => this.setState({ showLicenseDialog: true }), 2000);\n }}\n color=\"grey\"\n variant=\"contained\"\n startIcon={<Close />}\n >\n {I18n.t('ra_Close')}\n </Button>\n </DialogActions>\n </Dialog>\n );\n }\n}\n\nexport default ConfigLicense;\n","import React, { type JSX } from 'react';\n\nimport { Autocomplete, TextField, FormControl } from '@mui/material';\n\nimport { I18n } from '@iobroker/adapter-react-v5';\n\nimport type { ConfigItemNumber } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\n\nconst styles: Record<string, React.CSSProperties> = {\n indeterminate: {\n opacity: 0.5,\n },\n control: {\n flexDirection: 'row',\n width: '100%',\n },\n};\n\ninterface ConfigNumberProps extends ConfigGenericProps {\n schema: ConfigItemNumber;\n}\n\ninterface ConfigNumberState extends ConfigGenericState {\n _value: string;\n oldValue: string | null;\n}\n\nclass ConfigNumber extends ConfigGeneric<ConfigNumberProps, ConfigNumberState> {\n private updateTimeout?: ReturnType<typeof setTimeout>;\n\n componentDidMount(): void {\n super.componentDidMount();\n let _value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n\n if (_value === null || _value === undefined) {\n _value = '';\n }\n\n if (Array.isArray(_value) && this.props.oContext.multiEdit) {\n _value = ConfigGeneric.DIFFERENT_VALUE;\n this.setState({ _value, oldValue: _value });\n return;\n }\n\n this.setState({ _value: _value.toString(), oldValue: _value.toString() });\n }\n\n static getDerivedStateFromProps(\n props: ConfigNumberProps,\n state: ConfigNumberState,\n ): Partial<ConfigNumberState> | null {\n if (\n (props.schema.min !== undefined && props.schema.min < 0) ||\n (props.schema.max !== undefined && props.schema.max < 0)\n ) {\n return null;\n }\n const _value = ConfigGeneric.getValue(props.data, props.attr);\n\n if (props.oContext.multiEdit && state._value === ConfigGeneric.DIFFERENT_VALUE) {\n return { _value: ConfigGeneric.DIFFERENT_VALUE };\n }\n\n if (\n _value === null ||\n _value === undefined ||\n state.oldValue === null ||\n state.oldValue === undefined ||\n (_value.toString() !== parseFloat(state._value).toString() &&\n _value.toString() !== state.oldValue.toString())\n ) {\n return { _value };\n }\n\n return null;\n }\n\n checkValue(value: string): string | null {\n if (value === null || value === undefined) {\n return null;\n }\n value = value.toString().trim();\n const f = value === '' ? 0 : parseFloat(value);\n\n if (value !== '' && Number.isNaN(f)) {\n return 'ra_Not a number';\n }\n\n if (value !== '' && window.isFinite(f)) {\n if (this.props.schema.min !== undefined && f < this.props.schema.min) {\n return 'ra_Too small';\n }\n if (this.props.schema.max !== undefined && f > this.props.schema.max) {\n return 'ra_Too big';\n }\n if (value === '' || value === '-' || Number.isNaN(f)) {\n return 'ra_Not a number';\n }\n\n return null;\n }\n\n return 'ra_Not a number';\n }\n\n renderItem(error: unknown, disabled: boolean): JSX.Element | null {\n const isIndeterminate = Array.isArray(this.state._value) || this.state._value === ConfigGeneric.DIFFERENT_VALUE;\n\n if (this.state.oldValue !== null && this.state.oldValue !== undefined) {\n if (this.updateTimeout) {\n clearTimeout(this.updateTimeout);\n }\n this.updateTimeout = setTimeout(() => {\n this.updateTimeout = undefined;\n this.setState({ oldValue: null });\n }, 30);\n } else if (this.updateTimeout) {\n clearTimeout(this.updateTimeout);\n this.updateTimeout = undefined;\n }\n\n if (isIndeterminate) {\n const autoCompleteOptions = ConfigGeneric.getValue(this.props.data, this.props.attr);\n const arr =\n autoCompleteOptions\n ?.filter((a: number | null | undefined) => a || a === 0)\n .map((item: number) => ({ label: item.toString(), value: item })) || [];\n\n arr.unshift({ label: I18n.t(ConfigGeneric.DIFFERENT_LABEL), value: ConfigGeneric.DIFFERENT_VALUE });\n\n return (\n <Autocomplete\n style={styles.indeterminate}\n fullWidth\n freeSolo\n value={arr[0]}\n // @ts-expect-error needs investigation if this really has no effect\n getOptionSelected={(option, value) => option.label === value.label}\n onChange={(_, value: (typeof arr)[number]) => {\n const mayBePromise = this.onChange(this.props.attr, value?.value, () => {\n this.setState({ _value: value?.value, oldValue: this.state._value });\n });\n if (mayBePromise instanceof Promise) {\n mayBePromise.catch(e => console.error(e));\n }\n }}\n options={arr}\n getOptionLabel={(option: (typeof arr)[number]) => option.label}\n renderInput={params => (\n <TextField\n {...params}\n label={this.getText(this.props.schema.label)}\n variant=\"standard\"\n slotProps={{\n htmlInput: {\n ...params.inputProps,\n readOnly: this.props.schema.readOnly || false,\n },\n input: {\n endAdornment: this.props.schema.unit\n ? this.getText(this.props.schema.unit, this.props.schema.noTranslation)\n : undefined,\n },\n }}\n error={!!error}\n placeholder={this.getText(this.props.schema.placeholder)}\n helperText={this.renderHelp(\n this.props.schema.help,\n this.props.schema.helpLink,\n this.props.schema.noTranslation,\n )}\n disabled={!!disabled}\n />\n )}\n />\n );\n }\n if (!error && this.state._value !== null && this.state._value !== undefined && this.state._value) {\n error = this.checkValue(this.state._value);\n if (error) {\n error = I18n.t(error as string);\n }\n }\n\n return (\n <FormControl\n variant=\"standard\"\n style={styles.control}\n >\n <TextField\n variant=\"standard\"\n type=\"number\"\n fullWidth\n slotProps={{\n htmlInput: {\n min: this.props.schema.min,\n max: this.props.schema.max,\n step: this.props.schema.step,\n readOnly: this.props.schema.readOnly || false,\n },\n input: {\n endAdornment: this.props.schema.unit\n ? this.getText(this.props.schema.unit, this.props.schema.noTranslation)\n : undefined,\n },\n }}\n value={this.state._value === null || this.state._value === undefined ? '' : this.state._value}\n error={!!error}\n disabled={!!disabled}\n onChange={e => {\n const _value = e.target.value; // value is always a string and it is validly formatted\n const _error = this.checkValue(_value);\n if (_error) {\n this.onError(this.props.attr, I18n.t(_error));\n } else {\n this.onError(this.props.attr); // clear error\n }\n\n this.setState({ _value, oldValue: this.state._value }, () =>\n this.onChange(this.props.attr, parseFloat(_value)),\n );\n }}\n placeholder={this.getText(this.props.schema.placeholder)}\n label={this.getText(this.props.schema.label)}\n helperText={\n error && typeof error === 'string'\n ? error\n : this.renderHelp(\n this.props.schema.help,\n this.props.schema.helpLink,\n this.props.schema.noTranslation,\n )\n }\n />\n </FormControl>\n );\n }\n}\n\nexport default ConfigNumber;\n","import React, { type JSX } from 'react';\n\nimport { InputLabel, FormControl, Button, TextField } from '@mui/material';\n\nimport { DialogSelectID } from '@iobroker/adapter-react-v5';\n\nimport type { ConfigItemObjectId } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\n\nconst styles: Record<string, React.CSSProperties> = {\n flex: {\n display: 'flex',\n },\n button: {\n height: 48,\n marginLeft: 4,\n minWidth: 48,\n },\n};\n\ninterface ConfigObjectIdProps extends ConfigGenericProps {\n schema: ConfigItemObjectId;\n}\n\ninterface ConfigObjectIdState extends ConfigGenericState {\n showSelectId?: boolean;\n initialized?: boolean;\n}\n\nclass ConfigObjectId extends ConfigGeneric<ConfigObjectIdProps, ConfigObjectIdState> {\n componentDidMount(): void {\n super.componentDidMount();\n const { data, attr } = this.props;\n const value = ConfigGeneric.getValue(data, attr) || '';\n this.setState({ value, initialized: true });\n }\n\n renderItem(error: string, disabled: boolean /* , defaultValue */): JSX.Element {\n if (!this.state.initialized) {\n return null;\n }\n const socket = this.props.oContext.socket;\n const { schema, attr } = this.props;\n const { value, showSelectId } = this.state;\n\n return (\n <FormControl\n fullWidth\n variant=\"standard\"\n >\n {schema.label ? <InputLabel shrink>{this.getText(schema.label)}</InputLabel> : null}\n <div style={styles.flex}>\n <TextField\n variant=\"standard\"\n fullWidth\n value={value}\n error={!!error}\n disabled={disabled}\n placeholder={this.getText(schema.placeholder)}\n label={this.getText(schema.label)}\n helperText={this.renderHelp(schema.help, schema.helpLink, schema.noTranslation)}\n onChange={e => {\n const value_ = e.target.value;\n this.setState({ value: value_ }, () => this.onChange(attr, value_));\n }}\n />\n <Button\n color=\"grey\"\n disabled={disabled}\n style={styles.button}\n size=\"small\"\n variant=\"outlined\"\n onClick={() => this.setState({ showSelectId: true })}\n >\n ...\n </Button>\n </div>\n {showSelectId ? (\n <DialogSelectID\n imagePrefix={\n this.props.oContext.imagePrefix === undefined ? '../..' : this.props.oContext.imagePrefix\n }\n dialogName={`admin.${this.props.oContext.adapterName}`}\n filterFunc={schema.filterFunc}\n themeType={this.props.oContext.themeType}\n theme={this.props.oContext.theme}\n types={schema.types ? (Array.isArray(schema.types) ? schema.types : [schema.types]) : undefined}\n customFilter={schema.customFilter}\n filters={schema.filters}\n socket={socket}\n selected={value}\n root={schema.root}\n onClose={() => this.setState({ showSelectId: false })}\n onOk={value_ =>\n this.setState({ showSelectId: false, value: value_ }, () => this.onChange(attr, value_))\n }\n />\n ) : null}\n </FormControl>\n );\n }\n}\n\nexport default ConfigObjectId;\n","import React, { type JSX } from 'react';\n\nimport { TextField, IconButton, InputAdornment } from '@mui/material';\n\nimport { Visibility, VisibilityOff } from '@mui/icons-material';\n\nimport { I18n } from '@iobroker/adapter-react-v5';\n\nimport type { ConfigItemPassword } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\n\nconst styles: Record<string, React.CSSProperties> = {\n fullWidth: {\n width: '100%',\n display: 'inline-block',\n },\n halfWidth1: {\n width: 'calc(50% - 5px)',\n display: 'inline-block',\n marginRight: 8,\n },\n halfWidth2: {\n width: 'calc(50% - 5px)',\n display: 'inline-block',\n },\n};\n\nconst PASSWORD_PLACEHOLDER = '____ppp____';\n\ninterface ConfigPasswordProps extends ConfigGenericProps {\n schema: ConfigItemPassword;\n}\n\ninterface ConfigPasswordState extends ConfigGenericState {\n _notEqual?: boolean;\n _repeat?: string;\n _visible?: boolean;\n}\n\nclass ConfigPassword extends ConfigGeneric<ConfigPasswordProps, ConfigPasswordState> {\n componentDidMount(): void {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n this.setState({\n _repeat: value ? PASSWORD_PLACEHOLDER : '',\n _visible: false,\n value: value ? PASSWORD_PLACEHOLDER : '',\n _notEqual: false,\n });\n }\n\n onChangePassword(password?: string, repeatPassword?: string): void {\n if (password === undefined) {\n password = this.state.value;\n }\n if (repeatPassword === undefined) {\n repeatPassword = this.state._repeat;\n }\n const _notEqual = !!this.props.schema.repeat && repeatPassword !== password;\n this.setState({ value: password, _repeat: repeatPassword, _notEqual }, () => {\n if (_notEqual) {\n this.onError(this.props.attr, I18n.t('ra_Passwords are not equal!'));\n } else {\n this.onError(this.props.attr); // clear error\n const mayBePromise = this.onChange(this.props.attr, password);\n if (mayBePromise instanceof Promise) {\n mayBePromise.catch(e => this.onError(this.props.attr, e));\n }\n }\n });\n }\n\n renderItem(error: string, disabled: boolean /* , defaultValue */): JSX.Element {\n if (this.state._notEqual === undefined) {\n return null;\n }\n\n const password = (\n <TextField\n variant=\"standard\"\n fullWidth\n type={this.state._visible && this.state.value !== PASSWORD_PLACEHOLDER ? 'text' : 'password'}\n value={this.state.value}\n error={!!error || this.state._notEqual}\n disabled={!!disabled}\n onChange={e => this.onChangePassword(e.target.value)}\n label={this.getText(this.props.schema.label)}\n slotProps={{\n input: {\n autoComplete: 'new-password',\n endAdornment:\n this.state.value &&\n this.state.value !== PASSWORD_PLACEHOLDER &&\n this.props.schema.visible &&\n !disabled &&\n !this.props.schema.readOnly ? (\n <InputAdornment position=\"end\">\n <IconButton\n size=\"large\"\n tabIndex={-1}\n onClick={e => {\n e.preventDefault();\n e.stopPropagation();\n this.setState({ _visible: !this.state._visible });\n }}\n edge=\"end\"\n >\n {this.state._visible ? <VisibilityOff /> : <Visibility />}\n </IconButton>\n </InputAdornment>\n ) : undefined,\n },\n htmlInput: {\n autoComplete: 'new-password',\n form: { autoComplete: 'off' },\n maxLength: this.props.schema.maxLength || this.props.schema.max || undefined,\n readOnly: this.props.schema.readOnly || false,\n },\n }}\n helperText={\n this.state._notEqual\n ? I18n.t('ra_Passwords are not equal!')\n : this.renderHelp(\n this.props.schema.help,\n this.props.schema.helpLink,\n this.props.schema.noTranslation,\n )\n }\n />\n );\n\n if (this.props.schema.repeat && !this.props.schema.readOnly) {\n const passwordRepeat = !this.state._visible ? (\n <TextField\n variant=\"standard\"\n fullWidth\n type=\"password\"\n value={this.state._repeat}\n error={!!error || this.state._notEqual}\n disabled={!!disabled}\n onChange={e => this.onChangePassword(undefined, e.target.value)}\n label={`${this.getText(this.props.schema.label)} (${I18n.t('ra_repeat')})`}\n slotProps={{\n input: {\n autoComplete: 'new-password',\n },\n htmlInput: {\n autoComplete: 'new-password',\n form: { autoComplete: 'off' },\n maxLength: this.props.schema.maxLength || this.props.schema.max || undefined,\n },\n }}\n helperText={\n this.state._notEqual\n ? I18n.t('ra_Passwords are not equal!')\n : this.renderHelp(\n this.props.schema.help,\n this.props.schema.helpLink,\n this.props.schema.noTranslation,\n )\n }\n />\n ) : null;\n\n return (\n <div style={styles.fullWidth}>\n <div style={styles.halfWidth1}>{password}</div>\n <div style={styles.halfWidth2}>{passwordRepeat}</div>\n </div>\n );\n }\n return password;\n }\n}\n\nexport default ConfigPassword;\n","import React, { type JSX } from 'react';\n\nimport { IconButton, TextField } from '@mui/material';\n\nimport { I18n, IconCopy, Utils } from '@iobroker/adapter-react-v5';\nimport type { ConfigItemPattern } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\n\ninterface ConfigPatternProps extends ConfigGenericProps {\n schema: ConfigItemPattern;\n}\n\nclass ConfigPattern extends ConfigGeneric<ConfigPatternProps, ConfigGenericState> {\n renderItem(_error: unknown, disabled: boolean): JSX.Element | null {\n return (\n <TextField\n variant=\"standard\"\n fullWidth\n disabled={!!disabled}\n slotProps={{\n input: {\n endAdornment: this.props.schema.copyToClipboard ? (\n <IconButton\n size=\"small\"\n onClick={() => {\n Utils.copyToClipboard(\n this.getPattern(\n this.props.schema.pattern,\n null,\n this.props.schema.noTranslation,\n ),\n );\n window.alert(I18n.t('ra_Copied'));\n }}\n >\n <IconCopy />\n </IconButton>\n ) : undefined,\n },\n }}\n value={this.getPattern(this.props.schema.pattern, null, true)}\n label={this.getText(this.props.schema.label)}\n helperText={this.renderHelp(\n this.props.schema.help,\n this.props.schema.helpLink,\n this.props.schema.noTranslation,\n )}\n />\n );\n }\n}\n\nexport default ConfigPattern;\n","import React, { type JSX } from 'react';\n\nimport { TextField } from '@mui/material';\n\nimport { I18n } from '@iobroker/adapter-react-v5';\n\nimport type { ConfigItemPort } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\n\nconst styles: Record<string, any> = {\n warning: {\n '& .Mui-error': {\n color: 'orange',\n },\n },\n};\n\ninterface Port {\n name: string;\n port: number;\n bind: string;\n v6bind: string;\n enabled: boolean;\n}\n\ninterface ConfigPortProps extends ConfigGenericProps {\n schema: ConfigItemPort;\n}\n\ninterface ConfigPortState extends ConfigGenericState {\n _value: string;\n oldValue: string | null;\n ports: Port[];\n}\n\nclass ConfigPort extends ConfigGeneric<ConfigPortProps, ConfigPortState> {\n private updateTimeout?: ReturnType<typeof setTimeout>;\n\n async componentDidMount(): Promise<void> {\n super.componentDidMount();\n let _value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n if (_value === null || _value === undefined) {\n _value = '';\n }\n this.setState({ _value: _value.toString(), oldValue: _value.toString() });\n\n // read all instances\n const instances: ioBroker.InstanceObject[] = await this.props.oContext.socket.getAdapterInstances();\n\n const ownId = `system.adapter.${this.props.oContext.adapterName}.${this.props.oContext.instance}`;\n const instanceObj: ioBroker.InstanceObject = (await this.props.oContext.socket.getObject(\n ownId,\n )) as ioBroker.InstanceObject;\n const ownHostname = instanceObj?.common.host;\n\n const ports: Port[] = [];\n instances.forEach(instance => {\n // ignore own instance and instances on another host\n if (!instance || instance._id === ownId || instance.common.host !== ownHostname) {\n return;\n }\n // check port only if bind attribute is present too\n if (!instance.native?.bind) {\n return;\n }\n\n // if let's encrypt is enabled and update is enabled, then add port to check\n if (instance?.native && instance.native.secure && instance.native.leEnabled && instance.native.leUpdate) {\n const port = parseInt(instance.native.leCheckPort || instance.native.lePort, 10);\n if (port) {\n ports.push({\n name: `${instance._id.replace('system.adapter.', '')} (LE)`,\n port,\n v6bind: instance.native.bind.includes(':') ? instance.native.bind : instance.native.v6bind,\n bind: instance.native.bind,\n enabled: !!instance.common?.enabled,\n });\n }\n }\n\n const port = parseInt(instance?.native?.port, 10);\n if (port) {\n ports.push({\n name: instance._id.replace('system.adapter.', ''),\n bind: instance.native.bind,\n v6bind: instance.native.bind.includes(':') ? instance.native.bind : instance.native.v6bind,\n port,\n enabled: !!instance.common?.enabled,\n });\n }\n });\n this.setState({ ports });\n }\n\n static getDerivedStateFromProps(props: ConfigPortProps, state: ConfigPortState): Partial<ConfigPortState> | null {\n const _value = ConfigGeneric.getValue(props.data, props.attr);\n if (\n _value === null ||\n _value === undefined ||\n state.oldValue === null ||\n state.oldValue === undefined ||\n (_value.toString() !== parseInt(state._value, 10).toString() &&\n _value.toString() !== state.oldValue.toString())\n ) {\n return { _value };\n }\n\n return null;\n }\n\n checkValue(value: string): string | null {\n if (value === null || value === undefined) {\n return null;\n }\n\n const min = this.props.schema.min === undefined ? 20 : this.props.schema.min;\n const max = this.props.schema.max || 0xffff;\n\n value = value.toString().trim();\n const f = value === '' ? 0 : parseInt(value, 10);\n\n if (value !== '' && Number.isNaN(f)) {\n return 'ra_Not a number';\n }\n\n if (value !== '' && window.isFinite(Number(value))) {\n if (f < min) {\n return 'ra_Too small';\n }\n if (f > max) {\n return 'ra_Too big';\n }\n if (value === '' || value === '-' || Number.isNaN(f)) {\n return 'ra_Not a number';\n }\n\n return null;\n }\n\n return 'ra_Not a number';\n }\n\n renderItem(error: unknown, disabled: boolean): JSX.Element {\n if (this.state.oldValue !== null && this.state.oldValue !== undefined) {\n if (this.updateTimeout) {\n clearTimeout(this.updateTimeout);\n }\n this.updateTimeout = setTimeout(() => {\n this.updateTimeout = undefined;\n this.setState({ oldValue: null });\n }, 30);\n } else if (this.updateTimeout) {\n clearTimeout(this.updateTimeout);\n this.updateTimeout = undefined;\n }\n\n const min = this.props.schema.min === undefined ? 20 : this.props.schema.min;\n const max = this.props.schema.max || 0xffff;\n\n let warning;\n if (this.state.ports) {\n const num = parseInt(this.state._value, 10);\n\n if (num) {\n // filter ports only with the same bind address\n // todo: IPv6 (v6bind or '::/0')\n const ports = this.state.ports.filter(\n item =>\n !this.props.data.bind ||\n this.props.data.bind === item.bind ||\n this.props.data.bind === '0.0.0.0' ||\n item.bind === '0.0.0.0',\n );\n\n let idx = ports.findIndex(item => item.port === num && item.enabled);\n if (idx !== -1) {\n error = I18n.t('ra_Port is already used by %s', this.state.ports[idx].name);\n } else {\n idx = ports.findIndex(item => item.port === num && !item.enabled);\n if (idx !== -1) {\n warning = true;\n error = I18n.t('ra_Port could be used by %s', this.state.ports[idx].name);\n }\n }\n }\n }\n\n if (!error && this.state._value !== null && this.state._value !== undefined) {\n error = this.checkValue(this.state._value);\n if (typeof error === 'string') {\n error = I18n.t(error);\n }\n }\n\n return (\n <TextField\n variant=\"standard\"\n type=\"number\"\n fullWidth\n slotProps={{\n htmlInput: {\n min,\n max,\n readOnly: this.props.schema.readOnly || false,\n },\n }}\n value={this.state._value === null || this.state._value === undefined ? '' : this.state._value}\n error={!!error}\n disabled={!!disabled}\n sx={warning ? styles.warning : undefined}\n onChange={e => {\n const _value = Number(e.target.value.toString().replace(/[^0-9]/g, '')).toString();\n const _error = this.checkValue(_value);\n if (_error) {\n this.onError(this.props.attr, I18n.t(_error));\n } else {\n this.onError(this.props.attr); // clear error\n }\n\n this.setState({ _value, oldValue: this.state._value }, () => {\n if (_value.trim() === parseInt(_value, 10).toString()) {\n const maybePromise = this.onChange(this.props.attr, parseInt(_value, 10) || 0);\n if (maybePromise instanceof Promise) {\n maybePromise.catch(err => {\n console.error(`Cannot set value for ${this.props.attr}: ${err}`);\n });\n }\n }\n });\n }}\n placeholder={this.getText(this.props.schema.placeholder)}\n label={this.getText(this.props.schema.label)}\n helperText={\n error && typeof error === 'string'\n ? error\n : this.renderHelp(\n this.props.schema.help,\n this.props.schema.helpLink,\n this.props.schema.noTranslation,\n )\n }\n />\n );\n }\n}\n\nexport default ConfigPort;\n","import React, { type JSX } from 'react';\n\nimport { InputLabel, MenuItem, FormHelperText, FormControl, Select } from '@mui/material';\n\nimport { TextWithIcon, I18n } from '@iobroker/adapter-react-v5';\n\nimport type { ConfigItemRoom } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\n\ninterface ConfigRoomProps extends ConfigGenericProps {\n schema: ConfigItemRoom;\n}\n\ninterface ConfigRoomState extends ConfigGenericState {\n selectOptions?: { value: string; label: string; obj?: ioBroker.EnumObject }[];\n}\n\nclass ConfigRoom extends ConfigGeneric<ConfigRoomProps, ConfigRoomState> {\n componentDidMount(): void {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n\n void this.props.oContext.socket\n .getEnums('rooms')\n .then(enums => {\n const selectOptions: { value: string; label: string; obj?: ioBroker.EnumObject }[] = Object.keys(\n enums,\n ).map(id => ({\n value: this.props.schema.short ? id.replace('enum.rooms.', '') : id,\n label: this.getText(enums[id].common.name),\n obj: enums[id],\n }));\n\n if (this.props.schema.allowDeactivate !== false) {\n selectOptions.unshift({ label: I18n.t(ConfigGeneric.NONE_LABEL), value: ConfigGeneric.NONE_VALUE });\n }\n\n this.setState({ value, selectOptions });\n })\n .catch(e => console.error(`Cannot get enums: ${e}`));\n }\n\n renderItem(error: string, disabled: boolean /* , defaultValue */): JSX.Element {\n if (!this.state.selectOptions) {\n return null;\n }\n\n const item = this.state.selectOptions.find(it => it.value === this.state.value);\n\n return (\n <FormControl\n variant=\"standard\"\n fullWidth\n >\n {this.props.schema.label ? <InputLabel>{this.getText(this.props.schema.label)}</InputLabel> : null}\n <Select\n variant=\"standard\"\n error={!!error}\n disabled={!!disabled}\n value={this.state.value || '_'}\n renderValue={() =>\n item ? (\n item.obj ? (\n <TextWithIcon\n value={item.obj}\n themeType={this.props.oContext.themeType}\n lang={I18n.getLanguage()}\n />\n ) : (\n item.label\n )\n ) : (\n ''\n )\n }\n onChange={e => {\n this.setState({ value: e.target.value === '_' ? '' : e.target.value }, () =>\n this.onChange(this.props.attr, this.state.value),\n );\n }}\n >\n {this.state.selectOptions.map(it => (\n <MenuItem\n key={it.value}\n value={it.value}\n style={it.value === ConfigGeneric.DIFFERENT_VALUE ? { opacity: 0.5 } : {}}\n >\n {it.obj ? (\n <TextWithIcon\n value={it.obj}\n themeType={this.props.oContext.themeType}\n lang={I18n.getLanguage()}\n />\n ) : (\n it.label\n )}\n </MenuItem>\n ))}\n </Select>\n {this.props.schema.help ? (\n <FormHelperText>\n {this.renderHelp(\n this.props.schema.help,\n this.props.schema.helpLink,\n this.props.schema.noTranslation,\n )}\n </FormHelperText>\n ) : null}\n </FormControl>\n );\n }\n}\n\nexport default ConfigRoom;\n","import React, { type JSX } from 'react';\n\nimport { InputLabel, FormHelperText, FormControl, Select, MenuItem, ListSubheader } from '@mui/material';\n\nimport { I18n } from '@iobroker/adapter-react-v5';\n\nimport type { ConfigItemSelect, ConfigItemSelectOption } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\n\nconst styles: Record<string, any> = {\n fullWidth: {\n width: '100%',\n },\n noMargin: {\n '&>div': {\n marginTop: 0,\n },\n },\n};\n\ninterface ConfigInstanceSelectProps extends ConfigGenericProps {\n schema: ConfigItemSelect;\n}\n\ninterface ConfigInstanceSelectState extends ConfigGenericState {\n selectOptions?: { label: string; value: number | string; group?: boolean; hidden?: string | boolean }[];\n}\n\nclass ConfigSelect extends ConfigGeneric<ConfigInstanceSelectProps, ConfigInstanceSelectState> {\n private initialValue: string | string[] = '';\n\n componentDidMount(): void {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n\n const selectOptions: {\n label: string;\n value: number | string;\n group?: boolean;\n hidden?: string | boolean;\n }[] = [];\n\n (this.props.schema.options || []).forEach(item => {\n // if optgroup\n const groupItem: {\n items: ConfigItemSelectOption[];\n label: ioBroker.StringOrTranslated;\n value?: number | string;\n hidden?: string | boolean;\n } = item as {\n items: ConfigItemSelectOption[];\n label: ioBroker.StringOrTranslated;\n value?: number | string;\n hidden?: string | boolean;\n };\n if (Array.isArray(groupItem.items)) {\n selectOptions.push({ label: this.getText(item.label), value: item.value, group: true });\n groupItem.items.forEach(it =>\n selectOptions.push({\n label: this.getText(it.label),\n value: it.value,\n hidden: it.hidden,\n }),\n );\n } else {\n selectOptions.push({\n label: this.getText(item.label),\n value: item.value,\n hidden: item.hidden,\n });\n }\n });\n\n // if __different\n if (Array.isArray(value)) {\n this.initialValue = [...value];\n selectOptions.unshift({\n label: I18n.t(ConfigGeneric.DIFFERENT_LABEL),\n value: ConfigGeneric.DIFFERENT_VALUE,\n });\n this.setState({ value: ConfigGeneric.DIFFERENT_VALUE, selectOptions });\n } else {\n this.setState({ value, selectOptions });\n }\n }\n\n renderItem(error: string, disabled: boolean /* , defaultValue */): JSX.Element {\n if (!this.state.selectOptions) {\n return null;\n }\n\n const selectOptions = (this.state.selectOptions || []).filter(item => {\n // if optgroup or no hidden function\n if (!item.hidden) {\n return true;\n }\n\n if (this.props.custom) {\n return !this.executeCustom(\n item.hidden,\n this.props.data,\n this.props.customObj,\n this.props.oContext.instanceObj,\n this.props.arrayIndex,\n this.props.globalData,\n );\n }\n return !this.execute(\n item.hidden,\n this.props.schema.default,\n this.props.data,\n this.props.arrayIndex,\n this.props.globalData,\n );\n });\n\n const item = selectOptions.find(it => it.value == this.state.value); // let \"==\" be and not ===\n\n return (\n <FormControl\n variant=\"standard\"\n fullWidth\n sx={this.props.table !== undefined && styles.noMargin}\n id={`jsonSelect_${this.props.attr}_${this.props.index || this.props.index === 0 ? this.props.index : ''}`}\n >\n {this.props.schema.label ? <InputLabel>{this.getText(this.props.schema.label)}</InputLabel> : null}\n <Select\n variant=\"standard\"\n error={!!error}\n disabled={!!disabled}\n value={this.state.value || '_'}\n renderValue={() => this.getText(item?.label, this.props.schema.noTranslation)}\n onChange={e => {\n this.setState({ value: e.target.value === '_' ? '' : e.target.value }, () => {\n let mayBePromise: void | Promise<void>;\n if (this.state.value === ConfigGeneric.DIFFERENT_VALUE) {\n mayBePromise = this.onChange(this.props.attr, this.initialValue);\n } else {\n mayBePromise = this.onChange(this.props.attr, this.state.value);\n }\n if (mayBePromise instanceof Promise) {\n mayBePromise.catch(e => console.error(e));\n }\n });\n }}\n >\n {selectOptions.map((it, i) => {\n if (it.group) {\n return (\n <ListSubheader key={i}>\n {this.getText(it.label, this.props.schema.noTranslation)}\n </ListSubheader>\n );\n }\n return (\n <MenuItem\n key={i}\n value={it.value}\n style={it.value === ConfigGeneric.DIFFERENT_VALUE ? { opacity: 0.5 } : {}}\n >\n {this.getText(it.label, this.props.schema.noTranslation)}\n </MenuItem>\n );\n })}\n </Select>\n {this.props.schema.help ? (\n <FormHelperText>\n {this.renderHelp(\n this.props.schema.help,\n this.props.schema.helpLink,\n this.props.schema.noTranslation,\n )}\n </FormHelperText>\n ) : null}\n </FormControl>\n );\n }\n}\n\nexport default ConfigSelect;\n","import React, { type JSX } from 'react';\n\nimport {\n InputLabel,\n MenuItem,\n FormHelperText,\n FormControl,\n Select,\n TextField,\n CircularProgress,\n ListItemText,\n Checkbox,\n Chip,\n Box,\n InputAdornment,\n IconButton,\n} from '@mui/material';\n\nimport { Close as CloseIcon } from '@mui/icons-material';\n\nimport { I18n } from '@iobroker/adapter-react-v5';\n\nimport type { ConfigItemSelectSendTo } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\n\nconst styles: Record<string, React.CSSProperties> = {\n menuPaper: {\n maxHeight: 800,\n },\n};\n\n/*\nto use this option, your adapter must implement listUart message\n\nadapter.on('message', obj => {\n if (obj) {\n switch (obj.command) {\n case 'command':\n if (obj.callback) {\n try {\n const serialport = require('serialport');\n if (serialport) {\n // read all found serial ports\n serialport.list()\n .then(ports => {\n adapter.log.info('List of port: ' + JSON.stringify(ports));\n adapter.sendTo(obj.from, obj.command, ports.map(item =>\n ({label: item.path, value: item.path})), obj.callback);\n })\n .catch(e => {\n adapter.sendTo(obj.from, obj.command, [], obj.callback);\n adapter.log.error(e)\n });\n } else {\n adapter.log.warn('Module serialport is not available');\n adapter.sendTo(obj.from, obj.command, [{label: 'Not available', value: ''}], obj.callback);\n }\n } catch (e) {\n adapter.sendTo(obj.from, obj.command, [{label: 'Not available', value: ''}], obj.callback);\n }\n }\n\n break;\n }\n }\n});\n */\n\ninterface ConfigSelectSendToProps extends ConfigGenericProps {\n schema: ConfigItemSelectSendTo;\n}\n\ninterface ConfigSelectSendToState extends ConfigGenericState {\n list?: { label: string; value: string; hidden?: boolean }[];\n running?: boolean;\n}\n\nclass ConfigSelectSendTo extends ConfigGeneric<ConfigSelectSendToProps, ConfigSelectSendToState> {\n private initialized = false;\n\n private localContext: string | undefined;\n\n askInstance(): void {\n if (this.props.alive) {\n let data: Record<string, any> | undefined = this.props.schema.data;\n if (data === undefined && this.props.schema.jsonData) {\n const dataStr: string = this.getPattern(this.props.schema.jsonData, null, true);\n try {\n data = JSON.parse(dataStr);\n } catch {\n console.error(`Cannot parse json data: ${dataStr}`);\n }\n }\n\n if (data === undefined) {\n data = null;\n }\n this.setState({ running: true }, () => {\n void this.props.oContext.socket\n .sendTo(\n `${this.props.oContext.adapterName}.${this.props.oContext.instance}`,\n this.props.schema.command || 'send',\n data,\n )\n .then(list => this.setState({ list, running: false }))\n .catch(e => {\n console.error(`Cannot send command: ${e}`);\n });\n });\n } else {\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n\n this.setState({ value, running: false });\n }\n }\n\n getContext(): string {\n const localContext: Record<string, any> = {};\n\n if (Array.isArray(this.props.schema.alsoDependsOn)) {\n this.props.schema.alsoDependsOn.forEach(\n attr => (localContext[attr] = ConfigGeneric.getValue(this.props.data, attr)),\n );\n }\n\n return JSON.stringify(localContext);\n }\n\n _getValue(): string | string[] {\n let value =\n this.state.value === null || this.state.value === undefined\n ? ConfigGeneric.getValue(this.props.data, this.props.attr)\n : this.state.value;\n\n if (this.props.schema.multiple) {\n if (typeof value === 'string') {\n value = [value];\n } else if (value === null || value === undefined) {\n value = [];\n }\n }\n\n return value;\n }\n\n renderItem(error: unknown, disabled: boolean /* , defaultValue */): JSX.Element | string {\n if (this.props.alive) {\n const localContext = this.getContext();\n if (localContext !== this.localContext || !this.initialized) {\n this.localContext = localContext;\n setTimeout(() => this.askInstance(), this.initialized ? 300 : 50);\n this.initialized = true;\n }\n }\n\n const value = this._getValue();\n\n if (!this.props.alive || (!this.state.running && !this.state.list?.length)) {\n if (this.props.schema.multiple || this.props.schema.manual === false) {\n return I18n.t('ra_Cannot retrieve options, as instance is offline');\n }\n return (\n <TextField\n variant=\"standard\"\n fullWidth\n value={value}\n error={!!error}\n disabled={!!disabled}\n onChange={e => {\n const value_ = e.target.value;\n this.setState({ value: value_ }, () => this.onChange(this.props.attr, (value_ || '').trim()));\n }}\n placeholder={this.getText(this.props.schema.placeholder)}\n label={this.getText(this.props.schema.label)}\n helperText={this.renderHelp(\n this.props.schema.help,\n this.props.schema.helpLink,\n this.props.schema.noTranslation,\n )}\n slotProps={{\n input: {\n endAdornment:\n this.state.value && !this.props.schema.noClearButton ? (\n <InputAdornment position=\"end\">\n <IconButton\n size=\"small\"\n onClick={() =>\n this.setState({ value: '' }, () => this.onChange(this.props.attr, ''))\n }\n >\n <CloseIcon />\n </IconButton>\n </InputAdornment>\n ) : null,\n },\n }}\n />\n );\n }\n\n if (this.state.running) {\n return <CircularProgress size=\"24\" />;\n }\n\n const selectOptions = this.state.list.filter(item => {\n if (!item.hidden) {\n return true;\n }\n if (this.props.custom) {\n return !this.executeCustom(\n item.hidden,\n this.props.data,\n this.props.customObj,\n this.props.oContext.instanceObj,\n this.props.arrayIndex,\n this.props.globalData,\n );\n }\n return !this.execute(\n item.hidden,\n this.props.schema.default,\n this.props.data,\n this.props.arrayIndex,\n this.props.globalData,\n );\n });\n\n const item = selectOptions.find(it => it.value === value);\n\n return (\n <FormControl\n variant=\"standard\"\n fullWidth\n >\n {this.props.schema.label ? <InputLabel>{this.getText(this.props.schema.label)}</InputLabel> : null}\n <Select\n variant=\"standard\"\n error={!!error}\n multiple={this.props.schema.multiple}\n disabled={!!disabled}\n // MenuProps={this.props.schema.multiple ? { classes: { paper: this.props.classes.menuPaper } } : undefined}\n sx={{\n '&.MuiSelect-paper': this.props.schema.multiple ? styles.menuPaper : undefined,\n }}\n value={value}\n renderValue={(val: string | string[]) =>\n this.props.schema.multiple ? (\n <Box sx={{ display: 'flex', flexWrap: 'wrap', gap: 0.5 }}>\n {(val as string[]).map((v: string) => {\n const it = selectOptions.find(_item => _item.value === v);\n if (it || this.props.schema.showAllValues !== false) {\n const label = it?.label || v;\n return (\n <Chip\n key={v}\n label={label}\n />\n );\n }\n return null;\n })}\n </Box>\n ) : (\n item?.label || val\n )\n }\n onChange={e => {\n const mayBePromise = this.onChange(this.props.attr, e.target.value);\n if (mayBePromise instanceof Promise) {\n mayBePromise.catch(e => console.error(`Cannot set value: ${e}`));\n }\n }}\n >\n {selectOptions.map((it, i) => (\n <MenuItem\n key={i}\n value={it.value}\n >\n {this.props.schema.multiple ? (\n <Checkbox\n checked={value.includes(it.value)}\n onClick={() => {\n const _value = JSON.parse(JSON.stringify(this._getValue()));\n const pos = value.indexOf(it.value);\n if (pos !== -1) {\n _value.splice(pos, 1);\n } else {\n _value.push(it.value);\n _value.sort();\n }\n this.setState({ value: _value }, () => this.onChange(this.props.attr, _value));\n }}\n />\n ) : null}\n <ListItemText primary={it.label} />\n </MenuItem>\n ))}\n </Select>\n {this.props.schema.help ? (\n <FormHelperText>\n {this.renderHelp(\n this.props.schema.help,\n this.props.schema.helpLink,\n this.props.schema.noTranslation,\n )}\n </FormHelperText>\n ) : null}\n </FormControl>\n );\n }\n}\n\nexport default ConfigSelectSendTo;\n","import React, { type JSX } from 'react';\n\nimport { Button, CircularProgress } from '@mui/material';\n\nimport { Warning as IconWarning, Error as IconError, Info as IconInfo } from '@mui/icons-material';\n\nimport { DialogConfirm, DialogError, DialogMessage, I18n } from '@iobroker/adapter-react-v5';\n\nimport type { ConfigItemSendTo } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\n\nconst styles: Record<string, React.CSSProperties> = {\n fullWidth: {\n width: '100%',\n },\n};\n\nfunction ip2int(ip: string): number {\n return ip.split('.').reduce((ipInt, octet) => (ipInt << 8) + parseInt(octet, 10), 0) >>> 0;\n}\n\n// copied from iobroker.admin/src-rx/src/Utils.js\nfunction findNetworkAddressOfHost(obj: Record<string, any>, localIp: string): string {\n const networkInterfaces = obj?.native?.hardware?.networkInterfaces;\n if (!networkInterfaces) {\n return null;\n }\n\n let hostIp: string | undefined;\n\n // check ipv4 addresses\n Object.keys(networkInterfaces).forEach(inter =>\n networkInterfaces[inter].forEach((ip: Record<string, any>) => {\n if (ip.internal) {\n return;\n }\n if (localIp.includes(':') && ip.family !== 'IPv6') {\n return;\n }\n if (localIp.includes('.') && !localIp.match(/[^.\\d]/) && ip.family !== 'IPv4') {\n return;\n }\n // if ip4 and not docker or wsl\n if (\n ip.family === 'IPv4' &&\n !ip.address.startsWith('172') &&\n (localIp === '127.0.0.0' || localIp === 'localhost' || localIp.match(/[^.\\d]/))\n ) {\n // if DNS name\n hostIp = ip.address;\n } else if (!hostIp) {\n if (\n ip.family === 'IPv4' &&\n localIp.includes('.') &&\n (ip2int(localIp) & ip2int(ip.netmask)) === (ip2int(ip.address) & ip2int(ip.netmask))\n ) {\n hostIp = ip.address;\n } else {\n hostIp = ip.address;\n }\n }\n }),\n );\n\n // check ipv6 addresses\n if (!hostIp) {\n Object.keys(networkInterfaces).forEach(inter =>\n networkInterfaces[inter].forEach((ip: Record<string, any>) => {\n if (ip.internal) {\n return;\n }\n if (localIp.includes(':') && ip.family !== 'IPv6') {\n return;\n }\n if (localIp.includes('.') && !localIp.match(/[^.\\d]/) && ip.family !== 'IPv4') {\n return;\n }\n if (\n ip.family === 'IPv6' &&\n (localIp === '127.0.0.0' || localIp === 'localhost' || localIp.match(/[^.\\d]/))\n ) {\n // if DNS name\n hostIp = ip.address;\n } else if (!hostIp) {\n if (\n ip.family === 'IPv4' &&\n localIp.includes('.') &&\n (ip2int(localIp) & ip2int(ip.netmask)) === (ip2int(ip.address) & ip2int(ip.netmask))\n ) {\n hostIp = ip.address;\n } else {\n hostIp = ip.address;\n }\n }\n }),\n );\n }\n\n if (!hostIp) {\n Object.keys(networkInterfaces).forEach(inter => {\n networkInterfaces[inter].forEach((ip: Record<string, any>) => {\n if (ip.internal) {\n return;\n }\n if (localIp.includes(':') && ip.family !== 'IPv6') {\n return;\n }\n if (localIp.includes('.') && !localIp.match(/[^.\\d]/) && ip.family !== 'IPv4') {\n return;\n }\n if (localIp === '127.0.0.0' || localIp === 'localhost' || localIp.match(/[^.\\d]/)) {\n // if DNS name\n hostIp = ip.address;\n } else {\n hostIp = ip.address;\n }\n });\n });\n }\n\n if (!hostIp) {\n Object.keys(networkInterfaces).forEach(inter => {\n networkInterfaces[inter].forEach((ip: Record<string, any>) => {\n if (ip.internal) {\n return;\n }\n hostIp = ip.address;\n });\n });\n }\n\n return hostIp;\n}\n\ninterface ConfigSendToProps extends ConfigGenericProps {\n schema: ConfigItemSendTo;\n}\n\ninterface ConfigSendToState extends ConfigGenericState {\n _error: string;\n _message: string;\n hostname: string;\n running?: boolean;\n}\n\nclass ConfigSendto extends ConfigGeneric<ConfigSendToProps, ConfigSendToState> {\n async componentDidMount(): Promise<void> {\n super.componentDidMount();\n\n let hostname = window.location.hostname;\n if (this.props.schema.openUrl) {\n // read admin host\n const adminInstance = await this.props.oContext.socket.getCurrentInstance();\n const instanceObj = await this.props.oContext.socket.getObject(\n `system.adapter.${adminInstance}` as ioBroker.ObjectIDs.Instance,\n );\n\n if (instanceObj) {\n const hostObj = await this.props.oContext.socket.getObject(`system.host.${instanceObj?.common?.host}`);\n if (hostObj) {\n const ip = findNetworkAddressOfHost(hostObj, window.location.hostname);\n if (ip) {\n hostname = `${ip}:${window.location.port}`;\n } else {\n console.warn(\n `Cannot find suitable IP in host ${instanceObj.common.host} for ${instanceObj._id}`,\n );\n return;\n }\n }\n }\n }\n\n await new Promise<void>(resolve => {\n this.setState({ _error: '', _message: '', hostname }, resolve);\n });\n\n if (this.props.schema.onLoaded) {\n this._onClick();\n }\n }\n\n renderErrorDialog(): JSX.Element | null {\n if (this.state._error) {\n return (\n <DialogError\n text={this.state._error}\n onClose={() => this.setState({ _error: '' })}\n />\n );\n }\n return null;\n }\n\n renderMessageDialog(): JSX.Element | null {\n if (this.state._message) {\n return (\n <DialogMessage\n text={this.state._message}\n onClose={() => this.setState({ _message: '' })}\n />\n );\n }\n return null;\n }\n\n _onClick(): void {\n this.props.oContext.onCommandRunning(true);\n this.setState({ running: true });\n\n const _origin = `${window.location.protocol}//${window.location.host}${window.location.pathname.replace(/\\/index\\.html$/, '')}`;\n const _originIp = `${window.location.protocol}//${this.state.hostname.split(':').length > 3 ? `[${this.state.hostname}]` : this.state.hostname}${window.location.pathname.replace(/\\/index\\.html$/, '')}`;\n\n let data: Record<string, any> = this.props.schema.data;\n if (data === undefined && this.props.schema.jsonData) {\n const dataStr = this.getPattern(this.props.schema.jsonData, {\n _origin,\n _originIp,\n ...this.props.data,\n }, true);\n\n try {\n data = JSON.parse(dataStr);\n } catch {\n console.error(`Cannot parse json data: ${dataStr}`);\n }\n }\n if (data === undefined) {\n data = null;\n }\n if (this.props.schema.openUrl && !data) {\n data = {\n _origin,\n _originIp,\n };\n }\n let timeout: ReturnType<typeof setTimeout> | undefined;\n if (this.props.schema.timeout) {\n timeout = setTimeout(\n () => {\n this.props.oContext.onCommandRunning(false);\n this.setState({ _error: I18n.t('ra_Request timed out'), running: false });\n },\n parseInt(this.props.schema.timeout as any as string, 10) || 10000,\n );\n }\n\n void this.props.oContext.socket\n .sendTo(\n `${this.props.oContext.adapterName}.${this.props.oContext.instance}`,\n this.props.schema.command || 'send',\n data,\n )\n .then(async (response: Record<string, any>) => {\n if (timeout) {\n clearTimeout(timeout);\n timeout = undefined;\n }\n if (response?.error) {\n if (this.props.schema.error && this.props.schema.error[response.error]) {\n let error = this.getText(this.props.schema.error[response.error]);\n if (response.args) {\n response.args.forEach((arg: string) => (error = error.replace('%s', arg)));\n }\n this.setState({ _error: error });\n } else {\n this.setState({ _error: response.error ? I18n.t(response.error) : I18n.t('ra_Error') });\n }\n } else {\n if (response?.command) {\n // If backend requested to refresh the config\n if (this.props.oContext.onBackEndCommand) {\n this.props.oContext.onBackEndCommand(response.command);\n }\n return;\n }\n if (response?.reloadBrowser && this.props.schema.reloadBrowser) {\n window.location.reload();\n } else if (response?.openUrl && this.props.schema.openUrl) {\n window.open(response.openUrl, response.window || this.props.schema.window || '_blank');\n } else if (\n response?.result &&\n this.props.schema.result &&\n this.props.schema.result[response.result]\n ) {\n let text = this.getText(this.props.schema.result[response.result]);\n if (response.args) {\n response.args.forEach((arg: string) => (text = text.replace('%s', arg)));\n }\n window.alert(text);\n }\n\n if (response?.native && this.props.schema.useNative) {\n for (const [attr, val] of Object.entries(response.native)) {\n await this.onChangeAsync(attr, val);\n }\n\n setTimeout(\n () => this.props.oContext.forceUpdate(Object.keys(response.native), this.props.data),\n 300,\n );\n } else if (response?.result) {\n window.alert(\n typeof response.result === 'object' ? JSON.stringify(response.result) : response.result,\n );\n } else {\n window.alert(I18n.t('ra_Ok'));\n }\n\n if (response?.saveConfig) {\n this.props.onChange(null, null, null, true);\n }\n }\n })\n .catch((e: any) => {\n if (this.props.schema.error && this.props.schema.error[e.toString()]) {\n this.setState({ _error: this.getText(this.props.schema.error[e.toString()]) });\n } else {\n this.setState({ _error: I18n.t(e.toString()) || I18n.t('ra_Error') });\n }\n })\n .then(() => {\n this.props.oContext.onCommandRunning(false);\n this.setState({ running: false });\n });\n }\n\n renderDialogConfirm(): JSX.Element | null {\n if (!this.state.confirmDialog) {\n return null;\n }\n const confirm = this.state.confirmData || this.props.schema.confirm;\n let icon = null;\n if (confirm.type === 'warning') {\n icon = <IconWarning />;\n } else if (confirm.type === 'error') {\n icon = <IconError />;\n } else if (confirm.type === 'info') {\n icon = <IconInfo />;\n }\n\n return (\n <DialogConfirm\n title={this.getText(confirm.title) || I18n.t('ra_Please confirm')}\n text={this.getText(confirm.text)}\n ok={this.getText(confirm.ok) || I18n.t('ra_Ok')}\n cancel={this.getText(confirm.cancel) || I18n.t('ra_Cancel')}\n icon={icon || undefined}\n onClose={isOk => this.setState({ confirmDialog: false }, () => isOk && this._onClick())}\n />\n );\n }\n\n renderItem(error: Error | undefined, disabled: boolean): JSX.Element {\n const icon = this.getIcon();\n\n return (\n <div style={styles.fullWidth}>\n <Button\n variant={this.props.schema.variant || undefined}\n color={this.props.schema.color || 'grey'}\n style={{ ...styles.fullWidth, ...(this.props.schema.controlStyle || undefined) }}\n disabled={disabled || !this.props.alive}\n startIcon={icon}\n title={\n this.props.alive\n ? this.getText(this.props.schema.title) || ''\n : I18n.t('ra_Instance is not alive')\n }\n onClick={() => {\n if (this.props.schema.confirm) {\n this.setState({ confirmDialog: true });\n } else {\n this._onClick();\n }\n }}\n >\n {this.props.schema.showProcess && this.state.running ? (\n <CircularProgress\n size={20}\n style={{ marginRight: 8 }}\n />\n ) : null}\n {this.getText(this.props.schema.label, this.props.schema.noTranslation)}\n </Button>\n {this.renderErrorDialog()}\n {this.renderMessageDialog()}\n </div>\n );\n }\n}\n\nexport default ConfigSendto;\n","import React, { type JSX } from 'react';\n\nimport { Button } from '@mui/material';\n\nimport { Warning as IconWarning, Error as IconError, Info as IconInfo } from '@mui/icons-material';\n\nimport { DialogConfirm, Icon, I18n } from '@iobroker/adapter-react-v5';\nimport type { ConfigItemSetState } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\n\nconst styles: Record<string, React.CSSProperties> = {\n fullWidth: {\n width: '100%',\n },\n icon: {\n width: 24,\n height: 24,\n marginRight: 4,\n },\n};\n\ninterface ConfigInstanceSelectProps extends ConfigGenericProps {\n schema: ConfigItemSetState;\n}\n\nclass ConfigSetState extends ConfigGeneric<ConfigInstanceSelectProps, ConfigGenericState> {\n async _onClick(): Promise<void> {\n let val = this.props.schema.val;\n if (typeof val === 'string' && val.includes('${')) {\n val = this.getPattern(val, null, true);\n const obj = await this.props.oContext.socket.getObject(this.props.schema.id);\n if (obj?.common?.type === 'number') {\n val = parseFloat(val);\n } else if (obj?.common?.type === 'boolean') {\n // @ts-expect-error val could be anything\n val = val === 'true' || val === true || val === '1' || val === 1;\n }\n }\n\n const id = (this.props.schema.id || '').replace(/%INSTANCE%/g, (this.props.oContext.instance || 0).toString());\n\n try {\n await this.props.oContext.socket.setState(id, { val, ack: !!this.props.schema.ack });\n if (this.props.schema.okText) {\n window.alert(this.getText(this.props.schema.okText));\n }\n } catch (e) {\n if (this.props.schema.error && this.props.schema.error[e.toString()]) {\n window.alert(this.getText(this.props.schema.error[e.toString()]));\n } else {\n window.alert(I18n.t(e.toString()) || I18n.t('ra_Error'));\n }\n }\n }\n\n renderDialogConfirm(): JSX.Element | null {\n if (!this.state.confirmDialog) {\n return null;\n }\n const confirm = this.state.confirmData || this.props.schema.confirm;\n let icon = null;\n if (confirm.type === 'warning') {\n icon = <IconWarning />;\n } else if (confirm.type === 'error') {\n icon = <IconError />;\n } else if (confirm.type === 'info') {\n icon = <IconInfo />;\n }\n\n return (\n <DialogConfirm\n title={this.getText(confirm.title) || I18n.t('ra_Please confirm')}\n text={this.getText(confirm.text)}\n ok={this.getText(confirm.ok) || I18n.t('ra_Ok')}\n cancel={this.getText(confirm.cancel) || I18n.t('ra_Cancel')}\n icon={icon}\n onClose={isOk => this.setState({ confirmDialog: false }, () => isOk && this._onClick())}\n />\n );\n }\n\n renderItem(_error: string, disabled: boolean /* , defaultValue */): JSX.Element | null {\n return (\n <Button\n variant={this.props.schema.variant || undefined}\n color={this.props.schema.color || 'grey'}\n style={styles.fullWidth}\n disabled={disabled}\n onClick={async () => {\n if (this.props.schema.confirm) {\n this.setState({ confirmDialog: true });\n } else {\n await this._onClick();\n }\n }}\n >\n {this.props.schema.icon ? (\n <Icon\n src={this.props.schema.icon}\n style={styles.icon}\n />\n ) : null}\n {this.getText(this.props.schema.label, this.props.schema.noTranslation)}\n </Button>\n );\n }\n}\n\nexport default ConfigSetState;\n","import React, { type JSX } from 'react';\n\nimport { Box, Typography, Slider } from '@mui/material';\n\nimport type { ConfigItemSlider } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\n\nconst styles: Record<string, React.CSSProperties> = {\n fullWidth: {\n width: '100%',\n },\n slider: {\n marginLeft: 10,\n marginRight: 10,\n width: 'calc(100% - 20px)',\n },\n};\n\ninterface ConfigSliderProps extends ConfigGenericProps {\n schema: ConfigItemSlider;\n}\n\ninterface ConfigSliderState extends ConfigGenericState {\n _value: number;\n}\n\nclass ConfigSlider extends ConfigGeneric<ConfigSliderProps, ConfigSliderState> {\n componentDidMount(): void {\n super.componentDidMount();\n const _value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n this.setState({ _value });\n }\n\n static getDerivedStateFromProps(\n props: ConfigSliderProps,\n state: ConfigSliderState,\n ): Partial<ConfigSliderState> | null {\n if (\n (props.schema.min !== undefined && props.schema.min < 0) ||\n (props.schema.max !== undefined && props.schema.max < 0)\n ) {\n return null;\n }\n const _value = ConfigGeneric.getValue(props.data, props.attr);\n if (\n _value === null ||\n _value === undefined ||\n _value.toString() !== parseFloat(state._value as any as string).toString()\n ) {\n return { _value };\n }\n\n return null;\n }\n\n renderItem(error: string, disabled: boolean /* , defaultValue */): JSX.Element {\n const min = this.props.schema.min || 0;\n const max = this.props.schema.max || 100;\n const unit = this.props.schema.unit\n ? this.getText(this.props.schema.unit, this.props.schema.noTranslation)\n : '';\n\n const marks = [\n { value: min, label: min + unit },\n { value: max, label: max + unit },\n ];\n\n return (\n <Box style={styles.fullWidth}>\n {this.props.schema.label ? (\n <Typography gutterBottom>{this.getText(this.props.schema.label)}</Typography>\n ) : null}\n <Slider\n style={styles.slider}\n value={this.state._value}\n getAriaValueText={value => value + unit}\n step={this.props.schema.step || (max - min) / 100}\n valueLabelDisplay=\"auto\"\n marks={marks}\n min={min}\n max={max}\n disabled={!!disabled}\n onChange={e => {\n const _value = (e.target as HTMLInputElement).value as any as number;\n this.setState({ _value }, () => this.onChange(this.props.attr, _value));\n }}\n />\n {this.props.schema.help ? (\n <Typography>\n {this.renderHelp(\n this.props.schema.help,\n this.props.schema.helpLink,\n this.props.schema.noTranslation,\n )}\n </Typography>\n ) : null}\n </Box>\n );\n }\n}\n\nexport default ConfigSlider;\n","import React, { type JSX } from 'react';\n\nimport {\n Add,\n Delete,\n Edit,\n Refresh,\n Search,\n Wifi,\n WifiOff,\n Visibility,\n LinkOff,\n Link as LinkIcon,\n NotListedLocation,\n PlayArrow,\n Stop,\n FastForward,\n FastRewind,\n Pause,\n Lightbulb,\n Power,\n Fluorescent,\n WbIncandescent,\n Settings,\n Group,\n Person,\n QrCode,\n} from '@mui/icons-material';\n\nexport default function getIconByName(name: string, style?: React.CSSProperties): JSX.Element | null {\n if (name === 'edit' || name === 'rename') {\n return <Edit style={style} />;\n }\n if (name === 'delete') {\n return <Delete style={style} />;\n }\n if (name === 'refresh') {\n return <Refresh style={style} />;\n }\n if (name === 'newDevice' || name === 'new' || name === 'add') {\n return <Add style={style} />;\n }\n if (name === 'discover' || name === 'search') {\n return <Search style={style} />;\n }\n if (name === 'unpairDevice' || name === 'unpair') {\n return <LinkOff style={style} />;\n }\n if (name === 'pairDevice' || name === 'pair') {\n return <LinkIcon style={style} />;\n }\n if (name === 'identify') {\n return <NotListedLocation style={style} />;\n }\n if (name === 'play') {\n return <PlayArrow style={style} />;\n }\n if (name === 'stop') {\n return <Stop style={style} />;\n }\n if (name === 'pause') {\n return <Pause style={style} />;\n }\n if (name === 'forward' || name === 'next') {\n return <FastForward style={style} />;\n }\n if (name === 'rewind' || name === 'previous') {\n return <FastRewind style={style} />;\n }\n if (name === 'lamp' || name === 'light') {\n return <Lightbulb style={style} />;\n }\n if (name === 'backlight') {\n return <Fluorescent style={style} />;\n }\n if (name === 'dimmer') {\n return <WbIncandescent style={style} />;\n }\n if (name === 'socket') {\n return <Power style={style} />;\n }\n if (name === 'settings') {\n return <Settings style={style} />;\n }\n if (name === 'users' || name === 'group') {\n return <Group style={style} />;\n }\n if (name === 'user') {\n return <Person style={style} />;\n }\n if (name === 'qrcode') {\n return <QrCode style={style} />;\n }\n if (name === 'connection') {\n return <Wifi style={style} />;\n }\n if (name === 'no-connection') {\n return <WifiOff style={style} />;\n }\n if (name === 'visible') {\n return <Visibility style={style} />;\n }\n return null;\n}\n","import React, { type JSX } from 'react';\n\nimport { TextField, IconButton, Button, Switch, Slider, Box } from '@mui/material';\n\nimport { I18n, Icon, type IobTheme } from '@iobroker/adapter-react-v5';\n\nimport type { ConfigItemState } from '#JC/types';\nimport getIconByName from './Icons';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\n\nfunction valueBlinkOnce(theme: IobTheme, color?: string | boolean): any {\n if (typeof color === 'string') {\n return {\n '@keyframes newStateAnimationOnceColor': {\n '0%': {\n color,\n },\n '100%': {\n color: theme.palette.mode === 'dark' ? '#fff' : '#000',\n },\n },\n animation: 'newStateAnimationOnceColor 2s ease-in-out',\n };\n }\n return {\n '@keyframes newStateAnimationOnce': {\n '0%': {\n color: '#00f900',\n },\n '80%': {\n color: theme.palette.mode === 'dark' ? '#518851' : '#008000',\n },\n '100%': {\n color: theme.palette.mode === 'dark' ? '#fff' : '#000',\n },\n },\n animation: 'newStateAnimationOnce 2s ease-in-out',\n };\n}\n\ninterface ConfigStateProps extends ConfigGenericProps {\n schema: ConfigItemState;\n}\n\ninterface ConfigStateState extends ConfigGenericState {\n stateValue?: string | number | boolean | null;\n controlType?: string;\n obj?: ioBroker.Object | null;\n}\n\nclass ConfigState extends ConfigGeneric<ConfigStateProps, ConfigStateState> {\n controlTimeout: ReturnType<typeof setTimeout> | null = null;\n\n delayedUpdate: { timer: ReturnType<typeof setTimeout> | null; value: string | boolean | number | null } = {\n timer: null,\n value: null,\n };\n\n getObjectID(): string {\n if (this.props.schema.foreign) {\n return this.props.schema.oid;\n }\n return `${this.props.schema.system ? 'system.adapter.' : ''}${this.props.oContext.adapterName}.${this.props.oContext.instance}.${this.props.schema.oid}`;\n }\n\n async componentDidMount(): Promise<void> {\n super.componentDidMount();\n const obj: ioBroker.StateObject = (await this.props.oContext.socket.getObject(\n this.getObjectID(),\n )) as ioBroker.StateObject;\n const controlType = this.props.schema.control || this.detectType(obj);\n\n const state = await this.props.oContext.socket.getState(this.getObjectID());\n\n this.setState({ stateValue: state ? state.val : null, controlType, obj }, async () => {\n await this.props.oContext.socket.subscribeState(this.getObjectID(), this.onStateChanged);\n });\n }\n\n componentWillUnmount(): void {\n super.componentWillUnmount();\n this.props.oContext.socket.unsubscribeState(this.getObjectID(), this.onStateChanged);\n if (this.delayedUpdate.timer) {\n clearTimeout(this.delayedUpdate.timer);\n this.delayedUpdate.timer = null;\n }\n\n if (this.controlTimeout) {\n clearTimeout(this.controlTimeout);\n this.controlTimeout = null;\n this.props.oContext.socket\n .setState(this.getObjectID(), this.state.stateValue, false)\n .catch(e => console.error(`Cannot control value: ${e}`));\n }\n }\n\n onStateChanged = (_id: string, state: ioBroker.State | null | undefined): void => {\n let val = state ? state.val : null;\n if (this.state.controlType === 'button' || this.state.controlType === 'switch') {\n val = !!val;\n if (this.state.stateValue !== val) {\n this.setState({ stateValue: val });\n }\n } else if (val !== null && (this.state.controlType === 'slider' || this.state.controlType === 'number')) {\n val = parseFloat(val as unknown as string);\n console.log(`${Date.now()} Received new value: ${val}`);\n if (val !== this.state.stateValue) {\n if (this.delayedUpdate.timer) {\n clearTimeout(this.delayedUpdate.timer);\n this.delayedUpdate.timer = null;\n }\n this.delayedUpdate.value = val;\n this.delayedUpdate.timer = setTimeout(() => {\n this.setState({ stateValue: this.delayedUpdate.value });\n }, 500);\n } else if (this.delayedUpdate.timer) {\n clearTimeout(this.delayedUpdate.timer);\n this.delayedUpdate.timer = null;\n }\n } else if (this.state.stateValue.toString() !== val.toString()) {\n this.setState({ stateValue: val });\n }\n };\n\n detectType(obj: ioBroker.StateObject): 'button' | 'switch' | 'slider' | 'input' | 'text' {\n obj = obj || ({} as ioBroker.StateObject);\n obj.common = obj.common || ({} as ioBroker.StateCommon);\n\n // read object\n if (obj.common.type === 'boolean') {\n if (this.props.schema.controlled !== false) {\n if (obj.common.read === false || this.props.schema.controlled === true) {\n return 'button';\n }\n if (obj.common.write || this.props.schema.controlled === true) {\n return 'switch';\n }\n }\n\n return 'text';\n }\n\n if (obj.common.type === 'number' && this.props.schema.controlled !== false) {\n if (obj.common.write || this.props.schema.controlled === true) {\n if (obj.common.max !== undefined) {\n return 'slider';\n }\n return 'input';\n }\n return 'text';\n }\n\n if (obj.common.write && this.props.schema.controlled !== false) {\n return 'input';\n }\n\n return 'text';\n }\n\n renderItem(_error: string, disabled: boolean/*, defaultValue */): JSX.Element {\n if (!this.state.obj) {\n return null;\n }\n\n let content: JSX.Element;\n\n if (this.state.controlType === 'button') {\n let icon: JSX.Element | null = null;\n if (this.props.schema.falseImage) {\n icon = getIconByName(this.props.schema.falseImage);\n }\n\n const text = this.getText(\n this.props.schema.falseText || this.props.schema.label,\n this.props.schema.noTranslation,\n );\n\n if (!text && icon) {\n content = (\n <IconButton\n style={this.props.schema.falseTextStyle}\n disabled={!!this.props.schema.readOnly}\n onClick={async () => {\n if (this.props.schema.confirm) {\n this.setState({\n confirmDialog: true,\n confirmCallback: async (result: boolean) => {\n if (result) {\n await this.props.oContext.socket.setState(this.getObjectID(), true, false);\n }\n },\n });\n } else {\n await this.props.oContext.socket.setState(this.getObjectID(), true, false);\n }\n }}\n >\n {icon}\n </IconButton>\n );\n } else {\n content = (\n <Button\n variant={this.props.schema.variant || 'contained'}\n startIcon={icon}\n style={this.props.schema.falseTextStyle}\n disabled={disabled || !!this.props.schema.readOnly}\n onClick={async () => {\n if (this.props.schema.confirm) {\n this.setState({\n confirmDialog: true,\n confirmCallback: async (result: boolean) => {\n if (result) {\n await this.props.oContext.socket.setState(this.getObjectID(), true, false);\n }\n },\n });\n } else {\n await this.props.oContext.socket.setState(this.getObjectID(), true, false);\n }\n }}\n >\n {text || this.getObjectID().split('.').pop()}\n </Button>\n );\n }\n } else if (this.state.controlType === 'input') {\n content = (\n <TextField\n style={{ width: '100%' }}\n value={this.state.stateValue}\n variant=\"standard\"\n slotProps={{\n input: {\n endAdornment:\n this.getText(this.props.schema.unit, this.props.schema.noTranslation) ||\n this.state.obj.common.unit ||\n undefined,\n },\n htmlInput: {\n readOnly: !!this.props.schema.readOnly,\n },\n }}\n onChange={e => {\n this.setState({ stateValue: e.target.value }, (): void => {\n if (this.controlTimeout) {\n clearTimeout(this.controlTimeout);\n }\n this.controlTimeout = setTimeout(async () => {\n this.controlTimeout = null;\n await this.props.oContext.socket.setState(this.getObjectID(), this.state.stateValue, false);\n }, this.props.schema.controlDelay || 0);\n });\n }}\n label={this.getText(this.props.schema.label)}\n helperText={this.renderHelp(\n this.props.schema.help,\n this.props.schema.helpLink,\n this.props.schema.noTranslation,\n )}\n />\n );\n } else if (this.state.obj.common.type === 'number') {\n const min = this.props.schema.min === undefined ? this.state.obj.common.min || 0 : this.props.schema.min;\n const max =\n this.props.schema.max === undefined\n ? this.state.obj.common.max === undefined\n ? 100\n : this.state.obj.common.max\n : this.props.schema.max;\n const step =\n this.props.schema.step === undefined ? this.state.obj.common.step || 1 : this.props.schema.step;\n\n content = (\n <TextField\n variant=\"standard\"\n style={{ width: '100%' }}\n value={this.state.stateValue}\n type=\"number\"\n slotProps={{\n htmlInput: { min, max, step, readOnly: !!this.props.schema.readOnly },\n input: {\n endAdornment:\n this.getText(this.props.schema.unit, this.props.schema.noTranslation) ||\n this.state.obj.common.unit ||\n undefined,\n },\n }}\n onChange={e => {\n this.setState({ stateValue: e.target.value }, (): void => {\n if (this.controlTimeout) {\n clearTimeout(this.controlTimeout);\n }\n this.controlTimeout = setTimeout(async () => {\n this.controlTimeout = null;\n const val = parseFloat(this.state.stateValue as unknown as string);\n await this.props.oContext.socket.setState(this.getObjectID(), val, false);\n }, this.props.schema.controlDelay || 0);\n });\n }}\n label={this.getText(this.props.schema.label, this.props.schema.noTranslation)}\n helperText={this.renderHelp(\n this.props.schema.help,\n this.props.schema.helpLink,\n this.props.schema.noTranslation,\n )}\n />\n );\n } else {\n let fontSize: number | undefined;\n if (this.props.schema.size === 'normal') {\n fontSize = 16;\n } else if (this.props.schema.size === 'large') {\n fontSize = 20;\n } else if (typeof this.props.schema.size === 'number') {\n fontSize = this.props.schema.size;\n }\n let label = this.getText(this.props.schema.label, this.props.schema.noTranslation);\n\n const divStyle: React.CSSProperties = {\n display: 'flex',\n alignItems: 'center',\n fontSize: fontSize || '1rem',\n gap: 8,\n };\n\n if (!this.props.schema.narrow) {\n divStyle.width = '100%';\n divStyle.justifyContent = 'space-between';\n }\n\n if (label.trim()) {\n if (!label.trim().endsWith(':') && this.props.schema.addColon) {\n label = `${label.trim()}:`;\n }\n }\n\n let blinkStyle: React.CSSProperties | undefined;\n if (this.props.schema.blinkOnUpdate) {\n blinkStyle = valueBlinkOnce(this.props.oContext.theme, this.props.schema.blinkOnUpdate);\n }\n\n let labelIcon: React.JSX.Element | undefined;\n if (this.props.schema.labelIcon) {\n labelIcon = (\n <Icon\n src={this.props.schema.labelIcon}\n style={{ marginRight: 4 }}\n />\n );\n }\n\n let labelControl: React.JSX.Element | undefined;\n if (label && labelIcon) {\n labelControl = (\n <div style={{ whiteSpace: 'nowrap' }}>\n {labelIcon}\n {label}\n </div>\n );\n } else if (label) {\n labelControl = <div style={{ whiteSpace: 'nowrap' }}>{label}</div>;\n } else if (labelIcon) {\n labelControl = labelIcon;\n }\n\n if (this.state.controlType === 'switch') {\n let iconFalse: JSX.Element | null = null;\n const textFalse = this.getText(this.props.schema.falseText, this.props.schema.noTranslation);\n if (this.props.schema.falseImage) {\n iconFalse = getIconByName(this.props.schema.falseImage, textFalse ? { marginLeft: 8 } : undefined);\n }\n let iconTrue: JSX.Element | null = null;\n const textTrue = this.getText(this.props.schema.trueText, this.props.schema.noTranslation);\n if (this.props.schema.trueImage) {\n iconTrue = getIconByName(this.props.schema.trueImage, textTrue ? { marginRight: 8 } : undefined);\n }\n\n content = (\n <Switch\n checked={!!this.state.stateValue}\n disabled={!!this.props.schema.readOnly}\n onChange={async () => {\n if (this.props.schema.confirm) {\n this.setState({\n confirmDialog: true,\n confirmCallback: async (result: boolean) => {\n if (result) {\n await this.props.oContext.socket.setState(\n this.getObjectID(),\n !this.state.stateValue,\n false,\n );\n }\n },\n });\n } else {\n await this.props.oContext.socket.setState(this.getObjectID(), !this.state.stateValue, false);\n }\n }}\n />\n );\n\n if (textFalse || iconFalse || textTrue || iconTrue) {\n content = (\n <div style={{ display: 'flex', alignItems: 'center', fontSize: 14 }}>\n <span style={this.props.schema.falseTextStyle}>\n {textFalse}\n {iconFalse}\n </span>\n {content}\n <span style={this.props.schema.trueTextStyle}>\n {iconTrue}\n {textTrue}\n </span>\n </div>\n );\n }\n\n if (labelControl) {\n content = (\n <div style={divStyle}>\n {labelControl}\n {content}\n </div>\n );\n }\n } else if (this.state.controlType === 'slider') {\n let iconFalse: JSX.Element | null = null;\n const textFalse = this.getText(this.props.schema.falseText, this.props.schema.noTranslation);\n if (this.props.schema.falseImage) {\n iconFalse = getIconByName(this.props.schema.falseImage, textFalse ? { marginLeft: 8 } : undefined);\n }\n let iconTrue: JSX.Element | null = null;\n const textTrue = this.getText(this.props.schema.trueText, this.props.schema.noTranslation);\n if (this.props.schema.trueImage) {\n iconTrue = getIconByName(this.props.schema.trueImage, textTrue ? { marginRight: 8 } : undefined);\n }\n\n const min =\n this.props.schema.min === undefined ? this.state.obj.common.min || 0 : this.props.schema.min;\n const max =\n this.props.schema.max === undefined\n ? this.state.obj.common.max === undefined\n ? 100\n : this.state.obj.common.max\n : this.props.schema.max;\n const step =\n this.props.schema.step === undefined ? this.state.obj.common.step || 1 : this.props.schema.step;\n\n content = (\n <Slider\n style={{ width: '100%', flexGrow: 1 }}\n min={min}\n max={max}\n disabled={!!this.props.schema.readOnly}\n step={step}\n value={this.state.stateValue as number}\n valueLabelDisplay=\"auto\"\n valueLabelFormat={(value: number) =>\n `${value}${this.getText(this.props.schema.unit, this.props.schema.noTranslation) || this.state.obj.common.unit || ''}`\n }\n onChange={(_e: Event, value: number) => {\n this.setState({ stateValue: value }, (): void => {\n if (this.controlTimeout) {\n clearTimeout(this.controlTimeout);\n }\n this.controlTimeout = setTimeout(async () => {\n console.log(`${Date.now()} Send new value: ${this.state.stateValue}`);\n this.controlTimeout = null;\n await this.props.oContext.socket.setState(this.getObjectID(), this.state.stateValue, false);\n }, this.props.schema.controlDelay || 0);\n });\n }}\n />\n );\n\n if (textFalse || iconFalse || textTrue || iconTrue) {\n content = (\n <div\n style={{\n display: 'flex',\n width: '100%',\n flexGrow: 1,\n alignItems: 'center',\n }}\n >\n <span style={{ marginRight: 16, ...this.props.schema.falseTextStyle }}>\n {textFalse}\n {iconFalse}\n </span>\n {content}\n <span style={{ marginLeft: 16, ...this.props.schema.trueTextStyle }}>\n {iconTrue}\n {textTrue}\n </span>\n </div>\n );\n }\n if (labelControl) {\n content = (\n <div style={divStyle}>\n {labelControl}\n {content}\n </div>\n );\n }\n } else if (this.state.obj.common.type === 'boolean') {\n let icon: JSX.Element | null = null;\n let text: string;\n let style: React.CSSProperties | undefined;\n if (!this.state.stateValue) {\n text = this.getText(this.props.schema.falseText, this.props.schema.noTranslation);\n if (this.props.schema.falseImage) {\n icon = getIconByName(this.props.schema.falseImage, text ? { marginLeft: 8 } : undefined);\n }\n style = this.props.schema.falseTextStyle;\n } else {\n text = this.getText(this.props.schema.trueText, this.props.schema.noTranslation);\n if (this.props.schema.trueImage) {\n icon = getIconByName(this.props.schema.falseImage, text ? { marginRight: 8 } : undefined);\n }\n style = this.props.schema.trueTextStyle;\n }\n style = Object.assign(divStyle, style);\n\n content = (\n <div style={style}>\n {labelControl}\n <Box\n style={{ display: 'flex', alignItems: 'center', gap: 8 }}\n sx={blinkStyle}\n key={this.props.schema.blinkOnUpdate ? text : undefined}\n >\n {icon}\n {text || (this.state.stateValue ? I18n.t('ra_true') : I18n.t('ra_false'))}\n </Box>\n </div>\n );\n } else {\n // text or HTML\n const unit =\n this.getText(this.props.schema.unit, this.props.schema.noTranslation) || this.state.obj.common.unit;\n\n let value;\n let key: string;\n if (this.state.controlType === 'html') {\n key = (this.state.stateValue || '').toString();\n value = <span dangerouslySetInnerHTML={{ __html: this.state.stateValue as string }} />;\n } else if (this.state.stateValue === null) {\n value = 'null';\n key = value;\n } else if (this.state.stateValue === undefined) {\n value = 'undefined';\n key = value;\n } else {\n value = this.state.stateValue.toString();\n key = value;\n }\n\n content = (\n <div style={divStyle}>\n {labelControl}\n <div style={{ display: 'flex', alignItems: 'baseline', gap: 4 }}>\n <Box\n sx={blinkStyle}\n key={this.props.schema.blinkOnUpdate ? key : undefined}\n >\n {value}\n </Box>\n {unit ? <span style={{ opacity: 0.7, fontSize: 'smaller' }}>{unit}</span> : null}\n </div>\n </div>\n );\n }\n }\n\n return content;\n }\n}\n\nexport default ConfigState;\n","import React, { type JSX } from 'react';\n\nimport { Box } from '@mui/material';\n\nimport { type IobTheme, Utils } from '@iobroker/adapter-react-v5';\n\nimport type { ConfigItemStaticDivider } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\n\nconst styles: {\n fullWidth: (theme: IobTheme) => React.CSSProperties;\n primary: (theme: IobTheme) => React.CSSProperties;\n secondary: (theme: IobTheme) => React.CSSProperties;\n} = {\n fullWidth: (theme: IobTheme): React.CSSProperties => ({\n width: '100%',\n backgroundColor: theme.palette.mode === 'dark' ? '#FFF' : '#000',\n borderStyle: 'hidden',\n }),\n primary: (theme: IobTheme): React.CSSProperties => ({\n backgroundColor: theme.palette.primary.main,\n }),\n secondary: (theme: IobTheme): React.CSSProperties => ({\n backgroundColor: theme.palette.secondary.main,\n }),\n};\n\ninterface ConfigInstanceSelectProps extends ConfigGenericProps {\n schema: ConfigItemStaticDivider;\n}\n\nclass ConfigStaticDivider extends ConfigGeneric<ConfigInstanceSelectProps, ConfigGenericState> {\n renderItem(): JSX.Element {\n return (\n <Box\n component=\"hr\"\n sx={Utils.getStyle(\n this.props.oContext.theme,\n styles.fullWidth,\n this.props.schema.color === 'primary'\n ? styles.primary\n : this.props.schema.color === 'secondary'\n ? styles.secondary\n : {\n backgroundColor:\n this.props.schema.color || (this.props.oContext.themeType === 'dark' ? '#333' : '#ddd'),\n },\n {\n height: this.props.schema.color ? this.props.schema.height || 2 : this.props.schema.height || 1,\n },\n )}\n />\n );\n }\n}\n\nexport default ConfigStaticDivider;\n","import React, { type JSX } from 'react';\n\nimport { Box } from '@mui/material';\n\nimport type { IobTheme } from '@iobroker/adapter-react-v5';\n\nimport type { ConfigItemStaticHeader } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\n\nconst styles: Record<string, any> = {\n header: (theme: IobTheme): React.CSSProperties => ({\n width: '100%',\n background: theme.palette.primary.main,\n color: theme.palette.primary.contrastText,\n padding: '4px !important',\n borderRadius: '3px',\n marginBlockEnd: 0,\n marginBlockStart: 0,\n }),\n};\n\ninterface ConfigInstanceSelectProps extends ConfigGenericProps {\n schema: ConfigItemStaticHeader;\n}\n\nclass ConfigStaticHeader extends ConfigGeneric<ConfigInstanceSelectProps, ConfigGenericState> {\n renderItem(/* error: string, disabled: boolean, defaultValue */): JSX.Element {\n let component: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' = 'h5';\n switch ((this.props.schema.size || 5).toString()) {\n case '1':\n component = 'h1';\n break;\n\n case '2':\n component = 'h2';\n break;\n\n case '3':\n component = 'h3';\n break;\n\n case '4':\n component = 'h4';\n break;\n\n case '5':\n default:\n component = 'h5';\n break;\n }\n return (\n <Box\n component={component}\n sx={styles.header}\n >\n {this.getText(this.props.schema.label || this.props.schema.text, this.props.schema.noTranslation)}\n </Box>\n );\n }\n}\n\nexport default ConfigStaticHeader;\n","import React, { type JSX } from 'react';\n\nimport type { ConfigItemStaticImage } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\n\ninterface ConfigInstanceSelectProps extends ConfigGenericProps {\n schema: ConfigItemStaticImage;\n}\n\nclass ConfigStaticImage extends ConfigGeneric<ConfigInstanceSelectProps, ConfigGenericState> {\n renderItem(/* error: string, disabled: boolean, defaultValue */): JSX.Element {\n let src = this.props.schema.src;\n if (\n src &&\n !src.startsWith('.') &&\n !src.startsWith('http') &&\n !src.startsWith(`adapter/${this.props.oContext.adapterName}/`) &&\n !src.startsWith(`./adapter/${this.props.oContext.adapterName}/`)\n ) {\n src = `adapter/${this.props.oContext.adapterName}/${src}`;\n }\n\n return (\n <img\n src={src}\n style={{ cursor: this.props.schema.href ? 'pointer' : undefined, width: '100%', height: '100%' }}\n onClick={\n this.props.schema.href\n ? () => this.props.schema.href && window.open(this.props.schema.href, '_blank')\n : null\n }\n alt=\"\"\n />\n );\n }\n}\n\nexport default ConfigStaticImage;\n","import React, { type JSX } from 'react';\n\nimport { Box, Checkbox } from '@mui/material';\nimport { ContentCopy } from '@mui/icons-material';\nimport { I18n, Icon, type IobTheme, Utils } from '@iobroker/adapter-react-v5';\n\nimport type { ConfigItemStaticInfo } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\n\nfunction valueBlinkOnce(theme: IobTheme, force: boolean, color?: string | boolean): any {\n if (typeof color === 'string') {\n return {\n '@keyframes newValueAnimationOnceColor': {\n '0%': {\n color: force ? `${color} !important` : color,\n },\n '100%': {\n color:\n theme.palette.mode === 'dark'\n ? force\n ? '#fff !important'\n : '#fff'\n : force\n ? '#000 !important'\n : '#000',\n },\n },\n animation: 'newValueAnimationOnceColor 2s ease-in-out',\n };\n }\n return {\n '@keyframes newValueAnimationOnce': {\n '0%': {\n color: force ? `#00f900 !important` : '#00f900',\n },\n '80%': {\n color:\n theme.palette.mode === 'dark'\n ? force\n ? `#518851 !important`\n : '#518851'\n : force\n ? `#008000 !important`\n : '#008000',\n },\n '100%': {\n color:\n theme.palette.mode === 'dark'\n ? force\n ? '#fff !important'\n : '#fff'\n : force\n ? '#000 !important'\n : '#000',\n },\n },\n animation: 'newValueAnimationOnce 2s ease-in-out',\n };\n}\n\nfunction valueBlink(theme: IobTheme, color?: string | boolean): any {\n if (typeof color === 'string') {\n return {\n '@keyframes blinkAnimationColor': {\n '0%': {\n color,\n },\n '100%': {\n color: theme.palette.mode === 'dark' ? '#fff' : '#000',\n },\n },\n animation: 'blinkAnimationColor 2s ease-in-out infinite',\n };\n }\n return {\n '@keyframes blinkAnimation': {\n '0%': {\n color: '#00f900',\n },\n '80%': {\n color: theme.palette.mode === 'dark' ? '#518851' : '#008000',\n },\n '100%': {\n color: theme.palette.mode === 'dark' ? '#fff' : '#000',\n },\n },\n animation: 'blinkAnimation 2s ease-in-out infinite',\n };\n}\n\nconst styles: Record<string, any> = {\n label: {\n fontWeight: 'bold',\n whiteSpace: 'nowrap',\n },\n valueImage: {\n maxHeight: '100%',\n },\n valueAndUnit: {\n display: 'flex',\n gap: 4,\n alignItems: 'baseline',\n },\n value: {},\n unit: {\n fontSize: 'smaller',\n opacity: 0.7,\n },\n};\n\ninterface ConfigStaticInfoProps extends ConfigGenericProps {\n schema: ConfigItemStaticInfo;\n}\n\nclass ConfigStaticInfo extends ConfigGeneric<ConfigStaticInfoProps, ConfigGenericState> {\n renderItem(_error: string): JSX.Element {\n let label: string | JSX.Element | JSX.Element[] = this.getText(\n this.props.schema.text || this.props.schema.label,\n this.props.schema.noTranslation,\n );\n if (this.props.schema.addColon && typeof label === 'string' && !label.trim().endsWith(':')) {\n label = `${label.trim()}:`;\n }\n\n if (\n label &&\n (label.includes('<a ') || label.includes('<br') || label.includes('<b>') || label.includes('<i>'))\n ) {\n label = Utils.renderTextWithA(label);\n }\n let fontSize: number | undefined;\n if (this.props.schema.size === 'normal') {\n fontSize = 16;\n } else if (this.props.schema.size === 'large') {\n fontSize = 20;\n } else if (typeof this.props.schema.size === 'number') {\n fontSize = this.props.schema.size;\n }\n\n const divStyle: React.CSSProperties = {\n width: '100%',\n height: '100%',\n display: 'flex',\n alignItems: 'center',\n position: 'relative',\n fontSize,\n };\n\n if (this.props.schema.narrow) {\n divStyle.gap = 8;\n } else {\n divStyle.justifyContent = 'space-between';\n }\n\n let value: React.JSX.Element;\n let valueTxt: string;\n if (this.props.schema.data && typeof this.props.schema.data === 'object' && this.props.schema.data.en) {\n valueTxt = this.getText(this.props.schema.data);\n } else if (\n typeof this.props.schema.data === 'object' ||\n this.props.schema.data === undefined ||\n this.props.schema.data === null\n ) {\n valueTxt = JSON.stringify(this.props.schema.data);\n } else if (typeof this.props.schema.data === 'number') {\n valueTxt = this.props.schema.data.toString();\n if (this.props.oContext.isFloatComma) {\n valueTxt = valueTxt.replace('.', ',');\n }\n } else if (!this.props.schema.booleanAsCheckbox || typeof this.props.schema.data !== 'boolean') {\n valueTxt = this.props.schema.data.toString();\n }\n let multiLine = false;\n\n if (this.props.schema.booleanAsCheckbox && typeof this.props.schema.data === 'boolean') {\n value = (\n <Checkbox\n checked={!!value}\n disabled\n size={\n this.props.schema.size === 'small'\n ? 'small'\n : this.props.schema.size === 'large'\n ? 'large'\n : undefined\n }\n />\n );\n } else if (valueTxt.startsWith('data:image/')) {\n value = (\n <div style={{ ...styles.value, ...styles.valueImage, ...(this.props.schema.styleValue || undefined) }}>\n <Icon src={valueTxt} />\n </div>\n );\n } else {\n const valStyle: React.CSSProperties = { ...styles.value, ...(this.props.schema.styleValue || undefined) };\n if (this.props.schema.html) {\n value = (\n <div\n style={valStyle}\n dangerouslySetInnerHTML={{ __html: valueTxt }}\n />\n );\n } else {\n if (Array.isArray(this.props.schema.data)) {\n multiLine = true;\n value = (\n <div style={valStyle}>\n {this.props.schema.data.map((it, i) => (\n <div key={i}>\n {typeof it === 'object' || it === null || it === undefined\n ? JSON.stringify(it)\n : it}\n </div>\n ))}\n </div>\n );\n } else {\n if (valueTxt.includes('\\n')) {\n multiLine = true;\n value = <div style={valStyle}>{Utils.renderTextWithA(valueTxt)}</div>;\n } else {\n value = <div style={valStyle}>{valueTxt}</div>;\n }\n }\n }\n }\n\n if (this.props.schema.blinkOnUpdate && this.props.schema.blink) {\n const style1 = valueBlinkOnce(this.props.oContext.theme, true, this.props.schema.blinkOnUpdate);\n const style2 = valueBlink(this.props.oContext.theme, this.props.schema.blink);\n value = (\n <Box\n key={valueTxt}\n sx={{ ...style1, ...style2 }}\n >\n {value}\n </Box>\n );\n } else if (this.props.schema.blinkOnUpdate) {\n const style = valueBlinkOnce(this.props.oContext.theme, false, this.props.schema.blinkOnUpdate);\n value = (\n <Box\n key={valueTxt}\n sx={style}\n >\n {value}\n </Box>\n );\n } else if (this.props.schema.blink) {\n const style = valueBlink(this.props.oContext.theme, this.props.schema.blink);\n value = <Box sx={style}>{value}</Box>;\n }\n\n if (this.props.schema.unit) {\n value = (\n <div style={styles.valueAndUnit}>\n {value}\n <div style={{ ...styles.unit, ...(this.props.schema.styleUnit || undefined) }}>\n {this.getText(this.props.schema.unit, this.props.schema.noTranslation)}\n </div>\n </div>\n );\n }\n\n let labelIcon: React.JSX.Element | undefined;\n if (this.props.schema.labelIcon) {\n labelIcon = (\n <Icon\n src={this.props.schema.labelIcon}\n style={{ marginRight: 4 }}\n />\n );\n }\n let copyButton: React.JSX.Element | undefined;\n if (this.props.schema.copyToClipboard) {\n copyButton = (\n <ContentCopy\n className=\"staticCopyButton\"\n style={{\n position: 'absolute',\n top: 'calc(50% - 12px)',\n right: 0,\n cursor: 'pointer',\n }}\n onClick={() => {\n Utils.copyToClipboard(valueTxt);\n window.alert(I18n.t('ra_Copied'));\n }}\n />\n );\n }\n\n const boxStyle: Record<string, any> = {\n '& .staticCopyButton': {\n display: 'none',\n },\n '& .staticCopyButton:action': {\n transform: 'scale(0.9)',\n },\n '&:hover .staticCopyButton': {\n display: 'block',\n },\n };\n if (this.props.schema.highlight) {\n boxStyle['&:hover'] = {\n backgroundColor: this.props.oContext.themeType === 'dark' ? '#51515180' : '#b8b8b880',\n };\n }\n if (multiLine) {\n divStyle.alignItems = 'top';\n }\n\n return (\n <Box\n component=\"div\"\n style={divStyle}\n sx={boxStyle}\n >\n <div style={{ ...styles.label, ...(this.props.schema.styleLabel || undefined) }}>\n {labelIcon}\n {label}\n </div>\n {value}\n {copyButton}\n </Box>\n );\n }\n}\n\nexport default ConfigStaticInfo;\n","import React, { type JSX } from 'react';\n\nimport { Box, Button } from '@mui/material';\n\nimport { type IobTheme, Utils } from '@iobroker/adapter-react-v5';\n\nimport type { ConfigItemStaticText } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\n\nconst styles: Record<string, any> = {\n fullWidth: {\n height: '100%',\n width: '100%',\n },\n link: (theme: IobTheme): React.CSSProperties => ({\n textDecoration: 'underline',\n color: theme.palette.mode === 'dark' ? '#4dabf5' : '#254e72',\n cursor: 'pointer',\n }),\n};\n\n// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\nfunction onLink(href: string, target: '_blank' | '_self' | string, instanceId: string): void {\n let _target;\n let url = '';\n if (!href) {\n url = `#tab-instances/config/${instanceId}`;\n _target = target || '_self';\n } else if (href.toString().startsWith('#')) {\n _target = target || '_self';\n url = href;\n } else if (href.toString().startsWith('/')) {\n _target = target || '_self';\n url = href;\n } else if (href.startsWith('http://') || href.startsWith('https://')) {\n _target = target || '_blank';\n url = href;\n } else {\n url = `#tab-instances/config/${instanceId}/${href}`;\n _target = target || '_self';\n }\n if (_target === '_self') {\n // close dialog\n setTimeout(\n (_url: string) => {\n if (_url.startsWith('#')) {\n window.location.hash = _url;\n } else if (_url.startsWith('/')) {\n url = `${window.location.protocol}:${window.location.host}${url}`;\n } else if (_url.startsWith('http://') || _url.startsWith('https://')) {\n window.location.href = _url;\n }\n },\n 100,\n url,\n );\n } else {\n if (url.startsWith('#')) {\n url = `${window.location.protocol}:${window.location.host}${window.location.pathname}${url}`;\n } else if (url.startsWith('/')) {\n url = `${window.location.protocol}:${window.location.host}${url}`;\n }\n\n window.open(url, _target);\n }\n}\n\ninterface ConfigStaticTextProps extends ConfigGenericProps {\n schema: ConfigItemStaticText;\n}\n\nclass ConfigStaticText extends ConfigGeneric<ConfigStaticTextProps, ConfigGenericState> {\n renderItem(_error: string, disabled: boolean /* , defaultValue */): JSX.Element {\n if (this.props.schema.button) {\n const icon = this.getIcon();\n return (\n <Button\n variant={this.props.schema.variant || undefined}\n color={this.props.schema.color || 'grey'}\n style={{ ...styles.fullWidth, ...(this.props.schema.controlStyle || undefined) }}\n disabled={disabled}\n startIcon={icon}\n onClick={\n this.props.schema.href\n ? () => {\n // calculate one more time just before call\n const href = this.props.schema.href\n ? this.getText(this.props.schema.href, true)\n : null;\n if (href) {\n if (this.props.oContext.onBackEndCommand) {\n this.props.oContext.onBackEndCommand({\n command: 'link',\n url: href,\n target: this.props.schema.target,\n close: this.props.schema.close,\n });\n } else {\n onLink(\n href,\n this.props.schema.target,\n `${this.props.oContext.adapterName}.${this.props.oContext.instance}`,\n );\n }\n }\n }\n : null\n }\n >\n {this.getText(this.props.schema.text || this.props.schema.label, this.props.schema.noTranslation)}\n </Button>\n );\n }\n let text: string | JSX.Element | JSX.Element[] = this.getText(\n this.props.schema.text || this.props.schema.label,\n this.props.schema.noTranslation,\n );\n if (text && (text.includes('<a ') || text.includes('<br') || text.includes('<b>') || text.includes('<i>'))) {\n text = Utils.renderTextWithA(text);\n }\n\n return (\n <Box\n component=\"span\"\n style={{ ...(this.props.schema.controlStyle || undefined) }}\n sx={this.props.schema.href ? styles.link : undefined}\n onClick={\n this.props.schema.href\n ? () => {\n // calculate one more time just before call\n const href = this.props.schema.href ? this.getText(this.props.schema.href, true) : null;\n if (href) {\n if (this.props.oContext.onBackEndCommand) {\n this.props.oContext.onBackEndCommand({\n command: 'link',\n url: href,\n target: this.props.schema.target || '_blank',\n close: this.props.schema.close,\n });\n } else {\n onLink(\n href,\n this.props.schema.target || '_blank',\n `${this.props.oContext.adapterName}.${this.props.oContext.instance}`,\n );\n }\n }\n }\n : null\n }\n >\n {text}\n </Box>\n );\n }\n}\n\nexport default ConfigStaticText;\n","import React, { createRef, type JSX, type RefObject } from 'react';\nimport Dropzone from 'react-dropzone';\n\nimport {\n Accordion,\n AccordionDetails,\n AccordionSummary,\n Button,\n Card,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n Grid2,\n IconButton,\n InputAdornment,\n Paper,\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TableHead,\n TableRow,\n TableSortLabel,\n TextField,\n Toolbar,\n Tooltip,\n Typography,\n FormHelperText,\n} from '@mui/material';\n\nimport {\n Add as AddIcon,\n Delete as DeleteIcon,\n Close as CloseIcon,\n ArrowUpward as UpIcon,\n ArrowDownward as DownIcon,\n FilterAlt as IconFilterOn,\n FilterAltOff as IconFilterOff,\n ContentCopy as CopyContentIcon,\n Download as ExportIcon,\n Warning as ErrorIcon,\n UploadFile as ImportIcon,\n Close as IconClose,\n ExpandMore as ExpandMoreIcon,\n} from '@mui/icons-material';\n\nimport { I18n } from '@iobroker/adapter-react-v5';\n\nimport type { ConfigItemTableIndexed, ConfigItemPanel, ConfigItemTable } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\nimport ConfigPanel from './ConfigPanel';\n\nconst MAX_SIZE = 1024 * 1024; // 1MB\n\nconst styles: Record<string, React.CSSProperties> = {\n fullWidth: {\n width: '100%',\n },\n root: {\n width: '100%',\n },\n paper: {\n width: '100%',\n marginBottom: 16,\n backgroundColor: 'rgba(255, 255, 255, 0.1)',\n },\n headerText: {\n width: '100%',\n },\n table: {\n minWidth: 750,\n },\n visuallyHidden: {\n border: 0,\n clip: 'rect(0 0 0 0)',\n height: 1,\n margin: -1,\n overflow: 'hidden',\n padding: 0,\n position: 'absolute',\n top: 20,\n width: 1,\n },\n label: {\n display: 'flex',\n justifyContent: 'space-between',\n },\n // highlight: (theme: IobTheme): React.CSSProperties => (theme.palette.mode === 'light'\n // ? {\n // color: theme.palette.secondary.main,\n // // backgroundColor: lighten(theme.palette.secondary.light, 0.85),\n // }\n // : {\n // color: theme.palette.text.primary,\n // backgroundColor: theme.palette.secondary.dark,\n // }),\n title: {\n flex: '1 1 100%',\n },\n rootTool: {\n paddingLeft: 16,\n paddingRight: 8,\n },\n silver: {\n opacity: 0.2,\n },\n flex: {\n display: 'flex',\n alignItems: 'baseline',\n },\n filteredOut: {\n padding: 10,\n display: 'flex',\n textAlign: 'center',\n },\n buttonEmpty: {\n width: 34,\n display: 'inline-block',\n },\n buttonCell: {\n whiteSpace: 'nowrap',\n },\n\n dropZone: {\n width: '100%',\n height: 100,\n position: 'relative',\n },\n dropZoneEmpty: {},\n uploadDiv: {\n position: 'relative',\n width: '100%',\n minHeight: 300,\n opacity: 0.9,\n marginTop: 30,\n cursor: 'pointer',\n outline: 'none',\n },\n uploadDivDragging: {\n opacity: 1,\n background: 'rgba(128,255,128,0.1)',\n },\n image: {\n objectFit: 'contain',\n margin: 'auto',\n display: 'flex',\n width: '100%',\n height: '100%',\n },\n uploadCenterDiv: {\n margin: 5,\n border: '3px dashed grey',\n borderRadius: 5,\n width: 'calc(100% - 10px)',\n height: 'calc(100% - 10px)',\n minHeight: 300,\n position: 'relative',\n display: 'flex',\n },\n uploadCenterIcon: {\n paddingTop: 10,\n width: 48,\n height: 48,\n },\n uploadCenterText: {\n fontSize: 16,\n },\n uploadCenterTextAndIcon: {\n textAlign: 'center',\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n },\n buttonRemoveWrapper: {\n position: 'absolute',\n zIndex: 222,\n right: 0,\n },\n error: {\n border: '2px solid red',\n boxSizing: 'border-box',\n },\n tooltip: {\n pointerEvents: 'none',\n },\n};\n\nfunction objectToArray(\n object: Record<string, any>,\n nameOfFirstAttr: string,\n nameOfSecondAttr?: string,\n): Record<string, any>[] {\n nameOfFirstAttr = nameOfFirstAttr || 'key';\n\n const array: Record<string, any>[] = [];\n Object.keys(object).forEach(key => {\n const item: Record<string, any> = {};\n item[nameOfFirstAttr] = key;\n\n if (nameOfSecondAttr) {\n item[nameOfSecondAttr] = object[key];\n array.push(item);\n } else {\n array.push(Object.assign(item, object[key]));\n }\n });\n\n return array;\n}\n\nfunction arrayToObject(\n array: Record<string, any>[],\n nameOfFirstAttr: string,\n nameOfSecondAttr?: string,\n): Record<string, any> {\n nameOfFirstAttr = nameOfFirstAttr || 'key';\n\n const object: Record<string, any> = {};\n\n array.forEach((row: Record<string, any>) => {\n let key = row[nameOfFirstAttr];\n if (key === null || key === undefined) {\n key = '';\n }\n delete row[nameOfFirstAttr];\n\n if (nameOfSecondAttr) {\n object[key] = row[nameOfSecondAttr];\n } else {\n object[key] = row;\n }\n });\n\n return object;\n}\n\ninterface ConfigTableProps extends ConfigGenericProps {\n schema: ConfigItemTable;\n}\n\ninterface ConfigTableState extends ConfigGenericState {\n value: Record<string, any>[];\n visibleValue: number[] | null;\n orderBy: string;\n order: 'asc' | 'desc';\n iteration: number;\n filterOn: string[];\n errorMessage: string;\n showImportDialog: boolean;\n showTypeOfImportDialog: Record<string, any>[] | false;\n instanceObj: ioBroker.InstanceObject;\n customObj: Record<string, any>;\n uploadFile: boolean | 'dragging';\n icon: boolean;\n width: number;\n}\n\nfunction encrypt(secret: string, value: string): string {\n let result = '';\n for (let i = 0; i < value.length; i++) {\n result += String.fromCharCode(secret[i % secret.length].charCodeAt(0) ^ value.charCodeAt(i));\n }\n return result;\n}\n\nfunction decrypt(secret: string, value: string): string {\n let result = '';\n for (let i = 0; i < value.length; i++) {\n result += String.fromCharCode(secret[i % secret.length].charCodeAt(0) ^ value.charCodeAt(i));\n }\n return result;\n}\n\nclass ConfigTable extends ConfigGeneric<ConfigTableProps, ConfigTableState> {\n private readonly filterRefs: Record<string, RefObject<HTMLInputElement>>;\n\n private typingTimer: ReturnType<typeof setTimeout> | null = null;\n\n private resizeTimeout: ReturnType<typeof setTimeout> | null = null;\n\n private secret: string = 'Zgfr56gFe87jJOM';\n\n private readonly refDiv: React.RefObject<HTMLDivElement>;\n\n constructor(props: ConfigTableProps) {\n super(props);\n this.filterRefs = {};\n this.props.schema.items = this.props.schema.items || [];\n this.props.schema.items.forEach((el: ConfigItemTableIndexed) => {\n if (el.filter) {\n this.filterRefs[el.attr] = createRef();\n }\n });\n\n this.refDiv = React.createRef();\n }\n\n /**\n * React lifecycle hook, called once as component is mounted\n */\n async componentDidMount(): Promise<void> {\n super.componentDidMount();\n const _value: Record<string, any>[] | Record<string, any> =\n ConfigGeneric.getValue(this.props.data, this.props.attr) || [];\n let value: Record<string, any>[];\n\n // if the list is given as an object\n if (this.props.schema.objKeyName) {\n value = objectToArray(\n _value as Record<string, any>,\n this.props.schema.objKeyName,\n this.props.schema.objValueName,\n );\n } else {\n value = _value as Record<string, any>[];\n }\n\n if (!Array.isArray(value)) {\n value = [];\n }\n\n if (this.props.schema.encryptedAttributes) {\n const systemConfig = await this.props.oContext.socket.getCompactSystemConfig();\n this.secret = systemConfig?.native.secret || this.secret;\n\n _value.forEach((el: Record<string, any>) => {\n this.props.schema.encryptedAttributes.forEach((attr: string) => {\n if (el[attr]) {\n el[attr] = decrypt(this.secret, el[attr]);\n }\n });\n });\n }\n\n this.setState(\n {\n value,\n visibleValue: null,\n orderBy: /* this.props.schema.items.length ? this.props.schema.items[0].attr : */ '',\n order: 'asc',\n iteration: 0,\n filterOn: [],\n width: 0,\n },\n () => this.validateUniqueProps(),\n );\n }\n\n componentWillUnmount(): void {\n if (this.typingTimer) {\n clearTimeout(this.typingTimer);\n this.typingTimer = null;\n }\n if (this.resizeTimeout) {\n clearTimeout(this.resizeTimeout);\n this.resizeTimeout = null;\n }\n super.componentWillUnmount();\n }\n\n itemTable(attrItem: string, data: Record<string, any>, idx: number): JSX.Element | null {\n const { schema } = this.props;\n const schemaForAttribute =\n schema.items && schema.items.find((el: ConfigItemTableIndexed) => el.attr === attrItem);\n\n if (!schemaForAttribute) {\n return null;\n }\n\n const schemaItem = {\n items: {\n [attrItem]: schemaForAttribute,\n },\n };\n\n return (\n <ConfigPanel\n oContext={this.props.oContext}\n alive={this.props.alive}\n arrayIndex={idx}\n changed={this.props.changed}\n common={this.props.common}\n custom\n data={data}\n globalData={this.props.data}\n index={idx + this.state.iteration}\n onChange={(attr: string, valueChange: any) => {\n const newObj: Record<string, any>[] = JSON.parse(JSON.stringify(this.state.value));\n newObj[idx][attr] = valueChange;\n this.setState({ value: newObj }, () => {\n this.validateUniqueProps();\n this.onChangeWrapper(newObj, true);\n });\n }}\n onError={(error: string, attr?: string) => this.onError(error, attr)}\n originalData={this.props.originalData}\n schema={schemaItem as ConfigItemPanel}\n table\n themeName={this.props.themeName}\n />\n );\n }\n\n /**\n * Validate that columns configured in `uniqueColumns` have unique values\n */\n validateUniqueProps(): void {\n if (!this.props.schema.uniqueColumns) {\n return;\n }\n\n for (const uniqueCol of this.props.schema.uniqueColumns) {\n const allVals: (string | number)[] = [];\n const found = this.state.value.find(entry => {\n const val = entry[uniqueCol];\n if (allVals.includes(val)) {\n this.onError(uniqueCol, 'is not unique');\n this.setState({\n errorMessage: I18n.t('Non-allowed duplicate entry \"%s\" in column \"%s\"', val, uniqueCol),\n });\n return true;\n }\n allVals.push(val);\n return false;\n });\n\n if (!found) {\n this.onError(uniqueCol, null);\n this.setState({ errorMessage: '' });\n }\n }\n }\n\n static descendingComparator(a: Record<string, any>, b: Record<string, any>, orderBy: string): number {\n if (b[orderBy] < a[orderBy]) {\n return -1;\n }\n if (b[orderBy] > a[orderBy]) {\n return 1;\n }\n return 0;\n }\n\n static getComparator(\n order: 'desc' | 'asc',\n orderBy: string,\n ): (a: Record<string, any>, b: Record<string, any>) => number {\n return order === 'desc'\n ? (a: Record<string, any>, b: Record<string, any>) => ConfigTable.descendingComparator(a, b, orderBy)\n : (a: Record<string, any>, b: Record<string, any>) => -ConfigTable.descendingComparator(a, b, orderBy);\n }\n\n static getFilterValue(el: React.RefObject<HTMLInputElement>): string {\n return (el?.current?.children[0]?.children[0] as HTMLInputElement)?.value;\n }\n\n static setFilterValue(el: React.RefObject<HTMLInputElement>, filterValue: string): string {\n return ((el.current.children[0].children[0] as HTMLInputElement).value = filterValue);\n }\n\n handleRequestSort = (property: string, orderCheck: boolean = false): void => {\n const { order, orderBy } = this.state;\n //if (orderBy || 'asc') {\n const isAsc = orderBy === property && order === 'asc';\n const newOrder = orderCheck ? order : isAsc ? 'desc' : 'asc';\n const newValue = this.stableSort(newOrder, property);\n this.setState(\n { value: newValue, order: newOrder, orderBy: property, iteration: this.state.iteration + 10000 },\n () => this.applyFilter(false, newValue),\n );\n //}\n };\n\n stableSort = (order: 'desc' | 'asc', orderBy: string): Record<string, any>[] => {\n const { value } = this.state;\n const comparator = ConfigTable.getComparator(order, orderBy);\n const stabilizedThis = value.map((el, index) => ({ el, index }));\n\n stabilizedThis.sort((a, b) => {\n const order_ = comparator(a.el, b.el);\n if (order_ !== 0) {\n return order_;\n }\n return a.index - b.index;\n });\n\n return stabilizedThis.map(el => el.el);\n };\n\n renderShowHideFilter(headCell: ConfigItemTableIndexed): React.JSX.Element | null {\n if (!headCell.filter) {\n return null;\n }\n return (\n <IconButton\n title={I18n.t('ra_Show/hide filter input')}\n size=\"small\"\n onClick={() => {\n const filterOn = [...this.state.filterOn];\n const pos = this.state.filterOn.indexOf(headCell.attr);\n if (pos === -1) {\n filterOn.push(headCell.attr);\n } else {\n filterOn.splice(pos, 1);\n }\n this.setState({ filterOn }, () => {\n if (pos && ConfigTable.getFilterValue(this.filterRefs[headCell.attr])) {\n ConfigTable.setFilterValue(this.filterRefs[headCell.attr], '');\n this.applyFilter();\n }\n });\n }}\n >\n {this.state.filterOn.includes(headCell.attr) ? <IconFilterOff /> : <IconFilterOn />}\n </IconButton>\n );\n }\n\n renderImportExportButtons(schema: ConfigItemTable): React.JSX.Element {\n return (\n <>\n {!schema.noDelete && schema.import ? (\n <Tooltip\n title={I18n.t('ra_Import data from %s file', 'CSV')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n size=\"small\"\n onClick={() => this.setState({ showImportDialog: true })}\n >\n <ImportIcon />\n </IconButton>\n </Tooltip>\n ) : null}\n {schema.export ? (\n <Tooltip\n title={I18n.t('ra_Export data to %s file', 'CSV')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n size=\"small\"\n onClick={() => this.onExport()}\n >\n <ExportIcon />\n </IconButton>\n </Tooltip>\n ) : null}\n <IconButton\n disabled\n size=\"small\"\n >\n <DeleteIcon />\n </IconButton>\n </>\n );\n }\n\n renderAddButton(doAnyFilterSet: boolean): React.JSX.Element {\n return (\n <Tooltip\n title={doAnyFilterSet ? I18n.t('ra_Cannot add items with set filter') : I18n.t('ra_Add row')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <span>\n <IconButton\n size=\"small\"\n color=\"primary\"\n disabled={!!doAnyFilterSet && !this.props.schema.allowAddByFilter}\n onClick={this.onAdd}\n >\n <AddIcon />\n </IconButton>\n </span>\n </Tooltip>\n );\n }\n\n enhancedTableHead(buttonsWidth: number, doAnyFilterSet: boolean): JSX.Element {\n const { schema } = this.props;\n const { order, orderBy } = this.state;\n return (\n <TableHead>\n <TableRow>\n {schema.items?.map((headCell: ConfigItemTableIndexed, i: number) =>\n this.renderOneFilter({\n schema,\n style: { width: headCell.width },\n showAddButton: !i && !schema.noDelete,\n headCell,\n order,\n orderBy,\n index: i,\n doAnyFilterSet,\n }),\n )}\n {!schema.noDelete && (\n <TableCell\n style={{\n paddingLeft: 20,\n paddingRight: 20,\n width: buttonsWidth,\n textAlign: 'right',\n }}\n padding=\"checkbox\"\n >\n {this.renderImportExportButtons(schema)}\n </TableCell>\n )}\n </TableRow>\n </TableHead>\n );\n }\n\n onDelete = (index: number) => (): void => {\n const newValue: Record<string, any>[] = JSON.parse(JSON.stringify(this.state.value));\n newValue.splice(index, 1);\n\n this.setState({ value: newValue, iteration: this.state.iteration + 10_000 }, () =>\n this.applyFilter(false, null, () => this.onChangeWrapper(newValue)),\n );\n };\n\n onExport(): void {\n const { schema } = this.props;\n const { value } = this.state;\n const cols = schema.items.map((it: ConfigItemTableIndexed) => it.attr);\n const lines = [cols.join(';')];\n value.forEach(row => {\n const line: string[] = [];\n schema.items.forEach((it: ConfigItemTableIndexed) => {\n if (row[it.attr]?.includes(';')) {\n line.push(`\"${row[it.attr]}\"`);\n } else {\n line.push(row[it.attr] === undefined || row[it.attr] === null ? '' : row[it.attr]);\n }\n });\n lines.push(line.join(';'));\n });\n const el = document.createElement('a');\n el.setAttribute('href', `data:text/csv;charset=utf-8,${encodeURIComponent(lines.join('\\n'))}`);\n const now = new Date();\n el.setAttribute(\n 'download',\n `${now.getFullYear()}_${(now.getMonth() + 1).toString().padStart(2, '0')}_${now.getDate().toString().padStart(2, '0')}_${this.props.oContext.adapterName}.${this.props.oContext.instance}_${this.props.attr}.csv`,\n );\n\n el.style.display = 'none';\n document.body.appendChild(el);\n\n el.click();\n\n document.body.removeChild(el);\n }\n\n onImport(text: string): void {\n const lines = text.split('\\n').map((line: string) => line.replace('\\r', '').trim());\n // the first line is header\n const { schema } = this.props;\n\n const header = lines\n .shift()\n .split(';')\n .filter(it => it && schema.items.find((it2: ConfigItemTableIndexed) => it2.attr === it));\n\n const values: Record<string, any>[] = [];\n lines.forEach((line: string) => {\n const parts: string[] = line.split(';');\n const obj: Record<string, string | number | boolean> = {};\n for (let p = 0; p < parts.length; p++) {\n let value = parts[p];\n if (value.startsWith('\"')) {\n value = value.substring(1);\n while (p < parts.length && !value.endsWith('\"')) {\n value += `;${parts[++p]}`;\n }\n value = value.substring(0, value.length - 1);\n }\n\n let val: string | number | boolean = value;\n\n if (value === 'true') {\n val = true;\n } else if (value === 'false') {\n val = false;\n } else if (window.isFinite(value as any as number)) {\n const attr = this.props.schema.items.find((it: ConfigItemTableIndexed) => it.attr === header[p]);\n if (attr && attr.type === 'number') {\n // if a type of attribute is a \"number\"\n val = parseFloat(value);\n } else {\n val = value;\n }\n } else {\n val = value;\n }\n\n obj[header[p]] = val;\n }\n values.push(obj);\n });\n\n if (values.length) {\n if (this.state.value?.length) {\n this.setState({ showTypeOfImportDialog: values, showImportDialog: false });\n } else {\n this.setState({ value: values, showImportDialog: false });\n }\n } else {\n window.alert('ra_No data found in file');\n }\n }\n\n onClone = (index: number) => (): void => {\n const newValue: Record<string, any>[] = JSON.parse(JSON.stringify(this.state.value));\n const cloned: Record<string, any> = JSON.parse(JSON.stringify(newValue[index]));\n if (typeof this.props.schema.clone === 'string' && typeof cloned[this.props.schema.clone] === 'string') {\n let i = 1;\n let text = cloned[this.props.schema.clone];\n const pattern = text.match(/(\\d+)$/);\n if (pattern) {\n text = text.replace(pattern[0], '');\n i = parseInt(pattern[0], 10) + 1;\n } else {\n text += '_';\n }\n while (\n newValue.find(\n (it: Record<string, any>) => it[this.props.schema.clone as string] === text + i.toString(),\n )\n ) {\n i++;\n }\n cloned[this.props.schema.clone] = `${cloned[this.props.schema.clone]}_${i}`;\n }\n\n newValue.splice(index, 0, cloned);\n\n this.setState({ value: newValue, iteration: this.state.iteration + 10000 }, () =>\n this.applyFilter(false, null, () => this.onChangeWrapper(newValue)),\n );\n };\n\n onChangeWrapper = (newValue: Record<string, any>[], updateVisible?: boolean): void => {\n if (this.typingTimer) {\n clearTimeout(this.typingTimer);\n }\n\n this.typingTimer = setTimeout(\n (value, _updateVisible) => {\n this.typingTimer = null;\n\n let mayBePromise: Promise<void> | void;\n if (this.props.schema.encryptedAttributes) {\n const _value = JSON.parse(JSON.stringify(value));\n _value.forEach((el: Record<string, any>) => {\n this.props.schema.encryptedAttributes.forEach((attr: string) => {\n if (el[attr]) {\n el[attr] = encrypt(this.secret, el[attr]);\n }\n });\n });\n\n if (this.props.schema.objKeyName) {\n const objValue = arrayToObject(\n _value,\n this.props.schema.objKeyName,\n this.props.schema.objValueName,\n );\n mayBePromise = this.onChange(this.props.attr, objValue);\n } else {\n mayBePromise = this.onChange(this.props.attr, _value);\n }\n } else if (this.props.schema.objKeyName) {\n const objValue = arrayToObject(\n JSON.parse(JSON.stringify(value)),\n this.props.schema.objKeyName,\n this.props.schema.objValueName,\n );\n mayBePromise = this.onChange(this.props.attr, objValue);\n } else {\n mayBePromise = this.onChange(this.props.attr, value);\n }\n if (mayBePromise instanceof Promise) {\n mayBePromise.catch(e => console.error(`Cannot save: ${e}`));\n }\n if (_updateVisible) {\n this.applyFilter(false, value);\n this.handleRequestSort(this.state.orderBy, true);\n }\n },\n 300,\n newValue,\n updateVisible,\n );\n };\n\n onAdd = (): void => {\n const { schema } = this.props;\n const newValue: Record<string, any>[] = JSON.parse(JSON.stringify(this.state.value));\n const newItem = schema.items?.reduce(\n (accumulator: Record<string, any>, currentValue: ConfigItemTableIndexed) => {\n let defaultValue;\n if (currentValue.defaultFunc) {\n if (this.props.custom) {\n defaultValue = currentValue.defaultFunc\n ? this.executeCustom(\n currentValue.defaultFunc,\n this.props.data,\n this.props.customObj,\n this.props.oContext.instanceObj,\n newValue.length,\n this.props.data,\n )\n : this.props.schema.default;\n } else {\n defaultValue = currentValue.defaultFunc\n ? this.execute(\n currentValue.defaultFunc,\n this.props.schema.default,\n this.props.data,\n newValue.length,\n this.props.data,\n )\n : this.props.schema.default;\n }\n } else {\n defaultValue = currentValue.default === undefined ? null : currentValue.default;\n }\n\n accumulator[currentValue.attr] = defaultValue;\n return accumulator;\n },\n {},\n );\n\n newValue.push(newItem);\n\n this.setState({ value: newValue }, () => this.applyFilter(false, null, () => this.onChangeWrapper(newValue)));\n };\n\n isAnyFilterSet(): boolean {\n return !!Object.keys(this.filterRefs).find(attr => ConfigTable.getFilterValue(this.filterRefs[attr]));\n }\n\n applyFilter = (clear?: boolean, value?: Record<string, any>[], cb?: () => void): void => {\n value = value || this.state.value;\n let visibleValue = value.map((_, i) => i);\n Object.keys(this.filterRefs).forEach(attr => {\n let valueInputRef = ConfigTable.getFilterValue(this.filterRefs[attr]);\n if (!clear && valueInputRef) {\n valueInputRef = valueInputRef.toLowerCase();\n visibleValue = visibleValue.filter(\n idx => value[idx] && value[idx][attr] && value[idx][attr].toLowerCase().includes(valueInputRef),\n );\n } else if (this.filterRefs[attr].current) {\n ConfigTable.setFilterValue(this.filterRefs[attr], '');\n }\n });\n\n if (visibleValue.length === value.length) {\n visibleValue = null;\n }\n\n if (visibleValue === null && this.state.visibleValue === null) {\n if (cb) {\n cb();\n }\n return;\n }\n\n if (JSON.stringify(visibleValue) !== JSON.stringify(this.state.visibleValue)) {\n this.setState({ visibleValue }, () => cb && cb());\n } else if (cb) {\n cb();\n }\n };\n\n onMoveUp(idx: number): void {\n const newValue: Record<string, any>[] = JSON.parse(JSON.stringify(this.state.value));\n const item = newValue[idx];\n newValue.splice(idx, 1);\n newValue.splice(idx - 1, 0, item);\n this.setState({ value: newValue, iteration: this.state.iteration + 10000 }, () =>\n this.applyFilter(false, null, () => this.onChangeWrapper(newValue)),\n );\n }\n\n onMoveDown(idx: number): void {\n const newValue: Record<string, any>[] = JSON.parse(JSON.stringify(this.state.value));\n const item = newValue[idx];\n newValue.splice(idx, 1);\n newValue.splice(idx + 1, 0, item);\n this.setState({ value: newValue, iteration: this.state.iteration + 10000 }, () =>\n this.applyFilter(false, null, () => this.onChangeWrapper(newValue)),\n );\n }\n\n onDrop(acceptedFiles: File[]): void {\n const file = acceptedFiles[0];\n const reader = new FileReader();\n\n reader.onabort = () => console.log('file reading was aborted');\n reader.onerror = () => console.log('file reading has failed');\n reader.onload = () => {\n if (file.size > MAX_SIZE) {\n window.alert(I18n.t('ra_File is too big. Max %sk allowed. Try use SVG.', Math.round(MAX_SIZE / 1024)));\n return;\n }\n const text = new Uint8Array(reader.result as ArrayBufferLike).reduce(\n (data, byte) => data + String.fromCharCode(byte),\n '',\n );\n\n this.onImport(text);\n };\n reader.readAsArrayBuffer(file);\n }\n\n showTypeOfImportDialog(): JSX.Element | null {\n if (!this.state.showTypeOfImportDialog) {\n return null;\n }\n return (\n <Dialog\n open={!0}\n onClose={() => this.setState({ showTypeOfImportDialog: false })}\n maxWidth=\"md\"\n >\n <DialogTitle>{I18n.t('ra_Append or replace?')}</DialogTitle>\n <DialogContent>\n {I18n.t('ra_Append %s entries or replace existing?', this.state.showTypeOfImportDialog.length)}\n </DialogContent>\n <DialogActions>\n <Button\n variant=\"contained\"\n color=\"primary\"\n autoFocus\n onClick={() => {\n const value: Record<string, any>[] = JSON.parse(JSON.stringify(this.state.value));\n\n (this.state.showTypeOfImportDialog as Record<string, any>[]).forEach(\n (obj: Record<string, any>) => value.push(obj),\n );\n\n this.setState(\n {\n value,\n iteration: this.state.iteration + 10000,\n showTypeOfImportDialog: false,\n },\n () => this.applyFilter(false, null, () => this.onChangeWrapper(value)),\n );\n }}\n >\n {I18n.t('ra_Append')}\n </Button>\n <Button\n variant=\"contained\"\n color=\"secondary\"\n autoFocus\n onClick={() => {\n const value: Record<string, any>[] = this.state.showTypeOfImportDialog as Record<\n string,\n any\n >[];\n this.setState(\n {\n value,\n iteration: this.state.iteration + 10000,\n showTypeOfImportDialog: false,\n },\n () => this.applyFilter(false, null, () => this.onChangeWrapper(value)),\n );\n }}\n >\n {I18n.t('ra_Replace')}\n </Button>\n </DialogActions>\n </Dialog>\n );\n }\n\n showImportDialog(): JSX.Element | null {\n if (!this.state.showImportDialog) {\n return null;\n }\n return (\n <Dialog\n open={!0}\n onClose={() => this.setState({ showImportDialog: false })}\n sx={{\n '& .MuiDialog-paper': {\n minHeight: 500,\n },\n }}\n maxWidth=\"md\"\n fullWidth\n >\n <DialogTitle>{I18n.t('ra_Import from %s', 'CSV')}</DialogTitle>\n <DialogContent>\n <Dropzone\n multiple={false}\n accept={{ 'text/csv': ['.csv'] }}\n maxSize={MAX_SIZE}\n onDragEnter={() => this.setState({ uploadFile: 'dragging' })}\n onDragLeave={() => this.setState({ uploadFile: true })}\n onDrop={(acceptedFiles, errors) => {\n this.setState({ uploadFile: false });\n if (!acceptedFiles.length) {\n window.alert(\n (errors &&\n errors[0] &&\n errors[0].errors &&\n errors[0].errors[0] &&\n errors[0].errors[0].message) ||\n I18n.t('ra_Cannot upload'),\n );\n } else {\n this.onDrop(acceptedFiles);\n }\n }}\n >\n {({ getRootProps, getInputProps }) => (\n <div\n style={{\n ...styles.uploadDiv,\n ...(this.state.uploadFile === 'dragging' ? styles.uploadDivDragging : undefined),\n ...styles.dropZone,\n ...(!this.state.icon ? styles.dropZoneEmpty : undefined),\n }}\n {...getRootProps()}\n >\n <input {...getInputProps()} />\n <div style={styles.uploadCenterDiv}>\n <div style={styles.uploadCenterTextAndIcon}>\n <ImportIcon style={styles.uploadCenterIcon} />\n <div style={styles.uploadCenterText}>\n {this.state.uploadFile === 'dragging'\n ? I18n.t('ra_Drop file here')\n : I18n.t(\n 'ra_Place your files here or click here to open the browse dialog',\n )}\n </div>\n </div>\n </div>\n </div>\n )}\n </Dropzone>\n </DialogContent>\n <DialogActions>\n <Button\n variant=\"contained\"\n onClick={() => this.setState({ showImportDialog: false })}\n color=\"primary\"\n startIcon={<IconClose />}\n >\n {I18n.t('Cancel')}\n </Button>\n </DialogActions>\n </Dialog>\n );\n }\n\n renderOneFilter(props: {\n schema: ConfigItemTable;\n doAnyFilterSet: boolean;\n headCell: ConfigItemTableIndexed;\n index: number;\n orderBy: string;\n order: 'asc' | 'desc';\n showAddButton: boolean;\n style: React.CSSProperties;\n }): React.JSX.Element {\n return (\n <TableCell\n key={`${props.headCell.attr}_${props.index}`}\n style={props.style}\n align=\"left\"\n sortDirection={props.orderBy === props.headCell.attr ? props.order : false}\n >\n <div\n style={{\n ...styles.flex,\n ...(props.schema.showFirstAddOnTop ? { flexDirection: 'column' } : undefined),\n }}\n >\n {props.showAddButton ? this.renderAddButton(props.doAnyFilterSet) : null}\n {props.headCell.sort && (\n <TableSortLabel\n active\n style={props.orderBy !== props.headCell.attr ? styles.silver : undefined}\n direction={props.orderBy === props.headCell.attr ? props.order : 'asc'}\n onClick={() => this.handleRequestSort(props.headCell.attr)}\n />\n )}\n {props.headCell.filter && this.state.filterOn.includes(props.headCell.attr) ? (\n <TextField\n variant=\"standard\"\n ref={this.filterRefs[props.headCell.attr]}\n onChange={() => this.applyFilter()}\n title={I18n.t('ra_You can filter entries by entering here some text')}\n slotProps={{\n input: {\n endAdornment: ConfigTable.getFilterValue(this.filterRefs[props.headCell.attr]) && (\n <InputAdornment position=\"end\">\n <IconButton\n size=\"small\"\n onClick={() => {\n ConfigTable.setFilterValue(\n this.filterRefs[props.headCell.attr],\n '',\n );\n this.applyFilter();\n }}\n >\n <CloseIcon />\n </IconButton>\n </InputAdornment>\n ),\n },\n }}\n fullWidth\n placeholder={this.getText(props.headCell.title)}\n />\n ) : (\n <span style={styles.headerText}>{this.getText(props.headCell.title)}</span>\n )}\n {this.renderShowHideFilter(props.headCell)}\n </div>\n </TableCell>\n );\n }\n\n enhancedFilterCard(): JSX.Element {\n const { schema } = this.props;\n const { order, orderBy } = this.state;\n let tdStyle: React.CSSProperties | undefined;\n if (this.props.schema.compact) {\n tdStyle = { paddingTop: 1, paddingBottom: 1 };\n }\n\n return (\n <Grid2\n size={{\n xs: schema.xs || 12, // if xs is not defined, take the full width\n sm: schema.sm || undefined,\n md: schema.md || undefined,\n lg: schema.lg || undefined,\n xl: schema.xl || undefined,\n }}\n >\n <Card>\n <Paper style={styles.paper}>\n <Accordion style={styles.paper}>\n <AccordionSummary expandIcon={<ExpandMoreIcon />}>\n <Typography>{I18n.t('ra_Filter and Data Actions')}</Typography>\n </AccordionSummary>\n <AccordionDetails>\n <Table>\n <TableBody>\n {schema.items?.map(\n (headCell: ConfigItemTableIndexed, i: number): React.JSX.Element => (\n <TableRow key={`${headCell.attr}_${i}`}>\n {this.renderOneFilter({\n schema,\n style: tdStyle,\n showAddButton: false,\n headCell,\n order,\n orderBy,\n index: i,\n doAnyFilterSet: false,\n })}\n </TableRow>\n ),\n )}\n <TableRow>\n <TableCell\n align=\"left\"\n style={tdStyle}\n >\n <span style={styles.headerText}>{I18n.t('ra_Actions')}</span>\n </TableCell>\n <TableCell style={tdStyle}>\n {this.renderImportExportButtons(schema)}\n </TableCell>\n </TableRow>\n </TableBody>\n </Table>\n </AccordionDetails>\n </Accordion>\n </Paper>\n </Card>\n </Grid2>\n );\n }\n\n enhancedBottomCard(): JSX.Element {\n const { schema } = this.props;\n let tdStyle: React.CSSProperties | undefined;\n if (this.props.schema.compact) {\n tdStyle = { paddingTop: 1, paddingBottom: 1 };\n }\n const doAnyFilterSet = this.isAnyFilterSet();\n return (\n <Grid2\n size={{\n xs: schema.xs || 12, // if xs is not defined, take the full width\n sm: schema.sm || undefined,\n md: schema.md || undefined,\n lg: schema.lg || undefined,\n xl: schema.xl || undefined,\n }}\n >\n <Card>\n <Paper style={styles.paper}>\n <Table>\n <TableBody>\n <TableRow>\n <TableCell\n colSpan={schema.items.length + 1}\n style={tdStyle}\n >\n {this.renderAddButton(doAnyFilterSet)}\n </TableCell>\n </TableRow>\n </TableBody>\n </Table>\n </Paper>\n </Card>\n </Grid2>\n );\n }\n\n renderCards(): JSX.Element | null {\n const { schema } = this.props;\n let { visibleValue } = this.state;\n let tdStyle: React.CSSProperties | undefined;\n if (this.props.schema.compact) {\n tdStyle = { paddingTop: 1, paddingBottom: 1 };\n }\n visibleValue = visibleValue || this.state.value.map((_, i) => i);\n\n const doAnyFilterSet = this.isAnyFilterSet();\n\n return (\n <Grid2 container>\n {this.showImportDialog()}\n {this.showTypeOfImportDialog()}\n {this.enhancedFilterCard()}\n {visibleValue.map((idx, i) => (\n <Grid2\n key={`${idx}_${i}`}\n size={{\n xs: schema.xs || 12, // if xs is not defined, take the full width\n sm: schema.sm || undefined,\n md: schema.md || undefined,\n lg: schema.lg || undefined,\n xl: schema.xl || undefined,\n }}\n >\n <Card>\n <Paper style={styles.paper}>\n <Table>\n <TableBody>\n {schema.items?.map((headCell: ConfigItemTableIndexed) => (\n <TableRow key={`${headCell.attr}_${idx}`}>\n <TableCell\n align=\"left\"\n style={tdStyle}\n >\n <span style={styles.headerText}>\n {this.getText(headCell.title)}\n </span>\n </TableCell>\n <TableCell\n align=\"left\"\n style={tdStyle}\n >\n {this.itemTable(headCell.attr, this.state.value[idx], idx)}\n </TableCell>\n </TableRow>\n ))}\n <TableRow>\n <TableCell\n align=\"left\"\n style={tdStyle}\n >\n <span style={styles.headerText}>{this.getText('Actions')}</span>\n </TableCell>\n <TableCell\n align=\"left\"\n style={tdStyle}\n >\n {!doAnyFilterSet && !this.state.orderBy ? (\n <Tooltip\n title={I18n.t('ra_Move up')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <span>\n <IconButton\n size=\"small\"\n onClick={() => this.onMoveUp(idx)}\n disabled={i === 0}\n >\n <UpIcon />\n </IconButton>\n </span>\n </Tooltip>\n ) : null}\n {!doAnyFilterSet && !this.state.orderBy ? (\n <Tooltip\n title={I18n.t('ra_Move down')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <span>\n <IconButton\n size=\"small\"\n onClick={() => this.onMoveDown(idx)}\n disabled={i === visibleValue.length - 1}\n >\n <DownIcon />\n </IconButton>\n </span>\n </Tooltip>\n ) : null}\n <Tooltip\n title={I18n.t('ra_Delete current row')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n size=\"small\"\n onClick={this.onDelete(idx)}\n >\n <DeleteIcon />\n </IconButton>\n </Tooltip>\n {this.props.schema.clone ? (\n <Tooltip\n title={I18n.t('ra_Clone current row')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n size=\"small\"\n onClick={this.onClone(idx)}\n >\n <CopyContentIcon />\n </IconButton>\n </Tooltip>\n ) : null}\n </TableCell>\n </TableRow>\n </TableBody>\n </Table>\n </Paper>\n </Card>\n </Grid2>\n ))}\n {this.enhancedBottomCard()}\n </Grid2>\n );\n }\n\n renderTable(): JSX.Element | null {\n const { schema } = this.props;\n let { visibleValue } = this.state;\n\n visibleValue = visibleValue || this.state.value.map((_, i) => i);\n\n const doAnyFilterSet = this.isAnyFilterSet();\n\n let tdStyle: React.CSSProperties | undefined;\n if (this.props.schema.compact) {\n tdStyle = { paddingTop: 1, paddingBottom: 1 };\n }\n\n return (\n <Paper style={styles.paper}>\n {this.showImportDialog()}\n {this.showTypeOfImportDialog()}\n {schema.label ? (\n <div style={styles.label}>\n <Toolbar\n variant=\"dense\"\n style={styles.rootTool}\n >\n <Typography\n style={styles.title}\n variant=\"h6\"\n id=\"tableTitle\"\n component=\"div\"\n >\n {this.getText(schema.label)}\n </Typography>\n </Toolbar>\n </div>\n ) : null}\n <TableContainer>\n <Table\n style={styles.table}\n size=\"small\"\n >\n {this.enhancedTableHead(!doAnyFilterSet && !this.state.orderBy ? 120 : 64, doAnyFilterSet)}\n <TableBody>\n {visibleValue.map((idx, i) => (\n <TableRow\n hover\n key={`${idx}_${i}`}\n >\n {schema.items?.map((headCell: ConfigItemTableIndexed) => (\n <TableCell\n key={`${headCell.attr}_${idx}`}\n align=\"left\"\n style={tdStyle}\n >\n {this.itemTable(headCell.attr, this.state.value[idx], idx)}\n </TableCell>\n ))}\n {!schema.noDelete && (\n <TableCell\n align=\"left\"\n style={{ ...tdStyle, ...styles.buttonCell }}\n >\n {!doAnyFilterSet && !this.state.orderBy ? (\n i ? (\n <Tooltip\n title={I18n.t('ra_Move up')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n size=\"small\"\n onClick={() => this.onMoveUp(idx)}\n >\n <UpIcon />\n </IconButton>\n </Tooltip>\n ) : (\n <div style={styles.buttonEmpty} />\n )\n ) : null}\n {!doAnyFilterSet && !this.state.orderBy ? (\n i < visibleValue.length - 1 ? (\n <Tooltip\n title={I18n.t('ra_Move down')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n size=\"small\"\n onClick={() => this.onMoveDown(idx)}\n >\n <DownIcon />\n </IconButton>\n </Tooltip>\n ) : (\n <div style={styles.buttonEmpty} />\n )\n ) : null}\n <Tooltip\n title={I18n.t('ra_Delete current row')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n size=\"small\"\n onClick={this.onDelete(idx)}\n >\n <DeleteIcon />\n </IconButton>\n </Tooltip>\n {this.props.schema.clone ? (\n <Tooltip\n title={I18n.t('ra_Clone current row')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <IconButton\n size=\"small\"\n onClick={this.onClone(idx)}\n >\n <CopyContentIcon />\n </IconButton>\n </Tooltip>\n ) : null}\n </TableCell>\n )}\n </TableRow>\n ))}\n {!schema.noDelete && visibleValue.length >= (schema.showSecondAddAt || 5) ? (\n <TableRow>\n <TableCell\n colSpan={schema.items.length + 1}\n style={{ ...tdStyle }}\n >\n {this.renderAddButton(doAnyFilterSet)}\n </TableCell>\n </TableRow>\n ) : null}\n </TableBody>\n </Table>\n {!visibleValue.length && this.state.value.length ? (\n <div style={styles.filteredOut}>\n <Typography\n style={styles.title}\n variant=\"h6\"\n id=\"tableTitle\"\n component=\"div\"\n >\n {I18n.t('ra_All items are filtered out')}\n <IconButton\n size=\"small\"\n onClick={() => this.applyFilter(true)}\n >\n <CloseIcon />\n </IconButton>\n </Typography>\n </div>\n ) : null}\n </TableContainer>\n {schema.help ? (\n <FormHelperText style={{ paddingLeft: 16 }}>\n {this.renderHelp(\n this.props.schema.help,\n this.props.schema.helpLink,\n this.props.schema.noTranslation,\n )}\n </FormHelperText>\n ) : null}\n {this.state.errorMessage ? (\n <div style={{ display: 'flex', padding: '5px' }}>\n <ErrorIcon color=\"error\" />\n <span style={{ color: 'red', alignSelf: 'center' }}>{this.state.errorMessage}</span>\n </div>\n ) : null}\n </Paper>\n );\n }\n\n componentDidUpdate(): void {\n if (this.refDiv.current?.clientWidth && this.refDiv.current.clientWidth !== this.state.width) {\n if (this.resizeTimeout) {\n clearTimeout(this.resizeTimeout);\n }\n this.resizeTimeout = setTimeout(() => {\n this.resizeTimeout = null;\n this.setState({ width: this.refDiv.current?.clientWidth });\n }, 50);\n }\n }\n\n getCurrentBreakpoint(): 'xs' | 'sm' | 'md' | 'lg' | 'xl' {\n if (!this.state.width) {\n return 'md';\n }\n if (this.state.width < 600) {\n return 'xs';\n }\n if (this.state.width < 900) {\n return 'sm';\n }\n if (this.state.width < 1200) {\n return 'md';\n }\n if (this.state.width < 1536) {\n return 'lg';\n }\n return 'xl';\n }\n\n renderItem(/* error, disabled, defaultValue */): JSX.Element | null {\n const { schema } = this.props;\n\n if (!this.state.value || !Array.isArray(this.state.value)) {\n return null;\n }\n\n const currentBreakpoint = this.getCurrentBreakpoint();\n let content: React.JSX.Element;\n\n if (currentBreakpoint && (schema.useCardFor || ['xs']).includes(currentBreakpoint)) {\n content = this.renderCards();\n } else {\n content = this.renderTable();\n }\n\n return (\n <div\n ref={this.refDiv}\n style={{ width: '100%' }}\n >\n {content}\n </div>\n );\n }\n}\n\nexport default ConfigTable;\n","import React, { type JSX } from 'react';\n\nimport { Autocomplete, TextField, TextareaAutosize, InputAdornment, IconButton } from '@mui/material';\n\nimport { Close as CloseIcon } from '@mui/icons-material';\n\nimport { I18n, IconCopy, Utils } from '@iobroker/adapter-react-v5';\n\nimport type { ConfigItemText } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\n\nconst styles: Record<string, React.CSSProperties> = {\n indeterminate: {\n opacity: 0.5,\n },\n label: {\n width: '100%',\n fontSize: 14,\n marginBottom: 2,\n },\n helper: {\n width: '100%',\n fontSize: 12,\n },\n error: {\n width: '100%',\n fontSize: 12,\n color: '#FF0000',\n },\n};\n\ninterface ConfigTextProps extends ConfigGenericProps {\n schema: ConfigItemText;\n}\n\ninterface ConfigTextState extends ConfigGenericState {\n oldValue?: string;\n jsonError?: boolean;\n}\n\nclass ConfigText extends ConfigGeneric<ConfigTextProps, ConfigTextState> {\n private updateTimeout: ReturnType<typeof setTimeout> | null = null;\n\n componentDidMount(): void {\n super.componentDidMount();\n let value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n\n if (Array.isArray(value) && this.props.oContext.multiEdit) {\n value = ConfigGeneric.DIFFERENT_VALUE;\n this.setState({ value, oldValue: value, jsonError: false });\n return;\n }\n\n this.setState({ value, oldValue: value, jsonError: this.validateJson(value) });\n }\n\n validateJson(value: string | null | undefined): boolean {\n let jsonError = false;\n if (this.props.schema.validateJson) {\n if (value || !this.props.schema.allowEmpty) {\n try {\n JSON.parse(value);\n } catch (err: unknown) {\n console.log('Error in JSON', err);\n jsonError = true;\n }\n }\n }\n\n return jsonError;\n }\n\n static getDerivedStateFromProps(props: ConfigTextProps, state: ConfigTextState): Partial<ConfigTextState> | null {\n if (props.oContext.multiEdit && state.value === ConfigGeneric.DIFFERENT_VALUE) {\n return { value: ConfigGeneric.DIFFERENT_VALUE };\n }\n\n let value = ConfigGeneric.getValue(props.data, props.attr);\n\n if (value !== null && value !== undefined) {\n value = value.toString();\n }\n\n if (value === null || value === undefined || (value !== state.value && value !== state.oldValue)) {\n return { value };\n }\n return null;\n }\n\n renderItem(error?: boolean, disabled?: boolean): JSX.Element {\n const isIndeterminate = Array.isArray(this.state.value) || this.state.value === ConfigGeneric.DIFFERENT_VALUE;\n\n if (this.props.schema.time) {\n // show read-only time\n\n let time = '';\n if (typeof this.state.value === 'number') {\n // If the value is a number, it is a timestamp.\n if (this.state.value && this.state.value < 946659600000) {\n // If the value is less than 2000-01-01, it is a timestamp in seconds.\n time = new Date(this.state.value * 1000).toLocaleString();\n } else {\n time = new Date(this.state.value).toLocaleString();\n }\n } else if (typeof this.state.value === 'string') {\n // If the value is a string, it is a date string.\n time = new Date(this.state.value).toLocaleString();\n }\n\n return (\n <TextField\n variant=\"standard\"\n fullWidth\n value={time}\n error={!!error || !!this.state.jsonError}\n disabled={!!disabled}\n slotProps={{\n htmlInput: {\n readOnly: true,\n },\n }}\n placeholder={this.getText(this.props.schema.placeholder)}\n label={this.getText(this.props.schema.label)}\n helperText={this.renderHelp(\n this.props.schema.help,\n this.props.schema.helpLink,\n this.props.schema.noTranslation,\n )}\n />\n );\n }\n\n if (this.state.oldValue !== null && this.state.oldValue !== undefined) {\n if (this.updateTimeout) {\n clearTimeout(this.updateTimeout);\n }\n this.updateTimeout = setTimeout(() => {\n this.updateTimeout = null;\n this.setState({ oldValue: null });\n }, 30);\n } else if (this.updateTimeout) {\n clearTimeout(this.updateTimeout);\n this.updateTimeout = null;\n }\n\n if (isIndeterminate) {\n const autoCompleteOptions = ConfigGeneric.getValue(this.props.data, this.props.attr);\n const arr =\n autoCompleteOptions\n ?.filter((a: any) => a || a === 0)\n .map((item: any) => ({ label: item.toString() || '', value: item })) || [];\n\n arr.unshift({ label: I18n.t(ConfigGeneric.DIFFERENT_LABEL), value: ConfigGeneric.DIFFERENT_VALUE });\n\n return (\n <Autocomplete\n style={styles.indeterminate}\n fullWidth\n value={arr[0]}\n // getOptionSelected={(option, value) => option.label === value.label}\n onChange={(_, value) => {\n const val = value ? value.value : '';\n const mayBePromise = this.onChange(this.props.attr, val, () => {\n this.setState({ value: val, oldValue: val, jsonError: this.validateJson(value) });\n });\n if (mayBePromise instanceof Promise) {\n mayBePromise.catch(e => console.error(`Cannot set value: ${e}`));\n }\n }}\n options={arr}\n getOptionLabel={option => option.label}\n renderInput={params => (\n <TextField\n variant=\"standard\"\n {...params}\n error={!!error}\n placeholder={this.getText(this.props.schema.placeholder)}\n slotProps={{\n htmlInput: {\n ...params.inputProps,\n maxLength: this.props.schema.maxLength || this.props.schema.max || undefined,\n readOnly: this.props.schema.readOnly || false,\n },\n }}\n label={this.getText(this.props.schema.label)}\n helperText={this.renderHelp(\n this.props.schema.help,\n this.props.schema.helpLink,\n this.props.schema.noTranslation,\n )}\n disabled={!!disabled}\n />\n )}\n />\n );\n }\n\n let actionButton: React.JSX.Element | undefined;\n let actionButtonStyle: React.CSSProperties | undefined;\n if ((this.props.schema.readOnly || disabled) && this.props.schema.copyToClipboard) {\n if (this.props.schema.minRows > 1) {\n actionButtonStyle = {\n position: 'absolute',\n right: 3,\n top: 20,\n zIndex: 1000,\n };\n }\n actionButton = (\n <IconButton\n style={actionButtonStyle}\n size=\"small\"\n onClick={() => {\n Utils.copyToClipboard(this.state.value);\n window.alert(I18n.t('ra_Copied'));\n }}\n >\n <IconCopy />\n </IconButton>\n );\n } else if (!this.props.schema.readOnly && !disabled && this.state.value && !this.props.schema.noClearButton) {\n if (this.props.schema.minRows > 1) {\n actionButtonStyle = {\n position: 'absolute',\n right: 3,\n top: 20,\n zIndex: 1000,\n };\n }\n actionButton = (\n <IconButton\n style={actionButtonStyle}\n size=\"small\"\n onClick={() =>\n this.setState({ value: '', oldValue: this.state.value }, () =>\n this.onChange(this.props.attr, ''),\n )\n }\n >\n <CloseIcon />\n </IconButton>\n );\n if (this.props.schema.minRows <= 1) {\n actionButton = <InputAdornment position=\"end\">{actionButton}</InputAdornment>;\n }\n }\n\n if (this.props.schema.minRows > 1) {\n const helper = this.renderHelp(\n this.props.schema.help,\n this.props.schema.helpLink,\n this.props.schema.noTranslation,\n );\n return (\n <div style={{ width: '100%', position: 'relative' }}>\n {this.props.schema.label ? (\n <div style={styles.label}>{this.getText(this.props.schema.label)}</div>\n ) : null}\n <TextareaAutosize\n // variant=\"standard\"\n style={{\n width: '100%',\n resize: 'vertical',\n backgroundColor: this.props.oContext.themeType === 'dark' ? '#363636' : '#cccccc',\n color: this.props.oContext.themeType === 'dark' ? '#fff' : '#111',\n }}\n minRows={this.props.schema.minRows}\n maxRows={this.props.schema.maxRows}\n value={this.state.value === null || this.state.value === undefined ? '' : this.state.value}\n disabled={!!disabled}\n readOnly={this.props.schema.readOnly || false}\n onChange={e => {\n const value = e.target.value;\n this.setState(\n { value, oldValue: this.state.value, jsonError: this.validateJson(value) },\n () => this.onChange(this.props.attr, value || ''),\n );\n }}\n placeholder={this.getText(this.props.schema.placeholder)}\n />\n {helper || error || this.state.jsonError ? (\n <div style={error ? styles.error : styles.helper}>\n {error || (this.state.jsonError ? I18n.t('ra_Invalid JSON') : helper)}\n </div>\n ) : null}\n </div>\n );\n }\n\n return (\n <TextField\n variant=\"standard\"\n fullWidth\n value={this.state.value === null || this.state.value === undefined ? '' : this.state.value}\n error={!!error || !!this.state.jsonError}\n disabled={!!disabled}\n slotProps={{\n htmlInput: {\n maxLength: this.props.schema.maxLength || this.props.schema.max || undefined,\n readOnly: this.props.schema.readOnly || false,\n },\n input: {\n endAdornment: actionButton,\n },\n }}\n onChange={e => {\n const value = e.target.value;\n\n this.setState({ value, oldValue: this.state.value, jsonError: this.validateJson(value) }, () =>\n this.onChange(this.props.attr, value),\n );\n }}\n placeholder={this.getText(this.props.schema.placeholder)}\n label={this.getText(this.props.schema.label)}\n helperText={\n this.state.jsonError\n ? I18n.t('ra_Invalid JSON')\n : this.renderHelp(\n this.props.schema.help,\n this.props.schema.helpLink,\n this.props.schema.noTranslation,\n )\n }\n />\n );\n }\n}\n\nexport default ConfigText;\n","import React, { type JSX } from 'react';\n\nimport { TextField, IconButton } from '@mui/material';\n\nimport { I18n, Icon, IconCopy, Utils } from '@iobroker/adapter-react-v5';\n\nimport type { ConfigItemSendTo } from '#JC/types';\nimport getIconByName from './Icons';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\n\nconst styles: Record<string, React.CSSProperties> = {\n fullWidth: {\n width: '100%',\n },\n};\n\ninterface ConfigTextSendToProps extends ConfigGenericProps {\n schema: ConfigItemSendTo;\n}\n\ninterface ConfigTextSendToState extends ConfigGenericState {\n text?: string;\n style?: React.CSSProperties;\n icon?: string;\n iconStyle?: React.CSSProperties;\n}\n\ninterface Response {\n text: string;\n style?: React.CSSProperties;\n icon?: string;\n iconStyle?: React.CSSProperties;\n}\n\nclass ConfigTextSendTo extends ConfigGeneric<ConfigTextSendToProps, ConfigTextSendToState> {\n private initialized = false;\n\n private localContext: string | undefined;\n\n askInstance(): void {\n if (this.props.alive) {\n let data: Record<string, any> | undefined = this.props.schema.data;\n if (data === undefined && this.props.schema.jsonData) {\n const dataStr: string = this.getPattern(this.props.schema.jsonData, null, true);\n try {\n data = JSON.parse(dataStr);\n } catch {\n console.error(`Cannot parse json data: ${dataStr}`);\n }\n }\n\n if (data === undefined) {\n data = null;\n }\n\n void this.props.oContext.socket\n .sendTo(\n `${this.props.oContext.adapterName}.${this.props.oContext.instance}`,\n this.props.schema.command || 'send',\n data,\n )\n .then(result => {\n if (typeof result === 'object') {\n const _data: Response = result;\n this.setState({\n text: _data.text || '',\n style: _data.style,\n icon: _data.icon,\n iconStyle: _data.iconStyle,\n });\n } else if (typeof result === 'string') {\n this.setState({ text: result || '' });\n }\n })\n .catch(e => console.error(`Cannot send command: ${e}`));\n }\n }\n\n getLocalContext(): string {\n const localContext: Record<string, any> = {};\n if (Array.isArray(this.props.schema.alsoDependsOn)) {\n this.props.schema.alsoDependsOn.forEach(\n attr => (localContext[attr] = ConfigGeneric.getValue(this.props.data, attr)),\n );\n }\n return JSON.stringify(localContext);\n }\n\n renderItem(/* error, disabled, defaultValue */): JSX.Element {\n if (this.props.alive) {\n const localContext = this.getLocalContext();\n if (localContext !== this.localContext || !this.initialized) {\n this.localContext = localContext;\n setTimeout(() => this.askInstance(), this.initialized ? 300 : 50);\n this.initialized = true;\n }\n }\n\n if (this.state.text === undefined) {\n return null;\n }\n\n let icon: JSX.Element | null = null;\n if (this.state.icon) {\n icon = getIconByName(this.state.icon, {\n marginRight: this.state.text ? 8 : undefined,\n ...(this.state.iconStyle || undefined),\n });\n if (!icon) {\n icon = (\n <Icon\n src={this.state.icon}\n style={{ marginRight: this.state.text ? 8 : undefined, ...(this.state.iconStyle || undefined) }}\n />\n );\n }\n }\n\n if (this.props.schema.container === 'text') {\n return (\n <TextField\n variant=\"standard\"\n fullWidth\n slotProps={{\n input: {\n endAdornment: this.props.schema.copyToClipboard ? (\n <IconButton\n size=\"small\"\n onClick={() => {\n Utils.copyToClipboard(this.state.text);\n window.alert(I18n.t('ra_Copied'));\n }}\n >\n <IconCopy />\n </IconButton>\n ) : undefined,\n },\n }}\n value={this.state.text}\n label={this.getText(this.props.schema.label)}\n helperText={this.renderHelp(\n this.props.schema.help,\n this.props.schema.helpLink,\n this.props.schema.noTranslation,\n )}\n />\n );\n }\n return (\n <div style={{ ...styles.fullWidth, ...(this.state.style || undefined) }}>\n {icon}\n {this.props.schema.container === 'html' ? (\n <span dangerouslySetInnerHTML={{ __html: this.state.text || '' }} />\n ) : (\n this.state.text\n )}\n </div>\n );\n }\n}\n\nexport default ConfigTextSendTo;\n","import React, { type JSX } from 'react';\n\nimport { TimePicker } from '@mui/x-date-pickers';\n\nimport type { ConfigItemTimePicker } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericProps } from './ConfigGeneric';\n\ninterface ConfigTimePickerProps extends ConfigGenericProps {\n schema: ConfigItemTimePicker;\n dialogName?: string;\n}\n\nexport default class ConfigTimePicker extends ConfigGeneric<ConfigTimePickerProps> {\n componentDidMount(): void {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n this.setState({ value });\n }\n\n renderItem(_error: unknown, disabled: boolean): JSX.Element {\n // the format could be 'HH:mm:ss' or 'HH:mm'\n const shortFormat = this.props.schema.returnFormat !== 'HH:mm:ss';\n\n const value: never = new Date(Date.parse(`Thu, 01 Jan 1970 ${this.state.value || '00:00:00'}`)) as never;\n\n return (\n <TimePicker\n sx={theme => ({\n width: '100%',\n borderBottom: `1px solid ${theme.palette.text.primary}`,\n '& fieldset': {\n display: 'none',\n },\n '& input': {\n padding: `${theme.spacing(1.5)} 0 4px 0`,\n },\n '& .MuiInputAdornment-root': {\n marginLeft: 0,\n marginTop: 1, // it is already in spaces\n },\n '& label': {\n transform: 'translate(0px, -9px) scale(0.75)',\n },\n })}\n ampm={this.props.oContext.systemConfig.dateFormat.includes('/')}\n timeSteps={\n this.props.schema.timeSteps || this.props.schema.timesteps || { hours: 1, minutes: 5, seconds: 5 }\n }\n format={this.props.schema.format || 'HH:mm:ss'}\n disabled={!!disabled}\n value={value}\n onChange={(newValue: Date) => {\n let strValue: string;\n strValue =\n (newValue as any) instanceof Date\n ? newValue.toTimeString().split(' ')[0]\n : newValue.toTimeString();\n if (shortFormat) {\n strValue = strValue.split(':').slice(0, 2).join(':');\n }\n\n this.setState({ value: strValue }, () => this.onChange(this.props.attr, this.state.value));\n }}\n views={this.props.schema.views || ['hours', 'minutes', 'seconds']}\n label={this.getText(this.props.schema.label)}\n />\n );\n }\n}\n","import React, { type JSX } from 'react';\n\nimport { TextField } from '@mui/material';\n\nimport type { ConfigItemTopic } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\n\nfunction convertID2Topic(id: string, namespace: string): string {\n let topic;\n if (namespace && id.substring(0, namespace.length) === namespace) {\n topic = id.substring(namespace.length + 1);\n } else {\n topic = id;\n }\n topic = topic.replace(/\\./g, '/').replace(/_/g, ' ');\n return topic;\n}\n\ninterface ConfigTopicProps extends ConfigGenericProps {\n schema: ConfigItemTopic;\n}\n\nclass ConfigTopic extends ConfigGeneric<ConfigTopicProps, ConfigGenericState> {\n componentDidMount(): void {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n if (!value && this.props.customObj?._id) {\n const topic = convertID2Topic(\n this.props.customObj._id,\n `${this.props.oContext.adapterName}.${this.props.oContext.instance}`,\n );\n this.setState({ value: topic });\n } else {\n this.setState({ value: value || '' });\n }\n }\n\n renderItem(error: string, disabled: boolean /* , defaultValue */): JSX.Element {\n return (\n <TextField\n variant=\"standard\"\n fullWidth\n slotProps={{\n htmlInput: {\n maxLength: this.props.schema.maxLength || this.props.schema.max || undefined,\n },\n }}\n value={this.state.value}\n error={!!error}\n disabled={disabled}\n placeholder={this.getText(this.props.schema.placeholder)}\n label={this.getText(this.props.schema.label)}\n helperText={this.renderHelp(\n this.props.schema.help,\n this.props.schema.helpLink,\n this.props.schema.noTranslation,\n )}\n onChange={e => {\n const value = e.target.value;\n this.setState({ value }, () => this.onChange(this.props.attr, value));\n }}\n />\n );\n }\n}\n\nexport default ConfigTopic;\n","import React, { type JSX } from 'react';\n\nimport { TextField, IconButton } from '@mui/material';\n\nimport { ContentCopy as IconCopy } from '@mui/icons-material';\n\nimport { Utils, I18n } from '@iobroker/adapter-react-v5';\n\nimport type { ConfigItemUUID } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\n\ninterface ConfigUUIDProps extends ConfigGenericProps {\n schema: ConfigItemUUID;\n}\n\ninterface ConfigUUIDState extends ConfigGenericState {\n uuid?: string;\n}\n\nclass ConfigUUID extends ConfigGeneric<ConfigUUIDProps, ConfigUUIDState> {\n async componentDidMount(): Promise<void> {\n super.componentDidMount();\n\n const uuidObj = await this.props.oContext.socket.getObject('system.meta.uuid');\n this.setState({ uuid: uuidObj?.native?.uuid || 'unknown' });\n }\n\n renderItem(error: unknown, disabled: boolean): JSX.Element {\n return (\n <TextField\n variant=\"standard\"\n fullWidth\n error={!!error}\n disabled={!!disabled}\n slotProps={{\n htmlInput: { readOnly: true },\n input: {\n endAdornment: (\n <IconButton\n onClick={() => {\n Utils.copyToClipboard(this.state.uuid);\n window.alert(I18n.t('ra_Copied %s', this.state.uuid));\n }}\n >\n <IconCopy />\n </IconButton>\n ),\n },\n }}\n value={this.state.uuid || ''}\n label={this.getText(this.props.schema.label) || I18n.t('ra_Serial number (UUID)')}\n helperText={this.renderHelp(\n this.props.schema.help,\n this.props.schema.helpLink,\n this.props.schema.noTranslation,\n )}\n />\n );\n }\n}\n\nexport default ConfigUUID;\n","import React, { type JSX } from 'react';\n\nimport { InputLabel, TextField, MenuItem, FormHelperText, FormControl, Select } from '@mui/material';\n\nimport { Icon, Utils, I18n } from '@iobroker/adapter-react-v5';\n\nimport type { ConfigItemUser } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\n\nconst styles: Record<string, React.CSSProperties> = {\n icon: {\n width: 16,\n height: 16,\n marginRight: 8,\n },\n};\n\ninterface ConfigUserProps extends ConfigGenericProps {\n schema: ConfigItemUser;\n}\n\ninterface ConfigUserState extends ConfigGenericState {\n users: Record<string, { color?: string; icon?: string; name: string }>;\n}\n\nclass ConfigUser extends ConfigGeneric<ConfigUserProps, ConfigUserState> {\n componentDidMount(): void {\n super.componentDidMount();\n this.props.oContext.socket\n .getUsers()\n .then(users => {\n const _users: Record<string, { color?: string; icon?: string; name: string }> = {};\n const lang = I18n.getLanguage();\n\n if (this.props.schema.short) {\n users.forEach(\n user =>\n (_users[user._id] = {\n color: user.common?.color,\n icon: user.common?.icon,\n name: Utils.getObjectNameFromObj(user, lang),\n }),\n );\n } else {\n users.forEach(\n user =>\n (_users[user._id.replace(/^system\\.user\\./, '')] = {\n color: user.common?.color,\n icon: user.common?.icon,\n name: Utils.getObjectNameFromObj(user, lang),\n }),\n );\n }\n\n this.setState({ users: _users });\n })\n .catch(e => console.error(`Cannot get users: ${e}`));\n }\n\n renderItem(error: string, disabled: boolean /* , defaultValue */): JSX.Element {\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n\n return (\n <FormControl\n variant=\"standard\"\n fullWidth\n >\n {this.state.users && this.props.schema.label ? (\n <InputLabel>{this.getText(this.props.schema.label)}</InputLabel>\n ) : null}\n {!this.state.users ? (\n <TextField\n variant=\"standard\"\n error={!!error}\n disabled={!!disabled}\n value={value}\n onChange={e => this.onChange(this.props.attr, e.target.value)}\n label={this.getText(this.props.schema.label)}\n />\n ) : (\n <Select\n variant=\"standard\"\n error={!!error}\n disabled={!!disabled}\n value={value}\n renderValue={val => (\n <span>\n {this.state.users && this.state.users[val]?.icon ? (\n <Icon\n src={this.state.users && this.state.users[val]?.icon}\n style={styles.icon}\n />\n ) : null}\n {(this.state.users && this.state.users[val]?.name) || val || ''}\n </span>\n )}\n style={{\n color: (this.state.users && this.state.users[value]?.color) || undefined,\n backgroundColor: Utils.getInvertedColor(\n this.state.users && this.state.users[value]?.color,\n this.props.oContext.themeType,\n ),\n }}\n onChange={e => this.onChange(this.props.attr, e.target.value)}\n >\n {this.state.users &&\n Object.keys(this.state.users).map(id => (\n <MenuItem\n style={{\n color: this.state.users[id].color || undefined,\n backgroundColor: Utils.getInvertedColor(\n this.state.users[id].color,\n this.props.oContext.themeType,\n ),\n }}\n key={id}\n value={id}\n >\n {this.state.users[id].icon ? (\n <Icon\n src={this.state.users[id].icon}\n style={styles.icon}\n />\n ) : null}\n {this.state.users[id].name}\n </MenuItem>\n ))}\n </Select>\n )}\n {this.props.schema.help ? (\n <FormHelperText>\n {this.renderHelp(\n this.props.schema.help,\n this.props.schema.helpLink,\n this.props.schema.noTranslation,\n )}\n </FormHelperText>\n ) : null}\n </FormControl>\n );\n }\n}\n\nexport default ConfigUser;\n","import React, { type JSX } from 'react';\n\nimport type QRCode from 'react-qr-code';\nimport type { ConfigItemQrCode } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\n\ninterface ConfigQrCodeProps extends ConfigGenericProps {\n schema: ConfigItemQrCode;\n}\n\ninterface ConfigQrCodeState extends ConfigGenericState {\n QRCode: typeof QRCode | null;\n}\n\nclass ConfigQrCode extends ConfigGeneric<ConfigQrCodeProps, ConfigQrCodeState> {\n async componentDidMount(): Promise<void> {\n super.componentDidMount();\n // lazy load of qrcode\n const module = await import('react-qr-code');\n this.setState({ QRCode: module.default });\n }\n\n renderItem(): JSX.Element | null {\n const QRCodeComponent = this.state.QRCode;\n if (!QRCodeComponent) {\n return null;\n }\n return (\n <QRCodeComponent\n value={this.props.schema.data}\n size={this.props.schema.size}\n fgColor={this.props.schema.fgColor}\n bgColor={this.props.schema.bgColor}\n level={this.props.schema.level}\n />\n );\n }\n}\n\nexport default ConfigQrCode;\n","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 AdminConnection, 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.oContext.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.oContext.multiEdit && items[attr].noMultiEdit) {\n return null;\n }\n\n const type = items[attr].type || 'panel';\n let ItemComponent: typeof ConfigGeneric<ConfigGenericProps, any>;\n let socket: string | AdminConnection = 'Use this.props.oContext.socket!';\n if (type === 'custom') {\n // name\n // url\n if (items[attr].url) {\n ItemComponent = ConfigCustom;\n } else if (this.props.oContext.customs && this.props.oContext.customs[items[attr].component]) {\n ItemComponent = this.props.oContext.customs[items[attr].component];\n } else {\n console.error(`Cannot find custom component: ${items[attr].component}`);\n ItemComponent = ConfigGeneric;\n }\n socket = this.props.oContext.socket;\n } else if (type === 'panel') {\n ItemComponent = ConfigPanel;\n } else {\n ItemComponent = components[type] || ConfigGeneric;\n }\n\n return (\n <ItemComponent\n // @ts-expect-error Temporary work-around, till all custom components will not migrate to oContext\n socket={socket}\n globalData={this.props.globalData}\n oContext={this.props.oContext}\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 commandRunning={this.props.commandRunning}\n style={styles.panel}\n common={this.props.common}\n alive={this.props.alive}\n themeName={this.props.themeName}\n data={this.props.data}\n originalData={this.props.originalData}\n onError={this.props.onError}\n onChange={this.props.onChange}\n disabled={disabled}\n customObj={this.props.customObj}\n custom={this.props.custom}\n schema={items[attr]}\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.oContext.theme,\n { marginBottom: 0, textAlign: 'left' /* marginRight: 8, */ },\n schemaStyle,\n this.props.oContext.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.oContext.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.oContext.theme,\n schemaStyle,\n this.props.oContext.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.oContext.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.oContext.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","import React, { type JSX } from 'react';\n\nimport { Tabs, Tab, IconButton, Toolbar, Menu, MenuItem, ListItemIcon } from '@mui/material';\nimport { Menu as MenuIcon } from '@mui/icons-material';\n\nimport type { ConfigItemTabs } from '#JC/types';\nimport ConfigGeneric, { type ConfigGenericProps, type ConfigGenericState } from './ConfigGeneric';\nimport ConfigPanel from './ConfigPanel';\n\nconst styles: Record<string, React.CSSProperties> = {\n tabs: {\n height: '100%',\n width: '100%',\n },\n panel: {\n width: '100%',\n display: 'block',\n },\n panelWithIcons: {\n height: 'calc(100% - 72px)',\n },\n panelWithoutIcons: {\n height: 'calc(100% - 48px)',\n },\n};\n\ninterface ConfigTabsProps extends ConfigGenericProps {\n schema: ConfigItemTabs;\n dialogName?: string;\n}\n\ninterface ConfigTabsState extends ConfigGenericState {\n tab?: string;\n width: number;\n openMenu: HTMLButtonElement | null;\n}\n\nclass ConfigTabs extends ConfigGeneric<ConfigTabsProps, ConfigTabsState> {\n private resizeTimeout: ReturnType<typeof setTimeout> | null = null;\n\n private readonly refDiv: React.RefObject<HTMLDivElement>;\n\n constructor(props: ConfigTabsProps) {\n super(props);\n let tab: string | undefined;\n\n if (this.props.root) {\n // read the path from hash\n // #tab-instances/config/system.adapter.ping.0/<TAB-NAME-OR-INDEX>\n const hash = (window.location.hash || '').replace(/^#/, '').split('/');\n if (hash.length >= 3 && hash[1] === 'config') {\n const tabS = hash[3];\n const tabN = parseInt(tabS, 10);\n if (tabS && tabN.toString() === tabS) {\n if (tabN >= 0 && tabN < Object.keys(this.props.schema.items).length) {\n tab = Object.keys(this.props.schema.items)[tabN];\n }\n } else if (tabS && Object.keys(this.props.schema.items).includes(tabS)) {\n tab = tabS;\n }\n\n // install on hash change handler\n window.addEventListener('hashchange', this.onHashTabsChanged, false);\n }\n }\n\n if (tab === undefined) {\n tab =\n (((window as any)._localStorage as Storage) || window.localStorage).getItem(\n `${this.props.dialogName || 'App'}.${this.props.oContext.adapterName}`,\n ) || Object.keys(this.props.schema.items)[0];\n if (!Object.keys(this.props.schema.items).includes(tab)) {\n tab = Object.keys(this.props.schema.items)[0];\n }\n }\n this.refDiv = React.createRef();\n\n Object.assign(this.state, { tab, width: 0, openMenu: null });\n }\n\n componentWillUnmount(): void {\n if (this.resizeTimeout) {\n clearTimeout(this.resizeTimeout);\n this.resizeTimeout = null;\n }\n window.removeEventListener('hashchange', this.onHashTabsChanged, false);\n super.componentWillUnmount();\n }\n\n onHashTabsChanged = (): void => {\n const hash = (window.location.hash || '').replace(/^#/, '').split('/');\n if (hash.length > 3 && hash[1] === 'config') {\n const tabS = hash[3];\n const tabN = parseInt(tabS, 10);\n let tab;\n if (tabN.toString() === tabS) {\n if (tabN >= 0 && tabN < Object.keys(this.props.schema.items).length) {\n tab = Object.keys(this.props.schema.items)[tabN];\n }\n } else if (Object.keys(this.props.schema.items).includes(tabS)) {\n tab = tabS;\n }\n if (tab !== undefined && tab !== this.state.tab) {\n (((window as any)._localStorage as Storage) || window.localStorage).setItem(\n `${this.props.dialogName || 'App'}.${this.props.oContext.adapterName}`,\n tab,\n );\n this.setState({ tab });\n }\n }\n };\n\n getCurrentBreakpoint(): 'xs' | 'sm' | 'md' | 'lg' | 'xl' {\n if (!this.state.width) {\n return 'md';\n }\n if (this.state.width < 600) {\n return 'xs';\n }\n if (this.state.width < 900) {\n return 'sm';\n }\n if (this.state.width < 1200) {\n return 'md';\n }\n if (this.state.width < 1536) {\n return 'lg';\n }\n return 'xl';\n }\n\n componentDidUpdate(): void {\n if (this.refDiv.current?.clientWidth && this.refDiv.current.clientWidth !== this.state.width) {\n if (this.resizeTimeout) {\n clearTimeout(this.resizeTimeout);\n }\n this.resizeTimeout = setTimeout(() => {\n this.resizeTimeout = null;\n this.setState({ width: this.refDiv.current?.clientWidth });\n }, 50);\n }\n }\n\n onMenuChange(tab: string): void {\n (((window as any)._localStorage as Storage) || window.localStorage).setItem(\n `${this.props.dialogName || 'App'}.${this.props.oContext.adapterName}`,\n tab,\n );\n this.setState({ tab }, () => {\n if (this.props.root) {\n const hash = (window.location.hash || '').split('/');\n if (hash.length >= 3 && hash[1] === 'config') {\n hash[3] = this.state.tab;\n window.location.hash = hash.join('/');\n }\n }\n });\n }\n\n render(): JSX.Element {\n const items = this.props.schema.items;\n let withIcons = false;\n const elements: { icon: React.JSX.Element | null; label: string; name: string; disabled: boolean }[] = [];\n\n Object.keys(items).map(name => {\n let disabled: boolean;\n if (this.props.custom) {\n const hidden = this.executeCustom(\n items[name].hidden,\n this.props.data,\n this.props.customObj,\n this.props.oContext.instanceObj,\n this.props.index,\n this.props.globalData,\n );\n if (hidden) {\n return;\n }\n disabled = this.executeCustom(\n items[name].disabled,\n this.props.data,\n this.props.customObj,\n this.props.oContext.instanceObj,\n this.props.index,\n this.props.globalData,\n ) as boolean;\n } else {\n const hidden: boolean = this.execute(\n items[name].hidden,\n false,\n this.props.data,\n this.props.index,\n this.props.globalData,\n ) as boolean;\n if (hidden) {\n return;\n }\n disabled = this.execute(\n items[name].disabled,\n false,\n this.props.data,\n this.props.index,\n this.props.globalData,\n ) as boolean;\n }\n const icon = this.getIcon(items[name].icon);\n withIcons = withIcons || !!icon;\n elements.push({ icon, disabled, label: this.getText(items[name].label), name });\n });\n\n const currentBreakpoint = this.getCurrentBreakpoint();\n let tabs: React.JSX.Element;\n if (currentBreakpoint === 'xs' && elements.length > 2) {\n tabs = (\n <Toolbar\n style={{\n top: 2,\n backgroundColor: this.props.oContext.themeType === 'dark' ? '#222' : '#DDD',\n }}\n variant=\"dense\"\n >\n <IconButton\n onClick={(event: React.MouseEvent<HTMLButtonElement>) =>\n this.setState({ openMenu: event.currentTarget })\n }\n >\n <MenuIcon />\n </IconButton>\n {this.state.openMenu ? (\n <Menu\n open={!0}\n anchorEl={this.state.openMenu}\n onClose={() => this.setState({ openMenu: null })}\n >\n {elements.map(el => {\n return (\n <MenuItem\n disabled={el.disabled}\n key={el.name}\n onClick={() => {\n this.setState({ openMenu: null }, () => this.onMenuChange(el.name));\n }}\n selected={el.name === this.state.tab}\n >\n {withIcons ? <ListItemIcon>{el.icon}</ListItemIcon> : null}\n {el.label}\n </MenuItem>\n );\n })}\n </Menu>\n ) : null}\n </Toolbar>\n );\n } else {\n tabs = (\n <Tabs\n variant=\"scrollable\"\n scrollButtons=\"auto\"\n style={this.props.schema.tabsStyle}\n value={this.state.tab}\n onChange={(_e, tab: string): void => this.onMenuChange(tab)}\n >\n {elements.map(el => {\n return (\n <Tab\n id={el.name}\n wrapped\n disabled={el.disabled}\n key={el.name}\n value={el.name}\n iconPosition={this.props.schema.iconPosition || 'start'}\n icon={el.icon}\n label={el.label}\n />\n );\n })}\n </Tabs>\n );\n }\n\n return (\n <div\n style={styles.tabs}\n ref={this.refDiv}\n >\n {tabs}\n <ConfigPanel\n oContext={this.props.oContext}\n isParentTab\n changed={this.props.changed}\n key={this.state.tab}\n index={1001}\n arrayIndex={this.props.arrayIndex}\n globalData={this.props.globalData}\n commandRunning={this.props.commandRunning}\n style={{\n ...styles.panel,\n ...(withIcons ? styles.panelWithIcons : styles.panelWithoutIcons),\n }}\n common={this.props.common}\n alive={this.props.alive}\n themeName={this.props.themeName}\n data={this.props.data}\n originalData={this.props.originalData}\n onChange={this.props.onChange}\n onError={this.props.onError}\n customObj={this.props.customObj}\n custom={this.props.custom}\n schema={items[this.state.tab]}\n table={this.props.table}\n withIcons={withIcons}\n />\n </div>\n );\n }\n}\n\nexport default ConfigTabs;\n","import React, { Component, type JSX } from 'react';\n\nimport { LinearProgress } from '@mui/material';\n\nimport { type AdminConnection, I18n, type ThemeName, type ThemeType, type IobTheme } from '@iobroker/adapter-react-v5';\n\nimport type { BackEndCommand, ConfigItemPanel, ConfigItemTabs, JsonConfigContext } from '#JC/types';\nimport type ConfigGeneric from '#JC/JsonConfigComponent/ConfigGeneric';\nimport { type DeviceManagerPropsProps } from '#JC/JsonConfigComponent/ConfigGeneric';\nimport ConfigTabs from './ConfigTabs';\nimport ConfigPanel from './ConfigPanel';\n\nconst styles: Record<string, React.CSSProperties> = {\n root: {\n width: '100%',\n height: '100%',\n },\n};\n\ninterface JsonConfigComponentProps {\n socket: AdminConnection;\n themeName: ThemeName;\n themeType: ThemeType;\n adapterName: string;\n instance: number;\n isFloatComma: boolean;\n dateFormat: string;\n imagePrefix?: string;\n schema: ConfigItemTabs | ConfigItemPanel;\n common?: Record<string, any>;\n data: Record<string, any>;\n updateData?: number;\n onError: (error: boolean) => void;\n onChange?: (data: Record<string, any>, changed: boolean, saveConfig: boolean) => void;\n /** Backend request to refresh data */\n onBackEndCommand?: (command?: BackEndCommand) => void;\n custom?: boolean;\n onValueChange?: (attr: string, value: any, saveConfig: boolean) => void;\n embedded?: boolean;\n multiEdit?: boolean;\n instanceObj?: ioBroker.InstanceObject;\n customObj?: ioBroker.Object;\n customs?: Record<string, typeof ConfigGeneric>;\n DeviceManager?: React.FC<DeviceManagerPropsProps>;\n style?: React.CSSProperties;\n theme: IobTheme;\n expertMode?: boolean;\n}\n\ninterface JsonConfigComponentState {\n originalData: string;\n changed: boolean;\n errors: Record<string, string>;\n systemConfig: ioBroker.SystemConfigCommon | null;\n updateData?: number;\n alive: boolean;\n commandRunning: boolean;\n schema: ConfigItemTabs | ConfigItemPanel;\n}\n\nexport class JsonConfigComponent extends Component<JsonConfigComponentProps, JsonConfigComponentState> {\n private readonly forceUpdateHandlers: Record<string, (data: any) => void>;\n\n private errorTimeout: ReturnType<typeof setTimeout> | null = null;\n\n private errorCached: Record<string, string> | null = null;\n\n private oContext: JsonConfigContext;\n\n constructor(props: JsonConfigComponentProps) {\n super(props);\n\n this.state = {\n originalData: JSON.stringify(this.props.data),\n changed: false,\n errors: {},\n updateData: this.props.updateData || 0,\n systemConfig: null,\n alive: false,\n commandRunning: false,\n schema: JSON.parse(JSON.stringify(this.props.schema)),\n };\n\n this.forceUpdateHandlers = {};\n\n this.buildDependencies(this.state.schema);\n\n this.readData();\n }\n\n static getDerivedStateFromProps(\n props: JsonConfigComponentProps,\n state: JsonConfigComponentState,\n ): Partial<JsonConfigComponentState> | null {\n if (props.updateData !== state.updateData) {\n return {\n updateData: props.updateData,\n originalData: JSON.stringify(props.data),\n schema: JSON.parse(JSON.stringify(props.schema)),\n };\n }\n return null;\n }\n\n static async loadI18n(\n socket: AdminConnection,\n i18n: boolean | string | Record<string, Record<ioBroker.Languages, string>>,\n adapterName: string,\n ): Promise<string> {\n if (i18n === true || (i18n && typeof i18n === 'string')) {\n const lang = I18n.getLanguage();\n const path = typeof i18n === 'string' ? i18n : 'i18n';\n let exists = await socket.fileExists(`${adapterName}.admin`, `${path}/${lang}.json`);\n let fileName;\n if (exists) {\n fileName = `${path}/${lang}.json`;\n } else {\n exists = await socket.fileExists(`${adapterName}.admin`, `${path}/${lang}/translations.json`);\n if (exists) {\n fileName = `${path}/${lang}/translations.json`;\n } else if (lang !== 'en') {\n // fallback to english\n exists = await socket.fileExists(`${adapterName}.admin`, `${path}/en.json`);\n if (exists) {\n fileName = `${path}/en.json`;\n } else {\n exists = await socket.fileExists(`${adapterName}.admin`, `${path}/en/translations.json`);\n if (exists) {\n fileName = `${path}/en/translations.json`;\n }\n }\n }\n }\n\n if (fileName) {\n const jsonFile = await socket.readFile(`${adapterName}.admin`, fileName);\n let jsonStr: string;\n if (jsonFile.file !== undefined) {\n jsonStr = jsonFile.file;\n } else {\n // @ts-expect-error deprecated\n jsonStr = jsonFile;\n }\n\n try {\n const json = JSON.parse(jsonStr);\n // apply file to I18n\n I18n.extendTranslations(json, lang);\n } catch (e) {\n console.error(`Cannot parse language file \"${adapterName}.admin/${fileName}: ${e}`);\n return '';\n }\n return fileName;\n }\n console.warn(`Cannot find i18n for ${adapterName} / ${fileName}`);\n return '';\n }\n if (i18n && typeof i18n === 'object') {\n I18n.extendTranslations(i18n);\n return '';\n }\n return '';\n }\n\n onCommandRunning = (commandRunning: boolean): void => this.setState({ commandRunning });\n\n readData(): void {\n void this.props.socket\n .getCompactSystemConfig()\n .then(systemConfig =>\n this.props.socket\n .getState(`system.adapter.${this.props.adapterName}.${this.props.instance}.alive`)\n .then(state =>\n this.setState({ systemConfig: systemConfig.common, alive: !!(state && state.val) }, () => {\n this.updateContext(true);\n if (!this.props.custom) {\n void this.props.socket.subscribeState(\n `system.adapter.${this.props.adapterName}.${this.props.instance}.alive`,\n this.onAlive,\n );\n }\n }),\n ),\n )\n .catch(e => console.error(`Cannot read system config: ${e}`));\n }\n\n onAlive = (_id: string, state?: ioBroker.State | null): void => {\n if (!!state?.val !== this.state.alive) {\n this.setState({ alive: !!state?.val });\n }\n };\n\n onChange = (attrOrData: string | Record<string, any>, value: any, cb?: () => void, saveConfig?: boolean): void => {\n if (this.props.onValueChange) {\n this.props.onValueChange(attrOrData as string, value, saveConfig);\n if (cb) {\n cb();\n }\n } else if (attrOrData && this.props.onChange) {\n const newState: Partial<JsonConfigComponentState> = {\n changed: JSON.stringify(attrOrData) !== this.state.originalData,\n };\n\n this.setState(newState as JsonConfigComponentState, () => {\n this.props.onChange(attrOrData as Record<string, any>, newState.changed, saveConfig);\n if (cb) {\n cb();\n }\n });\n } else if (saveConfig) {\n this.props.onChange(null, null, saveConfig);\n }\n };\n\n onError = (attr: string, error?: string): void => {\n this.errorCached = this.errorCached || JSON.parse(JSON.stringify(this.state.errors));\n const errors = this.errorCached;\n if (error) {\n errors[attr] = error;\n } else {\n delete errors[attr];\n }\n\n if (this.errorTimeout) {\n clearTimeout(this.errorTimeout);\n }\n if (JSON.stringify(errors) !== JSON.stringify(this.state.errors)) {\n this.errorTimeout = setTimeout(\n () =>\n this.setState({ errors: this.errorCached }, () => {\n this.errorTimeout = null;\n this.errorCached = null;\n this.props.onError(!!Object.keys(this.state.errors).length);\n }),\n 50,\n );\n } else {\n this.errorCached = null;\n }\n };\n\n flatten(schema: Record<string, any>, _list?: Record<string, any>): Record<string, any> {\n _list = _list || {};\n if (schema.items) {\n Object.keys(schema.items).forEach(attr => {\n _list[attr] = schema.items[attr];\n this.flatten(schema.items[attr], _list);\n });\n }\n\n return _list;\n }\n\n buildDependencies(schema: ConfigItemTabs | ConfigItemPanel): void {\n const attrs = this.flatten(schema as Record<string, any>);\n Object.keys(attrs).forEach(attr => {\n if (attrs[attr].confirm?.alsoDependsOn) {\n attrs[attr].confirm?.alsoDependsOn.forEach((dep: string) => {\n if (!attrs[dep]) {\n console.error(`[JsonConfigComponent] Attribute ${dep} does not exist!`);\n if (dep.startsWith('data.')) {\n console.warn(\n `[JsonConfigComponent] please use \"${dep.replace(/^data\\./, '')}\" instead of \"${dep}\"`,\n );\n }\n } else {\n attrs[dep].confirmDependsOn = attrs[dep].confirmDependsOn || [];\n\n const depObj = { ...attrs[attr], attr };\n if (depObj.confirm) {\n depObj.confirm.cancel = 'Undo';\n }\n\n attrs[dep].confirmDependsOn.push(depObj);\n }\n });\n }\n\n if (attrs[attr].onChange?.alsoDependsOn) {\n attrs[attr].onChange?.alsoDependsOn.forEach((dep: string) => {\n if (!attrs[dep]) {\n console.error(`[JsonConfigComponent] Attribute ${dep} does not exist!`);\n if (dep.startsWith('data.')) {\n console.warn(\n `[JsonConfigComponent] please use \"${dep.replace(/^data\\./, '')}\" instead of \"${dep}\"`,\n );\n }\n } else {\n attrs[dep].onChangeDependsOn = attrs[dep].onChangeDependsOn || [];\n\n const depObj = { ...attrs[attr], attr };\n\n attrs[dep].onChangeDependsOn.push(depObj);\n }\n });\n }\n\n if (attrs[attr].hidden?.alsoDependsOn) {\n attrs[attr].hidden?.alsoDependsOn.forEach((dep: string) => {\n if (!attrs[dep]) {\n console.error(`[JsonConfigComponent] Attribute ${dep} does not exist!`);\n if (dep.startsWith('data.')) {\n console.warn(\n `[JsonConfigComponent] please use \"${dep.replace(/^data\\./, '')}\" instead of \"${dep}\"`,\n );\n }\n } else {\n attrs[dep].hiddenDependsOn = attrs[dep].hiddenDependsOn || [];\n\n const depObj = { ...attrs[attr], attr };\n\n attrs[dep].hiddenDependsOn.push(depObj);\n }\n });\n }\n\n if (attrs[attr].label?.alsoDependsOn) {\n attrs[attr].label?.alsoDependsOn.forEach((dep: string) => {\n if (!attrs[dep]) {\n console.error(`[JsonConfigComponent] Attribute ${dep} does not exist!`);\n if (dep.startsWith('data.')) {\n console.warn(\n `[JsonConfigComponent] please use \"${dep.replace(/^data\\./, '')}\" instead of \"${dep}\"`,\n );\n }\n } else {\n attrs[dep].labelDependsOn = attrs[dep].labelDependsOn || [];\n\n const depObj = { ...attrs[attr], attr };\n\n attrs[dep].labelDependsOn.push(depObj);\n }\n });\n }\n\n if (attrs[attr].help?.alsoDependsOn) {\n attrs[attr].help?.alsoDependsOn.forEach((dep: string) => {\n if (!attrs[dep]) {\n console.error(`[JsonConfigComponent] Attribute ${dep} does not exist!`);\n if (dep.startsWith('data.')) {\n console.warn(\n `[JsonConfigComponent] please use \"${dep.replace(/^data\\./, '')}\" instead of \"${dep}\"`,\n );\n }\n } else {\n attrs[dep].helpDependsOn = attrs[dep].helpDependsOn || [];\n\n const depObj = { ...attrs[attr], attr };\n\n attrs[dep].helpDependsOn.push(depObj);\n }\n });\n }\n });\n }\n\n updateContext(forceUpdate?: boolean): void {\n this.oContext = {\n DeviceManager: this.props.DeviceManager,\n adapterName: this.props.adapterName,\n changeLanguage: this.changeLanguage,\n common: this.props.common,\n customs: this.props.customs,\n dateFormat: this.props.dateFormat,\n embedded: this.props.embedded,\n expertMode: this.props.expertMode,\n forceUpdate: this.forceAttrUpdate,\n imagePrefix: this.props.imagePrefix,\n instance: this.props.instance,\n instanceObj: this.props.instanceObj,\n isFloatComma: this.props.isFloatComma,\n multiEdit: this.props.multiEdit,\n onBackEndCommand: this.props.onBackEndCommand,\n onCommandRunning: this.onCommandRunning,\n onValueChange: this.props.onValueChange,\n registerOnForceUpdate: this.registerOnForceUpdate,\n socket: this.props.socket,\n systemConfig: this.state.systemConfig,\n theme: this.props.theme,\n // could be changed dynamically\n themeType: this.props.themeType,\n _themeName: this.props.themeName,\n updateData: this.state.updateData,\n } as JsonConfigContext;\n\n if (forceUpdate) {\n this.forceUpdate();\n }\n }\n\n renderItem(item: ConfigItemTabs | ConfigItemPanel): JSX.Element | null {\n if (item.type === 'tabs') {\n return (\n <ConfigTabs\n oContext={this.oContext}\n alive={this.state.alive}\n changed={this.state.changed}\n commandRunning={this.state.commandRunning}\n common={this.props.common}\n custom={this.props.custom}\n customObj={this.props.customObj}\n data={this.props.data}\n onChange={this.onChange}\n onError={(attr, error) => this.onError(attr, error)}\n originalData={JSON.parse(this.state.originalData)}\n root\n schema={item}\n themeName={this.props.themeName}\n />\n );\n }\n if (\n item.type === 'panel' ||\n // @ts-expect-error type could be empty\n !item.type\n ) {\n return (\n <ConfigPanel\n oContext={this.oContext}\n alive={this.state.alive}\n changed={this.state.changed}\n commandRunning={this.state.commandRunning}\n common={this.props.common}\n custom={this.props.custom}\n customObj={this.props.customObj}\n data={this.props.data}\n index={1000}\n isParentTab={!this.props.embedded}\n onChange={this.onChange}\n onError={(attr, error) => this.onError(attr, error)}\n originalData={JSON.parse(this.state.originalData)}\n root\n schema={item}\n themeName={this.props.themeName}\n />\n );\n }\n console.error(`Unknown item type in root: ${JSON.stringify(item)}`);\n\n return null;\n }\n\n changeLanguage = (): void => {\n this.forceUpdate();\n };\n\n forceAttrUpdate = (attr: string | string[], data: any): void => {\n if (Array.isArray(attr)) {\n attr.forEach(a => this.forceUpdateHandlers[a] && this.forceUpdateHandlers[a](data));\n } else if (this.forceUpdateHandlers[attr]) {\n this.forceUpdateHandlers[attr](data);\n }\n };\n\n registerOnForceUpdate = (attr: string, cb?: ((data: any) => void) | null): void => {\n if (cb) {\n this.forceUpdateHandlers[attr] = cb;\n } else if (this.forceUpdateHandlers[attr]) {\n delete this.forceUpdateHandlers[attr];\n }\n };\n\n render(): JSX.Element {\n if (!this.state.systemConfig || !this.oContext) {\n return <LinearProgress />;\n }\n\n if (this.oContext._themeName !== this.props.themeName) {\n this.oContext._themeName = this.props.themeName;\n setTimeout(() => this.updateContext(true), 0);\n }\n\n return (\n <div\n style={{\n ...(!this.props.embedded ? styles.root : undefined),\n ...this.props.style,\n ...this.state.schema.style,\n }}\n >\n {this.renderItem(this.state.schema)}\n </div>\n );\n }\n}\n\nexport default JsonConfigComponent;\n","import React from 'react';\nimport JSON5 from 'json5';\nimport MD5 from 'crypto-js/md5';\n\nimport { Fab, Tooltip, LinearProgress } from '@mui/material';\nimport { Publish as PublishIcon } from '@mui/icons-material';\n\nimport {\n I18n,\n Router,\n SaveCloseButtons,\n Theme,\n DialogConfirm,\n type AdminConnection,\n type IobTheme,\n type ThemeName,\n type ThemeType,\n Utils,\n} from '@iobroker/adapter-react-v5';\n\nimport type { ConfigItemAny, ConfigItemPanel, ConfigItemTabs } from '#JC/types';\nimport ConfigGeneric, { type DeviceManagerPropsProps } from './JsonConfigComponent/ConfigGeneric';\nimport JsonConfigComponent from './JsonConfigComponent';\n\nconst styles: Record<string, React.CSSProperties> = {\n root: {\n width: '100%',\n height: '100%',\n overflow: 'hidden',\n position: 'relative',\n },\n scroll: {\n height: 'calc(100% - 48px)',\n overflowY: 'auto',\n },\n exportImportButtons: {\n position: 'absolute',\n top: 5,\n right: 0,\n zIndex: 3,\n },\n button: {\n marginRight: '5px',\n },\n tooltip: {\n pointerEvents: 'none',\n },\n};\n\n/**\n * Decrypt the password/value with given key\n *\n * @param key - Secret key\n * @param value - value to decrypt\n */\nfunction decryptLegacy(key: string, value: string): string {\n let result = '';\n for (let i = 0; i < value.length; i++) {\n result += String.fromCharCode(key[i % key.length].charCodeAt(0) ^ value.charCodeAt(i));\n }\n return result;\n}\n\n/**\n * Encrypt the password/value with given key\n *\n * @param key - Secret key\n * @param value - value to encrypt\n */\nfunction encryptLegacy(key: string, value: string): string {\n let result = '';\n for (let i = 0; i < value.length; i++) {\n result += String.fromCharCode(key[i % key.length].charCodeAt(0) ^ value.charCodeAt(i));\n }\n return result;\n}\n\n/**\n * Decrypt the password/value with given key\n * Usage:\n * ```js\n * function load(settings, onChange) {\n * if (settings.password) {\n * settings.password = decrypt(systemSecret, settings.password);\n * // same as\n * settings.password = decrypt(settings.password);\n * }\n * // ...\n * }\n * ```\n *\n * @param key - Secret key\n * @param value - value to decrypt\n */\nfunction decrypt(key: string, value: string): string {\n if (typeof value !== 'string') {\n return value;\n }\n\n // if not encrypted as aes-192 or key not a valid 48-digit hex -> fallback\n if (!value.startsWith('$/aes-192-cbc:') || !/^[0-9a-f]{48}$/.test(key)) {\n return decryptLegacy(key, value);\n }\n\n // algorithm:iv:encryptedValue\n const textParts = value.split(':', 3);\n\n const _key = window.CryptoJS.enc.Hex.parse(key);\n const iv = window.CryptoJS.enc.Hex.parse(textParts[1]);\n\n const cipherParams = window.CryptoJS.lib.CipherParams.create({\n ciphertext: window.CryptoJS.enc.Hex.parse(textParts[2]),\n });\n\n const decryptedBinary = window.CryptoJS.AES.decrypt(cipherParams, _key, { iv });\n\n return window.CryptoJS.enc.Utf8.stringify(decryptedBinary);\n}\n\n/**\n * Encrypt the password/value with given key\n * Usage:\n * ```\n * function save(callback) {\n * ...\n * if (obj.password) {\n * obj.password = encrypt(systemSecret, obj.password);\n * // same as\n * obj.password = decrypt(obj.password);\n * }\n * ...\n * }\n * ```\n *\n * @param key - Secret key\n * @param value - value to encrypt\n * @param _iv - optional initial vector for tests\n */\nfunction encrypt(key: string, value: string, _iv?: string): string {\n if (typeof value !== 'string') {\n return value;\n }\n\n if (!/^[0-9a-f]{48}$/.test(key)) {\n // key length is not matching for AES-192-CBC or key is no valid hex - fallback to old encryption\n return encryptLegacy(key, value);\n }\n\n let iv;\n if (_iv) {\n iv = window.CryptoJS.enc.Hex.parse(_iv);\n } else {\n iv = window.CryptoJS.lib.WordArray.random(128 / 8);\n }\n\n const _key = window.CryptoJS.enc.Hex.parse(key);\n const encrypted = window.CryptoJS.AES.encrypt(value, _key, { iv }).ciphertext;\n\n return `$/aes-192-cbc:${window.CryptoJS.enc.Hex.stringify(iv)}:${encrypted}`;\n}\n\nfunction loadScript(src: string, id: string): ((this: GlobalEventHandlers, ev: Event) => any) | null | Promise<void> {\n if (!id || !document.getElementById(id)) {\n return new Promise(resolve => {\n const script = document.createElement('script');\n script.setAttribute('id', id);\n script.onload = resolve as unknown as (this: GlobalEventHandlers, ev: Event) => any;\n script.src = src;\n document.getElementsByTagName('head')[0].appendChild(script);\n });\n }\n return document.getElementById(id)?.onload;\n}\n\ninterface BufferObject {\n type: 'Buffer';\n data: Buffer;\n}\n\ninterface JsonConfigProps {\n adapterName: string;\n instance: number;\n isFloatComma: boolean;\n dateFormat: string;\n secret?: string;\n socket: AdminConnection;\n theme: IobTheme;\n themeName: ThemeName;\n themeType: ThemeType;\n expertMode?: boolean;\n /** Translate method */\n t: typeof I18n.t;\n configStored: (notChanged: boolean) => void;\n width: 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n DeviceManager?: React.FC<DeviceManagerPropsProps>;\n}\n\ninterface JsonConfigState {\n schema?: ConfigItemPanel | ConfigItemTabs;\n data?: Record<string, unknown>;\n originalData?: Record<string, unknown>;\n updateData: number;\n common?: ioBroker.InstanceCommon;\n changed: boolean;\n confirmDialog: boolean;\n theme: IobTheme;\n saveConfigDialog: boolean;\n hash: string;\n error?: boolean;\n}\n\nclass JsonConfig extends Router<JsonConfigProps, JsonConfigState> {\n private fileSubscribed: string[] = [];\n\n private fileLangSubscribed = '';\n\n private secret: string;\n\n constructor(props: JsonConfigProps) {\n super(props);\n\n this.state = {\n updateData: 0,\n changed: false,\n confirmDialog: false,\n theme: Theme(props.themeName), // buttons require special theme\n saveConfigDialog: false,\n hash: '_',\n };\n\n this.secret = props.secret || '';\n\n void this.getInstanceObject().then(obj =>\n this.getConfigFile().then(schema =>\n // load language\n JsonConfigComponent.loadI18n(this.props.socket, schema?.i18n, this.props.adapterName).then(\n (langFileName: string) => {\n if (langFileName) {\n // subscribe on changes\n if (!this.fileLangSubscribed) {\n this.fileLangSubscribed = langFileName;\n void this.props.socket.subscribeFiles(\n `${this.props.adapterName}.admin`,\n this.fileLangSubscribed,\n this.onFileChange,\n );\n }\n }\n\n if (obj) {\n this.setState({\n schema,\n data: obj.native,\n common: obj.common,\n hash: MD5(JSON.stringify(schema)).toString(),\n });\n } else {\n window.alert(\n `Instance system.adapter.${this.props.adapterName}.${this.props.instance} not found!`,\n );\n }\n },\n ),\n ),\n );\n }\n\n componentWillUnmount(): void {\n super.componentWillUnmount();\n if (this.fileSubscribed.length) {\n this.props.socket.unsubscribeFiles(\n `${this.props.adapterName}.admin`,\n this.fileSubscribed,\n this.onFileChange,\n );\n this.fileSubscribed = [];\n }\n if (this.fileLangSubscribed) {\n this.props.socket.unsubscribeFiles(\n `${this.props.adapterName}.admin`,\n this.fileLangSubscribed,\n this.onFileChange,\n );\n this.fileLangSubscribed = '';\n }\n }\n\n private handleFileSelect = (evt: Record<string, any>): void => {\n const f = evt.target.files[0];\n if (f) {\n const r = new FileReader();\n r.onload = (e: ProgressEvent<FileReader>): void => {\n if (!e.target) {\n return;\n }\n\n const contents = e.target.result as string;\n try {\n const data = JSON.parse(contents);\n this.setState({ data, changed: JSON.stringify(data) !== JSON.stringify(this.state.originalData) });\n } catch {\n window.alert(I18n.t('[JsonConfig] Failed to parse JSON file'));\n }\n };\n r.readAsText(f);\n } else {\n window.alert(I18n.t('[JsonConfig] Failed to open JSON File'));\n }\n };\n\n getExportImportButtons(): JSX.Element {\n return (\n <div style={styles.exportImportButtons}>\n <Tooltip\n title={this.props.t('Import settings from JSON file')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <Fab\n size=\"small\"\n sx={{ '&.MuiFab-root': styles.button }}\n onClick={() => {\n const input = document.createElement('input');\n input.setAttribute('type', 'file');\n input.setAttribute('id', 'files');\n // @ts-expect-error check\n input.setAttribute('opacity', 0);\n input.addEventListener('change', e => this.handleFileSelect(e), false);\n input.click();\n }}\n >\n <PublishIcon />\n </Fab>\n </Tooltip>\n <Tooltip\n title={this.props.t('Export setting to JSON file')}\n slotProps={{ popper: { sx: styles.tooltip } }}\n >\n <Fab\n size=\"small\"\n sx={{ '&.MuiFab-root': styles.button }}\n onClick={() => {\n if (!this.state.data) {\n return;\n }\n\n Utils.generateFile(\n `${this.props.adapterName}.${this.props.instance}.json`,\n this.state.data,\n );\n }}\n >\n <PublishIcon style={{ transform: 'rotate(180deg)' }} />\n </Fab>\n </Tooltip>\n </div>\n );\n }\n\n onFileChange = async (id: string, fileName: string, size: number): Promise<void> => {\n if (id === `${this.props.adapterName}.admin` && size) {\n if (fileName === this.fileLangSubscribed) {\n try {\n await JsonConfigComponent.loadI18n(\n this.props.socket,\n this.state.schema?.i18n,\n this.props.adapterName,\n );\n this.setState({ hash: `${this.state.hash}1` });\n } catch {\n // ignore errors\n }\n } else if (this.fileSubscribed.includes(fileName)) {\n try {\n const schema = await this.getConfigFile(this.fileSubscribed[0]);\n this.setState({ schema, hash: MD5(JSON.stringify(schema)).toString() });\n } catch {\n // ignore errors\n }\n }\n }\n };\n\n async getInstanceObject(): Promise<ioBroker.InstanceObject | null> {\n try {\n const obj = await this.props.socket.getObject(\n `system.adapter.${this.props.adapterName}.${this.props.instance}`,\n );\n // decode all native attributes listed in obj.encryptedNative\n if (Array.isArray(obj.encryptedNative)) {\n if (!this.secret) {\n const systemConfig = await this.props.socket.getSystemConfig();\n await loadScript('../../lib/js/crypto-js/crypto-js.js', 'crypto-js');\n this.secret = systemConfig.native.secret;\n }\n obj.encryptedNative?.forEach(attr => {\n if (obj.native[attr]) {\n obj.native[attr] = decrypt(this.secret, obj.native[attr]);\n }\n });\n return obj;\n }\n return obj;\n } catch (e) {\n window.alert(`[JsonConfig] Cannot read instance object: ${e}`);\n }\n return null;\n }\n\n renderDialogConfirm(): JSX.Element | null {\n if (!this.state.confirmDialog) {\n return null;\n }\n return (\n <DialogConfirm\n title={I18n.t('ra_Please confirm')}\n text={I18n.t('ra_Some data are not stored. Discard?')}\n ok={I18n.t('ra_Discard')}\n cancel={I18n.t('ra_Cancel')}\n onClose={(isYes: boolean) =>\n this.setState({ confirmDialog: false }, () => isYes && Router.doNavigate(null))\n }\n />\n );\n }\n\n async scanForInclude(json: Record<string, any>, filePaths: string[]): Promise<Record<string, any>> {\n if (typeof json['#include'] === 'string') {\n // load file\n const data = await this._getConfigFile(json['#include'], [...filePaths]);\n delete json['#include'];\n if (data) {\n // merge data\n json = { ...json, ...data };\n }\n return json;\n }\n const keys = Object.keys(json);\n for (let k = 0; k < keys.length; k++) {\n if (json[keys[k]] && typeof json[keys[k]] === 'object') {\n json[keys[k]] = await this.scanForInclude(json[keys[k]], filePaths);\n }\n }\n return json;\n }\n\n async getConfigFile(fileName?: string): Promise<ConfigItemPanel | ConfigItemTabs> {\n return this._getConfigFile(fileName);\n }\n\n async _getConfigFile(fileName?: string, _filePaths?: string[]): Promise<ConfigItemPanel | ConfigItemTabs> {\n fileName = fileName || 'jsonConfig.json5';\n _filePaths = _filePaths || [];\n\n if (_filePaths.includes(fileName)) {\n window.alert(`[JsonConfig] Circular reference in file: ${fileName} => ${_filePaths.join(' => ')}`);\n return null;\n }\n _filePaths.push(fileName);\n\n try {\n const exist = await this.props.socket.fileExists(`${this.props.adapterName}.admin`, fileName);\n if (!exist) {\n fileName = 'jsonConfig.json';\n }\n const data: {\n file: string;\n mimeType: string;\n } = await this.props.socket.readFile(`${this.props.adapterName}.admin`, fileName);\n let content = '';\n let file: string | BufferObject = '';\n\n if (data.file !== undefined) {\n file = data.file;\n }\n\n if (typeof file === 'string') {\n content = file;\n // @ts-expect-error revisit\n } else if (file.type === 'Buffer') {\n let binary = '';\n // @ts-expect-error revisit\n const bytes = new Uint8Array(file.data);\n const len = bytes.byteLength;\n for (let i = 0; i < len; i++) {\n binary += String.fromCharCode(bytes[i]);\n }\n content = binary;\n }\n\n // subscribe on changes\n if (!this.fileSubscribed.includes(fileName)) {\n this.fileSubscribed.push(fileName);\n await this.props.socket.subscribeFiles(`${this.props.adapterName}.admin`, fileName, this.onFileChange);\n }\n\n try {\n // detect #include attr\n return (await this.scanForInclude(JSON5.parse(content), _filePaths)) as\n | ConfigItemPanel\n | ConfigItemTabs;\n } catch (e) {\n window.alert('[JsonConfig] Cannot parse json5 config!');\n console.log(e);\n }\n } catch (e1) {\n if (!this.state.schema) {\n window.alert(`[JsonConfig] Cannot read file \"${fileName}: ${e1}`);\n }\n }\n return null;\n }\n\n renderSaveConfigDialog(): JSX.Element | null {\n if (!this.state.saveConfigDialog) {\n return null;\n }\n return (\n <DialogConfirm\n title={I18n.t('ra_Please confirm')}\n text={I18n.t('Save configuration?')}\n ok={I18n.t('ra_Save')}\n cancel={I18n.t('ra_Cancel')}\n onClose={(isYes: boolean) =>\n this.setState({ saveConfigDialog: false }, () => isYes && this.onSave(true))\n }\n />\n );\n }\n\n findAttr(attr: string, schema?: ConfigItemPanel | ConfigItemTabs): ConfigItemAny | null {\n schema = schema || this.state.schema;\n if (schema?.items) {\n if (attr in schema.items) {\n return schema.items[attr];\n }\n for (const _item of Object.values(schema.items)) {\n const item = this.findAttr(attr, _item as ConfigItemPanel | ConfigItemTabs);\n if (item) {\n return item;\n }\n }\n }\n\n return null;\n }\n\n // this function is called recursively and trims all text fields, that must be trimmed\n postProcessing(data: Record<string, unknown>, attr: string, schema: ConfigItemAny): void {\n schema = schema || this.state.schema;\n if (!data) {\n // should not happen\n console.error(`Data is empty in postProcessing: ${attr}, ${JSON.stringify(schema)}`);\n return;\n }\n\n const dataAttr = data[attr];\n\n if ((schema as ConfigItemTabs).items) {\n if (schema.type === 'table') {\n const table = dataAttr;\n\n if (!Array.isArray(table)) {\n return;\n }\n\n for (const entry of table) {\n for (const tItem of schema.items) {\n this.postProcessing(entry, tItem.attr, tItem as ConfigItemAny);\n }\n }\n } else {\n for (const [_attr, item] of Object.entries((schema as ConfigItemTabs).items)) {\n if (\n (item as any).type === 'panel' ||\n (item as any).type === 'tabs' ||\n (item as any).type === 'accordion'\n ) {\n return;\n }\n this.postProcessing(data, _attr, item);\n }\n }\n } else if (attr && typeof dataAttr === 'string') {\n // postprocessing\n if (schema.type === 'text') {\n if (schema.trim !== false) {\n data[attr] = dataAttr.trim();\n }\n } else if (schema.type === 'ip') {\n // should not happen\n data[attr] = dataAttr.trim();\n } else if (schema.type === 'number') {\n const dataVal = parseFloat(dataAttr.toString().replace(',', '.'));\n\n if (schema.min !== undefined && dataVal < schema.min) {\n data[attr] = schema.min;\n } else if (schema.max !== undefined && dataVal > schema.max) {\n data[attr] = schema.max;\n } else {\n data[attr] = dataVal;\n }\n } else if (schema.type === 'port') {\n const dataVal = parseInt(dataAttr.toString(), 10);\n if (schema.min !== undefined && dataVal < schema.min) {\n data[attr] = schema.min;\n } else if (schema.max !== undefined && dataVal > schema.max) {\n data[attr] = schema.max;\n }\n if (data[attr] !== 0 && dataVal < 20) {\n data[attr] = 20;\n } else if (dataVal > 0xffff) {\n data[attr] = 0xffff;\n } else {\n data[attr] = dataVal;\n }\n } else if (schema.type === 'checkbox') {\n // should not happen\n data[attr] =\n data[attr] === true ||\n data[attr] === 'true' ||\n data[attr] === 'on' ||\n data[attr] === 1 ||\n data[attr] === '1';\n }\n }\n }\n\n async onSave(doSave: boolean, close?: boolean): Promise<void> {\n if (doSave) {\n const obj = await this.getInstanceObject();\n\n if (!obj) {\n console.error('Something went wrong: may be no connection?');\n window.alert('Something went wrong: may be no connection?');\n return;\n }\n\n if (!this.state.data || !this.state.schema) {\n return;\n }\n\n const doNotSaveAttributes: Record<string, any> = {};\n\n for (const attr of Object.keys(this.state.data)) {\n const item = this.findAttr(attr);\n if ((!item || !item.doNotSave || item.type === 'state') && !attr.startsWith('_')) {\n ConfigGeneric.setValue(obj.native, attr, this.state.data[attr]);\n } else {\n ConfigGeneric.setValue(obj.native, attr, null);\n doNotSaveAttributes[attr] = this.state.data[attr];\n }\n }\n\n try {\n const encryptedObj = JSON.parse(JSON.stringify(obj));\n // encode all native attributes listed in obj.encryptedNative\n if (Array.isArray(encryptedObj.encryptedNative)) {\n await loadScript('../../lib/js/crypto-js/crypto-js.js', 'crypto-js');\n\n for (const attr of encryptedObj.encryptedNative) {\n if (encryptedObj.native[attr]) {\n encryptedObj.native[attr] = encrypt(this.secret, encryptedObj.native[attr]);\n }\n }\n }\n\n await this.props.socket.setObject(encryptedObj._id, encryptedObj);\n } catch (e) {\n window.alert(`[JsonConfig] Cannot set object: ${e}`);\n }\n\n /** We want to preserve the doNotSaveAttributes too, just not save it */\n const nativeWithNonSaved = { ...obj.native, ...doNotSaveAttributes };\n console.log(nativeWithNonSaved);\n\n this.setState(\n {\n changed: false,\n data: nativeWithNonSaved,\n updateData: this.state.updateData + 1,\n originalData: nativeWithNonSaved,\n },\n () => close && Router.doNavigate(null),\n );\n } else if (this.state.changed) {\n this.setState({ confirmDialog: true });\n } else {\n Router.doNavigate(null);\n }\n }\n\n componentDidUpdate(_prevProps: JsonConfigProps, prevState: JsonConfigState): void {\n if (prevState.changed !== this.state.changed) {\n this.props.configStored(!this.state.changed);\n }\n }\n\n /**\n * Validate the JSON config once on mount\n */\n async componentDidMount(): Promise<void> {\n const link = `${window.location.protocol}//${window.location.host}${window.location.pathname}validate_config/${this.props.adapterName}`;\n console.log(`fetch ${link}`);\n await fetch(link);\n }\n\n render(): JSX.Element {\n if (!this.state.data || !this.state.schema) {\n return <LinearProgress />;\n }\n\n return (\n <div style={styles.root}>\n {this.renderDialogConfirm()}\n {this.getExportImportButtons()}\n {this.renderSaveConfigDialog()}\n <JsonConfigComponent\n key={this.state.hash}\n style={styles.scroll}\n socket={this.props.socket}\n themeName={this.props.themeName}\n themeType={this.props.themeType}\n adapterName={this.props.adapterName}\n instance={this.props.instance}\n isFloatComma={this.props.isFloatComma}\n dateFormat={this.props.dateFormat}\n schema={this.state.schema}\n common={this.state.common}\n expertMode={this.props.expertMode}\n data={this.state.data}\n updateData={this.state.updateData}\n onError={error => this.setState({ error })}\n onChange={(data, changed, saveConfigDialog) => {\n if (saveConfigDialog && this.state.error) {\n window.alert(I18n.t('Cannot save configuration because of error in configuration'));\n saveConfigDialog = false;\n }\n if (saveConfigDialog && !this.state.changed && !changed) {\n saveConfigDialog = false;\n }\n if (data) {\n this.setState({ data, changed, saveConfigDialog });\n } else if (saveConfigDialog !== undefined) {\n this.setState({ saveConfigDialog });\n }\n }}\n DeviceManager={this.props.DeviceManager}\n theme={this.state.theme}\n />\n <SaveCloseButtons\n isIFrame={false}\n dense\n paddingLeft={0}\n newReact\n theme={this.state.theme}\n noTextOnButtons={\n this.props.width === 'xs' || this.props.width === 'sm' || this.props.width === 'md'\n }\n changed={!!(this.state.error || this.state.changed)}\n error={!!this.state.error}\n onSave={(close: boolean) => this.onSave(true, close)}\n onClose={() => this.onSave(false)}\n />\n </div>\n );\n }\n}\n\nexport default JsonConfig;\n","ace.define(\"ace/snippets\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/event_emitter\",\"ace/lib/lang\",\"ace/range\",\"ace/range_list\",\"ace/keyboard/hash_handler\",\"ace/tokenizer\",\"ace/clipboard\",\"ace/editor\"],function(e,t,n){\"use strict\";function p(e){var t=(new Date).toLocaleString(\"en-us\",e);return t.length==1?\"0\"+t:t}var r=e(\"./lib/dom\"),i=e(\"./lib/oop\"),s=e(\"./lib/event_emitter\").EventEmitter,o=e(\"./lib/lang\"),u=e(\"./range\").Range,a=e(\"./range_list\").RangeList,f=e(\"./keyboard/hash_handler\").HashHandler,l=e(\"./tokenizer\").Tokenizer,c=e(\"./clipboard\"),h={CURRENT_WORD:function(e){return e.session.getTextRange(e.session.getWordRange())},SELECTION:function(e,t,n){var r=e.session.getTextRange();return n?r.replace(/\\n\\r?([ \\t]*\\S)/g,\"\\n\"+n+\"$1\"):r},CURRENT_LINE:function(e){return e.session.getLine(e.getCursorPosition().row)},PREV_LINE:function(e){return e.session.getLine(e.getCursorPosition().row-1)},LINE_INDEX:function(e){return e.getCursorPosition().row},LINE_NUMBER:function(e){return e.getCursorPosition().row+1},SOFT_TABS:function(e){return e.session.getUseSoftTabs()?\"YES\":\"NO\"},TAB_SIZE:function(e){return e.session.getTabSize()},CLIPBOARD:function(e){return c.getText&&c.getText()},FILENAME:function(e){return/[^/\\\\]*$/.exec(this.FILEPATH(e))[0]},FILENAME_BASE:function(e){return/[^/\\\\]*$/.exec(this.FILEPATH(e))[0].replace(/\\.[^.]*$/,\"\")},DIRECTORY:function(e){return this.FILEPATH(e).replace(/[^/\\\\]*$/,\"\")},FILEPATH:function(e){return\"/not implemented.txt\"},WORKSPACE_NAME:function(){return\"Unknown\"},FULLNAME:function(){return\"Unknown\"},BLOCK_COMMENT_START:function(e){var t=e.session.$mode||{};return t.blockComment&&t.blockComment.start||\"\"},BLOCK_COMMENT_END:function(e){var t=e.session.$mode||{};return t.blockComment&&t.blockComment.end||\"\"},LINE_COMMENT:function(e){var t=e.session.$mode||{};return t.lineCommentStart||\"\"},CURRENT_YEAR:p.bind(null,{year:\"numeric\"}),CURRENT_YEAR_SHORT:p.bind(null,{year:\"2-digit\"}),CURRENT_MONTH:p.bind(null,{month:\"numeric\"}),CURRENT_MONTH_NAME:p.bind(null,{month:\"long\"}),CURRENT_MONTH_NAME_SHORT:p.bind(null,{month:\"short\"}),CURRENT_DATE:p.bind(null,{day:\"2-digit\"}),CURRENT_DAY_NAME:p.bind(null,{weekday:\"long\"}),CURRENT_DAY_NAME_SHORT:p.bind(null,{weekday:\"short\"}),CURRENT_HOUR:p.bind(null,{hour:\"2-digit\",hour12:!1}),CURRENT_MINUTE:p.bind(null,{minute:\"2-digit\"}),CURRENT_SECOND:p.bind(null,{second:\"2-digit\"})};h.SELECTED_TEXT=h.SELECTION;var d=function(){function e(){this.snippetMap={},this.snippetNameMap={},this.variables=h}return e.prototype.getTokenizer=function(){return e.$tokenizer||this.createTokenizer()},e.prototype.createTokenizer=function(){function t(e){return e=e.substr(1),/^\\d+$/.test(e)?[{tabstopId:parseInt(e,10)}]:[{text:e}]}function n(e){return\"(?:[^\\\\\\\\\"+e+\"]|\\\\\\\\.)\"}var r={regex:\"/(\"+n(\"/\")+\"+)/\",onMatch:function(e,t,n){var r=n[0];return r.fmtString=!0,r.guard=e.slice(1,-1),r.flag=\"\",\"\"},next:\"formatString\"};return e.$tokenizer=new l({start:[{regex:/\\\\./,onMatch:function(e,t,n){var r=e[1];return r==\"}\"&&n.length?e=r:\"`$\\\\\".indexOf(r)!=-1&&(e=r),[e]}},{regex:/}/,onMatch:function(e,t,n){return[n.length?n.shift():e]}},{regex:/\\$(?:\\d+|\\w+)/,onMatch:t},{regex:/\\$\\{[\\dA-Z_a-z]+/,onMatch:function(e,n,r){var i=t(e.substr(1));return r.unshift(i[0]),i},next:\"snippetVar\"},{regex:/\\n/,token:\"newline\",merge:!1}],snippetVar:[{regex:\"\\\\|\"+n(\"\\\\|\")+\"*\\\\|\",onMatch:function(e,t,n){var r=e.slice(1,-1).replace(/\\\\[,|\\\\]|,/g,function(e){return e.length==2?e[1]:\"\\0\"}).split(\"\\0\").map(function(e){return{value:e}});return n[0].choices=r,[r[0]]},next:\"start\"},r,{regex:\"([^:}\\\\\\\\]|\\\\\\\\.)*:?\",token:\"\",next:\"start\"}],formatString:[{regex:/:/,onMatch:function(e,t,n){return n.length&&n[0].expectElse?(n[0].expectElse=!1,n[0].ifEnd={elseEnd:n[0]},[n[0].ifEnd]):\":\"}},{regex:/\\\\./,onMatch:function(e,t,n){var r=e[1];return r==\"}\"&&n.length?e=r:\"`$\\\\\".indexOf(r)!=-1?e=r:r==\"n\"?e=\"\\n\":r==\"t\"?e=\"\t\":\"ulULE\".indexOf(r)!=-1&&(e={changeCase:r,local:r>\"a\"}),[e]}},{regex:\"/\\\\w*}\",onMatch:function(e,t,n){var r=n.shift();return r&&(r.flag=e.slice(1,-1)),this.next=r&&r.tabstopId?\"start\":\"\",[r||e]},next:\"start\"},{regex:/\\$(?:\\d+|\\w+)/,onMatch:function(e,t,n){return[{text:e.slice(1)}]}},{regex:/\\${\\w+/,onMatch:function(e,t,n){var r={text:e.slice(2)};return n.unshift(r),[r]},next:\"formatStringVar\"},{regex:/\\n/,token:\"newline\",merge:!1},{regex:/}/,onMatch:function(e,t,n){var r=n.shift();return this.next=r&&r.tabstopId?\"start\":\"\",[r||e]},next:\"start\"}],formatStringVar:[{regex:/:\\/\\w+}/,onMatch:function(e,t,n){var r=n[0];return r.formatFunction=e.slice(2,-1),[n.shift()]},next:\"formatString\"},r,{regex:/:[\\?\\-+]?/,onMatch:function(e,t,n){e[1]==\"+\"&&(n[0].ifEnd=n[0]),e[1]==\"?\"&&(n[0].expectElse=!0)},next:\"formatString\"},{regex:\"([^:}\\\\\\\\]|\\\\\\\\.)*:?\",token:\"\",next:\"formatString\"}]}),e.$tokenizer},e.prototype.tokenizeTmSnippet=function(e,t){return this.getTokenizer().getLineTokens(e,t).tokens.map(function(e){return e.value||e})},e.prototype.getVariableValue=function(e,t,n){if(/^\\d+$/.test(t))return(this.variables.__||{})[t]||\"\";if(/^[A-Z]\\d+$/.test(t))return(this.variables[t[0]+\"__\"]||{})[t.substr(1)]||\"\";t=t.replace(/^TM_/,\"\");if(!this.variables.hasOwnProperty(t))return\"\";var r=this.variables[t];return typeof r==\"function\"&&(r=this.variables[t](e,t,n)),r==null?\"\":r},e.prototype.tmStrFormat=function(e,t,n){if(!t.fmt)return e;var r=t.flag||\"\",i=t.guard;i=new RegExp(i,r.replace(/[^gim]/g,\"\"));var s=typeof t.fmt==\"string\"?this.tokenizeTmSnippet(t.fmt,\"formatString\"):t.fmt,o=this,u=e.replace(i,function(){var e=o.variables.__;o.variables.__=[].slice.call(arguments);var t=o.resolveVariables(s,n),r=\"E\";for(var i=0;i<t.length;i++){var u=t[i];if(typeof u==\"object\"){t[i]=\"\";if(u.changeCase&&u.local){var a=t[i+1];a&&typeof a==\"string\"&&(u.changeCase==\"u\"?t[i]=a[0].toUpperCase():t[i]=a[0].toLowerCase(),t[i+1]=a.substr(1))}else u.changeCase&&(r=u.changeCase)}else r==\"U\"?t[i]=u.toUpperCase():r==\"L\"&&(t[i]=u.toLowerCase())}return o.variables.__=e,t.join(\"\")});return u},e.prototype.tmFormatFunction=function(e,t,n){return t.formatFunction==\"upcase\"?e.toUpperCase():t.formatFunction==\"downcase\"?e.toLowerCase():e},e.prototype.resolveVariables=function(e,t){function f(t){var n=e.indexOf(t,s+1);n!=-1&&(s=n)}var n=[],r=\"\",i=!0;for(var s=0;s<e.length;s++){var o=e[s];if(typeof o==\"string\"){n.push(o),o==\"\\n\"?(i=!0,r=\"\"):i&&(r=/^\\t*/.exec(o)[0],i=/\\S/.test(o));continue}if(!o)continue;i=!1;if(o.fmtString){var u=e.indexOf(o,s+1);u==-1&&(u=e.length),o.fmt=e.slice(s+1,u),s=u}if(o.text){var a=this.getVariableValue(t,o.text,r)+\"\";o.fmtString&&(a=this.tmStrFormat(a,o,t)),o.formatFunction&&(a=this.tmFormatFunction(a,o,t)),a&&!o.ifEnd?(n.push(a),f(o)):!a&&o.ifEnd&&f(o.ifEnd)}else o.elseEnd?f(o.elseEnd):o.tabstopId!=null?n.push(o):o.changeCase!=null&&n.push(o)}return n},e.prototype.getDisplayTextForSnippet=function(e,t){var n=v.call(this,e,t);return n.text},e.prototype.insertSnippetForSelection=function(e,t,n){n===void 0&&(n={});var r=v.call(this,e,t,n),i=e.getSelectionRange(),s=e.session.replace(i,r.text),o=new m(e),u=e.inVirtualSelectionMode&&e.selection.index;o.addTabstops(r.tabstops,i.start,s,u)},e.prototype.insertSnippet=function(e,t,n){n===void 0&&(n={});var r=this;if(e.inVirtualSelectionMode)return r.insertSnippetForSelection(e,t,n);e.forEachSelection(function(){r.insertSnippetForSelection(e,t,n)},null,{keepOrder:!0}),e.tabstopManager&&e.tabstopManager.tabNext()},e.prototype.$getScope=function(e){var t=e.session.$mode.$id||\"\";t=t.split(\"/\").pop();if(t===\"html\"||t===\"php\"){t===\"php\"&&!e.session.$mode.inlinePhp&&(t=\"html\");var n=e.getCursorPosition(),r=e.session.getState(n.row);typeof r==\"object\"&&(r=r[0]),r.substring&&(r.substring(0,3)==\"js-\"?t=\"javascript\":r.substring(0,4)==\"css-\"?t=\"css\":r.substring(0,4)==\"php-\"&&(t=\"php\"))}return t},e.prototype.getActiveScopes=function(e){var t=this.$getScope(e),n=[t],r=this.snippetMap;return r[t]&&r[t].includeScopes&&n.push.apply(n,r[t].includeScopes),n.push(\"_\"),n},e.prototype.expandWithTab=function(e,t){var n=this,r=e.forEachSelection(function(){return n.expandSnippetForSelection(e,t)},null,{keepOrder:!0});return r&&e.tabstopManager&&e.tabstopManager.tabNext(),r},e.prototype.expandSnippetForSelection=function(e,t){var n=e.getCursorPosition(),r=e.session.getLine(n.row),i=r.substring(0,n.column),s=r.substr(n.column),o=this.snippetMap,u;return this.getActiveScopes(e).some(function(e){var t=o[e];return t&&(u=this.findMatchingSnippet(t,i,s)),!!u},this),u?t&&t.dryRun?!0:(e.session.doc.removeInLine(n.row,n.column-u.replaceBefore.length,n.column+u.replaceAfter.length),this.variables.M__=u.matchBefore,this.variables.T__=u.matchAfter,this.insertSnippetForSelection(e,u.content),this.variables.M__=this.variables.T__=null,!0):!1},e.prototype.findMatchingSnippet=function(e,t,n){for(var r=e.length;r--;){var i=e[r];if(i.startRe&&!i.startRe.test(t))continue;if(i.endRe&&!i.endRe.test(n))continue;if(!i.startRe&&!i.endRe)continue;return i.matchBefore=i.startRe?i.startRe.exec(t):[\"\"],i.matchAfter=i.endRe?i.endRe.exec(n):[\"\"],i.replaceBefore=i.triggerRe?i.triggerRe.exec(t)[0]:\"\",i.replaceAfter=i.endTriggerRe?i.endTriggerRe.exec(n)[0]:\"\",i}},e.prototype.register=function(e,t){function s(e){return e&&!/^\\^?\\(.*\\)\\$?$|^\\\\b$/.test(e)&&(e=\"(?:\"+e+\")\"),e||\"\"}function u(e,t,n){return e=s(e),t=s(t),n?(e=t+e,e&&e[e.length-1]!=\"$\"&&(e+=\"$\")):(e+=t,e&&e[0]!=\"^\"&&(e=\"^\"+e)),new RegExp(e)}function a(e){e.scope||(e.scope=t||\"_\"),t=e.scope,n[t]||(n[t]=[],r[t]={});var s=r[t];if(e.name){var a=s[e.name];a&&i.unregister(a),s[e.name]=e}n[t].push(e),e.prefix&&(e.tabTrigger=e.prefix),!e.content&&e.body&&(e.content=Array.isArray(e.body)?e.body.join(\"\\n\"):e.body),e.tabTrigger&&!e.trigger&&(!e.guard&&/^\\w/.test(e.tabTrigger)&&(e.guard=\"\\\\b\"),e.trigger=o.escapeRegExp(e.tabTrigger));if(!e.trigger&&!e.guard&&!e.endTrigger&&!e.endGuard)return;e.startRe=u(e.trigger,e.guard,!0),e.triggerRe=new RegExp(e.trigger),e.endRe=u(e.endTrigger,e.endGuard,!0),e.endTriggerRe=new RegExp(e.endTrigger)}var n=this.snippetMap,r=this.snippetNameMap,i=this;e||(e=[]),Array.isArray(e)?e.forEach(a):Object.keys(e).forEach(function(t){a(e[t])}),this._signal(\"registerSnippets\",{scope:t})},e.prototype.unregister=function(e,t){function i(e){var i=r[e.scope||t];if(i&&i[e.name]){delete i[e.name];var s=n[e.scope||t],o=s&&s.indexOf(e);o>=0&&s.splice(o,1)}}var n=this.snippetMap,r=this.snippetNameMap;e.content?i(e):Array.isArray(e)&&e.forEach(i)},e.prototype.parseSnippetFile=function(e){e=e.replace(/\\r/g,\"\");var t=[],n={},r=/^#.*|^({[\\s\\S]*})\\s*$|^(\\S+) (.*)$|^((?:\\n*\\t.*)+)/gm,i;while(i=r.exec(e)){if(i[1])try{n=JSON.parse(i[1]),t.push(n)}catch(s){}if(i[4])n.content=i[4].replace(/^\\t/gm,\"\"),t.push(n),n={};else{var o=i[2],u=i[3];if(o==\"regex\"){var a=/\\/((?:[^\\/\\\\]|\\\\.)*)|$/g;n.guard=a.exec(u)[1],n.trigger=a.exec(u)[1],n.endTrigger=a.exec(u)[1],n.endGuard=a.exec(u)[1]}else o==\"snippet\"?(n.tabTrigger=u.match(/^\\S*/)[0],n.name||(n.name=u)):o&&(n[o]=u)}}return t},e.prototype.getSnippetByName=function(e,t){var n=this.snippetNameMap,r;return this.getActiveScopes(t).some(function(t){var i=n[t];return i&&(r=i[e]),!!r},this),r},e}();i.implement(d.prototype,s);var v=function(e,t,n){function l(e){var t=[];for(var n=0;n<e.length;n++){var r=e[n];if(typeof r==\"object\"){if(f[r.tabstopId])continue;var i=e.lastIndexOf(r,n-1);r=t[i]||{tabstopId:r.tabstopId}}t[n]=r}return t}n===void 0&&(n={});var r=e.getCursorPosition(),i=e.session.getLine(r.row),s=e.session.getTabString(),o=i.match(/^\\s*/)[0];r.column<o.length&&(o=o.slice(0,r.column)),t=t.replace(/\\r/g,\"\");var u=this.tokenizeTmSnippet(t);u=this.resolveVariables(u,e),u=u.map(function(e){return e==\"\\n\"&&!n.excludeExtraIndent?e+o:typeof e==\"string\"?e.replace(/\\t/g,s):e});var a=[];u.forEach(function(e,t){if(typeof e!=\"object\")return;var n=e.tabstopId,r=a[n];r||(r=a[n]=[],r.index=n,r.value=\"\",r.parents={});if(r.indexOf(e)!==-1)return;e.choices&&!r.choices&&(r.choices=e.choices),r.push(e);var i=u.indexOf(e,t+1);if(i===-1)return;var s=u.slice(t+1,i),o=s.some(function(e){return typeof e==\"object\"});o&&!r.value?r.value=s:s.length&&(!r.value||typeof r.value!=\"string\")&&(r.value=s.join(\"\"))}),a.forEach(function(e){e.length=0});var f={};for(var c=0;c<u.length;c++){var h=u[c];if(typeof h!=\"object\")continue;var p=h.tabstopId,d=a[p],v=u.indexOf(h,c+1);if(f[p]){f[p]===h&&(delete f[p],Object.keys(f).forEach(function(e){d.parents[e]=!0}));continue}f[p]=h;var m=d.value;typeof m!=\"string\"?m=l(m):h.fmt&&(m=this.tmStrFormat(m,h,e)),u.splice.apply(u,[c+1,Math.max(0,v-c)].concat(m,h)),d.indexOf(h)===-1&&d.push(h)}var g=0,y=0,b=\"\";return u.forEach(function(e){if(typeof e==\"string\"){var t=e.split(\"\\n\");t.length>1?(y=t[t.length-1].length,g+=t.length-1):y+=e.length,b+=e}else e&&(e.start?e.end={row:g,column:y}:e.start={row:g,column:y})}),{text:b,tabstops:a,tokens:u}},m=function(){function e(e){this.index=0,this.ranges=[],this.tabstops=[];if(e.tabstopManager)return e.tabstopManager;e.tabstopManager=this,this.$onChange=this.onChange.bind(this),this.$onChangeSelection=o.delayedCall(this.onChangeSelection.bind(this)).schedule,this.$onChangeSession=this.onChangeSession.bind(this),this.$onAfterExec=this.onAfterExec.bind(this),this.attach(e)}return e.prototype.attach=function(e){this.$openTabstops=null,this.selectedTabstop=null,this.editor=e,this.session=e.session,this.editor.on(\"change\",this.$onChange),this.editor.on(\"changeSelection\",this.$onChangeSelection),this.editor.on(\"changeSession\",this.$onChangeSession),this.editor.commands.on(\"afterExec\",this.$onAfterExec),this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler)},e.prototype.detach=function(){this.tabstops.forEach(this.removeTabstopMarkers,this),this.ranges.length=0,this.tabstops.length=0,this.selectedTabstop=null,this.editor.off(\"change\",this.$onChange),this.editor.off(\"changeSelection\",this.$onChangeSelection),this.editor.off(\"changeSession\",this.$onChangeSession),this.editor.commands.off(\"afterExec\",this.$onAfterExec),this.editor.keyBinding.removeKeyboardHandler(this.keyboardHandler),this.editor.tabstopManager=null,this.session=null,this.editor=null},e.prototype.onChange=function(e){var t=e.action[0]==\"r\",n=this.selectedTabstop||{},r=n.parents||{},i=this.tabstops.slice();for(var s=0;s<i.length;s++){var o=i[s],u=o==n||r[o.index];o.rangeList.$bias=u?0:1;if(e.action==\"remove\"&&o!==n){var a=o.parents&&o.parents[n.index],f=o.rangeList.pointIndex(e.start,a);f=f<0?-f-1:f+1;var l=o.rangeList.pointIndex(e.end,a);l=l<0?-l-1:l-1;var c=o.rangeList.ranges.slice(f,l);for(var h=0;h<c.length;h++)this.removeRange(c[h])}o.rangeList.$onChange(e)}var p=this.session;!this.$inChange&&t&&p.getLength()==1&&!p.getValue()&&this.detach()},e.prototype.updateLinkedFields=function(){var e=this.selectedTabstop;if(!e||!e.hasLinkedRanges||!e.firstNonLinked)return;this.$inChange=!0;var n=this.session,r=n.getTextRange(e.firstNonLinked);for(var i=0;i<e.length;i++){var s=e[i];if(!s.linked)continue;var o=s.original,u=t.snippetManager.tmStrFormat(r,o,this.editor);n.replace(s,u)}this.$inChange=!1},e.prototype.onAfterExec=function(e){e.command&&!e.command.readOnly&&this.updateLinkedFields()},e.prototype.onChangeSelection=function(){if(!this.editor)return;var e=this.editor.selection.lead,t=this.editor.selection.anchor,n=this.editor.selection.isEmpty();for(var r=0;r<this.ranges.length;r++){if(this.ranges[r].linked)continue;var i=this.ranges[r].contains(e.row,e.column),s=n||this.ranges[r].contains(t.row,t.column);if(i&&s)return}this.detach()},e.prototype.onChangeSession=function(){this.detach()},e.prototype.tabNext=function(e){var t=this.tabstops.length,n=this.index+(e||1);n=Math.min(Math.max(n,1),t),n==t&&(n=0),this.selectTabstop(n),this.updateTabstopMarkers(),n===0&&this.detach()},e.prototype.selectTabstop=function(e){this.$openTabstops=null;var t=this.tabstops[this.index];t&&this.addTabstopMarkers(t),this.index=e,t=this.tabstops[this.index];if(!t||!t.length)return;this.selectedTabstop=t;var n=t.firstNonLinked||t;t.choices&&(n.cursor=n.start);if(!this.editor.inVirtualSelectionMode){var r=this.editor.multiSelect;r.toSingleRange(n);for(var i=0;i<t.length;i++){if(t.hasLinkedRanges&&t[i].linked)continue;r.addRange(t[i].clone(),!0)}}else this.editor.selection.fromOrientedRange(n);this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler),this.selectedTabstop&&this.selectedTabstop.choices&&this.editor.execCommand(\"startAutocomplete\",{matches:this.selectedTabstop.choices})},e.prototype.addTabstops=function(e,t,n){var r=this.useLink||!this.editor.getOption(\"enableMultiselect\");this.$openTabstops||(this.$openTabstops=[]);if(!e[0]){var i=u.fromPoints(n,n);y(i.start,t),y(i.end,t),e[0]=[i],e[0].index=0}var s=this.index,o=[s+1,0],f=this.ranges,l=this.snippetId=(this.snippetId||0)+1;e.forEach(function(e,n){var i=this.$openTabstops[n]||e;i.snippetId=l;for(var s=0;s<e.length;s++){var c=e[s],h=u.fromPoints(c.start,c.end||c.start);g(h.start,t),g(h.end,t),h.original=c,h.tabstop=i,f.push(h),i!=e?i.unshift(h):i[s]=h,c.fmtString||i.firstNonLinked&&r?(h.linked=!0,i.hasLinkedRanges=!0):i.firstNonLinked||(i.firstNonLinked=h)}i.firstNonLinked||(i.hasLinkedRanges=!1),i===e&&(o.push(i),this.$openTabstops[n]=i),this.addTabstopMarkers(i),i.rangeList=i.rangeList||new a,i.rangeList.$bias=0,i.rangeList.addList(i)},this),o.length>2&&(this.tabstops.length&&o.push(o.splice(2,1)[0]),this.tabstops.splice.apply(this.tabstops,o))},e.prototype.addTabstopMarkers=function(e){var t=this.session;e.forEach(function(e){e.markerId||(e.markerId=t.addMarker(e,\"ace_snippet-marker\",\"text\"))})},e.prototype.removeTabstopMarkers=function(e){var t=this.session;e.forEach(function(e){t.removeMarker(e.markerId),e.markerId=null})},e.prototype.updateTabstopMarkers=function(){if(!this.selectedTabstop)return;var e=this.selectedTabstop.snippetId;this.selectedTabstop.index===0&&e--,this.tabstops.forEach(function(t){t.snippetId===e?this.addTabstopMarkers(t):this.removeTabstopMarkers(t)},this)},e.prototype.removeRange=function(e){var t=e.tabstop.indexOf(e);t!=-1&&e.tabstop.splice(t,1),t=this.ranges.indexOf(e),t!=-1&&this.ranges.splice(t,1),t=e.tabstop.rangeList.ranges.indexOf(e),t!=-1&&e.tabstop.splice(t,1),this.session.removeMarker(e.markerId),e.tabstop.length||(t=this.tabstops.indexOf(e.tabstop),t!=-1&&this.tabstops.splice(t,1),this.tabstops.length||this.detach())},e}();m.prototype.keyboardHandler=new f,m.prototype.keyboardHandler.bindKeys({Tab:function(e){if(t.snippetManager&&t.snippetManager.expandWithTab(e))return;e.tabstopManager.tabNext(1),e.renderer.scrollCursorIntoView()},\"Shift-Tab\":function(e){e.tabstopManager.tabNext(-1),e.renderer.scrollCursorIntoView()},Esc:function(e){e.tabstopManager.detach()}});var g=function(e,t){e.row==0&&(e.column+=t.column),e.row+=t.row},y=function(e,t){e.row==t.row&&(e.column-=t.column),e.row-=t.row};r.importCssString(\"\\n.ace_snippet-marker {\\n -moz-box-sizing: border-box;\\n box-sizing: border-box;\\n background: rgba(194, 193, 208, 0.09);\\n border: 1px dotted rgba(211, 208, 235, 0.62);\\n position: absolute;\\n}\",\"snippets.css\",!1),t.snippetManager=new d;var b=e(\"./editor\").Editor;(function(){this.insertSnippet=function(e,n){return t.snippetManager.insertSnippet(this,e,n)},this.expandSnippet=function(e){return t.snippetManager.expandWithTab(this,e)}}).call(b.prototype)}),ace.define(\"ace/autocomplete/popup\",[\"require\",\"exports\",\"module\",\"ace/virtual_renderer\",\"ace/editor\",\"ace/range\",\"ace/lib/event\",\"ace/lib/lang\",\"ace/lib/dom\",\"ace/config\",\"ace/lib/useragent\"],function(e,t,n){\"use strict\";var r=e(\"../virtual_renderer\").VirtualRenderer,i=e(\"../editor\").Editor,s=e(\"../range\").Range,o=e(\"../lib/event\"),u=e(\"../lib/lang\"),a=e(\"../lib/dom\"),f=e(\"../config\").nls,l=e(\"./../lib/useragent\"),c=function(e){return\"suggest-aria-id:\".concat(e)},h=l.isSafari?\"menu\":\"listbox\",p=l.isSafari?\"menuitem\":\"option\",d=l.isSafari?\"aria-current\":\"aria-selected\",v=function(e){var t=new r(e);t.$maxLines=4;var n=new i(t);return n.setHighlightActiveLine(!1),n.setShowPrintMargin(!1),n.renderer.setShowGutter(!1),n.renderer.setHighlightGutterLine(!1),n.$mouseHandler.$focusTimeout=0,n.$highlightTagPending=!0,n},m=function(){function e(e){var t=a.createElement(\"div\"),n=v(t);e&&e.appendChild(t),t.style.display=\"none\",n.renderer.content.style.cursor=\"default\",n.renderer.setStyle(\"ace_autocomplete\"),n.renderer.$textLayer.element.setAttribute(\"role\",h),n.renderer.$textLayer.element.setAttribute(\"aria-roledescription\",f(\"autocomplete.popup.aria-roledescription\",\"Autocomplete suggestions\")),n.renderer.$textLayer.element.setAttribute(\"aria-label\",f(\"autocomplete.popup.aria-label\",\"Autocomplete suggestions\")),n.renderer.textarea.setAttribute(\"aria-hidden\",\"true\"),n.setOption(\"displayIndentGuides\",!1),n.setOption(\"dragDelay\",150);var r=function(){};n.focus=r,n.$isFocused=!0,n.renderer.$cursorLayer.restartTimer=r,n.renderer.$cursorLayer.element.style.opacity=\"0\",n.renderer.$maxLines=8,n.renderer.$keepTextAreaAtCursor=!1,n.setHighlightActiveLine(!1),n.session.highlight(\"\"),n.session.$searchHighlight.clazz=\"ace_highlight-marker\",n.on(\"mousedown\",function(e){var t=e.getDocumentPosition();n.selection.moveToPosition(t),m.start.row=m.end.row=t.row,e.stop()});var i,l=new s(-1,0,-1,Infinity),m=new s(-1,0,-1,Infinity);m.id=n.session.addMarker(m,\"ace_active-line\",\"fullLine\"),n.setSelectOnHover=function(e){e?l.id&&(n.session.removeMarker(l.id),l.id=null):l.id=n.session.addMarker(l,\"ace_line-hover\",\"fullLine\")},n.setSelectOnHover(!1),n.on(\"mousemove\",function(e){if(!i){i=e;return}if(i.x==e.x&&i.y==e.y)return;i=e,i.scrollTop=n.renderer.scrollTop,n.isMouseOver=!0;var t=i.getDocumentPosition().row;l.start.row!=t&&(l.id||n.setRow(t),y(t))}),n.renderer.on(\"beforeRender\",function(){if(i&&l.start.row!=-1){i.$pos=null;var e=i.getDocumentPosition().row;l.id||n.setRow(e),y(e,!0)}}),n.renderer.on(\"afterRender\",function(){var e=n.getRow(),t=n.renderer.$textLayer,r=t.element.childNodes[e-t.config.firstRow],i=document.activeElement;r!==n.selectedNode&&n.selectedNode&&(a.removeCssClass(n.selectedNode,\"ace_selected\"),i.removeAttribute(\"aria-activedescendant\"),n.selectedNode.removeAttribute(d),n.selectedNode.removeAttribute(\"id\")),n.selectedNode=r;if(r){a.addCssClass(r,\"ace_selected\");var s=c(e);r.id=s,t.element.setAttribute(\"aria-activedescendant\",s),i.setAttribute(\"aria-activedescendant\",s),r.setAttribute(\"role\",p),r.setAttribute(\"aria-roledescription\",f(\"autocomplete.popup.item.aria-roledescription\",\"item\")),r.setAttribute(\"aria-label\",n.getData(e).caption||n.getData(e).value),r.setAttribute(\"aria-setsize\",n.data.length),r.setAttribute(\"aria-posinset\",e+1),r.setAttribute(\"aria-describedby\",\"doc-tooltip\"),r.setAttribute(d,\"true\")}});var g=function(){y(-1)},y=function(e,t){e!==l.start.row&&(l.start.row=l.end.row=e,t||n.session._emit(\"changeBackMarker\"),n._emit(\"changeHoverMarker\"))};n.getHoveredRow=function(){return l.start.row},o.addListener(n.container,\"mouseout\",function(){n.isMouseOver=!1,g()}),n.on(\"hide\",g),n.on(\"changeSelection\",g),n.session.doc.getLength=function(){return n.data.length},n.session.doc.getLine=function(e){var t=n.data[e];return typeof t==\"string\"?t:t&&t.value||\"\"};var b=n.session.bgTokenizer;return b.$tokenizeRow=function(e){function s(e,n){e&&r.push({type:(t.className||\"\")+(n||\"\"),value:e})}var t=n.data[e],r=[];if(!t)return r;typeof t==\"string\"&&(t={value:t});var i=t.caption||t.value||t.name,o=i.toLowerCase(),u=(n.filterText||\"\").toLowerCase(),a=0,f=0;for(var l=0;l<=u.length;l++)if(l!=f&&(t.matchMask&1<<l||l==u.length)){var c=u.slice(f,l);f=l;var h=o.indexOf(c,a);if(h==-1)continue;s(i.slice(a,h),\"\"),a=h+c.length,s(i.slice(h,a),\"completion-highlight\")}return s(i.slice(a,i.length),\"\"),r.push({type:\"completion-spacer\",value:\" \"}),t.meta&&r.push({type:\"completion-meta\",value:t.meta}),t.message&&r.push({type:\"completion-message\",value:t.message}),r},b.$updateOnChange=r,b.start=r,n.session.$computeWidth=function(){return this.screenWidth=0},n.isOpen=!1,n.isTopdown=!1,n.autoSelect=!0,n.filterText=\"\",n.isMouseOver=!1,n.data=[],n.setData=function(e,t){n.filterText=t||\"\",n.setValue(u.stringRepeat(\"\\n\",e.length),-1),n.data=e||[],n.setRow(0)},n.getData=function(e){return n.data[e]},n.getRow=function(){return m.start.row},n.setRow=function(e){e=Math.max(this.autoSelect?0:-1,Math.min(this.data.length-1,e)),m.start.row!=e&&(n.selection.clearSelection(),m.start.row=m.end.row=e||0,n.session._emit(\"changeBackMarker\"),n.moveCursorTo(e||0,0),n.isOpen&&n._signal(\"select\"))},n.on(\"changeSelection\",function(){n.isOpen&&n.setRow(n.selection.lead.row),n.renderer.scrollCursorIntoView()}),n.hide=function(){this.container.style.display=\"none\",n.anchorPos=null,n.anchor=null,n.isOpen&&(n.isOpen=!1,this._signal(\"hide\"))},n.tryShow=function(e,t,r,s){if(!s&&n.isOpen&&n.anchorPos&&n.anchor&&n.anchorPos.top===e.top&&n.anchorPos.left===e.left&&n.anchor===r)return!0;var o=this.container,u=window.innerHeight,a=window.innerWidth,f=this.renderer,l=f.$maxLines*t*1.4,c={top:0,bottom:0,left:0},h=u-e.top-3*this.$borderSize-t,p=e.top-3*this.$borderSize;r||(p<=h||h>=l?r=\"bottom\":r=\"top\"),r===\"top\"?(c.bottom=e.top-this.$borderSize,c.top=c.bottom-l):r===\"bottom\"&&(c.top=e.top+t+this.$borderSize,c.bottom=c.top+l);var d=c.top>=0&&c.bottom<=u;if(!s&&!d)return!1;d?f.$maxPixelHeight=null:r===\"top\"?f.$maxPixelHeight=p:f.$maxPixelHeight=h,r===\"top\"?(o.style.top=\"\",o.style.bottom=u-c.bottom+\"px\",n.isTopdown=!1):(o.style.top=c.top+\"px\",o.style.bottom=\"\",n.isTopdown=!0),o.style.display=\"\";var v=e.left;return v+o.offsetWidth>a&&(v=a-o.offsetWidth),o.style.left=v+\"px\",o.style.right=\"\",n.isOpen||(n.isOpen=!0,this._signal(\"show\"),i=null),n.anchorPos=e,n.anchor=r,!0},n.show=function(e,t,n){this.tryShow(e,t,n?\"bottom\":undefined,!0)},n.goTo=function(e){var t=this.getRow(),n=this.session.getLength()-1;switch(e){case\"up\":t=t<=0?n:t-1;break;case\"down\":t=t>=n?-1:t+1;break;case\"start\":t=0;break;case\"end\":t=n}this.setRow(t)},n.getTextLeftOffset=function(){return this.$borderSize+this.renderer.$padding+this.$imageSize},n.$imageSize=0,n.$borderSize=1,n}return e}();a.importCssString('\\n.ace_editor.ace_autocomplete .ace_marker-layer .ace_active-line {\\n background-color: #CAD6FA;\\n z-index: 1;\\n}\\n.ace_dark.ace_editor.ace_autocomplete .ace_marker-layer .ace_active-line {\\n background-color: #3a674e;\\n}\\n.ace_editor.ace_autocomplete .ace_line-hover {\\n border: 1px solid #abbffe;\\n margin-top: -1px;\\n background: rgba(233,233,253,0.4);\\n position: absolute;\\n z-index: 2;\\n}\\n.ace_dark.ace_editor.ace_autocomplete .ace_line-hover {\\n border: 1px solid rgba(109, 150, 13, 0.8);\\n background: rgba(58, 103, 78, 0.62);\\n}\\n.ace_completion-meta {\\n opacity: 0.5;\\n margin-left: 0.9em;\\n}\\n.ace_completion-message {\\n margin-left: 0.9em;\\n color: blue;\\n}\\n.ace_editor.ace_autocomplete .ace_completion-highlight{\\n color: #2d69c7;\\n}\\n.ace_dark.ace_editor.ace_autocomplete .ace_completion-highlight{\\n color: #93ca12;\\n}\\n.ace_editor.ace_autocomplete {\\n width: 300px;\\n z-index: 200000;\\n border: 1px lightgray solid;\\n position: fixed;\\n box-shadow: 2px 3px 5px rgba(0,0,0,.2);\\n line-height: 1.4;\\n background: #fefefe;\\n color: #111;\\n}\\n.ace_dark.ace_editor.ace_autocomplete {\\n border: 1px #484747 solid;\\n box-shadow: 2px 3px 5px rgba(0, 0, 0, 0.51);\\n line-height: 1.4;\\n background: #25282c;\\n color: #c1c1c1;\\n}\\n.ace_autocomplete .ace_text-layer {\\n width: calc(100% - 8px);\\n}\\n.ace_autocomplete .ace_line {\\n display: flex;\\n align-items: center;\\n}\\n.ace_autocomplete .ace_line > * {\\n min-width: 0;\\n flex: 0 0 auto;\\n}\\n.ace_autocomplete .ace_line .ace_ {\\n flex: 0 1 auto;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n}\\n.ace_autocomplete .ace_completion-spacer {\\n flex: 1;\\n}\\n.ace_autocomplete.ace_loading:after {\\n content: \"\";\\n position: absolute;\\n top: 0px;\\n height: 2px;\\n width: 8%;\\n background: blue;\\n z-index: 100;\\n animation: ace_progress 3s infinite linear;\\n animation-delay: 300ms;\\n transform: translateX(-100%) scaleX(1);\\n}\\n@keyframes ace_progress {\\n 0% { transform: translateX(-100%) scaleX(1) }\\n 50% { transform: translateX(625%) scaleX(2) } \\n 100% { transform: translateX(1500%) scaleX(3) } \\n}\\n@media (prefers-reduced-motion) {\\n .ace_autocomplete.ace_loading:after {\\n transform: translateX(625%) scaleX(2);\\n animation: none;\\n }\\n}\\n',\"autocompletion.css\",!1),t.AcePopup=m,t.$singleLineEditor=v,t.getAriaId=c}),ace.define(\"ace/autocomplete/inline_screenreader\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";var r=function(){function e(e){this.editor=e,this.screenReaderDiv=document.createElement(\"div\"),this.screenReaderDiv.classList.add(\"ace_screenreader-only\"),this.editor.container.appendChild(this.screenReaderDiv)}return e.prototype.setScreenReaderContent=function(e){!this.popup&&this.editor.completer&&this.editor.completer.popup&&(this.popup=this.editor.completer.popup,this.popup.renderer.on(\"afterRender\",function(){var e=this.popup.getRow(),t=this.popup.renderer.$textLayer,n=t.element.childNodes[e-t.config.firstRow];if(n){var r=\"doc-tooltip \";for(var i=0;i<this._lines.length;i++)r+=\"ace-inline-screenreader-line-\".concat(i,\" \");n.setAttribute(\"aria-describedby\",r)}}.bind(this)));while(this.screenReaderDiv.firstChild)this.screenReaderDiv.removeChild(this.screenReaderDiv.firstChild);this._lines=e.split(/\\r\\n|\\r|\\n/);var t=this.createCodeBlock();this.screenReaderDiv.appendChild(t)},e.prototype.destroy=function(){this.screenReaderDiv.remove()},e.prototype.createCodeBlock=function(){var e=document.createElement(\"pre\");e.setAttribute(\"id\",\"ace-inline-screenreader\");for(var t=0;t<this._lines.length;t++){var n=document.createElement(\"code\");n.setAttribute(\"id\",\"ace-inline-screenreader-line-\".concat(t));var r=document.createTextNode(this._lines[t]);n.appendChild(r),e.appendChild(n)}return e},e}();t.AceInlineScreenReader=r}),ace.define(\"ace/autocomplete/inline\",[\"require\",\"exports\",\"module\",\"ace/snippets\",\"ace/autocomplete/inline_screenreader\"],function(e,t,n){\"use strict\";var r=e(\"../snippets\").snippetManager,i=e(\"./inline_screenreader\").AceInlineScreenReader,s=function(){function e(){this.editor=null}return e.prototype.show=function(e,t,n){n=n||\"\",e&&this.editor&&this.editor!==e&&(this.hide(),this.editor=null,this.inlineScreenReader=null);if(!e||!t)return!1;this.inlineScreenReader||(this.inlineScreenReader=new i(e));var s=t.snippet?r.getDisplayTextForSnippet(e,t.snippet):t.value;return t.hideInlinePreview||!s||!s.startsWith(n)?!1:(this.editor=e,this.inlineScreenReader.setScreenReaderContent(s),s=s.slice(n.length),s===\"\"?e.removeGhostText():e.setGhostText(s),!0)},e.prototype.isOpen=function(){return this.editor?!!this.editor.renderer.$ghostText:!1},e.prototype.hide=function(){return this.editor?(this.editor.removeGhostText(),!0):!1},e.prototype.destroy=function(){this.hide(),this.editor=null,this.inlineScreenReader&&(this.inlineScreenReader.destroy(),this.inlineScreenReader=null)},e}();t.AceInline=s}),ace.define(\"ace/autocomplete/util\",[\"require\",\"exports\",\"module\"],function(e,t,n){\"use strict\";t.parForEach=function(e,t,n){var r=0,i=e.length;i===0&&n();for(var s=0;s<i;s++)t(e[s],function(e,t){r++,r===i&&n(e,t)})};var r=/[a-zA-Z_0-9\\$\\-\\u00A2-\\u2000\\u2070-\\uFFFF]/;t.retrievePrecedingIdentifier=function(e,t,n){n=n||r;var i=[];for(var s=t-1;s>=0;s--){if(!n.test(e[s]))break;i.push(e[s])}return i.reverse().join(\"\")},t.retrieveFollowingIdentifier=function(e,t,n){n=n||r;var i=[];for(var s=t;s<e.length;s++){if(!n.test(e[s]))break;i.push(e[s])}return i},t.getCompletionPrefix=function(e){var t=e.getCursorPosition(),n=e.session.getLine(t.row),r;return e.completers.forEach(function(e){e.identifierRegexps&&e.identifierRegexps.forEach(function(e){!r&&e&&(r=this.retrievePrecedingIdentifier(n,t.column,e))}.bind(this))}.bind(this)),r||this.retrievePrecedingIdentifier(n,t.column)},t.triggerAutocomplete=function(e,t){var t=t==null?e.session.getPrecedingCharacter():t;return e.completers.some(function(e){if(e.triggerCharacters&&Array.isArray(e.triggerCharacters))return e.triggerCharacters.includes(t)})}}),ace.define(\"ace/autocomplete\",[\"require\",\"exports\",\"module\",\"ace/keyboard/hash_handler\",\"ace/autocomplete/popup\",\"ace/autocomplete/inline\",\"ace/autocomplete/popup\",\"ace/autocomplete/util\",\"ace/lib/lang\",\"ace/lib/dom\",\"ace/snippets\",\"ace/config\",\"ace/lib/event\",\"ace/lib/scroll\"],function(e,t,n){\"use strict\";var r=e(\"./keyboard/hash_handler\").HashHandler,i=e(\"./autocomplete/popup\").AcePopup,s=e(\"./autocomplete/inline\").AceInline,o=e(\"./autocomplete/popup\").getAriaId,u=e(\"./autocomplete/util\"),a=e(\"./lib/lang\"),f=e(\"./lib/dom\"),l=e(\"./snippets\").snippetManager,c=e(\"./config\"),h=e(\"./lib/event\"),p=e(\"./lib/scroll\").preventParentScroll,d=function(e,t){t.completer&&t.completer.destroy()},v=function(){function e(){this.autoInsert=!1,this.autoSelect=!0,this.autoShown=!1,this.exactMatch=!1,this.inlineEnabled=!1,this.keyboardHandler=new r,this.keyboardHandler.bindKeys(this.commands),this.parentNode=null,this.setSelectOnHover=!1,this.hasSeen=new Set,this.showLoadingState=!1,this.stickySelectionDelay=500,this.blurListener=this.blurListener.bind(this),this.changeListener=this.changeListener.bind(this),this.mousedownListener=this.mousedownListener.bind(this),this.mousewheelListener=this.mousewheelListener.bind(this),this.onLayoutChange=this.onLayoutChange.bind(this),this.changeTimer=a.delayedCall(function(){this.updateCompletions(!0)}.bind(this)),this.tooltipTimer=a.delayedCall(this.updateDocTooltip.bind(this),50),this.popupTimer=a.delayedCall(this.$updatePopupPosition.bind(this),50),this.stickySelectionTimer=a.delayedCall(function(){this.stickySelection=!0}.bind(this),this.stickySelectionDelay),this.$firstOpenTimer=a.delayedCall(function(){var t=this.completionProvider&&this.completionProvider.initialPosition;if(this.autoShown||this.popup&&this.popup.isOpen||!t||this.editor.completers.length===0)return;this.completions=new g(e.completionsForLoading),this.openPopup(this.editor,t.prefix,!1),this.popup.renderer.setStyle(\"ace_loading\",!0)}.bind(this),this.stickySelectionDelay)}return Object.defineProperty(e,\"completionsForLoading\",{get:function(){return[{caption:c.nls(\"autocomplete.loading\",\"Loading...\"),value:\"\"}]},enumerable:!1,configurable:!0}),e.prototype.$init=function(){return this.popup=new i(this.parentNode||document.body||document.documentElement),this.popup.on(\"click\",function(e){this.insertMatch(),e.stop()}.bind(this)),this.popup.focus=this.editor.focus.bind(this.editor),this.popup.on(\"show\",this.$onPopupShow.bind(this)),this.popup.on(\"hide\",this.$onHidePopup.bind(this)),this.popup.on(\"select\",this.$onPopupChange.bind(this)),h.addListener(this.popup.container,\"mouseout\",this.mouseOutListener.bind(this)),this.popup.on(\"changeHoverMarker\",this.tooltipTimer.bind(null,null)),this.popup.renderer.on(\"afterRender\",this.$onPopupRender.bind(this)),this.popup},e.prototype.$initInline=function(){if(!this.inlineEnabled||this.inlineRenderer)return;return this.inlineRenderer=new s,this.inlineRenderer},e.prototype.getPopup=function(){return this.popup||this.$init()},e.prototype.$onHidePopup=function(){this.inlineRenderer&&this.inlineRenderer.hide(),this.hideDocTooltip(),this.stickySelectionTimer.cancel(),this.popupTimer.cancel(),this.stickySelection=!1},e.prototype.$seen=function(e){!this.hasSeen.has(e)&&e&&e.completer&&e.completer.onSeen&&typeof e.completer.onSeen==\"function\"&&(e.completer.onSeen(this.editor,e),this.hasSeen.add(e))},e.prototype.$onPopupChange=function(e){if(this.inlineRenderer&&this.inlineEnabled){var t=e?null:this.popup.getData(this.popup.getRow());this.$updateGhostText(t);if(this.popup.isMouseOver&&this.setSelectOnHover){this.tooltipTimer.call(null,null);return}this.popupTimer.schedule(),this.tooltipTimer.schedule()}else this.popupTimer.call(null,null),this.tooltipTimer.call(null,null)},e.prototype.$updateGhostText=function(e){var t=this.base.row,n=this.base.column,r=this.editor.getCursorPosition().column,i=this.editor.session.getLine(t).slice(n,r);this.inlineRenderer.show(this.editor,e,i)?this.$seen(e):this.inlineRenderer.hide()},e.prototype.$onPopupRender=function(){var e=this.inlineRenderer&&this.inlineEnabled;if(this.completions&&this.completions.filtered&&this.completions.filtered.length>0)for(var t=this.popup.getFirstVisibleRow();t<=this.popup.getLastVisibleRow();t++){var n=this.popup.getData(t);n&&(!e||n.hideInlinePreview)&&this.$seen(n)}},e.prototype.$onPopupShow=function(e){this.$onPopupChange(e),this.stickySelection=!1,this.stickySelectionDelay>=0&&this.stickySelectionTimer.schedule(this.stickySelectionDelay)},e.prototype.observeLayoutChanges=function(){if(this.$elements||!this.editor)return;window.addEventListener(\"resize\",this.onLayoutChange,{passive:!0}),window.addEventListener(\"wheel\",this.mousewheelListener);var e=this.editor.container.parentNode,t=[];while(e)t.push(e),e.addEventListener(\"scroll\",this.onLayoutChange,{passive:!0}),e=e.parentNode;this.$elements=t},e.prototype.unObserveLayoutChanges=function(){var e=this;window.removeEventListener(\"resize\",this.onLayoutChange,{passive:!0}),window.removeEventListener(\"wheel\",this.mousewheelListener),this.$elements&&this.$elements.forEach(function(t){t.removeEventListener(\"scroll\",e.onLayoutChange,{passive:!0})}),this.$elements=null},e.prototype.onLayoutChange=function(){if(!this.popup.isOpen)return this.unObserveLayoutChanges();this.$updatePopupPosition(),this.updateDocTooltip()},e.prototype.$updatePopupPosition=function(){var e=this.editor,t=e.renderer,n=t.layerConfig.lineHeight,r=t.$cursorLayer.getPixelPosition(this.base,!0);r.left-=this.popup.getTextLeftOffset();var i=e.container.getBoundingClientRect();r.top+=i.top-t.layerConfig.offset,r.left+=i.left-e.renderer.scrollLeft,r.left+=t.gutterWidth;var s={top:r.top,left:r.left};t.$ghostText&&t.$ghostTextWidget&&this.base.row===t.$ghostText.position.row&&(s.top+=t.$ghostTextWidget.el.offsetHeight);var o=e.container.getBoundingClientRect().bottom-n,u=o<s.top?{top:o,left:s.left}:s;if(this.popup.tryShow(u,n,\"bottom\"))return;if(this.popup.tryShow(r,n,\"top\"))return;this.popup.show(r,n)},e.prototype.openPopup=function(e,t,n){this.$firstOpenTimer.cancel(),this.popup||this.$init(),this.inlineEnabled&&!this.inlineRenderer&&this.$initInline(),this.popup.autoSelect=this.autoSelect,this.popup.setSelectOnHover(this.setSelectOnHover);var r=this.popup.getRow(),i=this.popup.data[r];this.popup.setData(this.completions.filtered,this.completions.filterText),this.editor.textInput.setAriaOptions&&this.editor.textInput.setAriaOptions({activeDescendant:o(this.popup.getRow()),inline:this.inlineEnabled}),e.keyBinding.addKeyboardHandler(this.keyboardHandler);var s;this.stickySelection&&(s=this.popup.data.indexOf(i));if(!s||s===-1)s=0;this.popup.setRow(this.autoSelect?s:-1),s===r&&i!==this.completions.filtered[s]&&this.$onPopupChange();var u=this.inlineRenderer&&this.inlineEnabled;if(s===r&&u){var a=this.popup.getData(this.popup.getRow());this.$updateGhostText(a)}n||(this.popup.setTheme(e.getTheme()),this.popup.setFontSize(e.getFontSize()),this.$updatePopupPosition(),this.tooltipNode&&this.updateDocTooltip()),this.changeTimer.cancel(),this.observeLayoutChanges()},e.prototype.detach=function(){this.editor&&(this.editor.keyBinding.removeKeyboardHandler(this.keyboardHandler),this.editor.off(\"changeSelection\",this.changeListener),this.editor.off(\"blur\",this.blurListener),this.editor.off(\"mousedown\",this.mousedownListener),this.editor.off(\"mousewheel\",this.mousewheelListener)),this.$firstOpenTimer.cancel(),this.changeTimer.cancel(),this.hideDocTooltip(),this.completionProvider&&this.completionProvider.detach(),this.popup&&this.popup.isOpen&&this.popup.hide(),this.popup&&this.popup.renderer&&this.popup.renderer.off(\"afterRender\",this.$onPopupRender),this.base&&this.base.detach(),this.activated=!1,this.completionProvider=this.completions=this.base=null,this.unObserveLayoutChanges()},e.prototype.changeListener=function(e){var t=this.editor.selection.lead;(t.row!=this.base.row||t.column<this.base.column)&&this.detach(),this.activated?this.changeTimer.schedule():this.detach()},e.prototype.blurListener=function(e){var t=document.activeElement,n=this.editor.textInput.getElement(),r=e.relatedTarget&&this.tooltipNode&&this.tooltipNode.contains(e.relatedTarget),i=this.popup&&this.popup.container;t!=n&&t.parentNode!=i&&!r&&t!=this.tooltipNode&&e.relatedTarget!=n&&this.detach()},e.prototype.mousedownListener=function(e){this.detach()},e.prototype.mousewheelListener=function(e){this.popup&&!this.popup.isMouseOver&&this.detach()},e.prototype.mouseOutListener=function(e){this.popup.isOpen&&this.$updatePopupPosition()},e.prototype.goTo=function(e){this.popup.goTo(e)},e.prototype.insertMatch=function(e,t){e||(e=this.popup.getData(this.popup.getRow()));if(!e)return!1;if(e.value===\"\")return this.detach();var n=this.completions,r=this.getCompletionProvider().insertMatch(this.editor,e,n.filterText,t);return this.completions==n&&this.detach(),r},e.prototype.showPopup=function(e,t){this.editor&&this.detach(),this.activated=!0,this.editor=e,e.completer!=this&&(e.completer&&e.completer.detach(),e.completer=this),e.on(\"changeSelection\",this.changeListener),e.on(\"blur\",this.blurListener),e.on(\"mousedown\",this.mousedownListener),e.on(\"mousewheel\",this.mousewheelListener),this.updateCompletions(!1,t)},e.prototype.getCompletionProvider=function(e){return this.completionProvider||(this.completionProvider=new m(e)),this.completionProvider},e.prototype.gatherCompletions=function(e,t){return this.getCompletionProvider().gatherCompletions(e,t)},e.prototype.updateCompletions=function(t,n){if(t&&this.base&&this.completions){var r=this.editor.getCursorPosition(),i=this.editor.session.getTextRange({start:this.base,end:r});if(i==this.completions.filterText)return;this.completions.setFilter(i);if(!this.completions.filtered.length)return this.detach();if(this.completions.filtered.length==1&&this.completions.filtered[0].value==i&&!this.completions.filtered[0].snippet)return this.detach();this.openPopup(this.editor,i,t);return}if(n&&n.matches){var r=this.editor.getSelectionRange().start;return this.base=this.editor.session.doc.createAnchor(r.row,r.column),this.base.$insertRight=!0,this.completions=new g(n.matches),this.getCompletionProvider().completions=this.completions,this.openPopup(this.editor,\"\",t)}var s=this.editor.getSession(),r=this.editor.getCursorPosition(),i=u.getCompletionPrefix(this.editor);this.base=s.doc.createAnchor(r.row,r.column-i.length),this.base.$insertRight=!0;var o={exactMatch:this.exactMatch,ignoreCaption:this.ignoreCaption};this.getCompletionProvider({prefix:i,pos:r}).provideCompletions(this.editor,o,function(n,r,i){var s=r.filtered,o=u.getCompletionPrefix(this.editor);this.$firstOpenTimer.cancel();if(i){if(!s.length){var a=!this.autoShown&&this.emptyMessage;typeof a==\"function\"&&(a=this.emptyMessage(o));if(a){var f=[{caption:a,value:\"\"}];this.completions=new g(f),this.openPopup(this.editor,o,t),this.popup.renderer.setStyle(\"ace_loading\",!1),this.popup.renderer.setStyle(\"ace_empty-message\",!0);return}return this.detach()}if(s.length==1&&s[0].value==o&&!s[0].snippet)return this.detach();if(this.autoInsert&&!this.autoShown&&s.length==1)return this.insertMatch(s[0])}this.completions=!i&&this.showLoadingState?new g(e.completionsForLoading.concat(s),r.filterText):r,this.openPopup(this.editor,o,t),this.popup.renderer.setStyle(\"ace_empty-message\",!1),this.popup.renderer.setStyle(\"ace_loading\",!i)}.bind(this)),this.showLoadingState&&!this.autoShown&&(!this.popup||!this.popup.isOpen)&&this.$firstOpenTimer.delay(this.stickySelectionDelay/2)},e.prototype.cancelContextMenu=function(){this.editor.$mouseHandler.cancelContextMenu()},e.prototype.updateDocTooltip=function(){var e=this.popup,t=this.completions.filtered,n=t&&(t[e.getHoveredRow()]||t[e.getRow()]),r=null;if(!n||!this.editor||!this.popup.isOpen)return this.hideDocTooltip();var i=this.editor.completers.length;for(var s=0;s<i;s++){var o=this.editor.completers[s];if(o.getDocTooltip&&n.completerId===o.id){r=o.getDocTooltip(n);break}}!r&&typeof n!=\"string\"&&(r=n),typeof r==\"string\"&&(r={docText:r});if(!r||!r.docHTML&&!r.docText)return this.hideDocTooltip();this.showDocTooltip(r)},e.prototype.showDocTooltip=function(e){this.tooltipNode||(this.tooltipNode=f.createElement(\"div\"),this.tooltipNode.style.margin=\"0\",this.tooltipNode.style.pointerEvents=\"auto\",this.tooltipNode.style.overscrollBehavior=\"contain\",this.tooltipNode.tabIndex=-1,this.tooltipNode.onblur=this.blurListener.bind(this),this.tooltipNode.onclick=this.onTooltipClick.bind(this),this.tooltipNode.id=\"doc-tooltip\",this.tooltipNode.setAttribute(\"role\",\"tooltip\"),this.tooltipNode.addEventListener(\"wheel\",p));var t=this.editor.renderer.theme;this.tooltipNode.className=\"ace_tooltip ace_doc-tooltip \"+(t.isDark?\"ace_dark \":\"\")+(t.cssClass||\"\");var n=this.tooltipNode;e.docHTML?n.innerHTML=e.docHTML:e.docText&&(n.textContent=e.docText),n.parentNode||this.popup.container.appendChild(this.tooltipNode);var r=this.popup,i=r.container.getBoundingClientRect();n.style.top=r.container.style.top,n.style.bottom=r.container.style.bottom,n.style.display=\"block\",window.innerWidth-i.right<320?i.left<320?r.isTopdown?(n.style.top=i.bottom+\"px\",n.style.left=i.left+\"px\",n.style.right=\"\",n.style.bottom=\"\"):(n.style.top=r.container.offsetTop-n.offsetHeight+\"px\",n.style.left=i.left+\"px\",n.style.right=\"\",n.style.bottom=\"\"):(n.style.right=window.innerWidth-i.left+\"px\",n.style.left=\"\"):(n.style.left=i.right+1+\"px\",n.style.right=\"\")},e.prototype.hideDocTooltip=function(){this.tooltipTimer.cancel();if(!this.tooltipNode)return;var e=this.tooltipNode;!this.editor.isFocused()&&document.activeElement==e&&this.editor.focus(),this.tooltipNode=null,e.parentNode&&e.parentNode.removeChild(e)},e.prototype.onTooltipClick=function(e){var t=e.target;while(t&&t!=this.tooltipNode){if(t.nodeName==\"A\"&&t.href){t.rel=\"noreferrer\",t.target=\"_blank\";break}t=t.parentNode}},e.prototype.destroy=function(){this.detach();if(this.popup){this.popup.destroy();var e=this.popup.container;e&&e.parentNode&&e.parentNode.removeChild(e)}this.editor&&this.editor.completer==this&&(this.editor.off(\"destroy\",d),this.editor.completer=null),this.inlineRenderer=this.popup=this.editor=null},e.for=function(t){return t.completer instanceof e?t.completer:(t.completer&&(t.completer.destroy(),t.completer=null),c.get(\"sharedPopups\")?(e.$sharedInstance||(e.$sharedInstance=new e),t.completer=e.$sharedInstance):(t.completer=new e,t.once(\"destroy\",d)),t.completer)},e}();v.prototype.commands={Up:function(e){e.completer.goTo(\"up\")},Down:function(e){e.completer.goTo(\"down\")},\"Ctrl-Up|Ctrl-Home\":function(e){e.completer.goTo(\"start\")},\"Ctrl-Down|Ctrl-End\":function(e){e.completer.goTo(\"end\")},Esc:function(e){e.completer.detach()},Return:function(e){return e.completer.insertMatch()},\"Shift-Return\":function(e){e.completer.insertMatch(null,{deleteSuffix:!0})},Tab:function(e){var t=e.completer.insertMatch();if(!!t||!!e.tabstopManager)return t;e.completer.goTo(\"down\")},Backspace:function(e){e.execCommand(\"backspace\");var t=u.getCompletionPrefix(e);!t&&e.completer&&e.completer.detach()},PageUp:function(e){e.completer.popup.gotoPageUp()},PageDown:function(e){e.completer.popup.gotoPageDown()}},v.startCommand={name:\"startAutocomplete\",exec:function(e,t){var n=v.for(e);n.autoInsert=!1,n.autoSelect=!0,n.autoShown=!1,n.showPopup(e,t),n.cancelContextMenu()},bindKey:\"Ctrl-Space|Ctrl-Shift-Space|Alt-Space\"};var m=function(){function e(e){this.initialPosition=e,this.active=!0}return e.prototype.insertByIndex=function(e,t,n){return!this.completions||!this.completions.filtered?!1:this.insertMatch(e,this.completions.filtered[t],n)},e.prototype.insertMatch=function(e,t,n){if(!t)return!1;e.startOperation({command:{name:\"insertMatch\"}});if(t.completer&&t.completer.insertMatch)t.completer.insertMatch(e,t);else{if(!this.completions)return!1;var r=this.completions.filterText.length,i=0;t.range&&t.range.start.row===t.range.end.row&&(r-=this.initialPosition.prefix.length,r+=this.initialPosition.pos.column-t.range.start.column,i+=t.range.end.column-this.initialPosition.pos.column);if(r||i){var s;e.selection.getAllRanges?s=e.selection.getAllRanges():s=[e.getSelectionRange()];for(var o=0,u;u=s[o];o++)u.start.column-=r,u.end.column+=i,e.session.remove(u)}t.snippet?l.insertSnippet(e,t.snippet):this.$insertString(e,t),t.completer&&t.completer.onInsert&&typeof t.completer.onInsert==\"function\"&&t.completer.onInsert(e,t),t.command&&t.command===\"startAutocomplete\"&&e.execCommand(t.command)}return e.endOperation(),!0},e.prototype.$insertString=function(e,t){var n=t.value||t;e.execCommand(\"insertstring\",n)},e.prototype.gatherCompletions=function(e,t){var n=e.getSession(),r=e.getCursorPosition(),i=u.getCompletionPrefix(e),s=[];this.completers=e.completers;var o=e.completers.length;return e.completers.forEach(function(a,f){a.getCompletions(e,n,r,i,function(n,r){a.hideInlinePreview&&(r=r.map(function(e){return Object.assign(e,{hideInlinePreview:a.hideInlinePreview})})),!n&&r&&(s=s.concat(r)),t(null,{prefix:u.getCompletionPrefix(e),matches:s,finished:--o===0})})}),!0},e.prototype.provideCompletions=function(e,t,n){var r=function(e){var r=e.prefix,i=e.matches;this.completions=new g(i),t.exactMatch&&(this.completions.exactMatch=!0),t.ignoreCaption&&(this.completions.ignoreCaption=!0),this.completions.setFilter(r),(e.finished||this.completions.filtered.length)&&n(null,this.completions,e.finished)}.bind(this),i=!0,s=null;this.gatherCompletions(e,function(e,t){if(!this.active)return;e&&(n(e,[],!0),this.detach());var o=t.prefix;if(o.indexOf(t.prefix)!==0)return;if(i){s=t;return}r(t)}.bind(this)),i=!1;if(s){var o=s;s=null,r(o)}},e.prototype.detach=function(){this.active=!1,this.completers&&this.completers.forEach(function(e){typeof e.cancel==\"function\"&&e.cancel()})},e}(),g=function(){function e(e,t){this.all=e,this.filtered=e,this.filterText=t||\"\",this.exactMatch=!1,this.ignoreCaption=!1}return e.prototype.setFilter=function(e){if(e.length>this.filterText&&e.lastIndexOf(this.filterText,0)===0)var t=this.filtered;else var t=this.all;this.filterText=e,t=this.filterCompletions(t,this.filterText),t=t.sort(function(e,t){return t.exactMatch-e.exactMatch||t.$score-e.$score||(e.caption||e.value).localeCompare(t.caption||t.value)});var n=null;t=t.filter(function(e){var t=e.snippet||e.caption||e.value;return t===n?!1:(n=t,!0)}),this.filtered=t},e.prototype.filterCompletions=function(e,t){var n=[],r=t.toUpperCase(),i=t.toLowerCase();e:for(var s=0,o;o=e[s];s++){var u=!this.ignoreCaption&&o.caption||o.value||o.snippet;if(!u)continue;var a=-1,f=0,l=0,c,h;if(this.exactMatch){if(t!==u.substr(0,t.length))continue e}else{var p=u.toLowerCase().indexOf(i);if(p>-1)l=p;else for(var d=0;d<t.length;d++){var v=u.indexOf(i[d],a+1),m=u.indexOf(r[d],a+1);c=v>=0?m<0||v<m?v:m:m;if(c<0)continue e;h=c-a-1,h>0&&(a===-1&&(l+=10),l+=h,f|=1<<d),a=c}}o.matchMask=f,o.exactMatch=l?0:1,o.$score=(o.score||0)-l,n.push(o)}return n},e}();t.Autocomplete=v,t.CompletionProvider=m,t.FilteredList=g}),ace.define(\"ace/autocomplete/text_completer\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){function s(e,t){var n=e.getTextRange(r.fromPoints({row:0,column:0},t));return n.split(i).length-1}function o(e,t){var n=s(e,t),r=e.getValue().split(i),o=Object.create(null),u=r[n];return r.forEach(function(e,t){if(!e||e===u)return;var i=Math.abs(n-t),s=r.length-i;o[e]?o[e]=Math.max(s,o[e]):o[e]=s}),o}var r=e(\"../range\").Range,i=/[^a-zA-Z_0-9\\$\\-\\u00C0-\\u1FFF\\u2C00-\\uD7FF\\w]+/;t.getCompletions=function(e,t,n,r,i){var s=o(t,n),u=Object.keys(s);i(null,u.map(function(e){return{caption:e,value:e,score:s[e],meta:\"local\"}}))}}),ace.define(\"ace/ext/language_tools\",[\"require\",\"exports\",\"module\",\"ace/snippets\",\"ace/autocomplete\",\"ace/config\",\"ace/lib/lang\",\"ace/autocomplete/util\",\"ace/autocomplete/text_completer\",\"ace/editor\",\"ace/config\"],function(e,t,n){\"use strict\";var r=e(\"../snippets\").snippetManager,i=e(\"../autocomplete\").Autocomplete,s=e(\"../config\"),o=e(\"../lib/lang\"),u=e(\"../autocomplete/util\"),a=e(\"../autocomplete/text_completer\"),f={getCompletions:function(e,t,n,r,i){if(t.$mode.completer)return t.$mode.completer.getCompletions(e,t,n,r,i);var s=e.session.getState(n.row),o=t.$mode.getCompletions(s,t,n,r);o=o.map(function(e){return e.completerId=f.id,e}),i(null,o)},id:\"keywordCompleter\"},l=function(e){var t={};return e.replace(/\\${(\\d+)(:(.*?))?}/g,function(e,n,r,i){return t[n]=i||\"\"}).replace(/\\$(\\d+?)/g,function(e,n){return t[n]})},c={getCompletions:function(e,t,n,i,s){var o=[],u=t.getTokenAt(n.row,n.column);u&&u.type.match(/(tag-name|tag-open|tag-whitespace|attribute-name|attribute-value)\\.xml$/)?o.push(\"html-tag\"):o=r.getActiveScopes(e);var a=r.snippetMap,f=[];o.forEach(function(e){var t=a[e]||[];for(var n=t.length;n--;){var r=t[n],i=r.name||r.tabTrigger;if(!i)continue;f.push({caption:i,snippet:r.content,meta:r.tabTrigger&&!r.name?r.tabTrigger+\"\\u21e5 \":\"snippet\",completerId:c.id})}},this),s(null,f)},getDocTooltip:function(e){e.snippet&&!e.docHTML&&(e.docHTML=[\"<b>\",o.escapeHTML(e.caption),\"</b>\",\"<hr></hr>\",o.escapeHTML(l(e.snippet))].join(\"\"))},id:\"snippetCompleter\"},h=[c,a,f];t.setCompleters=function(e){h.length=0,e&&h.push.apply(h,e)},t.addCompleter=function(e){h.push(e)},t.textCompleter=a,t.keyWordCompleter=f,t.snippetCompleter=c;var p={name:\"expandSnippet\",exec:function(e){return r.expandWithTab(e)},bindKey:\"Tab\"},d=function(e,t){v(t.session.$mode)},v=function(e){typeof e==\"string\"&&(e=s.$modes[e]);if(!e)return;r.files||(r.files={}),m(e.$id,e.snippetFileId),e.modes&&e.modes.forEach(v)},m=function(e,t){if(!t||!e||r.files[e])return;r.files[e]={},s.loadModule(t,function(t){if(!t)return;r.files[e]=t,!t.snippets&&t.snippetText&&(t.snippets=r.parseSnippetFile(t.snippetText)),r.register(t.snippets||[],t.scope),t.includeScopes&&(r.snippetMap[t.scope].includeScopes=t.includeScopes,t.includeScopes.forEach(function(e){v(\"ace/mode/\"+e)}))})},g=function(e){var t=e.editor,n=t.completer&&t.completer.activated;if(e.command.name===\"backspace\")n&&!u.getCompletionPrefix(t)&&t.completer.detach();else if(e.command.name===\"insertstring\"&&!n){y=e;var r=e.editor.$liveAutocompletionDelay;r?b.delay(r):w(e)}},y,b=o.delayedCall(function(){w(y)},0),w=function(e){var t=e.editor,n=u.getCompletionPrefix(t),r=e.args,s=u.triggerAutocomplete(t,r);if(n&&n.length>=t.$liveAutocompletionThreshold||s){var o=i.for(t);o.autoShown=!0,o.showPopup(t)}},E=e(\"../editor\").Editor;e(\"../config\").defineOptions(E.prototype,\"editor\",{enableBasicAutocompletion:{set:function(e){e?(this.completers||(this.completers=Array.isArray(e)?e:h),this.commands.addCommand(i.startCommand)):this.commands.removeCommand(i.startCommand)},value:!1},enableLiveAutocompletion:{set:function(e){e?(this.completers||(this.completers=Array.isArray(e)?e:h),this.commands.on(\"afterExec\",g)):this.commands.off(\"afterExec\",g)},value:!1},liveAutocompletionDelay:{initialValue:0},liveAutocompletionThreshold:{initialValue:0},enableSnippets:{set:function(e){e?(this.commands.addCommand(p),this.on(\"changeMode\",d),d(null,this)):(this.commands.removeCommand(p),this.off(\"changeMode\",d))},value:!1}})}); (function() {\n ace.require([\"ace/ext/language_tools\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/json_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text_highlight_rules\").TextHighlightRules,s=function(){this.$rules={start:[{token:\"variable\",regex:'[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]\\\\s*(?=:)'},{token:\"string\",regex:'\"',next:\"string\"},{token:\"constant.numeric\",regex:\"0[xX][0-9a-fA-F]+\\\\b\"},{token:\"constant.numeric\",regex:\"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"},{token:\"constant.language.boolean\",regex:\"(?:true|false)\\\\b\"},{token:\"text\",regex:\"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"},{token:\"comment\",regex:\"\\\\/\\\\/.*$\"},{token:\"comment.start\",regex:\"\\\\/\\\\*\",next:\"comment\"},{token:\"paren.lparen\",regex:\"[[({]\"},{token:\"paren.rparen\",regex:\"[\\\\])}]\"},{token:\"punctuation.operator\",regex:/[,]/},{token:\"text\",regex:\"\\\\s+\"}],string:[{token:\"constant.language.escape\",regex:/\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[\"\\\\\\/bfnrt])/},{token:\"string\",regex:'\"|$',next:\"start\"},{defaultToken:\"string\"}],comment:[{token:\"comment.end\",regex:\"\\\\*\\\\/\",next:\"start\"},{defaultToken:\"comment\"}]}};r.inherits(s,i),t.JsonHighlightRules=s}),ace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"],function(e,t,n){\"use strict\";var r=e(\"../range\").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\\s+$/.test(e)?/^\\s*\\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\\s*\\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"],function(e,t,n){\"use strict\";var r=e(\"../../lib/oop\"),i=e(\"../../range\").Range,s=e(\"./fold_mode\").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/,\"|\"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/,this.foldingStopMarker=/^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/,this.singleLineBlockCommentRe=/^\\s*(\\/\\*).*\\*\\/\\s*$/,this.tripleStarBlockCommentRe=/^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/,this.startRegionRe=/^\\s*(\\/\\*|\\/\\/)#?region\\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return\"\";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?\"start\":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!=\"all\"&&(u=null)),u}if(t===\"markbegin\")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,\"all\",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\\s*$/),s=e.getLength(),o=n,u=/^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),ace.define(\"ace/mode/json\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/json_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/folding/cstyle\",\"ace/worker/worker_client\"],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"./text\").Mode,s=e(\"./json_highlight_rules\").JsonHighlightRules,o=e(\"./matching_brace_outdent\").MatchingBraceOutdent,u=e(\"./folding/cstyle\").FoldMode,a=e(\"../worker/worker_client\").WorkerClient,f=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=this.$defaultBehaviour,this.foldingRules=new u};r.inherits(f,i),function(){this.lineCommentStart=\"//\",this.blockComment={start:\"/*\",end:\"*/\"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t);if(e==\"start\"){var i=t.match(/^.*[\\{\\(\\[]\\s*$/);i&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new a([\"ace\"],\"ace/mode/json_worker\",\"JsonWorker\");return t.attachToDocument(e.getDocument()),t.on(\"annotate\",function(t){e.setAnnotations(t.data)}),t.on(\"terminate\",function(){e.clearAnnotations()}),t},this.$id=\"ace/mode/json\"}.call(f.prototype),t.Mode=f}); (function() {\n ace.require([\"ace/mode/json\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/theme/chrome-css\",[\"require\",\"exports\",\"module\"],function(e,t,n){n.exports='.ace-chrome .ace_gutter {\\n background: #ebebeb;\\n color: #333;\\n overflow : hidden;\\n}\\n\\n.ace-chrome .ace_print-margin {\\n width: 1px;\\n background: #e8e8e8;\\n}\\n\\n.ace-chrome {\\n background-color: #FFFFFF;\\n color: black;\\n}\\n\\n.ace-chrome .ace_cursor {\\n color: black;\\n}\\n\\n.ace-chrome .ace_invisible {\\n color: rgb(191, 191, 191);\\n}\\n\\n.ace-chrome .ace_constant.ace_buildin {\\n color: rgb(88, 72, 246);\\n}\\n\\n.ace-chrome .ace_constant.ace_language {\\n color: rgb(88, 92, 246);\\n}\\n\\n.ace-chrome .ace_constant.ace_library {\\n color: rgb(6, 150, 14);\\n}\\n\\n.ace-chrome .ace_invalid {\\n background-color: rgb(153, 0, 0);\\n color: white;\\n}\\n\\n.ace-chrome .ace_fold {\\n}\\n\\n.ace-chrome .ace_support.ace_function {\\n color: rgb(60, 76, 114);\\n}\\n\\n.ace-chrome .ace_support.ace_constant {\\n color: rgb(6, 150, 14);\\n}\\n\\n.ace-chrome .ace_support.ace_type,\\n.ace-chrome .ace_support.ace_class\\n.ace-chrome .ace_support.ace_other {\\n color: rgb(109, 121, 222);\\n}\\n\\n.ace-chrome .ace_variable.ace_parameter {\\n font-style:italic;\\n color:#FD971F;\\n}\\n.ace-chrome .ace_keyword.ace_operator {\\n color: rgb(104, 118, 135);\\n}\\n\\n.ace-chrome .ace_comment {\\n color: #236e24;\\n}\\n\\n.ace-chrome .ace_comment.ace_doc {\\n color: #236e24;\\n}\\n\\n.ace-chrome .ace_comment.ace_doc.ace_tag {\\n color: #236e24;\\n}\\n\\n.ace-chrome .ace_constant.ace_numeric {\\n color: rgb(0, 0, 205);\\n}\\n\\n.ace-chrome .ace_variable {\\n color: rgb(49, 132, 149);\\n}\\n\\n.ace-chrome .ace_xml-pe {\\n color: rgb(104, 104, 91);\\n}\\n\\n.ace-chrome .ace_entity.ace_name.ace_function {\\n color: #0000A2;\\n}\\n\\n\\n.ace-chrome .ace_heading {\\n color: rgb(12, 7, 255);\\n}\\n\\n.ace-chrome .ace_list {\\n color:rgb(185, 6, 144);\\n}\\n\\n.ace-chrome .ace_marker-layer .ace_selection {\\n background: rgb(181, 213, 255);\\n}\\n\\n.ace-chrome .ace_marker-layer .ace_step {\\n background: rgb(252, 255, 0);\\n}\\n\\n.ace-chrome .ace_marker-layer .ace_stack {\\n background: rgb(164, 229, 101);\\n}\\n\\n.ace-chrome .ace_marker-layer .ace_bracket {\\n margin: -1px 0 0 -1px;\\n border: 1px solid rgb(192, 192, 192);\\n}\\n\\n.ace-chrome .ace_marker-layer .ace_active-line {\\n background: rgba(0, 0, 0, 0.07);\\n}\\n\\n.ace-chrome .ace_gutter-active-line {\\n background-color : #dcdcdc;\\n}\\n\\n.ace-chrome .ace_marker-layer .ace_selected-word {\\n background: rgb(250, 250, 255);\\n border: 1px solid rgb(200, 200, 250);\\n}\\n\\n.ace-chrome .ace_storage,\\n.ace-chrome .ace_keyword,\\n.ace-chrome .ace_meta.ace_tag {\\n color: rgb(147, 15, 128);\\n}\\n\\n.ace-chrome .ace_string.ace_regex {\\n color: rgb(255, 0, 0)\\n}\\n\\n.ace-chrome .ace_string {\\n color: #1A1AA6;\\n}\\n\\n.ace-chrome .ace_entity.ace_other.ace_attribute-name {\\n color: #994409;\\n}\\n\\n.ace-chrome .ace_indent-guide {\\n background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\") right repeat-y;\\n}\\n \\n.ace-chrome .ace_indent-guide-active {\\n background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAZSURBVHjaYvj///9/hivKyv8BAAAA//8DACLqBhbvk+/eAAAAAElFTkSuQmCC\") right repeat-y;\\n}\\n'}),ace.define(\"ace/theme/chrome\",[\"require\",\"exports\",\"module\",\"ace/theme/chrome-css\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!1,t.cssClass=\"ace-chrome\",t.cssText=e(\"./chrome-css\");var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass,!1)}); (function() {\n ace.require([\"ace/theme/chrome\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/theme/clouds_midnight-css\",[\"require\",\"exports\",\"module\"],function(e,t,n){n.exports=\".ace-clouds-midnight .ace_gutter {\\n background: #232323;\\n color: #929292\\n}\\n\\n.ace-clouds-midnight .ace_print-margin {\\n width: 1px;\\n background: #232323\\n}\\n\\n.ace-clouds-midnight {\\n background-color: #191919;\\n color: #929292\\n}\\n\\n.ace-clouds-midnight .ace_cursor {\\n color: #7DA5DC\\n}\\n\\n.ace-clouds-midnight .ace_marker-layer .ace_selection {\\n background: #000000\\n}\\n\\n.ace-clouds-midnight.ace_multiselect .ace_selection.ace_start {\\n box-shadow: 0 0 3px 0px #191919;\\n}\\n\\n.ace-clouds-midnight .ace_marker-layer .ace_step {\\n background: rgb(102, 82, 0)\\n}\\n\\n.ace-clouds-midnight .ace_marker-layer .ace_bracket {\\n margin: -1px 0 0 -1px;\\n border: 1px solid #BFBFBF\\n}\\n\\n.ace-clouds-midnight .ace_marker-layer .ace_active-line {\\n background: rgba(215, 215, 215, 0.031)\\n}\\n\\n.ace-clouds-midnight .ace_gutter-active-line {\\n background-color: rgba(215, 215, 215, 0.031)\\n}\\n\\n.ace-clouds-midnight .ace_marker-layer .ace_selected-word {\\n border: 1px solid #000000\\n}\\n\\n.ace-clouds-midnight .ace_invisible {\\n color: #666\\n}\\n\\n.ace-clouds-midnight .ace_keyword,\\n.ace-clouds-midnight .ace_meta,\\n.ace-clouds-midnight .ace_support.ace_constant.ace_property-value {\\n color: #927C5D\\n}\\n\\n.ace-clouds-midnight .ace_keyword.ace_operator {\\n color: #4B4B4B\\n}\\n\\n.ace-clouds-midnight .ace_keyword.ace_other.ace_unit {\\n color: #366F1A\\n}\\n\\n.ace-clouds-midnight .ace_constant.ace_language {\\n color: #39946A\\n}\\n\\n.ace-clouds-midnight .ace_constant.ace_numeric {\\n color: #46A609\\n}\\n\\n.ace-clouds-midnight .ace_constant.ace_character.ace_entity {\\n color: #A165AC\\n}\\n\\n.ace-clouds-midnight .ace_invalid {\\n color: #FFFFFF;\\n background-color: #E92E2E\\n}\\n\\n.ace-clouds-midnight .ace_fold {\\n background-color: #927C5D;\\n border-color: #929292\\n}\\n\\n.ace-clouds-midnight .ace_storage,\\n.ace-clouds-midnight .ace_support.ace_class,\\n.ace-clouds-midnight .ace_support.ace_function,\\n.ace-clouds-midnight .ace_support.ace_other,\\n.ace-clouds-midnight .ace_support.ace_type {\\n color: #E92E2E\\n}\\n\\n.ace-clouds-midnight .ace_string {\\n color: #5D90CD\\n}\\n\\n.ace-clouds-midnight .ace_comment {\\n color: #3C403B\\n}\\n\\n.ace-clouds-midnight .ace_entity.ace_name.ace_tag,\\n.ace-clouds-midnight .ace_entity.ace_other.ace_attribute-name {\\n color: #606060\\n}\\n\\n.ace-clouds-midnight .ace_indent-guide {\\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYHB3d/8PAAOIAdULw8qMAAAAAElFTkSuQmCC) right repeat-y\\n}\\n\\n.ace-clouds-midnight .ace_indent-guide-active {\\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQIW2PQ1dX9zzBz5sz/ABCcBFFentLlAAAAAElFTkSuQmCC) right repeat-y;\\n}\\n\"}),ace.define(\"ace/theme/clouds_midnight\",[\"require\",\"exports\",\"module\",\"ace/theme/clouds_midnight-css\",\"ace/lib/dom\"],function(e,t,n){t.isDark=!0,t.cssClass=\"ace-clouds-midnight\",t.cssText=e(\"./clouds_midnight-css\");var r=e(\"../lib/dom\");r.importCssString(t.cssText,t.cssClass,!1)}); (function() {\n ace.require([\"ace/theme/clouds_midnight\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","\"no use strict\";!function(e){function t(e,t){var n=e,r=\"\";while(n){var i=t[n];if(typeof i==\"string\")return i+r;if(i)return i.location.replace(/\\/*$/,\"/\")+(r||i.main||i.name);if(i===!1)return\"\";var s=n.lastIndexOf(\"/\");if(s===-1)break;r=n.substr(s)+r,n=n.slice(0,s)}return e}if(typeof e.window!=\"undefined\"&&e.document)return;if(e.require&&e.define)return;e.console||(e.console=function(){var e=Array.prototype.slice.call(arguments,0);postMessage({type:\"log\",data:e})},e.console.error=e.console.warn=e.console.log=e.console.trace=e.console),e.window=e,e.ace=e,e.onerror=function(e,t,n,r,i){postMessage({type:\"error\",data:{message:e,data:i&&i.data,file:t,line:n,col:r,stack:i&&i.stack}})},e.normalizeModule=function(t,n){if(n.indexOf(\"!\")!==-1){var r=n.split(\"!\");return e.normalizeModule(t,r[0])+\"!\"+e.normalizeModule(t,r[1])}if(n.charAt(0)==\".\"){var i=t.split(\"/\").slice(0,-1).join(\"/\");n=(i?i+\"/\":\"\")+n;while(n.indexOf(\".\")!==-1&&s!=n){var s=n;n=n.replace(/^\\.\\//,\"\").replace(/\\/\\.\\//,\"/\").replace(/[^\\/]+\\/\\.\\.\\//,\"\")}}return n},e.require=function(r,i){i||(i=r,r=null);if(!i.charAt)throw new Error(\"worker.js require() accepts only (parentId, id) as arguments\");i=e.normalizeModule(r,i);var s=e.require.modules[i];if(s)return s.initialized||(s.initialized=!0,s.exports=s.factory().exports),s.exports;if(!e.require.tlns)return console.log(\"unable to load \"+i);var o=t(i,e.require.tlns);return o.slice(-3)!=\".js\"&&(o+=\".js\"),e.require.id=i,e.require.modules[i]={},importScripts(o),e.require(r,i)},e.require.modules={},e.require.tlns={},e.define=function(t,n,r){arguments.length==2?(r=n,typeof t!=\"string\"&&(n=t,t=e.require.id)):arguments.length==1&&(r=t,n=[],t=e.require.id);if(typeof r!=\"function\"){e.require.modules[t]={exports:r,initialized:!0};return}n.length||(n=[\"require\",\"exports\",\"module\"]);var i=function(n){return e.require(t,n)};e.require.modules[t]={exports:{},factory:function(){var e=this,t=r.apply(this,n.slice(0,r.length).map(function(t){switch(t){case\"require\":return i;case\"exports\":return e.exports;case\"module\":return e;default:return i(t)}}));return t&&(e.exports=t),e}}},e.define.amd={},e.require.tlns={},e.initBaseUrls=function(t){for(var n in t)this.require.tlns[n]=t[n]},e.initSender=function(){var n=e.require(\"ace/lib/event_emitter\").EventEmitter,r=e.require(\"ace/lib/oop\"),i=function(){};return function(){r.implement(this,n),this.callback=function(e,t){postMessage({type:\"call\",id:t,data:e})},this.emit=function(e,t){postMessage({type:\"event\",name:e,data:t})}}.call(i.prototype),new i};var n=e.main=null,r=e.sender=null;e.onmessage=function(t){var i=t.data;if(i.event&&r)r._signal(i.event,i.data);else if(i.command)if(n[i.command])n[i.command].apply(n,i.args);else{if(!e[i.command])throw new Error(\"Unknown command:\"+i.command);e[i.command].apply(e,i.args)}else if(i.init){e.initBaseUrls(i.tlns),r=e.sender=e.initSender();var s=this.require(i.module)[i.classname];n=e.main=new s(r)}}}(this),ace.define(\"ace/lib/oop\",[],function(e,t,n){\"use strict\";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}}),ace.define(\"ace/apply_delta\",[],function(e,t,n){\"use strict\";function r(e,t){throw console.log(\"Invalid Delta:\",e),\"Invalid Delta: \"+t}function i(e,t){return t.row>=0&&t.row<e.length&&t.column>=0&&t.column<=e[t.row].length}function s(e,t){t.action!=\"insert\"&&t.action!=\"remove\"&&r(t,\"delta.action must be 'insert' or 'remove'\"),t.lines instanceof Array||r(t,\"delta.lines must be an Array\"),(!t.start||!t.end)&&r(t,\"delta.start/end must be an present\");var n=t.start;i(e,t.start)||r(t,\"delta.start must be contained in document\");var s=t.end;t.action==\"remove\"&&!i(e,s)&&r(t,\"delta.end must contained in document for 'remove' actions\");var o=s.row-n.row,u=s.column-(o==0?n.column:0);(o!=t.lines.length-1||t.lines[o].length!=u)&&r(t,\"delta.range must match delta lines\")}t.applyDelta=function(e,t,n){var r=t.start.row,i=t.start.column,s=e[r]||\"\";switch(t.action){case\"insert\":var o=t.lines;if(o.length===1)e[r]=s.substring(0,i)+t.lines[0]+s.substring(i);else{var u=[r,1].concat(t.lines);e.splice.apply(e,u),e[r]=s.substring(0,i)+e[r],e[r+t.lines.length-1]+=s.substring(i)}break;case\"remove\":var a=t.end.column,f=t.end.row;r===f?e[r]=s.substring(0,i)+s.substring(a):e.splice(r,f-r+1,s.substring(0,i)+e[f].substring(a))}}}),ace.define(\"ace/lib/event_emitter\",[],function(e,t,n){\"use strict\";var r={},i=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof t!=\"object\"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=s),n=n.slice();for(var o=0;o<n.length;o++){n[o](t,this);if(t.propagationStopped)break}if(r&&!t.defaultPrevented)return r(t,this)},r._signal=function(e,t){var n=(this._eventRegistry||{})[e];if(!n)return;n=n.slice();for(var r=0;r<n.length;r++)n[r](t,this)},r.once=function(e,t){var n=this;this.on(e,function r(){n.off(e,r),t.apply(null,arguments)});if(!t)return new Promise(function(e){t=e})},r.setDefaultHandler=function(e,t){var n=this._defaultHandlers;n||(n=this._defaultHandlers={_disabled_:{}});if(n[e]){var r=n[e],i=n._disabled_[e];i||(n._disabled_[e]=i=[]),i.push(r);var s=i.indexOf(t);s!=-1&&i.splice(s,1)}n[e]=t},r.removeDefaultHandler=function(e,t){var n=this._defaultHandlers;if(!n)return;var r=n._disabled_[e];if(n[e]==t)r&&this.setDefaultHandler(e,r.pop());else if(r){var i=r.indexOf(t);i!=-1&&r.splice(i,1)}},r.on=r.addEventListener=function(e,t,n){this._eventRegistry=this._eventRegistry||{};var r=this._eventRegistry[e];return r||(r=this._eventRegistry[e]=[]),r.indexOf(t)==-1&&r[n?\"unshift\":\"push\"](t),t},r.off=r.removeListener=r.removeEventListener=function(e,t){this._eventRegistry=this._eventRegistry||{};var n=this._eventRegistry[e];if(!n)return;var r=n.indexOf(t);r!==-1&&n.splice(r,1)},r.removeAllListeners=function(e){e||(this._eventRegistry=this._defaultHandlers=undefined),this._eventRegistry&&(this._eventRegistry[e]=undefined),this._defaultHandlers&&(this._defaultHandlers[e]=undefined)},t.EventEmitter=r}),ace.define(\"ace/range\",[],function(e,t,n){\"use strict\";var r=function(){function e(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}}return e.prototype.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},e.prototype.toString=function(){return\"Range: [\"+this.start.row+\"/\"+this.start.column+\"] -> [\"+this.end.row+\"/\"+this.end.column+\"]\"},e.prototype.contains=function(e,t){return this.compare(e,t)==0},e.prototype.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},e.prototype.comparePoint=function(e){return this.compare(e.row,e.column)},e.prototype.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},e.prototype.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},e.prototype.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},e.prototype.isStart=function(e,t){return this.start.row==e&&this.start.column==t},e.prototype.setStart=function(e,t){typeof e==\"object\"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},e.prototype.setEnd=function(e,t){typeof e==\"object\"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},e.prototype.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},e.prototype.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},e.prototype.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},e.prototype.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?t<this.start.column?-1:t>this.end.column?1:0:e<this.start.row?-1:e>this.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},e.prototype.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},e.prototype.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},e.prototype.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},e.prototype.clipRows=function(t,n){if(this.end.row>n)var r={row:n+1,column:0};else if(this.end.row<t)var r={row:t,column:0};if(this.start.row>n)var i={row:n+1,column:0};else if(this.start.row<t)var i={row:t,column:0};return e.fromPoints(i||this.start,r||this.end)},e.prototype.extend=function(t,n){var r=this.compare(t,n);if(r==0)return this;if(r==-1)var i={row:t,column:n};else var s={row:t,column:n};return e.fromPoints(i||this.start,s||this.end)},e.prototype.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},e.prototype.isMultiLine=function(){return this.start.row!==this.end.row},e.prototype.clone=function(){return e.fromPoints(this.start,this.end)},e.prototype.collapseRows=function(){return this.end.column==0?new e(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new e(this.start.row,0,this.end.row,0)},e.prototype.toScreenRange=function(t){var n=t.documentToScreenPosition(this.start),r=t.documentToScreenPosition(this.end);return new e(n.row,n.column,r.row,r.column)},e.prototype.moveBy=function(e,t){this.start.row+=e,this.start.column+=t,this.end.row+=e,this.end.column+=t},e}();r.fromPoints=function(e,t){return new r(e.row,e.column,t.row,t.column)},r.comparePoints=function(e,t){return e.row-t.row||e.column-t.column},t.Range=r}),ace.define(\"ace/anchor\",[],function(e,t,n){\"use strict\";function o(e,t,n){var r=n?e.column<=t.column:e.column<t.column;return e.row<t.row||e.row==t.row&&r}function u(e,t,n){var r=e.action==\"insert\",i=(r?1:-1)*(e.end.row-e.start.row),s=(r?1:-1)*(e.end.column-e.start.column),u=e.start,a=r?u:e.end;return o(t,u,n)?{row:t.row,column:t.column}:o(a,t,!n)?{row:t.row+i,column:t.column+(t.row==a.row?s:0)}:{row:u.row,column:u.column}}var r=e(\"./lib/oop\"),i=e(\"./lib/event_emitter\").EventEmitter,s=function(){function e(e,t,n){this.$onChange=this.onChange.bind(this),this.attach(e),typeof t!=\"number\"?this.setPosition(t.row,t.column):this.setPosition(t,n)}return e.prototype.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},e.prototype.getDocument=function(){return this.document},e.prototype.onChange=function(e){if(e.start.row==e.end.row&&e.start.row!=this.row)return;if(e.start.row>this.row)return;var t=u(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(t.row,t.column,!0)},e.prototype.setPosition=function(e,t,n){var r;n?r={row:e,column:t}:r=this.$clipPositionToDocument(e,t);if(this.row==r.row&&this.column==r.column)return;var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal(\"change\",{old:i,value:r})},e.prototype.detach=function(){this.document.off(\"change\",this.$onChange)},e.prototype.attach=function(e){this.document=e||this.document,this.document.on(\"change\",this.$onChange)},e.prototype.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n},e}();s.prototype.$insertRight=!1,r.implement(s.prototype,i),t.Anchor=s}),ace.define(\"ace/document\",[],function(e,t,n){\"use strict\";var r=e(\"./lib/oop\"),i=e(\"./apply_delta\").applyDelta,s=e(\"./lib/event_emitter\").EventEmitter,o=e(\"./range\").Range,u=e(\"./anchor\").Anchor,a=function(){function e(e){this.$lines=[\"\"],e.length===0?this.$lines=[\"\"]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)}return e.prototype.setValue=function(e){var t=this.getLength()-1;this.remove(new o(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e||\"\")},e.prototype.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},e.prototype.createAnchor=function(e,t){return new u(this,e,t)},e.prototype.$detectNewLine=function(e){var t=e.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=t?t[1]:\"\\n\",this._signal(\"changeNewLineMode\")},e.prototype.getNewLineCharacter=function(){switch(this.$newLineMode){case\"windows\":return\"\\r\\n\";case\"unix\":return\"\\n\";default:return this.$autoNewLine||\"\\n\"}},e.prototype.setNewLineMode=function(e){if(this.$newLineMode===e)return;this.$newLineMode=e,this._signal(\"changeNewLineMode\")},e.prototype.getNewLineMode=function(){return this.$newLineMode},e.prototype.isNewLine=function(e){return e==\"\\r\\n\"||e==\"\\r\"||e==\"\\n\"},e.prototype.getLine=function(e){return this.$lines[e]||\"\"},e.prototype.getLines=function(e,t){return this.$lines.slice(e,t+1)},e.prototype.getAllLines=function(){return this.getLines(0,this.getLength())},e.prototype.getLength=function(){return this.$lines.length},e.prototype.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},e.prototype.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||\"\").substring(e.start.column);var n=t.length-1;e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column))}return t},e.prototype.insertLines=function(e,t){return console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\"),this.insertFullLines(e,t)},e.prototype.removeLines=function(e,t){return console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\"),this.removeFullLines(e,t)},e.prototype.insertNewLine=function(e){return console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\"),this.insertMergedLines(e,[\"\",\"\"])},e.prototype.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},e.prototype.insertInLine=function(e,t){var n=this.clippedPos(e.row,e.column),r=this.pos(e.row,e.column+t.length);return this.applyDelta({start:n,end:r,action:\"insert\",lines:[t]},!0),this.clonePos(r)},e.prototype.clippedPos=function(e,t){var n=this.getLength();e===undefined?e=n:e<0?e=0:e>=n&&(e=n-1,t=undefined);var r=this.getLine(e);return t==undefined&&(t=r.length),t=Math.min(Math.max(t,0),r.length),{row:e,column:t}},e.prototype.clonePos=function(e){return{row:e.row,column:e.column}},e.prototype.pos=function(e,t){return{row:e,column:t}},e.prototype.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},e.prototype.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var n=0;e<this.getLength()?(t=t.concat([\"\"]),n=0):(t=[\"\"].concat(t),e--,n=this.$lines[e].length),this.insertMergedLines({row:e,column:n},t)},e.prototype.insertMergedLines=function(e,t){var n=this.clippedPos(e.row,e.column),r={row:n.row+t.length-1,column:(t.length==1?n.column:0)+t[t.length-1].length};return this.applyDelta({start:n,end:r,action:\"insert\",lines:t}),this.clonePos(r)},e.prototype.remove=function(e){var t=this.clippedPos(e.start.row,e.start.column),n=this.clippedPos(e.end.row,e.end.column);return this.applyDelta({start:t,end:n,action:\"remove\",lines:this.getLinesForRange({start:t,end:n})}),this.clonePos(t)},e.prototype.removeInLine=function(e,t,n){var r=this.clippedPos(e,t),i=this.clippedPos(e,n);return this.applyDelta({start:r,end:i,action:\"remove\",lines:this.getLinesForRange({start:r,end:i})},!0),this.clonePos(r)},e.prototype.removeFullLines=function(e,t){e=Math.min(Math.max(0,e),this.getLength()-1),t=Math.min(Math.max(0,t),this.getLength()-1);var n=t==this.getLength()-1&&e>0,r=t<this.getLength()-1,i=n?e-1:e,s=n?this.getLine(i).length:0,u=r?t+1:t,a=r?0:this.getLine(u).length,f=new o(i,s,u,a),l=this.$lines.slice(e,t+1);return this.applyDelta({start:f.start,end:f.end,action:\"remove\",lines:this.getLinesForRange(f)}),l},e.prototype.removeNewLine=function(e){e<this.getLength()-1&&e>=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:\"remove\",lines:[\"\",\"\"]})},e.prototype.replace=function(e,t){e instanceof o||(e=o.fromPoints(e.start,e.end));if(t.length===0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);var n;return t?n=this.insert(e.start,t):n=e.start,n},e.prototype.applyDeltas=function(e){for(var t=0;t<e.length;t++)this.applyDelta(e[t])},e.prototype.revertDeltas=function(e){for(var t=e.length-1;t>=0;t--)this.revertDelta(e[t])},e.prototype.applyDelta=function(e,t){var n=e.action==\"insert\";if(n?e.lines.length<=1&&!e.lines[0]:!o.comparePoints(e.start,e.end))return;n&&e.lines.length>2e4?this.$splitAndapplyLargeDelta(e,2e4):(i(this.$lines,e,t),this._signal(\"change\",e))},e.prototype.$safeApplyDelta=function(e){var t=this.$lines.length;(e.action==\"remove\"&&e.start.row<t&&e.end.row<t||e.action==\"insert\"&&e.start.row<=t)&&this.applyDelta(e)},e.prototype.$splitAndapplyLargeDelta=function(e,t){var n=e.lines,r=n.length-t+1,i=e.start.row,s=e.start.column;for(var o=0,u=0;o<r;o=u){u+=t-1;var a=n.slice(o,u);a.push(\"\"),this.applyDelta({start:this.pos(i+o,s),end:this.pos(i+u,s=0),action:e.action,lines:a},!0)}e.lines=n.slice(o),e.start.row=i+o,e.start.column=s,this.applyDelta(e,!0)},e.prototype.revertDelta=function(e){this.$safeApplyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:e.action==\"insert\"?\"remove\":\"insert\",lines:e.lines.slice()})},e.prototype.indexToPosition=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length;for(var i=t||0,s=n.length;i<s;i++){e-=n[i].length+r;if(e<0)return{row:i,column:e+n[i].length+r}}return{row:s-1,column:e+n[s-1].length+r}},e.prototype.positionToIndex=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,i=0,s=Math.min(e.row,n.length);for(var o=t||0;o<s;++o)i+=n[o].length+r;return i+e.column},e.prototype.$split=function(e){return e.split(/\\r\\n|\\r|\\n/)},e}();a.prototype.$autoNewLine=\"\",a.prototype.$newLineMode=\"auto\",r.implement(a.prototype,s),t.Document=a}),ace.define(\"ace/lib/deep_copy\",[],function(e,t,n){t.deepCopy=function r(e){if(typeof e!=\"object\"||!e)return e;var t;if(Array.isArray(e)){t=[];for(var n=0;n<e.length;n++)t[n]=r(e[n]);return t}if(Object.prototype.toString.call(e)!==\"[object Object]\")return e;t={};for(var n in e)t[n]=r(e[n]);return t}}),ace.define(\"ace/lib/lang\",[],function(e,t,n){\"use strict\";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split(\"\").reverse().join(\"\")},t.stringRepeat=function(e,t){var n=\"\";while(t>0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var r=/^\\s\\s*/,i=/\\s\\s*$/;t.stringTrimLeft=function(e){return e.replace(r,\"\")},t.stringTrimRight=function(e){return e.replace(i,\"\")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n<r;n++)e[n]&&typeof e[n]==\"object\"?t[n]=this.copyObject(e[n]):t[n]=e[n];return t},t.deepCopy=e(\"./deep_copy\").deepCopy,t.arrayToMap=function(e){var t={};for(var n=0;n<e.length;n++)t[e[n]]=1;return t},t.createMap=function(e){var t=Object.create(null);for(var n in e)t[n]=e[n];return t},t.arrayRemove=function(e,t){for(var n=0;n<=e.length;n++)t===e[n]&&e.splice(n,1)},t.escapeRegExp=function(e){return e.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,\"\\\\$1\")},t.escapeHTML=function(e){return(\"\"+e).replace(/&/g,\"&\").replace(/\"/g,\""\").replace(/'/g,\"'\").replace(/</g,\"<\")},t.getMatchOffsets=function(e,t){var n=[];return e.replace(t,function(e){n.push({offset:arguments[arguments.length-2],length:e.length})}),n},t.deferredCall=function(e){var t=null,n=function(){t=null,e()},r=function(e){return r.cancel(),t=setTimeout(n,e||0),r};return r.schedule=r,r.call=function(){return this.cancel(),e(),r},r.cancel=function(){return clearTimeout(t),t=null,r},r.isPending=function(){return t},r},t.delayedCall=function(e,t){var n=null,r=function(){n=null,e()},i=function(e){n==null&&(n=setTimeout(r,e||t))};return i.delay=function(e){n&&clearTimeout(n),n=setTimeout(r,e||t)},i.schedule=i,i.call=function(){this.cancel(),e()},i.cancel=function(){n&&clearTimeout(n),n=null},i.isPending=function(){return n},i},t.supportsLookbehind=function(){try{new RegExp(\"(?<=.)\")}catch(e){return!1}return!0},t.skipEmptyMatch=function(e,t,n){return n&&e.codePointAt(t)>65535?2:1}}),ace.define(\"ace/worker/mirror\",[],function(e,t,n){\"use strict\";var r=e(\"../document\").Document,i=e(\"../lib/lang\"),s=t.Mirror=function(e){this.sender=e;var t=this.doc=new r(\"\"),n=this.deferredUpdate=i.delayedCall(this.onUpdate.bind(this)),s=this;e.on(\"change\",function(e){var r=e.data;if(r[0].start)t.applyDeltas(r);else for(var i=0;i<r.length;i+=2){var o,u;Array.isArray(r[i+1])?o={action:\"insert\",start:r[i],lines:r[i+1]}:o={action:\"remove\",start:r[i],end:r[i+1]};if((o.action==\"insert\"?o.start:o.end).row>=t.$lines.length)throw u=new Error(\"Invalid delta\"),u.data={path:s.$path,linesLength:t.$lines.length,start:o.start,end:o.end},u;t.applyDelta(o,!0)}if(s.$timeout)return n.schedule(s.$timeout);s.onUpdate()})};(function(){this.$timeout=500,this.setTimeout=function(e){this.$timeout=e},this.setValue=function(e){this.doc.setValue(e),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(e){this.sender.callback(this.doc.getValue(),e)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(s.prototype)}),ace.define(\"ace/mode/json/json_parse\",[],function(e,t,n){\"use strict\";var r,i,s={'\"':'\"',\"\\\\\":\"\\\\\",\"/\":\"/\",b:\"\\b\",f:\"\\f\",n:\"\\n\",r:\"\\r\",t:\"\t\"},o,u=function(e){throw{name:\"SyntaxError\",message:e,at:r,text:o}},a=function(e){return e&&e!==i&&u(\"Expected '\"+e+\"' instead of '\"+i+\"'\"),i=o.charAt(r),r+=1,i},f=function(){var e,t=\"\";i===\"-\"&&(t=\"-\",a(\"-\"));while(i>=\"0\"&&i<=\"9\")t+=i,a();if(i===\".\"){t+=\".\";while(a()&&i>=\"0\"&&i<=\"9\")t+=i}if(i===\"e\"||i===\"E\"){t+=i,a();if(i===\"-\"||i===\"+\")t+=i,a();while(i>=\"0\"&&i<=\"9\")t+=i,a()}e=+t;if(!isNaN(e))return e;u(\"Bad number\")},l=function(){var e,t,n=\"\",r;if(i==='\"')while(a()){if(i==='\"')return a(),n;if(i===\"\\\\\"){a();if(i===\"u\"){r=0;for(t=0;t<4;t+=1){e=parseInt(a(),16);if(!isFinite(e))break;r=r*16+e}n+=String.fromCharCode(r)}else{if(typeof s[i]!=\"string\")break;n+=s[i]}}else{if(i==\"\\n\"||i==\"\\r\")break;n+=i}}u(\"Bad string\")},c=function(){while(i&&i<=\" \")a()},h=function(){switch(i){case\"t\":return a(\"t\"),a(\"r\"),a(\"u\"),a(\"e\"),!0;case\"f\":return a(\"f\"),a(\"a\"),a(\"l\"),a(\"s\"),a(\"e\"),!1;case\"n\":return a(\"n\"),a(\"u\"),a(\"l\"),a(\"l\"),null}u(\"Unexpected '\"+i+\"'\")},p,d=function(){var e=[];if(i===\"[\"){a(\"[\"),c();if(i===\"]\")return a(\"]\"),e;while(i){e.push(p()),c();if(i===\"]\")return a(\"]\"),e;a(\",\"),c()}}u(\"Bad array\")},v=function(){var e,t={};if(i===\"{\"){a(\"{\"),c();if(i===\"}\")return a(\"}\"),t;while(i){e=l(),c(),a(\":\"),Object.hasOwnProperty.call(t,e)&&u('Duplicate key \"'+e+'\"'),t[e]=p(),c();if(i===\"}\")return a(\"}\"),t;a(\",\"),c()}}u(\"Bad object\")};return p=function(){c();switch(i){case\"{\":return v();case\"[\":return d();case'\"':return l();case\"-\":return f();default:return i>=\"0\"&&i<=\"9\"?f():h()}},function(e,t){var n;return o=e,r=0,i=\" \",n=p(),c(),i&&u(\"Syntax error\"),typeof t==\"function\"?function s(e,n){var r,i,o=e[n];if(o&&typeof o==\"object\")for(r in o)Object.hasOwnProperty.call(o,r)&&(i=s(o,r),i!==undefined?o[r]=i:delete o[r]);return t.call(e,n,o)}({\"\":n},\"\"):n}}),ace.define(\"ace/mode/json_worker\",[],function(e,t,n){\"use strict\";var r=e(\"../lib/oop\"),i=e(\"../worker/mirror\").Mirror,s=e(\"./json/json_parse\"),o=t.JsonWorker=function(e){i.call(this,e),this.setTimeout(200)};r.inherits(o,i),function(){this.onUpdate=function(){var e=this.doc.getValue(),t=[];try{e&&s(e)}catch(n){var r=this.doc.indexToPosition(n.at-1);t.push({row:r.row,column:r.column,text:n.message,type:\"error\"})}this.sender.emit(\"annotate\",t)}}.call(o.prototype)})",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory();\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\troot.CryptoJS = factory();\n\t}\n}(this, function () {\n\n\t/*globals window, global, require*/\n\n\t/**\n\t * CryptoJS core components.\n\t */\n\tvar CryptoJS = CryptoJS || (function (Math, undefined) {\n\n\t var crypto;\n\n\t // Native crypto from window (Browser)\n\t if (typeof window !== 'undefined' && window.crypto) {\n\t crypto = window.crypto;\n\t }\n\n\t // Native crypto in web worker (Browser)\n\t if (typeof self !== 'undefined' && self.crypto) {\n\t crypto = self.crypto;\n\t }\n\n\t // Native crypto from worker\n\t if (typeof globalThis !== 'undefined' && globalThis.crypto) {\n\t crypto = globalThis.crypto;\n\t }\n\n\t // Native (experimental IE 11) crypto from window (Browser)\n\t if (!crypto && typeof window !== 'undefined' && window.msCrypto) {\n\t crypto = window.msCrypto;\n\t }\n\n\t // Native crypto from global (NodeJS)\n\t if (!crypto && typeof global !== 'undefined' && global.crypto) {\n\t crypto = global.crypto;\n\t }\n\n\t // Native crypto import via require (NodeJS)\n\t if (!crypto && typeof require === 'function') {\n\t try {\n\t crypto = require('crypto');\n\t } catch (err) {}\n\t }\n\n\t /*\n\t * Cryptographically secure pseudorandom number generator\n\t *\n\t * As Math.random() is cryptographically not safe to use\n\t */\n\t var cryptoSecureRandomInt = function () {\n\t if (crypto) {\n\t // Use getRandomValues method (Browser)\n\t if (typeof crypto.getRandomValues === 'function') {\n\t try {\n\t return crypto.getRandomValues(new Uint32Array(1))[0];\n\t } catch (err) {}\n\t }\n\n\t // Use randomBytes method (NodeJS)\n\t if (typeof crypto.randomBytes === 'function') {\n\t try {\n\t return crypto.randomBytes(4).readInt32LE();\n\t } catch (err) {}\n\t }\n\t }\n\n\t throw new Error('Native crypto module could not be used to get secure random number.');\n\t };\n\n\t /*\n\t * Local polyfill of Object.create\n\n\t */\n\t var create = Object.create || (function () {\n\t function F() {}\n\n\t return function (obj) {\n\t var subtype;\n\n\t F.prototype = obj;\n\n\t subtype = new F();\n\n\t F.prototype = null;\n\n\t return subtype;\n\t };\n\t }());\n\n\t /**\n\t * CryptoJS namespace.\n\t */\n\t var C = {};\n\n\t /**\n\t * Library namespace.\n\t */\n\t var C_lib = C.lib = {};\n\n\t /**\n\t * Base object for prototypal inheritance.\n\t */\n\t var Base = C_lib.Base = (function () {\n\n\n\t return {\n\t /**\n\t * Creates a new object that inherits from this object.\n\t *\n\t * @param {Object} overrides Properties to copy into the new object.\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * field: 'value',\n\t *\n\t * method: function () {\n\t * }\n\t * });\n\t */\n\t extend: function (overrides) {\n\t // Spawn\n\t var subtype = create(this);\n\n\t // Augment\n\t if (overrides) {\n\t subtype.mixIn(overrides);\n\t }\n\n\t // Create default initializer\n\t if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {\n\t subtype.init = function () {\n\t subtype.$super.init.apply(this, arguments);\n\t };\n\t }\n\n\t // Initializer's prototype is the subtype object\n\t subtype.init.prototype = subtype;\n\n\t // Reference supertype\n\t subtype.$super = this;\n\n\t return subtype;\n\t },\n\n\t /**\n\t * Extends this object and runs the init method.\n\t * Arguments to create() will be passed to init().\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var instance = MyType.create();\n\t */\n\t create: function () {\n\t var instance = this.extend();\n\t instance.init.apply(instance, arguments);\n\n\t return instance;\n\t },\n\n\t /**\n\t * Initializes a newly created object.\n\t * Override this method to add some logic when your objects are created.\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * init: function () {\n\t * // ...\n\t * }\n\t * });\n\t */\n\t init: function () {\n\t },\n\n\t /**\n\t * Copies properties into this object.\n\t *\n\t * @param {Object} properties The properties to mix in.\n\t *\n\t * @example\n\t *\n\t * MyType.mixIn({\n\t * field: 'value'\n\t * });\n\t */\n\t mixIn: function (properties) {\n\t for (var propertyName in properties) {\n\t if (properties.hasOwnProperty(propertyName)) {\n\t this[propertyName] = properties[propertyName];\n\t }\n\t }\n\n\t // IE won't copy toString using the loop above\n\t if (properties.hasOwnProperty('toString')) {\n\t this.toString = properties.toString;\n\t }\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = instance.clone();\n\t */\n\t clone: function () {\n\t return this.init.prototype.extend(this);\n\t }\n\t };\n\t }());\n\n\t /**\n\t * An array of 32-bit words.\n\t *\n\t * @property {Array} words The array of 32-bit words.\n\t * @property {number} sigBytes The number of significant bytes in this word array.\n\t */\n\t var WordArray = C_lib.WordArray = Base.extend({\n\t /**\n\t * Initializes a newly created word array.\n\t *\n\t * @param {Array} words (Optional) An array of 32-bit words.\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.create();\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);\n\t */\n\t init: function (words, sigBytes) {\n\t words = this.words = words || [];\n\n\t if (sigBytes != undefined) {\n\t this.sigBytes = sigBytes;\n\t } else {\n\t this.sigBytes = words.length * 4;\n\t }\n\t },\n\n\t /**\n\t * Converts this word array to a string.\n\t *\n\t * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex\n\t *\n\t * @return {string} The stringified word array.\n\t *\n\t * @example\n\t *\n\t * var string = wordArray + '';\n\t * var string = wordArray.toString();\n\t * var string = wordArray.toString(CryptoJS.enc.Utf8);\n\t */\n\t toString: function (encoder) {\n\t return (encoder || Hex).stringify(this);\n\t },\n\n\t /**\n\t * Concatenates a word array to this word array.\n\t *\n\t * @param {WordArray} wordArray The word array to append.\n\t *\n\t * @return {WordArray} This word array.\n\t *\n\t * @example\n\t *\n\t * wordArray1.concat(wordArray2);\n\t */\n\t concat: function (wordArray) {\n\t // Shortcuts\n\t var thisWords = this.words;\n\t var thatWords = wordArray.words;\n\t var thisSigBytes = this.sigBytes;\n\t var thatSigBytes = wordArray.sigBytes;\n\n\t // Clamp excess bits\n\t this.clamp();\n\n\t // Concat\n\t if (thisSigBytes % 4) {\n\t // Copy one byte at a time\n\t for (var i = 0; i < thatSigBytes; i++) {\n\t var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);\n\t }\n\t } else {\n\t // Copy one word at a time\n\t for (var j = 0; j < thatSigBytes; j += 4) {\n\t thisWords[(thisSigBytes + j) >>> 2] = thatWords[j >>> 2];\n\t }\n\t }\n\t this.sigBytes += thatSigBytes;\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Removes insignificant bits.\n\t *\n\t * @example\n\t *\n\t * wordArray.clamp();\n\t */\n\t clamp: function () {\n\t // Shortcuts\n\t var words = this.words;\n\t var sigBytes = this.sigBytes;\n\n\t // Clamp\n\t words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);\n\t words.length = Math.ceil(sigBytes / 4);\n\t },\n\n\t /**\n\t * Creates a copy of this word array.\n\t *\n\t * @return {WordArray} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = wordArray.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone.words = this.words.slice(0);\n\n\t return clone;\n\t },\n\n\t /**\n\t * Creates a word array filled with random bytes.\n\t *\n\t * @param {number} nBytes The number of random bytes to generate.\n\t *\n\t * @return {WordArray} The random word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.random(16);\n\t */\n\t random: function (nBytes) {\n\t var words = [];\n\n\t for (var i = 0; i < nBytes; i += 4) {\n\t words.push(cryptoSecureRandomInt());\n\t }\n\n\t return new WordArray.init(words, nBytes);\n\t }\n\t });\n\n\t /**\n\t * Encoder namespace.\n\t */\n\t var C_enc = C.enc = {};\n\n\t /**\n\t * Hex encoding strategy.\n\t */\n\t var Hex = C_enc.Hex = {\n\t /**\n\t * Converts a word array to a hex string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The hex string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hexString = CryptoJS.enc.Hex.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var hexChars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t hexChars.push((bite >>> 4).toString(16));\n\t hexChars.push((bite & 0x0f).toString(16));\n\t }\n\n\t return hexChars.join('');\n\t },\n\n\t /**\n\t * Converts a hex string to a word array.\n\t *\n\t * @param {string} hexStr The hex string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Hex.parse(hexString);\n\t */\n\t parse: function (hexStr) {\n\t // Shortcut\n\t var hexStrLength = hexStr.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < hexStrLength; i += 2) {\n\t words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);\n\t }\n\n\t return new WordArray.init(words, hexStrLength / 2);\n\t }\n\t };\n\n\t /**\n\t * Latin1 encoding strategy.\n\t */\n\t var Latin1 = C_enc.Latin1 = {\n\t /**\n\t * Converts a word array to a Latin1 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Latin1 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var latin1Chars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t latin1Chars.push(String.fromCharCode(bite));\n\t }\n\n\t return latin1Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Latin1 string to a word array.\n\t *\n\t * @param {string} latin1Str The Latin1 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);\n\t */\n\t parse: function (latin1Str) {\n\t // Shortcut\n\t var latin1StrLength = latin1Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < latin1StrLength; i++) {\n\t words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);\n\t }\n\n\t return new WordArray.init(words, latin1StrLength);\n\t }\n\t };\n\n\t /**\n\t * UTF-8 encoding strategy.\n\t */\n\t var Utf8 = C_enc.Utf8 = {\n\t /**\n\t * Converts a word array to a UTF-8 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-8 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t try {\n\t return decodeURIComponent(escape(Latin1.stringify(wordArray)));\n\t } catch (e) {\n\t throw new Error('Malformed UTF-8 data');\n\t }\n\t },\n\n\t /**\n\t * Converts a UTF-8 string to a word array.\n\t *\n\t * @param {string} utf8Str The UTF-8 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);\n\t */\n\t parse: function (utf8Str) {\n\t return Latin1.parse(unescape(encodeURIComponent(utf8Str)));\n\t }\n\t };\n\n\t /**\n\t * Abstract buffered block algorithm template.\n\t *\n\t * The property blockSize must be implemented in a concrete subtype.\n\t *\n\t * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0\n\t */\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({\n\t /**\n\t * Resets this block algorithm's data buffer to its initial state.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm.reset();\n\t */\n\t reset: function () {\n\t // Initial values\n\t this._data = new WordArray.init();\n\t this._nDataBytes = 0;\n\t },\n\n\t /**\n\t * Adds new data to this block algorithm's buffer.\n\t *\n\t * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm._append('data');\n\t * bufferedBlockAlgorithm._append(wordArray);\n\t */\n\t _append: function (data) {\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof data == 'string') {\n\t data = Utf8.parse(data);\n\t }\n\n\t // Append\n\t this._data.concat(data);\n\t this._nDataBytes += data.sigBytes;\n\t },\n\n\t /**\n\t * Processes available data blocks.\n\t *\n\t * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.\n\t *\n\t * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.\n\t *\n\t * @return {WordArray} The processed data.\n\t *\n\t * @example\n\t *\n\t * var processedData = bufferedBlockAlgorithm._process();\n\t * var processedData = bufferedBlockAlgorithm._process(!!'flush');\n\t */\n\t _process: function (doFlush) {\n\t var processedWords;\n\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\t var dataSigBytes = data.sigBytes;\n\t var blockSize = this.blockSize;\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count blocks ready\n\t var nBlocksReady = dataSigBytes / blockSizeBytes;\n\t if (doFlush) {\n\t // Round up to include partial blocks\n\t nBlocksReady = Math.ceil(nBlocksReady);\n\t } else {\n\t // Round down to include only full blocks,\n\t // less the number of blocks that must remain in the buffer\n\t nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);\n\t }\n\n\t // Count words ready\n\t var nWordsReady = nBlocksReady * blockSize;\n\n\t // Count bytes ready\n\t var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);\n\n\t // Process blocks\n\t if (nWordsReady) {\n\t for (var offset = 0; offset < nWordsReady; offset += blockSize) {\n\t // Perform concrete-algorithm logic\n\t this._doProcessBlock(dataWords, offset);\n\t }\n\n\t // Remove processed words\n\t processedWords = dataWords.splice(0, nWordsReady);\n\t data.sigBytes -= nBytesReady;\n\t }\n\n\t // Return processed words\n\t return new WordArray.init(processedWords, nBytesReady);\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = bufferedBlockAlgorithm.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone._data = this._data.clone();\n\n\t return clone;\n\t },\n\n\t _minBufferSize: 0\n\t });\n\n\t /**\n\t * Abstract hasher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)\n\t */\n\t var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({\n\t /**\n\t * Configuration options.\n\t */\n\t cfg: Base.extend(),\n\n\t /**\n\t * Initializes a newly created hasher.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for this hash computation.\n\t *\n\t * @example\n\t *\n\t * var hasher = CryptoJS.algo.SHA256.create();\n\t */\n\t init: function (cfg) {\n\t // Apply config defaults\n\t this.cfg = this.cfg.extend(cfg);\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this hasher to its initial state.\n\t *\n\t * @example\n\t *\n\t * hasher.reset();\n\t */\n\t reset: function () {\n\t // Reset data buffer\n\t BufferedBlockAlgorithm.reset.call(this);\n\n\t // Perform concrete-hasher logic\n\t this._doReset();\n\t },\n\n\t /**\n\t * Updates this hasher with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {Hasher} This hasher.\n\t *\n\t * @example\n\t *\n\t * hasher.update('message');\n\t * hasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t // Append\n\t this._append(messageUpdate);\n\n\t // Update the hash\n\t this._process();\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the hash computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @example\n\t *\n\t * var hash = hasher.finalize();\n\t * var hash = hasher.finalize('message');\n\t * var hash = hasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Final message update\n\t if (messageUpdate) {\n\t this._append(messageUpdate);\n\t }\n\n\t // Perform concrete-hasher logic\n\t var hash = this._doFinalize();\n\n\t return hash;\n\t },\n\n\t blockSize: 512/32,\n\n\t /**\n\t * Creates a shortcut function to a hasher's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to create a helper for.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHelper: function (hasher) {\n\t return function (message, cfg) {\n\t return new hasher.init(cfg).finalize(message);\n\t };\n\t },\n\n\t /**\n\t * Creates a shortcut function to the HMAC's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to use in this HMAC helper.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHmacHelper: function (hasher) {\n\t return function (message, key) {\n\t return new C_algo.HMAC.init(hasher, key).finalize(message);\n\t };\n\t }\n\t });\n\n\t /**\n\t * Algorithm namespace.\n\t */\n\t var C_algo = C.algo = {};\n\n\t return C;\n\t}(Math));\n\n\n\treturn CryptoJS;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Constants table\n\t var T = [];\n\n\t // Compute constants\n\t (function () {\n\t for (var i = 0; i < 64; i++) {\n\t T[i] = (Math.abs(Math.sin(i + 1)) * 0x100000000) | 0;\n\t }\n\t }());\n\n\t /**\n\t * MD5 hash algorithm.\n\t */\n\t var MD5 = C_algo.MD5 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0x67452301, 0xefcdab89,\n\t 0x98badcfe, 0x10325476\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Swap endian\n\t for (var i = 0; i < 16; i++) {\n\t // Shortcuts\n\t var offset_i = offset + i;\n\t var M_offset_i = M[offset_i];\n\n\t M[offset_i] = (\n\t (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |\n\t (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)\n\t );\n\t }\n\n\t // Shortcuts\n\t var H = this._hash.words;\n\n\t var M_offset_0 = M[offset + 0];\n\t var M_offset_1 = M[offset + 1];\n\t var M_offset_2 = M[offset + 2];\n\t var M_offset_3 = M[offset + 3];\n\t var M_offset_4 = M[offset + 4];\n\t var M_offset_5 = M[offset + 5];\n\t var M_offset_6 = M[offset + 6];\n\t var M_offset_7 = M[offset + 7];\n\t var M_offset_8 = M[offset + 8];\n\t var M_offset_9 = M[offset + 9];\n\t var M_offset_10 = M[offset + 10];\n\t var M_offset_11 = M[offset + 11];\n\t var M_offset_12 = M[offset + 12];\n\t var M_offset_13 = M[offset + 13];\n\t var M_offset_14 = M[offset + 14];\n\t var M_offset_15 = M[offset + 15];\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\n\t // Computation\n\t a = FF(a, b, c, d, M_offset_0, 7, T[0]);\n\t d = FF(d, a, b, c, M_offset_1, 12, T[1]);\n\t c = FF(c, d, a, b, M_offset_2, 17, T[2]);\n\t b = FF(b, c, d, a, M_offset_3, 22, T[3]);\n\t a = FF(a, b, c, d, M_offset_4, 7, T[4]);\n\t d = FF(d, a, b, c, M_offset_5, 12, T[5]);\n\t c = FF(c, d, a, b, M_offset_6, 17, T[6]);\n\t b = FF(b, c, d, a, M_offset_7, 22, T[7]);\n\t a = FF(a, b, c, d, M_offset_8, 7, T[8]);\n\t d = FF(d, a, b, c, M_offset_9, 12, T[9]);\n\t c = FF(c, d, a, b, M_offset_10, 17, T[10]);\n\t b = FF(b, c, d, a, M_offset_11, 22, T[11]);\n\t a = FF(a, b, c, d, M_offset_12, 7, T[12]);\n\t d = FF(d, a, b, c, M_offset_13, 12, T[13]);\n\t c = FF(c, d, a, b, M_offset_14, 17, T[14]);\n\t b = FF(b, c, d, a, M_offset_15, 22, T[15]);\n\n\t a = GG(a, b, c, d, M_offset_1, 5, T[16]);\n\t d = GG(d, a, b, c, M_offset_6, 9, T[17]);\n\t c = GG(c, d, a, b, M_offset_11, 14, T[18]);\n\t b = GG(b, c, d, a, M_offset_0, 20, T[19]);\n\t a = GG(a, b, c, d, M_offset_5, 5, T[20]);\n\t d = GG(d, a, b, c, M_offset_10, 9, T[21]);\n\t c = GG(c, d, a, b, M_offset_15, 14, T[22]);\n\t b = GG(b, c, d, a, M_offset_4, 20, T[23]);\n\t a = GG(a, b, c, d, M_offset_9, 5, T[24]);\n\t d = GG(d, a, b, c, M_offset_14, 9, T[25]);\n\t c = GG(c, d, a, b, M_offset_3, 14, T[26]);\n\t b = GG(b, c, d, a, M_offset_8, 20, T[27]);\n\t a = GG(a, b, c, d, M_offset_13, 5, T[28]);\n\t d = GG(d, a, b, c, M_offset_2, 9, T[29]);\n\t c = GG(c, d, a, b, M_offset_7, 14, T[30]);\n\t b = GG(b, c, d, a, M_offset_12, 20, T[31]);\n\n\t a = HH(a, b, c, d, M_offset_5, 4, T[32]);\n\t d = HH(d, a, b, c, M_offset_8, 11, T[33]);\n\t c = HH(c, d, a, b, M_offset_11, 16, T[34]);\n\t b = HH(b, c, d, a, M_offset_14, 23, T[35]);\n\t a = HH(a, b, c, d, M_offset_1, 4, T[36]);\n\t d = HH(d, a, b, c, M_offset_4, 11, T[37]);\n\t c = HH(c, d, a, b, M_offset_7, 16, T[38]);\n\t b = HH(b, c, d, a, M_offset_10, 23, T[39]);\n\t a = HH(a, b, c, d, M_offset_13, 4, T[40]);\n\t d = HH(d, a, b, c, M_offset_0, 11, T[41]);\n\t c = HH(c, d, a, b, M_offset_3, 16, T[42]);\n\t b = HH(b, c, d, a, M_offset_6, 23, T[43]);\n\t a = HH(a, b, c, d, M_offset_9, 4, T[44]);\n\t d = HH(d, a, b, c, M_offset_12, 11, T[45]);\n\t c = HH(c, d, a, b, M_offset_15, 16, T[46]);\n\t b = HH(b, c, d, a, M_offset_2, 23, T[47]);\n\n\t a = II(a, b, c, d, M_offset_0, 6, T[48]);\n\t d = II(d, a, b, c, M_offset_7, 10, T[49]);\n\t c = II(c, d, a, b, M_offset_14, 15, T[50]);\n\t b = II(b, c, d, a, M_offset_5, 21, T[51]);\n\t a = II(a, b, c, d, M_offset_12, 6, T[52]);\n\t d = II(d, a, b, c, M_offset_3, 10, T[53]);\n\t c = II(c, d, a, b, M_offset_10, 15, T[54]);\n\t b = II(b, c, d, a, M_offset_1, 21, T[55]);\n\t a = II(a, b, c, d, M_offset_8, 6, T[56]);\n\t d = II(d, a, b, c, M_offset_15, 10, T[57]);\n\t c = II(c, d, a, b, M_offset_6, 15, T[58]);\n\t b = II(b, c, d, a, M_offset_13, 21, T[59]);\n\t a = II(a, b, c, d, M_offset_4, 6, T[60]);\n\t d = II(d, a, b, c, M_offset_11, 10, T[61]);\n\t c = II(c, d, a, b, M_offset_2, 15, T[62]);\n\t b = II(b, c, d, a, M_offset_9, 21, T[63]);\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\n\t var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000);\n\t var nBitsTotalL = nBitsTotal;\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = (\n\t (((nBitsTotalH << 8) | (nBitsTotalH >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotalH << 24) | (nBitsTotalH >>> 8)) & 0xff00ff00)\n\t );\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (\n\t (((nBitsTotalL << 8) | (nBitsTotalL >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotalL << 24) | (nBitsTotalL >>> 8)) & 0xff00ff00)\n\t );\n\n\t data.sigBytes = (dataWords.length + 1) * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Shortcuts\n\t var hash = this._hash;\n\t var H = hash.words;\n\n\t // Swap endian\n\t for (var i = 0; i < 4; i++) {\n\t // Shortcut\n\t var H_i = H[i];\n\n\t H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |\n\t (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);\n\t }\n\n\t // Return final computed hash\n\t return hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t function FF(a, b, c, d, x, s, t) {\n\t var n = a + ((b & c) | (~b & d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function GG(a, b, c, d, x, s, t) {\n\t var n = a + ((b & d) | (c & ~d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function HH(a, b, c, d, x, s, t) {\n\t var n = a + (b ^ c ^ d) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function II(a, b, c, d, x, s, t) {\n\t var n = a + (c ^ (b | ~d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.MD5('message');\n\t * var hash = CryptoJS.MD5(wordArray);\n\t */\n\t C.MD5 = Hasher._createHelper(MD5);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacMD5(message, key);\n\t */\n\t C.HmacMD5 = Hasher._createHmacHelper(MD5);\n\t}(Math));\n\n\n\treturn CryptoJS.MD5;\n\n}));","(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.JSON5 = factory());\n}(this, (function () { 'use strict';\n\n\tfunction createCommonjsModule(fn, module) {\n\t\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n\t}\n\n\tvar _global = createCommonjsModule(function (module) {\n\t// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\n\tvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n\t ? window : typeof self != 'undefined' && self.Math == Math ? self\n\t // eslint-disable-next-line no-new-func\n\t : Function('return this')();\n\tif (typeof __g == 'number') { __g = global; } // eslint-disable-line no-undef\n\t});\n\n\tvar _core = createCommonjsModule(function (module) {\n\tvar core = module.exports = { version: '2.6.5' };\n\tif (typeof __e == 'number') { __e = core; } // eslint-disable-line no-undef\n\t});\n\tvar _core_1 = _core.version;\n\n\tvar _isObject = function (it) {\n\t return typeof it === 'object' ? it !== null : typeof it === 'function';\n\t};\n\n\tvar _anObject = function (it) {\n\t if (!_isObject(it)) { throw TypeError(it + ' is not an object!'); }\n\t return it;\n\t};\n\n\tvar _fails = function (exec) {\n\t try {\n\t return !!exec();\n\t } catch (e) {\n\t return true;\n\t }\n\t};\n\n\t// Thank's IE8 for his funny defineProperty\n\tvar _descriptors = !_fails(function () {\n\t return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n\t});\n\n\tvar document = _global.document;\n\t// typeof document.createElement is 'object' in old IE\n\tvar is = _isObject(document) && _isObject(document.createElement);\n\tvar _domCreate = function (it) {\n\t return is ? document.createElement(it) : {};\n\t};\n\n\tvar _ie8DomDefine = !_descriptors && !_fails(function () {\n\t return Object.defineProperty(_domCreate('div'), 'a', { get: function () { return 7; } }).a != 7;\n\t});\n\n\t// 7.1.1 ToPrimitive(input [, PreferredType])\n\n\t// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n\t// and the second argument - flag - preferred type is a string\n\tvar _toPrimitive = function (it, S) {\n\t if (!_isObject(it)) { return it; }\n\t var fn, val;\n\t if (S && typeof (fn = it.toString) == 'function' && !_isObject(val = fn.call(it))) { return val; }\n\t if (typeof (fn = it.valueOf) == 'function' && !_isObject(val = fn.call(it))) { return val; }\n\t if (!S && typeof (fn = it.toString) == 'function' && !_isObject(val = fn.call(it))) { return val; }\n\t throw TypeError(\"Can't convert object to primitive value\");\n\t};\n\n\tvar dP = Object.defineProperty;\n\n\tvar f = _descriptors ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n\t _anObject(O);\n\t P = _toPrimitive(P, true);\n\t _anObject(Attributes);\n\t if (_ie8DomDefine) { try {\n\t return dP(O, P, Attributes);\n\t } catch (e) { /* empty */ } }\n\t if ('get' in Attributes || 'set' in Attributes) { throw TypeError('Accessors not supported!'); }\n\t if ('value' in Attributes) { O[P] = Attributes.value; }\n\t return O;\n\t};\n\n\tvar _objectDp = {\n\t\tf: f\n\t};\n\n\tvar _propertyDesc = function (bitmap, value) {\n\t return {\n\t enumerable: !(bitmap & 1),\n\t configurable: !(bitmap & 2),\n\t writable: !(bitmap & 4),\n\t value: value\n\t };\n\t};\n\n\tvar _hide = _descriptors ? function (object, key, value) {\n\t return _objectDp.f(object, key, _propertyDesc(1, value));\n\t} : function (object, key, value) {\n\t object[key] = value;\n\t return object;\n\t};\n\n\tvar hasOwnProperty = {}.hasOwnProperty;\n\tvar _has = function (it, key) {\n\t return hasOwnProperty.call(it, key);\n\t};\n\n\tvar id = 0;\n\tvar px = Math.random();\n\tvar _uid = function (key) {\n\t return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n\t};\n\n\tvar _library = false;\n\n\tvar _shared = createCommonjsModule(function (module) {\n\tvar SHARED = '__core-js_shared__';\n\tvar store = _global[SHARED] || (_global[SHARED] = {});\n\n\t(module.exports = function (key, value) {\n\t return store[key] || (store[key] = value !== undefined ? value : {});\n\t})('versions', []).push({\n\t version: _core.version,\n\t mode: _library ? 'pure' : 'global',\n\t copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n\t});\n\t});\n\n\tvar _functionToString = _shared('native-function-to-string', Function.toString);\n\n\tvar _redefine = createCommonjsModule(function (module) {\n\tvar SRC = _uid('src');\n\n\tvar TO_STRING = 'toString';\n\tvar TPL = ('' + _functionToString).split(TO_STRING);\n\n\t_core.inspectSource = function (it) {\n\t return _functionToString.call(it);\n\t};\n\n\t(module.exports = function (O, key, val, safe) {\n\t var isFunction = typeof val == 'function';\n\t if (isFunction) { _has(val, 'name') || _hide(val, 'name', key); }\n\t if (O[key] === val) { return; }\n\t if (isFunction) { _has(val, SRC) || _hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key))); }\n\t if (O === _global) {\n\t O[key] = val;\n\t } else if (!safe) {\n\t delete O[key];\n\t _hide(O, key, val);\n\t } else if (O[key]) {\n\t O[key] = val;\n\t } else {\n\t _hide(O, key, val);\n\t }\n\t// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n\t})(Function.prototype, TO_STRING, function toString() {\n\t return typeof this == 'function' && this[SRC] || _functionToString.call(this);\n\t});\n\t});\n\n\tvar _aFunction = function (it) {\n\t if (typeof it != 'function') { throw TypeError(it + ' is not a function!'); }\n\t return it;\n\t};\n\n\t// optional / simple context binding\n\n\tvar _ctx = function (fn, that, length) {\n\t _aFunction(fn);\n\t if (that === undefined) { return fn; }\n\t switch (length) {\n\t case 1: return function (a) {\n\t return fn.call(that, a);\n\t };\n\t case 2: return function (a, b) {\n\t return fn.call(that, a, b);\n\t };\n\t case 3: return function (a, b, c) {\n\t return fn.call(that, a, b, c);\n\t };\n\t }\n\t return function (/* ...args */) {\n\t return fn.apply(that, arguments);\n\t };\n\t};\n\n\tvar PROTOTYPE = 'prototype';\n\n\tvar $export = function (type, name, source) {\n\t var IS_FORCED = type & $export.F;\n\t var IS_GLOBAL = type & $export.G;\n\t var IS_STATIC = type & $export.S;\n\t var IS_PROTO = type & $export.P;\n\t var IS_BIND = type & $export.B;\n\t var target = IS_GLOBAL ? _global : IS_STATIC ? _global[name] || (_global[name] = {}) : (_global[name] || {})[PROTOTYPE];\n\t var exports = IS_GLOBAL ? _core : _core[name] || (_core[name] = {});\n\t var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n\t var key, own, out, exp;\n\t if (IS_GLOBAL) { source = name; }\n\t for (key in source) {\n\t // contains in native\n\t own = !IS_FORCED && target && target[key] !== undefined;\n\t // export native or passed\n\t out = (own ? target : source)[key];\n\t // bind timers to global for call from export context\n\t exp = IS_BIND && own ? _ctx(out, _global) : IS_PROTO && typeof out == 'function' ? _ctx(Function.call, out) : out;\n\t // extend global\n\t if (target) { _redefine(target, key, out, type & $export.U); }\n\t // export\n\t if (exports[key] != out) { _hide(exports, key, exp); }\n\t if (IS_PROTO && expProto[key] != out) { expProto[key] = out; }\n\t }\n\t};\n\t_global.core = _core;\n\t// type bitmap\n\t$export.F = 1; // forced\n\t$export.G = 2; // global\n\t$export.S = 4; // static\n\t$export.P = 8; // proto\n\t$export.B = 16; // bind\n\t$export.W = 32; // wrap\n\t$export.U = 64; // safe\n\t$export.R = 128; // real proto method for `library`\n\tvar _export = $export;\n\n\t// 7.1.4 ToInteger\n\tvar ceil = Math.ceil;\n\tvar floor = Math.floor;\n\tvar _toInteger = function (it) {\n\t return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n\t};\n\n\t// 7.2.1 RequireObjectCoercible(argument)\n\tvar _defined = function (it) {\n\t if (it == undefined) { throw TypeError(\"Can't call method on \" + it); }\n\t return it;\n\t};\n\n\t// true -> String#at\n\t// false -> String#codePointAt\n\tvar _stringAt = function (TO_STRING) {\n\t return function (that, pos) {\n\t var s = String(_defined(that));\n\t var i = _toInteger(pos);\n\t var l = s.length;\n\t var a, b;\n\t if (i < 0 || i >= l) { return TO_STRING ? '' : undefined; }\n\t a = s.charCodeAt(i);\n\t return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n\t ? TO_STRING ? s.charAt(i) : a\n\t : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n\t };\n\t};\n\n\tvar $at = _stringAt(false);\n\t_export(_export.P, 'String', {\n\t // 21.1.3.3 String.prototype.codePointAt(pos)\n\t codePointAt: function codePointAt(pos) {\n\t return $at(this, pos);\n\t }\n\t});\n\n\tvar codePointAt = _core.String.codePointAt;\n\n\tvar max = Math.max;\n\tvar min = Math.min;\n\tvar _toAbsoluteIndex = function (index, length) {\n\t index = _toInteger(index);\n\t return index < 0 ? max(index + length, 0) : min(index, length);\n\t};\n\n\tvar fromCharCode = String.fromCharCode;\n\tvar $fromCodePoint = String.fromCodePoint;\n\n\t// length should be 1, old FF problem\n\t_export(_export.S + _export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {\n\t // 21.1.2.2 String.fromCodePoint(...codePoints)\n\t fromCodePoint: function fromCodePoint(x) {\n\t var arguments$1 = arguments;\n\t // eslint-disable-line no-unused-vars\n\t var res = [];\n\t var aLen = arguments.length;\n\t var i = 0;\n\t var code;\n\t while (aLen > i) {\n\t code = +arguments$1[i++];\n\t if (_toAbsoluteIndex(code, 0x10ffff) !== code) { throw RangeError(code + ' is not a valid code point'); }\n\t res.push(code < 0x10000\n\t ? fromCharCode(code)\n\t : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)\n\t );\n\t } return res.join('');\n\t }\n\t});\n\n\tvar fromCodePoint = _core.String.fromCodePoint;\n\n\t// This is a generated file. Do not edit.\n\tvar Space_Separator = /[\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000]/;\n\tvar ID_Start = /[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u08A0-\\u08B4\\u08B6-\\u08BD\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312E\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FEA\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF2D-\\uDF4A\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC03-\\uDC37\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDF00-\\uDF19]|\\uD806[\\uDCA0-\\uDCDF\\uDCFF\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE83\\uDE86-\\uDE89\\uDEC0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD81C-\\uD820\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1]|\\uD821[\\uDC00-\\uDFEC]|\\uD822[\\uDC00-\\uDEF2]|\\uD82C[\\uDC00-\\uDD1E\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD83A[\\uDC00-\\uDCC4\\uDD00-\\uDD43]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]/;\n\tvar ID_Continue = /[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u0860-\\u086A\\u08A0-\\u08B4\\u08B6-\\u08BD\\u08D4-\\u08E1\\u08E3-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u09FC\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0AF9-\\u0AFF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58-\\u0C5A\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C80-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D00-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D54-\\u0D57\\u0D5F-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1C80-\\u1C88\\u1CD0-\\u1CD2\\u1CD4-\\u1CF9\\u1D00-\\u1DF9\\u1DFB-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312E\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FEA\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C5\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA8FD\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDDFD\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDEE0\\uDF00-\\uDF1F\\uDF2D-\\uDF4A\\uDF50-\\uDF7A\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCA0-\\uDCA9\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE38-\\uDE3A\\uDE3F\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE6\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC00-\\uDC46\\uDC66-\\uDC6F\\uDC7F-\\uDCBA\\uDCD0-\\uDCE8\\uDCF0-\\uDCF9\\uDD00-\\uDD34\\uDD36-\\uDD3F\\uDD50-\\uDD73\\uDD76\\uDD80-\\uDDC4\\uDDCA-\\uDDCC\\uDDD0-\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE37\\uDE3E\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEEA\\uDEF0-\\uDEF9\\uDF00-\\uDF03\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3C-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF50\\uDF57\\uDF5D-\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC00-\\uDC4A\\uDC50-\\uDC59\\uDC80-\\uDCC5\\uDCC7\\uDCD0-\\uDCD9\\uDD80-\\uDDB5\\uDDB8-\\uDDC0\\uDDD8-\\uDDDD\\uDE00-\\uDE40\\uDE44\\uDE50-\\uDE59\\uDE80-\\uDEB7\\uDEC0-\\uDEC9\\uDF00-\\uDF19\\uDF1D-\\uDF2B\\uDF30-\\uDF39]|\\uD806[\\uDCA0-\\uDCE9\\uDCFF\\uDE00-\\uDE3E\\uDE47\\uDE50-\\uDE83\\uDE86-\\uDE99\\uDEC0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC36\\uDC38-\\uDC40\\uDC50-\\uDC59\\uDC72-\\uDC8F\\uDC92-\\uDCA7\\uDCA9-\\uDCB6\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD47\\uDD50-\\uDD59]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD81C-\\uD820\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE60-\\uDE69\\uDED0-\\uDEED\\uDEF0-\\uDEF4\\uDF00-\\uDF36\\uDF40-\\uDF43\\uDF50-\\uDF59\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50-\\uDF7E\\uDF8F-\\uDF9F\\uDFE0\\uDFE1]|\\uD821[\\uDC00-\\uDFEC]|\\uD822[\\uDC00-\\uDEF2]|\\uD82C[\\uDC00-\\uDD1E\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB\\uDFCE-\\uDFFF]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A]|\\uD83A[\\uDC00-\\uDCC4\\uDCD0-\\uDCD6\\uDD00-\\uDD4A\\uDD50-\\uDD59]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]|\\uDB40[\\uDD00-\\uDDEF]/;\n\n\tvar unicode = {\n\t\tSpace_Separator: Space_Separator,\n\t\tID_Start: ID_Start,\n\t\tID_Continue: ID_Continue\n\t};\n\n\tvar util = {\n\t isSpaceSeparator: function isSpaceSeparator (c) {\n\t return typeof c === 'string' && unicode.Space_Separator.test(c)\n\t },\n\n\t isIdStartChar: function isIdStartChar (c) {\n\t return typeof c === 'string' && (\n\t (c >= 'a' && c <= 'z') ||\n\t (c >= 'A' && c <= 'Z') ||\n\t (c === '$') || (c === '_') ||\n\t unicode.ID_Start.test(c)\n\t )\n\t },\n\n\t isIdContinueChar: function isIdContinueChar (c) {\n\t return typeof c === 'string' && (\n\t (c >= 'a' && c <= 'z') ||\n\t (c >= 'A' && c <= 'Z') ||\n\t (c >= '0' && c <= '9') ||\n\t (c === '$') || (c === '_') ||\n\t (c === '\\u200C') || (c === '\\u200D') ||\n\t unicode.ID_Continue.test(c)\n\t )\n\t },\n\n\t isDigit: function isDigit (c) {\n\t return typeof c === 'string' && /[0-9]/.test(c)\n\t },\n\n\t isHexDigit: function isHexDigit (c) {\n\t return typeof c === 'string' && /[0-9A-Fa-f]/.test(c)\n\t },\n\t};\n\n\tvar source;\n\tvar parseState;\n\tvar stack;\n\tvar pos;\n\tvar line;\n\tvar column;\n\tvar token;\n\tvar key;\n\tvar root;\n\n\tvar parse = function parse (text, reviver) {\n\t source = String(text);\n\t parseState = 'start';\n\t stack = [];\n\t pos = 0;\n\t line = 1;\n\t column = 0;\n\t token = undefined;\n\t key = undefined;\n\t root = undefined;\n\n\t do {\n\t token = lex();\n\n\t // This code is unreachable.\n\t // if (!parseStates[parseState]) {\n\t // throw invalidParseState()\n\t // }\n\n\t parseStates[parseState]();\n\t } while (token.type !== 'eof')\n\n\t if (typeof reviver === 'function') {\n\t return internalize({'': root}, '', reviver)\n\t }\n\n\t return root\n\t};\n\n\tfunction internalize (holder, name, reviver) {\n\t var value = holder[name];\n\t if (value != null && typeof value === 'object') {\n\t if (Array.isArray(value)) {\n\t for (var i = 0; i < value.length; i++) {\n\t var key = String(i);\n\t var replacement = internalize(value, key, reviver);\n\t if (replacement === undefined) {\n\t delete value[key];\n\t } else {\n\t Object.defineProperty(value, key, {\n\t value: replacement,\n\t writable: true,\n\t enumerable: true,\n\t configurable: true,\n\t });\n\t }\n\t }\n\t } else {\n\t for (var key$1 in value) {\n\t var replacement$1 = internalize(value, key$1, reviver);\n\t if (replacement$1 === undefined) {\n\t delete value[key$1];\n\t } else {\n\t Object.defineProperty(value, key$1, {\n\t value: replacement$1,\n\t writable: true,\n\t enumerable: true,\n\t configurable: true,\n\t });\n\t }\n\t }\n\t }\n\t }\n\n\t return reviver.call(holder, name, value)\n\t}\n\n\tvar lexState;\n\tvar buffer;\n\tvar doubleQuote;\n\tvar sign;\n\tvar c;\n\n\tfunction lex () {\n\t lexState = 'default';\n\t buffer = '';\n\t doubleQuote = false;\n\t sign = 1;\n\n\t for (;;) {\n\t c = peek();\n\n\t // This code is unreachable.\n\t // if (!lexStates[lexState]) {\n\t // throw invalidLexState(lexState)\n\t // }\n\n\t var token = lexStates[lexState]();\n\t if (token) {\n\t return token\n\t }\n\t }\n\t}\n\n\tfunction peek () {\n\t if (source[pos]) {\n\t return String.fromCodePoint(source.codePointAt(pos))\n\t }\n\t}\n\n\tfunction read () {\n\t var c = peek();\n\n\t if (c === '\\n') {\n\t line++;\n\t column = 0;\n\t } else if (c) {\n\t column += c.length;\n\t } else {\n\t column++;\n\t }\n\n\t if (c) {\n\t pos += c.length;\n\t }\n\n\t return c\n\t}\n\n\tvar lexStates = {\n\t default: function default$1 () {\n\t switch (c) {\n\t case '\\t':\n\t case '\\v':\n\t case '\\f':\n\t case ' ':\n\t case '\\u00A0':\n\t case '\\uFEFF':\n\t case '\\n':\n\t case '\\r':\n\t case '\\u2028':\n\t case '\\u2029':\n\t read();\n\t return\n\n\t case '/':\n\t read();\n\t lexState = 'comment';\n\t return\n\n\t case undefined:\n\t read();\n\t return newToken('eof')\n\t }\n\n\t if (util.isSpaceSeparator(c)) {\n\t read();\n\t return\n\t }\n\n\t // This code is unreachable.\n\t // if (!lexStates[parseState]) {\n\t // throw invalidLexState(parseState)\n\t // }\n\n\t return lexStates[parseState]()\n\t },\n\n\t comment: function comment () {\n\t switch (c) {\n\t case '*':\n\t read();\n\t lexState = 'multiLineComment';\n\t return\n\n\t case '/':\n\t read();\n\t lexState = 'singleLineComment';\n\t return\n\t }\n\n\t throw invalidChar(read())\n\t },\n\n\t multiLineComment: function multiLineComment () {\n\t switch (c) {\n\t case '*':\n\t read();\n\t lexState = 'multiLineCommentAsterisk';\n\t return\n\n\t case undefined:\n\t throw invalidChar(read())\n\t }\n\n\t read();\n\t },\n\n\t multiLineCommentAsterisk: function multiLineCommentAsterisk () {\n\t switch (c) {\n\t case '*':\n\t read();\n\t return\n\n\t case '/':\n\t read();\n\t lexState = 'default';\n\t return\n\n\t case undefined:\n\t throw invalidChar(read())\n\t }\n\n\t read();\n\t lexState = 'multiLineComment';\n\t },\n\n\t singleLineComment: function singleLineComment () {\n\t switch (c) {\n\t case '\\n':\n\t case '\\r':\n\t case '\\u2028':\n\t case '\\u2029':\n\t read();\n\t lexState = 'default';\n\t return\n\n\t case undefined:\n\t read();\n\t return newToken('eof')\n\t }\n\n\t read();\n\t },\n\n\t value: function value () {\n\t switch (c) {\n\t case '{':\n\t case '[':\n\t return newToken('punctuator', read())\n\n\t case 'n':\n\t read();\n\t literal('ull');\n\t return newToken('null', null)\n\n\t case 't':\n\t read();\n\t literal('rue');\n\t return newToken('boolean', true)\n\n\t case 'f':\n\t read();\n\t literal('alse');\n\t return newToken('boolean', false)\n\n\t case '-':\n\t case '+':\n\t if (read() === '-') {\n\t sign = -1;\n\t }\n\n\t lexState = 'sign';\n\t return\n\n\t case '.':\n\t buffer = read();\n\t lexState = 'decimalPointLeading';\n\t return\n\n\t case '0':\n\t buffer = read();\n\t lexState = 'zero';\n\t return\n\n\t case '1':\n\t case '2':\n\t case '3':\n\t case '4':\n\t case '5':\n\t case '6':\n\t case '7':\n\t case '8':\n\t case '9':\n\t buffer = read();\n\t lexState = 'decimalInteger';\n\t return\n\n\t case 'I':\n\t read();\n\t literal('nfinity');\n\t return newToken('numeric', Infinity)\n\n\t case 'N':\n\t read();\n\t literal('aN');\n\t return newToken('numeric', NaN)\n\n\t case '\"':\n\t case \"'\":\n\t doubleQuote = (read() === '\"');\n\t buffer = '';\n\t lexState = 'string';\n\t return\n\t }\n\n\t throw invalidChar(read())\n\t },\n\n\t identifierNameStartEscape: function identifierNameStartEscape () {\n\t if (c !== 'u') {\n\t throw invalidChar(read())\n\t }\n\n\t read();\n\t var u = unicodeEscape();\n\t switch (u) {\n\t case '$':\n\t case '_':\n\t break\n\n\t default:\n\t if (!util.isIdStartChar(u)) {\n\t throw invalidIdentifier()\n\t }\n\n\t break\n\t }\n\n\t buffer += u;\n\t lexState = 'identifierName';\n\t },\n\n\t identifierName: function identifierName () {\n\t switch (c) {\n\t case '$':\n\t case '_':\n\t case '\\u200C':\n\t case '\\u200D':\n\t buffer += read();\n\t return\n\n\t case '\\\\':\n\t read();\n\t lexState = 'identifierNameEscape';\n\t return\n\t }\n\n\t if (util.isIdContinueChar(c)) {\n\t buffer += read();\n\t return\n\t }\n\n\t return newToken('identifier', buffer)\n\t },\n\n\t identifierNameEscape: function identifierNameEscape () {\n\t if (c !== 'u') {\n\t throw invalidChar(read())\n\t }\n\n\t read();\n\t var u = unicodeEscape();\n\t switch (u) {\n\t case '$':\n\t case '_':\n\t case '\\u200C':\n\t case '\\u200D':\n\t break\n\n\t default:\n\t if (!util.isIdContinueChar(u)) {\n\t throw invalidIdentifier()\n\t }\n\n\t break\n\t }\n\n\t buffer += u;\n\t lexState = 'identifierName';\n\t },\n\n\t sign: function sign$1 () {\n\t switch (c) {\n\t case '.':\n\t buffer = read();\n\t lexState = 'decimalPointLeading';\n\t return\n\n\t case '0':\n\t buffer = read();\n\t lexState = 'zero';\n\t return\n\n\t case '1':\n\t case '2':\n\t case '3':\n\t case '4':\n\t case '5':\n\t case '6':\n\t case '7':\n\t case '8':\n\t case '9':\n\t buffer = read();\n\t lexState = 'decimalInteger';\n\t return\n\n\t case 'I':\n\t read();\n\t literal('nfinity');\n\t return newToken('numeric', sign * Infinity)\n\n\t case 'N':\n\t read();\n\t literal('aN');\n\t return newToken('numeric', NaN)\n\t }\n\n\t throw invalidChar(read())\n\t },\n\n\t zero: function zero () {\n\t switch (c) {\n\t case '.':\n\t buffer += read();\n\t lexState = 'decimalPoint';\n\t return\n\n\t case 'e':\n\t case 'E':\n\t buffer += read();\n\t lexState = 'decimalExponent';\n\t return\n\n\t case 'x':\n\t case 'X':\n\t buffer += read();\n\t lexState = 'hexadecimal';\n\t return\n\t }\n\n\t return newToken('numeric', sign * 0)\n\t },\n\n\t decimalInteger: function decimalInteger () {\n\t switch (c) {\n\t case '.':\n\t buffer += read();\n\t lexState = 'decimalPoint';\n\t return\n\n\t case 'e':\n\t case 'E':\n\t buffer += read();\n\t lexState = 'decimalExponent';\n\t return\n\t }\n\n\t if (util.isDigit(c)) {\n\t buffer += read();\n\t return\n\t }\n\n\t return newToken('numeric', sign * Number(buffer))\n\t },\n\n\t decimalPointLeading: function decimalPointLeading () {\n\t if (util.isDigit(c)) {\n\t buffer += read();\n\t lexState = 'decimalFraction';\n\t return\n\t }\n\n\t throw invalidChar(read())\n\t },\n\n\t decimalPoint: function decimalPoint () {\n\t switch (c) {\n\t case 'e':\n\t case 'E':\n\t buffer += read();\n\t lexState = 'decimalExponent';\n\t return\n\t }\n\n\t if (util.isDigit(c)) {\n\t buffer += read();\n\t lexState = 'decimalFraction';\n\t return\n\t }\n\n\t return newToken('numeric', sign * Number(buffer))\n\t },\n\n\t decimalFraction: function decimalFraction () {\n\t switch (c) {\n\t case 'e':\n\t case 'E':\n\t buffer += read();\n\t lexState = 'decimalExponent';\n\t return\n\t }\n\n\t if (util.isDigit(c)) {\n\t buffer += read();\n\t return\n\t }\n\n\t return newToken('numeric', sign * Number(buffer))\n\t },\n\n\t decimalExponent: function decimalExponent () {\n\t switch (c) {\n\t case '+':\n\t case '-':\n\t buffer += read();\n\t lexState = 'decimalExponentSign';\n\t return\n\t }\n\n\t if (util.isDigit(c)) {\n\t buffer += read();\n\t lexState = 'decimalExponentInteger';\n\t return\n\t }\n\n\t throw invalidChar(read())\n\t },\n\n\t decimalExponentSign: function decimalExponentSign () {\n\t if (util.isDigit(c)) {\n\t buffer += read();\n\t lexState = 'decimalExponentInteger';\n\t return\n\t }\n\n\t throw invalidChar(read())\n\t },\n\n\t decimalExponentInteger: function decimalExponentInteger () {\n\t if (util.isDigit(c)) {\n\t buffer += read();\n\t return\n\t }\n\n\t return newToken('numeric', sign * Number(buffer))\n\t },\n\n\t hexadecimal: function hexadecimal () {\n\t if (util.isHexDigit(c)) {\n\t buffer += read();\n\t lexState = 'hexadecimalInteger';\n\t return\n\t }\n\n\t throw invalidChar(read())\n\t },\n\n\t hexadecimalInteger: function hexadecimalInteger () {\n\t if (util.isHexDigit(c)) {\n\t buffer += read();\n\t return\n\t }\n\n\t return newToken('numeric', sign * Number(buffer))\n\t },\n\n\t string: function string () {\n\t switch (c) {\n\t case '\\\\':\n\t read();\n\t buffer += escape();\n\t return\n\n\t case '\"':\n\t if (doubleQuote) {\n\t read();\n\t return newToken('string', buffer)\n\t }\n\n\t buffer += read();\n\t return\n\n\t case \"'\":\n\t if (!doubleQuote) {\n\t read();\n\t return newToken('string', buffer)\n\t }\n\n\t buffer += read();\n\t return\n\n\t case '\\n':\n\t case '\\r':\n\t throw invalidChar(read())\n\n\t case '\\u2028':\n\t case '\\u2029':\n\t separatorChar(c);\n\t break\n\n\t case undefined:\n\t throw invalidChar(read())\n\t }\n\n\t buffer += read();\n\t },\n\n\t start: function start () {\n\t switch (c) {\n\t case '{':\n\t case '[':\n\t return newToken('punctuator', read())\n\n\t // This code is unreachable since the default lexState handles eof.\n\t // case undefined:\n\t // return newToken('eof')\n\t }\n\n\t lexState = 'value';\n\t },\n\n\t beforePropertyName: function beforePropertyName () {\n\t switch (c) {\n\t case '$':\n\t case '_':\n\t buffer = read();\n\t lexState = 'identifierName';\n\t return\n\n\t case '\\\\':\n\t read();\n\t lexState = 'identifierNameStartEscape';\n\t return\n\n\t case '}':\n\t return newToken('punctuator', read())\n\n\t case '\"':\n\t case \"'\":\n\t doubleQuote = (read() === '\"');\n\t lexState = 'string';\n\t return\n\t }\n\n\t if (util.isIdStartChar(c)) {\n\t buffer += read();\n\t lexState = 'identifierName';\n\t return\n\t }\n\n\t throw invalidChar(read())\n\t },\n\n\t afterPropertyName: function afterPropertyName () {\n\t if (c === ':') {\n\t return newToken('punctuator', read())\n\t }\n\n\t throw invalidChar(read())\n\t },\n\n\t beforePropertyValue: function beforePropertyValue () {\n\t lexState = 'value';\n\t },\n\n\t afterPropertyValue: function afterPropertyValue () {\n\t switch (c) {\n\t case ',':\n\t case '}':\n\t return newToken('punctuator', read())\n\t }\n\n\t throw invalidChar(read())\n\t },\n\n\t beforeArrayValue: function beforeArrayValue () {\n\t if (c === ']') {\n\t return newToken('punctuator', read())\n\t }\n\n\t lexState = 'value';\n\t },\n\n\t afterArrayValue: function afterArrayValue () {\n\t switch (c) {\n\t case ',':\n\t case ']':\n\t return newToken('punctuator', read())\n\t }\n\n\t throw invalidChar(read())\n\t },\n\n\t end: function end () {\n\t // This code is unreachable since it's handled by the default lexState.\n\t // if (c === undefined) {\n\t // read()\n\t // return newToken('eof')\n\t // }\n\n\t throw invalidChar(read())\n\t },\n\t};\n\n\tfunction newToken (type, value) {\n\t return {\n\t type: type,\n\t value: value,\n\t line: line,\n\t column: column,\n\t }\n\t}\n\n\tfunction literal (s) {\n\t for (var i = 0, list = s; i < list.length; i += 1) {\n\t var c = list[i];\n\n\t var p = peek();\n\n\t if (p !== c) {\n\t throw invalidChar(read())\n\t }\n\n\t read();\n\t }\n\t}\n\n\tfunction escape () {\n\t var c = peek();\n\t switch (c) {\n\t case 'b':\n\t read();\n\t return '\\b'\n\n\t case 'f':\n\t read();\n\t return '\\f'\n\n\t case 'n':\n\t read();\n\t return '\\n'\n\n\t case 'r':\n\t read();\n\t return '\\r'\n\n\t case 't':\n\t read();\n\t return '\\t'\n\n\t case 'v':\n\t read();\n\t return '\\v'\n\n\t case '0':\n\t read();\n\t if (util.isDigit(peek())) {\n\t throw invalidChar(read())\n\t }\n\n\t return '\\0'\n\n\t case 'x':\n\t read();\n\t return hexEscape()\n\n\t case 'u':\n\t read();\n\t return unicodeEscape()\n\n\t case '\\n':\n\t case '\\u2028':\n\t case '\\u2029':\n\t read();\n\t return ''\n\n\t case '\\r':\n\t read();\n\t if (peek() === '\\n') {\n\t read();\n\t }\n\n\t return ''\n\n\t case '1':\n\t case '2':\n\t case '3':\n\t case '4':\n\t case '5':\n\t case '6':\n\t case '7':\n\t case '8':\n\t case '9':\n\t throw invalidChar(read())\n\n\t case undefined:\n\t throw invalidChar(read())\n\t }\n\n\t return read()\n\t}\n\n\tfunction hexEscape () {\n\t var buffer = '';\n\t var c = peek();\n\n\t if (!util.isHexDigit(c)) {\n\t throw invalidChar(read())\n\t }\n\n\t buffer += read();\n\n\t c = peek();\n\t if (!util.isHexDigit(c)) {\n\t throw invalidChar(read())\n\t }\n\n\t buffer += read();\n\n\t return String.fromCodePoint(parseInt(buffer, 16))\n\t}\n\n\tfunction unicodeEscape () {\n\t var buffer = '';\n\t var count = 4;\n\n\t while (count-- > 0) {\n\t var c = peek();\n\t if (!util.isHexDigit(c)) {\n\t throw invalidChar(read())\n\t }\n\n\t buffer += read();\n\t }\n\n\t return String.fromCodePoint(parseInt(buffer, 16))\n\t}\n\n\tvar parseStates = {\n\t start: function start () {\n\t if (token.type === 'eof') {\n\t throw invalidEOF()\n\t }\n\n\t push();\n\t },\n\n\t beforePropertyName: function beforePropertyName () {\n\t switch (token.type) {\n\t case 'identifier':\n\t case 'string':\n\t key = token.value;\n\t parseState = 'afterPropertyName';\n\t return\n\n\t case 'punctuator':\n\t // This code is unreachable since it's handled by the lexState.\n\t // if (token.value !== '}') {\n\t // throw invalidToken()\n\t // }\n\n\t pop();\n\t return\n\n\t case 'eof':\n\t throw invalidEOF()\n\t }\n\n\t // This code is unreachable since it's handled by the lexState.\n\t // throw invalidToken()\n\t },\n\n\t afterPropertyName: function afterPropertyName () {\n\t // This code is unreachable since it's handled by the lexState.\n\t // if (token.type !== 'punctuator' || token.value !== ':') {\n\t // throw invalidToken()\n\t // }\n\n\t if (token.type === 'eof') {\n\t throw invalidEOF()\n\t }\n\n\t parseState = 'beforePropertyValue';\n\t },\n\n\t beforePropertyValue: function beforePropertyValue () {\n\t if (token.type === 'eof') {\n\t throw invalidEOF()\n\t }\n\n\t push();\n\t },\n\n\t beforeArrayValue: function beforeArrayValue () {\n\t if (token.type === 'eof') {\n\t throw invalidEOF()\n\t }\n\n\t if (token.type === 'punctuator' && token.value === ']') {\n\t pop();\n\t return\n\t }\n\n\t push();\n\t },\n\n\t afterPropertyValue: function afterPropertyValue () {\n\t // This code is unreachable since it's handled by the lexState.\n\t // if (token.type !== 'punctuator') {\n\t // throw invalidToken()\n\t // }\n\n\t if (token.type === 'eof') {\n\t throw invalidEOF()\n\t }\n\n\t switch (token.value) {\n\t case ',':\n\t parseState = 'beforePropertyName';\n\t return\n\n\t case '}':\n\t pop();\n\t }\n\n\t // This code is unreachable since it's handled by the lexState.\n\t // throw invalidToken()\n\t },\n\n\t afterArrayValue: function afterArrayValue () {\n\t // This code is unreachable since it's handled by the lexState.\n\t // if (token.type !== 'punctuator') {\n\t // throw invalidToken()\n\t // }\n\n\t if (token.type === 'eof') {\n\t throw invalidEOF()\n\t }\n\n\t switch (token.value) {\n\t case ',':\n\t parseState = 'beforeArrayValue';\n\t return\n\n\t case ']':\n\t pop();\n\t }\n\n\t // This code is unreachable since it's handled by the lexState.\n\t // throw invalidToken()\n\t },\n\n\t end: function end () {\n\t // This code is unreachable since it's handled by the lexState.\n\t // if (token.type !== 'eof') {\n\t // throw invalidToken()\n\t // }\n\t },\n\t};\n\n\tfunction push () {\n\t var value;\n\n\t switch (token.type) {\n\t case 'punctuator':\n\t switch (token.value) {\n\t case '{':\n\t value = {};\n\t break\n\n\t case '[':\n\t value = [];\n\t break\n\t }\n\n\t break\n\n\t case 'null':\n\t case 'boolean':\n\t case 'numeric':\n\t case 'string':\n\t value = token.value;\n\t break\n\n\t // This code is unreachable.\n\t // default:\n\t // throw invalidToken()\n\t }\n\n\t if (root === undefined) {\n\t root = value;\n\t } else {\n\t var parent = stack[stack.length - 1];\n\t if (Array.isArray(parent)) {\n\t parent.push(value);\n\t } else {\n\t Object.defineProperty(parent, key, {\n\t value: value,\n\t writable: true,\n\t enumerable: true,\n\t configurable: true,\n\t });\n\t }\n\t }\n\n\t if (value !== null && typeof value === 'object') {\n\t stack.push(value);\n\n\t if (Array.isArray(value)) {\n\t parseState = 'beforeArrayValue';\n\t } else {\n\t parseState = 'beforePropertyName';\n\t }\n\t } else {\n\t var current = stack[stack.length - 1];\n\t if (current == null) {\n\t parseState = 'end';\n\t } else if (Array.isArray(current)) {\n\t parseState = 'afterArrayValue';\n\t } else {\n\t parseState = 'afterPropertyValue';\n\t }\n\t }\n\t}\n\n\tfunction pop () {\n\t stack.pop();\n\n\t var current = stack[stack.length - 1];\n\t if (current == null) {\n\t parseState = 'end';\n\t } else if (Array.isArray(current)) {\n\t parseState = 'afterArrayValue';\n\t } else {\n\t parseState = 'afterPropertyValue';\n\t }\n\t}\n\n\t// This code is unreachable.\n\t// function invalidParseState () {\n\t// return new Error(`JSON5: invalid parse state '${parseState}'`)\n\t// }\n\n\t// This code is unreachable.\n\t// function invalidLexState (state) {\n\t// return new Error(`JSON5: invalid lex state '${state}'`)\n\t// }\n\n\tfunction invalidChar (c) {\n\t if (c === undefined) {\n\t return syntaxError((\"JSON5: invalid end of input at \" + line + \":\" + column))\n\t }\n\n\t return syntaxError((\"JSON5: invalid character '\" + (formatChar(c)) + \"' at \" + line + \":\" + column))\n\t}\n\n\tfunction invalidEOF () {\n\t return syntaxError((\"JSON5: invalid end of input at \" + line + \":\" + column))\n\t}\n\n\t// This code is unreachable.\n\t// function invalidToken () {\n\t// if (token.type === 'eof') {\n\t// return syntaxError(`JSON5: invalid end of input at ${line}:${column}`)\n\t// }\n\n\t// const c = String.fromCodePoint(token.value.codePointAt(0))\n\t// return syntaxError(`JSON5: invalid character '${formatChar(c)}' at ${line}:${column}`)\n\t// }\n\n\tfunction invalidIdentifier () {\n\t column -= 5;\n\t return syntaxError((\"JSON5: invalid identifier character at \" + line + \":\" + column))\n\t}\n\n\tfunction separatorChar (c) {\n\t console.warn((\"JSON5: '\" + (formatChar(c)) + \"' in strings is not valid ECMAScript; consider escaping\"));\n\t}\n\n\tfunction formatChar (c) {\n\t var replacements = {\n\t \"'\": \"\\\\'\",\n\t '\"': '\\\\\"',\n\t '\\\\': '\\\\\\\\',\n\t '\\b': '\\\\b',\n\t '\\f': '\\\\f',\n\t '\\n': '\\\\n',\n\t '\\r': '\\\\r',\n\t '\\t': '\\\\t',\n\t '\\v': '\\\\v',\n\t '\\0': '\\\\0',\n\t '\\u2028': '\\\\u2028',\n\t '\\u2029': '\\\\u2029',\n\t };\n\n\t if (replacements[c]) {\n\t return replacements[c]\n\t }\n\n\t if (c < ' ') {\n\t var hexString = c.charCodeAt(0).toString(16);\n\t return '\\\\x' + ('00' + hexString).substring(hexString.length)\n\t }\n\n\t return c\n\t}\n\n\tfunction syntaxError (message) {\n\t var err = new SyntaxError(message);\n\t err.lineNumber = line;\n\t err.columnNumber = column;\n\t return err\n\t}\n\n\tvar stringify = function stringify (value, replacer, space) {\n\t var stack = [];\n\t var indent = '';\n\t var propertyList;\n\t var replacerFunc;\n\t var gap = '';\n\t var quote;\n\n\t if (\n\t replacer != null &&\n\t typeof replacer === 'object' &&\n\t !Array.isArray(replacer)\n\t ) {\n\t space = replacer.space;\n\t quote = replacer.quote;\n\t replacer = replacer.replacer;\n\t }\n\n\t if (typeof replacer === 'function') {\n\t replacerFunc = replacer;\n\t } else if (Array.isArray(replacer)) {\n\t propertyList = [];\n\t for (var i = 0, list = replacer; i < list.length; i += 1) {\n\t var v = list[i];\n\n\t var item = (void 0);\n\n\t if (typeof v === 'string') {\n\t item = v;\n\t } else if (\n\t typeof v === 'number' ||\n\t v instanceof String ||\n\t v instanceof Number\n\t ) {\n\t item = String(v);\n\t }\n\n\t if (item !== undefined && propertyList.indexOf(item) < 0) {\n\t propertyList.push(item);\n\t }\n\t }\n\t }\n\n\t if (space instanceof Number) {\n\t space = Number(space);\n\t } else if (space instanceof String) {\n\t space = String(space);\n\t }\n\n\t if (typeof space === 'number') {\n\t if (space > 0) {\n\t space = Math.min(10, Math.floor(space));\n\t gap = ' '.substr(0, space);\n\t }\n\t } else if (typeof space === 'string') {\n\t gap = space.substr(0, 10);\n\t }\n\n\t return serializeProperty('', {'': value})\n\n\t function serializeProperty (key, holder) {\n\t var value = holder[key];\n\t if (value != null) {\n\t if (typeof value.toJSON5 === 'function') {\n\t value = value.toJSON5(key);\n\t } else if (typeof value.toJSON === 'function') {\n\t value = value.toJSON(key);\n\t }\n\t }\n\n\t if (replacerFunc) {\n\t value = replacerFunc.call(holder, key, value);\n\t }\n\n\t if (value instanceof Number) {\n\t value = Number(value);\n\t } else if (value instanceof String) {\n\t value = String(value);\n\t } else if (value instanceof Boolean) {\n\t value = value.valueOf();\n\t }\n\n\t switch (value) {\n\t case null: return 'null'\n\t case true: return 'true'\n\t case false: return 'false'\n\t }\n\n\t if (typeof value === 'string') {\n\t return quoteString(value, false)\n\t }\n\n\t if (typeof value === 'number') {\n\t return String(value)\n\t }\n\n\t if (typeof value === 'object') {\n\t return Array.isArray(value) ? serializeArray(value) : serializeObject(value)\n\t }\n\n\t return undefined\n\t }\n\n\t function quoteString (value) {\n\t var quotes = {\n\t \"'\": 0.1,\n\t '\"': 0.2,\n\t };\n\n\t var replacements = {\n\t \"'\": \"\\\\'\",\n\t '\"': '\\\\\"',\n\t '\\\\': '\\\\\\\\',\n\t '\\b': '\\\\b',\n\t '\\f': '\\\\f',\n\t '\\n': '\\\\n',\n\t '\\r': '\\\\r',\n\t '\\t': '\\\\t',\n\t '\\v': '\\\\v',\n\t '\\0': '\\\\0',\n\t '\\u2028': '\\\\u2028',\n\t '\\u2029': '\\\\u2029',\n\t };\n\n\t var product = '';\n\n\t for (var i = 0; i < value.length; i++) {\n\t var c = value[i];\n\t switch (c) {\n\t case \"'\":\n\t case '\"':\n\t quotes[c]++;\n\t product += c;\n\t continue\n\n\t case '\\0':\n\t if (util.isDigit(value[i + 1])) {\n\t product += '\\\\x00';\n\t continue\n\t }\n\t }\n\n\t if (replacements[c]) {\n\t product += replacements[c];\n\t continue\n\t }\n\n\t if (c < ' ') {\n\t var hexString = c.charCodeAt(0).toString(16);\n\t product += '\\\\x' + ('00' + hexString).substring(hexString.length);\n\t continue\n\t }\n\n\t product += c;\n\t }\n\n\t var quoteChar = quote || Object.keys(quotes).reduce(function (a, b) { return (quotes[a] < quotes[b]) ? a : b; });\n\n\t product = product.replace(new RegExp(quoteChar, 'g'), replacements[quoteChar]);\n\n\t return quoteChar + product + quoteChar\n\t }\n\n\t function serializeObject (value) {\n\t if (stack.indexOf(value) >= 0) {\n\t throw TypeError('Converting circular structure to JSON5')\n\t }\n\n\t stack.push(value);\n\n\t var stepback = indent;\n\t indent = indent + gap;\n\n\t var keys = propertyList || Object.keys(value);\n\t var partial = [];\n\t for (var i = 0, list = keys; i < list.length; i += 1) {\n\t var key = list[i];\n\n\t var propertyString = serializeProperty(key, value);\n\t if (propertyString !== undefined) {\n\t var member = serializeKey(key) + ':';\n\t if (gap !== '') {\n\t member += ' ';\n\t }\n\t member += propertyString;\n\t partial.push(member);\n\t }\n\t }\n\n\t var final;\n\t if (partial.length === 0) {\n\t final = '{}';\n\t } else {\n\t var properties;\n\t if (gap === '') {\n\t properties = partial.join(',');\n\t final = '{' + properties + '}';\n\t } else {\n\t var separator = ',\\n' + indent;\n\t properties = partial.join(separator);\n\t final = '{\\n' + indent + properties + ',\\n' + stepback + '}';\n\t }\n\t }\n\n\t stack.pop();\n\t indent = stepback;\n\t return final\n\t }\n\n\t function serializeKey (key) {\n\t if (key.length === 0) {\n\t return quoteString(key, true)\n\t }\n\n\t var firstChar = String.fromCodePoint(key.codePointAt(0));\n\t if (!util.isIdStartChar(firstChar)) {\n\t return quoteString(key, true)\n\t }\n\n\t for (var i = firstChar.length; i < key.length; i++) {\n\t if (!util.isIdContinueChar(String.fromCodePoint(key.codePointAt(i)))) {\n\t return quoteString(key, true)\n\t }\n\t }\n\n\t return key\n\t }\n\n\t function serializeArray (value) {\n\t if (stack.indexOf(value) >= 0) {\n\t throw TypeError('Converting circular structure to JSON5')\n\t }\n\n\t stack.push(value);\n\n\t var stepback = indent;\n\t indent = indent + gap;\n\n\t var partial = [];\n\t for (var i = 0; i < value.length; i++) {\n\t var propertyString = serializeProperty(String(i), value);\n\t partial.push((propertyString !== undefined) ? propertyString : 'null');\n\t }\n\n\t var final;\n\t if (partial.length === 0) {\n\t final = '[]';\n\t } else {\n\t if (gap === '') {\n\t var properties = partial.join(',');\n\t final = '[' + properties + ']';\n\t } else {\n\t var separator = ',\\n' + indent;\n\t var properties$1 = partial.join(separator);\n\t final = '[\\n' + indent + properties$1 + ',\\n' + stepback + ']';\n\t }\n\t }\n\n\t stack.pop();\n\t indent = stepback;\n\t return final\n\t }\n\t};\n\n\tvar JSON5 = {\n\t parse: parse,\n\t stringify: stringify,\n\t};\n\n\tvar lib = JSON5;\n\n\tvar es5 = lib;\n\n\treturn es5;\n\n})));\n"],"names":["DEFAULT_SM_SIZE","isObject","it","props","data","value","LIKE_SELECT","dataStr","attr","part","text","noTranslation","strText","confirm","icon","isOk","callback","iconSettings","newValue","resolve","mayBePromise","e","cb","z","dep","val","changed","_newValue","newValue_","_attr","i","func","defaultValue","arrayIndex","globalData","fun","customObj","instanceObj","schema","error","disabled","hidden","_error","_disabled","_defaultValue","link","str","_match","p1","pattern","patternStr","isError","item","renderedItem","ConfigGeneric","styles","theme","ConfigAccordion","index","cloned","mayByPromise","newItem","accumulator","currentValue","idx","schemaItem","valueChange","newObj","newIndex","_e","expanded","ConfigAlive","instance","state","ConfigAutocomplete","selectOptions","options","_item","option","params","filtered","_","ConfigAutocompleteSendTo","list","localContext","ConfigCRON","showDialog","value_","ConfigCertificateSelect","el","name","item_","ConfigCertificates","certificates","certsPublicOptions","certsPrivateOptions","certsChainOptions","collectionsOptions","collectionsOptionsObj","leCollection","certPublic","certPrivate","certChained","itemCertPublic","itemCertPrivate","itemCertChained","ConfigCertCollection","ConfigCheckLicense","content","license","pre","key","obj","key1","token","base64","jsonPayload","c","version","rule","invoice","adapterName","result","major","licenses","errors","useLicense","now","uuid","uuidObj","aObj","validTill","parts","validName","validUuid","validVersion","controller","timeout","response","data_","showLicenseData","isYes","secondRun","li","ConfigCheckbox","isIndeterminate","variantComponent","FilledInput","light","bottomLineColor","keyCodes","defaultChipRenderer","isFocused","isDisabled","isReadOnly","handleClick","handleDelete","style","blue","ChipInput","event","addChipOptions","numChipsBefore","numChipsAfter","focusedChip","chips","ref","newState","chip","additionalUpdates","alwaysShowPlaceholder","chipRenderer","className","disableUnderline","FormHelperTextProps","fullWidth","fullWidthInput","helperText","id","InputProps","InputLabelProps","inputValue","label","placeholder","readOnly","required","rootRef","margin","variant","actualInputValue","hasInput","shrinkFloatingLabel","chipComponents","InputMore","InputComponent","ConfigChip","a","_chip","ConfigColor","color","textColor","ConfigCoordinates","position","useSystem","longitude","latitude","getOrLoadRemote","remote","shareScope","remoteFallbackUrl","reject","existingRemote","onload","d","script","loadComponent","sharedScope","module","url","uniqueName","fileToLoad","componentNameParts","componentName","setPromise","i18nPromise","pos","i18nURL","lang","file","json","err","component","keys","CustomComponent","ConfigCustom","ConfigDatePicker","ConfigDeviceManager","DeviceManager","IMAGE_EXT","AUDIO_EXT","VIDEO_EXT","DOC_EXT","JS_EXT","ConfigFileSelector","_id","fileName","files","folderName","filter","dirFiles","f","ok","pos_","folder","acceptedFiles","reader","maxSize","deleteFile","binaryString","len","bytes","oContext","buf","buffer","source","folders","buttons","play","element","accept","last","getRootProps","getInputProps","ConfigFile","adapter","path","extension","_value","ConfigFunc","enums","ConfigIP","ips","ConfigImageSendTo","image","ConfigImageUpload","exist","update","res","blob","ConfigInstanceSelect","b","instances","ConfigInterface","interfaces","inter","_ip","ip","toggleTranslation","title","help","maxWidth","progress","applyDisabled","applyButton","onClose","children","titleButtonApply","titleButtonClose","onApply","textInput","overflowHidden","setValue","Icon","Editor","ConfigJsonEditor","jsonError","showSelectId","LANGUAGES","ConfigLanguage","languages","systemConfig","ConfigLicense","reason","ConfigNumber","autoCompleteOptions","arr","ConfigObjectId","socket","PASSWORD_PLACEHOLDER","ConfigPassword","password","repeatPassword","_notEqual","passwordRepeat","ConfigPattern","ConfigPort","ownId","ownHostname","ports","port","min","max","warning","num","maybePromise","ConfigRoom","ConfigSelect","groupItem","ConfigSelectSendTo","v","ip2int","ipInt","octet","findNetworkAddressOfHost","localIp","networkInterfaces","hostIp","ConfigSendto","hostname","adminInstance","hostObj","_origin","_originIp","arg","ConfigSetState","ConfigSlider","unit","marks","getIconByName","valueBlinkOnce","ConfigState","controlType","step","fontSize","divStyle","blinkStyle","labelIcon","labelControl","iconFalse","textFalse","iconTrue","textTrue","ConfigStaticDivider","ConfigStaticHeader","ConfigStaticImage","src","force","valueBlink","ConfigStaticInfo","valueTxt","multiLine","valStyle","style1","style2","copyButton","boxStyle","onLink","href","target","instanceId","_target","_url","ConfigStaticText","MAX_SIZE","objectToArray","object","nameOfFirstAttr","nameOfSecondAttr","array","arrayToObject","row","encrypt","secret","decrypt","ConfigTable","property","orderCheck","order","orderBy","newOrder","comparator","stabilizedThis","order_","updateVisible","_updateVisible","objValue","clear","visibleValue","valueInputRef","attrItem","schemaForAttribute","uniqueCol","allVals","entry","filterValue","headCell","filterOn","doAnyFilterSet","buttonsWidth","lines","line","header","it2","values","p","byte","tdStyle","currentBreakpoint","ConfigText","time","actionButton","actionButtonStyle","helper","ConfigTextSendTo","_data","ConfigTimePicker","shortFormat","strValue","convertID2Topic","namespace","topic","ConfigTopic","ConfigUUID","ConfigUser","users","_users","user","ConfigQrCode","QRCodeComponent","components","ConfigPanel","items","type","ItemComponent","schemaStyle","ConfigTabs","hash","tabS","tabN","tab","withIcons","elements","tabs","JsonConfigComponent","commandRunning","attrOrData","saveConfig","i18n","exists","jsonFile","jsonStr","_list","attrs","depObj","forceUpdate","decryptLegacy","encryptLegacy","textParts","_key","iv","cipherParams","decryptedBinary","_iv","encrypted","loadScript","JsonConfig","evt","r","contents","size","langFileName","input","filePaths","k","_filePaths","binary","e1","dataAttr","table","tItem","dataVal","doSave","close","doNotSaveAttributes","encryptedObj","nativeWithNonSaved","_prevProps","prevState","saveConfigDialog","t","n","s","o","u","l","h","m","g","y","w","E","root","factory","exports","CryptoJS","Math","undefined","crypto","cryptoSecureRandomInt","create","F","subtype","C","C_lib","Base","overrides","properties","propertyName","WordArray","words","sigBytes","encoder","Hex","wordArray","thisWords","thatWords","thisSigBytes","thatSigBytes","thatByte","j","clone","nBytes","C_enc","hexChars","bite","hexStr","hexStrLength","Latin1","latin1Chars","latin1Str","latin1StrLength","Utf8","utf8Str","BufferedBlockAlgorithm","doFlush","processedWords","dataWords","dataSigBytes","blockSize","blockSizeBytes","nBlocksReady","nWordsReady","nBytesReady","offset","Hasher","cfg","messageUpdate","hasher","message","C_algo","T","MD5","M","offset_i","M_offset_i","H","M_offset_0","M_offset_1","M_offset_2","M_offset_3","M_offset_4","M_offset_5","M_offset_6","M_offset_7","M_offset_8","M_offset_9","M_offset_10","M_offset_11","M_offset_12","M_offset_13","M_offset_14","M_offset_15","FF","GG","HH","II","nBitsTotal","nBitsLeft","nBitsTotalH","nBitsTotalL","H_i","x","global","createCommonjsModule","fn","_global","_core","core","_core_1","_isObject","_anObject","_fails","exec","_descriptors","document","is","_domCreate","_ie8DomDefine","_toPrimitive","S","dP","O","P","Attributes","_objectDp","_propertyDesc","bitmap","_hide","hasOwnProperty","_has","px","_uid","_library","_shared","SHARED","store","_functionToString","_redefine","SRC","TO_STRING","TPL","safe","isFunction","_aFunction","_ctx","that","length","PROTOTYPE","$export","IS_FORCED","IS_GLOBAL","IS_STATIC","IS_PROTO","IS_BIND","expProto","own","out","exp","_export","ceil","floor","_toInteger","_defined","_stringAt","$at","codePointAt","_toAbsoluteIndex","fromCharCode","$fromCodePoint","arguments$1","aLen","code","fromCodePoint","Space_Separator","ID_Start","ID_Continue","unicode","util","parseState","stack","column","parse","reviver","lex","parseStates","internalize","holder","replacement","key$1","replacement$1","lexState","doubleQuote","sign","peek","lexStates","read","newToken","invalidChar","literal","unicodeEscape","invalidIdentifier","escape","separatorChar","hexEscape","count","invalidEOF","push","pop","parent","current","syntaxError","formatChar","replacements","hexString","stringify","replacer","space","indent","propertyList","replacerFunc","gap","quote","serializeProperty","quoteString","serializeArray","serializeObject","quotes","product","quoteChar","stepback","partial","propertyString","member","serializeKey","final","separator","firstChar","properties$1","JSON5","lib","es5"],"sourceRoot":""}
|