orgchart 4.0.1 → 6.0.0
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/.github/workflows/publish.yml +32 -0
- package/README.md +205 -89
- package/README.zh-cn.md +221 -68
- package/README.zh-tw.md +221 -68
- package/bower.json +6 -9
- package/demo/10000-nodes.html +139 -0
- package/demo/ajax-datasource.html +46 -45
- package/demo/bottom2top.html +12 -9
- package/demo/center-on-selected-node.html +21 -17
- package/demo/color-coded.html +12 -9
- package/demo/css/style.css +28 -0
- package/demo/custom-icons.html +12 -9
- package/demo/custom-template.html +12 -9
- package/demo/data-prop-compact.html +11 -8
- package/demo/data-prop-hybrid.html +79 -50
- package/demo/default-collapsed.html +12 -9
- package/demo/drag-drop-hybrid-chart.html +17 -14
- package/demo/drag-drop.html +21 -16
- package/demo/edit-chart.html +148 -94
- package/demo/edit-hybrid-chart.html +178 -135
- package/demo/expand-to-given-depth.html +30 -22
- package/demo/export-chart-pdf.html +12 -9
- package/demo/export-chart-with-pictures.html +19 -12
- package/demo/export-chart.html +12 -9
- package/demo/family-tree.html +100 -0
- package/demo/familytree-custom-properties.html +108 -0
- package/demo/filter-node.html +104 -57
- package/demo/get-hierarchy.html +17 -12
- package/demo/get-related-nodes.html +27 -17
- package/demo/index.html +7 -4
- package/demo/integrate-map.html +32 -27
- package/demo/left2right.html +12 -9
- package/demo/level-offset.html +16 -15
- package/demo/link-node.html +12 -9
- package/demo/local-datasource.html +11 -8
- package/demo/minimap.html +224 -0
- package/demo/nodes-of-different-widths.html +11 -8
- package/demo/ondemand-loading-data.html +88 -91
- package/demo/option-createNode.html +31 -20
- package/demo/pan-zoom.html +20 -11
- package/demo/reload-data.html +17 -14
- package/demo/report-path.html +59 -29
- package/demo/responsive-design.html +14 -11
- package/demo/right2left.html +12 -9
- package/demo/toggle-sibs-resp.html +12 -9
- package/demo/ul-datasource.html +11 -8
- package/demo/vertical-level.html +12 -9
- package/dist/css/{jquery.orgchart.css → orgchart.css} +210 -78
- package/dist/css/orgchart.min.css +1 -0
- package/dist/js/orgchart.js +4101 -0
- package/dist/js/orgchart.min.js +2 -0
- package/dist/js/orgchart.min.js.map +1 -0
- package/gulpfile.js +37 -26
- package/package.json +32 -32
- package/src/css/{jquery.orgchart.css → orgchart.css} +210 -78
- package/src/js/orgchart.js +4101 -0
- package/test/cypress/e2e/demo-interactions.cy.js +91 -0
- package/test/cypress/e2e/demo-rendering.cy.js +100 -0
- package/test/cypress/e2e/drag-drop-hybrid-chart.cy.js +22 -0
- package/test/cypress/e2e/edit-chart.cy.js +20 -0
- package/test/cypress/e2e/level-offset.cy.js +21 -0
- package/test/cypress/e2e/minimap.cy.js +66 -0
- package/test/cypress/e2e/pan-zoom.cy.js +165 -0
- package/test/cypress/e2e/report-path.cy.js +20 -0
- package/test/cypress/e2e/vertical-vevel.cy.js +5 -3
- package/test/e2e/local-datasource/test.js +1 -1
- package/test/integration/init-tests.js +168 -62
- package/test/integration/tests.js +1034 -56
- package/test/unit/lifecycle-builders-export.tests.js +1426 -0
- package/test/unit/minimap.tests.js +210 -0
- package/test/unit/tests.js +2372 -252
- package/demo/multiple-layers.html +0 -128
- package/dist/css/jquery.orgchart.min.css +0 -1
- package/dist/js/jquery.orgchart.js +0 -1686
- package/dist/js/jquery.orgchart.min.js +0 -5
- package/dist/js/jquery.orgchart.min.js.map +0 -1
- package/src/js/jquery.orgchart.js +0 -1686
|
@@ -1,71 +1,100 @@
|
|
|
1
1
|
<!DOCTYPE html>
|
|
2
2
|
<html lang="en">
|
|
3
|
+
|
|
3
4
|
<head>
|
|
4
5
|
<meta charset="utf-8">
|
|
5
|
-
<title>
|
|
6
|
+
<title>OrgChart Hybrid Layout Demo</title>
|
|
6
7
|
<link rel="icon" href="img/logo.png">
|
|
7
|
-
<link rel="stylesheet" href="css/
|
|
8
|
+
<link rel="stylesheet" href="css/orgchart.css">
|
|
8
9
|
<link rel="stylesheet" href="css/style.css">
|
|
9
10
|
<style type="text/css">
|
|
10
|
-
#chart-container {
|
|
11
|
-
|
|
11
|
+
#chart-container {
|
|
12
|
+
height: 620px;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.orgchart {
|
|
16
|
+
padding-bottom: 20px;
|
|
17
|
+
}
|
|
12
18
|
</style>
|
|
13
19
|
</head>
|
|
20
|
+
|
|
14
21
|
<body>
|
|
22
|
+
<section class="demo-notes">
|
|
23
|
+
<h1>Hybrid Layout Demo</h1>
|
|
24
|
+
<p>This demo uses the hybrid data property to mix horizontal and vertical descendant layouts in the same chart.</p>
|
|
25
|
+
</section>
|
|
15
26
|
<div id="chart-container"></div>
|
|
16
|
-
|
|
17
|
-
<script type="text/javascript" src="js/jquery.min.js"></script>
|
|
18
|
-
<script type="text/javascript" src="js/jquery.orgchart.js"></script>
|
|
27
|
+
<script type="text/javascript" src="js/orgchart.js"></script>
|
|
19
28
|
<script type="text/javascript">
|
|
20
|
-
|
|
29
|
+
document.addEventListener('DOMContentLoaded', () => {
|
|
21
30
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
{ 'id': '7', 'name': 'Dan Dan', 'title': 'UE engineer' ,
|
|
31
|
+
const datasource = {
|
|
32
|
+
'id': '1',
|
|
33
|
+
'name': 'Lao Lao',
|
|
34
|
+
'title': 'general manager',
|
|
35
|
+
'children': [
|
|
36
|
+
{ 'id': '2', 'name': 'Bo Miao', 'title': 'department manager' },
|
|
37
|
+
{
|
|
38
|
+
'id': '3', 'name': 'Su Miao', 'title': 'department manager',
|
|
39
|
+
'children': [
|
|
40
|
+
{ 'id': '4', 'name': 'Tie Hua', 'title': 'senior engineer' },
|
|
41
|
+
{
|
|
42
|
+
'id': '5', 'name': 'Hei Hei', 'title': 'senior engineer',
|
|
35
43
|
'children': [
|
|
36
|
-
{
|
|
37
|
-
|
|
44
|
+
{
|
|
45
|
+
'id': '6', 'name': 'Pang Pang', 'title': 'engineer',
|
|
46
|
+
'children': [
|
|
47
|
+
{
|
|
48
|
+
'id': '18', 'name': 'Er Pang', 'title': 'engineer',
|
|
49
|
+
'children': [
|
|
50
|
+
{ 'id': '19', 'name': 'San Pang', 'title': 'intern' }
|
|
51
|
+
]
|
|
52
|
+
}
|
|
53
|
+
]
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
'id': '7', 'name': 'Dan Dan', 'title': 'UE engineer',
|
|
38
57
|
'children': [
|
|
39
|
-
{ 'id': '
|
|
40
|
-
{
|
|
58
|
+
{ 'id': '8', 'name': 'Er Dan', 'title': 'engineer' },
|
|
59
|
+
{
|
|
60
|
+
'id': '9', 'name': 'San Dan', 'title': 'engineer',
|
|
61
|
+
'children': [
|
|
62
|
+
{ 'id': '10', 'name': 'Si Dan', 'title': 'intern' },
|
|
63
|
+
{ 'id': '11', 'name': 'Wu Dan', 'title': 'intern' }
|
|
64
|
+
]
|
|
65
|
+
},
|
|
66
|
+
{ 'id': '12', 'name': 'Liu Dan', 'title': 'engineer' },
|
|
41
67
|
]
|
|
42
68
|
}
|
|
43
|
-
]
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
69
|
+
]
|
|
70
|
+
}
|
|
71
|
+
]
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
'id': '13', 'name': 'Chun Miao', 'title': 'department manager', 'hybrid': true,
|
|
75
|
+
'children': [
|
|
76
|
+
{ 'id': '14', 'name': 'Bing Qin', 'title': 'senior engineer' },
|
|
77
|
+
{
|
|
78
|
+
'id': '15', 'name': 'Yue Yue', 'title': 'senior engineer',
|
|
79
|
+
'children': [
|
|
80
|
+
{ 'id': '16', 'name': 'Er Yue', 'title': 'engineer' },
|
|
81
|
+
{ 'id': '17', 'name': 'San Yue', 'title': 'UE engineer' }
|
|
82
|
+
]
|
|
83
|
+
}
|
|
84
|
+
]
|
|
85
|
+
}
|
|
86
|
+
]
|
|
87
|
+
};
|
|
61
88
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
89
|
+
const oc = new OrgChart({
|
|
90
|
+
chartContainer: '#chart-container',
|
|
91
|
+
'data': datasource,
|
|
92
|
+
'nodeContent': 'title',
|
|
93
|
+
'verticalLevel': 5
|
|
94
|
+
});
|
|
67
95
|
|
|
68
|
-
|
|
96
|
+
});
|
|
69
97
|
</script>
|
|
70
|
-
|
|
98
|
+
</body>
|
|
99
|
+
|
|
71
100
|
</html>
|
|
@@ -2,20 +2,22 @@
|
|
|
2
2
|
<html lang="en">
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="utf-8">
|
|
5
|
-
<title>
|
|
5
|
+
<title>OrgChart Default Collapsed Demo</title>
|
|
6
6
|
<link rel="icon" href="img/logo.png">
|
|
7
|
-
<link rel="stylesheet" href="css/
|
|
7
|
+
<link rel="stylesheet" href="css/orgchart.css">
|
|
8
8
|
<link rel="stylesheet" href="css/style.css">
|
|
9
9
|
</head>
|
|
10
10
|
<body>
|
|
11
|
+
<section class="demo-notes">
|
|
12
|
+
<h1>Default Collapsed Demo</h1>
|
|
13
|
+
<p>This demo starts selected branches in a collapsed state so users expand them only when needed.</p>
|
|
14
|
+
</section>
|
|
11
15
|
<div id="chart-container"></div>
|
|
12
|
-
|
|
13
|
-
<script type="text/javascript" src="js/jquery.min.js"></script>
|
|
14
|
-
<script type="text/javascript" src="js/jquery.orgchart.js"></script>
|
|
16
|
+
<script type="text/javascript" src="js/orgchart.js"></script>
|
|
15
17
|
<script type="text/javascript">
|
|
16
|
-
|
|
18
|
+
document.addEventListener('DOMContentLoaded', () => {
|
|
17
19
|
|
|
18
|
-
|
|
20
|
+
const datasource = {
|
|
19
21
|
'name': 'Lao Lao',
|
|
20
22
|
'title': 'general manager',
|
|
21
23
|
'children': [
|
|
@@ -46,8 +48,9 @@
|
|
|
46
48
|
]
|
|
47
49
|
};
|
|
48
50
|
|
|
49
|
-
|
|
50
|
-
'
|
|
51
|
+
const oc = new OrgChart({
|
|
52
|
+
chartContainer: '#chart-container',
|
|
53
|
+
'data' : datasource,
|
|
51
54
|
'nodeContent': 'title'
|
|
52
55
|
});
|
|
53
56
|
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
<html lang="en">
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="utf-8">
|
|
5
|
-
<title>
|
|
5
|
+
<title>OrgChart Hybrid Drag and Drop Demo</title>
|
|
6
6
|
<link rel="icon" href="img/logo.png">
|
|
7
|
-
<link rel="stylesheet" href="css/
|
|
7
|
+
<link rel="stylesheet" href="css/orgchart.css">
|
|
8
8
|
<link rel="stylesheet" href="css/style.css">
|
|
9
9
|
<style type="text/css">
|
|
10
10
|
#chart-container { height: 600px; }
|
|
@@ -12,15 +12,17 @@
|
|
|
12
12
|
</style>
|
|
13
13
|
</head>
|
|
14
14
|
<body>
|
|
15
|
+
<section class="demo-notes">
|
|
16
|
+
<h1>Hybrid Drag and Drop Demo</h1>
|
|
17
|
+
<p>This demo applies drag and drop to a hybrid chart that mixes horizontal and vertical descendant branches.</p>
|
|
18
|
+
</section>
|
|
15
19
|
<div id="chart-container"></div>
|
|
16
|
-
|
|
17
|
-
<script type="text/javascript" src="js/jquery.min.js"></script>
|
|
18
|
-
<script type="text/javascript" src="js/jquery.orgchart.js"></script>
|
|
20
|
+
<script type="text/javascript" src="js/orgchart.js"></script>
|
|
19
21
|
<script type="text/javascript" src="js/json-digger.js"></script>
|
|
20
22
|
<script type="text/javascript">
|
|
21
|
-
|
|
23
|
+
document.addEventListener('DOMContentLoaded', () => {
|
|
22
24
|
|
|
23
|
-
|
|
25
|
+
const datasource = {
|
|
24
26
|
'id': '1',
|
|
25
27
|
'name': 'Lao Lao',
|
|
26
28
|
'title': 'general manager',
|
|
@@ -61,18 +63,19 @@
|
|
|
61
63
|
]
|
|
62
64
|
};
|
|
63
65
|
|
|
64
|
-
|
|
65
|
-
'
|
|
66
|
+
const oc = new OrgChart({
|
|
67
|
+
chartContainer: '#chart-container',
|
|
68
|
+
'data' : datasource,
|
|
66
69
|
'nodeContent': 'title',
|
|
67
70
|
'draggable': true,
|
|
68
71
|
'verticalLevel': 3
|
|
69
72
|
});
|
|
70
73
|
|
|
71
|
-
oc
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
+ ',
|
|
75
|
-
|
|
74
|
+
oc.chart.addEventListener('nodedrop.orgchart', (event) => {
|
|
75
|
+
const extraParams = event.detail;
|
|
76
|
+
console.log('draggedNode:' + extraParams.draggedNode.querySelector('.title').textContent
|
|
77
|
+
+ ', dragZone:' + extraParams.dragZone.querySelector('.title').textContent
|
|
78
|
+
+ ', dropZone:' + extraParams.dropZone.querySelector('.title').textContent);
|
|
76
79
|
});
|
|
77
80
|
|
|
78
81
|
});
|
package/demo/drag-drop.html
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
<html lang="en">
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="utf-8">
|
|
5
|
-
<title>
|
|
5
|
+
<title>OrgChart Drag and Drop Demo</title>
|
|
6
6
|
<link rel="icon" href="img/logo.png">
|
|
7
|
-
<link rel="stylesheet" href="css/
|
|
7
|
+
<link rel="stylesheet" href="css/orgchart.css">
|
|
8
8
|
<link rel="stylesheet" href="css/style.css">
|
|
9
9
|
<style type="text/css">
|
|
10
10
|
#chart-container { height: 600px; }
|
|
@@ -12,15 +12,17 @@
|
|
|
12
12
|
</style>
|
|
13
13
|
</head>
|
|
14
14
|
<body>
|
|
15
|
+
<section class="demo-notes">
|
|
16
|
+
<h1>Drag and Drop Demo</h1>
|
|
17
|
+
<p>This demo enables node drag and drop and uses dropCriteria to reject invalid moves between branches.</p>
|
|
18
|
+
</section>
|
|
15
19
|
<div id="chart-container"></div>
|
|
16
|
-
|
|
17
|
-
<script type="text/javascript" src="js/jquery.min.js"></script>
|
|
18
|
-
<script type="text/javascript" src="js/jquery.orgchart.js"></script>
|
|
20
|
+
<script type="text/javascript" src="js/orgchart.js"></script>
|
|
19
21
|
<script type="text/javascript" src="js/json-digger.js"></script>
|
|
20
22
|
<script type="text/javascript">
|
|
21
|
-
|
|
23
|
+
document.addEventListener('DOMContentLoaded', () => {
|
|
22
24
|
|
|
23
|
-
|
|
25
|
+
const datasource = {
|
|
24
26
|
'name': 'Lao Lao',
|
|
25
27
|
'title': 'general manager',
|
|
26
28
|
'children': [
|
|
@@ -42,23 +44,26 @@
|
|
|
42
44
|
]
|
|
43
45
|
};
|
|
44
46
|
|
|
45
|
-
|
|
46
|
-
'
|
|
47
|
+
const oc = new OrgChart({
|
|
48
|
+
chartContainer: '#chart-container',
|
|
49
|
+
'data' : datasource,
|
|
47
50
|
'nodeContent': 'title',
|
|
48
51
|
'draggable': true,
|
|
49
|
-
'dropCriteria': function(
|
|
50
|
-
|
|
52
|
+
'dropCriteria': function(draggedNode, dragZone, dropZone) {
|
|
53
|
+
const draggedContent = draggedNode.querySelector('.content')?.textContent || '';
|
|
54
|
+
const dropContent = dropZone.querySelector('.content')?.textContent || '';
|
|
55
|
+
if (draggedContent.indexOf('manager') > -1 && dropContent.indexOf('engineer') > -1) {
|
|
51
56
|
return false;
|
|
52
57
|
}
|
|
53
58
|
return true;
|
|
54
59
|
}
|
|
55
60
|
});
|
|
56
61
|
|
|
57
|
-
oc
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
+ ',
|
|
61
|
-
|
|
62
|
+
oc.chart.addEventListener('nodedrop.orgchart', (event) => {
|
|
63
|
+
const extraParams = event.detail;
|
|
64
|
+
console.log('draggedNode:' + extraParams.draggedNode.querySelector('.title').textContent
|
|
65
|
+
+ ', dragZone:' + extraParams.dragZone.querySelector('.title').textContent
|
|
66
|
+
+ ', dropZone:' + extraParams.dropZone.querySelector('.title').textContent);
|
|
62
67
|
});
|
|
63
68
|
|
|
64
69
|
});
|