iobroker.lovelace
Version:
With this adapter you can build visualization for ioBroker with Home Assistant Lovelace UI
3 lines • 18.8 kB
JavaScript
/*! For license information please see chunk.08da54630d86c01ee5fc.js.LICENSE.txt */
(self.webpackChunkhome_assistant_frontend=self.webpackChunkhome_assistant_frontend||[]).push([[4408],{85753:function(e,t,n){"use strict";n.d(t,{I:function(){return r},E:function(){return i}});n(43437);var a=n(78161),r={hostAttributes:{role:"menubar"},keyBindings:{left:"_onLeftKey",right:"_onRightKey"},_onUpKey:function(e){this.focusedItem.click(),e.detail.keyboardEvent.preventDefault()},_onDownKey:function(e){this.focusedItem.click(),e.detail.keyboardEvent.preventDefault()},get _isRTL(){return"rtl"===window.getComputedStyle(this).direction},_onLeftKey:function(e){this._isRTL?this._focusNext():this._focusPrevious(),e.detail.keyboardEvent.preventDefault()},_onRightKey:function(e){this._isRTL?this._focusPrevious():this._focusNext(),e.detail.keyboardEvent.preventDefault()},_onKeydown:function(e){this.keyboardEventMatchesKeys(e,"up down left right esc")||this._focusWithKeyboardEvent(e)}},i=[a.i,r]},25856:function(e,t,n){"use strict";n(43437),n(65660);var a=n(26110),r=n(98235),i=n(9672),o=n(87156),l=n(50856);function s(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(['\n <style>\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 </style>\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 <div id="mirror" class="mirror-text" aria-hidden="true"> </div>\n\n \x3c!-- size the input/textarea with a div, because the textarea has intrinsic size in ff --\x3e\n <div class="textarea-container fit">\n <textarea id="textarea" name$="[[name]]" aria-label$="[[label]]" autocomplete$="[[autocomplete]]" autofocus$="[[autofocus]]" autocapitalize$="[[autocapitalize]]" inputmode$="[[inputmode]]" placeholder$="[[placeholder]]" readonly$="[[readonly]]" required$="[[required]]" disabled$="[[disabled]]" rows$="[[rows]]" minlength$="[[minlength]]" maxlength$="[[maxlength]]"></textarea>\n </div>\n']);return s=function(){return e},e}(0,i.k)({_template:(0,l.d)(s()),is:"iron-autogrow-textarea",behaviors:[r.x,a.a],properties:{value:{observer:"_valueChanged",type:String,notify:!0},bindValue:{observer:"_bindValueChanged",type:String,notify:!0},rows:{type:Number,value:1,observer:"_updateCached"},maxRows:{type:Number,value:0,observer:"_updateCached"},autocomplete:{type:String,value:"off"},autofocus:{type:Boolean,value:!1},autocapitalize:{type:String,value:"none"},inputmode:{type:String},placeholder:{type:String},readonly:{type:String},required:{type:Boolean},minlength:{type:Number},maxlength:{type:Number},label:{type:String}},listeners:{input:"_onInput"},get textarea(){return this.$.textarea},get selectionStart(){return this.$.textarea.selectionStart},get selectionEnd(){return this.$.textarea.selectionEnd},set selectionStart(e){this.$.textarea.selectionStart=e},set selectionEnd(e){this.$.textarea.selectionEnd=e},attached:function(){navigator.userAgent.match(/iP(?:[oa]d|hone)/)&&!navigator.userAgent.match(/OS 1[3456789]/)&&(this.$.textarea.style.marginLeft="-3px")},validate:function(){var e=this.$.textarea.validity.valid;return e&&(this.required&&""===this.value?e=!1:this.hasValidator()&&(e=r.x.validate.call(this,this.value))),this.invalid=!e,this.fire("iron-input-validate"),e},_bindValueChanged:function(e){this.value=e},_valueChanged:function(e){var t=this.textarea;t&&(t.value!==e&&(t.value=e||0===e?e:""),this.bindValue=e,this.$.mirror.innerHTML=this._valueForMirror(),this.fire("bind-value-changed",{value:this.bindValue}))},_onInput:function(e){var t=(0,o.vz)(e).path;this.value=t?t[0].value:e.target.value},_constrain:function(e){var t;for(e=e||[""],t=this.maxRows>0&&e.length>this.maxRows?e.slice(0,this.maxRows):e.slice(0);this.rows>0&&t.length<this.rows;)t.push("");return t.join("<br/>")+" "},_valueForMirror:function(){var e=this.textarea;if(e)return this.tokens=e&&e.value?e.value.replace(/&/gm,"&").replace(/"/gm,""").replace(/'/gm,"'").replace(/</gm,"<").replace(/>/gm,">").split("\n"):[""],this._constrain(this.tokens)},_updateCached:function(){this.$.mirror.innerHTML=this._constrain(this.tokens)}});n(2178),n(98121),n(65911);var d=n(21006),c=n(66668);function p(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(['\n <style>\n :host {\n display: block;\n }\n\n :host([hidden]) {\n display: none ;\n }\n\n label {\n pointer-events: none;\n }\n </style>\n\n <paper-input-container no-label-float$="[[noLabelFloat]]" always-float-label="[[_computeAlwaysFloatLabel(alwaysFloatLabel,placeholder)]]" auto-validate$="[[autoValidate]]" disabled$="[[disabled]]" invalid="[[invalid]]">\n\n <label hidden$="[[!label]]" aria-hidden="true" for$="[[_inputId]]" slot="label">[[label]]</label>\n\n <iron-autogrow-textarea class="paper-input-input" slot="input" id$="[[_inputId]]" aria-labelledby$="[[_ariaLabelledBy]]" aria-describedby$="[[_ariaDescribedBy]]" bind-value="{{value}}" invalid="{{invalid}}" validator$="[[validator]]" disabled$="[[disabled]]" autocomplete$="[[autocomplete]]" autofocus$="[[autofocus]]" inputmode$="[[inputmode]]" name$="[[name]]" placeholder$="[[placeholder]]" readonly$="[[readonly]]" required$="[[required]]" minlength$="[[minlength]]" maxlength$="[[maxlength]]" autocapitalize$="[[autocapitalize]]" rows$="[[rows]]" max-rows$="[[maxRows]]" on-change="_onChange"></iron-autogrow-textarea>\n\n <template is="dom-if" if="[[errorMessage]]">\n <paper-input-error aria-live="assertive" slot="add-on">[[errorMessage]]</paper-input-error>\n </template>\n\n <template is="dom-if" if="[[charCounter]]">\n <paper-input-char-counter slot="add-on"></paper-input-char-counter>\n </template>\n\n </paper-input-container>\n']);return p=function(){return e},e}(0,i.k)({_template:(0,l.d)(p()),is:"paper-textarea",behaviors:[c.d0,d.V],properties:{_ariaLabelledBy:{observer:"_ariaLabelledByChanged",type:String},_ariaDescribedBy:{observer:"_ariaDescribedByChanged",type:String},value:{type:String},rows:{type:Number,value:1},maxRows:{type:Number,value:0}},get selectionStart(){return this.$.input.textarea.selectionStart},set selectionStart(e){this.$.input.textarea.selectionStart=e},get selectionEnd(){return this.$.input.textarea.selectionEnd},set selectionEnd(e){this.$.input.textarea.selectionEnd=e},_ariaLabelledByChanged:function(e){this._focusableElement.setAttribute("aria-labelledby",e)},_ariaDescribedByChanged:function(e){this._focusableElement.setAttribute("aria-describedby",e)},get _focusableElement(){return this.inputElement.textarea}})},25782:function(e,t,n){"use strict";n(43437),n(65660),n(47686),n(97968);var a=n(9672),r=n(50856),i=n(33760);function o(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(['\n <style include="paper-item-shared-styles"></style>\n <style>\n :host {\n @apply --layout-horizontal;\n @apply --layout-center;\n @apply --paper-font-subhead;\n\n @apply --paper-item;\n @apply --paper-icon-item;\n }\n\n .content-icon {\n @apply --layout-horizontal;\n @apply --layout-center;\n\n width: var(--paper-item-icon-width, 56px);\n @apply --paper-item-icon;\n }\n </style>\n\n <div id="contentIcon" class="content-icon">\n <slot name="item-icon"></slot>\n </div>\n <slot></slot>\n']);return o=function(){return e},e}(0,a.k)({_template:(0,r.d)(o()),is:"paper-icon-item",behaviors:[i.U]})},27662:function(e,t,n){"use strict";n(43437),n(1656),n(65660);var a=n(62132),r=n(9672),i=n(50856),o=n(87529);function l(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(['\n<style>\n :host {\n display: inline-block;\n line-height: 0;\n white-space: nowrap;\n cursor: pointer;\n @apply --paper-font-common-base;\n --calculated-paper-radio-button-size: var(--paper-radio-button-size, 16px);\n /* -1px is a sentinel for the default and is replace in `attached`. */\n --calculated-paper-radio-button-ink-size: var(--paper-radio-button-ink-size, -1px);\n }\n\n :host(:focus) {\n outline: none;\n }\n\n #radioContainer {\n @apply --layout-inline;\n @apply --layout-center-center;\n position: relative;\n width: var(--calculated-paper-radio-button-size);\n height: var(--calculated-paper-radio-button-size);\n vertical-align: middle;\n\n @apply --paper-radio-button-radio-container;\n }\n\n #ink {\n position: absolute;\n top: 50%;\n left: 50%;\n right: auto;\n width: var(--calculated-paper-radio-button-ink-size);\n height: var(--calculated-paper-radio-button-ink-size);\n color: var(--paper-radio-button-unchecked-ink-color, var(--primary-text-color));\n opacity: 0.6;\n pointer-events: none;\n -webkit-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n }\n\n #ink[checked] {\n color: var(--paper-radio-button-checked-ink-color, var(--primary-color));\n }\n\n #offRadio, #onRadio {\n position: absolute;\n box-sizing: border-box;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border-radius: 50%;\n }\n\n #offRadio {\n border: 2px solid var(--paper-radio-button-unchecked-color, var(--primary-text-color));\n background-color: var(--paper-radio-button-unchecked-background-color, transparent);\n transition: border-color 0.28s;\n }\n\n #onRadio {\n background-color: var(--paper-radio-button-checked-color, var(--primary-color));\n -webkit-transform: scale(0);\n transform: scale(0);\n transition: -webkit-transform ease 0.28s;\n transition: transform ease 0.28s;\n will-change: transform;\n }\n\n :host([checked]) #offRadio {\n border-color: var(--paper-radio-button-checked-color, var(--primary-color));\n }\n\n :host([checked]) #onRadio {\n -webkit-transform: scale(0.5);\n transform: scale(0.5);\n }\n\n #radioLabel {\n line-height: normal;\n position: relative;\n display: inline-block;\n vertical-align: middle;\n margin-left: var(--paper-radio-button-label-spacing, 10px);\n white-space: normal;\n color: var(--paper-radio-button-label-color, var(--primary-text-color));\n\n @apply --paper-radio-button-label;\n }\n\n :host([checked]) #radioLabel {\n @apply --paper-radio-button-label-checked;\n }\n\n #radioLabel:dir(rtl) {\n margin-left: 0;\n margin-right: var(--paper-radio-button-label-spacing, 10px);\n }\n\n #radioLabel[hidden] {\n display: none;\n }\n\n /* disabled state */\n\n :host([disabled]) #offRadio {\n border-color: var(--paper-radio-button-unchecked-color, var(--primary-text-color));\n opacity: 0.5;\n }\n\n :host([disabled][checked]) #onRadio {\n background-color: var(--paper-radio-button-unchecked-color, var(--primary-text-color));\n opacity: 0.5;\n }\n\n :host([disabled]) #radioLabel {\n /* slightly darker than the button, so that it\'s readable */\n opacity: 0.65;\n }\n</style>\n\n<div id="radioContainer">\n <div id="offRadio"></div>\n <div id="onRadio"></div>\n</div>\n\n<div id="radioLabel"><slot></slot></div>'],['\n<style>\n :host {\n display: inline-block;\n line-height: 0;\n white-space: nowrap;\n cursor: pointer;\n @apply --paper-font-common-base;\n --calculated-paper-radio-button-size: var(--paper-radio-button-size, 16px);\n /* -1px is a sentinel for the default and is replace in \\`attached\\`. */\n --calculated-paper-radio-button-ink-size: var(--paper-radio-button-ink-size, -1px);\n }\n\n :host(:focus) {\n outline: none;\n }\n\n #radioContainer {\n @apply --layout-inline;\n @apply --layout-center-center;\n position: relative;\n width: var(--calculated-paper-radio-button-size);\n height: var(--calculated-paper-radio-button-size);\n vertical-align: middle;\n\n @apply --paper-radio-button-radio-container;\n }\n\n #ink {\n position: absolute;\n top: 50%;\n left: 50%;\n right: auto;\n width: var(--calculated-paper-radio-button-ink-size);\n height: var(--calculated-paper-radio-button-ink-size);\n color: var(--paper-radio-button-unchecked-ink-color, var(--primary-text-color));\n opacity: 0.6;\n pointer-events: none;\n -webkit-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n }\n\n #ink[checked] {\n color: var(--paper-radio-button-checked-ink-color, var(--primary-color));\n }\n\n #offRadio, #onRadio {\n position: absolute;\n box-sizing: border-box;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border-radius: 50%;\n }\n\n #offRadio {\n border: 2px solid var(--paper-radio-button-unchecked-color, var(--primary-text-color));\n background-color: var(--paper-radio-button-unchecked-background-color, transparent);\n transition: border-color 0.28s;\n }\n\n #onRadio {\n background-color: var(--paper-radio-button-checked-color, var(--primary-color));\n -webkit-transform: scale(0);\n transform: scale(0);\n transition: -webkit-transform ease 0.28s;\n transition: transform ease 0.28s;\n will-change: transform;\n }\n\n :host([checked]) #offRadio {\n border-color: var(--paper-radio-button-checked-color, var(--primary-color));\n }\n\n :host([checked]) #onRadio {\n -webkit-transform: scale(0.5);\n transform: scale(0.5);\n }\n\n #radioLabel {\n line-height: normal;\n position: relative;\n display: inline-block;\n vertical-align: middle;\n margin-left: var(--paper-radio-button-label-spacing, 10px);\n white-space: normal;\n color: var(--paper-radio-button-label-color, var(--primary-text-color));\n\n @apply --paper-radio-button-label;\n }\n\n :host([checked]) #radioLabel {\n @apply --paper-radio-button-label-checked;\n }\n\n #radioLabel:dir(rtl) {\n margin-left: 0;\n margin-right: var(--paper-radio-button-label-spacing, 10px);\n }\n\n #radioLabel[hidden] {\n display: none;\n }\n\n /* disabled state */\n\n :host([disabled]) #offRadio {\n border-color: var(--paper-radio-button-unchecked-color, var(--primary-text-color));\n opacity: 0.5;\n }\n\n :host([disabled][checked]) #onRadio {\n background-color: var(--paper-radio-button-unchecked-color, var(--primary-text-color));\n opacity: 0.5;\n }\n\n :host([disabled]) #radioLabel {\n /* slightly darker than the button, so that it\'s readable */\n opacity: 0.65;\n }\n</style>\n\n<div id="radioContainer">\n <div id="offRadio"></div>\n <div id="onRadio"></div>\n</div>\n\n<div id="radioLabel"><slot></slot></div>']);return l=function(){return e},e}var s=(0,i.d)(l());s.setAttribute("strip-whitespace",""),(0,r.k)({_template:s,is:"paper-radio-button",behaviors:[a.K],hostAttributes:{role:"radio","aria-checked":!1,tabindex:0},properties:{ariaActiveAttribute:{type:String,value:"aria-checked"}},ready:function(){this._rippleContainer=this.$.radioContainer},attached:function(){(0,o.T8)(this,(function(){if("-1px"===this.getComputedStyleValue("--calculated-paper-radio-button-ink-size").trim()){var e=parseFloat(this.getComputedStyleValue("--calculated-paper-radio-button-size").trim()),t=Math.floor(3*e);t%2!=e%2&&t++,this.updateStyles({"--paper-radio-button-ink-size":t+"px"})}}))}})},84281:function(e,t,n){"use strict";n(43437),n(8621),n(27662);var a=n(85753),r=n(11018),i=n(9672),o=n(50856);function l(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(["\n <style>\n :host {\n display: inline-block;\n }\n\n :host ::slotted(*) {\n padding: var(--paper-radio-group-item-padding, 12px);\n }\n </style>\n\n <slot></slot>\n"]);return l=function(){return e},e}(0,i.k)({_template:(0,o.d)(l()),is:"paper-radio-group",behaviors:[a.E],hostAttributes:{role:"radiogroup"},properties:{attrForSelected:{type:String,value:"name"},selectedAttribute:{type:String,value:"checked"},selectable:{type:String,value:"paper-radio-button"},allowEmptySelection:{type:Boolean,value:!1}},select:function(e){var t=this._valueToItem(e);if(!t||!t.hasAttribute("disabled")){if(this.selected){var n=this._valueToItem(this.selected);if(this.selected==e){if(!this.allowEmptySelection)return void(n&&(n.checked=!0));e=""}n&&(n.checked=!1)}r.P.select.apply(this,[e]),this.fire("paper-radio-group-changed")}},_activateFocusedItem:function(){this._itemActivate(this._valueForItem(this.focusedItem),this.focusedItem)},_onUpKey:function(e){this._focusPrevious(),e.preventDefault(),this._activateFocusedItem()},_onDownKey:function(e){this._focusNext(),e.preventDefault(),this._activateFocusedItem()},_onLeftKey:function(e){a.I._onLeftKey.apply(this,arguments),this._activateFocusedItem()},_onRightKey:function(e){a.I._onRightKey.apply(this,arguments),this._activateFocusedItem()}})},1275:function(e,t,n){"use strict";n.d(t,{l:function(){return i}});var a=n(94707),r=new WeakMap,i=(0,a.XM)((function(e,t){return function(n){var a=r.get(n);if(Array.isArray(e)){if(Array.isArray(a)&&a.length===e.length&&e.every((function(e,t){return e===a[t]})))return}else if(a===e&&(void 0!==e||r.has(n)))return;n.setValue(t()),r.set(n,Array.isArray(e)?Array.from(e):e)}}))}}]);
//# sourceMappingURL=chunk.08da54630d86c01ee5fc.js.map