+
+
+
+
+
+
+
+ `;
+ }
+
+ firstUpdated() {
+ super.firstUpdated();
+ this.shadowRoot.getElementById('button-container').addEventListener('click', (ev) => ev.stopPropagation());
+ }
+
+ setConfig(config) {
+ this._config = { ...this._config, ...config };
+ }
+
+ updated(changedProperties) {
+ if (changedProperties.has("hass")) {
+ this.hassChanged();
+ }
+ }
+
hassChanged(hass) {
const config = this._config;
- const stateObj = hass.states[config.entity];
+ const stateObj = this.hass.states[config.entity];
const custTheme = config.customTheme;
const custSetpoint = config.customSetpoints;
const custTxt = config.customText;
const revButtons = config.reverseButtons;
const allowDisable = config.allowDisablingButtons;
- //const twoPosCvr = config.isTwoPositionCover;
const buttonWidth = config.width;
const buttonHeight = config.height;
const openedClr = config.isOpenedColor;
@@ -254,12 +266,6 @@ class CustomCoverPositionRow extends Polymer.Element {
}
}
- //let opentext = custOpenTxt;
- //let midopentext = custMidOpenTxt;
- //let midclosedtext = custMidClosedTxt;
- //let closedtext = custClosedTxt;
-
-
let opentext;
let midopentext;
let midclosedtext;
@@ -284,17 +290,6 @@ class CustomCoverPositionRow extends Polymer.Element {
}
- /*
- let hidemedium = 'display:block';
- let nohide = 'display:block';
-
- if (twoPosCvr) {
- hidemedium = 'display:none';
- } else {
- hidemedium = 'display:block';
- }
- */
-
let buttonwidth = buttonWidth;
let buttonheight = buttonHeight;
@@ -304,68 +299,55 @@ class CustomCoverPositionRow extends Polymer.Element {
let closeName = 'close';
if (revButtons) {
- this.setProperties({
- _stateObj: stateObj,
- _leftPosition: (opened === 'on' && allowDisable),
- _midLeftPosition: (midOpened === 'on' && allowDisable),
- _midRightPosition: (midClosed === 'on' && allowDisable),
- _rightPosition: (closed === 'on' && allowDisable),
- _width: buttonwidth,
- _height: buttonheight,
- _leftColor: openedcolor,
- _midLeftColor: midopenedcolor,
- _midRightColor: midclosedcolor,
- _rightColor: closedcolor,
- _openSP: openSP,
- _midOpenSP: midOpenSP,
- _midCloseSP: midCloseSP,
- _closeSP: closeSP,
- _leftText: opentext,
- _midLeftText: midopentext,
- _midRightText: midclosedtext,
- _rightText: closedtext,
- _leftName: openName,
- _midLeftName: midOpenName,
- _midRightName: midCloseName,
- _rightName: closeName,
- //_hideMidLeft: nohide,
- //_hideMidRight: hidemedium,
- });
+ this._stateObj = stateObj;
+ this._leftPosition = (opened === 'on' && allowDisable);
+ this._midLeftPosition = (midOpened === 'on' && allowDisable);
+ this._midRightPosition = (midClosed === 'on' && allowDisable);
+ this._rightPosition = (closed === 'on' && allowDisable);
+ this._width = buttonwidth;
+ this._height = buttonheight;
+ this._leftColor = openedcolor;
+ this._midLeftColor = midopenedcolor;
+ this._midRightColor = midclosedcolor;
+ this._rightColor = closedcolor;
+ this._openSP = openSP;
+ this._midOpenSP = midOpenSP;
+ this._midCloseSP = midCloseSP;
+ this._closeSP = closeSP;
+ this._leftText = opentext;
+ this._midLeftText = midopentext;
+ this._midRightText = midclosedtext;
+ this._rightText = closedtext;
+ this._leftName = openName;
+ this._midLeftName = midOpenName;
+ this._midRightName = midCloseName;
+ this._rightName = closeName;
} else {
- this.setProperties({
- _stateObj: stateObj,
- _leftPosition: (closed === 'on' && allowDisable),
- _midLeftPosition: (midClosed === 'on' && allowDisable),
- _midRightPosition: (midOpened === 'on' && allowDisable),
- _rightPosition: (opened === 'on' && allowDisable),
- _width: buttonwidth,
- _height: buttonheight,
- _leftColor: closedcolor,
- _midLeftColor: midclosedcolor,
- _midRightColor: midopenedcolor,
- _rightColor: openedcolor,
- _closeSP: closeSP,
- _midCloseSP: midCloseSP,
- _midOpenSP: midOpenSP,
- _openSP: openSP,
- _leftText: closedtext,
- _midLeftText: midclosedtext,
- _midRightText: midopentext,
- _rightText: opentext,
- _leftName: closeName,
- _midLeftName: midCloseName,
- _midRightName: midOpenName,
- _rightName: openName,
- //_hideMidRight: nohide,
- //_hideMidLeft: hidemedium,
- });
+ this._stateObj = stateObj;
+ this._leftPosition = (closed === 'on' && allowDisable);
+ this._midLeftPosition = (midClosed === 'on' && allowDisable);
+ this._midRightPosition = (midOpened === 'on' && allowDisable);
+ this._rightPosition = (opened === 'on' && allowDisable);
+ this._width = buttonwidth;
+ this._height = buttonheight;
+ this._leftColor = closedcolor;
+ this._midLeftColor= midclosedcolor;
+ this._midRightColor = midopenedcolor;
+ this._rightColor = openedcolor;
+ this._closeSP = closeSP;
+ this._midCloseSP = midCloseSP;
+ this._midOpenSP = midOpenSP;
+ this._openSP = openSP;
+ this._leftText = closedtext;
+ this._midLeftText = midclosedtext;
+ this._midRightText = midopentext;
+ this._rightText = opentext;
+ this._leftName = closeName;
+ this._midLeftName = midCloseName;
+ this._midRightName = midOpenName;
+ this._rightName = openName;
}
}
-
-
- stopPropagation(e) {
- e.stopPropagation();
- }
setPosition(e) {
const position = e.currentTarget.getAttribute('name');