- ${this.makeDropdown("Button type","button_type",i)} - ${this.makeDropdown("Optional - Entity","entity",n,r)} -
-
diff --git a/config/www/community/Bubble-Card/bubble-card.js b/config/www/community/Bubble-Card/bubble-card.js deleted file mode 100644 index 5484d5ed..00000000 --- a/config/www/community/Bubble-Card/bubble-card.js +++ /dev/null @@ -1,1392 +0,0 @@ -(()=>{"use strict";var __webpack_modules__={946:(e,t,n)=>{function o(e,t=40){if(Array.isArray(e)&&3===e.length){for(let t=0;t<3;t++)if(e[t]<0||e[t]>255)return;return e.every((e=>Math.abs(e-255)<=t))}}let a;function i(e,t,n=1){if(e.startsWith("#"))if(4===e.length){let o=Math.min(255,parseInt(e.charAt(1).repeat(2),16)*n),i=Math.min(255,parseInt(e.charAt(2).repeat(2),16)*n),r=Math.min(255,parseInt(e.charAt(3).repeat(2),16)*n);a="rgba("+o+", "+i+", "+r+", "+t+")"}else{let o=Math.min(255,parseInt(e.slice(1,3),16)*n),i=Math.min(255,parseInt(e.slice(3,5),16)*n),r=Math.min(255,parseInt(e.slice(5,7),16)*n);a="rgba("+o+", "+i+", "+r+", "+t+")"}else if(e.startsWith("rgb")){let o=e.match(/\d+/g);a="rgba("+Math.min(255,o[0]*n)+", "+Math.min(255,o[1]*n)+", "+Math.min(255,o[2]*n)+", "+t+")"}else if(e.startsWith("var(--")){let o=e.slice(4,-1),r=window.getComputedStyle(document.documentElement).getPropertyValue(o);(r.startsWith("#")||r.startsWith("rgb"))&&(a=i(r,t,n))}return a}n.d(t,{_k:()=>i,wW:()=>o})},191:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.d(__webpack_exports__,{BX:()=>fireEvent,GP:()=>applyScrollingEffect,IL:()=>getAttribute,Jn:()=>tapFeedback,OC:()=>isEntityType,P2:()=>throttle,Vv:()=>isColorLight,X:()=>getWeatherIcon,az:()=>createElement,gJ:()=>getImage,jk:()=>forwardHaptic,jx:()=>setLayout,mk:()=>getIconColor,o0:()=>formatDateTime,oY:()=>getName,pr:()=>isStateOn,q7:()=>getIcon,y0:()=>getState});var _style_ts__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(946);const fireEvent=(e,t,n,o)=>{o=o||{},n=null==n?{}:n;const a=new Event(t,{bubbles:void 0===o.bubbles||o.bubbles,cancelable:Boolean(o.cancelable),composed:void 0===o.composed||o.composed});return a.detail=n,e.dispatchEvent(a),a},forwardHaptic=e=>{fireEvent(window,"haptic",e)},navigate=(e,t,n=!1)=>{n?history.replaceState(null,"",t):history.pushState(null,"",t),fireEvent(window,"location-changed",{replace:n})};function tapFeedback(e){void 0!==e&&(e.style.display="",e.style.animation="tap-feedback .3s",setTimeout((()=>{e.style.animation="none",e.style.display="none"}),500))}function getIcon(e,t=e.config.entity,n=e.config.icon){const o=t?.split(".")[0],a=getAttribute(e,"device_class",t),i=getAttribute(e,"icon",t),r=n,s=getState(e,t),l={alarm_control_panel:"mdi:shield",alert:"mdi:alert",automation:"mdi:playlist-play",binary_sensor:function(){const n="off"===s;switch(getAttribute(e,"device_class",t)){case"battery":return n?"mdi:battery":"mdi:battery-outline";case"battery_charging":return n?"mdi:battery":"mdi:battery-charging";case"cold":return n?"mdi:thermometer":"mdi:snowflake";case"connectivity":return n?"mdi:server-network-off":"mdi:server-network";case"door":return n?"mdi:door-closed":"mdi:door-open";case"garage_door":return n?"mdi:garage":"mdi:garage-open";case"heat":return n?"mdi:thermometer":"mdi:fire";case"light":return n?"mdi:brightness-5":"mdi:brightness-7";case"lock":return n?"mdi:lock":"mdi:lock-open";case"moisture":return n?"mdi:water-off":"mdi:water";case"motion":return n?"mdi:motion-sensor-off":"mdi:motion-sensor";case"occupancy":case"presence":return n?"mdi:home-outline":"mdi:home";case"opening":return n?"mdi:square":"mdi:square-outline";case"plug":case"power":return n?"mdi:power-plug-off":"mdi:power-plug";case"running":return n?"mdi:stop":"mdi:play";case"safety":case"tamper":return n?"mdi:check-circle":"mdi:alert-circle";case"smoke":return n?"mdi:check-circle":"mdi:smoke";case"sound":return n?"mdi:music-note-off":"mdi:music-note";case"update":return n?"mdi:package":"mdi:package-up";case"vibration":return n?"mdi:crop-portrait":"mdi:vibrate";case"window":return n?"mdi:window-closed":"mdi:window-open";default:return n?"mdi:radiobox-blank":"mdi:checkbox-marked-circle"}}(),calendar:"mdi:calendar",camera:"mdi:video",climate:"mdi:thermostat",configurator:"mdi:settings",conversation:"mdi:text-to-speech",cover:function(){const n="closed"!==s;switch(getAttribute(e,"device_class",t)){case"awning":return n?"mdi:awning-outline":"mdi:awning";case"blind":return n?"mdi:blinds-open":"mdi:blinds";case"curtain":return n?"mdi:curtains-open":"mdi:curtains";case"damper":case"shutter":default:return n?"mdi:window-shutter-open":"mdi:window-shutter";case"door":return n?"mdi:door-open":"mdi:door-closed";case"garage":return n?"mdi:garage-open":"mdi:garage";case"gate":return n?"mdi:gate-open":"mdi:gate";case"shade":return n?"mdi:roller-shade":"mdi:roller-shade-closed";case"window":return n?"mdi:window-open":"mdi:window-closed"}}(),device_tracker:"mdi:account",fan:"mdi:fan",group:"mdi:google-circles-communities",history_graph:"mdi:chart-line",homeassistant:"mdi:home-assistant",homekit:"mdi:home-automation",image_processing:"mdi:image-filter-frames",input_boolean:"mdi:drawing",input_datetime:"mdi:calendar-clock",input_number:"mdi:ray-vertex",input_select:"mdi:format-list-bulleted",input_text:"mdi:textbox",light:"mdi:lightbulb",lock:"mdi:lock",mailbox:"mdi:mailbox",media_player:"mdi:speaker",mower:"mdi:robot-mower",notify:"mdi:comment-alert",person:"mdi:account",plant:"mdi:flower",proximity:"mdi:apple-safari",remote:"mdi:remote",scene:"mdi:palette",script:"mdi:file-document",sensor:function(){switch(getAttribute(e,"device_class",t)){case"battery":return 100==s?"mdi:battery":s>=90?"mdi:battery-90":s>=80?"mdi:battery-80":s>=70?"mdi:battery-70":s>=60?"mdi:battery-60":s>=50?"mdi:battery-50":s>=40?"mdi:battery-40":s>=30?"mdi:battery-30":s>=20?"mdi:battery-20":s>=10?"mdi:battery-10":"mdi:battery-alert";case"humidity":return"mdi:water-percent";case"illuminance":return"mdi:brightness-5";case"temperature":return"mdi:thermometer";case"pressure":return"mdi:gauge";case"power":return"mdi:flash";case"signal_strength":return"mdi:wifi";case"energy":return"mdi:lightning-bolt";default:return"mdi:eye"}}(),simple_alarm:"mdi:bell",sun:"mdi:white-balance-sunny",switch:"mdi:flash",timer:"mdi:timer",updater:"mdi:cloud-upload",vacuum:"mdi:robot-vacuum",water_heater:"mdi:thermometer",weather:function(n=getState(e,t)){switch(n){case"cloudy":default:return"mdi:weather-cloudy";case"partlycloudy":return"mdi:weather-partly-cloudy";case"rainy":return"mdi:weather-rainy";case"snowy":return"mdi:weather-snowy";case"sunny":return"mdi:weather-sunny";case"clear-night":return"mdi:weather-night";case"fog":return"mdi:weather-fog";case"hail":return"mdi:weather-hail";case"lightning":return"mdi:weather-lightning";case"lightning-rainy":return"mdi:weather-lightning-rainy";case"pouring":return"mdi:weather-pouring";case"windy":return"mdi:weather-windy";case"windy-variant":return"mdi:weather-windy-variant";case"exceptional":return"mdi:alert-circle-outline"}}(),weblink:"mdi:open-in-new"};return r||i||(l[o]?l[o]:l[a]?l[a]:"")}function getWeatherIcon(e){switch(e){case"cloudy":default:return"mdi:weather-cloudy";case"partlycloudy":return"mdi:weather-partly-cloudy";case"rainy":return"mdi:weather-rainy";case"snowy":return"mdi:weather-snowy";case"sunny":return"mdi:weather-sunny";case"clear-night":return"mdi:weather-night";case"fog":return"mdi:weather-fog";case"hail":return"mdi:weather-hail";case"lightning":return"mdi:weather-lightning";case"lightning-rainy":return"mdi:weather-lightning-rainy";case"pouring":return"mdi:weather-pouring";case"windy":return"mdi:weather-windy";case"windy-variant":return"mdi:weather-windy-variant";case"exceptional":return"mdi:alert-circle-outline"}}const colorCache=new Map;function resolveCssVariable(e){let t=e;const n=getComputedStyle(document.body);for(;t&&t.startsWith("var(");){const e=t.match(/var\((--[^,]+),?\s*(.*)?\)/);if(!e)break;const[,o,a]=e;t=n.getPropertyValue(o).trim()||a&&a.trim()||""}return t}function hexToRgb(e){const t=e.match(/^#([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i);return t?[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)]:null}function rgbStringToRgb(e){const t=e.match(/^rgba?\((\d+),\s*(\d+),\s*(\d+)/i);return t?[parseInt(t[1],10),parseInt(t[2],10),parseInt(t[3],10)]:null}function calculateLuminance(e,t,n){return(.2126*e+.7152*t+.0722*n)/255}function isColorLight(e){const t=resolveCssVariable(e);if(!t)return!1;if(colorCache.has(t))return colorCache.get(t);let n=hexToRgb(t)||rgbStringToRgb(t);if(!n)return colorCache.set(t,!1),!1;const o=calculateLuminance(...n)>.5;return colorCache.set(t,o),o}function adjustColor(e,t){return e.map((e=>Math.min(255,Math.round(e*t))))}function getIconColor(e,t=e.config.entity,n=1){const{card_type:o,use_accent_color:a}=e.config,i="var(--bubble-accent-color, var(--accent-color))",r=getAttribute(e,"rgb_color",t),s=isColorLight("var(--bubble-button-icon-background-color, var(--bubble-icon-background-color, var(--bubble-secondary-background-color, var(--card-background-color, var(--ha-card-background)))))")?n-.2:n;if(!t)return i;if(isEntityType(e,"light")&&!a?"button"===o?e.card.classList.add("is-light"):"pop-up"===o&&e.elements.headerContainer.classList.add("is-light"):"button"===o?e.card.classList.remove("is-light"):"pop-up"===o&&e.elements.headerContainer.classList.remove("is-light"),!t.startsWith("light.")||a)return i;const l=adjustColor([225,225,210],s);if(!r)return`var(--bubble-light-color, rgba(${l.join(", ")}))`;const c=adjustColor(r,s);return(0,_style_ts__WEBPACK_IMPORTED_MODULE_0__.wW)(r)?`var(--bubble-light-color, rgba(${l.join(", ")}))`:`var(--bubble-light-color, rgba(${c.join(", ")}))`}function getImage(e,t=e.config.entity){if(e.config.force_icon)return"";const n=getAttribute(e,"entity_picture_local",t)||getAttribute(e,"entity_picture",t);return n?e._hass.hassUrl(n):""}function getName(e){const t=e.config.name,n=getAttribute(e,"friendly_name");return e.name||t||n||""}function getState(e,t=e.config.entity){return e._hass.states[t]?.state??""}function getAttribute(context,attribute,entity=context.config.entity){return attribute?eval(`context._hass.states['${entity}']?.attributes.${attribute}`)??"":""}function isEntityType(e,t){return e.config.entity?.startsWith(t+".")??!1}function isStateOn(e,t=e.config.entity){const n=getState(e,t).toLowerCase(),o=Number(n);return!!(["on","open","opening","closing","cleaning","true","idle","home","playing","paused","locked","occupied","available","running","active","connected","online","mowing","starting","heat","cool","dry","heat_cool","fan_only","auto","alarm"].includes(n)||o>0)}function createElement(e,t=""){const n=document.createElement(e);return""!==t&&t.split(" ").forEach((e=>{n.classList.add(e)})),n}function debounce(e,t){let n;return function(...o){clearTimeout(n),n=setTimeout((()=>e.apply(this,o)),t)}}function applyScrollingEffect(e,t,n){const o=e.config.scrolling_effect??!0;if(!o)return void applyNonScrollingStyle(t,n);if(t.previousText===n)return;const a=t.className.split(" ").find((e=>e.startsWith("bubble-")));function i(){t.innerHTML=`
input_boolean
) and trigger its opening/closing in an automation.
- Optional - Backdrop blur
just below, but be aware that this can slow down your dashboard when opening pop-ups. It is now set to 0 for that reason.navigate
action, or with the horizontal buttons stack that is included.
- input_select
, select
entities, and
- any other entities that have attribute lists like
- source_list
, sound_mode_list
,
- hvac_modes
, fan_modes
,
- swing_modes
, preset_modes
, or
- effect_list
.
- The Bubble Card ${e} changelog is available here.
-If you have an issue or a question you can find more details in the GitHub documentation. You can also find useful resources and help in these links.
- -I dedicate most of my spare time to making this project the best it can be. So if you appreciate my work, any donation would be a great way to show your support.
- -Looking for more advanced examples? Check out my Patreon for exclusive custom styles and templates!
-Thank you! 🍻
- ${this.makeVersion()} -input_select
, select
entities, and
- any other entities that have attribute lists like
- source_list
, sound_mode_list
,
- hvac_modes
, fan_modes
,
- swing_modes
, preset_modes
, or
- effect_list
.
- styles: |
, it will be added automatically. You can also add templates.
- Auto entities
-- See - - auto-entities on github - - for usage instructions. -
-Not all options are available in the GUI editor.
-- Your filter method is not handled by the GUI editor. -
-Please switch to the CODE EDITOR to access all options.
-Options:
-',"
"])),Hf(e),t?this.validationMessage:this.helper)}},{key:"createAdapter",value:function(){var t,e=this;return Object.assign(Object.assign({},xh(this.mdcRoot)),{activateBottomLine:function(){e.lineRippleElement&&e.lineRippleElement.lineRippleFoundation.activate()},deactivateBottomLine:function(){e.lineRippleElement&&e.lineRippleElement.lineRippleFoundation.deactivate()},hasLabel:function(){return!!e.label},floatLabel:function(t){e.labelElement&&e.labelElement.floatingLabelFoundation.float(t)},getLabelWidth:function(){return e.labelElement?e.labelElement.floatingLabelFoundation.getWidth():0},setLabelRequired:function(t){e.labelElement&&e.labelElement.floatingLabelFoundation.setRequired(t)},hasOutline:function(){return e.outlined},notchOutline:function(t){e.outlineElement&&!e.outlineOpen&&(e.outlineWidth=t,e.outlineOpen=!0)},closeOutline:function(){e.outlineElement&&(e.outlineOpen=!1)},setRippleCenter:function(t){e.lineRippleElement&&e.lineRippleElement.lineRippleFoundation.setRippleCenter(t)},notifyChange:(t=yr(gr().mark((function t(n){var i;return gr().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(e.valueSetDirectly||n!==e.value){t.next=2;break}return t.abrupt("return");case 2:return e.valueSetDirectly=!1,e.value=n,t.next=6,e.updateComplete;case 6:i=new Event("change",{bubbles:!0}),e.dispatchEvent(i);case 8:case"end":return t.stop()}}),t)}))),function(e){return t.apply(this,arguments)}),setSelectedText:function(t){return e.selectedText=t},isSelectAnchorFocused:function(){var t=e.anchorElement;return!!t&&t.getRootNode().activeElement===t},getSelectAnchorAttr:function(t){var n=e.anchorElement;return n?n.getAttribute(t):null},setSelectAnchorAttr:function(t,n){var i=e.anchorElement;i&&i.setAttribute(t,n)},removeSelectAnchorAttr:function(t){var n=e.anchorElement;n&&n.removeAttribute(t)},openMenu:function(){e.menuOpen=!0},closeMenu:function(){e.menuOpen=!1},addMenuClass:function(){},removeMenuClass:function(){},getAnchorElement:function(){return e.anchorElement},setMenuAnchorElement:function(){},setMenuAnchorCorner:function(){var t=e.menuElement;t&&(t.corner="BOTTOM_START")},setMenuWrapFocus:function(t){var n=e.menuElement;n&&(n.wrapFocus=t)},focusMenuItemAtIndex:function(t){var n=e.menuElement;if(n){var i=n.items[t];i&&i.focus()}},getMenuItemCount:function(){var t=e.menuElement;return t?t.items.length:0},getMenuItemValues:function(){var t=e.menuElement;return t?t.items.map((function(t){return t.value})):[]},getMenuItemTextAtIndex:function(t){var n=e.menuElement;if(!n)return"";var i=n.items[t];return i?i.text:""},getSelectedIndex:function(){return e.index},setSelectedIndex:function(){},isTypeaheadInProgress:function(){return _u(e.typeaheadState)},typeaheadMatchItem:function(t,n){if(!e.menuElement)return-1;var i={focusItemAtIndex:function(t){e.menuElement.focusItemAtIndex(t)},focusedItemIndex:n||e.menuElement.getFocusedItemIndex(),nextChar:t,sortedIndexByFirstChar:e.sortedIndexByFirstChar,skipFocus:!1,isItemAtIndexDisabled:function(t){return e.items[t].disabled}},o=gu(i,e.typeaheadState);return-1!==o&&e.select(o),o}})}},{key:"checkValidity",value:function(){var t=this._checkValidity(this.value);if(!t){var e=new Event("invalid",{bubbles:!1,cancelable:!0});this.dispatchEvent(e)}return t}},{key:"reportValidity",value:function(){var t=this.checkValidity();return this.isUiValid=t,t}},{key:"_checkValidity",value:function(t){var e=this.formElement.validity,n=Yf(e);if(this.validityTransform){var i=this.validityTransform(t,n);n=Object.assign(Object.assign({},n),i)}return this._validity=n,this._validity.valid}},{key:"setCustomValidity",value:function(t){this.validationMessage=t,this.formElement.setCustomValidity(t)}},{key:"getUpdateComplete",value:(a=yr(gr().mark((function t(){var n;return gr().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,this._menuUpdateComplete;case 2:return t.next=4,dr(e,"getUpdateComplete",this,3)([]);case 4:return n=t.sent,t.abrupt("return",n);case 6:case"end":return t.stop()}}),t,this)}))),function(){return a.apply(this,arguments)})},{key:"firstUpdated",value:(r=yr(gr().mark((function t(){var n,i,o=this;return gr().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!(n=this.menuElement)){t.next=5;break}return this._menuUpdateComplete=n.updateComplete,t.next=5,this._menuUpdateComplete;case 5:if(dr(e,"firstUpdated",this,3)([]),this.mdcFoundation.isValid=function(){return!0},this.mdcFoundation.setValid=function(){},this.mdcFoundation.setDisabled(this.disabled),this.validateOnInitialRender&&this.reportValidity(),this.selected){t.next=21;break}if(this.items.length||!this.slotElement||!this.slotElement.assignedNodes({flatten:!0}).length){t.next=16;break}return t.next=14,new Promise((function(t){return requestAnimationFrame(t)}));case 14:return t.next=16,this.layout();case 16:if(i=this.items.length&&""===this.items[0].value,this.value||!i){t.next=20;break}return this.select(0),t.abrupt("return");case 20:this.selectByValue(this.value);case 21:this.sortedIndexByFirstChar=vu(this.items.length,(function(t){return o.items[t].text}));case 22:case"end":return t.stop()}}),t,this)}))),function(){return r.apply(this,arguments)})},{key:"onItemsUpdated",value:function(){var t=this;this.sortedIndexByFirstChar=vu(this.items.length,(function(e){return t.items[e].text}))}},{key:"select",value:function(t){var e=this.menuElement;e&&e.select(t)}},{key:"selectByValue",value:function(t){for(var e=-1,n=0;n${this._localize("editor.label.selection")}
-${null!==(n=this._lastSelection)&&void 0!==n?n:"[]"}
- ${this._localize("common.old_configuration")}
-- ${this._localize("common.old_configuration_migration_link")} -
-${e}-