Input conversion in dev tools (#11795)

This commit is contained in:
Bram Kragten 2022-02-23 15:24:00 +01:00 committed by GitHub
parent 6e2e80a297
commit 0010bf5a8f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 80 additions and 36 deletions

View File

@ -2,7 +2,7 @@
This is the repository for the official [Home Assistant](https://home-assistant.io) frontend. This is the repository for the official [Home Assistant](https://home-assistant.io) frontend.
[![Screenshot of the frontend](https://raw.githubusercontent.com/home-assistant/home-assistant-polymer/master/docs/screenshot.png)](https://demo.home-assistant.io/) [![Screenshot of the frontend](https://raw.githubusercontent.com/home-assistant/frontend/master/docs/screenshot.png)](https://demo.home-assistant.io/)
- [View demo of Home Assistant](https://demo.home-assistant.io/) - [View demo of Home Assistant](https://demo.home-assistant.io/)
- [More information about Home Assistant](https://home-assistant.io) - [More information about Home Assistant](https://home-assistant.io)

View File

@ -75,7 +75,7 @@ class DialogBox extends LitElement {
? html` ? html`
<ha-textfield <ha-textfield
dialogInitialFocus dialogInitialFocus
.value=${this._value} .value=${this._value || ""}
@keyup=${this._handleKeyUp} @keyup=${this._handleKeyUp}
@change=${this._valueChanged} @change=${this._valueChanged}
.label=${this._params.inputLabel .label=${this._params.inputLabel

View File

@ -1,11 +1,11 @@
import "@material/mwc-button"; import "@material/mwc-button";
import "@polymer/iron-flex-layout/iron-flex-layout-classes"; import "@polymer/iron-flex-layout/iron-flex-layout-classes";
import "@polymer/paper-input/paper-input";
import { html } from "@polymer/polymer/lib/utils/html-tag"; import { html } from "@polymer/polymer/lib/utils/html-tag";
/* eslint-plugin-disable lit */ /* eslint-plugin-disable lit */
import { PolymerElement } from "@polymer/polymer/polymer-element"; import { PolymerElement } from "@polymer/polymer/polymer-element";
import { load } from "js-yaml"; import { load } from "js-yaml";
import "../../../components/ha-code-editor"; import "../../../components/ha-code-editor";
import "../../../components/ha-textfield";
import { showAlertDialog } from "../../../dialogs/generic/show-dialog-box"; import { showAlertDialog } from "../../../dialogs/generic/show-dialog-box";
import { EventsMixin } from "../../../mixins/events-mixin"; import { EventsMixin } from "../../../mixins/events-mixin";
import LocalizeMixin from "../../../mixins/localize-mixin"; import LocalizeMixin from "../../../mixins/localize-mixin";
@ -46,6 +46,10 @@ class HaPanelDevEvent extends EventsMixin(LocalizeMixin(PolymerElement)) {
margin-top: 8px; margin-top: 8px;
} }
ha-textfield {
display: block;
}
.code-editor { .code-editor {
margin-right: 16px; margin-right: 16px;
} }
@ -78,14 +82,15 @@ class HaPanelDevEvent extends EventsMixin(LocalizeMixin(PolymerElement)) {
</a> </a>
</p> </p>
<div class="inputs"> <div class="inputs">
<paper-input <ha-textfield
label="[[localize( label="[[localize(
'ui.panel.developer-tools.tabs.events.type' 'ui.panel.developer-tools.tabs.events.type'
)]]" )]]"
autofocus autofocus
required required
value="{{eventType}}" value="[[eventType]]"
></paper-input> on-change="eventTypeChanged"
></ha-textfield>
<p>[[localize( 'ui.panel.developer-tools.tabs.events.data' )]]</p> <p>[[localize( 'ui.panel.developer-tools.tabs.events.data' )]]</p>
</div> </div>
<div class="code-editor"> <div class="code-editor">
@ -150,6 +155,10 @@ class HaPanelDevEvent extends EventsMixin(LocalizeMixin(PolymerElement)) {
this.eventType = ev.detail.eventType; this.eventType = ev.detail.eventType;
} }
eventTypeChanged(ev) {
this.eventType = ev.target.value;
}
_computeParsedEventData(eventData) { _computeParsedEventData(eventData) {
try { try {
return eventData.trim() ? load(eventData) : {}; return eventData.trim() ? load(eventData) : {};

View File

@ -1,11 +1,10 @@
import "@material/mwc-button"; import "@material/mwc-button";
import "@polymer/paper-input/paper-input";
import { HassEvent } from "home-assistant-js-websocket"; import { HassEvent } from "home-assistant-js-websocket";
import { css, CSSResultGroup, html, LitElement, TemplateResult } from "lit"; import { css, CSSResultGroup, html, LitElement, TemplateResult } from "lit";
import { customElement, property, state } from "lit/decorators"; import { customElement, property, state } from "lit/decorators";
import { formatTime } from "../../../common/datetime/format_time"; import { formatTime } from "../../../common/datetime/format_time";
import "../../../components/ha-card"; import "../../../components/ha-card";
import { PolymerChangedEvent } from "../../../polymer-types"; import "../../../components/ha-textfield";
import { HomeAssistant } from "../../../types"; import { HomeAssistant } from "../../../types";
@customElement("event-subscribe-card") @customElement("event-subscribe-card")
@ -39,7 +38,7 @@ class EventSubscribeCard extends LitElement {
)} )}
> >
<form> <form>
<paper-input <ha-textfield
.label=${this._subscribed .label=${this._subscribed
? this.hass!.localize( ? this.hass!.localize(
"ui.panel.developer-tools.tabs.events.listening_to" "ui.panel.developer-tools.tabs.events.listening_to"
@ -49,8 +48,8 @@ class EventSubscribeCard extends LitElement {
)} )}
.disabled=${this._subscribed !== undefined} .disabled=${this._subscribed !== undefined}
.value=${this._eventType} .value=${this._eventType}
@value-changed=${this._valueChanged} @input=${this._valueChanged}
></paper-input> ></ha-textfield>
<mwc-button <mwc-button
.disabled=${this._eventType === ""} .disabled=${this._eventType === ""}
@click=${this._handleSubmit} @click=${this._handleSubmit}
@ -84,8 +83,8 @@ class EventSubscribeCard extends LitElement {
`; `;
} }
private _valueChanged(ev: PolymerChangedEvent<string>): void { private _valueChanged(ev): void {
this._eventType = ev.detail.value; this._eventType = ev.target.value;
} }
private async _handleSubmit(): Promise<void> { private async _handleSubmit(): Promise<void> {
@ -116,9 +115,8 @@ class EventSubscribeCard extends LitElement {
display: block; display: block;
padding: 0 0 16px 16px; padding: 0 0 16px 16px;
} }
paper-input { ha-textfield {
display: inline-block; width: 300px;
width: 200px;
} }
mwc-button { mwc-button {
vertical-align: middle; vertical-align: middle;

View File

@ -5,7 +5,6 @@ import {
mdiInformationOutline, mdiInformationOutline,
mdiRefresh, mdiRefresh,
} from "@mdi/js"; } from "@mdi/js";
import "@polymer/paper-input/paper-input";
import { html } from "@polymer/polymer/lib/utils/html-tag"; import { html } from "@polymer/polymer/lib/utils/html-tag";
/* eslint-plugin-disable lit */ /* eslint-plugin-disable lit */
import { PolymerElement } from "@polymer/polymer/polymer-element"; import { PolymerElement } from "@polymer/polymer/polymer-element";
@ -42,6 +41,14 @@ class HaPanelDevState extends EventsMixin(LocalizeMixin(PolymerElement)) {
padding: 16px; padding: 16px;
} }
ha-textfield {
display: block;
}
.state-input {
margin-top: 16px;
}
ha-expansion-panel { ha-expansion-panel {
margin: 0 8px 16px; margin: 0 8px 16px;
} }
@ -74,6 +81,14 @@ class HaPanelDevState extends EventsMixin(LocalizeMixin(PolymerElement)) {
); );
} }
.filters th {
padding: 0;
}
.filters ha-textfield {
--mdc-text-field-fill-color: transparent;
}
th.attributes { th.attributes {
position: relative; position: relative;
} }
@ -164,16 +179,17 @@ class HaPanelDevState extends EventsMixin(LocalizeMixin(PolymerElement)) {
on-change="entityIdChanged" on-change="entityIdChanged"
allow-custom-entity allow-custom-entity
></ha-entity-picker> ></ha-entity-picker>
<paper-input <ha-textfield
label="[[localize('ui.panel.developer-tools.tabs.states.state')]]" label="[[localize('ui.panel.developer-tools.tabs.states.state')]]"
required required
autocapitalize="none" autocapitalize="none"
autocomplete="off" autocomplete="off"
autocorrect="off" autocorrect="off"
spellcheck="false" spellcheck="false"
value="{{_state}}" value="[[_state]]"
on-change="stateChanged"
class="state-input" class="state-input"
></paper-input> ></ha-textfield>
<p> <p>
[[localize('ui.panel.developer-tools.tabs.states.state_attributes')]] [[localize('ui.panel.developer-tools.tabs.states.state_attributes')]]
</p> </p>
@ -234,27 +250,30 @@ class HaPanelDevState extends EventsMixin(LocalizeMixin(PolymerElement)) {
></ha-checkbox> ></ha-checkbox>
</th> </th>
</tr> </tr>
<tr> <tr class="filters">
<th> <th>
<paper-input <ha-textfield
label="[[localize('ui.panel.developer-tools.tabs.states.filter_entities')]]" label="[[localize('ui.panel.developer-tools.tabs.states.filter_entities')]]"
type="search" type="search"
value="{{_entityFilter}}" value="[[_entityFilter]]"
></paper-input> on-input="_entityFilterChanged"
></ha-textfield>
</th> </th>
<th> <th>
<paper-input <ha-textfield
label="[[localize('ui.panel.developer-tools.tabs.states.filter_states')]]" label="[[localize('ui.panel.developer-tools.tabs.states.filter_states')]]"
type="search" type="search"
value="{{_stateFilter}}" value="[[_stateFilter]]"
></paper-input> on-input="_stateFilterChanged"
></ha-textfield>
</th> </th>
<th hidden$="[[!computeShowAttributes(narrow, _showAttributes)]]"> <th hidden$="[[!computeShowAttributes(narrow, _showAttributes)]]">
<paper-input <ha-textfield
label="[[localize('ui.panel.developer-tools.tabs.states.filter_attributes')]]" label="[[localize('ui.panel.developer-tools.tabs.states.filter_attributes')]]"
type="search" type="search"
value="{{_attributeFilter}}" value="[[_attributeFilter]]"
></paper-input> on-input="_attributeFilterChanged"
></ha-textfield>
</th> </th>
</tr> </tr>
<tr hidden$="[[!computeShowEntitiesPlaceholder(_entities)]]"> <tr hidden$="[[!computeShowEntitiesPlaceholder(_entities)]]">
@ -416,6 +435,22 @@ class HaPanelDevState extends EventsMixin(LocalizeMixin(PolymerElement)) {
this._expanded = true; this._expanded = true;
} }
stateChanged(ev) {
this._state = ev.target.value;
}
_entityFilterChanged(ev) {
this._entityFilter = ev.target.value;
}
_stateFilterChanged(ev) {
this._stateFilter = ev.target.value;
}
_attributeFilterChanged(ev) {
this._attributeFilter = ev.target.value;
}
_getHistoryURL(entityId, inputDate) { _getHistoryURL(entityId, inputDate) {
const date = new Date(inputDate); const date = new Date(inputDate);
const hourBefore = addHours(date, -1).toISOString(); const hourBefore = addHours(date, -1).toISOString();

View File

@ -1,4 +1,3 @@
import "@polymer/paper-input/paper-textarea";
import { PropertyValues, ReactiveElement } from "lit"; import { PropertyValues, ReactiveElement } from "lit";
import { property } from "lit/decorators"; import { property } from "lit/decorators";
import { computeRTL } from "../../../../common/util/compute_rtl"; import { computeRTL } from "../../../../common/util/compute_rtl";

View File

@ -333,7 +333,7 @@ export class HuiConditionalCardEditor
.condition .state mwc-select { .condition .state mwc-select {
margin-right: 16px; margin-right: 16px;
} }
.condition .state paper-input { .condition .state ha-textfield {
flex-grow: 1; flex-grow: 1;
} }

View File

@ -1,7 +1,6 @@
import "@material/mwc-button"; import "@material/mwc-button";
import "@polymer/app-layout/app-header/app-header"; import "@polymer/app-layout/app-header/app-header";
import "@polymer/app-layout/app-toolbar/app-toolbar"; import "@polymer/app-layout/app-toolbar/app-toolbar";
import "@polymer/paper-input/paper-textarea";
import "@polymer/paper-item/paper-item"; import "@polymer/paper-item/paper-item";
import "@polymer/paper-item/paper-item-body"; import "@polymer/paper-item/paper-item-body";
import "@polymer/paper-tabs/paper-tab"; import "@polymer/paper-tabs/paper-tab";

View File

@ -1,5 +1,4 @@
import "@material/mwc-button"; import "@material/mwc-button";
import "@polymer/paper-input/paper-input";
import { css, CSSResultGroup, html, LitElement, TemplateResult } from "lit"; import { css, CSSResultGroup, html, LitElement, TemplateResult } from "lit";
import { customElement, property, state } from "lit/decorators"; import { customElement, property, state } from "lit/decorators";
import { fireEvent } from "../../common/dom/fire_event"; import { fireEvent } from "../../common/dom/fire_event";
@ -7,6 +6,7 @@ import { createCloseHeading } from "../../components/ha-dialog";
import { haStyleDialog } from "../../resources/styles"; import { haStyleDialog } from "../../resources/styles";
import type { HomeAssistant } from "../../types"; import type { HomeAssistant } from "../../types";
import { LongLivedAccessTokenDialogParams } from "./show-long-lived-access-token-dialog"; import { LongLivedAccessTokenDialogParams } from "./show-long-lived-access-token-dialog";
import "../../components/ha-textfield";
const QR_LOGO_URL = "/static/icons/favicon-192x192.png"; const QR_LOGO_URL = "/static/icons/favicon-192x192.png";
@ -41,14 +41,15 @@ export class HaLongLivedAccessTokenDialog extends LitElement {
@closed=${this.closeDialog} @closed=${this.closeDialog}
> >
<div> <div>
<paper-input <ha-textfield
dialogInitialFocus dialogInitialFocus
.value=${this._params.token} .value=${this._params.token}
.label=${this.hass.localize( .label=${this.hass.localize(
"ui.panel.profile.long_lived_access_tokens.prompt_copy_token" "ui.panel.profile.long_lived_access_tokens.prompt_copy_token"
)} )}
type="text" type="text"
></paper-input> readOnly
></ha-textfield>
<div id="qr"> <div id="qr">
${this._qrCode ${this._qrCode
? this._qrCode ? this._qrCode
@ -94,6 +95,9 @@ export class HaLongLivedAccessTokenDialog extends LitElement {
#qr { #qr {
text-align: center; text-align: center;
} }
ha-textfield {
display: block;
}
`, `,
]; ];
} }