Update lint tools (#2576)

* Update lint

* Prettier Hass.io

* Update prettier
This commit is contained in:
Paulus Schoutsen 2019-01-26 19:34:07 -08:00 committed by GitHub
parent 5a6d537d43
commit 8db111c2fb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
68 changed files with 1174 additions and 1475 deletions

View File

@ -8,7 +8,8 @@
},
"settings": {
"react": {
"pragma": "h"
"pragma": "h",
"version": "15.0"
},
"import/resolver": {
"webpack": {

View File

@ -54,26 +54,24 @@ export class HADemoCard extends LitElement implements LovelaceCard {
.disabled=${this._switching}
></paper-icon-button>
<div>
${
this._switching
? html`
<paper-spinner-lite active></paper-spinner-lite>
`
: until(
selectedDemoConfig.then(
(conf) => html`
${conf.name}
<small>
by
<a target="_blank" href="${conf.authorUrl}">
${conf.authorName}
</a>
</small>
`
),
""
)
}
${this._switching
? html`
<paper-spinner-lite active></paper-spinner-lite>
`
: until(
selectedDemoConfig.then(
(conf) => html`
${conf.name}
<small>
by
<a target="_blank" href="${conf.authorUrl}">
${conf.authorName}
</a>
</small>
`
),
""
)}
</div>
<paper-icon-button
@click=${this._nextConfig}

View File

@ -8,25 +8,23 @@ export class DemoUtilLongPress extends LitElement {
protected render(): TemplateResult | void {
return html`
${this.renderStyle()}
${
[1, 2, 3].map(
() => html`
<ha-card>
<paper-button
@ha-click="${this._handleTap}"
@ha-hold="${this._handleHold}"
.longPress="${longPress()}"
>
(long) press me!
</paper-button>
${[1, 2, 3].map(
() => html`
<ha-card>
<paper-button
@ha-click="${this._handleTap}"
@ha-hold="${this._handleHold}"
.longPress="${longPress()}"
>
(long) press me!
</paper-button>
<textarea></textarea>
<textarea></textarea>
<div>(try pressing and scrolling too!)</div>
</ha-card>
`
)
}
<div>(try pressing and scrolling too!)</div>
</ha-card>
`
)}
`;
}

View File

@ -62,14 +62,14 @@ class HassioPagesWithTabs extends NavigateMixin(PolymerElement) {
<paper-tab page-name="system">System</paper-tab>
</paper-tabs>
</app-header>
<template is="dom-if" if="[[equals(page, &quot;dashboard&quot;)]]">
<template is="dom-if" if='[[equals(page, "dashboard")]]'>
<hassio-dashboard
hass="[[hass]]"
supervisor-info="[[supervisorInfo]]"
hass-info="[[hassInfo]]"
></hassio-dashboard>
</template>
<template is="dom-if" if="[[equals(page, &quot;snapshots&quot;)]]">
<template is="dom-if" if='[[equals(page, "snapshots")]]'>
<hassio-snapshots
hass="[[hass]]"
installed-addons="[[supervisorInfo.addons]]"
@ -77,10 +77,10 @@ class HassioPagesWithTabs extends NavigateMixin(PolymerElement) {
snapshot-deleted="{{snapshotDeleted}}"
></hassio-snapshots>
</template>
<template is="dom-if" if="[[equals(page, &quot;store&quot;)]]">
<template is="dom-if" if='[[equals(page, "store")]]'>
<hassio-addon-store hass="[[hass]]"></hassio-addon-store>
</template>
<template is="dom-if" if="[[equals(page, &quot;system&quot;)]]">
<template is="dom-if" if='[[equals(page, "system")]]'>
<hassio-system
hass="[[hass]]"
supervisor-info="[[supervisorInfo]]"
@ -94,7 +94,7 @@ class HassioPagesWithTabs extends NavigateMixin(PolymerElement) {
content="[[markdownContent]]"
></hassio-markdown-dialog>
<template is="dom-if" if="[[equals(page, &quot;snapshots&quot;)]]">
<template is="dom-if" if='[[equals(page, "snapshots")]]'>
<hassio-snapshot
hass="[[hass]]"
snapshot-slug="{{snapshotSlug}}"

View File

@ -50,10 +50,7 @@ class HassioSupervisorInfo extends EventsMixin(PolymerElement) {
<td>Latest version</td>
<td>[[data.last_version]]</td>
</tr>
<template
is="dom-if"
if="[[!_equals(data.channel, &quot;stable&quot;)]]"
>
<template is="dom-if" if='[[!_equals(data.channel, "stable")]]'>
<tr>
<td>Channel</td>
<td>[[data.channel]]</td>
@ -74,10 +71,7 @@ class HassioSupervisorInfo extends EventsMixin(PolymerElement) {
>Update</ha-call-api-button
>
</template>
<template
is="dom-if"
if="[[_equals(data.channel, &quot;beta&quot;)]]"
>
<template is="dom-if" if='[[_equals(data.channel, "beta")]]'>
<ha-call-api-button
hass="[[hass]]"
path="hassio/supervisor/options"
@ -85,10 +79,7 @@ class HassioSupervisorInfo extends EventsMixin(PolymerElement) {
>Leave beta channel</ha-call-api-button
>
</template>
<template
is="dom-if"
if="[[_equals(data.channel, &quot;stable&quot;)]]"
>
<template is="dom-if" if='[[_equals(data.channel, "stable")]]'>
<paper-button
on-click="_joinBeta"
class="warning"

View File

@ -112,7 +112,7 @@
"del": "^3.0.0",
"eslint": "^5.6.0",
"eslint-config-airbnb-base": "^13.1.0",
"eslint-config-prettier": "^3.1.0",
"eslint-config-prettier": "^4.0.0",
"eslint-plugin-import": "^2.14.0",
"eslint-plugin-prettier": "^3.0.0",
"eslint-plugin-react": "^7.11.1",

View File

@ -21,21 +21,21 @@ class HaAuthFlow extends localizeLiteMixin(PolymerElement) {
}
</style>
<form>
<template is="dom-if" if="[[_equals(_state, &quot;loading&quot;)]]">
<template is="dom-if" if='[[_equals(_state, "loading")]]'>
[[localize('ui.panel.page-authorize.form.working')]]:
</template>
<template is="dom-if" if="[[_equals(_state, &quot;error&quot;)]]">
<template is="dom-if" if='[[_equals(_state, "error")]]'>
<div class="error">Error: [[_errorMsg]]</div>
</template>
<template is="dom-if" if="[[_equals(_state, &quot;step&quot;)]]">
<template is="dom-if" if="[[_equals(_step.type, &quot;abort&quot;)]]">
<template is="dom-if" if='[[_equals(_state, "step")]]'>
<template is="dom-if" if='[[_equals(_step.type, "abort")]]'>
[[localize('ui.panel.page-authorize.abort_intro')]]:
<ha-markdown
content="[[_computeStepAbortedReason(localize, _step)]]"
></ha-markdown>
</template>
<template is="dom-if" if="[[_equals(_step.type, &quot;form&quot;)]]">
<template is="dom-if" if='[[_equals(_step.type, "form")]]'>
<template
is="dom-if"
if="[[_computeStepDescription(localize, _step)]]"

View File

@ -78,13 +78,11 @@ class HaAuthorize extends litLocalizeLiteMixin(LitElement) {
return html`
${this.renderStyle()}
<p>
${
this.localize(
"ui.panel.page-authorize.authorizing_client",
"clientId",
this.clientId
)
}
${this.localize(
"ui.panel.page-authorize.authorizing_client",
"clientId",
this.clientId
)}
</p>
${loggingInWith}
@ -97,18 +95,16 @@ class HaAuthorize extends litLocalizeLiteMixin(LitElement) {
.step="{{step}}"
></ha-auth-flow>
${
inactiveProviders.length > 0
? html`
<ha-pick-auth-provider
.resources="${this.resources}"
.clientId="${this.clientId}"
.authProviders="${inactiveProviders}"
@pick="${this._handleAuthProviderPick}"
></ha-pick-auth-provider>
`
: ""
}
${inactiveProviders.length > 0
? html`
<ha-pick-auth-provider
.resources="${this.resources}"
.clientId="${this.clientId}"
.authProviders="${inactiveProviders}"
@pick="${this._handleAuthProviderPick}"
></ha-pick-auth-provider>
`
: ""}
`;
}

View File

@ -56,13 +56,10 @@ export class HaStateLabelBadge extends hassLocalizeLitMixin(LitElement) {
return html`
${this.renderStyle()}
<ha-label-badge
class="${
classMap({
[domain]: true,
"has-unit_of_measurement":
"unit_of_measurement" in state.attributes,
})
}"
class="${classMap({
[domain]: true,
"has-unit_of_measurement": "unit_of_measurement" in state.attributes,
})}"
.value="${this._computeValue(domain, state)}"
.icon="${this._computeIcon(domain, state)}"
.image="${state.attributes.entity_picture}"

View File

@ -48,12 +48,12 @@ class HaForm extends EventsMixin(PolymerElement) {
<template
is="dom-if"
if="[[_equals(schema.type, &quot;string&quot;)]]"
if='[[_equals(schema.type, "string")]]'
restamp=""
>
<template
is="dom-if"
if="[[_includes(schema.name, &quot;password&quot;)]]"
if='[[_includes(schema.name, "password")]]'
restamp=""
>
<paper-input
@ -77,7 +77,7 @@ class HaForm extends EventsMixin(PolymerElement) {
</template>
<template
is="dom-if"
if="[[!_includes(schema.name, &quot;password&quot;)]]"
if='[[!_includes(schema.name, "password")]]'
restamp=""
>
<paper-input
@ -92,7 +92,7 @@ class HaForm extends EventsMixin(PolymerElement) {
<template
is="dom-if"
if="[[_equals(schema.type, &quot;integer&quot;)]]"
if='[[_equals(schema.type, "integer")]]'
restamp=""
>
<template is="dom-if" if="[[_isRange(schema)]]" restamp="">
@ -118,11 +118,7 @@ class HaForm extends EventsMixin(PolymerElement) {
</template>
</template>
<template
is="dom-if"
if="[[_equals(schema.type, &quot;float&quot;)]]"
restamp=""
>
<template is="dom-if" if='[[_equals(schema.type, "float")]]' restamp="">
<!-- TODO -->
<paper-input
label="[[computeLabel(schema)]]"
@ -135,7 +131,7 @@ class HaForm extends EventsMixin(PolymerElement) {
<template
is="dom-if"
if="[[_equals(schema.type, &quot;boolean&quot;)]]"
if='[[_equals(schema.type, "boolean")]]'
restamp=""
>
<div>
@ -147,7 +143,7 @@ class HaForm extends EventsMixin(PolymerElement) {
<template
is="dom-if"
if="[[_equals(schema.type, &quot;select&quot;)]]"
if='[[_equals(schema.type, "select")]]'
restamp=""
>
<paper-dropdown-menu label="[[computeLabel(schema)]]">

View File

@ -32,49 +32,40 @@ class HaLabelBadge extends LitElement {
<div class="badge-container">
<div class="label-badge" id="badge">
<div
class="${
classMap({
value: true,
big: Boolean(this.value && this.value.length > 4),
})
}"
class="${classMap({
value: true,
big: Boolean(this.value && this.value.length > 4),
})}"
>
${
this.icon && !this.value && !this.image
? html`
<ha-icon .icon="${this.icon}"></ha-icon>
`
: ""
}
${
this.value && !this.image
? html`
<span>${this.value}</span>
`
: ""
}
</div>
${
this.label
${this.icon && !this.value && !this.image
? html`
<div
class="${
classMap({ label: true, big: this.label.length > 5 })
}"
>
<span>${this.label}</span>
</div>
<ha-icon .icon="${this.icon}"></ha-icon>
`
: ""
}
</div>
${
this.description
: ""}
${this.value && !this.image
? html`
<span>${this.value}</span>
`
: ""}
</div>
${this.label
? html`
<div class="title">${this.description}</div>
<div
class="${classMap({
label: true,
big: this.label.length > 5,
})}"
>
<span>${this.label}</span>
</div>
`
: ""
}
: ""}
</div>
${this.description
? html`
<div class="title">${this.description}</div>
`
: ""}
</div>
`;
}

View File

@ -89,7 +89,7 @@ class HaMoreInfoDialog extends DialogMixin(PolymerElement) {
large="{{large}}"
></more-info-controls>
</template>
<template is="dom-if" if="[[_equals(_page, &quot;settings&quot;)]]">
<template is="dom-if" if='[[_equals(_page, "settings")]]'>
<more-info-settings
class="no-padding"
hass="[[hass]]"

View File

@ -62,18 +62,16 @@ export class CloudAlexaPref extends LitElement {
>This integration requires an Alexa-enabled device like the Amazon
Echo.</em
>
${
enabled
? html`
<p>Exposed entities:</p>
<cloud-exposed-entities
.hass="${this.hass}"
.filter="${this.cloudStatus!.alexa_entities}"
.supportedDomains="${this.cloudStatus!.alexa_domains}"
></cloud-exposed-entities>
`
: ""
}
${enabled
? html`
<p>Exposed entities:</p>
<cloud-exposed-entities
.hass="${this.hass}"
.filter="${this.cloudStatus!.alexa_entities}"
.supportedDomains="${this.cloudStatus!.alexa_domains}"
></cloud-exposed-entities>
`
: ""}
</div>
</paper-card>
`;

View File

@ -51,21 +51,19 @@ export class CloudExposedEntities extends LitElement {
return html`
${this.renderStyle()}
${
repeat(
states!,
(stateInfo) => stateInfo[1].entity_id,
(stateInfo) => html`
<span>
<ha-state-icon
.stateObj="${stateInfo[1]}"
@click="${this._handleMoreInfo}"
></ha-state-icon>
<paper-tooltip position="bottom">${stateInfo[0]}</paper-tooltip>
</span>
`
)
}
${repeat(
states!,
(stateInfo) => stateInfo[1].entity_id,
(stateInfo) => html`
<span>
<ha-state-icon
.stateObj="${stateInfo[1]}"
@click="${this._handleMoreInfo}"
></ha-state-icon>
<paper-tooltip position="bottom">${stateInfo[0]}</paper-tooltip>
</span>
`
)}
`;
}

View File

@ -69,26 +69,24 @@ export class CloudGooglePref extends LitElement {
>This integration requires a Google Assistant-enabled device like
the Google Home or Android phone.</em
>
${
google_enabled
? html`
<div class="unlock">
<div>Allow unlocking locks</div>
<paper-toggle-button
id="google_allow_unlock"
.checked="${google_allow_unlock}"
@change="${this._toggleChanged}"
></paper-toggle-button>
</div>
<p>Exposed entities:</p>
<cloud-exposed-entities
.hass="${this.hass}"
.filter="${this.cloudStatus!.google_entities}"
.supportedDomains="${this.cloudStatus!.google_domains}"
></cloud-exposed-entities>
`
: ""
}
${google_enabled
? html`
<div class="unlock">
<div>Allow unlocking locks</div>
<paper-toggle-button
id="google_allow_unlock"
.checked="${google_allow_unlock}"
@change="${this._toggleChanged}"
></paper-toggle-button>
</div>
<p>Exposed entities:</p>
<cloud-exposed-entities
.hass="${this.hass}"
.filter="${this.cloudStatus!.google_entities}"
.supportedDomains="${this.cloudStatus!.google_domains}"
></cloud-exposed-entities>
`
: ""}
</div>
<div class="card-actions">
<ha-call-api-button

View File

@ -108,33 +108,29 @@ export class CloudWebhooks extends LitElement {
<paper-item-body two-line>
<div>
${entry.name}
${
entry.domain === entry.name.toLowerCase()
? ""
: ` (${entry.domain})`
}
${entry.domain === entry.name.toLowerCase()
? ""
: ` (${entry.domain})`}
</div>
<div secondary>${entry.webhook_id}</div>
</paper-item-body>
${
this._progress.includes(entry.webhook_id)
? html`
<div class="progress">
<paper-spinner active></paper-spinner>
</div>
`
: this._cloudHooks![entry.webhook_id]
? html`
<paper-button @click="${this._handleManageButton}"
>Manage</paper-button
>
`
: html`
<paper-toggle-button
@click="${this._enableWebhook}"
></paper-toggle-button>
`
}
${this._progress.includes(entry.webhook_id)
? html`
<div class="progress">
<paper-spinner active></paper-spinner>
</div>
`
: this._cloudHooks![entry.webhook_id]
? html`
<paper-button @click="${this._handleManageButton}"
>Manage</paper-button
>
`
: html`
<paper-toggle-button
@click="${this._enableWebhook}"
></paper-toggle-button>
`}
</div>
`
);

View File

@ -33,7 +33,7 @@ class HaConfigCloud extends NavigateMixin(PolymerElement) {
<template
is="dom-if"
if="[[_equals(_routeData.page, &quot;account&quot;)]]"
if='[[_equals(_routeData.page, "account")]]'
restamp=""
>
<ha-config-cloud-account
@ -45,7 +45,7 @@ class HaConfigCloud extends NavigateMixin(PolymerElement) {
<template
is="dom-if"
if="[[_equals(_routeData.page, &quot;login&quot;)]]"
if='[[_equals(_routeData.page, "login")]]'
restamp=""
>
<ha-config-cloud-login
@ -59,7 +59,7 @@ class HaConfigCloud extends NavigateMixin(PolymerElement) {
<template
is="dom-if"
if="[[_equals(_routeData.page, &quot;register&quot;)]]"
if='[[_equals(_routeData.page, "register")]]'
restamp=""
>
<ha-config-cloud-register
@ -72,7 +72,7 @@ class HaConfigCloud extends NavigateMixin(PolymerElement) {
<template
is="dom-if"
if="[[_equals(_routeData.page, &quot;forgot-password&quot;)]]"
if='[[_equals(_routeData.page, "forgot-password")]]'
restamp=""
>
<ha-config-cloud-forgot-password

View File

@ -41,11 +41,7 @@ class HaPanelConfig extends EventsMixin(NavigateMixin(PolymerElement)) {
>
</iron-media-query>
<template
is="dom-if"
if="[[_equals(_routeData.page, &quot;core&quot;)]]"
restamp
>
<template is="dom-if" if='[[_equals(_routeData.page, "core")]]' restamp>
<ha-config-core
page-name="core"
hass="[[hass]]"
@ -53,11 +49,7 @@ class HaPanelConfig extends EventsMixin(NavigateMixin(PolymerElement)) {
></ha-config-core>
</template>
<template
is="dom-if"
if="[[_equals(_routeData.page, &quot;cloud&quot;)]]"
restamp
>
<template is="dom-if" if='[[_equals(_routeData.page, "cloud")]]' restamp>
<ha-config-cloud
page-name="cloud"
route="[[route]]"
@ -67,10 +59,7 @@ class HaPanelConfig extends EventsMixin(NavigateMixin(PolymerElement)) {
></ha-config-cloud>
</template>
<template
is="dom-if"
if="[[_equals(_routeData.page, &quot;dashboard&quot;)]]"
>
<template is="dom-if" if='[[_equals(_routeData.page, "dashboard")]]'>
<ha-config-dashboard
page-name="dashboard"
hass="[[hass]]"
@ -83,7 +72,7 @@ class HaPanelConfig extends EventsMixin(NavigateMixin(PolymerElement)) {
<template
is="dom-if"
if="[[_equals(_routeData.page, &quot;automation&quot;)]]"
if='[[_equals(_routeData.page, "automation")]]'
restamp
>
<ha-config-automation
@ -94,11 +83,7 @@ class HaPanelConfig extends EventsMixin(NavigateMixin(PolymerElement)) {
></ha-config-automation>
</template>
<template
is="dom-if"
if="[[_equals(_routeData.page, &quot;script&quot;)]]"
restamp
>
<template is="dom-if" if='[[_equals(_routeData.page, "script")]]' restamp>
<ha-config-script
page-name="script"
route="[[route]]"
@ -107,11 +92,7 @@ class HaPanelConfig extends EventsMixin(NavigateMixin(PolymerElement)) {
></ha-config-script>
</template>
<template
is="dom-if"
if="[[_equals(_routeData.page, &quot;zha&quot;)]]"
restamp
>
<template is="dom-if" if='[[_equals(_routeData.page, "zha")]]' restamp>
<ha-config-zha
page-name="zha"
hass="[[hass]]"
@ -119,11 +100,7 @@ class HaPanelConfig extends EventsMixin(NavigateMixin(PolymerElement)) {
></ha-config-zha>
</template>
<template
is="dom-if"
if="[[_equals(_routeData.page, &quot;zwave&quot;)]]"
restamp
>
<template is="dom-if" if='[[_equals(_routeData.page, "zwave")]]' restamp>
<ha-config-zwave
page-name="zwave"
hass="[[hass]]"
@ -133,7 +110,7 @@ class HaPanelConfig extends EventsMixin(NavigateMixin(PolymerElement)) {
<template
is="dom-if"
if="[[_equals(_routeData.page, &quot;customize&quot;)]]"
if='[[_equals(_routeData.page, "customize")]]'
restamp
>
<ha-config-customize
@ -145,7 +122,7 @@ class HaPanelConfig extends EventsMixin(NavigateMixin(PolymerElement)) {
<template
is="dom-if"
if="[[_equals(_routeData.page, &quot;integrations&quot;)]]"
if='[[_equals(_routeData.page, "integrations")]]'
restamp
>
<ha-config-entries
@ -157,11 +134,7 @@ class HaPanelConfig extends EventsMixin(NavigateMixin(PolymerElement)) {
></ha-config-entries>
</template>
<template
is="dom-if"
if="[[_equals(_routeData.page, &quot;users&quot;)]]"
restamp
>
<template is="dom-if" if='[[_equals(_routeData.page, "users")]]' restamp>
<ha-config-users
page-name="users"
route="[[route]]"

View File

@ -22,15 +22,12 @@ class HaConfigUsers extends NavigateMixin(PolymerElement) {
data="{{_routeData}}"
></app-route>
<template
is="dom-if"
if="[[_equals(_routeData.user, &quot;picker&quot;)]]"
>
<template is="dom-if" if='[[_equals(_routeData.user, "picker")]]'>
<ha-user-picker hass="[[hass]]" users="[[_users]]"></ha-user-picker>
</template>
<template
is="dom-if"
if="[[!_equals(_routeData.user, &quot;picker&quot;)]]"
if='[[!_equals(_routeData.user, "picker")]]'
restamp
>
<ha-user-editor

View File

@ -66,27 +66,25 @@ export class HaConfigZha extends LitElement {
@zha-node-selected="${this._onNodeSelected}"
@zha-entity-selected="${this._onEntitySelected}"
></zha-node>
${
this._selectedCluster
? html`
<zha-cluster-attributes
.isWide="${this.isWide}"
.hass="${this.hass}"
.selectedNode="${this._selectedNode}"
.selectedEntity="${this._selectedEntity}"
.selectedCluster="${this._selectedCluster}"
></zha-cluster-attributes>
${this._selectedCluster
? html`
<zha-cluster-attributes
.isWide="${this.isWide}"
.hass="${this.hass}"
.selectedNode="${this._selectedNode}"
.selectedEntity="${this._selectedEntity}"
.selectedCluster="${this._selectedCluster}"
></zha-cluster-attributes>
<zha-cluster-commands
.isWide="${this.isWide}"
.hass="${this.hass}"
.selectedNode="${this._selectedNode}"
.selectedEntity="${this._selectedEntity}"
.selectedCluster="${this._selectedCluster}"
></zha-cluster-commands>
`
: ""
}
<zha-cluster-commands
.isWide="${this.isWide}"
.hass="${this.hass}"
.selectedNode="${this._selectedNode}"
.selectedEntity="${this._selectedEntity}"
.selectedCluster="${this._selectedCluster}"
></zha-cluster-commands>
`
: ""}
</ha-app-layout>
`;
}

View File

@ -102,32 +102,26 @@ export class ZHAClusterAttributes extends LitElement {
.selected="${this._selectedAttributeIndex}"
@iron-select="${this._selectedAttributeChanged}"
>
${
this._attributes.map(
(entry) => html`
<paper-item
>${entry.name + " (id: " + entry.id + ")"}</paper-item
>
`
)
}
${this._attributes.map(
(entry) => html`
<paper-item
>${entry.name + " (id: " + entry.id + ")"}</paper-item
>
`
)}
</paper-listbox>
</paper-dropdown-menu>
</div>
${
this.showHelp
? html`
<div style="color: grey; padding: 16px">
Select an attribute to view or set its value
</div>
`
: ""
}
${
this._selectedAttributeIndex !== -1
? this._renderAttributeInteractions()
: ""
}
${this.showHelp
? html`
<div style="color: grey; padding: 16px">
Select an attribute to view or set its value
</div>
`
: ""}
${this._selectedAttributeIndex !== -1
? this._renderAttributeInteractions()
: ""}
</paper-card>
</ha-config-section>
`;
@ -164,17 +158,15 @@ export class ZHAClusterAttributes extends LitElement {
.serviceData="${this._setAttributeServiceData}"
>Set Zigbee Attribute</ha-call-service-button
>
${
this.showHelp
? html`
<ha-service-description
.hass="${this.hass}"
domain="zha"
service="set_zigbee_cluster_attribute"
></ha-service-description>
`
: ""
}
${this.showHelp
? html`
<ha-service-description
.hass="${this.hass}"
domain="zha"
service="set_zigbee_cluster_attribute"
></ha-service-description>
`
: ""}
</div>
`;
}

View File

@ -94,62 +94,52 @@ export class ZHAClusterCommands extends LitElement {
.selected="${this._selectedCommandIndex}"
@iron-select="${this._selectedCommandChanged}"
>
${
this._commands.map(
(entry) => html`
<paper-item
>${entry.name + " (id: " + entry.id + ")"}</paper-item
>
`
)
}
${this._commands.map(
(entry) => html`
<paper-item
>${entry.name + " (id: " + entry.id + ")"}</paper-item
>
`
)}
</paper-listbox>
</paper-dropdown-menu>
</div>
${
this._showHelp
? html`
<div class="helpText">Select a command to interact with</div>
`
: ""
}
${
this._selectedCommandIndex !== -1
? html`
<div class="input-text">
<paper-input
label="Manufacturer code override"
type="number"
.value="${this._manufacturerCodeOverride}"
@value-changed="${
this._onManufacturerCodeOverrideChanged
}"
placeholder="Value"
></paper-input>
</div>
<div class="card-actions">
<ha-call-service-button
.hass="${this.hass}"
domain="zha"
service="issue_zigbee_cluster_command"
.serviceData="${this._issueClusterCommandServiceData}"
>Issue Zigbee Command</ha-call-service-button
>
${
this._showHelp
? html`
<ha-service-description
.hass="${this.hass}"
domain="zha"
service="issue_zigbee_cluster_command"
></ha-service-description>
`
: ""
}
</div>
`
: ""
}
${this._showHelp
? html`
<div class="helpText">Select a command to interact with</div>
`
: ""}
${this._selectedCommandIndex !== -1
? html`
<div class="input-text">
<paper-input
label="Manufacturer code override"
type="number"
.value="${this._manufacturerCodeOverride}"
@value-changed="${this._onManufacturerCodeOverrideChanged}"
placeholder="Value"
></paper-input>
</div>
<div class="card-actions">
<ha-call-service-button
.hass="${this.hass}"
domain="zha"
service="issue_zigbee_cluster_command"
.serviceData="${this._issueClusterCommandServiceData}"
>Issue Zigbee Command</ha-call-service-button
>
${this._showHelp
? html`
<ha-service-description
.hass="${this.hass}"
domain="zha"
service="issue_zigbee_cluster_command"
></ha-service-description>
`
: ""}
</div>
`
: ""}
</paper-card>
</ha-config-section>
`;

View File

@ -81,25 +81,21 @@ export class ZHAClusters extends LitElement {
.selected="${this._selectedClusterIndex}"
@iron-select="${this._selectedClusterChanged}"
>
${
this._clusters.map(
(entry) => html`
<paper-item>${computeClusterKey(entry)}</paper-item>
`
)
}
${this._clusters.map(
(entry) => html`
<paper-item>${computeClusterKey(entry)}</paper-item>
`
)}
</paper-listbox>
</paper-dropdown-menu>
</div>
${
this.showHelp
? html`
<div class="helpText">
Select cluster to view attributes and commands
</div>
`
: ""
}
${this.showHelp
? html`
<div class="helpText">
Select cluster to view attributes and commands
</div>
`
: ""}
`;
}

View File

@ -70,36 +70,30 @@ export class ZHAEntities extends LitElement {
.selected="${this._selectedEntityIndex}"
@iron-select="${this._selectedEntityChanged}"
>
${
this._entities.map(
(entry) => html`
<paper-item>${entry.entity_id}</paper-item>
`
)
}
${this._entities.map(
(entry) => html`
<paper-item>${entry.entity_id}</paper-item>
`
)}
</paper-listbox>
</paper-dropdown-menu>
</div>
${
this.showHelp
? html`
<div class="helpText">
Select entity to view per-entity options
</div>
`
: ""
}
${
this._selectedEntityIndex !== -1
? html`
<div class="actions">
<paper-button @click="${this._showEntityInformation}"
>Entity Information</paper-button
>
</div>
`
: ""
}
${this.showHelp
? html`
<div class="helpText">
Select entity to view per-entity options
</div>
`
: ""}
${this._selectedEntityIndex !== -1
? html`
<div class="actions">
<paper-button @click="${this._showEntityInformation}"
>Entity Information</paper-button
>
</div>
`
: ""}
`;
}

View File

@ -95,27 +95,23 @@ export class ZHANode extends LitElement {
slot="dropdown-content"
@iron-select="${this._selectedNodeChanged}"
>
${
this._nodes.map(
(entry) => html`
<paper-item
>${this._computeSelectCaption(entry)}</paper-item
>
`
)
}
${this._nodes.map(
(entry) => html`
<paper-item
>${this._computeSelectCaption(entry)}</paper-item
>
`
)}
</paper-listbox>
</paper-dropdown-menu>
</div>
${
this._showHelp
? html`
<div class="helpText">
Select node to view per-node options
</div>
`
: ""
}
${this._showHelp
? html`
<div class="helpText">
Select node to view per-node options
</div>
`
: ""}
${this._selectedNodeIndex !== -1 ? this._renderNodeActions() : ""}
${this._selectedNodeIndex !== -1 ? this._renderEntities() : ""}
${this._selectedEntity ? this._renderClusters() : ""}
@ -133,17 +129,15 @@ export class ZHANode extends LitElement {
<paper-button @click="${this._onReconfigureNodeClick}"
>Reconfigure Node</paper-button
>
${
this._showHelp
? html`
<ha-service-description
.hass="${this.hass}"
domain="zha"
service="reconfigure_device"
/>
`
: ""
}
${this._showHelp
? html`
<ha-service-description
.hass="${this.hass}"
domain="zha"
service="reconfigure_device"
/>
`
: ""}
<ha-call-service-button
.hass="${this.hass}"
domain="zha"
@ -151,17 +145,15 @@ export class ZHANode extends LitElement {
.serviceData="${this._serviceData}"
>Remove Node</ha-call-service-button
>
${
this._showHelp
? html`
<ha-service-description
.hass="${this.hass}"
domain="zha"
service="remove"
/>
`
: ""
}
${this._showHelp
? html`
<ha-service-description
.hass="${this.hass}"
domain="zha"
service="remove"
/>
`
: ""}
</div>
`;
}

View File

@ -69,7 +69,7 @@ class ZwaveUsercodes extends PolymerElement {
hass="[[hass]]"
domain="lock"
service="set_usercode"
service-data="[[_computeUserCodeServiceData(_selectedUserCodeValue, &quot;Add&quot;)]]"
service-data='[[_computeUserCodeServiceData(_selectedUserCodeValue, "Add")]]'
>
Set Usercode
</ha-call-service-button>
@ -77,7 +77,7 @@ class ZwaveUsercodes extends PolymerElement {
hass="[[hass]]"
domain="lock"
service="clear_usercode"
service-data="[[_computeUserCodeServiceData(_selectedUserCode, &quot;Delete&quot;)]]"
service-data='[[_computeUserCodeServiceData(_selectedUserCode, "Delete")]]'
>
Delete Usercode
</ha-call-service-button>

View File

@ -124,63 +124,53 @@ class HuiAlarmPanelCard extends hassLocalizeLitMixin(LitElement)
.label="${this._stateIconLabel(stateObj.state)}"
></ha-label-badge>
<div id="armActions" class="actions">
${
(stateObj.state === "disarmed"
? this._config.states!
: ["disarm"]
).map((state) => {
return html`
<paper-button
noink
raised
.action="${state}"
@click="${this._handleActionClick}"
>${this._label(state)}</paper-button
>
`;
})
}
${(stateObj.state === "disarmed"
? this._config.states!
: ["disarm"]
).map((state) => {
return html`
<paper-button
noink
raised
.action="${state}"
@click="${this._handleActionClick}"
>${this._label(state)}</paper-button
>
`;
})}
</div>
${
!stateObj.attributes.code_format
? html``
: html`
<paper-input
label="Alarm Code"
type="password"
.value="${this._code}"
></paper-input>
`
}
${
stateObj.attributes.code_format !== FORMAT_NUMBER
? html``
: html`
<div id="keypad">
${
BUTTONS.map((value) => {
return value === ""
? html`
<paper-button disabled></paper-button>
`
: html`
<paper-button
noink
raised
.value="${value}"
@click="${this._handlePadClick}"
>${
value === "clear"
? this._label("clear_code")
: value
}</paper-button
>
`;
})
}
</div>
`
}
${!stateObj.attributes.code_format
? html``
: html`
<paper-input
label="Alarm Code"
type="password"
.value="${this._code}"
></paper-input>
`}
${stateObj.attributes.code_format !== FORMAT_NUMBER
? html``
: html`
<div id="keypad">
${BUTTONS.map((value) => {
return value === ""
? html`
<paper-button disabled></paper-button>
`
: html`
<paper-button
noink
raised
.value="${value}"
@click="${this._handlePadClick}"
>${value === "clear"
? this._label("clear_code")
: value}</paper-button
>
`;
})}
</div>
`}
</ha-card>
`;
}

View File

@ -104,33 +104,27 @@ class HuiEntitiesCard extends hassLocalizeLitMixin(LitElement)
return html`
${this.renderStyle()}
<ha-card>
${
!title && !show_header_toggle
? html``
: html`
<div class="header">
<div class="name">${title}</div>
${
show_header_toggle === false
? html``
: html`
<hui-entities-toggle
.hass="${this._hass}"
.entities="${
this._configEntities!.map((conf) => conf.entity)
}"
></hui-entities-toggle>
`
}
</div>
`
}
${!title && !show_header_toggle
? html``
: html`
<div class="header">
<div class="name">${title}</div>
${show_header_toggle === false
? html``
: html`
<hui-entities-toggle
.hass="${this._hass}"
.entities="${this._configEntities!.map(
(conf) => conf.entity
)}"
></hui-entities-toggle>
`}
</div>
`}
<div id="states">
${
this._configEntities!.map((entityConf) =>
this.renderEntity(entityConf)
)
}
${this._configEntities!.map((entityConf) =>
this.renderEntity(entityConf)
)}
</div>
</ha-card>
`;

View File

@ -95,34 +95,30 @@ class HuiEntityButtonCard extends hassLocalizeLitMixin(LitElement)
@ha-hold="${this._handleHold}"
.longPress="${longPress()}"
>
${
!stateObj
? html`
<div class="not-found">
Entity not available: ${this._config.entity}
${!stateObj
? html`
<div class="not-found">
Entity not available: ${this._config.entity}
</div>
`
: html`
<paper-button>
<div>
<ha-icon
data-domain="${computeStateDomain(stateObj)}"
data-state="${stateObj.state}"
.icon="${this._config.icon || stateIcon(stateObj)}"
style="${styleMap({
filter: this._computeBrightness(stateObj),
color: this._computeColor(stateObj),
})}"
></ha-icon>
<span>
${this._config.name || computeStateName(stateObj)}
</span>
</div>
`
: html`
<paper-button>
<div>
<ha-icon
data-domain="${computeStateDomain(stateObj)}"
data-state="${stateObj.state}"
.icon="${this._config.icon || stateIcon(stateObj)}"
style="${
styleMap({
filter: this._computeBrightness(stateObj),
color: this._computeColor(stateObj),
})
}"
></ha-icon>
<span>
${this._config.name || computeStateName(stateObj)}
</span>
</div>
</paper-button>
`
}
</paper-button>
`}
</ha-card>
`;
}

View File

@ -111,40 +111,34 @@ class HuiGaugeCard extends LitElement implements LovelaceCard {
return html`
${this.renderStyle()}
<ha-card @click="${this._handleClick}">
${
error
? html`
<div class="not-found">${error}</div>
`
: html`
<div class="container">
<div class="gauge-a"></div>
<div class="gauge-b"></div>
<div
class="gauge-c"
style="${
styleMap({
transform: `rotate(${this._translateTurn(state)}turn)`,
"background-color": this._computeSeverity(state),
})
}"
></div>
<div class="gauge-data">
<div id="percent">
${stateObj.state}
${
this._config.unit ||
stateObj.attributes.unit_of_measurement ||
""
}
</div>
<div id="name">
${this._config.name || computeStateName(stateObj)}
</div>
${error
? html`
<div class="not-found">${error}</div>
`
: html`
<div class="container">
<div class="gauge-a"></div>
<div class="gauge-b"></div>
<div
class="gauge-c"
style="${styleMap({
transform: `rotate(${this._translateTurn(state)}turn)`,
"background-color": this._computeSeverity(state),
})}"
></div>
<div class="gauge-data">
<div id="percent">
${stateObj.state}
${this._config.unit ||
stateObj.attributes.unit_of_measurement ||
""}
</div>
<div id="name">
${this._config.name || computeStateName(stateObj)}
</div>
</div>
`
}
</div>
`}
</ha-card>
`;
}

View File

@ -124,11 +124,9 @@ export class HuiGlanceCard extends hassLocalizeLitMixin(LitElement)
${this.renderStyle()}
<ha-card .header="${title}">
<div class="entities ${classMap({ "no-header": !title })}">
${
this._configEntities!.map((entityConf) =>
this.renderEntity(entityConf)
)
}
${this._configEntities!.map((entityConf) =>
this.renderEntity(entityConf)
)}
</div>
</ha-card>
`;
@ -208,38 +206,30 @@ export class HuiGlanceCard extends hassLocalizeLitMixin(LitElement)
@ha-hold="${this._handleHold}"
.longPress="${longPress()}"
>
${
this._config!.show_name !== false
? html`
<div class="name">
${
"name" in entityConf
? entityConf.name
: computeStateName(stateObj)
}
</div>
`
: ""
}
${this._config!.show_name !== false
? html`
<div class="name">
${"name" in entityConf
? entityConf.name
: computeStateName(stateObj)}
</div>
`
: ""}
<state-badge
.stateObj="${stateObj}"
.overrideIcon="${entityConf.icon}"
></state-badge>
${
this._config!.show_state !== false
? html`
<div>
${
computeStateDisplay(
this.localize,
stateObj,
this.hass!.language
)
}
</div>
`
: ""
}
${this._config!.show_state !== false
? html`
<div>
${computeStateDisplay(
this.localize,
stateObj,
this.hass!.language
)}
</div>
`
: ""}
</div>
`;
}

View File

@ -64,11 +64,9 @@ export class HuiIframeCard extends LitElement implements LovelaceCard {
<ha-card .header="${this._config.title}">
<div
id="root"
style="${
styleMap({
"padding-top": aspectRatio,
})
}"
style="${styleMap({
"padding-top": aspectRatio,
})}"
>
<iframe src="${this._config.url}"></iframe>
</div>

View File

@ -92,43 +92,39 @@ export class HuiLightCard extends hassLocalizeLitMixin(LitElement)
return html`
${this.renderStyle()}
<ha-card>
${
!stateObj
? html`
<div class="not-found">
Entity not available: ${this._config.entity}
</div>
`
: html`
<div id="light"></div>
<div id="tooltip">
<div class="icon-state">
<ha-icon
data-state="${stateObj.state}"
.icon="${stateIcon(stateObj)}"
style="${
styleMap({
filter: this._computeBrightness(stateObj),
color: this._computeColor(stateObj),
})
}"
@ha-click="${this._handleTap}"
@ha-hold="${this._handleHold}"
.longPress="${longPress()}"
></ha-icon>
<div
class="brightness"
@ha-click="${this._handleTap}"
@ha-hold="${this._handleHold}"
.longPress="${longPress()}"
></div>
<div class="name">
${this._config.name || computeStateName(stateObj)}
</div>
${!stateObj
? html`
<div class="not-found">
Entity not available: ${this._config.entity}
</div>
`
: html`
<div id="light"></div>
<div id="tooltip">
<div class="icon-state">
<ha-icon
data-state="${stateObj.state}"
.icon="${stateIcon(stateObj)}"
style="${styleMap({
filter: this._computeBrightness(stateObj),
color: this._computeColor(stateObj),
})}"
@ha-click="${this._handleTap}"
@ha-hold="${this._handleHold}"
.longPress="${longPress()}"
></ha-icon>
<div
class="brightness"
@ha-click="${this._handleTap}"
@ha-hold="${this._handleHold}"
.longPress="${longPress()}"
></div>
<div class="name">
${this._config.name || computeStateName(stateObj)}
</div>
</div>
`
}
</div>
`}
</ha-card>
`;
}

View File

@ -55,11 +55,9 @@ export class HuiMarkdownCard extends LitElement implements LovelaceCard {
${this.renderStyle()}
<ha-card .header="${this._config.title}">
<ha-markdown
class="markdown ${
classMap({
"no-header": !this._config.title,
})
}"
class="markdown ${classMap({
"no-header": !this._config.title,
})}"
.content="${this._config.content}"
></ha-markdown>
</ha-card>

View File

@ -64,13 +64,11 @@ export class HuiPictureCard extends LitElement implements LovelaceCard {
@ha-click="${this._handleTap}"
@ha-hold="${this._handleHold}"
.longPress="${longPress()}"
class="${
classMap({
clickable: Boolean(
this._config.tap_action || this._config.hold_action
),
})
}"
class="${classMap({
clickable: Boolean(
this._config.tap_action || this._config.hold_action
),
})}"
>
<img src="${this._config.image}" />
</ha-card>

View File

@ -71,11 +71,9 @@ class HuiPictureElementsCard extends LitElement implements LovelaceCard {
.entity="${this._config.entity}"
.aspectRatio="${this._config.aspect_ratio}"
></hui-image>
${
this._config.elements.map((elementConfig: LovelaceElementConfig) =>
this._createHuiElement(elementConfig)
)
}
${this._config.elements.map((elementConfig: LovelaceElementConfig) =>
this._createHuiElement(elementConfig)
)}
</div>
</ha-card>
`;

View File

@ -78,14 +78,12 @@ class HuiPictureEntityCard extends hassLocalizeLitMixin(LitElement)
if (!stateObj) {
return html`
${
createErrorCardElement(
createErrorCardConfig(
`Entity not found: ${this._config.entity}`,
this._config
)
${createErrorCardElement(
createErrorCardConfig(
`Entity not found: ${this._config.entity}`,
this._config
)
}
)}
`;
}
@ -121,21 +119,17 @@ class HuiPictureEntityCard extends hassLocalizeLitMixin(LitElement)
.hass="${this.hass}"
.image="${this._config.image}"
.stateImage="${this._config.state_image}"
.cameraImage="${
computeDomain(this._config.entity) === "camera"
? this._config.entity
: this._config.camera_image
}"
.cameraImage="${computeDomain(this._config.entity) === "camera"
? this._config.entity
: this._config.camera_image}"
.entity="${this._config.entity}"
.aspectRatio="${this._config.aspect_ratio}"
@ha-click="${this._handleTap}"
@ha-hold="${this._handleHold}"
.longPress="${longPress()}"
class="${
classMap({
clickable: stateObj.state !== UNAVAILABLE,
})
}"
class="${classMap({
clickable: stateObj.state !== UNAVAILABLE,
})}"
></hui-image>
${footer}
</ha-card>

View File

@ -96,15 +96,13 @@ class HuiPictureGlanceCard extends hassLocalizeLitMixin(LitElement)
${this.renderStyle()}
<ha-card>
<hui-image
class="${
classMap({
clickable: Boolean(
this._config.tap_action ||
this._config.hold_action ||
this._config.camera_image
),
})
}"
class="${classMap({
clickable: Boolean(
this._config.tap_action ||
this._config.hold_action ||
this._config.camera_image
),
})}"
@ha-click="${this._handleTap}"
@ha-hold="${this._handleHold}"
.longPress="${longPress()}"
@ -116,26 +114,20 @@ class HuiPictureGlanceCard extends hassLocalizeLitMixin(LitElement)
.aspectRatio="${this._config.aspect_ratio}"
></hui-image>
<div class="box">
${
this._config.title
? html`
<div class="title">${this._config.title}</div>
`
: ""
}
${this._config.title
? html`
<div class="title">${this._config.title}</div>
`
: ""}
<div>
${
this._entitiesDialog!.map((entityConf) =>
this.renderEntity(entityConf, true)
)
}
${this._entitiesDialog!.map((entityConf) =>
this.renderEntity(entityConf, true)
)}
</div>
<div>
${
this._entitiesToggle!.map((entityConf) =>
this.renderEntity(entityConf, false)
)
}
${this._entitiesToggle!.map((entityConf) =>
this.renderEntity(entityConf, false)
)}
</div>
</div>
</ha-card>
@ -156,21 +148,17 @@ class HuiPictureGlanceCard extends hassLocalizeLitMixin(LitElement)
<ha-icon
.entity="${stateObj.entity_id}"
@click="${dialog ? this._openDialog : this._callService}"
class="${
classMap({
"state-on": !STATES_OFF.has(stateObj.state),
})
}"
class="${classMap({
"state-on": !STATES_OFF.has(stateObj.state),
})}"
.icon="${entityConf.icon || stateIcon(stateObj)}"
title="${
`
title="${`
${computeStateName(stateObj)} : ${computeStateDisplay(
this.localize,
stateObj,
this.hass!.language
)}
`
}"
this.localize,
stateObj,
this.hass!.language
)}
`}"
></ha-icon>
`;
}

View File

@ -233,38 +233,34 @@ class HuiSensorCard extends LitElement implements LovelaceCard {
return html`
${this.renderStyle()}
<ha-card @click="${this._handleClick}">
${
!stateObj
? html`
<div class="not-found">
Entity not available: ${this._config.entity}
${!stateObj
? html`
<div class="not-found">
Entity not available: ${this._config.entity}
</div>
`
: html`
<div class="flex">
<div class="icon">
<ha-icon
.icon="${this._config.icon || stateIcon(stateObj)}"
></ha-icon>
</div>
`
: html`
<div class="flex">
<div class="icon">
<ha-icon
.icon="${this._config.icon || stateIcon(stateObj)}"
></ha-icon>
</div>
<div class="header">
<span class="name"
>${this._config.name || computeStateName(stateObj)}</span
>
</div>
</div>
<div class="flex info">
<span id="value">${stateObj.state}</span>
<span id="measurement"
>${
this._config.unit ||
stateObj.attributes.unit_of_measurement
}</span
<div class="header">
<span class="name"
>${this._config.name || computeStateName(stateObj)}</span
>
</div>
<div class="graph"><div>${graph}</div></div>
`
}
</div>
<div class="flex info">
<span id="value">${stateObj.state}</span>
<span id="measurement"
>${this._config.unit ||
stateObj.attributes.unit_of_measurement}</span
>
</div>
<div class="graph"><div>${graph}</div></div>
`}
</ha-card>
`;
}

View File

@ -91,103 +91,93 @@ class HuiShoppingListCard extends hassLocalizeLitMixin(LitElement)
class="addButton"
@click="${this._addItem}"
icon="hass:plus"
.title="${
this.localize("ui.panel.lovelace.cards.shopping-list.add_item")
}"
.title="${this.localize(
"ui.panel.lovelace.cards.shopping-list.add_item"
)}"
>
</ha-icon>
<paper-item-body>
<paper-input
no-label-float
class="addBox"
placeholder="${
this.localize("ui.panel.lovelace.cards.shopping-list.add_item")
}"
placeholder="${this.localize(
"ui.panel.lovelace.cards.shopping-list.add_item"
)}"
@keydown="${this._addKeyPress}"
></paper-input>
</paper-item-body>
</div>
${
repeat(
this._uncheckedItems!,
(item) => item.id,
(item, index) =>
html`
<div class="editRow">
<paper-checkbox
slot="item-icon"
id="${index}"
?checked="${item.complete}"
${repeat(
this._uncheckedItems!,
(item) => item.id,
(item, index) =>
html`
<div class="editRow">
<paper-checkbox
slot="item-icon"
id="${index}"
?checked="${item.complete}"
.itemId="${item.id}"
@click="${this._completeItem}"
tabindex="0"
></paper-checkbox>
<paper-item-body>
<paper-input
no-label-float
.value="${item.name}"
.itemId="${item.id}"
@click="${this._completeItem}"
tabindex="0"
></paper-checkbox>
<paper-item-body>
<paper-input
no-label-float
.value="${item.name}"
.itemId="${item.id}"
@change="${this._saveEdit}"
></paper-input>
</paper-item-body>
</div>
`
)
}
${
this._checkedItems!.length > 0
? html`
<div class="divider"></div>
<div class="checked">
<span class="label">
${
this.localize(
"ui.panel.lovelace.cards.shopping-list.checked_items"
)
}
</span>
<ha-icon
class="clearall"
@click="${this._clearItems}"
icon="hass:notification-clear-all"
.title="${
this.localize(
"ui.panel.lovelace.cards.shopping-list.clear_items"
)
}"
>
</ha-icon>
</div>
${
repeat(
this._checkedItems!,
(item) => item.id,
(item, index) =>
html`
<div class="editRow">
<paper-checkbox
slot="item-icon"
id="${index}"
?checked="${item.complete}"
.itemId="${item.id}"
@click="${this._completeItem}"
tabindex="0"
></paper-checkbox>
<paper-item-body>
<paper-input
no-label-float
.value="${item.name}"
.itemId="${item.id}"
@change="${this._saveEdit}"
></paper-input>
</paper-item-body>
</div>
`
)
}
`
: ""
}
@change="${this._saveEdit}"
></paper-input>
</paper-item-body>
</div>
`
)}
${this._checkedItems!.length > 0
? html`
<div class="divider"></div>
<div class="checked">
<span class="label">
${this.localize(
"ui.panel.lovelace.cards.shopping-list.checked_items"
)}
</span>
<ha-icon
class="clearall"
@click="${this._clearItems}"
icon="hass:notification-clear-all"
.title="${this.localize(
"ui.panel.lovelace.cards.shopping-list.clear_items"
)}"
>
</ha-icon>
</div>
${repeat(
this._checkedItems!,
(item) => item.id,
(item, index) =>
html`
<div class="editRow">
<paper-checkbox
slot="item-icon"
id="${index}"
?checked="${item.complete}"
.itemId="${item.id}"
@click="${this._completeItem}"
tabindex="0"
></paper-checkbox>
<paper-item-body>
<paper-input
no-label-float
.value="${item.name}"
.itemId="${item.id}"
@change="${this._saveEdit}"
></paper-input>
</paper-item-body>
</div>
`
)}
`
: ""}
</ha-card>
`;
}

View File

@ -69,40 +69,34 @@ export class HuiActionEditor extends LitElement {
slot="dropdown-content"
.selected="${this.actions.indexOf(this._action)}"
>
${
this.actions.map((action) => {
return html`
<paper-item>${action}</paper-item>
`;
})
}
${this.actions.map((action) => {
return html`
<paper-item>${action}</paper-item>
`;
})}
</paper-listbox>
</paper-dropdown-menu>
${
this._action === "navigate"
? html`
<paper-input
label="Navigation Path"
.value="${this._navigation_path}"
.configValue="${"navigation_path"}"
@value-changed="${this._valueChanged}"
></paper-input>
`
: ""
}
${
this.config && this.config.action === "call-service"
? html`
<ha-service-picker
.hass="${this.hass}"
.value="${this._service}"
.configValue="${"service"}"
@value-changed="${this._valueChanged}"
></ha-service-picker>
<h3>Toggle Editor to input Service Data</h3>
`
: ""
}
${this._action === "navigate"
? html`
<paper-input
label="Navigation Path"
.value="${this._navigation_path}"
.configValue="${"navigation_path"}"
@value-changed="${this._valueChanged}"
></paper-input>
`
: ""}
${this.config && this.config.action === "call-service"
? html`
<ha-service-picker
.hass="${this.hass}"
.value="${this._service}"
.configValue="${"service"}"
@value-changed="${this._valueChanged}"
></ha-service-picker>
<h3>Toggle Editor to input Service Data</h3>
`
: ""}
`;
}

View File

@ -71,9 +71,9 @@ export class HuiCardOptions extends hassLocalizeLitMixin(LitElement) {
<div class="options">
<div class="primary-actions">
<paper-button @click="${this._editCard}"
>${
this.localize("ui.panel.lovelace.editor.edit_card.edit")
}</paper-button
>${this.localize(
"ui.panel.lovelace.editor.edit_card.edit"
)}</paper-button
>
</div>
<div class="secondary-actions">
@ -82,10 +82,9 @@ export class HuiCardOptions extends hassLocalizeLitMixin(LitElement) {
class="move-arrow"
icon="hass:arrow-down"
@click="${this._cardDown}"
?disabled="${
this.lovelace!.config.views[this.path![0]].cards!.length ===
this.path![1] + 1
}"
?disabled="${this.lovelace!.config.views[this.path![0]].cards!
.length ===
this.path![1] + 1}"
></paper-icon-button>
<paper-icon-button
title="Move card up"
@ -102,9 +101,9 @@ export class HuiCardOptions extends hassLocalizeLitMixin(LitElement) {
<paper-listbox slot="dropdown-content">
<paper-item @click="${this._moveCard}">Move Card</paper-item>
<paper-item @click="${this._deleteCard}"
>${
this.localize("ui.panel.lovelace.editor.edit_card.delete")
}</paper-item
>${this.localize(
"ui.panel.lovelace.editor.edit_card.delete"
)}</paper-item
>
</paper-listbox>
</paper-menu-button>

View File

@ -43,12 +43,10 @@ class HuiEntitiesToggle extends LitElement {
return html`
${this.renderStyle()}
<paper-toggle-button
?checked="${
this._toggleEntities!.some((entityId) => {
const stateObj = this.hass!.states[entityId];
return stateObj && stateObj.state === "on";
})
}"
?checked="${this._toggleEntities!.some((entityId) => {
const stateObj = this.hass!.states[entityId];
return stateObj && stateObj.state === "on";
})}"
@change="${this._callService}"
></paper-toggle-button>
`;

View File

@ -32,19 +32,17 @@ export class HuiEntityEditor extends LitElement {
${this.renderStyle()}
<h3>Entities</h3>
<div class="entities">
${
this.entities.map((entityConf, index) => {
return html`
<ha-entity-picker
.hass="${this.hass}"
.value="${entityConf.entity}"
.index="${index}"
@change="${this._valueChanged}"
allow-custom-entity
></ha-entity-picker>
`;
})
}
${this.entities.map((entityConf, index) => {
return html`
<ha-entity-picker
.hass="${this.hass}"
.value="${entityConf.entity}"
.index="${index}"
@change="${this._valueChanged}"
allow-custom-entity
></ha-entity-picker>
`;
})}
<ha-entity-picker
.hass="${this.hass}"
@change="${this._addEntity}"

View File

@ -49,13 +49,11 @@ export class HuiThemeSelectionEditor extends hassLocalizeLitMixin(LitElement) {
.selected="${this.value}"
attr-for-selected="theme"
>
${
themes.map((theme) => {
return html`
<paper-item theme="${theme}">${theme}</paper-item>
`;
})
}
${themes.map((theme) => {
return html`
<paper-item theme="${theme}">${theme}</paper-item>
`;
})}
</paper-listbox>
</paper-dropdown-menu>
`;

View File

@ -42,18 +42,16 @@ export class HuiCardPicker extends hassLocalizeLitMixin(LitElement) {
return html`
<h3>${this.localize("ui.panel.lovelace.editor.edit_card.pick_card")}</h3>
<div class="cards-container">
${
cards.map((card) => {
return html`
<paper-button
raised
@click="${this._cardPicked}"
.type="${card.type}"
>${card.name}</paper-button
>
`;
})
}
${cards.map((card) => {
return html`
<paper-button
raised
@click="${this._cardPicked}"
.type="${card.type}"
>${card.name}</paper-button
>
`;
})}
</div>
`;
}

View File

@ -61,18 +61,16 @@ export class HuiDialogMoveCardView extends hassLocalizeLitMixin(LitElement) {
@opened-changed="${this._openedChanged}"
>
<h2>Choose view to move card</h2>
${
this._params!.lovelace!.config.views.map((view, index) => {
return html`
<paper-item
?active="${this._params!.path![0] === index}"
@click="${this._moveCard}"
.index="${index}"
>${view.title}</paper-item
>
`;
})
}
${this._params!.lovelace!.config.views.map((view, index) => {
return html`
<paper-item
?active="${this._params!.path![0] === index}"
@click="${this._moveCard}"
.index="${index}"
>${view.title}</paper-item
>
`;
})}
</paper-dialog>
`;
}

View File

@ -117,17 +117,15 @@ export class HuiEditCard extends hassLocalizeLitMixin(LitElement) {
if (this._configElement !== undefined) {
content = html`
<div class="element-editor">
${
this._uiEditor
? this._configElement
: html`
<hui-yaml-editor
.hass="${this.hass}"
.yaml="${this._configValue!.value}"
@yaml-changed="${this._handleYamlChanged}"
></hui-yaml-editor>
`
}
${this._uiEditor
? this._configElement
: html`
<hui-yaml-editor
.hass="${this.hass}"
.yaml="${this._configValue!.value}"
@yaml-changed="${this._handleYamlChanged}"
></hui-yaml-editor>
`}
</div>
`;
@ -151,50 +149,43 @@ export class HuiEditCard extends hassLocalizeLitMixin(LitElement) {
<paper-dialog-scrollable
class="${classMap({ hidden: this._loading! })}"
>
${
this._errorMsg
? html`
<div class="error">${this._errorMsg}</div>
`
: ""
}
${this._errorMsg
? html`
<div class="error">${this._errorMsg}</div>
`
: ""}
<div class="content">${content}${preview}</div>
</paper-dialog-scrollable>
${
!this._loading
? html`
<div class="paper-dialog-buttons">
<paper-button
class="toggle-button"
?hidden="${!this._configValue || !this._configValue.value}"
?disabled="${
this._configElement === null || this._configState !== "OK"
}"
@click="${this._toggleEditor}"
>${
this.localize(
"ui.panel.lovelace.editor.edit_card.toggle_editor"
)
}</paper-button
>
<paper-button @click="${this.closeDialog}"
>${this.localize("ui.common.cancel")}</paper-button
>
<paper-button
?hidden="${!this._configValue || !this._configValue.value}"
?disabled="${this._saving || this._configState !== "OK"}"
@click="${this._save}"
>
<paper-spinner
?active="${this._saving}"
alt="Saving"
></paper-spinner>
${this.localize("ui.common.save")}</paper-button
>
</div>
`
: ""
}
${!this._loading
? html`
<div class="paper-dialog-buttons">
<paper-button
class="toggle-button"
?hidden="${!this._configValue || !this._configValue.value}"
?disabled="${this._configElement === null ||
this._configState !== "OK"}"
@click="${this._toggleEditor}"
>${this.localize(
"ui.panel.lovelace.editor.edit_card.toggle_editor"
)}</paper-button
>
<paper-button @click="${this.closeDialog}"
>${this.localize("ui.common.cancel")}</paper-button
>
<paper-button
?hidden="${!this._configValue || !this._configValue.value}"
?disabled="${this._saving || this._configState !== "OK"}"
@click="${this._save}"
>
<paper-spinner
?active="${this._saving}"
alt="Saving"
></paper-spinner>
${this.localize("ui.common.save")}</paper-button
>
</div>
`
: ""}
</paper-dialog>
`;
}

View File

@ -79,33 +79,29 @@ export class HuiAlarmPanelCardEditor extends hassLocalizeLitMixin(LitElement)
allow-custom-entity
></ha-entity-picker>
</div>
<span>Used States</span> ${
this._states.map((state, index) => {
return html`
<div class="states">
<paper-item>${state}</paper-item>
<ha-icon
class="deleteState"
.value="${index}"
icon="hass:close"
@click=${this._stateRemoved}
></ha-icon>
</div>
`;
})
}
<span>Used States</span> ${this._states.map((state, index) => {
return html`
<div class="states">
<paper-item>${state}</paper-item>
<ha-icon
class="deleteState"
.value="${index}"
icon="hass:close"
@click=${this._stateRemoved}
></ha-icon>
</div>
`;
})}
<paper-dropdown-menu
label="Available States"
@value-changed="${this._stateAdded}"
>
<paper-listbox slot="dropdown-content">
${
states.map((state) => {
return html`
<paper-item>${state}</paper-item>
`;
})
}
${states.map((state) => {
return html`
<paper-item>${state}</paper-item>
`;
})}
</paper-listbox>
</paper-dropdown-menu>
</div>

View File

@ -121,13 +121,11 @@ export class HuiSensorCardEditor extends hassLocalizeLitMixin(LitElement)
slot="dropdown-content"
.selected="${graphs.indexOf(this._graph)}"
>
${
graphs.map((graph) => {
return html`
<paper-item>${graph}</paper-item>
`;
})
}
${graphs.map((graph) => {
return html`
<paper-item>${graph}</paper-item>
`;
})}
</paper-listbox>
</paper-dropdown-menu>
</div>

View File

@ -61,9 +61,9 @@ export class HuiSaveConfig extends hassLocalizeLitMixin(LitElement) {
</paper-dialog-scrollable>
<div class="paper-dialog-buttons">
<paper-button @click="${this._closeDialog}"
>${
this.localize("ui.panel.lovelace.editor.save_config.cancel")
}</paper-button
>${this.localize(
"ui.panel.lovelace.editor.save_config.cancel"
)}</paper-button
>
<paper-button
?disabled="${this._saving}"
@ -73,9 +73,9 @@ export class HuiSaveConfig extends hassLocalizeLitMixin(LitElement) {
?active="${this._saving}"
alt="Saving"
></paper-spinner>
${
this.localize("ui.panel.lovelace.editor.save_config.save")
}</paper-button
${this.localize(
"ui.panel.lovelace.editor.save_config.save"
)}</paper-button
>
</div>
</paper-dialog>

View File

@ -133,18 +133,16 @@ export class HuiEditView extends hassLocalizeLitMixin(LitElement) {
</paper-tabs>
<paper-dialog-scrollable> ${content} </paper-dialog-scrollable>
<div class="paper-dialog-buttons">
${
this.viewIndex !== undefined
? html`
<paper-icon-button
class="delete"
title="Delete"
icon="hass:delete"
@click="${this._delete}"
></paper-icon-button>
`
: ""
}
${this.viewIndex !== undefined
? html`
<paper-icon-button
class="delete"
title="Delete"
icon="hass:delete"
@click="${this._delete}"
></paper-icon-button>
`
: ""}
<paper-button @click="${this._closeDialog}"
>${this.localize("ui.common.cancel")}</paper-button
>

View File

@ -46,11 +46,9 @@ class HuiStateLabelElement extends hassLocalizeLitMixin(LitElement)
@ha-hold="${this._handleHold}"
.longPress="${longPress()}"
>
${this._config.prefix}${
state
? computeStateDisplay(this.localize, state, this.hass!.language)
: "-"
}${this._config.suffix}
${this._config.prefix}${state
? computeStateDisplay(this.localize, state, this.hass!.language)
: "-"}${this._config.suffix}
</div>
`;
}

View File

@ -50,21 +50,19 @@ class HuiCoverEntityRow extends LitElement implements EntityRow {
return html`
${this.renderStyle()}
<hui-generic-entity-row .hass="${this.hass}" .config="${this._config}">
${
isTiltOnly(stateObj)
? html`
<ha-cover-tilt-controls
.hass="${this.hass}"
.stateObj="${stateObj}"
></ha-cover-tilt-controls>
`
: html`
<ha-cover-controls
.hass="${this.hass}"
.stateObj="${stateObj}"
></ha-cover-controls>
`
}
${isTiltOnly(stateObj)
? html`
<ha-cover-tilt-controls
.hass="${this.hass}"
.stateObj="${stateObj}"
></ha-cover-tilt-controls>
`
: html`
<ha-cover-controls
.hass="${this.hass}"
.stateObj="${stateObj}"
></ha-cover-controls>
`}
</hui-generic-entity-row>
`;
}

View File

@ -51,26 +51,22 @@ class HuiGroupEntityRow extends hassLocalizeLitMixin(LitElement)
return html`
<hui-generic-entity-row .hass="${this.hass}" .config="${this._config}">
${
this._computeCanToggle(stateObj.attributes.entity_id)
? html`
<ha-entity-toggle
.hass="${this.hass}"
.stateObj="${stateObj}"
></ha-entity-toggle>
`
: html`
<div>
${
computeStateDisplay(
this.localize,
stateObj,
this.hass.language
)
}
</div>
`
}
${this._computeCanToggle(stateObj.attributes.entity_id)
? html`
<ha-entity-toggle
.hass="${this.hass}"
.stateObj="${stateObj}"
></ha-entity-toggle>
`
: html`
<div>
${computeStateDisplay(
this.localize,
stateObj,
this.hass.language
)}
</div>
`}
</hui-generic-entity-row>
`;
}

View File

@ -63,15 +63,13 @@ class HuiInputSelectEntityRow extends LitElement implements EntityRow {
slot="dropdown-content"
selected="${stateObj.attributes.options.indexOf(stateObj.state)}"
>
${
repeat(
stateObj.attributes.options,
(option) =>
html`
<paper-item>${option}</paper-item>
`
)
}
${repeat(
stateObj.attributes.options,
(option) =>
html`
<paper-item>${option}</paper-item>
`
)}
</paper-listbox>
</paper-dropdown-menu>
`;

View File

@ -50,11 +50,9 @@ class HuiLockEntityRow extends hassLocalizeLitMixin(LitElement)
${this.renderStyle()}
<hui-generic-entity-row .hass="${this.hass}" .config="${this._config}">
<paper-button @click="${this._callService}">
${
stateObj.state === "locked"
? this.localize("ui.card.lock.unlock")
: this.localize("ui.card.lock.lock")
}
${stateObj.state === "locked"
? this.localize("ui.card.lock.unlock")
: this.localize("ui.card.lock.lock")}
</paper-button>
</hui-generic-entity-row>
`;

View File

@ -57,44 +57,36 @@ class HuiMediaPlayerEntityRow extends hassLocalizeLitMixin(LitElement)
.config="${this._config}"
.showSecondary="false"
>
${
OFF_STATES.includes(stateObj.state)
? html`
<div>
${
this.localize(`state.media_player.${stateObj.state}`) ||
this.localize(`state.default.${stateObj.state}`) ||
stateObj.state
}
</div>
`
: html`
<div class="controls">
${
stateObj.state !== "playing" &&
!supportsFeature(stateObj, SUPPORTS_PLAY)
? ""
: html`
<paper-icon-button
icon="${this._computeControlIcon(stateObj)}"
@click="${this._playPause}"
></paper-icon-button>
`
}
${
supportsFeature(stateObj, SUPPORT_NEXT_TRACK)
? html`
<paper-icon-button
icon="hass:skip-next"
@click="${this._nextTrack}"
></paper-icon-button>
`
: ""
}
</div>
<div slot="secondary">${this._computeMediaTitle(stateObj)}</div>
`
}
${OFF_STATES.includes(stateObj.state)
? html`
<div>
${this.localize(`state.media_player.${stateObj.state}`) ||
this.localize(`state.default.${stateObj.state}`) ||
stateObj.state}
</div>
`
: html`
<div class="controls">
${stateObj.state !== "playing" &&
!supportsFeature(stateObj, SUPPORTS_PLAY)
? ""
: html`
<paper-icon-button
icon="${this._computeControlIcon(stateObj)}"
@click="${this._playPause}"
></paper-icon-button>
`}
${supportsFeature(stateObj, SUPPORT_NEXT_TRACK)
? html`
<paper-icon-button
icon="hass:skip-next"
@click="${this._nextTrack}"
></paper-icon-button>
`
: ""}
</div>
<div slot="secondary">${this._computeMediaTitle(stateObj)}</div>
`}
</hui-generic-entity-row>
`;
}

View File

@ -50,20 +50,18 @@ class HuiSceneEntityRow extends hassLocalizeLitMixin(LitElement)
return html`
${this.renderStyle()}
<hui-generic-entity-row .hass="${this.hass}" .config="${this._config}">
${
stateObj.attributes.can_cancel
? html`
<ha-entity-toggle
.hass="${this.hass}"
.stateObj="${stateObj}"
></ha-entity-toggle>
`
: html`
<paper-button @click="${this._callService}">
${this.localize("ui.card.scene.activate")}
</paper-button>
`
}
${stateObj.attributes.can_cancel
? html`
<ha-entity-toggle
.hass="${this.hass}"
.stateObj="${stateObj}"
></ha-entity-toggle>
`
: html`
<paper-button @click="${this._callService}">
${this.localize("ui.card.scene.activate")}
</paper-button>
`}
</hui-generic-entity-row>
`;
}

View File

@ -50,20 +50,18 @@ class HuiScriptEntityRow extends hassLocalizeLitMixin(LitElement)
return html`
${this.renderStyle()}
<hui-generic-entity-row .hass="${this.hass}" .config="${this._config}">
${
stateObj.attributes.can_cancel
? html`
<ha-entity-toggle
.hass="${this.hass}"
.stateObj="${stateObj}"
></ha-entity-toggle>
`
: html`
<paper-button @click="${this._callService}">
${this.localize("ui.card.script.execute")}
</paper-button>
`
}
${stateObj.attributes.can_cancel
? html`
<ha-entity-toggle
.hass="${this.hass}"
.stateObj="${stateObj}"
></ha-entity-toggle>
`
: html`
<paper-button @click="${this._callService}">
${this.localize("ui.card.script.execute")}
</paper-button>
`}
</hui-generic-entity-row>
`;
}

View File

@ -57,17 +57,15 @@ class HuiSensorEntityRow extends hassLocalizeLitMixin(LitElement)
${this.renderStyle()}
<hui-generic-entity-row .hass="${this.hass}" .config="${this._config}">
<div>
${
stateObj.attributes.device_class === "timestamp"
? html`
<hui-timestamp-display
.hass="${this.hass}"
.ts="${new Date(stateObj.state)}"
.format="${this._config.format}"
></hui-timestamp-display>
`
: computeStateDisplay(this.localize, stateObj, this.hass.language)
}
${stateObj.attributes.device_class === "timestamp"
? html`
<hui-timestamp-display
.hass="${this.hass}"
.ts="${new Date(stateObj.state)}"
.format="${this._config.format}"
></hui-timestamp-display>
`
: computeStateDisplay(this.localize, stateObj, this.hass.language)}
</div>
</hui-generic-entity-row>
`;

View File

@ -50,26 +50,22 @@ class HuiToggleEntityRow extends hassLocalizeLitMixin(LitElement)
return html`
<hui-generic-entity-row .hass="${this.hass}" .config="${this._config}">
${
stateObj.state === "on" || stateObj.state === "off"
? html`
<ha-entity-toggle
.hass="${this.hass}"
.stateObj="${stateObj}"
></ha-entity-toggle>
`
: html`
<div>
${
computeStateDisplay(
this.localize,
stateObj,
this.hass!.language
)
}
</div>
`
}
${stateObj.state === "on" || stateObj.state === "off"
? html`
<ha-entity-toggle
.hass="${this.hass}"
.stateObj="${stateObj}"
></ha-entity-toggle>
`
: html`
<div>
${computeStateDisplay(
this.localize,
stateObj,
this.hass!.language
)}
</div>
`}
</hui-generic-entity-row>
`;
}

View File

@ -52,21 +52,17 @@ class LovelaceFullConfigEditor extends hassLocalizeLitMixin(LitElement) {
@click="${this._closeEditor}"
></paper-icon-button>
<div main-title>Edit Config</div>
${
this._hash
? html`
<span class="comments">Comments will be not be saved!</span>
`
: ""
}
${this._hash
? html`
<span class="comments">Comments will be not be saved!</span>
`
: ""}
<paper-button @click="${this._handleSave}">Save</paper-button>
<ha-icon
class="save-button
${
classMap({
saved: this._saving! === false || this._changed === true,
})
}"
${classMap({
saved: this._saving! === false || this._changed === true,
})}"
icon="${this._changed ? "hass:circle-medium" : "hass:check"}"
></ha-icon>
</app-toolbar>

View File

@ -139,10 +139,8 @@ class HUIRoot extends hassLocalizeLitMixin(LitElement) {
@click="${this._editModeDisable}"
></paper-icon-button>
<div main-title>
${
this.config.title ||
this.localize("ui.panel.lovelace.editor.header")
}
${this.config.title ||
this.localize("ui.panel.lovelace.editor.header")}
<paper-icon-button
icon="hass:pencil"
class="edit-icon"
@ -203,22 +201,20 @@ class HUIRoot extends hassLocalizeLitMixin(LitElement) {
@iron-select="${this._deselect}"
slot="dropdown-content"
>
${
this._yamlMode
? html`
<paper-item @click="${this._handleRefresh}"
>Refresh</paper-item
>
`
: ""
}
${this._yamlMode
? html`
<paper-item @click="${this._handleRefresh}"
>Refresh</paper-item
>
`
: ""}
<paper-item @click="${this._handleUnusedEntities}"
>Unused entities</paper-item
>
<paper-item @click="${this._editModeEnable}"
>${
this.localize("ui.panel.lovelace.editor.configure_ui")
}</paper-item
>${this.localize(
"ui.panel.lovelace.editor.configure_ui"
)}</paper-item
>
<paper-item @click="${this._handleHelp}">Help</paper-item>
</paper-listbox>
@ -236,54 +232,41 @@ class HUIRoot extends hassLocalizeLitMixin(LitElement) {
.selected="${this._curView}"
@iron-activate="${this._handleViewSelected}"
>
${
this.lovelace!.config.views.map(
(view) => html`
<paper-tab>
${
view.icon
? html`
<ha-icon
title="${view.title}"
.icon="${view.icon}"
></ha-icon>
`
: view.title || "Unnamed view"
}
${
this._editMode
? html`
<ha-icon
class="edit-icon view"
@click="${this._editView}"
icon="hass:pencil"
></ha-icon>
`
: ""
}
</paper-tab>
${this.lovelace!.config.views.map(
(view) => html`
<paper-tab>
${view.icon
? html`
<ha-icon
title="${view.title}"
.icon="${view.icon}"
></ha-icon>
`
: view.title || "Unnamed view"}
${this._editMode
? html`
<ha-icon
class="edit-icon view"
@click="${this._editView}"
icon="hass:pencil"
></ha-icon>
`
: ""}
</paper-tab>
`
)}
${this._editMode
? html`
<paper-button id="add-view" @click="${this._addView}">
<ha-icon
title="${this.localize(
"ui.panel.lovelace.editor.edit_view.add"
)}"
icon="hass:plus"
></ha-icon>
</paper-button>
`
)
}
${
this._editMode
? html`
<paper-button
id="add-view"
@click="${this._addView}"
>
<ha-icon
title="${
this.localize(
"ui.panel.lovelace.editor.edit_view.add"
)
}"
icon="hass:plus"
></ha-icon>
</paper-button>
`
: ""
}
: ""}
</paper-tabs>
</div>
`

View File

@ -91,20 +91,16 @@ export class HUIView extends hassLocalizeLitMixin(LitElement) {
${this.renderStyles()}
<div id="badges"></div>
<div id="columns"></div>
${
this.lovelace!.editMode
? html`
<paper-fab
elevated="2"
icon="hass:plus"
title="${
this.localize("ui.panel.lovelace.editor.edit_card.add")
}"
@click="${this._addCard}"
></paper-fab>
`
: ""
}
${this.lovelace!.editMode
? html`
<paper-fab
elevated="2"
icon="hass:plus"
title="${this.localize("ui.panel.lovelace.editor.edit_card.add")}"
@click="${this._addCard}"
></paper-fab>
`
: ""}
`;
}

View File

@ -30,13 +30,11 @@ class HuiSectionRow extends LitElement implements EntityRow {
return html`
${this.renderStyle()}
<div class="divider"></div>
${
this._config.label
? html`
<div class="label">${this._config.label}</div>
`
: html``
}
${this._config.label
? html`
<div class="label">${this._config.label}</div>
`
: html``}
`;
}

View File

@ -1,10 +1,6 @@
{
"extends": [
"tslint-plugin-prettier",
"tslint:latest",
"tslint-eslint-rules",
"tslint-config-prettier"
],
"extends": ["tslint:latest", "tslint-eslint-rules", "tslint-config-prettier"],
"rulesDirectory": ["tslint-plugin-prettier"],
"rules": {
"prettier": true,
"interface-name": false,

348
yarn.lock
View File

@ -2280,12 +2280,7 @@ acorn@^5.5.0, acorn@^5.5.3:
resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279"
integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==
acorn@^6.0.2:
version "6.0.4"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.0.4.tgz#77377e7353b72ec5104550aa2d2097a2fd40b754"
integrity sha512-VY4i5EKSKkofY2I+6QLTbTTN/UvEQPCo6eiwzzSaSWfpaDhOmStMCMod6wmuPciNq+XS0faCglFu2lHZpdHUtg==
acorn@^6.0.5:
acorn@^6.0.2, acorn@^6.0.5:
version "6.0.5"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.0.5.tgz#81730c0815f3f3b34d8efa95cb7430965f4d887a"
integrity sha512-i33Zgp3XWtmZBMNvCr4azvOFeWVw1Rk6p3hfi3LUDvIFraOMywb1kAtrbi+med14m4Xfpqm3zRZMT+c0FNE7kg==
@ -2317,7 +2312,7 @@ ajv-keywords@^3.1.0:
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.2.0.tgz#e86b819c602cf8821ad637413698f1dec021847a"
integrity sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=
ajv@^6.1.0, ajv@^6.5.5:
ajv@^6.1.0, ajv@^6.5.3, ajv@^6.6.1:
version "6.7.0"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.7.0.tgz#e3ce7bb372d6577bb1839f1dfdfcbf5ad2948d96"
integrity sha512-RZXPviBTtfmtka9n9sy1N5M5b82CbxWIR6HIis4s3WQTXDJamc/0gpCWNGz6EWdWp4DOfjzJfhz/AS9zVPjjWg==
@ -2327,7 +2322,7 @@ ajv@^6.1.0, ajv@^6.5.5:
json-schema-traverse "^0.4.1"
uri-js "^4.2.2"
ajv@^6.5.3, ajv@^6.6.1:
ajv@^6.5.5:
version "6.6.1"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.6.1.tgz#6360f5ed0d80f232cc2b294c362d5dc2e538dd61"
integrity sha512-ZoJjft5B+EJBjUyu9C9Hc0OZyPZSSlOF+plzouTrg6UlA8f+e/n8NIgBFG/9tppJtpPWfthHakK7juJdNDODww==
@ -3878,13 +3873,6 @@ caller-callsite@^2.0.0:
dependencies:
callsites "^2.0.0"
caller-path@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f"
integrity sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=
dependencies:
callsites "^0.2.0"
caller-path@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4"
@ -3897,16 +3885,16 @@ callsite@1.0.0:
resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20"
integrity sha1-KAOY5dZkvXQDi28JBRU+borxvCA=
callsites@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca"
integrity sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=
callsites@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50"
integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=
callsites@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.0.0.tgz#fb7eb569b72ad7a45812f93fd9430a3e410b3dd3"
integrity sha512-tWnkwu9YEq2uzlBDI4RcLn8jrFvF9AOi8PxDNU3hZZjJcjkcRAq3vCI+vZcg1SuxISDYe86k9VZFwAxDiJGoAw==
camel-case@3.0.x:
version "3.0.0"
resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73"
@ -4003,7 +3991,7 @@ 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.0.1, chalk@^2.3.0, chalk@^2.4.1:
chalk@^2.0.0, chalk@^2.1.0, chalk@^2.3.0:
version "2.4.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
@ -4012,7 +4000,7 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.3.0, chalk@^2.4.1:
escape-string-regexp "^1.0.5"
supports-color "^5.3.0"
chalk@^2.1.0, chalk@^2.3.1:
chalk@^2.0.1, chalk@^2.3.1, chalk@^2.4.1:
version "2.4.1"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e"
integrity sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==
@ -4902,16 +4890,16 @@ debug@^3.1.0, debug@^3.2.5:
ms "^2.1.1"
debug@^4.0.0, debug@^4.1.0, debug@~4.1.0:
version "4.1.1"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791"
integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==
version "4.1.0"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.0.tgz#373687bffa678b38b1cd91f861b63850035ddc87"
integrity sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==
dependencies:
ms "^2.1.1"
debug@^4.0.1:
version "4.1.0"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.0.tgz#373687bffa678b38b1cd91f861b63850035ddc87"
integrity sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==
version "4.1.1"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791"
integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==
dependencies:
ms "^2.1.1"
@ -5530,7 +5518,7 @@ error@^7.0.2:
string-template "~0.2.1"
xtend "~4.0.0"
es-abstract@^1.5.1:
es-abstract@^1.11.0, es-abstract@^1.7.0:
version "1.13.0"
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9"
integrity sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==
@ -5542,7 +5530,7 @@ es-abstract@^1.5.1:
is-regex "^1.0.4"
object-keys "^1.0.12"
es-abstract@^1.6.1:
es-abstract@^1.5.1, es-abstract@^1.6.1:
version "1.12.0"
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.12.0.tgz#9dbbdd27c6856f0001421ca18782d786bf8a6165"
integrity sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==
@ -5553,17 +5541,6 @@ es-abstract@^1.6.1:
is-callable "^1.1.3"
is-regex "^1.0.4"
es-abstract@^1.7.0:
version "1.10.0"
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.10.0.tgz#1ecb36c197842a00d8ee4c2dfd8646bb97d60864"
integrity sha512-/uh/DhdqIOSkAWifU+8nG78vlQxdLckUdI/sPgy0VhuXi2qJ7T8czBmqIYtLQVpCIFYafChnsRsB5pyb1JdmCQ==
dependencies:
es-to-primitive "^1.1.1"
function-bind "^1.1.1"
has "^1.0.1"
is-callable "^1.1.3"
is-regex "^1.0.4"
es-to-primitive@^1.1.1, es-to-primitive@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377"
@ -5627,20 +5604,20 @@ eslint-config-airbnb-base@^13.1.0:
object.assign "^4.1.0"
object.entries "^1.0.4"
eslint-config-prettier@^3.1.0:
version "3.3.0"
resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-3.3.0.tgz#41afc8d3b852e757f06274ed6c44ca16f939a57d"
integrity sha512-Bc3bh5bAcKNvs3HOpSi6EfGA2IIp7EzWcg2tS4vP7stnXu/J1opihHDM7jI9JCIckyIDTgZLSWn7J3HY0j2JfA==
eslint-config-prettier@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-4.0.0.tgz#16cedeea0a56e74de60dcbbe3be0ab2c645405b9"
integrity sha512-kWuiJxzV5NwOwZcpyozTzDT5KJhBw292bbYro9Is7BWnbNMg15Gmpluc1CTetiCatF8DRkNvgPAOaSyg+bYr3g==
dependencies:
get-stdin "^6.0.0"
eslint-import-resolver-node@^0.3.1:
version "0.3.1"
resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.1.tgz#4422574cde66a9a7b099938ee4d508a199e0e3cc"
integrity sha512-yUtXS15gIcij68NmXmP9Ni77AQuCN0itXbCc/jWd8C6/yKZaSNXicpC8cgvjnxVdmfsosIXrjpzFq7GcDryb6A==
eslint-import-resolver-node@^0.3.2:
version "0.3.2"
resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a"
integrity sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==
dependencies:
debug "^2.6.8"
resolve "^1.2.0"
debug "^2.6.9"
resolve "^1.5.0"
eslint-import-resolver-webpack@^0.10.1:
version "0.10.1"
@ -5658,29 +5635,29 @@ eslint-import-resolver-webpack@^0.10.1:
resolve "^1.4.0"
semver "^5.3.0"
eslint-module-utils@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz#b270362cd88b1a48ad308976ce7fa54e98411746"
integrity sha1-snA2LNiLGkitMIl2zn+lTphBF0Y=
eslint-module-utils@^2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.3.0.tgz#546178dab5e046c8b562bbb50705e2456d7bda49"
integrity sha512-lmDJgeOOjk8hObTysjqH7wyMi+nsHwwvfBykwfhjR1LNdd7C2uFJBvx4OpWYpXOw4df1yE1cDEVd1yLHitk34w==
dependencies:
debug "^2.6.8"
pkg-dir "^1.0.0"
pkg-dir "^2.0.0"
eslint-plugin-import@^2.14.0:
version "2.14.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.14.0.tgz#6b17626d2e3e6ad52cfce8807a845d15e22111a8"
integrity sha512-FpuRtniD/AY6sXByma2Wr0TXvXJ4nA/2/04VPlfpmUDPOpOY264x+ILiwnrk/k4RINgDAyFZByxqPUbSQ5YE7g==
version "2.15.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.15.0.tgz#d8f3c28b8988ccde5df964706faa7c1e52f0602a"
integrity sha512-LEHqgR+RcnpGqYW7h9WMkPb/tP+ekKxWdQDztfTtZeV43IHF+X8lXU+1HOCcR4oXD24qRgEwNSxIweD5uNKGVg==
dependencies:
contains-path "^0.1.0"
debug "^2.6.8"
debug "^2.6.9"
doctrine "1.5.0"
eslint-import-resolver-node "^0.3.1"
eslint-module-utils "^2.2.0"
has "^1.0.1"
lodash "^4.17.4"
minimatch "^3.0.3"
eslint-import-resolver-node "^0.3.2"
eslint-module-utils "^2.3.0"
has "^1.0.3"
lodash "^4.17.11"
minimatch "^3.0.4"
read-pkg-up "^2.0.0"
resolve "^1.6.0"
resolve "^1.9.0"
eslint-plugin-prettier@^2.2.0:
version "2.7.0"
@ -5691,22 +5668,24 @@ eslint-plugin-prettier@^2.2.0:
jest-docblock "^21.0.0"
eslint-plugin-prettier@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.0.0.tgz#f6b823e065f8c36529918cdb766d7a0e975ec30c"
integrity sha512-4g11opzhqq/8+AMmo5Vc2Gn7z9alZ4JqrbZ+D4i8KlSyxeQhZHlmIrY8U9Akf514MoEhogPa87Jgkq87aZ2Ohw==
version "3.0.1"
resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.0.1.tgz#19d521e3981f69dd6d14f64aec8c6a6ac6eb0b0d"
integrity sha512-/PMttrarPAY78PLvV3xfWibMOdMDl57hmlQ2XqFeA37wd+CJ7WSxV7txqjVPHi/AAFKd2lX0ZqfsOc/i5yFCSQ==
dependencies:
prettier-linter-helpers "^1.0.0"
eslint-plugin-react@^7.11.1:
version "7.11.1"
resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.11.1.tgz#c01a7af6f17519457d6116aa94fc6d2ccad5443c"
integrity sha512-cVVyMadRyW7qsIUh3FHp3u6QHNhOgVrLQYdQEB1bPWBsgbNCHdFAeNMquBMCcZJu59eNthX053L70l7gRt4SCw==
version "7.12.4"
resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.12.4.tgz#b1ecf26479d61aee650da612e425c53a99f48c8c"
integrity sha512-1puHJkXJY+oS1t467MjbqjvX53uQ05HXwjqDgdbGBqf5j9eeydI54G3KwiJmWciQ0HTBacIKw2jgwSBSH3yfgQ==
dependencies:
array-includes "^3.0.3"
doctrine "^2.1.0"
has "^1.0.3"
jsx-ast-utils "^2.0.1"
object.fromentries "^2.0.0"
prop-types "^15.6.2"
resolve "^1.9.0"
eslint-restricted-globals@^0.1.1:
version "0.1.1"
@ -5740,9 +5719,9 @@ eslint-visitor-keys@^1.0.0:
integrity sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==
eslint@^5.6.0:
version "5.9.0"
resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.9.0.tgz#b234b6d15ef84b5849c6de2af43195a2d59d408e"
integrity sha512-g4KWpPdqN0nth+goDNICNXGfJF7nNnepthp46CAlJoJtC5K/cLu3NgCM3AHu1CkJ5Hzt9V0Y0PBAO6Ay/gGb+w==
version "5.12.1"
resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.12.1.tgz#5ca9931fb9029d04e7be92b03ce3b58edfac7e3b"
integrity sha512-54NV+JkTpTu0d8+UYSA8mMKAG4XAsaOrozA9rCW7tgneg1mevcL7wIotPC+fZ0SkWwdhNqoXoxnQCTBp7UvTsg==
dependencies:
"@babel/code-frame" "^7.0.0"
ajv "^6.5.3"
@ -5753,7 +5732,7 @@ eslint@^5.6.0:
eslint-scope "^4.0.0"
eslint-utils "^1.3.1"
eslint-visitor-keys "^1.0.0"
espree "^4.0.0"
espree "^5.0.0"
esquery "^1.0.1"
esutils "^2.0.2"
file-entry-cache "^2.0.0"
@ -5761,9 +5740,9 @@ eslint@^5.6.0:
glob "^7.1.2"
globals "^11.7.0"
ignore "^4.0.6"
import-fresh "^3.0.0"
imurmurhash "^0.1.4"
inquirer "^6.1.0"
is-resolvable "^1.1.0"
js-yaml "^3.12.0"
json-stable-stringify-without-jsonify "^1.0.1"
levn "^0.3.0"
@ -5776,7 +5755,6 @@ eslint@^5.6.0:
pluralize "^7.0.0"
progress "^2.0.0"
regexpp "^2.0.1"
require-uncached "^1.0.3"
semver "^5.5.1"
strip-ansi "^4.0.0"
strip-json-comments "^2.0.1"
@ -5791,10 +5769,10 @@ espree@^3.5.2:
acorn "^5.5.0"
acorn-jsx "^3.0.0"
espree@^4.0.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/espree/-/espree-4.1.0.tgz#728d5451e0fd156c04384a7ad89ed51ff54eb25f"
integrity sha512-I5BycZW6FCVIub93TeVY1s7vjhP9CY6cXCznIRfiig7nRviKZYdRnj/sHEWC6A7WE9RDWOFq9+7OsWSYz8qv2w==
espree@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/espree/-/espree-5.0.0.tgz#fc7f984b62b36a0f543b13fb9cd7b9f4a7f5b65c"
integrity sha512-1MpUfwsdS9MMoN7ZXqAr9e9UKdVHDcvrJpyx7mm1WuQlx/ygErEQBzgi5Nh5qBHIoYweprhtMkTCb9GhcAIcsA==
dependencies:
acorn "^6.0.2"
acorn-jsx "^5.0.0"
@ -6107,16 +6085,11 @@ fast-deep-equal@^2.0.1:
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49"
integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=
fast-diff@^1.1.1:
fast-diff@^1.1.1, fast-diff@^1.1.2:
version "1.2.0"
resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03"
integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==
fast-diff@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.1.2.tgz#4b62c42b8e03de3f848460b639079920695d0154"
integrity sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig==
fast-glob@^2.0.2:
version "2.2.6"
resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.6.tgz#a5d5b697ec8deda468d85a74035290a025a95295"
@ -6838,15 +6811,15 @@ global-prefix@^1.0.1:
which "^1.2.14"
globals@^11.1.0:
version "11.10.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-11.10.0.tgz#1e09776dffda5e01816b3bb4077c8b59c24eaa50"
integrity sha512-0GZF1RiPKU97IHUO5TORo9w1PwrH/NBPl+fS7oMLdaTRiYmYbwK4NWoZWrAdd0/abG9R2BU+OiwyQpTpE6pdfQ==
globals@^11.7.0:
version "11.9.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-11.9.0.tgz#bde236808e987f290768a93d065060d78e6ab249"
integrity sha512-5cJVtyXWH8PiJPVLZzzoIizXx944O4OmRro5MWKx5fT4MgcN7OfaMutPeaTdJCCURwbWdhhcCWcKIffPnmTzBg==
globals@^11.7.0:
version "11.10.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-11.10.0.tgz#1e09776dffda5e01816b3bb4077c8b59c24eaa50"
integrity sha512-0GZF1RiPKU97IHUO5TORo9w1PwrH/NBPl+fS7oMLdaTRiYmYbwK4NWoZWrAdd0/abG9R2BU+OiwyQpTpE6pdfQ==
globals@^9.18.0:
version "9.18.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
@ -7610,6 +7583,14 @@ import-fresh@^2.0.0:
caller-path "^2.0.0"
resolve-from "^3.0.0"
import-fresh@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.0.0.tgz#a3d897f420cab0e671236897f75bc14b4885c390"
integrity sha512-pOnA9tfM3Uwics+SaBLCNyZZZbK+4PTu0OPZtLlMIrv17EdBoC15S9Kn8ckJ9TZTyKb3ywNE5y1yeDxxGA7nTQ==
dependencies:
parent-module "^1.0.0"
resolve-from "^4.0.0"
import-lazy@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43"
@ -7699,25 +7680,6 @@ inquirer@^1.0.2:
through "^2.3.6"
inquirer@^6.0.0:
version "6.2.1"
resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.2.1.tgz#9943fc4882161bdb0b0c9276769c75b32dbfcd52"
integrity sha512-088kl3DRT2dLU5riVMKKr1DlImd6X7smDhpXUCkJDCKvTEJeRiXh0G132HG9u5a+6Ylw9plFRY7RuTnwohYSpg==
dependencies:
ansi-escapes "^3.0.0"
chalk "^2.0.0"
cli-cursor "^2.1.0"
cli-width "^2.0.0"
external-editor "^3.0.0"
figures "^2.0.0"
lodash "^4.17.10"
mute-stream "0.0.7"
run-async "^2.2.0"
rxjs "^6.1.0"
string-width "^2.1.0"
strip-ansi "^5.0.0"
through "^2.3.6"
inquirer@^6.1.0:
version "6.2.0"
resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.2.0.tgz#51adcd776f661369dc1e894859c2560a224abdd8"
integrity sha512-QIEQG4YyQ2UYZGDC4srMZ7BjHOmNk1lR2JQj5UknBapklm6WHA+VVH7N+sUdX3A7NeCfGF8o4X1S3Ao7nAcIeg==
@ -7736,6 +7698,25 @@ inquirer@^6.1.0:
strip-ansi "^4.0.0"
through "^2.3.6"
inquirer@^6.1.0:
version "6.2.1"
resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.2.1.tgz#9943fc4882161bdb0b0c9276769c75b32dbfcd52"
integrity sha512-088kl3DRT2dLU5riVMKKr1DlImd6X7smDhpXUCkJDCKvTEJeRiXh0G132HG9u5a+6Ylw9plFRY7RuTnwohYSpg==
dependencies:
ansi-escapes "^3.0.0"
chalk "^2.0.0"
cli-cursor "^2.1.0"
cli-width "^2.0.0"
external-editor "^3.0.0"
figures "^2.0.0"
lodash "^4.17.10"
mute-stream "0.0.7"
run-async "^2.2.0"
rxjs "^6.1.0"
string-width "^2.1.0"
strip-ansi "^5.0.0"
through "^2.3.6"
internal-ip@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-3.0.1.tgz#df5c99876e1d2eb2ea2d74f520e3f669a00ece27"
@ -8116,11 +8097,6 @@ is-relative@^0.2.1:
dependencies:
is-unc-path "^0.1.1"
is-resolvable@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88"
integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==
is-retry-allowed@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34"
@ -8297,17 +8273,17 @@ js-levenshtein@^1.1.3:
resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d"
integrity sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==
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"
integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls=
"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
js-yaml@^3.12.0, js-yaml@^3.7.0, js-yaml@^3.9.0:
js-tokens@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls=
js-yaml@^3.12.0, js-yaml@^3.9.0:
version "3.12.0"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1"
integrity sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==
@ -8315,6 +8291,14 @@ js-yaml@^3.12.0, js-yaml@^3.7.0, js-yaml@^3.9.0:
argparse "^1.0.7"
esprima "^4.0.0"
js-yaml@^3.7.0:
version "3.12.1"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.1.tgz#295c8632a18a23e054cf5c9d3cecafe678167600"
integrity sha512-um46hB9wNOKlwkHgiuyEVAybXBjwFUV0Z/RaHJblRd9DXltue9FTYvzCr9ErQrK9Adz5MU4gHWVaNUfdmrC8qA==
dependencies:
argparse "^1.0.7"
esprima "^4.0.0"
jsbn@~0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
@ -9234,20 +9218,13 @@ lolex@^3.0.0:
resolved "https://registry.yarnpkg.com/lolex/-/lolex-3.0.0.tgz#f04ee1a8aa13f60f1abd7b0e8f4213ec72ec193e"
integrity sha512-hcnW80h3j2lbUfFdMArd5UPA/vxZJ+G8vobd+wg3nVEQA0EigStbYcrG030FJxL6xiDDPEkoMatV9xIh5OecQQ==
loose-envify@^1.0.0:
loose-envify@^1.0.0, loose-envify@^1.3.1:
version "1.4.0"
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
dependencies:
js-tokens "^3.0.0 || ^4.0.0"
loose-envify@^1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848"
integrity sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=
dependencies:
js-tokens "^3.0.0"
loud-rejection@^1.0.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f"
@ -10175,6 +10152,16 @@ object.entries@^1.0.4:
function-bind "^1.1.0"
has "^1.0.1"
object.fromentries@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.0.tgz#49a543d92151f8277b3ac9600f1e930b189d30ab"
integrity sha512-9iLiI6H083uiqUuvzyY6qrlmc/Gz8hLQFOcb/Ri/0xXFkSNS3ctV+CbE6yM2+AnkYfOB3dGjdzC0wrMLIhQICA==
dependencies:
define-properties "^1.1.2"
es-abstract "^1.11.0"
function-bind "^1.1.1"
has "^1.0.1"
object.getownpropertydescriptors@^2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16"
@ -10489,6 +10476,13 @@ param-case@2.1.x:
dependencies:
no-case "^2.2.0"
parent-module@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.0.tgz#df250bdc5391f4a085fb589dad761f5ad6b865b5"
integrity sha512-8Mf5juOMmiE4FcmzYc4IaiS9L3+9paz2KOiXzkRviCP6aDmN49Hz6EMWz0lGNp9pX80GvvAuLADtyGfW/Em3TA==
dependencies:
callsites "^3.0.0"
parse-asn1@^5.0.0:
version "5.1.3"
resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.3.tgz#1600c6cc0727365d68b97f3aa78939e735a75204"
@ -10735,13 +10729,6 @@ pinkie@^2.0.0:
resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA=
pkg-dir@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4"
integrity sha1-ektQio1bstYp1EcFb/TpyTFM89Q=
dependencies:
find-up "^1.0.0"
pkg-dir@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b"
@ -11146,9 +11133,9 @@ prettier-linter-helpers@^1.0.0:
fast-diff "^1.1.2"
prettier@^1.14.3:
version "1.15.3"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.15.3.tgz#1feaac5bdd181237b54dbe65d874e02a1472786a"
integrity sha512-gAU9AGAPMaKb3NNSUUuhhFAS7SCO4ALTN4nRIn6PJ075Qd28Yn2Ig2ahEJWdJwJmlEBTUfC7mMUSFy8MwsOCfg==
version "1.16.1"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.16.1.tgz#534c2c9d7853f8845e5e078384e71973bd74089f"
integrity sha512-XXUITwIkGb3CPJ2hforHah/zTINRyie5006Jd2HKy2qz7snEJXl0KLfsJZW/wst9g6R2rFvqba3VpNYdu1hDcA==
pretty-bytes@^4.0.2:
version "4.0.2"
@ -11201,11 +11188,16 @@ process@^0.11.10:
resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI=
progress@2.0.1, progress@^2.0.0:
progress@2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.1.tgz#c9242169342b1c29d275889c95734621b1952e31"
integrity sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg==
progress@^2.0.0:
version "2.0.3"
resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
promise-inflight@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3"
@ -11807,14 +11799,6 @@ require-main-filename@^1.0.1:
resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=
require-uncached@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3"
integrity sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=
dependencies:
caller-path "^0.1.0"
resolve-from "^1.0.0"
requirejs@^2.3.4:
version "2.3.6"
resolved "https://registry.yarnpkg.com/requirejs/-/requirejs-2.3.6.tgz#e5093d9601c2829251258c0b9445d4d19fa9e7c9"
@ -11848,35 +11832,42 @@ resolve-dir@^1.0.0, resolve-dir@^1.0.1:
expand-tilde "^2.0.0"
global-modules "^1.0.0"
resolve-from@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226"
integrity sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=
resolve-from@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748"
integrity sha1-six699nWiBvItuZTM17rywoYh0g=
resolve-from@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
resolve-url@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
resolve@^1.1.6, resolve@^1.3.2, resolve@^1.5.0:
version "1.10.0"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.10.0.tgz#3bdaaeaf45cc07f375656dfd2e54ed0810b101ba"
integrity sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg==
resolve@^1.1.6, resolve@^1.5.0:
version "1.8.1"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26"
integrity sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==
dependencies:
path-parse "^1.0.6"
path-parse "^1.0.5"
resolve@^1.1.7, resolve@^1.2.0:
resolve@^1.1.7:
version "1.4.0"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.4.0.tgz#a75be01c53da25d934a98ebd0e4c4a7312f92a86"
integrity sha512-aW7sVKPufyHqOmyyLzg/J+8606v5nevBgaliIlV7nUpVMsDnoBGV/cbSLNjZAg9q0Cfd/+easKVKQ8vOu8fn1Q==
dependencies:
path-parse "^1.0.5"
resolve@^1.3.2, resolve@^1.9.0:
version "1.10.0"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.10.0.tgz#3bdaaeaf45cc07f375656dfd2e54ed0810b101ba"
integrity sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg==
dependencies:
path-parse "^1.0.6"
resolve@^1.4.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.5.0.tgz#1f09acce796c9a762579f31b2c1cc4c3cddf9f36"
@ -11884,13 +11875,6 @@ resolve@^1.4.0:
dependencies:
path-parse "^1.0.5"
resolve@^1.6.0:
version "1.8.1"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26"
integrity sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==
dependencies:
path-parse "^1.0.5"
restore-cursor@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541"
@ -11913,11 +11897,11 @@ ret@~0.1.10:
integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==
rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2:
version "2.6.3"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab"
integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==
version "2.6.2"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36"
integrity sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==
dependencies:
glob "^7.1.3"
glob "^7.0.5"
rimraf@~2.2.6:
version "2.2.8"
@ -11925,11 +11909,11 @@ rimraf@~2.2.6:
integrity sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=
rimraf@~2.6.2:
version "2.6.2"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36"
integrity sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==
version "2.6.3"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab"
integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==
dependencies:
glob "^7.0.5"
glob "^7.1.3"
ripemd160@^2.0.0, ripemd160@^2.0.1:
version "2.0.2"
@ -12973,9 +12957,9 @@ table-layout@^0.4.3:
wordwrapjs "^3.0.0"
table@^5.0.2:
version "5.1.1"
resolved "https://registry.yarnpkg.com/table/-/table-5.1.1.tgz#92030192f1b7b51b6eeab23ed416862e47b70837"
integrity sha512-NUjapYb/qd4PeFW03HnAuOJ7OMcBkJlqeClWxeNlQ0lXGSb52oZXGzkO0/I0ARegQ2eUT1g2VDJH0eUxDRcHmw==
version "5.2.1"
resolved "https://registry.yarnpkg.com/table/-/table-5.2.1.tgz#e78463702b1be9f7131c39860bcfb1b81114c2a1"
integrity sha512-qmhNs2GEHNqY5fd2Mo+8N1r2sw/rvTAAvBZTaTx+Y7PHLypqyrxr1MdIu0pLw6Xvl/Gi4ONu/sdceP8vvUjkyA==
dependencies:
ajv "^6.6.1"
lodash "^4.17.11"
@ -13386,9 +13370,9 @@ tslint-plugin-prettier@^2.0.1:
tslib "^1.7.1"
tslint@^5.11.0:
version "5.11.0"
resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.11.0.tgz#98f30c02eae3cde7006201e4c33cb08b48581eed"
integrity sha1-mPMMAurjzecAYgHkwzywi0hYHu0=
version "5.12.1"
resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.12.1.tgz#8cec9d454cf8a1de9b0a26d7bdbad6de362e52c1"
integrity sha512-sfodBHOucFg6egff8d1BvuofoOQ/nOeYNfbp7LDlKBcLNrL3lmS5zoiDGyOMdT7YsEXAwWpTdAHwOGOc8eRZAw==
dependencies:
babel-code-frame "^6.22.0"
builtin-modules "^1.1.1"