Skip to main content

getMenuOptions

Description

Returns the full default set of context-menu options

Usage

getMenuOptions(config?: {
splitTasks?: boolean,
}): IOptionConfig[];

Parameters

  • config (optional) — an object with the next parameter:
    • splitTasksPRO feature enables menu items for splitting and segment editing

Returns

Returns an array of menu option items. Conditional blocks appear only when config.splitTasks is enabled. If no parameter is defined, only default config is returned.

[
{
id: "add-task",
text: "Add",
icon: "wxi-plus",
data: [
{ id: "add-task:child", text: "Child task" },
{ id: "add-task:before", text: "Task above" },
{ id: "add-task:after", text: "Task below" },
],
},

{ type: "separator" },

{
id: "convert-task",
text: "Convert to",
icon: "wxi-swap-horizontal",
dataFactory: type => ({
id: `convert-task:${type.id}`,
text: `${type.label}`,
}),
},

{
id: "edit-task",
text: "Edit",
icon: "wxi-edit",
},

// appears only if config.splitTasks is true
{
id: "split-task",
text: "Split",
icon: "wxi-arrow-split",
},
{
id: "edit",
text: "Edit",
icon: "wxi-edit",
data: [
{ id: "edit-task:task", text: "Task" },
{ id: "edit-task:segment", text: "Segment" }
]
},
// end

{ type: "separator" },

{ id: "cut-task", text: "Cut", icon: "wxi-content-cut", subtext: "Ctrl+X" },
{ id: "copy-task", text: "Copy", icon: "wxi-content-copy", subtext: "Ctrl+C" },
{ id: "paste-task", text: "Paste", icon: "wxi-content-paste", subtext: "Ctrl+V" },

{
id: "move-task",
text: "Move",
icon: "wxi-swap-vertical",
data: [
{ id: "move-task:up", text: "Up" },
{ id: "move-task:down", text: "Down" },
],
},

{ type: "separator" },

{ id: "indent-task:add", text: "Indent", icon: "wxi-indent" },
{ id: "indent-task:remove", text: "Outdent", icon: "wxi-unindent" },

{ type: "separator" },

{
id: "delete-task",
icon: "wxi-delete",
text: "Delete",
subtext: "Ctrl+D / BS",
},

// appears only if config.splitTasks is true
{
id: "delete",
icon: "wxi-delete",
text: "Delete",
data: [
{ id: "delete-task:task", text: "Task" },
{ id: "delete-task:segment", text: "Segment" }
]
}
// end
]

Example

<script>
import { Gantt, getMenuOptions } from "@svar-ui/svelte-gantt";
import { getData } from "../data";

const data = getData();

function init(api) {
const menu = getMenuOptions({
splitTasks: true
});

console.log("Menu options:", menu);
}
</script>

<Gantt
tasks={data.tasks}
links={data.links}
scales={data.scales}
{init}
/>

Related article: defaultMenuOptions