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 theevents
property. 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 modefocus
- (optional) enables/disables a focusdisabled
- (optional) enables/disables a field stateplaceholder
- (optional) a placeholder valuetype
- (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 optionsoptions
- (optional) an array of objects containing the dropdown options data. Here you can specify the following parameters:id
- (required) an option IDlabel
- (required) an option label
config
- (optional) a configuration object of the "combo" field. Here you can specify the following parameters:placeholder
- (optional) a placeholder valuedisabled
- (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 valuelabel
- (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 colorborder
- (optional) a HEX code of the event border colortextColor
- (optional) a HEX code of the event text colorcolorpicker
- (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 valueclear
- (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 uploaderconfig
- (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 filesmultiple
- (optional) enables/disables uploading multiple filesfolder
- (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