Inline hass-attribute-util (#1196)

This commit is contained in:
Paulus Schoutsen 2018-05-19 16:12:11 -04:00 committed by GitHub
parent 1d144a101c
commit 4de7cbec30
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 20 additions and 18 deletions

View File

@ -2,7 +2,7 @@ import '@polymer/iron-flex-layout/iron-flex-layout-classes.js';
import { html } from '@polymer/polymer/lib/utils/html-tag.js'; import { html } from '@polymer/polymer/lib/utils/html-tag.js';
import { PolymerElement } from '@polymer/polymer/polymer-element.js'; import { PolymerElement } from '@polymer/polymer/polymer-element.js';
import '../util/hass-attributes-util.js'; import hassAttributeUtil from '../util/hass-attributes-util.js';
class HaAttributes extends PolymerElement { class HaAttributes extends PolymerElement {
static get template() { static get template() {
@ -47,7 +47,7 @@ class HaAttributes extends PolymerElement {
} }
computeFiltersArray(extraFilters) { computeFiltersArray(extraFilters) {
return Object.keys(window.hassAttributeUtil.LOGIC_STATE_ATTRIBUTES).concat(extraFilters ? extraFilters.split(',') : []); return Object.keys(hassAttributeUtil.LOGIC_STATE_ATTRIBUTES).concat(extraFilters ? extraFilters.split(',') : []);
} }
computeDisplayAttributes(stateObj, filtersArray) { computeDisplayAttributes(stateObj, filtersArray) {

View File

@ -2,7 +2,7 @@ import '@polymer/paper-icon-button/paper-icon-button.js';
import { html } from '@polymer/polymer/lib/utils/html-tag.js'; import { html } from '@polymer/polymer/lib/utils/html-tag.js';
import { PolymerElement } from '@polymer/polymer/polymer-element.js'; import { PolymerElement } from '@polymer/polymer/polymer-element.js';
import '../../../util/hass-attributes-util.js'; import hassAttributeUtil from '../../../util/hass-attributes-util.js';
import '../ha-form-style.js'; import '../ha-form-style.js';
import './types/ha-customize-array.js'; import './types/ha-customize-array.js';
import './types/ha-customize-boolean.js'; import './types/ha-customize-boolean.js';
@ -56,7 +56,7 @@ class HaCustomizeAttribute extends PolymerElement {
itemObserver(item) { itemObserver(item) {
const wrapper = this.$.wrapper; const wrapper = this.$.wrapper;
const tag = window.hassAttributeUtil.TYPE_TO_TAG[item.type].toUpperCase(); const tag = hassAttributeUtil.TYPE_TO_TAG[item.type].toUpperCase();
let child; let child;
if (wrapper.lastChild && wrapper.lastChild.tagName === tag) { if (wrapper.lastChild && wrapper.lastChild.tagName === tag) {
child = wrapper.lastChild; child = wrapper.lastChild;

View File

@ -4,7 +4,7 @@ import '@polymer/paper-listbox/paper-listbox.js';
import { html } from '@polymer/polymer/lib/utils/html-tag.js'; import { html } from '@polymer/polymer/lib/utils/html-tag.js';
import { PolymerElement } from '@polymer/polymer/polymer-element.js'; import { PolymerElement } from '@polymer/polymer/polymer-element.js';
import '../../../util/hass-attributes-util.js'; import hassAttributeUtil from '../../../util/hass-attributes-util.js';
import './ha-form-customize-attributes.js'; import './ha-form-customize-attributes.js';
import computeStateDomain from '../../../common/entity/compute_state_domain'; import computeStateDomain from '../../../common/entity/compute_state_domain';
@ -152,8 +152,8 @@ class HaFormCustomize extends PolymerElement {
} }
_computeSingleAttribute(key, value, secondary) { _computeSingleAttribute(key, value, secondary) {
const config = window.hassAttributeUtil.LOGIC_STATE_ATTRIBUTES[key] const config = hassAttributeUtil.LOGIC_STATE_ATTRIBUTES[key]
|| { type: window.hassAttributeUtil.UNKNOWN_TYPE }; || { type: hassAttributeUtil.UNKNOWN_TYPE };
return this._initOpenObject(key, config.type === 'json' ? JSON.stringify(value) : value, secondary, config); return this._initOpenObject(key, config.type === 'json' ? JSON.stringify(value) : value, secondary, config);
} }
@ -196,9 +196,9 @@ class HaFormCustomize extends PolymerElement {
getNewAttributesOptions(localAttributes, globalAttributes, existingAttributes, newAttributes) { getNewAttributesOptions(localAttributes, globalAttributes, existingAttributes, newAttributes) {
const knownKeys = const knownKeys =
Object.keys(window.hassAttributeUtil.LOGIC_STATE_ATTRIBUTES) Object.keys(hassAttributeUtil.LOGIC_STATE_ATTRIBUTES)
.filter((key) => { .filter((key) => {
const conf = window.hassAttributeUtil.LOGIC_STATE_ATTRIBUTES[key]; const conf = hassAttributeUtil.LOGIC_STATE_ATTRIBUTES[key];
return conf && (!conf.domains || !this.entity || return conf && (!conf.domains || !this.entity ||
conf.domains.includes(computeStateDomain(this.entity))); conf.domains.includes(computeStateDomain(this.entity)));
}) })
@ -214,7 +214,7 @@ class HaFormCustomize extends PolymerElement {
const option = this.newAttributesOptions[selected]; const option = this.newAttributesOptions[selected];
if (selected === this.newAttributesOptions.length - 1) { if (selected === this.newAttributesOptions.length - 1) {
// The "Other" option. // The "Other" option.
const attr = this._initOpenObject('', '', false /* secondary */, { type: window.hassAttributeUtil.ADD_TYPE }); const attr = this._initOpenObject('', '', false /* secondary */, { type: hassAttributeUtil.ADD_TYPE });
this.push('newAttributes', attr); this.push('newAttributes', attr);
this.selectedNewAttribute = -1; this.selectedNewAttribute = -1;
return; return;

View File

@ -1,6 +1,6 @@
window.hassAttributeUtil = window.hassAttributeUtil || {}; const hassAttributeUtil = {};
window.hassAttributeUtil.DOMAIN_DEVICE_CLASS = { hassAttributeUtil.DOMAIN_DEVICE_CLASS = {
binary_sensor: [ binary_sensor: [
'battery', 'battery',
'cold', 'cold',
@ -35,10 +35,10 @@ window.hassAttributeUtil.DOMAIN_DEVICE_CLASS = {
], ],
}; };
window.hassAttributeUtil.UNKNOWN_TYPE = 'json'; hassAttributeUtil.UNKNOWN_TYPE = 'json';
window.hassAttributeUtil.ADD_TYPE = 'key-value'; hassAttributeUtil.ADD_TYPE = 'key-value';
window.hassAttributeUtil.TYPE_TO_TAG = { hassAttributeUtil.TYPE_TO_TAG = {
string: 'ha-customize-string', string: 'ha-customize-string',
json: 'ha-customize-string', json: 'ha-customize-string',
icon: 'ha-customize-icon', icon: 'ha-customize-icon',
@ -51,8 +51,8 @@ window.hassAttributeUtil.TYPE_TO_TAG = {
// 1) Any key of this object won't be shown in more-info window. // 1) Any key of this object won't be shown in more-info window.
// 2) Any key which has value other than undefined will appear in customization // 2) Any key which has value other than undefined will appear in customization
// config according to its value. // config according to its value.
window.hassAttributeUtil.LOGIC_STATE_ATTRIBUTES = hassAttributeUtil.LOGIC_STATE_ATTRIBUTES =
window.hassAttributeUtil.LOGIC_STATE_ATTRIBUTES || { hassAttributeUtil.LOGIC_STATE_ATTRIBUTES || {
entity_picture: undefined, entity_picture: undefined,
friendly_name: { type: 'string', description: 'Name' }, friendly_name: { type: 'string', description: 'Name' },
icon: { type: 'icon' }, icon: { type: 'icon' },
@ -74,7 +74,7 @@ window.hassAttributeUtil.LOGIC_STATE_ATTRIBUTES =
custom_ui_state_card: { type: 'string' }, custom_ui_state_card: { type: 'string' },
device_class: { device_class: {
type: 'array', type: 'array',
options: window.hassAttributeUtil.DOMAIN_DEVICE_CLASS, options: hassAttributeUtil.DOMAIN_DEVICE_CLASS,
description: 'Device class', description: 'Device class',
domains: ['binary_sensor', 'cover', 'sensor'] domains: ['binary_sensor', 'cover', 'sensor']
}, },
@ -89,3 +89,5 @@ window.hassAttributeUtil.LOGIC_STATE_ATTRIBUTES =
}, },
unit_of_measurement: { type: 'string' }, unit_of_measurement: { type: 'string' },
}; };
export default hassAttributeUtil;