editorShape
Description
Optional. An array of objects containing settings for managing the appearance and functionality of the Event Calendar editor
Usage
editorShape?: [
    {
        // common settings
        type: string,
        key: string,
        label?: string,
        // for "text" and "textarea" types
        config?: {
            readonly?: boolean,
            focus?: boolean,
            disabled?: boolean,
            placeholder?: string,
            type?: string,
            inputStyle?: string
        },
        // for "combo" and "multiselect" types only
        template?: (option) => string, 
        options?: [
            {
                id: any,
                label: string,
            },
            {...} // other options
        ],
        config?: {
            placeholder?: string,
            disabled?: boolean
        },
        // for a "radio" type only
        options?: [
            {
                id: any,
                label?: string, 
            },
            {...} // other options
        ],
        // for "color" and "colorSchema" types
        colors?: [], // for a "color" type only
        colors?: [ // for a "colorSchema" type only
            {
                background?: string,
                border?: string,
                textColor? string,
                colorpicker? string
            },
            {...}
        ],
        config?: {
            placeholder?: string,
            clear?: boolean
        },
        // for a "checkbox" type only
        text?: string,
        // for a "date" type only
        time?: boolean,
        format?: string,
        // for a "files" type only
        uploadURL?: string,
        config?: {
            accept?: string,
            disabled?: boolean,
            multiple?: boolean,
            folder?: boolean
        }
    }, {...}
];
Parameters
To configure the editor appearance and functionality, you can specify the following parameters (fields):
- Common parameters for all types
- type- (required) an editor field type. Here you can specify the following types: text, textarea, combo, multiselect, color, checkbox, date, radio, files and recurring
The recurring type of editor doesn't require a key to bind to events!
- key- (required) an editor field key. Here you need to use the value specified in the- eventsproperty. See the example below:
// event data
const events = [
    {
        text: "Current event",
        start_date: new Date("2021-05-24T00:00:00")
    }, {...}
];
// editor settings
const editorShape = [ 
    {
        type: "text",
        key: "text",
        label: "Event name",
        config: {
            placeholder: "New event"
        }
    },
    {
        type: "date",
        key: "start_date", 
        label: "Start date",
        time: true
    }
];
- label- (optional) an editor field label
- Parameters for "text" and "textarea" types
- config- (optional) a configuration object of the "text" and "textarea" fields. Here you can specify the following parameters:- readonly- (optional) enables/disables a readonly mode
- focus- (optional) enables/disables a focus
- disabled- (optional) enables/disables a field state
- placeholder- (optional) a placeholder value
- type- (optional) a type of the input field (only for text type). Here you can specify only the password, number, and text values)
- inputStyle- (optional) a custom css style
 
- Parameters for "combo" and "multiselect" types
- template- (optional) a function that needs to return a custom template of the drop-down options
- options- (optional) an array of objects containing the dropdown options data. Here you can specify the following parameters:- id- (required) an option ID
- label- (required) an option label
 
- config- (optional) a configuration object of the "combo" field. Here you can specify the following parameters:- placeholder- (optional) a placeholder value
- disabled- (optional) enables/disables a field state
 
- Parameters for a "radio" type
- options- (optional) an array of objects containing the radio button data. Here you can specify the following parameters:- value- (required) a radio button value
- label- (optional) an option label
 
- Parameters for "color" and "colorSchema" types
For a color type only
- colors- (optional) an array with valid HEX codes
For a colorSchema type only. Unless you specify colors for the colorSchema type, the colorpicker will use a set of parameters specified via the colors property
- colors- (optional) an array of objects containing the parameters of colors used in colorpicker. For each set of colors you can specify the following parameters:- background- (optional) a HEX code of the event background color
- border- (optional) a HEX code of the event border color
- textColor- (optional) a HEX code of the event text color
- colorpicker- (optional) a value (color) used in colorpicker. The possible values are "background" and "border"
 
- config- (optional) a configuration object of the "color" and "colorSchema" fields. Here you can specify the following parameters:- placeholder- (optional) a placeholder value
- clear- (optional) shows/hides a "clear" icon
 
- Parameters for a "checkbox" type
- text- (optional) text label (only for checkbox type)
- Parameters for a "date" type
- time- (optional) - enables/disables a timepicker (besides a datepicker)
- format- (optional) - defines a date format for an editor field. For more information, refer to the Configuring date format for editor fields
Explore the Format topic for more information about available date formats!
- Parameters for a "files" type
- uploadURL- (optional) an URL of the editor uploader
- config- (optional) a configuration object of the "files" field. Here you can specify the following parameters:- accept- (optional) a file type to be uploaded ("image/*", "video/*", "audio/*" and other)
- disabled- (optional) enables/disables uploading files
- multiple- (optional) enables/disables uploading multiple files
- folder- (optional) enables/disables uploading folders
 
Unless you specify the editor settings via the editorShape property, the widget will apply the defaultEditorShape set of parameters!
Default config
You can export the default config using the eventCalendar.defaultEditorShape expression.
const defaultEditorShape = [
    {
        key: "text",
        type: "text",
        label: "Event name",
        config: {
            placeholder: "New Event"
        }
    },
    {
        type: "date",
        key: "start_date",
        label: "Start date",
        time: true
    },
    {
        type: "date",
        key: "end_date",
        label: "End date",
        time: true
    },
    {
        type: "checkbox",
        key: "allDay",
        text: "All day"
    },
    {
        type: "combo",
        key: "type",
        label: "Type"
    },
    {
        key: "details",
        type: "textarea",
        label: "Description",
        config: {
            placeholder: "Add description"
        }
    },
    {
        type: "recurring",
        label: "Repeat event"
    }
];
To set the editorShape config dynamically, you can use the
setConfig() method
Example
// event priorities
const priorities = [
    { value: 1, label: "High" },
    { value: 2, label: "Medium" },
    { value: 3, label: "Low" }
];
// editor settings
const editorShape = [ 
    ...eventCalendar.defaultEditorShape, // include the default settings
    { // add custom radio field
        type: "radio",
        key: "priority",
        label: "Priority",
        options: priorities
    }
];
// create Event Calendar
new eventCalendar.EventCalendar("#root", {
    editorShape
    // other configuration parameters
});
Related articles: Configuration
Related sample: Event Calendar. Event color and Event Calendar. Custom editor fields
Change log: The recurring type of editor was added in v2.0