Presets API
Save and load complete configuration presets.
Preset Operations
dmn.presets.save(name: string): Promise<void>
Saves current configuration as a preset.
await dmn.presets.save("My Gaming Setup");dmn.presets.load(name: string): Promise<void>
Loads a preset by name.
await dmn.presets.load("My Gaming Setup");dmn.presets.delete(name: string): Promise<void>
Deletes a preset.
await dmn.presets.delete("My Gaming Setup");dmn.presets.list(): Promise<string[]>
Returns list of all preset names.
const presets = await dmn.presets.list();
console.log(presets); // ['Default', 'Gaming', 'Streaming', ...]dmn.presets.export(name: string): Promise<string>
Exports a preset as JSON string.
const json = await dmn.presets.export("My Gaming Setup");
console.log(json);dmn.presets.import(json: string): Promise<void>
Imports a preset from JSON string.
const json = `{ "name": "Imported", ... }`;
await dmn.presets.import(json);Change Events
dmn.presets.onChanged(callback): Unsubscribe
Subscribes to preset list changes.
const unsub = dmn.presets.onChanged((presets) => {
console.log("Presets changed:", presets);
});Example Usage
// Preset manager panel
dmn.plugin.defineElement({
name: "Preset Manager",
maxInstances: 1,
template: (state, settings, { html }) => {
const presets = state.presets ?? [];
return html`
<div>
<h3>Presets</h3>
<ul>
${presets.map(
(name) => html`
<li>
<span>${name}</span>
<button @click=${() => dmn.presets.load(name)}>Load</button>
<button @click=${() => dmn.presets.delete(name)}>Delete</button>
</li>
`,
)}
</ul>
<button
@click=${() => {
const name = prompt("Preset name:");
if (name) dmn.presets.save(name);
}}
>
Save Current
</button>
</div>
`;
},
onMount: ({ setState }) => {
// Load initial list
dmn.presets.list().then((presets) => {
setState({ presets });
});
// Watch changes
const unsub = dmn.presets.onChanged((presets) => {
setState({ presets });
});
return () => unsub();
},
});