iobroker.lovelace
Version:
With this adapter you can build visualization for ioBroker with Home Assistant Lovelace UI
605 lines (525 loc) • 19.7 kB
JavaScript
/*! For license information please see chunk.14586ceb4dff1d5f948a.js.LICENSE.txt */
(self.webpackChunkhome_assistant_frontend=self.webpackChunkhome_assistant_frontend||[]).push([[7046],{21157:(e,t,n)=>{"use strict";n(43437);const o=n(50856).d`
/* Most common used flex styles*/
<dom-module id="iron-flex">
<template>
<style>
.layout.horizontal,
.layout.vertical {
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
}
.layout.inline {
display: -ms-inline-flexbox;
display: -webkit-inline-flex;
display: inline-flex;
}
.layout.horizontal {
-ms-flex-direction: row;
-webkit-flex-direction: row;
flex-direction: row;
}
.layout.vertical {
-ms-flex-direction: column;
-webkit-flex-direction: column;
flex-direction: column;
}
.layout.wrap {
-ms-flex-wrap: wrap;
-webkit-flex-wrap: wrap;
flex-wrap: wrap;
}
.layout.no-wrap {
-ms-flex-wrap: nowrap;
-webkit-flex-wrap: nowrap;
flex-wrap: nowrap;
}
.layout.center,
.layout.center-center {
-ms-flex-align: center;
-webkit-align-items: center;
align-items: center;
}
.layout.center-justified,
.layout.center-center {
-ms-flex-pack: center;
-webkit-justify-content: center;
justify-content: center;
}
.flex {
-ms-flex: 1 1 0.000000001px;
-webkit-flex: 1;
flex: 1;
-webkit-flex-basis: 0.000000001px;
flex-basis: 0.000000001px;
}
.flex-auto {
-ms-flex: 1 1 auto;
-webkit-flex: 1 1 auto;
flex: 1 1 auto;
}
.flex-none {
-ms-flex: none;
-webkit-flex: none;
flex: none;
}
</style>
</template>
</dom-module>
/* Basic flexbox reverse styles */
<dom-module id="iron-flex-reverse">
<template>
<style>
.layout.horizontal-reverse,
.layout.vertical-reverse {
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
}
.layout.horizontal-reverse {
-ms-flex-direction: row-reverse;
-webkit-flex-direction: row-reverse;
flex-direction: row-reverse;
}
.layout.vertical-reverse {
-ms-flex-direction: column-reverse;
-webkit-flex-direction: column-reverse;
flex-direction: column-reverse;
}
.layout.wrap-reverse {
-ms-flex-wrap: wrap-reverse;
-webkit-flex-wrap: wrap-reverse;
flex-wrap: wrap-reverse;
}
</style>
</template>
</dom-module>
/* Flexbox alignment */
<dom-module id="iron-flex-alignment">
<template>
<style>
/**
* Alignment in cross axis.
*/
.layout.start {
-ms-flex-align: start;
-webkit-align-items: flex-start;
align-items: flex-start;
}
.layout.center,
.layout.center-center {
-ms-flex-align: center;
-webkit-align-items: center;
align-items: center;
}
.layout.end {
-ms-flex-align: end;
-webkit-align-items: flex-end;
align-items: flex-end;
}
.layout.baseline {
-ms-flex-align: baseline;
-webkit-align-items: baseline;
align-items: baseline;
}
/**
* Alignment in main axis.
*/
.layout.start-justified {
-ms-flex-pack: start;
-webkit-justify-content: flex-start;
justify-content: flex-start;
}
.layout.center-justified,
.layout.center-center {
-ms-flex-pack: center;
-webkit-justify-content: center;
justify-content: center;
}
.layout.end-justified {
-ms-flex-pack: end;
-webkit-justify-content: flex-end;
justify-content: flex-end;
}
.layout.around-justified {
-ms-flex-pack: distribute;
-webkit-justify-content: space-around;
justify-content: space-around;
}
.layout.justified {
-ms-flex-pack: justify;
-webkit-justify-content: space-between;
justify-content: space-between;
}
/**
* Self alignment.
*/
.self-start {
-ms-align-self: flex-start;
-webkit-align-self: flex-start;
align-self: flex-start;
}
.self-center {
-ms-align-self: center;
-webkit-align-self: center;
align-self: center;
}
.self-end {
-ms-align-self: flex-end;
-webkit-align-self: flex-end;
align-self: flex-end;
}
.self-stretch {
-ms-align-self: stretch;
-webkit-align-self: stretch;
align-self: stretch;
}
.self-baseline {
-ms-align-self: baseline;
-webkit-align-self: baseline;
align-self: baseline;
}
/**
* multi-line alignment in main axis.
*/
.layout.start-aligned {
-ms-flex-line-pack: start; /* IE10 */
-ms-align-content: flex-start;
-webkit-align-content: flex-start;
align-content: flex-start;
}
.layout.end-aligned {
-ms-flex-line-pack: end; /* IE10 */
-ms-align-content: flex-end;
-webkit-align-content: flex-end;
align-content: flex-end;
}
.layout.center-aligned {
-ms-flex-line-pack: center; /* IE10 */
-ms-align-content: center;
-webkit-align-content: center;
align-content: center;
}
.layout.between-aligned {
-ms-flex-line-pack: justify; /* IE10 */
-ms-align-content: space-between;
-webkit-align-content: space-between;
align-content: space-between;
}
.layout.around-aligned {
-ms-flex-line-pack: distribute; /* IE10 */
-ms-align-content: space-around;
-webkit-align-content: space-around;
align-content: space-around;
}
</style>
</template>
</dom-module>
/* Non-flexbox positioning helper styles */
<dom-module id="iron-flex-factors">
<template>
<style>
.flex,
.flex-1 {
-ms-flex: 1 1 0.000000001px;
-webkit-flex: 1;
flex: 1;
-webkit-flex-basis: 0.000000001px;
flex-basis: 0.000000001px;
}
.flex-2 {
-ms-flex: 2;
-webkit-flex: 2;
flex: 2;
}
.flex-3 {
-ms-flex: 3;
-webkit-flex: 3;
flex: 3;
}
.flex-4 {
-ms-flex: 4;
-webkit-flex: 4;
flex: 4;
}
.flex-5 {
-ms-flex: 5;
-webkit-flex: 5;
flex: 5;
}
.flex-6 {
-ms-flex: 6;
-webkit-flex: 6;
flex: 6;
}
.flex-7 {
-ms-flex: 7;
-webkit-flex: 7;
flex: 7;
}
.flex-8 {
-ms-flex: 8;
-webkit-flex: 8;
flex: 8;
}
.flex-9 {
-ms-flex: 9;
-webkit-flex: 9;
flex: 9;
}
.flex-10 {
-ms-flex: 10;
-webkit-flex: 10;
flex: 10;
}
.flex-11 {
-ms-flex: 11;
-webkit-flex: 11;
flex: 11;
}
.flex-12 {
-ms-flex: 12;
-webkit-flex: 12;
flex: 12;
}
</style>
</template>
</dom-module>
<dom-module id="iron-positioning">
<template>
<style>
.block {
display: block;
}
[hidden] {
display: none ;
}
.invisible {
visibility: hidden ;
}
.relative {
position: relative;
}
.fit {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
}
body.fullbleed {
margin: 0;
height: 100vh;
}
.scroll {
-webkit-overflow-scrolling: touch;
overflow: auto;
}
/* fixed position */
.fixed-bottom,
.fixed-left,
.fixed-right,
.fixed-top {
position: fixed;
}
.fixed-top {
top: 0;
left: 0;
right: 0;
}
.fixed-right {
top: 0;
right: 0;
bottom: 0;
}
.fixed-bottom {
right: 0;
bottom: 0;
left: 0;
}
.fixed-left {
top: 0;
bottom: 0;
left: 0;
}
</style>
</template>
</dom-module>
`;o.setAttribute("style","display: none;"),document.head.appendChild(o.content)},46002:(e,t,n)=>{"use strict";n(43437),n(8621),n(63207),n(78814),n(1656),n(57548),n(73962);var o=n(51644),l=n(26110),i=n(21006),a=n(98235),r=n(84938),s=n(9672),p=n(87156),d=n(81668),c=n(50856);(0,s.k)({_template:c.d`
<style include="paper-dropdown-menu-shared-styles">
:host(:focus) {
outline: none;
}
:host {
width: 200px; /* Default size of an <input> */
}
/**
* All of these styles below are for styling the fake-input display
*/
[slot="dropdown-trigger"] {
box-sizing: border-box;
position: relative;
width: 100%;
padding: 16px 0 8px 0;
}
:host([disabled]) [slot="dropdown-trigger"] {
pointer-events: none;
opacity: var(--paper-dropdown-menu-disabled-opacity, 0.33);
}
:host([no-label-float]) [slot="dropdown-trigger"] {
padding-top: 8px; /* If there's no label, we need less space up top. */
}
#input {
@apply --paper-font-subhead;
@apply --paper-font-common-nowrap;
line-height: 1.5;
border-bottom: 1px solid var(--paper-dropdown-menu-color, var(--secondary-text-color));
color: var(--paper-dropdown-menu-color, var(--primary-text-color));
width: 100%;
box-sizing: border-box;
padding: 12px 20px 0 0; /* Right padding so that text doesn't overlap the icon */
outline: none;
@apply --paper-dropdown-menu-input;
}
#input:dir(rtl) {
padding-right: 0px;
padding-left: 20px;
}
:host([disabled]) #input {
border-bottom: 1px dashed var(--paper-dropdown-menu-color, var(--secondary-text-color));
}
:host([invalid]) #input {
border-bottom: 2px solid var(--paper-dropdown-error-color, var(--error-color));
}
:host([no-label-float]) #input {
padding-top: 0; /* If there's no label, we need less space up top. */
}
label {
@apply --paper-font-subhead;
@apply --paper-font-common-nowrap;
display: block;
position: absolute;
bottom: 0;
left: 0;
right: 0;
/**
* The container has a 16px top padding, and there's 12px of padding
* between the input and the label (from the input's padding-top)
*/
top: 28px;
box-sizing: border-box;
width: 100%;
padding-right: 20px; /* Right padding so that text doesn't overlap the icon */
text-align: left;
transition-duration: .2s;
transition-timing-function: cubic-bezier(.4,0,.2,1);
color: var(--paper-dropdown-menu-color, var(--secondary-text-color));
@apply --paper-dropdown-menu-label;
}
label:dir(rtl) {
padding-right: 0px;
padding-left: 20px;
}
:host([no-label-float]) label {
top: 8px;
/* Since the label doesn't need to float, remove the animation duration
which slows down visibility changes (i.e. when a selection is made) */
transition-duration: 0s;
}
label.label-is-floating {
font-size: 12px;
top: 8px;
}
label.label-is-hidden {
visibility: hidden;
}
:host([focused]) label.label-is-floating {
color: var(--paper-dropdown-menu-focus-color, var(--primary-color));
}
:host([invalid]) label.label-is-floating {
color: var(--paper-dropdown-error-color, var(--error-color));
}
/**
* Sets up the focused underline. It's initially hidden, and becomes
* visible when it's focused.
*/
label:after {
background-color: var(--paper-dropdown-menu-focus-color, var(--primary-color));
bottom: 7px; /* The container has an 8px bottom padding */
content: '';
height: 2px;
left: 45%;
position: absolute;
transition-duration: .2s;
transition-timing-function: cubic-bezier(.4,0,.2,1);
visibility: hidden;
width: 8px;
z-index: 10;
}
:host([invalid]) label:after {
background-color: var(--paper-dropdown-error-color, var(--error-color));
}
:host([no-label-float]) label:after {
bottom: 7px; /* The container has a 8px bottom padding */
}
:host([focused]:not([disabled])) label:after {
left: 0;
visibility: visible;
width: 100%;
}
iron-icon {
position: absolute;
right: 0px;
bottom: 8px; /* The container has an 8px bottom padding */
@apply --paper-font-subhead;
color: var(--disabled-text-color);
@apply --paper-dropdown-menu-icon;
}
iron-icon:dir(rtl) {
left: 0;
right: auto;
}
:host([no-label-float]) iron-icon {
margin-top: 0px;
}
.error {
display: inline-block;
visibility: hidden;
color: var(--paper-dropdown-error-color, var(--error-color));
@apply --paper-font-caption;
position: absolute;
left:0;
right:0;
bottom: -12px;
}
:host([invalid]) .error {
visibility: visible;
}
</style>
<!-- this div fulfills an a11y requirement for combobox, do not remove -->
<span role="button"></span>
<paper-menu-button id="menuButton" vertical-align="[[verticalAlign]]" horizontal-align="[[horizontalAlign]]" vertical-offset="[[_computeMenuVerticalOffset(noLabelFloat, verticalOffset)]]" disabled="[[disabled]]" no-animations="[[noAnimations]]" on-iron-select="_onIronSelect" on-iron-deselect="_onIronDeselect" opened="{{opened}}" close-on-activate allow-outside-scroll="[[allowOutsideScroll]]">
<!-- support hybrid mode: user might be using paper-menu-button 1.x which distributes via <content> -->
<div class="dropdown-trigger" slot="dropdown-trigger">
<label class\$="[[_computeLabelClass(noLabelFloat,alwaysFloatLabel,hasContent)]]">
[[label]]
</label>
<div id="input" tabindex="-1"> </div>
<iron-icon icon="paper-dropdown-menu:arrow-drop-down"></iron-icon>
<span class="error">[[errorMessage]]</span>
</div>
<slot id="content" name="dropdown-content" slot="dropdown-content"></slot>
</paper-menu-button>
`,is:"paper-dropdown-menu-light",behaviors:[o.P,l.a,r.o,i.V,a.x],properties:{selectedItemLabel:{type:String,notify:!0,readOnly:!0},selectedItem:{type:Object,notify:!0,readOnly:!0},value:{type:String,notify:!0,observer:"_valueChanged"},label:{type:String},placeholder:{type:String},opened:{type:Boolean,notify:!0,value:!1,observer:"_openedChanged"},allowOutsideScroll:{type:Boolean,value:!1},noLabelFloat:{type:Boolean,value:!1,reflectToAttribute:!0},alwaysFloatLabel:{type:Boolean,value:!1},noAnimations:{type:Boolean,value:!1},horizontalAlign:{type:String,value:"right"},verticalAlign:{type:String,value:"top"},verticalOffset:Number,hasContent:{type:Boolean,readOnly:!0}},listeners:{tap:"_onTap"},keyBindings:{"up down":"open",esc:"close"},hostAttributes:{tabindex:0,role:"combobox","aria-autocomplete":"none","aria-haspopup":"true"},observers:["_selectedItemChanged(selectedItem)"],attached:function(){var e=this.contentElement;e&&e.selectedItem&&this._setSelectedItem(e.selectedItem)},get contentElement(){for(var e=(0,p.vz)(this.$.content).getDistributedNodes(),t=0,n=e.length;t<n;t++)if(e[t].nodeType===Node.ELEMENT_NODE)return e[t]},open:function(){this.$.menuButton.open()},close:function(){this.$.menuButton.close()},_onIronSelect:function(e){this._setSelectedItem(e.detail.item)},_onIronDeselect:function(e){this._setSelectedItem(null)},_onTap:function(e){d.nJ(e)===this&&this.open()},_selectedItemChanged:function(e){var t="";t=e?e.label||e.getAttribute("label")||e.textContent.trim():"",this.value=t,this._setSelectedItemLabel(t)},_computeMenuVerticalOffset:function(e,t){return t||(e?-4:8)},_getValidity:function(e){return this.disabled||!this.required||this.required&&!!this.value},_openedChanged:function(){var e=this.opened?"true":"false",t=this.contentElement;t&&t.setAttribute("aria-expanded",e)},_computeLabelClass:function(e,t,n){var o="";return!0===e?n?"label-is-hidden":"":((n||!0===t)&&(o+=" label-is-floating"),o)},_valueChanged:function(){this.$.input&&this.$.input.textContent!==this.value&&(this.$.input.textContent=this.value),this._setHasContent(!!this.value)}})},33760:(e,t,n)=>{"use strict";n.d(t,{U:()=>i});n(43437);var o=n(51644),l=n(26110);const i=[o.P,l.a,{hostAttributes:{role:"option",tabindex:"0"}}]},97968:(e,t,n)=>{"use strict";n(65660),n(15495),n(1656),n(47686);const o=document.createElement("template");o.setAttribute("style","display: none;"),o.innerHTML="<dom-module id=\"paper-item-shared-styles\">\n <template>\n <style>\n :host, .paper-item {\n display: block;\n position: relative;\n min-height: var(--paper-item-min-height, 48px);\n padding: 0px 16px;\n }\n\n .paper-item {\n @apply --paper-font-subhead;\n border:none;\n outline: none;\n background: white;\n width: 100%;\n text-align: left;\n }\n\n :host([hidden]), .paper-item[hidden] {\n display: none ;\n }\n\n :host(.iron-selected), .paper-item.iron-selected {\n font-weight: var(--paper-item-selected-weight, bold);\n\n @apply --paper-item-selected;\n }\n\n :host([disabled]), .paper-item[disabled] {\n color: var(--paper-item-disabled-color, var(--disabled-text-color));\n\n @apply --paper-item-disabled;\n }\n\n :host(:focus), .paper-item:focus {\n position: relative;\n outline: 0;\n\n @apply --paper-item-focused;\n }\n\n :host(:focus):before, .paper-item:focus:before {\n @apply --layout-fit;\n\n background: currentColor;\n content: '';\n opacity: var(--dark-divider-opacity);\n pointer-events: none;\n\n @apply --paper-item-focused-before;\n }\n </style>\n </template>\n</dom-module>",document.head.appendChild(o.content)},53973:(e,t,n)=>{"use strict";n(43437),n(65660),n(97968);var o=n(9672),l=n(50856),i=n(33760);(0,o.k)({_template:l.d`
<style include="paper-item-shared-styles">
:host {
@apply --layout-horizontal;
@apply --layout-center;
@apply --paper-font-subhead;
@apply --paper-item;
}
</style>
<slot></slot>
`,is:"paper-item",behaviors:[i.U]})}}]);
//# sourceMappingURL=chunk.14586ceb4dff1d5f948a.js.map