diff --git a/src/index.ts b/src/index.ts index 6fb4f0a..349aca6 100644 --- a/src/index.ts +++ b/src/index.ts @@ -17,7 +17,7 @@ import { import "@/index.scss"; import HelloExample from "@/hello.svelte"; -import SettingPannel from "@/libs/setting-panel.svelte"; +import SettingExample from "@/setting-example.svelte"; import { SettingUtils } from "./libs/setting-utils"; @@ -173,16 +173,10 @@ export default class PluginSample extends Plugin { title: "Readonly text", description: "Select description", select: { - options: [ - { - val: 1, - text: "Option 1" - }, - { - val: 2, - text: "Option 2" - } - ] + options: { + 1: "Option 1", + 2: "Option 2" + } } }); this.settingUtils.addItem({ @@ -270,7 +264,7 @@ export default class PluginSample extends Plugin { pannel.$destroy(); } }); - let pannel = new SettingPannel({ + let pannel = new SettingExample({ target: dialog.element.querySelector("#SettingPanel"), }); } diff --git a/src/libs/index.d.ts b/src/libs/index.d.ts index b46f655..379d841 100644 --- a/src/libs/index.d.ts +++ b/src/libs/index.d.ts @@ -5,13 +5,16 @@ interface ISettingItem { type: TSettingItemType; title: string; description?: string; + text?: { + placeholder?: string; + }; slider?: { min: number; max: number; step: number; }; select?: { - options: {val: any; text: string}[]; + options: { [key: string | number]: string }; }; button?: { label: string; diff --git a/src/libs/setting-item.svelte b/src/libs/setting-item.svelte index b728cf4..6f17890 100644 --- a/src/libs/setting-item.svelte +++ b/src/libs/setting-item.svelte @@ -2,13 +2,13 @@ import { createEventDispatcher } from "svelte"; export let type: string; // Setting Type export let title: string; // Displayint Setting Title - export let text: string; // Displaying Setting Text + export let description: string; // Displaying Setting Text export let settingKey: string; export let settingValue: any; //Optional export let placeholder: string = ""; // Use it if type is input - export let options: { [key: string]: string } = {}; // Use it if type is select + export let options: { [key: string | number]: string } = {}; // Use it if type is select export let slider: { min: number; max: number; @@ -30,7 +30,7 @@
{title}
- {text} + {@html description}
@@ -53,6 +53,14 @@ bind:value={settingValue} on:change={changed} /> + {:else if type === "number"} + {:else if type === "button"}