From 5ed348aa56e24d72456681afd578678a23ea41a4 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Wed, 12 Jul 2023 11:54:33 -0400 Subject: [PATCH] Add download button to assist sentence parser dev tool (#17265) * Add download button to assist sentence parser dev tool * Use outlined button * BLOCK --- src/components/ha-button.ts | 1 + .../assist/developer-tools-assist.ts | 25 +++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/src/components/ha-button.ts b/src/components/ha-button.ts index 959f679431..df7bdf46e5 100644 --- a/src/components/ha-button.ts +++ b/src/components/ha-button.ts @@ -12,6 +12,7 @@ export class HaButton extends Button { margin-inline-start: 0px; margin-inline-end: 8px; direction: var(--direction); + display: block; } .mdc-button { height: var(--button-height, 36px); diff --git a/src/panels/developer-tools/assist/developer-tools-assist.ts b/src/panels/developer-tools/assist/developer-tools-assist.ts index 9080e13394..32d5dcfcd6 100644 --- a/src/panels/developer-tools/assist/developer-tools-assist.ts +++ b/src/panels/developer-tools/assist/developer-tools-assist.ts @@ -1,3 +1,4 @@ +import { mdiDownload } from "@mdi/js"; import { dump } from "js-yaml"; import { CSSResultGroup, LitElement, css, html, nothing } from "lit"; import { customElement, property, query, state } from "lit/decorators"; @@ -16,6 +17,7 @@ import { haStyle } from "../../../resources/styles"; import { HomeAssistant } from "../../../types"; import { formatLanguageCode } from "../../../common/language/format_language"; import { storage } from "../../../common/decorators/storage"; +import { fileDownload } from "../../../util/file_download"; type SentenceParsingResult = { sentence: string; @@ -146,6 +148,16 @@ class HaPanelDevAssist extends SubscribeMixin(LitElement) { + ${this._results.length + ? html` +
+ + + Download Results + +
+ ` + : ""} ${this._results.map((r) => { const { sentence, result, language } = r; const matched = result != null; @@ -182,6 +194,15 @@ class HaPanelDevAssist extends SubscribeMixin(LitElement) { `; } + private _download() { + fileDownload( + `data:text/plain;charset=utf-8,${encodeURIComponent( + JSON.stringify({ results: this._results }, null, 2) + )}`, + `intent_results.json` + ); + } + static get styles(): CSSResultGroup { return [ haStyle, @@ -208,6 +229,10 @@ class HaPanelDevAssist extends SubscribeMixin(LitElement) { .form { margin-bottom: 16px; } + .result-toolbar { + text-align: center; + margin-bottom: 16px; + } .result { margin-bottom: 16px; }