Various fixes, should be future safe for 0.82 too...

This commit is contained in:
Thomas Lovén 2018-11-01 14:28:05 +01:00
parent 739f496d8c
commit 9ed13c6f07

View File

@ -94,40 +94,46 @@ class FoldRow extends Polymer.Element {
this.dummy.hass = this._hass; this.dummy.hass = this._hass;
this.appendChild(this.dummy); this.appendChild(this.dummy);
const nextChild = (root) => {
let child = root.firstChild;
while(child && child.nodeType != 1) child = child.nextSibling;
return child;
}
this.dummy.updateComplete.then( () => { this.dummy.updateComplete.then( () => {
let divs = this.dummy.shadowRoot.querySelector("ha-card").querySelector("#states"); let divs = this.dummy.shadowRoot.querySelector("ha-card").querySelector("#states");
let child = divs.firstChild; let child = nextChild(divs)
while(child.nodeType != 1) child = child.nextSibling; this._addHeader(child, conf.shift())
child.style.width = '100%'; while(child = nextChild(divs)) {
this._addHeader(child, conf.shift());
child = divs.firstChild;
while(child) {
while(child && child.nodeType != 1) child = child.nextSibling;
if(!child) break;
this._addRow(child, conf.shift()); this._addRow(child, conf.shift());
child = divs.firstChild;
} }
this.update(); this.update();
}); });
} }
_addHeader(row, data) _addHeader(row, data)
{ {
this.items.push(row);
this.$.head.insertBefore(row, this.$.head.firstChild); this.$.head.insertBefore(row, this.$.head.firstChild);
row.style.width = '100%';
if(row.tagName === 'DIV') {
row = row.children[0];
}
this.items.push(row);
if(row.tagName === 'HUI-SECTION-ROW'){ if(row.tagName === 'HUI-SECTION-ROW'){
let div = row.shadowRoot.querySelector('.divider'); row.updateComplete.then( () => {
div.style.marginRight = '-53px'; row.shadowRoot.querySelector('.divider').style.marginRight = '-53px';
});
} }
} }
_addRow(row, data) _addRow(row, data)
{ {
this.items.push(row); if(row.tagName === 'DIV') {
this.items.push(row.children[0]);
} else {
this.items.push(row);
}
let item = document.createElement('ul'); let item = document.createElement('ul');
item.appendChild(row); item.appendChild(row);
row.classList.add('state-card-dialog'); row.classList.add('state-card-dialog');