diff --git a/README.md b/README.md index e0114bd9..bc253ab3 100644 --- a/README.md +++ b/README.md @@ -269,8 +269,7 @@ Following types are supported: --> ## Changelog - -### __WORK IN PROGRESS__ +### 1.13.0 (2022-12-08) * (Apollon77) Add support vor Custom Skill v2 ### 1.12.5 (2022-11-09) diff --git a/admin/asset-manifest.json b/admin/asset-manifest.json index 9b49587f..2b2709d7 100644 --- a/admin/asset-manifest.json +++ b/admin/asset-manifest.json @@ -1,13 +1,13 @@ { "files": { "main.css": "./static/css/main.96b3c861.css", - "main.js": "./static/js/main.a9dfceba.js", + "main.js": "./static/js/main.07ce9ef0.js", "index.html": "./index.html", "main.96b3c861.css.map": "./static/css/main.96b3c861.css.map", - "main.a9dfceba.js.map": "./static/js/main.a9dfceba.js.map" + "main.07ce9ef0.js.map": "./static/js/main.07ce9ef0.js.map" }, "entrypoints": [ "static/css/main.96b3c861.css", - "static/js/main.a9dfceba.js" + "static/js/main.07ce9ef0.js" ] } \ No newline at end of file diff --git a/admin/index_m.html b/admin/index_m.html index 34117a5d..1842ee90 100644 --- a/admin/index_m.html +++ b/admin/index_m.html @@ -1 +1 @@ -
}\n */\nclass Router extends React.Component {\n /**\n * @param {P} props The React properties of this component.\n */\n constructor(props) {\n super(props);\n this.onHashChangedBound = this.onHashChanged.bind(this);\n }\n\n componentDidMount() {\n window.addEventListener('hashchange', this.onHashChangedBound);\n }\n\n componentWillUnmount() {\n window.removeEventListener('hashchange', this.onHashChangedBound);\n }\n\n onHashChanged() {\n // override this function\n }\n\n /**\n * Gets the location object.\n * @returns {{ tab: string; dialog: string; id: string; arg: string; }}\n */\n static getLocation() {\n let hash = window.location.hash;\n hash = hash.replace(/^#/, '');\n const parts = hash.split('/').map(item => {\n try {\n return item ? decodeURIComponent(item) : ''\n } catch (e) {\n console.error('Router: Cannot decode ' + item);\n return item || '';\n }\n });\n // #tabName/dialogName/deviceId\n return {\n tab: parts[0] || '',\n dialog: parts[1] || '',\n id: parts[2] || '',\n arg: parts[3] || ''\n };\n }\n\n /**\n * Navigate to a new location. Any parameters that are not set will be taken from the current location.\n * @param {string | undefined} [tab]\n * @param {string | undefined} [dialog]\n * @param {string | undefined} [id]\n * @param {string | undefined} [arg]\n */\n static doNavigate(tab, dialog, id, arg) {\n let hash = '';\n const location = Router.getLocation();\n if (arg !== undefined && !id) {\n id = location.id;\n }\n if (id && !dialog) {\n dialog = location.dialog;\n }\n if (dialog && !tab) {\n tab = location.tab;\n } else\n if (tab === null) {\n tab = location.tab;\n }\n\n if (tab) {\n hash = '#' + tab;\n if (dialog) {\n hash += '/' + dialog;\n\n if (id) {\n hash += '/' + id;\n if (arg !== undefined) {\n hash += '/' + arg;\n }\n }\n }\n }\n if (window.location.hash !== hash) {\n window.location.hash = hash;\n }\n }\n}\n\nexport default Router;","// please do not delete React, as without it other projects could not be compiled: ReferenceError: React is not defined\nimport React from 'react';\nimport withStyles from '@mui/styles/withStyles';\nimport Fab from '@mui/material/Fab';\nimport PropTypes from 'prop-types';\n\nimport Toolbar from '@mui/material/Toolbar';\n\nimport I18n from '../i18n';\n\nimport IconSave from '@mui/icons-material/Save';\nimport IconClose from '@mui/icons-material/Close';\n\nconst styles = theme => ({\n buttonIcon: {\n marginRight: 8\n },\n});\n\n/**\n * @typedef {object} SaveCloseButtonsProps\n * @property {boolean} noTextOnButtons Are the buttons without text\n * @property {any} theme Theme object (from this.state.theme)\n * @property {boolean} isIFrame bottom position 0 or 38 for iFrame\n * @property {boolean} newReact is used in new react\n * @property {function} onSave on Save handler\n * @property {function} onClose on Close handler\n *\n * @extends {React.Component
/);\n if (m) {\n const result = [];\n let key = 1;\n do {\n const p = text.split(m[0]);\n p[0] && result.push({p[0]});\n\n if (m[0].startsWith('
);\n } else {\n let href = m[0].match(/href=\"([^\"]+)\"/) || m[0].match(/href='([^']+)'/);\n let target = m[0].match(/target=\"([^\"]+)\"/) || m[0].match(/target='([^']+)'/);\n let rel = m[0].match(/rel=\"([^\"]+)\"/) || m[0].match(/rel='([^']+)'/);\n const title = m[0].match(/>([^<]*));\n\n // eslint-disable-next-line\n result.push({title ? title[1] : ''});\n }\n\n text = p[1];\n\n m = text && text.match(/|
/);\n if (!m) {\n p[1] && result.push({p[1]});\n }\n } while (m);\n\n return result;\n } else {\n return text;\n }\n }\n\n /**\n * Get the smart name of the given state.\n * @param {Record