Kanban — Smart UI JavaScript API
On this page + Quick start
Quick start · JavaScript
Complete starter source per framework. Run the scaffold/install command first, then replace the listed files with the full code below.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Kanban - JavaScript Quick Start</title>
<link rel="stylesheet" href="./node_modules/smart-webcomponents/source/styles/smart.default.css" />
</head>
<body>
<smart-kanban id="demo-kanban"></smart-kanban>
<script type="module">
import './node_modules/smart-webcomponents/source/modules/smart.kanban.js';
const el = document.getElementById('demo-kanban');
if (el) {
el.collapsible = true;
el.columns = [
{ label: 'To do', dataField: 'toDo' },
{ label: 'In progress', dataField: 'inProgress' },
{ label: 'Done', dataField: 'done' }
];
el.swimlanes = [{ label: 'Frontend', dataField: 'frontend' }, { label: 'Backend', dataField: 'backend' }];
el.dataSource = [
{ id: 1, status: 'toDo', swimlane: 'frontend', text: 'Draft API docs', tags: 'docs', priority: 'normal', progress: 10 },
{ id: 2, status: 'inProgress', swimlane: 'backend', text: 'Review Grid samples', tags: 'grid', priority: 'high', progress: 55 },
{ id: 3, status: 'done', swimlane: 'frontend', text: 'Ship tooltip polish', tags: 'ui', priority: 'low', progress: 100 }
];
el.taskProgress = true;
el.addEventListener('change', (event) => console.log('change:', event.detail || event));
}
</script>
</body>
</html>
For AI tooling
Developer Quick Reference
Component: Kanban Framework: JavaScript Selector: smart-kanban
API counts: 75 properties, 37 methods, 29 events
Common properties: 0, 1, 2, 3, 4, 5
Common methods: addFilter(), addSort(), addTask(), addColumn(), beginEdit(), cancelEdit()
Common events: change, close, closing, columnAdd, columnRemove, columnReorder
Module hint: smart-webcomponents/source/modules/smart.kanban.js
Kanban represents a kanban board that visually depicts work at various stages of a process using cards to represent tasks and columns to represent each stage of the process.
Class
Kanban
Kanban represents a kanban board that visually depicts work at various stages of a process using cards to represent tasks and columns to represent each stage of the process.
Selector
smart-kanban
Quick picks
Properties
color property defined, that color will not only visually highlight the column header but will also be applied to all tasks within that column, as well as to the background or accent color of the edit dialog for tasks in that column. This creates a consistent and visually cohesive color scheme throughout each column and its related UI elements.- addNewButton:boolean - Sets or gets whether the column's button for adding tasks is visible. Works in conjunction with the Kanban property of the same name.
- allowRemove:boolean - Sets or gets whether the column can be removed from the column menu.
- collapsed:boolean - Sets or gets whether the column is collapsed.
- collapsible:boolean - Sets or gets whether the column is collapsible. Works in conjunction with the Kanban property of the same name.
- columns:{ addNewButton?: boolean, collapsed?: string, collapsible?: string, columns?: [], dataField?: string, label?: string, orientation?: string, selected?: string }[] - Sets or gets the column's sub-columns. Sub-columns has the same properties as top-level columns.
- dataField:string - Sets or gets the column's data source bound field. Corresponds to the status field in the data source.
- label:string - Sets or gets the text displayed in the column's header.
- editable:boolean - Sets or gets whether a column is editable.
- visible:boolean - Sets or gets whether a column is visible.
- reorder:boolean - Sets or gets whether a column can be reordered.
- orientation:string - Sets or gets whether the tasks in the column flow vertically or horizontally.
- selected:boolean - Sets or gets whether the column is selected. Only applicable to sub-columns when hierarchy is 'tabs'.
- headerTemplate:any - Determines whether a column header has a template. You can pass 'string', 'function' or HTMLTemplateElement as a value.
- width:number | null - Sets the Kanban column width. When this property is set, the kanban column width is set and a horizontal scrollbar may appear.
- id:string | number - The task's unique ID.
- checklist:{ completed?: boolean, text?: string }[] - A list of sub-tasks.
- color:string - A color used to highlight the task's card visually.
- comments:{ text?: string, time?: Date, userId: string | number }[] - Comments about a task.
- dueDate:Date - The task's due date.
- priority:string - The task's priority.
- progress:number - The task's progress in percentages - a number from 0 to 100.
- startDate:Date - The task's start date.
- status:string - The task's status. Has to correspond to the dataField of a column or sub-column from the columns property/array.
- swimlane:string - The swimlane of the task. Has to correspond to the dataField of a swimlane from the swimlanes property/array, if it is defined.
- tags:string - A comma-separated list of tags.
- text:string - The text of the task.
- userId:string | number - The ID of the user assigned to the task. Has to correspond to the id of an item from the users property/array.
- color:string - The swimlane's color.
- dataField:string - Sets or gets the swimlane's data source bound field. Corresponds to the swimlane field in the data source.
- label:string - Sets or gets the text displayed in the swimlane.
- allowAdd:boolean - Sets whether the user has a privilege to add or copy tasks.
- allowComment:boolean - Sets whether the user has a privilege to add comments to tasks.
- allowDrag:boolean - Sets whether the user has a privilege to drag tasks. Works along with the property allowDrag.
- allowEdit:boolean - Sets whether the user has a privilege to edit tasks. Works along with the property editable.
- allowRemove:boolean - Sets whether the user has a privilege to remove tasks.
- id:string | number - The user's unique ID. Corresponds to the userId field in the data source and the property currentUser.
- image:string - A url to an image representing the user.
- name:string - The user's name as it will appear in the Users list and "Assigned to" editor.
Events
Methods
Properties
addNewButtonControls whether the "Add Task" button is displayed at the top of each column. To hide the button for an individual column, set the addNewButton property to false within that column’s configuration object. If addNewButton is false, users will not see the "Add Task" button for that specific column.boolean
Controls whether the "Add Task" button is displayed at the top of each column. To hide the button for an individual column, set the addNewButton property to false within that column’s configuration object. If addNewButton is false, users will not see the "Add Task" button for that specific column.
Default value
falseExamples
Markup and runtime examples for addNewButton:
HTML attribute:
<smart-kanban add-new-button></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.addNewButton = false;Read the current value:
const el = document.querySelector('smart-kanban');
const addNewButton = el.addNewButton;
addNewButtonDisplayModeSpecifies whether the add button appears in the column header, after the list of tasks within the column, or both. This controls the visibility and placement of the add button for creating new tasks in each column."top" | "bottom" | "both"
Specifies whether the add button appears in the column header, after the list of tasks within the column, or both. This controls the visibility and placement of the add button for creating new tasks in each column.
Default value
"both"Examples
Markup and runtime examples for addNewButtonDisplayMode:
HTML:
<smart-kanban add-new-button-display-mode="both"></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.addNewButtonDisplayMode = "top";Read the current value:
const el = document.querySelector('smart-kanban');
const addNewButtonDisplayMode = el.addNewButtonDisplayMode;
addNewColumnSpecifies whether a special column containing a button for adding new status columns to the Kanban board is shown. When enabled, this feature allows users to quickly create additional status columns directly within the Kanban interface. You can use this setting to display or hide the "Add Column" button column as needed.boolean
Specifies whether a special column containing a button for adding new status columns to the Kanban board is shown. When enabled, this feature allows users to quickly create additional status columns directly within the Kanban interface. You can use this setting to display or hide the "Add Column" button column as needed.
Default value
falseExamples
Markup and runtime examples for addNewColumn:
HTML attribute:
<smart-kanban add-new-column></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.addNewColumn = false;Read the current value:
const el = document.querySelector('smart-kanban');
const addNewColumn = el.addNewColumn;
addNewColumnWidthSpecifies the width of the dynamically added "Add New" column. This property is effective only when the 'columnWidth' property is also set. It allows you to control the exact width (in pixels or other valid CSS units) of the new column that appears when adding columns dynamically to the table or grid.number | null
Specifies the width of the dynamically added "Add New" column. This property is effective only when the 'columnWidth' property is also set. It allows you to control the exact width (in pixels or other valid CSS units) of the new column that appears when adding columns dynamically to the table or grid.
Examples
Markup and runtime examples for addNewColumnWidth:
HTML:
<smart-kanban add-new-column-width="null"></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.addNewColumnWidth = 300;Read the current value:
const el = document.querySelector('smart-kanban');
const addNewColumnWidth = el.addNewColumnWidth;
allowColumnEditControls whether column editing is permitted. When this property is set to true, users can dynamically edit the column's header label by double-clicking on it. This allows for in-place renaming of the column header directly within the user interface. If set to false, the column header label will remain static and cannot be modified by users.boolean
Controls whether column editing is permitted. When this property is set to true, users can dynamically edit the column's header label by double-clicking on it. This allows for in-place renaming of the column header directly within the user interface. If set to false, the column header label will remain static and cannot be modified by users.
Default value
falseExamples
Markup and runtime examples for allowColumnEdit:
HTML attribute:
<smart-kanban allow-column-edit></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.allowColumnEdit = false;Read the current value:
const el = document.querySelector('smart-kanban');
const allowColumnEdit = el.allowColumnEdit;
allowColumnHideControls whether users can hide columns in the data table. When set to true, this property allows users to dynamically hide individual columns using the column actions menu. Note: To enable this feature, the 'columnActions' property must also be set to true.boolean
Controls whether users can hide columns in the data table. When set to true, this property allows users to dynamically hide individual columns using the column actions menu. Note: To enable this feature, the 'columnActions' property must also be set to true.
Default value
falseExamples
Markup and runtime examples for allowColumnHide:
HTML attribute:
<smart-kanban allow-column-hide></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.allowColumnHide = false;Read the current value:
const el = document.querySelector('smart-kanban');
const allowColumnHide = el.allowColumnHide;
allowColumnRemoveControls whether users can remove columns from the table. When set to true, a "Remove Column" option will appear in the column actions menu, allowing users to dynamically delete columns. Note: The 'columnActions' property must also be enabled (set to true) for this feature to be available.boolean
Controls whether users can remove columns from the table. When set to true, a "Remove Column" option will appear in the column actions menu, allowing users to dynamically delete columns. Note: The 'columnActions' property must also be enabled (set to true) for this feature to be available.
Default value
falseExamples
Markup and runtime examples for allowColumnRemove:
HTML attribute:
<smart-kanban allow-column-remove></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.allowColumnRemove = false;Read the current value:
const el = document.querySelector('smart-kanban');
const allowColumnRemove = el.allowColumnRemove;
allowColumnReorderControls whether users can reorder columns in a table or grid. When set to true and used in combination with allowDrag enabled, this property lets users rearrange columns by dragging and dropping their headers. For example, a user can click and hold the header of the first column, then drag it to a new position over another column header and drop it, changing the column order visually and functionally. This enhances the user experience by allowing customizable column layouts.boolean
Controls whether users can reorder columns in a table or grid. When set to true and used in combination with allowDrag enabled, this property lets users rearrange columns by dragging and dropping their headers. For example, a user can click and hold the header of the first column, then drag it to a new position over another column header and drop it, changing the column order visually and functionally. This enhances the user experience by allowing customizable column layouts.
Default value
falseExamples
Markup and runtime examples for allowColumnReorder:
HTML attribute:
<smart-kanban allow-column-reorder></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.allowColumnReorder = false;Read the current value:
const el = document.querySelector('smart-kanban');
const allowColumnReorder = el.allowColumnReorder;
allowDragEnables users to click and drag tasks within the interface, allowing them to easily reorder, move, or reorganize tasks by dragging and dropping them to the desired position.boolean
Enables users to click and drag tasks within the interface, allowing them to easily reorder, move, or reorganize tasks by dragging and dropping them to the desired position.
Default value
trueExamples
Markup and runtime examples for allowDrag:
HTML attribute:
<smart-kanban allow-drag></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.allowDrag = false;Read the current value:
const el = document.querySelector('smart-kanban');
const allowDrag = el.allowDrag;
allowDropEnables users to remove or discard tasks from the list or workflow, either by dragging and dropping or through a designated action, facilitating task management and organization.boolean
Enables users to remove or discard tasks from the list or workflow, either by dragging and dropping or through a designated action, facilitating task management and organization.
Default value
trueExamples
Markup and runtime examples for allowDrop:
HTML attribute:
<smart-kanban allow-drop></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.allowDrop = false;Read the current value:
const el = document.querySelector('smart-kanban');
const allowDrop = el.allowDrop;
allowDropPlaceholderEnables a visual placeholder to appear when dragging and dropping tasks. As you drag a task over another task, an empty space is dynamically created at the drop location, clearly indicating where the dragged task will be inserted. This improves usability by providing real-time visual feedback during task reordering.boolean
Enables a visual placeholder to appear when dragging and dropping tasks. As you drag a task over another task, an empty space is dynamically created at the drop location, clearly indicating where the dragged task will be inserted. This improves usability by providing real-time visual feedback during task reordering.
Default value
falseExamples
Markup and runtime examples for allowDropPlaceholder:
HTML attribute:
<smart-kanban allow-drop-placeholder></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.allowDropPlaceholder = false;Read the current value:
const el = document.querySelector('smart-kanban');
const allowDropPlaceholder = el.allowDropPlaceholder;
applyColumnColorToTasksThis property controls the color styling of Kanban columns and their associated tasks. When set to true, and if a Kanban column has its color property defined, that color will not only visually highlight the column header but will also be applied to all tasks within that column, as well as to the background or accent color of the edit dialog for tasks in that column. This creates a consistent and visually cohesive color scheme throughout each column and its related UI elements.boolean
This property controls the color styling of Kanban columns and their associated tasks. When set to true, and if a Kanban column has its color property defined, that color will not only visually highlight the column header but will also be applied to all tasks within that column, as well as to the background or accent color of the edit dialog for tasks in that column. This creates a consistent and visually cohesive color scheme throughout each column and its related UI elements.
Default value
falseExamples
Markup and runtime examples for applyColumnColorToTasks:
HTML attribute:
<smart-kanban apply-column-color-to-tasks></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.applyColumnColorToTasks = false;Read the current value:
const el = document.querySelector('smart-kanban');
const applyColumnColorToTasks = el.applyColumnColorToTasks;
autoColumnHeightDynamically adjusts the height of each column based on the total height of its tasks, ensuring all content is fully visible. This property is effective only when 'columnColorEntireSurface' is set to true, allowing the background color to extend appropriately over the column’s entire surface.boolean
Dynamically adjusts the height of each column based on the total height of its tasks, ensuring all content is fully visible. This property is effective only when 'columnColorEntireSurface' is set to true, allowing the background color to extend appropriately over the column’s entire surface.
Default value
falseExamples
Markup and runtime examples for autoColumnHeight:
HTML attribute:
<smart-kanban auto-column-height></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.autoColumnHeight = false;Read the current value:
const el = document.querySelector('smart-kanban');
const autoColumnHeight = el.autoColumnHeight;
autoLoadStateControls whether the application automatically loads its state from the browser’s localStorage. This includes restoring information such as:- The list of tasks and their positions- The selected task and its state- Applied filters and sorting options- The state of collapsed columns- The values of the following task-related properties: - taskActions - taskComments - taskDue - taskPriority - taskProgress - taskTags - taskUserIconWhen enabled, all of these details will be reloaded from localStorage on page refresh or reopening the application, ensuring a consistent user experience. When disabled, this information will not be loaded automatically, and the state will not be restored.boolean
Controls whether the application automatically loads its state from the browser’s localStorage. This includes restoring information such as:
- The list of tasks and their positions
- The selected task and its state
- Applied filters and sorting options
- The state of collapsed columns
- The values of the following task-related properties:
- taskActions
- taskComments
- taskDue
- taskPriority
- taskProgress
- taskTags
- taskUserIcon
When enabled, all of these details will be reloaded from localStorage on page refresh or reopening the application, ensuring a consistent user experience. When disabled, this information will not be loaded automatically, and the state will not be restored.
Default value
trueExamples
Markup and runtime examples for autoLoadState:
HTML attribute:
<smart-kanban auto-load-state></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.autoLoadState = false;Read the current value:
const el = document.querySelector('smart-kanban');
const autoLoadState = el.autoLoadState;
autoSaveStateControls whether the application's current state is automatically saved to the browser's localStorage. When enabled, the following information is persistently stored and restored across sessions: - Task data, including their current positions, selected status, and any applied filters or sorting.- The collapsed or expanded state of columns.- Values for the following properties: - taskActions (user actions related to tasks) - taskComments (comments attached to tasks) - taskDue (task due dates) - taskPriority (priority level of tasks) - taskProgress (progress tracking for tasks) - taskTags (tags associated with each task) - taskUserIcon (user avatars/icons linked to tasks)This ensures that user preferences and the state of the task interface are preserved, providing a seamless user experience even after closing or refreshing the browser. Disabling this feature will prevent any state information from being stored in localStorage, and all settings will be reset upon page reload.boolean
Controls whether the application's current state is automatically saved to the browser's localStorage. When enabled, the following information is persistently stored and restored across sessions:
- Task data, including their current positions, selected status, and any applied filters or sorting.
- The collapsed or expanded state of columns.
- Values for the following properties:
- taskActions (user actions related to tasks)
- taskComments (comments attached to tasks)
- taskDue (task due dates)
- taskPriority (priority level of tasks)
- taskProgress (progress tracking for tasks)
- taskTags (tags associated with each task)
- taskUserIcon (user avatars/icons linked to tasks)
This ensures that user preferences and the state of the task interface are preserved, providing a seamless user experience even after closing or refreshing the browser. Disabling this feature will prevent any state information from being stored in localStorage, and all settings will be reset upon page reload.
Default value
falseExamples
Markup and runtime examples for autoSaveState:
HTML attribute:
<smart-kanban auto-save-state></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.autoSaveState = false;Read the current value:
const el = document.querySelector('smart-kanban');
const autoSaveState = el.autoSaveState;
collapsibleEnables the card content to be expanded or collapsed, providing users with the ability to show or hide additional information within the card. This enhances the user interface by reducing visual clutter and allowing for more compact content presentation.boolean
Enables the card content to be expanded or collapsed, providing users with the ability to show or hide additional information within the card. This enhances the user interface by reducing visual clutter and allowing for more compact content presentation.
Default value
falsecolumnActionsControls whether the column actions icon is displayed, allowing users to access additional options or actions for each table column. When enabled, the icon becomes visible; when disabled, the icon is hidden from view.boolean
Controls whether the column actions icon is displayed, allowing users to access additional options or actions for each table column. When enabled, the icon becomes visible; when disabled, the icon is hidden from view.
Default value
falseExamples
Markup and runtime examples for columnActions:
HTML attribute:
<smart-kanban column-actions></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.columnActions = false;Read the current value:
const el = document.querySelector('smart-kanban');
const columnActions = el.columnActions;
columnColorEntireSurfaceRenders a customizable background within the Kanban column, allowing for enhanced visual separation and improved column identification. Supports various background options such as color, image, or pattern to match your application's design requirements.boolean
Renders a customizable background within the Kanban column, allowing for enhanced visual separation and improved column identification. Supports various background options such as color, image, or pattern to match your application's design requirements.
Default value
falseExamples
Markup and runtime examples for columnColorEntireSurface:
HTML attribute:
<smart-kanban column-color-entire-surface></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.columnColorEntireSurface = false;Read the current value:
const el = document.querySelector('smart-kanban');
const columnColorEntireSurface = el.columnColorEntireSurface;
columnColorsDisplays a color indicator in the column header whenever the column's color property is defined. The header visually reflects the assigned color, making it easier to identify and distinguish columns based on their color settings.boolean
Displays a color indicator in the column header whenever the column's color property is defined. The header visually reflects the assigned color, making it easier to identify and distinguish columns based on their color settings.
Default value
falseExamples
Markup and runtime examples for columnColors:
HTML attribute:
<smart-kanban column-colors></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.columnColors = false;Read the current value:
const el = document.querySelector('smart-kanban');
const columnColors = el.columnColors;
columnEditModeSpecifies how column editing is initiated within the interface. - When set to ''header'', editing mode is activated by double-clicking directly on the column's header label. - When set to ''menu'', editing can only be started through the column's context or 'columnActions' menu. - When set to ''headerAndMenu'', both methods are available—users can begin editing either by double-clicking the header or by selecting the relevant option from the column menu."header" | "menu" | "headerAndMenu"
Specifies how column editing is initiated within the interface.
- When set to ''header'', editing mode is activated by double-clicking directly on the column's header label.
- When set to ''menu'', editing can only be started through the column's context or 'columnActions' menu.
- When set to ''headerAndMenu'', both methods are available—users can begin editing either by double-clicking the header or by selecting the relevant option from the column menu.
Default value
"headerAndMenu"Examples
Markup and runtime examples for columnEditMode:
HTML:
<smart-kanban column-edit-mode="true"></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.columnEditMode = false;Read the current value:
const el = document.querySelector('smart-kanban');
const columnEditMode = el.columnEditMode;
columnFooterRenders a column footer that displays a summary value, such as totals or averages, for the data in that column. This footer helps users quickly interpret aggregate information at the bottom of the column.boolean
Renders a column footer that displays a summary value, such as totals or averages, for the data in that column. This footer helps users quickly interpret aggregate information at the bottom of the column.
Default value
falseExamples
Markup and runtime examples for columnFooter:
HTML attribute:
<smart-kanban column-footer></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.columnFooter = false;Read the current value:
const el = document.querySelector('smart-kanban');
const columnFooter = el.columnFooter;
columnHeaderTemplateSpecifies whether a custom template is applied to the column header. Accepts a value of type string (containing template markup), function (returning a template or markup), or an HTMLTemplateElement. Use this property to customize the appearance and content of the column header beyond the default rendering.any
Specifies whether a custom template is applied to the column header. Accepts a value of type string (containing template markup), function (returning a template or markup), or an HTMLTemplateElement. Use this property to customize the appearance and content of the column header beyond the default rendering.
Examples
Markup and runtime examples for columnHeaderTemplate:
HTML:
<smart-kanban column-header-template="#headerTemplate"></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.columnHeaderTemplate = "#headerCustomTemplate";Read the current value:
const el = document.querySelector('smart-kanban');
const columnHeaderTemplate = el.columnHeaderTemplate;
columnsProvides detailed definitions and configuration options for each column’s properties, including attributes such as data type, default value, visibility, header label, and formatting options.
Click for more details. Property object's options:
{ addNewButton?: boolean, collapsed?: boolean, collapsible?: boolean, columns?: [], dataField?: string, label?: string, orientation?: string, selected?: boolean }[]
Provides detailed definitions and configuration options for each column’s properties, including attributes such as data type, default value, visibility, header label, and formatting options.
Properties
addNewButtonSets or gets whether the column's button for adding tasks is visible. Works in conjunction with the Kanban property of the same name.boolean
Sets or gets whether the column's button for adding tasks is visible. Works in conjunction with the Kanban property of the same name.
Default value
trueRead the nested value:
const el = document.querySelector('smart-kanban');
const addNewButton = el.columns[0].addNewButton;
allowRemoveSets or gets whether the column can be removed from the column menu.boolean
Sets or gets whether the column can be removed from the column menu.
Default value
trueRead the nested value:
const el = document.querySelector('smart-kanban');
const allowRemove = el.columns[0].allowRemove;
collapsedSets or gets whether the column is collapsed.boolean
Sets or gets whether the column is collapsed.
Default value
falseRead the nested value:
const el = document.querySelector('smart-kanban');
const collapsed = el.columns[0].collapsed;
collapsibleSets or gets whether the column is collapsible. Works in conjunction with the Kanban property of the same name.boolean
Sets or gets whether the column is collapsible. Works in conjunction with the Kanban property of the same name.
Default value
trueRead the nested value:
const el = document.querySelector('smart-kanban');
const collapsible = el.columns[0].collapsible;
columnsSets or gets the column's sub-columns. Sub-columns has the same properties as top-level columns.{ addNewButton?: boolean, collapsed?: string, collapsible?: string, columns?: [], dataField?: string, label?: string, orientation?: string, selected?: string }[]
Sets or gets the column's sub-columns. Sub-columns has the same properties as top-level columns.
Read the nested value:
const el = document.querySelector('smart-kanban');
const columns = el.columns[0].columns;
dataFieldSets or gets the column's data source bound field. Corresponds to the status field in the data source.string
Sets or gets the column's data source bound field. Corresponds to the status field in the data source.
Default value
""Read the nested value:
const el = document.querySelector('smart-kanban');
const dataField = el.columns[0].dataField;
editableSets or gets whether a column is editable.boolean
Sets or gets whether a column is editable.
Default value
trueRead the nested value:
const el = document.querySelector('smart-kanban');
const editable = el.columns[0].editable;
headerTemplateDetermines whether a column header has a template. You can pass 'string', 'function' or HTMLTemplateElement as a value.any
Determines whether a column header has a template. You can pass 'string', 'function' or HTMLTemplateElement as a value.
Read the nested value:
const el = document.querySelector('smart-kanban');
const headerTemplate = el.columns[0].headerTemplate;
labelSets or gets the text displayed in the column's header.string
Sets or gets the text displayed in the column's header.
Default value
""Read the nested value:
const el = document.querySelector('smart-kanban');
const label = el.columns[0].label;
orientationSets or gets whether the tasks in the column flow vertically or horizontally."vertical" | "horizontal"
Sets or gets whether the tasks in the column flow vertically or horizontally.
Default value
"vertical"Read the nested value:
const el = document.querySelector('smart-kanban');
const orientation = el.columns[0].orientation;
reorderSets or gets whether a column can be reordered.boolean
Sets or gets whether a column can be reordered.
Default value
trueRead the nested value:
const el = document.querySelector('smart-kanban');
const reorder = el.columns[0].reorder;
selectedSets or gets whether the column is selected. Only applicable to sub-columns when hierarchy is 'tabs'.boolean
Sets or gets whether the column is selected. Only applicable to sub-columns when hierarchy is 'tabs'.
Default value
falseRead the nested value:
const el = document.querySelector('smart-kanban');
const selected = el.columns[0].selected;
visibleSets or gets whether a column is visible.boolean
Sets or gets whether a column is visible.
Default value
trueRead the nested value:
const el = document.querySelector('smart-kanban');
const visible = el.columns[0].visible;
widthSets the Kanban column width. When this property is set, the kanban column width is set and a horizontal scrollbar may appear.number | null
Sets the Kanban column width. When this property is set, the kanban column width is set and a horizontal scrollbar may appear.
Examples
Set a nested field on the element:
const el = document.querySelector('smart-kanban');
el.columns[0].width = 300;Read the nested value:
const el = document.querySelector('smart-kanban');
const width = el.columns[0].width;
columnSummarySpecifies whether the number of tasks is shown in the headers of each column, allowing users to see the count of tasks directly within the column titles.boolean
Specifies whether the number of tasks is shown in the headers of each column, allowing users to see the count of tasks directly within the column titles.
Default value
falseExamples
Markup and runtime examples for columnSummary:
HTML attribute:
<smart-kanban column-summary></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.columnSummary = false;Read the current value:
const el = document.querySelector('smart-kanban');
const columnSummary = el.columnSummary;
columnWidthDefines the width for each Kanban column. When this property is specified, all Kanban columns are rendered at the given width. If the total width of all columns exceeds the available space, a horizontal scrollbar will appear, allowing users to scroll and view all columns.number | null
Defines the width for each Kanban column. When this property is specified, all Kanban columns are rendered at the given width. If the total width of all columns exceeds the available space, a horizontal scrollbar will appear, allowing users to scroll and view all columns.
Examples
Markup and runtime examples for columnWidth:
HTML:
<smart-kanban column-width="null"></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.columnWidth = 300;Read the current value:
const el = document.querySelector('smart-kanban');
const columnWidth = el.columnWidth;
confirmDialogControls whether a confirm dialog is displayed when a task is dragged and dropped to a new positionboolean
Controls whether a confirm dialog is displayed when a task is dragged and dropped to a new position
Default value
falseExamples
Markup and runtime examples for confirmDialog:
HTML attribute:
<smart-kanban confirm-dialog></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.confirmDialog = false;Read the current value:
const el = document.querySelector('smart-kanban');
const confirmDialog = el.confirmDialog;
currentUserSets or retrieves the ID of the currently active user. This value must match the 'id' of a user object within the 'users' property or array. The privileges and access rights available are determined based on the current user's identity. If no current user is specified, the element's permissions default to those defined by its own properties, rather than user-specific settings.string | number
Sets or retrieves the ID of the currently active user. This value must match the 'id' of a user object within the 'users' property or array. The privileges and access rights available are determined based on the current user's identity. If no current user is specified, the element's permissions default to those defined by its own properties, rather than user-specific settings.
Default value
""Examples
Markup and runtime examples for currentUser:
HTML:
<smart-kanban current-user="1"></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.currentUser = 2;Read the current value:
const el = document.querySelector('smart-kanban');
const currentUser = el.currentUser;
dataSourceSpecifies the origin or source of the data to be displayed and managed on the Kanban board, such as an API endpoint, database, or local data array. This setting dictates which dataset will populate the Kanban columns and cards.
Click for more details. Property object's options:
{ id: string | number, checklist?: { completed?: boolean, text?: string }[], color?: string, comments?: { text?: string, time?: Date, userId: string | number }[], dueDate?: Date, priority?: string, progress?: number, startDate?: Date, status?: string, swimlane?: string, tags?: string, text?: string, userId?: string | number }[]
Specifies the origin or source of the data to be displayed and managed on the Kanban board, such as an API endpoint, database, or local data array. This setting dictates which dataset will populate the Kanban columns and cards.
Properties
checklistA list of sub-tasks.{ completed?: boolean, text?: string }[]
A list of sub-tasks.
Read the nested value:
const el = document.querySelector('smart-kanban');
const checklist = el.dataSource.checklist;
colorA color used to highlight the task's card visually.string
A color used to highlight the task's card visually.
Default value
"null"Read the nested value:
const el = document.querySelector('smart-kanban');
const color = el.dataSource.color;
commentsComments about a task.{ text?: string, time?: Date, userId: string | number }[]
Comments about a task.
Read the nested value:
const el = document.querySelector('smart-kanban');
const comments = el.dataSource.comments;
dueDateThe task's due date.Date
The task's due date.
Read the nested value:
const el = document.querySelector('smart-kanban');
const dueDate = el.dataSource.dueDate;
idThe task's unique ID.string | number
The task's unique ID.
Default value
""Read the nested value:
const el = document.querySelector('smart-kanban');
const id = el.dataSource.id;
priorityThe task's priority.string
The task's priority.
Default value
"normal"Read the nested value:
const el = document.querySelector('smart-kanban');
const priority = el.dataSource.priority;
progressThe task's progress in percentages - a number from 0 to 100.number
The task's progress in percentages - a number from 0 to 100.
Read the nested value:
const el = document.querySelector('smart-kanban');
const progress = el.dataSource.progress;
startDateThe task's start date.Date
The task's start date.
Read the nested value:
const el = document.querySelector('smart-kanban');
const startDate = el.dataSource.startDate;
statusThe task's status. Has to correspond to the dataField of a column or sub-column from the columns property/array.string
The task's status. Has to correspond to the dataField of a column or sub-column from the columns property/array.
Default value
""Read the nested value:
const el = document.querySelector('smart-kanban');
const status = el.dataSource.status;
swimlaneThe swimlane of the task. Has to correspond to the dataField of a swimlane from the swimlanes property/array, if it is defined.string
The swimlane of the task. Has to correspond to the dataField of a swimlane from the swimlanes property/array, if it is defined.
Default value
"null"Read the nested value:
const el = document.querySelector('smart-kanban');
const swimlane = el.dataSource.swimlane;
tagsA comma-separated list of tags.string
A comma-separated list of tags.
Default value
""Read the nested value:
const el = document.querySelector('smart-kanban');
const tags = el.dataSource.tags;
textThe text of the task.string
The text of the task.
Default value
""Read the nested value:
const el = document.querySelector('smart-kanban');
const text = el.dataSource.text;
userIdThe ID of the user assigned to the task. Has to correspond to the id of an item from the users property/array.string | number
The ID of the user assigned to the task. Has to correspond to the id of an item from the users property/array.
Read the nested value:
const el = document.querySelector('smart-kanban');
const userId = el.dataSource.userId;
dataSourceMapSpecifies how the Kanban board's default fields (e.g., title, status, assignee) correspond to the fields in your data source. Use this mapping only if your data source uses field names that differ from the Kanban's expected keywords. If the field names already match, this mapping is optional. Note that only certain default fields support custom mapping; not all default map can be overridden.{ checklist?: string; color?: string; comments?: string; dueDate?: string; id?: string; priority?: string; progress?: string; startDate?: string; status?: string; swimlane?: string; tags?: string; text?: string; userId?: string; createdUserId?: string; updatedUserId?: string; createdDate?: Date; updatedDate?: Date;}
Specifies how the Kanban board's default fields (e.g., title, status, assignee) correspond to the fields in your data source. Use this mapping only if your data source uses field names that differ from the Kanban's expected keywords. If the field names already match, this mapping is optional. Note that only certain default fields support custom mapping; not all default map can be overridden.
Default value
{ checklist: 'checklist', color: 'color', comments: 'comments', dueDate: 'dueDate', id: 'id', priority: 'priority', progress: 'progress', startDate: 'startDate', status: 'status', swimlane: 'swimlane', tags: 'tags', text: 'text', userId: 'userId'. createdUserId: 'createdUserId', createdDate: 'createdDate', updatedUserId: 'updatedUserId', updatedDate: 'updatedDate' }dialogCustomizationFunctionSets or retrieves a customization function for the Kanban dialog component. This function allows you to modify the appearance and behavior of the dialog, or to replace it entirely with a custom implementation. When invoked, the Kanban component calls this function with five arguments:- 'dialog': The default dialog instance, typically a 'smart-window' object, which serves as the default modal dialog for tasks and comments.- 'taskOrComment': The data object representing either a Kanban task or a comment, depending on the context of the action.- 'editors': An object containing the input elements or editors used within the dialog for data entry or modification.- 'purpose': A string indicating the dialog’s intent, such as ''add'' for creating a new item or ''edit'' for modifying an existing one.- 'type': A string specifying the entity being processed, such as ''task'' for task-related dialogs or ''column'' for column-related dialogs.By providing a custom function, you can tailor the dialog’s UI, integrate additional logic, or substitute a completely different dialog component to meet your application's requirements.any
Sets or retrieves a customization function for the Kanban dialog component. This function allows you to modify the appearance and behavior of the dialog, or to replace it entirely with a custom implementation. When invoked, the Kanban component calls this function with five arguments:
- 'dialog': The default dialog instance, typically a 'smart-window' object, which serves as the default modal dialog for tasks and comments.
- 'taskOrComment': The data object representing either a Kanban task or a comment, depending on the context of the action.
- 'editors': An object containing the input elements or editors used within the dialog for data entry or modification.
- 'purpose': A string indicating the dialog’s intent, such as ''add'' for creating a new item or ''edit'' for modifying an existing one.
- 'type': A string specifying the entity being processed, such as ''task'' for task-related dialogs or ''column'' for column-related dialogs.
By providing a custom function, you can tailor the dialog’s UI, integrate additional logic, or substitute a completely different dialog component to meet your application's requirements.
dialogRenderedSets or retrieves the callback function that is executed when the dialog is rendered. This function is invoked by the Kanban component and receives six arguments: dialog, editors, labels, tabs, layout, and taskOrComment.- 'dialog': The 'smart-window' instance representing the Kanban dialog.- 'taskOrComment': An object representing either the current Kanban task or a comment, depending on the context in which the dialog is opened.- 'editors, labels, tabs, layout': Each is a JSON object where keys specify the element type (e.g., 'description', 'priority', 'notes'), and the values are their corresponding HTML elements within the dialog.This function allows developers to customize the dialog content or behavior dynamically based on the element types and the associated data when the dialog is rendered.any
Sets or retrieves the callback function that is executed when the dialog is rendered. This function is invoked by the Kanban component and receives six arguments: dialog, editors, labels, tabs, layout, and taskOrComment.
- 'dialog': The 'smart-window' instance representing the Kanban dialog.
- 'taskOrComment': An object representing either the current Kanban task or a comment, depending on the context in which the dialog is opened.
- 'editors, labels, tabs, layout': Each is a JSON object where keys specify the element type (e.g., 'description', 'priority', 'notes'), and the values are their corresponding HTML elements within the dialog.
This function allows developers to customize the dialog content or behavior dynamically based on the element types and the associated data when the dialog is rendered.
disableDialogControls whether the default dialog for adding or removing tasks or comments is enabled or disabled. When set to true, the dialog will not appear, allowing for custom handling of these actions. When set to false, the standard dialog will be shown as usual. This property can be used to either retrieve the current setting (get) or define its behavior (set).boolean
Controls whether the default dialog for adding or removing tasks or comments is enabled or disabled. When set to true, the dialog will not appear, allowing for custom handling of these actions. When set to false, the standard dialog will be shown as usual. This property can be used to either retrieve the current setting (get) or define its behavior (set).
Default value
falseExamples
Markup and runtime examples for disableDialog:
HTML attribute:
<smart-kanban disable-dialog></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.disableDialog = false;Read the current value:
const el = document.querySelector('smart-kanban');
const disableDialog = el.disableDialog;
dragOffsetSpecifies the offset, in pixels, between the drag feedback element and the mouse cursor during task dragging operations. The value should be provided as an array: the first element sets the horizontal (x-axis) offset, and the second element sets the vertical (y-axis) offset, both relative to the cursor position. Alternatively, if set to 'auto', the system automatically calculates the offset based on the cursor’s position at the moment the drag action began. This allows for precise control over the visual positioning of the feedback element during drag-and-drop interactions.boolean
Specifies the offset, in pixels, between the drag feedback element and the mouse cursor during task dragging operations. The value should be provided as an array: the first element sets the horizontal (x-axis) offset, and the second element sets the vertical (y-axis) offset, both relative to the cursor position. Alternatively, if set to 'auto', the system automatically calculates the offset based on the cursor’s position at the moment the drag action began. This allows for precise control over the visual positioning of the feedback element during drag-and-drop interactions.
Default value
autoExamples
Markup and runtime examples for dragOffset:
HTML attribute:
<smart-kanban drag-offset></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.dragOffset = auto;Read the current value:
const el = document.querySelector('smart-kanban');
const dragOffset = el.dragOffset;
editableControls whether tasks can be modified, including editing task details and assigning users to tasks. When enabled, users can update task information and manage task assignments; when disabled, tasks and their assigned users are read-only and cannot be changed programmatically or through the user interface.boolean
Controls whether tasks can be modified, including editing task details and assigning users to tasks. When enabled, users can update task information and manage task assignments; when disabled, tasks and their assigned users are read-only and cannot be changed programmatically or through the user interface.
Default value
falseeditModeSpecifies how users can activate the task editing feature. The 'editBehavior' property accepts either '"singleClick"' or '"doubleClick"' as values:- '"singleClick"': Opens the dialog edit window when the user clicks once on a Kanban task.- '"doubleClick"' (default): Opens the dialog edit window when the user double-clicks on a Kanban task.By default, editing is triggered by a double-click. Use this setting to customize the interaction based on your application's needs."doubleClick" | "singleClick"
Specifies how users can activate the task editing feature. The 'editBehavior' property accepts either '"singleClick"' or '"doubleClick"' as values:
- '"singleClick"': Opens the dialog edit window when the user clicks once on a Kanban task.
- '"doubleClick"' (default): Opens the dialog edit window when the user double-clicks on a Kanban task.
By default, editing is triggered by a double-click. Use this setting to customize the interaction based on your application's needs.
Default value
"doubleClick"Examples
Markup and runtime examples for editMode:
HTML:
<smart-kanban edit-mode="doubleClick"></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.editMode = "singleClick";Read the current value:
const el = document.querySelector('smart-kanban');
const editMode = el.editMode;
formatStringDateSets or retrieves the format string used to display the "Due date" label, as well as the date format for both the "Start date" and "Due date" editor fields. This determines how dates are shown and entered in these UI components.string
Sets or retrieves the format string used to display the "Due date" label, as well as the date format for both the "Start date" and "Due date" editor fields. This determines how dates are shown and entered in these UI components.
Default value
"d"Examples
Markup and runtime examples for formatStringDate:
HTML:
<smart-kanban format-string-date="dddd-MMMM-yyyy"></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.formatStringDate = "M/d/yyyy";Read the current value:
const el = document.querySelector('smart-kanban');
const formatStringDate = el.formatStringDate;
formatStringTimeSpecifies or retrieves the format string used to display the timestamp on comments. This determines how the date and time of each comment are presented (e.g., "YYYY-MM-DD HH:mm:ss").string
Specifies or retrieves the format string used to display the timestamp on comments. This determines how the date and time of each comment are presented (e.g., "YYYY-MM-DD HH:mm:ss").
Default value
"MMM d, HH:mm"Examples
Markup and runtime examples for formatStringTime:
HTML:
<smart-kanban format-string-time="HH:mm"></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.formatStringTime = "MMM d, h:mm tt";Read the current value:
const el = document.querySelector('smart-kanban');
const formatStringTime = el.formatStringTime;
headerPositionSets or retrieves the position of the header section within the user interface. The header typically contains interactive controls such as Customize, Filter, Sort, and Search buttons, allowing users to adjust and manipulate the displayed data according to their preferences."none" | "top" | "bottom"
Sets or retrieves the position of the header section within the user interface. The header typically contains interactive controls such as Customize, Filter, Sort, and Search buttons, allowing users to adjust and manipulate the displayed data according to their preferences.
Default value
"none"Examples
Markup and runtime examples for headerPosition:
HTML:
<smart-kanban header-position="top"></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.headerPosition = "bottom";Read the current value:
const el = document.querySelector('smart-kanban');
const headerPosition = el.headerPosition;
hierarchyDefines or retrieves how the column hierarchy is structured and displayed, specifying the method or format used to represent the relationships between columns within the component or dataset."columns" | "tabs"
Defines or retrieves how the column hierarchy is structured and displayed, specifying the method or format used to represent the relationships between columns within the component or dataset.
Allowed Values
- "columns" - Sub-columns are represented as nested columns.
- "tabs" - Sub-columns are represented as nested tabs. In this case, each sub-column has the property selected that denotes if its contents is visible.
Default value
"columns"Examples
Markup and runtime examples for hierarchy:
HTML:
<smart-kanban hierarchy="tabs"></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.hierarchy = "columns";Read the current value:
const el = document.querySelector('smart-kanban');
const hierarchy = el.hierarchy;
localeSets or retrieves the current locale (language and regional settings) used by the component. This property determines the language in which messages are displayed, and works together with the messages property, which provides localized message strings for each supported locale. Adjusting the locale will change the displayed text to correspond with the selected language from the messages definitions.string
Sets or retrieves the current locale (language and regional settings) used by the component. This property determines the language in which messages are displayed, and works together with the messages property, which provides localized message strings for each supported locale. Adjusting the locale will change the displayed text to correspond with the selected language from the messages definitions.
Default value
"en"Examples
Markup and runtime examples for locale:
HTML:
<smart-kanban locale="de"></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.locale = "fr";Read the current value:
const el = document.querySelector('smart-kanban');
const locale = el.locale;
messagesDefines or retrieves an object containing the strings displayed in the widget, allowing for easy localization of text. This property works together with the locale property to support multiple languages and adapt the user interface based on the selected locale. Use this to provide translated labels, messages, and other widget text for internationalization.object
Defines or retrieves an object containing the strings displayed in the widget, allowing for easy localization of text. This property works together with the locale property to support multiple languages and adapt the user interface based on the selected locale. Use this to provide translated labels, messages, and other widget text for internationalization.
Default value
Examples
Markup and runtime examples for messages:
HTML:
<smart-kanban messages="{ 'he': { 'addFilter': 'הוסף פילטר', 'and': 'ו', 'apply': 'להגיש מועמדות', 'booleanFirst': '☐', 'booleanLast': '☑', 'cancel': 'בטל', 'CONTAINS': 'מכיל', 'CONTAINS_CASE_SENSITIVE': 'מכיל (רגיש רישיות)', 'dateFirst': '1', 'dateLast': '9', 'DOES_NOT_CONTAIN': 'לא מכיל', 'DOES_NOT_CONTAIN_CASE_SENSITIVE': 'אינו מכיל (רגיש רישיות)', 'EMPTY': 'ריק', 'ENDS_WITH': 'נגמר עם', 'ENDS_WITH_CASE_SENSITIVE': 'מסתיים ב (רגיש רישיות)', 'EQUAL': 'שווה', 'EQUAL_CASE_SENSITIVE': 'שווה (רגיש אותיות רישיות)', 'filter': 'סנן', 'filteredByMultiple': '{{n}} פילטרים', 'filteredByOne': '1 פילטר', 'filterValuePlaceholder': 'ערך', 'find': 'מצא שדה', 'findInView': 'מצא בתצוגה', 'firstBy': 'מיין לפי', 'found': '{{nth}} מתוך {{n}}', 'from': 'מ', 'GREATER_THAN': 'גדול מ', 'GREATER_THAN_OR_EQUAL': 'גדול או שווה', 'LESS_THAN': 'פחות מ', 'LESS_THAN_OR_EQUAL': 'פחות מ או שווה', 'noFilters': 'לא הוחל מסננים', 'noResults': 'אין תוצאות', 'noSorting': 'לא מיושם מיון', 'NOT_EMPTY': 'לא ריק', 'NOT_EQUAL': 'לא שווה', 'NOT_NULL': 'לא ריק', 'NULL': 'ריק', 'numberFirst': '1', 'numberLast': '9', 'ok': 'בסדר', 'or': 'או', 'pickAnother': 'בחר שדה אחר למיין לפי', 'sort': 'סוג', 'sortedByMultiple': 'ממוין לפי שדות {{n}}', 'sortedByOne': 'מסודר לפי שדה 1', 'STARTS_WITH': 'starts with', 'STARTS_WITH_CASE_SENSITIVE': 'מתחיל עם', 'stringFirst': 'א', 'stringLast': 'ז', 'thenBy': 'ואז על ידי', 'where': 'איפה', 'actionsIcon': 'סמל פעולות', 'addNewStatus': 'סטטוס חדש', 'addNewTask': 'הוסף משימה חדשה', 'addSubtask': 'הוסף משימת משנה', 'assignedTo': 'שהוקצה ל', 'checklist': 'רשימת מטלות', 'color': 'צבע', 'commentsIcon': 'סמל הערות', 'copy': 'עותק', 'customize': 'התאם אישית משימות', 'dueDate': 'תאריך להגשה', 'edit': 'ערוך', 'editTask': 'ערוך את המשימה "{{taskId}}"', 'high': 'גבוה', 'low': 'נמוך', 'newComment': 'תגובה חדשה', 'newSubtask': 'תת-משימה חדשה', 'normal': 'רגיל', 'priority': 'עדיפות', 'priorityIcon': 'סמל עדיפות', 'progress': 'התקדמות', 'promptComment': 'האם אתה בטוח שברצונך להסיר תגובה זו?', 'promptTask': 'האם אתה בטוח שברצונך להסיר את המשימה "{{taskText}}"?', 'remove': 'הסר', 'removeSubtask': 'הסר את תת המשנה', 'send': 'שלח', 'startDate': 'תאריך התחלה', 'status': 'סטטוס', 'swimlane': 'נתיב שחייה', 'tags': 'תגיות', 'text': 'טקסט', 'userId': 'תעודת זהות של המשתמש', 'userIcon': 'סמל משתמש' } }"></smart-kanban>Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.messages = { 'en': { 'addFilter': '+ Add filter', 'and': 'And', 'apply': 'Apply', 'booleanFirst': '☐', 'booleanLast': '☑', 'cancel': 'Cancel', 'CONTAINS': 'contains', 'CONTAINS_CASE_SENSITIVE': 'contains (case sensitive)', 'dateFirst': '1', 'dateLast': '9', 'DOES_NOT_CONTAIN': 'does not contain', 'DOES_NOT_CONTAIN_CASE_SENSITIVE': 'does not contain (case sensitive)', 'EMPTY': 'empty', 'ENDS_WITH': 'ends with', 'ENDS_WITH_CASE_SENSITIVE': 'ends with (case sensitive)', 'EQUAL': 'equal', 'EQUAL_CASE_SENSITIVE': 'equal (case sensitive)', 'filter': 'Filter', 'filteredByMultiple': '{{n}} filters', 'filteredByOne': '1 filter', 'filterValuePlaceholder': 'Value', 'find': 'Find a field', 'findInView': 'Find in view', 'firstBy': 'Sort by', 'found': '{{nth}} of {{n}}', 'from': 'from', 'GREATER_THAN': 'greater than', 'GREATER_THAN_OR_EQUAL': 'greater than or equal', 'LESS_THAN': 'less than', 'LESS_THAN_OR_EQUAL': 'less than or equal', 'noFilters': 'No filters applied', 'noResults': 'No results', 'noSorting': 'No sorting applied', 'NOT_EMPTY': 'not empty', 'NOT_EQUAL': 'not equal', 'NOT_NULL': 'not null', 'NULL': 'null', 'numberFirst': '1', 'numberLast': '9', 'ok': 'OK', 'or': 'Or', 'pickAnother': 'Pick another field to sort by', 'sort': 'Sort', 'sortedByMultiple': 'Sorted by {{n}} fields', 'sortedByOne': 'Sorted by 1 field', 'STARTS_WITH': 'starts with', 'STARTS_WITH_CASE_SENSITIVE': 'starts with (case sensitive)', 'stringFirst': 'A', 'stringLast': 'Z', 'thenBy': 'then by', 'where': 'Where', 'actionsIcon': 'Actions icon', 'addNewStatus': 'New status', 'addNewTask': 'Add new task', 'addSubtask': 'Add subtask', 'assignedTo': 'Assigned to', 'checklist': 'Checklist', 'color': 'Color', 'commentsIcon': 'Comments icon', 'copy': 'Copy', 'customize': 'Customize tasks', 'dueDate': 'Due date', 'edit': 'Edit', 'editTask': 'Edit task "{{taskId}}"', 'high': 'High', 'low': 'Low', 'newComment': 'New comment', 'newSubtask': 'New subtask', 'normal': 'Normal', 'priority': 'Priority', 'priorityIcon': 'Priority icon', 'progress': 'Progress', 'promptComment': 'Are you sure you want to remove this comment?', 'promptTask': 'Are you sure you want to remove the task "{{taskText}}"?', 'remove': 'Remove', 'removeSubtask': 'Remove subtask', 'send': 'Send', 'startDate': 'Start date', 'status': 'Status', 'swimlane': 'Swimlane', 'tags': 'Tags', 'text': 'Text', 'userId': 'User ID', 'userIcon': 'User icon' } };Read the current value:
const el = document.querySelector('smart-kanban');
const messages = el.messages;
onColumnFooterRenderCallback function that allows you to customize how the column footer is rendered in the Kanban component. This function is invoked with three arguments:1. The HTML element representing the column header2. The data object for the current column3. The field name associated with the column dataUse this callback to modify the footer's appearance or content based on the specific column's properties and data.any
Callback function that allows you to customize how the column footer is rendered in the Kanban component. This function is invoked with three arguments:
1. The HTML element representing the column header
2. The data object for the current column
3. The field name associated with the column data
Use this callback to modify the footer's appearance or content based on the specific column's properties and data.
onColumnHeaderRenderCallback function that allows customization of the column header rendering in the Kanban component. This function is invoked with three arguments: the column header's HTML element, the complete column data object, and the column's data field (a string representing the key associated with the column). Use this callback to modify or enhance the appearance and behavior of column headers as needed.any
Callback function that allows customization of the column header rendering in the Kanban component. This function is invoked with three arguments: the column header's HTML element, the complete column data object, and the column's data field (a string representing the key associated with the column). Use this callback to modify or enhance the appearance and behavior of column headers as needed.
onFilterPrepareCallback function that enables customization of the filter items displayed in the dropdown. It receives a single argument: an array containing all the items available for filtering. Within the function, you can modify this array—such as by updating, removing, or reordering items—to control which options appear in the filter dropdown and how they are presented to the user. The modified array will determine the final set of filter options shown in the UI.any
Callback function that enables customization of the filter items displayed in the dropdown. It receives a single argument: an array containing all the items available for filtering. Within the function, you can modify this array—such as by updating, removing, or reordering items—to control which options appear in the filter dropdown and how they are presented to the user. The modified array will determine the final set of filter options shown in the UI.
onSortPrepareA callback function that allows you to customize the items displayed in the sort dropdown menu. This function receives a single argument: an array containing all available sort options. You can modify this array—by removing, reordering, or updating items—to control which sorting options appear in the dropdown and how they are presented. The modified array will then be used to render the sort options to the user.any
A callback function that allows you to customize the items displayed in the sort dropdown menu. This function receives a single argument: an array containing all available sort options. You can modify this array—by removing, reordering, or updating items—to control which sorting options appear in the dropdown and how they are presented. The modified array will then be used to render the sort options to the user.
onTaskRenderCallback function that allows you to customize how tasks are rendered within the Kanban board. This function is invoked by the Kanban component and receives two arguments: 1. The HTML element representing the task (taskHtmlElement).2. The data object associated with the task (taskData).You can use this callback to modify the appearance, add event listeners, or inject additional content into the task's HTML element based on its data.any
Callback function that allows you to customize how tasks are rendered within the Kanban board. This function is invoked by the Kanban component and receives two arguments:
1. The HTML element representing the task (taskHtmlElement).
2. The data object associated with the task (taskData).
You can use this callback to modify the appearance, add event listeners, or inject additional content into the task's HTML element based on its data.
prioritySpecifies the available priority levels that can be assigned to Kanban tasks. This array defines each priority as an object containing a label (for display purposes) and a corresponding value (for internal use). Example: [{label: 'Low', value: 'low'}, {label: 'High', value: 'high'}] Use this property to customize or extend the set of priority options in your Kanban board. { label: string, value: string }[]
Specifies the available priority levels that can be assigned to Kanban tasks. This array defines each priority as an object containing a label (for display purposes) and a corresponding value (for internal use).
Example: [{label: 'Low', value: 'low'}, {label: 'High', value: 'high'}]
Use this property to customize or extend the set of priority options in your Kanban board.
Examples
Markup and runtime examples for priority:
HTML:
<smart-kanban priority="true"></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.priority = false;Read the current value:
const el = document.querySelector('smart-kanban');
const priority = el.priority;
labelThe priority label displayed.string
The priority label displayed.
Default value
""Read the nested value:
const el = document.querySelector('smart-kanban');
const label = el.priority.label;
valueThe priority value.string
The priority value.
Default value
""Read the nested value:
const el = document.querySelector('smart-kanban');
const value = el.priority.value;
priorityListControls the visibility of the priority list (as specified by the priority property) when the user clicks the priority icon. This option is only effective when users have editable privileges enabled, allowing them to modify the priority value. If set to true, the list will appear on icon click; if false, the list will remain hidden.boolean
Controls the visibility of the priority list (as specified by the priority property) when the user clicks the priority icon. This option is only effective when users have editable privileges enabled, allowing them to modify the priority value. If set to true, the list will appear on icon click; if false, the list will remain hidden.
Default value
falseExamples
Markup and runtime examples for priorityList:
HTML attribute:
<smart-kanban priority-list></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.priorityList = false;Read the current value:
const el = document.querySelector('smart-kanban');
const priorityList = el.priorityList;
readonlyControls the read-only state of the edit dialog. When enabled, the dialog displays task details but disables all editing capabilities for those fields. However, if the comments feature is active, users can still add comments within the dialog, even while other fields remain uneditable.boolean
Controls the read-only state of the edit dialog. When enabled, the dialog displays task details but disables all editing capabilities for those fields. However, if the comments feature is active, users can still add comments within the dialog, even while other fields remain uneditable.
Default value
falseExamples
Markup and runtime examples for readonly:
HTML attribute:
<smart-kanban readonly></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.readonly = true;Read the current value:
const el = document.querySelector('smart-kanban');
const readonly = el.readonly;
rightToLeftSets or retrieves a value that determines whether the element’s alignment is configured for right-to-left (RTL) text direction, which is typically used in languages such as Arabic or Hebrew. When enabled, the element layout and text flow will support RTL locales, ensuring proper display for right-to-left scripts.boolean
Sets or retrieves a value that determines whether the element’s alignment is configured for right-to-left (RTL) text direction, which is typically used in languages such as Arabic or Hebrew. When enabled, the element layout and text flow will support RTL locales, ensuring proper display for right-to-left scripts.
Default value
falseExamples
Markup and runtime examples for rightToLeft:
HTML attribute:
<smart-kanban right-to-left></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.rightToLeft = true;Read the current value:
const el = document.querySelector('smart-kanban');
const rightToLeft = el.rightToLeft;
selectionModeSpecifies how items can be selected within the component, such as allowing single selection, multiple selections, or disabling selection entirely."zeroOrOne" | "zeroOrManyExtended"
Specifies how items can be selected within the component, such as allowing single selection, multiple selections, or disabling selection entirely.
Allowed Values
- "zeroOrOne" - Only one task can optionally be selected.
- "zeroOrManyExtended" - One or more items can optionally be selected; selection with Ctrl and Shift is allowed.
Default value
"zeroOrOne"Examples
Markup and runtime examples for selectionMode:
HTML:
<smart-kanban selection-mode="zeroOrManyExtended"></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.selectionMode = "zeroOrOne";Read the current value:
const el = document.querySelector('smart-kanban');
const selectionMode = el.selectionMode;
storeHistorySpecifies whether the history of tasks is recorded and shown within the task dialog. When enabled, completed or previous tasks will be saved and displayed, allowing users to review their task activity directly in the dialog. When disabled, task history will not be retained or visible. This setting can be used to set or retrieve the current history display behavior.boolean
Specifies whether the history of tasks is recorded and shown within the task dialog. When enabled, completed or previous tasks will be saved and displayed, allowing users to review their task activity directly in the dialog. When disabled, task history will not be retained or visible. This setting can be used to set or retrieve the current history display behavior.
Default value
falseExamples
Markup and runtime examples for storeHistory:
HTML attribute:
<smart-kanban store-history></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.storeHistory = true;Read the current value:
const el = document.querySelector('smart-kanban');
const storeHistory = el.storeHistory;
storeHistoryItemsSpecifies the collection of task history items to be retrieved or updated when the storeHistory option is enabled. When storeHistory is true, this property determines which task history records are saved and accessed.number
Specifies the collection of task history items to be retrieved or updated when the storeHistory option is enabled. When storeHistory is true, this property determines which task history records are saved and accessed.
Default value
20Examples
Markup and runtime examples for storeHistoryItems:
HTML:
<smart-kanban store-history-items="10"></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.storeHistoryItems = 30;Read the current value:
const el = document.querySelector('smart-kanban');
const storeHistoryItems = el.storeHistoryItems;
swimlanesProvides a detailed configuration of swimlanes on the Kanban board, specifying how tasks are grouped horizontally by categories such as assignee, priority, or project. When swimlanes are enabled, sub-columns within each column are disabled to maintain a clear visual separation of items across swimlanes.
Click for more details. Property object's options:
string | { color?: string, dataField?: string, label?: string }[]
Provides a detailed configuration of swimlanes on the Kanban board, specifying how tasks are grouped horizontally by categories such as assignee, priority, or project. When swimlanes are enabled, sub-columns within each column are disabled to maintain a clear visual separation of items across swimlanes.
Properties
Examples
Markup and runtime examples for swimlanes:
HTML:
<smart-kanban swimlanes="{ label: 'Client Energo', dataField: 'client1' }, { label: 'Client Sim-Prod Ltd.', dataField: 'client2', color: '#C90086' }"></smart-kanban>Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.swimlanes = { label: 'Client Sim-Prod Ltd.', dataField: 'client2', color: '#C90086' }, { label: 'Other clients', dataField: 'other', color: '#03C7C0' };Read the current value:
const el = document.querySelector('smart-kanban');
const swimlanes = el.swimlanes;
colorThe swimlane's color.string
The swimlane's color.
Default value
"null"Read the nested value:
const el = document.querySelector('smart-kanban');
const color = el.swimlanes[0].color;
dataFieldSets or gets the swimlane's data source bound field. Corresponds to the swimlane field in the data source.string
Sets or gets the swimlane's data source bound field. Corresponds to the swimlane field in the data source.
Default value
""Read the nested value:
const el = document.querySelector('smart-kanban');
const dataField = el.swimlanes[0].dataField;
labelSets or gets the text displayed in the swimlane.string
Sets or gets the text displayed in the swimlane.
Default value
""Read the nested value:
const el = document.querySelector('smart-kanban');
const label = el.swimlanes[0].label;
swimlanesFromSpecifies or retrieves the zero-based index of the column where the swimlanes should begin. This determines the starting position for rendering swimlanes within a grid or table layout.number
Specifies or retrieves the zero-based index of the column where the swimlanes should begin. This determines the starting position for rendering swimlanes within a grid or table layout.
Default value
0Examples
Markup and runtime examples for swimlanesFrom:
HTML:
<smart-kanban swimlanes-from="1"></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.swimlanesFrom = 3;Read the current value:
const el = document.querySelector('smart-kanban');
const swimlanesFrom = el.swimlanesFrom;
swimlanesToSpecifies or retrieves the zero-based index of the column where the swimlanes should terminate. By default, swimlanes extend to the final column in the layout. Setting this property allows you to control at which column the swimlanes will stop, providing flexibility in customizing the swimlane display.number
Specifies or retrieves the zero-based index of the column where the swimlanes should terminate. By default, swimlanes extend to the final column in the layout. Setting this property allows you to control at which column the swimlanes will stop, providing flexibility in customizing the swimlane display.
Examples
Markup and runtime examples for swimlanesTo:
HTML:
<smart-kanban swimlanes-to="4"></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.swimlanesTo = 3;Read the current value:
const el = document.querySelector('smart-kanban');
const swimlanesTo = el.swimlanesTo;
tagsSpecifies the permitted tags that can be used. When this property is set, only the listed tags will be allowed; if no tags are specified, all tags provided by the data source are accepted by default. This property can be used to restrict or expand the selection of allowed tags as needed. []
Specifies the permitted tags that can be used. When this property is set, only the listed tags will be allowed; if no tags are specified, all tags provided by the data source are accepted by default. This property can be used to restrict or expand the selection of allowed tags as needed.
Examples
Markup and runtime examples for tags:
HTML:
<smart-kanban tags="['method', 'data']"></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.tags = ['research', 'property', 'localization'];Read the current value:
const el = document.querySelector('smart-kanban');
const tags = el.tags;
taskActionsControls whether the task actions icon is displayed or hidden, allowing users to show or conceal the icon based on their preferences or application state.boolean
Controls whether the task actions icon is displayed or hidden, allowing users to show or conceal the icon based on their preferences or application state.
Default value
falseExamples
Markup and runtime examples for taskActions:
HTML attribute:
<smart-kanban task-actions></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.taskActions = false;Read the current value:
const el = document.querySelector('smart-kanban');
const taskActions = el.taskActions;
taskActionsRenderedDefines a callback function that is invoked whenever the task actions menu is generated in the UI. This function receives the actions menu element as its parameter, enabling you to modify or extend the menu's content and behavior. For example, you can insert custom menu items, attach event listeners, or alter existing elements within the menu.'Example usage:''''js(list) => { // Add a custom menu item list.innerHTML = 'Custom Item'; // Attach a click handler to the menu list.onclick = () => { alert('Custom item clicked'); };}'''This callback provides full access to the task actions menu element, empowering you to tailor the menu to fit your specific requirements.any
Defines a callback function that is invoked whenever the task actions menu is generated in the UI. This function receives the actions menu element as its parameter, enabling you to modify or extend the menu's content and behavior. For example, you can insert custom menu items, attach event listeners, or alter existing elements within the menu.
'Example usage:'
'''js
(list) => {
// Add a custom menu item
list.innerHTML = '
// Attach a click handler to the menu
list.onclick = () => {
alert('Custom item clicked');
};
}
'''
This callback provides full access to the task actions menu element, empowering you to tailor the menu to fit your specific requirements.
taskColorEntireSurfaceThe background color of a task is determined by its individual color property. By default, this color is visually represented as an accent along the left border of the task element, rather than filling the entire background. This design helps differentiate tasks based on their assigned colors while maintaining a consistent overall appearance.boolean
The background color of a task is determined by its individual color property. By default, this color is visually represented as an accent along the left border of the task element, rather than filling the entire background. This design helps differentiate tasks based on their assigned colors while maintaining a consistent overall appearance.
Default value
falseExamples
Markup and runtime examples for taskColorEntireSurface:
HTML attribute:
<smart-kanban task-color-entire-surface></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.taskColorEntireSurface = false;Read the current value:
const el = document.querySelector('smart-kanban');
const taskColorEntireSurface = el.taskColorEntireSurface;
taskCommentsControls whether the task comments icon is displayed or hidden, allowing you to show or conceal the icon associated with task comments.boolean
Controls whether the task comments icon is displayed or hidden, allowing you to show or conceal the icon associated with task comments.
Default value
falseExamples
Markup and runtime examples for taskComments:
HTML attribute:
<smart-kanban task-comments></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.taskComments = false;Read the current value:
const el = document.querySelector('smart-kanban');
const taskComments = el.taskComments;
taskCustomFieldsDefines which custom fields are shown on a task card and how they appear. This property accepts an array of objects, where each object represents a custom field configuration with the following properties:- 'dataField' (string, required): Specifies the unique key or identifier for the custom field. This determines which value will be displayed on the card.- 'label' (string, required): The display name or title of the field as it appears on the card.- 'dataType' (string, required): Indicates the field's data type (e.g., 'string', 'number', 'date'). Used to determine how the field value should be formatted or displayed.- 'visible' (boolean, optional): If set to 'true', the field is displayed on the card; if 'false', it is hidden. Defaults to 'true' if omitted.- 'image' (boolean, optional): Set to 'true' if the field value is an image URL or Base64 string. This tells the UI to render the value as an image instead of text.- 'cover' (boolean, optional): When 'image' is 'true', setting 'cover' to 'true' will display the image as the card’s cover image (typically at the top of the card).'Example usage:''''json[ { "dataField": "title", "label": "Task Title", "dataType": "string", "visible": true }, { "dataField": "dueDate", "label": "Due Date", "dataType": "date" }, { "dataField": "avatar", "label": "Assignee Photo", "dataType": "string", "image": true, "visible": true }, { "dataField": "coverImage", "label": "Project Cover", "dataType": "string", "image": true, "cover": true }]'''This configuration determines which fields are shown, how they're labeled, their format, and whether any field displays an image or acts as a cover image on the task card. array
Defines which custom fields are shown on a task card and how they appear. This property accepts an array of objects, where each object represents a custom field configuration with the following properties:
- 'dataField' (string, required): Specifies the unique key or identifier for the custom field. This determines which value will be displayed on the card.
- 'label' (string, required): The display name or title of the field as it appears on the card.
- 'dataType' (string, required): Indicates the field's data type (e.g., 'string', 'number', 'date'). Used to determine how the field value should be formatted or displayed.
- 'visible' (boolean, optional): If set to 'true', the field is displayed on the card; if 'false', it is hidden. Defaults to 'true' if omitted.
- 'image' (boolean, optional): Set to 'true' if the field value is an image URL or Base64 string. This tells the UI to render the value as an image instead of text.
- 'cover' (boolean, optional): When 'image' is 'true', setting 'cover' to 'true' will display the image as the card’s cover image (typically at the top of the card).
'Example usage:'
'''json
[
{
"dataField": "title",
"label": "Task Title",
"dataType": "string",
"visible": true
},
{
"dataField": "dueDate",
"label": "Due Date",
"dataType": "date"
},
{
"dataField": "avatar",
"label": "Assignee Photo",
"dataType": "string",
"image": true,
"visible": true
},
{
"dataField": "coverImage",
"label": "Project Cover",
"dataType": "string",
"image": true,
"cover": true
}
]
'''
This configuration determines which fields are shown, how they're labeled, their format, and whether any field displays an image or acts as a cover image on the task card.
taskDueControls whether the task due date icon is shown or hidden in the interface. When enabled, the icon indicating a task's due date will be visible; when disabled, the icon will be hidden from view.boolean
Controls whether the task due date icon is shown or hidden in the interface. When enabled, the icon indicating a task's due date will be visible; when disabled, the icon will be hidden from view.
Default value
falseExamples
Markup and runtime examples for taskDue:
HTML attribute:
<smart-kanban task-due></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.taskDue = false;Read the current value:
const el = document.querySelector('smart-kanban');
const taskDue = el.taskDue;
taskPositionDetermines whether tasks are displayed across all levels of the column hierarchy or are restricted to only the leaf (lowest-level) columns. When enabled, tasks can be shown in any column within the hierarchy; when disabled, tasks are displayed exclusively in the leaf columns. This setting allows you to control the visibility of tasks based on the column hierarchy structure."all" | "leaf"
Determines whether tasks are displayed across all levels of the column hierarchy or are restricted to only the leaf (lowest-level) columns. When enabled, tasks can be shown in any column within the hierarchy; when disabled, tasks are displayed exclusively in the leaf columns. This setting allows you to control the visibility of tasks based on the column hierarchy structure.
Allowed Values
- "all" - Tasks can be shown in all levels of column hierarchy.
- "leaf" - Tasks can be shown only on leaf columns.
Default value
"false"Examples
Markup and runtime examples for taskPosition:
HTML:
<smart-kanban task-position="leaf"></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.taskPosition = "all";Read the current value:
const el = document.querySelector('smart-kanban');
const taskPosition = el.taskPosition;
taskPriorityControls whether the task priority icon is displayed. The icon appears when a task is marked as either low or high priority. Disabling this option will hide the icon regardless of the task’s priority status.boolean
Controls whether the task priority icon is displayed. The icon appears when a task is marked as either low or high priority. Disabling this option will hide the icon regardless of the task’s priority status.
Default value
trueExamples
Markup and runtime examples for taskPriority:
HTML attribute:
<smart-kanban task-priority></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.taskPriority = false;Read the current value:
const el = document.querySelector('smart-kanban');
const taskPriority = el.taskPriority;
taskProgressControls whether the task progress bar and the label displaying the number of completed sub-tasks are shown or hidden. When enabled, both visual elements will be visible; when disabled, they will be hidden from view.boolean
Controls whether the task progress bar and the label displaying the number of completed sub-tasks are shown or hidden. When enabled, both visual elements will be visible; when disabled, they will be hidden from view.
Default value
falseExamples
Markup and runtime examples for taskProgress:
HTML attribute:
<smart-kanban task-progress></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.taskProgress = false;Read the current value:
const el = document.querySelector('smart-kanban');
const taskProgress = el.taskProgress;
taskSubTasksSpecifies how sub-tasks are rendered within a task card. - '"none"' *(default)*: Sub-tasks are hidden on the task card and are only visible within the edit dialog. - '"onePerRow"': All sub-tasks associated with the task are displayed directly on the task card, with each sub-task shown on its own row. - '"onlyUnfinished"': Only sub-tasks that are not marked as completed are displayed on the task card; completed sub-tasks remain hidden."none" | "onePerRow" | "onlyUnfinished"
Specifies how sub-tasks are rendered within a task card.
- '"none"' *(default)*: Sub-tasks are hidden on the task card and are only visible within the edit dialog.
- '"onePerRow"': All sub-tasks associated with the task are displayed directly on the task card, with each sub-task shown on its own row.
- '"onlyUnfinished"': Only sub-tasks that are not marked as completed are displayed on the task card; completed sub-tasks remain hidden.
Default value
"none"Examples
Markup and runtime examples for taskSubTasks:
HTML:
<smart-kanban task-sub-tasks="onePerRow"></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.taskSubTasks = "onlyUnfinished";Read the current value:
const el = document.querySelector('smart-kanban');
const taskSubTasks = el.taskSubTasks;
taskSubTasksInputDisplays an input field within the task card, allowing users to dynamically add sub-tasks to the main task. To enable this feature, ensure that the 'taskSubTasks' property is set to a value other than 'none'. When 'taskSubTasks' is appropriately configured, users will see and be able to use the sub-task input interface.boolean
Displays an input field within the task card, allowing users to dynamically add sub-tasks to the main task. To enable this feature, ensure that the 'taskSubTasks' property is set to a value other than 'none'. When 'taskSubTasks' is appropriately configured, users will see and be able to use the sub-task input interface.
Default value
trueExamples
Markup and runtime examples for taskSubTasksInput:
HTML attribute:
<smart-kanban task-sub-tasks-input></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.taskSubTasksInput = false;Read the current value:
const el = document.querySelector('smart-kanban');
const taskSubTasksInput = el.taskSubTasksInput;
taskTagsControls whether task tags are shown or hidden in the user interface, allowing users to display or conceal tag information associated with each task.boolean
Controls whether task tags are shown or hidden in the user interface, allowing users to display or conceal tag information associated with each task.
Default value
trueExamples
Markup and runtime examples for taskTags:
HTML attribute:
<smart-kanban task-tags></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.taskTags = false;Read the current value:
const el = document.querySelector('smart-kanban');
const taskTags = el.taskTags;
taskUserIconControls whether the task user icon is displayed or hidden, allowing you to show or hide the icon representing the user associated with a task.boolean
Controls whether the task user icon is displayed or hidden, allowing you to show or hide the icon representing the user associated with a task.
Default value
trueExamples
Markup and runtime examples for taskUserIcon:
HTML attribute:
<smart-kanban task-user-icon></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.taskUserIcon = false;Read the current value:
const el = document.querySelector('smart-kanban');
const taskUserIcon = el.taskUserIcon;
textTemplateSpecifies the template to use for rendering task text. This property accepts multiple value types:- A string starting with #, which references the id of a template element on the page. The contents of this element will be used as the template.- A string containing HTML or template markup, which will be parsed and applied directly to the task text.- A function, which receives the task text (or a template) as input and returns the modified text or template to be used.This property can be both set to define the template for future tasks, or retrieved to access the currently applied template.string | (settings: { data: any, task: HTMLDivElement, text: string, template?: string }) => void
Specifies the template to use for rendering task text. This property accepts multiple value types:
- A string starting with #, which references the id of a template element on the page. The contents of this element will be used as the template.
- A string containing HTML or template markup, which will be parsed and applied directly to the task text.
- A function, which receives the task text (or a template) as input and returns the modified text or template to be used.
This property can be both set to define the template for future tasks, or retrieved to access the currently applied template.
Examples
Markup and runtime examples for textTemplate:
HTML:
<smart-kanban text-template="true"></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.textTemplate = false;Read the current value:
const el = document.querySelector('smart-kanban');
const textTemplate = el.textTemplate;
themeSpecifies the theme applied to the element. The theme controls the visual appearance, including colors, fonts, and overall style, ensuring a consistent look and feel across the component.string
Specifies the theme applied to the element. The theme controls the visual appearance, including colors, fonts, and overall style, ensuring a consistent look and feel across the component.
Default value
""Examples
Markup and runtime examples for theme:
HTML:
<smart-kanban theme="blue"></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.theme = "red";Read the current value:
const el = document.querySelector('smart-kanban');
const theme = el.theme;
unlockKeyGets or sets the unlockKey property, a unique key used to unlock or activate the product. This key is required to enable full access to product features.string
Gets or sets the unlockKey property, a unique key used to unlock or activate the product. This key is required to enable full access to product features.
Default value
""Examples
Markup and runtime examples for unlockKey:
HTML:
<smart-kanban unlock-key=""></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.unlockKey = "1111-2222-3333-4444-5555";Read the current value:
const el = document.querySelector('smart-kanban');
const unlockKey = el.unlockKey;
userListControls the visibility of the user list—defined by the users property—when the user icon is clicked. This setting is only effective if editable privileges are enabled; otherwise, the user list will not be displayed regardless of this option.boolean
Controls the visibility of the user list—defined by the users property—when the user icon is clicked. This setting is only effective if editable privileges are enabled; otherwise, the user list will not be displayed regardless of this option.
Default value
falseExamples
Markup and runtime examples for userList:
HTML attribute:
<smart-kanban user-list></smart-kanban>
Vanilla JS — prefer #id if multiple widgets exist on the page:
const el = document.querySelector('smart-kanban');
el.userList = false;Read the current value:
const el = document.querySelector('smart-kanban');
const userList = el.userList;
usersSpecifies the users eligible to be assigned Kanban tasks, along with their associated attributes (such as name, role, and status) and permissions (such as create, edit, or delete task capabilities).
Click for more details. Property object's options:
{ allowAdd?: boolean, allowComment?: boolean, allowDrag?: boolean, allowEdit?: boolean, allowRemove?: boolean, id: string | number, image?: string, name?: string }[]
Specifies the users eligible to be assigned Kanban tasks, along with their associated attributes (such as name, role, and status) and permissions (such as create, edit, or delete task capabilities).
Properties
allowAddSets whether the user has a privilege to add or copy tasks.boolean
Sets whether the user has a privilege to add or copy tasks.
Default value
trueRead the nested value:
const el = document.querySelector('smart-kanban');
const allowAdd = el.users[0].allowAdd;
allowCommentSets whether the user has a privilege to add comments to tasks.boolean
Sets whether the user has a privilege to add comments to tasks.
Default value
trueRead the nested value:
const el = document.querySelector('smart-kanban');
const allowComment = el.users[0].allowComment;
allowDragSets whether the user has a privilege to drag tasks. Works along with the property allowDrag.boolean
Sets whether the user has a privilege to drag tasks. Works along with the property allowDrag.
Default value
trueRead the nested value:
const el = document.querySelector('smart-kanban');
const allowDrag = el.users[0].allowDrag;
allowEditSets whether the user has a privilege to edit tasks. Works along with the property editable.boolean
Sets whether the user has a privilege to edit tasks. Works along with the property editable.
Default value
trueRead the nested value:
const el = document.querySelector('smart-kanban');
const allowEdit = el.users[0].allowEdit;
allowRemoveSets whether the user has a privilege to remove tasks.boolean
Sets whether the user has a privilege to remove tasks.
Default value
trueRead the nested value:
const el = document.querySelector('smart-kanban');
const allowRemove = el.users[0].allowRemove;
idThe user's unique ID. Corresponds to the userId field in the data source and the property currentUser.string | number
The user's unique ID. Corresponds to the userId field in the data source and the property currentUser.
Read the nested value:
const el = document.querySelector('smart-kanban');
const id = el.users[0].id;
imageA url to an image representing the user.string
A url to an image representing the user.
Default value
""Read the nested value:
const el = document.querySelector('smart-kanban');
const image = el.users[0].image;
nameThe user's name as it will appear in the Users list and "Assigned to" editor.string
The user's name as it will appear in the Users list and "Assigned to" editor.
Default value
""Read the nested value:
const el = document.querySelector('smart-kanban');
const name = el.users[0].name;
Events
changeThis event is triggered whenever any changes are made to the details, status, or properties of an existing task. It allows you to respond programmatically whenever a task is modified, ensuring your application can stay synchronized with the latest task information.CustomEvent
This event is triggered whenever any changes are made to the details, status, or properties of an existing task. It allows you to respond programmatically whenever a task is modified, ensuring your application can stay synchronized with the latest task information.
- Bubbles Yes
- Cancelable No
- Interface CustomEvent
- Event handler property onChange
Arguments
evCustomEvent
ev.detailObject
ev.detail.oldValue - The old data of the task
ev.detail.task - The HTML element of the task whose data has been changed
ev.detail.value - The new data of the task
Methods
isDefaultPrevented
Returns true if the event was prevented by any of its subscribers.
Returns
boolean true if the default action was prevented. Otherwise, returns false.
preventDefault
The preventDefault() method prevents the default action for a specified event. In this way, the source component suppresses the built-in behavior that follows the event.
stopPropagation
The stopPropagation() method of the Event interface prevents further propagation of the current event in the capturing and bubbling phases.
Examples
Listen for change using the pattern that matches your stack.
DOM — listen on the custom element (use a specific selector if the page has more than one):
document.querySelector('smart-kanban')?.addEventListener('change', (event) => {
const detail = event.detail,
oldValue = detail.oldValue,
task = detail.task,
value = detail.value;
// event handling code goes here.
})
closeThis event is triggered when the user closes the edit or prompt dialog, either by submitting changes or canceling the operation. It signals that the dialog has been dismissed and any associated actions, such as saving or discarding input, should be handled.CustomEvent
This event is triggered when the user closes the edit or prompt dialog, either by submitting changes or canceling the operation. It signals that the dialog has been dismissed and any associated actions, such as saving or discarding input, should be handled.
- Bubbles Yes
- Cancelable No
- Interface CustomEvent
- Event handler property onClose
Arguments
evCustomEvent
Methods
isDefaultPrevented
Returns true if the event was prevented by any of its subscribers.
Returns
boolean true if the default action was prevented. Otherwise, returns false.
preventDefault
The preventDefault() method prevents the default action for a specified event. In this way, the source component suppresses the built-in behavior that follows the event.
stopPropagation
The stopPropagation() method of the Event interface prevents further propagation of the current event in the capturing and bubbling phases.
Examples
Listen for close using the pattern that matches your stack.
DOM — listen on the custom element (use a specific selector if the page has more than one):
document.querySelector('smart-kanban')?.addEventListener('close', (event) => {
// event handling code goes here.
})
closingThis event fires just before the edit or prompt dialog is about to close, giving you an opportunity to intercept the closing action. By calling event.preventDefault() within the event handler, you can cancel the closing operation, allowing you to perform validation or prompt the user before the dialog is dismissed.CustomEvent
This event fires just before the edit or prompt dialog is about to close, giving you an opportunity to intercept the closing action. By calling event.preventDefault() within the event handler, you can cancel the closing operation, allowing you to perform validation or prompt the user before the dialog is dismissed.
- Bubbles Yes
- Cancelable Yes
- Interface CustomEvent
- Event handler property onClosing
Arguments
evCustomEvent
Methods
isDefaultPrevented
Returns true if the event was prevented by any of its subscribers.
Returns
boolean true if the default action was prevented. Otherwise, returns false.
preventDefault
The preventDefault() method prevents the default action for a specified event. In this way, the source component suppresses the built-in behavior that follows the event.
stopPropagation
The stopPropagation() method of the Event interface prevents further propagation of the current event in the capturing and bubbling phases.
Examples
Listen for closing using the pattern that matches your stack.
DOM — listen on the custom element (use a specific selector if the page has more than one):
document.querySelector('smart-kanban')?.addEventListener('closing', (event) => {
// event handling code goes here.
})
columnAddThis event is triggered whenever a new column is successfully added to the data structure or interface. It allows you to respond to the addition of a column, such as updating the user interface, modifying related data, or performing custom logic. The event provides details about the added column, including its name, index, and relevant metadata.CustomEvent
This event is triggered whenever a new column is successfully added to the data structure or interface. It allows you to respond to the addition of a column, such as updating the user interface, modifying related data, or performing custom logic. The event provides details about the added column, including its name, index, and relevant metadata.
- Bubbles Yes
- Cancelable No
- Interface CustomEvent
- Event handler property onColumnAdd
Arguments
evCustomEvent
ev.detailObject
ev.detail.label - The column label.
ev.detail.dataField - The column data field.
ev.detail.collapsed - The column's collapsed state.
Methods
isDefaultPrevented
Returns true if the event was prevented by any of its subscribers.
Returns
boolean true if the default action was prevented. Otherwise, returns false.
preventDefault
The preventDefault() method prevents the default action for a specified event. In this way, the source component suppresses the built-in behavior that follows the event.
stopPropagation
The stopPropagation() method of the Event interface prevents further propagation of the current event in the capturing and bubbling phases.
Examples
Listen for columnAdd using the pattern that matches your stack.
DOM — listen on the custom element (use a specific selector if the page has more than one):
document.querySelector('smart-kanban')?.addEventListener('columnAdd', (event) => {
const detail = event.detail,
label = detail.label,
dataField = detail.dataField,
collapsed = detail.collapsed;
// event handling code goes here.
})
columnClickThis event is triggered whenever a user clicks on a column header within the data table. It can be used to initiate actions such as sorting the column, displaying a menu, or highlighting the selected column. The event typically provides information about which column was clicked, enabling you to implement custom logic based on the user's interaction.CustomEvent
This event is triggered whenever a user clicks on a column header within the data table. It can be used to initiate actions such as sorting the column, displaying a menu, or highlighting the selected column. The event typically provides information about which column was clicked, enabling you to implement custom logic based on the user's interaction.
- Bubbles Yes
- Cancelable No
- Interface CustomEvent
- Event handler property onColumnClick
Arguments
evCustomEvent
ev.detailObject
ev.detail.label - The column label.
ev.detail.dataField - The column data field.
ev.detail.collapsed - The column's collapsed state.
Methods
isDefaultPrevented
Returns true if the event was prevented by any of its subscribers.
Returns
boolean true if the default action was prevented. Otherwise, returns false.
preventDefault
The preventDefault() method prevents the default action for a specified event. In this way, the source component suppresses the built-in behavior that follows the event.
stopPropagation
The stopPropagation() method of the Event interface prevents further propagation of the current event in the capturing and bubbling phases.
Examples
Listen for columnClick using the pattern that matches your stack.
DOM — listen on the custom element (use a specific selector if the page has more than one):
document.querySelector('smart-kanban')?.addEventListener('columnClick', (event) => {
const detail = event.detail,
label = detail.label,
dataField = detail.dataField,
collapsed = detail.collapsed;
// event handling code goes here.
})
columnCollapseThis event is triggered whenever a column is collapsed, either by selecting the "Collapse" option from the column's action menu or by programmatically invoking the Kanban board's `collapse` method.CustomEvent
This event is triggered whenever a column is collapsed, either by selecting the "Collapse" option from the column's action menu or by programmatically invoking the Kanban board's `collapse` method.
- Bubbles Yes
- Cancelable No
- Interface CustomEvent
- Event handler property onColumnCollapse
Arguments
evCustomEvent
ev.detailObject
ev.detail.label - The column label.
ev.detail.dataField - The column data field.
Methods
isDefaultPrevented
Returns true if the event was prevented by any of its subscribers.
Returns
boolean true if the default action was prevented. Otherwise, returns false.
preventDefault
The preventDefault() method prevents the default action for a specified event. In this way, the source component suppresses the built-in behavior that follows the event.
stopPropagation
The stopPropagation() method of the Event interface prevents further propagation of the current event in the capturing and bubbling phases.
Examples
Listen for columnCollapse using the pattern that matches your stack.
DOM — listen on the custom element (use a specific selector if the page has more than one):
document.querySelector('smart-kanban')?.addEventListener('columnCollapse', (event) => {
const detail = event.detail,
label = detail.label,
dataField = detail.dataField;
// event handling code goes here.
})
columnDoubleClickThis event is triggered when a user double-clicks on a column header, typically in a data grid or table. It can be used to initiate actions such as resizing the column, sorting data, or displaying additional options related to the selected column.CustomEvent
This event is triggered when a user double-clicks on a column header, typically in a data grid or table. It can be used to initiate actions such as resizing the column, sorting data, or displaying additional options related to the selected column.
- Bubbles Yes
- Cancelable No
- Interface CustomEvent
- Event handler property onColumnDoubleClick
Arguments
evCustomEvent
ev.detailObject
ev.detail.label - The column label.
ev.detail.dataField - The column data field.
ev.detail.collapsed - The column's collapsed state.
Methods
isDefaultPrevented
Returns true if the event was prevented by any of its subscribers.
Returns
boolean true if the default action was prevented. Otherwise, returns false.
preventDefault
The preventDefault() method prevents the default action for a specified event. In this way, the source component suppresses the built-in behavior that follows the event.
stopPropagation
The stopPropagation() method of the Event interface prevents further propagation of the current event in the capturing and bubbling phases.
Examples
Listen for columnDoubleClick using the pattern that matches your stack.
DOM — listen on the custom element (use a specific selector if the page has more than one):
document.querySelector('smart-kanban')?.addEventListener('columnDoubleClick', (event) => {
const detail = event.detail,
label = detail.label,
dataField = detail.dataField,
collapsed = detail.collapsed;
// event handling code goes here.
})
columnExpandThis event is triggered whenever a column in the Kanban board is expanded, either by a user selecting the "expand" option from the column's action menu or programmatically through the Kanban component's `expand` method.CustomEvent
This event is triggered whenever a column in the Kanban board is expanded, either by a user selecting the "expand" option from the column's action menu or programmatically through the Kanban component's `expand` method.
- Bubbles Yes
- Cancelable No
- Interface CustomEvent
- Event handler property onColumnExpand
Arguments
evCustomEvent
ev.detailObject
ev.detail.label - The column label.
ev.detail.dataField - The column data field.
Methods
isDefaultPrevented
Returns true if the event was prevented by any of its subscribers.
Returns
boolean true if the default action was prevented. Otherwise, returns false.
preventDefault
The preventDefault() method prevents the default action for a specified event. In this way, the source component suppresses the built-in behavior that follows the event.
stopPropagation
The stopPropagation() method of the Event interface prevents further propagation of the current event in the capturing and bubbling phases.
Examples
Listen for columnExpand using the pattern that matches your stack.
DOM — listen on the custom element (use a specific selector if the page has more than one):
document.querySelector('smart-kanban')?.addEventListener('columnExpand', (event) => {
const detail = event.detail,
label = detail.label,
dataField = detail.dataField;
// event handling code goes here.
})
columnHideThis event is triggered whenever a column is hidden, either through the column's action menu or programmatically via the Kanban board’s `hide` method. Use this event to execute custom logic or UI updates whenever a column becomes invisible to the user.CustomEvent
This event is triggered whenever a column is hidden, either through the column's action menu or programmatically via the Kanban board’s `hide` method. Use this event to execute custom logic or UI updates whenever a column becomes invisible to the user.
- Bubbles Yes
- Cancelable No
- Interface CustomEvent
- Event handler property onColumnHide
Arguments
evCustomEvent
ev.detailObject
ev.detail.label - The column label.
ev.detail.dataField - The column data field.
Methods
isDefaultPrevented
Returns true if the event was prevented by any of its subscribers.
Returns
boolean true if the default action was prevented. Otherwise, returns false.
preventDefault
The preventDefault() method prevents the default action for a specified event. In this way, the source component suppresses the built-in behavior that follows the event.
stopPropagation
The stopPropagation() method of the Event interface prevents further propagation of the current event in the capturing and bubbling phases.
Examples
Listen for columnHide using the pattern that matches your stack.
DOM — listen on the custom element (use a specific selector if the page has more than one):
document.querySelector('smart-kanban')?.addEventListener('columnHide', (event) => {
const detail = event.detail,
label = detail.label,
dataField = detail.dataField;
// event handling code goes here.
})
columnRemoveThis event is triggered whenever a column is deleted or removed from the data structure, table, or grid. It provides an opportunity to handle any necessary updates or clean-up tasks related to the removal of a column, such as updating the user interface, adjusting data bindings, or modifying underlying data sources. The event typically includes information about the column that was removed, allowing developers to respond dynamically to changes in the structure.CustomEvent
This event is triggered whenever a column is deleted or removed from the data structure, table, or grid. It provides an opportunity to handle any necessary updates or clean-up tasks related to the removal of a column, such as updating the user interface, adjusting data bindings, or modifying underlying data sources. The event typically includes information about the column that was removed, allowing developers to respond dynamically to changes in the structure.
- Bubbles Yes
- Cancelable No
- Interface CustomEvent
- Event handler property onColumnRemove
Arguments
evCustomEvent
ev.detailObject
ev.detail.label - The column label.
ev.detail.dataField - The column data field.
ev.detail.collapsed - The column's collapsed state.
Methods
isDefaultPrevented
Returns true if the event was prevented by any of its subscribers.
Returns
boolean true if the default action was prevented. Otherwise, returns false.
preventDefault
The preventDefault() method prevents the default action for a specified event. In this way, the source component suppresses the built-in behavior that follows the event.
stopPropagation
The stopPropagation() method of the Event interface prevents further propagation of the current event in the capturing and bubbling phases.
Examples
Listen for columnRemove using the pattern that matches your stack.
DOM — listen on the custom element (use a specific selector if the page has more than one):
document.querySelector('smart-kanban')?.addEventListener('columnRemove', (event) => {
const detail = event.detail,
label = detail.label,
dataField = detail.dataField,
collapsed = detail.collapsed;
// event handling code goes here.
})
columnReorderThis event is triggered whenever a user changes the position of a column, such as by dragging and dropping a column header to rearrange the column order in the table.CustomEvent
This event is triggered whenever a user changes the position of a column, such as by dragging and dropping a column header to rearrange the column order in the table.
- Bubbles Yes
- Cancelable No
- Interface CustomEvent
- Event handler property onColumnReorder
Arguments
evCustomEvent
ev.detailObject
ev.detail.oldIndex - The column's old index.
ev.detail.index - The column's new index.
ev.detail.column - The column's data object with 'label', 'dataField' and 'collapsed' fields.
Methods
isDefaultPrevented
Returns true if the event was prevented by any of its subscribers.
Returns
boolean true if the default action was prevented. Otherwise, returns false.
preventDefault
The preventDefault() method prevents the default action for a specified event. In this way, the source component suppresses the built-in behavior that follows the event.
stopPropagation
The stopPropagation() method of the Event interface prevents further propagation of the current event in the capturing and bubbling phases.
Examples
Listen for columnReorder using the pattern that matches your stack.
DOM — listen on the custom element (use a specific selector if the page has more than one):
document.querySelector('smart-kanban')?.addEventListener('columnReorder', (event) => {
const detail = event.detail,
oldIndex = detail.oldIndex,
index = detail.index,
column = detail.column;
// event handling code goes here.
})
columnShowThis event is triggered whenever a column becomes visible—either when a user selects the "Show" option from the column's action menu, or when the Kanban component's `show` method is programmatically called to reveal the column.CustomEvent
This event is triggered whenever a column becomes visible—either when a user selects the "Show" option from the column's action menu, or when the Kanban component's `show` method is programmatically called to reveal the column.
- Bubbles Yes
- Cancelable No
- Interface CustomEvent
- Event handler property onColumnShow
Arguments
evCustomEvent
ev.detailObject
ev.detail.label - The column label.
ev.detail.dataField - The column data field.
Methods
isDefaultPrevented
Returns true if the event was prevented by any of its subscribers.
Returns
boolean true if the default action was prevented. Otherwise, returns false.
preventDefault
The preventDefault() method prevents the default action for a specified event. In this way, the source component suppresses the built-in behavior that follows the event.
stopPropagation
The stopPropagation() method of the Event interface prevents further propagation of the current event in the capturing and bubbling phases.
Examples
Listen for columnShow using the pattern that matches your stack.
DOM — listen on the custom element (use a specific selector if the page has more than one):
document.querySelector('smart-kanban')?.addEventListener('columnShow', (event) => {
const detail = event.detail,
label = detail.label,
dataField = detail.dataField;
// event handling code goes here.
})
columnUpdateThis event is triggered whenever the data in a column is updated. It occurs after any changes are made to the value(s) of a column, providing an opportunity to respond to or process the updated data. Listeners can use this event to execute custom logic, such as validating input, persisting changes, or updating related UI components.CustomEvent
This event is triggered whenever the data in a column is updated. It occurs after any changes are made to the value(s) of a column, providing an opportunity to respond to or process the updated data. Listeners can use this event to execute custom logic, such as validating input, persisting changes, or updating related UI components.
- Bubbles Yes
- Cancelable No
- Interface CustomEvent
- Event handler property onColumnUpdate
Arguments
evCustomEvent
ev.detailObject
ev.detail.oldValue - The column's old label.
ev.detail.value - The column's new label.
ev.detail.column - The column's data object with 'label', 'dataField' and 'collapsed' fields.
Methods
isDefaultPrevented
Returns true if the event was prevented by any of its subscribers.
Returns
boolean true if the default action was prevented. Otherwise, returns false.
preventDefault
The preventDefault() method prevents the default action for a specified event. In this way, the source component suppresses the built-in behavior that follows the event.
stopPropagation
The stopPropagation() method of the Event interface prevents further propagation of the current event in the capturing and bubbling phases.
Examples
Listen for columnUpdate using the pattern that matches your stack.
DOM — listen on the custom element (use a specific selector if the page has more than one):
document.querySelector('smart-kanban')?.addEventListener('columnUpdate', (event) => {
const detail = event.detail,
oldValue = detail.oldValue,
value = detail.value,
column = detail.column;
// event handling code goes here.
})
commentAddThis event is triggered whenever a user adds a comment to a task within the Kanban board. It activates immediately after the comment is successfully posted, allowing you to respond to or process new task comments in real-time.CustomEvent
This event is triggered whenever a user adds a comment to a task within the Kanban board. It activates immediately after the comment is successfully posted, allowing you to respond to or process new task comments in real-time.
- Bubbles Yes
- Cancelable No
- Interface CustomEvent
- Event handler property onCommentAdd
Arguments
evCustomEvent
ev.detailObject
ev.detail.id - The task's id.
ev.detail.value - The comment object. It has 'text: string, time: Date and userId:number' properties.
Methods
isDefaultPrevented
Returns true if the event was prevented by any of its subscribers.
Returns
boolean true if the default action was prevented. Otherwise, returns false.
preventDefault
The preventDefault() method prevents the default action for a specified event. In this way, the source component suppresses the built-in behavior that follows the event.
stopPropagation
The stopPropagation() method of the Event interface prevents further propagation of the current event in the capturing and bubbling phases.
Examples
Listen for commentAdd using the pattern that matches your stack.
DOM — listen on the custom element (use a specific selector if the page has more than one):
document.querySelector('smart-kanban')?.addEventListener('commentAdd', (event) => {
const detail = event.detail,
id = detail.id,
value = detail.value;
// event handling code goes here.
})
commentRemoveThis event is triggered whenever a comment is deleted from a task card within the Kanban board. It allows you to perform actions or updates in response to the removal of a comment from any Kanban task.CustomEvent
This event is triggered whenever a comment is deleted from a task card within the Kanban board. It allows you to perform actions or updates in response to the removal of a comment from any Kanban task.
- Bubbles Yes
- Cancelable No
- Interface CustomEvent
- Event handler property onCommentRemove
Arguments
evCustomEvent
ev.detailObject
ev.detail.id - The task's id.
ev.detail.value - The comment object. It has 'text: string, time: Date and userId:number' properties.
Methods
isDefaultPrevented
Returns true if the event was prevented by any of its subscribers.
Returns
boolean true if the default action was prevented. Otherwise, returns false.
preventDefault
The preventDefault() method prevents the default action for a specified event. In this way, the source component suppresses the built-in behavior that follows the event.
stopPropagation
The stopPropagation() method of the Event interface prevents further propagation of the current event in the capturing and bubbling phases.
Examples
Listen for commentRemove using the pattern that matches your stack.
DOM — listen on the custom element (use a specific selector if the page has more than one):
document.querySelector('smart-kanban')?.addEventListener('commentRemove', (event) => {
const detail = event.detail,
id = detail.id,
value = detail.value;
// event handling code goes here.
})
commentUpdateThis event is triggered whenever an existing comment on a Kanban Task is modified. It occurs after any changes are made to the comment’s content, such as edits or updates, allowing you to respond to or track comment modifications within the Kanban board.CustomEvent
This event is triggered whenever an existing comment on a Kanban Task is modified. It occurs after any changes are made to the comment’s content, such as edits or updates, allowing you to respond to or track comment modifications within the Kanban board.
- Bubbles Yes
- Cancelable No
- Interface CustomEvent
- Event handler property onCommentUpdate
Arguments
evCustomEvent
ev.detailObject
ev.detail.id - The task's id.
ev.detail.value - The comment object. It has 'text: string, time: Date and userId:number' properties.
Methods
isDefaultPrevented
Returns true if the event was prevented by any of its subscribers.
Returns
boolean true if the default action was prevented. Otherwise, returns false.
preventDefault
The preventDefault() method prevents the default action for a specified event. In this way, the source component suppresses the built-in behavior that follows the event.
stopPropagation
The stopPropagation() method of the Event interface prevents further propagation of the current event in the capturing and bubbling phases.
Examples
Listen for commentUpdate using the pattern that matches your stack.
DOM — listen on the custom element (use a specific selector if the page has more than one):
document.querySelector('smart-kanban')?.addEventListener('commentUpdate', (event) => {
const detail = event.detail,
id = detail.id,
value = detail.value;
// event handling code goes here.
})
dragEndThis event is triggered when a task is dropped onto a target element within the DOM during a drag-and-drop operation. It allows developers to handle the completion of a drag action by responding to where the task is released. To prevent the default drop behavior—such as moving the element or initiating a browser action—you can call event.preventDefault() within the event handler. This enables you to implement custom logic for handling dropped tasks, such as updating data models, modifying the UI, or triggering other application-specific actions."CustomEvent
This event is triggered when a task is dropped onto a target element within the DOM during a drag-and-drop operation. It allows developers to handle the completion of a drag action by responding to where the task is released. To prevent the default drop behavior—such as moving the element or initiating a browser action—you can call event.preventDefault() within the event handler. This enables you to implement custom logic for handling dropped tasks, such as updating data models, modifying the UI, or triggering other application-specific actions."
- Bubbles Yes
- Cancelable Yes
- Interface CustomEvent
- Event handler property onDragEnd
Arguments
evCustomEvent
ev.detailObject
ev.detail.container - the Kanban the dragged task(s) is dropped to
ev.detail.data - an object with additional drag details
ev.detail.item - the task that is dragged; if multiple tasks are dragged, this is the task that has been clicked when initiating the drag operation
ev.detail.items - an array with all dragged tasks
ev.detail.confirmDrop - parameter which you can set to a function. When this is defined, the DROP operation is confirmed once this function is called. Otherwise, the drop is canceled. This feature can be combined with the Kanban's getConfirmDialog(label, content, callbackFn) method or with a custom confirm dialog.
ev.detail.originalEvent - the original, browser, event that initiates the drag operation
ev.detail.previousContainer - the Kanban the dragged item(s) is dragged from
ev.detail.target - the element the dragged tasks are dropped to
Methods
isDefaultPrevented
Returns true if the event was prevented by any of its subscribers.
Returns
boolean true if the default action was prevented. Otherwise, returns false.
preventDefault
The preventDefault() method prevents the default action for a specified event. In this way, the source component suppresses the built-in behavior that follows the event.
stopPropagation
The stopPropagation() method of the Event interface prevents further propagation of the current event in the capturing and bubbling phases.
Examples
Listen for dragEnd using the pattern that matches your stack.
DOM — listen on the custom element (use a specific selector if the page has more than one):
document.querySelector('smart-kanban')?.addEventListener('dragEnd', (event) => {
const detail = event.detail,
container = detail.container,
data = detail.data,
item = detail.item,
items = detail.items,
confirmDrop = detail.confirmDrop,
originalEvent = detail.originalEvent,
previousContainer = detail.previousContainer,
target = detail.target;
// event handling code goes here.
})
draggingThis event is triggered while the user is actively dragging a task, such as during a drag-and-drop operation. It fires continuously as the task is being moved, enabling real-time updates or visual feedback in response to the task's position.CustomEvent
This event is triggered while the user is actively dragging a task, such as during a drag-and-drop operation. It fires continuously as the task is being moved, enabling real-time updates or visual feedback in response to the task's position.
- Bubbles Yes
- Cancelable Yes
- Interface CustomEvent
- Event handler property onDragging
Arguments
evCustomEvent
ev.detailObject
ev.detail.data - an object with additional drag details
ev.detail.item - the task that is dragged; if multiple tasks are dragged, this is the task that has been clicked when initiating the drag operation
ev.detail.items - an array with all dragged tasks
ev.detail.originalEvent - the original, browser, event that initiates the drag operation
Methods
isDefaultPrevented
Returns true if the event was prevented by any of its subscribers.
Returns
boolean true if the default action was prevented. Otherwise, returns false.
preventDefault
The preventDefault() method prevents the default action for a specified event. In this way, the source component suppresses the built-in behavior that follows the event.
stopPropagation
The stopPropagation() method of the Event interface prevents further propagation of the current event in the capturing and bubbling phases.
Examples
Listen for dragging using the pattern that matches your stack.
DOM — listen on the custom element (use a specific selector if the page has more than one):
document.querySelector('smart-kanban')?.addEventListener('dragging', (event) => {
const detail = event.detail,
data = detail.data,
item = detail.item,
items = detail.items,
originalEvent = detail.originalEvent;
// event handling code goes here.
})
dragStartThis event is fired when the user initiates a drag action on one or more tasks. During the event, you can access information about the tasks being dragged. If you want to prevent the drag-and-drop operation from starting, you can call event.preventDefault() inside your event handler. This will cancel the dragging process and prevent any associated drag logic or UI changes from occurring.CustomEvent
This event is fired when the user initiates a drag action on one or more tasks. During the event, you can access information about the tasks being dragged. If you want to prevent the drag-and-drop operation from starting, you can call event.preventDefault() inside your event handler. This will cancel the dragging process and prevent any associated drag logic or UI changes from occurring.
- Bubbles Yes
- Cancelable Yes
- Interface CustomEvent
- Event handler property onDragStart
Arguments
evCustomEvent
ev.detailObject
ev.detail.container - the Kanban the dragged task(s) is dragged from
ev.detail.data - an object with additional drag details
ev.detail.item - the task that is dragged; if multiple tasks are dragged, this is the task that has been clicked when initiating the drag operation
ev.detail.items - an array with all dragged tasks
ev.detail.originalEvent - the original, browser, event that initiates the drag operation
ev.detail.previousContainer - the Kanban the dragged item(s) is dragged from
Methods
isDefaultPrevented
Returns true if the event was prevented by any of its subscribers.
Returns
boolean true if the default action was prevented. Otherwise, returns false.
preventDefault
The preventDefault() method prevents the default action for a specified event. In this way, the source component suppresses the built-in behavior that follows the event.
stopPropagation
The stopPropagation() method of the Event interface prevents further propagation of the current event in the capturing and bubbling phases.
Examples
Listen for dragStart using the pattern that matches your stack.
DOM — listen on the custom element (use a specific selector if the page has more than one):
document.querySelector('smart-kanban')?.addEventListener('dragStart', (event) => {
const detail = event.detail,
container = detail.container,
data = detail.data,
item = detail.item,
items = detail.items,
originalEvent = detail.originalEvent,
previousContainer = detail.previousContainer;
// event handling code goes here.
})
filterThis event is triggered immediately after a user applies a filter to refine the displayed data. It indicates that the filter criteria have been set and the view has been updated accordingly. Developers can use this event to perform actions such as fetching new data, updating UI elements, or logging user interactions related to filtering.CustomEvent
This event is triggered immediately after a user applies a filter to refine the displayed data. It indicates that the filter criteria have been set and the view has been updated accordingly. Developers can use this event to perform actions such as fetching new data, updating UI elements, or logging user interactions related to filtering.
- Bubbles Yes
- Cancelable No
- Interface CustomEvent
- Event handler property onFilter
Arguments
evCustomEvent
Methods
isDefaultPrevented
Returns true if the event was prevented by any of its subscribers.
Returns
boolean true if the default action was prevented. Otherwise, returns false.
preventDefault
The preventDefault() method prevents the default action for a specified event. In this way, the source component suppresses the built-in behavior that follows the event.
stopPropagation
The stopPropagation() method of the Event interface prevents further propagation of the current event in the capturing and bubbling phases.
Examples
Listen for filter using the pattern that matches your stack.
DOM — listen on the custom element (use a specific selector if the page has more than one):
document.querySelector('smart-kanban')?.addEventListener('filter', (event) => {
// event handling code goes here.
})
openThis event is triggered whenever the edit or prompt dialog window is displayed to the user. It signals that the user interface has opened a dialog for editing content or requesting input, allowing developers to execute custom logic in response to the dialog becoming visible.CustomEvent
This event is triggered whenever the edit or prompt dialog window is displayed to the user. It signals that the user interface has opened a dialog for editing content or requesting input, allowing developers to execute custom logic in response to the dialog becoming visible.
- Bubbles Yes
- Cancelable No
- Interface CustomEvent
- Event handler property onOpen
Arguments
evCustomEvent
Methods
isDefaultPrevented
Returns true if the event was prevented by any of its subscribers.
Returns
boolean true if the default action was prevented. Otherwise, returns false.
preventDefault
The preventDefault() method prevents the default action for a specified event. In this way, the source component suppresses the built-in behavior that follows the event.
stopPropagation
The stopPropagation() method of the Event interface prevents further propagation of the current event in the capturing and bubbling phases.
Examples
Listen for open using the pattern that matches your stack.
DOM — listen on the custom element (use a specific selector if the page has more than one):
document.querySelector('smart-kanban')?.addEventListener('open', (event) => {
// event handling code goes here.
})
openingThis event is fired immediately before the edit or prompt dialog is displayed. You can intercept and prevent the dialog from opening by calling event.preventDefault() within your event handler. This allows you to provide your own custom dialog or take other actions instead of showing the default Kanban dialog. To stop the default Kanban dialog from appearing, simply call event.preventDefault() in the appropriate event handler function.CustomEvent
This event is fired immediately before the edit or prompt dialog is displayed. You can intercept and prevent the dialog from opening by calling event.preventDefault() within your event handler. This allows you to provide your own custom dialog or take other actions instead of showing the default Kanban dialog. To stop the default Kanban dialog from appearing, simply call event.preventDefault() in the appropriate event handler function.
- Bubbles Yes
- Cancelable Yes
- Interface CustomEvent
- Event handler property onOpening
Arguments
evCustomEvent
ev.detailObject
ev.detail.comment - The comment that is about to be removed (if applicable).
ev.detail.purpose - The purpose of the dialog to be opened - 'edit' or 'prompt'.
ev.detail.task - The task that is about to be edited or removed (if applicable).
Methods
isDefaultPrevented
Returns true if the event was prevented by any of its subscribers.
Returns
boolean true if the default action was prevented. Otherwise, returns false.
preventDefault
The preventDefault() method prevents the default action for a specified event. In this way, the source component suppresses the built-in behavior that follows the event.
stopPropagation
The stopPropagation() method of the Event interface prevents further propagation of the current event in the capturing and bubbling phases.
Examples
Listen for opening using the pattern that matches your stack.
DOM — listen on the custom element (use a specific selector if the page has more than one):
document.querySelector('smart-kanban')?.addEventListener('opening', (event) => {
const detail = event.detail,
comment = detail.comment,
purpose = detail.purpose,
task = detail.task;
// event handling code goes here.
})
sortThis event is triggered immediately after a sorting operation has been applied to the data set. It signifies that the data has been reordered based on the selected sorting criteria, and any relevant updates or UI refreshes can be performed in response to this change. The event may provide details about the sort field(s), direction (ascending or descending), and the affected data.CustomEvent
This event is triggered immediately after a sorting operation has been applied to the data set. It signifies that the data has been reordered based on the selected sorting criteria, and any relevant updates or UI refreshes can be performed in response to this change. The event may provide details about the sort field(s), direction (ascending or descending), and the affected data.
- Bubbles Yes
- Cancelable No
- Interface CustomEvent
- Event handler property onSort
Arguments
evCustomEvent
Methods
isDefaultPrevented
Returns true if the event was prevented by any of its subscribers.
Returns
boolean true if the default action was prevented. Otherwise, returns false.
preventDefault
The preventDefault() method prevents the default action for a specified event. In this way, the source component suppresses the built-in behavior that follows the event.
stopPropagation
The stopPropagation() method of the Event interface prevents further propagation of the current event in the capturing and bubbling phases.
Examples
Listen for sort using the pattern that matches your stack.
DOM — listen on the custom element (use a specific selector if the page has more than one):
document.querySelector('smart-kanban')?.addEventListener('sort', (event) => {
// event handling code goes here.
})
taskAddThis event fires whenever a new task is added to the Kanban board. The associated event object contains detailed information about the new task, accessible via the event's detail property. **Example usage:**```javascriptkanban.onTaskAdd = (event) => { const taskData = event.detail.value; // Contains the properties of the newly added task const taskId = event.detail.id; // Unique identifier of the new task}```**Description:** Use this event to execute custom logic or update your application whenever a user creates a new task. The `event.detail.value` provides the complete task data object, while `event.detail.id` gives you the unique ID assigned to that task.CustomEvent
This event fires whenever a new task is added to the Kanban board. The associated event object contains detailed information about the new task, accessible via the event's detail property.
**Example usage:**
```javascript
kanban.onTaskAdd = (event) => {
const taskData = event.detail.value; // Contains the properties of the newly added task
const taskId = event.detail.id; // Unique identifier of the new task
}
```
**Description:**
Use this event to execute custom logic or update your application whenever a user creates a new task. The `event.detail.value` provides the complete task data object, while `event.detail.id` gives you the unique ID assigned to that task.
- Bubbles Yes
- Cancelable No
- Interface CustomEvent
- Event handler property onTaskAdd
Arguments
evCustomEvent
ev.detailObject
ev.detail.value - The task data that is added to the Kanban.
ev.detail.id - The task data id.
Methods
isDefaultPrevented
Returns true if the event was prevented by any of its subscribers.
Returns
boolean true if the default action was prevented. Otherwise, returns false.
preventDefault
The preventDefault() method prevents the default action for a specified event. In this way, the source component suppresses the built-in behavior that follows the event.
stopPropagation
The stopPropagation() method of the Event interface prevents further propagation of the current event in the capturing and bubbling phases.
Examples
Listen for taskAdd using the pattern that matches your stack.
DOM — listen on the custom element (use a specific selector if the page has more than one):
document.querySelector('smart-kanban')?.addEventListener('taskAdd', (event) => {
const detail = event.detail,
value = detail.value,
id = detail.id;
// event handling code goes here.
})
taskBeforeAddThis event is fired immediately before a new task is added to the Kanban board. Within the event handler, you can access and modify the task's initial data using event.detail.value (which contains the task details) and event.detail.id (which represents the task's unique identifier). This allows you to customize attributes—such as assigning a specific ID or updating field values—before the task is officially added. **Example usage:**```jskanban.onTaskBeforeAdd = (event) => { const taskData = event.detail.value; // the task data before it is added const currentId = event.detail.id; // the proposed task ID event.detail.id = 'BG12'; // assign a custom ID before adding // Additional custom logic can be added here};```**Note:** Make any necessary changes to `event.detail.value` or `event.detail.id` within this handler to control how tasks are created and represented on your Kanban board.CustomEvent
This event is fired immediately before a new task is added to the Kanban board. Within the event handler, you can access and modify the task's initial data using event.detail.value (which contains the task details) and event.detail.id (which represents the task's unique identifier). This allows you to customize attributes—such as assigning a specific ID or updating field values—before the task is officially added.
**Example usage:**
```js
kanban.onTaskBeforeAdd = (event) => {
const taskData = event.detail.value; // the task data before it is added
const currentId = event.detail.id; // the proposed task ID
event.detail.id = 'BG12'; // assign a custom ID before adding
// Additional custom logic can be added here
};
```
**Note:** Make any necessary changes to `event.detail.value` or `event.detail.id` within this handler to control how tasks are created and represented on your Kanban board.
- Bubbles Yes
- Cancelable No
- Interface CustomEvent
- Event handler property onTaskBeforeAdd
Arguments
evCustomEvent
ev.detailObject
ev.detail.value - The task data that is added to the Kanban.
ev.detail.id - The task data id.
Methods
isDefaultPrevented
Returns true if the event was prevented by any of its subscribers.
Returns
boolean true if the default action was prevented. Otherwise, returns false.
preventDefault
The preventDefault() method prevents the default action for a specified event. In this way, the source component suppresses the built-in behavior that follows the event.
stopPropagation
The stopPropagation() method of the Event interface prevents further propagation of the current event in the capturing and bubbling phases.
Examples
Listen for taskBeforeAdd using the pattern that matches your stack.
DOM — listen on the custom element (use a specific selector if the page has more than one):
document.querySelector('smart-kanban')?.addEventListener('taskBeforeAdd', (event) => {
const detail = event.detail,
value = detail.value,
id = detail.id;
// event handling code goes here.
})
taskClickThis event is fired when a user clicks on a task item, allowing you to execute custom logic in response to the interaction. It provides details about the clicked task, enabling you to access its data or update its state as needed.CustomEvent
This event is fired when a user clicks on a task item, allowing you to execute custom logic in response to the interaction. It provides details about the clicked task, enabling you to access its data or update its state as needed.
- Bubbles Yes
- Cancelable No
- Interface CustomEvent
- Event handler property onTaskClick
Arguments
evCustomEvent
ev.detailObject
ev.detail.value - The task data.
ev.detail.id - The task data id.
Methods
isDefaultPrevented
Returns true if the event was prevented by any of its subscribers.
Returns
boolean true if the default action was prevented. Otherwise, returns false.
preventDefault
The preventDefault() method prevents the default action for a specified event. In this way, the source component suppresses the built-in behavior that follows the event.
stopPropagation
The stopPropagation() method of the Event interface prevents further propagation of the current event in the capturing and bubbling phases.
Examples
Listen for taskClick using the pattern that matches your stack.
DOM — listen on the custom element (use a specific selector if the page has more than one):
document.querySelector('smart-kanban')?.addEventListener('taskClick', (event) => {
const detail = event.detail,
value = detail.value,
id = detail.id;
// event handling code goes here.
})
taskDoubleClickThis event is triggered when a user double-clicks on a task element in the interface. It allows you to detect and respond to double-click actions performed specifically on individual tasks, enabling functionalities such as editing, viewing task details, or initiating other custom behaviors associated with a double-click interaction.CustomEvent
This event is triggered when a user double-clicks on a task element in the interface. It allows you to detect and respond to double-click actions performed specifically on individual tasks, enabling functionalities such as editing, viewing task details, or initiating other custom behaviors associated with a double-click interaction.
- Bubbles Yes
- Cancelable No
- Interface CustomEvent
- Event handler property onTaskDoubleClick
Arguments
evCustomEvent
ev.detailObject
ev.detail.value - The task data.
ev.detail.id - The task data id.
Methods
isDefaultPrevented
Returns true if the event was prevented by any of its subscribers.
Returns
boolean true if the default action was prevented. Otherwise, returns false.
preventDefault
The preventDefault() method prevents the default action for a specified event. In this way, the source component suppresses the built-in behavior that follows the event.
stopPropagation
The stopPropagation() method of the Event interface prevents further propagation of the current event in the capturing and bubbling phases.
Examples
Listen for taskDoubleClick using the pattern that matches your stack.
DOM — listen on the custom element (use a specific selector if the page has more than one):
document.querySelector('smart-kanban')?.addEventListener('taskDoubleClick', (event) => {
const detail = event.detail,
value = detail.value,
id = detail.id;
// event handling code goes here.
})
taskRemoveThis event is triggered whenever a task is deleted or removed from the system. It occurs immediately after a task is successfully deleted, allowing you to perform any necessary cleanup, updates, or notifications in response to the removal action.CustomEvent
This event is triggered whenever a task is deleted or removed from the system. It occurs immediately after a task is successfully deleted, allowing you to perform any necessary cleanup, updates, or notifications in response to the removal action.
- Bubbles Yes
- Cancelable No
- Interface CustomEvent
- Event handler property onTaskRemove
Arguments
evCustomEvent
ev.detailObject
ev.detail.value - The task data that is removed from the Kanban.
ev.detail.id - The task data id.
Methods
isDefaultPrevented
Returns true if the event was prevented by any of its subscribers.
Returns
boolean true if the default action was prevented. Otherwise, returns false.
preventDefault
The preventDefault() method prevents the default action for a specified event. In this way, the source component suppresses the built-in behavior that follows the event.
stopPropagation
The stopPropagation() method of the Event interface prevents further propagation of the current event in the capturing and bubbling phases.
Examples
Listen for taskRemove using the pattern that matches your stack.
DOM — listen on the custom element (use a specific selector if the page has more than one):
document.querySelector('smart-kanban')?.addEventListener('taskRemove', (event) => {
const detail = event.detail,
value = detail.value,
id = detail.id;
// event handling code goes here.
})
taskUpdateThis event is triggered whenever a task undergoes an update, such as changes to its status, description, assigned users, due date, or any other task-related property. It allows listeners to respond in real time to modifications made to existing tasks.CustomEvent
This event is triggered whenever a task undergoes an update, such as changes to its status, description, assigned users, due date, or any other task-related property. It allows listeners to respond in real time to modifications made to existing tasks.
- Bubbles Yes
- Cancelable No
- Interface CustomEvent
- Event handler property onTaskUpdate
Arguments
evCustomEvent
ev.detailObject
ev.detail.value - The task data that is updated.
ev.detail.oldValue - The update task's old data.
ev.detail.id - The task data id.
Methods
isDefaultPrevented
Returns true if the event was prevented by any of its subscribers.
Returns
boolean true if the default action was prevented. Otherwise, returns false.
preventDefault
The preventDefault() method prevents the default action for a specified event. In this way, the source component suppresses the built-in behavior that follows the event.
stopPropagation
The stopPropagation() method of the Event interface prevents further propagation of the current event in the capturing and bubbling phases.
Examples
Listen for taskUpdate using the pattern that matches your stack.
DOM — listen on the custom element (use a specific selector if the page has more than one):
document.querySelector('smart-kanban')?.addEventListener('taskUpdate', (event) => {
const detail = event.detail,
value = detail.value,
oldValue = detail.oldValue,
id = detail.id;
// event handling code goes here.
})
Methods
addColumn( data?: any): voidAdds a new column to the Kanban board. If no column data is provided, a blank column with default settings will be created and added. If column data is specified, the column will be initialized with the provided properties.
Adds a new column to the Kanban board. If no column data is provided, a blank column with default settings will be created and added. If column data is specified, the column will be initialized with the provided properties.
Arguments
data?any
An object containing the new column's data
On the custom element in the DOM (narrow the selector, e.g. to #my-kanban, if you host multiple widgets):
document.querySelector('smart-kanban')?.addColumn({"dataField":"toDoNew","label":"New column"});
Try a demo showcasing the addColumn method.
addFilter( filters: any, operator?: string): voidEnables advanced filtering functionality for the data. For example, you can create a `Smart.FilterGroup` object to build complex filters. You might define a filter that checks if a 'Country' field contains the string 'Italy':```javascriptconst filterGroup = new Smart.FilterGroup();const filterObject = filterGroup.createFilter('string', 'Italy', 'contains');filterGroup.addFilter('and', filterObject);kanban.addFilter([['Country', filterGroup]]);```In this example, a filter group is created. A filter is then defined to match records where the 'Country' column contains the text 'Italy'. This filter is combined into the group with a logical 'and' operator and finally applied to the Kanban board using the `addFilter` method. This approach supports combining multiple filters with logical operators for dynamic and flexible data querying.
Enables advanced filtering functionality for the data. For example, you can create a `Smart.FilterGroup` object to build complex filters. You might define a filter that checks if a 'Country' field contains the string 'Italy':
```javascript
const filterGroup = new Smart.FilterGroup();
const filterObject = filterGroup.createFilter('string', 'Italy', 'contains');
filterGroup.addFilter('and', filterObject);
kanban.addFilter([['Country', filterGroup]]);
```
In this example, a filter group is created. A filter is then defined to match records where the 'Country' column contains the text 'Italy'. This filter is combined into the group with a logical 'and' operator and finally applied to the Kanban board using the `addFilter` method. This approach supports combining multiple filters with logical operators for dynamic and flexible data querying.
Arguments
filtersany
Filter information. Example: kanban.addFilter([['Country', filterGroup]]);. Each array item is a sub array with two items - 'dataField' and 'filterGroup' object. The 'dataField' is any valid data field from the data source bound to the Kanban like 'dueDate', 'startDate' or custom fields like 'Country'. Filter conditions which you can use in the expressions: '=', 'EQUAL','<>', 'NOT_EQUAL', '!=', '<', 'LESS_THAN','>', 'GREATER_THAN', '<=', 'LESS_THAN_OR_EQUAL', '>=', 'GREATER_THAN_OR_EQUAL','starts with', 'STARTS_WITH','ends with', 'ENDS_WITH', '', 'EMPTY', 'CONTAINS','DOES_NOT_CONTAIN', 'NULL','NOT_NULL'
operator?string
Logical operator between the filters of different fields. Possible values are: 'and', 'or'.
On the custom element in the DOM (narrow the selector, e.g. to #my-kanban, if you host multiple widgets):
document.querySelector('smart-kanban')?.addFilter("[['firstName', filterGroup]], 'and'");
Try a demo showcasing the addFilter method.
addSort( dataFields: [] | string, orderBy: [] | string): voidEnables customizable sorting functionality for your kanban board data. You can specify one or more fields to sort by, along with the desired sort order (e.g., 'ascending' or 'descending'). Example usage: kanban.addSort(['Country'], 'ascending'); This will sort the kanban items in ascending order based on the 'Country' field. You can also pass multiple fields (e.g., kanban.addSort(['Country', 'Name'], 'descending')) to create multi-level sorting.
Enables customizable sorting functionality for your kanban board data.
You can specify one or more fields to sort by, along with the desired sort order (e.g., 'ascending' or 'descending').
Example usage: kanban.addSort(['Country'], 'ascending');
This will sort the kanban items in ascending order based on the 'Country' field.
You can also pass multiple fields (e.g., kanban.addSort(['Country', 'Name'], 'descending')) to create multi-level sorting.
Arguments
dataFields[] | string
The data field(s) to sort by
orderBy[] | string
The sort direction(s) to sort the data field(s) by. Possible values are: 'ascending' and 'descending'.
On the custom element in the DOM (narrow the selector, e.g. to #my-kanban, if you host multiple widgets):
document.querySelector('smart-kanban')?.addSort(["firstName","country"],"ascending");
Try a demo showcasing the addSort method.
addTask( data?: any): voidAdds a new task to a specified Kanban column. If no column or task data is provided, an empty task with default values will be created and placed in the first column of the Kanban board.
Adds a new task to a specified Kanban column. If no column or task data is provided, an empty task with default values will be created and placed in the first column of the Kanban board.
Arguments
data?any
An object containing the new task's data
On the custom element in the DOM (narrow the selector, e.g. to #my-kanban, if you host multiple widgets):
document.querySelector('smart-kanban')?.addTask({"id":18,"text":"New task","status":"toDo","tags":"new, delayed"});
Try a demo showcasing the addTask method.
beginEdit( task: number | string | HTMLElement): voidInitiates an edit operation, allowing modifications to be made to the current data or document. This operation typically marks the start of a transaction, enabling changes to be tracked and either saved (committed) or discarded (rolled back) upon completion.
Initiates an edit operation, allowing modifications to be made to the current data or document. This operation typically marks the start of a transaction, enabling changes to be tracked and either saved (committed) or discarded (rolled back) upon completion.
Arguments
tasknumber | string | HTMLElement
The task's id or corresponding HTMLElement
On the custom element in the DOM (narrow the selector, e.g. to #my-kanban, if you host multiple widgets):
document.querySelector('smart-kanban')?.beginEdit(8);
Try a demo showcasing the beginEdit method.
cancelEdit(): voidTerminates the ongoing edit operation and reverts all unsaved changes, restoring the data to its previous state before the edit began.
Terminates the ongoing edit operation and reverts all unsaved changes, restoring the data to its previous state before the edit began.
On the custom element in the DOM (narrow the selector, e.g. to #my-kanban, if you host multiple widgets):
document.querySelector('smart-kanban')?.cancelEdit();
Try a demo showcasing the cancelEdit method.
clearSelection(): voidRemoves any currently selected items or cards within the Kanban board, ensuring that no items remain selected. This action resets the selection state of the Kanban component.
Removes any currently selected items or cards within the Kanban board, ensuring that no items remain selected. This action resets the selection state of the Kanban component.
On the custom element in the DOM (narrow the selector, e.g. to #my-kanban, if you host multiple widgets):
document.querySelector('smart-kanban')?.clearSelection();
Try a demo showcasing the clearSelection method.
closePanel(): voidCloses any currently open header panel dropdown, ensuring that all active dropdown menus within the header section are hidden from view.
Closes any currently open header panel dropdown, ensuring that all active dropdown menus within the header section are hidden from view.
On the custom element in the DOM (narrow the selector, e.g. to #my-kanban, if you host multiple widgets):
document.querySelector('smart-kanban')?.closePanel();
Try a demo showcasing the closePanel method.
collapse( column: number | string): voidCollapses a Kanban column, minimizing its contents and reducing its width to provide a more compact view of the board. This action hides the tasks within the column while keeping the column header visible, allowing users to focus on other sections of the Kanban board.
Collapses a Kanban column, minimizing its contents and reducing its width to provide a more compact view of the board. This action hides the tasks within the column while keeping the column header visible, allowing users to focus on other sections of the Kanban board.
Arguments
columnnumber | string
The index or dataField of the column to collapse
On the custom element in the DOM (narrow the selector, e.g. to #my-kanban, if you host multiple widgets):
document.querySelector('smart-kanban')?.collapse("done");
Try a demo showcasing the collapse method.
copyTask( task: number | string | HTMLElement): voidCreates a duplicate of an existing task within the same column, preserving all task details such as title, description, assignees, and deadlines. The copied task will appear alongside the original in the same column, allowing for easy modification without affecting the original task.
Creates a duplicate of an existing task within the same column, preserving all task details such as title, description, assignees, and deadlines. The copied task will appear alongside the original in the same column, allowing for easy modification without affecting the original task.
Arguments
tasknumber | string | HTMLElement
The task's id or corresponding HTMLElement
On the custom element in the DOM (narrow the selector, e.g. to #my-kanban, if you host multiple widgets):
document.querySelector('smart-kanban')?.copyTask(1);
Try a demo showcasing the copyTask method.
endEdit(): voidCompletes the current editing session by finalizing any modifications made and persisting all changes to the underlying data source.
Completes the current editing session by finalizing any modifications made and persisting all changes to the underlying data source.
On the custom element in the DOM (narrow the selector, e.g. to #my-kanban, if you host multiple widgets):
document.querySelector('smart-kanban')?.endEdit();
Try a demo showcasing the endEdit method.
ensureVisible( task: number | string | HTMLElement): HTMLElementEnsures that the specified task is brought into view within the scrollable container by automatically scrolling to its position. If the operation is successful, the method returns the corresponding HTML element representing the task.
Ensures that the specified task is brought into view within the scrollable container by automatically scrolling to its position. If the operation is successful, the method returns the corresponding HTML element representing the task.
Arguments
tasknumber | string | HTMLElement
The task's id or corresponding HTMLElement
ReturnsHTMLElement
On the custom element in the DOM (narrow the selector, e.g. to #my-kanban, if you host multiple widgets):
const result = document.querySelector('smart-kanban')?.ensureVisible(5);
Try a demo showcasing the ensureVisible method.
expand( column: number | string): voidExpands a Kanban board column to display all its contents, allowing users to view every card within the column in detail. This functionality makes it easier to manage, organize, and interact with all items in the selected column.
Expands a Kanban board column to display all its contents, allowing users to view every card within the column in detail. This functionality makes it easier to manage, organize, and interact with all items in the selected column.
Arguments
columnnumber | string
The index or dataField of the column to expand
On the custom element in the DOM (narrow the selector, e.g. to #my-kanban, if you host multiple widgets):
document.querySelector('smart-kanban')?.expand("done");
Try a demo showcasing the expand method.
expandAll(): voidExpands every Kanban column to display all hidden or collapsed tasks, ensuring that all items within each column are fully visible.
Expands every Kanban column to display all hidden or collapsed tasks, ensuring that all items within each column are fully visible.
On the custom element in the DOM (narrow the selector, e.g. to #my-kanban, if you host multiple widgets):
document.querySelector('smart-kanban')?.expandAll("done");
Try a demo showcasing the expandAll method.
exportData( dataFormat: string, fileName: string, callback?: Function): anyExports all current data from the Kanban board, including task details, statuses, columns, and any associated metadata, into a structured format (such as JSON or CSV) for backup, sharing, or integration purposes.
Exports all current data from the Kanban board, including task details, statuses, columns, and any associated metadata, into a structured format (such as JSON or CSV) for backup, sharing, or integration purposes.
Arguments
dataFormatstring
The file format to export to. Supported formats: 'csv', 'html', 'json', 'pdf', 'tsv', 'xlsx', 'xml'.
fileNamestring
The name of the file to export to
callback?Function
A callback function to pass the exported data to (if fileName is not provided)
Returnsany
On the custom element in the DOM (narrow the selector, e.g. to #my-kanban, if you host multiple widgets):
const result = document.querySelector('smart-kanban')?.exportData("html","my-kanban");
Try a demo showcasing the exportData method.
getColumn( dataField: string): anyRetrieves detailed information about a specific column. The returned value is a JSON object containing the following fields:- label: The display name of the column.- dataField: The key or property name associated with the column's data.- collapsed: A boolean indicating whether the column is currently collapsed.- collapsible: A boolean specifying if the column can be collapsed or expanded by the user.- allowRemove: A boolean that determines whether the column can be removed from the view.- editable: A boolean indicating if the column's cells are editable.- reorder: A boolean specifying whether the column can be reordered by the user.- orientation: Describes the orientation of the column, such as "horizontal" or "vertical".Use this object to access or modify the configuration and behavior of the column in your application interface.
Retrieves detailed information about a specific column. The returned value is a JSON object containing the following fields:
- label: The display name of the column.
- dataField: The key or property name associated with the column's data.
- collapsed: A boolean indicating whether the column is currently collapsed.
- collapsible: A boolean specifying if the column can be collapsed or expanded by the user.
- allowRemove: A boolean that determines whether the column can be removed from the view.
- editable: A boolean indicating if the column's cells are editable.
- reorder: A boolean specifying whether the column can be reordered by the user.
- orientation: Describes the orientation of the column, such as "horizontal" or "vertical".
Use this object to access or modify the configuration and behavior of the column in your application interface.
Arguments
dataFieldstring
The column's data field
Returnsany
On the custom element in the DOM (narrow the selector, e.g. to #my-kanban, if you host multiple widgets):
const result = document.querySelector('smart-kanban')?.getColumn("toDo");
Try a demo showcasing the getColumn method.
getConfirmDialog( label: string, content: string, confirmFn: any): anyCreate an instance of the Window component which is used as a confirm dialog. It gets 3 arguments, label, content and confirm function.
Create an instance of the Window component which is used as a confirm dialog. It gets 3 arguments, label, content and confirm function.
Arguments
labelstring
The label shown in the header of the window. For example: Confirm move.
contentstring
The label shown in the content of the window. For example: Are you sure you want to move this task?
confirmFnany
The function called when the OK button is clicked.
Returnsany
On the custom element in the DOM (narrow the selector, e.g. to #my-kanban, if you host multiple widgets):
const result = document.querySelector('smart-kanban')?.getConfirmDialog("done");
getSelectedTasks( id: number): anyRetrieves the IDs of all selected tasks. The returned value is an array, where each element represents the unique 'id' associated with a selected task. If no tasks are selected, the array will be empty.
Retrieves the IDs of all selected tasks.
The returned value is an array, where each element represents the unique 'id' associated with a selected task. If no tasks are selected, the array will be empty.
Arguments
idnumber
The task's id
Returnsany
On the custom element in the DOM (narrow the selector, e.g. to #my-kanban, if you host multiple widgets):
const result = document.querySelector('smart-kanban')?.getSelectedTasks();
getState(): anyRetrieves the current state of the Kanban board as a comprehensive object. The returned object contains detailed information about the board's configuration and user interactions, structured as follows:```typescript{ collapsed: { // Tracks which Kanban columns or swimlanes are currently collapsed. // Keys represent the column or swimlane identifiers, and values indicate their collapsed state. [key: string]: boolean; }, dataSource: [ // An array of data objects representing all Kanban tasks/cards currently on the board. // Each item typically includes task details such as id, status, title, description, etc. ], filtering: { filters: [ // Array of filter objects currently applied. // Each filter describes criteria such as field, comparison operator, and value. ], operator: string; // Logical operator ("AND"/"OR") used to combine multiple filters. }, selection: { selected: [ // Array of IDs or references of currently selected tasks/cards. ], selectionStart?: number | string; // Optional: Identifies the first item in a selection range (useful for range selection with shift-click). selectionInColumn: string; // ID or name of the column where selection started or is active. swimlane: string; // ID or name of the currently active swimlane (if swimlanes are in use). }, sorting: { dataFields: [ // Array of fields currently used to sort the Kanban data (e.g., ["priority", "dueDate"]). ], dataTypes: [ // Corresponding data types for each sorting field (e.g., ["number", "date"]). ], orderBy: [ // Sort directions corresponding to each field ("asc" or "desc"). ] }, tabs: [ // List of tab states or identifiers, reflecting open and active views within the Kanban UI. ], visibility: { taskActions: boolean; // Whether task action buttons are visible. taskComments: boolean; // Whether task comments are shown. taskDue: boolean; // Whether due date indicators are visible. taskPriority: boolean; // Whether task priority display is enabled. taskProgress: boolean; // Whether task progress bars or indicators are shown. taskTags: boolean; // Whether tags associated with tasks are visible. taskUserIcon: boolean; // Whether user or assignee icons are visible on tasks. }}```This state object enables you to persist, inspect, or restore the Kanban board’s full interactive state, including data, UI settings, filters, sortings, selections, and visibility toggles. It is suitable for use cases such as saving the user’s workspace, synchronizing state across sessions, or debugging Kanban board behavior.
Retrieves the current state of the Kanban board as a comprehensive object. The returned object contains detailed information about the board's configuration and user interactions, structured as follows:
```typescript
{
collapsed: {
// Tracks which Kanban columns or swimlanes are currently collapsed.
// Keys represent the column or swimlane identifiers, and values indicate their collapsed state.
[key: string]: boolean;
},
dataSource: [
// An array of data objects representing all Kanban tasks/cards currently on the board.
// Each item typically includes task details such as id, status, title, description, etc.
],
filtering: {
filters: [
// Array of filter objects currently applied.
// Each filter describes criteria such as field, comparison operator, and value.
],
operator: string;
// Logical operator ("AND"/"OR") used to combine multiple filters.
},
selection: {
selected: [
// Array of IDs or references of currently selected tasks/cards.
],
selectionStart?: number | string;
// Optional: Identifies the first item in a selection range (useful for range selection with shift-click).
selectionInColumn: string;
// ID or name of the column where selection started or is active.
swimlane: string;
// ID or name of the currently active swimlane (if swimlanes are in use).
},
sorting: {
dataFields: [
// Array of fields currently used to sort the Kanban data (e.g., ["priority", "dueDate"]).
],
dataTypes: [
// Corresponding data types for each sorting field (e.g., ["number", "date"]).
],
orderBy: [
// Sort directions corresponding to each field ("asc" or "desc").
]
},
tabs: [
// List of tab states or identifiers, reflecting open and active views within the Kanban UI.
],
visibility: {
taskActions: boolean; // Whether task action buttons are visible.
taskComments: boolean; // Whether task comments are shown.
taskDue: boolean; // Whether due date indicators are visible.
taskPriority: boolean; // Whether task priority display is enabled.
taskProgress: boolean; // Whether task progress bars or indicators are shown.
taskTags: boolean; // Whether tags associated with tasks are visible.
taskUserIcon: boolean; // Whether user or assignee icons are visible on tasks.
}
}
```
This state object enables you to persist, inspect, or restore the Kanban board’s full interactive state, including data, UI settings, filters, sortings, selections, and visibility toggles. It is suitable for use cases such as saving the user’s workspace, synchronizing state across sessions, or debugging Kanban board behavior.
Returnsany
On the custom element in the DOM (narrow the selector, e.g. to #my-kanban, if you host multiple widgets):
const result = document.querySelector('smart-kanban')?.getState();
Try a demo showcasing the getState method.
getTask( id: number): anyRetrieves detailed information about a specific task. The returned value is a JSON object containing the following fields:- checklist: An array of checklist items associated with the task - id: The unique identifier for the task - color: A string representing the task label or color code - comments: An array of comment objects related to the task - history: An array that records the chronological history of changes and activity for the task - dueDate: The date and time when the task is due - startDate: The date and time when the task is scheduled to start - priority: The task's priority level (e.g., low, medium, high) - progress: The percentage of task completion - status: The current status of the task (e.g., open, in progress, completed) - swimlane: The swimlane or category the task is assigned to - tags: An array of tags or keywords associated with the task - text: The task title or main summary - description: Detailed information about the task - userId: The identifier of the user currently assigned to the task - createdUserId: The identifier of the user who created the task - createdDate: The date and time when the task was created - updatedUserId: The identifier of the user who last updated the task - updatedDate: The date and time when the task was last updated This structured JSON object enables developers to access all relevant attributes for rendering and managing tasks within an application.
Retrieves detailed information about a specific task. The returned value is a JSON object containing the following fields:
- checklist: An array of checklist items associated with the task
- id: The unique identifier for the task
- color: A string representing the task label or color code
- comments: An array of comment objects related to the task
- history: An array that records the chronological history of changes and activity for the task
- dueDate: The date and time when the task is due
- startDate: The date and time when the task is scheduled to start
- priority: The task's priority level (e.g., low, medium, high)
- progress: The percentage of task completion
- status: The current status of the task (e.g., open, in progress, completed)
- swimlane: The swimlane or category the task is assigned to
- tags: An array of tags or keywords associated with the task
- text: The task title or main summary
- description: Detailed information about the task
- userId: The identifier of the user currently assigned to the task
- createdUserId: The identifier of the user who created the task
- createdDate: The date and time when the task was created
- updatedUserId: The identifier of the user who last updated the task
- updatedDate: The date and time when the task was last updated
This structured JSON object enables developers to access all relevant attributes for rendering and managing tasks within an application.
Arguments
idnumber
The task's id
Returnsany
On the custom element in the DOM (narrow the selector, e.g. to #my-kanban, if you host multiple widgets):
const result = document.querySelector('smart-kanban')?.getTask("2");
hide( column: number | string): voidConceals a specific column within a Kanban board, making its contents and tasks temporarily invisible to users without deleting any data. This action helps declutter the board or focus attention on other columns. The hidden column can typically be shown again through board settings or controls.
Conceals a specific column within a Kanban board, making its contents and tasks temporarily invisible to users without deleting any data. This action helps declutter the board or focus attention on other columns. The hidden column can typically be shown again through board settings or controls.
Arguments
columnnumber | string
The index or dataField of the column to hide
On the custom element in the DOM (narrow the selector, e.g. to #my-kanban, if you host multiple widgets):
document.querySelector('smart-kanban')?.hide("done");
Try a demo showcasing the hide method.
loadState( state?: { collapsed: {}, dataSource: [], filtering: { filters: [], operator: string }, selection: { selected: [], selectionStart?: number | string, selectionInColumn: string, swimlane: string }, sorting: { dataFields: [], dataTypes: [], orderBy: [] }, tabs: [], visibility: { taskActions: boolean, taskComments: boolean, taskDue: boolean, taskPriority: boolean, taskProgress: boolean, taskTags: boolean, taskUserIcon: boolean } }): voidRetrieves and initializes the current state of the Kanban board, including all columns, tasks, and their respective statuses, to ensure the user sees the latest project information.
Retrieves and initializes the current state of the Kanban board, including all columns, tasks, and their respective statuses, to ensure the user sees the latest project information.
Arguments
state?{ collapsed: {}, dataSource: [], filtering: { filters: [], operator: string }, selection: { selected: [], selectionStart?: number | string, selectionInColumn: string, swimlane: string }, sorting: { dataFields: [], dataTypes: [], orderBy: [] }, tabs: [], visibility: { taskActions: boolean, taskComments: boolean, taskDue: boolean, taskPriority: boolean, taskProgress: boolean, taskTags: boolean, taskUserIcon: boolean } }
An object returned by one of the methods getState or saveState. If not passed, gets saved state from the browser's localStorage.
On the custom element in the DOM (narrow the selector, e.g. to #my-kanban, if you host multiple widgets):
document.querySelector('smart-kanban')?.loadState();
Try a demo showcasing the loadState method.
moveTask( task: number | string | HTMLElement, newStatus: string): voidMoves a specified task from its current column to a target column within the workflow or board, updating its status and position accordingly.
Moves a specified task from its current column to a target column within the workflow or board, updating its status and position accordingly.
Arguments
tasknumber | string | HTMLElement
The task's id or corresponding HTMLElement
newStatusstring
The new status of the task (its new column's dataField)
On the custom element in the DOM (narrow the selector, e.g. to #my-kanban, if you host multiple widgets):
document.querySelector('smart-kanban')?.moveTask(11);
Try a demo showcasing the moveTask method.
openCustomizePanel(): voidDisplays the "Customize Tasks" header panel as a dropdown menu, allowing users to access and modify task customization options.
Displays the "Customize Tasks" header panel as a dropdown menu, allowing users to access and modify task customization options.
On the custom element in the DOM (narrow the selector, e.g. to #my-kanban, if you host multiple widgets):
document.querySelector('smart-kanban')?.openCustomizePanel();
Try a demo showcasing the openCustomizePanel method.
openFilterPanel(): voidDisplays the "Filter" panel by opening its dropdown menu in the header section, allowing users to access and apply filtering options.
Displays the "Filter" panel by opening its dropdown menu in the header section, allowing users to access and apply filtering options.
On the custom element in the DOM (narrow the selector, e.g. to #my-kanban, if you host multiple widgets):
document.querySelector('smart-kanban')?.openFilterPanel();
Try a demo showcasing the openFilterPanel method.
openSortPanel(): voidDisplays the "Sort" header panel as a dropdown menu, allowing users to select sorting options for the displayed data.
Displays the "Sort" header panel as a dropdown menu, allowing users to select sorting options for the displayed data.
On the custom element in the DOM (narrow the selector, e.g. to #my-kanban, if you host multiple widgets):
document.querySelector('smart-kanban')?.openSortPanel();
Try a demo showcasing the openSortPanel method.
removeColumn( dataField: string): voidRemoves a specified column from the data set or table, effectively deleting all data contained within that column and updating the structure to reflect its absence. This operation is irreversible and affects any processes or queries that rely on the removed column.
Removes a specified column from the data set or table, effectively deleting all data contained within that column and updating the structure to reflect its absence. This operation is irreversible and affects any processes or queries that rely on the removed column.
Arguments
dataFieldstring
The column's data field
On the custom element in the DOM (narrow the selector, e.g. to #my-kanban, if you host multiple widgets):
document.querySelector('smart-kanban')?.removeColumn("toDo");
Try a demo showcasing the removeColumn method.
removeFilter(): voidRemoves all applied filters, displaying the complete, unfiltered dataset.
Removes all applied filters, displaying the complete, unfiltered dataset.
On the custom element in the DOM (narrow the selector, e.g. to #my-kanban, if you host multiple widgets):
document.querySelector('smart-kanban')?.removeFilter();
Try a demo showcasing the removeFilter method.
removeSort(): voidDisables any previously applied sorting, returning the data to its original, unsorted order.
Disables any previously applied sorting, returning the data to its original, unsorted order.
On the custom element in the DOM (narrow the selector, e.g. to #my-kanban, if you host multiple widgets):
document.querySelector('smart-kanban')?.removeSort();
Try a demo showcasing the removeSort method.
removeTask( task: number | string | HTMLElement, prompt?: boolean): voidDeletes a specified task from the task list, permanently removing it from the data store.
Deletes a specified task from the task list, permanently removing it from the data store.
Arguments
tasknumber | string | HTMLElement
The task's id or corresponding HTMLElement
prompt?boolean
Whether or not to prompt the user before removing the task
On the custom element in the DOM (narrow the selector, e.g. to #my-kanban, if you host multiple widgets):
document.querySelector('smart-kanban')?.removeTask(2);
Try a demo showcasing the removeTask method.
saveState(): voidPersists the current state of the Kanban board—including all columns, cards, and their order—to the browser's localStorage. This ensures that the user's board layout and content are retained and automatically restored when the page is reloaded or the browser is reopened.
Persists the current state of the Kanban board—including all columns, cards, and their order—to the browser's localStorage. This ensures that the user's board layout and content are retained and automatically restored when the page is reloaded or the browser is reopened.
On the custom element in the DOM (narrow the selector, e.g. to #my-kanban, if you host multiple widgets):
document.querySelector('smart-kanban')?.saveState();
Try a demo showcasing the saveState method.
selectTask( task: number | string): voidSelects a specific task from a list or collection, allowing the application to retrieve or highlight the chosen task's details for further actions such as viewing, editing, or managing it.
Selects a specific task from a list or collection, allowing the application to retrieve or highlight the chosen task's details for further actions such as viewing, editing, or managing it.
Arguments
tasknumber | string
The task's id.
On the custom element in the DOM (narrow the selector, e.g. to #my-kanban, if you host multiple widgets):
document.querySelector('smart-kanban')?.selectTask(2);
Try a demo showcasing the selectTask method.
show( column: number | string): voidDisplays a single Kanban column, including the column title and a list of tasks or cards assigned to that column. Ideal for use in Kanban boards to visually organize tasks by status or category within a workflow.
Displays a single Kanban column, including the column title and a list of tasks or cards assigned to that column. Ideal for use in Kanban boards to visually organize tasks by status or category within a workflow.
Arguments
columnnumber | string
The index or dataField of the column to show
On the custom element in the DOM (narrow the selector, e.g. to #my-kanban, if you host multiple widgets):
document.querySelector('smart-kanban')?.show("done");
Try a demo showcasing the show method.
showAllColumns(): voidDisplays a comprehensive list of all Kanban columns, including their names, order, and relevant metadata. This allows users or applications to view the complete structure of the Kanban board and manage workflow stages effectively.
Displays a comprehensive list of all Kanban columns, including their names, order, and relevant metadata. This allows users or applications to view the complete structure of the Kanban board and manage workflow stages effectively.
On the custom element in the DOM (narrow the selector, e.g. to #my-kanban, if you host multiple widgets):
document.querySelector('smart-kanban')?.showAllColumns();
Try a demo showcasing the showAllColumns method.
unselectTask( task: number | string): voidDeselects a previously selected task, removing its active or highlighted status within the user interface.
Deselects a previously selected task, removing its active or highlighted status within the user interface.
Arguments
tasknumber | string
The task's id.
On the custom element in the DOM (narrow the selector, e.g. to #my-kanban, if you host multiple widgets):
document.querySelector('smart-kanban')?.unselectTask(2);
updateColumn( dataField: string, newData: {}): voidUpdates the value of a specified column in a database table. This operation allows you to modify existing data by providing the column name and the new value to be set. Optionally, you can specify conditions to ensure that only rows matching certain criteria are updated.
Updates the value of a specified column in a database table. This operation allows you to modify existing data by providing the column name and the new value to be set. Optionally, you can specify conditions to ensure that only rows matching certain criteria are updated.
Arguments
dataFieldstring
The new column's data field
newData{}
The new data to visualize in the column.
On the custom element in the DOM (narrow the selector, e.g. to #my-kanban, if you host multiple widgets):
document.querySelector('smart-kanban')?.updateColumn("toDo");
Try a demo showcasing the updateColumn method.
updateTask( task: number | string | HTMLElement, newData: {}): voidUpdates the details of an existing task, such as its title, description, status, due date, or assigned user.
Updates the details of an existing task, such as its title, description, status, due date, or assigned user.
Arguments
tasknumber | string | HTMLElement
The task's id or corresponding HTMLElement
newData{}
The new data to visualize in the task.
On the custom element in the DOM (narrow the selector, e.g. to #my-kanban, if you host multiple widgets):
document.querySelector('smart-kanban')?.updateTask(2);
Try a demo showcasing the updateTask method.
CSS Variables
--smart-kanban-default-widthvar()
Default value
"1200px"Default width of Kanban
--smart-kanban-default-heightvar()
Default value
"500px"Default height of Kanban
--smart-kanban-header-sizevar()
Default value
"35px"Header size of Kanban (applies to header and column headers)
--smart-kanban-task-min-widthvar()
Default value
"150px"Min width for Kanban tasks in columns with horizontal orientation
--smart-kanban-task-min-heightvar()
Default value
"80px"Kanban task min height
--smart-kanban-text-max-heightvar()
Default value
"200px"Kanban task text part max height
--smart-kanban-user-icon-sizevar()
Default value
"30px"Kanban user icon size
--smart-kanban-user-list-widthvar()
Default value
"150px"Kanban user list width
--smart-kanban-user-list-max-heightvar()
Default value
"400px"Kanban user list max height
--smart-kanban-comments-list-widthvar()
Default value
"350px"Kanban comments list width
--smart-kanban-comments-list-heightvar()
Default value
"400px"Kanban comments list height
--smart-kanban-new-comment-heightvar()
Default value
"50px"Height of new comment section
--smart-kanban-new-comment-height-expandedvar()
Default value
"175px"Expanded height of new comment section
--smart-kanban-send-button-heightvar()
Default value
"30px"Height of Send button in new comment section
--smart-kanban-color-band-widthvar()
Default value
"3px"Kanban color band width (i.e. left border of tasks)
--smart-data-view-paddingvar()
Default value
"10px"Padding of the CardView and Kanban
--smart-data-view-customize-panel-widthvar()
Default value
"200px"Width of the CardView and Kanban customize panel (drop down).
--smart-data-view-filter-panel-widthvar()
Default value
"550px"Width of the CardView and Kanban filter panel (drop down).
--smart-data-view-sort-panel-widthvar()
Default value
"400px"Width of the CardView and Kanban sort panel (drop down).
--smart-data-view-search-panel-widthvar()
Default value
"250px"Width of the CardView and Kanban search panel (drop down).
--smart-kanban-add-new-column-widthvar()
Default value
"1fr"Kanban "+ New status" column width.