diff --git a/packages/playground/src/components/formatted_log.vue b/packages/playground/src/components/formatted_log.vue
new file mode 100644
index 0000000000..770ae11b84
--- /dev/null
+++ b/packages/playground/src/components/formatted_log.vue
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "{{ key }}":
+
+
+
+
+
+
+
+ here?
+
+
+
+
+
diff --git a/packages/playground/src/components/tf_log_formatter.vue b/packages/playground/src/components/tf_log_formatter.vue
new file mode 100644
index 0000000000..4b881e19ec
--- /dev/null
+++ b/packages/playground/src/components/tf_log_formatter.vue
@@ -0,0 +1,92 @@
+
+
+
+
+
diff --git a/packages/playground/src/components/weblet_layout.vue b/packages/playground/src/components/weblet_layout.vue
index faa5d96685..9790bd2658 100644
--- a/packages/playground/src/components/weblet_layout.vue
+++ b/packages/playground/src/components/weblet_layout.vue
@@ -29,7 +29,7 @@
- {{ message }}
+
diff --git a/packages/playground/src/config.ts b/packages/playground/src/config.ts
index 6194406320..d71830546d 100644
--- a/packages/playground/src/config.ts
+++ b/packages/playground/src/config.ts
@@ -18,6 +18,7 @@ import InputValidator from "./components/input_validator.vue";
import TfSelectCountry from "./components/node_selector/select_location_internals/TfSelectCountry.vue";
import TfSelectRegion from "./components/node_selector/select_location_internals/TfSelectRegion.vue";
import PasswordInputWrapper from "./components/password_input_wrapper.vue";
+import TfLogFormatter from "./components/tf_log_formatter.vue";
import ViewLayout from "./components/view_layout.vue";
import * as validators from "./utils/validators";
@@ -34,6 +35,7 @@ const GLOBAL_COMPONENTS: { [key: string]: Component } = {
TfSelectionDetails: defineAsyncComponent(() => import("./components/node_selector/TfSelectionDetails.vue")),
TfSelectRegion,
TfSelectCountry,
+ TfLogFormatter,
};
export function defineGlobals(app: App): void {
diff --git a/packages/playground/src/global-components.d.ts b/packages/playground/src/global-components.d.ts
index 6a9dbb1090..524a4c42c1 100644
--- a/packages/playground/src/global-components.d.ts
+++ b/packages/playground/src/global-components.d.ts
@@ -10,9 +10,11 @@ import TfSelectCountry from "./components/node_selector/select_location_internal
import TfSelectRegion from "./components/node_selector/select_location_internals/TfSelectRegion.vue";
import TfSelectionDetails from "./components/node_selector/TfSelectionDetails.vue";
import PasswordInputWrapper from "./components/password_input_wrapper.vue";
+import TfErrorFormater from "./components/tf_error_formater.vue";
import ViewLayout from "./components/view_layout.vue";
import WebletLayout from "./components/weblet_layout.vue";
import type * as validators from "./utils/validators";
+
declare module "@vue/runtime-core" {
export interface GlobalComponents {
PasswordInputWrapper: typeof PasswordInputWrapper;
@@ -27,6 +29,7 @@ declare module "@vue/runtime-core" {
TfSelectionDetails: typeof TfSelectionDetails;
TfSelectRegion: typeof TfSelectRegion;
TfSelectCountry: typeof TfSelectCountry;
+ TfErrorFormater: typeof TfErrorFormater;
}
interface ComponentCustomProperties {