Skip to main content

registerEditorItem

Description​

Registers a custom UI component for use as a field in the Editor

The registered component must support the value property and onchange callback as in Editor.

Usage​

registerEditorItem?: (
type: string,
handler: Component<any>
) => void;

Parameters​

  • type - (required) a unique identifier for the editor control
  • handler - (required) a Svelte component that implements value property and onchange callback as in Editor.

Example​

The example shows how to add a custom editor field using the radio button component:

<script>
import { Gantt, Editor, getEditorItems, registerEditorItem, defaultTaskTypes } from "@svar-ui/svelte-gantt";
import { RadioButtonGroup } from "@svar-ui/svelte-core";

registerEditorItem("radio", RadioButtonGroup);

// replace the "type" select with a radio group
const items = getEditorItems().map(item =>
item.key === "type"
? {
key: "type",
comp: "radio",
label: "Type",
options: defaultTaskTypes.map(o => ({
...o,
value: o.id,
})),
config: { type: "inline" },
}
: item
);

let api = $state();
</script>

<Gantt bind:this={api} />
<Editor {api} {items} />

Related articles: