mirror of
https://github.com/home-assistant/frontend.git
synced 2025-07-14 04:46:34 +00:00
Upgrade eslint to 4.8.0 (#445)
* Upgrade eslint * Fix post-merge errors
This commit is contained in:
parent
121c0d0879
commit
bc0d44ca81
@ -40,6 +40,9 @@
|
||||
"no-multi-assign": 0,
|
||||
"radix": 0,
|
||||
"no-alert": 0,
|
||||
"prefer-destructuring": 0,
|
||||
"no-restricted-globals": 0,
|
||||
"prefer-promise-reject-errors": 0,
|
||||
"import/prefer-default-export": 0,
|
||||
"react/jsx-no-bind": [2, { "ignoreRefs": true }],
|
||||
"react/jsx-no-duplicate-props": 2,
|
||||
|
@ -43,7 +43,9 @@ export default class Automation extends Component {
|
||||
}
|
||||
|
||||
render({ automation, isWide }) {
|
||||
const { alias, trigger, condition, action } = automation;
|
||||
const {
|
||||
alias, trigger, condition, action
|
||||
} = automation;
|
||||
|
||||
return (
|
||||
<div>
|
||||
|
@ -11,7 +11,9 @@ export default class NumericStateTrigger extends Component {
|
||||
|
||||
/* eslint-disable camelcase */
|
||||
render({ trigger }) {
|
||||
const { value_template, entity_id, below, above } = trigger;
|
||||
const {
|
||||
value_template, entity_id, below, above
|
||||
} = trigger;
|
||||
return (
|
||||
<div>
|
||||
<paper-input
|
||||
|
@ -11,7 +11,9 @@ export default class NumericStateCondition extends Component {
|
||||
|
||||
/* eslint-disable camelcase */
|
||||
render({ condition }) {
|
||||
const { value_template, entity_id, below, above } = condition;
|
||||
const {
|
||||
value_template, entity_id, below, above
|
||||
} = condition;
|
||||
return (
|
||||
<div>
|
||||
<paper-input
|
||||
|
@ -25,7 +25,9 @@ export default class SunCondition extends Component {
|
||||
|
||||
render({ condition }) {
|
||||
/* eslint-disable camelcase */
|
||||
const { after, after_offset, before, before_offset } = condition;
|
||||
const {
|
||||
after, after_offset, before, before_offset
|
||||
} = condition;
|
||||
return (
|
||||
<div>
|
||||
<label id="beforelabel">Before:</label>
|
||||
|
@ -74,5 +74,4 @@ export default class Action extends Component {
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -42,5 +42,4 @@ export default class Action extends Component {
|
||||
</paper-card>
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -34,9 +34,9 @@
|
||||
"bower": "^1.8.2",
|
||||
"css-slam": "^2.0.2",
|
||||
"del": "^3.0.0",
|
||||
"eslint": "^3.19.0",
|
||||
"eslint-config-airbnb-base": "^11.1.3",
|
||||
"eslint-plugin-html": "^2.0.1",
|
||||
"eslint": "^4.8.0",
|
||||
"eslint-config-airbnb-base": "^12.0.2",
|
||||
"eslint-plugin-html": "^3.2.2",
|
||||
"eslint-plugin-import": "^2.2.0",
|
||||
"eslint-plugin-react": "^7.0.0",
|
||||
"gulp": "^3.9.1",
|
||||
|
@ -239,28 +239,26 @@ Polymer({
|
||||
},
|
||||
|
||||
_updateComponent: function () {
|
||||
this._rendered = window.AutomationEditor(
|
||||
this.$.root, {
|
||||
automation: this.config,
|
||||
onChange: this.configChanged,
|
||||
isWide: this.isWide,
|
||||
}, this._rendered);
|
||||
this._rendered = window.AutomationEditor(this.$.root, {
|
||||
automation: this.config,
|
||||
onChange: this.configChanged,
|
||||
isWide: this.isWide,
|
||||
}, this._rendered);
|
||||
},
|
||||
|
||||
saveAutomation: function () {
|
||||
var id = this.creatingNew ? '' + Date.now() : this.automation.attributes.id;
|
||||
this.hass.callApi(
|
||||
'post', 'config/automation/config/' + id, this.config).then(function () {
|
||||
this.dirty = false;
|
||||
this.hass.callApi('post', 'config/automation/config/' + id, this.config).then(function () {
|
||||
this.dirty = false;
|
||||
|
||||
if (this.creatingNew) {
|
||||
history.replaceState(null, null, '/config/automation/edit/' + id);
|
||||
this.fire('location-changed');
|
||||
}
|
||||
}.bind(this), function (errors) {
|
||||
this.errors = errors.body.message;
|
||||
throw errors;
|
||||
}.bind(this));
|
||||
if (this.creatingNew) {
|
||||
history.replaceState(null, null, '/config/automation/edit/' + id);
|
||||
this.fire('location-changed');
|
||||
}
|
||||
}.bind(this), function (errors) {
|
||||
this.errors = errors.body.message;
|
||||
throw errors;
|
||||
}.bind(this));
|
||||
},
|
||||
|
||||
computeName: function (automation) {
|
||||
|
@ -119,8 +119,7 @@ Polymer({
|
||||
},
|
||||
|
||||
automationTapped: function (ev) {
|
||||
history.pushState(
|
||||
null, null, '/config/automation/edit/' + this.automations[ev.model.index].attributes.id);
|
||||
history.pushState(null, null, '/config/automation/edit/' + this.automations[ev.model.index].attributes.id);
|
||||
this.fire('location-changed');
|
||||
},
|
||||
|
||||
|
@ -74,8 +74,7 @@ class HaConfigCloudAccount extends window.hassMixins.EventsMixin(Polymer.Element
|
||||
}
|
||||
|
||||
handleLogout() {
|
||||
this.hass.callApi('post', 'cloud/logout').then(
|
||||
() => this.fire('ha-account-refreshed', { account: null }));
|
||||
this.hass.callApi('post', 'cloud/logout').then(() => this.fire('ha-account-refreshed', { account: null }));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -113,8 +113,7 @@
|
||||
|
||||
<script>
|
||||
class HaConfigCloudForgotPassword extends
|
||||
window.hassMixins.NavigateMixin(
|
||||
window.hassMixins.EventsMixin(Polymer.Element)) {
|
||||
window.hassMixins.NavigateMixin(window.hassMixins.EventsMixin(Polymer.Element)) {
|
||||
static get is() { return 'ha-config-cloud-forgot-password'; }
|
||||
|
||||
static get properties() {
|
||||
@ -180,15 +179,14 @@ class HaConfigCloudForgotPassword extends
|
||||
|
||||
this.hass.callApi('post', 'cloud/forgot_password', {
|
||||
email: this.email,
|
||||
}).then(
|
||||
() => {
|
||||
this._hasToken = true;
|
||||
this._requestInProgress = false;
|
||||
}, (err) => {
|
||||
this._requestInProgress = false;
|
||||
this.error = err && err.body && err.body.message ?
|
||||
err.body.message : 'Unknown error';
|
||||
});
|
||||
}).then(() => {
|
||||
this._hasToken = true;
|
||||
this._requestInProgress = false;
|
||||
}, (err) => {
|
||||
this._requestInProgress = false;
|
||||
this.error = err && err.body && err.body.message ?
|
||||
err.body.message : 'Unknown error';
|
||||
});
|
||||
}
|
||||
|
||||
_handleHaveToken() {
|
||||
@ -219,16 +217,15 @@ class HaConfigCloudForgotPassword extends
|
||||
email: this.email,
|
||||
confirmation_code: this._confirmationCode,
|
||||
new_password: this._newPassword,
|
||||
}).then(
|
||||
() => {
|
||||
// eslint-disable-next-line
|
||||
}).then(() => {
|
||||
// eslint-disable-next-line
|
||||
alert('Password reset successful! You can now login.');
|
||||
this.navigate('config/cloud/login');
|
||||
}, (err) => {
|
||||
this._requestInProgress = false;
|
||||
this.error = err && err.body && err.body.message ?
|
||||
err.body.message : 'Unknown error';
|
||||
});
|
||||
this.navigate('config/cloud/login');
|
||||
}, (err) => {
|
||||
this._requestInProgress = false;
|
||||
this.error = err && err.body && err.body.message ?
|
||||
err.body.message : 'Unknown error';
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -101,8 +101,7 @@
|
||||
|
||||
<script>
|
||||
class HaConfigCloudLogin extends
|
||||
window.hassMixins.NavigateMixin(
|
||||
window.hassMixins.EventsMixin(Polymer.Element)) {
|
||||
window.hassMixins.NavigateMixin(window.hassMixins.EventsMixin(Polymer.Element)) {
|
||||
static get is() { return 'ha-config-cloud-login'; }
|
||||
|
||||
static get properties() {
|
||||
@ -156,27 +155,26 @@ class HaConfigCloudLogin extends
|
||||
this.hass.callApi('post', 'cloud/login', {
|
||||
email: this.email,
|
||||
password: this._password,
|
||||
}).then(
|
||||
(account) => {
|
||||
this.fire('ha-account-refreshed', { account: account });
|
||||
this.email = '';
|
||||
this._password = '';
|
||||
}, (err) => {
|
||||
this._password = '';
|
||||
this._requestInProgress = false;
|
||||
if (!err || !err.body || !err.body.message) {
|
||||
this.error = 'Unknown error';
|
||||
return;
|
||||
} else if (err.body.code === 'UserNotConfirmed') {
|
||||
alert('You need to confirm your email before logging in.');
|
||||
this.navigate('/config/cloud/register#confirm');
|
||||
return;
|
||||
} else if (err.body.code === 'PasswordChangeRequired') {
|
||||
alert('You need to change your password before logging in.');
|
||||
this.navigate('/config/cloud/forgot-password');
|
||||
}
|
||||
this.error = err.body.message;
|
||||
});
|
||||
}).then((account) => {
|
||||
this.fire('ha-account-refreshed', { account: account });
|
||||
this.email = '';
|
||||
this._password = '';
|
||||
}, (err) => {
|
||||
this._password = '';
|
||||
this._requestInProgress = false;
|
||||
if (!err || !err.body || !err.body.message) {
|
||||
this.error = 'Unknown error';
|
||||
return;
|
||||
} else if (err.body.code === 'UserNotConfirmed') {
|
||||
alert('You need to confirm your email before logging in.');
|
||||
this.navigate('/config/cloud/register#confirm');
|
||||
return;
|
||||
} else if (err.body.code === 'PasswordChangeRequired') {
|
||||
alert('You need to change your password before logging in.');
|
||||
this.navigate('/config/cloud/forgot-password');
|
||||
}
|
||||
this.error = err.body.message;
|
||||
});
|
||||
}
|
||||
|
||||
_handleRegister() {
|
||||
|
@ -134,8 +134,7 @@
|
||||
|
||||
<script>
|
||||
class HaConfigCloudRegister extends
|
||||
window.hassMixins.NavigateMixin(
|
||||
window.hassMixins.EventsMixin(Polymer.Element)) {
|
||||
window.hassMixins.NavigateMixin(window.hassMixins.EventsMixin(Polymer.Element)) {
|
||||
static get is() { return 'ha-config-cloud-register'; }
|
||||
|
||||
static get properties() {
|
||||
@ -202,16 +201,15 @@ class HaConfigCloudRegister extends
|
||||
this.hass.callApi('post', 'cloud/register', {
|
||||
email: this.email,
|
||||
password: this._password,
|
||||
}).then(
|
||||
() => {
|
||||
this._requestInProgress = false;
|
||||
this._hasConfirmationCode = true;
|
||||
}, (err) => {
|
||||
this._password = '';
|
||||
this._requestInProgress = false;
|
||||
this._error = err && err.body && err.body.message ?
|
||||
err.body.message : 'Unknown error';
|
||||
});
|
||||
}).then(() => {
|
||||
this._requestInProgress = false;
|
||||
this._hasConfirmationCode = true;
|
||||
}, (err) => {
|
||||
this._password = '';
|
||||
this._requestInProgress = false;
|
||||
this._error = err && err.body && err.body.message ?
|
||||
err.body.message : 'Unknown error';
|
||||
});
|
||||
}
|
||||
|
||||
_handleShowVerifyAccount() {
|
||||
@ -234,17 +232,16 @@ class HaConfigCloudRegister extends
|
||||
this.hass.callApi('post', 'cloud/confirm_register', {
|
||||
email: this.email,
|
||||
confirmation_code: this._confirmationCode,
|
||||
}).then(
|
||||
() => {
|
||||
// eslint-disable-next-line
|
||||
}).then(() => {
|
||||
// eslint-disable-next-line
|
||||
alert('Confirmation successful. You can now login.');
|
||||
this.navigate('config/cloud/login');
|
||||
}, (err) => {
|
||||
this._confirmationCode = '';
|
||||
this._error = err && err.body && err.body.message ?
|
||||
err.body.message : 'Unknown error';
|
||||
this._requestInProgress = false;
|
||||
});
|
||||
this.navigate('config/cloud/login');
|
||||
}, (err) => {
|
||||
this._confirmationCode = '';
|
||||
this._error = err && err.body && err.body.message ?
|
||||
err.body.message : 'Unknown error';
|
||||
this._requestInProgress = false;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -75,7 +75,6 @@
|
||||
|
||||
<script>
|
||||
class HaConfigCore extends Polymer.Element {
|
||||
|
||||
static get is() { return 'ha-config-core'; }
|
||||
|
||||
static get properties() {
|
||||
|
@ -130,7 +130,6 @@
|
||||
|
||||
<script>
|
||||
class HaConfigSectionCore extends Polymer.Element {
|
||||
|
||||
static get is() { return 'ha-config-section-core'; }
|
||||
|
||||
static get properties() {
|
||||
|
@ -36,7 +36,6 @@
|
||||
|
||||
<script>
|
||||
class HaConfigSectionGroup extends Polymer.Element {
|
||||
|
||||
static get is() { return 'ha-config-section-group'; }
|
||||
|
||||
static get properties() {
|
||||
|
@ -66,7 +66,6 @@
|
||||
|
||||
<script>
|
||||
class HaConfigSectionHassbian extends Polymer.Element {
|
||||
|
||||
static get is() { return 'ha-config-section-hassbian'; }
|
||||
|
||||
static get properties() {
|
||||
|
@ -35,7 +35,6 @@
|
||||
|
||||
<script>
|
||||
class HaConfigSectionThemes extends window.hassMixins.EventsMixin(Polymer.Element) {
|
||||
|
||||
static get is() { return 'ha-config-section-themes'; }
|
||||
|
||||
static get properties() {
|
||||
|
@ -132,7 +132,6 @@
|
||||
|
||||
<script>
|
||||
class HaFormGroup extends Polymer.Element {
|
||||
|
||||
static get is() { return 'ha-form-group'; }
|
||||
|
||||
static get properties() {
|
||||
|
@ -33,7 +33,6 @@
|
||||
|
||||
<script>
|
||||
class HaCustomizeAttribute extends Polymer.Element {
|
||||
|
||||
static get is() { return 'ha-customize-attribute'; }
|
||||
|
||||
static get properties() {
|
||||
|
@ -21,7 +21,6 @@
|
||||
|
||||
<script>
|
||||
class HaFormCustomizeAttributes extends Polymer.MutableData(Polymer.Element) {
|
||||
|
||||
static get is() { return 'ha-form-customize-attributes'; }
|
||||
|
||||
static get properties() {
|
||||
|
@ -72,7 +72,6 @@
|
||||
|
||||
<script>
|
||||
class HaFormCustomize extends Polymer.Element {
|
||||
|
||||
static get is() { return 'ha-form-customize'; }
|
||||
|
||||
static get properties() {
|
||||
@ -139,17 +138,17 @@ class HaFormCustomize extends Polymer.Element {
|
||||
loadEntity(entity) {
|
||||
this.entity = entity;
|
||||
return this.hass.callApi('GET', 'config/customize/config/' + entity.entity_id)
|
||||
.then((data) => {
|
||||
this.localConfig = data.local;
|
||||
this.globalConfig = data.global;
|
||||
this.newAttributes = [];
|
||||
});
|
||||
.then((data) => {
|
||||
this.localConfig = data.local;
|
||||
this.globalConfig = data.global;
|
||||
this.newAttributes = [];
|
||||
});
|
||||
}
|
||||
|
||||
saveEntity() {
|
||||
const data = {};
|
||||
const attrs = this.localAttributes.concat(
|
||||
this.globalAttributes, this.existingAttributes, this.newAttributes);
|
||||
const attrs = this.localAttributes
|
||||
.concat(this.globalAttributes, this.existingAttributes, this.newAttributes);
|
||||
attrs.forEach((attr) => {
|
||||
if (attr.closed || attr.secondary || !attr.attribute || !attr.value) return;
|
||||
const value = attr.type === 'json' ? JSON.parse(attr.value) : attr.value;
|
||||
@ -190,14 +189,14 @@ class HaFormCustomize extends Polymer.Element {
|
||||
const localKeys = Object.keys(localConfig);
|
||||
const globalKeys = Object.keys(globalConfig);
|
||||
const entityKeys = Object.keys(entity.attributes)
|
||||
.filter(key => !localKeys.includes(key) && !globalKeys.includes(key));
|
||||
.filter(key => !localKeys.includes(key) && !globalKeys.includes(key));
|
||||
return this._computeAttributes(entity.attributes, entityKeys, true);
|
||||
}
|
||||
|
||||
computeShowWarning(localConfig, globalConfig) {
|
||||
if (!localConfig || !globalConfig) return false;
|
||||
return Object.keys(localConfig).some(
|
||||
key => JSON.stringify(globalConfig[key]) !== JSON.stringify(localConfig[key]));
|
||||
return Object.keys(localConfig)
|
||||
.some(key => JSON.stringify(globalConfig[key]) !== JSON.stringify(localConfig[key]));
|
||||
}
|
||||
|
||||
filterFromAttributes(attributes) {
|
||||
@ -207,15 +206,15 @@ class HaFormCustomize extends Polymer.Element {
|
||||
getNewAttributesOptions(localAttributes, globalAttributes, existingAttributes, newAttributes) {
|
||||
const knownKeys =
|
||||
Object.keys(window.hassAttributeUtil.LOGIC_STATE_ATTRIBUTES)
|
||||
.filter((key) => {
|
||||
const conf = window.hassAttributeUtil.LOGIC_STATE_ATTRIBUTES[key];
|
||||
return conf && (!conf.domains || !this.entity ||
|
||||
.filter((key) => {
|
||||
const conf = window.hassAttributeUtil.LOGIC_STATE_ATTRIBUTES[key];
|
||||
return conf && (!conf.domains || !this.entity ||
|
||||
conf.domains.includes(window.hassUtil.computeDomain(this.entity)));
|
||||
})
|
||||
.filter(this.filterFromAttributes(localAttributes))
|
||||
.filter(this.filterFromAttributes(globalAttributes))
|
||||
.filter(this.filterFromAttributes(existingAttributes))
|
||||
.filter(this.filterFromAttributes(newAttributes));
|
||||
})
|
||||
.filter(this.filterFromAttributes(localAttributes))
|
||||
.filter(this.filterFromAttributes(globalAttributes))
|
||||
.filter(this.filterFromAttributes(existingAttributes))
|
||||
.filter(this.filterFromAttributes(newAttributes));
|
||||
return knownKeys.sort().concat('Other');
|
||||
}
|
||||
|
||||
@ -268,7 +267,11 @@ class HaFormCustomize extends Polymer.Element {
|
||||
this.hasNewAttributes =
|
||||
this.newAttributes && this.newAttributes.some(attr => !attr.closed);
|
||||
this.newAttributesOptions = this.getNewAttributesOptions(
|
||||
this.localAttributes, this.globalAttributes, this.existingAttributes, this.newAttributes);
|
||||
this.localAttributes,
|
||||
this.globalAttributes,
|
||||
this.existingAttributes,
|
||||
this.newAttributes
|
||||
);
|
||||
}
|
||||
}
|
||||
customElements.define(HaFormCustomize.is, HaFormCustomize);
|
||||
|
@ -31,7 +31,6 @@
|
||||
|
||||
<script>
|
||||
class HaCustomizeArray extends window.hassMixins.EventsMixin(Polymer.Element) {
|
||||
|
||||
static get is() { return 'ha-customize-array'; }
|
||||
|
||||
static get properties() {
|
||||
@ -58,7 +57,6 @@ class HaCustomizeArray extends window.hassMixins.EventsMixin(Polymer.Element) {
|
||||
const options = this.getOptions(item);
|
||||
return options.indexOf(item.value);
|
||||
}
|
||||
|
||||
}
|
||||
customElements.define(HaCustomizeArray.is, HaCustomizeArray);
|
||||
</script>
|
||||
|
@ -14,7 +14,6 @@
|
||||
|
||||
<script>
|
||||
class HaCustomizeBoolean extends Polymer.Element {
|
||||
|
||||
static get is() { return 'ha-customize-boolean'; }
|
||||
|
||||
static get properties() {
|
||||
|
@ -27,7 +27,6 @@
|
||||
|
||||
<script>
|
||||
class HaCustomizeIcon extends Polymer.Element {
|
||||
|
||||
static get is() { return 'ha-customize-icon'; }
|
||||
|
||||
static get properties() {
|
||||
|
@ -30,7 +30,6 @@
|
||||
|
||||
<script>
|
||||
class HaCustomizeKeyValue extends Polymer.Element {
|
||||
|
||||
static get is() { return 'ha-customize-key-value'; }
|
||||
|
||||
static get properties() {
|
||||
|
@ -13,7 +13,6 @@
|
||||
|
||||
<script>
|
||||
class HaCustomizeString extends Polymer.Element {
|
||||
|
||||
static get is() { return 'ha-customize-string'; }
|
||||
|
||||
static get properties() {
|
||||
|
@ -74,8 +74,7 @@ Polymer({
|
||||
},
|
||||
|
||||
_computeLoaded: function (hass, component) {
|
||||
return component.loaded || window.hassUtil.isComponentLoaded(
|
||||
hass, component.domain);
|
||||
return component.loaded || window.hassUtil.isComponentLoaded(hass, component.domain);
|
||||
},
|
||||
|
||||
_computeCaption: function (component) {
|
||||
@ -87,8 +86,7 @@ Polymer({
|
||||
},
|
||||
|
||||
_navigate: function (ev) {
|
||||
history.pushState(
|
||||
null, null, '/config/' + ev.model.item.domain);
|
||||
history.pushState(null, null, '/config/' + ev.model.item.domain);
|
||||
this.fire('location-changed');
|
||||
},
|
||||
});
|
||||
|
@ -132,9 +132,7 @@ class HaPanelConfig extends window.hassMixins.EventsMixin(Polymer.Element) {
|
||||
ready() {
|
||||
super.ready();
|
||||
if (window.hassUtil.isComponentLoaded(this.hass, 'cloud')) {
|
||||
this.hass.callApi('get', 'cloud/account').then(
|
||||
(account) => { this.account = account; }
|
||||
);
|
||||
this.hass.callApi('get', 'cloud/account').then((account) => { this.account = account; });
|
||||
}
|
||||
this.addEventListener('ha-account-refreshed', (ev) => {
|
||||
this.account = ev.detail.account;
|
||||
|
@ -234,28 +234,26 @@ Polymer({
|
||||
},
|
||||
|
||||
_updateComponent: function () {
|
||||
this._rendered = window.ScriptEditor(
|
||||
this.$.root, {
|
||||
script: this.config,
|
||||
onChange: this.configChanged,
|
||||
isWide: this.isWide,
|
||||
}, this._rendered);
|
||||
this._rendered = window.ScriptEditor(this.$.root, {
|
||||
script: this.config,
|
||||
onChange: this.configChanged,
|
||||
isWide: this.isWide,
|
||||
}, this._rendered);
|
||||
},
|
||||
|
||||
saveScript: function () {
|
||||
var id = this.creatingNew ? '' + Date.now() : window.hassUtil.computeObjectId(this.script);
|
||||
this.hass.callApi(
|
||||
'post', 'config/script/config/' + id, this.config).then(function () {
|
||||
this.dirty = false;
|
||||
this.hass.callApi('post', 'config/script/config/' + id, this.config).then(function () {
|
||||
this.dirty = false;
|
||||
|
||||
if (this.creatingNew) {
|
||||
history.replaceState(null, null, '/config/script/edit/' + id);
|
||||
this.fire('location-changed');
|
||||
}
|
||||
}.bind(this), function (errors) {
|
||||
this.errors = errors.body.message;
|
||||
throw errors;
|
||||
}.bind(this));
|
||||
if (this.creatingNew) {
|
||||
history.replaceState(null, null, '/config/script/edit/' + id);
|
||||
this.fire('location-changed');
|
||||
}
|
||||
}.bind(this), function (errors) {
|
||||
this.errors = errors.body.message;
|
||||
throw errors;
|
||||
}.bind(this));
|
||||
},
|
||||
|
||||
computeName: function (script) {
|
||||
|
@ -115,8 +115,7 @@ Polymer({
|
||||
},
|
||||
|
||||
scriptTapped: function (ev) {
|
||||
history.pushState(
|
||||
null, null, '/config/script/edit/' + this.scripts[ev.model.index].entity_id);
|
||||
history.pushState(null, null, '/config/script/edit/' + this.scripts[ev.model.index].entity_id);
|
||||
this.fire('location-changed');
|
||||
},
|
||||
|
||||
|
@ -449,38 +449,33 @@ Polymer({
|
||||
this.selectedConfigParameterValue = -1;
|
||||
this.selectedGroup = -1;
|
||||
|
||||
this.hass.callApi('GET', 'zwave/config/' + this.nodes[selectedNode].attributes.node_id).then(
|
||||
(configs) => {
|
||||
this.config = this._objToArray(configs);
|
||||
});
|
||||
this.hass.callApi('GET', 'zwave/config/' + this.nodes[selectedNode].attributes.node_id).then((configs) => {
|
||||
this.config = this._objToArray(configs);
|
||||
});
|
||||
|
||||
this.hass.callApi('GET', 'zwave/values/' + this.nodes[selectedNode].attributes.node_id).then(
|
||||
(values) => {
|
||||
this.values = this._objToArray(values);
|
||||
});
|
||||
this.hass.callApi('GET', 'zwave/values/' + this.nodes[selectedNode].attributes.node_id).then((values) => {
|
||||
this.values = this._objToArray(values);
|
||||
});
|
||||
|
||||
this.hass.callApi('GET', 'zwave/groups/' + this.nodes[selectedNode].attributes.node_id).then(
|
||||
(groups) => {
|
||||
this.groups = this._objToArray(groups);
|
||||
});
|
||||
this.hass.callApi('GET', 'zwave/groups/' + this.nodes[selectedNode].attributes.node_id).then((groups) => {
|
||||
this.groups = this._objToArray(groups);
|
||||
});
|
||||
|
||||
this.hasNodeUserCodes = false;
|
||||
this.notifyPath('hasNodeUserCodes');
|
||||
this.hass.callApi('GET', 'zwave/usercodes/' + this.nodes[selectedNode].attributes.node_id).then(
|
||||
(usercodes) => {
|
||||
this.userCodes = this._objToArray(usercodes);
|
||||
this.hasNodeUserCodes = this.userCodes.length > 0;
|
||||
this.notifyPath('hasNodeUserCodes');
|
||||
});
|
||||
this.hass.callApi('GET', 'zwave/usercodes/' + this.nodes[selectedNode].attributes.node_id).then((usercodes) => {
|
||||
this.userCodes = this._objToArray(usercodes);
|
||||
this.hasNodeUserCodes = this.userCodes.length > 0;
|
||||
this.notifyPath('hasNodeUserCodes');
|
||||
});
|
||||
},
|
||||
|
||||
selectedEntityChanged: function (selectedEntity) {
|
||||
if (selectedEntity === -1) return;
|
||||
var el = this;
|
||||
el.hass.callApi('GET', 'zwave/values/' + el.nodes[el.selectedNode].attributes.node_id).then(
|
||||
(values) => {
|
||||
el.values = el._objToArray(values);
|
||||
});
|
||||
el.hass.callApi('GET', 'zwave/values/' + el.nodes[el.selectedNode].attributes.node_id).then((values) => {
|
||||
el.values = el._objToArray(values);
|
||||
});
|
||||
|
||||
var valueId = el.entities[selectedEntity].attributes.value_id;
|
||||
var valueData = el.values.find(function (obj) { return obj.key === valueId; });
|
||||
@ -532,8 +527,10 @@ Polymer({
|
||||
},
|
||||
|
||||
computeNodeNameServiceData: function (newNodeNameInput) {
|
||||
return { node_id: this.nodes[this.selectedNode].attributes.node_id,
|
||||
name: newNodeNameInput };
|
||||
return {
|
||||
node_id: this.nodes[this.selectedNode].attributes.node_id,
|
||||
name: newNodeNameInput
|
||||
};
|
||||
},
|
||||
|
||||
computeRefreshEntityServiceData: function (selectedEntity) {
|
||||
@ -555,8 +552,7 @@ Polymer({
|
||||
ignored: this.entityIgnored,
|
||||
polling_intensity: parseInt(this.entityPollingIntensity),
|
||||
};
|
||||
return this.hass.callApi(
|
||||
'POST', 'config/zwave/device_config/' + this.entities[this.selectedEntity].entity_id, data);
|
||||
return this.hass.callApi('POST', 'config/zwave/device_config/' + this.entities[this.selectedEntity].entity_id, data);
|
||||
},
|
||||
|
||||
toggleHelp: function () {
|
||||
|
@ -220,25 +220,26 @@ Polymer({
|
||||
|
||||
computeAssocServiceData: function (selectedGroup, type) {
|
||||
if (!this.groups === -1 || selectedGroup === -1 || this.selectedNode === -1) return -1;
|
||||
return { node_id: this.nodes[this.selectedNode].attributes.node_id,
|
||||
return {
|
||||
node_id: this.nodes[this.selectedNode].attributes.node_id,
|
||||
association: type,
|
||||
target_node_id: this.nodes[this.selectedTargetNode].attributes.node_id,
|
||||
group: this.groups[selectedGroup].key };
|
||||
group: this.groups[selectedGroup].key
|
||||
};
|
||||
},
|
||||
|
||||
refreshGroups: function (selectedNode) {
|
||||
var groupData = [];
|
||||
this.hass.callApi('GET', 'zwave/groups/' + this.nodes[selectedNode].attributes.node_id).then(
|
||||
function (groups) {
|
||||
Object.keys(groups).forEach(function (key) {
|
||||
groupData.push({
|
||||
key: key,
|
||||
value: groups[key],
|
||||
});
|
||||
this.hass.callApi('GET', 'zwave/groups/' + this.nodes[selectedNode].attributes.node_id).then(function (groups) {
|
||||
Object.keys(groups).forEach(function (key) {
|
||||
groupData.push({
|
||||
key: key,
|
||||
value: groups[key],
|
||||
});
|
||||
this.groups = groupData;
|
||||
this.selectedGroupChanged(this.selectedGroup);
|
||||
}.bind(this));
|
||||
});
|
||||
this.groups = groupData;
|
||||
this.selectedGroupChanged(this.selectedGroup);
|
||||
}.bind(this));
|
||||
},
|
||||
|
||||
selectedGroupChanged: function (selectedGroup) {
|
||||
|
@ -236,8 +236,10 @@ Polymer({
|
||||
},
|
||||
|
||||
computeWakeupServiceData: function (wakeupInput) {
|
||||
return { node_id: this.nodes[this.selectedNode].attributes.node_id,
|
||||
value: wakeupInput };
|
||||
return {
|
||||
node_id: this.nodes[this.selectedNode].attributes.node_id,
|
||||
value: wakeupInput
|
||||
};
|
||||
},
|
||||
|
||||
computeConfigValueHelp: function (selectedConfigParameter) {
|
||||
@ -257,9 +259,11 @@ Polymer({
|
||||
} if (this.selectedConfigParameterType === 'List') {
|
||||
valueData = this.selectedConfigParameterValues[selectedConfigValue];
|
||||
}
|
||||
return { node_id: this.nodes[this.selectedNode].attributes.node_id,
|
||||
return {
|
||||
node_id: this.nodes[this.selectedNode].attributes.node_id,
|
||||
parameter: this.config[this.selectedConfigParameter].key,
|
||||
value: valueData };
|
||||
value: valueData
|
||||
};
|
||||
},
|
||||
|
||||
selectedConfigParameterChanged: function (selectedConfigParameter) {
|
||||
@ -300,17 +304,16 @@ Polymer({
|
||||
|
||||
refreshConfig: function (selectedNode) {
|
||||
var configData = [];
|
||||
this.hass.callApi('GET', 'zwave/config/' + this.nodes[selectedNode].attributes.node_id).then(
|
||||
function (config) {
|
||||
Object.keys(config).forEach(function (key) {
|
||||
configData.push({
|
||||
key: key,
|
||||
value: config[key],
|
||||
});
|
||||
this.hass.callApi('GET', 'zwave/config/' + this.nodes[selectedNode].attributes.node_id).then(function (config) {
|
||||
Object.keys(config).forEach(function (key) {
|
||||
configData.push({
|
||||
key: key,
|
||||
value: config[key],
|
||||
});
|
||||
this.config = configData;
|
||||
this.selectedConfigParameterChanged(this.selectedConfigParameter);
|
||||
}.bind(this));
|
||||
});
|
||||
this.config = configData;
|
||||
this.selectedConfigParameterChanged(this.selectedConfigParameter);
|
||||
}.bind(this));
|
||||
},
|
||||
});
|
||||
</script>
|
||||
|
@ -145,13 +145,17 @@ Polymer({
|
||||
var valueData = null;
|
||||
if (type === 'Add') {
|
||||
valueData = selectedUserCodeValue;
|
||||
serviceData = { node_id: this.nodes[this.selectedNode].attributes.node_id,
|
||||
serviceData = {
|
||||
node_id: this.nodes[this.selectedNode].attributes.node_id,
|
||||
code_slot: this.selectedUserCode,
|
||||
usercode: valueData };
|
||||
usercode: valueData
|
||||
};
|
||||
}
|
||||
if (type === 'Delete') {
|
||||
serviceData = { node_id: this.nodes[this.selectedNode].attributes.node_id,
|
||||
code_slot: this.selectedUserCode };
|
||||
serviceData = {
|
||||
node_id: this.nodes[this.selectedNode].attributes.node_id,
|
||||
code_slot: this.selectedUserCode
|
||||
};
|
||||
}
|
||||
return serviceData;
|
||||
},
|
||||
@ -159,17 +163,16 @@ Polymer({
|
||||
refreshUserCodes: function (selectedNode) {
|
||||
this.selectedUserCodeValue = '';
|
||||
var userCodes = [];
|
||||
this.hass.callApi('GET', 'zwave/usercodes/' + this.nodes[selectedNode].attributes.node_id).then(
|
||||
function (usercodes) {
|
||||
Object.keys(usercodes).forEach(function (key) {
|
||||
userCodes.push({
|
||||
key: key,
|
||||
value: usercodes[key],
|
||||
});
|
||||
this.hass.callApi('GET', 'zwave/usercodes/' + this.nodes[selectedNode].attributes.node_id).then(function (usercodes) {
|
||||
Object.keys(usercodes).forEach(function (key) {
|
||||
userCodes.push({
|
||||
key: key,
|
||||
value: usercodes[key],
|
||||
});
|
||||
this.userCodes = userCodes;
|
||||
this.selectedUserCodeChanged(this.selectedUserCode);
|
||||
}.bind(this));
|
||||
});
|
||||
this.userCodes = userCodes;
|
||||
this.selectedUserCodeChanged(this.selectedUserCode);
|
||||
}.bind(this));
|
||||
},
|
||||
});
|
||||
</script>
|
||||
|
@ -122,17 +122,16 @@ Polymer({
|
||||
|
||||
refreshValues: function (selectedNode) {
|
||||
var valueData = [];
|
||||
this.hass.callApi('GET', 'zwave/values/' + this.nodes[selectedNode].attributes.node_id).then(
|
||||
function (values) {
|
||||
Object.keys(values).forEach(function (key) {
|
||||
valueData.push({
|
||||
key: key,
|
||||
value: values[key],
|
||||
});
|
||||
this.hass.callApi('GET', 'zwave/values/' + this.nodes[selectedNode].attributes.node_id).then(function (values) {
|
||||
Object.keys(values).forEach(function (key) {
|
||||
valueData.push({
|
||||
key: key,
|
||||
value: values[key],
|
||||
});
|
||||
this.values = valueData;
|
||||
this.selectedValueChanged(this.selectedValue);
|
||||
}.bind(this));
|
||||
});
|
||||
this.values = valueData;
|
||||
this.selectedValueChanged(this.selectedValue);
|
||||
}.bind(this));
|
||||
},
|
||||
|
||||
computeValueNameServiceData: function (newValueNameInput) {
|
||||
|
@ -141,10 +141,9 @@ Polymer({
|
||||
|
||||
this.errorLog = 'Loading error log…';
|
||||
|
||||
this.hass.callApi('GET', 'error_log').then(
|
||||
function (log) {
|
||||
this.errorLog = log || 'No errors have been reported.';
|
||||
}.bind(this));
|
||||
this.hass.callApi('GET', 'error_log').then(function (log) {
|
||||
this.errorLog = log || 'No errors have been reported.';
|
||||
}.bind(this));
|
||||
},
|
||||
});
|
||||
</script>
|
||||
|
@ -177,8 +177,7 @@ Polymer({
|
||||
_computeEndTime: function (_currentDate, periodIndex) {
|
||||
var startTime = this._computeStartTime(_currentDate);
|
||||
var endTime = new Date(startTime);
|
||||
endTime.setDate(
|
||||
startTime.getDate() + this._computeFilterDays(periodIndex));
|
||||
endTime.setDate(startTime.getDate() + this._computeFilterDays(periodIndex));
|
||||
return endTime;
|
||||
},
|
||||
|
||||
|
@ -52,8 +52,8 @@ Polymer({
|
||||
var map = this._map = window.L.map(this.$.map);
|
||||
var style = document.createElement('link');
|
||||
style.setAttribute('href', window.HASS_DEV ?
|
||||
'/static/home-assistant-polymer/bower_components/leaflet/dist/leaflet.css' :
|
||||
'/static/images/leaflet/leaflet.css');
|
||||
'/static/home-assistant-polymer/bower_components/leaflet/dist/leaflet.css' :
|
||||
'/static/images/leaflet/leaflet.css');
|
||||
style.setAttribute('rel', 'stylesheet');
|
||||
this.$.map.parentNode.appendChild(style);
|
||||
map.setView([51.505, -0.09], 13);
|
||||
@ -79,10 +79,10 @@ Polymer({
|
||||
if (this._mapItems.length === 0) {
|
||||
this._map.setView(
|
||||
new window.L.LatLng(this.hass.config.core.latitude, this.hass.config.core.longitude),
|
||||
14);
|
||||
14
|
||||
);
|
||||
} else {
|
||||
bounds = new window.L.latLngBounds(
|
||||
this._mapItems.map(function (item) { return item.getLatLng(); }));
|
||||
bounds = new window.L.latLngBounds(this._mapItems.map(item => item.getLatLng()));
|
||||
this._map.fitBounds(bounds.pad(0.5));
|
||||
}
|
||||
},
|
||||
|
@ -91,7 +91,8 @@ Polymer({
|
||||
function () {
|
||||
this.updateCameraFeedSrc(this.stateObj);
|
||||
}.bind(this),
|
||||
this.UPDATE_INTERVAL);
|
||||
this.UPDATE_INTERVAL
|
||||
);
|
||||
},
|
||||
|
||||
detached: function () {
|
||||
|
@ -22,8 +22,10 @@ Polymer({
|
||||
cardDataChanged: function (newData) {
|
||||
if (!newData) return;
|
||||
|
||||
window.hassUtil.dynamicContentUpdater(this, 'HA-' + newData.cardType.toUpperCase() + '-CARD',
|
||||
newData);
|
||||
window.hassUtil.dynamicContentUpdater(
|
||||
this, 'HA-' + newData.cardType.toUpperCase() + '-CARD',
|
||||
newData
|
||||
);
|
||||
},
|
||||
});
|
||||
</script>
|
||||
|
@ -153,8 +153,7 @@
|
||||
}
|
||||
|
||||
if (!this.chartEngine) {
|
||||
this.chartEngine = new window.google.visualization.LineChart(
|
||||
this.$.chart_id);
|
||||
this.chartEngine = new window.google.visualization.LineChart(this.$.chart_id);
|
||||
}
|
||||
|
||||
if (!this.attr.forecast) {
|
||||
|
@ -129,7 +129,8 @@ Polymer({
|
||||
currentState = this.stateObj;
|
||||
this.hass.callService(
|
||||
serviceDomain, service,
|
||||
{ entity_id: this.stateObj.entity_id })
|
||||
{ entity_id: this.stateObj.entity_id }
|
||||
)
|
||||
.then(function () {
|
||||
setTimeout(function () {
|
||||
// If after 2 seconds we have not received a state update
|
||||
|
@ -116,7 +116,7 @@ Polymer({
|
||||
return window.hassUtil.stateIcon(state);
|
||||
case 'sun':
|
||||
return state.state === 'above_horizon' ?
|
||||
window.hassUtil.domainIcon(domain) : 'mdi:brightness-3';
|
||||
window.hassUtil.domainIcon(domain) : 'mdi:brightness-3';
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
|
@ -57,10 +57,9 @@
|
||||
if (!stateObj) {
|
||||
return [];
|
||||
}
|
||||
return Object.keys(stateObj.attributes).filter(
|
||||
function (key) {
|
||||
return filtersArray.indexOf(key) === -1;
|
||||
});
|
||||
return Object.keys(stateObj.attributes).filter(function (key) {
|
||||
return filtersArray.indexOf(key) === -1;
|
||||
});
|
||||
},
|
||||
|
||||
formatAttribute: function (attribute) {
|
||||
|
@ -189,19 +189,23 @@
|
||||
'updateCards(columns, states, showIntroduction, panelVisible, viewVisible, orderedGroups)',
|
||||
],
|
||||
|
||||
updateCards: function (columns, states, showIntroduction, panelVisible, viewVisible,
|
||||
orderedGroups) {
|
||||
/* eslint-disable no-console */
|
||||
updateCards: function (
|
||||
columns,
|
||||
states,
|
||||
showIntroduction,
|
||||
panelVisible,
|
||||
viewVisible,
|
||||
orderedGroups
|
||||
) {
|
||||
if (!panelVisible || !viewVisible) {
|
||||
return;
|
||||
}
|
||||
this.debounce(
|
||||
'updateCards', function () {
|
||||
// Things might have changed since it got scheduled.
|
||||
if (this.panelVisible && this.viewVisible) {
|
||||
this.cards = this.computeCards(columns, states, showIntroduction, orderedGroups);
|
||||
}
|
||||
}.bind(this), 10);
|
||||
this.debounce('updateCards', function () {
|
||||
// Things might have changed since it got scheduled.
|
||||
if (this.panelVisible && this.viewVisible) {
|
||||
this.cards = this.computeCards(columns, states, showIntroduction, orderedGroups);
|
||||
}
|
||||
}.bind(this), 10);
|
||||
},
|
||||
|
||||
computeCards: function (columns, states, showIntroduction, orderedGroups) {
|
||||
|
@ -99,8 +99,7 @@
|
||||
}, 2010, this);
|
||||
}
|
||||
},
|
||||
}
|
||||
);
|
||||
});
|
||||
</script>
|
||||
|
||||
</dom-module>
|
||||
|
@ -52,7 +52,8 @@ Polymer({
|
||||
function () {
|
||||
// no service worker.
|
||||
el._setPushSupported(false);
|
||||
});
|
||||
}
|
||||
);
|
||||
},
|
||||
handlePushChange: function (ev) {
|
||||
if (ev.target.checked) {
|
||||
|
@ -172,7 +172,6 @@
|
||||
|
||||
<script>
|
||||
class HaSidebar extends window.hassMixins.EventsMixin(Polymer.Element) {
|
||||
|
||||
static get is() { return 'ha-sidebar'; }
|
||||
|
||||
static get properties() {
|
||||
|
@ -22,7 +22,7 @@
|
||||
}
|
||||
|
||||
class StateHistoryChartLine extends
|
||||
Polymer.mixinBehaviors([Polymer.IronResizableBehavior], Polymer.Element) {
|
||||
Polymer.mixinBehaviors([Polymer.IronResizableBehavior], Polymer.Element) {
|
||||
static get is() { return 'state-history-chart-line'; }
|
||||
static get properties() {
|
||||
return {
|
||||
@ -123,8 +123,7 @@
|
||||
|
||||
endTime = this.endTime ||
|
||||
new Date(Math.max.apply(null, deviceStates.map(states =>
|
||||
new Date(states.states[states.states.length - 1].last_changed)
|
||||
)));
|
||||
new Date(states.states[states.states.length - 1].last_changed))));
|
||||
if (endTime > new Date()) {
|
||||
endTime = new Date();
|
||||
}
|
||||
@ -162,10 +161,9 @@
|
||||
// if we have to prevent interpolation, we add an old value for each
|
||||
// value that should not be interpolated at the same time that our new
|
||||
// line will be published.
|
||||
data.push([timestamp].concat(prevValues.slice(1).map(
|
||||
function (val, index) {
|
||||
return noInterpolationValues[index] ? val : null;
|
||||
})));
|
||||
data.push([timestamp].concat(prevValues.slice(1).map(function (val, index) {
|
||||
return noInterpolationValues[index] ? val : null;
|
||||
})));
|
||||
}
|
||||
data.push(values);
|
||||
prevValues = values;
|
||||
@ -174,10 +172,9 @@
|
||||
if (domain === 'thermostat' || domain === 'climate') {
|
||||
// We differentiate between thermostats that have a target temperature
|
||||
// range versus ones that have just a target temperature
|
||||
hasTargetRange = states.states.reduce(
|
||||
function (cum, cur) {
|
||||
return cum || cur.attributes.target_temp_high !== cur.attributes.target_temp_low;
|
||||
}, false);
|
||||
hasTargetRange = states.states.reduce(function (cum, cur) {
|
||||
return cum || cur.attributes.target_temp_high !== cur.attributes.target_temp_low;
|
||||
}, false);
|
||||
|
||||
dataTable.addColumn('number', name + ' current temperature');
|
||||
|
||||
@ -193,7 +190,8 @@
|
||||
var targetLow = saveParseFloat(state.attributes.target_temp_low);
|
||||
pushData(
|
||||
[new Date(state.last_changed), curTemp, targetHigh, targetLow],
|
||||
noInterpolations);
|
||||
noInterpolations
|
||||
);
|
||||
};
|
||||
} else {
|
||||
dataTable.addColumn('number', name + ' target temperature');
|
||||
@ -233,11 +231,13 @@
|
||||
finalDataTable = dataTables.slice(1).reduce(
|
||||
function (tot, cur) {
|
||||
return window.google.visualization.data.join(
|
||||
tot, cur, 'full', [[0, 0]],
|
||||
range(1, tot.getNumberOfColumns()),
|
||||
range(1, cur.getNumberOfColumns()));
|
||||
tot, cur, 'full', [[0, 0]],
|
||||
range(1, tot.getNumberOfColumns()),
|
||||
range(1, cur.getNumberOfColumns())
|
||||
);
|
||||
},
|
||||
dataTables[0]);
|
||||
dataTables[0]
|
||||
);
|
||||
}
|
||||
|
||||
this.chartEngine.draw(finalDataTable, options);
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
<script>
|
||||
class StateHistoryChartTimeline extends
|
||||
Polymer.mixinBehaviors([Polymer.IronResizableBehavior], Polymer.Element) {
|
||||
Polymer.mixinBehaviors([Polymer.IronResizableBehavior], Polymer.Element) {
|
||||
static get is() { return 'state-history-chart-timeline'; }
|
||||
static get properties() {
|
||||
return {
|
||||
@ -67,19 +67,18 @@ class StateHistoryChartTimeline extends
|
||||
dataTable.addRow([entityDisplay, stateDisplay, start, end]);
|
||||
}
|
||||
|
||||
startTime = new Date(
|
||||
stateHistory.reduce(
|
||||
function (minTime, stateInfo) {
|
||||
return Math.min(minTime, new Date(stateInfo.data[0].last_changed));
|
||||
}, new Date()));
|
||||
startTime = new Date(stateHistory.reduce(function (minTime, stateInfo) {
|
||||
return Math.min(minTime, new Date(stateInfo.data[0].last_changed));
|
||||
}, new Date()));
|
||||
|
||||
// end time is Math.max(startTime, last_event)
|
||||
endTime = this.endTime ||
|
||||
new Date(stateHistory.reduce(
|
||||
function (maxTime, stateInfo) {
|
||||
return Math.max(maxTime,
|
||||
new Date(stateInfo.data[stateInfo.data.length - 1].last_changed));
|
||||
}, startTime));
|
||||
new Date(stateHistory.reduce(function (maxTime, stateInfo) {
|
||||
return Math.max(
|
||||
maxTime,
|
||||
new Date(stateInfo.data[stateInfo.data.length - 1].last_changed)
|
||||
);
|
||||
}, startTime));
|
||||
|
||||
if (endTime > new Date()) {
|
||||
endTime = new Date();
|
||||
|
@ -21,8 +21,7 @@
|
||||
return;
|
||||
}
|
||||
|
||||
const stateWithUnit = stateInfo.find(
|
||||
state => 'unit_of_measurement' in state.attributes);
|
||||
const stateWithUnit = stateInfo.find(state => 'unit_of_measurement' in state.attributes);
|
||||
|
||||
const unit = stateWithUnit ?
|
||||
stateWithUnit.attributes.unit_of_measurement : false;
|
||||
@ -45,38 +44,36 @@
|
||||
}
|
||||
});
|
||||
|
||||
const unitStates = Object.keys(lineChartDevices).map(
|
||||
unit => ({
|
||||
unit: unit,
|
||||
data: lineChartDevices[unit].map((states) => {
|
||||
const last = states[states.length - 1];
|
||||
const domain = window.hassUtil.computeDomain(last);
|
||||
return {
|
||||
domain: domain,
|
||||
name: window.hassUtil.computeStateName(last),
|
||||
entity_id: last.entity_id,
|
||||
states: states.map((state) => {
|
||||
const result = {
|
||||
state: state.state,
|
||||
last_changed: state.last_changed,
|
||||
};
|
||||
if (DOMAINS_USE_LAST_UPDATED.indexOf(domain) !== -1) {
|
||||
result.last_changed = state.last_updated;
|
||||
const unitStates = Object.keys(lineChartDevices).map(unit => ({
|
||||
unit: unit,
|
||||
data: lineChartDevices[unit].map((states) => {
|
||||
const last = states[states.length - 1];
|
||||
const domain = window.hassUtil.computeDomain(last);
|
||||
return {
|
||||
domain: domain,
|
||||
name: window.hassUtil.computeStateName(last),
|
||||
entity_id: last.entity_id,
|
||||
states: states.map((state) => {
|
||||
const result = {
|
||||
state: state.state,
|
||||
last_changed: state.last_changed,
|
||||
};
|
||||
if (DOMAINS_USE_LAST_UPDATED.indexOf(domain) !== -1) {
|
||||
result.last_changed = state.last_updated;
|
||||
}
|
||||
LINE_ATTRIBUTES_TO_KEEP.forEach((attr) => {
|
||||
if (attr in state.attributes) {
|
||||
result.attributes = result.attributes || {};
|
||||
result.attributes[attr] = state.attributes[attr];
|
||||
}
|
||||
LINE_ATTRIBUTES_TO_KEEP.forEach((attr) => {
|
||||
if (attr in state.attributes) {
|
||||
result.attributes = result.attributes || {};
|
||||
result.attributes[attr] = state.attributes[attr];
|
||||
}
|
||||
});
|
||||
return result;
|
||||
})
|
||||
};
|
||||
}),
|
||||
}));
|
||||
});
|
||||
return result;
|
||||
})
|
||||
};
|
||||
}),
|
||||
}));
|
||||
|
||||
return {
|
||||
line: unitStates, timeline: timelineDevices };
|
||||
return { line: unitStates, timeline: timelineDevices };
|
||||
}
|
||||
|
||||
class HaStateHistoryData extends Polymer.Element {
|
||||
@ -129,8 +126,10 @@
|
||||
|
||||
hassChanged(newHass, oldHass) {
|
||||
if (!oldHass && !this._madeFirstCall) {
|
||||
this.filterChanged(this.filterType, this.entityId, this.startTime, this.endTime,
|
||||
this.cacheConfig);
|
||||
this.filterChanged(
|
||||
this.filterType, this.entityId, this.startTime, this.endTime,
|
||||
this.cacheConfig
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@ -299,7 +298,8 @@
|
||||
() => {
|
||||
RECENT_CACHE[entityId] = false;
|
||||
return null;
|
||||
});
|
||||
}
|
||||
);
|
||||
|
||||
RECENT_CACHE[cacheKey] = {
|
||||
created: Date.now(),
|
||||
@ -329,7 +329,8 @@
|
||||
|
||||
const prom = this.hass.callApi('GET', 'history/period/' + filter).then(
|
||||
stateHistory => computeHistory(stateHistory),
|
||||
() => null);
|
||||
() => null
|
||||
);
|
||||
|
||||
return prom;
|
||||
}
|
||||
|
@ -183,8 +183,8 @@ class MoreInfoDialog extends window.hassMixins.EventsMixin(Polymer.Element) {
|
||||
|
||||
computeShowHistoryComponent(hasHistoryComponent, stateObj) {
|
||||
return this.hasHistoryComponent && stateObj &&
|
||||
window.hassUtil.DOMAINS_WITH_NO_HISTORY.indexOf(
|
||||
window.hassUtil.computeDomain(stateObj)) === -1;
|
||||
window.hassUtil.DOMAINS_WITH_NO_HISTORY
|
||||
.indexOf(window.hassUtil.computeDomain(stateObj)) === -1;
|
||||
}
|
||||
|
||||
stateObjChanged(newVal) {
|
||||
|
@ -49,7 +49,6 @@ window.removeInitMsg = function () {
|
||||
};
|
||||
|
||||
class HomeAssistant extends Polymer.Element {
|
||||
|
||||
static get is() { return 'home-assistant'; }
|
||||
|
||||
static get properties() {
|
||||
@ -105,10 +104,12 @@ class HomeAssistant extends Polymer.Element {
|
||||
this.iconsLoaded = true;
|
||||
};
|
||||
|
||||
Polymer.importHref('/static/mdi-' + this.icons + '.html',
|
||||
success,
|
||||
() => Polymer.importHref('/static/mdi.html', success, success),
|
||||
true /* true for async */);
|
||||
Polymer.importHref(
|
||||
'/static/mdi-' + this.icons + '.html',
|
||||
success,
|
||||
() => Polymer.importHref('/static/mdi.html', success, success),
|
||||
true /* true for async */
|
||||
);
|
||||
}
|
||||
|
||||
connectionChanged(conn, oldConn) {
|
||||
@ -131,27 +132,28 @@ class HomeAssistant extends Polymer.Element {
|
||||
moreInfoEntityId: null,
|
||||
callService: (domain, service, serviceData) =>
|
||||
conn.callService(domain, service, serviceData || {})
|
||||
.then(() => {
|
||||
var message;
|
||||
var name;
|
||||
if (serviceData.entity_id && this.hass.states &&
|
||||
.then(
|
||||
() => {
|
||||
var message;
|
||||
var name;
|
||||
if (serviceData.entity_id && this.hass.states &&
|
||||
this.hass.states[serviceData.entity_id]) {
|
||||
name = window.hassUtil.computeStateName(this.hass.states[serviceData.entity_id]);
|
||||
name = window.hassUtil.computeStateName(this.hass.states[serviceData.entity_id]);
|
||||
}
|
||||
if (service === 'turn_on' && serviceData.entity_id) {
|
||||
message = 'Turned on ' + (name || serviceData.entity_id) + '.';
|
||||
} else if (service === 'turn_off' && serviceData.entity_id) {
|
||||
message = 'Turned off ' + (name || serviceData.entity_id) + '.';
|
||||
} else {
|
||||
message = 'Service ' + domain + '/' + service + ' called.';
|
||||
}
|
||||
notifications.showNotification(message);
|
||||
},
|
||||
function () {
|
||||
notifications.showNotification('Failed to call service ' + domain + '/' + service);
|
||||
return Promise.reject();
|
||||
}
|
||||
if (service === 'turn_on' && serviceData.entity_id) {
|
||||
message = 'Turned on ' + (name || serviceData.entity_id) + '.';
|
||||
} else if (service === 'turn_off' && serviceData.entity_id) {
|
||||
message = 'Turned off ' + (name || serviceData.entity_id) + '.';
|
||||
} else {
|
||||
message = 'Service ' + domain + '/' + service + ' called.';
|
||||
}
|
||||
notifications.showNotification(message);
|
||||
},
|
||||
function () {
|
||||
notifications.showNotification(
|
||||
'Failed to call service ' + domain + '/' + service);
|
||||
return Promise.reject();
|
||||
}),
|
||||
),
|
||||
callApi: (method, path, parameters) => {
|
||||
var host = window.location.protocol + '//' + window.location.host;
|
||||
var auth = conn.options.authToken ? conn.options : {};
|
||||
|
@ -368,8 +368,7 @@ Polymer({
|
||||
if (currentView) {
|
||||
states = window.HAWS.getViewEntities(hass.states, hass.states[currentView]);
|
||||
} else {
|
||||
states = window.HAWS.getViewEntities(
|
||||
hass.states, hass.states[this.DEFAULT_VIEW_ENTITY_ID]);
|
||||
states = window.HAWS.getViewEntities(hass.states, hass.states[this.DEFAULT_VIEW_ENTITY_ID]);
|
||||
}
|
||||
|
||||
// Make sure certain domains are always shown.
|
||||
|
@ -95,14 +95,13 @@ Polymer({
|
||||
panel.url,
|
||||
|
||||
function success() {
|
||||
window.hassUtil.dynamicContentUpdater(
|
||||
this.$.panel, 'ha-panel-' + panel.component_name, {
|
||||
hass: this.hass,
|
||||
narrow: this.narrow,
|
||||
showMenu: this.showMenu,
|
||||
route: this.routeTail,
|
||||
panel: panel,
|
||||
});
|
||||
window.hassUtil.dynamicContentUpdater(this.$.panel, 'ha-panel-' + panel.component_name, {
|
||||
hass: this.hass,
|
||||
narrow: this.narrow,
|
||||
showMenu: this.showMenu,
|
||||
route: this.routeTail,
|
||||
panel: panel,
|
||||
});
|
||||
this.resolved = true;
|
||||
}.bind(this),
|
||||
|
||||
@ -110,7 +109,8 @@ Polymer({
|
||||
this.errorLoading = true;
|
||||
}.bind(this),
|
||||
|
||||
true /* async */);
|
||||
true /* async */
|
||||
);
|
||||
},
|
||||
|
||||
updateAttributes: function () {
|
||||
|
@ -224,22 +224,20 @@ Polymer({
|
||||
this.auxToggleChecked = newVal.attributes.aux_heat === 'on';
|
||||
|
||||
if (newVal.attributes.fan_list) {
|
||||
this.fanIndex = newVal.attributes.fan_list.indexOf(
|
||||
newVal.attributes.fan_mode);
|
||||
this.fanIndex = newVal.attributes.fan_list.indexOf(newVal.attributes.fan_mode);
|
||||
} else {
|
||||
this.fanIndex = -1;
|
||||
}
|
||||
|
||||
if (newVal.attributes.operation_list) {
|
||||
this.operationIndex = newVal.attributes.operation_list.indexOf(
|
||||
newVal.attributes.operation_mode);
|
||||
this.operationIndex =
|
||||
newVal.attributes.operation_list.indexOf(newVal.attributes.operation_mode);
|
||||
} else {
|
||||
this.operationIndex = -1;
|
||||
}
|
||||
|
||||
if (newVal.attributes.swing_list) {
|
||||
this.swingIndex = newVal.attributes.swing_list.indexOf(
|
||||
newVal.attributes.swing_mode);
|
||||
this.swingIndex = newVal.attributes.swing_list.indexOf(newVal.attributes.swing_mode);
|
||||
} else {
|
||||
this.swingIndex = -1;
|
||||
}
|
||||
@ -276,12 +274,10 @@ Polymer({
|
||||
},
|
||||
|
||||
computeClassNames: function (stateObj) {
|
||||
return 'more-info-climate ' + window.hassUtil.attributeClassNames(
|
||||
stateObj, [
|
||||
'away_mode', 'aux_heat', 'temperature', 'humidity', 'operation_list',
|
||||
'fan_list', 'swing_list',
|
||||
]
|
||||
);
|
||||
return 'more-info-climate ' + window.hassUtil.attributeClassNames(stateObj, [
|
||||
'away_mode', 'aux_heat', 'temperature', 'humidity', 'operation_list',
|
||||
'fan_list', 'swing_list',
|
||||
]);
|
||||
},
|
||||
|
||||
targetTemperatureChanged: function (ev) {
|
||||
@ -298,12 +294,10 @@ Polymer({
|
||||
|
||||
if (targetTempLow === this.stateObj.attributes.target_temp_low &&
|
||||
targetTempHigh === this.stateObj.attributes.target_temp_high) return;
|
||||
this.callServiceHelper(
|
||||
'set_temperature', {
|
||||
target_temp_low: targetTempLow,
|
||||
target_temp_high: targetTempHigh,
|
||||
}
|
||||
);
|
||||
this.callServiceHelper('set_temperature', {
|
||||
target_temp_low: targetTempLow,
|
||||
target_temp_high: targetTempHigh,
|
||||
});
|
||||
},
|
||||
|
||||
targetHumiditySliderChanged: function (ev) {
|
||||
|
@ -48,7 +48,8 @@ Polymer({
|
||||
} else {
|
||||
window.hassUtil.dynamicContentUpdater(
|
||||
this, 'MORE-INFO-' + window.hassUtil.stateMoreInfoType(stateObj).toUpperCase(),
|
||||
{ hass: this.hass, stateObj: stateObj, isVisible: true });
|
||||
{ hass: this.hass, stateObj: stateObj, isVisible: true }
|
||||
);
|
||||
}
|
||||
},
|
||||
});
|
||||
|
@ -95,8 +95,7 @@ Polymer({
|
||||
this.oscillationToggleChecked = newVal.attributes.oscillating;
|
||||
|
||||
if (newVal.attributes.speed_list) {
|
||||
this.speedIndex = newVal.attributes.speed_list.indexOf(
|
||||
newVal.attributes.speed);
|
||||
this.speedIndex = newVal.attributes.speed_list.indexOf(newVal.attributes.speed);
|
||||
} else {
|
||||
this.speedIndex = -1;
|
||||
}
|
||||
@ -109,9 +108,7 @@ Polymer({
|
||||
},
|
||||
|
||||
computeClassNames: function (stateObj) {
|
||||
return 'more-info-fan ' + window.hassUtil.attributeClassNames(
|
||||
stateObj, ['oscillating', 'speed_list', 'direction']
|
||||
);
|
||||
return 'more-info-fan ' + window.hassUtil.attributeClassNames(stateObj, ['oscillating', 'speed_list', 'direction']);
|
||||
},
|
||||
|
||||
speedChanged: function (speedIndex) {
|
||||
|
@ -95,8 +95,9 @@ Polymer({
|
||||
} else {
|
||||
window.hassUtil.dynamicContentUpdater(
|
||||
this.$.groupedControlDetails,
|
||||
'MORE-INFO-' + window.hassUtil.stateMoreInfoType(groupDomainStateObj).toUpperCase(),
|
||||
{ stateObj: groupDomainStateObj, hass: this.hass });
|
||||
'MORE-INFO-' + window.hassUtil.stateMoreInfoType(groupDomainStateObj).toUpperCase(),
|
||||
{ stateObj: groupDomainStateObj, hass: this.hass }
|
||||
);
|
||||
}
|
||||
},
|
||||
});
|
||||
|
@ -138,8 +138,7 @@ Polymer({
|
||||
this.wvSliderValue = newVal.attributes.white_value;
|
||||
|
||||
if (newVal.attributes.effect_list) {
|
||||
this.effectIndex = newVal.attributes.effect_list.indexOf(
|
||||
newVal.attributes.effect);
|
||||
this.effectIndex = newVal.attributes.effect_list.indexOf(newVal.attributes.effect);
|
||||
} else {
|
||||
this.effectIndex = -1;
|
||||
}
|
||||
@ -160,8 +159,7 @@ Polymer({
|
||||
|
||||
computeClassNames: function (stateObj) {
|
||||
var classes = [
|
||||
window.hassUtil.attributeClassNames(
|
||||
stateObj, ['color_temp', 'white_value', 'effect_list']),
|
||||
window.hassUtil.attributeClassNames(stateObj, ['color_temp', 'white_value', 'effect_list']),
|
||||
window.hassUtil.featureClassNames(stateObj, this.featureClassNames),
|
||||
];
|
||||
|
||||
|
@ -17,7 +17,6 @@
|
||||
|
||||
<script>
|
||||
class StateCardContent extends Polymer.Element {
|
||||
|
||||
static get is() { return 'state-card-content'; }
|
||||
|
||||
static get properties() {
|
||||
@ -54,7 +53,8 @@ class StateCardContent extends Polymer.Element {
|
||||
hass: hass,
|
||||
stateObj: stateObj,
|
||||
inDialog: inDialog,
|
||||
});
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
customElements.define(StateCardContent.is, StateCardContent);
|
||||
|
@ -44,7 +44,6 @@
|
||||
|
||||
<script>
|
||||
class StateCardInputNumber extends Polymer.Element {
|
||||
|
||||
static get is() { return 'state-card-input_number'; }
|
||||
|
||||
static get properties() {
|
||||
|
@ -37,7 +37,6 @@
|
||||
|
||||
<script>
|
||||
class StateCardInputText extends Polymer.Element {
|
||||
|
||||
static get is() { return 'state-card-input_text'; }
|
||||
|
||||
static get properties() {
|
||||
|
@ -49,7 +49,8 @@ Polymer({
|
||||
ev.stopPropagation();
|
||||
this.hass.callService(
|
||||
'scene', 'turn_on',
|
||||
{ entity_id: this.stateObj.entity_id });
|
||||
{ entity_id: this.stateObj.entity_id }
|
||||
);
|
||||
},
|
||||
});
|
||||
</script>
|
||||
|
@ -55,7 +55,8 @@ Polymer({
|
||||
ev.stopPropagation();
|
||||
this.hass.callService(
|
||||
'script', 'turn_on',
|
||||
{ entity_id: this.stateObj.entity_id });
|
||||
{ entity_id: this.stateObj.entity_id }
|
||||
);
|
||||
},
|
||||
});
|
||||
</script>
|
||||
|
@ -6,8 +6,10 @@
|
||||
};
|
||||
|
||||
function addGetter(name, getter) {
|
||||
Object.defineProperty(window.CoverEntity.prototype, name,
|
||||
{ get: getter });
|
||||
Object.defineProperty(
|
||||
window.CoverEntity.prototype, name,
|
||||
{ get: getter }
|
||||
);
|
||||
}
|
||||
|
||||
addGetter('isFullyOpen', function () {
|
||||
|
@ -32,10 +32,12 @@ window.hassAttributeUtil.LOGIC_STATE_ATTRIBUTES =
|
||||
icon: { type: 'icon' },
|
||||
emulated_hue: {
|
||||
type: 'boolean',
|
||||
domains: ['emulated_hue'] },
|
||||
domains: ['emulated_hue']
|
||||
},
|
||||
emulated_hue_name: {
|
||||
type: 'string',
|
||||
domains: ['emulated_hue'] },
|
||||
domains: ['emulated_hue']
|
||||
},
|
||||
haaska_hidden: undefined,
|
||||
haaska_name: undefined,
|
||||
homebridge_hidden: { type: 'boolean' },
|
||||
@ -47,14 +49,17 @@ window.hassAttributeUtil.LOGIC_STATE_ATTRIBUTES =
|
||||
type: 'array',
|
||||
options: window.hassAttributeUtil.DOMAIN_DEVICE_CLASS,
|
||||
description: 'Device class',
|
||||
domains: ['binary_sensor', 'cover'] },
|
||||
domains: ['binary_sensor', 'cover']
|
||||
},
|
||||
hidden: { type: 'boolean', description: 'Hide from UI' },
|
||||
assumed_state: {
|
||||
type: 'boolean',
|
||||
domains: ['switch', 'light', 'cover', 'climate', 'fan', 'group'] },
|
||||
domains: ['switch', 'light', 'cover', 'climate', 'fan', 'group']
|
||||
},
|
||||
initial_state: {
|
||||
type: 'string',
|
||||
domains: ['automation'] },
|
||||
domains: ['automation']
|
||||
},
|
||||
unit_of_measurement: { type: 'string' },
|
||||
};
|
||||
</script>
|
||||
|
@ -22,7 +22,7 @@ window.hassCallApi = function (host, auth, method, path, parameters) {
|
||||
if (data) {
|
||||
resolve(data);
|
||||
} else {
|
||||
reject('Request not allowed in demo mode.');
|
||||
reject(new Error('Request not allowed in demo mode.'));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -33,10 +33,8 @@
|
||||
window.hassMixins = window.hassMixins || {};
|
||||
|
||||
/* @polymerMixin */
|
||||
window.hassMixins.EventsMixin = Polymer.dedupingMixin(
|
||||
superClass => class extends superClass {
|
||||
|
||||
/**
|
||||
window.hassMixins.EventsMixin = Polymer.dedupingMixin(superClass => class extends superClass {
|
||||
/**
|
||||
* Dispatches a custom event with an optional detail value.
|
||||
*
|
||||
* @param {string} type Name of event type.
|
||||
@ -51,25 +49,24 @@ window.hassMixins.EventsMixin = Polymer.dedupingMixin(
|
||||
* `node` on which to fire the event (HTMLElement, defaults to `this`).
|
||||
* @return {Event} The new event that was fired.
|
||||
*/
|
||||
fire(type, detail, options) {
|
||||
options = options || {};
|
||||
detail = (detail === null || detail === undefined) ? {} : detail;
|
||||
const event = new Event(type, {
|
||||
bubbles: options.bubbles === undefined ? true : options.bubbles,
|
||||
cancelable: Boolean(options.cancelable),
|
||||
composed: options.composed === undefined ? true : options.composed
|
||||
});
|
||||
event.detail = detail;
|
||||
const node = options.node || this;
|
||||
node.dispatchEvent(event);
|
||||
return event;
|
||||
}
|
||||
fire(type, detail, options) {
|
||||
options = options || {};
|
||||
detail = (detail === null || detail === undefined) ? {} : detail;
|
||||
const event = new Event(type, {
|
||||
bubbles: options.bubbles === undefined ? true : options.bubbles,
|
||||
cancelable: Boolean(options.cancelable),
|
||||
composed: options.composed === undefined ? true : options.composed
|
||||
});
|
||||
event.detail = detail;
|
||||
const node = options.node || this;
|
||||
node.dispatchEvent(event);
|
||||
return event;
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
/* @polymerMixin */
|
||||
window.hassMixins.NavigateMixin = Polymer.dedupingMixin(
|
||||
superClass => class extends window.hassMixins.EventsMixin(superClass) {
|
||||
window.hassMixins.NavigateMixin = Polymer.dedupingMixin(superClass =>
|
||||
class extends window.hassMixins.EventsMixin(superClass) {
|
||||
navigate(path, replace = false) {
|
||||
if (replace) {
|
||||
history.replaceState(null, null, path);
|
||||
@ -78,6 +75,6 @@ window.hassMixins.NavigateMixin = Polymer.dedupingMixin(
|
||||
}
|
||||
this.fire('location-changed');
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
|
@ -40,11 +40,9 @@ window.hassUtil.LANGUAGE = navigator.languages ?
|
||||
|
||||
window.hassUtil.attributeClassNames = function (stateObj, attributes) {
|
||||
if (!stateObj) return '';
|
||||
return attributes.map(
|
||||
function (attribute) {
|
||||
return attribute in stateObj.attributes ? 'has-' + attribute : '';
|
||||
}
|
||||
).join(' ');
|
||||
return attributes.map(function (attribute) {
|
||||
return attribute in stateObj.attributes ? 'has-' + attribute : '';
|
||||
}).join(' ');
|
||||
};
|
||||
|
||||
// Expects featureClassNames to be an object mapping feature-bit -> className
|
||||
@ -53,11 +51,9 @@ window.hassUtil.featureClassNames = function (stateObj, featureClassNames) {
|
||||
|
||||
var features = stateObj.attributes.supported_features;
|
||||
|
||||
return Object.keys(featureClassNames).map(
|
||||
function (feature) {
|
||||
return (features & feature) !== 0 ? featureClassNames[feature] : '';
|
||||
}
|
||||
).join(' ');
|
||||
return Object.keys(featureClassNames).map(function (feature) {
|
||||
return (features & feature) !== 0 ? featureClassNames[feature] : '';
|
||||
}).join(' ');
|
||||
};
|
||||
|
||||
|
||||
@ -164,8 +160,10 @@ if (toLocaleStringSupportsOptions()) {
|
||||
|
||||
if (toLocaleDateStringSupportsOptions()) {
|
||||
window.hassUtil.formatDate = function (dateObj) {
|
||||
return dateObj.toLocaleDateString(window.hassUtil.LANGUAGE,
|
||||
{ year: 'numeric', month: 'long', day: 'numeric' });
|
||||
return dateObj.toLocaleDateString(
|
||||
window.hassUtil.LANGUAGE,
|
||||
{ year: 'numeric', month: 'long', day: 'numeric' }
|
||||
);
|
||||
};
|
||||
} else {
|
||||
window.hassUtil.formatDate = function (dateObj) {
|
||||
@ -175,8 +173,10 @@ if (toLocaleDateStringSupportsOptions()) {
|
||||
|
||||
if (toLocaleTimeStringSupportsOptions()) {
|
||||
window.hassUtil.formatTime = function (dateObj) {
|
||||
return dateObj.toLocaleTimeString(window.hassUtil.LANGUAGE,
|
||||
{ hour: 'numeric', minute: '2-digit' });
|
||||
return dateObj.toLocaleTimeString(
|
||||
window.hassUtil.LANGUAGE,
|
||||
{ hour: 'numeric', minute: '2-digit' }
|
||||
);
|
||||
};
|
||||
} else {
|
||||
window.hassUtil.formatTime = function (dateObj) {
|
||||
@ -193,8 +193,10 @@ window.hassUtil.relativeTime = function (dateObj) {
|
||||
for (i = 0; i < tests.length; i += 2) {
|
||||
if (delta < tests[i]) {
|
||||
delta = Math.floor(delta);
|
||||
return format.replace('%s',
|
||||
delta === 1 ? '1 ' + tests[i + 1] : delta + ' ' + tests[i + 1] + 's');
|
||||
return format.replace(
|
||||
'%s',
|
||||
delta === 1 ? '1 ' + tests[i + 1] : delta + ' ' + tests[i + 1] + 's'
|
||||
);
|
||||
}
|
||||
|
||||
delta /= tests[i];
|
||||
@ -353,8 +355,7 @@ window.hassUtil.domainIcon = function (domain, state) {
|
||||
|
||||
default:
|
||||
/* eslint-disable no-console */
|
||||
console.warn(
|
||||
'Unable to find icon for domain ' + domain + ' (' + state + ')');
|
||||
console.warn('Unable to find icon for domain ' + domain + ' (' + state + ')');
|
||||
/* eslint-enable no-console */
|
||||
return window.hassUtil.DEFAULT_ICON;
|
||||
}
|
||||
@ -445,7 +446,7 @@ window.hassUtil.computeStateName = function (stateObj) {
|
||||
stateObj._entityDisplay = (
|
||||
stateObj.attributes.friendly_name ||
|
||||
window.HAWS.extractObjectId(stateObj.entity_id)
|
||||
.replace(/_/g, ' '));
|
||||
.replace(/_/g, ' '));
|
||||
}
|
||||
|
||||
return stateObj._entityDisplay;
|
||||
|
@ -6,8 +6,10 @@
|
||||
};
|
||||
|
||||
function addGetter(name, getter) {
|
||||
Object.defineProperty(window.MediaPlayerEntity.prototype, name,
|
||||
{ get: getter });
|
||||
Object.defineProperty(
|
||||
window.MediaPlayerEntity.prototype, name,
|
||||
{ get: getter }
|
||||
);
|
||||
}
|
||||
|
||||
addGetter('isOff', function () {
|
||||
@ -39,8 +41,7 @@
|
||||
});
|
||||
|
||||
addGetter('hasMediaControl', function () {
|
||||
return ['playing', 'paused', 'unknown'].indexOf(
|
||||
this.stateObj.state) !== -1;
|
||||
return ['playing', 'paused', 'unknown'].indexOf(this.stateObj.state) !== -1;
|
||||
});
|
||||
|
||||
addGetter('volumeSliderValue', function () {
|
||||
|
398
yarn.lock
398
yarn.lock
@ -511,18 +511,18 @@ agent-base@2:
|
||||
extend "~3.0.0"
|
||||
semver "~5.0.1"
|
||||
|
||||
ajv-keywords@^1.0.0:
|
||||
version "1.5.1"
|
||||
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c"
|
||||
ajv-keywords@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.0.tgz#a296e17f7bfae7c1ce4f7e0de53d29cb32162df0"
|
||||
|
||||
ajv@^4.7.0, ajv@^4.9.1:
|
||||
ajv@^4.9.1:
|
||||
version "4.11.8"
|
||||
resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536"
|
||||
dependencies:
|
||||
co "^4.6.0"
|
||||
json-stable-stringify "^1.0.1"
|
||||
|
||||
ajv@^5.1.0:
|
||||
ajv@^5.1.0, ajv@^5.2.0, ajv@^5.2.3:
|
||||
version "5.2.3"
|
||||
resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.2.3.tgz#c06f598778c44c6b161abafe3466b81ad1814ed2"
|
||||
dependencies:
|
||||
@ -559,6 +559,10 @@ ansi-escapes@^1.1.0:
|
||||
version "1.4.0"
|
||||
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e"
|
||||
|
||||
ansi-escapes@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.0.0.tgz#ec3e8b4e9f8064fc02c3ac9b65f1c275bda8ef92"
|
||||
|
||||
ansi-regex@^0.2.0, ansi-regex@^0.2.1:
|
||||
version "0.2.1"
|
||||
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-0.2.1.tgz#0d8e946967a3d8143f93e24e298525fc1b2235f9"
|
||||
@ -579,6 +583,12 @@ ansi-styles@^2.2.1:
|
||||
version "2.2.1"
|
||||
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
|
||||
|
||||
ansi-styles@^3.1.0:
|
||||
version "3.2.0"
|
||||
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88"
|
||||
dependencies:
|
||||
color-convert "^1.9.0"
|
||||
|
||||
ansi-styles@~1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.0.0.tgz#cb102df1c56f5123eab8b67cd7b98027a0279178"
|
||||
@ -781,7 +791,7 @@ aws4@^1.2.1, aws4@^1.6.0:
|
||||
version "1.6.0"
|
||||
resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e"
|
||||
|
||||
babel-code-frame@^6.16.0, babel-code-frame@^6.26.0:
|
||||
babel-code-frame@^6.22.0, babel-code-frame@^6.26.0:
|
||||
version "6.26.0"
|
||||
resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
|
||||
dependencies:
|
||||
@ -1808,6 +1818,14 @@ chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3:
|
||||
strip-ansi "^3.0.0"
|
||||
supports-color "^2.0.0"
|
||||
|
||||
chalk@^2.0.0, chalk@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.1.0.tgz#ac5becf14fa21b99c6c92ca7a7d7cfd5b17e743e"
|
||||
dependencies:
|
||||
ansi-styles "^3.1.0"
|
||||
escape-string-regexp "^1.0.5"
|
||||
supports-color "^4.0.0"
|
||||
|
||||
chalk@~0.4.0:
|
||||
version "0.4.0"
|
||||
resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.4.0.tgz#5199a3ddcd0c1efe23bc08c1b027b06176e0c64f"
|
||||
@ -1897,6 +1915,12 @@ cli-cursor@^1.0.1:
|
||||
dependencies:
|
||||
restore-cursor "^1.0.1"
|
||||
|
||||
cli-cursor@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
|
||||
dependencies:
|
||||
restore-cursor "^2.0.0"
|
||||
|
||||
cli-table@^0.3.1:
|
||||
version "0.3.1"
|
||||
resolved "https://registry.yarnpkg.com/cli-table/-/cli-table-0.3.1.tgz#f53b05266a8b1a0b934b3d0821e6e2dc5914ae23"
|
||||
@ -1955,6 +1979,16 @@ code-point-at@^1.0.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
|
||||
|
||||
color-convert@^1.9.0:
|
||||
version "1.9.0"
|
||||
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.0.tgz#1accf97dd739b983bf994d56fec8f95853641b7a"
|
||||
dependencies:
|
||||
color-name "^1.1.1"
|
||||
|
||||
color-name@^1.1.1:
|
||||
version "1.1.3"
|
||||
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
|
||||
|
||||
colors@1.0.3, colors@1.0.x:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b"
|
||||
@ -2070,7 +2104,7 @@ concat-stream@1.5.x:
|
||||
readable-stream "~2.0.0"
|
||||
typedarray "~0.0.5"
|
||||
|
||||
concat-stream@^1.4.7, concat-stream@^1.5.0, concat-stream@^1.5.2:
|
||||
concat-stream@^1.4.7, concat-stream@^1.5.0, concat-stream@^1.6.0:
|
||||
version "1.6.0"
|
||||
resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7"
|
||||
dependencies:
|
||||
@ -2160,7 +2194,7 @@ create-error-class@^3.0.0, create-error-class@^3.0.1:
|
||||
dependencies:
|
||||
capture-stack-trace "^1.0.0"
|
||||
|
||||
cross-spawn@^5.0.1:
|
||||
cross-spawn@^5.0.1, cross-spawn@^5.1.0:
|
||||
version "5.1.0"
|
||||
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
|
||||
dependencies:
|
||||
@ -2217,12 +2251,6 @@ cycle@1.0.x:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/cycle/-/cycle-1.0.3.tgz#21e80b2be8580f98b468f379430662b046c34ad2"
|
||||
|
||||
d@1:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f"
|
||||
dependencies:
|
||||
es5-ext "^0.10.9"
|
||||
|
||||
dargs@^5.1.0:
|
||||
version "5.1.0"
|
||||
resolved "https://registry.yarnpkg.com/dargs/-/dargs-5.1.0.tgz#ec7ea50c78564cd36c9d5ec18f66329fade27829"
|
||||
@ -2244,7 +2272,7 @@ dateformat@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.0.0.tgz#2743e3abb5c3fc2462e527dca445e04e9f4dee17"
|
||||
|
||||
debug@2, debug@2.6.9, debug@^2.0.0, debug@^2.1.0, debug@^2.1.1:
|
||||
debug@2, debug@2.6.9, debug@^2.0.0, debug@^2.1.0:
|
||||
version "2.6.9"
|
||||
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
|
||||
dependencies:
|
||||
@ -2268,6 +2296,12 @@ debug@2.6.8, debug@^2.2.0, debug@^2.6.8:
|
||||
dependencies:
|
||||
ms "2.0.0"
|
||||
|
||||
debug@^3.0.1:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
|
||||
dependencies:
|
||||
ms "2.0.0"
|
||||
|
||||
debug@~2.1.1:
|
||||
version "2.1.3"
|
||||
resolved "https://registry.yarnpkg.com/debug/-/debug-2.1.3.tgz#ce8ab1b5ee8fbee2bfa3b633cab93d366b63418e"
|
||||
@ -2635,32 +2669,6 @@ es-to-primitive@^1.1.1:
|
||||
is-date-object "^1.0.1"
|
||||
is-symbol "^1.0.1"
|
||||
|
||||
es5-ext@^0.10.14, es5-ext@^0.10.9, es5-ext@~0.10.14:
|
||||
version "0.10.30"
|
||||
resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.30.tgz#7141a16836697dbabfaaaeee41495ce29f52c939"
|
||||
dependencies:
|
||||
es6-iterator "2"
|
||||
es6-symbol "~3.1"
|
||||
|
||||
es6-iterator@2, es6-iterator@^2.0.1, es6-iterator@~2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.1.tgz#8e319c9f0453bf575d374940a655920e59ca5512"
|
||||
dependencies:
|
||||
d "1"
|
||||
es5-ext "^0.10.14"
|
||||
es6-symbol "^3.1"
|
||||
|
||||
es6-map@^0.1.3:
|
||||
version "0.1.5"
|
||||
resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0"
|
||||
dependencies:
|
||||
d "1"
|
||||
es5-ext "~0.10.14"
|
||||
es6-iterator "~2.0.1"
|
||||
es6-set "~0.1.5"
|
||||
es6-symbol "~3.1.1"
|
||||
event-emitter "~0.3.5"
|
||||
|
||||
es6-object-assign@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/es6-object-assign/-/es6-object-assign-1.1.0.tgz#c2c3582656247c39ea107cb1e6652b6f9f24523c"
|
||||
@ -2673,32 +2681,6 @@ es6-promise@^4.0.5:
|
||||
version "4.1.1"
|
||||
resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.1.1.tgz#8811e90915d9a0dba36274f0b242dbda78f9c92a"
|
||||
|
||||
es6-set@~0.1.5:
|
||||
version "0.1.5"
|
||||
resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1"
|
||||
dependencies:
|
||||
d "1"
|
||||
es5-ext "~0.10.14"
|
||||
es6-iterator "~2.0.1"
|
||||
es6-symbol "3.1.1"
|
||||
event-emitter "~0.3.5"
|
||||
|
||||
es6-symbol@3.1.1, es6-symbol@^3.1, es6-symbol@^3.1.1, es6-symbol@~3.1, es6-symbol@~3.1.1:
|
||||
version "3.1.1"
|
||||
resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77"
|
||||
dependencies:
|
||||
d "1"
|
||||
es5-ext "~0.10.14"
|
||||
|
||||
es6-weak-map@^2.0.1:
|
||||
version "2.0.2"
|
||||
resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f"
|
||||
dependencies:
|
||||
d "1"
|
||||
es5-ext "^0.10.14"
|
||||
es6-iterator "^2.0.1"
|
||||
es6-symbol "^3.1.1"
|
||||
|
||||
escape-html@1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.1.tgz#181a286ead397a39a92857cfb1d43052e356bff0"
|
||||
@ -2722,18 +2704,9 @@ escodegen@^1.7.0:
|
||||
optionalDependencies:
|
||||
source-map "~0.2.0"
|
||||
|
||||
escope@^3.6.0:
|
||||
version "3.6.0"
|
||||
resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3"
|
||||
dependencies:
|
||||
es6-map "^0.1.3"
|
||||
es6-weak-map "^2.0.1"
|
||||
esrecurse "^4.1.0"
|
||||
estraverse "^4.1.1"
|
||||
|
||||
eslint-config-airbnb-base@^11.1.3:
|
||||
version "11.3.2"
|
||||
resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-11.3.2.tgz#8703b11abe3c88ac7ec2b745b7fdf52e00ae680a"
|
||||
eslint-config-airbnb-base@^12.0.2:
|
||||
version "12.0.2"
|
||||
resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-12.0.2.tgz#45fea317d71b8f1da323c730f3a8471988757793"
|
||||
dependencies:
|
||||
eslint-restricted-globals "^0.1.1"
|
||||
|
||||
@ -2751,11 +2724,12 @@ eslint-module-utils@^2.1.1:
|
||||
debug "^2.6.8"
|
||||
pkg-dir "^1.0.0"
|
||||
|
||||
eslint-plugin-html@^2.0.1:
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-html/-/eslint-plugin-html-2.0.3.tgz#7c89883ab0c85fa5d28b666a14a4e906aa90b897"
|
||||
eslint-plugin-html@^3.2.2:
|
||||
version "3.2.2"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-html/-/eslint-plugin-html-3.2.2.tgz#ef7093621d3a93de3206fd1f92f347ea9a1a4dfa"
|
||||
dependencies:
|
||||
htmlparser2 "^3.8.2"
|
||||
semver "^5.4.1"
|
||||
|
||||
eslint-plugin-import@^2.2.0:
|
||||
version "2.7.0"
|
||||
@ -2785,45 +2759,54 @@ eslint-restricted-globals@^0.1.1:
|
||||
version "0.1.1"
|
||||
resolved "https://registry.yarnpkg.com/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz#35f0d5cbc64c2e3ed62e93b4b1a7af05ba7ed4d7"
|
||||
|
||||
eslint@^3.19.0:
|
||||
version "3.19.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.19.0.tgz#c8fc6201c7f40dd08941b87c085767386a679acc"
|
||||
eslint-scope@^3.7.1:
|
||||
version "3.7.1"
|
||||
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8"
|
||||
dependencies:
|
||||
babel-code-frame "^6.16.0"
|
||||
chalk "^1.1.3"
|
||||
concat-stream "^1.5.2"
|
||||
debug "^2.1.1"
|
||||
esrecurse "^4.1.0"
|
||||
estraverse "^4.1.1"
|
||||
|
||||
eslint@^4.8.0:
|
||||
version "4.8.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.8.0.tgz#229ef0e354e0e61d837c7a80fdfba825e199815e"
|
||||
dependencies:
|
||||
ajv "^5.2.0"
|
||||
babel-code-frame "^6.22.0"
|
||||
chalk "^2.1.0"
|
||||
concat-stream "^1.6.0"
|
||||
cross-spawn "^5.1.0"
|
||||
debug "^3.0.1"
|
||||
doctrine "^2.0.0"
|
||||
escope "^3.6.0"
|
||||
espree "^3.4.0"
|
||||
eslint-scope "^3.7.1"
|
||||
espree "^3.5.1"
|
||||
esquery "^1.0.0"
|
||||
estraverse "^4.2.0"
|
||||
esutils "^2.0.2"
|
||||
file-entry-cache "^2.0.0"
|
||||
glob "^7.0.3"
|
||||
globals "^9.14.0"
|
||||
ignore "^3.2.0"
|
||||
functional-red-black-tree "^1.0.1"
|
||||
glob "^7.1.2"
|
||||
globals "^9.17.0"
|
||||
ignore "^3.3.3"
|
||||
imurmurhash "^0.1.4"
|
||||
inquirer "^0.12.0"
|
||||
is-my-json-valid "^2.10.0"
|
||||
inquirer "^3.0.6"
|
||||
is-resolvable "^1.0.0"
|
||||
js-yaml "^3.5.1"
|
||||
json-stable-stringify "^1.0.0"
|
||||
js-yaml "^3.9.1"
|
||||
json-stable-stringify "^1.0.1"
|
||||
levn "^0.3.0"
|
||||
lodash "^4.0.0"
|
||||
mkdirp "^0.5.0"
|
||||
lodash "^4.17.4"
|
||||
minimatch "^3.0.2"
|
||||
mkdirp "^0.5.1"
|
||||
natural-compare "^1.4.0"
|
||||
optionator "^0.8.2"
|
||||
path-is-inside "^1.0.1"
|
||||
pluralize "^1.2.1"
|
||||
progress "^1.1.8"
|
||||
require-uncached "^1.0.2"
|
||||
shelljs "^0.7.5"
|
||||
strip-bom "^3.0.0"
|
||||
path-is-inside "^1.0.2"
|
||||
pluralize "^7.0.0"
|
||||
progress "^2.0.0"
|
||||
require-uncached "^1.0.3"
|
||||
semver "^5.3.0"
|
||||
strip-ansi "^4.0.0"
|
||||
strip-json-comments "~2.0.1"
|
||||
table "^3.7.8"
|
||||
table "^4.0.1"
|
||||
text-table "~0.2.0"
|
||||
user-home "^2.0.0"
|
||||
|
||||
espree@^3.1.3:
|
||||
version "3.5.0"
|
||||
@ -2832,7 +2815,7 @@ espree@^3.1.3:
|
||||
acorn "^5.1.1"
|
||||
acorn-jsx "^3.0.0"
|
||||
|
||||
espree@^3.1.7, espree@^3.4.0:
|
||||
espree@^3.1.7, espree@^3.4.0, espree@^3.5.1:
|
||||
version "3.5.1"
|
||||
resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.1.tgz#0c988b8ab46db53100a1954ae4ba995ddd27d87e"
|
||||
dependencies:
|
||||
@ -2906,13 +2889,6 @@ etag@~1.8.1:
|
||||
version "1.8.1"
|
||||
resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
|
||||
|
||||
event-emitter@~0.3.5:
|
||||
version "0.3.5"
|
||||
resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39"
|
||||
dependencies:
|
||||
d "1"
|
||||
es5-ext "~0.10.14"
|
||||
|
||||
event-stream@^3.0.20:
|
||||
version "3.3.4"
|
||||
resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571"
|
||||
@ -3025,6 +3001,14 @@ external-editor@^1.1.0:
|
||||
spawn-sync "^1.0.15"
|
||||
tmp "^0.0.29"
|
||||
|
||||
external-editor@^2.0.4:
|
||||
version "2.0.5"
|
||||
resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.0.5.tgz#52c249a3981b9ba187c7cacf5beb50bf1d91a6bc"
|
||||
dependencies:
|
||||
iconv-lite "^0.4.17"
|
||||
jschardet "^1.4.2"
|
||||
tmp "^0.0.33"
|
||||
|
||||
extglob@^0.3.1:
|
||||
version "0.3.2"
|
||||
resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1"
|
||||
@ -3085,6 +3069,12 @@ figures@^1.3.5:
|
||||
escape-string-regexp "^1.0.5"
|
||||
object-assign "^4.1.0"
|
||||
|
||||
figures@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"
|
||||
dependencies:
|
||||
escape-string-regexp "^1.0.5"
|
||||
|
||||
file-entry-cache@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361"
|
||||
@ -3311,6 +3301,10 @@ function-bind@^1.0.2, function-bind@^1.1.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
|
||||
|
||||
functional-red-black-tree@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
|
||||
|
||||
gauge@~2.7.3:
|
||||
version "2.7.4"
|
||||
resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
|
||||
@ -3514,7 +3508,7 @@ global-prefix@^0.1.4:
|
||||
is-windows "^0.2.0"
|
||||
which "^1.2.12"
|
||||
|
||||
globals@^9.14.0, globals@^9.18.0:
|
||||
globals@^9.17.0, globals@^9.18.0:
|
||||
version "9.18.0"
|
||||
resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
|
||||
|
||||
@ -3838,6 +3832,10 @@ has-flag@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa"
|
||||
|
||||
has-flag@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51"
|
||||
|
||||
has-gulplog@^0.1.0:
|
||||
version "0.1.0"
|
||||
resolved "https://registry.yarnpkg.com/has-gulplog/-/has-gulplog-0.1.0.tgz#6414c82913697da51590397dafb12f22967811ce"
|
||||
@ -4038,11 +4036,11 @@ hydrolysis@^1.19.1:
|
||||
estraverse "^3.1.0"
|
||||
path-is-absolute "^1.0.0"
|
||||
|
||||
iconv-lite@0.4.19, iconv-lite@~0.4.13:
|
||||
iconv-lite@0.4.19, iconv-lite@^0.4.17, iconv-lite@~0.4.13:
|
||||
version "0.4.19"
|
||||
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b"
|
||||
|
||||
ignore@^3.2.0:
|
||||
ignore@^3.3.3:
|
||||
version "3.3.5"
|
||||
resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.5.tgz#c4e715455f6073a8d7e5dae72d2fc9d71663dba6"
|
||||
|
||||
@ -4083,24 +4081,6 @@ ini@^1.3.4, ini@~1.3.0:
|
||||
version "1.3.4"
|
||||
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e"
|
||||
|
||||
inquirer@^0.12.0:
|
||||
version "0.12.0"
|
||||
resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e"
|
||||
dependencies:
|
||||
ansi-escapes "^1.1.0"
|
||||
ansi-regex "^2.0.0"
|
||||
chalk "^1.0.0"
|
||||
cli-cursor "^1.0.1"
|
||||
cli-width "^2.0.0"
|
||||
figures "^1.3.5"
|
||||
lodash "^4.3.0"
|
||||
readline2 "^1.0.1"
|
||||
run-async "^0.1.0"
|
||||
rx-lite "^3.1.2"
|
||||
string-width "^1.0.1"
|
||||
strip-ansi "^3.0.0"
|
||||
through "^2.3.6"
|
||||
|
||||
inquirer@^1.0.2:
|
||||
version "1.2.3"
|
||||
resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-1.2.3.tgz#4dec6f32f37ef7bb0b2ed3f1d1a5c3f545074918"
|
||||
@ -4120,6 +4100,25 @@ inquirer@^1.0.2:
|
||||
strip-ansi "^3.0.0"
|
||||
through "^2.3.6"
|
||||
|
||||
inquirer@^3.0.6:
|
||||
version "3.3.0"
|
||||
resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9"
|
||||
dependencies:
|
||||
ansi-escapes "^3.0.0"
|
||||
chalk "^2.0.0"
|
||||
cli-cursor "^2.1.0"
|
||||
cli-width "^2.0.0"
|
||||
external-editor "^2.0.4"
|
||||
figures "^2.0.0"
|
||||
lodash "^4.3.0"
|
||||
mute-stream "0.0.7"
|
||||
run-async "^2.2.0"
|
||||
rx-lite "^4.0.8"
|
||||
rx-lite-aggregates "^4.0.8"
|
||||
string-width "^2.1.0"
|
||||
strip-ansi "^4.0.0"
|
||||
through "^2.3.6"
|
||||
|
||||
interpret@^1.0.0:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.3.tgz#cbc35c62eeee73f19ab7b10a801511401afc0f90"
|
||||
@ -4247,7 +4246,7 @@ is-module@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591"
|
||||
|
||||
is-my-json-valid@^2.10.0, is-my-json-valid@^2.12.4:
|
||||
is-my-json-valid@^2.12.4:
|
||||
version "2.16.1"
|
||||
resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.16.1.tgz#5a846777e2c2620d1e69104e5d3a03b1f6088f11"
|
||||
dependencies:
|
||||
@ -4429,7 +4428,7 @@ js-tokens@^3.0.0, js-tokens@^3.0.2:
|
||||
version "3.0.2"
|
||||
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
|
||||
|
||||
js-yaml@^3.5.1:
|
||||
js-yaml@^3.9.1:
|
||||
version "3.10.0"
|
||||
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc"
|
||||
dependencies:
|
||||
@ -4440,6 +4439,10 @@ jsbn@~0.1.0:
|
||||
version "0.1.1"
|
||||
resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
|
||||
|
||||
jschardet@^1.4.2:
|
||||
version "1.5.1"
|
||||
resolved "https://registry.yarnpkg.com/jschardet/-/jschardet-1.5.1.tgz#c519f629f86b3a5bedba58a88d311309eec097f9"
|
||||
|
||||
jsesc@^1.3.0:
|
||||
version "1.3.0"
|
||||
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b"
|
||||
@ -4843,7 +4846,7 @@ lodash@^3.0.0, lodash@^3.0.1, lodash@^3.10.1:
|
||||
version "3.10.1"
|
||||
resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6"
|
||||
|
||||
lodash@^4.0.0, lodash@^4.11.1, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.16.6, lodash@^4.17.2, lodash@^4.17.4, lodash@^4.3.0, lodash@^4.8.0:
|
||||
lodash@^4.11.1, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.16.6, lodash@^4.17.2, lodash@^4.17.4, lodash@^4.3.0, lodash@^4.8.0:
|
||||
version "4.17.4"
|
||||
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
|
||||
|
||||
@ -5045,6 +5048,10 @@ mime@1.4.1, mime@^1.2.11, mime@^1.3.4:
|
||||
version "1.4.1"
|
||||
resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6"
|
||||
|
||||
mimic-fn@^1.0.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18"
|
||||
|
||||
minimalistic-assert@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz#702be2dda6b37f4836bcb3f5db56641b64a1d3d3"
|
||||
@ -5177,14 +5184,14 @@ multipipe@^1.0.2:
|
||||
duplexer2 "^0.1.2"
|
||||
object-assign "^4.1.0"
|
||||
|
||||
mute-stream@0.0.5:
|
||||
version "0.0.5"
|
||||
resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0"
|
||||
|
||||
mute-stream@0.0.6:
|
||||
version "0.0.6"
|
||||
resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.6.tgz#48962b19e169fd1dfc240b3f1e7317627bbc47db"
|
||||
|
||||
mute-stream@0.0.7:
|
||||
version "0.0.7"
|
||||
resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
|
||||
|
||||
mz@^2.4.0, mz@^2.6.0:
|
||||
version "2.7.0"
|
||||
resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32"
|
||||
@ -5390,6 +5397,12 @@ onetime@^1.0.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789"
|
||||
|
||||
onetime@^2.0.0:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4"
|
||||
dependencies:
|
||||
mimic-fn "^1.0.0"
|
||||
|
||||
opn@^3.0.2:
|
||||
version "3.0.3"
|
||||
resolved "https://registry.yarnpkg.com/opn/-/opn-3.0.3.tgz#b6d99e7399f78d65c3baaffef1fb288e9b85243a"
|
||||
@ -5438,7 +5451,7 @@ os-shim@^0.1.2:
|
||||
version "0.1.3"
|
||||
resolved "https://registry.yarnpkg.com/os-shim/-/os-shim-0.1.3.tgz#6b62c3791cf7909ea35ed46e17658bb417cb3917"
|
||||
|
||||
os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.1:
|
||||
os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.1, os-tmpdir@~1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
|
||||
|
||||
@ -5582,7 +5595,7 @@ path-is-absolute@^1.0.0, path-is-absolute@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
|
||||
|
||||
path-is-inside@^1.0.1:
|
||||
path-is-inside@^1.0.1, path-is-inside@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
|
||||
|
||||
@ -5694,9 +5707,9 @@ plist@^2.0.1:
|
||||
xmlbuilder "8.2.2"
|
||||
xmldom "0.1.x"
|
||||
|
||||
pluralize@^1.2.1:
|
||||
version "1.2.1"
|
||||
resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45"
|
||||
pluralize@^7.0.0:
|
||||
version "7.0.0"
|
||||
resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777"
|
||||
|
||||
plylog@^0.4.0:
|
||||
version "0.4.0"
|
||||
@ -5953,10 +5966,14 @@ process-nextick-args@^1.0.6, process-nextick-args@~1.0.6:
|
||||
version "1.0.7"
|
||||
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3"
|
||||
|
||||
progress@1.1.8, progress@^1.1.8:
|
||||
progress@1.1.8:
|
||||
version "1.1.8"
|
||||
resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be"
|
||||
|
||||
progress@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f"
|
||||
|
||||
promise@^6.0.1:
|
||||
version "6.1.0"
|
||||
resolved "https://registry.yarnpkg.com/promise/-/promise-6.1.0.tgz#2ce729f6b94b45c26891ad0602c5c90e04c6eef6"
|
||||
@ -6161,14 +6178,6 @@ readdirp@^2.0.0:
|
||||
readable-stream "^2.0.2"
|
||||
set-immediate-shim "^1.0.1"
|
||||
|
||||
readline2@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/readline2/-/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35"
|
||||
dependencies:
|
||||
code-point-at "^1.0.0"
|
||||
is-fullwidth-code-point "^1.0.0"
|
||||
mute-stream "0.0.5"
|
||||
|
||||
rechoir@^0.6.2:
|
||||
version "0.6.2"
|
||||
resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384"
|
||||
@ -6361,7 +6370,7 @@ require-relative@0.8.7:
|
||||
version "0.8.7"
|
||||
resolved "https://registry.yarnpkg.com/require-relative/-/require-relative-0.8.7.tgz#7999539fc9e047a37928fa196f8e1563dabd36de"
|
||||
|
||||
require-uncached@^1.0.2:
|
||||
require-uncached@^1.0.3:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3"
|
||||
dependencies:
|
||||
@ -6404,6 +6413,13 @@ restore-cursor@^1.0.1:
|
||||
exit-hook "^1.0.0"
|
||||
onetime "^1.0.0"
|
||||
|
||||
restore-cursor@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf"
|
||||
dependencies:
|
||||
onetime "^2.0.0"
|
||||
signal-exit "^3.0.2"
|
||||
|
||||
right-align@^0.1.1:
|
||||
version "0.1.3"
|
||||
resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef"
|
||||
@ -6495,12 +6511,6 @@ rollup@^0.50.0:
|
||||
version "0.50.0"
|
||||
resolved "https://registry.yarnpkg.com/rollup/-/rollup-0.50.0.tgz#4c158f4e780e6cb33ff0dbfc184a52cc58cd5f3b"
|
||||
|
||||
run-async@^0.1.0:
|
||||
version "0.1.0"
|
||||
resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389"
|
||||
dependencies:
|
||||
once "^1.3.0"
|
||||
|
||||
run-async@^2.0.0, run-async@^2.2.0:
|
||||
version "2.3.0"
|
||||
resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0"
|
||||
@ -6514,9 +6524,15 @@ run-sequence@^2.2.0:
|
||||
chalk "^1.1.3"
|
||||
gulp-util "^3.0.8"
|
||||
|
||||
rx-lite@^3.1.2:
|
||||
version "3.1.2"
|
||||
resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102"
|
||||
rx-lite-aggregates@^4.0.8:
|
||||
version "4.0.8"
|
||||
resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be"
|
||||
dependencies:
|
||||
rx-lite "*"
|
||||
|
||||
rx-lite@*, rx-lite@^4.0.8:
|
||||
version "4.0.8"
|
||||
resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444"
|
||||
|
||||
rx@^4.1.0:
|
||||
version "4.1.0"
|
||||
@ -6570,7 +6586,7 @@ semver-diff@^2.0.0:
|
||||
dependencies:
|
||||
semver "^5.0.3"
|
||||
|
||||
"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0:
|
||||
"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1:
|
||||
version "5.4.1"
|
||||
resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e"
|
||||
|
||||
@ -6702,7 +6718,7 @@ shebang-regex@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
|
||||
|
||||
shelljs@^0.7.0, shelljs@^0.7.5:
|
||||
shelljs@^0.7.0:
|
||||
version "0.7.8"
|
||||
resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.8.tgz#decbcf874b0d1e5fb72e14b164a9683048e9acb3"
|
||||
dependencies:
|
||||
@ -6714,7 +6730,7 @@ sigmund@~1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590"
|
||||
|
||||
signal-exit@^3.0.0:
|
||||
signal-exit@^3.0.0, signal-exit@^3.0.2:
|
||||
version "3.0.2"
|
||||
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
|
||||
|
||||
@ -6735,9 +6751,11 @@ slash@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
|
||||
|
||||
slice-ansi@0.0.4:
|
||||
version "0.0.4"
|
||||
resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35"
|
||||
slice-ansi@1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d"
|
||||
dependencies:
|
||||
is-fullwidth-code-point "^2.0.0"
|
||||
|
||||
slide@^1.1.5:
|
||||
version "1.1.6"
|
||||
@ -6966,7 +6984,7 @@ string-width@^1.0.1, string-width@^1.0.2:
|
||||
is-fullwidth-code-point "^1.0.0"
|
||||
strip-ansi "^3.0.0"
|
||||
|
||||
string-width@^2.0.0:
|
||||
string-width@^2.1.0, string-width@^2.1.1:
|
||||
version "2.1.1"
|
||||
resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
|
||||
dependencies:
|
||||
@ -7068,6 +7086,12 @@ supports-color@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
|
||||
|
||||
supports-color@^4.0.0:
|
||||
version "4.4.0"
|
||||
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.4.0.tgz#883f7ddabc165142b2a61427f3352ded195d1a3e"
|
||||
dependencies:
|
||||
has-flag "^2.0.0"
|
||||
|
||||
sw-precache@^5.1.1, sw-precache@^5.2.0:
|
||||
version "5.2.0"
|
||||
resolved "https://registry.yarnpkg.com/sw-precache/-/sw-precache-5.2.0.tgz#eb6225ce580ceaae148194578a0ad01ab7ea199c"
|
||||
@ -7108,16 +7132,16 @@ table-layout@^0.3.0:
|
||||
typical "^2.6.0"
|
||||
wordwrapjs "^2.0.0-0"
|
||||
|
||||
table@^3.7.8:
|
||||
version "3.8.3"
|
||||
resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f"
|
||||
table@^4.0.1:
|
||||
version "4.0.2"
|
||||
resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36"
|
||||
dependencies:
|
||||
ajv "^4.7.0"
|
||||
ajv-keywords "^1.0.0"
|
||||
chalk "^1.1.1"
|
||||
lodash "^4.0.0"
|
||||
slice-ansi "0.0.4"
|
||||
string-width "^2.0.0"
|
||||
ajv "^5.2.3"
|
||||
ajv-keywords "^2.1.0"
|
||||
chalk "^2.1.0"
|
||||
lodash "^4.17.4"
|
||||
slice-ansi "1.0.0"
|
||||
string-width "^2.1.1"
|
||||
|
||||
tar-fs@^1.12.0:
|
||||
version "1.16.0"
|
||||
@ -7273,6 +7297,12 @@ tmp@^0.0.29:
|
||||
dependencies:
|
||||
os-tmpdir "~1.0.1"
|
||||
|
||||
tmp@^0.0.33:
|
||||
version "0.0.33"
|
||||
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
|
||||
dependencies:
|
||||
os-tmpdir "~1.0.2"
|
||||
|
||||
to-absolute-glob@^0.1.1:
|
||||
version "0.1.1"
|
||||
resolved "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-0.1.1.tgz#1cdfa472a9ef50c239ee66999b662ca0eb39937f"
|
||||
|
Loading…
x
Reference in New Issue
Block a user