Skip to content

MetadataEditor

Defined in: src/obsidian/internals/MetadataEditor.d.ts:15

_children: Component[]

Defined in: src/obsidian/augmentations/Components/Component.d.ts:13

Child Components attached to current component, will be unloaded on unloading parent component.

Component._children


_events: EventRef[]

Defined in: src/obsidian/augmentations/Components/Component.d.ts:20

Events that are attached to the current component, will be detached on unloading parent component.

Component._events


_loaded: boolean

Defined in: src/obsidian/augmentations/Components/Component.d.ts:27

Whether the component and its children are loaded.

Component._loaded


addPropertyButtonEl: HTMLButtonElement

Defined in: src/obsidian/internals/MetadataEditor.d.ts:19

Button element for adding a new property.


app: App

Defined in: src/obsidian/internals/MetadataEditor.d.ts:24

Reference to the app.


collapsed: boolean

Defined in: src/obsidian/internals/MetadataEditor.d.ts:29

Whether the frontmatter editor is collapsed.


containerEl: HTMLElement

Defined in: src/obsidian/internals/MetadataEditor.d.ts:34

Container element for the metadata editor.


contentEl: HTMLElement

Defined in: src/obsidian/internals/MetadataEditor.d.ts:39

Element containing metadata table and addPropertyButton.


focusedLine: null | MetadataEditorProperty

Defined in: src/obsidian/internals/MetadataEditor.d.ts:44

The currently focused property.


foldEl: HTMLElement

Defined in: src/obsidian/internals/MetadataEditor.d.ts:49

Fold button for folding away the frontmatter editor on hovering over headingEl.


headingEl: HTMLElement

Defined in: src/obsidian/internals/MetadataEditor.d.ts:54

Heading element for the metadata editor.


hoverPopover: null | HoverPopover

Defined in: src/obsidian/internals/MetadataEditor.d.ts:59

Hover element container.


owner: MarkdownView

Defined in: src/obsidian/internals/MetadataEditor.d.ts:64

Owner of the metadata editor.


properties: PropertyEntryData<unknown>[]

Defined in: src/obsidian/internals/MetadataEditor.d.ts:69

All properties existing in the metadata editor.


propertyListEl: HTMLElement

Defined in: src/obsidian/internals/MetadataEditor.d.ts:74

Element containing all property elements.


rendered: MetadataEditorProperty[]

Defined in: src/obsidian/internals/MetadataEditor.d.ts:79

List of all property field editors.


selectedLines: Set<MetadataEditorProperty>

Defined in: src/obsidian/internals/MetadataEditor.d.ts:84

Set of all selected property editors.

_copyToClipboard(event, properties): void

Defined in: src/obsidian/internals/MetadataEditor.d.ts:89

Convert given properties to a serialized object and store in clipboard as obsidian/properties.

ClipboardEvent

MetadataEditorProperty[]

void


addChild<T>(component): T

Defined in: obsidian.d.ts:911

Adds a child component, loading it if this component is loaded

T extends Component

T

T

Component.addChild

addChild<T>(component): T

Defined in: src/obsidian/augmentations/Components/Component.d.ts:41

Adds a child component, loading it if this component is loaded.

T extends Component

The type of the component to add.

T

The component to add.

T

The added component.

component.addChild(childComponent);

Component.addChild


addProperty(): void

Defined in: src/obsidian/internals/MetadataEditor.d.ts:94

Uncollapse editor if collapsed and create a new property row.

void


clear(): void

Defined in: src/obsidian/internals/MetadataEditor.d.ts:99

Clear all properties.

void


clearSelection(): void

Defined in: src/obsidian/internals/MetadataEditor.d.ts:104

Unselect all lines.

void


focusKey(key): void

Defined in: src/obsidian/internals/MetadataEditor.d.ts:109

Focus on property field with given key.

string

void


focusProperty(property): void

Defined in: src/obsidian/internals/MetadataEditor.d.ts:114

Focus on property.

MetadataEditorProperty

void


focusPropertyAtIndex(index): void

Defined in: src/obsidian/internals/MetadataEditor.d.ts:119

Focus on property at specified index.

number

void


focusValue(value, which): void

Defined in: src/obsidian/internals/MetadataEditor.d.ts:124

Focus on property with value.

string

"both" | "end" | "start"

void


handleCopy(event): void

Defined in: src/obsidian/internals/MetadataEditor.d.ts:129

Handle copy event on selection and serialize properties.

ClipboardEvent

void


handleCut(event): void

Defined in: src/obsidian/internals/MetadataEditor.d.ts:134

Handle cut event and serialize and remove properties.

ClipboardEvent

void


handleItemSelection(event, property): boolean

Defined in: src/obsidian/internals/MetadataEditor.d.ts:139

Handle selection of item for drag handling.

PointerEvent

MetadataEditorProperty

boolean


handleKeypress(event): void

Defined in: src/obsidian/internals/MetadataEditor.d.ts:144

Handle key press event for controlling selection or movement of property up/down.

KeyboardEvent

void


handlePaste(event): void

Defined in: src/obsidian/internals/MetadataEditor.d.ts:149

Handle paste event of properties into metadata editor.

ClipboardEvent

void


hasFocus(): boolean

Defined in: src/obsidian/internals/MetadataEditor.d.ts:154

Whether the editor has focus.

boolean


hasPropertyFocused(): boolean

Defined in: src/obsidian/internals/MetadataEditor.d.ts:159

Whether there is a property that is focused.

boolean


insertProperties(properties): void

Defined in: src/obsidian/internals/MetadataEditor.d.ts:164

Add new properties to the metadata editor and save.

Record<string, any>

void


load(): void

Defined in: obsidian.d.ts:889

Load this component and its children

void

Component.load

load(): void

Defined in: src/obsidian/augmentations/Components/Component.d.ts:48

Load this component and its children.

void

Component.load


onload(): void

Defined in: src/obsidian/internals/MetadataEditor.d.ts:169

On loading of the metadata editor, register on metadata type change event.

void

Component.onload


onMetadataTypeChange(property): void

Defined in: src/obsidian/internals/MetadataEditor.d.ts:174

On vault metadata update, update property render.

MetadataEditorProperty

void


onunload(): void

Defined in: obsidian.d.ts:906

Override this to unload your component

void

Component.onunload


register(cb): void

Defined in: obsidian.d.ts:921

Registers a callback to be called when unloading

() => any

void

Component.register

register(cb): void

Defined in: src/obsidian/augmentations/Components/Component.d.ts:78

Registers a callback to be called when unloading.

() => any

The callback to be called when unloading.

void

component.register(() => {
console.log('MyComponent unloaded');
});

Component.register


registerDomEvent<K>(el, type, callback, options?): void

Defined in: obsidian.d.ts:931

Registers an DOM event to be detached when unloading

K extends keyof WindowEventMap

Window

K

(this, ev) => any

boolean | AddEventListenerOptions

void

Component.registerDomEvent

registerDomEvent<K>(el, type, callback, options?): void

Defined in: obsidian.d.ts:936

Registers an DOM event to be detached when unloading

K extends keyof DocumentEventMap

Document

K

(this, ev) => any

boolean | AddEventListenerOptions

void

Component.registerDomEvent

registerDomEvent<K>(el, type, callback, options?): void

Defined in: obsidian.d.ts:941

Registers an DOM event to be detached when unloading

K extends keyof HTMLElementEventMap

HTMLElement

K

(this, ev) => any

boolean | AddEventListenerOptions

void

Component.registerDomEvent

registerDomEvent<K>(el, type, callback, options?): void

Defined in: src/obsidian/augmentations/Components/Component.d.ts:96

Registers an DOM event to be detached when unloading.

K extends keyof DocumentEventMap

The type of the event to register.

Document

The element to register the event on.

K

The type of the event to register.

(this, ev) => any

The callback to be called when the event is triggered.

The options for the event.

boolean | AddEventListenerOptions

void

component.registerDomEvent(document, 'click', () => {
console.log('Document clicked');
});

Component.registerDomEvent

registerDomEvent<K>(el, type, callback, options?): void

Defined in: src/obsidian/augmentations/Components/Component.d.ts:119

Registers an DOM event to be detached when unloading.

K extends keyof HTMLElementEventMap

The type of the event to register.

HTMLElement

The element to register the event on.

K

The type of the event to register.

(this, ev) => any

The callback to be called when the event is triggered.

The options for the event.

boolean | AddEventListenerOptions

void

component.registerDomEvent(document.body, 'click', () => {
console.log('Body clicked');
});

Component.registerDomEvent

registerDomEvent<K>(el, type, callback, options?): void

Defined in: src/obsidian/augmentations/Components/Component.d.ts:142

Registers an DOM event to be detached when unloading.

K extends keyof WindowEventMap

The type of the event to register.

Window

The element to register the event on.

K

The type of the event to register.

(this, ev) => any

The callback to be called when the event is triggered.

The options for the event.

boolean | AddEventListenerOptions

void

component.registerDomEvent(window, 'click', () => {
console.log('Window clicked');
});

Component.registerDomEvent


registerEvent(eventRef): void

Defined in: obsidian.d.ts:926

Registers an event to be detached when unloading

EventRef

void

Component.registerEvent

registerEvent(eventRef): void

Defined in: src/obsidian/augmentations/Components/Component.d.ts:159

Registers an event to be detached when unloading.

EventRef

The event to be registered.

void

component.registerEvent(eventRef);

Component.registerEvent


registerInterval(id): number

Defined in: obsidian.d.ts:948

Registers an interval (from setInterval) to be cancelled when unloading Use setInterval instead of setInterval to avoid TypeScript confusing between NodeJS vs Browser API

number

number

Component.registerInterval

registerInterval(id): number

Defined in: src/obsidian/augmentations/Components/Component.d.ts:175

Registers an interval (from setInterval) to be cancelled when unloading. Use setInterval instead of setInterval to avoid TypeScript confusing between NodeJS vs Browser API

number

The id of the interval to register.

number

The id of the interval.

component.registerInterval(window.setInterval(() => {
console.log('Interval');
}, 1000));

Component.registerInterval


registerScopeEvent(keymapEventHandler): void

Defined in: src/obsidian/augmentations/Components/Component.d.ts:181

KeymapEventHandler

void

Component.registerScopeEvent


removeChild<T>(component): T

Defined in: obsidian.d.ts:916

Removes a child component, unloading it

T extends Component

T

T

Component.removeChild

removeChild<T>(component): T

Defined in: src/obsidian/augmentations/Components/Component.d.ts:195

Removes a child component, unloading it.

T extends Component

The type of the component to remove.

T

The component to remove.

T

The removed component.

component.removeChild(childComponent);

Component.removeChild


removeProperties(properties, reset_focus?): unknown

Defined in: src/obsidian/internals/MetadataEditor.d.ts:179

Remove specified properties from the metadata editor and save, and reset focus if specified.

MetadataEditorProperty[]

boolean

unknown


reorderKey(entry, index): unknown

Defined in: src/obsidian/internals/MetadataEditor.d.ts:184

Reorder the entry to specified index position and save.

PropertyEntryData<unknown>

number

unknown


save(): void

Defined in: src/obsidian/internals/MetadataEditor.d.ts:189

Serialize the properties and save frontmatter.

void


selectAll(): void

Defined in: src/obsidian/internals/MetadataEditor.d.ts:194

Select all property fields.

void


selectProperty(property, select): void

Defined in: src/obsidian/internals/MetadataEditor.d.ts:199

Mark specified property as selected.

undefined | MetadataEditorProperty

boolean

void


serialize(): Record<string, any>

Defined in: src/obsidian/internals/MetadataEditor.d.ts:204

Convert properties to a serialized object.

Record<string, any>


setCollapse(collapsed, x): void

Defined in: src/obsidian/internals/MetadataEditor.d.ts:209

Sets frontmatter as collapsed or uncollapsed.

boolean

boolean

void


showPropertiesMenu(event): void

Defined in: src/obsidian/internals/MetadataEditor.d.ts:214

On context menu event on header element, show property menu.

MouseEvent

void


synchronize(data): void

Defined in: src/obsidian/internals/MetadataEditor.d.ts:219

Synchronize data with given properties and re-render them.

Record<string, any>

void


toggleCollapse(): void

Defined in: src/obsidian/internals/MetadataEditor.d.ts:224

Toggle collapsed state of the metadata editor.

void


unload(): void

Defined in: obsidian.d.ts:900

Unload this component and its children

void

Component.unload

unload(): void

Defined in: src/obsidian/augmentations/Components/Component.d.ts:211

Override this to unload your component.

void

class MyComponent extends Component {
public override onunload(): void {
console.log('MyComponent unloaded');
}
}

Component.unload