{
  "$schema": "https://ai.syncfusion.com/schema/registry-item.json",
  "name": "gantt-default-editing",
  "framework": "blazor",
  "type": "registry:component",
  "component": "Gantt",
  "variant": "default-editing",
  "dependencies": [
    "Syncfusion.Blazor.Gantt"
  ],
  "description": "Editable Gantt chart supports adding, editing, deleting, taskbar changes, confirmation dialogs, and task progress tracking.",
  "meta": {
    "essentialStudioRelease": "2026 Volume 2 (v34.1.29)",
    "license": "commercial-or-community",
    "licenseNote": "The Syncfusion package is licensed. The composition in this file is source you own and edit. See https://ai.syncfusion.com/licensing.md",
    "requiresLicenseKey": true,
    "requiresServerEndpoint": false,
    "platformIndex": "https://ai.syncfusion.com/blazor/llms.txt",
    "skillPack": "syncfusion/blazor-ui-components-skills",
    "docs": "https://ai.syncfusion.com/gallery/blazor/gantt-default-editing.md"
  },
  "files": [
    {
      "target": "src/components/gantt-default-editing/DataSource.cs",
      "content": "using System;\nusing System.Collections.Generic;\nnamespace BlazorDemos.Pages.GanttChart.Data\n{\n    public static class GanttData\n    {\n        internal sealed class TaskData\n        {\n            public int TaskId { get; set; }\n            public string? TaskName { get; set; }\n            public DateTime? StartDate { get; set; }\n            public DateTime? EndDate { get; set; }\n            public string? Duration { get; set; }\n            public int Progress { get; set; }\n            public string? Predecessor { get; set; }\n            public string? Notes { get; set; }\n            public int? ParentId { get; set; }\n        }\n        /// <summary>\n        /// Generates and returns a collection of Gantt task data.\n        /// </summary>\n        internal static List<TaskData> EditingData()\n        {\n            List<TaskData> Tasks = new List<TaskData>() {\n                new TaskData() { TaskId = 1, TaskName = \"Planning and permits\", StartDate = new DateTime(2025, 04, 02), EndDate = new DateTime(2025, 04, 10), Duration = \"7 days\", Progress = 100 }, // Completed\n                new TaskData() { TaskId = 2, TaskName = \"Site evaluation\", StartDate = new DateTime(2025, 04, 02), EndDate = new DateTime(2025, 04, 04), Duration = \"2 days\", Progress = 100, ParentId = 1 }, // Completed\n                new TaskData() { TaskId = 3, TaskName = \"Obtain permits\", StartDate = new DateTime(2025, 04, 07), EndDate = new DateTime(2025, 04, 09), Duration = \"3 days\", Progress = 100, ParentId = 1, Predecessor = \"2\" }, // Completed\n                new TaskData() { TaskId = 4, TaskName = \"Finalize planning\", StartDate = new DateTime(2025, 04, 10), EndDate = new DateTime(2025, 04, 11), Duration = \"2 days\", Progress = 100, ParentId = 1, Predecessor = \"3\" }, // Completed\n                new TaskData() { TaskId = 5, TaskName = \"Site preparation\", StartDate = new DateTime(2025, 04, 14), EndDate = new DateTime(2025, 04, 18), Duration = \"5 days\", Progress = 100,  }, // Completed\n                new TaskData() { TaskId = 6, TaskName = \"Site clearing\", StartDate = new DateTime(2025, 04, 14), Duration = \"0\", Progress = 100, ParentId = 5, Predecessor = \"4\"}, // Completed\n            };\n            return Tasks;\n        }        \n    }\n}"
    },
    {
      "target": "src/components/gantt-default-editing/Gantt.razor",
      "content": "@page \"/gantt-chart/editing\"\n@using Syncfusion.Blazor.Gantt\n@using BlazorDemos.Pages.GanttChart.Data\n<div class=\"control-section e-gantt-editing-sample\">\n    <SfGantt @ref=\"GanttInstance\" DataSource=\"@TaskCollection\" Height=\"100%\" Width=\"1200px\" HighlightWeekends=\"true\"\n             Toolbar=\"@(new List<string>() { \"Add\", \"Edit\", \"Update\", \"Delete\", \"Cancel\", \"ExpandAll\", \"CollapseAll\", \"Indent\", \"Outdent\" })\"\n             AllowSelection=\"true\" GridLines=\"Syncfusion.Blazor.Gantt.GridLine.Both\" TreeColumnIndex=\"1\"\n             ProjectStartDate=\"@(new DateTime(2025, 3, 25))\" ProjectEndDate=\"@(new DateTime(2025, 9, 01))\" ScrollToTaskbarOnClick=\"true\">\n        <GanttTaskFields Id=\"TaskId\" Name=\"TaskName\" StartDate=\"StartDate\" EndDate=\"EndDate\" Duration=\"Duration\" Progress=\"Progress\"\n                         Dependency=\"Predecessor\" ParentID=\"ParentId\"></GanttTaskFields>\n        <GanttEditSettings AllowAdding=\"true\" AllowDeleting=\"true\" AllowEditing=\"true\" AllowTaskbarEditing=\"true\" ShowDeleteConfirmDialog=\"true\"></GanttEditSettings>\n        <GanttColumns>\n            <GanttColumn Field=\"TaskId\" Width=\"100\"></GanttColumn>\n            <GanttColumn Field=\"TaskName\" HeaderText=\"Job Name\" Width=\"250\" ClipMode=\"Syncfusion.Blazor.Grids.ClipMode.EllipsisWithTooltip\"></GanttColumn>\n            <GanttColumn Field=\"StartDate\" HeaderText=\"Start Date\"></GanttColumn>\n            <GanttColumn Field=\"EndDate\" HeaderText=\"End Date\"></GanttColumn>\n            <GanttColumn Field=\"Duration\" HeaderText=\"Duration\"></GanttColumn>\n            <GanttColumn Field=\"Progress\" HeaderText=\"Progress\"></GanttColumn>\n            <GanttColumn Field=\"Predecessor\" HeaderText=\"Dependency\"></GanttColumn>\n        </GanttColumns>\n        <GanttLabelSettings LeftLabel=\"TaskName\" TaskLabel=\"Progress\" TValue=\"GanttData.TaskData\"></GanttLabelSettings>\n        @* <GanttSplitterSettings ColumnIndex=\"2\"></GanttSplitterSettings> *@\n    </SfGantt>\n</div>\n\n@code {\n    internal SfGantt<GanttData.TaskData>? GanttInstance { get; set; }\n        internal List<GanttData.TaskData> TaskCollection { get; set; } = new List<GanttData.TaskData>();\n        /// <summary>\n        /// Initializes the Gantt chart with Editing task data.\n        /// </summary>\n        protected override async Task OnInitializedAsync()\n        {\n            TaskCollection = GanttData.EditingData().ToList();\n            await Task.CompletedTask.ConfigureAwait(true);\n        }\n}"
    }
  ]
}