Getting Started with the KendoReact Gantt

This guide provides essential information about using the KendoReact Gantt package—you will learn how to install the Gantt package, add a Gantt component to your project, style the component, and activate your license.


After completing this guide, you will be able to reproduce the following example.

Example
View Source
Change Theme:

Setting Up Your React Project

Before you install the KendoReact Gantt, make sure that you have a running React project. The easiest way to set up a React project is to use the Create React App approach that is described in the Get Started with KendoReact article.

Installing the Gantt Package

All KendoReact packages are distributed through npm and offer a similar installation experience. To use the Gantt component, start with the installation of the Gantt npm package and its dependencies. Use Node.js v5.0.0 or later.

    npm install --save @progress/kendo-react-gantt @progress/kendo-date-math @progress/kendo-drawing @progress/kendo-data-query @progress/kendo-react-intl @progress/kendo-react-treelist @progress/kendo-react-data-tools @progress/kendo-react-dateinputs @progress/kendo-react-inputs @progress/kendo-react-dropdowns @progress/kendo-react-buttons @progress/kendo-licensing @progress/kendo-svg-icons

Importing the Component

After installing the package, import the Gantt component in the React App. To use the Gantt views, also import the GanttDayView, GanttWeekView, and GanttMonthView components. To add some sample data to the Gantt, import the simpleTasks array from the example above.

In the App component file of your React project (for example, src/App.js), add the imports.

    // ES2015 module syntax
    import {
    Gantt,
    GanttWeekView,
    GanttMonthView,
    GanttDayView,
    GanttTextFilter,
    GanttTaskModelFields,
    GanttDependencyModelFields
    } from '@progress/kendo-react-gantt';
    import { simpleDependencies, simpleTasks } from './simpleData';
    // ES2015 module syntax
    const {
    Gantt,
    GanttWeekView,
    GanttMonthView,
    GanttDayView,
    GanttTextFilter,
    GanttTaskModelFields,
    GanttDependencyModelFields
    } = require('@progress/kendo-react-gantt');
    const { simpleDependencies, simpleTasks } = require('./simpleData');

Using the Component

  1. After installing the Gantt package and importing the component, add the Gantt tags to the App component file of your React project (for example, src/App.js). Then add the Gantt views.

        <Gantt
        style={ganttStyle}
        taskData={taskData}
        taskModelFields={taskModelFields}
        dependencyData={dependencyData}
        dependencyModelFields={dependencyModelFields}
        columns={columns}
        >
            <GanttDayView />
            <GanttWeekView />
            <GanttMonthView />
        </Gantt>
  2. Add the columns that correspond to the sampleData array.

        const columns = [
            {
                field: taskModelFields.id,
                title: 'id',
                width: 70
            },
            {
                field: taskModelFields.title,
                title: 'Title',
                width: 200,
                expandable: true,
                filter: GanttTextFilter
            },
            {
                field: taskModelFields.start,
                title: 'Start',
                width: 120,
                format: '{0:MM/dd/yyyy}'
            },
            {
                field: taskModelFields.end,
                title: 'End',
                width: 120,
                format: '{0:MM/dd/yyyy}'
            }
        ];
  3. Map the task model fields based on the data inside the sampleData array.

        const taskModelFields = {
            id: 'id',
            start: 'start',
            end: 'end',
            title: 'title',
            percentComplete: 'percentComplete',
            isRollup: 'isRollup',
            isExpanded: 'isExpanded',
            isInEdit: 'isInEdit',
            children: 'subtasks'
        };
  4. To style the Gantt, install and import the Default theme, which is one of the three beautiful themes for KendoReact.

    2.1. Install the Default theme package.

    npm install --save @progress/kendo-theme-default

    2.2. Import the CSS file from the package in src/App.js. Add this import before your existing App.css import.

    import '@progress/kendo-theme-default/dist/all.css';
  5. Build and run the application by typing the following command in the root folder of your project:

    npm start
  6. Navigate to http://localhost:3000 to see the KendoReact Gantt component on the page.

Activating Your License Key

Using any of the UI components in the KendoReact library requires either a commercial license key or an active trial license key.

Follow the instructions on the KendoReact My License page to activate your trial or commercial license. You can skip this step if your application already contains a KendoReact license file.

Dependencies

The Gantt package requires you to install the following peer dependencies in your application:

Package NameDescription
react 16.8.2*Contains the functionality necessary to define React components.
react-domContains the React renderer for the web.
@progress/kendo-licensingContains the internal infrastructure related to licensing.
@progress/kendo-drawingContains the Drawing library, which provides interactive vector graphics.
@progress/kendo-data-queryApplies sorting, filtering, grouping, and aggregate data operations.
@progress/kendo-react-animationEnables the animations in the KendoReact components.
@progress/kendo-react-data-toolsDelivers components required to manage and control the data in the application.
@progress/kendo-react-dateinputsContains the KendoReact Date Inputs components that are used to select the date and time for an appointment.
@progress/kendo-react-dropdownsContains the KendoReact Dropdowns, which allows users to choose from a predefined list of options.
@progress/kendo-react-inputsContains the KendoReact Inputs, which the input of data, based on a specific and predefined format.
@progress/kendo-react-intlContains the KendoReact Internationalization package that applies the desired cultures by providing services and pipes for the parsing and formatting of dates and numbers.
@progress/kendo-react-buttonsContains the KendoReact Buttons library, which provides buttons.
@progress/kendo-react-treelistContains the KendoReact TreeList, which renders the left side of the component that contains the columns.
@progress/kendo-svg-iconsContains the KendoReact SVG icons.

Learning Resources