UNPKG

@polyipseity/obsidian-plugin-library

Version:
19 lines 2.03 kB
import type { ButtonComponent, DropdownComponent, ExtraButtonComponent, ValueComponent } from "obsidian"; import type { ReadonlyTuple } from "./types.js"; export declare function closeSetting(container: HTMLElement): void; export interface ComponentAction<C, V> { readonly pre?: (component: C) => void; readonly post?: (component: C, activate: (value: V) => PromiseLike<void>) => void; } export declare function linkSetting<V, C extends ValueComponent<V> & { readonly onChange: (callback: (value: V) => unknown) => C; }>(getter: () => V, setter: (value: V, component: C, getter: () => V) => unknown, callback: (value: V, component: C, getter: () => V) => unknown, { pre, post }?: ComponentAction<C, V>): (component: C) => void; export declare function composeSetters<V, C extends ValueComponent<V>>(...setters: readonly ((value: V, component: C, getter: () => V) => unknown)[]): (value: V, component: C, getter: () => V) => Promise<boolean>; export declare function setTextToEnum<const Es extends ReadonlyTuple<V>, V, C extends ValueComponent<V>>(enums: Es, setter: (value: Es[number], component: C, getter: () => V) => unknown): (value: V, component: C, getter: () => V) => Promise<boolean>; export declare function setTextToNumber<C extends ValueComponent<string>>(setter: (value: number, component: C, getter: () => string) => unknown, integer?: boolean): (value: string, component: C, getter: () => string) => Promise<boolean>; export declare function resetButton<C extends ButtonComponent | ExtraButtonComponent>(icon: string, tooltip: string, resetter: (component: C) => unknown, callback: (component: C) => unknown, { pre, post }?: ComponentAction<C, void>): (component: C) => void; export declare function dropdownSelect<V, C extends DropdownComponent>(unselected: string, selections: readonly { readonly name: string; readonly value: V; }[], callback: (value: V, component: C) => unknown, action?: ComponentAction<C, string>): (component: C) => void; //# sourceMappingURL=settings-widgets.d.ts.map