\n \n "]);return E=function(){return e},e}function _(){var e=O([""]);return _=function(){return e},e}function O(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function j(e,t,r,n,i,o,a){try{var c=e[o](a),s=c.value}catch(l){return void r(l)}c.done?t(s):Promise.resolve(s).then(n,i)}function P(e){return function(){var t=this,r=arguments;return new Promise(function(n,i){var o=e.apply(t,r);function a(e){j(o,n,i,a,c,"next",e)}function c(e){j(o,n,i,a,c,"throw",e)}a(void 0)})}}function x(e,t){return(x=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function S(e){return function(){var t,r=D(e);if(function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(e){return!1}}()){var n=D(this).constructor;t=Reflect.construct(r,arguments,n)}else t=r.apply(this,arguments);return function(e,t){if(t&&("object"===v(t)||"function"==typeof t))return t;return T(e)}(this,t)}}function T(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function D(e){return(D=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function C(e){var t,r=N(e.key);"method"===e.kind?t={value:e.value,writable:!0,configurable:!0,enumerable:!1}:"get"===e.kind?t={get:e.value,configurable:!0,enumerable:!1}:"set"===e.kind?t={set:e.value,configurable:!0,enumerable:!1}:"field"===e.kind&&(t={configurable:!0,writable:!0,enumerable:!0});var n={kind:"field"===e.kind?"field":"method",key:r,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:t};return e.decorators&&(n.decorators=e.decorators),"field"===e.kind&&(n.initializer=e.value),n}function A(e,t){void 0!==e.descriptor.get?t.descriptor.get=e.descriptor.get:t.descriptor.set=e.descriptor.set}function z(e){return e.decorators&&e.decorators.length}function R(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function F(e,t){var r=e[t];if(void 0!==r&&"function"!=typeof r)throw new TypeError("Expected '"+t+"' to be a function");return r}function N(e){var t=function(e,t){if("object"!==v(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==v(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===v(t)?t:String(t)}function I(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var c=this.fromElementDescriptor(e),s=this.toElementFinisherExtras((0,i[o])(c)||c);e=s.element,this.addElementPlacement(e,t),s.finisher&&n.push(s.finisher);var l=s.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a\n \n
\n
\n \n
\n
\n
\n \n ']);return l=function(){return e},e}function u(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function f(e,t){return(f=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function d(e){return function(){var t,r=E(e);if(function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(e){return!1}}()){var n=E(this).constructor;t=Reflect.construct(r,arguments,n)}else t=r.apply(this,arguments);return function(e,t){if(t&&("object"===c(t)||"function"==typeof t))return t;return p(e)}(this,t)}}function p(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function h(e){var t,r=w(e.key);"method"===e.kind?t={value:e.value,writable:!0,configurable:!0,enumerable:!1}:"get"===e.kind?t={get:e.value,configurable:!0,enumerable:!1}:"set"===e.kind?t={set:e.value,configurable:!0,enumerable:!1}:"field"===e.kind&&(t={configurable:!0,writable:!0,enumerable:!0});var n={kind:"field"===e.kind?"field":"method",key:r,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:t};return e.decorators&&(n.decorators=e.decorators),"field"===e.kind&&(n.initializer=e.value),n}function m(e,t){void 0!==e.descriptor.get?t.descriptor.get=e.descriptor.get:t.descriptor.set=e.descriptor.set}function y(e){return e.decorators&&e.decorators.length}function v(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function b(e,t){var r=e[t];if(void 0!==r&&"function"!=typeof r)throw new TypeError("Expected '"+t+"' to be a function");return r}function w(e){var t=function(e,t){if("object"!==c(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==c(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===c(t)?t:String(t)}function g(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var c=this.fromElementDescriptor(e),s=this.toElementFinisherExtras((0,i[o])(c)||c);e=s.element,this.addElementPlacement(e,t),s.finisher&&n.push(s.finisher);var l=s.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a}\n */\n getTabbableNodes: function (node) {\n var result = [];\n // If there is at least one element with tabindex > 0, we need to sort\n // the final array by tabindex.\n var needsSortByTabIndex = this._collectTabbableNodes(node, result);\n if (needsSortByTabIndex) {\n return IronFocusablesHelper._sortByTabIndex(result);\n }\n return result;\n },\n\n /**\n * Searches for nodes that are tabbable and adds them to the `result` array.\n * Returns if the `result` array needs to be sorted by tabindex.\n * @param {!Node} node The starting point for the search; added to `result`\n * if tabbable.\n * @param {!Array} result\n * @return {boolean}\n * @private\n */\n _collectTabbableNodes: function (node, result) {\n // If not an element or not visible, no need to explore children.\n if (\n node.nodeType !== Node.ELEMENT_NODE ||\n !IronFocusablesHelper._isVisible(node)\n ) {\n return false;\n }\n var element = /** @type {!HTMLElement} */ (node);\n var tabIndex = IronFocusablesHelper._normalizedTabIndex(element);\n var needsSort = tabIndex > 0;\n if (tabIndex >= 0) {\n result.push(element);\n }\n\n // In ShadowDOM v1, tab order is affected by the order of distrubution.\n // E.g. getTabbableNodes(#root) in ShadowDOM v1 should return [#A, #B];\n // in ShadowDOM v0 tab order is not affected by the distrubution order,\n // in fact getTabbableNodes(#root) returns [#B, #A].\n //
\n // \n // \n // \n // \n // \n // \n //
\n // TODO(valdrin) support ShadowDOM v1 when upgrading to Polymer v2.0.\n var children;\n if (element.localName === \"content\" || element.localName === \"slot\") {\n children = dom(element).getDistributedNodes();\n } else {\n // /////////////////////////\n // Use shadow root if possible, will check for distributed nodes.\n // THIS IS THE CHANGED LINE\n children = dom(element.shadowRoot || element.root || element).children;\n // /////////////////////////\n }\n for (var i = 0; i < children.length; i++) {\n // Ensure method is always invoked to collect tabbable children.\n needsSort = this._collectTabbableNodes(children[i], result) || needsSort;\n }\n return needsSort;\n },\n};\n"],"mappings":"AAgBA","sourceRoot":""}
\ No newline at end of file
diff --git a/supervisor/api/panel/chunk.3825f21cff675c9ee2ad.js b/supervisor/api/panel/chunk.3825f21cff675c9ee2ad.js
new file mode 100644
index 000000000..3a10e7d0e
--- /dev/null
+++ b/supervisor/api/panel/chunk.3825f21cff675c9ee2ad.js
@@ -0,0 +1,2 @@
+(self.webpackJsonp=self.webpackJsonp||[]).push([[3],{130:function(e,t,r){"use strict";function n(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var r=[],n=!0,o=!1,i=void 0;try{for(var a,c=e[Symbol.iterator]();!(n=(a=c.next()).done)&&(r.push(a.value),!t||r.length!==t);n=!0);}catch(s){o=!0,i=s}finally{try{n||null==c.return||c.return()}finally{if(o)throw i}}return r}(e,t)||s(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t,r){return(i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(e){return!1}}()?Reflect.construct:function(e,t,r){var n=[null];n.push.apply(n,t);var o=new(Function.bind.apply(e,n));return r&&a(o,r.prototype),o}).apply(null,arguments)}function a(e,t){return(a=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function c(e){return function(e){if(Array.isArray(e))return u(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||s(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function s(e,t){if(e){if("string"==typeof e)return u(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(r):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?u(e,t):void 0}}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r1&&void 0!==arguments[1]?arguments[1]:self;r.addEventListener("message",function a(s){if(s&&s.data){var u,l=Object.assign({path:[]},s.data),p=l.id,d=l.type,m=l.path,y=(s.data.argumentList||[]).map(S);try{var b=m.slice(0,-1).reduce(function(e,t){return e[t]},t),g=m.reduce(function(e,t){return e[t]},t);switch(d){case 0:u=g;break;case 1:b[m.slice(-1)[0]]=S(s.data.value),u=!0;break;case 2:u=g.apply(b,y);break;case 3:var w=i(g,c(y));u=function(e){return Object.assign(e,o({},f,!0))}(w);break;case 4:var j=new MessageChannel,O=j.port1,x=j.port2;e(t,x),u=function(e,t){return k.set(e,t),e}(O,[O]);break;case 5:u=void 0}}catch(w){u=o({value:w},h,0)}Promise.resolve(u).catch(function(e){return o({value:e},h,0)}).then(function(e){var t=E(e),o=n(t,2),i=o[0],c=o[1];r.postMessage(Object.assign(Object.assign({},i),{id:p}),c),5===d&&(r.removeEventListener("message",a),v(r))})}});r.start&&r.start()}(e,r),[a,[a]]},deserialize:function(e){return e.start(),b(e)}}],["throw",{canHandle:function(e){return m(e)&&h in e},serialize:function(e){var t=e.value;return[t instanceof Error?{isError:!0,value:{message:t.message,name:t.name,stack:t.stack}}:{isError:!1,value:t},[]]},deserialize:function(e){if(e.isError)throw Object.assign(new Error(e.value.message),e.value);throw e.value}}]]);function v(e){(function(e){return"MessagePort"===e.constructor.name})(e)&&e.close()}function b(e,t){return function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){};var i=!1;var a=new Proxy(o,{get:function(n,o){if(g(i),o===d)return function(){return j(t,{type:5,path:r.map(function(e){return e.toString()})}).then(function(){v(t),i=!0})};if("then"===o){if(0===r.length)return{then:function(){return a}};var s=j(t,{type:0,path:r.map(function(e){return e.toString()})}).then(S);return s.then.bind(s)}return e(t,[].concat(c(r),[o]))},set:function(e,o,a){g(i);var s=E(a),u=n(s,2),l=u[0],f=u[1];return j(t,{type:1,path:[].concat(c(r),[o]).map(function(e){return e.toString()}),value:l},f).then(S)},apply:function(o,a,c){g(i);var s=r[r.length-1];if(s===p)return j(t,{type:4}).then(S);if("bind"===s)return e(t,r.slice(0,-1));var u=w(c),l=n(u,2),f=l[0],d=l[1];return j(t,{type:2,path:r.map(function(e){return e.toString()}),argumentList:f},d).then(S)},construct:function(e,o){g(i);var a=w(o),c=n(a,2),s=c[0],u=c[1];return j(t,{type:3,path:r.map(function(e){return e.toString()}),argumentList:s},u).then(S)}});return a}(e,[],t)}function g(e){if(e)throw new Error("Proxy has been released and is not useable")}function w(e){var t,r=e.map(E);return[r.map(function(e){return e[0]}),(t=r.map(function(e){return e[1]}),Array.prototype.concat.apply([],t))]}var k=new WeakMap;function E(e){var t,r=function(e){if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(e=s(e))){var t=0,r=function(){};return{s:r,n:function(){return t>=e.length?{done:!0}:{done:!1,value:e[t++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var n,o,i=!0,a=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return i=e.done,e},e:function(e){a=!0,o=e},f:function(){try{i||null==n.return||n.return()}finally{if(a)throw o}}}}(y);try{for(r.s();!(t=r.n()).done;){var o=n(t.value,2),i=o[0],a=o[1];if(a.canHandle(e)){var c=n(a.serialize(e),2);return[{type:3,name:i,value:c[0]},c[1]]}}}catch(u){r.e(u)}finally{r.f()}return[{type:0,value:e},k.get(e)||[]]}function S(e){switch(e.type){case 3:return y.get(e.name).deserialize(e.value);case 0:return e.value}}function j(e,t,r){return new Promise(function(n){var o=new Array(4).fill(0).map(function(){return Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16)}).join("-");e.addEventListener("message",function t(r){r.data&&r.data.id&&r.data.id===o&&(e.removeEventListener("message",t),n(r.data))}),e.start&&e.start(),e.postMessage(Object.assign({id:o},t),r)})}},185:function(e,t,r){"use strict";r.r(t);var n=r(4),o=r(88),i=(r(96),r(10)),a=r(13);function c(e){return(c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(){var e=f(['\n ha-paper-dialog {\n min-width: 350px;\n font-size: 14px;\n border-radius: 2px;\n }\n app-toolbar {\n margin: 0;\n padding: 0 16px;\n color: var(--primary-text-color);\n background-color: var(--secondary-background-color);\n }\n app-toolbar [main-title] {\n margin-left: 16px;\n }\n paper-checkbox {\n display: block;\n margin: 4px;\n }\n @media all and (max-width: 450px), all and (max-height: 500px) {\n ha-paper-dialog {\n max-height: 100%;\n }\n ha-paper-dialog::before {\n content: "";\n position: fixed;\n z-index: -1;\n top: 0px;\n left: 0px;\n right: 0px;\n bottom: 0px;\n background-color: inherit;\n }\n app-toolbar {\n color: var(--text-primary-color);\n background-color: var(--primary-color);\n }\n ha-markdown {\n padding: 16px;\n }\n }\n ']);return s=function(){return e},e}function u(){var e=f(["\n \n \n \n "]);return u=function(){return e},e}function l(){var e=f([""]);return l=function(){return e},e}function f(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function p(e,t){return(p=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function d(e){return function(){var t,r=m(e);if(function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(e){return!1}}()){var n=m(this).constructor;t=Reflect.construct(r,arguments,n)}else t=r.apply(this,arguments);return function(e,t){if(t&&("object"===c(t)||"function"==typeof t))return t;return h(e)}(this,t)}}function h(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function m(e){return(m=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function y(e){var t,r=k(e.key);"method"===e.kind?t={value:e.value,writable:!0,configurable:!0,enumerable:!1}:"get"===e.kind?t={get:e.value,configurable:!0,enumerable:!1}:"set"===e.kind?t={set:e.value,configurable:!0,enumerable:!1}:"field"===e.kind&&(t={configurable:!0,writable:!0,enumerable:!0});var n={kind:"field"===e.kind?"field":"method",key:r,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:t};return e.decorators&&(n.decorators=e.decorators),"field"===e.kind&&(n.initializer=e.value),n}function v(e,t){void 0!==e.descriptor.get?t.descriptor.get=e.descriptor.get:t.descriptor.set=e.descriptor.set}function b(e){return e.decorators&&e.decorators.length}function g(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function w(e,t){var r=e[t];if(void 0!==r&&"function"!=typeof r)throw new TypeError("Expected '"+t+"' to be a function");return r}function k(e){var t=function(e,t){if("object"!==c(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==c(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===c(t)?t:String(t)}function E(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0;i--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var c=this.fromElementDescriptor(e),s=this.toElementFinisherExtras((0,o[i])(c)||c);e=s.element,this.addElementPlacement(e,t),s.finisher&&n.push(s.finisher);var u=s.extras;if(u){for(var l=0;l=0;n--){var o=this.fromClassDescriptor(e),i=this.toClassDescriptor((0,t[n])(o)||o);if(void 0!==i.finisher&&r.push(i.finisher),void 0!==i.elements){e=i.elements;for(var a=0;a>`.\n *\n * This is the inverse of `Unpromisify`.\n */\ntype Promisify = T extends Promise ? T : Promise;\n/**\n * Takes a type that may be Promise and unwraps the Promise type.\n * If `P` is not a Promise, it returns `P`.\n *\n * This is the inverse of `Promisify`.\n */\ntype Unpromisify
= P extends Promise ? T : P;\n\n/**\n * Takes the raw type of a remote property and returns the type that is visible to the local thread on the proxy.\n *\n * Note: This needs to be its own type alias, otherwise it will not distribute over unions.\n * See https://www.typescriptlang.org/docs/handbook/advanced-types.html#distributive-conditional-types\n */\ntype RemoteProperty =\n // If the value is a method, comlink will proxy it automatically.\n // Objects are only proxied if they are marked to be proxied.\n // Otherwise, the property is converted to a Promise that resolves the cloned value.\n T extends Function | ProxyMarked ? Remote : Promisify;\n\n/**\n * Takes the raw type of a property as a remote thread would see it through a proxy (e.g. when passed in as a function\n * argument) and returns the type that the local thread has to supply.\n *\n * This is the inverse of `RemoteProperty`.\n *\n * Note: This needs to be its own type alias, otherwise it will not distribute over unions. See\n * https://www.typescriptlang.org/docs/handbook/advanced-types.html#distributive-conditional-types\n */\ntype LocalProperty = T extends Function | ProxyMarked\n ? Local\n : Unpromisify;\n\n/**\n * Proxies `T` if it is a `ProxyMarked`, clones it otherwise (as handled by structured cloning and transfer handlers).\n */\nexport type ProxyOrClone = T extends ProxyMarked ? Remote : T;\n/**\n * Inverse of `ProxyOrClone`.\n */\nexport type UnproxyOrClone = T extends RemoteObject\n ? Local\n : T;\n\n/**\n * Takes the raw type of a remote object in the other thread and returns the type as it is visible to the local thread\n * when proxied with `Comlink.proxy()`.\n *\n * This does not handle call signatures, which is handled by the more general `Remote` type.\n *\n * @template T The raw type of a remote object as seen in the other thread.\n */\nexport type RemoteObject = { [P in keyof T]: RemoteProperty };\n/**\n * Takes the type of an object as a remote thread would see it through a proxy (e.g. when passed in as a function\n * argument) and returns the type that the local thread has to supply.\n *\n * This does not handle call signatures, which is handled by the more general `Local` type.\n *\n * This is the inverse of `RemoteObject`.\n *\n * @template T The type of a proxied object.\n */\nexport type LocalObject = { [P in keyof T]: LocalProperty };\n\n/**\n * Additional special comlink methods available on each proxy returned by `Comlink.wrap()`.\n */\nexport interface ProxyMethods {\n [createEndpoint]: () => Promise;\n [releaseProxy]: () => void;\n}\n\n/**\n * Takes the raw type of a remote object, function or class in the other thread and returns the type as it is visible to\n * the local thread from the proxy return value of `Comlink.wrap()` or `Comlink.proxy()`.\n */\nexport type Remote =\n // Handle properties\n RemoteObject &\n // Handle call signature (if present)\n (T extends (...args: infer TArguments) => infer TReturn\n ? (\n ...args: { [I in keyof TArguments]: UnproxyOrClone }\n ) => Promisify>>\n : unknown) &\n // Handle construct signature (if present)\n // The return of construct signatures is always proxied (whether marked or not)\n (T extends { new (...args: infer TArguments): infer TInstance }\n ? {\n new (\n ...args: {\n [I in keyof TArguments]: UnproxyOrClone;\n }\n ): Promisify>;\n }\n : unknown) &\n // Include additional special comlink methods available on the proxy.\n ProxyMethods;\n\n/**\n * Expresses that a type can be either a sync or async.\n */\ntype MaybePromise = Promise | T;\n\n/**\n * Takes the raw type of a remote object, function or class as a remote thread would see it through a proxy (e.g. when\n * passed in as a function argument) and returns the type the local thread has to supply.\n *\n * This is the inverse of `Remote`. It takes a `Remote` and returns its original input `T`.\n */\nexport type Local =\n // Omit the special proxy methods (they don't need to be supplied, comlink adds them)\n Omit, keyof ProxyMethods> &\n // Handle call signatures (if present)\n (T extends (...args: infer TArguments) => infer TReturn\n ? (\n ...args: { [I in keyof TArguments]: ProxyOrClone }\n ) => // The raw function could either be sync or async, but is always proxied automatically\n MaybePromise>>\n : unknown) &\n // Handle construct signature (if present)\n // The return of construct signatures is always proxied (whether marked or not)\n (T extends { new (...args: infer TArguments): infer TInstance }\n ? {\n new (\n ...args: {\n [I in keyof TArguments]: ProxyOrClone;\n }\n ): // The raw constructor could either be sync or async, but is always proxied automatically\n MaybePromise>>;\n }\n : unknown);\n\nconst isObject = (val: unknown): val is object =>\n (typeof val === \"object\" && val !== null) || typeof val === \"function\";\n\n/**\n * Customizes the serialization of certain values as determined by `canHandle()`.\n *\n * @template T The input type being handled by this transfer handler.\n * @template S The serialized type sent over the wire.\n */\nexport interface TransferHandler {\n /**\n * Gets called for every value to determine whether this transfer handler\n * should serialize the value, which includes checking that it is of the right\n * type (but can perform checks beyond that as well).\n */\n canHandle(value: unknown): value is T;\n\n /**\n * Gets called with the value if `canHandle()` returned `true` to produce a\n * value that can be sent in a message, consisting of structured-cloneable\n * values and/or transferrable objects.\n */\n serialize(value: T): [S, Transferable[]];\n\n /**\n * Gets called to deserialize an incoming value that was serialized in the\n * other thread with this transfer handler (known through the name it was\n * registered under).\n */\n deserialize(value: S): T;\n}\n\n/**\n * Internal transfer handle to handle objects marked to proxy.\n */\nconst proxyTransferHandler: TransferHandler
"+g(u.message+"",!0)+"
";throw u}}x.exec=x,A.options=A.setOptions=function(e){return k(A.defaults,e),A},A.getDefaults=function(){return{baseUrl:null,breaks:!1,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:new c,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tables:!0,xhtml:!1}},A.defaults=A.getDefaults(),A.Parser=f,A.parser=f.parse,A.Renderer=c,A.TextRenderer=p,A.Lexer=a,A.lexer=a.lex,A.InlineLexer=u,A.inlineLexer=u.output,A.Slugger=h,A.parse=A,"object"===o(t)?e.exports=A:void 0===(i=function(){return A}.call(t,n,t,e))||(e.exports=i)}(this||"undefined"!=typeof window&&window)}).call(this,n(3))},function(e,t,n){"use strict";(function(e,t){var r;(r=void 0!==e&&"[object process]"==={}.toString.call(e)||"undefined"!=typeof navigator&&"ReactNative"===navigator.product?t:self).Proxy||(r.Proxy=n(11)(),r.Proxy.revocable=r.Proxy.revocable)}).call(this,n(10),n(3))},function(e,t){var n,r,i=e.exports={};function o(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function a(e){if(n===setTimeout)return setTimeout(e,0);if((n===o||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:o}catch(e){n=o}try{r="function"==typeof clearTimeout?clearTimeout:s}catch(e){r=s}}();var l,u=[],c=!1,p=-1;function f(){c&&l&&(c=!1,l.length?u=l.concat(u):p=-1,u.length&&h())}function h(){if(!c){var e=a(f);c=!0;for(var t=u.length;t;){for(l=u,u=[];++p1)for(var n=1;n";var y=function(e){var t=l.spaceIndex(e);if(-1===t)return{html:"",closing:"/"===e[e.length-2]};var n="/"===(e=l.trim(e.slice(t+1,-1)))[e.length-1];return n&&(e=l.trim(e.slice(0,-1))),{html:e,closing:n}}(s),v=n[i],x=a(y.html,function(e,t){var n,r=-1!==l.indexOf(v,e);return u(n=c(i,e,t,r))?r?(t=f(i,e,t,g))?e+'="'+t+'"':e:u(n=p(i,e,t,r))?void 0:n:n});s="<"+i;return x&&(s+=" "+x),y.closing&&(s+=" /"),s+=">"}return u(m=o(i,s,b))?h(s):m},h);return d&&(m=d.remove(m)),m},e.exports=c},function(e,t,n){"use strict";n.r(t);n(9);function r(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,i=!1,o=void 0;try{for(var s,a=e[Symbol.iterator]();!(r=(s=a.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(l){i=!0,o=l}finally{try{r||null==a.return||a.return()}finally{if(i)throw o}}return n}(e,t)||l(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t,n){return(o=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(e){return!1}}()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var i=new(Function.bind.apply(e,r));return n&&s(i,n.prototype),i}).apply(null,arguments)}function s(e,t){return(s=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function a(e){return function(e){if(Array.isArray(e))return u(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||l(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,t){if(e){if("string"==typeof e)return u(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(n):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?u(e,t):void 0}}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n1&&void 0!==arguments[1]?arguments[1]:[],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},o=!1,s=new Proxy(i,{get:function(r,i){if(v(o),i===h)return function(){return _(t,{type:5,path:n.map(function(e){return e.toString()})}).then(function(){y(t),o=!0})};if("then"===i){if(0===n.length)return{then:function(){return s}};var l=_(t,{type:0,path:n.map(function(e){return e.toString()})}).then(S);return l.then.bind(l)}return e(t,[].concat(a(n),[i]))},set:function(e,i,s){v(o);var l=w(s),u=r(l,2),c=u[0],p=u[1];return _(t,{type:1,path:[].concat(a(n),[i]).map(function(e){return e.toString()}),value:c},p).then(S)},apply:function(i,s,a){v(o);var l=n[n.length-1];if(l===f)return _(t,{type:4}).then(S);if("bind"===l)return e(t,n.slice(0,-1));var u=x(a),c=r(u,2),p=c[0],h=c[1];return _(t,{type:2,path:n.map(function(e){return e.toString()}),argumentList:p},h).then(S)},construct:function(e,i){v(o);var s=x(i),a=r(s,2),l=a[0],u=a[1];return _(t,{type:3,path:n.map(function(e){return e.toString()}),argumentList:l},u).then(S)}});return s}(e,[],t);var t}}],["throw",{canHandle:function(e){return d(e)&&g in e},serialize:function(e){var t=e.value;return[t instanceof Error?{isError:!0,value:{message:t.message,name:t.name,stack:t.stack}}:{isError:!1,value:t},[]]},deserialize:function(e){if(e.isError)throw Object.assign(new Error(e.value.message),e.value);throw e.value}}]]);function b(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:self;t.addEventListener("message",function n(s){if(s&&s.data){var l,u=Object.assign({path:[]},s.data),c=u.id,f=u.type,h=u.path,d=(s.data.argumentList||[]).map(S);try{var m=h.slice(0,-1).reduce(function(e,t){return e[t]},e),v=h.reduce(function(e,t){return e[t]},e);switch(f){case 0:l=v;break;case 1:m[h.slice(-1)[0]]=S(s.data.value),l=!0;break;case 2:l=v.apply(m,d);break;case 3:var x;l=function(e){return Object.assign(e,i({},p,!0))}(o(v,a(d)));break;case 4:var _=new MessageChannel,A=_.port1,T=_.port2;b(e,T),l=function(e,t){return k.set(e,t),e}(A,[A]);break;case 5:l=void 0}}catch(x){l=i({value:x},g,0)}Promise.resolve(l).catch(function(e){return i({value:e},g,0)}).then(function(e){var i=r(w(e),2),o=i[0],s=i[1];t.postMessage(Object.assign(Object.assign({},o),{id:c}),s),5===f&&(t.removeEventListener("message",n),y(t))})}}),t.start&&t.start()}function y(e){(function(e){return"MessagePort"===e.constructor.name})(e)&&e.close()}function v(e){if(e)throw new Error("Proxy has been released and is not useable")}function x(e){var t,n=e.map(w);return[n.map(function(e){return e[0]}),(t=n.map(function(e){return e[1]}),Array.prototype.concat.apply([],t))]}var k=new WeakMap;function w(e){var t,n=function(e){if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(e=l(e))){var t=0,n=function(){};return{s:n,n:function(){return t>=e.length?{done:!0}:{done:!1,value:e[t++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var r,i,o=!0,s=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,i=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw i}}}}(m);try{for(n.s();!(t=n.n()).done;){var i=r(t.value,2),o=i[0],s=i[1];if(s.canHandle(e)){var a=r(s.serialize(e),2);return[{type:3,name:o,value:a[0]},a[1]]}}}catch(u){n.e(u)}finally{n.f()}return[{type:0,value:e},k.get(e)||[]]}function S(e){switch(e.type){case 3:return m.get(e.name).deserialize(e.value);case 0:return e.value}}function _(e,t,n){return new Promise(function(r){var i=new Array(4).fill(0).map(function(){return Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16)}).join("-");e.addEventListener("message",function t(n){n.data&&n.data.id&&n.data.id===i&&(e.removeEventListener("message",t),r(n.data))}),e.start&&e.start(),e.postMessage(Object.assign({id:i},t),n)})}var A,T,$=n(8),O=n.n($),j=n(2),z=n.n(j);n.d(t,"api",function(){return L});var L={renderMarkdown:function(e,t){var n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return A||(A=Object.assign({},z.a.whiteList,{"ha-icon":["icon"],"ha-svg-icon":["path"]})),r.allowSvg?(T||(T=Object.assign({},A,{svg:["xmlns","height","width"],path:["transform","stroke","d"],img:["src"]})),n=T):n=A,z()(O()(e,t),{whiteList:n})}};b(L)}]);
+//# sourceMappingURL=chunk.3da0764ff5ed49302c8a.worker.js.map
\ No newline at end of file
diff --git a/supervisor/api/panel/chunk.3da0764ff5ed49302c8a.worker.js.gz b/supervisor/api/panel/chunk.3da0764ff5ed49302c8a.worker.js.gz
new file mode 100644
index 000000000..6bf15d2b7
Binary files /dev/null and b/supervisor/api/panel/chunk.3da0764ff5ed49302c8a.worker.js.gz differ
diff --git a/supervisor/api/panel/chunk.3da0764ff5ed49302c8a.worker.js.map b/supervisor/api/panel/chunk.3da0764ff5ed49302c8a.worker.js.map
new file mode 100644
index 000000000..1504af678
--- /dev/null
+++ b/supervisor/api/panel/chunk.3da0764ff5ed49302c8a.worker.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"chunk.3da0764ff5ed49302c8a.worker.js","sources":["webpack:///webpack/bootstrap"],"sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/api/hassio/app/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 15);\n"],"mappings":"AACA","sourceRoot":""}
\ No newline at end of file
diff --git a/supervisor/api/panel/chunk.4223bae6cb28b94d3bb4.js b/supervisor/api/panel/chunk.4223bae6cb28b94d3bb4.js
new file mode 100644
index 000000000..8db2b5162
--- /dev/null
+++ b/supervisor/api/panel/chunk.4223bae6cb28b94d3bb4.js
@@ -0,0 +1,2 @@
+(self.webpackJsonp=self.webpackJsonp||[]).push([[4],{198:function(e,t,n){"use strict";n.r(t);n(16);var r=n(15),o=(n(43),n(4)),i=n(88);n(22);"".concat(location.protocol,"//").concat(location.host);var s=n(122),a=n(10);function c(e){return(c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function l(){var e=g(["\n paper-checkbox {\n display: block;\n margin: 4px;\n }\n .details {\n color: var(--secondary-text-color);\n }\n .warning,\n .error {\n color: var(--google-red-500);\n }\n .buttons {\n display: flex;\n flex-direction: column;\n }\n .buttons li {\n list-style-type: none;\n }\n .buttons .icon {\n margin-right: 16px;\n }\n .no-margin-top {\n margin-top: 0;\n }\n "]);return l=function(){return e},e}function u(){var e=g(["\n \n \n Wipe & restore\n \n ']);return u=function(){return e},e}function d(){var e=g(['
\n \n Home Assistant ',"\n \n ","\n ","\n ","\n ","\n\n
Actions:
\n\n \n \n Download Snapshot\n \n\n \n \n Restore Selected\n \n ',"\n \n \n Delete Snapshot\n \n \n ']);return y=function(){return e},e}function k(){var e=g([""]);return k=function(){return e},e}function g(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function b(e,t,n,r,o,i,s){try{var a=e[i](s),c=a.value}catch(l){return void n(l)}a.done?t(c):Promise.resolve(c).then(r,o)}function w(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var i=e.apply(t,n);function s(e){b(i,r,o,s,a,"next",e)}function a(e){b(i,r,o,s,a,"throw",e)}s(void 0)})}}function _(e,t){return(_=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function E(e){return function(){var t,n=P(e);if(function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(e){return!1}}()){var r=P(this).constructor;t=Reflect.construct(n,arguments,r)}else t=n.apply(this,arguments);return function(e,t){if(t&&("object"===c(t)||"function"==typeof t))return t;return O(e)}(this,t)}}function O(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function P(e){return(P=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function j(e){var t,n=C(e.key);"method"===e.kind?t={value:e.value,writable:!0,configurable:!0,enumerable:!1}:"get"===e.kind?t={get:e.value,configurable:!0,enumerable:!1}:"set"===e.kind?t={set:e.value,configurable:!0,enumerable:!1}:"field"===e.kind&&(t={configurable:!0,writable:!0,enumerable:!0});var r={kind:"field"===e.kind?"field":"method",key:n,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:t};return e.decorators&&(r.decorators=e.decorators),"field"===e.kind&&(r.initializer=e.value),r}function A(e,t){void 0!==e.descriptor.get?t.descriptor.get=e.descriptor.get:t.descriptor.set=e.descriptor.set}function S(e){return e.decorators&&e.decorators.length}function D(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function x(e,t){var n=e[t];if(void 0!==n&&"function"!=typeof n)throw new TypeError("Expected '"+t+"' to be a function");return n}function C(e){var t=function(e,t){if("object"!==c(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==c(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===c(t)?t:String(t)}function T(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0;i--){var s=t[e.placement];s.splice(s.indexOf(e.key),1);var a=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,o[i])(a)||a);e=c.element,this.addElementPlacement(e,t),c.finisher&&r.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;r--){var o=this.fromClassDescriptor(e),i=this.toClassDescriptor((0,t[r])(o)||o);if(void 0!==i.finisher&&n.push(i.finisher),void 0!==i.elements){e=i.elements;for(var s=0;st.name?1:-1}),this._addons=(n=this._snapshot.addons,n.map(function(e){return{slug:e.slug,name:e.name,version:e.version,checked:!0}})).sort(function(e,t){return e.name>t.name?1:-1}),this._dialogParams=t;case 6:case"end":return e.stop()}var n,r,o},e,this)}));return function(t){return e.apply(this,arguments)}}()},{kind:"method",key:"render",value:function(){var e=this;return this._dialogParams&&this._snapshot?Object(o.f)(y(),this._closeDialog,Object(i.a)(this.hass,this._computeName),"full"===this._snapshot.type?"Full snapshot":"Partial snapshot",this._computeSize,this._formatDatetime(this._snapshot.date),this._restoreHass,function(t){e._restoreHass=t.target.checked},this._snapshot.homeassistant,this._folders.length?Object(o.f)(v(),this._folders.map(function(t){return Object(o.f)(m(),t.checked,function(n){return e._updateFolders(t,n.target.checked)},t.name)})):"",this._addons.length?Object(o.f)(f(),this._addons.map(function(t){return Object(o.f)(p(),t.checked,function(n){return e._updateAddons(t,n.target.checked)},t.name)})):"",this._snapshot.protected?Object(o.f)(h(),this._passwordInput,this._snapshotPassword):"",this._error?Object(o.f)(d(),this._error):"",this._downloadClicked,r.n,this._partialRestoreClicked,r.s,"full"===this._snapshot.type?Object(o.f)(u(),this._fullRestoreClicked,r.s):"",this._deleteClicked,r.k):Object(o.f)(k())}},{kind:"get",static:!0,key:"styles",value:function(){return[a.c,Object(o.c)(l())]}},{kind:"method",key:"_updateFolders",value:function(e,t){this._folders=this._folders.map(function(n){return n.slug===e.slug&&(n.checked=t),n})}},{kind:"method",key:"_updateAddons",value:function(e,t){this._addons=this._addons.map(function(n){return n.slug===e.slug&&(n.checked=t),n})}},{kind:"method",key:"_passwordInput",value:function(e){this._snapshotPassword=e.detail.value}},{kind:"method",key:"_partialRestoreClicked",value:function(){var e=this;if(confirm("Are you sure you want to restore this snapshot?")){var t=this._addons.filter(function(e){return e.checked}).map(function(e){return e.slug}),n=this._folders.filter(function(e){return e.checked}).map(function(e){return e.slug}),r={homeassistant:this._restoreHass,addons:t,folders:n};this._snapshot.protected&&(r.password=this._snapshotPassword),this.hass.callApi("POST","hassio/snapshots/".concat(this._snapshot.slug,"/restore/partial"),r).then(function(){alert("Snapshot restored!"),e._closeDialog()},function(t){e._error=t.body.message})}}},{kind:"method",key:"_fullRestoreClicked",value:function(){var e=this;if(confirm("Are you sure you want to restore this snapshot?")){var t=this._snapshot.protected?{password:this._snapshotPassword}:void 0;this.hass.callApi("POST","hassio/snapshots/".concat(this._snapshot.slug,"/restore/full"),t).then(function(){alert("Snapshot restored!"),e._closeDialog()},function(t){e._error=t.body.message})}}},{kind:"method",key:"_deleteClicked",value:function(){var e=this;confirm("Are you sure you want to delete this snapshot?")&&this.hass.callApi("POST","hassio/snapshots/".concat(this._snapshot.slug,"/remove")).then(function(){e._dialogParams.onDelete(),e._closeDialog()},function(t){e._error=t.body.message})}},{kind:"method",key:"_downloadClicked",value:function(){var e=w(regeneratorRuntime.mark(function e(){var t,n,r;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,o=this.hass,i="/api/hassio/snapshots/".concat(this._snapshot.slug,"/download"),o.callWS({type:"auth/sign_path",path:i});case 3:t=e.sent,e.next=10;break;case 6:return e.prev=6,e.t0=e.catch(0),alert("Error: ".concat(e.t0.message)),e.abrupt("return");case 10:n=this._computeName.replace(/[^a-z0-9]+/gi,"_"),(r=document.createElement("a")).href=t.path,r.download="Hass_io_".concat(n,".tar"),this.shadowRoot.appendChild(r),r.click(),this.shadowRoot.removeChild(r);case 17:case"end":return e.stop()}var o,i},e,this,[[0,6]])}));return function(){return e.apply(this,arguments)}}()},{kind:"get",key:"_computeName",value:function(){return this._snapshot?this._snapshot.name||this._snapshot.slug:"Unnamed snapshot"}},{kind:"get",key:"_computeSize",value:function(){return Math.ceil(10*this._snapshot.size)/10+" MB"}},{kind:"method",key:"_formatDatetime",value:function(e){return new Date(e).toLocaleDateString(navigator.language,{weekday:"long",year:"numeric",month:"short",day:"numeric",hour:"numeric",minute:"2-digit"})}},{kind:"method",key:"_closeDialog",value:function(){this._dialogParams=void 0,this._snapshot=void 0,this._snapshotPassword="",this._folders=[],this._addons=[]}}]}},o.a)}}]);
+//# sourceMappingURL=chunk.4223bae6cb28b94d3bb4.js.map
\ No newline at end of file
diff --git a/supervisor/api/panel/chunk.4223bae6cb28b94d3bb4.js.gz b/supervisor/api/panel/chunk.4223bae6cb28b94d3bb4.js.gz
new file mode 100644
index 000000000..5413eddfc
Binary files /dev/null and b/supervisor/api/panel/chunk.4223bae6cb28b94d3bb4.js.gz differ
diff --git a/supervisor/api/panel/chunk.4223bae6cb28b94d3bb4.js.map b/supervisor/api/panel/chunk.4223bae6cb28b94d3bb4.js.map
new file mode 100644
index 000000000..6554a2357
--- /dev/null
+++ b/supervisor/api/panel/chunk.4223bae6cb28b94d3bb4.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"chunk.4223bae6cb28b94d3bb4.js","sources":["webpack:///./src/data/auth.ts"],"sourcesContent":["import { HomeAssistant } from \"../types\";\n\nexport interface AuthProvider {\n name: string;\n id: string;\n type: string;\n}\n\nexport interface Credential {\n type: string;\n}\n\nexport interface SignedPath {\n path: string;\n}\n\nexport const hassUrl = `${location.protocol}//${location.host}`;\n\nexport const getSignedPath = (\n hass: HomeAssistant,\n path: string\n): Promise => hass.callWS({ type: \"auth/sign_path\", path });\n\nexport const fetchAuthProviders = () =>\n fetch(\"/auth/providers\", {\n credentials: \"same-origin\",\n });\n\nexport const createAuthForUser = async (\n hass: HomeAssistant,\n userId: string,\n username: string,\n password: string\n) =>\n hass.callWS({\n type: \"config/auth_provider/homeassistant/create\",\n user_id: userId,\n username,\n password,\n });\n"],"mappings":"AAgBA","sourceRoot":""}
\ No newline at end of file
diff --git a/supervisor/api/panel/chunk.473a297b6ad67535a13a.js b/supervisor/api/panel/chunk.473a297b6ad67535a13a.js
new file mode 100644
index 000000000..9ed452778
--- /dev/null
+++ b/supervisor/api/panel/chunk.473a297b6ad67535a13a.js
@@ -0,0 +1,3 @@
+/*! For license information please see chunk.473a297b6ad67535a13a.js.LICENSE */
+(self.webpackJsonp=self.webpackJsonp||[]).push([[12],[,,,,,,,,,,,,,,function(t,e,n){"use strict";var i=n(51),r=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],o=["scalar","sequence","mapping"];t.exports=function(t,e){var n,a;if(e=e||{},Object.keys(e).forEach(function(e){if(-1===r.indexOf(e))throw new i('Unknown option "'+e+'" is met in definition of "'+t+'" YAML type.')}),this.tag=t,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(t){return t},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.defaultStyle=e.defaultStyle||null,this.styleAliases=(n=e.styleAliases||null,a={},null!==n&&Object.keys(n).forEach(function(t){n[t].forEach(function(e){a[String(e)]=t})}),a),-1===o.indexOf(this.kind))throw new i('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')}},,,,,,,,,,,,,,,,,,,,,,,,,,,function(t,e,n){"use strict";function i(t){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function r(t){return null==t}t.exports.isNothing=r,t.exports.isObject=function(t){return"object"===i(t)&&null!==t},t.exports.toArray=function(t){return Array.isArray(t)?t:r(t)?[]:[t]},t.exports.repeat=function(t,e){var n,i="";for(n=0;n\n \n
\n
\n \n
\n
\n
']);return _=function(){return t},t}function w(t,e){for(var n=0;nt.length)&&(e=t.length);for(var n=0,i=new Array(e);n1&&void 0!==arguments[1]?arguments[1]:self;n.addEventListener("message",function a(u){if(u&&u.data){var c,l=Object.assign({path:[]},u.data),h=l.id,p=l.type,m=l.path,g=(u.data.argumentList||[]).map(A);try{var b=m.slice(0,-1).reduce(function(t,e){return t[e]},e),v=m.reduce(function(t,e){return t[e]},e);switch(p){case 0:c=v;break;case 1:b[m.slice(-1)[0]]=A(u.data.value),c=!0;break;case 2:c=v.apply(b,g);break;case 3:var _=o(v,s(g));c=function(t){return Object.assign(t,r({},f,!0))}(_);break;case 4:var E=new MessageChannel,T=E.port1,k=E.port2;t(e,k),c=function(t,e){return w.set(t,e),t}(T,[T]);break;case 5:c=void 0}}catch(_){c=r({value:_},d,0)}Promise.resolve(c).catch(function(t){return r({value:t},d,0)}).then(function(t){var e=x(t),r=i(e,2),o=r[0],s=r[1];n.postMessage(Object.assign(Object.assign({},o),{id:h}),s),5===p&&(n.removeEventListener("message",a),y(n))})}});n.start&&n.start()}(t,n),[a,[a]]},deserialize:function(t){return t.start(),b(t)}}],["throw",{canHandle:function(t){return m(t)&&d in t},serialize:function(t){var e=t.value;return[e instanceof Error?{isError:!0,value:{message:e.message,name:e.name,stack:e.stack}}:{isError:!1,value:e},[]]},deserialize:function(t){if(t.isError)throw Object.assign(new Error(t.value.message),t.value);throw t.value}}]]);function y(t){(function(t){return"MessagePort"===t.constructor.name})(t)&&t.close()}function b(t,e){return function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){};var o=!1;var a=new Proxy(r,{get:function(i,r){if(v(o),r===p)return function(){return E(e,{type:5,path:n.map(function(t){return t.toString()})}).then(function(){y(e),o=!0})};if("then"===r){if(0===n.length)return{then:function(){return a}};var u=E(e,{type:0,path:n.map(function(t){return t.toString()})}).then(A);return u.then.bind(u)}return t(e,[].concat(s(n),[r]))},set:function(t,r,a){v(o);var u=x(a),c=i(u,2),l=c[0],f=c[1];return E(e,{type:1,path:[].concat(s(n),[r]).map(function(t){return t.toString()}),value:l},f).then(A)},apply:function(r,a,s){v(o);var u=n[n.length-1];if(u===h)return E(e,{type:4}).then(A);if("bind"===u)return t(e,n.slice(0,-1));var c=_(s),l=i(c,2),f=l[0],p=l[1];return E(e,{type:2,path:n.map(function(t){return t.toString()}),argumentList:f},p).then(A)},construct:function(t,r){v(o);var a=_(r),s=i(a,2),u=s[0],c=s[1];return E(e,{type:3,path:n.map(function(t){return t.toString()}),argumentList:u},c).then(A)}});return a}(t,[],e)}function v(t){if(t)throw new Error("Proxy has been released and is not useable")}function _(t){var e,n=t.map(x);return[n.map(function(t){return t[0]}),(e=n.map(function(t){return t[1]}),Array.prototype.concat.apply([],e))]}var w=new WeakMap;function x(t){var e,n=function(t){if("undefined"==typeof Symbol||null==t[Symbol.iterator]){if(Array.isArray(t)||(t=u(t))){var e=0,n=function(){};return{s:n,n:function(){return e>=t.length?{done:!0}:{done:!1,value:t[e++]}},e:function(t){throw t},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,r,o=!0,a=!1;return{s:function(){i=t[Symbol.iterator]()},n:function(){var t=i.next();return o=t.done,t},e:function(t){a=!0,r=t},f:function(){try{o||null==i.return||i.return()}finally{if(a)throw r}}}}(g);try{for(n.s();!(e=n.n()).done;){var r=i(e.value,2),o=r[0],a=r[1];if(a.canHandle(t)){var s=i(a.serialize(t),2);return[{type:3,name:o,value:s[0]},s[1]]}}}catch(c){n.e(c)}finally{n.f()}return[{type:0,value:t},w.get(t)||[]]}function A(t){switch(t.type){case 3:return g.get(t.name).deserialize(t.value);case 0:return t.value}}function E(t,e,n){return new Promise(function(i){var r=new Array(4).fill(0).map(function(){return Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16)}).join("-");t.addEventListener("message",function e(n){n.data&&n.data.id&&n.data.id===r&&(t.removeEventListener("message",e),i(n.data))}),t.start&&t.start(),t.postMessage(Object.assign({id:r},e),n)})}},,,,,,,,,,,,,,,,,,,,,,,function(t,e){var n,i,r;i={},r={},function(t,e){function n(){this._delay=0,this._endDelay=0,this._fill="none",this._iterationStart=0,this._iterations=1,this._duration=0,this._playbackRate=1,this._direction="normal",this._easing="linear",this._easingFunction=h}function i(){return t.isDeprecated("Invalid timing inputs","2016-03-02","TypeError exceptions will be thrown instead.",!0)}function r(e,i,r){var o=new n;return i&&(o.fill="both",o.duration="auto"),"number"!=typeof e||isNaN(e)?void 0!==e&&Object.getOwnPropertyNames(e).forEach(function(n){if("auto"!=e[n]){if(("number"==typeof o[n]||"duration"==n)&&("number"!=typeof e[n]||isNaN(e[n])))return;if("fill"==n&&-1==l.indexOf(e[n]))return;if("direction"==n&&-1==f.indexOf(e[n]))return;if("playbackRate"==n&&1!==e[n]&&t.isDeprecated("AnimationEffectTiming.playbackRate","2014-11-28","Use Animation.playbackRate instead."))return;o[n]=e[n]}}):o.duration=e,o}function o(t,e,n,i){return t<0||t>1||n<0||n>1?h:function(r){function o(t,e,n){return 3*t*(1-n)*(1-n)*n+3*e*(1-n)*n*n+n*n*n}if(r<=0){var a=0;return t>0?a=e/t:!e&&n>0&&(a=i/n),a*r}if(r>=1){var s=0;return n<1?s=(i-1)/(n-1):1==n&&t<1&&(s=(e-1)/(t-1)),1+s*(r-1)}for(var u=0,c=1;u=1)return 1;var i=1/t;return(n+=e*i)-n%i}}function s(t){y||(y=document.createElement("div").style),y.animationTimingFunction="",y.animationTimingFunction=t;var e=y.animationTimingFunction;if(""==e&&i())throw new TypeError(t+" is not a valid value for easing");return e}function u(t){if("linear"==t)return h;var e=v.exec(t);if(e)return o.apply(this,e.slice(1).map(Number));var n=_.exec(t);if(n)return a(Number(n[1]),m);var i=w.exec(t);return i?a(Number(i[1]),{start:p,middle:d,end:m}[i[2]]):g[t]||h}function c(t,e,n){if(null==e)return x;var i=n.delay+t+n.endDelay;return e=Math.min(n.delay+t,i)?E:T}var l="backwards|forwards|both|none".split("|"),f="reverse|alternate|alternate-reverse".split("|"),h=function(t){return t};n.prototype={_setMember:function(e,n){this["_"+e]=n,this._effect&&(this._effect._timingInput[e]=n,this._effect._timing=t.normalizeTimingInput(this._effect._timingInput),this._effect.activeDuration=t.calculateActiveDuration(this._effect._timing),this._effect._animation&&this._effect._animation._rebuildUnderlyingAnimation())},get playbackRate(){return this._playbackRate},set delay(t){this._setMember("delay",t)},get delay(){return this._delay},set endDelay(t){this._setMember("endDelay",t)},get endDelay(){return this._endDelay},set fill(t){this._setMember("fill",t)},get fill(){return this._fill},set iterationStart(t){if((isNaN(t)||t<0)&&i())throw new TypeError("iterationStart must be a non-negative number, received: "+t);this._setMember("iterationStart",t)},get iterationStart(){return this._iterationStart},set duration(t){if("auto"!=t&&(isNaN(t)||t<0)&&i())throw new TypeError("duration must be non-negative or auto, received: "+t);this._setMember("duration",t)},get duration(){return this._duration},set direction(t){this._setMember("direction",t)},get direction(){return this._direction},set easing(t){this._easingFunction=u(s(t)),this._setMember("easing",t)},get easing(){return this._easing},set iterations(t){if((isNaN(t)||t<0)&&i())throw new TypeError("iterations must be non-negative, received: "+t);this._setMember("iterations",t)},get iterations(){return this._iterations}};var p=1,d=.5,m=0,g={ease:o(.25,.1,.25,1),"ease-in":o(.42,0,1,1),"ease-out":o(0,0,.58,1),"ease-in-out":o(.42,0,.58,1),"step-start":a(1,p),"step-middle":a(1,d),"step-end":a(1,m)},y=null,b="\\s*(-?\\d+\\.?\\d*|-?\\.\\d+)\\s*",v=new RegExp("cubic-bezier\\("+b+","+b+","+b+","+b+"\\)"),_=/steps\(\s*(\d+)\s*\)/,w=/steps\(\s*(\d+)\s*,\s*(start|middle|end)\s*\)/,x=0,A=1,E=2,T=3;t.cloneTimingInput=function(t){if("number"==typeof t)return t;var e={};for(var n in t)e[n]=t[n];return e},t.makeTiming=r,t.numericTimingToObject=function(t){return"number"==typeof t&&(t=isNaN(t)?{duration:0}:{duration:t}),t},t.normalizeTimingInput=function(e,n){return r(e=t.numericTimingToObject(e),n)},t.calculateActiveDuration=function(t){return Math.abs(function(t){return 0===t.duration||0===t.iterations?0:t.duration*t.iterations}(t)/t.playbackRate)},t.calculateIterationProgress=function(t,e,n){var i=c(t,e,n),r=function(t,e,n,i,r){switch(i){case A:return"backwards"==e||"both"==e?0:null;case T:return n-r;case E:return"forwards"==e||"both"==e?t:null;case x:return null}}(t,n.fill,e,i,n.delay);if(null===r)return null;var o=function(t,e,n,i,r){var o=r;return 0===t?e!==A&&(o+=n):o+=i/t,o}(n.duration,i,n.iterations,r,n.iterationStart),a=function(t,e,n,i,r,o){var a=t===1/0?e%1:t%1;return 0!==a||n!==E||0===i||0===r&&0!==o||(a=1),a}(o,n.iterationStart,i,n.iterations,r,n.duration),s=function(t,e,n,i){return t===E&&e===1/0?1/0:1===n?Math.floor(i)-1:Math.floor(i)}(i,n.iterations,a,o),u=function(t,e,n){var i=t;if("normal"!==t&&"reverse"!==t){var r=e;"alternate-reverse"===t&&(r+=1),i="normal",r!==1/0&&r%2!=0&&(i="reverse")}return"normal"===i?n:1-n}(n.direction,s,a);return n._easingFunction(u)},t.calculatePhase=c,t.normalizeEasing=s,t.parseEasingFunction=u}(n={}),function(t,e){function n(t,e){return t in u&&u[t][e]||e}function i(t,e,i){if(!function(t){return"display"===t||0===t.lastIndexOf("animation",0)||0===t.lastIndexOf("transition",0)}(t)){var r=o[t];if(r)for(var s in a.style[t]=e,r){var u=r[s],c=a.style[u];i[u]=n(u,c)}else i[t]=n(t,e)}}function r(t){var e=[];for(var n in t)if(!(n in["easing","offset","composite"])){var i=t[n];Array.isArray(i)||(i=[i]);for(var r,o=i.length,a=0;a1)throw new TypeError("Keyframe offsets must be between 0 and 1.")}}else if("composite"==r){if("add"==o||"accumulate"==o)throw{type:DOMException.NOT_SUPPORTED_ERR,name:"NotSupportedError",message:"add compositing is not supported"};if("replace"!=o)throw new TypeError("Invalid composite mode "+o+".")}else o="easing"==r?t.normalizeEasing(o):""+o;i(r,o,n)}return null==n.offset&&(n.offset=null),null==n.easing&&(n.easing="linear"),n}),o=!0,a=-1/0,s=0;s=0&&t.offset<=1}),o||function(){var t=n.length;null==n[t-1].offset&&(n[t-1].offset=1),t>1&&null==n[0].offset&&(n[0].offset=0);for(var e=0,i=n[0].offset,r=1;r=t.applyFrom&&n0?this._totalDuration:0),this._ensureAlive())},get currentTime(){return this._idle||this._currentTimePending?null:this._currentTime},set currentTime(t){t=+t,isNaN(t)||(e.restart(),this._paused||null==this._startTime||(this._startTime=this._timeline.currentTime-t/this._playbackRate),this._currentTimePending=!1,this._currentTime!=t&&(this._idle&&(this._idle=!1,this._paused=!0),this._tickCurrentTime(t,!0),e.applyDirtiedAnimation(this)))},get startTime(){return this._startTime},set startTime(t){t=+t,isNaN(t)||this._paused||this._idle||(this._startTime=t,this._tickCurrentTime((this._timeline.currentTime-this._startTime)*this.playbackRate),e.applyDirtiedAnimation(this))},get playbackRate(){return this._playbackRate},set playbackRate(t){if(t!=this._playbackRate){var n=this.currentTime;this._playbackRate=t,this._startTime=null,"paused"!=this.playState&&"idle"!=this.playState&&(this._finishedFlag=!1,this._idle=!1,this._ensureAlive(),e.applyDirtiedAnimation(this)),null!=n&&(this.currentTime=n)}},get _isFinished(){return!this._idle&&(this._playbackRate>0&&this._currentTime>=this._totalDuration||this._playbackRate<0&&this._currentTime<=0)},get _totalDuration(){return this._effect._totalDuration},get playState(){return this._idle?"idle":null==this._startTime&&!this._paused&&0!=this.playbackRate||this._currentTimePending?"pending":this._paused?"paused":this._isFinished?"finished":"running"},_rewind:function(){if(this._playbackRate>=0)this._currentTime=0;else{if(!(this._totalDuration<1/0))throw new DOMException("Unable to rewind negative playback rate animation with infinite duration","InvalidStateError");this._currentTime=this._totalDuration}},play:function(){this._paused=!1,(this._isFinished||this._idle)&&(this._rewind(),this._startTime=null),this._finishedFlag=!1,this._idle=!1,this._ensureAlive(),e.applyDirtiedAnimation(this)},pause:function(){this._isFinished||this._paused||this._idle?this._idle&&(this._rewind(),this._idle=!1):this._currentTimePending=!0,this._startTime=null,this._paused=!0},finish:function(){this._idle||(this.currentTime=this._playbackRate>0?this._totalDuration:0,this._startTime=this._totalDuration-this.currentTime,this._currentTimePending=!1,e.applyDirtiedAnimation(this))},cancel:function(){this._inEffect&&(this._inEffect=!1,this._idle=!0,this._paused=!1,this._finishedFlag=!0,this._currentTime=0,this._startTime=null,this._effect._update(null),e.applyDirtiedAnimation(this))},reverse:function(){this.playbackRate*=-1,this.play()},addEventListener:function(t,e){"function"==typeof e&&"finish"==t&&this._finishHandlers.push(e)},removeEventListener:function(t,e){if("finish"==t){var n=this._finishHandlers.indexOf(e);n>=0&&this._finishHandlers.splice(n,1)}},_fireEvents:function(t){if(this._isFinished){if(!this._finishedFlag){var e=new i(this,this._currentTime,t),n=this._finishHandlers.concat(this.onfinish?[this.onfinish]:[]);setTimeout(function(){n.forEach(function(t){t.call(e.target,e)})},0),this._finishedFlag=!0}}else this._finishedFlag=!1},_tick:function(t,e){this._idle||this._paused||(null==this._startTime?e&&(this.startTime=t-this._currentTime/this.playbackRate):this._isFinished||this._tickCurrentTime((t-this._startTime)*this.playbackRate)),e&&(this._currentTimePending=!1,this._fireEvents(t))},get _needsTick(){return this.playState in{pending:1,running:1}||!this._finishedFlag},_targetAnimations:function(){var t=this._effect._target;return t._activeAnimations||(t._activeAnimations=[]),t._activeAnimations},_markTarget:function(){var t=this._targetAnimations();-1===t.indexOf(this)&&t.push(this)},_unmarkTarget:function(){var t=this._targetAnimations(),e=t.indexOf(this);-1!==e&&t.splice(e,1)}}}(n,i),function(t,e,n){function i(t){var e=c;c=[],ti?n%=i:i%=n;return t*e/(n+i)}(i.length,r.length),c=0;c=1?e:"visible"}]},["visibility"])}(i),function(t,e){function n(t){t=t.trim(),o.fillStyle="#000",o.fillStyle=t;var e=o.fillStyle;if(o.fillStyle="#fff",o.fillStyle=t,e==o.fillStyle){o.fillRect(0,0,1,1);var n=o.getImageData(0,0,1,1).data;o.clearRect(0,0,1,1);var i=n[3]/255;return[n[0]*i,n[1]*i,n[2]*i,i]}}function i(e,n){return[e,n,function(e){function n(t){return Math.max(0,Math.min(255,t))}if(e[3])for(var i=0;i<3;i++)e[i]=Math.round(n(e[i]/e[3]));return e[3]=t.numberToString(t.clamp(0,1,e[3])),"rgba("+e.join(",")+")"}]}var r=document.createElementNS("http://www.w3.org/1999/xhtml","canvas");r.width=r.height=1;var o=r.getContext("2d");t.addPropertiesHandler(n,i,["background-color","border-bottom-color","border-left-color","border-right-color","border-top-color","color","fill","flood-color","lighting-color","outline-color","stop-color","stroke","text-decoration-color"]),t.consumeColor=t.consumeParenthesised.bind(null,n),t.mergeColors=i}(i),function(t,e){function n(t){function e(){var e=a.exec(t);o=e?e[0]:void 0}function n(){if("("!==o)return function(){var t=Number(o);return e(),t}();e();var t=r();return")"!==o?NaN:(e(),t)}function i(){for(var t=n();"*"===o||"/"===o;){var i=o;e();var r=n();"*"===i?t*=r:t/=r}return t}function r(){for(var t=i();"+"===o||"-"===o;){var n=o;e();var r=i();"+"===n?t+=r:t-=r}return t}var o,a=/([\+\-\w\.]+|[\(\)\*\/])/g;return e(),r()}function i(t,e){if("0"==(e=e.trim().toLowerCase())&&"px".search(t)>=0)return{px:0};if(/^[^(]*$|^calc/.test(e)){e=e.replace(/calc\(/g,"(");var i={};e=e.replace(t,function(t){return i[t]=null,"U"+t});for(var r="U("+t.source+")",o=e.replace(/[-+]?(\d*\.)?\d+([Ee][-+]?\d+)?/g,"N").replace(new RegExp("N"+r,"g"),"D").replace(/\s[+-]\s/g,"O").replace(/\s/g,""),a=[/N\*(D)/g,/(N|D)[*\/]N/g,/(N|D)O\1/g,/\((N|D)\)/g],s=0;s1?"calc("+n+")":n}]}var a="px|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc",s=i.bind(null,new RegExp(a,"g")),u=i.bind(null,new RegExp(a+"|%","g")),c=i.bind(null,/deg|rad|grad|turn/g);t.parseLength=s,t.parseLengthOrPercent=u,t.consumeLengthOrPercent=t.consumeParenthesised.bind(null,u),t.parseAngle=c,t.mergeDimensions=o;var l=t.consumeParenthesised.bind(null,s),f=t.consumeRepeated.bind(void 0,l,/^/),h=t.consumeRepeated.bind(void 0,f,/^,/);t.consumeSizePairList=h;var p=t.mergeNestedRepeated.bind(void 0,r," "),d=t.mergeNestedRepeated.bind(void 0,p,",");t.mergeNonNegativeSizePair=p,t.addPropertiesHandler(function(t){var e=h(t);if(e&&""==e[1])return e[0]},d,["background-size"]),t.addPropertiesHandler(u,r,["border-bottom-width","border-image-width","border-left-width","border-right-width","border-top-width","flex-basis","font-size","height","line-height","max-height","max-width","outline-width","width"]),t.addPropertiesHandler(u,o,["border-bottom-left-radius","border-bottom-right-radius","border-top-left-radius","border-top-right-radius","bottom","left","letter-spacing","margin-bottom","margin-left","margin-right","margin-top","min-height","min-width","outline-offset","padding-bottom","padding-left","padding-right","padding-top","perspective","right","shape-margin","stroke-dashoffset","text-indent","top","vertical-align","word-spacing"])}(i),function(t,e){function n(e){return t.consumeLengthOrPercent(e)||t.consumeToken(/^auto/,e)}function i(e){var i=t.consumeList([t.ignore(t.consumeToken.bind(null,/^rect/)),t.ignore(t.consumeToken.bind(null,/^\(/)),t.consumeRepeated.bind(null,n,/^,/),t.ignore(t.consumeToken.bind(null,/^\)/))],e);if(i&&4==i[0].length)return i[0]}var r=t.mergeWrappedNestedRepeated.bind(null,function(t){return"rect("+t+")"},function(e,n){return"auto"==e||"auto"==n?[!0,!1,function(i){var r=i?e:n;if("auto"==r)return"auto";var o=t.mergeDimensions(r,r);return o[2](o[0])}]:t.mergeDimensions(e,n)},", ");t.parseBox=i,t.mergeBoxes=r,t.addPropertiesHandler(i,r,["clip"])}(i),function(t,e){function n(t){return function(e){var n=0;return t.map(function(t){return t===c?e[n++]:t})}}function i(t){return t}function r(e){if("none"==(e=e.toLowerCase().trim()))return[];for(var n,i=/\s*(\w+)\(([^)]*)\)/g,r=[],o=0;n=i.exec(e);){if(n.index!=o)return;o=n.index+n[0].length;var a=n[1],s=h[a];if(!s)return;var u=n[2].split(","),c=s[0];if(c.length=0&&this._cancelHandlers.splice(n,1)}else u.call(this,t,e)},o}}}(),function(t){var e=document.documentElement,n=null,i=!1;try{var r="0"==getComputedStyle(e).getPropertyValue("opacity")?"1":"0";(n=e.animate({opacity:[r,r]},{duration:1})).currentTime=0,i=getComputedStyle(e).getPropertyValue("opacity")==r}catch(t){}finally{n&&n.cancel()}if(!i){var o=window.Element.prototype.animate;window.Element.prototype.animate=function(e,n){return window.Symbol&&Symbol.iterator&&Array.prototype.from&&e[Symbol.iterator]&&(e=Array.from(e)),Array.isArray(e)||null===e||(e=t.convertToArrayForm(e)),o.call(this,e,n)}}}(n),function(t,e,n){function i(t){var n=e.timeline;n.currentTime=t,n._discardAnimations(),0==n._animations.length?o=!1:requestAnimationFrame(i)}var r=window.requestAnimationFrame;window.requestAnimationFrame=function(t){return r(function(n){e.timeline._updateAnimationsPromises(),t(n),e.timeline._updateAnimationsPromises()})},e.AnimationTimeline=function(){this._animations=[],this.currentTime=void 0},e.AnimationTimeline.prototype={getAnimations:function(){return this._discardAnimations(),this._animations.slice()},_updateAnimationsPromises:function(){e.animationsWithPromises=e.animationsWithPromises.filter(function(t){return t._updatePromises()})},_discardAnimations:function(){this._updateAnimationsPromises(),this._animations=this._animations.filter(function(t){return"finished"!=t.playState&&"idle"!=t.playState})},_play:function(t){var n=new e.Animation(t,this);return this._animations.push(n),e.restartWebAnimationsNextTick(),n._updatePromises(),n._animation.play(),n._updatePromises(),n},play:function(t){return t&&t.remove(),this._play(t)}};var o=!1;e.restartWebAnimationsNextTick=function(){o||(o=!0,requestAnimationFrame(i))};var a=new e.AnimationTimeline;e.timeline=a;try{Object.defineProperty(window.document,"timeline",{configurable:!0,get:function(){return a}})}catch(t){}try{window.document.timeline=a}catch(t){}}(0,r),function(t,e,n){e.animationsWithPromises=[],e.Animation=function(e,n){if(this.id="",e&&e._id&&(this.id=e._id),this.effect=e,e&&(e._animation=this),!n)throw new Error("Animation with null timeline is not supported");this._timeline=n,this._sequenceNumber=t.sequenceNumber++,this._holdTime=0,this._paused=!1,this._isGroup=!1,this._animation=null,this._childAnimations=[],this._callback=null,this._oldPlayState="idle",this._rebuildUnderlyingAnimation(),this._animation.cancel(),this._updatePromises()},e.Animation.prototype={_updatePromises:function(){var t=this._oldPlayState,e=this.playState;return this._readyPromise&&e!==t&&("idle"==e?(this._rejectReadyPromise(),this._readyPromise=void 0):"pending"==t?this._resolveReadyPromise():"pending"==e&&(this._readyPromise=void 0)),this._finishedPromise&&e!==t&&("idle"==e?(this._rejectFinishedPromise(),this._finishedPromise=void 0):"finished"==e?this._resolveFinishedPromise():"finished"==t&&(this._finishedPromise=void 0)),this._oldPlayState=this.playState,this._readyPromise||this._finishedPromise},_rebuildUnderlyingAnimation:function(){this._updatePromises();var t,n,i,r,o=!!this._animation;o&&(t=this.playbackRate,n=this._paused,i=this.startTime,r=this.currentTime,this._animation.cancel(),this._animation._wrapper=null,this._animation=null),(!this.effect||this.effect instanceof window.KeyframeEffect)&&(this._animation=e.newUnderlyingAnimationForKeyframeEffect(this.effect),e.bindAnimationForKeyframeEffect(this)),(this.effect instanceof window.SequenceEffect||this.effect instanceof window.GroupEffect)&&(this._animation=e.newUnderlyingAnimationForGroup(this.effect),e.bindAnimationForGroup(this)),this.effect&&this.effect._onsample&&e.bindAnimationForCustomEffect(this),o&&(1!=t&&(this.playbackRate=t),null!==i?this.startTime=i:null!==r?this.currentTime=r:null!==this._holdTime&&(this.currentTime=this._holdTime),n&&this.pause()),this._updatePromises()},_updateChildren:function(){if(this.effect&&"idle"!=this.playState){var t=this.effect._timing.delay;this._childAnimations.forEach(function(n){this._arrangeChildren(n,t),this.effect instanceof window.SequenceEffect&&(t+=e.groupChildDuration(n.effect))}.bind(this))}},_setExternalAnimation:function(t){if(this.effect&&this._isGroup)for(var e=0;e\n :host {\n display: inline-block;\n position: relative;\n width: 400px;\n border: 1px solid;\n padding: 2px;\n -moz-appearance: textarea;\n -webkit-appearance: textarea;\n overflow: hidden;\n }\n\n .mirror-text {\n visibility: hidden;\n word-wrap: break-word;\n @apply --iron-autogrow-textarea;\n }\n\n .fit {\n @apply --layout-fit;\n }\n\n textarea {\n position: relative;\n outline: none;\n border: none;\n resize: none;\n background: inherit;\n color: inherit;\n /* see comments in template */\n width: 100%;\n height: 100%;\n font-size: inherit;\n font-family: inherit;\n line-height: inherit;\n text-align: inherit;\n @apply --iron-autogrow-textarea;\n }\n\n textarea::-webkit-input-placeholder {\n @apply --iron-autogrow-textarea-placeholder;\n }\n\n textarea:-moz-placeholder {\n @apply --iron-autogrow-textarea-placeholder;\n }\n\n textarea::-moz-placeholder {\n @apply --iron-autogrow-textarea-placeholder;\n }\n\n textarea:-ms-input-placeholder {\n @apply --iron-autogrow-textarea-placeholder;\n }\n \n\n \x3c!-- the mirror sizes the input/textarea so it grows with typing --\x3e\n \x3c!-- use instead of to allow this element to be used in XHTML --\x3e\n
\n\n \x3c!-- size the input/textarea with a div, because the textarea has intrinsic size in ff --\x3e\n
\n \n
\n'],['\n \n\n \x3c!-- the mirror sizes the input/textarea so it grows with typing --\x3e\n \x3c!-- use instead of to allow this element to be used in XHTML --\x3e\n
\n\n \x3c!-- size the input/textarea with a div, because the textarea has intrinsic size in ff --\x3e\n
\n Protection mode on this add-on is disabled! This gives the add-on full access to the entire system, which adds security risks, and could damage your system when used incorrectly. Only disable the protection mode if you know, need AND trust the source of this add-on.\n
\n \n\n ","\n "]);return nn=function(){return e},e}function on(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function an(e,t){return(an=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function sn(e){return function(){var t,r=ln(e);if(function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(e){return!1}}()){var n=ln(this).constructor;t=Reflect.construct(r,arguments,n)}else t=r.apply(this,arguments);return function(e,t){if(t&&("object"===br(t)||"function"==typeof t))return t;return cn(e)}(this,t)}}function cn(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function ln(e){return(ln=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function dn(e){var t,r=mn(e.key);"method"===e.kind?t={value:e.value,writable:!0,configurable:!0,enumerable:!1}:"get"===e.kind?t={get:e.value,configurable:!0,enumerable:!1}:"set"===e.kind?t={set:e.value,configurable:!0,enumerable:!1}:"field"===e.kind&&(t={configurable:!0,writable:!0,enumerable:!0});var n={kind:"field"===e.kind?"field":"method",key:r,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:t};return e.decorators&&(n.decorators=e.decorators),"field"===e.kind&&(n.initializer=e.value),n}function un(e,t){void 0!==e.descriptor.get?t.descriptor.get=e.descriptor.get:t.descriptor.set=e.descriptor.set}function fn(e){return e.decorators&&e.decorators.length}function pn(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function hn(e,t){var r=e[t];if(void 0!==r&&"function"!=typeof r)throw new TypeError("Expected '"+t+"' to be a function");return r}function mn(e){var t=function(e,t){if("object"!==br(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==br(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===br(t)?t:String(t)}function vn(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r **Stable**: These are add-ons ready to be used in production.\n\n **Experimental**: These may contain bugs, and may be unfinished.\n\n **Deprecated**: These add-ons will no longer receive any updates.")},rating:{title:"Add-on Security Rating",description:"Home Assistant provides a security rating to each of the add-ons, which indicates the risks involved when using this add-on. The more access an add-on requires on your system, the lower the score, thus raising the possible security risks.\n\nA score is on a scale from 1 to 6. Where 1 is the lowest score (considered the most insecure and highest risk) and a score of 6 is the highest score (considered the most secure and lowest risk)."},host_network:{title:"Host Network",description:"Add-ons usually run in their own isolated network layer, which prevents them from accessing the network of the host operating system. In some cases, this network isolation can limit add-ons in providing their services and therefore, the isolation can be lifted by the add-on author, giving the add-on full access to the network capabilities of the host machine. This gives the add-on more networking capabilities but lowers the security, hence, the security rating of the add-on will be lowered when this option is used by the add-on."},homeassistant_api:{title:"Home Assistant API Access",description:"This add-on is allowed to access your running Home Assistant instance directly via the Home Assistant API. This mode handles authentication for the add-on as well, which enables an add-on to interact with Home Assistant without the need for additional authentication tokens."},full_access:{title:"Full Hardware Access",description:"This add-on is given full access to the hardware of your system, by request of the add-on author. Access is comparable to the privileged mode in Docker. Since this opens up possible security risks, this feature impacts the add-on security score negatively.\n\nThis level of access is not granted automatically and needs to be confirmed by you. To do this, you need to disable the protection mode on the add-on manually. Only disable the protection mode if you know, need AND trust the source of this add-on."},hassio_api:{title:"Supervisor API Access",description:"The add-on was given access to the Supervisor API, by request of the add-on author. By default, the add-on can access general version information of your system. When the add-on requests 'manager' or 'admin' level access to the API, it will gain access to control multiple parts of your Home Assistant system. This permission is indicated by this badge and will impact the security score of the addon negatively."},docker_api:{title:"Full Docker Access",description:"The add-on author has requested the add-on to have management access to the Docker instance running on your system. This mode gives the add-on full access and control to your entire Home Assistant system, which adds security risks, and could damage your system when misused. Therefore, this feature impacts the add-on security score negatively.\n\nThis level of access is not granted automatically and needs to be confirmed by you. To do this, you need to disable the protection mode on the add-on manually. Only disable the protection mode if you know, need AND trust the source of this add-on."},host_pid:{title:"Host Processes Namespace",description:"Usually, the processes the add-on runs, are isolated from all other system processes. The add-on author has requested the add-on to have access to the system processes running on the host system instance, and allow the add-on to spawn processes on the host system as well. This mode gives the add-on full access and control to your entire Home Assistant system, which adds security risks, and could damage your system when misused. Therefore, this feature impacts the add-on security score negatively.\n\nThis level of access is not granted automatically and needs to be confirmed by you. To do this, you need to disable the protection mode on the add-on manually. Only disable the protection mode if you know, need AND trust the source of this add-on."},apparmor:{title:"AppArmor",description:"AppArmor ('Application Armor') is a Linux kernel security module that restricts add-ons capabilities like network access, raw socket access, and permission to read, write, or execute specific files.\n\nAdd-on authors can provide their security profiles, optimized for the add-on, or request it to be disabled. If AppArmor is disabled, it will raise security risks and therefore, has a negative impact on the security score of the add-on."},auth_api:{title:"Home Assistant Authentication",description:"An add-on can authenticate users against Home Assistant, allowing add-ons to give users the possibility to log into applications running inside add-ons, using their Home Assistant username/password. This badge indicates if the add-on author requests this capability."},ingress:{title:"Ingress",description:"This add-on is using Ingress to embed its interface securely into Home Assistant."}};!function(e,t,r,n){var i=function(){var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach(function(r){t.forEach(function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)},this)},this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach(function(n){t.forEach(function(t){var i=t.placement;if(t.kind===n&&("static"===i||"prototype"===i)){var o="static"===i?e:r;this.defineClassElement(o,t)}},this)},this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],i={static:[],prototype:[],own:[]};if(e.forEach(function(e){this.addElementPlacement(e,i)},this),e.forEach(function(e){if(!fn(e))return r.push(e);var t=this.decorateElement(e,i);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)},this),!t)return{elements:r,finishers:n};var o=this.decorateConstructor(r,t);return n.push.apply(n,o.finishers),o.finishers=n,o},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],i=e.decorators,o=i.length-1;o>=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var d=0;d=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a\n e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var d=0;d=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;a"]);return Mn=function(){return e},e}function Un(){var e=Hn(['