@progress/kendo-react-taskboard 6.1.1 → 7.0.0-develop.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +1 -1
- package/{dist/es/TaskBoard.d.ts → TaskBoard.d.ts} +4 -0
- package/{dist/npm/TaskBoardAddCard.d.ts → TaskBoardAddCard.d.ts} +4 -0
- package/{dist/npm/TaskBoardCardBase.d.ts → TaskBoardCardBase.d.ts} +5 -1
- package/{dist/npm/TaskBoardColumnBase.d.ts → TaskBoardColumnBase.d.ts} +5 -1
- package/{dist/es/TaskBoardConfirmDialog.d.ts → TaskBoardConfirmDialog.d.ts} +4 -0
- package/{dist/npm/TaskBoardEditCard.d.ts → TaskBoardEditCard.d.ts} +4 -0
- package/{dist/es/TaskBoardTaskEditPane.d.ts → TaskBoardTaskEditPane.d.ts} +4 -0
- package/{dist/npm/TaskBoardToolbar.d.ts → TaskBoardToolbar.d.ts} +4 -0
- package/{dist/es/card → card}/Card.d.ts +4 -0
- package/{dist/es/card → card}/CardBody.d.ts +4 -0
- package/{dist/npm/card → card}/CardHeader.d.ts +4 -0
- package/{dist/es/card → card}/PreviewDialog.d.ts +4 -0
- package/{dist/es/column → column}/Column.d.ts +4 -0
- package/{dist/npm/column → column}/ColumnBody.d.ts +4 -0
- package/{dist/npm/column → column}/ColumnHeader.d.ts +4 -0
- package/{dist/es/constants.d.ts → constants.d.ts} +4 -0
- package/dist/cdn/js/kendo-react-taskboard.js +5 -1
- package/{dist/npm/hooks → hooks}/taskEditing.d.ts +4 -0
- package/index.d.ts +18 -0
- package/index.js +5 -0
- package/index.mjs +834 -0
- package/{dist/es/messages → messages}/index.d.ts +4 -0
- package/package-metadata.d.ts +9 -0
- package/package.json +38 -56
- package/{dist/npm/utils.d.ts → utils.d.ts} +5 -1
- package/about.md +0 -3
- package/dist/es/TaskBoard.js +0 -270
- package/dist/es/TaskBoardAddCard.d.ts +0 -28
- package/dist/es/TaskBoardAddCard.js +0 -14
- package/dist/es/TaskBoardCardBase.d.ts +0 -60
- package/dist/es/TaskBoardCardBase.js +0 -95
- package/dist/es/TaskBoardColumnBase.d.ts +0 -76
- package/dist/es/TaskBoardColumnBase.js +0 -92
- package/dist/es/TaskBoardConfirmDialog.js +0 -24
- package/dist/es/TaskBoardEditCard.d.ts +0 -16
- package/dist/es/TaskBoardEditCard.js +0 -14
- package/dist/es/TaskBoardTaskEditPane.js +0 -35
- package/dist/es/TaskBoardToolbar.d.ts +0 -22
- package/dist/es/TaskBoardToolbar.js +0 -15
- package/dist/es/card/Card.js +0 -33
- package/dist/es/card/CardBody.js +0 -9
- package/dist/es/card/CardHeader.d.ts +0 -53
- package/dist/es/card/CardHeader.js +0 -19
- package/dist/es/card/PreviewDialog.js +0 -26
- package/dist/es/column/Column.js +0 -34
- package/dist/es/column/ColumnBody.d.ts +0 -14
- package/dist/es/column/ColumnBody.js +0 -9
- package/dist/es/column/ColumnHeader.d.ts +0 -52
- package/dist/es/column/ColumnHeader.js +0 -19
- package/dist/es/constants.js +0 -20
- package/dist/es/hooks/taskEditing.d.ts +0 -19
- package/dist/es/hooks/taskEditing.js +0 -32
- package/dist/es/main.d.ts +0 -14
- package/dist/es/main.js +0 -14
- package/dist/es/messages/index.js +0 -151
- package/dist/es/package-metadata.d.ts +0 -5
- package/dist/es/package-metadata.js +0 -11
- package/dist/es/utils.d.ts +0 -25
- package/dist/es/utils.js +0 -81
- package/dist/npm/TaskBoard.d.ts +0 -145
- package/dist/npm/TaskBoard.js +0 -273
- package/dist/npm/TaskBoardAddCard.js +0 -18
- package/dist/npm/TaskBoardCardBase.js +0 -99
- package/dist/npm/TaskBoardColumnBase.js +0 -96
- package/dist/npm/TaskBoardConfirmDialog.d.ts +0 -34
- package/dist/npm/TaskBoardConfirmDialog.js +0 -28
- package/dist/npm/TaskBoardEditCard.js +0 -18
- package/dist/npm/TaskBoardTaskEditPane.d.ts +0 -89
- package/dist/npm/TaskBoardTaskEditPane.js +0 -39
- package/dist/npm/TaskBoardToolbar.js +0 -19
- package/dist/npm/card/Card.d.ts +0 -141
- package/dist/npm/card/Card.js +0 -37
- package/dist/npm/card/CardBody.d.ts +0 -19
- package/dist/npm/card/CardBody.js +0 -13
- package/dist/npm/card/CardHeader.js +0 -23
- package/dist/npm/card/PreviewDialog.d.ts +0 -47
- package/dist/npm/card/PreviewDialog.js +0 -30
- package/dist/npm/column/Column.d.ts +0 -158
- package/dist/npm/column/Column.js +0 -38
- package/dist/npm/column/ColumnBody.js +0 -13
- package/dist/npm/column/ColumnHeader.js +0 -23
- package/dist/npm/constants.d.ts +0 -20
- package/dist/npm/constants.js +0 -23
- package/dist/npm/hooks/taskEditing.js +0 -36
- package/dist/npm/main.d.ts +0 -14
- package/dist/npm/main.js +0 -31
- package/dist/npm/messages/index.d.ts +0 -150
- package/dist/npm/messages/index.js +0 -154
- package/dist/npm/package-metadata.d.ts +0 -5
- package/dist/npm/package-metadata.js +0 -14
- package/dist/npm/utils.js +0 -88
- package/dist/systemjs/kendo-react-taskboard.js +0 -1
- package/e2e-next/basic.tests.ts +0 -24
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright © 2023 Progress Software Corporation. All rights reserved.
|
|
3
|
+
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
4
|
+
*-------------------------------------------------------------------------------------------*/
|
|
1
5
|
/**
|
|
2
6
|
* @hidden
|
|
3
7
|
*/
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright © 2023 Progress Software Corporation. All rights reserved.
|
|
3
|
+
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
4
|
+
*-------------------------------------------------------------------------------------------*/
|
|
5
|
+
import { PackageMetadata } from '@progress/kendo-licensing';
|
|
6
|
+
/**
|
|
7
|
+
* @hidden
|
|
8
|
+
*/
|
|
9
|
+
export declare const packageMetadata: PackageMetadata;
|
package/package.json
CHANGED
|
@@ -1,22 +1,40 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@progress/kendo-react-taskboard",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "7.0.0-develop.2",
|
|
4
4
|
"description": "KendoReact TaskBoard package",
|
|
5
|
-
"
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
"author": "Progress",
|
|
6
|
+
"license": "SEE LICENSE IN LICENSE.md",
|
|
7
|
+
"homepage": "https://www.telerik.com/kendo-react-ui",
|
|
8
|
+
"main": "./index.js",
|
|
9
|
+
"types": "./index.d.ts",
|
|
10
|
+
"exports": {
|
|
11
|
+
".": {
|
|
12
|
+
"import": "./index.mjs",
|
|
13
|
+
"require": "./index.js"
|
|
14
|
+
}
|
|
8
15
|
},
|
|
9
|
-
"
|
|
10
|
-
"
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
"
|
|
16
|
+
"sideEffects": false,
|
|
17
|
+
"peerDependencies": {
|
|
18
|
+
"@progress/kendo-data-query": "^1.0.0",
|
|
19
|
+
"@progress/kendo-licensing": "^1.3.0",
|
|
20
|
+
"@progress/kendo-react-buttons": "7.0.0-develop.2",
|
|
21
|
+
"@progress/kendo-react-common": "7.0.0-develop.2",
|
|
22
|
+
"@progress/kendo-react-dialogs": "7.0.0-develop.2",
|
|
23
|
+
"@progress/kendo-react-dropdowns": "7.0.0-develop.2",
|
|
24
|
+
"@progress/kendo-react-form": "7.0.0-develop.2",
|
|
25
|
+
"@progress/kendo-react-indicators": "7.0.0-develop.2",
|
|
26
|
+
"@progress/kendo-react-inputs": "7.0.0-develop.2",
|
|
27
|
+
"@progress/kendo-react-intl": "7.0.0-develop.2",
|
|
28
|
+
"@progress/kendo-react-labels": "7.0.0-develop.2",
|
|
29
|
+
"@progress/kendo-react-layout": "7.0.0-develop.2",
|
|
30
|
+
"@progress/kendo-react-popup": "7.0.0-develop.2",
|
|
31
|
+
"@progress/kendo-svg-icons": "^2.0.0",
|
|
32
|
+
"react": "^16.8.2 || ^17.0.0 || ^18.0.0",
|
|
33
|
+
"react-dom": "^16.8.2 || ^17.0.0 || ^18.0.0"
|
|
34
|
+
},
|
|
35
|
+
"dependencies": {
|
|
36
|
+
"prop-types": "^15.6.0"
|
|
18
37
|
},
|
|
19
|
-
"homepage": "https://www.telerik.com/kendo-react-ui",
|
|
20
38
|
"keywords": [
|
|
21
39
|
"Kendo UI",
|
|
22
40
|
"React",
|
|
@@ -29,51 +47,15 @@
|
|
|
29
47
|
"React component",
|
|
30
48
|
"Telerik"
|
|
31
49
|
],
|
|
32
|
-
"peerDependencies": {
|
|
33
|
-
"@progress/kendo-data-query": "^1.0.0",
|
|
34
|
-
"@progress/kendo-licensing": "^1.3.0",
|
|
35
|
-
"@progress/kendo-react-buttons": "^6.0.0",
|
|
36
|
-
"@progress/kendo-react-dialogs": "^6.0.0",
|
|
37
|
-
"@progress/kendo-react-dropdowns": "^6.0.0",
|
|
38
|
-
"@progress/kendo-react-form": "^6.0.0",
|
|
39
|
-
"@progress/kendo-react-indicators": "^6.0.0",
|
|
40
|
-
"@progress/kendo-react-inputs": "^6.0.0",
|
|
41
|
-
"@progress/kendo-react-intl": "^6.0.0",
|
|
42
|
-
"@progress/kendo-react-labels": "^6.0.0",
|
|
43
|
-
"@progress/kendo-react-layout": "^6.0.0",
|
|
44
|
-
"@progress/kendo-react-popup": "^6.0.0",
|
|
45
|
-
"@progress/kendo-svg-icons": "^2.0.0",
|
|
46
|
-
"react": "^16.8.2 || ^17.0.0 || ^18.0.0",
|
|
47
|
-
"react-dom": "^16.8.2 || ^17.0.0 || ^18.0.0"
|
|
48
|
-
},
|
|
49
|
-
"dependencies": {
|
|
50
|
-
"@progress/kendo-react-common": "6.1.1",
|
|
51
|
-
"prop-types": "^15.6.0"
|
|
52
|
-
},
|
|
53
|
-
"devDependencies": {
|
|
54
|
-
"@progress/kendo-data-query": "^1.0.0",
|
|
55
|
-
"@progress/kendo-drawing": "^1.17.2",
|
|
56
|
-
"@progress/kendo-licensing": "^1.3.0",
|
|
57
|
-
"@progress/kendo-react-buttons": "6.1.1",
|
|
58
|
-
"@progress/kendo-react-dialogs": "6.1.1",
|
|
59
|
-
"@progress/kendo-react-dropdowns": "6.1.1",
|
|
60
|
-
"@progress/kendo-react-form": "6.1.1",
|
|
61
|
-
"@progress/kendo-react-indicators": "6.1.1",
|
|
62
|
-
"@progress/kendo-react-inputs": "6.1.1",
|
|
63
|
-
"@progress/kendo-react-intl": "6.1.1",
|
|
64
|
-
"@progress/kendo-react-labels": "6.1.1",
|
|
65
|
-
"@progress/kendo-react-layout": "6.1.1",
|
|
66
|
-
"@progress/kendo-react-popup": "6.1.1",
|
|
67
|
-
"@progress/kendo-svg-icons": "^2.0.0"
|
|
68
|
-
},
|
|
69
50
|
"@progress": {
|
|
70
51
|
"friendlyName": "TaskBoard",
|
|
71
52
|
"framework": "KendoReact"
|
|
72
53
|
},
|
|
73
|
-
"
|
|
74
|
-
|
|
54
|
+
"repository": {
|
|
55
|
+
"type": "git",
|
|
56
|
+
"url": "git+https://github.com/telerik/kendo-react.git"
|
|
57
|
+
},
|
|
75
58
|
"publishConfig": {
|
|
76
59
|
"access": "public"
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright © 2023 Progress Software Corporation. All rights reserved.
|
|
3
|
+
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
4
|
+
*-------------------------------------------------------------------------------------------*/
|
|
1
5
|
import { ListItemProps } from '@progress/kendo-react-dropdowns';
|
|
2
6
|
import * as React from 'react';
|
|
3
7
|
/**
|
|
@@ -22,4 +26,4 @@ export declare const itemRender: (li: React.ReactElement<HTMLLIElement>, itemPro
|
|
|
22
26
|
/**
|
|
23
27
|
* @hidden
|
|
24
28
|
*/
|
|
25
|
-
export declare const valueRender: (element:
|
|
29
|
+
export declare const valueRender: (element: any, value: any) => any;
|
package/about.md
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
<a href="https://www.telerik.com/kendo-react-ui?utm_medium=referral&utm_source=npm&utm_campaign=kendo-ui-react-trial-npm-taskboard&utm_content=banner" target="_blank">
|
|
2
|
-
<img src="https://www.telerik.com/kendo-react-ui/components/npm-banner.svg" alt="KendoReact NPM Banner">
|
|
3
|
-
</a>
|
package/dist/es/TaskBoard.js
DELETED
|
@@ -1,270 +0,0 @@
|
|
|
1
|
-
var __assign = (this && this.__assign) || function () {
|
|
2
|
-
__assign = Object.assign || function(t) {
|
|
3
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
-
s = arguments[i];
|
|
5
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
-
t[p] = s[p];
|
|
7
|
-
}
|
|
8
|
-
return t;
|
|
9
|
-
};
|
|
10
|
-
return __assign.apply(this, arguments);
|
|
11
|
-
};
|
|
12
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
13
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
14
|
-
if (ar || !(i in from)) {
|
|
15
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
16
|
-
ar[i] = from[i];
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
20
|
-
};
|
|
21
|
-
import * as React from 'react';
|
|
22
|
-
import * as PropTypes from 'prop-types';
|
|
23
|
-
import { validatePackage } from '@progress/kendo-licensing';
|
|
24
|
-
import { packageMetadata } from './package-metadata';
|
|
25
|
-
import { classNames, useDraggable, clone, noop } from '@progress/kendo-react-common';
|
|
26
|
-
import { TaskBoardColumnBase } from './TaskBoardColumnBase';
|
|
27
|
-
import { TaskBoardCardBase } from './TaskBoardCardBase';
|
|
28
|
-
import { TASKBOARD_COLUMN, TASKBOARD_PLACEHOLDER, TASKBOARD_TASK } from './constants';
|
|
29
|
-
import { closestTaskBoardElement, findIndexes } from './utils';
|
|
30
|
-
import { TaskBoardCard } from './card/Card';
|
|
31
|
-
import { TaskBoardColumn } from './column/Column';
|
|
32
|
-
/**
|
|
33
|
-
* Represents the [KendoReact TaskBoard component]({% slug overview_taskboard %}).
|
|
34
|
-
*
|
|
35
|
-
* Accepts properties of type [TaskBoardProps]({% slug api_taskboard_taskboardprops %}).
|
|
36
|
-
*/
|
|
37
|
-
export var TaskBoard = React.forwardRef(function (props, ref) {
|
|
38
|
-
validatePackage(packageMetadata);
|
|
39
|
-
var _a = props.columnData, columnData = _a === void 0 ? [] : _a, className = props.className, style = props.style, id = props.id, _b = props.taskData, taskData = _b === void 0 ? [] : _b, onChange = props.onChange;
|
|
40
|
-
var taskboardRef = React.useRef(null);
|
|
41
|
-
var taskboardElementRef = React.useRef(null);
|
|
42
|
-
React.useImperativeHandle(taskboardRef, function () {
|
|
43
|
-
return { props: props };
|
|
44
|
-
});
|
|
45
|
-
React.useImperativeHandle(ref, function () { return taskboardRef.current; });
|
|
46
|
-
var children = React.Children.toArray(props.children);
|
|
47
|
-
var toolbar = children.filter(function (child) { return child && child.type &&
|
|
48
|
-
child.type.displayName === 'KendoReactTaskBoardToolbar'; });
|
|
49
|
-
var elementRef = React.useRef(null);
|
|
50
|
-
var dragTargetRef = React.useRef(null);
|
|
51
|
-
var pressOffsetRef = React.useRef(null);
|
|
52
|
-
var _c = React.useState(null), taskDataState = _c[0], setTaskDataState = _c[1];
|
|
53
|
-
var _d = React.useState(null), columnDataState = _d[0], setColumnDataState = _d[1];
|
|
54
|
-
var _e = React.useState({ top: 0, left: 0 }), position = _e[0], setPosition = _e[1];
|
|
55
|
-
var dragCardCueRef = React.useRef(null);
|
|
56
|
-
var dragColumnCueRef = React.useRef(null);
|
|
57
|
-
var tasksMap = React.useMemo(function () {
|
|
58
|
-
var map = {};
|
|
59
|
-
(taskDataState || taskData).forEach(function (task) {
|
|
60
|
-
var currentStatus = task.status;
|
|
61
|
-
if (!map[currentStatus]) {
|
|
62
|
-
map[currentStatus] = [];
|
|
63
|
-
}
|
|
64
|
-
map[currentStatus].push(task);
|
|
65
|
-
});
|
|
66
|
-
return map;
|
|
67
|
-
}, [taskData, taskDataState]);
|
|
68
|
-
var handlePress = React.useCallback(function (event) {
|
|
69
|
-
var target = event.originalEvent.target;
|
|
70
|
-
if (target.closest('button,input,.k-link,.k-taskboard-preview-pane')) {
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
var currentDragTarget = closestTaskBoardElement(target);
|
|
74
|
-
var taskboardEl = taskboardElementRef.current;
|
|
75
|
-
if (currentDragTarget && taskboardEl) {
|
|
76
|
-
var isColumn = currentDragTarget.type === TASKBOARD_COLUMN;
|
|
77
|
-
if (isColumn && !target.closest('.k-taskboard-column-header')) {
|
|
78
|
-
return;
|
|
79
|
-
}
|
|
80
|
-
var dragElement = currentDragTarget.element;
|
|
81
|
-
var rect = dragElement.getBoundingClientRect();
|
|
82
|
-
var parentRect = taskboardEl.getBoundingClientRect();
|
|
83
|
-
pressOffsetRef.current = {
|
|
84
|
-
x: event.clientX - rect.left + parentRect.left,
|
|
85
|
-
y: event.clientY - rect.top + parentRect.top
|
|
86
|
-
};
|
|
87
|
-
var data = isColumn ? columnData : taskData;
|
|
88
|
-
var stateSetter = isColumn ? setColumnDataState : setTaskDataState;
|
|
89
|
-
var index = data.findIndex(function (dataItem) { return String(dataItem.id) === currentDragTarget.id; });
|
|
90
|
-
var item = data[index];
|
|
91
|
-
if (index === -1 || item.edit) {
|
|
92
|
-
return;
|
|
93
|
-
}
|
|
94
|
-
var newItem = clone(item);
|
|
95
|
-
newItem.isPlaceholder = true;
|
|
96
|
-
var newData = __spreadArray([], data, true);
|
|
97
|
-
newData[index] = newItem;
|
|
98
|
-
dragTargetRef.current = __assign(__assign({}, currentDragTarget), { index: index, item: item, width: rect.width, height: rect.height });
|
|
99
|
-
setPosition({
|
|
100
|
-
top: event.clientY - pressOffsetRef.current.y,
|
|
101
|
-
left: event.clientX - pressOffsetRef.current.x
|
|
102
|
-
});
|
|
103
|
-
stateSetter(newData);
|
|
104
|
-
}
|
|
105
|
-
}, [columnData, taskData]);
|
|
106
|
-
var handleDrag = React.useCallback(function (event) {
|
|
107
|
-
var currentDragTarget = dragTargetRef.current;
|
|
108
|
-
var dragCueElement = (dragCardCueRef.current && dragCardCueRef.current.element) || dragColumnCueRef.current;
|
|
109
|
-
if (currentDragTarget && dragCueElement) {
|
|
110
|
-
setPosition({
|
|
111
|
-
top: event.clientY - pressOffsetRef.current.y,
|
|
112
|
-
left: event.clientX - pressOffsetRef.current.x
|
|
113
|
-
});
|
|
114
|
-
dragCueElement.style.visibility = 'hidden';
|
|
115
|
-
var targetElement = document.elementFromPoint(event.clientX, event.clientY);
|
|
116
|
-
dragCueElement.style.visibility = '';
|
|
117
|
-
if (targetElement && targetElement.getAttribute(TASKBOARD_PLACEHOLDER)) {
|
|
118
|
-
return;
|
|
119
|
-
}
|
|
120
|
-
var dropTarget_1 = targetElement && closestTaskBoardElement(targetElement);
|
|
121
|
-
if (dropTarget_1) {
|
|
122
|
-
var indexes = void 0;
|
|
123
|
-
var isSameType = dropTarget_1.type === currentDragTarget.type;
|
|
124
|
-
var isDragTargetColumn = currentDragTarget.type === TASKBOARD_COLUMN;
|
|
125
|
-
var data = (isDragTargetColumn ? columnDataState : taskDataState) || [];
|
|
126
|
-
var stateSetter = isDragTargetColumn ? setColumnDataState : setTaskDataState;
|
|
127
|
-
if (isDragTargetColumn || isSameType) {
|
|
128
|
-
indexes = findIndexes(currentDragTarget.id, dropTarget_1.id, data);
|
|
129
|
-
if (indexes) {
|
|
130
|
-
var dragItem = data[indexes.dragIndex];
|
|
131
|
-
var dropItem = data[indexes.dropIndex];
|
|
132
|
-
var newDragItem = clone(dragItem);
|
|
133
|
-
if (!isDragTargetColumn) {
|
|
134
|
-
newDragItem.status = dropItem.status;
|
|
135
|
-
}
|
|
136
|
-
var newData = __spreadArray([], data, true);
|
|
137
|
-
newData.splice(indexes.dragIndex, 1);
|
|
138
|
-
newData.splice(indexes.dropIndex, 0, newDragItem);
|
|
139
|
-
currentDragTarget.index = indexes.dropIndex;
|
|
140
|
-
stateSetter(newData);
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
else {
|
|
144
|
-
var taskIndex = data.findIndex(function (item) { return String(item.id) === currentDragTarget.id; });
|
|
145
|
-
var columnIndex = columnData.findIndex(function (item) { return String(item.id) === dropTarget_1.id; });
|
|
146
|
-
if (taskIndex !== -1 && columnIndex !== -1) {
|
|
147
|
-
var task = data[taskIndex];
|
|
148
|
-
var column = columnData[columnIndex];
|
|
149
|
-
var columnStatus = column.status;
|
|
150
|
-
if (tasksMap[columnStatus]) {
|
|
151
|
-
return;
|
|
152
|
-
}
|
|
153
|
-
task.status = columnStatus;
|
|
154
|
-
var newData = __spreadArray([], data, true);
|
|
155
|
-
newData.splice(taskIndex, 1);
|
|
156
|
-
newData.push(task);
|
|
157
|
-
currentDragTarget.index = newData.length - 1;
|
|
158
|
-
stateSetter(newData);
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
}, [columnDataState, taskDataState, columnData, tasksMap]);
|
|
164
|
-
var handleRelease = React.useCallback(function () {
|
|
165
|
-
var currentDragTarget = dragTargetRef.current;
|
|
166
|
-
if (onChange && currentDragTarget) {
|
|
167
|
-
var isDragTargetColumn = currentDragTarget.type === TASKBOARD_COLUMN;
|
|
168
|
-
var data = (isDragTargetColumn ? columnDataState : taskDataState) || [];
|
|
169
|
-
var item = data[currentDragTarget.index];
|
|
170
|
-
delete item.isPlaceholder;
|
|
171
|
-
var event_1 = {
|
|
172
|
-
data: data,
|
|
173
|
-
type: currentDragTarget.type,
|
|
174
|
-
previousItem: currentDragTarget.item,
|
|
175
|
-
item: item
|
|
176
|
-
};
|
|
177
|
-
onChange.call(undefined, event_1);
|
|
178
|
-
}
|
|
179
|
-
dragTargetRef.current = null;
|
|
180
|
-
pressOffsetRef.current = null;
|
|
181
|
-
setTaskDataState(null);
|
|
182
|
-
setColumnDataState(null);
|
|
183
|
-
setPosition({ top: 0, left: 0 });
|
|
184
|
-
}, [columnDataState, taskDataState, onChange]);
|
|
185
|
-
useDraggable(elementRef, {
|
|
186
|
-
onDragStart: handlePress,
|
|
187
|
-
onDrag: handleDrag,
|
|
188
|
-
onDragEnd: handleRelease
|
|
189
|
-
});
|
|
190
|
-
var dragTarget = dragTargetRef.current;
|
|
191
|
-
var onTaskCreate = React.useCallback(function (newTask) {
|
|
192
|
-
var tasks = __spreadArray(__spreadArray([], taskData, true), [newTask], false);
|
|
193
|
-
var event = {
|
|
194
|
-
data: tasks,
|
|
195
|
-
type: TASKBOARD_TASK,
|
|
196
|
-
previousItem: null,
|
|
197
|
-
item: newTask
|
|
198
|
-
};
|
|
199
|
-
onChange.call(undefined, event);
|
|
200
|
-
}, [onChange, taskData]);
|
|
201
|
-
var onTaskEdit = React.useCallback(function (task, prevTask) {
|
|
202
|
-
var tasks = taskData.slice();
|
|
203
|
-
var index = taskData.indexOf(prevTask);
|
|
204
|
-
if (index !== -1) {
|
|
205
|
-
tasks.splice(index, 1, task);
|
|
206
|
-
}
|
|
207
|
-
var event = {
|
|
208
|
-
data: tasks,
|
|
209
|
-
type: TASKBOARD_TASK,
|
|
210
|
-
previousItem: prevTask,
|
|
211
|
-
item: task
|
|
212
|
-
};
|
|
213
|
-
onChange.call(undefined, event);
|
|
214
|
-
}, [onChange, taskData]);
|
|
215
|
-
var onTaskDelete = React.useCallback(function (task) {
|
|
216
|
-
var tasks = taskData.filter(function (t) { return t !== task; });
|
|
217
|
-
var event = {
|
|
218
|
-
data: tasks,
|
|
219
|
-
type: TASKBOARD_TASK,
|
|
220
|
-
previousItem: task,
|
|
221
|
-
item: null
|
|
222
|
-
};
|
|
223
|
-
onChange.call(undefined, event);
|
|
224
|
-
}, [onChange, taskData]);
|
|
225
|
-
var onColumnChange = React.useCallback(function (newColumn, prevColumn) {
|
|
226
|
-
var data = columnData.slice();
|
|
227
|
-
var index = data.indexOf(prevColumn);
|
|
228
|
-
if (index !== -1) {
|
|
229
|
-
if (newColumn) {
|
|
230
|
-
data.splice(index, 1, newColumn);
|
|
231
|
-
}
|
|
232
|
-
else {
|
|
233
|
-
data.splice(index, 1);
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
var event = {
|
|
237
|
-
data: data,
|
|
238
|
-
type: TASKBOARD_COLUMN,
|
|
239
|
-
previousItem: prevColumn,
|
|
240
|
-
item: newColumn
|
|
241
|
-
};
|
|
242
|
-
onChange.call(undefined, event);
|
|
243
|
-
}, [onChange, columnData]);
|
|
244
|
-
return (React.createElement("div", { id: id, style: style, ref: taskboardElementRef, className: classNames('k-widget k-taskboard', className) },
|
|
245
|
-
toolbar,
|
|
246
|
-
React.createElement("div", { className: 'k-taskboard-content', style: dragTarget ? { userSelect: 'none' } : undefined },
|
|
247
|
-
React.createElement("div", { className: 'k-taskboard-columns-container', ref: elementRef }, (columnDataState || columnData).map(function (column) { return (React.createElement(TaskBoardColumnBase, { key: column.id, tabIndex: props.tabIndex, column: column, tasks: tasksMap[column.status] || [], dragTargetRef: dragTargetRef, onTaskCreate: onTaskCreate, onTaskEdit: onTaskEdit, onTaskDelete: onTaskDelete, onColumnChange: onColumnChange, columnComponent: props.column || TaskBoardColumn, cardComponent: props.card || TaskBoardCard, priorities: props.priorities })); }))),
|
|
248
|
-
dragTarget && dragTarget.type === TASKBOARD_TASK && (React.createElement(TaskBoardCardBase, { elementRef: dragCardCueRef, style: {
|
|
249
|
-
position: 'absolute',
|
|
250
|
-
width: dragTarget.width,
|
|
251
|
-
height: dragTarget.height,
|
|
252
|
-
top: position.top,
|
|
253
|
-
left: position.left,
|
|
254
|
-
zIndex: 10,
|
|
255
|
-
borderLeftColor: dragTarget.item.priority ? dragTarget.item.priority.color : dragTarget.item.color
|
|
256
|
-
}, task: dragTarget.item, dragTargetRef: dragTargetRef, cardComponent: props.card || TaskBoardCard, onDeleteTask: noop, showEditPane: noop })),
|
|
257
|
-
dragTarget && dragTarget.type === TASKBOARD_COLUMN && (React.createElement(TaskBoardColumnBase, { elementRef: dragColumnCueRef, style: {
|
|
258
|
-
position: 'absolute',
|
|
259
|
-
width: dragTarget.width,
|
|
260
|
-
height: dragTarget.height,
|
|
261
|
-
top: position.top,
|
|
262
|
-
left: position.left,
|
|
263
|
-
zIndex: 10
|
|
264
|
-
}, cardComponent: props.card || TaskBoardCard, columnComponent: props.column || TaskBoardColumn, column: dragTarget.item, tasks: tasksMap[dragTarget.item.status], priorities: props.priorities, dragTargetRef: dragTargetRef, onTaskDelete: onTaskDelete, onColumnChange: onColumnChange, onTaskEdit: onTaskEdit, onTaskCreate: onTaskCreate }))));
|
|
265
|
-
});
|
|
266
|
-
TaskBoard.propTypes = {
|
|
267
|
-
columnData: PropTypes.array.isRequired,
|
|
268
|
-
taskData: PropTypes.array.isRequired
|
|
269
|
-
};
|
|
270
|
-
TaskBoard.displayName = 'KendoReactTaskBoard';
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { TaskBoardTaskEditPaneProps } from './TaskBoardTaskEditPane';
|
|
3
|
-
import { TaskBoardPriority, TaskBoardTaskModel } from './TaskBoard';
|
|
4
|
-
/**
|
|
5
|
-
* Represents the props of the TaskBoardAddCard component
|
|
6
|
-
*/
|
|
7
|
-
export interface TaskBoardAddCardProps {
|
|
8
|
-
/**
|
|
9
|
-
* Represent the priorities of the task board card.
|
|
10
|
-
*/
|
|
11
|
-
priorities: TaskBoardPriority[];
|
|
12
|
-
/**
|
|
13
|
-
* Triggered on `onClose` event of the TaskBoardAddCard.
|
|
14
|
-
*/
|
|
15
|
-
onClose: (event: React.MouseEvent<HTMLButtonElement>) => void;
|
|
16
|
-
/**
|
|
17
|
-
* Triggered on `onSave` event of the TaskBoardAddCard.
|
|
18
|
-
*/
|
|
19
|
-
onSave: (task: TaskBoardTaskModel, prevTask: TaskBoardTaskModel) => void;
|
|
20
|
-
/**
|
|
21
|
-
* Specifies the TaskBoardTaskEditPane component.
|
|
22
|
-
*/
|
|
23
|
-
editPane: React.ComponentType<TaskBoardTaskEditPaneProps>;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Represents the TaskBoardAddCard component.
|
|
27
|
-
*/
|
|
28
|
-
export declare const TaskBoardAddCard: React.FunctionComponent<TaskBoardAddCardProps>;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { useLocalization } from '@progress/kendo-react-intl';
|
|
3
|
-
import { messages, taskBoardAddCardPaneTitle, taskBoardAddCardTitleLabel, taskBoardAddCardDescriptionLabel, taskBoardAddCardCreateButton, taskBoardEditPaneCancelBtn, taskBoardEditPaneTitleLabel, taskBoardEditPaneDescriptionLabel, taskBoardEditPanePriorityLabel, taskBoardAddCardPriorityLabel } from './messages';
|
|
4
|
-
import { useTaskEditing } from './hooks/taskEditing';
|
|
5
|
-
/**
|
|
6
|
-
* Represents the TaskBoardAddCard component.
|
|
7
|
-
*/
|
|
8
|
-
export var TaskBoardAddCard = function (props) {
|
|
9
|
-
var _a = useTaskEditing(props), onTitleChange = _a.onTitleChange, title = _a.title, onDescriptionChange = _a.onDescriptionChange, description = _a.description, onPriorityChange = _a.onPriorityChange, priority = _a.priority, onSave = _a.onSave;
|
|
10
|
-
var localization = useLocalization();
|
|
11
|
-
return (React.createElement(props.editPane, { header: localization.toLanguageString(taskBoardAddCardPaneTitle, messages[taskBoardAddCardPaneTitle]), titleInputTitle: localization.toLanguageString(taskBoardAddCardTitleLabel, messages[taskBoardAddCardTitleLabel]), descriptionInputTitle: localization.toLanguageString(taskBoardAddCardDescriptionLabel, messages[taskBoardAddCardDescriptionLabel]), priorityDropDownTitle: localization.toLanguageString(taskBoardAddCardPriorityLabel, messages[taskBoardAddCardPriorityLabel]), titleLabel: localization.toLanguageString(taskBoardEditPaneTitleLabel, messages[taskBoardEditPaneTitleLabel]), descriptionLabel: localization.toLanguageString(taskBoardEditPaneDescriptionLabel, messages[taskBoardEditPaneDescriptionLabel]), priorityLabel: localization.toLanguageString(taskBoardEditPanePriorityLabel, messages[taskBoardEditPanePriorityLabel]), saveButton: localization.toLanguageString(taskBoardAddCardCreateButton, messages[taskBoardAddCardCreateButton]), cancelButton: localization.toLanguageString(taskBoardEditPaneCancelBtn, messages[taskBoardEditPaneCancelBtn]), priorities: props.priorities, onSave: onSave, onClose: props.onClose, onTitleChange: onTitleChange, title: title, onDescriptionChange: onDescriptionChange, description: description, onPriorityChange: onPriorityChange, priority: priority }));
|
|
12
|
-
};
|
|
13
|
-
TaskBoardAddCard.propTypes = {};
|
|
14
|
-
TaskBoardAddCard.displayName = 'KendoReactTaskBoardAddCard';
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { CardHandle } from '@progress/kendo-react-layout';
|
|
3
|
-
import { TaskBoardCardProps } from './card/Card';
|
|
4
|
-
import { TaskBoardTaskModel } from './TaskBoard';
|
|
5
|
-
/**
|
|
6
|
-
* Represents the props of the TaskBoardCardBase component
|
|
7
|
-
*
|
|
8
|
-
* @hidden
|
|
9
|
-
*/
|
|
10
|
-
export interface TaskBoardCardBaseProps {
|
|
11
|
-
/**
|
|
12
|
-
* The task of the TaskBoardCardBase.
|
|
13
|
-
*/
|
|
14
|
-
task: TaskBoardTaskModel;
|
|
15
|
-
/**
|
|
16
|
-
* The styles for the TaskBoardCardBase.
|
|
17
|
-
*/
|
|
18
|
-
style?: React.CSSProperties;
|
|
19
|
-
/**
|
|
20
|
-
* Determines the disabled mode.
|
|
21
|
-
*/
|
|
22
|
-
disabled?: boolean;
|
|
23
|
-
/**
|
|
24
|
-
* Specifies the `tabIndex` that will be added to the TaskBoard Column and Card elements.
|
|
25
|
-
*/
|
|
26
|
-
tabIndex?: number;
|
|
27
|
-
/**
|
|
28
|
-
* Specifies the CardHandle reference.
|
|
29
|
-
*/
|
|
30
|
-
elementRef?: React.RefObject<CardHandle>;
|
|
31
|
-
/**
|
|
32
|
-
* Specifies the width and height of the drag target reference.
|
|
33
|
-
*/
|
|
34
|
-
dragTargetRef?: React.RefObject<{
|
|
35
|
-
width: number;
|
|
36
|
-
height: number;
|
|
37
|
-
}>;
|
|
38
|
-
/**
|
|
39
|
-
* Fires when a task is deleted.
|
|
40
|
-
*/
|
|
41
|
-
onDeleteTask: () => void;
|
|
42
|
-
/**
|
|
43
|
-
* Represents the `showEditPane` event.
|
|
44
|
-
*/
|
|
45
|
-
showEditPane: (task: TaskBoardTaskModel) => void;
|
|
46
|
-
/**
|
|
47
|
-
* Represents the TaskBoardCard component.
|
|
48
|
-
*/
|
|
49
|
-
cardComponent: React.ComponentType<TaskBoardCardProps>;
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Represents the TaskBoardCardBase component.
|
|
53
|
-
*
|
|
54
|
-
* @hidden
|
|
55
|
-
*/
|
|
56
|
-
export declare const TaskBoardCardBase: {
|
|
57
|
-
(props: TaskBoardCardBaseProps): JSX.Element;
|
|
58
|
-
defaultProps: {};
|
|
59
|
-
displayName: string;
|
|
60
|
-
};
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
var __assign = (this && this.__assign) || function () {
|
|
2
|
-
__assign = Object.assign || function(t) {
|
|
3
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
-
s = arguments[i];
|
|
5
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
-
t[p] = s[p];
|
|
7
|
-
}
|
|
8
|
-
return t;
|
|
9
|
-
};
|
|
10
|
-
return __assign.apply(this, arguments);
|
|
11
|
-
};
|
|
12
|
-
import * as React from 'react';
|
|
13
|
-
import * as PropTypes from 'prop-types';
|
|
14
|
-
import { Card } from '@progress/kendo-react-layout';
|
|
15
|
-
import { TASKBOARD_PLACEHOLDER } from './constants';
|
|
16
|
-
import { useLocalization } from '@progress/kendo-react-intl';
|
|
17
|
-
import { messages, taskBoardDeleteTaskDialogMessage, taskBoardDeleteTaskDialogTitle, taskBoardDeleteTaskConfirmButton, taskBoardDeleteTaskCancelButton, taskBoardEditCardButton, taskBoardDeleteCardButton, taskBoardPreviewPanePriorityLabel, taskBoardPreviewPaneDeleteBtn, taskBoardPreviewPaneEditBtn } from './messages';
|
|
18
|
-
import { TaskBoardCardHeader } from './card/CardHeader';
|
|
19
|
-
import { TaskBoardCardBody } from './card/CardBody';
|
|
20
|
-
import { TaskBoardConfirmDialog } from './TaskBoardConfirmDialog';
|
|
21
|
-
import { TaskBoardPreviewDialog } from './card/PreviewDialog';
|
|
22
|
-
import { pencilIcon, trashIcon } from '@progress/kendo-svg-icons';
|
|
23
|
-
/**
|
|
24
|
-
* Represents the TaskBoardCardBase component.
|
|
25
|
-
*
|
|
26
|
-
* @hidden
|
|
27
|
-
*/
|
|
28
|
-
export var TaskBoardCardBase = function (props) {
|
|
29
|
-
var _a;
|
|
30
|
-
var onDeleteTask = props.onDeleteTask, showEditPane = props.showEditPane, task = props.task, style = props.style, dragTargetRef = props.dragTargetRef, elementRef = props.elementRef;
|
|
31
|
-
var _b = React.useState(false), optionMenuVisible = _b[0], setOptionMenuVisible = _b[1];
|
|
32
|
-
var _c = React.useState(false), confirmTaskDeleteVisible = _c[0], setConfirmTaskDeleteVisible = _c[1];
|
|
33
|
-
var _d = React.useState(false), showTaskPreviewPane = _d[0], setShowTaskPreviewPane = _d[1];
|
|
34
|
-
var popupRef = React.useRef(null);
|
|
35
|
-
var localization = useLocalization();
|
|
36
|
-
var optionButtons = [
|
|
37
|
-
{
|
|
38
|
-
text: localization.toLanguageString(taskBoardEditCardButton, messages[taskBoardEditCardButton]),
|
|
39
|
-
icon: 'pencil',
|
|
40
|
-
svgIcon: pencilIcon,
|
|
41
|
-
data: function () {
|
|
42
|
-
showEditPane(task);
|
|
43
|
-
setOptionMenuVisible(!optionMenuVisible);
|
|
44
|
-
}
|
|
45
|
-
},
|
|
46
|
-
{
|
|
47
|
-
text: localization.toLanguageString(taskBoardDeleteCardButton, messages[taskBoardDeleteCardButton]),
|
|
48
|
-
icon: 'trash',
|
|
49
|
-
svgIcon: trashIcon,
|
|
50
|
-
data: function () {
|
|
51
|
-
setConfirmTaskDeleteVisible(!confirmTaskDeleteVisible);
|
|
52
|
-
setOptionMenuVisible(!optionMenuVisible);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
];
|
|
56
|
-
var handleSelect = function (e) {
|
|
57
|
-
e.item.data();
|
|
58
|
-
};
|
|
59
|
-
var onShowMenu = function () {
|
|
60
|
-
setOptionMenuVisible(true);
|
|
61
|
-
};
|
|
62
|
-
var onHideMenu = function () {
|
|
63
|
-
setOptionMenuVisible(false);
|
|
64
|
-
};
|
|
65
|
-
var onMenuButtonBlur = function (event) {
|
|
66
|
-
var popup = popupRef.current && popupRef.current.element;
|
|
67
|
-
if (popup && popup.contains(event.relatedTarget)) {
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
70
|
-
setOptionMenuVisible(false);
|
|
71
|
-
};
|
|
72
|
-
var closeConfirmDialog = function () {
|
|
73
|
-
setConfirmTaskDeleteVisible(!confirmTaskDeleteVisible);
|
|
74
|
-
};
|
|
75
|
-
var onShowTaskPreviewPane = function () {
|
|
76
|
-
setShowTaskPreviewPane(true);
|
|
77
|
-
};
|
|
78
|
-
var onClosePreviewPane = function () {
|
|
79
|
-
setShowTaskPreviewPane(false);
|
|
80
|
-
};
|
|
81
|
-
var onTaskEdit = function () {
|
|
82
|
-
showEditPane(task);
|
|
83
|
-
onShowTaskPreviewPane();
|
|
84
|
-
};
|
|
85
|
-
if (task.isPlaceholder && dragTargetRef && dragTargetRef.current) {
|
|
86
|
-
return (React.createElement("div", __assign({ style: { width: dragTargetRef.current.width, height: dragTargetRef.current.height }, className: 'k-taskboard-drag-placeholder' }, (_a = {}, _a[TASKBOARD_PLACEHOLDER] = true, _a))));
|
|
87
|
-
}
|
|
88
|
-
return (React.createElement(props.cardComponent, { task: task, style: style, tabIndex: props.tabIndex, disabled: props.disabled, elementRef: elementRef, showMenu: optionMenuVisible, showDeleteConfirm: confirmTaskDeleteVisible, showTaskPreviewPane: showTaskPreviewPane, menuItems: optionButtons, popupRef: popupRef, confirmDialogMessage: localization.toLanguageString(taskBoardDeleteTaskDialogMessage, messages[taskBoardDeleteTaskDialogMessage]), confirmDialogTitle: localization.toLanguageString(taskBoardDeleteTaskDialogTitle, messages[taskBoardDeleteTaskDialogTitle]), confirmDialogConfirmButton: localization.toLanguageString(taskBoardDeleteTaskConfirmButton, messages[taskBoardDeleteTaskConfirmButton]), confirmDialogCancelButton: localization.toLanguageString(taskBoardDeleteTaskCancelButton, messages[taskBoardDeleteTaskCancelButton]), previewDialogPriorityLabel: localization.toLanguageString(taskBoardPreviewPanePriorityLabel, messages[taskBoardPreviewPanePriorityLabel]), previewDialogDelete: localization.toLanguageString(taskBoardPreviewPaneDeleteBtn, messages[taskBoardPreviewPaneDeleteBtn]), previewDialogEdit: localization.toLanguageString(taskBoardPreviewPaneEditBtn, messages[taskBoardPreviewPaneEditBtn]), onShowPreviewPane: onShowTaskPreviewPane, onClosePreviewPane: onClosePreviewPane, onMenuItemSelect: handleSelect, onShowMenu: onShowMenu, onHideMenu: onHideMenu, onMenuButtonBlur: onMenuButtonBlur, onTaskDelete: onDeleteTask, onTaskEdit: onTaskEdit, onCloseConfirmDialog: closeConfirmDialog, card: Card, cardHeader: TaskBoardCardHeader, cardBody: TaskBoardCardBody, confirmDialog: TaskBoardConfirmDialog, previewDialog: TaskBoardPreviewDialog }));
|
|
89
|
-
};
|
|
90
|
-
var defaultProps = {};
|
|
91
|
-
TaskBoardCardBase.propTypes = {
|
|
92
|
-
task: PropTypes.object.isRequired
|
|
93
|
-
};
|
|
94
|
-
TaskBoardCardBase.defaultProps = defaultProps;
|
|
95
|
-
TaskBoardCardBase.displayName = 'KendoReactTaskBoardCardBase';
|